| < draft-ietf-core-sid-07.txt | draft-ietf-core-sid-08.txt > | |||
|---|---|---|---|---|
| Internet Engineering Task Force M. Veillette, Ed. | Internet Engineering Task Force M. Veillette, Ed. | |||
| Internet-Draft Trilliant Networks Inc. | Internet-Draft Trilliant Networks Inc. | |||
| Intended status: Standards Track A. Pelov, Ed. | Intended status: Standards Track A. Pelov, Ed. | |||
| Expires: January 9, 2020 I. Petrov, Ed. | Expires: July 11, 2020 I. Petrov, Ed. | |||
| Acklio | Acklio | |||
| July 08, 2019 | January 08, 2020 | |||
| YANG Schema Item iDentifier (SID) | YANG Schema Item iDentifier (SID) | |||
| draft-ietf-core-sid-07 | draft-ietf-core-sid-08 | |||
| Abstract | Abstract | |||
| YANG Schema Item iDentifiers (SID) are globally unique 64-bit | YANG Schema Item iDentifiers (SID) are globally unique 63-bit | |||
| unsigned integers used to identify YANG items. This document defines | unsigned integers used to identify YANG items. This document defines | |||
| the semantics, the registration, and assignment processes of SIDs. | the semantics, the registration, and assignment processes of SIDs. | |||
| To enable the implementation of these processes, this document also | To enable the implementation of these processes, this document also | |||
| defines a file format used to persist and publish assigned SIDs. | defines a file format used to persist and publish assigned SIDs. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 January 9, 2020. | This Internet-Draft will expire on July 11, 2020. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2020 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 | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://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 | |||
| skipping to change at page 2, line 50 ¶ | skipping to change at page 2, line 50 ¶ | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 1. Introduction | 1. Introduction | |||
| Some of the items defined in YANG [RFC7950] require the use of a | Some of the items defined in YANG [RFC7950] require the use of a | |||
| unique identifier. In both NETCONF [RFC6241] and RESTCONF [RFC8040], | unique identifier. In both NETCONF [RFC6241] and RESTCONF [RFC8040], | |||
| these identifiers are implemented using names. To allow the | these identifiers are implemented using names. To allow the | |||
| implementation of data models defined in YANG in constrained devices | implementation of data models defined in YANG in constrained devices | |||
| and constrained networks, a more compact method to identify YANG | and constrained networks, a more compact method to identify YANG | |||
| items is required. This compact identifier, called SID, is encoded | items is required. This compact identifier, called SID, is encoded | |||
| using a 64-bit unsigned integer. The following items are identified | using a 63-bit unsigned integer. The reason not to use 64-bit | |||
| using SIDs: | unsigned integers is that otherwise protocols doing arithmetical | |||
| operations with the SIDs could be very difficult to implement. | ||||
| The following items are identified using SIDs: | ||||
| o identities | o identities | |||
| o data nodes (Note: including those parts of a YANG template as | o data nodes (Note: including those parts of a YANG template as | |||
| defined by the 'yang-data' extension.) | defined by the 'yang-data' extension.) | |||
| o RPCs and associated input(s) and output(s) | o RPCs and associated input(s) and output(s) | |||
| o actions and associated input(s) and output(s) | o actions and associated input(s) and output(s) | |||
| skipping to change at page 5, line 9 ¶ | skipping to change at page 5, line 15 ¶ | |||
| Registration of the .sid file associated to a YANG module is optional | Registration of the .sid file associated to a YANG module is optional | |||
| but recommended to promote interoperability between devices and to | but recommended to promote interoperability between devices and to | |||
| avoid duplicate allocation of SIDs to a single YANG module. | avoid duplicate allocation of SIDs to a single YANG module. | |||
| Different registries might have different requirements for the | Different registries might have different requirements for the | |||
| registration and publication of the ".sid" files. For diagram of one | registration and publication of the ".sid" files. For diagram of one | |||
| of the possibilities, please refer to the activity diagram on | of the possibilities, please refer to the activity diagram on | |||
| Figure 1 in Appendix C. | Figure 1 in Appendix C. | |||
| Each time a YANG module or one of its imported module(s) or included | Each time a YANG module or one of its imported module(s) or included | |||
| sub-module(s) is updated, the ".sid" file MAY need to be updated. | sub-module(s) is updated, the ".sid" file MAY need to be updated. | |||
| This update SHOULD also be performed using an automated tool. | This update SHOULD be performed using an automated tool. | |||
| If a new revision requires more SIDs than initially allocated, a new | If a new revision requires more SIDs than initially allocated, a new | |||
| SID range MUST be added to the 'assignment-ranges' as defined in | SID range MUST be added to the 'assignment-ranges' as defined in | |||
| Section 4. These extra SIDs are used for subsequent assignments. | Section 4. These extra SIDs are used for subsequent assignments. | |||
| For an example of this update process, see activity diagram Figure 2 | For an example of this update process, see activity diagram Figure 2 | |||
| in Appendix C. | in Appendix C. | |||
| 4. ".sid" file format | 4. ".sid" file format | |||
| skipping to change at page 12, line 7 ¶ | skipping to change at page 12, line 7 ¶ | |||
| o The range of 0 to 999 (size 1000) is "Reserved" as defined in | o The range of 0 to 999 (size 1000) is "Reserved" as defined in | |||
| [RFC8126]. | [RFC8126]. | |||
| o The range of 1000 to 59,999 (size 59,000) is reserved for YANG | o The range of 1000 to 59,999 (size 59,000) is reserved for YANG | |||
| modules defined in RFCs. The IANA policy for additions to this | modules defined in RFCs. The IANA policy for additions to this | |||
| registry is "Expert Review" [RFC8126]. | registry is "Expert Review" [RFC8126]. | |||
| * The Expert MUST verify that the YANG module for which this | * The Expert MUST verify that the YANG module for which this | |||
| allocation is made has an RFC (existing RFC) OR is on track to | allocation is made has an RFC (existing RFC) OR is on track to | |||
| become RFC (early allocation with a request from the WG | become RFC (early allocation with a request from the WG chairs | |||
| chairs). | as defined by [RFC7120]). | |||
| o The SID range allocated for a YANG module can follow in one of the | o The SID range allocated for a YANG module can follow in one of the | |||
| four categories: | four categories: | |||
| * SMALL (50 SIDs) | * SMALL (50 SIDs) | |||
| * MEDIUM (100 SIDs) | * MEDIUM (100 SIDs) | |||
| * LARGE (250 SIDs) | * LARGE (250 SIDs) | |||
| skipping to change at page 14, line 50 ¶ | skipping to change at page 14, line 50 ¶ | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC7049] Bormann, C. and P. Hoffman, "Concise Binary Object | ||||
| Representation (CBOR)", RFC 7049, DOI 10.17487/RFC7049, | ||||
| October 2013, <https://www.rfc-editor.org/info/rfc7049>. | ||||
| [RFC7120] Cotton, M., "Early IANA Allocation of Standards Track Code | [RFC7120] Cotton, M., "Early IANA Allocation of Standards Track Code | |||
| Points", BCP 100, RFC 7120, DOI 10.17487/RFC7120, January | Points", BCP 100, RFC 7120, DOI 10.17487/RFC7120, January | |||
| 2014, <https://www.rfc-editor.org/info/rfc7120>. | 2014, <https://www.rfc-editor.org/info/rfc7120>. | |||
| [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
| RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
| [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | |||
| RFC 7951, DOI 10.17487/RFC7951, August 2016, | RFC 7951, DOI 10.17487/RFC7951, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7951>. | <https://www.rfc-editor.org/info/rfc7951>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| 8.2. Informative References | 8.2. Informative References | |||
| [I-D.ietf-core-comi] | [I-D.ietf-core-comi] | |||
| Veillette, M., Stok, P., Pelov, A., and A. Bierman, "CoAP | Veillette, M., Stok, P., Pelov, A., Bierman, A., and I. | |||
| Management Interface", draft-ietf-core-comi-05 (work in | Petrov, "CoAP Management Interface", draft-ietf-core- | |||
| progress), May 2019. | comi-08 (work in progress), September 2019. | |||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
| <https://www.rfc-editor.org/info/rfc6020>. | <https://www.rfc-editor.org/info/rfc6020>. | |||
| [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, | |||
| <https://www.rfc-editor.org/info/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
| End of changes. 11 change blocks. | ||||
| 18 lines changed or deleted | 17 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||