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/ |