--- 1/draft-ietf-netmod-module-tags-08.txt 2019-09-25 10:13:13.171892531 -0700 +++ 2/draft-ietf-netmod-module-tags-09.txt 2019-09-25 10:13:13.207893439 -0700 @@ -1,21 +1,21 @@ Network Working Group C. Hopps Internet-Draft LabN Consulting, L.L.C. Updates: 8407 (if approved) L. Berger Intended status: Standards Track LabN Consulting, LLC. -Expires: November 4, 2019 D. Bogdanovic +Expires: March 28, 2020 D. Bogdanovic Volta Networks - May 3, 2019 + September 25, 2019 YANG Module Tags - draft-ietf-netmod-module-tags-08 + draft-ietf-netmod-module-tags-09 Abstract This document provides for the association of tags with YANG modules. The expectation is for such tags to be used to help classify and organize modules. A method for defining, reading and writing a modules tags is provided. Tags may be registered and assigned during module definition; assigned by implementations; or dynamically defined and set by users. This document also provides guidance to future model writers; as such, this document updates RFC8407. @@ -28,21 +28,21 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. 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." - This Internet-Draft will expire on November 4, 2019. + This Internet-Draft will expire on March 28, 2020. Copyright Notice Copyright (c) 2019 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 @@ -70,27 +70,28 @@ 4.1. Tags Module Tree . . . . . . . . . . . . . . . . . . . . 6 4.2. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 6 5. Other Classifications . . . . . . . . . . . . . . . . . . . . 9 6. Guidelines to Model Writers . . . . . . . . . . . . . . . . . 9 6.1. Define Standard Tags . . . . . . . . . . . . . . . . . . 9 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 7.1. YANG Module Tag Prefixes Registry . . . . . . . . . . . . 9 7.2. IETF YANG Module Tags Registry . . . . . . . . . . . . . 10 7.3. Updates to the IETF XML Registry . . . . . . . . . . . . 12 7.4. Updates to the YANG Module Names Registry . . . . . . . . 12 - 8. Security Considerations . . . . . . . . . . . . . . . . . . . 12 + 8. Security Considerations . . . . . . . . . . . . . . . . . . . 13 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 9.1. Normative References . . . . . . . . . . . . . . . . . . 13 - 9.2. Informative References . . . . . . . . . . . . . . . . . 13 + 9.2. Informative References . . . . . . . . . . . . . . . . . 14 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 14 Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 15 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 + Appendix C. Non-NMDA State Module. . . . . . . . . . . . . . . . 15 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 1. Introduction The use of tags for classification and organization is fairly ubiquitous not only within IETF protocols, but in the internet itself (e.g., "#hashtags"). One benefit of using tags for organization over a rigid structure is that it is more flexible and can more easily adapt over time as technologies evolve. Tags can be usefully registered, but they can also serve as a non-registered mechanism available for users to define themselves. This document provides a @@ -238,23 +239,25 @@ The tree associated with the "ietf-module-tags" module follows. The meaning of the symbols can be found in [RFC8340]. module: ietf-module-tags +--rw module-tags +--rw module* [name] +--rw name yang:yang-identifier +--rw tag* tag +--rw masked-tag* tag + Figure 1: YANG Module Tags Tree Diagram + 4.2. YANG Module - file "ietf-module-tags@2019-05-03.yang" + file "ietf-module-tags@2019-09-25.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 @@ -272,44 +275,44 @@ Author: Dean Bogdanovic "; // RFC Ed.: replace XXXX with actual RFC number and // remove this note. description "This module describes a mechanism associating tags with YANG modules. Tags may be IANA assigned or privately defined. - Copyright (c) 2018 IETF Trust and the persons identified as + Copyright (c) 2019 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 XXXX + (https://www.rfc-editor.org/info/rfcXXXX); 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 [RFC2119] [RFC8174] when, and only when, - they appear in all capitals, as shown here. - - This version of this YANG module is part of RFC XXXX - (https://tools.ietf.org/html/rfcXXXX); see the RFC itself for - full legal notices."; + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here."; // RFC Ed.: update the date below with the date of RFC publication // and RFC number and remove this note. - revision 2019-05-03 { + revision 2019-09-25 { description "Initial revision."; reference "RFC XXXX: YANG Module Tags"; } typedef tag { type string { length "1..max"; pattern '[\S ]+'; } @@ -365,22 +368,21 @@ 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."; } } } } - - Figure 1: Module Tags Module + Figure 2: Module Tags Module 5. Other Classifications It is worth noting that a different YANG module classification document exists [RFC8199]. That document only classifies modules in a logical manner and does not define tagging or any other mechanisms. It divides YANG modules into two categories (service or element) and then into one of three origins: standard, vendor or user. It does provide a good way to discuss and identify modules in general. This document defines IETF tags to support [RFC8199] style classification. @@ -517,51 +519,73 @@ | ietf:signaling | Relates to control plane | [This | | | signaling. | document] | | | | | | ietf:link-management | Relates to link | [This | | | management. | document] | +----------------------------+--------------------------+-----------+ 7.3. Updates to the IETF XML Registry This document registers a URI in the "IETF XML Registry" [RFC3688]. - Following the format in [RFC3688], the following registration has + Following the format in [RFC3688], the following registrations have been 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 document registers one YANG module in the "YANG Module Names" + This document registers two YANG modules in the "YANG Module Names" registry [RFC6020]. Following the format in [RFC6020], the following - registration has been made: + registration have been made: name: ietf-module-tags namespace: urn:ietf:params:xml:ns:yang:ietf-module-tags prefix: tags reference: RFC XXXX (RFC Ed.: replace XXX with actual RFC number and remove this note.) + name: + ietf-module-tags-state + + namespace: + urn:ietf:params:xml:ns:yang:ietf-module-tags-state + + prefix: + tags + + reference: + RFC XXXX (RFC Ed.: replace XXX with actual RFC number and remove + this note.) + 8. Security Considerations The YANG module defined in this memo is designed to be accessed via the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the secure transport layer and the mandatory-to-implement secure transport is SSH [RFC6242]. This document adds the ability to associate tag meta-data with YANG modules. This document does not define any actions based on these associations, and none are yet defined, and therefore it does not by @@ -657,24 +681,142 @@ ietf-ssh-server ietf:network-element-class ietf:protocol ietf:sdo-defined-class ietf:system-management + Figure 3: Example NETCONF Query Output + Appendix B. Acknowledgements Special thanks to Robert Wilton for his help improving the - introduction and providing the example use cases. + introduction and providing the example use cases, as well as + generating the non-NMDA module. + +Appendix C. Non-NMDA State Module. + + As per [RFC8407] the following is a non-NMDA module to support + viewing the operational state for non-NMDA compliant servers. + + file "ietf-module-tags-state@2019-09-25.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: + WG List: + + Author: Christian Hopps + + + Author: Lou Berger + + + Author: Dean Bogdanovic + "; + + // RFC Ed.: replace XXXX with actual RFC number and + // remove this note. + + 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) 2019 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 XXXX + (https://www.rfc-editor.org/info/rfcXXXX); 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."; + + // RFC Ed.: update the date below with the date of RFC publication + // and RFC number and remove this note. + + revision 2019-09-25 { + description + "Initial revision."; + reference + "RFC XXXX: 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."; + } + } + } +} + + + Figure 4: Non-NMDA Module Tags State Module Authors' Addresses Christian Hopps LabN Consulting, L.L.C. Email: chopps@chopps.org Lou Berger LabN Consulting, LLC.