draft-ietf-nfsv4-rfc1832bis-02.txt   draft-ietf-nfsv4-rfc1832bis-03.txt 
Network Working Group M. Eisler Network Working Group M. Eisler
Internet-Draft Editor Internet-Draft Editor
Document: draft-ietf-nfsv4-rfc1832bis-02.txt Network Appliance, Inc. Document: draft-ietf-nfsv4-rfc1832bis-03.txt Network Appliance, Inc.
October 2003 June 2004
XDR: External Data Representation Standard XDR: External Data Representation Standard
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance By submitting this Internet-Draft, I certify that any applicable
with all provisions of Section 10 of RFC2026. patent or other IPR claims of which I am aware have been disclosed,
or will be disclosed, and any of which I become aware will be
disclosed, in accordance with RFC 3668.
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
other groups may also distribute working documents as other groups may also distribute working documents as
Internet-Drafts. Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six Internet-Drafts are draft documents valid for a maximum of six months
months and may be updated, replaced, or obsoleted by other and may be updated, replaced, or obsoleted by other documents at any
documents at any time. It is inappropriate to use Internet- time. It is inappropriate to use Internet-Drafts as reference
Drafts as reference material or to cite them other than as material or to cite them other than a "work in progress."
"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/1id-abstracts.html http://www.ietf.org/1id-abstracts.html
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
ABSTRACT ABSTRACT
This document describes the External Data Representation Standard This document describes the External Data Representation Standard
skipping to change at page 2, line 26 skipping to change at page 2, line 27
4.20. Areas for Future Enhancement . . . . . . . . . . . . . . 15 4.20. Areas for Future Enhancement . . . . . . . . . . . . . . 15
5. DISCUSSION . . . . . . . . . . . . . . . . . . . . . . . . . 16 5. DISCUSSION . . . . . . . . . . . . . . . . . . . . . . . . . 16
6. THE XDR LANGUAGE SPECIFICATION . . . . . . . . . . . . . . . 17 6. THE XDR LANGUAGE SPECIFICATION . . . . . . . . . . . . . . . 17
6.1. Notational Conventions . . . . . . . . . . . . . . . . . . 17 6.1. Notational Conventions . . . . . . . . . . . . . . . . . . 17
6.2. Lexical Notes . . . . . . . . . . . . . . . . . . . . . . 18 6.2. Lexical Notes . . . . . . . . . . . . . . . . . . . . . . 18
6.3. Syntax Information . . . . . . . . . . . . . . . . . . . . 18 6.3. Syntax Information . . . . . . . . . . . . . . . . . . . . 18
6.4. Syntax Notes . . . . . . . . . . . . . . . . . . . . . . . 19 6.4. Syntax Notes . . . . . . . . . . . . . . . . . . . . . . . 19
7. AN EXAMPLE OF AN XDR DATA DESCRIPTION . . . . . . . . . . . 20 7. AN EXAMPLE OF AN XDR DATA DESCRIPTION . . . . . . . . . . . 20
8. Security Considerations . . . . . . . . . . . . . . . . . . 21 8. Security Considerations . . . . . . . . . . . . . . . . . . 21
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . 21 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . 21
10. TRADEMARKS AND OWNERS . . . . . . . . . . . . . . . . . . . 21 10. TRADEMARKS AND OWNERS . . . . . . . . . . . . . . . . . . . 22
11. ANSI/IEEE Standard 754-1985 . . . . . . . . . . . . . . . . 22 11. ANSI/IEEE Standard 754-1985 . . . . . . . . . . . . . . . . 22
12. NORMATIVE REFERENCES . . . . . . . . . . . . . . . . . . . 23 12. NORMATIVE REFERENCES . . . . . . . . . . . . . . . . . . . 23
13. INFORMATIVE REFERENCES . . . . . . . . . . . . . . . . . . 23 13. INFORMATIVE REFERENCES . . . . . . . . . . . . . . . . . . 23
14. Editor's Address . . . . . . . . . . . . . . . . . . . . . 24 14. Editor's Address . . . . . . . . . . . . . . . . . . . . . 24
15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 24 15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 24
16. IPR Notices . . . . . . . . . . . . . . . . . . . . . . . . 24 16. IPR Notices . . . . . . . . . . . . . . . . . . . . . . . . 24
17. Copyright Notice . . . . . . . . . . . . . . . . . . . . . 24 17. Copyright Notice . . . . . . . . . . . . . . . . . . . . . 25
1. Changes from RFC1832 1. Changes from RFC1832
This document makes no technical changes to RFC1832 and is published This document makes no technical changes to RFC1832 and is published
for the purpose of noting IANA considerations and distinguishing for the purpose of noting IANA considerations and distinguishing
normative from informative references. normative from informative references.
2. INTRODUCTION 2. INTRODUCTION
XDR is a standard for the description and encoding of data. It is XDR is a standard for the description and encoding of data. It is
skipping to change at page 14, line 48 skipping to change at page 14, line 49
It is also equivalent to the following variable-length array It is also equivalent to the following variable-length array
declaration, since the boolean "opted" can be interpreted as the declaration, since the boolean "opted" can be interpreted as the
length of the array: length of the array:
type-name identifier<1>; type-name identifier<1>;
Optional-data is not so interesting in itself, but it is very useful Optional-data is not so interesting in itself, but it is very useful
for describing recursive data-structures such as linked-lists and for describing recursive data-structures such as linked-lists and
trees. For example, the following defines a type "stringlist" that trees. For example, the following defines a type "stringlist" that
encodes lists of arbitrary length strings: that encodes lists of zero or more arbitrary length strings:
struct *stringlist { struct stringentry { string item<>;
string item<>;
stringlist next; stringentry *next; };
};
typedef stringentry *stringlist;
It could have been equivalently declared as the following union: It could have been equivalently declared as the following union:
union stringlist switch (bool opted) { union stringlist switch (bool opted) {
case TRUE: case TRUE:
struct { struct {
string item<>; string item<>;
stringlist next; stringlist next;
} element; } element;
case FALSE: case FALSE:
void; void;
}; };
or as a variable-length array: or as a variable-length array:
struct stringlist<1> { struct stringentry { string item<>;
string item<>; stringentry next<1>; };
stringlist next;
}; typedef stringentry stringlist<1>;
Both of these declarations obscure the intention of the stringlist Both of these declarations obscure the intention of the stringlist
type, so the optional-data declaration is preferred over both of type, so the optional-data declaration is preferred over both of
them. The optional-data type also has a close correlation to how them. The optional-data type also has a close correlation to how
recursive data structures are represented in high-level languages recursive data structures are represented in high-level languages
such as Pascal or C by use of pointers. In fact, the syntax is the such as Pascal or C by use of pointers. In fact, the syntax is the
same as that of the C language for pointers. same as that of the C language for pointers.
4.20. Areas for Future Enhancement 4.20. Areas for Future Enhancement
skipping to change at page 18, line 11 skipping to change at page 18, line 11
"a very, very rainy day" "a very, very rainy day"
"a very cold and rainy day" "a very cold and rainy day"
"a very, very, very cold and rainy night" "a very, very, very cold and rainy night"
6.2. Lexical Notes 6.2. Lexical Notes
(1) Comments begin with '/*' and terminate with '*/'. (2) White (1) Comments begin with '/*' and terminate with '*/'. (2) White
space serves to separate items and is otherwise ignored. (3) An space serves to separate items and is otherwise ignored. (3) An
identifier is a letter followed by an optional sequence of letters, identifier is a letter followed by an optional sequence of letters,
digits or underbar ('_'). The case of identifiers is not ignored. digits or underbar ('_'). The case of identifiers is not ignored.
(4) A constant is a sequence of one or more decimal digits, (4) A decimal constant expresses a number in base 10, and is a
optionally preceded by a minus-sign ('-'). sequence of one or more decimal digits, where the first digit is not
a zero, and is optionally preceded by a minus-sign ('-'). (5) A
hexadecimal constant expresses a number in base 16, and must be
preceded by '0x', followed by one or hexadecimal digits ('A', 'B',
'C', 'D', E', 'F', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3',
'4', '5', '6', '7', '8', '9'). (6) An octal constant expresses a
number in base 8, always leads with digit 0, and is a sequence of
one or more octal digits ('0', '1', '2', '3', '4', '5', '6', '7').
6.3. Syntax Information 6.3. Syntax Information
declaration: declaration:
type-specifier identifier type-specifier identifier
| type-specifier identifier "[" value "]" | type-specifier identifier "[" value "]"
| type-specifier identifier "<" [ value ] ">" | type-specifier identifier "<" [ value ] ">"
| "opaque" identifier "[" value "]" | "opaque" identifier "[" value "]"
| "opaque" identifier "<" [ value ] ">" | "opaque" identifier "<" [ value ] ">"
| "string" identifier "<" [ value ] ">" | "string" identifier "<" [ value ] ">"
| type-specifier "*" identifier | type-specifier "*" identifier
| "void" | "void"
value: value:
constant constant
| identifier | identifier
constant:
decimal-constant | hexadecimal-constant | octal-constant
type-specifier: type-specifier:
[ "unsigned" ] "int" [ "unsigned" ] "int"
| [ "unsigned" ] "hyper" | [ "unsigned" ] "hyper"
| "float" | "float"
| "double" | "double"
| "quadruple" | "quadruple"
| "bool" | "bool"
| enum-type-spec | enum-type-spec
| struct-type-spec | struct-type-spec
| union-type-spec | union-type-spec
skipping to change at page 24, line 24 skipping to change at page 24, line 33
15. Acknowledgements 15. Acknowledgements
Bob Lyon was Sun's visible force behind ONC RPC in the 1980s. Sun Bob Lyon was Sun's visible force behind ONC RPC in the 1980s. Sun
Microsystems, Inc. is listed as the author of RFC1014, which RFC1832 Microsystems, Inc. is listed as the author of RFC1014, which RFC1832
was heavily derived from. Raj Srinivasan in turn edited RFC1014 into was heavily derived from. Raj Srinivasan in turn edited RFC1014 into
RFC1832. Raj and the rest of the old ONC RPC working group produced RFC1832. Raj and the rest of the old ONC RPC working group produced
RFC1832 from which this document is derived. Mike Eisler and Bill RFC1832 from which this document is derived. Mike Eisler and Bill
Janssen submitted the implementation reports for this standard. Kevin Janssen submitted the implementation reports for this standard. Kevin
Coffman and Benny Halevy reviewed this document and gave feedback. Coffman and Benny Halevy reviewed this document and gave feedback.
Bryan Olson pointed out several errors in RFC1832 which are corrected
in this document.
16. IPR Notices 16. IPR Notices
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to intellectual property or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it might or might not be available; neither does it represent that it
has made any effort to identify any such rights. Information on the has made any effort to identify any such rights. Information on the
IETF's procedures with respect to rights in standards-track and IETF's procedures with respect to rights in standards-track and
skipping to change at page 24, line 49 skipping to change at page 25, line 15
be obtained from the IETF Secretariat. be obtained from the IETF Secretariat.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice rights which may cover technology that may be required to practice
this standard. Please address the information to the IETF Executive this standard. Please address the information to the IETF Executive
Director. Director.
17. Copyright Notice 17. Copyright Notice
Copyright (C) The Internet Society (2003). All Rights Reserved. Copyright (C) The Internet Society (2004). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
This document and translations of it may be copied and furnished to except as set forth therein, the authors retain all their rights.
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an This document and the information contained herein are provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/