This module contains groupings which specifically relate to Layer 2 network instance configuration and operational state paramet...
Version: 2022-07-04
submodule openconfig-network-instance-l2 { yang-version 1; belongs-to openconfig-network-instance { prefix oc-netinst; } import openconfig-extensions { prefix oc-ext; } import openconfig-interfaces { prefix oc-if; } import ietf-yang-types { prefix yang; } import ietf-inet-types { prefix inet; } import openconfig-evpn-types { prefix oc-evpn-types; } import openconfig-evpn { prefix oc-evpn; } 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."; revision "2022-07-04" { description "Add pcep protocol to network-instance"; reference "1.3.0"; } revision "2022-06-21" { description "Add prefix to qualification netinst-ref."; reference "1.2.0"; } revision "2022-04-20" { description "Add support for l2rib state data"; reference "1.1.0"; } revision "2022-04-19" { description "Description updates for DEFAULT_INSTANCE implementation guidance and default value/guidance for protocol instances"; reference "1.0.0"; } revision "2022-04-19" { description "Fix some broken xpath references in when statements."; reference "0.16.3"; } revision "2021-11-17" { description "Add prefix to qualification prefix to when statements at identifier level."; reference "0.16.2"; } revision "2021-07-22" { description "Remove unused imported models."; reference "0.16.1"; } revision "2021-06-11" { description "Structural update for arp-proxy and proxy-nd."; reference "0.16.0"; } revision "2021-01-25" { description "Add support for evpn"; reference "0.15.0"; } revision "2020-06-20" { description "Add support for toggling metric propagation when using table-connections."; reference "0.14.0"; } revision "2019-11-28" { description "Revert fixes for paths in when statements"; reference "0.13.2"; } revision "2019-04-16" { description "Move BGP RIB into the protocol/bgp container."; reference "0.12.0"; } revision "2018-11-21" { description "Add OpenConfig module metadata extensions."; reference "0.11.1"; } 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"; } oc-ext:openconfig-version "1.3.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 config container state { config false; description "Operational state parameters relating to the FDB"; uses l2ni-fdb-mac-config; } // container state uses l2ni-mac-table-top; uses oc-evpn:evpn-mac-mobility-top; uses oc-evpn:evpn-arp-proxy-top; uses oc-evpn:evpn-nd-proxy-top; uses l2ni-l2rib-top; } // container fdb } // grouping l2ni-instance 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-instance-common-config 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 { 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"; } uses oc-evpn:evpn-mac-vrf-config; } // grouping l2ni-fdb-mac-config 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-encapsulation-config 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 { 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-config 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" { value 0; description "Statically programmed MAC table entry"; } enum "DYNAMIC" { value 1; description "Dynamically learned MAC table entry"; } } description "Indicates whether the entry was statically configured, or dynamically learned."; } leaf evi { type oc-evpn-types:vni-id; description "EVPN EVI to associate with the BD/VLAN"; } } // grouping l2ni-mac-table-state 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 config container state { config false; description "Operational state data for MAC table entries"; uses l2ni-mac-table-config; uses l2ni-mac-table-state; } // container state container interface { description "Reference to the base and/or subinterface for the MAC table entry"; uses oc-if:interface-ref; } // container interface } // list entry } // container entries } // container mac-table } // grouping l2ni-mac-table-top grouping l2ni-l2rib-top { description "Top-level grouping for l2rib MAC and MAC-IP table list"; container l2rib { config false; description "Operational state container for MAC address and MAC-IP address information that is learned and installed into the MAC VRF Layer 2 Routing Information Base (L2RIB)"; container mac-table { description "Operational state container for MAC address information installed into the MAC VRF of the L2RIB"; container entries { description "Enclosing container for list of MAC address entries"; list entry { key "mac-address"; description "List of learned MAC addresses"; leaf mac-address { type leafref { path "../state/mac-address"; } description "Leafref of MAC address object"; } container state { config false; description "Operational state data for L2RIB MAC table object entry"; uses l2ni-l2rib-mac-table-state; } // container state container producers { description "Source producers for each MAC Table entry"; list producer { key "producer"; description "List of producers for each MAC table entry"; leaf producer { type leafref { path "../state/producer"; } description "Reference to producer list key"; } container state { config false; description "State container for L2RIB MAC Table Entries"; uses l2ni-l2rib-common-producer-state; uses l2ni-l2rib-mac-table-producer-state; } // container state } // list producer } // container producers } // list entry } // container entries uses l2ni-l2rib-common-next-hop-state; } // container mac-table container mac-ip-table { description "Operational state container for MAC-IP address information installed into the MAC VRF of the L2RIB"; container entries { description "Enclosing container for list of MAC-IP address entries"; list entry { key "mac-address host-ip"; description "List of learned MAC-IP addresses"; leaf mac-address { type leafref { path "../state/mac-address"; } description "Leafref of MAC-IP address object"; } leaf host-ip { type leafref { path "../state/host-ip"; } description "IP address of the Customer Edge device"; } container state { config false; description "Operational state data for L2RIB MAC-IP table object entry"; uses l2ni-l2rib-mac-ip-table-state; } // container state container producers { description "Source producers for each MAC-IP Table entry"; list producer { key "producer"; description "List of producers for each MAC-IP table entry"; leaf producer { type leafref { path "../state/producer"; } description "Reference to producer list key"; } container state { config false; description "State container for L2RIB MAC Table Entries"; uses l2ni-l2rib-common-producer-state; } // container state } // list producer } // container producers } // list entry } // container entries uses l2ni-l2rib-common-next-hop-state; } // container mac-ip-table } // container l2rib } // grouping l2ni-l2rib-top grouping l2ni-l2rib-mac-table-state { description "L2RIB MAC Table Operational State Grouping"; uses l2ni-l2rib-common-state; } // grouping l2ni-l2rib-mac-table-state grouping l2ni-l2rib-mac-ip-table-state { description "L2RIB Mac-IP Table Operational State Grouping"; uses l2ni-l2rib-common-state; leaf host-ip { type inet:ip-address; description "Host IP address of the CE device for the L2RIB MAC-IP entry"; reference "RFC7432: BGP MPLS-Based Ethernet VPN"; } leaf l3-vni { type oc-evpn-types:evi-id; description "Symmetric IRB uses the same forwarding semantics when routing between IP subnets with VRF Lite or MPLS L3VPNs. With symmetric IRB, all traffic egressing and returning from a VTEP uses the same VNI. Specifically, the same Layer 3 VNI (L3VNI) associated with the VRF is used for all routed traffic. Layer3 VNI used for inter-subnet routing"; } } // grouping l2ni-l2rib-mac-ip-table-state grouping l2ni-l2rib-common-state { description "L2RIB Common Property Operational State Data Grouping"; leaf mac-address { type yang:mac-address; description "MAC address of the L2RIB MAC or MAC-IP entry"; } leaf vlan { type leafref { path "../../../../../../../vlans/vlan/config/vlan-id"; } description "VLAN on which the MAC or MAC-IP address is present."; } leaf evi { type oc-evpn-types:evi-id; description "EVPN Instance Identifier for the MAC or MAC-IP"; } leaf l2-vni { type oc-evpn-types:evi-id; description "Layer2 VNI segment mapped to given vlan-id"; } } // grouping l2ni-l2rib-common-state grouping l2ni-l2rib-common-producer-state { description "L2RIB Common Producer Attributes Operational State Data Grouping"; leaf producer { type enumeration { enum "LOCAL" { value 0; description "local producer source"; } enum "STATIC" { value 1; description "static producer source"; } enum "BGP" { value 2; description "bgp producer source"; } } description "Source of the learned L2RIB route"; } leaf seq-number { type uint32; description "The sequence number is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address"; reference "RFC7432: BGP MPLS-Based Ethernet VPN"; } leaf mobility-state { type enumeration { enum "FROZEN" { value 0; description "Permanently frozen mac-address"; } enum "DUPLICATE" { value 1; description "Duplicate mac-address"; } } description "Indicates if learned MAC address is duplicate or frozen"; reference "draft-ietf-bess-evpn-irb-extended-mobility-05"; } leaf esi { type oc-evpn-types:esi; description "Ethernet Segment Identifier for local and remote routes"; } leaf sticky { type boolean; description "MAC address is sticky and not subjected to MAC moves"; reference "RFC7432: BGP MPLS-Based Ethernet VPN"; } leaf next-hop { type leafref { path "../../../../../../next-hops/next-hop/index"; } description "Leafref next-hop for the MAC-IP table entry"; } } // grouping l2ni-l2rib-common-producer-state grouping l2ni-l2rib-common-next-hop-state { description "L2RIB Common Next Hop Attributes Operational State Data Grouping"; container next-hops { description "A next-hop associated with the MAC or MAC-IP entry"; list next-hop { key "index"; description "List of next hop attributes for each MAC or MAC-IP"; leaf index { type leafref { path "../state/index"; } description "A unique index identifying the next-hop entry for the MAC or MAC-IP entry"; } container state { config false; description "State container for common next-hop attributes"; leaf index { type uint64; description "A unique entry for the next-hop."; } leaf peer-ip { type inet:ip-address; description "Next hop peer address"; } leaf label { type oc-evpn-types:evi-id; description "Next hop label representing the l2vni for the route"; } uses oc-if:interface-ref-common; } // container state } // list next-hop } // container next-hops } // grouping l2ni-l2rib-common-next-hop-state grouping l2ni-l2rib-mac-table-producer-state { description "L2RIB MAC Table Operational State Data Grouping"; leaf derived-from-mac-ip { type boolean; description "Derived from BGP MAC-IP route-type 2"; } leaf directly-received { type boolean; description "BGP learned MAC route-type 2"; } } // grouping l2ni-l2rib-mac-table-producer-state } // submodule openconfig-network-instance-l2
© 2023 YumaWorks, Inc. All rights reserved.