draft-ietf-netmod-yang-metadata-06.txt | draft-ietf-netmod-yang-metadata-07.txt | |||
---|---|---|---|---|
NETMOD Working Group L. Lhotka | NETMOD Working Group L. Lhotka | |||
Internet-Draft CZ.NIC | Internet-Draft CZ.NIC | |||
Updates: 6110 (if approved) March 11, 2016 | Updates: 6110 (if approved) March 21, 2016 | |||
Intended status: Standards Track | Intended status: Standards Track | |||
Expires: September 12, 2016 | Expires: September 22, 2016 | |||
Defining and Using Metadata with YANG | Defining and Using Metadata with YANG | |||
draft-ietf-netmod-yang-metadata-06 | draft-ietf-netmod-yang-metadata-07 | |||
Abstract | Abstract | |||
This document defines a YANG extension statement that allows for | This document defines a YANG extension statement that allows for | |||
defining metadata annotations in YANG modules. The document also | defining metadata annotations in YANG modules. The document also | |||
specifies XML and JSON encoding of annotations and other rules for | specifies XML and JSON encoding of annotations and other rules for | |||
annotating instances of YANG data nodes. | annotating instances of YANG data nodes. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 34 ¶ | skipping to change at page 1, line 34 ¶ | |||
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 September 12, 2016. | This Internet-Draft will expire on September 22, 2016. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2.1. Keywords . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.1. Keywords . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
2.2. Terms Defined in Other Documents . . . . . . . . . . . . 5 | 2.2. Terms Defined in Other Documents . . . . . . . . . . . . 5 | |||
2.3. Namespaces and Prefixes . . . . . . . . . . . . . . . . . 6 | 2.3. Namespaces and Prefixes . . . . . . . . . . . . . . . . . 6 | |||
2.4. Definitions of New Terms . . . . . . . . . . . . . . . . 7 | 2.4. Definitions of New Terms . . . . . . . . . . . . . . . . 7 | |||
3. Defining Annotations in YANG . . . . . . . . . . . . . . . . 7 | 3. Defining Annotations in YANG . . . . . . . . . . . . . . . . 7 | |||
3.1. Example Definition . . . . . . . . . . . . . . . . . . . 8 | 3.1. Example Definition . . . . . . . . . . . . . . . . . . . 8 | |||
4. Using Annotations . . . . . . . . . . . . . . . . . . . . . . 8 | 4. Using Annotations . . . . . . . . . . . . . . . . . . . . . . 8 | |||
5. The Encoding of Annotations . . . . . . . . . . . . . . . . . 9 | 5. The Encoding of Annotations . . . . . . . . . . . . . . . . . 9 | |||
5.1. XML Encoding . . . . . . . . . . . . . . . . . . . . . . 9 | 5.1. XML Encoding . . . . . . . . . . . . . . . . . . . . . . 9 | |||
5.2. JSON Encoding . . . . . . . . . . . . . . . . . . . . . . 10 | 5.2. JSON Encoding . . . . . . . . . . . . . . . . . . . . . . 10 | |||
5.2.1. Metadata Object and Annotations . . . . . . . . . . . 10 | 5.2.1. Metadata Object and Annotations . . . . . . . . . . . 10 | |||
skipping to change at page 2, line 33 ¶ | skipping to change at page 2, line 33 ¶ | |||
5.2.4. Adding Annotations to Leaf-list Entries . . . . . . . 12 | 5.2.4. Adding Annotations to Leaf-list Entries . . . . . . . 12 | |||
6. Representing Annotations in DSDL Schemas . . . . . . . . . . 13 | 6. Representing Annotations in DSDL Schemas . . . . . . . . . . 13 | |||
7. Metadata YANG Module . . . . . . . . . . . . . . . . . . . . 14 | 7. Metadata YANG Module . . . . . . . . . . . . . . . . . . . . 14 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | |||
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 | 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . 17 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 17 | |||
11.2. Informative References . . . . . . . . . . . . . . . . . 18 | 11.2. Informative References . . . . . . . . . . . . . . . . . 18 | |||
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 19 | Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 19 | |||
A.1. Changes Between Revisions -05 and -06 . . . . . . . . . . 19 | A.1. Changes Between Revisions -06 and -07 . . . . . . . . . . 19 | |||
A.2. Changes Between Revisions -04 and -05 . . . . . . . . . . 19 | A.2. Changes Between Revisions -05 and -06 . . . . . . . . . . 19 | |||
A.3. Changes Between Revisions -03 and -04 . . . . . . . . . . 19 | A.3. Changes Between Revisions -04 and -05 . . . . . . . . . . 19 | |||
A.4. Changes Between Revisions -02 and -03 . . . . . . . . . . 19 | A.4. Changes Between Revisions -03 and -04 . . . . . . . . . . 19 | |||
A.5. Changes Between Revisions -01 and -02 . . . . . . . . . . 19 | A.5. Changes Between Revisions -02 and -03 . . . . . . . . . . 19 | |||
A.6. Changes Between Revisions -00 and -01 . . . . . . . . . . 20 | A.6. Changes Between Revisions -01 and -02 . . . . . . . . . . 19 | |||
A.7. Changes Between draft-lhotka-netmod-yang-metadata-01 and | A.7. Changes Between Revisions -00 and -01 . . . . . . . . . . 20 | |||
A.8. Changes Between draft-lhotka-netmod-yang-metadata-01 and | ||||
draft-ietf-netmod-yang-metadata-00 . . . . . . . . . . . 20 | draft-ietf-netmod-yang-metadata-00 . . . . . . . . . . . 20 | |||
A.8. Changes Between draft-lhotka-netmod-yang-metadata-00 and | A.9. Changes Between draft-lhotka-netmod-yang-metadata-00 and | |||
-01 . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | -01 . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 20 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
1. Introduction | 1. Introduction | |||
There is a need to be able to annotate instances of | There is a need to be able to annotate instances of | |||
YANG [I-D.ietf-netmod-rfc6020bis] data nodes with metadata. Typical | YANG [I-D.ietf-netmod-rfc6020bis] data nodes with metadata. Typical | |||
use cases are: | use cases are: | |||
o Complementing regular data model information with instance- | o Complementing regular data model information with instance- | |||
skipping to change at page 14, line 41 ¶ | skipping to change at page 14, line 41 ¶ | |||
7. Metadata YANG Module | 7. Metadata YANG Module | |||
RFC Editor: In this section, replace all occurrences of 'XXXX' with | RFC Editor: In this section, replace all occurrences of 'XXXX' with | |||
the actual RFC number and all occurrences of the revision date below | the actual RFC number and all occurrences of the revision date below | |||
with the date of RFC publication (and remove this note). | with the date of RFC publication (and remove this note). | |||
RFC Editor: Also please replace all occurrences of 'RFC 6020bis' with | RFC Editor: Also please replace all occurrences of 'RFC 6020bis' with | |||
the actual RFC number that will be assigned to | the actual RFC number that will be assigned to | |||
[I-D.ietf-netmod-rfc6020bis]. | [I-D.ietf-netmod-rfc6020bis]. | |||
<CODE BEGINS> file "ietf-yang-metadata@2016-03-11.yang" | <CODE BEGINS> file "ietf-yang-metadata@2016-03-21.yang" | |||
module ietf-yang-metadata { | module ietf-yang-metadata { | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-yang-metadata"; | namespace "urn:ietf:params:xml:ns:yang:ietf-yang-metadata"; | |||
prefix "md"; | prefix "md"; | |||
organization | organization | |||
"IETF NETMOD (NETCONF Data Modeling Language) Working Group"; | "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; | |||
skipping to change at page 15, line 37 ¶ | skipping to change at page 15, line 37 ¶ | |||
without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
the license terms contained in, the Simplified BSD License set | the license terms contained in, the Simplified BSD License set | |||
forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC XXXX | This version of this YANG module is part of RFC XXXX | |||
(http://tools.ietf.org/html/rfcXXXX); see the RFC itself for | (http://tools.ietf.org/html/rfcXXXX); see the RFC itself for | |||
full legal notices."; | full legal notices."; | |||
revision 2016-03-11 { | revision 2016-03-21 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"RFC XXXX: Defining and Using Metadata with YANG"; | "RFC XXXX: Defining and Using Metadata with YANG"; | |||
} | } | |||
extension annotation { | extension annotation { | |||
argument name; | argument name; | |||
description | description | |||
"This extension allows for defining metadata annotations in | "This extension allows for defining metadata annotations in | |||
skipping to change at page 17, line 25 ¶ | skipping to change at page 17, line 25 ¶ | |||
This document introduces a mechanism for defining metadata | This document introduces a mechanism for defining metadata | |||
annotations in YANG modules and attaching them to instances of YANG | annotations in YANG modules and attaching them to instances of YANG | |||
data nodes. By itself, this mechanism represents no security threat. | data nodes. By itself, this mechanism represents no security threat. | |||
Security implications of a particular annotation defined using this | Security implications of a particular annotation defined using this | |||
mechanism MUST be duly considered and documented in the the | mechanism MUST be duly considered and documented in the the | |||
annotation's definition. | annotation's definition. | |||
An annotation SHOULD be subject to the same or stricter access | An annotation SHOULD be subject to the same or stricter access | |||
control rules as the data node instance to which the annotation is | control rules as the data node instance to which the annotation is | |||
attached. | attached. It is RECOMMENDED that security-sensitive or privacy- | |||
sensitive data be modeled as regular YANG data nodes rather than | ||||
annotations. | ||||
10. Acknowledgments | 10. Acknowledgments | |||
The author wishes to thank Andy Bierman, Martin Bjorklund, Benoit | The author wishes to thank Andy Bierman, Martin Bjorklund, Benoit | |||
Claise, Juergen Schoenwaelder, and Kent Watsen for their helpful | Claise, Juergen Schoenwaelder, and Kent Watsen for their helpful | |||
comments and suggestions. | comments and suggestions. | |||
11. References | 11. References | |||
11.1. Normative References | 11.1. Normative References | |||
skipping to change at page 18, line 45 ¶ | skipping to change at page 18, line 50 ¶ | |||
Bray, T., Hollander, D., Layman, A., and R. Tobin, | Bray, T., Hollander, D., Layman, A., and R. Tobin, | |||
"Namespaces in XML 1.1 (Second Edition)", World Wide Web | "Namespaces in XML 1.1 (Second Edition)", World Wide Web | |||
Consortium Recommendation REC-xml-names11-20060816, August | Consortium Recommendation REC-xml-names11-20060816, August | |||
2006, | 2006, | |||
<http://www.w3.org/TR/2006/REC-xml-names11-20060816>. | <http://www.w3.org/TR/2006/REC-xml-names11-20060816>. | |||
11.2. Informative References | 11.2. Informative References | |||
[I-D.ietf-netconf-restconf] | [I-D.ietf-netconf-restconf] | |||
Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
Protocol", draft-ietf-netconf-restconf-09 (work in | Protocol", draft-ietf-netconf-restconf-10 (work in | |||
progress), December 2015. | progress), March 2016. | |||
[ISO.19757-1] | [ISO.19757-1] | |||
International Organization for Standardization, "Document | International Organization for Standardization, "Document | |||
Schema Definition Languages (DSDL) - Part 1: Overview", | Schema Definition Languages (DSDL) - Part 1: Overview", | |||
ISO/IEC 19757-1, November 2004. | ISO/IEC 19757-1, November 2004. | |||
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
<http://www.rfc-editor.org/info/rfc6241>. | <http://www.rfc-editor.org/info/rfc6241>. | |||
Appendix A. Change Log | Appendix A. Change Log | |||
RFC Editor: Remove this section upon publication as an RFC. | RFC Editor: Remove this section upon publication as an RFC. | |||
A.1. Changes Between Revisions -05 and -06 | A.1. Changes Between Revisions -06 and -07 | |||
o Added sentence in Sec. 9 (Stephen Farrell's suggestion). | ||||
A.2. Changes Between Revisions -05 and -06 | ||||
o Added explanation of why a YANG extension is used rather than a | o Added explanation of why a YANG extension is used rather than a | |||
built-in statement. | built-in statement. | |||
A.2. Changes Between Revisions -04 and -05 | A.3. Changes Between Revisions -04 and -05 | |||
o Clarification regarding the type of an annotation. | o Clarification regarding the type of an annotation. | |||
A.3. Changes Between Revisions -03 and -04 | A.4. Changes Between Revisions -03 and -04 | |||
o Added explanation of what "top level of a module" means. | o Added explanation of what "top level of a module" means. | |||
A.4. Changes Between Revisions -02 and -03 | A.5. Changes Between Revisions -02 and -03 | |||
o Section 4 was considerably simplified, also because member names | o Section 4 was considerably simplified, also because member names | |||
starting with "@" are now permitted by | starting with "@" are now permitted by | |||
[I-D.ietf-netmod-yang-json]. | [I-D.ietf-netmod-yang-json]. | |||
A.5. Changes Between Revisions -01 and -02 | A.6. Changes Between Revisions -01 and -02 | |||
o The "type" statement became mandatory. | o The "type" statement became mandatory. | |||
o Terminology section was extended. | o Terminology section was extended. | |||
o The annotation "inactive" defined in the example module was | o The annotation "inactive" defined in the example module was | |||
replaced with "last-modified" that is supposedly less | replaced with "last-modified" that is supposedly less | |||
controversial. | controversial. | |||
o Introduction now states limitation due to XML attribute | o Introduction now states limitation due to XML attribute | |||
skipping to change at page 20, line 7 ¶ | skipping to change at page 20, line 17 ¶ | |||
o A recommendation was added to define annotations in a module by | o A recommendation was added to define annotations in a module by | |||
themselves. | themselves. | |||
o Section "Using Annotations" was added. | o Section "Using Annotations" was added. | |||
o An example for "anyxml" was added. | o An example for "anyxml" was added. | |||
o RFC 6241 was moved to informative references. | o RFC 6241 was moved to informative references. | |||
A.6. Changes Between Revisions -00 and -01 | A.7. Changes Between Revisions -00 and -01 | |||
o Define JSON encoding for annotations attached to 'anydata' nodes. | o Define JSON encoding for annotations attached to 'anydata' nodes. | |||
A.7. Changes Between draft-lhotka-netmod-yang-metadata-01 and draft- | A.8. Changes Between draft-lhotka-netmod-yang-metadata-01 and draft- | |||
ietf-netmod-yang-metadata-00 | ietf-netmod-yang-metadata-00 | |||
o References to RFC 6020 were changed to the 6020bis I-D. | o References to RFC 6020 were changed to the 6020bis I-D. | |||
o Text about RFC 2119 key words was added to "ietf-yang-metadata" | o Text about RFC 2119 key words was added to "ietf-yang-metadata" | |||
module description. | module description. | |||
A.8. Changes Between draft-lhotka-netmod-yang-metadata-00 and -01 | A.9. Changes Between draft-lhotka-netmod-yang-metadata-00 and -01 | |||
o Encoding of annotations for anyxml nodes was changed to be the | o Encoding of annotations for anyxml nodes was changed to be the | |||
same as for leafs. This was necessary because anyxml value now | same as for leafs. This was necessary because anyxml value now | |||
needn't be an object. | needn't be an object. | |||
o It is stated that "md:annotation" statement defines only the | o It is stated that "md:annotation" statement defines only the | |||
syntax of an annotation. | syntax of an annotation. | |||
o Allowed "if-feature" as a substatement of "md:annotation". | o Allowed "if-feature" as a substatement of "md:annotation". | |||
End of changes. 19 change blocks. | ||||
26 lines changed or deleted | 33 lines changed or added | |||
This html diff was produced by rfcdiff 1.44. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |