draft-ietf-netmod-yang-model-classification-00.txt | draft-ietf-netmod-yang-model-classification-01.txt | |||
---|---|---|---|---|
NETMOD D. Bogdanovic | NETMOD D. Bogdanovic | |||
Internet-Draft | Internet-Draft | |||
Intended status: Informational B. Claise | Intended status: Informational B. Claise | |||
Expires: June 9, 2016 C. Moberg | Expires: October 6, 2016 C. Moberg | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
December 7, 2015 | April 4, 2016 | |||
YANG Model Classification | YANG Model Classification | |||
draft-ietf-netmod-yang-model-classification-00 | draft-ietf-netmod-yang-model-classification-01 | |||
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 | |||
open source software projects, and vendors are using YANG to develop | (SDOs), open source software projects, vendors and users are using | |||
and publish models of configuration, state data and operations for a | YANG to develop and publish models of configuration, state data and | |||
wide variety of applications. At the same time, there is currently | operations for a wide variety of applications. At the same time, | |||
no well-known terminology to categorize various types of YANG models. | there is currently no well-known terminology to categorize various | |||
types of YANG models. | ||||
A consistent terminology would help with the categorization of | A consistent terminology would help with the categorization of | |||
models, assist in the analysis the YANG data modeling efforts in the | models, 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 models. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 46 ¶ | skipping to change at page 1, line 47 ¶ | |||
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 June 9, 2016. | This Internet-Draft will expire on October 6, 2016. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2015 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 | 2. First Dimension: YANG Model Abstraction Layers . . . . . . . 3 | |||
2.1. Network Service YANG Data Models . . . . . . . . . . . . 4 | 2.1. Network Service YANG Data Models . . . . . . . . . . . . 4 | |||
2.2. Network Element YANG Data models . . . . . . . . . . . . 5 | 2.2. Network Element YANG Data models . . . . . . . . . . . . 5 | |||
3. Second Dimension: Model Types . . . . . . . . . . . . . . . . 6 | 3. Second Dimension: Model Types . . . . . . . . . . . . . . . . 6 | |||
3.1. Standard YANG Models . . . . . . . . . . . . . . . . . . 6 | 3.1. Standard YANG Models . . . . . . . . . . . . . . . . . . 6 | |||
3.2. Vendor-specific YANG Models . . . . . . . . . . . . . . . 6 | 3.2. Vendor-specific YANG Models and Extensions . . . . . . . 6 | |||
3.3. Vendor-specific Extensions . . . . . . . . . . . . . . . 7 | 3.3. User-specific YANG Models and Extensions . . . . . . . . 7 | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 3.4. Adding Models to Catalogs . . . . . . . . . . . . . . . . 7 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 3.5. Security Considerations . . . . . . . . . . . . . . . . . 8 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 | 3.6. IANA Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
7. Change log [RFC Editor: Please remove] . . . . . . . . . . . 7 | 3.7. Acknowledgements . . . . . . . . . . . . . . . . . . . . 8 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 3.8. Change log [RFC Editor: Please remove] . . . . . . . . . 8 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 4. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 8 | 4.1. Normative References . . . . . . . . . . . . . . . . . . 8 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 | 4.2. Informative References . . . . . . . . . . . . . . . . . 8 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | ||||
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 NETCONF [RFC6241] and YANG | |||
standards for configuration management purposes, especially in new | standards for configuration management purposes, especially in new | |||
working group charters [Writable-MIB-Module-IESG-Statement]. | 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 and vendors. | consortia, ad hoc groups, open source projects, vendors, and end- | |||
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 models according to abstraction, or how to classify | |||
models along the continuum spanning formal standards publications and | models along the continuum spanning formal standards publications, | |||
vendor-specific models. | vendor-specific models and models 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 models in two | |||
dimensions: | dimensions: | |||
o The layering of models based on their abstraction levels | o The layering of models based on their abstraction levels | |||
o The type of model based on the nature and intent of the content | o The type of model based on the nature and intent of the content | |||
The two categories are covered in the next two sections. | The two categories are covered in the next two sections. | |||
2. First Dimension: YANG Model Abstraction Layers | 2. First Dimension: YANG Model Abstraction Layers | |||
Model developers have taken two approaches to developing YANG model: | Model developers have taken two approaches to developing YANG models: | |||
top-down and bottom-up. The top-down approach starts with high level | top-down and bottom-up. The top-down approach starts with high level | |||
abstractions modeling business or customer requirements and maps them | abstractions modeling business or customer requirements and maps them | |||
to specific networking technologies. The bottom-up approach starts | to specific networking technologies. The bottom-up approach starts | |||
with fundamental networking technologies and maps them into more | with fundamental networking technologies and maps them into more | |||
abstract constructs. | 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 models. For the purpose of this | |||
document we assume that both approaches (bottom-up and top-down) will | document we assume that both approaches (bottom-up and top-down) will | |||
be used as they both provide benefits that appeals to different | be used as they both provide benefits that appeal to different | |||
groups. | groups. | |||
For layering purposes, this documents suggests the classification of | For layering purposes, this document suggests the classification of | |||
data models into two distinct abstraction layers: | data models into two distinct abstraction layers: | |||
o Network Element YANG Models describe the configuration, state data | o Network Element YANG Models describe the configuration, state data | |||
and operations of a specific device-centric technology or feature. | and operations of specific device-centric technologies or features | |||
o Network Service YANG Models describes the configuration, state | o Network Service YANG Models describe the configuration, state data | |||
data and operations of an abstract representation of a service | 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 models at different | |||
layers of abstraction. Layering of models allow for reusability of | layers of abstraction. Layering of models allows for reusability of | |||
existing lower layer models by higher level models while limiting | existing lower layer models by higher level models while limiting | |||
duplication of features across layers. | duplication of features across layers. | |||
For model developers, per-layer modeling allows for separation of | For model 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 models for e.g. routing or switching protocols | |||
requires teams that include developers with experience from | 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 models are best developed by | |||
people experienced in defining network services for consumption by | people experienced in defining network services for consumption by | |||
programmers developing e.g. flow-through provisioning systems or | programmers developing e.g. flow-through provisioning systems or | |||
self-service portals. | self-service portals. | |||
+--------------------------+ | +--------------------------+ | |||
| Operations and Business | | | Operations and Business | | |||
| Support Systems | | | Support Systems | | |||
skipping to change at page 5, line 15 ¶ | skipping to change at page 5, line 17 ¶ | |||
system implementing such a process. | system implementing such a process. | |||
As an example, the Network Service model included in | As an example, the Network Service model included in | |||
[YANG-Data-Model-for-L3VPN-service-delivery] provides an abstracted | [YANG-Data-Model-for-L3VPN-service-delivery] provides an abstracted | |||
model for Layer 3 IP VPN service configuration. An orchestrator | model for Layer 3 IP VPN service configuration. An orchestrator | |||
receives operations on service instances according to the service | receives operations on service instances according to the service | |||
model and decomposes the data into specific Network Element models to | model and decomposes the data into specific Network Element models to | |||
configure the participating network elements to perform the intent of | configure the participating network elements to perform the intent of | |||
the service. | the service. | |||
Network Service YANG models defines services models to be consumed by | Network Service YANG models define services models to be consumed by | |||
external systems. These models are commonly designed, developed and | external systems. These models 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 model | |||
and does not put focus on reusability of internal data definitions | and does not put focus on reusability of internal data definitions | |||
and groupings. The monolithic approach has the advantages of single- | and groupings. The monolithic approach has the advantages of single- | |||
purpose development including speed at the expense of reusability. | purpose development including speed at the expense of reusability. | |||
skipping to change at page 6, line 15 ¶ | skipping to change at page 6, line 17 ¶ | |||
environment consisting of the operating system and applications | environment consisting of the operating system and applications | |||
running on the device. | running on the device. | |||
The decomposition, ordering, and execution of changes to the | The decomposition, ordering, and execution of changes to the | |||
operating system and application configuration is the task of the | operating system and application configuration is the task of the | |||
management framework that implements the YANG model. | management framework that implements the YANG model. | |||
3. Second Dimension: Model Types | 3. Second Dimension: Model Types | |||
This document suggests classifying YANG model types as either | This document suggests classifying YANG model types as either | |||
standard YANG models, vendor-specific YANG models, or vendor-specific | standard YANG models, vendor-specific YANG models and extensions, and | |||
extensions. | user-specific YANG models and extensions | |||
The suggested classification applies to both Network Element YANG | The suggested classification applies to both Network Element YANG | |||
Data Models and to Network Service YANG Data Models. | Data Models and Network Service YANG Data Models. | |||
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 models will include a mix of all three | |||
types of models. | types of models. | |||
3.1. Standard YANG Models | 3.1. Standard YANG Models | |||
Standard YANG models are published by standards defining | Standard YANG models 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 are driven by the editing cycle of the | The lifecycle of these models 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. | and the MEF. | |||
3.2. Vendor-specific YANG Models | 3.2. Vendor-specific YANG Models and Extensions | |||
Vendor-specific YANG models are developed by organizations with the | Vendor-specific YANG models 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. The intent of these models range from providing | |||
openly published YANG models that may eventually be contributed back | openly published YANG models that may eventually be contributed back | |||
to, or adopted by an SDO, to strictly internal YANG models not | to, or adopted by an SDO, to strictly internal YANG models not | |||
intended for external consumption. | intended for external consumption. | |||
The lifecycle of these models are generally aligned with the release | The lifecycle of these models 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. | |||
3.3. Vendor-specific Extensions | Vendors also develop Vendor-specific Extensions to standard models | |||
using YANG constructs for extending data definitions of previously | ||||
Vendors develop Vendor-specific Extensions to standard models using | ||||
YANG constructs for extending data definitions of previously | ||||
published models. This is done using the 'augment' statement that | published models. 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 data models to cover the full | |||
scope of features in implementations, which commonly is broader than | scope of features in implementations, which commonly is broader than | |||
what is covered by the standard model. | what is covered by the standard model. | |||
4. Security Considerations | 3.3. User-specific YANG Models and Extensions | |||
User-specific YANG models are developed by organizations that operate | ||||
YANG-based infrastructure including devices and orchestrators. The | ||||
intent of these models 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 | ||||
introduction of user-provided models and extensions. This would | ||||
include ability to describe the service-to-network decomposition in | ||||
orchestrators and the model to configuration decomposition in | ||||
devices. | ||||
The lifecycle of these models are generally aligned with the change | ||||
cadence of the infrastructure. | ||||
3.4. Adding Models to Catalogs | ||||
The suggested classification in this document supports the creation | ||||
of catalogs, such as proposed in | ||||
[I-D.openconfig-netmod-model-catalog]. Such catalogs allows for easy | ||||
lookup and reusability of YANG models. SDO-classified models also | ||||
provide an educational resource providing architectural guidelines | ||||
for model development, based on a membership reviewn and consensus. | ||||
3.5. Security Considerations | ||||
At this stage, authors of the draft didn't look into security | At this stage, authors of the draft didn't look into security | |||
considerations. | considerations. | |||
5. IANA Considerations | 3.6. IANA Considerations | |||
This document requests no action by IANA. | This document requests no action by IANA. | |||
6. Acknowledgements | 3.7. Acknowledgements | |||
Thanks to David Ball for his enlightenments on Metro Ethernet Forum | ||||
service aspects. | ||||
7. Change log [RFC Editor: Please remove] | Thanks to David Ball and David Hansford for feedback and suggestions. | |||
version 1: restructure the document, add the two dimensions, add the | 3.8. Change log [RFC Editor: Please remove] | |||
interaction with the different SDOs and opensource projects, add the | ||||
definitions. | ||||
version 2: added definitions for config and service models clarified | version 00: Renamed and small fixes based on WG feedback. | |||
second dimension of model classification. fixed typos | ||||
version 3: restructure and partial rewrite of section 2. | version 01: Language fixes, collapsing of vendor models and | |||
extensions, and the introduction of user models and extensions. | ||||
version 4: Language fixes | version 02: Added two sections, Model Catalog and Benefits of model | |||
classification. | ||||
8. References | 4. References | |||
8.1. Normative References | 4.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>. | |||
8.2. Informative References | 4.2. Informative References | |||
[I-D.ietf-netmod-acl-model] | [I-D.ietf-netmod-acl-model] | |||
Bogdanovic, D., Sreenivasa, 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-05 (work in progress), October | draft-ietf-netmod-acl-model-07 (work in progress), March | |||
2015. | 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, J., Bogdanovic, D., and K. | |||
Koushik, "Yang Data Model for OSPF Protocol", draft-ietf- | Koushik, "Yang Data Model for OSPF Protocol", draft-ietf- | |||
ospf-yang-03 (work in progress), October 2015. | ospf-yang-04 (work in progress), March 2016. | |||
[I-D.openconfig-netmod-model-catalog] | ||||
D'Souza, K., Shaikh, A., and R. Shakir, "Catalog and | ||||
registry for YANG models", draft-openconfig-netmod-model- | ||||
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 | |||
(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>. | |||
End of changes. 37 change blocks. | ||||
64 lines changed or deleted | 91 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/ |