draft-ietf-nfsv4-minorversion1-dot-x-12.txt   rfc5662.txt 
NFSv4 S. Shepler Internet Engineering Task Force (IETF) S. Shepler, Ed.
Internet-Draft M. Eisler Request for Comments: 5662 Storspeed, Inc.
Intended status: Standards Track D. Noveck Category: Standards Track M. Eisler, Ed.
Expires: June 18, 2009 Editors ISSN: 2070-1721 D. Noveck, Ed.
December 15, 2008 NetApp
January 2010
NFSv4 Minor Version 1 XDR Description
draft-ietf-nfsv4-minorversion1-dot-x-12.txt
Status of this Memo Network File System (NFS) Version 4 Minor Version 1
External Data Representation Standard (XDR) Description
This Internet-Draft is submitted to IETF in full conformance with the Abstract
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering This document provides the External Data Representation Standard
Task Force (IETF), its areas, and its working groups. Note that (XDR) description for Network File System version 4 (NFSv4) minor
other groups may also distribute working documents as Internet- version 1.
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Status of This Memo
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at This is an Internet Standards Track document.
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at This document is a product of the Internet Engineering Task Force
http://www.ietf.org/shadow.html. (IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 5741.
This Internet-Draft will expire on June 18, 2009. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc5662.
Copyright Notice Copyright Notice
Copyright (c) 2008 IETF Trust and the persons identified as the Copyright (c) 2010 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Abstract Table of Contents
This Internet-Draft provides the XDR description for NFSv4 minor 1. Introduction ....................................................2
version one. 1.1. Requirements Language ......................................2
1.2. Code Components Licensing Notice ...........................2
2. XDR Description of NFSv4.1 ......................................2
3. Security Considerations ........................................72
4. IANA Considerations ............................................72
5. Normative References ...........................................72
Appendix A. Acknowledgments .......................................73
Requirements Language 1. Introduction
This document provides the External Data Representation Standard
(XDR) description for Network File System version 4 (NFSv4) minor
version 1.
1.1. 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 1.2. Code Components Licensing Notice
1. Code Components Licensing Notice . . . . . . . . . . . . . . . 3
2. XDR Description of NFSv4.1 . . . . . . . . . . . . . . . . . . 3
3. Security Considerations . . . . . . . . . . . . . . . . . . . 71
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 72
5. Normative References . . . . . . . . . . . . . . . . . . . . . 72
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 72
Appendix B. RFC Editor Notes . . . . . . . . . . . . . . . . . . 72
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 73
1. Code Components Licensing Notice
The XDR description and scripts for extracting the XDR description The XDR description and scripts for extracting the XDR description
are Code Components as described in Section 4 of "Legal Provisions are Code Components as described in Section 4 of "Legal Provisions
Relating to IETF Documents" [2]. Relating to IETF Documents" [2].
2. XDR Description of NFSv4.1 2. XDR Description of NFSv4.1
This document contains the XDR ([3]) description of NFSv4.1 protocol This document contains the XDR ([3]) description of NFSv4.1 protocol
([4]). In order to facilitate implementations that support both ([4]). 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:
<CODE BEGINS> <CODE BEGINS>
#!/bin/sh #!/bin/sh
grep '^ *///' | sed 's?^ */// ??' | sed 's?^ *///$??' grep '^ *///' | sed 's?^ */// ??' | sed 's?^ *///$??'
<CODE ENDS> <CODE ENDS>
I.e. if the above script is stored in a file called "extract.sh", and That is, if the above script is stored in a file called "extract.sh",
this document is in a file called "spec.txt", then the reader can do: and this document is in a file called "spec.txt", then the reader can
do:
<CODE BEGINS> <CODE BEGINS>
sh extract.sh < spec.txt > nfs4_prot.x sh extract.sh < spec.txt > nfs4_prot.x
<CODE ENDS> <CODE ENDS>
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:
<CODE BEGINS> <CODE BEGINS>
/// /* /// /*
/// * Copyright (c) 2008 IETF Trust and the persons identified /// * Copyright (c) 2010 IETF Trust and the persons identified
/// * as the document authors. All rights reserved. /// * as the document authors. All rights reserved.
/// * /// *
/// * The document authors are identified in [RFC3530] and /// * The document authors are identified in RFC 3530 and
/// * [draft-ietf-nfsv4-minorversion1-xx.txt]. /// * RFC 5661.
/// * /// *
/// * Redistribution and use in source and binary forms, with /// * Redistribution and use in source and binary forms, with
/// * or without modification, are permitted provided that the /// * or without modification, are permitted provided that the
/// * following conditions are met: /// * following conditions are met:
/// * /// *
/// * o Redistributions of source code must retain the above /// * - Redistributions of source code must retain the above
/// * copyright notice, this list of conditions and the /// * copyright notice, this list of conditions and the
/// * following disclaimer. /// * following disclaimer.
/// * /// *
/// * o Redistributions in binary form must reproduce the above /// * - Redistributions in binary form must reproduce the above
/// * copyright notice, this list of conditions and the /// * copyright notice, this list of conditions and the
/// * following disclaimer in the documentation and/or other /// * following disclaimer in the documentation and/or other
/// * materials provided with the distribution. /// * materials provided with the distribution.
/// * /// *
/// * o Neither the name of Internet Society, IETF or IETF /// * - Neither the name of Internet Society, IETF or IETF
/// * Trust, nor the names of specific contributors, may be /// * Trust, nor the names of specific contributors, may be
/// * used to endorse or promote products derived from this /// * used to endorse or promote products derived from this
/// * software without specific prior written permission. /// * software without specific prior written permission.
/// * /// *
/// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS /// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS
/// * AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED /// * AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
/// * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE /// * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
/// * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS /// * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
/// * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO /// * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
/// * EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE /// * EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
/// * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, /// * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
/// * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT /// * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
/// * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR /// * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
/// * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS /// * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
/// * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF /// * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
/// * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, /// * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
/// * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING /// * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
/// * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF /// * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
/// * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /// * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
/// */ /// */
/// /* /// /*
/// * This code was derived from [RFC3530]. Please /// * This code was derived from RFC 3530. Please
/// * reproduce this note if possible. /// * reproduce this note if possible.
/// * /// *
/// * This file was machine generated for /// * This code was derived from RFC 5661. Please
/// * draft-ietf-nfsv4-minorversion1-29 /// * reproduce this note if possible.
/// * Last updated Mon Dec 15 11:26:38 PST 2008 /// *
/// * This file was machine generated from RFC 5662.
/// */ /// */
/// /* /// /*
/// * nfs4_prot.x /// * nfs4_prot.x
/// */ /// */
/// ///
/// %#ifndef _AUTH_SYS_DEFINE_FOR_NFSv41 /// %#ifndef _AUTH_SYS_DEFINE_FOR_NFSv41
/// %#define _AUTH_SYS_DEFINE_FOR_NFSv41 /// %#define _AUTH_SYS_DEFINE_FOR_NFSv41
/// %#include <rpc/auth_sys.h> /// %#include <rpc/auth_sys.h>
/// %typedef struct authsys_parms authsys_parms; /// %typedef struct authsys_parms authsys_parms;
/// %#endif _AUTH_SYS_DEFINE_FOR_NFSv41 /// %#endif /* _AUTH_SYS_DEFINE_FOR_NFSv41 */
/// ///
/// /* /// /*
/// * Basic typedefs for RFC 1832 data type definitions /// * Basic typedefs for RFC 1832 data type definitions
/// */ /// */
/// ///
/// /* /// /*
/// * typedef int int32_t; /// * typedef int int32_t;
/// * typedef unsigned int uint32_t; /// * typedef unsigned int uint32_t;
/// * typedef hyper int64_t; /// * typedef hyper int64_t;
/// * typedef unsigned hyper uint64_t; /// * typedef unsigned hyper uint64_t;
skipping to change at page 15, line 16 skipping to change at page 15, line 28
/// LAYOUT4_BLOCK_VOLUME = 0x3 /// LAYOUT4_BLOCK_VOLUME = 0x3
/// }; /// };
/// ///
/// struct layout_content4 { /// struct layout_content4 {
/// layouttype4 loc_type; /// layouttype4 loc_type;
/// opaque loc_body<>; /// opaque loc_body<>;
/// }; /// };
/// ///
/// ///
/// %/* /// %/*
/// %/* LAYOUT4_OSD2_OBJECTS loc_body description /// % * LAYOUT4_OSD2_OBJECTS loc_body description
/// % * is in a separate .x file /// % * is in a separate .x file
/// % */ /// % */
/// % /// %
/// %/* /// %/*
/// %/* LAYOUT4_BLOCK_VOLUME loc_body description /// % * LAYOUT4_BLOCK_VOLUME loc_body description
/// % * is in a separate .x file /// % * is in a separate .x file
/// % */ /// % */
/// ///
/// struct layouthint4 { /// struct layouthint4 {
/// layouttype4 loh_type; /// layouttype4 loh_type;
/// opaque loh_body<>; /// opaque loh_body<>;
/// }; /// };
/// ///
/// enum layoutiomode4 { /// enum layoutiomode4 {
/// LAYOUTIOMODE4_READ = 1, /// LAYOUTIOMODE4_READ = 1,
skipping to change at page 17, line 49 skipping to change at page 18, line 13
/// const FSCHARSET_CAP4_CONTAINS_NON_UTF8 = 0x1; /// const FSCHARSET_CAP4_CONTAINS_NON_UTF8 = 0x1;
/// const FSCHARSET_CAP4_ALLOWS_ONLY_UTF8 = 0x2; /// const FSCHARSET_CAP4_ALLOWS_ONLY_UTF8 = 0x2;
/// ///
/// typedef uint32_t fs_charset_cap4; /// typedef uint32_t fs_charset_cap4;
/// ///
/// ///
/// /* /// /*
/// * NFSv4.1 attributes /// * NFSv4.1 attributes
/// */ /// */
/// typedef bitmap4 fattr4_supported_attrs; /// typedef bitmap4 fattr4_supported_attrs;
/// typedef bitmap4 fattr4_suppattr_exclcreat;
/// 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 nfs_lease4 fattr4_lease_time; /// typedef nfs_lease4 fattr4_lease_time;
skipping to change at page 19, line 13 skipping to change at page 19, line 24
/// 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;
/// /* /// /*
/// * attributes new to NFSv4.1 /// * attributes new to NFSv4.1
/// */ /// */
/// typedef bitmap4 fattr4_suppattr_exclcreat;
/// typedef nfstime4 fattr4_dir_notif_delay; /// typedef nfstime4 fattr4_dir_notif_delay;
/// typedef nfstime4 fattr4_dirent_notif_delay; /// typedef nfstime4 fattr4_dirent_notif_delay;
/// typedef bool fattr4_absent;
/// typedef layouttype4 fattr4_fs_layout_types<>; /// typedef layouttype4 fattr4_fs_layout_types<>;
/// typedef fs4_status fattr4_fs_status; /// typedef fs4_status fattr4_fs_status;
/// typedef fs_charset_cap4 fattr4_fs_charset_cap4; /// typedef fs_charset_cap4 fattr4_fs_charset_cap;
/// typedef uint32_t fattr4_layout_alignment; /// typedef uint32_t fattr4_layout_alignment;
/// typedef uint32_t fattr4_layout_blksize; /// typedef uint32_t fattr4_layout_blksize;
/// typedef layouthint4 fattr4_layout_hint; /// typedef layouthint4 fattr4_layout_hint;
/// typedef layouttype4 fattr4_layout_types<>; /// typedef layouttype4 fattr4_layout_types<>;
/// typedef mdsthreshold4 fattr4_mdsthreshold; /// typedef mdsthreshold4 fattr4_mdsthreshold;
/// typedef retention_get4 fattr4_retention_get; /// typedef retention_get4 fattr4_retention_get;
/// typedef retention_set4 fattr4_retention_set; /// typedef retention_set4 fattr4_retention_set;
/// typedef retention_get4 fattr4_retentevt_get; /// typedef retention_get4 fattr4_retentevt_get;
/// typedef retention_set4 fattr4_retentevt_set; /// typedef retention_set4 fattr4_retentevt_set;
/// typedef uint64_t fattr4_retention_hold; /// typedef uint64_t fattr4_retention_hold;
/// typedef nfsacl41 fattr4_dacl; /// typedef nfsacl41 fattr4_dacl;
/// typedef nfsacl41 fattr4_sacl; /// typedef nfsacl41 fattr4_sacl;
/// typedef change_policy4 fattr4_change_policy;
/// ///
/// /// %/*
/// /* /// % * REQUIRED 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;
/// const FATTR4_LINK_SUPPORT = 5; /// const FATTR4_LINK_SUPPORT = 5;
/// const FATTR4_SYMLINK_SUPPORT = 6; /// const FATTR4_SYMLINK_SUPPORT = 6;
/// const FATTR4_NAMED_ATTR = 7; /// const FATTR4_NAMED_ATTR = 7;
/// const FATTR4_FSID = 8; /// const FATTR4_FSID = 8;
/// const FATTR4_UNIQUE_HANDLES = 9; /// const FATTR4_UNIQUE_HANDLES = 9;
/// const FATTR4_LEASE_TIME = 10; /// const FATTR4_LEASE_TIME = 10;
/// const FATTR4_RDATTR_ERROR = 11; /// const FATTR4_RDATTR_ERROR = 11;
/// const FATTR4_FILEHANDLE = 19; /// const FATTR4_FILEHANDLE = 19;
/// %/* new to NFSV4.1 */
/// const FATTR4_SUPPATTR_EXCLCREAT = 75; /// const FATTR4_SUPPATTR_EXCLCREAT = 75;
/// ///
/// /* /// %/*
/// * Recommended Attributes /// % * RECOMMENDED Attributes
/// */ /// % */
/// const FATTR4_ACL = 12; /// const FATTR4_ACL = 12;
/// const FATTR4_ACLSUPPORT = 13; /// const FATTR4_ACLSUPPORT = 13;
/// const FATTR4_ARCHIVE = 14; /// const FATTR4_ARCHIVE = 14;
/// const FATTR4_CANSETTIME = 15; /// const FATTR4_CANSETTIME = 15;
/// const FATTR4_CASE_INSENSITIVE = 16; /// const FATTR4_CASE_INSENSITIVE = 16;
/// const FATTR4_CASE_PRESERVING = 17; /// const FATTR4_CASE_PRESERVING = 17;
/// const FATTR4_CHOWN_RESTRICTED = 18; /// const FATTR4_CHOWN_RESTRICTED = 18;
/// const FATTR4_FILEID = 20; /// const FATTR4_FILEID = 20;
/// const FATTR4_FILES_AVAIL = 21; /// const FATTR4_FILES_AVAIL = 21;
/// const FATTR4_FILES_FREE = 22; /// const FATTR4_FILES_FREE = 22;
skipping to change at page 20, line 49 skipping to change at page 21, line 13
/// const FATTR4_SYSTEM = 46; /// const FATTR4_SYSTEM = 46;
/// const FATTR4_TIME_ACCESS = 47; /// const FATTR4_TIME_ACCESS = 47;
/// const FATTR4_TIME_ACCESS_SET = 48; /// const FATTR4_TIME_ACCESS_SET = 48;
/// const FATTR4_TIME_BACKUP = 49; /// const FATTR4_TIME_BACKUP = 49;
/// const FATTR4_TIME_CREATE = 50; /// const FATTR4_TIME_CREATE = 50;
/// const FATTR4_TIME_DELTA = 51; /// const FATTR4_TIME_DELTA = 51;
/// const FATTR4_TIME_METADATA = 52; /// const FATTR4_TIME_METADATA = 52;
/// const FATTR4_TIME_MODIFY = 53; /// const FATTR4_TIME_MODIFY = 53;
/// const FATTR4_TIME_MODIFY_SET = 54; /// const FATTR4_TIME_MODIFY_SET = 54;
/// const FATTR4_MOUNTED_ON_FILEID = 55; /// const FATTR4_MOUNTED_ON_FILEID = 55;
/// %
/// %/* new to NFSV4.1 */
/// %
/// const FATTR4_DIR_NOTIF_DELAY = 56; /// const FATTR4_DIR_NOTIF_DELAY = 56;
/// const FATTR4_DIRENT_NOTIF_DELAY = 57; /// const FATTR4_DIRENT_NOTIF_DELAY = 57;
/// const FATTR4_DACL = 58; /// const FATTR4_DACL = 58;
/// const FATTR4_SACL = 59; /// const FATTR4_SACL = 59;
/// const FATTR4_CHANGE_POLICY = 60; /// const FATTR4_CHANGE_POLICY = 60;
/// const FATTR4_FS_STATUS = 61; /// const FATTR4_FS_STATUS = 61;
/// const FATTR4_FS_LAYOUT_TYPE = 62; /// const FATTR4_FS_LAYOUT_TYPES = 62;
/// const FATTR4_LAYOUT_HINT = 63; /// const FATTR4_LAYOUT_HINT = 63;
/// const FATTR4_LAYOUT_TYPE = 64; /// const FATTR4_LAYOUT_TYPES = 64;
/// const FATTR4_LAYOUT_BLKSIZE = 65; /// const FATTR4_LAYOUT_BLKSIZE = 65;
/// const FATTR4_LAYOUT_ALIGNMENT = 66; /// const FATTR4_LAYOUT_ALIGNMENT = 66;
/// const FATTR4_FS_LOCATIONS_INFO = 67; /// const FATTR4_FS_LOCATIONS_INFO = 67;
/// const FATTR4_MDSTHRESHOLD = 68; /// const FATTR4_MDSTHRESHOLD = 68;
/// const FATTR4_RETENTION_GET = 69; /// const FATTR4_RETENTION_GET = 69;
/// const FATTR4_RETENTION_SET = 70; /// const FATTR4_RETENTION_SET = 70;
/// const FATTR4_RETENTEVT_GET = 71; /// const FATTR4_RETENTEVT_GET = 71;
/// const FATTR4_RETENTEVT_SET = 72; /// const FATTR4_RETENTEVT_SET = 72;
/// const FATTR4_RETENTION_HOLD = 73; /// const FATTR4_RETENTION_HOLD = 73;
/// const FATTR4_MODE_SET_MASKED = 74; /// const FATTR4_MODE_SET_MASKED = 74;
skipping to change at page 25, line 40 skipping to change at page 26, line 7
/// ///
/// NFLH4_CARE_COMMIT_THRU_MDS /// NFLH4_CARE_COMMIT_THRU_MDS
/// = NFL4_UFLG_COMMIT_THRU_MDS, /// = NFL4_UFLG_COMMIT_THRU_MDS,
/// ///
/// NFLH4_CARE_STRIPE_UNIT_SIZE /// NFLH4_CARE_STRIPE_UNIT_SIZE
/// = 0x00000040, /// = 0x00000040,
/// ///
/// NFLH4_CARE_STRIPE_COUNT = 0x00000080 /// NFLH4_CARE_STRIPE_COUNT = 0x00000080
/// }; /// };
/// % /// %
/// %/* Encoded in the loh_body field of type layouthint4: */ /// %/* Encoded in the loh_body field of data type layouthint4: */
/// % /// %
/// struct nfsv4_1_file_layouthint4 { /// struct nfsv4_1_file_layouthint4 {
/// uint32_t nflh_care; /// uint32_t nflh_care;
/// nfl_util4 nflh_util; /// nfl_util4 nflh_util;
/// count4 nflh_stripe_count; /// count4 nflh_stripe_count;
/// }; /// };
/// ///
/// % /// %
/// ///
/// % /// %
/// typedef netaddr4 multipath_list4<>; /// typedef netaddr4 multipath_list4<>;
/// % /// %
/// %/* Encoded in the da_addr_body field of type device_addr4: */ /// %/*
/// % * Encoded in the da_addr_body field of
/// % * data type device_addr4:
/// % */
/// struct nfsv4_1_file_layout_ds_addr4 { /// struct nfsv4_1_file_layout_ds_addr4 {
/// uint32_t nflda_stripe_indices<>; /// uint32_t nflda_stripe_indices<>;
/// multipath_list4 nflda_multipath_ds_list<>; /// multipath_list4 nflda_multipath_ds_list<>;
/// }; /// };
/// ///
/// % /// %
/// ///
/// % /// %
/// %/* Encoded in the loc_body field of type layout_content4: */ /// %/*
/// % * Encoded in the loc_body field of
/// % * data type layout_content4:
/// % */
/// struct nfsv4_1_file_layout4 { /// struct nfsv4_1_file_layout4 {
/// deviceid4 nfl_deviceid; /// deviceid4 nfl_deviceid;
/// nfl_util4 nfl_util; /// nfl_util4 nfl_util;
/// uint32_t nfl_first_stripe_index; /// uint32_t nfl_first_stripe_index;
/// offset4 nfl_pattern_offset; /// offset4 nfl_pattern_offset;
/// nfs_fh4 nfl_fh_list<>; /// nfs_fh4 nfl_fh_list<>;
/// }; /// };
/// ///
/// % /// %
/// ///
/// %/* /// %/*
/// % * Encoded in the lou_body field of type layoutupdate4: /// % * Encoded in the lou_body field of data type layoutupdate4:
/// % * Nothing. lou_body is a zero length array of octets. /// % * Nothing. lou_body is a zero length array of bytes.
/// % */ /// % */
/// % /// %
/// ///
/// %/*
/// % * Encoded in the lrf_body field of
/// % * data type layoutreturn_file4:
/// % * Nothing. lrf_body is a zero length array of bytes.
/// % */
/// %
/// ///
/// ///
/// const ACCESS4_READ = 0x00000001; /// const ACCESS4_READ = 0x00000001;
/// const ACCESS4_LOOKUP = 0x00000002; /// const ACCESS4_LOOKUP = 0x00000002;
/// const ACCESS4_MODIFY = 0x00000004; /// const ACCESS4_MODIFY = 0x00000004;
/// const ACCESS4_EXTEND = 0x00000008; /// const ACCESS4_EXTEND = 0x00000008;
/// const ACCESS4_DELETE = 0x00000010; /// const ACCESS4_DELETE = 0x00000010;
/// const ACCESS4_EXECUTE = 0x00000020; /// const ACCESS4_EXECUTE = 0x00000020;
/// ///
/// struct ACCESS4args { /// struct ACCESS4args {
skipping to change at page 35, line 40 skipping to change at page 36, line 20
/// /* /// /*
/// * Right to file based on a delegation /// * Right to file based on a delegation
/// * granted to a previous boot instance /// * granted to a previous boot instance
/// * of the client. File is specified by name. /// * of the client. File is specified by name.
/// */ /// */
/// case CLAIM_DELEGATE_PREV: /// case CLAIM_DELEGATE_PREV:
/// /* CURRENT_FH: directory */ /// /* CURRENT_FH: directory */
/// component4 file_delegate_prev; /// component4 file_delegate_prev;
/// ///
/// /* /// /*
/// * Like CLAIM_NULL. No special rights /// * Like CLAIM_NULL. No special rights
/// * to file. Ordinary OPEN of the /// * to file. Ordinary OPEN of the
/// * specified file by current filehandle. /// * specified file by current filehandle.
/// */ /// */
/// case CLAIM_FH: /* new to v4.1 */ /// case CLAIM_FH: /* new to v4.1 */
/// /* CURRENT_FH: regular file to open */ /// /* CURRENT_FH: regular file to open */
/// void; /// void;
/// ///
/// /* /// /*
/// * Like CLAIM_DELEGATE_PREV. Right to file based on a /// * Like CLAIM_DELEGATE_PREV. Right to file based on a
/// * delegation granted to a previous boot /// * delegation granted to a previous boot
/// * instance of the client. File is identified by /// * instance of the client. File is identified by
/// * by filehandle. /// * by filehandle.
/// */ /// */
/// case CLAIM_DELEG_PREV_FH: /* new to v4.1 */ /// case CLAIM_DELEG_PREV_FH: /* new to v4.1 */
/// /* CURRENT_FH: file being opened */ /// /* CURRENT_FH: file being opened */
/// void; /// void;
/// ///
/// /* /// /*
/// * Like CLAIM_DELEGATE_CUR. Right to file based on /// * Like CLAIM_DELEGATE_CUR. Right to file based on
/// * a delegation granted by the server. /// * a delegation granted by the server.
/// * File is identified by filehandle. /// * File is identified by filehandle.
/// */ /// */
/// case CLAIM_DELEG_CUR_FH: /* new to v4.1 */ /// case CLAIM_DELEG_CUR_FH: /* new to v4.1 */
/// /* CURRENT_FH: file being opened */ /// /* CURRENT_FH: file being opened */
/// stateid4 oc_delegate_stateid; /// stateid4 oc_delegate_stateid;
/// ///
/// }; /// };
/// ///
/// /* /// /*
skipping to change at page 37, line 25 skipping to change at page 38, line 4
/// ///
/// ///
/// enum why_no_delegation4 { /* new to v4.1 */ /// enum why_no_delegation4 { /* new to v4.1 */
/// WND4_NOT_WANTED = 0, /// WND4_NOT_WANTED = 0,
/// WND4_CONTENTION = 1, /// WND4_CONTENTION = 1,
/// WND4_RESOURCE = 2, /// WND4_RESOURCE = 2,
/// WND4_NOT_SUPP_FTYPE = 3, /// WND4_NOT_SUPP_FTYPE = 3,
/// WND4_WRITE_DELEG_NOT_SUPP_FTYPE = 4, /// WND4_WRITE_DELEG_NOT_SUPP_FTYPE = 4,
/// WND4_NOT_SUPP_UPGRADE = 5, /// WND4_NOT_SUPP_UPGRADE = 5,
/// WND4_NOT_SUPP_DOWNGRADE = 6, /// WND4_NOT_SUPP_DOWNGRADE = 6,
/// WND4_CANCELED = 7, /// WND4_CANCELLED = 7,
/// WND4_IS_DIR = 8 /// WND4_IS_DIR = 8
/// }; /// };
/// ///
/// union open_none_delegation4 /* new to v4.1 */ /// union open_none_delegation4 /* new to v4.1 */
/// switch (why_no_delegation4 ond_why) { /// switch (why_no_delegation4 ond_why) {
/// case WND4_CONTENTION: /// case WND4_CONTENTION:
/// bool ond_server_will_push_deleg; /// bool ond_server_will_push_deleg;
/// case WND4_RESOURCE: /// case WND4_RESOURCE:
/// bool ond_server_will_signal_avail; /// bool ond_server_will_signal_avail;
/// default: /// default:
skipping to change at page 55, line 37 skipping to change at page 56, line 16
/// ///
/// union TEST_STATEID4res switch (nfsstat4 tsr_status) { /// union TEST_STATEID4res switch (nfsstat4 tsr_status) {
/// case NFS4_OK: /// case NFS4_OK:
/// TEST_STATEID4resok tsr_resok4; /// TEST_STATEID4resok tsr_resok4;
/// default: /// default:
/// void; /// void;
/// }; /// };
/// ///
/// union deleg_claim4 switch (open_claim_type4 dc_claim) { /// union deleg_claim4 switch (open_claim_type4 dc_claim) {
/// /* /// /*
/// * No special rights to object. Ordinary delegation /// * No special rights to object. Ordinary delegation
/// * request of the specified object. Object identified /// * request of the specified object. Object identified
/// * by filehandle. /// * by filehandle.
/// */ /// */
/// case CLAIM_FH: /* new to v4.1 */ /// case CLAIM_FH: /* new to v4.1 */
/// /* CURRENT_FH: object being delegated */ /// /* CURRENT_FH: object being delegated */
/// void; /// void;
/// ///
/// /* /// /*
/// * Right to file based on a delegation granted /// * Right to file based on a delegation granted
/// * to a previous boot instance of the client. /// * to a previous boot instance of the client.
/// * File is specified by filehandle. /// * File is specified by filehandle.
skipping to change at page 72, line 12 skipping to change at page 72, line 35
See the Security Considerations section of [4]. See the Security Considerations section of [4].
4. IANA Considerations 4. IANA Considerations
See the IANA Considerations section of [4]. See the IANA Considerations section of [4].
5. Normative References 5. Normative References
[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", BCP 14, RFC 2119, March 1997.
[2] IETF Trust, "Legal Provisions Relating to IETF Documents", [2] IETF Trust, "Legal Provisions Relating to IETF Documents",
November 2008. November 2008.
[3] Eisler, M., "XDR: External Data Representation Standard", [3] Eisler, M., "XDR: External Data Representation Standard",
STD 67, RFC 4506, May 2006. STD 67, RFC 4506, May 2006.
[4] Shepler, S., Eisler, M., and D. Noveck, "NFS Version 4 Minor [4] Shepler, S., Ed., Eisler, M., Ed., and D. Noveck, Ed., "Network
Version 1", draft-ietf-nfsv4-minorversion1-29 (work in File System (NFS) Version 4 Minor Version 1 Protocol", RFC 5661,
progress), Dec 2008. January 2010.
Appendix A. Acknowledgements [5] Shepler, S., Callaghan, B., Robinson, D., Thurlow, R., Beame,
C., Eisler, M., and D. Noveck, "Network File System (NFS)
version 4 Protocol", RFC 3530, April 2003.
Appendix A. Acknowledgments
The authors are grateful to Lars Eggert for navigating the The authors are grateful to Lars Eggert for navigating the
intellectual property issues of this document. intellectual property issues of this document.
Appendix B. RFC Editor Notes
o [RFC Editor: please delete this section before publishing]
o [RFC Editor: after the appearance of,
* This code was derived from [RFC3530]. Please
* reproduce this note if possible.
please add this text with the three leading forward slashes on
each line of text (so that the text shows up in the self-
extracting Code Component):
* This code was derived from [RFCTBD1]. Please
* reproduce this note if possible.
where TBD1 is replaced with the number of the RFC that will
replace draft-ietf-nfsv4-minorversion1-xx.txt [4].]
o [RFC Editor: please replace these lines,
*
* This file was machine generated for
* draft-ietf-nfsv4-minorversion1-xx
* Last updated
with this text with the three leading forward slashes on each line
of text (so that the text shows up in the Code Component):
*
* This file was machine generated for RFCTBD1
where TBD1 is replaced with the RFC number of
draft-ietf-nfsv4-minorversion1-xx.txt [4].]
o [RFC Editor: please replace the entry in the "Normative
References" section that identifies
draft-ietf-nfsv4-minorversion1-xx.txt with an entry that describes
RFCTBD1, where TBD1 is replaced with the number of the RFC that
will replace draft-ietf-nfsv4-minorversion1-xx.txt. ]
o [RFC Editor: please replace all appearances of
draft-ietf-nfsv4-minorversion1-xx.txt with RFCTBD1, where TBD1 is
the number of the RFC that will replace
draft-ietf-nfsv4-minorversion1-xx.txt.]
Authors' Addresses Authors' Addresses
Spencer Shepler Spencer Shepler (editor)
Storspeed, Inc. Storspeed, Inc.
7808 Moonflower Drive 7808 Moonflower Drive
Austin, TX 78750 Austin, TX 78750
USA USA
Phone: +1-512-402-5811 ext 8530 Phone: +1-512-402-5811 ext 8530
Email: shepler@storspeed.com EMail: shepler@storspeed.com
Mike Eisler Mike Eisler (editor)
NetApp NetApp
5765 Chase Point Circle 5765 Chase Point Circle
Colorado Springs, CO 80919 Colorado Springs, CO 80919
USA USA
Phone: +1-719-599-9026 Phone: +1-719-599-9026
Email: mike@eisler.com EMail: mike@eisler.com
David Noveck
David Noveck (editor)
NetApp NetApp
1601 Trapelo Road, Suite 16 1601 Trapelo Road, Suite 16
Waltham, MA 02454 Waltham, MA 02451
USA USA
Phone: +1-781-768-5347 Phone: +1-781-768-5347
Email: dnoveck@netapp.com EMail: dnoveck@netapp.com
 End of changes. 60 change blocks. 
142 lines changed or deleted 120 lines changed or added

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