openconfig-network-instance-l2

This module contains groupings which specifically relate to Layer 2 network instance configuration and operational state paramet...

  • Version: 2022-09-15

    openconfig-network-instance-l2@2022-09-15


    
      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-09-15" {
          description "Add fallback-vrf option.";
          reference
            "1.4.0";
    
        }
    
        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.4.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.