draft-ietf-netmod-yang-model-classification-01.txt | draft-ietf-netmod-yang-model-classification-02.txt | |||
---|---|---|---|---|
NETMOD D. Bogdanovic | NETMOD D. Bogdanovic | |||
Internet-Draft | Internet-Draft Volta Networks, Inc. | |||
Intended status: Informational B. Claise | Intended status: Informational B. Claise | |||
Expires: October 6, 2016 C. Moberg | Expires: December 24, 2016 C. Moberg | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
April 4, 2016 | June 22, 2016 | |||
YANG Model Classification | YANG Module Classification | |||
draft-ietf-netmod-yang-model-classification-01 | draft-ietf-netmod-yang-model-classification-02 | |||
Abstract | Abstract | |||
The YANG [RFC6020] data modeling language is currently being | The YANG [RFC6020] data modeling language is currently being | |||
considered for a wide variety of applications throughout the | considered for a wide variety of applications throughout the | |||
networking industry at large. Many standards-defining organizations | networking industry at large. Many standards-defining organizations | |||
(SDOs), open source software projects, vendors and users are using | (SDOs), open source software projects, vendors and users are using | |||
YANG to develop and publish models of configuration, state data and | YANG to develop and publish YANG modules of configuration, state data | |||
operations for a wide variety of applications. At the same time, | and operations for a wide variety of applications. At the same time, | |||
there is currently no well-known terminology to categorize various | there is currently no well-known terminology to categorize various | |||
types of YANG models. | types of YANG modules. | |||
A consistent terminology would help with the categorization of | A consistent terminology would help with the categorization of YANG | |||
models, assist in the analysis the YANG data modeling efforts in the | modules, assist in the analysis the YANG data modeling efforts in the | |||
IETF and other organizations, and bring clarity to the YANG-related | IETF and other organizations, and bring clarity to the YANG-related | |||
discussions between the different groups. | 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 models. | support consistent classification of YANG modules. | |||
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 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 October 6, 2016. | This Internet-Draft will expire on December 24, 2016. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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 | |||
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. First Dimension: YANG Model Abstraction Layers . . . . . . . 3 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2.1. Network Service YANG Data Models . . . . . . . . . . . . 4 | 2. First Dimension: YANG Data Model Abstraction Layers . . . . . 4 | |||
2.2. Network Element YANG Data models . . . . . . . . . . . . 5 | 2.1. Network Service YANG Modules . . . . . . . . . . . . . . 6 | |||
3. Second Dimension: Model Types . . . . . . . . . . . . . . . . 6 | 2.2. Network Element YANG Modules . . . . . . . . . . . . . . 7 | |||
3.1. Standard YANG Models . . . . . . . . . . . . . . . . . . 6 | 3. Second Dimension: Module Types . . . . . . . . . . . . . . . 7 | |||
3.2. Vendor-specific YANG Models and Extensions . . . . . . . 6 | 3.1. Standard YANG Modules . . . . . . . . . . . . . . . . . . 8 | |||
3.3. User-specific YANG Models and Extensions . . . . . . . . 7 | 3.2. Vendor-specific YANG Modules and Extensions . . . . . . . 8 | |||
3.4. Adding Models to Catalogs . . . . . . . . . . . . . . . . 7 | 3.3. User-specific YANG Modules and Extensions . . . . . . . . 9 | |||
3.5. Security Considerations . . . . . . . . . . . . . . . . . 8 | 4. Adding The Classification Type to YANG Module Catalogs . . . 9 | |||
3.6. IANA Considerations . . . . . . . . . . . . . . . . . . . 8 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | |||
3.7. Acknowledgements . . . . . . . . . . . . . . . . . . . . 8 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | |||
3.8. Change log [RFC Editor: Please remove] . . . . . . . . . 8 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 | |||
4. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 8. Change log [RFC Editor: Please remove] . . . . . . . . . . . 10 | |||
4.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
4.2. Informative References . . . . . . . . . . . . . . . . . 8 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 11 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | 9.2. Informative References . . . . . . . . . . . . . . . . . 11 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | ||||
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 NETCONF [RFC6241] and YANG | encouraging IETF working groups to use the YANG [RFC6020] | |||
standards for configuration management purposes, especially in new | [I-D.ietf-netmod-rfc6020bis] and NETCONF [RFC6241] and YANG standards | |||
working group charters [Writable-MIB-Module-IESG-Statement]. | for configuration management purposes, especially in new working | |||
group 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 | |||
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 models according to abstraction, or how to classify | layering of YANG modules according to abstraction, or how to classify | |||
models along the continuum spanning formal standards publications, | modules along the continuum spanning formal standards publications, | |||
vendor-specific models and models provided by end-users. | vendor-specific modules and modules provided by end-users. | |||
This document presents a set of concepts and terms to form a useful | This document presents a set of concepts and terms to form a useful | |||
taxonomy for consistent classification of YANG models in two | taxonomy for consistent classification of YANG modules in two | |||
dimensions: | dimensions: | |||
o The layering of models based on their abstraction levels | o The layering of modules based on their abstraction levels | |||
o The type of model based on the nature and intent of the content | o The type of module based on the nature and intent of the content | |||
The two categories are covered in the next two sections. | The intent of this document is to provide a taxonomy to simplify | |||
human communication around YANG modules. The authors acknowledge | ||||
that the classification boundaries are at times blurry, but believe | ||||
that this document should provide a robust starting point as the YANG | ||||
community gain further experience with designing and deploying | ||||
modules. To be more explicit, the authors believe that the | ||||
classification criteria will change over time. | ||||
2. First Dimension: YANG Model Abstraction Layers | An example of a type of module that have created substantial | |||
discussion during the development of this document is topologies. | ||||
Topology models are useful both on the Network Element level (e.g. | ||||
link-state database content) as well as in the Network Service level | ||||
(e.g. network-wide, configured topologies). In the end, it is the | ||||
module developer that classifies the module according to the initial | ||||
intent of the module content. | ||||
Model developers have taken two approaches to developing YANG models: | This document should provide benefits to multiple audiences: | |||
top-down and bottom-up. The top-down approach starts with high level | ||||
abstractions modeling business or customer requirements and maps them | o First, a common taxonomy helps with the different standards | |||
to specific networking technologies. The bottom-up approach starts | development organizations and industry consortia discussions, | |||
with fundamental networking technologies and maps them into more | whose goals are determined in their respective areas of work. | |||
abstract constructs. | ||||
o Second, operators might look at the YANG module classification | ||||
type to understand which Network Service YANG modules and Network | ||||
Element YANG modules are available for their service composition. | ||||
It is difficult to determine the module type without inspecting | ||||
the YANG module itself. The YANG module name might provide some | ||||
useful information but is not a definite answer. For example, an | ||||
L2VPN YANG module might be a Network Service YANG module, ready to | ||||
be used by the operators. Alternatively, it might be a Network | ||||
Element YANG module that contains the L2VPN data definitions | ||||
required to be configured on a single device. | ||||
o And thirdly, this taxonomy would help equipment vendors (whether | ||||
physical or virtual), controller vendors, orchestrator vendors to | ||||
explain to their customers the relationship between the different | ||||
YANG modules they propose in their products. See Figure 1. | ||||
1.1. Terminology | ||||
RFC6020bis [I-D.ietf-netmod-rfc6020bis] specifies: | ||||
o data model: A data model describes how data is represented and | ||||
accessed. | ||||
o module: A YANG module defines a hierarchy of nodes that can be | ||||
used for NETCONF-based operations. With its definitions and the | ||||
definitions it imports or includes from elsewhere, a module is | ||||
self-contained and "compilable". | ||||
2. First Dimension: YANG Data Model Abstraction Layers | ||||
Model developers have taken two approaches to developing YANG | ||||
modules: top-down and bottom-up. The top-down approach starts with | ||||
high level abstractions modeling business or customer requirements | ||||
and maps them to specific networking technologies. The bottom-up | ||||
approach starts with fundamental networking technologies and maps | ||||
them into more abstract constructs. | ||||
There are currently no specific requirements on, or well-defined best | There are currently no specific requirements on, or well-defined best | |||
practices around the development of models. For the purpose of this | practices around the development of YANG modules For the purpose of | |||
document we assume that both approaches (bottom-up and top-down) will | this document we assume that both approaches (bottom-up and top-down) | |||
be used as they both provide benefits that appeal to different | will be used as they both provide benefits that appeal to different | |||
groups. | groups. | |||
For layering purposes, this document suggests the classification of | For layering purposes, this document suggests the classification of | |||
data models into two distinct abstraction layers: | YANG modules into two distinct abstraction layers: | |||
o Network Element YANG Models describe the configuration, state data | o Network Element YANG Modules describe the configuration, state | |||
and operations of specific device-centric technologies or features | data and operations of specific device-centric technologies or | |||
features | ||||
o Network Service YANG Models describe the configuration, state data | o Network Service YANG Modules describe the configuration, state | |||
and operations of an abstract representation of a service | data and operations of an abstract representation of a service | |||
implemented on one or multiple network elements | implemented on one or multiple network elements | |||
Figure 1 illustrates the application of YANG models at different | Figure 1 illustrates the application of YANG modules at different | |||
layers of abstraction. Layering of models allows for reusability of | layers of abstraction. Layering of modules allows for reusability of | |||
existing lower layer models by higher level models while limiting | existing lower layer modules by higher level modules while limiting | |||
duplication of features across layers. | duplication of features across layers. | |||
For model developers, per-layer modeling allows for separation of | For module developers, per-layer modeling allows for separation of | |||
concern across editing teams focusing on specific areas. | concern across editing teams focusing on specific areas. | |||
As an example, experience from the IETF shows that creating useful | As an example, experience from the IETF shows that creating useful | |||
network element YANG models for e.g. routing or switching protocols | network element YANG modules for e.g. routing or switching protocols | |||
requires teams that include developers with experience of | requires teams that include developers with experience of | |||
implementing those protocols. | implementing those protocols. | |||
On the other hand, network service models are best developed by | On the other hand, network service YANG modules are best developed by | |||
people experienced in defining network services for consumption by | network operators experienced in defining network services for | |||
programmers developing e.g. flow-through provisioning systems or | consumption by programmers developing e.g. flow-through provisioning | |||
self-service portals. | systems or self-service portals. | |||
+--------------------------+ | +--------------------------+ | |||
| Operations and Business | | | Operations and Business | | |||
| Support Systems | | | Support Systems | | |||
| (OSS/BSS) | | | (OSS/BSS) | | |||
+--------------------------+ | +--------------------------+ | |||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |||
Network Service YANG data models | Network Service YANG Modules | |||
+------------+ +-------------+ +-------------+ | +------------+ +-------------+ +-------------+ | |||
| | | | | | | | | | | | | | |||
| - VPWS | | - VPLS | | L3VPN | | | - L2VPN | | - L2VPN | | L3VPN | | |||
| - L2VPN | | - L2VPN | | | | | - VPWS | | - VPLS | | | | |||
| | | | | | | | | | | | | | |||
+------------+ +-------------+ +-------------+ | +------------+ +-------------+ +-------------+ | |||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |||
Network Element YANG data models | Network Element YANG Modules | |||
+------------+ +------------+ +-------------+ +------------+ | +------------+ +------------+ +-------------+ +------------+ | |||
| | | | | | | | | | | | | | | | | | |||
| MPLS | | BGP | | IPv4 & IPv6 | | Ethernet | | | MPLS | | BGP | | IPv4 / IPv6 | | Ethernet | | |||
| | | | | | | | | | | | | | | | | | |||
+------------+ +------------+ +-------------+ +------------+ | +------------+ +------------+ +-------------+ +------------+ | |||
Fig. 1 YANG Model Layers | L2VPN: Layer 2 Virtual Private Network | |||
L3VPN: Layer 3 Virtual Private Network | ||||
VPWS: Virtual Private Wire Service | ||||
VPLS: Virtual Private LAN Service | ||||
2.1. Network Service YANG Data Models | Figure 1: YANG Module Layers | |||
Network Service YANG Data Models describe the characteristics of a | 2.1. Network Service YANG Modules | |||
Network Service YANG Modules describe the characteristics of a | ||||
service, as agreed upon with consumers of that service. That is, a | service, as agreed upon with consumers of that service. That is, a | |||
service model does not expose the detailed configuration parameters | service model does not expose the detailed configuration parameters | |||
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 data models of | into instance data according to the Network Element Modules of the | |||
the participating network elements. The service-to-element | participating network elements. The service-to-element decomposition | |||
decomposition is a separate process with details depending on how the | is a separate process with details depending on how the network | |||
network operator chooses to realize the service. For the purpose of | operator chooses to realize the service. For the purpose of this | |||
this document we will use the term "orchestrator" to describe a | document we will use the term "orchestrator" to describe a system | |||
system implementing such a process. | implementing such a process. | |||
As an example, the Network Service model included in | As an example, the Network Service YANG Module included in | |||
[YANG-Data-Model-for-L3VPN-service-delivery] provides an abstracted | [YANG-Data-Model-for-L3VPN-service-delivery] provides an abstract | |||
model for Layer 3 IP VPN service configuration. An orchestrator | model for Layer 3 IP VPN service configuration. This model includes | |||
receives operations on service instances according to the service | e.g. the concept of a 'site-network-access' to represent bearer and | |||
model and decomposes the data into specific Network Element models to | connection parameters. An orchestrator receives operations on | |||
configure the participating network elements to perform the intent of | service instances according to the service model and decomposes the | |||
the service. | data into specific Network Element Modules to configure the | |||
participating network elements to perform the intent of the service. | ||||
In the case of the L3VPN module, this would include translating the | ||||
'site-network-access' parameters to the appropriate parameters in the | ||||
Network Element YANG Module implemented on the constituent elements. | ||||
Network Service YANG models define services models to be consumed by | Network Service YANG Modules define services models to be consumed by | |||
external systems. These models are commonly designed, developed and | external systems. These modules are commonly designed, developed and | |||
deployed by network infrastructure teams. | 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 model | The monolithic approach captures the entire service in a single | |||
and does not put focus on reusability of internal data definitions | module and does not put focus on reusability of internal data | |||
and groupings. The monolithic approach has the advantages of single- | definitions and groupings. The monolithic approach has the | |||
purpose development including speed at the expense of reusability. | advantages of single-purpose development including speed at the | |||
expense of reusability. | ||||
The component-based approach captures device-centric features (e.g. | The component-based approach captures device-centric features (e.g. | |||
the definition of a VRF, routing protocols, or packet filtering) in a | the definition of a VRF, routing protocols, or packet filtering) in a | |||
vendor-independent manner. The components are designed for reuse | vendor-independent manner. The components are designed for reuse | |||
across many services. The set of components required for a specific | across many service modules. The set of components required for a | |||
service is then composed into the higher-level service. The | specific service is then composed into the higher-level service. The | |||
component-based approach has the advantages of modular development | component-based approach has the advantages of modular development | |||
including a higher degree of reusability at the expense of initial | including a higher degree of reusability at the expense of initial | |||
speed. | speed. | |||
As an example, an L2VPN service can be built on many different types | As an example, an L2VPN service can be built on many different types | |||
of transport network technologies, including e.g. MPLS or carrier | of transport network technologies, including e.g. MPLS or carrier | |||
ethernet. A component-based approach would allow for reuse of e.g. | ethernet. A component-based approach would allow for reuse of e.g. | |||
UNI-interface definitions independent of the underlying transport | UNI-interface definitions independent of the underlying transport | |||
network (e.g. MEF UNI interface or MPLS interface). The monolithic | network (e.g. MEF UNI interface or MPLS interface). The monolithic | |||
approach would assume a specific set of transport technologies and | approach would assume a specific set of transport technologies and | |||
interface definitions. | interface definitions. | |||
2.2. Network Element YANG Data models | 2.2. Network Element YANG Modules | |||
Network Element YANG Data Models describe the configuration, state | Network Element YANG Modules describe the configuration, state data | |||
data and operations of a network device as defined by the vendor of | and operations of a network device as defined by the vendor of that | |||
that device. The models are commonly structured around features of | device. The modules are commonly structured around features of the | |||
the device, e.g. interface configuration [RFC7223], OSPF | device, e.g. interface configuration [RFC7223], OSPF configuration | |||
configuration [I-D.ietf-ospf-yang], and firewall rules definitions | [I-D.ietf-ospf-yang], and firewall rules definitions | |||
[I-D.ietf-netmod-acl-model]. The model provides a coherent data | [I-D.ietf-netmod-acl-model]. | |||
model representation of what is commonly a very mixed software | ||||
environment consisting of the operating system and applications | ||||
running on the device. | ||||
The decomposition, ordering, and execution of changes to the | The module provides a coherent data model representation of what is | |||
operating system and application configuration is the task of the | commonly a very mixed software environment consisting of the | |||
management framework that implements the YANG model. | 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 management | ||||
framework that implements the YANG module. | ||||
3. Second Dimension: Model Types | 3. Second Dimension: Module Types | |||
This document suggests classifying YANG model types as either | This document suggests classifying YANG module types as either | |||
standard YANG models, vendor-specific YANG models and extensions, and | standard YANG modules, vendor-specific YANG modules and extensions, | |||
user-specific YANG models and extensions | and user-specific YANG modules and extensions | |||
The suggested classification applies to both Network Element YANG | The suggested classification applies to both Network Element YANG | |||
Data Models and Network Service YANG Data Models. | Modules and Network Service YANG Modules. | |||
It is to be expected that real-world implementations of both Network | It is to be expected that real-world implementations of both Network | |||
Service and Network Element models will include a mix of all three | Service and Network Element YANG Modules will include a mix of all | |||
types of models. | three types of modules. | |||
3.1. Standard YANG Models | Figure 2 illustrates the relationship between the three types of | |||
modules. | ||||
Standard YANG models are published by standards-defining | +--------------+ | |||
| User | | ||||
| Extensions | | ||||
+------+-------+ | ||||
Augments | ||||
+------+-------+ +--------------+ +--------------+ | ||||
| Vendor | | User | | User | | ||||
| Extensions | | Extensions | | Extensions | | ||||
+------+-------+ +------+-------+ +------+-------+ | ||||
Augments Augments Augments | ||||
+------+-----------------+-------+ +------+-------+ +--------------+ | ||||
| Standard | | Vendor | | User | | ||||
| Models | | Models | | Models | | ||||
+--------------------------------+ +--------------+ +--------------+ | ||||
Figure 2: YANG Module Types | ||||
3.1. Standard YANG Modules | ||||
Standard YANG Modules are published by standards-defining | ||||
organizations (SDOs). While there is no formal definition of what | organizations (SDOs). While there is no formal definition of what | |||
construes an SDO, a common feature is that they publish | construes an SDO, a common feature is that they publish | |||
specifications along specific processes with content that reflects | specifications along specific processes with content that reflects | |||
some sort of membership consensus. The specifications are developed | some sort of membership consensus. The specifications are developed | |||
for wide use among the membership or for audiences beyond that. | for wide use among the membership or for audiences beyond that. | |||
The lifecycle of these models is driven by the editing cycle of the | The lifecycle of these modules is driven by the editing cycle of the | |||
specification and not tied to a specific implementation. | specification and not tied to a specific implementation. | |||
Examples of SDOs in the networking industry are the IETF, the IEEE | Examples of SDOs in the networking industry are the IETF, the IEEE | |||
and the MEF. | (Institute of Electrical and Electronics Engineers) and the MEF. | |||
3.2. Vendor-specific YANG Models and Extensions | 3.2. Vendor-specific YANG Modules and Extensions | |||
Vendor-specific YANG models are developed by organizations with the | Vendor-specific YANG modules are developed by organizations with the | |||
intent to support a specific set of implementations under control of | intent to support a specific set of implementations under control of | |||
that organization. The intent of these models range from providing | that organization. For example vendors of virtual or physical | |||
openly published YANG models that may eventually be contributed back | equipment, industry consortia, and opensource projects. The intent | |||
to, or adopted by an SDO, to strictly internal YANG models not | of these modules range from providing openly published YANG modules | |||
intended for external consumption. | that may eventually be contributed back to, or adopted by an SDO, to | |||
strictly internal YANG modules not intended for external consumption. | ||||
The lifecycle of these models are generally aligned with the release | The lifecycle of these modules are generally aligned with the release | |||
cycle of the product or open source software project deliverables. | cycle of the product or open source software project deliverables. | |||
It is worth noting that there is an increasing amount of interaction | It is worth noting that there is an increasing amount of interaction | |||
between open source projects and SDOs in the networking industry. | between open source projects and SDOs in the networking industry. | |||
This includes open source projects implementing published standards | This includes open source projects implementing published standards | |||
as well as open source projects contributing content to SDO | as well as open source projects contributing content to SDO | |||
processes. | processes. | |||
Vendors also develop Vendor-specific Extensions to standard models | Vendors also develop Vendor-specific Extensions to standard modules | |||
using YANG constructs for extending data definitions of previously | using YANG constructs for extending data definitions of previously | |||
published models. This is done using the 'augment' statement that | published modules. This is done using the 'augment' statement that | |||
allows locally defined data trees to be augmented into locations in | allows locally defined data trees to be augmented into locations in | |||
externally defined data trees. | externally defined data trees. | |||
Vendors use this to extend standard data models to cover the full | Vendors use this to extend standard modules to cover the full scope | |||
scope of features in implementations, which commonly is broader than | of features in implementations, which commonly is broader than what | |||
what is covered by the standard model. | is covered by the standard module. | |||
3.3. User-specific YANG Models and Extensions | 3.3. User-specific YANG Modules and Extensions | |||
User-specific YANG models are developed by organizations that operate | User-specific YANG modules are developed by organizations that | |||
YANG-based infrastructure including devices and orchestrators. The | operate YANG-based infrastructure including devices and | |||
intent of these models is to express the specific needs for a certain | orchestrators. For example, network administrators in enterprises, | |||
implementation, above and beyond what is provided by vendors. | or operators service providers. The intent of these modules is to | |||
express the specific needs for a certain implementation, above and | ||||
beyond what is provided by vendors. | ||||
This model type obviously requires the infrastructure to support the | This module type obviously requires the infrastructure to support the | |||
introduction of user-provided models and extensions. This would | introduction of user-provided modules and extensions. This would | |||
include ability to describe the service-to-network decomposition in | include ability to describe the service-to-network decomposition in | |||
orchestrators and the model to configuration decomposition in | orchestrators and the module to configuration decomposition in | |||
devices. | devices. | |||
The lifecycle of these models are generally aligned with the change | The lifecycle of these modules are generally aligned with the change | |||
cadence of the infrastructure. | cadence of the infrastructure. | |||
3.4. Adding Models to Catalogs | 4. Adding The Classification Type to YANG Module Catalogs | |||
The suggested classification in this document supports the creation | The suggested classification in this document would be an useful | |||
of catalogs, such as proposed in | information in a catalog of YANG modules. Such catalog allows for | |||
[I-D.openconfig-netmod-model-catalog]. Such catalogs allows for easy | easy lookup and reusability of YANG modules. Practically, the YANG | |||
lookup and reusability of YANG models. SDO-classified models also | module classification type would be an additional leaf to YANG module | |||
provide an educational resource providing architectural guidelines | specified in [I-D.openconfig-netmod-model-catalog]: | |||
for model development, based on a membership reviewn and consensus. | ||||
3.5. Security Considerations | leaf module-class{ | |||
type enum { | ||||
service | ||||
device | ||||
notApplicable | ||||
} | ||||
description | ||||
"Categorization of the YANG module based on | ||||
draft-ietf-netmod-yang-model-classification."; | ||||
} | ||||
At this stage, authors of the draft didn't look into security | Note: this leaf should actually be moved to | |||
considerations. | [I-D.openconfig-netmod-model-catalog]. Note2: since a YANG module | |||
can belong to both service and device, the ENUM is not appropriate. | ||||
A extensible list of module type is more appropriate. | ||||
3.6. IANA Considerations | Indeed, without inspecting the YANG module itself, it's difficult to | |||
determine whether its type is a network service or a network element. | ||||
The YANG module name might provide some useful information but is not | ||||
a definite answer. | ||||
This document requests no action by IANA. | 5. Security Considerations | |||
3.7. Acknowledgements | This document doesn't have any Security Considerations". | |||
6. IANA Considerations | ||||
This document has no IANA actions. | ||||
7. Acknowledgements | ||||
Thanks to David Ball and David Hansford for feedback and suggestions. | Thanks to David Ball and David Hansford for feedback and suggestions. | |||
3.8. Change log [RFC Editor: Please remove] | 8. Change log [RFC Editor: Please remove] | |||
version 00: Renamed and small fixes based on WG feedback. | version 00: Renamed and small fixes based on WG feedback. | |||
version 01: Language fixes, collapsing of vendor models and | version 01: Language fixes, collapsing of vendor data models and | |||
extensions, and the introduction of user models and extensions. | extensions, and the introduction of user data models and extensions. | |||
version 02: Added two sections, Model Catalog and Benefits of model | version 02: Updated the YANG Module Catalog section, terminology | |||
classification. | alignment (YANG data model versus YANG module), epxlain better the | |||
distinction between the Network Element and Service YANG data models | ||||
even if sometimes there are grey areas, editorial pass. Changed the | ||||
use of the term 'model' to 'module' to be better aligned with | ||||
RFC6020. | ||||
4. References | 9. References | |||
4.1. Normative References | 9.1. Normative References | |||
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
<http://www.rfc-editor.org/info/rfc6020>. | <http://www.rfc-editor.org/info/rfc6020>. | |||
4.2. Informative References | 9.2. Informative References | |||
[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-07 (work in progress), March | draft-ietf-netmod-acl-model-07 (work in progress), March | |||
2016. | 2016. | |||
[I-D.ietf-netmod-rfc6020bis] | ||||
Bjorklund, M., "The YANG 1.1 Data Modeling Language", | ||||
draft-ietf-netmod-rfc6020bis-14 (work in progress), June | ||||
2016. | ||||
[I-D.ietf-ospf-yang] | [I-D.ietf-ospf-yang] | |||
Yeung, D., Qu, Y., Zhang, J., Bogdanovic, D., and K. | Yeung, D., Qu, Y., Zhang, Z., Bogdanovic, D., and K. | |||
Koushik, "Yang Data Model for OSPF Protocol", draft-ietf- | Koushik, "Yang Data Model for OSPF Protocol", draft-ietf- | |||
ospf-yang-04 (work in progress), March 2016. | ospf-yang-04 (work in progress), March 2016. | |||
[I-D.openconfig-netmod-model-catalog] | [I-D.openconfig-netmod-model-catalog] | |||
D'Souza, K., Shaikh, A., and R. Shakir, "Catalog and | D'Souza, K., Shaikh, A., and R. Shakir, "Catalog and | |||
registry for YANG models", draft-openconfig-netmod-model- | registry for YANG models", draft-openconfig-netmod-model- | |||
catalog-00 (work in progress), October 2015. | catalog-00 (work in progress), October 2015. | |||
[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 | |||
skipping to change at page 9, line 31 ¶ | skipping to change at page 12, line 12 ¶ | |||
<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] | |||
"YANG Data Model for L3VPN service delivery", | "YANG Data Model for L3VPN service delivery", | |||
<https://tools.ietf.org/id/draft-l3vpn-service-yang>. | <https://tools.ietf.org/id/draft-l3vpn-service-yang>. | |||
Authors' Addresses | Authors' Addresses | |||
Dean Bogdanovic | Dean Bogdanovic | |||
Volta Networks, Inc. | ||||
Email: ivandean@gmail.com | Email: dean@voltanet.io | |||
Benoit Claise | Benoit Claise | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
De Kleetlaan 6a b1 | ||||
1831 Diegem | ||||
Belgium | ||||
Phone: +32 2 704 5622 | ||||
Email: bclaise@cisco.com | Email: bclaise@cisco.com | |||
Carl Moberg | Carl Moberg | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Email: camoberg@cisco.com | Email: camoberg@cisco.com | |||
End of changes. 80 change blocks. | ||||
159 lines changed or deleted | 276 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/ |