| rfc8529v1.txt | rfc8529.txt | |||
|---|---|---|---|---|
| skipping to change at page 1, line 22 ¶ | skipping to change at page 1, line 22 ¶ | |||
| Jabil | Jabil | |||
| January 2019 | January 2019 | |||
| YANG Model for Network Instances | YANG Model for Network Instances | |||
| Abstract | Abstract | |||
| This document defines a network instance module. This module can be | This document defines a network instance module. This module can be | |||
| used to manage the virtual resource partitioning that may be present | used to manage the virtual resource partitioning that may be present | |||
| on a network device. Examples of common industry terms for virtual | on a network device. Examples of common industry terms for virtual | |||
| resource partitioning are Virtual Routing and Forwarding (VRF) | resource partitioning are VPN Routing and Forwarding (VRF) instances | |||
| instances and Virtual Switch Instances (VSIs). | and Virtual Switch Instances (VSIs). | |||
| The YANG model in this document conforms to the Network Management | The YANG model in this document conforms to the Network Management | |||
| Datastore Architecture (NMDA) defined in RFC 8342. | Datastore Architecture (NMDA) defined in RFC 8342. | |||
| Status of This Memo | Status of This Memo | |||
| This is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
| This document is a product of the Internet Engineering Task Force | This document is a product of the Internet Engineering Task Force | |||
| (IETF). It represents the consensus of the IETF community. It has | (IETF). It represents the consensus of the IETF community. It has | |||
| skipping to change at page 2, line 29 ¶ | skipping to change at page 2, line 29 ¶ | |||
| 3.1.2. NI Type Example . . . . . . . . . . . . . . . . . . . 7 | 3.1.2. NI Type Example . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.2. NIs and Interfaces . . . . . . . . . . . . . . . . . . . 8 | 3.2. NIs and Interfaces . . . . . . . . . . . . . . . . . . . 8 | |||
| 3.3. Network Instance Management . . . . . . . . . . . . . . . 9 | 3.3. Network Instance Management . . . . . . . . . . . . . . . 9 | |||
| 3.4. Network Instance Instantiation . . . . . . . . . . . . . 12 | 3.4. Network Instance Instantiation . . . . . . . . . . . . . 12 | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 6. Network Instance Model . . . . . . . . . . . . . . . . . . . 14 | 6. Network Instance Model . . . . . . . . . . . . . . . . . . . 14 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 20 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 20 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 21 | 7.2. Informative References . . . . . . . . . . . . . . . . . 21 | |||
| Appendix A. Example NI Usage . . . . . . . . . . . . . . . . . . 23 | Appendix A. Example NI Usage . . . . . . . . . . . . . . . . . . 22 | |||
| A.1. Configuration Data . . . . . . . . . . . . . . . . . . . 23 | A.1. Configuration Data . . . . . . . . . . . . . . . . . . . 23 | |||
| A.2. State Data - Non-NMDA Version . . . . . . . . . . . . . . 26 | A.2. State Data - Non-NMDA Version . . . . . . . . . . . . . . 26 | |||
| A.3. State Data - NMDA Version . . . . . . . . . . . . . . . . 33 | A.3. State Data - NMDA Version . . . . . . . . . . . . . . . . 33 | |||
| Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 41 | Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 41 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 41 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 41 | |||
| 1. Introduction | 1. Introduction | |||
| This document defines the second of two new modules that are defined | This document defines the second of two new modules that are defined | |||
| to support the configuration and operation of network devices that | to support the configuration and operation of network devices that | |||
| skipping to change at page 3, line 12 ¶ | skipping to change at page 3, line 12 ¶ | |||
| "hosted" by the base network device. These hosted network elements | "hosted" by the base network device. These hosted network elements | |||
| are referred to as logical network elements, or LNEs, and are | are referred to as logical network elements, or LNEs, and are | |||
| supported by the logical-network-element module defined in [RFC8530]. | supported by the logical-network-element module defined in [RFC8530]. | |||
| That module is used to identify LNEs and associate resources from the | That module is used to identify LNEs and associate resources from the | |||
| network device with each LNE. LNEs themselves are represented in | network device with each LNE. LNEs themselves are represented in | |||
| YANG as independent network devices; each is accessed independently. | YANG as independent network devices; each is accessed independently. | |||
| Examples of vendor terminology for an LNE include logical system or | Examples of vendor terminology for an LNE include logical system or | |||
| logical router and virtual switch, chassis, or fabric. | logical router and virtual switch, chassis, or fabric. | |||
| The second form, which is defined in this document, provides support | The second form, which is defined in this document, provides support | |||
| for what are commonly referred to as Virtual Routing and Forwarding | for what are commonly referred to as VPN Routing and Forwarding (VRF) | |||
| (VRF) instances as well as Virtual Switch Instances (VSI); see | instances as well as Virtual Switch Instances (VSI); see [RFC4026] | |||
| [RFC4026] and [RFC4664]. In this form of resource partitioning, | and [RFC4664]. In this form of resource partitioning, multiple | |||
| multiple control-plane and forwarding/bridging instances are provided | control-plane and forwarding/bridging instances are provided by and | |||
| by and managed through a single (physical or logical) network device. | managed through a single (physical or logical) network device. This | |||
| This form of resource partitioning is referred to as a network | form of resource partitioning is referred to as a network instance | |||
| instance (NI) and is supported by the network instance module defined | (NI) and is supported by the network instance module defined below. | |||
| below. Configuration and operation of each network instance is | Configuration and operation of each network instance is always via | |||
| always via the network device and the network instance module. | the network device and the network instance module. | |||
| One notable difference between the LNE model and the NI model is that | One notable difference between the LNE model and the NI model is that | |||
| the NI model provides a framework for VRF and VSI management. This | the NI model provides a framework for VRF and VSI management. This | |||
| document envisions the separate definition of models specific to VRF | document envisions the separate definition of models specific to VRF | |||
| and VSI -- i.e., L3 and L2 VPN -- technology. An example of such can | and VSI -- i.e., L3 and L2 VPN -- technology. An example of such can | |||
| be found in the emerging L3VPN model defined in [YANG-L3VPN] and the | be found in the emerging L3VPN model defined in [YANG-L3VPN] and the | |||
| examples discussed below. | examples discussed below. | |||
| 1.1. Terminology | 1.1. Terminology | |||
| skipping to change at page 6, line 15 ¶ | skipping to change at page 6, line 15 ¶ | |||
| interface augmentation. The ni-type and root-type choice statements | interface augmentation. The ni-type and root-type choice statements | |||
| are used to support different types of L2 and L3 VPN technologies. | are used to support different types of L2 and L3 VPN technologies. | |||
| The bind-ni-name-failed notification is used in certain failure | The bind-ni-name-failed notification is used in certain failure | |||
| cases. | cases. | |||
| 3.1. NI Types and Mount Points | 3.1. NI Types and Mount Points | |||
| The network instance module is structured to facilitate the | The network instance module is structured to facilitate the | |||
| definition of information models for specific types of VRFs and VSIs | definition of information models for specific types of VRFs and VSIs | |||
| using augmentations. For example, the information needed to support | using augmentations. For example, the information needed to support | |||
| VPLS, VxLAN, and EVPN-based L2VPNs are likely to be quite different. | L2VPN, such as VPLS and EVPN, are likely to be quite different. | |||
| Example models under development that could be restructured to take | Example models under development that could be restructured to take | |||
| advantage on NIs include models for L3VPNs [YANG-L3VPN] and L2VPNs | advantage on NIs include models for L3VPNs [YANG-L3VPN] and L2VPNs | |||
| [YANG-L2VPN]. | [YANG-L2VPN]. | |||
| Documents defining new YANG models for the support of specific types | Documents defining new YANG models for the support of specific types | |||
| of network instances should augment the network instance module. The | of network instances should augment the network instance module. The | |||
| basic structure that should be used for such augmentations includes a | basic structure that should be used for such augmentations includes a | |||
| case statement with containers for configuration and state data and, | case statement with containers for configuration and state data and, | |||
| when needed, a type-specific mount point. Generally, NI types are | when needed, a type-specific mount point. Generally, NI types are | |||
| expected to not need to define type-specific mount points but rather | expected to not need to define type-specific mount points but rather | |||
| skipping to change at page 7, line 27 ¶ | skipping to change at page 7, line 27 ¶ | |||
| vv-root is intended for use with ni-types that simultaneously | vv-root is intended for use with ni-types that simultaneously | |||
| support L2VPN bridging and L3VPN routing capabilities. | support L2VPN bridging and L3VPN routing capabilities. | |||
| Future model definitions should use the above mount points whenever | Future model definitions should use the above mount points whenever | |||
| possible. When a well-known mount point isn't appropriate, a model | possible. When a well-known mount point isn't appropriate, a model | |||
| may define a type-specific mount point via augmentation. | may define a type-specific mount point via augmentation. | |||
| 3.1.2. NI Type Example | 3.1.2. NI Type Example | |||
| The following is an example of an L3VPN VRF using a hypothetical | The following is an example of an L3VPN VRF using a hypothetical | |||
| augmentation to the networking instance schema defined in | augmentation to the network instance schema defined in [YANG-L3VPN]. | |||
| [YANG-L3VPN]. More detailed examples can be found in Appendix A. | More detailed examples can be found in Appendix A. | |||
| module: ietf-network-instance | module: ietf-network-instance | |||
| +--rw network-instances | +--rw network-instances | |||
| +--rw network-instance* [name] | +--rw network-instance* [name] | |||
| +--rw name string | +--rw name string | |||
| +--rw enabled? boolean | +--rw enabled? boolean | |||
| +--rw description? string | +--rw description? string | |||
| +--rw (ni-type)? | +--rw (ni-type)? | |||
| | +--:(l3vpn) | | +--:(l3vpn) | |||
| | +--rw l3vpn:l3vpn | | +--rw l3vpn:l3vpn | |||
| skipping to change at page 9, line 32 ¶ | skipping to change at page 9, line 32 ¶ | |||
| | | | +--:(ip:prefix-length) | | | | +--:(ip:prefix-length) | |||
| | | | | +--rw ip:prefix-length? uint8 | | | | | +--rw ip:prefix-length? uint8 | |||
| | | | +--:(ip:netmask) | | | | +--:(ip:netmask) | |||
| | | | +--rw ip:netmask? yang:dotted-quad | | | | +--rw ip:netmask? yang:dotted-quad | |||
| | | +--rw ip:neighbor* [ip] | | | +--rw ip:neighbor* [ip] | |||
| | | | +--rw ip:ip inet:ipv4-address-no-zone | | | | +--rw ip:ip inet:ipv4-address-no-zone | |||
| | | | +--rw ip:link-layer-address yang:phys-address | | | | +--rw ip:link-layer-address yang:phys-address | |||
| | | +--rw ni:bind-network-instance-name? string | | | +--rw ni:bind-network-instance-name? string | |||
| | +--rw ni:bind-network-instance-name? string | | +--rw ni:bind-network-instance-name? string | |||
| The interface model defined in [RFC8343] is structured to include all | The "ietf-interfaces" module [RFC8343] is structured to include all | |||
| interfaces in a flat list, without regard to virtual instances (e.g., | interfaces in a flat list, without regard to virtual instances (e.g., | |||
| VRFs) supported on the device. The bind-network-instance-name leaf | VRFs) supported on the device. The bind-network-instance-name leaf | |||
| provides the association between an interface and its associated NI | provides the association between an interface and its associated NI | |||
| (e.g., VRF or VSI). Note that as currently defined, to assign an | (e.g., VRF or VSI). Note that as currently defined, to assign an | |||
| interface to both an LNE and an NI, the interface would first be | interface to both an LNE and an NI, the interface would first be | |||
| assigned to the LNE using the mechanisms defined in [RFC8530] and | assigned to the LNE using the mechanisms defined in [RFC8530] and | |||
| then, within that LNE's interface module, the LNE's representation of | then, within that LNE's interface module, the LNE's representation of | |||
| that interface would be assigned to an NI. | that interface would be assigned to an NI. | |||
| 3.3. Network Instance Management | 3.3. Network Instance Management | |||
| skipping to change at page 11, line 33 ¶ | skipping to change at page 11, line 33 ¶ | |||
| "/if:interfaces/if:interface/ip:ipv4 | "/if:interfaces/if:interface/ip:ipv4 | |||
| [ni:bind-network-instance-name = current()/../ni:name]", | [ni:bind-network-instance-name = current()/../ni:name]", | |||
| "/if:interfaces/if:interface/ip:ipv6 | "/if:interfaces/if:interface/ip:ipv6 | |||
| [ni:bind-network-instance-name = current()/../ni:name]" | [ni:bind-network-instance-name = current()/../ni:name]" | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ], | ], | |||
| The same such "parent-reference" restrictions for non-NMDA | The same such "parent-reference" restrictions for non-NMDA | |||
| implementations can be represented based on [RFC7223] and [RFC7277] | implementations can be represented based on [RFC8343] and [RFC8344] | |||
| as: | as: | |||
| "namespace": [ | "namespace": [ | |||
| { | { | |||
| "prefix": "if", | "prefix": "if", | |||
| "uri": "urn:ietf:params:xml:ns:yang:ietf-interfaces" | "uri": "urn:ietf:params:xml:ns:yang:ietf-interfaces" | |||
| }, | }, | |||
| { | { | |||
| "prefix": "ni", | "prefix": "ni", | |||
| "uri": "urn:ietf:params:xml:ns:yang:ietf-network-instance" | "uri": "urn:ietf:params:xml:ns:yang:ietf-network-instance" | |||
| skipping to change at page 15, line 28 ¶ | skipping to change at page 15, line 28 ¶ | |||
| <mailto:lberger@labn.net> | <mailto:lberger@labn.net> | |||
| Author: Christan Hopps | Author: Christan Hopps | |||
| <mailto:chopps@chopps.org> | <mailto:chopps@chopps.org> | |||
| Author: Acee Lindem | Author: Acee Lindem | |||
| <mailto:acee@cisco.com> | <mailto:acee@cisco.com> | |||
| Author: Dean Bogdanovic | Author: Dean Bogdanovic | |||
| <mailto:ivandean@gmail.com>"; | <mailto:ivandean@gmail.com>"; | |||
| description | description | |||
| "This module is used to support multiple network instances | "This module is used to support multiple network instances | |||
| within a single physical or virtual device. Network | within a single physical or virtual device. Network | |||
| instances are commonly known as VRFs (Virtual Routing | instances are commonly known as VRFs (VPN Routing and | |||
| and Forwarding) and VSIs (Virtual Switching Instances). | Forwarding) and VSIs (Virtual Switching Instances). | |||
| Copyright (c) 2019 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 | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD | to the license terms contained in, the Simplified BSD | |||
| License set forth in Section 4.c of the IETF Trust's Legal | License set forth in Section 4.c of the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
| skipping to change at page 16, line 8 ¶ | skipping to change at page 16, line 8 ¶ | |||
| reference "RFC 8529"; | reference "RFC 8529"; | |||
| } | } | |||
| // top-level device definition statements | // top-level device definition statements | |||
| container network-instances { | container network-instances { | |||
| description | description | |||
| "Network instances, each of which consists of | "Network instances, each of which consists of | |||
| VRFs and/or VSIs."; | VRFs and/or VSIs."; | |||
| reference | reference | |||
| "draft-ietf-rtgwg-rfc8022bis: A YANG Data Model | "RFC 8349: A YANG Data Model for Routing Management"; | |||
| for Routing Management"; | ||||
| list network-instance { | list network-instance { | |||
| key "name"; | key "name"; | |||
| description | description | |||
| "List of network instances."; | "List of network instances."; | |||
| leaf name { | leaf name { | |||
| type string; | type string; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "device-scoped identifier for the network | "device-scoped identifier for the network | |||
| instance."; | instance."; | |||
| skipping to change at page 22, line 10 ¶ | skipping to change at page 22, line 10 ¶ | |||
| [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private | [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private | |||
| Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February | Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February | |||
| 2006, <https://www.rfc-editor.org/info/rfc4364>. | 2006, <https://www.rfc-editor.org/info/rfc4364>. | |||
| [RFC4664] Andersson, L., Ed. and E. Rosen, Ed., "Framework for Layer | [RFC4664] Andersson, L., Ed. and E. Rosen, Ed., "Framework for Layer | |||
| 2 Virtual Private Networks (L2VPNs)", RFC 4664, | 2 Virtual Private Networks (L2VPNs)", RFC 4664, | |||
| DOI 10.17487/RFC4664, September 2006, | DOI 10.17487/RFC4664, September 2006, | |||
| <https://www.rfc-editor.org/info/rfc4664>. | <https://www.rfc-editor.org/info/rfc4664>. | |||
| [RFC7223] Bjorklund, M., "A YANG Data Model for Interface | ||||
| Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | ||||
| <https://www.rfc-editor.org/info/rfc7223>. | ||||
| [RFC7277] Bjorklund, M., "A YANG Data Model for IP Management", | ||||
| RFC 7277, DOI 10.17487/RFC7277, June 2014, | ||||
| <https://www.rfc-editor.org/info/rfc7277>. | ||||
| [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, | |||
| <https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
| [RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | ||||
| Management", RFC 8022, DOI 10.17487/RFC8022, November | ||||
| 2016, <https://www.rfc-editor.org/info/rfc8022>. | ||||
| [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | |||
| Routing Management (NMDA Version)", RFC 8349, | Routing Management (NMDA Version)", RFC 8349, | |||
| DOI 10.17487/RFC8349, March 2018, | DOI 10.17487/RFC8349, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8349>. | <https://www.rfc-editor.org/info/rfc8349>. | |||
| [RFC8530] Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. | [RFC8530] Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. | |||
| Liu, "YANG Model for Logical Network Elements", RFC 8530, | Liu, "YANG Model for Logical Network Elements", RFC 8530, | |||
| DOI 10.17487/RFC8530, January 2019. | DOI 10.17487/RFC8530, January 2019. | |||
| [YANG-L2VPN] | [YANG-L2VPN] | |||
| skipping to change at page 26, line 29 ¶ | skipping to change at page 26, line 19 ¶ | |||
| "password": "$0$password" | "password": "$0$password" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| } | } | |||
| A.2. State Data - Non-NMDA Version | A.2. State Data - Non-NMDA Version | |||
| The following shows state data for the configuration example above | The following shows state data for the configuration example above | |||
| based on [RFC7223], [RFC7277], and [RFC8022]. | based on [RFC8343], [RFC8344], and [RFC8349]. | |||
| { | { | |||
| "ietf-network-instance:network-instances": { | "ietf-network-instance:network-instances": { | |||
| "network-instance": [ | "network-instance": [ | |||
| { | { | |||
| "name": "vrf-red", | "name": "vrf-red", | |||
| "vrf-root": { | "vrf-root": { | |||
| "ietf-yang-library:modules-state": { | "ietf-yang-library:modules-state": { | |||
| "module-set-id": "123e4567-e89b-12d3-a456-426655440000", | "module-set-id": "123e4567-e89b-12d3-a456-426655440000", | |||
| "module": [ | "module": [ | |||
| { | { | |||
| "name": "ietf-yang-library", | "name": "ietf-yang-library", | |||
| "revision": "2016-06-21", | "revision": "2016-06-21", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-yang-library", | "urn:ietf:params:xml:ns:yang:ietf-yang-library", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-ospf", | "name": "ietf-ospf", | |||
| "revision": "2018-03-03", | "revision": "2018-03-03", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-ospf", | "urn:ietf:params:xml:ns:yang:ietf-ospf", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-routing", | "name": "ietf-routing", | |||
| "revision": "2018-03-13", | "revision": "2018-03-13", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-routing", | "urn:ietf:params:xml:ns:yang:ietf-routing", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| } | } | |||
| ] | ] | |||
| }, | }, | |||
| "ietf-routing:routing-state": { | "ietf-routing:routing-state": { | |||
| "router-id": "192.0.2.1", | "router-id": "192.0.2.1", | |||
| "control-plane-protocols": { | "control-plane-protocols": { | |||
| "control-plane-protocol": [ | "control-plane-protocol": [ | |||
| { | { | |||
| "type": "ietf-routing:ospf", | "type": "ietf-routing:ospf", | |||
| "name": "1", | "name": "1", | |||
| "ietf-ospf:ospf": { | "ietf-ospf:ospf": { | |||
| "af": "ipv4", | "af": "ipv4", | |||
| skipping to change at page 28, line 8 ¶ | skipping to change at page 27, line 47 ¶ | |||
| { | { | |||
| "name": "vrf-blue", | "name": "vrf-blue", | |||
| "vrf-root": { | "vrf-root": { | |||
| "ietf-yang-library:modules-state": { | "ietf-yang-library:modules-state": { | |||
| "module-set-id": "123e4567-e89b-12d3-a456-426655440000", | "module-set-id": "123e4567-e89b-12d3-a456-426655440000", | |||
| "module": [ | "module": [ | |||
| { | { | |||
| "name": "ietf-yang-library", | "name": "ietf-yang-library", | |||
| "revision": "2016-06-21", | "revision": "2016-06-21", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-yang-library", | "urn:ietf:params:xml:ns:yang:ietf-yang-library", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-ospf", | "name": "ietf-ospf", | |||
| "revision": "2018-03-03", | "revision": "2018-03-03", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-ospf", | "urn:ietf:params:xml:ns:yang:ietf-ospf", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-routing", | "name": "ietf-routing", | |||
| "revision": "2018-03-13", | "revision": "2018-03-13", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-routing", | "urn:ietf:params:xml:ns:yang:ietf-routing", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| } | } | |||
| ] | ] | |||
| }, | }, | |||
| "ietf-routing:routing-state": { | "ietf-routing:routing-state": { | |||
| "router-id": "192.0.2.2", | "router-id": "192.0.2.2", | |||
| "control-plane-protocols": { | "control-plane-protocols": { | |||
| "control-plane-protocol": [ | "control-plane-protocol": [ | |||
| { | { | |||
| "type": "ietf-routing:ospf", | "type": "ietf-routing:ospf", | |||
| skipping to change at page 31, line 4 ¶ | skipping to change at page 30, line 43 ¶ | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| }, | }, | |||
| "ietf-system:system-state": { | "ietf-system:system-state": { | |||
| "platform": { | "platform": { | |||
| "os-name": "NetworkOS" | "os-name": "NetworkOS" | |||
| } | } | |||
| } | } | |||
| "ietf-yang-library:modules-state": { | "ietf-yang-library:modules-state": { | |||
| "module-set-id": "123e4567-e89b-12d3-a456-426655440000", | "module-set-id": "123e4567-e89b-12d3-a456-426655440000", | |||
| "module": [ | "module": [ | |||
| { | { | |||
| "name": "iana-if-type", | "name": "iana-if-type", | |||
| "revision": "2014-05-08", | "revision": "2014-05-08", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:iana-if-type", | "urn:ietf:params:xml:ns:yang:iana-if-type", | |||
| "conformance-type": "import" | "conformance-type": "import" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-inet-types", | "name": "ietf-inet-types", | |||
| "revision": "2013-07-15", | "revision": "2013-07-15", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-inet-types", | "urn:ietf:params:xml:ns:yang:ietf-inet-types", | |||
| "conformance-type": "import" | "conformance-type": "import" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-interfaces", | "name": "ietf-interfaces", | |||
| "revision": "2014-05-08", | "revision": "2014-05-08", | |||
| "feature": [ | "feature": [ | |||
| "arbitrary-names", | "arbitrary-names", | |||
| "pre-provisioning" | "pre-provisioning" | |||
| ], | ], | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-interfaces", | "urn:ietf:params:xml:ns:yang:ietf-interfaces", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-ip", | "name": "ietf-ip", | |||
| "revision": "2014-06-16", | "revision": "2014-06-16", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-ip", | "urn:ietf:params:xml:ns:yang:ietf-ip", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-network-instance", | "name": "ietf-network-instance", | |||
| "revision": "2018-02-03", | "revision": "2018-02-03", | |||
| "feature": [ | "feature": [ | |||
| "bind-network-instance-name" | "bind-network-instance-name" | |||
| ], | ], | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-network-instance", | "urn:ietf:params:xml:ns:yang:ietf-network-instance", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-ospf", | "name": "ietf-ospf", | |||
| "revision": "2018-03-03", | "revision": "2018-03-03", | |||
| "namespace": "urn:ietf:params:xml:ns:yang:ietf-ospf", | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-ospf", | ||||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-routing", | "name": "ietf-routing", | |||
| "revision": "2018-03-13", | "revision": "2018-03-13", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-routing", | "urn:ietf:params:xml:ns:yang:ietf-routing", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-system", | "name": "ietf-system", | |||
| "revision": "2014-08-06", | "revision": "2014-08-06", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-system", | "urn:ietf:params:xml:ns:yang:ietf-system", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-yang-library", | "name": "ietf-yang-library", | |||
| "revision": "2016-06-21", | "revision": "2016-06-21", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-yang-library", | "urn:ietf:params:xml:ns:yang:ietf-yang-library", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-yang-schema-mount", | "name": "ietf-yang-schema-mount", | |||
| "revision": "2017-05-16", | "revision": "2017-05-16", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount", | "urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-yang-types", | "name": "ietf-yang-types", | |||
| "revision": "2013-07-15", | "revision": "2013-07-15", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-yang-types", | "urn:ietf:params:xml:ns:yang:ietf-yang-types", | |||
| "conformance-type": "import" | "conformance-type": "import" | |||
| } | } | |||
| ] | ] | |||
| }, | }, | |||
| "ietf-yang-schema-mount:schema-mounts": { | "ietf-yang-schema-mount:schema-mounts": { | |||
| "mount-point": [ | "mount-point": [ | |||
| { | { | |||
| "module": "ietf-network-instance", | "module": "ietf-network-instance", | |||
| "label": "vrf-root", | "label": "vrf-root", | |||
| skipping to change at page 33, line 17 ¶ | skipping to change at page 33, line 10 ¶ | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| A.3. State Data - NMDA Version | A.3. State Data - NMDA Version | |||
| The following shows state data for the configuration example above | The following shows state data for the configuration example above | |||
| based on [RFC8343], [RFC8344], and [RFC8349]. | based on [RFC8343], [RFC8344], and [RFC8349]. | |||
| { | { | |||
| "ietf-network-instance:network-instances": { | "ietf-network-instance:network-instances": { | |||
| "network-instance": [ | "network-instance": [ | |||
| { | { | |||
| "name": "vrf-red", | "name": "vrf-red", | |||
| "vrf-root": { | "vrf-root": { | |||
| "ietf-yang-library:yang-library": { | "ietf-yang-library:yang-library": { | |||
| "checksum": "41e2ab5dc325f6d86f743e8da3de323f1a61a801", | "checksum": "41e2ab5dc325f6d86f743e8da3de323f1a61a801", | |||
| "module-set": [ | "module-set": [ | |||
| { | { | |||
| "name": "ni-modules", | "name": "ni-modules", | |||
| "module": [ | "module": [ | |||
| { | { | |||
| "name": "ietf-yang-library", | "name": "ietf-yang-library", | |||
| "revision": "2016-06-21", | "revision": "2016-06-21", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-yang-library", | "urn:ietf:params:xml:ns:yang:ietf-yang-library", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-ospf", | "name": "ietf-ospf", | |||
| "revision": "2018-03-03", | "revision": "2018-03-03", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-ospf", | "urn:ietf:params:xml:ns:yang:ietf-ospf", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-routing", | "name": "ietf-routing", | |||
| "revision": "2018-03-13", | "revision": "2018-03-13", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-routing", | "urn:ietf:params:xml:ns:yang:ietf-routing", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| } | } | |||
| ], | ], | |||
| "import-only-module": [ | "import-only-module": [ | |||
| { | { | |||
| "name": "ietf-inet-types", | "name": "ietf-inet-types", | |||
| "revision": "2013-07-15", | "revision": "2013-07-15", | |||
| "namespace": "urn:ietf:params:xml:ns:yang:ietf-inet-types" | "namespace": | |||
| }, | "urn:ietf:params:xml:ns:yang:ietf-inet-types" | |||
| { | }, | |||
| "name": "ietf-yang-types", | { | |||
| "revision": "2013-07-15", | "name": "ietf-yang-types", | |||
| "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-types" | "revision": "2013-07-15", | |||
| }, | "namespace": | |||
| { | "urn:ietf:params:xml:ns:yang:ietf-yang-types" | |||
| "name": "ietf-datastores", | }, | |||
| "revision": "2018-02-14", | { | |||
| "namespace": "urn:ietf:params:xml:ns:yang:ietf-datastores" | "name": "ietf-datastores", | |||
| } | "revision": "2018-02-14", | |||
| ] | "namespace": | |||
| } | "urn:ietf:params:xml:ns:yang:ietf-datastores" | |||
| ], | } | |||
| "schema": [ | ] | |||
| { | } | |||
| "name": "ni-schema", | ], | |||
| "module-set": [ "ni-modules" ] | "schema": [ | |||
| } | { | |||
| ], | "name": "ni-schema", | |||
| "datastore": [ | "module-set": [ "ni-modules" ] | |||
| { | } | |||
| "name": "ietf-datastores:running", | ], | |||
| "schema": "ni-schema" | "datastore": [ | |||
| }, | { | |||
| { | "name": "ietf-datastores:running", | |||
| "name": "ietf-datastores:operational", | "schema": "ni-schema" | |||
| "schema": "ni-schema" | }, | |||
| } | { | |||
| ] | "name": "ietf-datastores:operational", | |||
| }, | "schema": "ni-schema" | |||
| "ietf-routing:routing": { | } | |||
| "router-id": "192.0.2.1", | ] | |||
| "control-plane-protocols": { | }, | |||
| "control-plane-protocol": [ | "ietf-routing:routing": { | |||
| { | "router-id": "192.0.2.1", | |||
| "type": "ietf-routing:ospf", | "control-plane-protocols": { | |||
| "name": "1", | "control-plane-protocol": [ | |||
| "ietf-ospf:ospf": { | { | |||
| "af": "ipv4", | "type": "ietf-routing:ospf", | |||
| "areas": { | "name": "1", | |||
| "area": [ | "ietf-ospf:ospf": { | |||
| { | "af": "ipv4", | |||
| "area-id": "203.0.113.1", | "areas": { | |||
| "interfaces": { | "area": [ | |||
| "interface": [ | { | |||
| { | "area-id": "203.0.113.1", | |||
| "name": "eth1", | "interfaces": { | |||
| "cost": 10 | "interface": [ | |||
| } | { | |||
| ] | "name": "eth1", | |||
| } | "cost": 10 | |||
| } | ||||
| ] | ||||
| } | ||||
| } | ||||
| } | ||||
| ] | ||||
| } | ||||
| } | ||||
| } | ||||
| }, | ||||
| { | ||||
| "name": "vrf-blue", | ||||
| "vrf-root": { | ||||
| "ietf-yang-library:yang-library": { | ||||
| "checksum": "41e2ab5dc325f6d86f743e8da3de323f1a61a801", | ||||
| "module-set": [ | ||||
| { | ||||
| "name": "ni-modules", | ||||
| "module": [ | ||||
| { | ||||
| "name": "ietf-yang-library", | ||||
| "revision": "2016-06-21", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-yang-library", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-ospf", | ||||
| "revision": "2018-03-03", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-ospf", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-routing", | ||||
| "revision": "2018-03-13", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-routing", | ||||
| "conformance-type": "implement" | ||||
| } | ||||
| ], | } | |||
| "import-only-module": [ | ] | |||
| { | } | |||
| "name": "ietf-inet-types", | } | |||
| "revision": "2013-07-15", | ] | |||
| "namespace": "urn:ietf:params:xml:ns:yang:ietf-inet-types" | } | |||
| }, | } | |||
| { | } | |||
| "name": "ietf-yang-types", | ] | |||
| "revision": "2013-07-15", | } | |||
| "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-types" | } | |||
| }, | } | |||
| { | }, | |||
| "name": "ietf-datastores", | { | |||
| "revision": "2018-02-14", | "name": "vrf-blue", | |||
| "namespace": "urn:ietf:params:xml:ns:yang:ietf-datastores" | "vrf-root": { | |||
| } | "ietf-yang-library:yang-library": { | |||
| ] | "checksum": "41e2ab5dc325f6d86f743e8da3de323f1a61a801", | |||
| } | "module-set": [ | |||
| ], | { | |||
| "schema": [ | "name": "ni-modules", | |||
| { | "module": [ | |||
| "name": "ni-schema", | { | |||
| "module-set": [ "ni-modules" ] | "name": "ietf-yang-library", | |||
| } | "revision": "2016-06-21", | |||
| ], | "namespace": | |||
| "datastore": [ | "urn:ietf:params:xml:ns:yang:ietf-yang-library", | |||
| { | "conformance-type": "implement" | |||
| "name": "ietf-datastores:running", | }, | |||
| "schema": "ni-schema" | { | |||
| }, | "name": "ietf-ospf", | |||
| { | "revision": "2018-03-03", | |||
| "name": "ietf-datastores:operational", | "namespace": | |||
| "schema": "ni-schema" | "urn:ietf:params:xml:ns:yang:ietf-ospf", | |||
| } | "conformance-type": "implement" | |||
| ] | }, | |||
| }, | { | |||
| "ietf-routing:routing": { | "name": "ietf-routing", | |||
| "router-id": "192.0.2.2", | "revision": "2018-03-13", | |||
| "control-plane-protocols": { | "namespace": | |||
| "control-plane-protocol": [ | "urn:ietf:params:xml:ns:yang:ietf-routing", | |||
| { | "conformance-type": "implement" | |||
| "type": "ietf-routing:ospf", | } | |||
| "name": "1", | ], | |||
| "ietf-ospf:ospf": { | "import-only-module": [ | |||
| "af": "ipv4", | { | |||
| "areas": { | "name": "ietf-inet-types", | |||
| "area": [ | "revision": "2013-07-15", | |||
| { | "namespace": | |||
| "area-id": "203.0.113.1", | "urn:ietf:params:xml:ns:yang:ietf-inet-types" | |||
| "interfaces": { | }, | |||
| "interface": [ | { | |||
| { | "name": "ietf-yang-types", | |||
| "name": "eth2", | "revision": "2013-07-15", | |||
| "cost": 10 | "namespace": | |||
| } | "urn:ietf:params:xml:ns:yang:ietf-yang-types" | |||
| ] | }, | |||
| } | { | |||
| } | "name": "ietf-datastores", | |||
| ] | "revision": "2018-02-14", | |||
| } | "namespace": | |||
| } | "urn:ietf:params:xml:ns:yang:ietf-datastores" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | ], | |||
| } | "schema": [ | |||
| } | { | |||
| ] | "name": "ni-schema", | |||
| }, | "module-set": [ "ni-modules" ] | |||
| } | ||||
| ], | ||||
| "datastore": [ | ||||
| { | ||||
| "name": "ietf-datastores:running", | ||||
| "schema": "ni-schema" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-datastores:operational", | ||||
| "schema": "ni-schema" | ||||
| } | ||||
| ] | ||||
| }, | ||||
| "ietf-routing:routing": { | ||||
| "router-id": "192.0.2.2", | ||||
| "control-plane-protocols": { | ||||
| "control-plane-protocol": [ | ||||
| { | ||||
| "type": "ietf-routing:ospf", | ||||
| "name": "1", | ||||
| "ietf-ospf:ospf": { | ||||
| "af": "ipv4", | ||||
| "areas": { | ||||
| "area": [ | ||||
| { | ||||
| "area-id": "203.0.113.1", | ||||
| "interfaces": { | ||||
| "interface": [ | ||||
| { | ||||
| "name": "eth2", | ||||
| "cost": 10 | ||||
| } | ||||
| ] | ||||
| } | ||||
| } | ||||
| ] | ||||
| } | ||||
| } | ||||
| } | ||||
| ] | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| ] | ||||
| }, | ||||
| "ietf-interfaces:interfaces": { | "ietf-interfaces:interfaces": { | |||
| "interfaces": { | "interfaces": { | |||
| "interface": [ | "interface": [ | |||
| { | { | |||
| "name": "eth0", | "name": "eth0", | |||
| "type": "iana-if-type:ethernetCsmacd", | "type": "iana-if-type:ethernetCsmacd", | |||
| "oper-status": "up", | "oper-status": "up", | |||
| "phys-address": "00:01:02:A1:B1:C0", | "phys-address": "00:01:02:A1:B1:C0", | |||
| "statistics": { | "statistics": { | |||
| "discontinuity-time": "2017-06-26T12:34:56-05:00" | "discontinuity-time": "2017-06-26T12:34:56-05:00" | |||
| }, | }, | |||
| "ip:ipv4": { | "ip:ipv4": { | |||
| "address": [ | "address": [ | |||
| { | { | |||
| "ip": "192.0.2.10", | "ip": "192.0.2.10", | |||
| "prefix-length": 24, | "prefix-length": 24, | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| "ip:ipv6": { | "ip:ipv6": { | |||
| "address": [ | "address": [ | |||
| { | { | |||
| "ip": "2001:db8:0:2::10", | "ip": "2001:db8:0:2::10", | |||
| "prefix-length": 64, | "prefix-length": 64, | |||
| } | } | |||
| ] | ||||
| } | ||||
| ] | }, | |||
| } | { | |||
| }, | "name": "eth1", | |||
| { | "type": "iana-if-type:ethernetCsmacd", | |||
| "name": "eth1", | "oper-status": "up", | |||
| "type": "iana-if-type:ethernetCsmacd", | "phys-address": "00:01:02:A1:B1:C1", | |||
| "oper-status": "up", | "statistics": { | |||
| "phys-address": "00:01:02:A1:B1:C1", | "discontinuity-time": "2017-06-26T12:34:56-05:00" | |||
| "statistics": { | }, | |||
| "discontinuity-time": "2017-06-26T12:34:56-05:00" | "ip:ipv4": { | |||
| }, | "address": [ | |||
| "ip:ipv4": { | { | |||
| "address": [ | "ip": "192.0.2.11", | |||
| { | "prefix-length": 24, | |||
| "ip": "192.0.2.11", | } | |||
| "prefix-length": 24, | ] | |||
| } | } | |||
| ] | "ip:ipv6": { | |||
| } | "address": [ | |||
| "ip:ipv6": { | { | |||
| "address": [ | "ip": "2001:db8:0:2::11", | |||
| { | "prefix-length": 64, | |||
| "ip": "2001:db8:0:2::11", | } | |||
| "prefix-length": 64, | ] | |||
| } | } | |||
| ] | }, | |||
| } | { | |||
| }, | "name": "eth2", | |||
| { | "type": "iana-if-type:ethernetCsmacd", | |||
| "name": "eth2", | "oper-status": "up", | |||
| "type": "iana-if-type:ethernetCsmacd", | "phys-address": "00:01:02:A1:B1:C2", | |||
| "oper-status": "up", | "statistics": { | |||
| "phys-address": "00:01:02:A1:B1:C2", | "discontinuity-time": "2017-06-26T12:34:56-05:00" | |||
| "statistics": { | }, | |||
| "discontinuity-time": "2017-06-26T12:34:56-05:00" | "ip:ipv4": { | |||
| }, | "address": [ | |||
| "ip:ipv4": { | { | |||
| "address": [ | "ip": "192.0.2.11", | |||
| { | "prefix-length": 24, | |||
| "ip": "192.0.2.11", | } | |||
| "prefix-length": 24, | ] | |||
| } | } | |||
| ] | "ip:ipv6": { | |||
| } | "address": [ | |||
| "ip:ipv6": { | { | |||
| "address": [ | "ip": "2001:db8:0:2::11", | |||
| { | "prefix-length": 64, | |||
| "ip": "2001:db8:0:2::11", | } | |||
| "prefix-length": 64, | ||||
| } | ||||
| ] | ||||
| } | ||||
| } | ||||
| ] | ||||
| } | ||||
| }, | ||||
| "ietf-system:system-state": { | ] | |||
| "platform": { | } | |||
| "os-name": "NetworkOS" | } | |||
| } | ] | |||
| } | } | |||
| }, | ||||
| "ietf-yang-library:modules-state": { | "ietf-system:system-state": { | |||
| "module-set-id": "123e4567-e89b-12d3-a456-426655440000", | "platform": { | |||
| "module": [ | "os-name": "NetworkOS" | |||
| { | } | |||
| "name": "iana-if-type", | } | |||
| "revision": "2014-05-08", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:iana-if-type", | ||||
| "conformance-type": "import" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-inet-types", | ||||
| "revision": "2013-07-15", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-inet-types", | ||||
| "conformance-type": "import" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-interfaces", | ||||
| "revision": "2018-01-09", | ||||
| "feature": [ | ||||
| "arbitrary-names", | ||||
| "pre-provisioning" | ||||
| ], | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-interfaces", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-ip", | ||||
| "revision": "2018-01-09", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-ip", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-network-instance", | ||||
| "revision": "2018-02-03", | ||||
| "feature": [ | ||||
| "bind-network-instance-name" | ||||
| ], | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-network-instance", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-ospf", | ||||
| "revision": "2017-10-30", | ||||
| "namespace": "urn:ietf:params:xml:ns:yang:ietf-ospf", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-routing", | ||||
| "revision": "2018-01-25", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-routing", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-system", | ||||
| "revision": "2014-08-06", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-system", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-yang-library", | ||||
| "revision": "2016-06-21", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-yang-library", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-yang-schema-mount", | ||||
| "revision": "2017-05-16", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-yang-types", | ||||
| "revision": "2013-07-15", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-yang-types", | ||||
| "conformance-type": "import" | ||||
| } | ||||
| ] | ||||
| }, | ||||
| "ietf-yang-schema-mount:schema-mounts": { | "ietf-yang-library:modules-state": { | |||
| "mount-point": [ | "module-set-id": "123e4567-e89b-12d3-a456-426655440000", | |||
| { | "module": [ | |||
| "module": "ietf-network-instance", | { | |||
| "label": "vrf-root", | "name": "iana-if-type", | |||
| "shared-schema": { | "revision": "2014-05-08", | |||
| "parent-reference": [ | "namespace": | |||
| "/*[namespace-uri() = 'urn:ietf:...:ietf-interfaces']" | "urn:ietf:params:xml:ns:yang:iana-if-type", | |||
| ] | "conformance-type": "import" | |||
| } | }, | |||
| } | { | |||
| ] | "name": "ietf-inet-types", | |||
| } | "revision": "2013-07-15", | |||
| } | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-inet-types", | ||||
| "conformance-type": "import" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-interfaces", | ||||
| "revision": "2018-01-09", | ||||
| "feature": [ | ||||
| "arbitrary-names", | ||||
| "pre-provisioning" | ||||
| ], | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-interfaces", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-ip", | ||||
| "revision": "2018-01-09", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-ip", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-network-instance", | ||||
| "revision": "2018-02-03", | ||||
| "feature": [ | ||||
| "bind-network-instance-name" | ||||
| ], | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-network-instance", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-ospf", | ||||
| "revision": "2017-10-30", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-ospf", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-routing", | ||||
| "revision": "2018-01-25", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-routing", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-system", | ||||
| "revision": "2014-08-06", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-system", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-yang-library", | ||||
| "revision": "2016-06-21", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-yang-library", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-yang-schema-mount", | ||||
| "revision": "2017-05-16", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount", | ||||
| "conformance-type": "implement" | ||||
| }, | ||||
| { | ||||
| "name": "ietf-yang-types", | ||||
| "revision": "2013-07-15", | ||||
| "namespace": | ||||
| "urn:ietf:params:xml:ns:yang:ietf-yang-types", | ||||
| "conformance-type": "import" | ||||
| } | ||||
| ] | ||||
| }, | ||||
| "ietf-yang-schema-mount:schema-mounts": { | ||||
| "mount-point": [ | ||||
| { | ||||
| "module": "ietf-network-instance", | ||||
| "label": "vrf-root", | ||||
| "shared-schema": { | ||||
| "parent-reference": [ | ||||
| "/*[namespace-uri() = 'urn:ietf:...:ietf-interfaces']" | ||||
| ] | ||||
| } | ||||
| } | ||||
| ] | ||||
| } | ||||
| } | ||||
| Acknowledgments | Acknowledgments | |||
| The Routing Area Yang Architecture design team members included Acee | The Routing Area Yang Architecture design team members included Acee | |||
| Lindem, Anees Shaikh, Christian Hopps, Dean Bogdanovic, Lou Berger, | Lindem, Anees Shaikh, Christian Hopps, Dean Bogdanovic, Lou Berger, | |||
| Qin Wu, Rob Shakir, Stephane Litkowski, and Yan Gang. Martin | Qin Wu, Rob Shakir, Stephane Litkowski, and Yan Gang. Martin | |||
| Bjorklund and John Scudder provided useful review comments. | Bjorklund and John Scudder provided useful review comments. | |||
| This document was motivated by, and derived from, "Network Device | This document was motivated by, and derived from, "Network Device | |||
| YANG Logical Organization" [YANG-NETWORK]. | YANG Logical Organization" [YANG-NETWORK]. | |||
| End of changes. 39 change blocks. | ||||
| 440 lines changed or deleted | 440 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/ | ||||