draft-ietf-nfsv4-rfc3530bis-dot-x-07.txt   draft-ietf-nfsv4-rfc3530bis-dot-x-08.txt 
NFSv4 T. Haynes, Ed. NFSv4 T. Haynes, Ed.
Internet-Draft NetApp Internet-Draft NetApp
Intended status: Standards Track D. Noveck, Ed. Intended status: Standards Track D. Noveck, Ed.
Expires: October 10, 2011 EMC Expires: February 17, 2012 EMC
April 08, 2011 August 16, 2011
Network File System (NFS) Version 4 Network File System (NFS) Version 4
External Data Representation Standard (XDR) Description External Data Representation Standard (XDR) Description
draft-ietf-nfsv4-rfc3530bis-dot-x-07.txt draft-ietf-nfsv4-rfc3530bis-dot-x-08.txt
Abstract Abstract
The Network File System (NFS) version 4 is a distributed filesystem The Network File System (NFS) version 4 is a distributed filesystem
protocol which owes heritage to NFS protocol version 2, RFC 1094, and protocol which owes heritage to NFS protocol version 2, RFC 1094, and
version 3, RFC 1813. Unlike earlier versions, the NFS version 4 version 3, RFC 1813. Unlike earlier versions, the NFS version 4
protocol supports traditional file access while integrating support protocol supports traditional file access while integrating support
for file locking and the mount protocol. In addition, support for for file locking and the mount protocol. In addition, support for
strong security (and its negotiation), compound operations, client strong security (and its negotiation), compound operations, client
caching, and internationalization have been added. Of course, caching, and internationalization have been added. Of course,
attention has been applied to making NFS version 4 operate well in an attention has been applied to making NFS version 4 operate well in an
Internet environment. Internet environment.
This document, together with RFC 3530bis replaces RFC 3530 as the This document, together with RFC3530bis replaces RFC 3530 as the
definition of the NFS version 4 protocol. definition of the NFS version 4 protocol.
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].
Status of this Memo Status of this Memo
skipping to change at page 1, line 49 skipping to change at page 1, line 49
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 October 10, 2011. This Internet-Draft will expire on February 17, 2012.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2011 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 30 skipping to change at page 4, line 30
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-rfc3530bis-12 /// * draft-ietf-nfsv4-rfc3530bis-13
/// * Last updated Fri Apr 8 17:53:42 CDT 2011 /// * Last updated Tue Aug 16 20:34:02 CDT 2011
/// */ /// */
/// /* /// /*
/// * Copyright (C) The IETF Trust (2009-2011) /// * Copyright (C) The IETF Trust (2009-2011)
/// * All Rights Reserved. /// * All Rights Reserved.
/// * /// *
/// * Copyright (C) The Internet Society (1998-2011). /// * Copyright (C) The Internet Society (1998-2011).
/// * All Rights Reserved. /// * All Rights Reserved.
/// */ /// */
/// ///
/// /* /// /*
skipping to change at page 7, line 28 skipping to change at page 7, line 28
/// typedef uint32_t count4; /// typedef uint32_t count4;
/// typedef uint64_t length4; /// typedef uint64_t length4;
/// typedef uint32_t mode4; /// typedef uint32_t mode4;
/// typedef uint64_t nfs_cookie4; /// typedef uint64_t nfs_cookie4;
/// typedef opaque nfs_fh4<NFS4_FHSIZE>; /// typedef opaque nfs_fh4<NFS4_FHSIZE>;
/// typedef uint64_t offset4; /// typedef uint64_t offset4;
/// typedef uint32_t qop4; /// typedef uint32_t qop4;
/// typedef opaque sec_oid4<>; /// typedef opaque sec_oid4<>;
/// typedef uint32_t seqid4; /// typedef uint32_t seqid4;
/// typedef opaque utf8string<>; /// typedef opaque utf8string<>;
/// typedef utf8string utf8_should; /// typedef utf8string utf8_expected;
/// typedef utf8string utf8val_should; /// typedef utf8string utf8val_RECOMMENDED4;
/// typedef utf8string utf8val_must; /// typedef utf8string utf8val_REQUIRED4;
/// typedef utf8string ascii_must; /// typedef utf8string ascii_REQUIRED4;
/// typedef utf8_should comptag4; /// typedef utf8_expected comptag4;
/// typedef utf8val_should component4; /// typedef utf8val_RECOMMENDED4 component4;
/// typedef utf8val_should linktext4; /// typedef utf8val_RECOMMENDED4 linktext4;
/// typedef component4 pathname4<>; /// typedef component4 pathname4<>;
/// typedef uint64_t nfs_lockid4; /// typedef uint64_t nfs_lockid4;
/// typedef opaque verifier4[NFS4_VERIFIER_SIZE]; /// typedef opaque verifier4[NFS4_VERIFIER_SIZE];
/// ///
/// ///
/// /* /// /*
/// * Timeval /// * Timeval
/// */ /// */
/// struct nfstime4 { /// struct nfstime4 {
/// int64_t seconds; /// int64_t seconds;
skipping to change at page 8, line 31 skipping to change at page 8, line 31
/// struct fsid4 { /// struct fsid4 {
/// uint64_t major; /// uint64_t major;
/// uint64_t minor; /// uint64_t minor;
/// }; /// };
/// ///
/// ///
/// /* /// /*
/// * Filesystem locations attribute for relocation/migration /// * Filesystem locations attribute for relocation/migration
/// */ /// */
/// struct fs_location4 { /// struct fs_location4 {
/// utf8val_must server<>; /// utf8val_REQUIRED4 server<>;
/// pathname4 rootpath; /// pathname4 rootpath;
/// }; /// };
/// ///
/// struct fs_locations4 { /// struct fs_locations4 {
/// pathname4 fs_root; /// pathname4 fs_root;
/// fs_location4 locations<>; /// fs_location4 locations<>;
/// }; /// };
/// ///
/// ///
/// /* /// /*
/// * Various Access Control Entry definitions /// * Various Access Control Entry definitions
skipping to change at page 11, line 8 skipping to change at page 11, line 8
/// * ACE4_EXECUTE /// * ACE4_EXECUTE
/// * ACE4_SYNCHRONIZE /// * ACE4_SYNCHRONIZE
/// */ /// */
/// const ACE4_GENERIC_EXECUTE = 0x001200A0; /// const ACE4_GENERIC_EXECUTE = 0x001200A0;
/// ///
/// ///
/// /* /// /*
/// * Access Control Entry definition /// * Access Control Entry definition
/// */ /// */
/// struct nfsace4 { /// struct nfsace4 {
/// acetype4 type; /// acetype4 type;
/// aceflag4 flag; /// aceflag4 flag;
/// acemask4 access_mask; /// acemask4 access_mask;
/// utf8val_must who; /// utf8val_REQUIRED4 who;
/// }; /// };
/// ///
/// ///
/// /* /// /*
/// * Field definitions for the fattr4_mode attribute /// * Field definitions for the fattr4_mode attribute
/// */ /// */
/// const MODE4_SUID = 0x800; /* set user id on execution */ /// const MODE4_SUID = 0x800; /* set user id on execution */
/// const MODE4_SGID = 0x400; /* set group id on execution */ /// const MODE4_SGID = 0x400; /* set group id on execution */
/// const MODE4_SVTX = 0x200; /* save text even after use */ /// const MODE4_SVTX = 0x200; /* save text even after use */
/// const MODE4_RUSR = 0x100; /* read permission: owner */ /// const MODE4_RUSR = 0x100; /* read permission: owner */
skipping to change at page 12, line 4 skipping to change at page 12, line 4
/// /* /// /*
/// * Values for fattr4_fh_expire_type /// * Values for fattr4_fh_expire_type
/// */ /// */
/// const FH4_PERSISTENT = 0x00000000; /// const FH4_PERSISTENT = 0x00000000;
/// const FH4_NOEXPIRE_WITH_OPEN = 0x00000001; /// const FH4_NOEXPIRE_WITH_OPEN = 0x00000001;
/// const FH4_VOLATILE_ANY = 0x00000002; /// const FH4_VOLATILE_ANY = 0x00000002;
/// const FH4_VOL_MIGRATION = 0x00000004; /// const FH4_VOL_MIGRATION = 0x00000004;
/// const FH4_VOL_RENAME = 0x00000008; /// const FH4_VOL_RENAME = 0x00000008;
/// ///
/// ///
/// 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;
/// typedef changeid4 fattr4_change; /// typedef changeid4 fattr4_change;
/// typedef uint64_t fattr4_size; /// typedef uint64_t fattr4_size;
/// typedef bool fattr4_link_support; /// typedef bool fattr4_link_support;
/// typedef bool fattr4_symlink_support; /// typedef bool fattr4_symlink_support;
/// typedef bool fattr4_named_attr; /// typedef bool fattr4_named_attr;
/// typedef fsid4 fattr4_fsid; /// typedef fsid4 fattr4_fsid;
/// typedef bool fattr4_unique_handles; /// typedef bool fattr4_unique_handles;
/// typedef uint32_t fattr4_lease_time; /// typedef uint32_t fattr4_lease_time;
/// typedef nfsstat4 fattr4_rdattr_error; /// typedef nfsstat4 fattr4_rdattr_error;
/// ///
/// typedef nfsace4 fattr4_acl<>; /// typedef nfsace4 fattr4_acl<>;
/// typedef uint32_t fattr4_aclsupport; /// typedef uint32_t fattr4_aclsupport;
/// typedef bool fattr4_archive; /// typedef bool fattr4_archive;
/// typedef bool fattr4_cansettime; /// typedef bool fattr4_cansettime;
/// typedef bool fattr4_case_insensitive; /// typedef bool fattr4_case_insensitive;
/// typedef bool fattr4_case_preserving; /// typedef bool fattr4_case_preserving;
/// typedef bool fattr4_chown_restricted; /// typedef bool fattr4_chown_restricted;
/// typedef uint64_t fattr4_fileid; /// typedef uint64_t fattr4_fileid;
/// typedef uint64_t fattr4_files_avail; /// typedef uint64_t fattr4_files_avail;
/// typedef nfs_fh4 fattr4_filehandle; /// typedef nfs_fh4 fattr4_filehandle;
/// typedef uint64_t fattr4_files_free; /// typedef uint64_t fattr4_files_free;
/// typedef uint64_t fattr4_files_total; /// typedef uint64_t fattr4_files_total;
/// typedef fs_locations4 fattr4_fs_locations; /// typedef fs_locations4 fattr4_fs_locations;
/// typedef bool fattr4_hidden; /// typedef bool fattr4_hidden;
/// typedef bool fattr4_homogeneous; /// typedef bool fattr4_homogeneous;
/// typedef uint64_t fattr4_maxfilesize; /// typedef uint64_t fattr4_maxfilesize;
/// typedef uint32_t fattr4_maxlink; /// typedef uint32_t fattr4_maxlink;
/// typedef uint32_t fattr4_maxname; /// typedef uint32_t fattr4_maxname;
/// typedef uint64_t fattr4_maxread; /// typedef uint64_t fattr4_maxread;
/// typedef uint64_t fattr4_maxwrite; /// typedef uint64_t fattr4_maxwrite;
/// typedef ascii_must fattr4_mimetype; /// typedef ascii_REQUIRED4 fattr4_mimetype;
/// typedef mode4 fattr4_mode; /// typedef mode4 fattr4_mode;
/// typedef uint64_t fattr4_mounted_on_fileid; /// typedef uint64_t fattr4_mounted_on_fileid;
/// typedef bool fattr4_no_trunc; /// typedef bool fattr4_no_trunc;
/// typedef uint32_t fattr4_numlinks; /// typedef uint32_t fattr4_numlinks;
/// typedef utf8val_must fattr4_owner; /// typedef utf8val_REQUIRED4 fattr4_owner;
/// typedef utf8val_must fattr4_owner_group; /// typedef utf8val_REQUIRED4 fattr4_owner_group;
/// typedef uint64_t fattr4_quota_avail_hard; /// typedef uint64_t fattr4_quota_avail_hard;
/// typedef uint64_t fattr4_quota_avail_soft; /// typedef uint64_t fattr4_quota_avail_soft;
/// typedef uint64_t fattr4_quota_used; /// typedef uint64_t fattr4_quota_used;
/// typedef specdata4 fattr4_rawdev; /// typedef specdata4 fattr4_rawdev;
/// typedef uint64_t fattr4_space_avail; /// typedef uint64_t fattr4_space_avail;
/// typedef uint64_t fattr4_space_free; /// typedef uint64_t fattr4_space_free;
/// typedef uint64_t fattr4_space_total; /// typedef uint64_t fattr4_space_total;
/// typedef uint64_t fattr4_space_used; /// typedef uint64_t fattr4_space_used;
/// typedef bool fattr4_system; /// typedef bool fattr4_system;
/// typedef nfstime4 fattr4_time_access; /// typedef nfstime4 fattr4_time_access;
/// typedef settime4 fattr4_time_access_set; /// typedef settime4 fattr4_time_access_set;
/// typedef nfstime4 fattr4_time_backup; /// typedef nfstime4 fattr4_time_backup;
/// typedef nfstime4 fattr4_time_create; /// typedef nfstime4 fattr4_time_create;
/// typedef nfstime4 fattr4_time_delta; /// typedef nfstime4 fattr4_time_delta;
/// typedef nfstime4 fattr4_time_metadata; /// typedef nfstime4 fattr4_time_metadata;
/// typedef nfstime4 fattr4_time_modify; /// typedef nfstime4 fattr4_time_modify;
/// typedef settime4 fattr4_time_modify_set; /// typedef settime4 fattr4_time_modify_set;
/// ///
/// ///
/// /* /// /*
/// * Mandatory Attributes /// * Mandatory Attributes
/// */ /// */
/// const FATTR4_SUPPORTED_ATTRS = 0; /// const FATTR4_SUPPORTED_ATTRS = 0;
/// const FATTR4_TYPE = 1; /// const FATTR4_TYPE = 1;
/// const FATTR4_FH_EXPIRE_TYPE = 2; /// const FATTR4_FH_EXPIRE_TYPE = 2;
/// const FATTR4_CHANGE = 3; /// const FATTR4_CHANGE = 3;
/// const FATTR4_SIZE = 4; /// const FATTR4_SIZE = 4;
skipping to change at page 37, line 45 skipping to change at page 37, line 45
David Quigley tested the extraction of the .x file from this document David Quigley tested the extraction of the .x file from this document
and corrected the two resulting errors. and corrected the two resulting errors.
Appendix B. RFC Editor Notes Appendix B. RFC Editor Notes
[RFC Editor: please remove this section prior to publishing this [RFC Editor: please remove this section prior to publishing this
document as an RFC] document as an RFC]
[RFC Editor: prior to publishing this document as an RFC, please [RFC Editor: prior to publishing this document as an RFC, please
replace all occurrences of RFCTBD10 with RFCxxxx where xxxx is the replace all occurences of RFC3530bis with RFCxxxx where xxxx is the
RFC number of this document] RFC number assigned to the XDR document.]
[RFC Editor: Please note that there is also a reference entry that
needs to be modified for the companion document.]
Authors' Addresses Authors' Addresses
Thomas Haynes (editor) Thomas Haynes (editor)
NetApp NetApp
9110 E 66th St 9110 E 66th St
Tulsa, OK 74133 Tulsa, OK 74133
USA USA
Phone: +1-918-307-1415 Phone: +1-918-307-1415
 End of changes. 11 change blocks. 
78 lines changed or deleted 81 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/