ieee802-dot1q-bridge

This YANG module describes the Bridge configuration model for the following IEEE 802.1Q Bridges: 1) Two Port MAC Relays 2) C...

  • Version: 2023-10-26

    ieee802-dot1q-bridge@2023-10-26


    
      module ieee802-dot1q-bridge {
    
        yang-version 1.1;
    
        namespace
          "urn:ieee:std:802.1Q:yang:ieee802-dot1q-bridge";
    
        prefix dot1q;
    
        import ieee802-types {
          prefix ieee;
        }
        import ietf-yang-types {
          prefix yang;
        }
        import ietf-interfaces {
          prefix if;
        }
        import iana-if-type {
          prefix ianaif;
        }
        import ieee802-dot1q-types {
          prefix dot1qtypes;
        }
    
        organization "IEEE 802.1 Working Group";
    
        contact
          "WG-URL: http://ieee802.org/1/
    WG-EMail: stds-802-1-l@ieee.org
    
    Contact: IEEE 802.1 Working Group Chair
    Postal: C/O IEEE 802.1 Working Group
          IEEE Standards Association
          445 Hoes Lane
          Piscataway, NJ 08854
          USA
    
    E-mail: stds-802-1-chairs@ieee.org";
    
        description
          "This YANG module describes the Bridge configuration model for the
    following IEEE 802.1Q Bridges:
      1) Two Port MAC Relays
      2) Customer VLAN Bridges
      3) Provider Bridges.
    
    Copyright (C) IEEE (2023).
    
    This version of this YANG module is part of IEEE Std 802.1Q; see the
    standard itself for full legal notices.";
    
        revision "2023-10-26" {
          description
            "Published as part of IEEE Std 802.1Qcw-2023.
    
    The following reference statement identifies each referenced IEEE
    Standard as updated by applicable amendments.";
          reference
            "IEEE Std 802.1Q Bridges and Bridged Networks:
            IEEE Std 802.1Q-2022, IEEE Std 802.1Qcz-2023, IEEE Std 802.1Qcw-2023.
            IEEE Std 802 Overview and Architecture:
            IEEE Std 802-2014.
            IEEE Std 802.1AC Media Access Control (MAC) Service Definition:
            IEEE Std 802.1AC-2016, IEEE Std 802.1AC-2016-Cor1-2018.";
    
        }
    
        revision "2022-10-29" {
          description
            "Published as part of IEEE Std 802.1Q-2022.";
          reference
            "IEEE Std 802.1Q-2022, Bridges and Bridged Networks.";
    
        }
    
        revision "2020-11-06" {
          description
            "Published as part of IEEE Std 802.1Qcr-2020. Third version.";
          reference
            "IEEE Std 802.1Qcr-2020, Bridges and Bridged Networks - Asynchronous
            Traffic Shaping.";
    
        }
    
        revision "2020-06-04" {
          description
            "Published as part of IEEE Std 802.1Qcx-2020. Second version.";
          reference
            "IEEE Std 802.1Qcx-2020, Bridges and Bridged Networks - YANG Data
            Model for Connectivity Fault Management.";
    
        }
    
        revision "2018-03-07" {
          description
            "Published as part of IEEE Std 802.1Q-2018. Initial version.";
          reference
            "IEEE Std 802.1Q-2018, Bridges and Bridged Networks.";
    
        }
    
    
        feature ingress-filtering {
          description
            "Each Port may support an Enable Ingress Filtering parameter. A frame
    received on a Port that is not in the member set (8.8.10) associated
    with the frames VID shall be discarded if this parameter is set. The
    default value for this parameter is reset, i.e., Disable Ingress
    Filtering, for all Ports. Any Port that supports setting this
    parameter shall also support resetting it. The parameter may be
    configured by the management operations defined in Clause 12.";
          reference
            "8.6.2 of IEEE Std 802.1Q";
    
        }
    
        feature extended-filtering-services {
          description
            "Extended Filtering Services support the filtering behavior required
    for regions of a network in which potential recipients of multicast
    frames exist, and where both the potential recipients of frames and
    the Bridges are able to support dynamic configuration of filtering
    information for group MAC addresses. In order to integrate this
    extended filtering behavior with the needs of regions of the network
    that support only Basic Filtering Services, Bridges that support
    Extended Filtering Services can be statically and dynamically
    configured to modify their filtering behavior on a per-group MAC
    address basis, and also on the basis of the overall filtering service
    provided by each outbound Port with regard to multicast frames. The
    latter capability permits configuration of the Port's default
    forwarding or filtering behavior with regard to group MAC addresses
    for which no specific static or dynamic filtering information has been
    configured.";
          reference
            "8.8.4, Clause 10 of IEEE Std 802.1Q";
    
        }
    
        feature port-and-protocol-based-vlan {
          description
            "A VLAN-aware Bridge component implementation in conformance to the
    provisions of this standard for Port-and-Protocol-based VLAN
    classification (5.4.1) shall 1) Support one or more of the following
    Protocol Classifications and Protocol Template formats: Ethernet,
    RFC_1042, SNAP_8021H, SNAP_Other, or LLC_Other (6.12); and may 2)
    Support configuration of the contents of the Protocol Group Database.";
          reference
            "5.4.1.2 of IEEE Std 802.1Q";
    
        }
    
        feature flow-filtering {
          description
            "Flow filtering support enables Bridges to distinguish frames
    belonging to different client flows and to use this information in the
    forwarding process. Information related to client flows may be used at
    the boundary of an SPT Domain to generate a flow hash value. The flow
    hash, carried in an F-TAG, serves to distinguish frames belonging to
    different flows and can be used in the forwarding process to
    distribute frames over equal cost paths. This provides for finer
    granularity load spreading while maintaining frame order for each
    client flow.";
          reference
            "44.2 of IEEE Std 802.1Q";
    
        }
    
        feature simple-bridge-port {
          description
            "A simple bridge port allows underlying (MAC) layers to share the same
    Interface as the Bridge Port.";
        }
    
        feature flexible-bridge-port {
          description
            "A flexible Bridge Port provides an interface that is distinct from
    the interface provided by the underlying (MAC) layer.";
        }
    
        identity type-of-bridge {
          description
            "Represents the configured Bridge type.";
        }
    
        identity customer-vlan-bridge {
          base type-of-bridge;
          description
            "Base identity for a Customer VLAN Bridge.";
        }
    
        identity provider-bridge {
          base type-of-bridge;
          description
            "Base identity for a Provider Bridge (PB).";
        }
    
        identity provider-edge-bridge {
          base type-of-bridge;
          description
            "Base identity for a Provider Edge Bridge (PEB).";
        }
    
        identity two-port-mac-relay-bridge {
          base type-of-bridge;
          description
            "Base identity for a Two Port MAC Relay (TPMR).";
        }
    
        identity type-of-component {
          description
            "Represents the type of Component.";
        }
    
        identity c-vlan-component {
          base type-of-component;
          description
            "Base identity for a C-VLAN component.";
        }
    
        identity s-vlan-component {
          base type-of-component;
          description
            "Base identity for a S-VLAN component.";
        }
    
        identity d-bridge-component {
          base type-of-component;
          description
            "Base identity for a VLAN unaware component.";
        }
    
        identity edge-relay-component {
          base type-of-component;
          description
            "Base identity for an EVB station ER component.";
        }
    
        identity type-of-port {
          description
            "Represents the type of Bridge port.";
        }
    
        identity c-vlan-bridge-port {
          base type-of-port;
          description
            "Indicates the port can be a C-TAG aware port of an enterprise VLAN
    aware Bridge.";
        }
    
        identity provider-network-port {
          base type-of-port;
          description
            "Indicates the port can be an S-TAG aware port of a Provider Bridge or
    Backbone Edge Bridge used for connections within a PBN (Provider
    Bridged Network) or PBBN (Provider Backbone Bridged Network).";
        }
    
        identity customer-network-port {
          base type-of-port;
          description
            "Indicates the port can be an S-TAG aware port of a Provider Bridge or
    Backbone Edge Bridge used for connections to the exterior of a PBN
    (Provider Bridged Network) or PBBN (Provider Backbone Bridged
    Network).";
        }
    
        identity customer-edge-port {
          base type-of-port;
          description
            "Indicates the port can be a C-TAG aware port of a Provider Bridge
    used for connections to the exterior of a PBN (Provider Bridged
    Network) or PBBN (Provider Backbone Bridged Network).";
        }
    
        identity d-bridge-port {
          base type-of-port;
          description
            "Indicates the port can be a VLAN-unaware member of an 802.1Q Bridge.";
        }
    
        identity remote-customer-access-port {
          base type-of-port;
          description
            "Indicates the port can be an S-TAG aware port of a Provider Bridge
    capable of providing Remote Customer Service Interfaces.";
        }
    
        identity bridge-interface {
          description
            "Generic interface property that represents any interface that can be
    associated with an IEEE 802.1Q compliant Bridge component. Any new
    Interface types would derive from this identity to automatically pick
    up Bridge related configuration or operational data.";
        }
    
        container bridges {
          description
            "Contains the Bridge(s) configuration information.";
          list bridge {
            key "name";
            unique "address";
            description
              "Provides configuration data in support of the Bridge Configuration
    resources. There is a single bridge data node per Bridge.";
            leaf name {
              type dot1qtypes:name-type;
              description
                "A text string associated with the Bridge, of locally determined
    significance.";
              reference
                "12.4 of IEEE Std 802.1Q";
    
            }
    
            leaf address {
              type ieee:mac-address;
              mandatory true;
              description
                "The MAC address for the Bridge from which the Bridge Identifiers
    used by the STP, RSTP, and MSTP are derived.";
              reference
                "12.4 of IEEE Std 802.1Q";
    
            }
    
            leaf bridge-type {
              type identityref {
                base type-of-bridge;
              }
              mandatory true;
              description "The type of Bridge.";
            }
    
            leaf ports {
              type uint16 {
                range "1..4095";
              }
              config false;
              description
                "The number of Bridge Ports (MAC Entities)";
              reference
                "12.4 of IEEE Std 802.1Q";
    
            }
    
            leaf up-time {
              type yang:zero-based-counter32;
              units "seconds";
              config false;
              description
                "The count in seconds of the time elapsed since the Bridge was
    last reset or initialized.";
              reference
                "12.4 of IEEE Std 802.1Q";
    
            }
    
            leaf components {
              type uint32;
              config false;
              description
                "The number of components associated with the Bridge.";
            }
    
            list component {
              key "name";
              description
                "The set of components associated with a given Bridge. For
    example, - A TPMR is associated with a single VLAN unaware
    component. - A Customer VLAN Bridge is associated with a single
    VLAN aware component. - A Provider Bridge is associated with a
    single S-VLAN component and zero or more C-VLAN components.";
              reference
                "12.4.1.5 of IEEE Std 802.1Q";
    
              leaf name {
                type string;
                description
                  "The name of the Component.";
              }
    
              leaf id {
                type uint32;
                description
                  "Unique identifier for a particular Bridge component within the
    system.";
                reference
                  "Item l) in 12.3 of IEEE Std 802.1Q";
    
              }
    
              leaf type {
                type identityref {
                  base type-of-component;
                }
                mandatory true;
                description
                  "The type of component used to classify a particular Bridge
    component within a Bridge system comprising multiple components.";
                reference
                  "Item m) in 12.3 of IEEE Std 802.1Q";
    
              }
    
              leaf address {
                type ieee:mac-address;
                description
                  "Unique EUI-48 Universally Administered MAC address assigned to
    a Bridge component.";
                reference
                  "8.13.8 of IEEE Std 802.1Q";
    
              }
    
              leaf traffic-class-enabled {
                type boolean;
                default "true";
                description
                  "Indication of Traffic Classes enablement associated with the
    Bridge Component. A value of True indicates that Traffic Classes
    are enabled on this Bridge Component. A value of False indicates
    that the Bridge Component operates with a single priority level
    for all traffic.";
                reference
                  "Item b) in 12.4.1.5.2 of IEEE Std 802.1Q";
    
              }
    
              leaf ports {
                type uint16 {
                  range "1..4095";
                }
                config false;
                description
                  "The number of Bridge Ports associated with the Bridge
    Component.";
                reference
                  "Item c) in 12.4.1.1.3 of IEEE Std 802.1Q";
    
              }
    
              leaf-list bridge-port {
                type if:interface-ref;
                config false;
                description
                  "List of bridge-port references.";
              }
    
              container capabilities {
                config false;
                description
                  "Array of Boolean values of the feature capabilities associated
    with a given Bridge Component.";
                reference
                  "Item b) in 12.10.1.1.3, 12.4.1.5.2 of IEEE Std 802.1Q";
    
                leaf extended-filtering {
                  type boolean;
                  default "false";
                  description
                    "Can perform filtering on individual multicast addresses
    controlled by MMRP.";
                  reference
                    "12.4.1.5.2 of IEEE Std 802.1Q";
    
                }
    
                leaf traffic-classes {
                  type boolean;
                  default "false";
                  description
                    "Can map priority to multiple traffic classes.";
                  reference
                    "12.4.1.5.2 of IEEE Std 802.1Q";
    
                }
    
                leaf static-entry-individual-port {
                  type boolean;
                  default "false";
                  description
                    "Static entries per port.";
                  reference
                    "12.4.1.5.2 of IEEE Std 802.1Q";
    
                }
    
                leaf ivl-capable {
                  type boolean;
                  default "true";
                  description
                    "Independent VLAN Learning (IVL).";
                  reference
                    "12.4.1.5.2 of IEEE Std 802.1Q";
    
                }
    
                leaf svl-capable {
                  type boolean;
                  default "false";
                  description
                    "Shared VLAN Learning (SVL).";
                  reference
                    "12.4.1.5.2 of IEEE Std 802.1Q";
    
                }
    
                leaf hybrid-capable {
                  type boolean;
                  default "false";
                  description
                    "Both IVL and SVL simultaneously.";
                  reference
                    "12.4.1.5.2 of IEEE Std 802.1Q";
    
                }
    
                leaf configurable-pvid-tagging {
                  type boolean;
                  default "false";
                  description
                    "Whether the implementation supports the ability to override
    the default PVID setting and its egress status (VLAN-tagged or
    Untagged) on each port.";
                  reference
                    "12.4.1.5.2 of IEEE Std 802.1Q";
    
                }
    
                leaf local-vlan-capable {
                  type boolean;
                  default "false";
                  description
                    "Can support multiple local Bridges, outside the scope of
    802.1Q defined VLANs.";
                  reference
                    "12.4.1.5.2 of IEEE Std 802.1Q";
    
                }
              }  // container capabilities
    
              container filtering-database {
                when
                  "not(derived-from-or-self(../../bridge-type, 'two-port-mac-relay-bridge'))" {
                  description
                    "Applies to non TPMRs.";
                }
                description
                  "Contains filtering information used by the Forwarding Process
    in deciding through which Ports of the Bridge frames should be
    forwarded.";
                reference
                  "12.7 of IEEE Std 802.1Q";
    
                leaf aging-time {
                  type uint32 {
                    range "10..1000000";
                  }
                  units "seconds";
                  default "300";
                  description
                    "The timeout period in seconds for aging out
    dynamically-learned forwarding information.";
                  reference
                    "12.7, 8.8.3 of IEEE Std 802.1Q";
    
                }
    
                leaf size {
                  type yang:gauge32;
                  config false;
                  description
                    "The maximum number of entries that can be held in the FDB.";
                  reference
                    "12.7 of IEEE Std 802.1Q";
    
                }
    
                leaf static-entries {
                  type yang:gauge32;
                  config false;
                  description
                    "The number of Static Filtering entries currently in the FDB.";
                  reference
                    "12.7, 8.8.1 of IEEE Std 802.1Q";
    
                }
    
                leaf dynamic-entries {
                  type yang:gauge32;
                  config false;
                  description
                    "The number of Dynamic Filtering entries currently in the FDB.";
                  reference
                    "12.7, 8.8.3 of IEEE Std 802.1Q";
    
                }
    
                leaf static-vlan-registration-entries {
                  type yang:gauge32;
                  config false;
                  description
                    "The number of Static VLAN Registration entries currently in
    the FDB.";
                  reference
                    "12.7, 8.8.2 of IEEE Std 802.1Q";
    
                }
    
                leaf dynamic-vlan-registration-entries {
                  type yang:gauge32;
                  config false;
                  description
                    "The number of Dynamic VLAN Registration entries currently in
    the FDB.";
                  reference
                    "12.7, 8.8.5 of IEEE Std 802.1Q";
    
                }
    
                leaf mac-address-registration-entries {
                  if-feature extended-filtering-services;
                  type yang:gauge32;
                  config false;
                  description
                    "The number of MAC Address Registration entries currently in
    the FDB.";
                  reference
                    "12.7, 8.8.4 of IEEE Std 802.1Q";
    
                }
    
                list filtering-entry {
                  key "database-id vids address";
                  description
                    "Information for the entries associated with the Permanent
    Database.";
                  leaf database-id {
                    type uint32;
                    description
                      "The identity of this Filtering Database.";
                    reference
                      "12.7.7 of IEEE Std 802.1Q";
    
                  }
    
                  leaf address {
                    type ieee:mac-address;
                    description
                      "A MAC address (unicast, multicast, broadcast) for which the
    device has forwarding and/or filtering information.";
                    reference
                      "12.7.7 of IEEE Std 802.1Q";
    
                  }
    
                  leaf vids {
                    type dot1qtypes:vid-range-type;
                    description
                      "The set of VLAN identifiers to which this entry applies.";
                    reference
                      "12.7.7 of IEEE Std 802.1Q";
    
                  }
    
                  leaf entry-type {
                    type enumeration {
                      enum "static" {
                        value 0;
                        description
                          "Static entry type";
                      }
                      enum "dynamic" {
                        value 1;
                        description
                          "Dynamic/learnt entry type";
                      }
                    }
                    description
                      "The type of filtering entry. Whether static or dynamic.
    Static entries can be created, deleted, and retrieved.
    However, dynamic entries can only be deleted or retrieved by
    the management entity. Consequently, a Bridge is not
    required to accept a command that can alter the dynamic
    entries except delete a dynamic entry.";
                    reference
                      "12.7.7 of IEEE Std 802.1Q";
    
                  }
    
                  uses dot1qtypes:port-map-grouping;
    
                  leaf status {
                    type enumeration {
                      enum "other" {
                        value 0;
                        description
                          "None of the following. This may include the case where
    some other object is being used to determine if and how
    frames addressed to the value of the corresponding
    instance of 'address' are being forwarded.";
                      }
                      enum "invalid" {
                        value 1;
                        description
                          "This entry is no longer valid (e.g., it was learned but
    has since aged out), but has not yet been flushed from
    the table.";
                      }
                      enum "learned" {
                        value 2;
                        description
                          "The value of the corresponding instance of the port
    node was learned and is being used.";
                      }
                      enum "self" {
                        value 3;
                        description
                          "The value of the corresponding instance of the address
    node representing one of the devices address.";
                      }
                      enum "mgmt" {
                        value 4;
                        description
                          "The value of the corresponding instance of address node
    that is also the value of an existing instance.";
                      }
                    }
                    config false;
                    description
                      "The status of this entry.";
                  }
                }  // list filtering-entry
    
                list vlan-registration-entry {
                  key "database-id vids";
                  description
                    "The VLAN Registration Entries models the operations that can
    be performed on a single VLAN Registration Entry in the FDB.
    The set of VLAN Registration Entries within the FDB changes
    under management control and also as a result of MVRP
    exchanges";
                  reference
                    "12.7.5 of IEEE Std 802.1Q";
    
                  leaf database-id {
                    type uint32;
                    description
                      "The identity of this Filtering Database.";
                    reference
                      "12.7.7 of IEEE Std 802.1Q";
    
                  }
    
                  leaf vids {
                    type dot1qtypes:vid-range-type;
                    description
                      "The set of VLAN identifiers to which this entry applies.";
                    reference
                      "12.7.7 of IEEE Std 802.1Q";
    
                  }
    
                  leaf entry-type {
                    type enumeration {
                      enum "static" {
                        value 0;
                        description
                          "Static entry type";
                      }
                      enum "dynamic" {
                        value 1;
                        description
                          "Dynamic/learnt entry type";
                      }
                    }
                    description
                      "The type of filtering entry. Whether static or dynamic.
    Static entries can be created, deleted, and retrieved.
    However, dynamic entries can only be deleted or retrieved by
    the management entity. Consequently, a Bridge is not
    required to accept a command that can alter the dynamic
    entries except delete a dynamic entry.";
                    reference
                      "12.7.7 of IEEE Std 802.1Q";
    
                  }
    
                  uses dot1qtypes:port-map-grouping;
                }  // list vlan-registration-entry
              }  // container filtering-database
    
              container permanent-database {
                description
                  "The Permanent Database container models the operations that can
    be performed on, or affect, the Permanent Database. There is a
    single Permanent Database per FDB.";
                leaf size {
                  type yang:gauge32;
                  config false;
                  description
                    "The maximum number of entries that can be held in the FDB.";
                  reference
                    "12.7.6 of IEEE Std 802.1Q";
    
                }
    
                leaf static-entries {
                  type yang:gauge32;
                  config false;
                  description
                    "The number of Static Filtering entries currently in the FDB.";
                  reference
                    "12.7.6 of IEEE Std 802.1Q";
    
                }
    
                leaf static-vlan-registration-entries {
                  type yang:gauge32;
                  config false;
                  description
                    "The number of Static VLAN Registration entries currently in
    the FDB.";
                  reference
                    "12.7.6 of IEEE Std 802.1Q";
    
                }
    
                list filtering-entry {
                  key "database-id vids address";
                  description
                    "Information for the entries associated with the Permanent
    Database.";
                  leaf database-id {
                    type uint32;
                    description
                      "The identity of this Filtering Database.";
                    reference
                      "12.7.7 of IEEE Std 802.1Q";
    
                  }
    
                  leaf address {
                    type ieee:mac-address;
                    description
                      "A MAC address (unicast, multicast, broadcast) for which the
    device has forwarding and/or filtering information.";
                    reference
                      "12.7.7 of IEEE Std 802.1Q";
    
                  }
    
                  leaf vids {
                    type dot1qtypes:vid-range-type;
                    description
                      "The set of VLAN identifiers to which this entry applies.";
                    reference
                      "12.7.7 of IEEE Std 802.1Q";
    
                  }
    
                  leaf status {
                    type enumeration {
                      enum "other" {
                        value 0;
                        description
                          "None of the following. This may include the case where
    some other object is being used to determine if and how
    frames addressed to the value of the corresponding
    instance of 'address' are being forwarded.";
                      }
                      enum "invalid" {
                        value 1;
                        description
                          "This entry is no longer valid (e.g., it was learned but
    has since aged out), but has not yet been flushed from
    the table.";
                      }
                      enum "learned" {
                        value 2;
                        description
                          "The value of the corresponding instance of the port
    node was learned and is being used.";
                      }
                      enum "self" {
                        value 3;
                        description
                          "The value of the corresponding instance of the address
    node representing one of the devices address.";
                      }
                      enum "mgmt" {
                        value 4;
                        description
                          "The value of the corresponding instance of address node
    that is also the value of an existing instance.";
                      }
                    }
                    config false;
                    description
                      "The status of this entry.";
                  }
    
                  uses dot1qtypes:port-map-grouping;
                }  // list filtering-entry
              }  // container permanent-database
    
              container bridge-vlan {
                when
                  "not(derived-from-or-self(../../bridge-type, 'two-port-mac-relay-bridge'))" {
                  description
                    "Applies to non TPMRs.";
                }
                description
                  "The Bridge VLAN container models configuration information that
    modifies, or inquires about, the overall configuration of the
    Bridge's VLAN resources. There is a single Bridge VLAN
    Configuration managed object per Bridge.";
                reference
                  "12.10 of IEEE Std 802.1Q";
    
                leaf version {
                  type uint16;
                  config false;
                  description
                    "The version number supported.";
                  reference
                    "Item a) of 12.10.1.1.3 of IEEE Std 802.1Q";
    
                }
    
                leaf max-vids {
                  type uint16;
                  config false;
                  description
                    "The maximum number of VIDs supported.";
                  reference
                    "Item b)1) of 12.10.1.1.3 of IEEE Std 802.1Q";
    
                }
    
                leaf override-default-pvid {
                  type boolean;
                  default "false";
                  config false;
                  description
                    "Indicates if the default PVID can be overridden, and its
    egress status (VLAN-tagged or untagged) on each port.";
                  reference
                    "Item b)2) of 12.10.1.1.3 of IEEE Std 802.1Q";
    
                }
    
                leaf protocol-template {
                  if-feature port-and-protocol-based-vlan;
                  type dot1qtypes:protocol-frame-format-type;
                  config false;
                  description
                    "The data-link encapsulation format or the detagged_frame_type
    in a Protocol Template";
                  reference
                    "12.10.1.7 of IEEE Std 802.1Q";
    
                }
    
                leaf max-msti {
                  type uint16;
                  config false;
                  description
                    "The maximum number of MSTIs supported within an MST region
    (i.e., the number of spanning tree instances that can be
    supported in addition to the CIST), for MST Bridges. For SST
    Bridges, this parameter may be either omitted or reported as
    0.";
                  reference
                    "Item b)4) of 12.10.1.1.3 of IEEE Std 802.1Q";
    
                }
    
                list vlan {
                  key "vid";
                  description
                    "List of VLAN related configuration nodes associated with the
    Bridge.";
                  reference
                    "12.10.2 of IEEE Std 802.1Q";
    
                  leaf vid {
                    type dot1qtypes:vlan-index-type;
                    description
                      "The VLAN identifier to which this entry applies.";
                    reference
                      "12.10.2 of IEEE Std 802.1Q";
    
                  }
    
                  leaf name {
                    type dot1qtypes:name-type;
                    description
                      "A text string of up to 32 characters of locally determined
    significance.";
                    reference
                      "12.10.2 of IEEE Std 802.1Q";
    
                  }
    
                  leaf-list untagged-ports {
                    type if:interface-ref;
                    config false;
                    description
                      "The set of ports in the untagged set for this VID.";
                    reference
                      "12.10.2.1.3, 8.8.2 of IEEE Std 802.1Q";
    
                  }
    
                  leaf-list egress-ports {
                    type if:interface-ref;
                    config false;
                    description
                      "The set of egress ports in the member set for this VID.";
                    reference
                      "12.10.2.1.3, 8.8.10 of IEEE Std 802.1Q";
    
                  }
                }  // list vlan
    
                list protocol-group-database {
                  if-feature port-and-protocol-based-vlan;
                  key "db-index";
                  description
                    "List of the protocol group database entries.";
                  reference
                    "12.10.1.7, 6.12.3 of IEEE Std 802.1Q";
    
                  leaf db-index {
                    type uint16;
                    description
                      "The protocol group database index.";
                  }
    
                  leaf frame-format-type {
                    type dot1qtypes:protocol-frame-format-type;
                    description
                      "The data-link encapsulation format or the
    detagged_frame_type in a Protocol Template";
                    reference
                      "12.10.1.7 of IEEE Std 802.1Q";
    
                  }
    
                  choice frame-format {
                    description
                      "The identification of the protocol above the data-link
    layer in a Protocol Template. Depending on the frame type,
    the octet string will have one of the following values:
    - For Ethernet, rfc1042, and snap8021H, this is the 16-bit
    (2-octet) EtherType field.
    - For snapOther, this is the 40-bit (5-octet) PID.
    - For llcOther, this is the 2-octet IEEE 802.2 Link Service
    Access Point (LSAP) pair: first octet for Destination Service
    Access Point (DSAP) and second octet for Source Service Access
    Point (SSAP).";
                    reference
                      "12.10.1.7 of IEEE Std 802.1Q";
    
                    case ethernet-rfc1042-snap8021H {
                      when
                        "frame-format-type = 'Ethernet' or frame-format-type = 'rfc1042' or frame-format-type = 'snap8021H'" {
                        description
                          "Applies to Ethernet, RFC 1042, SNAP 8021H frame
    formats.";
                      }
                      description
                        "Identifier used if Ethenet, RFC1042, or SNAP 8021H.";
                      leaf ethertype {
                        type dot1qtypes:ethertype-type;
                        description
                          "Format containing the 16-bit IEEE 802 EtherType field.";
                        reference
                          "9.2 of IEEE Std 802";
    
                      }
                    }  // case ethernet-rfc1042-snap8021H
    
                    case snap-other {
                      when
                        "frame-format-type = 'snapOther'" {
                        description
                          "Applies to Snap Other frame formats.";
                      }
                      description
                        "Identifier used if SNAP other.";
                      leaf protocol-id {
                        type string {
                          pattern
                            '[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){4}';
                        }
                        description
                          "Format containing the 40-bit protocol identifier (PID).
    The canonical representation uses uppercase characters.";
                        reference
                          "12.10.1.7.1 of IEEE Std 802.1Q";
    
                      }
                    }  // case snap-other
    
                    case llc-other {
                      when
                        "frame-format-type = 'llcOther'" {
                        description
                          "Applies to LLC Other frame formats";
                      }
                      description
                        "Identifier used if LLC other.";
                      container dsap-ssap-pairs {
                        description
                          "A pair of ISO/IEC 8802-2 DSAP and SSAP address field
    values, for matching frame formats of LLC_Other.";
                        leaf llc-address {
                          type string {
                            pattern
                              '[0-9a-fA-F]{2}-[0-9a-fA-F]{2}';
                          }
                          description
                            "A pair of ISO/IEC 8802-2 DSAP and SSAP address field
    values, for matching frame formats of LLC_Other. The
    canonical representation uses uppercase characters.";
                          reference
                            "12.10.1.7.1 of IEEE Std 802.1Q";
    
                        }
                      }  // container dsap-ssap-pairs
                    }  // case llc-other
                  }  // choice frame-format
    
                  leaf group-id {
                    type uint32;
                    description
                      "Designates a group of protocols in the Protocol Group
    Database.";
                    reference
                      "6.12.2 of IEEE Std 802.1Q";
    
                  }
                }  // list protocol-group-database
    
                list vid-to-fid-allocation {
                  key "vids";
                  description
                    "This list allows inquiries about VID to FID allocations.";
                  leaf vids {
                    type dot1qtypes:vid-range-type;
                    description
                      "Range of VLAN identifiers.";
                    reference
                      "12.10.3 of IEEE Std 802.1Q";
    
                  }
    
                  leaf fid {
                    type uint32;
                    config false;
                    description
                      "The Filtering Database used by a set of VIDs.";
                    reference
                      "12.10.3 of IEEE Std 802.1Q";
    
                  }
    
                  leaf allocation-type {
                    type enumeration {
                      enum "undefined" {
                        value 0;
                        description
                          "No allocation defined.";
                      }
                      enum "fixed" {
                        value 1;
                        description
                          "A fixed allocation to FID is defined.";
                      }
                      enum "dynamic" {
                        value 2;
                        description
                          "A dynamic allocation to FID is defined.";
                      }
                    }
                    config false;
                    description
                      "The type of allocation used";
                    reference
                      "12.10.3 of IEEE Std 802.1Q";
    
                  }
                }  // list vid-to-fid-allocation
    
                list fid-to-vid-allocation {
                  key "fid";
                  description
                    "The FID to VID allocations managed object models operations
    that inquire about FID to VID allocations.";
                  leaf fid {
                    type uint32;
                    description
                      "The Filtering Database used by a set of VIDs.";
                    reference
                      "12.10.3 of IEEE Std 802.1Q";
    
                  }
    
                  leaf allocation-type {
                    type enumeration {
                      enum "undefined" {
                        value 0;
                        description
                          "No allocation defined.";
                      }
                      enum "fixed" {
                        value 1;
                        description
                          "A fixed allocation to FID is defined.";
                      }
                      enum "dynamic" {
                        value 2;
                        description
                          "A dynamic allocation to FID is defined.";
                      }
                    }
                    config false;
                    description
                      "The type of allocation used";
                    reference
                      "12.10.3 of IEEE Std 802.1Q";
    
                  }
    
                  leaf-list vid {
                    type dot1qtypes:vlan-index-type;
                    config false;
                    description
                      "The VLAN identifier to which this entry applies.";
                    reference
                      "12.7.7 of IEEE Std 802.1Q";
    
                  }
                }  // list fid-to-vid-allocation
    
                list vid-to-fid {
                  key "vid";
                  description
                    "Fixed allocation of a VID to an FID. The underlying system
    will ensure that subsequent commands that make changes to the
    VID to FID mapping can override previous associations.";
                  reference
                    "12.10.3.4, 12.10.3.5 of IEEE Std 802.1Q";
    
                  leaf vid {
                    type dot1qtypes:vlan-index-type;
                    description
                      "A list of VIDs associated with a given database identifier
    (i.e., FID).";
                    reference
                      "12.7.7 of IEEE Std 802.1Q";
    
                  }
    
                  leaf fid {
                    type uint32;
                    description
                      "The Filtering Database used by this VLAN";
                    reference
                      "12.10.3 of IEEE Std 802.1Q";
    
                  }
                }  // list vid-to-fid
              }  // container bridge-vlan
    
              container bridge-mst {
                when
                  "not(derived-from-or-self(../../bridge-type, 'two-port-mac-relay-bridge'))" {
                  description
                    "Applies to non TPMRs.";
                }
                description
                  "The Bridge MST container models configuration information that
    modifies, or inquires about, the overall configuration of the
    Bridges MST resources.";
                reference
                  "12.12 of IEEE Std 802.1Q";
    
                leaf-list mstid {
                  type dot1qtypes:mstid-type;
                  description
                    "The list of MSTID values that are currently supported by the
    Bridge";
                }
    
                list fid-to-mstid {
                  key "fid";
                  description
                    "The FID to MSTID allocation table.";
                  reference
                    "12.12.2 of IEEE Std 802.1Q";
    
                  leaf fid {
                    type uint32;
                    description
                      "The Filtering Database identifier.";
                    reference
                      "12.12.2 of IEEE Std 802.1Q";
    
                  }
    
                  leaf mstid {
                    type dot1qtypes:mstid-type;
                    description
                      "The MSTID to which the FID is to be allocated.";
                    reference
                      "12.12.2 of IEEE Std 802.1Q";
    
                  }
                }  // list fid-to-mstid
    
                list fid-to-mstid-allocation {
                  key "fids";
                  description
                    "The FID to MSTID allocation table";
                  leaf fids {
                    type dot1qtypes:vid-range-type;
                    description "Range of FIDs.";
                    reference
                      "12.12.2 of IEEE Std 802.1Q";
    
                  }
    
                  leaf mstid {
                    type dot1qtypes:mstid-type;
                    description
                      "The MSTID to which the FID is allocated.";
                    reference
                      "12.12.2 of IEEE Std 802.1Q";
    
                  }
                }  // list fid-to-mstid-allocation
              }  // container bridge-mst
            }  // list component
          }  // list bridge
        }  // container bridges
    
        augment /if:interfaces/if:interface {
          when
            "derived-from-or-self(if:type,'ianaif:bridge') or derived-from-or-self(if:type,'ianaif:ethernetCsmacd') or derived-from-or-self(if:type,'ianaif:ieee8023adLag') or derived-from-or-self(if:type,'ianaif:ilan')" {
            description
              "Applies when a Bridge interface.";
          }
          description
            "Augment the interface model with the Bridge Port";
          container bridge-port {
            description
              "Bridge Port is an extension of the IETF Interfaces model (RFC7223).";
            leaf bridge-name {
              type leafref {
                path "/dot1q:bridges/dot1q:bridge/dot1q:name";
              }
              description
                "Used to reference configured Bridge node.";
            }
    
            leaf component-name {
              type leafref {
                path "/dot1q:bridges/dot1q:bridge[dot1q:name=current()/../bridge-name]/dot1q:component/dot1q:name";
              }
              description
                "Used to reference configured Component node.";
            }
    
            leaf port-type {
              type identityref {
                base type-of-port;
              }
              description
                "The port type. Indicates the capabilities of this port.";
              reference
                "12.4.2.1 of IEEE Std 802.1Q";
    
            }
    
            leaf pvid {
              when
                "/dot1q:bridges/dot1q:bridge[dot1q:name=current()/../dot1q:bridge-name]/dot1q:component[name=current()/../dot1q:component-name]/dot1q:type !='dot1q:d-bridge-component'" {
                description
                  "Applies to non TPMRs";
              }
              type dot1qtypes:vlan-index-type;
              default "1";
              description
                "The primary (default) VID assigned to a specific Bridge Port.";
              reference
                "12.10.1, 5.4, item m) of IEEE Std 802.1Q";
    
            }
    
            leaf default-priority {
              type dot1qtypes:priority-type;
              default "0";
              description
                "The default priority assigned to a specific Bridge Port.";
              reference
                "12.6.2 of IEEE Std 802.1Q";
    
            }
    
            container priority-regeneration {
              description
                "The Priority Regeneration Table parameters associated with a
    specific Bridge Port. A list of Regenerated User Priorities for
    each received priority on each port of a Bridge. The regenerated
    priority value may be used to index the Traffic Class Table for
    each input port. This only has effect on media that support native
    priority. The default values for Regenerated User Priorities are
    the same as the User Priorities";
              reference
                "12.6.2, 6.9.4 of IEEE Std 802.1Q";
    
              uses dot1qtypes:priority-regeneration-table-grouping;
            }  // container priority-regeneration
    
            leaf pcp-selection {
              type dot1qtypes:pcp-selection-type;
              default "8P0D";
              description
                "The Priority Code Point selection assigned to a specific Bridge
    Port. This object identifies the rows in the PCP encoding and
    decoding tables that are used to remark frames on this port if
    this remarking is enabled";
              reference
                "12.6.2, 6.9.3 of IEEE Std 802.1Q";
    
            }
    
            container pcp-decoding-table {
              description
                "The Priority Code Point Decoding Table parameters associated with
    a specific Bridge Port.";
              uses dot1qtypes:pcp-decoding-table-grouping;
            }  // container pcp-decoding-table
    
            container pcp-encoding-table {
              description
                "The Priority Code Point Encoding Table parameters associated with
    a specific Bridge Port.";
              uses dot1qtypes:pcp-encoding-table-grouping;
            }  // container pcp-encoding-table
    
            leaf use-dei {
              type boolean;
              default "false";
              description
                "The Drop Eligible Indicator. If it is set to True, then the
    drop_eligible parameter is encoded in the DEI of transmitted
    frames, and the drop_eligible parameter shall be true(1) for a
    received frame if the DEI is set in the VLAN tag or the Priority
    Code Point Decoding Table indicates drop_eligible True for the
    received PCP value. If this parameter is False, the DEI shall be
    transmitted as zero and ignored on receipt.";
              reference
                "12.6.2, 6.9.3 of IEEE Std 802.1Q";
    
            }
    
            leaf drop-encoding {
              type boolean;
              default "false";
              description
                "The Drop Encoding parameter. If a Bridge supports encoding or
    decoding of drop_eligible from the PCP field of a VLAN tag (6.9.3)
    on any of its Ports, then it shall implement a Boolean parameter
    Require Drop Encoding on each of its Ports with default value
    False. If Require Drop Encoding is True and the Bridge Port cannot
    encode particular priorities with drop_eligible, then frames
    queued with those priorities and drop_eligible True shall be
    discarded and not transmitted.";
              reference
                "12.6.2, 6.9.3 of IEEE Std 802.1Q";
    
            }
    
            leaf service-access-priority-selection {
              type boolean;
              default "false";
              description
                "The Service Access Priority selection. Indication of whether the
    Service Access Priority Selection function is supported on the
    Customer Bridge Port to request priority handling of the frame
    from a Port-based service interface.";
              reference
                "12.6.2, 6.13 of IEEE Std 802.1Q";
    
            }
    
            container service-access-priority {
              description
                "The Service Access Priority table parameters. A table that
    contains information about the Service Access Priority Selection
    function for a Provider Bridge. The use of this table enables a
    mechanism for a Customer Bridge attached to a Provider Bridged
    Network to request priority handling of frames.";
              reference
                "12.6.2, 6.13.1 of IEEE Std 802.1Q";
    
              uses dot1qtypes:service-access-priority-table-grouping;
            }  // container service-access-priority
    
            container traffic-class {
              description
                "The Traffic Class table parameters. A table mapping evaluated
    priority to Traffic Class, for forwarding by the Bridge";
              reference
                "12.6.3, 8.6.6 of IEEE Std 802.1Q";
    
              uses dot1qtypes:traffic-class-table-grouping;
            }  // container traffic-class
    
            container transmission-selection-algorithm-table {
              description
                "The Transmission Selection Algorithm Table for a given Port
    assigns, for each traffic class that the Port supports, the
    transmission selection algorithm that is to be used to select
    frames for transmission from the corresponding queue. Transmission
    Selection Algorithm Tables may be managed, and allow the
    identification of vendor-specific transmission selection
    algorithms. The transmission selection algorithms are identified
    in the Transmission Selection Algorithm Table by means of integer
    identifiers.";
              reference
                "12.20.2, 8.6.8 of IEEE Std 802.1Q";
    
              uses dot1qtypes:transmission-selection-table-grouping;
            }  // container transmission-selection-algorithm-table
    
            leaf acceptable-frame {
              when
                "/dot1q:bridges/dot1q:bridge[dot1q:name=current()/../dot1q:bridge-name]/dot1q:component[name=current()/../dot1q:component-name]/dot1q:type !='dot1q:d-bridge-component'" {
                description
                  "Applies to non TPMRs";
              }
              type enumeration {
                enum
                  "admit-only-VLAN-tagged-frames" {
                  value 0;
                  description
                    "Admit only VLAN-tagged frames.";
                }
                enum
                  "admit-only-untagged-and-priority-tagged" {
                  value 1;
                  description
                    "Admit only untagged and priority-tagged frames.";
                }
                enum "admit-all-frames" {
                  value 2;
                  description
                    "Admit all frames.";
                }
              }
              default "admit-all-frames";
              description
                "To configure the Acceptable Frame Types parameter associated with
    one or more Ports";
              reference
                "12.10.1.3, 6.9 of IEEE Std 802.1Q";
    
            }
    
            leaf enable-ingress-filtering {
              when
                "/dot1q:bridges/dot1q:bridge[dot1q:name=current()/../dot1q:bridge-name]/dot1q:component[name=current()/../dot1q:component-name]/dot1q:type !='dot1q:d-bridge-component'" {
                description
                  "Applies to non TPMRs";
              }
              type boolean;
              default "false";
              description
                "To enable the Ingress Filtering feature associated with one or
    more Ports.";
              reference
                "12.10.1.4, 8.6.2 of IEEE Std 802.1Q";
    
            }
    
            leaf enable-restricted-vlan-registration {
              when
                "/dot1q:bridges/dot1q:bridge[dot1q:name=current()/../dot1q:bridge-name]/dot1q:component[name=current()/../dot1q:component-name]/dot1q:type !='dot1q:d-bridge-component'" {
                description
                  "Applies to non TPMRs";
              }
              type boolean;
              default "false";
              description
                "To enable the Restricted VLAN Registration associated with one or
    more Ports.";
              reference
                "11.2.3.2.3, 12.10.1.6 of IEEE Std 802.1Q";
    
            }
    
            leaf enable-vid-translation-table {
              when
                "/dot1q:bridges/dot1q:bridge[dot1q:name=current()/../dot1q:bridge-name]/dot1q:component[name=current()/../dot1q:component-name]/dot1q:type !='dot1q:d-bridge-component'" {
                description
                  "Applies to non TPMRs";
              }
              type boolean;
              default "false";
              description
                "To enable VID Translation table associated with a Bridge Port.
    This is not applicable to Bridge Ports that do no support a VID
    Translation Table.";
              reference
                "12.10.1.8, 6.9 of IEEE Std 802.1Q";
    
            }
    
            leaf enable-egress-vid-translation-table {
              when
                "/dot1q:bridges/dot1q:bridge[dot1q:name=current()/../dot1q:bridge-name]/dot1q:component[name=current()/../dot1q:component-name]/dot1q:type !='dot1q:d-bridge-component'" {
                description
                  "Applies to non TPMRs";
              }
              type boolean;
              default "false";
              description
                "To enable Egress VID Translation table associated with a Bridge
    Port. This is not applicable to Ports that do not support an
    Egress VID Translation table.";
              reference
                "12.10.1.8, 6.9 of IEEE Std 802.1Q";
    
            }
    
            list protocol-group-vid-set {
              when
                "/dot1q:bridges/dot1q:bridge[dot1q:name=current()/../dot1q:bridge-name]/dot1q:component[name=current()/../dot1q:component-name]/dot1q:type !='dot1q:d-bridge-component'" {
                description
                  "Applies to non TPMRs";
              }
              if-feature port-and-protocol-based-vlan;
              key "group-id";
              description
                "The list of VID values associated with the Protocol Group
    Identifier for this port.";
              reference
                "12.10.1.1.3 of IEEE Std 802.1Q";
    
              leaf group-id {
                type uint32;
                description
                  "The protocol group identifier";
                reference
                  "12.10.1.7 of IEEE Std 802.1Q";
    
              }
    
              leaf-list vid {
                type dot1qtypes:vlanid;
                description
                  "The VLAN identifier to which this entry applies.";
                reference
                  "12.10.2 of IEEE Std 802.1Q";
    
              }
            }  // list protocol-group-vid-set
    
            leaf admin-point-to-point {
              type enumeration {
                enum "force-true" {
                  value 1;
                  description
                    "Indicates that this port should always be treated as if it is
    connected to a point-to-point link.";
                }
                enum "force-false" {
                  value 2;
                  description
                    "Indicates that this port should be treated as having a shared
    media connection.";
                }
                enum "auto" {
                  value 3;
                  description
                    "Indicates that this port is considered to have a
    point-to-point link if it is an Aggregator and all of its
    members are aggregatable, or if the MAC entity is configured
    for full duplex operation, either through auto-negotiation or
    by management means.";
                }
              }
              description
                "For a port running spanning tree, this object represents the
    administrative point-to-point status of the LAN segment attached
    to this port, using the enumeration values of IEEE Std 802.1AC. A
    value of forceTrue(1) indicates that this port should always be
    treated as if it is connected to a point-to-point link. A value of
    forceFalse(2) indicates that this port should be treated as having
    a shared media connection. A value of auto(3) indicates that this
    port is considered to have a point-to-point link if it is an
    Aggregator and all of its members are aggregatable, or if the MAC
    entity is configured for full duplex operation, either through
    auto-negotiation or by management means. Manipulating this object
    changes the underlying adminPointToPointMAC.";
              reference
                "12.4.2, 6.8.3 of IEEE Std 802.1Q; 11.3 of IEEE Std 802.1AC";
    
            }
    
            leaf protocol-based-vlan-classification {
              when
                "/dot1q:bridges/dot1q:bridge[dot1q:name=current()/../dot1q:bridge-name]/dot1q:component[name=current()/../dot1q:component-name]/dot1q:type !='dot1q:d-bridge-component'" {
                description
                  "Applies to non TPMRs";
              }
              if-feature port-and-protocol-based-vlan;
              type boolean;
              config false;
              description
                "A boolean indication indicating if Port-and-Protocol-based VLAN
    classification is supported on a given Port.";
              reference
                "5.4.1.2 of IEEE Std 802.1Q";
    
            }
    
            leaf max-vid-set-entries {
              when
                "/dot1q:bridges/dot1q:bridge[dot1q:name=current()/../dot1q:bridge-name]/dot1q:component[name=current()/../dot1q:component-name]/dot1q:type !='dot1q:d-bridge-component'" {
                description
                  "Applies to non TPMRs";
              }
              if-feature port-and-protocol-based-vlan;
              type uint16;
              config false;
              description
                "The maximum number of entries supported in the VID set on a given
    Port.";
              reference
                "12.10.1.1.3 of IEEE Std 802.1Q";
    
            }
    
            leaf port-number {
              type dot1qtypes:port-number-type;
              config false;
              description
                "An integer that uniquely identifies a Bridge Port.";
              reference
                "Item i) in 12.3, 17.3.2.2 of IEEE Std 802.1Q";
    
            }
    
            leaf address {
              type ieee:mac-address;
              config false;
              description
                "The specific MAC address of the individual MAC Entity associated
    with the Port.";
              reference
                "12.4.2, Item a) in 12.4.1.1.3 of IEEE Std 802.1Q";
    
            }
    
            leaf capabilities {
              type bits {
                bit tagging {
                  position 0;
                  description
                    "Supports 802.1Q VLAN tagging of frames and MVRP.";
                }
                bit
                  configurable-acceptable-frame-type {
                  position 1;
                  description
                    "Allows modified values of acceptable frame types";
                }
                bit ingress-filtering {
                  position 2;
                  description
                    "Supports the discarding of any frame received on a Port whose
    VLAN classification does not include that Port in its member
    set.";
                }
              }
              config false;
              description
                "The feature capabilities associated with port. Indicates the
    parts of IEEE 802.1Q that are optional on a per-port basis, that
    are implemented by this device, and that are manageable.";
              reference
                "Item c) in 12.10.1.1.3, 12.4.2 of IEEE Std 802.1Q";
    
            }
    
            leaf type-capabilties {
              type bits {
                bit customer-vlan-port {
                  position 0;
                  description
                    "Indicates the port can be a C-TAG aware port of an enterprise
    VLAN aware Bridge";
                }
                bit provider-network-port {
                  position 1;
                  description
                    "Indicates the port can be an S-TAG aware port of a Provider
    Bridge or Backbone Edge Bridge used for connections within a
    PBN or PBBN.";
                }
                bit customer-network-port {
                  position 2;
                  description
                    "Indicates the port can be an S-TAG aware port of a Provider
    Bridge or Backbone Edge Bridge used for connections to the
    exterior of a PBN or PBBN.";
                }
                bit customer-edge-port {
                  position 3;
                  description
                    "Indicates the port can be a C-TAG aware port of a Provider
    Bridge used for connections to the exterior of a PBN or PBBN.";
                }
                bit customer-backbone-port {
                  position 4;
                  description
                    "Indicates the port can be a I-TAG aware port of a Backbone
    Edge Bridge's B-component.";
                }
                bit virtual-instance-port {
                  position 5;
                  description
                    "Indicates the port can be a virtual S-TAG aware port within a
    Backbone Edge Bridge's I-component which is responsible for
    handling S-tagged traffic for a specific backbone service
    instance.";
                }
                bit d-bridge-port {
                  position 6;
                  description
                    "Indicates the port can be a VLAN-unaware member of an 802.1Q
    Bridge.";
                }
                bit
                  remote-customer-access-port {
                  position 7;
                  description
                    "Indicates the port can be an S-TAG aware port of a Provider
    Bridge capable of providing Remote Customer Service
    Interfaces.";
                }
                bit station-facing-bridge-port {
                  position 8;
                  description
                    "Indicates the station-facing Bridge Port in a EVB Bridge.";
                }
                bit uplink-access-port {
                  position 9;
                  description
                    "Indicates the uplink access port in an EVB Bridge or EVB
    station.";
                }
                bit uplink-relay-port {
                  position 10;
                  description
                    "Indicates the uplink relay port in an EVB station.";
                }
              }
              config false;
              description
                "The type of feature capabilities supported with port. Indicates
    the capabilities of this port.";
              reference
                "12.4.2 of IEEE Std 802.1Q";
    
            }
    
            leaf external {
              type boolean;
              config false;
              description
                "A boolean indicating whether the port is external. A value of
    True means the port is external. A value of False means the port
    is internal.";
              reference
                "12.4.2 of IEEE Std 802.1Q";
    
            }
    
            leaf oper-point-to-point {
              type boolean;
              config false;
              description
                "For a port running spanning tree, this object represents the
    operational point-to-point status of the LAN segment attached to
    this port. It indicates whether a port is considered to have a
    point-to-point connection.
    
    If admin-point-to-point is set to auto(2), then the value of
    oper-point-to-point is determined in accordance with the specific
    procedures defined for the MAC entity concerned, as defined in
    IEEE Std 802.1AC.
    
    The value is determined dynamically; that is, it is re-evaluated
    whenever the value of admin-point-to-point changes, and whenever
    the specific procedures defined for the MAC entity evaluate a
    change in its point-to-point status.";
              reference
                "IEEE Std 802.1AC; 12.4.2 of IEEE Std 802.1Q";
    
            }
    
            leaf media-dependent-overhead {
              type uint8;
              units "octets";
              config false;
              description
                "The portMediaDependentOverhead parameter provides the number of
    additional octets for media-dependent framing. The overhead
    includes all octets prior the first octet of the Destination
    Address field and all octets after the last octet of the frame
    check sequence.";
              reference
                "12.4.2 of IEEE Std 802.1Q";
    
            }
    
            container statistics {
              config false;
              description
                "Container of operational state node information associated with
    the bridge port.";
              uses dot1qtypes:bridge-port-statistics-grouping;
    
              leaf discard-on-ingress-filtering {
                when
                  "/dot1q:bridges/dot1q:bridge[dot1q:name=current()/../../dot1q:bridge-name]/dot1q:component[name=current()/../../dot1q:component-name]/dot1q:type !='dot1q:d-bridge-component'" {
                  description
                    "Applies to non TPMRs";
                }
                if-feature ingress-filtering;
                type yang:counter64;
                description
                  "The number of frames that were discarded as a result of Ingress
    Filtering being enabled.
    
    Discontinuities in the value of this counter can occur at
    re-initialization of the management system, and at other times
    as indicated by the value of 'discontinuity-time'.";
                reference
                  "12.6.1.1.3 of IEEE Std 802.1Q";
    
              }
            }  // container statistics
    
            list vid-translations {
              when
                "/dot1q:bridges/dot1q:bridge[dot1q:name=current()/../dot1q:bridge-name]/dot1q:component[name=current()/../dot1q:component-name]/dot1q:type !='dot1q:d-bridge-component'" {
                description
                  "Applies to non TPMRs";
              }
              key "local-vid";
              description
                "To configure the VID Translation Table (6.9) associated with a
    Port. This object is not applicable to Ports that do not support a
    VID Translation Table. The default configuration of the table has
    the value of the Relay VID equal to the value of the Local VID. If
    no local VID is configured, then it is assumed that the relay VID
    is the same value as the local VID.
    
    If the port supports an Egress VID translation table, the VID
    Translation Configuration object configures the Local VID to Relay
    VID mapping on ingress only. If an Egress VID translation is not
    supported, the VID Translation Configuration object defines a
    single bidirectional mapping. In this case, the Bridge should not
    allow multiple keys ('local-vid') mapped to the same 'relay-vid'
    value.";
              leaf local-vid {
                type dot1qtypes:vlanid;
                description
                  "The Local VID after translation received at the ISS or EISS.";
                reference
                  "12.10.1.8, 6.9 of IEEE Std 802.1Q";
    
              }
    
              leaf relay-vid {
                type dot1qtypes:vlanid;
                description
                  "The Relay VID received before translation received at ISS or
    EISS.";
                reference
                  "12.10.1.8, 6.9 of IEEE Std 802.1Q";
    
              }
            }  // list vid-translations
    
            list egress-vid-translations {
              when
                "/dot1q:bridges/dot1q:bridge[dot1q:name=current()/../dot1q:bridge-name]/dot1q:component[name=current()/../dot1q:component-name]/dot1q:type !='dot1q:d-bridge-component'" {
                description
                  "Applies to non TPMRs";
              }
              key "relay-vid";
              description
                "To configure the Egress VID Translation Table (6.9) associated
    with a Port. This object is not applicable to Ports that do not
    support an Egress VID Translation Table. The default configuration
    of the table has the value of the Local VID equal to the value of
    the Relay VID. If no Relay VID is configured, then it is assumed
    that the local VID is the same value as the relay VID.";
              leaf relay-vid {
                type dot1qtypes:vlanid;
                description
                  "The Relay VID received before translation received at ISS or
    EISS.";
                reference
                  "12.10.1.9, 6.9 of IEEE Std 802.1Q";
    
              }
    
              leaf local-vid {
                type dot1qtypes:vlanid;
                description
                  "The Local VID after translation received at the ISS or EISS.";
                reference
                  "12.10.1.9, 6.9 of IEEE Std 802.1Q";
    
              }
            }  // list egress-vid-translations
          }  // container bridge-port
        }
      }  // module ieee802-dot1q-bridge
    

© 2023 YumaWorks, Inc. All rights reserved.