Cisco-IOS-XR-l2-eth-infra-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR l2-eth-infra package configuration. This module contains...

  • Version: 2020-04-13

    Cisco-IOS-XR-l2-eth-infra-cfg@2020-04-13


    
      module Cisco-IOS-XR-l2-eth-infra-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-l2-eth-infra-cfg";
    
        prefix l2-eth-infra-cfg;
    
        import ietf-yang-types {
          prefix yang;
        }
        import cisco-semver {
          prefix semver;
        }
        import Cisco-IOS-XR-l2-eth-infra-datatypes {
          prefix dt1;
        }
        import Cisco-IOS-XR-ifmgr-cfg {
          prefix a1;
        }
        import Cisco-IOS-XR-l2vpn-cfg {
          prefix a2;
        }
    
        organization "Cisco Systems, Inc.";
    
        contact
          "Cisco Systems, Inc.
    Customer Service
    
    Postal: 170 West Tasman Drive
    San Jose, CA 95134
    
    Tel: +1 800 553-NETS
    
    E-mail: cs-yang@cisco.com";
    
        description
          "This module contains a collection of YANG definitions
    for Cisco IOS-XR l2-eth-infra package configuration.
    
    This module contains definitions
    for the following management objects:
      ethernet-features: Ethernet Features Configuration
    
    This YANG module augments the
      Cisco-IOS-XR-ifmgr-cfg,
      Cisco-IOS-XR-l2vpn-cfg
    modules with configuration data.
    
    Copyright (c) 2013-2020 by Cisco Systems, Inc.
    All rights reserved.";
    
        revision "2020-04-13" {
          description
            "Adding enum for 2 port mac relay frame filtering.";
        }
    
        revision "2019-04-05" {
          description
            "Establish semantic version baseline.";
        }
    
        revision "2018-06-15" {
          description
            "Allow min..max in range when min == max.";
        }
    
        revision "2017-05-01" {
          description
            "Fixing backward compatibility error in module.";
        }
    
        revision "2015-11-09" {
          description "IOS XR 6.0 revision.";
        }
    
        semver:module-version "1.0.0";
        semver:module-version "1.0.0";
    
        typedef L2-protocol-name {
          type enumeration {
            enum "cdp" {
              value 0;
              description "CDP";
            }
            enum "stp" {
              value 1;
              description "STP";
            }
            enum "vtp" {
              value 2;
              description "VTP";
            }
            enum "pvst" {
              value 3;
              description "PVST+";
            }
            enum "cpsv" {
              value 4;
              description
                "CDP, PVST+, STP, and VTP";
            }
          }
          description "L2 protocol name";
        }
    
        typedef L2-protocol-mode {
          type enumeration {
            enum "forward" {
              value 0;
              description
                "Forward packets transparently";
            }
            enum "drop" {
              value 1;
              description
                "Drop the protocol's packets";
            }
            enum "tunnel" {
              value 2;
              description
                "Tunnel ingress frames, untunnel egress frames";
            }
            enum "reverse-tunnel" {
              value 3;
              description
                "Tunnel egress frames, untunnel ingress frames";
            }
          }
          description "L2 protocol mode";
        }
    
        typedef Egress-filtering {
          type enumeration {
            enum "egress-filtering-type-strict" {
              value 1;
              description
                "Strict Egress Filtering";
            }
            enum "egress-filtering-type-disable" {
              value 2;
              description
                "Egress Filtering Disabled";
            }
            enum "egress-filtering-type-default" {
              value 3;
              description
                "Default Egress Filtering Behavior";
            }
          }
          description "Egress filtering";
        }
    
        typedef Filtering {
          type enumeration {
            enum "filtering-type-dot1q" {
              value 0;
              description
                "C-Vlan ingress frame filtering (Table 8-1 of
    802.1ad standard)";
            }
            enum "filtering-type-dot1ad" {
              value 1;
              description
                "S-Vlan ingress frame filtering (Table 8-2 of
    802.1ad standard)";
            }
          }
          description "Filtering";
        }
    
        typedef L2-protocol-mpls-exp-bits-value {
          type uint32 {
            range "0..7";
          }
          description
            "L2 protocol mpls exp bits value";
        }
    
        augment /a1:interface-configurations/a1:interface-configuration {
          description
            "This augment extends the configuration data of
    'Cisco-IOS-XR-ifmgr-cfg'";
          leaf user-network-interface {
            type string {
              length "1..64";
            }
            description
              "User-Network Interface ID";
          }
        }
    
        augment /a1:interface-configurations/a1:interface-configuration {
          description
            "This augment extends the configuration data of
    'Cisco-IOS-XR-ifmgr-cfg'";
          container vlan-sub-configuration {
            description
              "IEEE 802.1Q VLAN subinterface configuration";
            container vlan-identifier {
              presence
                "Indicates a vlan-identifier node is configured.";
              description
                "The VLAN tag stack associated with this
    sub-interface.";
              leaf vlan-type {
                type dt1:Vlan;
                mandatory true;
                description
                  "Whether this sub-interface is dot1ad or dot1Q";
              }
    
              leaf first-tag {
                type dt1:Vlan-tag;
                mandatory true;
                description
                  "First (outermost) VLAN tag value";
              }
    
              leaf second-tag {
                type dt1:Vlan-tag-or-null;
                description
                  "Second VLAN tag value. The any value may only
    be used for Layer 2 subinterfaces";
              }
            }  // container vlan-identifier
          }  // container vlan-sub-configuration
        }
    
        augment /a1:interface-configurations/a1:interface-configuration {
          description
            "This augment extends the configuration data of
    'Cisco-IOS-XR-ifmgr-cfg'";
          container ethernet-service {
            description
              "Ethernet service configuration";
            container local-traffic-default-encapsulation {
              presence
                "Indicates a local-traffic-default-encapsulation node is configured.";
              description
                "The default encapsulation to be used for
    locally-sourced packets";
              leaf outer-tag-type {
                type dt1:Vlan;
                mandatory true;
                description "Type of outer tag";
              }
    
              leaf outer-vlan-id {
                type dt1:Vlan-tag;
                mandatory true;
                description
                  "VLAN id for outer tag";
              }
    
              leaf inner-vlan-id {
                type dt1:Vlan-tag;
                description
                  "Optional VLAN Id for inner Dot1Q tag";
              }
            }  // container local-traffic-default-encapsulation
    
            container encapsulation {
              presence
                "Indicates a encapsulation node is configured.";
              description
                "The encapsulation of this Ethernet service";
              leaf outer-tag-type {
                type dt1:Match;
                mandatory true;
                description
                  "Whether to match all unmatched packets,
    untagged packets or tagged packets, and if
    matching tagged packets, the outer tag type to
    match";
              }
    
              leaf outer-range1-low {
                type dt1:Vlan-tag-or-any;
                description
                  "Low value of first range for outer tag match";
              }
    
              leaf outer-range1-high {
                type dt1:Vlan-tag-or-native;
                description
                  "High value of first range for outer tag match";
              }
    
              leaf inner-tag-type {
                type dt1:Match;
                description
                  "Type of tag for inner match (if present)";
              }
    
              leaf inner-range1-low {
                type dt1:Vlan-tag-or-any;
                description
                  "Low value of first range for inner tag match";
              }
    
              leaf inner-range1-high {
                type dt1:Vlan-tag;
                description
                  "High value of first range for inner tag match";
              }
    
              leaf additional-range1-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of first additional range for tag
    match";
              }
    
              leaf additional-range1-high {
                type dt1:Vlan-tag;
                description
                  "High value of first additional range for tag
    match";
              }
    
              leaf additional-range2-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of second additional range for tag
    match";
              }
    
              leaf additional-range2-high {
                type dt1:Vlan-tag;
                description
                  "High value of second additional range for tag
    match";
              }
    
              leaf additional-range3-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of third additional range for tag
    match";
              }
    
              leaf additional-range3-high {
                type dt1:Vlan-tag;
                description
                  "High value of third additional range for tag
    match";
              }
    
              leaf additional-range4-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of forth additional range for tag
    match";
              }
    
              leaf additional-range4-high {
                type dt1:Vlan-tag;
                description
                  "High value of forth additional range for tag
    match";
              }
    
              leaf additional-range5-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of fifth additional range for tag
    match";
              }
    
              leaf additional-range5-high {
                type dt1:Vlan-tag;
                description
                  "High value of fifth additional range for tag
    match";
              }
    
              leaf additional-range6-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of sixth additional range for tag
    match";
              }
    
              leaf additional-range6-high {
                type dt1:Vlan-tag;
                description
                  "High value of sixth additional range for tag
    match";
              }
    
              leaf additional-range7-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of seventh additional range for tag
    match";
              }
    
              leaf additional-range7-high {
                type dt1:Vlan-tag;
                description
                  "High value of seventh additional range for tag
    match";
              }
    
              leaf additional-range8-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of eighth additional range for tag
    match";
              }
    
              leaf additional-range8-high {
                type dt1:Vlan-tag;
                description
                  "High value of eighth additional range for tag
    match";
              }
    
              leaf outer-class-of-service {
                type dt1:Class-of-service;
                description
                  "Value to match against Class Of Service bits
    for outer tag";
              }
    
              leaf inner-class-of-service {
                type dt1:Class-of-service;
                description
                  "Value to match against Class Of Service bits
    for inner tag";
              }
    
              leaf payload-ethertype-match {
                type dt1:Ethertype-match;
                description
                  "Which payload ethertype values to match";
              }
    
              leaf ingress-source-mac {
                type yang:mac-address;
                description
                  "Source MAC address to match on ingress";
              }
    
              leaf ingress-destination-mac {
                type yang:mac-address;
                description
                  "Destination MAC address to match on egress";
              }
    
              leaf exact {
                type empty;
                description
                  "Only match packets with no more tags than
    explicitly matched";
              }
            }  // container encapsulation
    
            container rewrite {
              presence
                "Indicates a rewrite node is configured.";
              description
                "The rewrite operation for the Ethernet service";
              leaf rewrite-type {
                type dt1:Rewrite;
                mandatory true;
                description
                  "The type of rewrite to perform";
              }
    
              leaf outer-tag-type {
                type dt1:Match;
                description
                  "Type of outermost tag to be pushed";
              }
    
              leaf outer-tag-value {
                type dt1:Vlan-tag;
                description
                  "VLAN Id of outermost tag to be pushed";
              }
    
              leaf inner-tag-type {
                type dt1:Match;
                description
                  "Type of innermost tag to be pushed";
              }
    
              leaf inner-tag-value {
                type dt1:Vlan-tag;
                description
                  "VLAN Id of innermost tag to be pushed";
              }
            }  // container rewrite
          }  // container ethernet-service
        }
    
        augment /a1:interface-configurations/a1:interface-configuration {
          description
            "This augment extends the configuration data of
    'Cisco-IOS-XR-ifmgr-cfg'";
          container ethernet-bng {
            description
              "Ethernet Infra BNG specific configuration";
            container ambiguous-encapsulation {
              presence
                "Indicates a ambiguous-encapsulation node is configured.";
              description
                "L3 Ambiguous encapsulation";
              leaf outer-tag-type {
                type dt1:Match;
                mandatory true;
                description
                  "Whether to match all unmatched packets,
    untagged packets or tagged packets, and if
    matching tagged packets, the outer tag type to
    match";
              }
    
              leaf outer-range1-low {
                type dt1:Vlan-tag-or-any;
                description
                  "Low value of first range for outer tag match";
              }
    
              leaf outer-range1-high {
                type dt1:Vlan-tag-or-native;
                description
                  "High value of first range for outer tag match";
              }
    
              leaf inner-tag-type {
                type dt1:Match;
                description
                  "Type of tag for inner match (if present)";
              }
    
              leaf inner-range1-low {
                type dt1:Vlan-tag-or-any;
                description
                  "Low value of first range for inner tag match";
              }
    
              leaf inner-range1-high {
                type dt1:Vlan-tag;
                description
                  "High value of first range for inner tag match";
              }
    
              leaf additional-range1-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of first additional range for tag
    match";
              }
    
              leaf additional-range1-high {
                type dt1:Vlan-tag;
                description
                  "High value of first additional range for tag
    match";
              }
    
              leaf additional-range2-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of second additional range for tag
    match";
              }
    
              leaf additional-range2-high {
                type dt1:Vlan-tag;
                description
                  "High value of second additional range for tag
    match";
              }
    
              leaf additional-range3-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of third additional range for tag
    match";
              }
    
              leaf additional-range3-high {
                type dt1:Vlan-tag;
                description
                  "High value of third additional range for tag
    match";
              }
    
              leaf additional-range4-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of forth additional range for tag
    match";
              }
    
              leaf additional-range4-high {
                type dt1:Vlan-tag;
                description
                  "High value of forth additional range for tag
    match";
              }
    
              leaf additional-range5-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of fifth additional range for tag
    match";
              }
    
              leaf additional-range5-high {
                type dt1:Vlan-tag;
                description
                  "High value of fifth additional range for tag
    match";
              }
    
              leaf additional-range6-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of sixth additional range for tag
    match";
              }
    
              leaf additional-range6-high {
                type dt1:Vlan-tag;
                description
                  "High value of sixth additional range for tag
    match";
              }
    
              leaf additional-range7-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of seventh additional range for tag
    match";
              }
    
              leaf additional-range7-high {
                type dt1:Vlan-tag;
                description
                  "High value of seventh additional range for tag
    match";
              }
    
              leaf additional-range8-low {
                type dt1:Vlan-tag-or-cvp;
                description
                  "Low value of eighth additional range for tag
    match";
              }
    
              leaf additional-range8-high {
                type dt1:Vlan-tag;
                description
                  "High value of eighth additional range for tag
    match";
              }
    
              leaf outer-class-of-service {
                type dt1:Class-of-service;
                description
                  "Value to match against Class Of Service bits
    for outer tag";
              }
    
              leaf inner-class-of-service {
                type dt1:Class-of-service;
                description
                  "Value to match against Class Of Service bits
    for inner tag";
              }
    
              leaf payload-ethertype-match {
                type dt1:Ethertype-match;
                description
                  "Which payload ethertype values to match";
              }
    
              leaf ingress-source-mac {
                type yang:mac-address;
                description
                  "Source MAC address to match on ingress";
              }
    
              leaf ingress-destination-mac {
                type yang:mac-address;
                description
                  "Destination MAC address to match on egress";
              }
    
              leaf exact {
                type empty;
                description
                  "Only match packets with no more tags than
    explicitly matched";
              }
            }  // container ambiguous-encapsulation
          }  // container ethernet-bng
        }
    
        augment /a1:interface-configurations/a1:interface-configuration {
          description
            "This augment extends the configuration data of
    'Cisco-IOS-XR-ifmgr-cfg'";
          container mac-accounting {
            description
              "MAC Accounting Configuration";
            leaf ingress {
              type empty;
              description
                "Per MAC address accounting statistics";
            }
    
            leaf egress {
              type empty;
              description
                "Per MAC address accounting statistics";
            }
          }  // container mac-accounting
        }
    
        augment /a1:interface-configurations/a1:interface-configuration {
          description
            "This augment extends the configuration data of
    'Cisco-IOS-XR-ifmgr-cfg'";
          container ethernet-features {
            description
              "Ethernet Features Configuration";
            leaf filtering {
              type Filtering;
              description
                "Ingress Ethernet frame filtering";
            }
          }  // container ethernet-features
        }
    
        augment /a1:interface-configurations/a1:interface-configuration {
          description
            "This augment extends the configuration data of
    'Cisco-IOS-XR-ifmgr-cfg'";
          container carrier-delay {
            description
              "Set the carrier transition delay on an interface
    in msecs";
            leaf carrier-delay-up {
              type uint32 {
                range "1..65535";
              }
              description
                "Carrier Delay (up) in msecs";
            }
    
            leaf carrier-delay-down {
              type uint32 {
                range "0";
              }
              description
                "Carrier Delay down in msecs, must be set to 0";
            }
          }  // container carrier-delay
        }
    
        augment /a1:interface-configurations/a1:interface-configuration {
          description
            "This augment extends the configuration data of
    'Cisco-IOS-XR-ifmgr-cfg'";
          container vlan-trunk-configuration {
            description
              "IEEE 802.1Q VLAN trunk interface configuration";
            container native-vlan-identifier {
              presence
                "Indicates a native-vlan-identifier node is configured.";
              description
                "The Native VLAN identifier associated with this
    trunk interface";
              leaf vlan-type {
                type dt1:Vlan;
                mandatory true;
                description
                  "Whether this interface is dot1ad or dot1Q";
              }
    
              leaf vlan-identifier {
                type dt1:Vlan-tag;
                mandatory true;
                description "VLAN identifier";
              }
            }  // container native-vlan-identifier
    
            container vlan-switched {
              description
                "VLAN Switch interface configuration";
              leaf mode {
                type dt1:Vs-mode;
                description "VLAN Switch mode";
              }
    
              leaf access-vlan {
                when "../mode = 'access'" {
                  description "../Mode = Access";
                }
                type dt1:Vlan-tag;
                description "Access VLAN Id";
              }
    
              leaf trunk-tag-type {
                when "../mode = 'trunk'" {
                  description "../Mode = Trunk";
                }
                type dt1:Vlan;
                description
                  "Whether to match dot1ad or dot1Q packets";
              }
    
              leaf trunk-vla-ns {
                when "../mode = 'trunk'" {
                  description "../Mode = Trunk";
                }
                type string;
                description
                  "Comma-separated, increasing sequence of VLAN
    Ids or VLAN ranges";
              }
            }  // container vlan-switched
    
            leaf tunneling-ethertype {
              type enumeration {
                enum "0x9100" {
                  value 37120;
                  description "0x9100";
                }
                enum "0x9200" {
                  value 37376;
                  description "0x9200";
                }
              }
              description
                "The outer ethertype used in Q-in-Q frames. The
    default value is 0x8100";
            }
          }  // container vlan-trunk-configuration
        }
    
        augment /a1:interface-configurations/a1:interface-configuration/a2:l2-transport {
          description
            "This augment extends the configuration data of
    'Cisco-IOS-XR-l2vpn-cfg'";
          container l2-protocols {
            description
              "Interface specific Layer 2 protocol handling";
            list l2-protocol {
              key "l2-protocol-name";
              description
                "Handling of a specific Layer 2 protocol";
              leaf l2-protocol-name {
                type L2-protocol-name;
                description "Protocol name";
              }
    
              leaf mode {
                type L2-protocol-mode;
                mandatory true;
                description
                  "How to handle the protocol's packets";
              }
    
              leaf mpls-exp-bits-value {
                type L2-protocol-mpls-exp-bits-value;
                description
                  "The value to set the MPLS Exp bits to within
    the PW.This value may be specified if the mode
    is forward or tunnel and must not be specified
    if the mode is drop";
              }
            }  // list l2-protocol
          }  // container l2-protocols
        }
    
        augment /a1:interface-configurations/a1:interface-configuration/a2:l2-transport {
          description
            "This augment extends the configuration data of
    'Cisco-IOS-XR-l2vpn-cfg'";
          leaf propagate-remote-status {
            type empty;
            description
              "Enable propagation of the remote
    attachment-circuit link state to the
    localattachment-circuit link state";
          }
        }
    
        augment /a1:interface-configurations/a1:interface-configuration/a2:l2-transport {
          description
            "This augment extends the configuration data of
    'Cisco-IOS-XR-l2vpn-cfg'";
          container l2-ethernet-features {
            description
              "L2 Ethernet Features Configuration";
            leaf egress-filtering {
              type Egress-filtering;
              default
                "egress-filtering-type-default";
              description
                "Egress Ethernet filtering";
            }
    
            leaf source-bypass-egress-filtering {
              type empty;
              description
                "Mark all ingress packets to bypass any egress
    VLAN filter";
            }
          }  // container l2-ethernet-features
        }
    
        container ethernet-features {
          description
            "Ethernet Features Configuration";
          container egress-filtering {
            description
              "Egress Filtering Configuration";
            leaf egress-filtering-default-on {
              type empty;
              description
                "Whether Egress Filtering is on by default";
            }
          }  // container egress-filtering
        }  // container ethernet-features
      }  // module Cisco-IOS-XR-l2-eth-infra-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.