draft-ietf-netmod-yang-model-classification-04.txt | draft-ietf-netmod-yang-model-classification-05.txt | |||
---|---|---|---|---|
NETMOD D. Bogdanovic | NETMOD D. Bogdanovic | |||
Internet-Draft Volta Networks, Inc. | Internet-Draft Volta Networks, Inc. | |||
Intended status: Informational B. Claise | Intended status: Informational B. Claise | |||
Expires: April 29, 2017 C. Moberg | Expires: September 14, 2017 C. Moberg | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
October 26, 2016 | March 13, 2017 | |||
YANG Module Classification | YANG Module Classification | |||
draft-ietf-netmod-yang-model-classification-04 | draft-ietf-netmod-yang-model-classification-05 | |||
Abstract | Abstract | |||
The YANG [RFC6020] data modeling language is currently being | The YANG data modeling language is currently being considered for a | |||
considered for a wide variety of applications throughout the | wide variety of applications throughout the networking industry at | |||
networking industry at large. Many standards-defining organizations | large. Many standards-defining organizations (SDOs), open source | |||
(SDOs), open source software projects, vendors and users are using | software projects, vendors and users are using YANG to develop and | |||
YANG to develop and publish YANG modules for a wide variety of | publish YANG modules for a wide variety of applications. At the same | |||
applications. At the same time, there is currently no well-known | time, there is currently no well-known terminology to categorize | |||
terminology to categorize various types of YANG modules. | various types of YANG modules. | |||
A consistent terminology would help with the categorization of YANG | A consistent terminology would help with the categorization of YANG | |||
modules, assist in the analysis of the YANG data modeling efforts in | modules, assist in the analysis of the YANG data modeling efforts in | |||
the IETF and other organizations, and bring clarity to the YANG- | the IETF and other organizations, and bring clarity to the YANG- | |||
related discussions between the different groups. | related discussions between the different groups. | |||
This document describes a set of concepts and associated terms to | This document describes a set of concepts and associated terms to | |||
support consistent classification of YANG modules. | support consistent classification of YANG modules. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 46 ¶ | skipping to change at page 1, line 46 ¶ | |||
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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 April 29, 2017. | This Internet-Draft will expire on September 14, 2017. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2017 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 | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://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 | |||
skipping to change at page 2, line 34 ¶ | skipping to change at page 2, line 34 ¶ | |||
2. First Dimension: YANG Module Abstraction Layers . . . . . . . 4 | 2. First Dimension: YANG Module Abstraction Layers . . . . . . . 4 | |||
2.1. Network Service YANG Modules . . . . . . . . . . . . . . 6 | 2.1. Network Service YANG Modules . . . . . . . . . . . . . . 6 | |||
2.2. Network Element YANG Modules . . . . . . . . . . . . . . 7 | 2.2. Network Element YANG Modules . . . . . . . . . . . . . . 7 | |||
3. Second Dimension: Module Types . . . . . . . . . . . . . . . 7 | 3. Second Dimension: Module Types . . . . . . . . . . . . . . . 7 | |||
3.1. Standard YANG Modules . . . . . . . . . . . . . . . . . . 8 | 3.1. Standard YANG Modules . . . . . . . . . . . . . . . . . . 8 | |||
3.2. Vendor-specific YANG Modules and Extensions . . . . . . . 8 | 3.2. Vendor-specific YANG Modules and Extensions . . . . . . . 8 | |||
3.3. User-specific YANG Modules and Extensions . . . . . . . . 9 | 3.3. User-specific YANG Modules and Extensions . . . . . . . . 9 | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | |||
7. Change log [RFC Editor: Please remove] . . . . . . . . . . . 9 | 7. Change log [RFC Editor: Please remove] . . . . . . . . . . . 10 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 10 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 10 | 8.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
1. Introduction | 1. Introduction | |||
The Internet Engineering Steering Group (IESG) has been actively | The Internet Engineering Steering Group (IESG) has been actively | |||
encouraging IETF working groups to use the YANG modeling language | encouraging IETF working groups to use the YANG data modeling | |||
[RFC6020], [RFC7950] and NETCONF protocol [RFC6241] for configuration | language [RFC7950], [RFC7950] and NETCONF protocol [RFC6241] for | |||
management purposes, especially in new working group charters | configuration management purposes, especially in new working group | |||
[Writable-MIB-Module-IESG-Statement]. | charters [Writable-MIB-Module-IESG-Statement]. | |||
YANG is also gaining wide acceptance as the de-facto standard | YANG is also gaining wide acceptance as the de-facto standard data | |||
modeling language in the broader industry. This extends beyond the | modeling language in the broader industry. This extends beyond the | |||
IETF, including many standards development organizations, industry | IETF, including many standards development organizations, industry | |||
consortia, ad hoc groups, open source projects, vendors, and end- | consortia, ad hoc groups, open source projects, vendors, and end- | |||
users. | users. | |||
There are currently no clear guidelines on how to classify the | There are currently no clear guidelines on how to classify the | |||
layering of YANG modules according to abstraction, or how to classify | layering of YANG modules according to abstraction, or how to classify | |||
modules along the continuum spanning formal standards publications, | modules along the continuum spanning formal standards publications, | |||
vendor-specific modules and modules provided by end-users. | vendor-specific modules and modules provided by end-users. | |||
skipping to change at page 3, line 47 ¶ | skipping to change at page 3, line 47 ¶ | |||
development organizations and industry consortia discussions, | development organizations and industry consortia discussions, | |||
whose goals are determined in their respective areas of work. | whose goals are determined in their respective areas of work. | |||
o Second, operators might look at the YANG module classification | o Second, operators might look at the YANG module classification | |||
type to understand which Network Service YANG modules and Network | type to understand which Network Service YANG modules and Network | |||
Element YANG modules are available for their service composition. | Element YANG modules are available for their service composition. | |||
It is difficult to determine the module type without inspecting | It is difficult to determine the module type without inspecting | |||
the YANG module itself. The YANG module name might provide some | the YANG module itself. The YANG module name might provide some | |||
useful information but is not a definite answer. For example, an | useful information but is not a definite answer. For example, an | |||
L2VPN YANG module might be a Network Service YANG module, ready to | L2VPN YANG module might be a Network Service YANG module, ready to | |||
be used by the operators. Alternatively, it might be a Network | be used as a service model by network operator. Alternatively, it | |||
Element YANG module that contains the L2VPN data definitions | might be a Network Element YANG module that contains the L2VPN | |||
required to be configured on a single device. | data definitions required to be configured on a single device. | |||
o And thirdly, this taxonomy would help equipment vendors (whether | o And thirdly, this taxonomy would help equipment vendors (whether | |||
physical or virtual), controller vendors, orchestrator vendors to | physical or virtual), controller vendors, orchestrator vendors to | |||
explain to their customers the relationship between the different | explain to their customers the relationship between the different | |||
YANG modules they propose in their products. See Figure 1. | YANG modules they support in their products. See Figure 1. | |||
1.1. Terminology | 1.1. Terminology | |||
[RFC7950] specifies: | [RFC7950] specifies: | |||
o data model: A data model describes how data is represented and | o data model: A data model describes how data is represented and | |||
accessed. | accessed. | |||
o module: A YANG module defines a hierarchy of nodes that can be | o module: A YANG module defines hierarchies of schema nodes. With | |||
used for NETCONF-based operations. With its definitions and the | its definitions and the definitions it imports or includes from | |||
definitions it imports or includes from elsewhere, a module is | elsewhere, a module is self-contained and "compilable". | |||
self-contained and "compilable". | ||||
2. First Dimension: YANG Module Abstraction Layers | 2. First Dimension: YANG Module Abstraction Layers | |||
Module developers have taken two approaches to developing YANG | Module developers have taken two approaches to developing YANG | |||
modules: top-down and bottom-up. The top-down approach starts with | modules: top-down and bottom-up. The top-down approach starts with | |||
high level abstractions modeling business or customer requirements | high level abstractions modeling business or customer requirements | |||
and maps them to specific networking technologies. The bottom-up | and maps them to specific networking technologies. The bottom-up | |||
approach starts with fundamental networking technologies and maps | approach starts with fundamental networking technologies and maps | |||
them into more abstract constructs. | them into more abstract constructs. | |||
skipping to change at page 6, line 22 ¶ | skipping to change at page 6, line 22 ¶ | |||
of all participating network elements and features, but describes an | of all participating network elements and features, but describes an | |||
abstract model that allows instances of the service to be decomposed | abstract model that allows instances of the service to be decomposed | |||
into instance data according to the Network Element YANG Modules of | into instance data according to the Network Element YANG Modules of | |||
the participating network elements. The service-to-element | the participating network elements. The service-to-element | |||
decomposition is a separate process with details depending on how the | decomposition is a separate process with details depending on how the | |||
network operator chooses to realize the service. For the purpose of | network operator chooses to realize the service. For the purpose of | |||
this document we will use the term "orchestrator" to describe a | this document we will use the term "orchestrator" to describe a | |||
system implementing such a process. | system implementing such a process. | |||
As an example, the Network Service YANG Module defined in | As an example, the Network Service YANG Module defined in | |||
[YANG-Data-Model-for-L3VPN-service-delivery] provides an abstract | [draft-ietf-l3sm-l3vpn-service-model] provides an abstract model for | |||
model for Layer 3 IP VPN service configuration. This module includes | Layer 3 IP VPN service configuration. This module includes e.g. the | |||
e.g. the concept of a 'site-network-access' to represent bearer and | concept of a 'site-network-access' to represent bearer and connection | |||
connection parameters. An orchestrator receives operations on | parameters. An orchestrator receives operations on service instances | |||
service instances according to the service module and decomposes the | according to the service module and decomposes the data into specific | |||
data into specific Network Element YANG Modules to configure the | Network Element YANG Modules to configure the participating network | |||
participating network elements to perform the intent of the service. | elements to the service. In the case of the L3VPN module, this would | |||
In the case of the L3VPN module, this would include translating the | include translating the 'site-network-access' parameters to the | |||
'site-network-access' parameters to the appropriate parameters in the | appropriate parameters in the Network Element YANG Module implemented | |||
Network Element YANG Module implemented on the constituent elements. | on the constituent elements. | |||
Network Service YANG Modules define service models to be consumed by | Network Service YANG Modules define service models to be consumed by | |||
external systems. These modules are commonly designed, developed and | external systems. External systems can be provisioning systems, | |||
deployed by network infrastructure teams. | service orchestrators, Operations Support Systems, Business Support | |||
Systems and applications exposed to network service consumers, being | ||||
either internal network operations peole or extarnal customers. | ||||
These modules are commonly designed, developed and deployed by | ||||
network infrastructure teams. | ||||
YANG allows for different design patterns to describe network | YANG allows for different design patterns to describe network | |||
services, ranging from monolithic to component-based approaches. | services, ranging from monolithic to component-based approaches. | |||
The monolithic approach captures the entire service in a single | The monolithic approach captures the entire service in a single | |||
module and does not put focus on reusability of internal data | module and does not put focus on reusability of internal data | |||
definitions and groupings. The monolithic approach has the | definitions and groupings. The monolithic approach has the | |||
advantages of single-purpose development including speed at the | advantages of single-purpose development including speed at the | |||
expense of reusability. | expense of reusability. | |||
skipping to change at page 7, line 23 ¶ | skipping to change at page 7, line 27 ¶ | |||
interface definitions. | interface definitions. | |||
2.2. Network Element YANG Modules | 2.2. Network Element YANG Modules | |||
Network Element YANG Modules describe the characteristics of a | Network Element YANG Modules describe the characteristics of a | |||
network device as defined by the vendor of that device. The modules | network device as defined by the vendor of that device. The modules | |||
are commonly structured around features of the device, e.g. interface | are commonly structured around features of the device, e.g. interface | |||
configuration [RFC7223], OSPF configuration [I-D.ietf-ospf-yang], and | configuration [RFC7223], OSPF configuration [I-D.ietf-ospf-yang], and | |||
firewall rules definitions [I-D.ietf-netmod-acl-model]. | firewall rules definitions [I-D.ietf-netmod-acl-model]. | |||
The module provides a coherent data model representation of the | Although the [RFC7950], [RFC7950] doesn't explain the relationship of | |||
software environment consisting of the operating system and | the terms '(YANG) data model' and '(YANG) module', the authors | |||
applications running on the device. The decomposition, ordering, and | understand there is a 1:1 relationship between a data model and a | |||
execution of changes to the operating system and application | YANG module, but a data model may also be expressed using a | |||
configuration is the task of the agent that implements the module. | collection of YANG modules (and submodules). The module provides a | |||
coherent data model representation of the software environment | ||||
consisting of the operating system and applications running on the | ||||
device. The decomposition, ordering, and execution of changes to the | ||||
operating system and application configuration is the task of the | ||||
agent that implements the module. | ||||
3. Second Dimension: Module Types | 3. Second Dimension: Module Types | |||
This document suggests classifying YANG module types as standard YANG | This document suggests classifying YANG module types as standard YANG | |||
modules, vendor-specific YANG modules and extensions, or user- | modules, vendor-specific YANG modules and extensions, or user- | |||
specific YANG modules and extensions | specific YANG modules and extensions | |||
The suggested classification applies to both Network Element YANG | The suggested classification applies to both Network Element YANG | |||
Modules and Network Service YANG Modules. | Modules and Network Service YANG Modules. | |||
skipping to change at page 10, line 19 ¶ | skipping to change at page 10, line 23 ¶ | |||
alignment (YANG data model versus YANG module), explain better the | alignment (YANG data model versus YANG module), explain better the | |||
distinction between the Network Element and Service YANG data models | distinction between the Network Element and Service YANG data models | |||
even if sometimes there are grey areas, editorial pass. Changed the | even if sometimes there are grey areas, editorial pass. Changed the | |||
use of the term 'model' to 'module' to be better aligned with | use of the term 'model' to 'module' to be better aligned with | |||
RFC6020. | RFC6020. | |||
8. References | 8. References | |||
8.1. Normative References | 8.1. Normative References | |||
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | ||||
the Network Configuration Protocol (NETCONF)", RFC 6020, | ||||
DOI 10.17487/RFC6020, October 2010, | ||||
<http://www.rfc-editor.org/info/rfc6020>. | ||||
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
<http://www.rfc-editor.org/info/rfc6241>. | <http://www.rfc-editor.org/info/rfc6241>. | |||
[RFC7223] Bjorklund, M., "A YANG Data Model for Interface | [RFC7223] Bjorklund, M., "A YANG Data Model for Interface | |||
Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | |||
<http://www.rfc-editor.org/info/rfc7223>. | <http://www.rfc-editor.org/info/rfc7223>. | |||
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
<http://www.rfc-editor.org/info/rfc7950>. | <http://www.rfc-editor.org/info/rfc7950>. | |||
8.2. Informative References | 8.2. Informative References | |||
[draft-ietf-l3sm-l3vpn-service-model] | ||||
"YANG Data Model for L3VPN service delivery", | ||||
<https://tools.ietf.org/id/draft-ietf-l3sm-l3vpn-service- | ||||
model>. | ||||
[I-D.ietf-netmod-acl-model] | [I-D.ietf-netmod-acl-model] | |||
Bogdanovic, D., Koushik, K., Huang, L., and D. Blair, | Bogdanovic, D., Koushik, K., Huang, L., and D. Blair, | |||
"Network Access Control List (ACL) YANG Data Model", | "Network Access Control List (ACL) YANG Data Model", | |||
draft-ietf-netmod-acl-model-09 (work in progress), October | draft-ietf-netmod-acl-model-10 (work in progress), March | |||
2016. | 2017. | |||
[I-D.ietf-ospf-yang] | [I-D.ietf-ospf-yang] | |||
Yeung, D., Qu, Y., Zhang, Z., Bogdanovic, D., and K. | Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | |||
Koushik, "Yang Data Model for OSPF Protocol", draft-ietf- | "Yang Data Model for OSPF Protocol", draft-ietf-ospf- | |||
ospf-yang-05 (work in progress), July 2016. | yang-06 (work in progress), October 2016. | |||
[Writable-MIB-Module-IESG-Statement] | [Writable-MIB-Module-IESG-Statement] | |||
"Writable MIB Module IESG Statement", | "Writable MIB Module IESG Statement", | |||
<https://www.ietf.org/iesg/statement/writable-mib- | <https://www.ietf.org/iesg/statement/writable-mib- | |||
module.html>. | module.html>. | |||
[YANG-Data-Model-for-L3VPN-service-delivery] | ||||
"YANG Data Model for L3VPN service delivery", | ||||
<https://tools.ietf.org/id/draft-l3vpn-service-yang>. | ||||
Authors' Addresses | Authors' Addresses | |||
Dean Bogdanovic | Dean Bogdanovic | |||
Volta Networks, Inc. | Volta Networks, Inc. | |||
Email: dean@voltanet.io | Email: dean@voltanet.io | |||
Benoit Claise | Benoit Claise | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
De Kleetlaan 6a b1 | De Kleetlaan 6a b1 | |||
End of changes. 20 change blocks. | ||||
57 lines changed or deleted | 61 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |