| < draft-ietf-netmod-module-tags-00.txt | draft-ietf-netmod-module-tags-01.txt > | |||
|---|---|---|---|---|
| Network Working Group C. Hopps | Network Working Group C. Hopps | |||
| Internet-Draft Deutsche Telekom | Internet-Draft Deutsche Telekom | |||
| Updates: rfc6087bis (if approved) L. Berger | Updates: rfc6087bis (if approved) L. Berger | |||
| Intended status: Standards Track LabN Consulting, L.L.C. | Intended status: Standards Track LabN Consulting, L.L.C. | |||
| Expires: August 29, 2018 D. Bogdanovic | Expires: September 7, 2018 D. Bogdanovic | |||
| February 25, 2018 | March 6, 2018 | |||
| YANG Module Tags | YANG Module Tags | |||
| draft-ietf-netmod-module-tags-00 | draft-ietf-netmod-module-tags-01 | |||
| Abstract | Abstract | |||
| This document provides for the association of tags with YANG modules. | This document provides for the association of tags with YANG modules. | |||
| The expectation is for such tags to be used to help classify and | The expectation is for such tags to be used to help classify and | |||
| organize modules. A method for defining, reading and writing a | organize modules. A method for defining, reading and writing a | |||
| modules tags is provided, as well as an augmentation to YANG library. | modules tags is provided. Tags may be standardized and assigned | |||
| Tags may be standardized and assigned during module definition; | during module definition; assigned by implementations; or dynamically | |||
| assigned by implementations; or dynamically defined and set by users. | defined and set by users. This document provides guidance to future | |||
| This document provides guidance to future model writers and, as such, | model writers and, as such, this document updates | |||
| this document updates [I-D.ietf-netmod-rfc6087bis]. | [I-D.ietf-netmod-rfc6087bis]. | |||
| 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 August 29, 2018. | This Internet-Draft will expire on September 7, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | |||
| 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. Conventions Used in This Document . . . . . . . . . . . . . . 3 | 2. Conventions Used in This Document . . . . . . . . . . . . . . 3 | |||
| 3. Tag Locations . . . . . . . . . . . . . . . . . . . . . . . . 3 | 3. Tag Prefixes . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4. Tag Prefixes . . . . . . . . . . . . . . . . . . . . . . . . 3 | 3.1. IETF Standard Tags . . . . . . . . . . . . . . . . . . . 3 | |||
| 4.1. IETF Standard Tags . . . . . . . . . . . . . . . . . . . 3 | 3.2. Vendor Tags . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4.2. Vendor Tags . . . . . . . . . . . . . . . . . . . . . . . 3 | 3.3. Local Tags . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4.3. Local Tags . . . . . . . . . . . . . . . . . . . . . . . 4 | 3.4. Reserved Tags . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4.4. Reserved Tags . . . . . . . . . . . . . . . . . . . . . . 4 | 4. Tag Management . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 5. Tag Management . . . . . . . . . . . . . . . . . . . . . . . 4 | 4.1. Module Definition Association . . . . . . . . . . . . . . 4 | |||
| 5.1. Module Definition Association . . . . . . . . . . . . . . 4 | 4.2. Implementation Association . . . . . . . . . . . . . . . 4 | |||
| 5.2. Implementation Association . . . . . . . . . . . . . . . 4 | 4.3. Administrative Tagging . . . . . . . . . . . . . . . . . 4 | |||
| 5.3. Administrative Tagging . . . . . . . . . . . . . . . . . 4 | 5. Tags Module Structure . . . . . . . . . . . . . . . . . . . . 4 | |||
| 5.3.1. Resetting Tags . . . . . . . . . . . . . . . . . . . 5 | 5.1. Tags Module Tree . . . . . . . . . . . . . . . . . . . . 4 | |||
| 6. Tags Module Structure . . . . . . . . . . . . . . . . . . . . 5 | 5.2. Tags Module . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 6.1. Tags Module Tree . . . . . . . . . . . . . . . . . . . . 5 | 6. Other Classifications . . . . . . . . . . . . . . . . . . . . 6 | |||
| 6.2. Tags Module . . . . . . . . . . . . . . . . . . . . . . . 5 | 7. Guidelines to Model Writers . . . . . . . . . . . . . . . . . 6 | |||
| 7. Library Augmentation . . . . . . . . . . . . . . . . . . . . 7 | 7.1. Define Standard Tags . . . . . . . . . . . . . . . . . . 6 | |||
| 7.1. Library Augmentation Module . . . . . . . . . . . . . . . 8 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 8. Other Classifications . . . . . . . . . . . . . . . . . . . . 9 | 8.1. YANG Module Tag Prefix Registry . . . . . . . . . . . . . 7 | |||
| 9. Guidelines to Model Writers . . . . . . . . . . . . . . . . . 9 | 8.2. YANG Module IETF Tag Registry . . . . . . . . . . . . . . 8 | |||
| 9.1. Define Standard Tags . . . . . . . . . . . . . . . . . . 9 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
| 10.1. YANG Module Tag Prefix Registry . . . . . . . . . . . . 10 | 9.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
| 10.2. YANG Module IETF Tag Registry . . . . . . . . . . . . . 10 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | ||||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 12 | ||||
| 11.2. Informative References . . . . . . . . . . . . . . . . . 12 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | ||||
| 1. Introduction | 1. Introduction | |||
| The use of tags for classification and organization is fairly | The use of tags for classification and organization is fairly | |||
| ubiquitous not only within IETF protocols, but in the internet itself | ubiquitous not only within IETF protocols, but in the internet itself | |||
| (e.g., #hashtags). Tags can be usefully standardized, but they can | (e.g., #hashtags). Tags can be usefully standardized, but they can | |||
| also serve as a non-standardized mechanism available for users to | also serve as a non-standardized mechanism available for users to | |||
| define themselves. Our solution provides for both cases allowing for | define themselves. Our solution provides for both cases allowing for | |||
| the most flexibility. In particular, tags may be standardized as | the most flexibility. In particular, tags may be standardized as | |||
| well as assigned during module definition; assigned by | well as assigned during module definition; assigned by | |||
| implementations; or dynamically defined and set by users. | implementations; or dynamically defined and set by users. | |||
| This document defines two modules. The first module defines a list | This document defines a module which provides a list of module | |||
| of module entries to allow for adding or removing of tags. It also | entries to allow for adding or removing of tags as well as viewing | |||
| defines an RPC to reset a modules tags to the original values. The | the set of tags associated with a module. | |||
| second module defines an augmentation to YANG Library [RFC7895] to | ||||
| allow for reading a modules tags. | ||||
| This document also defines an IANA registry for tag prefixes as well | This document also defines an IANA registry for tag prefixes as well | |||
| as a set of globally assigned tags. | as a set of globally assigned tags. | |||
| Section 9 provides guidelines for authors of YANG data models. This | Section 7 provides guidelines for authors of YANG data models. This | |||
| section updates [I-D.ietf-netmod-rfc6087bis]. | section updates [I-D.ietf-netmod-rfc6087bis]. | |||
| 2. Conventions Used in This Document | 2. Conventions Used in This Document | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| Note that lower case versions of these key words are used in section | Note that lower case versions of these key words are used in section | |||
| Section 9 where guidance is provided to future document authors. | Section 7 where guidance is provided to future document authors. | |||
| 3. Tag Locations | ||||
| Each module has only one logical tag list; however, that tag list may | ||||
| be accessed from multiple locations. | ||||
| We define two tag list locations. The first location is used for | ||||
| configuration and is a top level list of module entries where each | ||||
| entry contain the list of tags. The second read-only location is | ||||
| through the yang library under the module entry. | ||||
| 4. Tag Prefixes | 3. Tag Prefixes | |||
| All tags have a prefix indicating who owns their definition. An IANA | All tags have a prefix indicating who owns their definition. An IANA | |||
| registry is used to support standardizing tag prefixes. Currently 3 | registry is used to support standardizing tag prefixes. Currently 3 | |||
| prefixes are defined with all others reserved. | prefixes are defined with all others reserved. | |||
| 4.1. IETF Standard Tags | 3.1. IETF Standard Tags | |||
| An IETF standard tag is a tag that has the prefix "ietf:". All IETF | An IETF standard tag is a tag that has the prefix "ietf:". All IETF | |||
| standard tags are registered with IANA in a registry defined later in | standard tags are registered with IANA in a registry defined later in | |||
| this document. | this document. | |||
| 4.2. Vendor Tags | 3.2. Vendor Tags | |||
| A vendor tag is a tag that has the prefix "vendor:". These tags are | A vendor tag is a tag that has the prefix "vendor:". These tags are | |||
| defined by the vendor that implements the module, and are not | defined by the vendor that implements the module, and are not | |||
| standardized; however, it is recommended that the vendor consider | standardized; however, it is recommended that the vendor consider | |||
| including extra identification in the tag name to avoid collisions | including extra identification in the tag name to avoid collisions | |||
| (e.g., vendor:super-duper-company:...). | (e.g., vendor:super-duper-company:...). | |||
| 4.3. Local Tags | 3.3. Local Tags | |||
| A local tag is any tag that has the prefix "local:". These tags are | A local tag is any tag that has the prefix "local:". These tags are | |||
| defined by the local user/administrator and will never be | defined by the local user/administrator and will never be | |||
| standardized. | standardized. | |||
| 4.4. Reserved Tags | 3.4. Reserved Tags | |||
| Any tag not starting with the prefix "ietf:", "vendor:" or "local:" | Any tag not starting with the prefix "ietf:", "vendor:" or "local:" | |||
| is reserved for future standardization. | is reserved for future standardization. | |||
| 5. Tag Management | 4. Tag Management | |||
| Tags can become associated with a module in a number of ways. Tags | Tags can become associated with a module in a number of ways. Tags | |||
| may be defined and associated at model design time, at implementation | may be defined and associated at model design time, at implementation | |||
| time, or via user administrative control. As the main consumer of | time, or via user administrative control. As the main consumer of | |||
| tags are users, users may also remove any tag, no matter how the tag | tags are users, users may also remove any tag, no matter how the tag | |||
| became associated with a module. | became associated with a module. | |||
| 5.1. Module Definition Association | 4.1. Module Definition Association | |||
| A module definition SHOULD indicate a set of tags to be automatically | A module definition SHOULD indicate a set of tags to be automatically | |||
| added by the module implementer. These tags MUST be standard tags | added by the module implementer. These tags MUST be standard tags | |||
| (Section 4.1). This does imply that new modules may also drive the | (Section 3.1). This does imply that new modules may also drive the | |||
| addition of new standard tags to the IANA registry. | addition of new standard tags to the IANA registry. | |||
| 5.2. Implementation Association | 4.2. Implementation Association | |||
| An implementation MAY include additional tags associated with a | An implementation MAY include additional tags associated with a | |||
| module. These tags may be standard or vendor specific tags. | module. These tags may be standard or vendor specific tags. | |||
| 5.3. Administrative Tagging | 4.3. Administrative Tagging | |||
| Tags of any kind can be assigned and removed with normal | Tags of any kind can be assigned and removed with normal | |||
| configuration mechanisms. Additionally we define an RPC to reset a | configuration mechanisms. | |||
| module's tag list to the implementation default. | ||||
| Implementations MUST ensure that a modules tag list is consistent | Implementations MUST ensure that a modules tag list is consistent | |||
| across any location from which the list is accessible. So if a user | across any location from which the list is accessible. So if a user | |||
| adds a tag through configuration that tag should also be seen when | adds a tag through configuration that tag should also be seen when | |||
| using the yang library augmentation. | using any augmentation that exposes the modules tag list. | |||
| Implementations that do not support the reset rpc statement (whether | ||||
| at all, or just for a particular rpc or module) MUST respond with an | ||||
| YANG transport protocol-appropriate rpc layer error when such a | ||||
| statement is received. | ||||
| 5.3.1. Resetting Tags | ||||
| The "reset-tags" rpc statement is defined to reset a module's tag | ||||
| list to the implementation default, i.e. the tags that are present | ||||
| based on module definition and any that are added during | ||||
| implementation time. This rpc statement takes module identification | ||||
| information as input, and provides the list of tags that are present | ||||
| after the reset. | ||||
| 6. Tags Module Structure | 5. Tags Module Structure | |||
| 6.1. Tags Module Tree | 5.1. Tags Module Tree | |||
| The tree associated with the tags module is: | The tree associated with the tags module is: | |||
| module: ietf-module-tags | module: ietf-module-tags | |||
| rpcs: | +--rw module-tags* [name] | |||
| +---x reset-tags | +--rw name yang:yang-identifier | |||
| +---w input | +--rw tag* string | |||
| | +---w name yang:yang-identifier | +--rw masked-tag* string | |||
| | +---w revision? union | ||||
| +--ro output | ||||
| +--ro tags* string | ||||
| 6.2. Tags Module | 5.2. Tags Module | |||
| <CODE BEGINS> file "ietf-module-tags@2017-10-25.yang" | <CODE BEGINS> file "ietf-module-tags@2018-03-06.yang" | |||
| module ietf-module-tags { | module ietf-module-tags { | |||
| yang-version "1"; | yang-version "1"; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-module-tags"; | namespace "urn:ietf:params:xml:ns:yang:ietf-module-tags"; | |||
| prefix "mtags"; | prefix "mtags"; | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix yang; | prefix yang; | |||
| } | } | |||
| import ietf-yang-library { | organization "IETF NetMod Working Group (NetMod)"; | |||
| prefix yanglib; | ||||
| } | ||||
| // meta | contact | |||
| organization "IETF NetMod Working Group (NetMod)"; | "NetMod Working Group - <netmod@ietf.org>"; | |||
| contact | description | |||
| "NetMod Working Group - <netmod@ietf.org>"; | "This module describes a tagging mechanism for yang module. | |||
| Tags may be IANA assigned or privately defined types."; | ||||
| revision "2018-03-06" { | ||||
| description | description | |||
| "This module describes a tagging mechanism for yang module. | "Initial revision."; | |||
| Tags may be IANA assigned or privately defined types."; | reference "TBD"; | |||
| } | ||||
| revision "2017-10-25" { | ||||
| description | ||||
| "Initial revision."; | ||||
| reference "TBD"; | ||||
| } | ||||
| grouping module-tags { | ||||
| description | ||||
| "A grouping that may be used to classify a module."; | ||||
| leaf-list tags { | ||||
| type string; | ||||
| description | ||||
| "The module associated tags. See the IANA 'YANG Module Tag | ||||
| Prefix' registry for reserved prefixes and the IANA 'YANG | ||||
| Module IETF Tag' registry for IETF standard tags"; | ||||
| } | ||||
| } | ||||
| grouping yanglib-common-leafs { | list module-tags { | |||
| description | key "name"; | |||
| "Common parameters for YANG modules and submodules. | ||||
| This definition extract from RFC7895 as it is defined as | ||||
| a grouping within a grouping. | ||||
| TBD is there a legal way to use a grouping defined within | description | |||
| another grouping without using the parent? If so, should change | "A list of modules and their associated tags"; | |||
| to that."; | ||||
| leaf name { | leaf name { | |||
| type yang:yang-identifier; | type yang:yang-identifier; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "The YANG module or submodule name."; | "The YANG module or submodule name."; | |||
| } | ||||
| leaf revision { | ||||
| type union { | ||||
| type yanglib:revision-identifier; | ||||
| type string { length 0; } | ||||
| } | ||||
| mandatory true; | ||||
| description | ||||
| "The YANG module or submodule revision date. | ||||
| A zero-length string is used if no revision statement | ||||
| is present in the YANG module or submodule."; | ||||
| } | ||||
| } | } | |||
| list module-tags { | leaf-list tag { | |||
| key "name revision"; | type string; | |||
| description | ||||
| "A list of modules and their tags"; | ||||
| uses yanglib-common-leafs; // uses yanglib:common-leafs; | ||||
| uses module-tags; | ||||
| } | ||||
| rpc reset-tags { | description | |||
| description | "A tag associated with the module. See the IANA 'YANG Module | |||
| "Reset a list of tags for a given module to the list of module | Tag Prefix' registry for reserved prefixes and the IANA | |||
| and implementation time defiend tags. It provides the list of | 'YANG Module IETF Tag' registry for IETF standard tags. | |||
| tags associated with the module post reset."; | ||||
| input { | The operational view of this list will contain all | |||
| uses yanglib-common-leafs; // uses yanglib:common-leafs; | user-configured tags as well as any predefined tags that | |||
| } | have not been masked by the user using the masked-tag leaf | |||
| list below."; | ||||
| } | ||||
| leaf-list masked-tag { | ||||
| type string; | ||||
| output { | description | |||
| uses module-tags; | "The list of tags that should not be associated with this | |||
| } | module. This user can remove (mask) predefined tags by | |||
| adding them to this list. It is not an error to add tags to | ||||
| this list that are not predefined for the module."; | ||||
| } | } | |||
| } | } | |||
| <CODE ENDS> | } | |||
| <CODE ENDS> | ||||
| 7. Library Augmentation | ||||
| A modules tags can also be read using the yang library [RFC7895] if a | ||||
| server supports both YANG library and the augmentation defined below. | ||||
| If a server supports ietf-module-tags and the YANG library it SHOULD | ||||
| also support the ietf-library-tags module. | ||||
| The tree associated with the defined augmentation is: | ||||
| module: ietf-library-tags | ||||
| augment /yanglib:modules-state/yanglib:module: | ||||
| +--ro tags* string | ||||
| 7.1. Library Augmentation Module | ||||
| <CODE BEGINS> file "ietf-library-tags@2017-08-12.yang" | ||||
| module ietf-library-tags { | ||||
| // namespace | ||||
| namespace "urn:ietf:params:xml:ns:yang:ietf-library-tags"; | ||||
| prefix ylibtags; | ||||
| import ietf-yang-library { | ||||
| prefix yanglib; | ||||
| } | ||||
| import ietf-module-tags { | ||||
| prefix mtags; | ||||
| } | ||||
| // meta | ||||
| organization "IETF NetMod Working Group (NetMod)"; | ||||
| contact | ||||
| "NetMod Working Group - <netmod@ietf.org>"; | ||||
| description | ||||
| "This module augments ietf-yang-library with searchable | ||||
| classfication tags. Tags may be IANA or privately defined | ||||
| types."; | ||||
| revision "2017-08-12" { | ||||
| description | ||||
| "Initial revision."; | ||||
| reference "RFC TBD"; | ||||
| } | ||||
| augment "/yanglib:modules-state/yanglib:module" { | ||||
| description | ||||
| "The yang library structure is augmented with a module tags | ||||
| list. This allows operators to tag modules regardless of | ||||
| whether the modules included tag support or not"; | ||||
| uses mtags:module-tags; | ||||
| } | ||||
| } | ||||
| <CODE ENDS> | ||||
| 8. Other Classifications | 6. Other Classifications | |||
| It's worth noting that a different yang module classification | It's worth noting that a different yang module classification | |||
| document exists [RFC8199]. That document is classifying modules in | document exists [RFC8199]. That document is classifying modules in | |||
| only a logical manner and does not define tagging or any other | only a logical manner and does not define tagging or any other | |||
| mechanisms. It divides yang modules into 2 categories (service or | mechanisms. It divides yang modules into 2 categories (service or | |||
| element) and then into one of 3 origins: standard, vendor or user. | element) and then into one of 3 origins: standard, vendor or user. | |||
| It does provide a good way to discuss and identify modules in | It does provide a good way to discuss and identify modules in | |||
| general. This document defines standard tags to support [RFC8199] | general. This document defines standard tags to support [RFC8199] | |||
| style classification. | style classification. | |||
| 9. Guidelines to Model Writers | 7. Guidelines to Model Writers | |||
| This section updates [I-D.ietf-netmod-rfc6087bis]. | This section updates [I-D.ietf-netmod-rfc6087bis]. | |||
| 9.1. Define Standard Tags | 7.1. Define Standard Tags | |||
| A module SHOULD indicate, in the description statement of the module, | A module SHOULD indicate, in the description statement of the module, | |||
| a set of tags that are to be associated with it. This description | a set of tags that are to be associated with it. This description | |||
| should also include the appropriate conformance statement or | should also include the appropriate conformance statement or | |||
| statements, using [RFC2119] language for each tag. | statements, using [RFC2119] language for each tag. | |||
| module sample-module { | module example-module { | |||
| ... | ... | |||
| description | description | |||
| "[Text describing the module...] | "[Text describing the module...] | |||
| RFC<this document> TAGS: | RFC<this document> TAGS: | |||
| The following tags MUST be included by an implementation: | The following tags MUST be included by an implementation: | |||
| - ietf:some-required-tag:foo | - ietf:some-required-tag:foo | |||
| - ... | - ... | |||
| The following tags SHOULD be included by an implementation: | The following tags SHOULD be included by an implementation: | |||
| - ietf:some-recommended-tag:bar | - ietf:some-recommended-tag:bar | |||
| skipping to change at page 9, line 51 ¶ | skipping to change at page 7, line 29 ¶ | |||
| - ... | - ... | |||
| "; | "; | |||
| ... | ... | |||
| } | } | |||
| One SHOULD only include conformance text if there will be tags listed | One SHOULD only include conformance text if there will be tags listed | |||
| (i.e., there's no need to indicate an empty set). | (i.e., there's no need to indicate an empty set). | |||
| The module writer may use existing standard tags, or use new tags | The module writer may use existing standard tags, or use new tags | |||
| defined in the model definition, as appropriate. New tags should be | defined in the model definition, as appropriate. New tags should be | |||
| assigned in the IANA registry defined below, see Section 10.2 below. | assigned in the IANA registry defined below, see Section 8.2 below. | |||
| 10. IANA Considerations | 8. IANA Considerations | |||
| 10.1. YANG Module Tag Prefix Registry | 8.1. YANG Module Tag Prefix Registry | |||
| This registry allocates tag prefixes. All YANG module tags SHOULD | This registry allocates tag prefixes. All YANG module tags SHOULD | |||
| begin with one of the prefixes in this registry. | begin with one of the prefixes in this registry. | |||
| The allocation policy for this registry is Specification Required | The allocation policy for this registry is Specification Required | |||
| [RFC5226]. | [RFC5226]. | |||
| The initial values for this registry are as follows. | The initial values for this registry are as follows. | |||
| prefix description | prefix description | |||
| -------- --------------------------------------------------- | -------- --------------------------------------------------- | |||
| ietf: IETF Standard Tag allocated in the IANA YANG Module | ietf: IETF Standard Tag allocated in the IANA YANG Module | |||
| IETF Tag Registry. | IETF Tag Registry. | |||
| vendor: Non-standardized tags allocated by the module implementer. | vendor: Non-standardized tags allocated by the module implementer. | |||
| local: Non-standardized tags allocated by and for the user. | local: Non-standardized tags allocated by and for the user. | |||
| Other SDOs (standard organizations) wishing to standardize their own | Other SDOs (standard organizations) wishing to standardize their own | |||
| set of tags could allocate a top level prefix from this registry. | set of tags could allocate a top level prefix from this registry. | |||
| 10.2. YANG Module IETF Tag Registry | 8.2. YANG Module IETF Tag Registry | |||
| This registry allocates prefixes that have the standard prefix | This registry allocates prefixes that have the standard prefix | |||
| "ietf:". New values should be well considered and not achievable | "ietf:". New values should be well considered and not achievable | |||
| through a combination of already existing standard tags. | through a combination of already existing standard tags. | |||
| The allocation policy for this registry is IETF Review [RFC5226]. | The allocation policy for this registry is IETF Review [RFC5226]. | |||
| The initial values for this registry are as follows. | The initial values for this registry are as follows. | |||
| [Editor's note: many of these tags may move to | [Editor's note: many of these tags may move to | |||
| skipping to change at page 12, line 8 ¶ | skipping to change at page 9, line 34 ¶ | |||
| | | | | | | | | | | |||
| | ietf:signaling | A module representing | [This | | | ietf:signaling | A module representing | [This | | |||
| | | control plane signaling. | document] | | | | control plane signaling. | document] | | |||
| | | | | | | | | | | |||
| | ietf:lmp | A module representing a link | [This | | | ietf:lmp | A module representing a link | [This | | |||
| | | management protocol. | document] | | | | management protocol. | document] | | |||
| +------------------------+------------------------------+-----------+ | +------------------------+------------------------------+-----------+ | |||
| Table 1: IETF Module Tag Registry | Table 1: IETF Module Tag Registry | |||
| 11. References | 9. References | |||
| 11.1. Normative References | 9.1. Normative References | |||
| [I-D.ietf-netmod-rfc6087bis] | [I-D.ietf-netmod-rfc6087bis] | |||
| Bierman, A., "Guidelines for Authors and Reviewers of YANG | Bierman, A., "Guidelines for Authors and Reviewers of YANG | |||
| Data Model Documents", draft-ietf-netmod-rfc6087bis-18 | Data Model Documents", draft-ietf-netmod-rfc6087bis-18 | |||
| (work in progress), February 2018. | (work in progress), February 2018. | |||
| [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>. | |||
| [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | |||
| IANA Considerations Section in RFCs", RFC 5226, | IANA Considerations Section in RFCs", RFC 5226, | |||
| DOI 10.17487/RFC5226, May 2008, | DOI 10.17487/RFC5226, May 2008, | |||
| <https://www.rfc-editor.org/info/rfc5226>. | <https://www.rfc-editor.org/info/rfc5226>. | |||
| [RFC7895] Bierman, A., Bjorklund, M., and K. Watsen, "YANG Module | ||||
| Library", RFC 7895, DOI 10.17487/RFC7895, June 2016, | ||||
| <https://www.rfc-editor.org/info/rfc7895>. | ||||
| [RFC8199] Bogdanovic, D., Claise, B., and C. Moberg, "YANG Module | [RFC8199] Bogdanovic, D., Claise, B., and C. Moberg, "YANG Module | |||
| Classification", RFC 8199, DOI 10.17487/RFC8199, July | Classification", RFC 8199, DOI 10.17487/RFC8199, July | |||
| 2017, <https://www.rfc-editor.org/info/rfc8199>. | 2017, <https://www.rfc-editor.org/info/rfc8199>. | |||
| 11.2. Informative References | 9.2. Informative References | |||
| [I-D.ietf-rtgwg-device-model] | [I-D.ietf-rtgwg-device-model] | |||
| Lindem, A., Berger, L., Bogdanovic, D., and C. Hopps, | Lindem, A., Berger, L., Bogdanovic, D., and C. Hopps, | |||
| "Network Device YANG Logical Organization", draft-ietf- | "Network Device YANG Logical Organization", draft-ietf- | |||
| rtgwg-device-model-02 (work in progress), March 2017. | rtgwg-device-model-02 (work in progress), March 2017. | |||
| Authors' Addresses | Authors' Addresses | |||
| Christan Hopps | Christan Hopps | |||
| Deutsche Telekom | Deutsche Telekom | |||
| End of changes. 52 change blocks. | ||||
| 241 lines changed or deleted | 110 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/ | ||||