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/ |