diff options
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-network-instance-l2.yang')
-rw-r--r-- | src/plugins/yang/openconfig/openconfig-network-instance-l2.yang | 339 |
1 files changed, 339 insertions, 0 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-network-instance-l2.yang b/src/plugins/yang/openconfig/openconfig-network-instance-l2.yang new file mode 100644 index 0000000..530b8c8 --- /dev/null +++ b/src/plugins/yang/openconfig/openconfig-network-instance-l2.yang @@ -0,0 +1,339 @@ +submodule openconfig-network-instance-l2 { + + belongs-to openconfig-network-instance { + prefix "oc-netinst"; + } + + // import some basic types + import openconfig-extensions { prefix "oc-ext"; } + import openconfig-interfaces { prefix "oc-if"; } + import ietf-yang-types { prefix "yang"; } + + // meta + organization "OpenConfig working group"; + + contact + "OpenConfig working group + www.openconfig.net"; + + description + "This module contains groupings which specifically relate to + Layer 2 network instance configuration and operational state + parameters."; + + 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 + "Update model to include IS-IS."; + 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-11-20" { + description + "Initial revision"; + reference "0.1.0"; + } + + grouping l2ni-instance { + description + "Configuration and operational state parameters relating + to a Layer 2 network instance"; + + container fdb { + description + "Operational state and configuration parameters relating to + the forwarding database of the network instance"; + + container config { + description + "Configuration parameters relating to the FDB"; + uses l2ni-fdb-mac-config; + } + container state { + config false; + description + "Operational state parameters relating to the FDB"; + uses l2ni-fdb-mac-config; + } + + uses l2ni-mac-table-top; + } + } + + grouping l2ni-instance-common-config { + description + "Common configuration options which are specific to Layer 2 + network instances"; + + leaf mtu { + type uint16; + description + "The maximum frame size which should be supported for this + instance for Layer 2 frames"; + } + + } + + grouping l2ni-fdb-mac-config { + description + "Parameters relating to FDB behaviour relating to MAC + addresses"; + + leaf mac-learning { + type boolean; + description + "When this leaf is set to true, MAC learning is enabled for + the network instance, such that MAC addresses are learned + from ingress frames and added to the FDB."; + } + + leaf mac-aging-time { + // Cisco supports one aging time for local and remote, but + // can specify this time is absolute or against inactivity. + // ALU SROS supports different aging times for local and remote + // but does not allow absolute/inactivity specification. + // JNPR supports only a single aging time, and no specification + // of whether inactivity/absolute is used. + // It is easy to augment new options in here for local remote + // and an extra leaf to allow specification of the type of aging + // so this is left as a single value. + type uint16; + units seconds; + description + "The number of seconds of inactivity after which the entry + in the local FDB is timed out."; + } + + leaf maximum-entries { + type uint16; + description + "The maximum number of MAC address entries that should be + accepted into the FDB"; + } + } + + grouping l2ni-encapsulation-config { + description + "Encapsulation related configuration parameters for a L2 + network instance"; + + leaf control-word { + type boolean; + description + "Whether the control-word should be used for the network + instance"; + reference "RFC3985"; + } + } + + grouping l2ni-mac-table-config { + description + "Configuration data for MAC table entries"; + + leaf mac-address { + type yang:mac-address; + description + "MAC address for the dynamic or static MAC table + entry"; + } + + leaf vlan { + //TODO(aashaikh): Consider whether this should just reflect the + //VLAN id or be a union type to also support displaying/setting + //the VLAN by name (i.e., global VLAN configured in the VLAN + // model). + type leafref { + path "../../../../../../vlans/vlan/config/vlan-id"; + } + description + "VLAN on which the MAC address is present. The same MAC + address may be seen on multiple VLANs in some cases."; + } + } + + grouping l2ni-mac-table-state { + description + "Operational state data for MAC table entries"; + + leaf age { + type uint64; + units seconds; + description + "The time in seconds since the MAC address has been in the + table"; + } + + leaf entry-type { + type enumeration { + enum STATIC { + description + "Statically programmed MAC table entry"; + } + enum DYNAMIC { + description + "Dynamically learned MAC table entry"; + } + } + description + "Indicates whether the entry was statically configured, or + dynamically learned."; + } + + } + + grouping l2ni-mac-table-top { + description + "Top-level grouping for MAC table list"; + + + container mac-table { + description + "Table of learned or statically configured MAC addresses and + corresponding VLANs in the bridge domain"; + + container entries { + description + "Enclosing container for list of MAC table entries"; + + list entry { + key "mac-address vlan"; + description + "List of learned MAC addresses"; + + leaf mac-address { + type leafref { + path "../config/mac-address"; + } + description + "Reference to mac-address list key"; + } + + leaf vlan { + type leafref { + path "../config/vlan"; + } + description + "Reference to vlan list key"; + } + + container config { + description + "Configuration data for MAC table entries"; + + uses l2ni-mac-table-config; + } + + container state { + + config false; + + description + "Operational state data for MAC table entries"; + + uses l2ni-mac-table-config; + uses l2ni-mac-table-state; + } + + container interface { + description + "Reference to the base and/or subinterface for the + MAC table entry"; + + uses oc-if:interface-ref; + } + } + } + } + } +} |