draft-ietf-nfsv4-minorversion2-dot-x-13.txt   draft-ietf-nfsv4-minorversion2-dot-x-14.txt 
NFSv4 T. Haynes NFSv4 T. Haynes
Internet-Draft Editors Internet-Draft Editors
Intended status: Standards Track July 11, 2012 Intended status: Standards Track September 30, 2012
Expires: January 12, 2013 Expires: April 3, 2013
NFSv4 Minor Version 2 Protocol External Data Representation Standard NFSv4 Minor Version 2 Protocol External Data Representation Standard
(XDR) Description (XDR) Description
draft-ietf-nfsv4-minorversion2-dot-x-13.txt draft-ietf-nfsv4-minorversion2-dot-x-14.txt
Abstract Abstract
This Internet-Draft provides the XDR description for NFSv4 minor This Internet-Draft provides the XDR description for NFSv4 minor
version two. version two.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
skipping to change at page 1, line 38 skipping to change at page 1, line 38
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 12, 2013. This Internet-Draft will expire on April 3, 2013.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 4, line 33 skipping to change at page 4, line 33
sh extract.sh < spec.txt > nfs4_prot.x sh extract.sh < spec.txt > nfs4_prot.x
The effect of the script is to remove leading white space from each The effect of the script is to remove leading white space from each
line, plus a sentinel sequence of "///". line, plus a sentinel sequence of "///".
The XDR description, with the sentinel sequence follows: The XDR description, with the sentinel sequence follows:
/// /* /// /*
/// * This file was machine generated for /// * This file was machine generated for
/// * draft-ietf-nfsv4-minorversion2-13 /// * draft-ietf-nfsv4-minorversion2-14
/// * Last updated Wed Jul 11 09:34:30 PDT 2012 /// * Last updated Sun Sep 30 21:04:12 PDT 2012
/// */ /// */
/// /* /// /*
/// * Copyright (C) The IETF Trust (2007-2012) /// * Copyright (C) The IETF Trust (2007-2012)
/// * All Rights Reserved. /// * All Rights Reserved.
/// * /// *
/// * Copyright (C) The Internet Society (1998-2006). /// * Copyright (C) The Internet Society (1998-2006).
/// * All Rights Reserved. /// * All Rights Reserved.
/// */ /// */
/// ///
/// /* /// /*
skipping to change at page 19, line 20 skipping to change at page 19, line 20
/// struct copy_confirm_auth_priv { /// struct copy_confirm_auth_priv {
/// /* equal to GSS_GetMIC() of cfap_shared_secret */ /// /* equal to GSS_GetMIC() of cfap_shared_secret */
/// opaque ccap_shared_secret_mic<>; /// opaque ccap_shared_secret_mic<>;
/// /* the NFSv4 user name that the user principal maps to */ /// /* the NFSv4 user name that the user principal maps to */
/// utf8str_mixed ccap_username; /// utf8str_mixed ccap_username;
/// /* equal to seq_num of rpc_gss_cred_vers_3_t */ /// /* equal to seq_num of rpc_gss_cred_vers_3_t */
/// unsigned int ccap_seq_num; /// unsigned int ccap_seq_num;
/// }; /// };
/// ///
/// ///
/// struct app_data_block4 { /// struct app_data_hole4 {
/// offset4 adb_offset; /// offset4 adh_offset;
/// length4 adb_block_size; /// length4 adh_block_size;
/// length4 adb_block_count; /// length4 adh_block_count;
/// length4 adb_reloff_blocknum; /// length4 adh_reloff_blocknum;
/// count4 adb_block_num; /// count4 adh_block_num;
/// length4 adb_reloff_pattern; /// length4 adh_reloff_pattern;
/// opaque adb_pattern<>; /// opaque adh_pattern<>;
/// }; /// };
/// ///
/// ///
/// struct data_info4 { /// struct data_info4 {
/// offset4 di_offset; /// offset4 di_offset;
/// length4 di_length; /// length4 di_length;
/// bool di_allocated; /// bool di_allocated;
/// }; /// };
/// ///
/// ///
/// /* /// /*
/// * Use an enum such that we can extend new types. /// * Use an enum such that we can extend new types.
/// */ /// */
/// enum data_content4 { /// enum data_content4 {
/// NFS4_CONTENT_DATA = 0, /// NFS4_CONTENT_DATA = 0,
/// NFS4_CONTENT_APP_BLOCK = 1, /// NFS4_CONTENT_APP_DATA_HOLE = 1,
/// NFS4_CONTENT_HOLE = 2 /// NFS4_CONTENT_HOLE = 2
/// }; /// };
/// ///
/// ///
/// /* /// /*
/// * NFSv4.1 attributes /// * NFSv4.1 attributes
/// */ /// */
/// typedef bitmap4 fattr4_supported_attrs; /// typedef bitmap4 fattr4_supported_attrs;
/// typedef nfs_ftype4 fattr4_type; /// typedef nfs_ftype4 fattr4_type;
/// typedef uint32_t fattr4_fh_expire_type; /// typedef uint32_t fattr4_fh_expire_type;
skipping to change at page 59, line 41 skipping to change at page 59, line 41
/// }; /// };
/// ///
/// ///
/// const COPY4_GUARDED = 0x00000001; /// const COPY4_GUARDED = 0x00000001;
/// const COPY4_METADATA = 0x00000002; /// const COPY4_METADATA = 0x00000002;
/// ///
/// struct COPY4args { /// struct COPY4args {
/// /* SAVED_FH: source file */ /// /* SAVED_FH: source file */
/// /* CURRENT_FH: destination file or */ /// /* CURRENT_FH: destination file or */
/// /* directory */ /// /* directory */
/// stateid4 ca_src_stateid;
/// stateid4 ca_dst_stateid;
/// offset4 ca_src_offset; /// offset4 ca_src_offset;
/// offset4 ca_dst_offset; /// offset4 ca_dst_offset;
/// length4 ca_count; /// length4 ca_count;
/// uint32_t ca_flags; /// uint32_t ca_flags;
/// component4 ca_destination; /// component4 ca_destination;
/// netloc4 ca_source_server<>; /// netloc4 ca_source_server<>;
/// }; /// };
/// ///
/// union COPY4res switch (nfsstat4 cr_status) { /// union COPY4res switch (nfsstat4 cr_status) {
/// case NFS4_OK: /// case NFS4_OK:
skipping to change at page 59, line 51 skipping to change at page 60, line 4
/// offset4 ca_src_offset; /// offset4 ca_src_offset;
/// offset4 ca_dst_offset; /// offset4 ca_dst_offset;
/// length4 ca_count; /// length4 ca_count;
/// uint32_t ca_flags; /// uint32_t ca_flags;
/// component4 ca_destination; /// component4 ca_destination;
/// netloc4 ca_source_server<>; /// netloc4 ca_source_server<>;
/// }; /// };
/// ///
/// union COPY4res switch (nfsstat4 cr_status) { /// union COPY4res switch (nfsstat4 cr_status) {
/// case NFS4_OK: /// case NFS4_OK:
/// stateid4 cr_callback_id<1>; /// stateid4 cr_callback_id<1>;
/// default: /// default:
/// length4 cr_bytes_copied; /// length4 cr_bytes_copied;
/// }; /// };
/// ///
/// struct COPY_ABORT4args { /// struct OFFLOAD_ABORT4args {
/// /* CURRENT_FH: destination file */ /// /* CURRENT_FH: destination file */
/// stateid4 caa_stateid; /// stateid4 oaa_stateid;
/// }; /// };
/// ///
/// struct COPY_ABORT4res { /// struct OFFLOAD_ABORT4res {
/// nfsstat4 car_status; /// nfsstat4 oar_status;
/// }; /// };
/// ///
/// struct COPY_NOTIFY4args { /// struct COPY_NOTIFY4args {
/// /* CURRENT_FH: source file */ /// /* CURRENT_FH: source file */
/// stateid4 cna_src_stateid;
/// netloc4 cna_destination_server; /// netloc4 cna_destination_server;
/// }; /// };
/// ///
/// struct COPY_NOTIFY4resok { /// struct COPY_NOTIFY4resok {
/// nfstime4 cnr_lease_time; /// nfstime4 cnr_lease_time;
/// netloc4 cnr_source_server<>; /// netloc4 cnr_source_server<>;
/// }; /// };
/// ///
/// union COPY_NOTIFY4res switch (nfsstat4 cnr_status) { /// union COPY_NOTIFY4res switch (nfsstat4 cnr_status) {
/// case NFS4_OK: /// case NFS4_OK:
/// COPY_NOTIFY4resok resok4; /// COPY_NOTIFY4resok resok4;
/// default: /// default:
/// void; /// void;
/// }; /// };
/// ///
/// struct COPY_REVOKE4args { /// struct OFFLOAD_REVOKE4args {
/// /* CURRENT_FH: source file */ /// /* CURRENT_FH: source file */
/// netloc4 cra_destination_server; /// netloc4 ora_destination_server;
/// }; /// };
/// ///
/// struct COPY_REVOKE4res { /// struct OFFLOAD_REVOKE4res {
/// nfsstat4 crr_status; /// nfsstat4 orr_status;
/// }; /// };
/// ///
/// ///
/// struct COPY_STATUS4args { /// struct OFFLOAD_STATUS4args {
/// /* CURRENT_FH: destination file */ /// /* CURRENT_FH: destination file */
/// stateid4 csa_stateid; /// stateid4 osa_stateid;
/// }; /// };
/// ///
/// struct COPY_STATUS4resok { /// struct OFFLOAD_STATUS4resok {
/// length4 csr_bytes_copied; /// length4 osr_bytes_copied;
/// nfsstat4 csr_complete<1>; /// nfsstat4 osr_complete<1>;
/// }; /// };
/// ///
/// union COPY_STATUS4res switch (nfsstat4 csr_status) { /// union OFFLOAD_STATUS4res switch (nfsstat4 osr_status) {
/// case NFS4_OK: /// case NFS4_OK:
/// COPY_STATUS4resok resok4; /// OFFLOAD_STATUS4resok resok4;
/// default: /// default:
/// void; /// void;
/// }; /// };
/// ///
/// ///
/// /* /// /*
/// * We use data_content4 in case we wish to /// * We use data_content4 in case we wish to
/// * extend new types later. Note that we /// * extend new types later. Note that we
/// * are explicitly disallowing data. /// * are explicitly disallowing data.
/// */ /// */
/// union initialize_arg4 switch (data_content4 content) { /// union initialize_arg4 switch (data_content4 content) {
/// case NFS4_CONTENT_APP_BLOCK: /// case NFS4_CONTENT_APP_DATA_HOLE:
/// app_data_block4 ia_adb; /// app_data_hole4 ia_adh;
/// case NFS4_CONTENT_HOLE: /// case NFS4_CONTENT_HOLE:
/// data_info4 ia_hole; /// data_info4 ia_hole;
/// default: /// default:
/// void; /// void;
/// }; /// };
/// ///
/// struct INITIALIZE4args { /// struct INITIALIZE4args {
/// /* CURRENT_FH: file */ /// /* CURRENT_FH: file */
/// stateid4 ia_stateid; /// stateid4 ia_stateid;
/// stable_how4 ia_stable; /// stable_how4 ia_stable;
skipping to change at page 62, line 44 skipping to change at page 62, line 47
/// struct READ_PLUS4args { /// struct READ_PLUS4args {
/// /* CURRENT_FH: file */ /// /* CURRENT_FH: file */
/// stateid4 rpa_stateid; /// stateid4 rpa_stateid;
/// offset4 rpa_offset; /// offset4 rpa_offset;
/// count4 rpa_count; /// count4 rpa_count;
/// }; /// };
/// ///
/// union read_plus_content switch (data_content4 content) { /// union read_plus_content switch (data_content4 content) {
/// case NFS4_CONTENT_DATA: /// case NFS4_CONTENT_DATA:
/// opaque rpc_data<>; /// opaque rpc_data<>;
/// case NFS4_CONTENT_APP_BLOCK: /// case NFS4_CONTENT_APP_DATA_HOLE:
/// app_data_block4 rpc_block; /// app_data_hole4 rpc_adh;
/// case NFS4_CONTENT_HOLE: /// case NFS4_CONTENT_HOLE:
/// data_info4 rpc_hole; /// data_info4 rpc_hole;
/// default: /// default:
/// void; /// void;
/// }; /// };
/// ///
/// /* /// /*
/// * Allow a return of an array of contents. /// * Allow a return of an array of contents.
/// */ /// */
/// struct read_plus_res4 { /// struct read_plus_res4 {
/// bool rpr_eof; /// bool rpr_eof;
/// read_plus_content rpr_contents<>; /// read_plus_content rpr_contents<>;
/// }; /// };
skipping to change at page 63, line 29 skipping to change at page 63, line 33
/// struct SEEK4args { /// struct SEEK4args {
/// /* CURRENT_FH: file */ /// /* CURRENT_FH: file */
/// stateid4 sa_stateid; /// stateid4 sa_stateid;
/// offset4 sa_offset; /// offset4 sa_offset;
/// data_content4 sa_what; /// data_content4 sa_what;
/// }; /// };
/// ///
/// union seek_content switch (data_content4 content) { /// union seek_content switch (data_content4 content) {
/// case NFS4_CONTENT_DATA: /// case NFS4_CONTENT_DATA:
/// data_info4 sc_data; /// data_info4 sc_data;
/// case NFS4_CONTENT_APP_BLOCK: /// case NFS4_CONTENT_APP_DATA_HOLE:
/// app_data_block4 sc_block; /// app_data_hole4 sc_adh;
/// case NFS4_CONTENT_HOLE: /// case NFS4_CONTENT_HOLE:
/// data_info4 sc_hole; /// data_info4 sc_hole;
/// default: /// default:
/// void; /// void;
/// }; /// };
/// ///
/// struct seek_res4 { /// struct seek_res4 {
/// bool sr_eof; /// bool sr_eof;
/// seek_content sr_contents; /// seek_content sr_contents;
/// }; /// };
skipping to change at page 65, line 21 skipping to change at page 65, line 24
/// OP_SEQUENCE = 53, /// OP_SEQUENCE = 53,
/// OP_SET_SSV = 54, /// OP_SET_SSV = 54,
/// OP_TEST_STATEID = 55, /// OP_TEST_STATEID = 55,
/// OP_WANT_DELEGATION = 56, /// OP_WANT_DELEGATION = 56,
/// OP_DESTROY_CLIENTID = 57, /// OP_DESTROY_CLIENTID = 57,
/// OP_RECLAIM_COMPLETE = 58, /// OP_RECLAIM_COMPLETE = 58,
/// % /// %
/// %/* new operations for NFSv4.2 */ /// %/* new operations for NFSv4.2 */
/// % /// %
/// OP_COPY = 59, /// OP_COPY = 59,
/// OP_COPY_ABORT = 60, /// OP_OFFLOAD_ABORT = 60,
/// OP_COPY_NOTIFY = 61, /// OP_COPY_NOTIFY = 61,
/// OP_COPY_REVOKE = 62, /// OP_OFFLOAD_REVOKE = 62,
/// OP_COPY_STATUS = 63, /// OP_OFFLOAD_STATUS = 63,
/// OP_INITIALIZE = 64, /// OP_INITIALIZE = 64,
/// OP_READ_PLUS = 65, /// OP_READ_PLUS = 65,
/// OP_SEEK = 66, /// OP_SEEK = 66,
/// OP_IO_ADVISE = 67, /// OP_IO_ADVISE = 67,
/// OP_ILLEGAL = 10044 /// OP_ILLEGAL = 10044
/// }; /// };
/// ///
/// union nfs_argop4 switch (nfs_opnum4 argop) { /// union nfs_argop4 switch (nfs_opnum4 argop) {
/// case OP_ACCESS: ACCESS4args opaccess; /// case OP_ACCESS: ACCESS4args opaccess;
/// case OP_CLOSE: CLOSE4args opclose; /// case OP_CLOSE: CLOSE4args opclose;
skipping to change at page 67, line 39 skipping to change at page 67, line 42
/// ///
/// case OP_DESTROY_CLIENTID: /// case OP_DESTROY_CLIENTID:
/// DESTROY_CLIENTID4args /// DESTROY_CLIENTID4args
/// opdestroy_clientid; /// opdestroy_clientid;
/// ///
/// case OP_RECLAIM_COMPLETE: /// case OP_RECLAIM_COMPLETE:
/// RECLAIM_COMPLETE4args /// RECLAIM_COMPLETE4args
/// opreclaim_complete; /// opreclaim_complete;
/// ///
/// /* Operations new to NFSv4.2 */ /// /* Operations new to NFSv4.2 */
/// case OP_COPY_NOTIFY: COPY_NOTIFY4args opcopy_notify; /// case OP_COPY_NOTIFY: COPY_NOTIFY4args opoffload_notify;
/// case OP_COPY_REVOKE: COPY_REVOKE4args opcopy_revoke; /// case OP_OFFLOAD_REVOKE: OFFLOAD_REVOKE4args opcopy_revoke;
/// case OP_COPY: COPY4args opcopy; /// case OP_COPY: COPY4args opcopy;
/// case OP_COPY_ABORT: COPY_ABORT4args opcopy_abort; /// case OP_OFFLOAD_ABORT: OFFLOAD_ABORT4args opoffload_abort;
/// case OP_COPY_STATUS: COPY_STATUS4args opcopy_status; /// case OP_OFFLOAD_STATUS: OFFLOAD_STATUS4args opoffload_status;
/// case OP_INITIALIZE: INITIALIZE4args opinitialize; /// case OP_INITIALIZE: INITIALIZE4args opinitialize;
/// case OP_READ_PLUS: READ_PLUS4args opread_plus; /// case OP_READ_PLUS: READ_PLUS4args opread_plus;
/// case OP_SEEK: SEEK4args opseek; /// case OP_SEEK: SEEK4args opseek;
/// case OP_IO_ADVISE: IO_ADVISE4args opio_advise; /// case OP_IO_ADVISE: IO_ADVISE4args opio_advise;
/// ///
/// /* Operations not new to NFSv4.1 */ /// /* Operations not new to NFSv4.1 */
/// case OP_ILLEGAL: void; /// case OP_ILLEGAL: void;
/// }; /// };
/// ///
/// union nfs_resop4 switch (nfs_opnum4 resop) { /// union nfs_resop4 switch (nfs_opnum4 resop) {
skipping to change at page 70, line 21 skipping to change at page 70, line 24
/// case OP_DESTROY_CLIENTID: /// case OP_DESTROY_CLIENTID:
/// DESTROY_CLIENTID4res /// DESTROY_CLIENTID4res
/// opdestroy_clientid; /// opdestroy_clientid;
/// ///
/// case OP_RECLAIM_COMPLETE: /// case OP_RECLAIM_COMPLETE:
/// RECLAIM_COMPLETE4res /// RECLAIM_COMPLETE4res
/// opreclaim_complete; /// opreclaim_complete;
/// ///
/// /* Operations new to NFSv4.2 */ /// /* Operations new to NFSv4.2 */
/// case OP_COPY_NOTIFY: COPY_NOTIFY4res opcopy_notify; /// case OP_COPY_NOTIFY: COPY_NOTIFY4res opcopy_notify;
/// case OP_COPY_REVOKE: COPY_REVOKE4res opcopy_revoke; /// case OP_OFFLOAD_REVOKE: OFFLOAD_REVOKE4res opoffload_revoke;
/// case OP_COPY: COPY4res opcopy; /// case OP_COPY: COPY4res opcopy;
/// case OP_COPY_ABORT: COPY_ABORT4res opcopy_abort; /// case OP_OFFLOAD_ABORT: OFFLOAD_ABORT4res opoffload_abort;
/// case OP_COPY_STATUS: COPY_STATUS4res opcopy_status; /// case OP_OFFLOAD_STATUS: OFFLOAD_STATUS4res opoffload_status;
/// case OP_INITIALIZE: INITIALIZE4res opinitialize; /// case OP_INITIALIZE: INITIALIZE4res opinitialize;
/// case OP_READ_PLUS: READ_PLUS4res opread_plus; /// case OP_READ_PLUS: READ_PLUS4res opread_plus;
/// case OP_SEEK: SEEK4res opseek; /// case OP_SEEK: SEEK4res opseek;
/// case OP_IO_ADVISE: IO_ADVISE4res opio_advise; /// case OP_IO_ADVISE: IO_ADVISE4res opio_advise;
/// ///
/// /* Operations not new to NFSv4.1 */ /// /* Operations not new to NFSv4.1 */
/// case OP_ILLEGAL: ILLEGAL4res opillegal; /// case OP_ILLEGAL: ILLEGAL4res opillegal;
/// }; /// };
/// ///
/// struct COMPOUND4args { /// struct COMPOUND4args {
 End of changes. 31 change blocks. 
47 lines changed or deleted 51 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/