draft-ietf-nfsv4-minorversion1-dot-x-02.txt   draft-ietf-nfsv4-minorversion1-dot-x-03.txt 
NFSv4 S. Shepler NFSv4 S. Shepler
Internet-Draft M. Eisler Internet-Draft M. Eisler
Intended status: Standards Track D. Noveck Intended status: Standards Track D. Noveck
Expires: June 24, 2008 Editors Expires: August 1, 2008 Editors
December 22, 2007 January 29, 2008
NFSv4 Minor Version 1 XDR Description NFSv4 Minor Version 1 XDR Description
draft-ietf-nfsv4-minorversion1-dot-x-02.txt draft-ietf-nfsv4-minorversion1-dot-x-03.txt
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 35 skipping to change at page 1, line 35
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."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on June 24, 2008. This Internet-Draft will expire on August 1, 2008.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2008).
Abstract Abstract
This Internet-Draft provides the XDR description for NFSv4 minor This Internet-Draft provides the XDR description for NFSv4 minor
version one. version one.
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
document are to be interpreted as described in RFC 2119 [1]. document are to be interpreted as described in RFC 2119 [1].
Table of Contents Table of Contents
1. XDR Description of NFSv4.1 . . . . . . . . . . . . . . . . . . 3 1. XDR Description of NFSv4.1 . . . . . . . . . . . . . . . . . . 3
2. Security Considerations . . . . . . . . . . . . . . . . . . . 70 2. Security Considerations . . . . . . . . . . . . . . . . . . . 70
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 70 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 70
4. References . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4. References . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.1. Normative References . . . . . . . . . . . . . . . . . . . 71 4.1. Normative References . . . . . . . . . . . . . . . . . . . 70
4.2. Informative References . . . . . . . . . . . . . . . . . . 71 4.2. Informative References . . . . . . . . . . . . . . . . . . 71
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 71 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 71
Intellectual Property and Copyright Statements . . . . . . . . . . 73 Intellectual Property and Copyright Statements . . . . . . . . . . 72
1. XDR Description of NFSv4.1 1. XDR Description of NFSv4.1
This document contains the XDR ([2]) description of NFSv4.1 protocol This document contains the XDR ([2]) description of NFSv4.1 protocol
([3]). In order to facilitate implementations that support both ([3]). In order to facilitate implementations that support both
NFSv4.0 and NFSv4.1, the description includes operations, and other NFSv4.0 and NFSv4.1, the description includes operations, and other
features of NFSv4.0 that do not apply to NFSv4.1. features of NFSv4.0 that do not apply to NFSv4.1.
The XDR description is provided in this document in a way that makes The XDR description is provided in this document in a way that makes
it simple for the reader to extract into ready to compile form. The it simple for the reader to extract into ready to compile form. The
reader can feed this document in the following shell script to reader can feed this document in the following shell script to
produce the machine readable XDR description of NFSv4.1: produce the machine readable XDR description of NFSv4.1:
#!/bin/sh #!/bin/sh
grep "^ *///" | sed 's?^ *///??' grep "^ *///" | sed 's?^ *///??'
I.e. if the above script is stored in a filed called "y", and this I.e. if the above script is stored in a file called "extract.sh", and
document is in a file called "y", then the reader can do: this document is in a file called "spec.txt", then the reader can do:
sh y < y > y sh extract.sh < spec.txt > nfsv41.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-minorversion1-18 /// * draft-ietf-nfsv4-minorversion1-19
/// * Last updated Sat Dec 22 10:23:14 CST 2007 /// * Last updated Tue Jan 29 02:57:06 CST 2008
/// */ /// */
////* ////*
/// * Copyright (C) The IETF Trust (2007) /// * Copyright (C) The IETF Trust (2007-2008)
/// * 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.
/// */ /// */
/// ///
////* ////*
/// * nfs4_prot.x /// * nfs4_prot.x
/// */ /// */
/// ///
skipping to change at page 14, line 39 skipping to change at page 14, line 39
///const NFS4_DEVICEID4_SIZE = 16; ///const NFS4_DEVICEID4_SIZE = 16;
/// ///
///typedef opaque deviceid4[NFS4_DEVICEID4_SIZE]; ///typedef opaque deviceid4[NFS4_DEVICEID4_SIZE];
/// ///
///struct device_addr4 { ///struct device_addr4 {
/// layouttype4 da_layout_type; /// layouttype4 da_layout_type;
/// opaque da_addr_body<>; /// opaque da_addr_body<>;
///}; ///};
/// ///
/// ///
///typedef bitmap4 device_notification_mask4;
///
///struct devlist_item4 { ///struct devlist_item4 {
/// deviceid4 dli_id; /// deviceid4 dli_id;
/// device_addr4 dli_device_addr; /// device_addr4 dli_device_addr;
///}; ///};
/// ///
///struct layoutupdate4 { ///struct layoutupdate4 {
/// layouttype4 lou_type; /// layouttype4 lou_type;
/// opaque lou_body<>; /// opaque lou_body<>;
///}; ///};
/// ///
skipping to change at page 48, line 46 skipping to change at page 48, line 44
///}; ///};
/// ///
///struct FREE_STATEID4args { ///struct FREE_STATEID4args {
/// stateid4 fsa_stateid; /// stateid4 fsa_stateid;
///}; ///};
/// ///
///struct FREE_STATEID4res { ///struct FREE_STATEID4res {
/// nfsstat4 fsr_status; /// nfsstat4 fsr_status;
///}; ///};
/// ///
////*
/// * Mask of notification types.
/// */
///typedef bitmap4 notification_mask4;
/// ///
///typedef nfstime4 attr_notice4; ///typedef nfstime4 attr_notice4;
/// ///
///struct GET_DIR_DELEGATION4args { ///struct GET_DIR_DELEGATION4args {
/// /* CURRENT_FH: delegated directory */ /// /* CURRENT_FH: delegated directory */
/// bool gdda_signal_deleg_avail; /// bool gdda_signal_deleg_avail;
/// notification_mask4 gdda_notification_types; /// bitmap4 gdda_notification_types;
/// attr_notice4 gdda_child_attr_delay; /// attr_notice4 gdda_child_attr_delay;
/// attr_notice4 gdda_dir_attr_delay; /// attr_notice4 gdda_dir_attr_delay;
/// bitmap4 gdda_child_attributes; /// bitmap4 gdda_child_attributes;
/// bitmap4 gdda_dir_attributes; /// bitmap4 gdda_dir_attributes;
///}; ///};
///struct GET_DIR_DELEGATION4resok { ///struct GET_DIR_DELEGATION4resok {
/// verifier4 gddr_cookieverf; /// verifier4 gddr_cookieverf;
/// /* Stateid for get_dir_delegation */ /// /* Stateid for get_dir_delegation */
/// stateid4 gddr_stateid; /// stateid4 gddr_stateid;
/// /* Which notifications can the server support */ /// /* Which notifications can the server support */
/// notification_mask4 gddr_notification; /// bitmap4 gddr_notification;
/// bitmap4 gddr_child_attributes; /// bitmap4 gddr_child_attributes;
/// bitmap4 gddr_dir_attributes; /// bitmap4 gddr_dir_attributes;
///}; ///};
/// ///
///enum gddrnf4_status { ///enum gddrnf4_status {
/// GDD4_OK = 0, /// GDD4_OK = 0,
/// GDD4_UNAVAIL = 1 /// GDD4_UNAVAIL = 1
///}; ///};
/// ///
///union GET_DIR_DELEGATION4res_non_fatal ///union GET_DIR_DELEGATION4res_non_fatal
skipping to change at page 49, line 49 skipping to change at page 49, line 43
/// case NFS4_OK: /// case NFS4_OK:
/// GET_DIR_DELEGATION4res_non_fatal gddr_res_non_fatal4; /// GET_DIR_DELEGATION4res_non_fatal gddr_res_non_fatal4;
/// default: /// default:
/// void; /// void;
///}; ///};
/// ///
///struct GETDEVICEINFO4args { ///struct GETDEVICEINFO4args {
/// deviceid4 gdia_device_id; /// deviceid4 gdia_device_id;
/// layouttype4 gdia_layout_type; /// layouttype4 gdia_layout_type;
/// count4 gdia_maxcount; /// count4 gdia_maxcount;
/// notification_mask4 gdia_notify_types; /// bitmap4 gdia_notify_types;
///}; ///};
/// ///
///struct GETDEVICEINFO4resok { ///struct GETDEVICEINFO4resok {
/// device_addr4 gdir_device_addr; /// device_addr4 gdir_device_addr;
/// notification_mask4 gdir_notification; /// bitmap4 gdir_notification;
///}; ///};
/// ///
///union GETDEVICEINFO4res switch (nfsstat4 gdir_status) { ///union GETDEVICEINFO4res switch (nfsstat4 gdir_status) {
///case NFS4_OK: ///case NFS4_OK:
/// GETDEVICEINFO4resok gdir_resok4; /// GETDEVICEINFO4resok gdir_resok4;
///case NFS4ERR_TOOSMALL: ///case NFS4ERR_TOOSMALL:
/// count4 gdir_mincount; /// count4 gdir_mincount;
///default: ///default:
/// void; /// void;
///}; ///};
/// ///
///struct GETDEVICELIST4args { ///struct GETDEVICELIST4args {
/// /* CURRENT_FH: object belonging to the file system */
/// layouttype4 gdla_layout_type; /// layouttype4 gdla_layout_type;
/// count4 gdla_maxcount; ///
/// /* number of deviceIDs to return */
/// count4 gdla_maxdevices;
///
/// nfs_cookie4 gdla_cookie; /// nfs_cookie4 gdla_cookie;
/// verifier4 gdla_cookieverf; /// verifier4 gdla_cookieverf;
/// notification_mask4 gdla_notify_types;
///}; ///};
/// ///
///struct GETDEVICELIST4resok { ///struct GETDEVICELIST4resok {
/// nfs_cookie4 gdlr_cookie; /// nfs_cookie4 gdlr_cookie;
/// verifier4 gdlr_cookieverf; /// verifier4 gdlr_cookieverf;
/// notification_mask4 gdlr_notification; /// deviceid4 gdlr_deviceid_list<>;
/// devlist_item4 gdlr_devinfo_list<>;
/// bool gdlr_eof; /// bool gdlr_eof;
///}; ///};
/// ///
///union GETDEVICELIST4res switch (nfsstat4 gdlr_status) { ///union GETDEVICELIST4res switch (nfsstat4 gdlr_status) {
///case NFS4_OK: ///case NFS4_OK:
/// GETDEVICELIST4resok gdlr_resok4; /// GETDEVICELIST4resok gdlr_resok4;
///case NFS4ERR_TOOSMALL:
/// count4 gdlr_mincount;
///default: ///default:
/// void; /// void;
///}; ///};
/// ///
///union newtime4 switch (bool nt_timechanged) { ///union newtime4 switch (bool nt_timechanged) {
///case TRUE: ///case TRUE:
/// nfstime4 nt_time; /// nfstime4 nt_time;
///case FALSE: ///case FALSE:
/// void; /// void;
///}; ///};
skipping to change at page 65, line 17 skipping to change at page 65, line 11
/// verifier4 nv_new_cookieverf; /// verifier4 nv_new_cookieverf;
///}; ///};
/// ///
////* ////*
/// * Objects of type notify_<>4 and /// * Objects of type notify_<>4 and
/// * notify_device_<>4 are encoded in this. /// * notify_device_<>4 are encoded in this.
/// */ /// */
///typedef opaque notifylist4<>; ///typedef opaque notifylist4<>;
/// ///
///struct notify4 { ///struct notify4 {
/// /* composed from notify_type4 */ /// /* composed from notify_type4 or notify_deviceid_type4 */
/// bitmap4 notify_mask; /// bitmap4 notify_mask;
/// notifylist4 notify_vals; /// notifylist4 notify_vals;
///}; ///};
/// ///
///struct CB_NOTIFY4args { ///struct CB_NOTIFY4args {
/// stateid4 cna_stateid; /// stateid4 cna_stateid;
/// nfs_fh4 cna_fh; /// nfs_fh4 cna_fh;
/// notify4 cna_changes<>; /// notify4 cna_changes<>;
///}; ///};
/// ///
skipping to change at page 67, line 36 skipping to change at page 67, line 30
///}; ///};
/// ///
///struct CB_NOTIFY_LOCK4res { ///struct CB_NOTIFY_LOCK4res {
/// nfsstat4 cnlr_status; /// nfsstat4 cnlr_status;
///}; ///};
/// ///
////* ////*
/// * Device notification types. /// * Device notification types.
/// */ /// */
///enum notify_deviceid_type4 { ///enum notify_deviceid_type4 {
/// NOTIFY_DEVICEID4_ADD = 0,
/// NOTIFY_DEVICEID4_CHANGE = 1, /// NOTIFY_DEVICEID4_CHANGE = 1,
/// NOTIFY_DEVICEID4_DELETE = 2 /// NOTIFY_DEVICEID4_DELETE = 2
///}; ///};
/// ///
////* For NOTIFY4_DEVICEID4_ADD or NOTIFY4_DEVICEID4_DELETE */ ////* For NOTIFY4_DEVICEID4_DELETE */
///struct notify_deviceid_add_or_delete4 { ///struct notify_deviceid_delete4 {
/// layouttype4 ndaod_layouttype; /// layouttype4 ndd_layouttype;
/// deviceid4 ndaod_deviceid; /// deviceid4 ndd_deviceid;
///}; ///};
/// ///
////* For NOTIFY4_DEVICEID4_CHANGE */ ////* For NOTIFY4_DEVICEID4_CHANGE */
///struct notify_deviceid_change4 { ///struct notify_deviceid_change4 {
/// layouttype4 ndc_layouttype; /// layouttype4 ndc_layouttype;
/// deviceid4 ndc_deviceid; /// deviceid4 ndc_deviceid;
/// bool ndc_immediate; /// bool ndc_immediate;
///}; ///};
/// ///
///struct CB_NOTIFY_DEVICEID4args { ///struct CB_NOTIFY_DEVICEID4args {
skipping to change at page 71, line 19 skipping to change at page 71, line 12
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", March 1997. Levels", March 1997.
[2] Eisler, M., "XDR: External Data Representation Standard", [2] Eisler, M., "XDR: External Data Representation Standard",
STD 67, RFC 4506, May 2006. STD 67, RFC 4506, May 2006.
4.2. Informative References 4.2. Informative References
[3] Shepler, S., Eisler, M., and D. Noveck, "NFS Version 4.1, A Work [3] Shepler, S., Eisler, M., and D. Noveck, "NFS Version 4.1, A Work
In Progress", Internet In Progress", Internet
Draft draft-ietf-nfsv4-minorversion1-XX.txt, November 2007. Draft draft-ietf-nfsv4-minorversion1-XX.txt, December 2007.
Authors' Addresses Authors' Addresses
Spencer Shepler Spencer Shepler
Sun Microsystems, Inc. Sun Microsystems, Inc.
7808 Moonflower Drive 7808 Moonflower Drive
Austin, TX 78750 Austin, TX 78750
USA USA
Phone: +1-512-401-1080 Phone: +1-512-401-1080
skipping to change at page 73, line 7 skipping to change at page 72, line 7
NetApp NetApp
1601 Trapelo Road, Suite 16 1601 Trapelo Road, Suite 16
Waltham, MA 02454 Waltham, MA 02454
USA USA
Phone: +1-781-768-5347 Phone: +1-781-768-5347
Email: dnoveck@netapp.com Email: dnoveck@netapp.com
Full Copyright Statement Full Copyright Statement
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors contained in BCP 78, and except as set forth therein, the authors
retain all their rights. retain all their rights.
This document and the information contained herein are provided on an This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
 End of changes. 26 change blocks. 
38 lines changed or deleted 31 lines changed or added

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