draft-ietf-netmod-module-tags-08.txt   draft-ietf-netmod-module-tags-09.txt 
Network Working Group C. Hopps Network Working Group C. Hopps
Internet-Draft LabN Consulting, L.L.C. Internet-Draft LabN Consulting, L.L.C.
Updates: 8407 (if approved) L. Berger Updates: 8407 (if approved) L. Berger
Intended status: Standards Track LabN Consulting, LLC. Intended status: Standards Track LabN Consulting, LLC.
Expires: November 4, 2019 D. Bogdanovic Expires: March 28, 2020 D. Bogdanovic
Volta Networks Volta Networks
May 3, 2019 September 25, 2019
YANG Module Tags YANG Module Tags
draft-ietf-netmod-module-tags-08 draft-ietf-netmod-module-tags-09
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. Tags may be registered and assigned during modules tags is provided. Tags may be registered and assigned during
module definition; assigned by implementations; or dynamically module definition; assigned by implementations; or dynamically
defined and set by users. This document also provides guidance to defined and set by users. This document also provides guidance to
future model writers; as such, this document updates RFC8407. future model writers; as such, this document updates RFC8407.
skipping to change at page 1, line 39 skipping to change at page 1, line 39
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 November 4, 2019. This Internet-Draft will expire on March 28, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 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
skipping to change at page 2, line 35 skipping to change at page 2, line 35
4.1. Tags Module Tree . . . . . . . . . . . . . . . . . . . . 6 4.1. Tags Module Tree . . . . . . . . . . . . . . . . . . . . 6
4.2. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 6 4.2. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 6
5. Other Classifications . . . . . . . . . . . . . . . . . . . . 9 5. Other Classifications . . . . . . . . . . . . . . . . . . . . 9
6. Guidelines to Model Writers . . . . . . . . . . . . . . . . . 9 6. Guidelines to Model Writers . . . . . . . . . . . . . . . . . 9
6.1. Define Standard Tags . . . . . . . . . . . . . . . . . . 9 6.1. Define Standard Tags . . . . . . . . . . . . . . . . . . 9
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
7.1. YANG Module Tag Prefixes Registry . . . . . . . . . . . . 9 7.1. YANG Module Tag Prefixes Registry . . . . . . . . . . . . 9
7.2. IETF YANG Module Tags Registry . . . . . . . . . . . . . 10 7.2. IETF YANG Module Tags Registry . . . . . . . . . . . . . 10
7.3. Updates to the IETF XML Registry . . . . . . . . . . . . 12 7.3. Updates to the IETF XML Registry . . . . . . . . . . . . 12
7.4. Updates to the YANG Module Names Registry . . . . . . . . 12 7.4. Updates to the YANG Module Names Registry . . . . . . . . 12
8. Security Considerations . . . . . . . . . . . . . . . . . . . 12 8. Security Considerations . . . . . . . . . . . . . . . . . . . 13
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 13
9.1. Normative References . . . . . . . . . . . . . . . . . . 13 9.1. Normative References . . . . . . . . . . . . . . . . . . 13
9.2. Informative References . . . . . . . . . . . . . . . . . 13 9.2. Informative References . . . . . . . . . . . . . . . . . 14
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 14 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 14
Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 15 Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 15
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 Appendix C. Non-NMDA State Module. . . . . . . . . . . . . . . . 15
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18
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"). One benefit of using tags for organization over (e.g., "#hashtags"). One benefit of using tags for organization over
a rigid structure is that it is more flexible and can more easily a rigid structure is that it is more flexible and can more easily
adapt over time as technologies evolve. Tags can be usefully adapt over time as technologies evolve. Tags can be usefully
registered, but they can also serve as a non-registered mechanism registered, but they can also serve as a non-registered mechanism
available for users to define themselves. This document provides a available for users to define themselves. This document provides a
skipping to change at page 6, line 19 skipping to change at page 6, line 19
The tree associated with the "ietf-module-tags" module follows. The The tree associated with the "ietf-module-tags" module follows. The
meaning of the symbols can be found in [RFC8340]. meaning of the symbols can be found in [RFC8340].
module: ietf-module-tags module: ietf-module-tags
+--rw module-tags +--rw module-tags
+--rw module* [name] +--rw module* [name]
+--rw name yang:yang-identifier +--rw name yang:yang-identifier
+--rw tag* tag +--rw tag* tag
+--rw masked-tag* tag +--rw masked-tag* tag
Figure 1: YANG Module Tags Tree Diagram
4.2. YANG Module 4.2. YANG Module
<CODE BEGINS> file "ietf-module-tags@2019-05-03.yang" <CODE BEGINS> file "ietf-module-tags@2019-09-25.yang"
module ietf-module-tags { module ietf-module-tags {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-module-tags"; namespace "urn:ietf:params:xml:ns:yang:ietf-module-tags";
prefix tags; prefix tags;
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
} }
organization organization
skipping to change at page 7, line 5 skipping to change at page 7, line 6
Author: Dean Bogdanovic Author: Dean Bogdanovic
<ivandean@gmail.com>"; <ivandean@gmail.com>";
// RFC Ed.: replace XXXX with actual RFC number and // RFC Ed.: replace XXXX with actual RFC number and
// remove this note. // remove this note.
description description
"This module describes a mechanism associating tags with YANG "This module describes a mechanism associating tags with YANG
modules. Tags may be IANA assigned or privately defined. 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. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject to without modification, is permitted pursuant to, and subject to
the license terms contained in, the Simplified BSD License set the license terms contained in, the Simplified BSD License set
forth in Section 4.c of the IETF Trust's Legal Provisions forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (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 The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
'MAY', and 'OPTIONAL' in this document are to be interpreted as 'MAY', and 'OPTIONAL' in this document are to be interpreted as
described in BCP 14 [RFC2119] [RFC8174] when, and only when, described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here. 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.";
// RFC Ed.: update the date below with the date of RFC publication // RFC Ed.: update the date below with the date of RFC publication
// and RFC number and remove this note. // and RFC number and remove this note.
revision 2019-05-03 { revision 2019-09-25 {
description description
"Initial revision."; "Initial revision.";
reference "RFC XXXX: YANG Module Tags"; reference "RFC XXXX: YANG Module Tags";
} }
typedef tag { typedef tag {
type string { type string {
length "1..max"; length "1..max";
pattern '[\S ]+'; pattern '[\S ]+';
} }
skipping to change at page 8, line 50 skipping to change at page 9, line 4
module. The user can remove (mask) tags from the module. The user can remove (mask) tags from the
operational state datastore [RFC8342] by adding them to operational state datastore [RFC8342] by adding them to
this list. It is not an error to add tags to this list this list. It is not an error to add tags to this list
that are not associated with the module, but they have no that are not associated with the module, but they have no
operational effect."; operational effect.";
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
Figure 2: Module Tags Module
Figure 1: Module Tags Module
5. Other Classifications 5. Other Classifications
It is worth noting that a different YANG module classification It is worth noting that a different YANG module classification
document exists [RFC8199]. That document only classifies modules in document exists [RFC8199]. That document only classifies modules in
a logical manner and does not define tagging or any other mechanisms. a logical manner and does not define tagging or any other mechanisms.
It divides YANG modules into two categories (service or element) and It divides YANG modules into two categories (service or element) and
then into one of three origins: standard, vendor or user. It does then into one of three origins: standard, vendor or user. It does
provide a good way to discuss and identify modules in general. This provide a good way to discuss and identify modules in general. This
document defines IETF tags to support [RFC8199] style classification. document defines IETF tags to support [RFC8199] style classification.
skipping to change at page 12, line 10 skipping to change at page 12, line 10
| ietf:signaling | Relates to control plane | [This | | ietf:signaling | Relates to control plane | [This |
| | signaling. | document] | | | signaling. | document] |
| | | | | | | |
| ietf:link-management | Relates to link | [This | | ietf:link-management | Relates to link | [This |
| | management. | document] | | | management. | document] |
+----------------------------+--------------------------+-----------+ +----------------------------+--------------------------+-----------+
7.3. Updates to the IETF XML Registry 7.3. Updates to the IETF XML Registry
This document registers a URI in the "IETF XML Registry" [RFC3688]. 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: been made:
URI: URI:
urn:ietf:params:xml:ns:yang:ietf-module-tags urn:ietf:params:xml:ns:yang:ietf-module-tags
Registrant Contact: Registrant Contact:
The IESG. The IESG.
XML: XML:
N/A; the requested URI is an XML namespace. 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 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 registry [RFC6020]. Following the format in [RFC6020], the following
registration has been made: registration have been made:
name: name:
ietf-module-tags ietf-module-tags
namespace: namespace:
urn:ietf:params:xml:ns:yang:ietf-module-tags urn:ietf:params:xml:ns:yang:ietf-module-tags
prefix: prefix:
tags tags
reference: reference:
RFC XXXX (RFC Ed.: replace XXX with actual RFC number and remove RFC XXXX (RFC Ed.: replace XXX with actual RFC number and remove
this note.) 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 8. Security Considerations
The YANG module defined in this memo is designed to be accessed via The YANG module defined in this memo is designed to be accessed via
the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the
secure transport layer and the mandatory-to-implement secure secure transport layer and the mandatory-to-implement secure
transport is SSH [RFC6242]. transport is SSH [RFC6242].
This document adds the ability to associate tag meta-data with YANG This document adds the ability to associate tag meta-data with YANG
modules. This document does not define any actions based on these modules. This document does not define any actions based on these
associations, and none are yet defined, and therefore it does not by associations, and none are yet defined, and therefore it does not by
skipping to change at page 15, line 31 skipping to change at page 15, line 31
<t:module> <t:module>
<t:name>ietf-ssh-server</t:name> <t:name>ietf-ssh-server</t:name>
<t:tag>ietf:network-element-class</t:tag> <t:tag>ietf:network-element-class</t:tag>
<t:tag>ietf:protocol</t:tag> <t:tag>ietf:protocol</t:tag>
<t:tag>ietf:sdo-defined-class</t:tag> <t:tag>ietf:sdo-defined-class</t:tag>
<t:tag>ietf:system-management</t:tag> <t:tag>ietf:system-management</t:tag>
</t:module> </t:module>
</t:module-tags> </t:module-tags>
</ns0:data> </ns0:data>
Figure 3: Example NETCONF Query Output
Appendix B. Acknowledgements Appendix B. Acknowledgements
Special thanks to Robert Wilton for his help improving the 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.
<CODE BEGINS> 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: <https://tools.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
<ivandean@gmail.com>";
// 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.";
}
}
}
}
<CODE ENDS>
Figure 4: Non-NMDA Module Tags State Module
Authors' Addresses Authors' Addresses
Christian Hopps Christian Hopps
LabN Consulting, L.L.C. LabN Consulting, L.L.C.
Email: chopps@chopps.org Email: chopps@chopps.org
Lou Berger Lou Berger
LabN Consulting, LLC. LabN Consulting, LLC.
 End of changes. 21 change blocks. 
23 lines changed or deleted 165 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/