Internet Draft I. Chen Ericsson Category: Informational Expires in 6 months April 14, 2016 Grammar for Enterprise YANG Module Namespace Status of this Memo Distribution of this memo is unlimited. This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on date. Copyright Notice Copyright (c) 2016 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Chen Expires in 6 months [Page 1] Internet Draft Enterprise YANG Namespace April 14, 2016 Abstract This document defines the grammar to create enterprise YANG module namespaces that are globally unique, as required by the YANG modeling language. Chen Expires in 6 months [Page 2] Internet Draft Enterprise YANG Namespace April 14, 2016 Table of Contents 1. Introduction ....................................................3 1.1. Terminology .................................................3 2. YANG Module Namespace Requirements and Recommendations ..........3 3. Enterprise YANG Module Namespace Grammar ........................4 4. Usage Example ...................................................4 5. IANA Considerations .............................................5 6. Security Considerations .........................................5 7. References ......................................................5 7.1. Normative References ........................................5 7.2. Informative References ......................................5 1. Introduction The use of a standard data modeling language YANG [RFC6020] together with Network Configuration Protocol (NETCONF) [RFC6241] allows for the creation of a standard network configuration interface. YANG further allows vendors to customize standard YANG modules and to create enterprise YANG modules that adapt standard YANG modules to different devices and features. To identify YANG modules, [RFC6020] requires YANG module namespaces of all YANG modules, both standard YANG modules and enterprise YANG modules, be globally unique. [RFC6020] also recommends that enterprise YANG modules have module names that are globally unique. Based the module naming convention recommended in [RFC6020], this document defines the grammar to create YANG module namespaces for enterprise YANG modules that result in globally unique namespaces. 1.1. Terminology The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, [RFC2119]. 2. YANG Module Name and Namespace Requirements and Recommendations [RFC6020] consists of several YANG module name and namespace requirements and recommendations. [RFC6020] Section 5.1 paragraph 3 states that The names of all standard modules and submodules MUST be unique. Developers of enterprise modules are RECOMMENDED to choose names for their modules that will have a low probability of colliding with standard or other enterprise modules, e.g., by using the Chen Expires in 6 months [Page 3] Internet Draft Enterprise YANG Namespace April 14, 2016 enterprise or organization name as a prefix for the module name. [RFC6020] Section 5.3 paragraph 3 states that Namespaces for private modules are assigned by the organization owning the module without a central registry. Namespace URIs MUST be chosen so they cannot collide with standard or other enterprise namespaces, for example by using the enterprise or organization name in the namespace. [RFC6020] Section 6.2.1 paragraph 1 states that Each identifier is valid in a namespace that depends on the type of the YANG item being defined. All identifiers defined in a namespace MUST be unique. o All module and submodule names share the same global module identifier namespace. The requirement in [RFC6020] Section 6.2.1 means that even enterprise YANG module names must be globally unique. The recommendation in [RFC6020] Section 5.1 means that it is desirable to define enterprise YANG modules names to use an organization's name as a prefix. 3. Enterprise YANG Module Namespace Grammar This section defines the grammar to create globally unique enterprise YANG module namespaces. The grammar defines a namespace to be a Uniform Resource Name (URN) under the top-level "rdns" name identifier [rdns], followed by an organization's reverse registered domain name and optional sub-domain hierarchies, and ending with the module name with the organization's name as the prefix. = urn:rdns:: = An organization's registered domain name in reverse = Empty string or additional levels of hierarchy defined within a domain in which each level is delimited by colons = - = A string that describes the function provided by the YANG module 4. Usage Example Chen Expires in 6 months [Page 4] Internet Draft Enterprise YANG Namespace April 14, 2016 Suppose a vendor has a registered domain name "example.com". This vendor has also chosen to place all of its YANG modules under the "yang" sub-domain. Following the enterprise YANG module namespace grammar described in this document, the vendor ends up with the patterns below. = com:example = yang = urn:rdns:com:example:yang: = example- As a result, this vendor's OSPF YANG module has the namespace "urn:rdns:com:example:yang:example-ospf". 5. Security Considerations TBD. 6. IANA Considerations This document does not register any new names with IANA. The registration of the new "rdns" name is done in [rdns]. 7. References 7.1. Normative References [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, October 2010, . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [rdns] Chen, I., Work in progress, "draft-chen-rdns-urn-06.txt", March 2016. 7.2. Informative References [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, . Author's Address Chen Expires in 6 months [Page 5] Internet Draft Enterprise YANG Namespace April 14, 2016 I. Chen ichen@kuatrotech.com Chen Expires in 6 months [Page 6]