file "ietf-network-instance@2019-01-21.yang" module ietf-network-instance { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-network-instance"; prefix ni; // import some basic types import ietf-interfaces { prefix if; reference "RFC 8343: A YANG Data Model for Interface Management"; } import ietf-ip { prefix ip; reference "RFC 8344: A YANG Data Model for IP Management"; } import ietf-yang-schema-mount { prefix yangmnt; reference "RFC 8528: YANG Schema Mount"; } organization "IETF Routing Area (rtgwg) Working Group"; contact "WG Web: WG List: Author: Lou Berger Author: Christian Hopps Author: Acee Lindem Author: Dean Bogdanovic "; description "This module is used to support multiple network instances within a single physical or virtual device. Network instances are commonly known as VRFs (VPN Routing and Forwarding) and VSIs (Virtual Switching Instances). Berger, et al. Standards Track [Page 16] RFC 8529 YANG NIs March 2019 The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here. Copyright (c) 2019 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 8529; see the RFC itself for full legal notices."; revision 2019-01-21 { description "Initial revision."; reference "RFC 8529"; } // top-level device definition statements container network-instances { description "Network instances, each of which consists of VRFs and/or VSIs."; reference "RFC 8349: A YANG Data Model for Routing Management"; list network-instance { key "name"; description "List of network instances."; leaf name { type string; mandatory true; description "device-scoped identifier for the network instance."; } leaf enabled { type boolean; Berger, et al. Standards Track [Page 17] RFC 8529 YANG NIs March 2019 default "true"; description "Flag indicating whether or not the network instance is enabled."; } leaf description { type string; description "Description of the network instance and its intended purpose."; } choice ni-type { description "This node serves as an anchor point for different types of network instances. Each 'case' is expected to differ in terms of the information needed in the parent/core to support the NI and may differ in their mounted-schema definition. When the mounted schema is not expected to be the same for a specific type of NI, a mount point should be defined."; } choice root-type { mandatory true; description "Well-known mount points."; container vrf-root { description "Container for mount point."; yangmnt:mount-point "vrf-root" { description "Root for L3VPN-type models. This will typically not be an inline-type mount point."; } } container vsi-root { description "Container for mount point."; yangmnt:mount-point "vsi-root" { description "Root for L2VPN-type models. This will typically not be an inline-type mount point."; } } container vv-root { description "Container for mount point."; yangmnt:mount-point "vv-root" { description Berger, et al. Standards Track [Page 18] RFC 8529 YANG NIs March 2019 "Root models that support both L2VPN-type bridging and L3VPN-type routing. This will typically not be an inline-type mount point."; } } } } } // augment statements augment "/if:interfaces/if:interface" { description "Add a node for the identification of the network instance associated with the information configured on a interface. Note that a standard error will be returned if the identified leafref isn't present. If an interface cannot be assigned for any other reason, the operation SHALL fail with an error-tag of 'operation-failed' and an error-app-tag of 'ni-assignment-failed'. A meaningful error-info that indicates the source of the assignment failure SHOULD also be provided."; leaf bind-ni-name { type leafref { path "/network-instances/network-instance/name"; } description "Network instance to which an interface is bound."; } } augment "/if:interfaces/if:interface/ip:ipv4" { description "Add a node for the identification of the network instance associated with the information configured on an IPv4 interface. Note that a standard error will be returned if the identified leafref isn't present. If an interface cannot be assigned for any other reason, the operation SHALL fail with an error-tag of 'operation-failed' and an error-app-tag of 'ni-assignment-failed'. A meaningful error-info that indicates the source of the assignment failure SHOULD also be provided."; leaf bind-ni-name { type leafref { path "/network-instances/network-instance/name"; Berger, et al. Standards Track [Page 19] RFC 8529 YANG NIs March 2019 } description "Network instance to which IPv4 interface is bound."; } } augment "/if:interfaces/if:interface/ip:ipv6" { description "Add a node for the identification of the network instance associated with the information configured on an IPv6 interface. Note that a standard error will be returned if the identified leafref isn't present. If an interface cannot be assigned for any other reason, the operation SHALL fail with an error-tag of 'operation-failed' and an error-app-tag of 'ni-assignment-failed'. A meaningful error-info that indicates the source of the assignment failure SHOULD also be provided."; leaf bind-ni-name { type leafref { path "/network-instances/network-instance/name"; } description "Network instance to which IPv6 interface is bound."; } } // notification statements notification bind-ni-name-failed { description "Indicates an error in the association of an interface to an NI. Only generated after success is initially returned when bind-ni-name is set. Note: Some errors may need to be reported for multiple associations, e.g., a single error may need to be reported for an IPv4 and an IPv6 bind-ni-name. At least one container with a bind-ni-name leaf MUST be included in this notification."; leaf name { type leafref { path "/if:interfaces/if:interface/if:name"; } mandatory true; description "Contains the interface name associated with the Berger, et al. Standards Track [Page 20] RFC 8529 YANG NIs March 2019 failure."; } container interface { description "Generic interface type."; leaf bind-ni-name { type leafref { path "/if:interfaces/if:interface" + "/ni:bind-ni-name"; } description "Contains the bind-ni-name associated with the failure."; } } container ipv4 { description "IPv4 interface type."; leaf bind-ni-name { type leafref { path "/if:interfaces/if:interface/ip:ipv4/ni:bind-ni-name"; } description "Contains the bind-ni-name associated with the failure."; } } container ipv6 { description "IPv6 interface type."; leaf bind-ni-name { type leafref { path "/if:interfaces/if:interface/ip:ipv6" + "/ni:bind-ni-name"; } description "Contains the bind-ni-name associated with the failure."; } } leaf error-info { type string; description "Optionally, indicates the source of the assignment failure."; } } } Berger, et al. Standards Track [Page 21] RFC 8529 YANG NIs March 2019 7. References 7.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004, . [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, October 2010, . [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, . [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, . [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, . [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration Access Control Model", STD 91, RFC 8341, DOI 10.17487/RFC8341, March 2018, . Berger, et al. Standards Track [Page 22] RFC 8529 YANG NIs March 2019 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., and R. Wilton, "Network Management Datastore Architecture (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, . [RFC8343] Bjorklund, M., "A YANG Data Model for Interface Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, . [RFC8344] Bjorklund, M., "A YANG Data Model for IP Management", RFC 8344, DOI 10.17487/RFC8344, March 2018, . [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, . [RFC8528] Bjorklund, M. and L. Lhotka, "YANG Schema Mount", RFC 8528, DOI 10.17487/RFC8528, March 2019, . 7.2. Informative References [RFC4026] Andersson, L. and T. Madsen, "Provider Provisioned Virtual Private Network (VPN) Terminology", RFC 4026, DOI 10.17487/RFC4026, March 2005, . [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February 2006, . [RFC4664] Andersson, L., Ed. and E. Rosen, Ed., "Framework for Layer 2 Virtual Private Networks (L2VPNs)", RFC 4664, DOI 10.17487/RFC4664, September 2006, . [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, August 2016, . [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for Routing Management (NMDA Version)", RFC 8349, DOI 10.17487/RFC8349, March 2018, . Berger, et al. Standards Track [Page 23] RFC 8529 YANG NIs March 2019 [RFC8530] Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. Liu, "YANG Model for Logical Network Elements", RFC 8530, DOI 10.17487/RFC8530, March 2019. [YANG-L2VPN] Shah, H., Brissette, P., Chen, I., Hussain, I., Wen, B., and K. Tiruveedhula, "YANG Data Model for MPLS-based L2VPN", Work in Progress, draft-ietf-bess-l2vpn-yang-09, October 2018. [YANG-L3VPN] Jain, D., Patel, K., Brissette, P., Li, Z., Zhuang, S., Liu, X., Haas, J., Esale, S., and B. Wen, "Yang Data Model for BGP/MPLS L3 VPNs", Work in Progress, draft-ietf-bess- l3vpn-yang-04, October 2018. [YANG-NETWORK] Lindem, A., Berger, L., Bogdanovic, D., and C. Hopps, "Network Device YANG Logical Organization", Work in Progress, draft-ietf-rtgwg-device-model-02, March 2017. [YANG-OSPF] Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, "YANG Data Model for OSPF Protocol", Work in Progress, draft-ietf-ospf-yang-21, January 2019. Berger, et al. Standards Track [Page 24] RFC 8529 YANG NIs March 2019 Appendix A. Example NI Usage The following subsections provide example uses of NIs. A.1. Configuration Data The following shows an example where two customer-specific network instances are configured: { "ietf-network-instance:network-instances": { "network-instance": [ { "name": "vrf-red", "vrf-root": { "ietf-routing:routing": { "router-id": "192.0.2.1", "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": "eth1", "cost": 10 } ] } } ] } } } ] } } } }, { "name": "vrf-blue", Berger, et al. Standards Track [Page 25] RFC 8529 YANG NIs March 2019 "vrf-root": { "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": { "interface": [ { "name": "eth0", "type": "iana-if-type:ethernetCsmacd", "ietf-ip:ipv4": { "address": [ { "ip": "192.0.2.10", "prefix-length": 24 } ] }, Berger, et al. Standards Track [Page 26] RFC 8529 YANG NIs March 2019 "ietf-ip:ipv6": { "address": [ { "ip": "2001:db8:0:2::10", "prefix-length": 64 } ] } }, { "name": "eth1", "type": "iana-if-type:ethernetCsmacd", "ietf-ip:ipv4": { "address": [ { "ip": "192.0.2.11", "prefix-length": 24 } ] }, "ietf-ip:ipv6": { "address": [ { "ip": "2001:db8:0:2::11", "prefix-length": 64 } ] }, "ietf-network-instance:bind-network-instance-name": "vrf-red" }, { "name": "eth2", "type": "iana-if-type:ethernetCsmacd", "ietf-ip:ipv4": { "address": [ { "ip": "192.0.2.11", "prefix-length": 24 } ] }, "ietf-ip:ipv6": { "address": [ { "ip": "2001:db8:0:2::11", "prefix-length": 64 } ] Berger, et al. Standards Track [Page 27] RFC 8529 YANG NIs March 2019 }, "ietf-network-instance:bind-network-instance-name": "vrf-blue" } ] }, "ietf-system:system": { "authentication": { "user": [ { "name": "john", "password": "$0$password" } ] } } } A.2. State Data - Non-NMDA Version The following shows state data for the configuration example above based on [RFC8343], [RFC8344], and [RFC8349]. { "ietf-network-instance:network-instances": { "network-instance": [ { "name": "vrf-red", "vrf-root": { "ietf-yang-library:modules-state": { "module-set-id": "123e4567-e89b-12d3-a456-426655440000", "module": [ { "name": "ietf-yang-library", "revision": "2019-01-04", "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-library", "conformance-type": "implement" }, { "name": "ietf-ospf", "revision": "2019-01-24", "namespace": "urn:ietf:params:xml:ns:yang:ietf-ospf", "conformance-type": "implement" }, { "name": "ietf-routing", Berger, et al. Standards Track [Page 28] RFC 8529 YANG NIs March 2019 "revision": "2018-03-13", "namespace": "urn:ietf:params:xml:ns:yang:ietf-routing", "conformance-type": "implement" } ] }, "ietf-routing:routing-state": { "router-id": "192.0.2.1", "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": "eth1", "cost": 10 } ] } } ] } } } ] } } } }, { "name": "vrf-blue", "vrf-root": { "ietf-yang-library:modules-state": { "module-set-id": "123e4567-e89b-12d3-a456-426655440000", "module": [ { "name": "ietf-yang-library", "revision": "2019-01-04", "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-library", Berger, et al. Standards Track [Page 29] RFC 8529 YANG NIs March 2019 "conformance-type": "implement" }, { "name": "ietf-ospf", "revision": "2019-01-24", "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" } ] }, "ietf-routing:routing-state": { "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 } ] } } ] } } } ] } } } } ] Berger, et al. Standards Track [Page 30] RFC 8529 YANG NIs March 2019 }, "ietf-interfaces:interfaces-state": { "interface": [ { "name": "eth0", "type": "iana-if-type:ethernetCsmacd", "oper-status": "up", "phys-address": "00:01:02:A1:B1:C0", "statistics": { "discontinuity-time": "2017-06-26T12:34:56-05:00" }, "ietf-ip:ipv4": { "address": [ { "ip": "192.0.2.10", "prefix-length": 24 } ] }, "ietf-ip:ipv6": { "address": [ { "ip": "2001:db8:0:2::10", "prefix-length": 64 } ] } }, { "name": "eth1", "type": "iana-if-type:ethernetCsmacd", "oper-status": "up", "phys-address": "00:01:02:A1:B1:C1", "statistics": { "discontinuity-time": "2017-06-26T12:34:56-05:00" }, "ietf-ip:ipv4": { "address": [ { "ip": "192.0.2.11", "prefix-length": 24 } ] }, "ietf-ip:ipv6": { "address": [ { Berger, et al. Standards Track [Page 31] RFC 8529 YANG NIs March 2019 "ip": "2001:db8:0:2::11", "prefix-length": 64 } ] } }, { "name": "eth2", "type": "iana-if-type:ethernetCsmacd", "oper-status": "up", "phys-address": "00:01:02:A1:B1:C2", "statistics": { "discontinuity-time": "2017-06-26T12:34:56-05:00" }, "ietf-ip:ipv4": { "address": [ { "ip": "192.0.2.11", "prefix-length": 24 } ] }, "ietf-ip:ipv6": { "address": [ { "ip": "2001:db8:0:2::11", "prefix-length": 64 } ] } } ] }, "ietf-system:system-state": { "platform": { "os-name": "NetworkOS" } }, "ietf-yang-library:modules-state": { "module-set-id": "123e4567-e89b-12d3-a456-426655440000", "module": [ { "name": "iana-if-type", "revision": "2018-07-03", "namespace": "urn:ietf:params:xml:ns:yang:iana-if-type", "conformance-type": "import" Berger, et al. Standards Track [Page 32] RFC 8529 YANG NIs March 2019 }, { "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-02-20", "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": "2019-01-24", "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" }, { "name": "ietf-system", "revision": "2014-08-06", Berger, et al. Standards Track [Page 33] RFC 8529 YANG NIs March 2019 "namespace": "urn:ietf:params:xml:ns:yang:ietf-system", "conformance-type": "implement" }, { "name": "ietf-yang-library", "revision": "2019-01-04", "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-library", "conformance-type": "implement" }, { "name": "ietf-yang-schema-mount", "revision": "2019-01-14", "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']" ] } } ] } } Berger, et al. Standards Track [Page 34] RFC 8529 YANG NIs March 2019 A.3. State Data - NMDA Version The following shows state data for the configuration example above based on [RFC8343], [RFC8344], and [RFC8349]. { "ietf-network-instance:network-instances": { "network-instance": [ { "name": "vrf-red", "vrf-root": { "ietf-yang-library:yang-library": { "content-id": "41e2ab5dc325f6d86f743e8da3de323f1a61a801", "module-set": [ { "name": "ni-modules", "module": [ { "name": "ietf-yang-library", "revision": "2019-01-04", "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-library" }, { "name": "ietf-ospf", "revision": "2019-01-24", "namespace": "urn:ietf:params:xml:ns:yang:ietf-ospf" }, { "name": "ietf-routing", "revision": "2018-03-13", "namespace": "urn:ietf:params:xml:ns:yang:ietf-routing" } ], "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" Berger, et al. Standards Track [Page 35] RFC 8529 YANG NIs March 2019 }, { "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.1", "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": "eth1", "cost": 10 } ] } Berger, et al. Standards Track [Page 36] RFC 8529 YANG NIs March 2019 } ] } } } ] } } } }, { "name": "vrf-blue", "vrf-root": { "ietf-yang-library:yang-library": { "checksum": "41e2ab5dc325f6d86f743e8da3de323f1a61a801", "module-set": [ { "name": "ni-modules", "module": [ { "name": "ietf-yang-library", "revision": "2019-01-04", "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-library", "conformance-type": "implement" }, { "name": "ietf-ospf", "revision": "2019-01-24", "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" }, Berger, et al. Standards Track [Page 37] RFC 8529 YANG NIs March 2019 { "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", "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": [ { Berger, et al. Standards Track [Page 38] RFC 8529 YANG NIs March 2019 "name": "eth2", "cost": 10 } ] } } ] } } } ] } } } } ] }, "ietf-interfaces:interfaces": { "interface": [ { "name": "eth0", "type": "iana-if-type:ethernetCsmacd", "oper-status": "up", "phys-address": "00:01:02:A1:B1:C0", "statistics": { "discontinuity-time": "2017-06-26T12:34:56-05:00" }, "ietf-ip:ipv4": { "address": [ { "ip": "192.0.2.10", "prefix-length": 24 } ] }, "ietf-ip:ipv6": { "address": [ { "ip": "2001:db8:0:2::10", "prefix-length": 64 } ] } }, { "name": "eth1", "type": "iana-if-type:ethernetCsmacd", Berger, et al. Standards Track [Page 39] RFC 8529 YANG NIs March 2019 "oper-status": "up", "phys-address": "00:01:02:A1:B1:C1", "statistics": { "discontinuity-time": "2017-06-26T12:34:56-05:00" }, "ietf-ip:ipv4": { "address": [ { "ip": "192.0.2.11", "prefix-length": 24 } ] }, "ietf-ip:ipv6": { "address": [ { "ip": "2001:db8:0:2::11", "prefix-length": 64 } ] } }, { "name": "eth2", "type": "iana-if-type:ethernetCsmacd", "oper-status": "up", "phys-address": "00:01:02:A1:B1:C2", "statistics": { "discontinuity-time": "2017-06-26T12:34:56-05:00" }, "ietf-ip:ipv4": { "address": [ { "ip": "192.0.2.11", "prefix-length": 24 } ] }, "ietf-ip:ipv6": { "address": [ { "ip": "2001:db8:0:2::11", "prefix-length": 64 } ] } } ] Berger, et al. Standards Track [Page 40] RFC 8529 YANG NIs March 2019 }, "ietf-system:system-state": { "platform": { "os-name": "NetworkOS" } }, "ietf-yang-library:yang-library": { "content-id": "75a43df9bd56b92aacc156a2958fbe12312fb285", "module-set": [ { "name": "host-modules", "module": [ { "name": "ietf-interfaces", "revision": "2018-02-20", "feature": [ "arbitrary-names", "pre-provisioning" ], "namespace": "urn:ietf:params:xml:ns:yang:ietf-interfaces" }, { "name": "ietf-ip", "revision": "2018-01-09", "namespace": "urn:ietf:params:xml:ns:yang:ietf-ip" }, { "name": "ietf-network-instance", "revision": "2018-02-03", "feature": [ "bind-network-instance-name" ], "namespace": "urn:ietf:params:xml:ns:yang:ietf-network-instance" }, { "name": "ietf-ospf", "revision": "2019-01-24", "namespace": "urn:ietf:params:xml:ns:yang:ietf-ospf" }, { "name": "ietf-routing", "revision": "2018-03-13", "namespace": Berger, et al. Standards Track [Page 41] RFC 8529 YANG NIs March 2019 "urn:ietf:params:xml:ns:yang:ietf-routing" }, { "name": "ietf-system", "revision": "2014-08-06", "namespace": "urn:ietf:params:xml:ns:yang:ietf-system" }, { "name": "ietf-yang-library", "revision": "2019-01-04", "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-library" }, { "name": "ietf-yang-schema-mount", "revision": "2019-01-14", "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount" } ], "import-only-module": [ { "name": "iana-if-type", "revision": "2018-07-03", "namespace": "urn:ietf:params:xml:ns:yang:iana-if-type" }, { "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", "namespace": "urn:ietf:params:xml:ns:yang:ietf-datastores" } ] } ], "schema": [ Berger, et al. Standards Track [Page 42] RFC 8529 YANG NIs March 2019 { "name": "host-schema", "module-set": [ "host-modules" ] } ], "datastore": [ { "name": "ietf-datastores:running", "schema": "host-schema" }, { "name": "ietf-datastores:operational", "schema": "host-schema" } ] }, "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']" ] } } ] } } Berger, et al. Standards Track [Page 43] RFC 8529 YANG NIs March 2019 Acknowledgments The Routing Area Yang Architecture design team members included Acee Lindem, Anees Shaikh, Christian Hopps, Dean Bogdanovic, Lou Berger, Qin Wu, Rob Shakir, Stephane Litkowski, and Yan Gang. Martin Bjorklund and John Scudder provided useful review comments. This document was motivated by, and derived from, "Network Device YANG Logical Organization" [YANG-NETWORK]. Thanks for Area Director and IETF last-call comments from Alia Atlas, Liang Xia, Benoit Claise, and Adam Roach. Authors' Addresses Lou Berger LabN Consulting, L.L.C. Email: lberger@labn.net Christian Hopps LabN Consulting, L.L.C. Email: chopps@chopps.org Acee Lindem Cisco Systems 301 Midenhall Way Cary, NC 27513 United States of America Email: acee@cisco.com Dean Bogdanovic Volta Networks Email: ivandean@gmail.com Xufeng Liu Volta Networks Email: xufeng.liu.ietf@gmail.com Berger, et al. Standards Track [Page 44]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4