RFC 8819
YANG Module Tags
RFC 8819: YANG Module Tags π
- Request for Comments: 8819, bestie, it's a real standards doc π
- Written by: C. Hopps, L. Berger (LabN Consulting, L.L.C.), and D. Bogdanovic (Volta Networks) π
- Category: Standards Track β¨
- Date: January 2021 ποΈ
- Published by: the Internet Engineering Task Force (IETF), ISSN 2070-1721 πΈ
- Updates: RFC 8407 π
- Obsoletes: nothing listed in the header π¦
Abstract β¨
Okay so this doc lets you stick tags onto YANG modules π·οΈ The whole point is to help classify and organize modules, and it's giving very organized energy. It explains how to define, read, and write module tags. Tags can be registered and assigned during module definition, assigned by implementations, or dynamically defined and set by users. It also gives guidance to future model writers, so it updates RFC 8407 π«Ά
Status of This Memo π
This is an Internet Standards Track document. π
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc8819.
Copyright Notice Β©οΈ
Copyright (c) 2021 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 (https://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.
Table of Contents ποΈ
1. Introduction
1.1. Some Possible Use Cases for YANG Module Tags
1.2. Conventions Used in This Document
2. Tag Values
2.1. IETF Tags
2.2. Vendor Tags
2.3. User Tags
2.4. Reserved Tags
3. Tag Management
3.1. Module Definition Tagging
3.2. Implementation Tagging
3.3. User Tagging
4. Tags Module Structure
4.1. Tags Module Tree
4.2. YANG Module
5. Other Classifications
6. Guidelines to Model Writers
6.1. Define Standard Tags
7. IANA Considerations
7.1. YANG Module Tag Prefixes Registry
7.2. IETF YANG Module Tags Registry
7.3. Updates to the IETF XML Registry
7.4. Updates to the YANG Module Names Registry
8. Security Considerations
9. References
9.1. Normative References
9.2. Informative References
Appendix A. Examples
Appendix B. Non-NMDA State Module
Acknowledgements
Authors' Addresses
1. Introduction β¨
Tags are everywhere, and I'm obsessed π They show up all over IETF protocols and honestly all over the internet too, like those "#hashtags" we all use. The big perk of tags over a rigid structure is flexibility: they can adapt more easily as technologies evolve π¦ Tags can be registered, which is the official, approved version π but they can also be a non-registered mechanism that users make up for themselves π
This document gives you a way to define tags and attach them to YANG modules in a flexible manner π Tags may be registered, and they may also be assigned during module definition, assigned by implementations, or dynamically defined and set by users. Iconic.
This document defines a YANG module [RFC7950] that gives you a list of module entries. You can add or remove tags, and you can view the set of tags associated with a module π
This document also defines an extension statement to indicate tags that SHOULD be added by the module implementation automatically (i.e., outside of configuration). Main character behavior π
This document also defines an IANA registry for tag prefixes, plus a set of globally assigned tags πΈ
Section 6 gives guidelines for authors of YANG data models π§
This document updates [RFC8407]. β¨
The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA) defined in [RFC8342]. π
1.1. Some Possible Use Cases for YANG Module Tags
During this document's development, people asked for example uses of module tags, so here are a few π This list is certainly not exhaustive, so there's more where these came from.
One use is filtering different discrete categories of YANG modules supported by a device. If the modules are suitably tagged, then an XPath query can list all of the vendor modules a device supports π
Tags can also help coordination when multiple, semi-independent clients are working with the same devices π«Ά For example, one management client could mark that some modules should not be used because they haven't been verified to behave correctly. That way other management clients avoid querying the data tied to those modules. Very considerate of them.
Tag classification is also useful for users searching module repositories, like the YANG catalog π A query restricted to the ietf:routing module tag could return only the IETF YANG modules associated with routing. Without tags, you'd need to know the name of every IETF routing protocol YANG module, and nobody has time for that π
Future management protocol extensions could allow filtering queries of configuration or operational state on a server based on tags. For example, you could return all operational state related to system management π
1.2. Conventions Used in This Document
The key words "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] [RFC8174] when, and only when, they appear in all capitals, as shown here. π Those capitalized words are the only ones that carry the official requirement meaning, so keep an eye out for them β¨
2. Tag Values π·οΈ
All tags SHOULD begin with a prefix indicating who owns their definition. π An IANA registry (Section 7.1) is used to support registering tag prefixes. Right now, three prefixes are defined. This document doesn't impose any further structure on the value that follows the registered prefix. That value can contain any YANG type 'string' characters except carriage returns, newlines, and tabs π¦
Again, except for the conflict-avoiding prefix, this document is purposefully not specifying any structure on (i.e., restricting) the tag values. The goal is to avoid arbitrarily limiting what designers, implementers, and users can do. So designers, implementers, and users are free to add whatever structure they need to their own tag values, or to skip it π
2.1. IETF Tags
An IETF tag is a tag that has the prefix ietf:. All IETF tags are registered with IANA in a registry defined later in this document (Section 7.2). Official and approved, very put-together π
2.2. Vendor Tags
A vendor tag is a tag that has the prefix vendor:. These tags are defined by the vendor that implements the module, and they aren't registered. However, it is RECOMMENDED that the vendor include extra identification in the tag to avoid collisions. For example, the vendor can use its enterprise or organization name after the vendor: prefix, like vendor:example.com:vendor-defined-classifier π’
2.3. User Tags
A user tag is any tag that has the prefix user:. These tags are defined by the user or administrator, and they aren't meant to be registered πΈ Users are not required to use the user: prefix. However, doing so is RECOMMENDED because it helps avoid collisions π«Ά
2.4. Reserved Tags
Any tag not starting with the prefix ietf:, vendor:, or user: is reserved for future use. These tag values aren't invalid, they're just reserved in the context of specifications (e.g., RFCs) π Not a glitch, just a reservation π
3. Tag Management π§
Tags can become associated with a module in a number of ways π Tags may be defined and associated at module design time, at implementation time, or through user administrative control. Since the main consumers of tags are users, users may also remove any tag, no matter how that tag became associated with a module. Users really do run the show π
3.1. Module Definition Tagging
A module definition MAY indicate a set of tags to be added by the module implementer. These design-time tags are indicated using the module-tag extension statement π
If the module is defined in an IETF Standards Track document, the tags MUST be IETF tags (Section 2.1). So new modules can drive the addition of new IETF tags to the IANA registry defined in Section 7.2, and that registry can serve as a check against duplication. No double-tagging drama allowed π
3.2. Implementation Tagging
An implementation MAY include additional tags associated with a module. These tags SHOULD be IETF tags (i.e., registered) or vendor-specific tags π
3.3. User Tagging
Tags of any kind, with or without a prefix, can be assigned and removed by the user using normal configuration mechanisms β¨ To remove a tag from the operational datastore, the user adds a matching masked-tag entry for a given module. That's the move if you want a tag gone, bestie π«Ά
4.2. YANG Module π
okay bestie, here's the whole YANG module. this is the official source of truth, so every line counts π Figure 2 is the outfit β¨
<CODE BEGINS> file "ietf-module-tags@2021-01-04.yang"
module ietf-module-tags {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-module-tags";
prefix tags;
import ietf-yang-types {
prefix yang;
}
organization
"IETF NetMod Working Group (NetMod)";
contact
"WG Web: <https://datatracker.ietf.org/wg/netmod/>
WG List: <mailto:netmod@ietf.org>
Author: Christian Hopps
<mailto:chopps@chopps.org>
Author: Lou Berger
<mailto:lberger@labn.net>
Author: Dean Bogdanovic
<mailto:ivandean@gmail.com>";
description
"This module describes a mechanism associating tags with YANG
modules. Tags may be IANA assigned or privately defined.
Copyright (c) 2021 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject to
the license terms contained in, the Simplified BSD License set
forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 8819
(https://www.rfc-editor.org/info/rfc8819); see the RFC itself
for full legal notices.
The key words '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 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here.";
revision 2021-01-04 {
description
"Initial revision.";
reference
"RFC 8819: YANG Module Tags";
}
typedef tag {
type string {
length "1..max";
pattern '[\S ]+';
}
description
"A tag is a type of 'string' value that does not include
carriage return, newline, or tab characters. It SHOULD begin
with a registered prefix; however, tags without a registered
prefix SHOULD NOT be treated as invalid.";
}
extension module-tag {
argument tag;
description
"The argument 'tag' is of type 'tag'. This extension statement
is used by module authors to indicate the tags that SHOULD be
added automatically by the system. As such, the origin of the
value for the predefined tags should be set to 'system'
[RFC8342].";
}
container module-tags {
description
"Contains the list of modules and their associated tags.";
list module {
key "name";
description
"A list of modules and their associated tags.";
leaf name {
type yang:yang-identifier;
mandatory true;
description
"The YANG module name.";
}
leaf-list tag {
type tag;
description
"Tags associated with the module. See the IANA 'YANG
Module Tag Prefixes' registry for reserved prefixes and
the IANA 'IETF YANG Module Tags' registry for IETF tags.
The 'operational' state [RFC8342] view of this list is
constructed using the following steps:
1) System tags (i.e., tags of 'system' origin) are added.
2) User-configured tags (i.e., tags of 'intended' origin)
are added.
3) Any tag that is equal to a masked-tag is removed.";
}
leaf-list masked-tag {
type tag;
description
"The list of tags that should not be associated with this
module. The user can remove (mask) tags from the
operational state datastore [RFC8342] by adding them to
this list. It is not an error to add tags to this list
that are not associated with the module, but they have no
operational effect.";
}
}
}
}
<CODE ENDS>
Figure 2: Module Tags Module
5. Other Classifications πΈ
ok so fun fact, there's a different doc that sorts YANG modules into groups, [RFC8199] π¦ it's all about the logical vibe and doesn't do tagging or anything else. it splits modules into two buckets (service or element) and then into one of three origins: standard, vendor, or user. it's honestly a great way to chat about modules in general π this document takes that same classification style from [RFC8199] and adds IETF tags to support it. iconic teamwork π«Ά
6. Guidelines to Model Writers π
This section updates [RFC8407]. π
6.1. Define Standard Tags β¨
so, a module MAY use module-tag extension statements to list a set of tags that get attached to it automatically (aka not through configuration) π§ here's what that looks like:
module example-module {
namespace "https://example.com/yang/example";
prefix "ex";
//...
import module-tags { prefix tags; }
tags:module-tag "ietf:some-new-tag";
tags:module-tag "ietf:some-other-tag";
// ...
}
the module writer can totally use the existing standard tags, or make up new ones in the model definition if that fits π but for IETF standardized modules, any new tag MUST be assigned in the IANA registry defined below, see Section 7.2. no shortcuts, bestie π
7. IANA Considerations π
7.1. YANG Module Tag Prefixes Registry π
okay so IANA has made the "YANG Module Tag Prefixes" subregistry, living inside the "YANG Module Tags" registry π¦
this registry hands out tag prefixes. all YANG module tags SHOULD begin with one of the prefixes in here π prefix entries should be short strings made of lowercase ASCII alpha-numeric characters plus a final ":" character, ngl that's so neat β¨
the allocation policy is Specification Required [RFC8126]. the Reference and Assignee values should be enough to figure out and contact the org that got the prefix π
here are the starting values:
+=========+========================+===========+==========+
| Prefix | Description | Reference | Assignee |
+=========+========================+===========+==========+
| ietf: | IETF tags allocated in | RFC 8819 | IETF |
| | the IANA "IETF YANG | | |
| | Module Tags" registry. | | |
+---------+------------------------+-----------+----------+
| vendor: | Non-registered tags | RFC 8819 | IETF |
| | allocated by the | | |
| | module implementer. | | |
+---------+------------------------+-----------+----------+
| user: | Non-registered tags | RFC 8819 | IETF |
| | allocated by and for | | |
| | the user. | | |
+---------+------------------------+-----------+----------+
Table 1
other SDOs (standards development orgs) that want their own set of tags should grab a prefix from this registry too πΈπ
okay bestie, we're picking up right where we left off!! π This part is all about the IETF YANG Module Tags registry and the bits that come right after it. Let's go π
7. IANA Considerations (continued) β¨
7.2. IETF YANG Module Tags Registry πΈ
okay so IANA made a new subregistry called "IETF YANG Module Tags" inside the "YANG Module Tags" registry π¦ and it sits right below the "YANG Module Tag Prefixes" registry. lowkey iconic filing π
this registry hands out tags that start with the registered prefix ietf:. π The vibe for new values is that they should be well considered and they should NOT be something you could already get by mixing existing IETF tags together. literally don't double up π IANA-assigned tags have to follow Net-Unicode from [RFC5198] and they don't need normalization. clean and simple, periodt β¨
The allocation policy for this registry is IETF Review [RFC8126]. π§
Here are the starter tags, all in Table 2 π
+============================+=======================+===========+
| Tag | Description | Reference |
+============================+=======================+===========+
| ietf:network-element-class | Network element as | [RFC8199] |
| | defined in [RFC8199]. | |
+----------------------------+-----------------------+-----------+
| ietf:network-service-class | Network service as | [RFC8199] |
| | defined in [RFC8199]. | |
+----------------------------+-----------------------+-----------+
| ietf:sdo-defined-class | Module is defined by | [RFC8199] |
| | a standards | |
| | organization. | |
+----------------------------+-----------------------+-----------+
| ietf:vendor-defined-class | Module is defined by | [RFC8199] |
| | a vendor. | |
+----------------------------+-----------------------+-----------+
| ietf:user-defined-class | Module is defined by | [RFC8199] |
| | the user. | |
+----------------------------+-----------------------+-----------+
| ietf:hardware | Relates to hardware | RFC 8819 |
| | (e.g., inventory). | |
+----------------------------+-----------------------+-----------+
| ietf:software | Relates to software | RFC 8819 |
| | (e.g., installed OS). | |
+----------------------------+-----------------------+-----------+
| ietf:protocol | Represents a protocol | RFC 8819 |
| | (often combined with | |
| | another tag to | |
| | refine). | |
+----------------------------+-----------------------+-----------+
| ietf:qos | Relates to quality of | RFC 8819 |
| | service. | |
+----------------------------+-----------------------+-----------+
| ietf:network-service-app | Relates to a network | RFC 8819 |
| | service application | |
| | (e.g., an NTP server, | |
| | DNS server, DHCP | |
| | server, etc.). | |
+----------------------------+-----------------------+-----------+
| ietf:system-management | Relates to system | RFC 8819 |
| | management (e.g., a | |
| | system management | |
| | protocol such as | |
| | syslog, TACAC+, SNMP, | |
| | NETCONF, etc.). | |
+----------------------------+-----------------------+-----------+
| ietf:oam | Relates to | RFC 8819 |
| | Operations, | |
| | Administration, and | |
| | Maintenance (e.g., | |
| | BFD). | |
+----------------------------+-----------------------+-----------+
| ietf:routing | Relates to routing. | RFC 8819 |
+----------------------------+-----------------------+-----------+
| ietf:security | Related to security. | RFC 8819 |
+----------------------------+-----------------------+-----------+
| ietf:signaling | Relates to control- | RFC 8819 |
| | plane signaling. | |
+----------------------------+-----------------------+-----------+
| ietf:link-management | Relates to link | RFC 8819 |
| | management. | |
+----------------------------+-----------------------+-----------+
Table 2
7.3. Updates to the IETF XML Registry π
this doc registers a URI in the "IETF XML Registry" [RFC3688] π and following the [RFC3688] format, these registrations got made:
URI: urn:ietf:params:xml:ns:yang:ietf-module-tags
Registrant Contact: The IESG.
XML: N/A; the requested URI is an XML namespace.
URI: urn:ietf:params:xml:ns:yang:ietf-module-tags-state
Registrant Contact: The IESG.
XML: N/A; the requested URI is an XML namespace.
7.4. Updates to the YANG Module Names Registry π¦
this doc registers two YANG modules in the "YANG Module Names" registry [RFC6020] π«Ά following the [RFC6020] format, here's what got registered:
name: ietf-module-tags
namespace: urn:ietf:params:xml:ns:yang:ietf-module-tags
prefix: tags
reference: RFC 8819
name: ietf-module-tags-state
namespace: urn:ietf:params:xml:ns:yang:ietf-module-tags-state
prefix: tags-s
reference: RFC 8819
8. Security Considerations π
okay this section is serious, so pay attention π
The YANG module in this memo is built to be accessed through the NETCONF protocol [RFC6241] π The lowest NETCONF layer is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH) [RFC6242] π
This doc adds the ability to attach tag metadata to YANG modules. β¨ It does NOT define any actions based on those associations, and none are defined yet, so by itself it doesn't introduce any brand new security considerations directly π
β οΈ Users of the tag metadata MAY define all sorts of actions to be taken based on it. Those actions and their definitions are outside the scope of this document. Users will need to think hard about the security implications of any actions they choose to define, including the potential for a tag to get 'masked' by another user. π this is the real drama of the section, so don't skip it!
9. References π
9.1. Normative References π
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7950>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8199] Bogdanovic, D., Claise, B., and C. Moberg, "YANG Module
Classification", RFC 8199, DOI 10.17487/RFC8199, July
2017, <https://www.rfc-editor.org/info/rfc8199>.
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore Architecture
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
<https://www.rfc-editor.org/info/rfc8342>.
[RFC8407] Bierman, A., "Guidelines for Authors and Reviewers of
Documents Containing YANG Data Models", BCP 216, RFC 8407,
DOI 10.17487/RFC8407, October 2018,
<https://www.rfc-editor.org/info/rfc8407>.
9.2. Informative References π§
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004,
<https://www.rfc-editor.org/info/rfc3688>.
[RFC5198] Klensin, J. and M. Padlipsky, "Unicode Format for Network
Interchange", RFC 5198, DOI 10.17487/RFC5198, March 2008,
<https://www.rfc-editor.org/info/rfc5198>.
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020,
DOI 10.17487/RFC6020, October 2010,
<https://www.rfc-editor.org/info/rfc6020>.
[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,
<https://www.rfc-editor.org/info/rfc6241>.
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
<https://www.rfc-editor.org/info/rfc6242>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>.
Appendix A. Examples π§
bestie this is a fictional NETCONF example of querying the module tags list π for the sake of brevity only a few module results are shown β¨
<ns0:data xmlns:ns0="urn:ietf:params:xml:ns:netconf:base:1.0">
<t:module-tags
xmlns:t="urn:ietf:params:xml:ns:yang:ietf-module-tags">
<t:module>
<t:name>ietf-bfd</t:name>
<t:tag>ietf:network-element-class</t:tag>
<t:tag>ietf:oam</t:tag>
<t:tag>ietf:protocol</t:tag>
<t:tag>ietf:sdo-defined-class</t:tag>
</t:module>
<t:module>
<t:name>ietf-isis</t:name>
<t:tag>ietf:network-element-class</t:tag>
<t:tag>ietf:protocol</t:tag>
<t:tag>ietf:sdo-defined-class</t:tag>
<t:tag>ietf:routing</t:tag>
</t:module>
<t:module>
<t:name>ietf-ssh-server</t:name>
<t:tag>ietf:network-element-class</t:tag>
<t:tag>ietf:protocol</t:tag>
<t:tag>ietf:sdo-defined-class</t:tag>
<t:tag>ietf:system-management</t:tag>
</t:module>
</t:module-tags>
</ns0:data>
Figure 3: Example NETCONF Query Output π¦
Appendix B. Non-NMDA State Module π¦
okay so this appendix is the non-NMDA version of the module tags state module π As per [RFC8407], it's here so servers that aren't NMDA compliant can still show their operational state π
<CODE BEGINS> file "ietf-module-tags-state@2021-01-04.yang"
module ietf-module-tags-state {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-module-tags-state";
prefix tags-s;
import ietf-yang-types {
prefix yang;
}
import ietf-module-tags {
prefix tags;
}
organization
"IETF NetMod Working Group (NetMod)";
contact
"WG Web: <https://datatracker.ietf.org/wg/netmod/>
WG List: <mailto:netmod@ietf.org>
Author: Christian Hopps
<mailto:chopps@chopps.org>
Author: Lou Berger
<mailto:lberger@labn.net>
Author: Dean Bogdanovic
<mailto:ivandean@gmail.com>";
description
"This module describes a mechanism associating tags with YANG
modules. Tags may be IANA assigned or privately defined.
This is a temporary non-NMDA module that is for use by
implementations that don't yet support NMDA.
Copyright (c) 2021 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject to
the license terms contained in, the Simplified BSD License set
forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 8819
(https://www.rfc-editor.org/info/rfc8819); see the RFC itself
for full legal notices.";
revision 2021-01-04 {
description
"Initial revision.";
reference
"RFC 8819: YANG Module Tags";
}
container module-tags-state {
config false;
status deprecated;
description
"Contains the list of modules and their associated tags.";
list module {
key "name";
status deprecated;
description
"A list of modules and their associated tags.";
leaf name {
type yang:yang-identifier;
mandatory true;
status deprecated;
description
"The YANG module name.";
}
leaf-list tag {
type tags:tag;
status deprecated;
description
"Tags associated with the module. See the IANA 'YANG
Module Tag Prefixes' registry for reserved prefixes and
the IANA 'IETF YANG Module Tags' registry for IETF tags.
The contents of this list is constructed using the
following steps:
1) System tags (i.e., tags of added by the system) are
added.
2) User-configured tags (i.e., tags added by
configuration) are added.
3) Any tag that is equal to a masked-tag present in the
corresponding ietf-module-tags:module-tags:module-tag leaf
list for this module is removed.";
}
}
}
}
<CODE ENDS>
Figure 4: Non-NMDA Module Tags State Module
Acknowledgements π«Ά
Special thanks to Robert Wilton for his help improving the introduction and providing the example use cases, as well as generating the non-NMDA module. He's a legend πΈ
Authors' Addresses π
Christian Hopps
LabN Consulting, L.L.C.
Email: chopps@chopps.org
Lou Berger
LabN Consulting, L.L.C.
Email: lberger@labn.net
Dean Bogdanovic
Volta Networks
Email: ivandean@gmail.com
π¦ where this page comes from
- ietf: rfc8819 2021-01
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms