summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-network-instance.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-network-instance.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-network-instance.yang1093
1 files changed, 0 insertions, 1093 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-network-instance.yang b/src/plugins/yang/openconfig/openconfig-network-instance.yang
deleted file mode 100644
index 0d42a11..0000000
--- a/src/plugins/yang/openconfig/openconfig-network-instance.yang
+++ /dev/null
@@ -1,1093 +0,0 @@
-module openconfig-network-instance {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/network-instance";
-
- prefix "oc-netinst";
-
- // import some basic types
- //import ietf-inet-types { prefix inet; }
- import ietf-yang-types { prefix "yang"; }
- import ietf-inet-types { prefix "inet"; }
- import openconfig-network-instance-types { prefix "oc-ni-types"; }
- import openconfig-policy-types { prefix "oc-pol-types"; }
- import openconfig-routing-policy { prefix "oc-rpol"; }
- import openconfig-local-routing { prefix "oc-loc-rt"; }
- import openconfig-interfaces { prefix "oc-if"; }
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-network-instance-l3 { prefix "oc-ni-l3"; }
- import openconfig-types { prefix "oc-types"; }
- import openconfig-bgp { prefix "oc-bgp"; }
- import openconfig-mpls { prefix "oc-mpls"; }
- import openconfig-vlan { prefix "oc-vlan"; }
- import openconfig-ospfv2 { prefix "oc-ospfv2"; }
- import openconfig-policy-forwarding { prefix "oc-pf"; }
- import openconfig-segment-routing { prefix "oc-sr"; }
- import openconfig-isis { prefix "oc-isis"; }
- import openconfig-aft { prefix "oc-aft"; }
- import openconfig-pim { prefix "oc-pim"; }
- import openconfig-igmp { prefix "oc-igmp"; }
-
- // include submodules
- include openconfig-network-instance-l2;
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "An OpenConfig description of a network-instance. This may be
- a Layer 3 forwarding construct such as a virtual routing and
- forwarding (VRF) instance, or a Layer 2 instance such as a
- virtual switch instance (VSI). Mixed Layer 2 and Layer 3
- instances are also supported.";
-
- oc-ext:openconfig-version "0.11.0";
-
- revision "2018-08-11" {
- description
- "Add vlan id as additional key in MAC table";
- reference "0.11.0";
- }
-
- revision "2018-06-22" {
- description
- "Fix typo in OSPF when statement";
- reference "0.10.2";
- }
-
- revision "2018-06-05" {
- description
- "Fix bugs in when statements";
- reference "0.10.1";
- }
-
- revision "2018-02-19" {
- description
- "Add PIM and IGMP to network instance";
- reference "0.10.0";
- }
-
- revision "2017-12-13" {
- description
- "Fix incorrect constraint on SR and MPLS containers";
- reference "0.9.0";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes";
- reference "0.8.1";
- }
-
- revision "2017-02-28" {
- description
- "Add OSPFv2 to network instance";
- reference "0.8.0";
- }
-
- revision "2017-01-26" {
- description
- "Add policy forwarding to network instance";
- reference "0.7.0";
- }
-
- revision "2017-01-13" {
- description
- "Add AFT to the network instance";
- reference "0.6.0";
- }
-
- revision "2016-12-15" {
- description
- "Add segment routing to network instance";
- reference "0.5.0";
- }
-
- revision "2016-11-10" {
- description
- "Add IS-IS to OpenConfig network instance";
- reference "0.4.1";
- }
-
- revision "2016-10-12" {
- description
- "Update table connections";
- reference "0.4.0";
- }
-
- revision "2016-09-28" {
- description
- "Change L2 instance to submodule; add MAC table";
- reference "0.3.0";
- }
-
- revision "2016-08-11" {
- description
- "Resolve repeated container names in routing protocols";
- reference "0.2.3";
- }
-
- revision "2016-07-08" {
- description
- "Updated with refactored routing protocol models";
- reference "0.2.1";
- }
-
- revision "2016-03-29" {
- description
- "Initial revision";
- reference "0.2.0";
- }
-
- revision "2015-10-18" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- typedef network-instance-ref {
- type leafref {
- path "/network-instances/network-instance/config/name";
- }
- description
- "A re-usable type that can be referenced within other
- modules that references a network instance.";
- }
-
- grouping network-instance-top {
- description
- "Top-level grouping containing a list of network instances.";
-
- container network-instances {
- description
- "The L2, L3, or L2+L3 forwarding instances that are
- configured on the local system";
-
- list network-instance {
- key "name";
-
- description
- "Network instances configured on the local system";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "A unique name identifying the network instance";
- }
-
- uses l2ni-instance {
- when "config/type = 'L2VSI' or config/type = 'L2P2P'" +
- " or config/type = 'L2L3' or config/type = 'DEFAULT_INSTANCE'" {
- description
- "Layer 2 configuration parameters included when
- a network instance is a Layer 2 instance or a
- combined L2L3 instance";
- }
- }
-
- container config {
- description
- "Configuration parameters relating to a network
- instance";
- uses network-instance-config;
- uses network-instance-type-dependent-config;
- }
-
-
- container state {
- config false;
- description
- "Operational state parameters relating to a network
- instance";
- uses network-instance-config;
- uses network-instance-type-dependent-config;
- uses network-instance-state;
- }
-
- container encapsulation {
- when "../config/type != 'DEFAULT_INSTANCE'" {
- description
- "Only allow the encapsulation of the instance to be
- set when the instance is not the default instance";
- }
- description
- "Configuration parameters relating to the encapsulation
- used for the network instance";
-
- container config {
- description
- "Configuration parameters relating to the encapsulation
- of the network instance";
-
- uses encapsulation-config;
-
- uses l2ni-encapsulation-config {
- when "../../config/type = 'L2VSI' or ../../config/type = 'L2P2P'
- or ../../config/type = 'L2L3'" {
- description
- "Only allow L2 encapsulations to be set
- when the instance is of a type that supports
- L2";
- }
- }
- }
-
- container state {
- config false;
- description
- "State parameters relating to the encapsulation of
- the network instance";
- uses encapsulation-config;
-
- uses l2ni-encapsulation-config {
- when "../../config/type = 'L2VSI' or ../../config/type = 'L2P2P'
- or ../../config/type = 'L2L3'" {
- description
- "Only allow L2 encapsulations to be set
- when the instance is of a type that supports
- L2";
- }
- }
- }
- }
-
- container inter-instance-policies {
- description
- "Policies dictating how RIB or FIB entries are imported
- to and exported from this instance";
-
- uses oc-rpol:apply-policy-group;
- }
-
- container table-connections {
- description
- "Policies dictating how RIB or FIB entries are propagated
- between tables";
-
- list table-connection {
- key "src-protocol dst-protocol address-family";
-
- description
- "A list of connections between pairs of routing or
- forwarding tables, the leaking of entries between
- which is specified by the import policy.
-
- A connection connecting a source table to a destination
- table implies that routes that match the policy specified
- for the connection are available for the destination
- protocol to advertise, or match within its policies.";
-
- leaf src-protocol {
- type leafref {
- path "../config/src-protocol";
- }
- description
- "The name of the protocol associated with the table
- which should be utilised as the source of forwarding
- or routing information";
- }
-
- leaf dst-protocol {
- type leafref {
- path "../config/dst-protocol";
- }
- description
- "The table to which routing entries should be
- exported";
- }
-
- leaf address-family {
- type leafref {
- path "../config/address-family";
- }
- description
- "The address family associated with the connection";
- }
-
- container config {
- description
- "Configuration parameters relating to the connection
- between tables";
- uses inter-table-policies-config;
- }
- container state {
- config false;
- description
- "State parameters relating to the connection between
- tables";
- uses inter-table-policies-config;
- }
- }
- }
-
- container interfaces {
- description
- "The interfaces that are associated with this network
- instance";
-
- list interface {
- key "id";
- unique "config/interface config/subinterface";
-
- description
- "An interface associated with the network instance";
-
- leaf id {
- type leafref {
- path "../config/id";
- }
- description
- "A reference to an identifier for this interface which
- acts as a key for this list";
- }
-
- container config {
- description
- "Configuration parameters relating to the associated
- interface";
- uses instance-interfaces-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the
- associated interface";
-
- uses instance-interfaces-config;
- uses instance-interfaces-state;
- }
- }
- }
-
- uses oc-ni-l3:l3ni-route-limit-structural {
- when "type = 'L3VRF' or type = 'L2L3'" {
- description
- "Layer 3 VRF or L2/L3 instances can have route limits
- applied. This is not supported for the default instance.";
- }
- }
-
- container tables {
- description
- "The routing tables that are managed by this network
- instance";
-
- list table {
- key "protocol address-family";
-
- description
- "A network instance manages one or more forwarding or
- routing tables. These may reflect a Layer 2 forwarding
- information base, a Layer 3 routing table, or an MPLS
- LFIB.
-
- The table populated by a protocol within an instance is
- identified by the protocol identifier (e.g., BGP, IS-IS)
- and the address family (e.g., IPv4, IPv6) supported by
- that protocol. Multiple instances of the same protocol
- populate a single table -- such that
- a single IS-IS or OSPF IPv4 table exists per network
- instance.
-
- An implementation is expected to create entries within
- this list when the relevant protocol context is enabled.
- i.e., when a BGP instance is created with IPv4 and IPv6
- address families enabled, the protocol=BGP,
- address-family=IPv4 table is created by the system.";
-
- leaf protocol {
- type leafref {
- path "../config/protocol";
- }
- description
- "A reference to the protocol that populates
- the table";
- }
-
- leaf address-family {
- type leafref {
- path "../config/address-family";
- }
- description
- "A reference to the address-family that the
- table represents";
- }
-
- container config {
- description
- "Configuration parameters relating to the
- table";
- uses table-config;
- }
-
- container state {
- config false;
- description
- "State parameters related to the table";
- uses table-config;
- }
- }
- }
-
- container connection-points {
- description
- "The set of connection points within a forwarding
- instance";
-
- list connection-point {
- key "connection-point-id";
-
- description
- "A connection point within a Layer 2 network instance.
- Each connection-point consists of a set of interfaces
- only one of which is active at any one time. Other than
- the specification of whether an interface is local
- (i.e., exists within this network-instance), or remote,
- all configuration and state parameters are common";
-
- leaf connection-point-id {
- type leafref {
- path "../config/connection-point-id";
- }
- description
- "A locally significant reference for the
- connection-point";
- }
-
- container config {
- description
- "Configuration parameters relating to a Layer 2
- network instance connection point";
- uses instance-connection-point-config;
- }
- container state {
- config false;
- description
- "Operational state parameters relating to a Layer 2
- network instance connection point";
-
- uses instance-connection-point-config;
- uses instance-connection-point-state;
- }
-
- container endpoints {
- when "../../../config/type = 'L2P2P' " +
- "or ../../../config/type = 'L2VSI'" {
- description
- "Configuration parameters to associate interfaces
- into a common group for use in Layer 2 network
- instances";
- }
-
- description
- "The set of endpoints which are grouped within the
- connection point";
-
- list endpoint {
- key "endpoint-id";
-
- description
- "A list of the endpoints (interfaces or remote
- connection points that can be used for this
- connection point). The active endpoint is selected
- based on the precedence that it is configured
- with";
-
- leaf endpoint-id {
- type leafref {
- path "../config/endpoint-id";
- }
- description
- "A pointer to the configured identifier for the
- endpoint";
- }
-
- container config {
- description
- "Configuration parameters relating to the
- endpoint";
- uses instance-endpoint-config;
- }
- container state {
- config false;
- description
- "Operational state parameters relating to the
- endpoint";
- uses instance-endpoint-config;
- uses instance-endpoint-state;
- }
-
- container local {
- when "../config/type = 'LOCAL'" {
- description
- "Only include the local configuration when
- the endpoint is specified to be local to
- the network element";
- }
-
- description
- "Configuration and operational state parameters
- relating to a local interface";
-
- container config {
- description
- "Configuration parameters relating to a local
- endpoint";
- uses instance-endpoint-local-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to a
- local endpoint";
- uses instance-endpoint-local-config;
- }
- }
-
- container remote {
- when "../config/type = 'REMOTE'" {
- description
- "Only include the remote configuration when
- the endpoint is specified to be remote to
- the network element";
- }
-
- description
- "Configuration and operational state parameters
- relating to a remote interface";
-
- container config {
- description
- "Configuration parameters relating to a remote
- endpoint";
- uses instance-endpoint-remote-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to
- a remote endpoint";
- uses instance-endpoint-remote-config;
- }
- }
- }
- }
- }
- }
-
- uses oc-mpls:mpls-top {
- when "config/type = 'DEFAULT_INSTANCE'" {
- description
- "MPLS configuration is only valid within the default
- network instance.";
- }
- }
-
- uses oc-sr:sr-top {
- when "config/type = 'DEFAULT_INSTANCE'" {
- description
- "Segment routing configuration is only valid with the default
- network instance.";
- }
- }
-
- uses oc-vlan:vlan-top;
-
- uses oc-pf:policy-forwarding-top;
-
- uses oc-aft:aft-top;
-
- container protocols {
- description
- "The routing protocols that are enabled for this
- network-instance.";
-
- list protocol {
- key "identifier name";
-
- description
- "A process (instance) of a routing protocol. Some
- systems may not support more than one instance of
- a particular routing protocol";
-
- leaf identifier {
- type leafref {
- path "../config/identifier";
- }
- description
- "The protocol name for the routing or forwarding
- protocol to be instantiated";
- }
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "An operator-assigned identifier for the routing
- or forwarding protocol. For some processes this
- leaf may be system defined.";
- }
-
- container config {
- description
- "Configuration parameters relating to the routing
- protocol instance";
-
- uses protocols-config;
- }
-
- container state {
- config false;
- description
- "State parameters relating to the routing protocol
- instance";
-
- uses protocols-config;
- uses protocols-state;
- }
-
- uses oc-loc-rt:local-static-top {
- when "config/identifier = 'STATIC'" {
- description
- "Include static route parameters only when the
- protocol is set to static";
- }
- description
- "Configuration and state parameters relating to
- static routes";
- }
-
- uses oc-loc-rt:local-aggregate-top {
- when "config/identifier = 'LOCAL_AGGREGATE'" {
- description
- "Include aggregate route parameters only when the
- protocol is set to aggregate";
- }
- description
- "Configuration and state parameters relating to
- locally generated aggregate routes";
- }
-
- uses oc-bgp:bgp-top {
- when "config/identifier = 'BGP'" {
- description
- "Include BGP parameters only when the protocol
- is of type BGP";
- }
- description
- "Configuration and state parameters relating to
- Border Gateway Protocol (BGP)";
- }
-
- uses oc-ospfv2:ospfv2-top {
- when "config/identifier = 'OSPF'" {
- description
- "Include OSPFv2 parameters only when the protocol
- is of type OSPFv2";
- }
- }
-
- uses oc-isis:isis-top {
- when "config/identifier = 'ISIS'" {
- description
- "Include IS-IS configuration when the protocol is of type
- IS-IS";
- }
- description
- "Configuration and state parameters relating to Intermediate
- System to Intermediate System (IS-IS).";
- }
-
- uses oc-pim:pim-top {
- when "config/identifier = 'PIM'" {
- description
- "Include PIM configuration when the protocol is of type
- PIM";
- }
- description
- "Configuration and state parameters relating to Protocol
- Indepdendent Multicast (PIM).";
- }
-
- uses oc-igmp:igmp-top {
- when "config/identifier = 'IGMP'" {
- description
- "Include IGMP configuration when the protocol is of type
- IGMP";
- }
- description
- "Configuration and state parameters relating to the Internet
- Group Management Protocol (IGMP).";
- }
- }
- }
- }
- }
- }
-
- grouping network-instance-type-dependent-config {
- description
- "Type dependent network instance configuration";
-
- uses oc-ni-l3:l3ni-instance-common-config {
- when "type = 'L3VRF' or type = 'L2L3'" {
- description
- "Layer 3 VRF configuration parameters included when a
- network instance is a L3VRF or combined L2L3 instance";
- }
- }
-
- uses l2ni-instance-common-config {
- when "type = 'L2VSI' or type = 'L2P2P'" +
- " or type = 'L2L3'" {
- description
- "Layer 2 configuration parameters included when
- a network instance is a Layer 2 instance or a
- combined L2L3 instance";
- }
- }
- }
-
- grouping instance-endpoint-config {
- description
- "Configuration data relating to an forwarding-instance
- endpoint";
-
- leaf endpoint-id {
- type string;
- description
- "An identifier for the endpoint";
- }
-
- leaf precedence {
- type uint16;
- description
- "The precedence of the endpoint - the lowest precendence
- viable endpoint will be utilised as the active endpoint
- within a connection";
- }
-
- leaf type {
- type identityref {
- base "oc-ni-types:ENDPOINT_TYPE";
- }
- description
- "The type of endpoint that is referred to by the current
- endpoint";
- }
-
- }
-
- grouping instance-endpoint-local-config {
- description
- "Configuration parameters relating to an endpoint that is local
- to the current system";
-
- uses oc-if:interface-ref-common;
- }
-
- grouping instance-endpoint-remote-config {
- description
- "Configuration parameters relating to an endpoint that is
- remote from the local system";
- leaf remote-system {
- type inet:ip-address;
- description
- "The IP address of the device which hosts the
- remote end-point";
- }
-
- leaf virtual-circuit-identifier {
- type uint32;
- description
- "The virtual-circuit identifier that identifies the
- connection at the remote end-point";
- }
- }
-
- grouping instance-endpoint-state {
- description
- "Operational state data relating to a forwarding-instance
- endpoint";
- leaf active {
- type boolean;
- description
- "When the backup endpoint is active, the value of this
- parameter is set to true";
- }
- }
-
- grouping instance-connection-point-config {
- description
- "Configuration data relating to a forwarding-instance
- connection point";
-
- leaf connection-point-id {
- type string;
- description
- "An identifier for a connection point";
- }
- }
-
- grouping instance-connection-point-state {
- description
- "Operational state data relating to a forwarding-instance
- connection point";
- }
-
- grouping table-config {
- description
- "Config parameters relating to an L2/L2.5/L3 table that exists
- within a network instance";
-
- leaf protocol {
- type leafref {
- path "../../../../protocols/protocol/config/identifier";
- }
- description
- "Reference to the protocol that the table is associated with.";
- }
-
- leaf address-family {
- type identityref {
- base oc-types:ADDRESS_FAMILY;
- }
- description
- "The address family (IPv4, IPv6) of the table's entries";
- }
- }
-
- grouping instance-interfaces-config {
- description
- "Configuration parameters related to an interface associated
- with the network instance";
-
- leaf id {
- type string;
- description
- "A unique identifier for this interface - this is expressed
- as a free-text string";
- }
-
- uses oc-if:interface-ref-common;
-
- leaf-list associated-address-families {
- type identityref {
- base oc-types:ADDRESS_FAMILY;
- }
- description
- "The address families on the subinterface which are to be
- associated with this network instance. When this leaf-list
- is empty and the network instance requires Layer 3 information
- the address families for which the network instance is
- enabled should be imported. If the value of this leaf-list
- is specified then the association MUST only be made for
- those address families that are included in the list.";
- }
- }
-
- grouping instance-interfaces-state {
- description
- "Operational state parameters relating to an interface
- associated with this network instance";
- }
-
- grouping inter-table-policies-config {
- description
- "Configuration entries that relate to how RIB or FIB entries
- are propagated between tables within the same network
- instance";
-
- leaf src-protocol {
- type leafref {
- // we are at table-connections/table-connection/config/.
- path "../../../../tables/table/config/protocol";
- }
- description
- "The source protocol for the table connection";
- }
-
- leaf address-family {
- type leafref {
- // we are at table-connections/table-connection/config/.
- path "../../../../tables/" +
- "table[protocol=current()/../src-protocol]/" +
- "config/address-family";
- }
- description
- "The address family associated with the connection. This
- must be defined for the source protocol. The target
- address family is implicitly defined by the address family
- specified for the source protocol.";
- }
-
- leaf dst-protocol {
- type leafref {
- path "../../../../tables/table/config/protocol";
- }
- description
- "The destination protocol for the table connection";
- }
-
- uses oc-rpol:apply-policy-import-config;
- }
-
- grouping network-instance-config {
- description
- "Configuration parameters relating to a top-level network
- instance";
-
- leaf name {
- type string;
- description
- "An operator-assigned unique name for the forwarding
- instance";
- }
-
- leaf type {
- type identityref {
- base "oc-ni-types:NETWORK_INSTANCE_TYPE";
- }
- description
- "The type of network instance. The value of this leaf
- indicates the type of forwarding entries that should be
- supported by this network instance";
- }
-
- leaf enabled {
- type boolean;
- description
- "Whether the network instance should be configured to be
- active on the network element";
- }
-
- leaf description {
- type string;
- description
- "A free-form string to be used by the network operator to
- describe the function of this network instance";
- }
-
- leaf router-id {
- type yang:dotted-quad;
- description
- "A identifier for the local network instance - typically
- used within associated routing protocols or signalling
- routing information in another network instance";
- }
-
- leaf route-distinguisher {
- type oc-ni-types:route-distinguisher;
- description
- "The route distinguisher that should be used for the local
- VRF or VSI instance when it is signalled via BGP.";
- }
- }
-
- grouping network-instance-state {
- description
- "Operational state parameters relating to a network instance";
- }
-
- grouping protocols-config {
- description
- "Configuration parameters relating to a generic protocol
- instance within a network instance";
-
- leaf identifier {
- type identityref {
- base "oc-pol-types:INSTALL_PROTOCOL_TYPE";
- }
- description
- "The protocol identifier for the instance";
- }
-
- leaf name {
- type string;
- description
- "A unique name for the protocol instance";
- }
-
- leaf enabled {
- type boolean;
- description
- "A boolean value indicating whether the local protocol
- instance is enabled.";
- }
-
- leaf default-metric {
- type uint32;
- description
- "The default metric within the RIB for entries that are
- installed by this protocol instance. This value may
- be overridden by protocol specific configuration options.
- The lower the metric specified the more preferable the RIB
- entry is to be selected for use within the network instance.
- Where multiple entries have the same metric value then these
- equal cost paths should be treated according to the specified
- ECMP path selection behaviour for the instance";
- }
- }
-
- grouping protocols-state {
- description
- "Operational state parameters relating to a protocol instance";
- }
-
- grouping instance-interface-association-config {
- description
- "Grouping containing leaves that are to be augmented into an
- interface or subinterface to include mapping to a network
- instance";
-
- leaf network-instance {
- type leafref {
- path "/network-instances/network-instance/name";
- }
- description
- "The network instance that this interface is associated
- with";
- }
- }
-
- grouping encapsulation-config {
- description
- "Type agnostic configuration parameters relating to the
- encapsulation of the network instance";
-
- leaf encapsulation-type {
- type identityref {
- base oc-ni-types:ENCAPSULATION;
- }
- description
- "The on-the-wire encapsulation that should be used when
- sending traffic from this network instance";
- }
-
- // rjs: This is left here as I suspect that this can
- // be used in EVPN. Need to validate implementations, otherwise
- // move to L3. (TODO)
- leaf label-allocation-mode {
- type identityref {
- base oc-ni-types:LABEL_ALLOCATION_MODE;
- }
- description
- "The label allocation mode to be used for L3 entries
- in the network instance";
- }
- }
-
- uses network-instance-top;
-}