draft-ietf-nfsv4-rfc1832bis-03.txt   draft-ietf-nfsv4-rfc1832bis-04.txt 
Network Working Group M. Eisler Network Working Group M. Eisler
Internet-Draft Editor Internet-Draft Editor
Document: draft-ietf-nfsv4-rfc1832bis-03.txt Network Appliance, Inc. Document: draft-ietf-nfsv4-rfc1832bis-04.txt Network Appliance, Inc.
June 2004 June 2004
XDR: External Data Representation Standard XDR: External Data Representation Standard
Status of this Memo Status of this Memo
By submitting this Internet-Draft, I certify that any applicable By submitting this Internet-Draft, I certify that any applicable
patent or other IPR claims of which I am aware have been disclosed, 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 or will be disclosed, and any of which I become aware will be
disclosed, in accordance with RFC 3668. disclosed, in accordance with RFC 3668.
skipping to change at page 2, line 23 skipping to change at page 2, line 23
4.16. Void . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.16. Void . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.17. Constant . . . . . . . . . . . . . . . . . . . . . . . . 13 4.17. Constant . . . . . . . . . . . . . . . . . . . . . . . . 13
4.18. Typedef . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.18. Typedef . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.19. Optional-data . . . . . . . . . . . . . . . . . . . . . . 14 4.19. Optional-data . . . . . . . . . . . . . . . . . . . . . . 14
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 . . . . . . . . . . . . . . . . . . . . . . . 20
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 . . . . . . . . . . . . . . . . . . . . 22
10. TRADEMARKS AND OWNERS . . . . . . . . . . . . . . . . . . . 22 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 . . . . . . . . . . . . . . . . . . . 24
13. INFORMATIVE REFERENCES . . . . . . . . . . . . . . . . . . 23 13. INFORMATIVE REFERENCES . . . . . . . . . . . . . . . . . . 24
14. Editor's Address . . . . . . . . . . . . . . . . . . . . . 24 14. Editor's Address . . . . . . . . . . . . . . . . . . . . . 24
15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 24 15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 24
16. IPR Notices . . . . . . . . . . . . . . . . . . . . . . . . 24 16. IPR Notices . . . . . . . . . . . . . . . . . . . . . . . . 25
17. Copyright Notice . . . . . . . . . . . . . . . . . . . . . 25 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
skipping to change at page 14, line 51 skipping to change at page 14, line 51
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
that encodes lists of zero or more arbitrary length strings: that encodes lists of zero or more arbitrary length strings:
struct stringentry { string item<>; struct stringentry {
string item<>;
stringentry *next; }; stringentry *next;
};
typedef stringentry *stringlist; 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 stringentry { string item<>; struct stringentry {
stringentry next<1>; }; string item<>;
stringentry next<1>;
};
typedef stringentry stringlist<1>; 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.
skipping to change at page 19, line 27 skipping to change at page 19, line 30
"{" "{"
( declaration ";" ) ( declaration ";" )
( declaration ";" )* ( declaration ";" )*
"}" "}"
union-type-spec: union-type-spec:
"union" union-body "union" union-body
union-body: union-body:
"switch" "(" declaration ")" "{" "switch" "(" declaration ")" "{"
( "case" value ":" declaration ";" ) case-spec
( "case" value ":" declaration ";" )* case-spec *
[ "default" ":" declaration ";" ] [ "default" ":" declaration ";" ]
"}" "}"
case-spec:
( "case" value ":")
( "case" value ":") *
declaration ";"
constant-def: constant-def:
"const" identifier "=" constant ";" "const" identifier "=" constant ";"
type-def: type-def:
"typedef" declaration ";" "typedef" declaration ";"
| "enum" identifier enum-body ";" | "enum" identifier enum-body ";"
| "struct" identifier struct-body ";" | "struct" identifier struct-body ";"
| "union" identifier union-body ";" | "union" identifier union-body ";"
definition: definition:
skipping to change at page 24, line 33 skipping to change at page 24, line 46
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 Peter Astrand and Bryan Olson pointed out several errors in RFC1832
in this document. 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
 End of changes. 

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