cisco-bridge-domain

This YANG module describes the configuration and operational model for bridge domain. Terms and Acronyms AC : Attachment Circ...

  • Version: 2019-07-01

    cisco-bridge-domain@2019-07-01


    
      module cisco-bridge-domain {
    
        yang-version 1;
    
        namespace
          "urn:cisco:params:xml:ns:yang:cisco-bridge-domain";
    
        prefix bd;
    
        import cisco-semver {
          prefix cisco-semver;
        }
        import ietf-interfaces {
          prefix if;
        }
        import ietf-yang-types {
          prefix yang;
        }
        import cisco-bridge-common {
          prefix cbridge;
        }
        import cisco-storm-control {
          prefix cstormctrl;
        }
        import cisco-pw {
          prefix l2vpn-pw;
        }
    
        organization "Cisco Systems, Inc.";
    
        contact
          "Cisco Systems, Inc.
    Customer Service
    
    Postal: 170 W Tasman Drive
    San Jose, CA 95134
    
    Tel: +1 1800 553-NETS
    
    E-mail: cs-yang@cisco.com";
    
        description
          "This YANG module describes the configuration and operational
    model for bridge domain.
    
    Terms and Acronyms
      AC : Attachment Circuits
    
      BD : Bridge Domain
    
      BCB : Backbone Core Bridge
    
      BEB : Backbone Edge Bridge
    
      B-MAC : Backbone MAC Address
    
      CE : Customer Edge
    
      C-MAC : Customer/Client MAC Address
    
      DHCP : Dynamic Host Configuration Protocol
    
      DAI : Dynamic ARP Inspection
    
      EVC : Ethernet Virtual Circuit
    
      IGMP : Internet Group Management Protocol
    
      IPSG : IP Source Guard
    
      L2VPN : Layer 2 Virtual Private Network
    
      MLD : Multicast Listener Discovery
    
      PBB : Provider Backbone Bridge
    
      VLAN : Virtual Local Area Network
    ";
    
        revision "2019-07-01" {
          description
            "Establish semantic version baseline";
        }
    
        revision "2016-12-14" {
          description
            "Removed cisco govern extension";
        }
    
        revision "2014-12-01" {
          description "Proposed";
          reference
            "TODO";
    
        }
    
        cisco-semver:module-version "1.0.0";
    
        feature parameterized-bridge-domains {
          description
            "This feature represents ability to dynamically create
    bridge-domains.";
        }
    
        feature clear-bridge-domain {
          description
            "This features represents ability to clear mac-address table
    and restart bridge-domains.";
          reference
            "IOS-XR: clear l2vpn bridge-domain <>";
    
        }
    
        feature configurable-bd-groups {
          description
            "This feature represents ability to group bridge domains
    under bridge group.";
        }
    
        feature configurable-bd-mtu {
          description
            "This feature represents ability to configure MTU for the
    bridge domain.";
        }
    
        feature configurable-bd-mac-features {
          description
            "This feature represents ability to configure MAC
    features.
    
    This feature is applicable for both bridge domains and
    bridge domain members.";
        }
    
        feature configurable-bd-flooding-mode {
          description
            "This feature represents ability to configure flood mode
    for the bridge domains.";
        }
    
        feature configurable-bd-mac-event-action {
          description
            "This feature represents ability to configure mac event
    actions.
    
    This feature is applicable for both bridge domains and
    bridge domain members.";
        }
    
        feature configurable-bd-mac-secure {
          description
            "This feature represents ability to configure mac secure
    feature
    
    This feature is applicable for both bridge domains and
    bridge domain members.";
        }
    
        feature configurable-bd-flooding {
          description
            "This feature represents ability to configure flooding
    feature.
    
    This feature is applicable for both bridge domains and
    bridge domain members.";
        }
    
        feature configurable-bd-storm-control {
          description
            "This feature represents ability to configure storm control
    feature.
    
    This feature is applicable for both bridge domains and
    bridge domain members.";
        }
    
        feature configurable-bd-dai {
          description
            "This feature represents ability to configure Dynamic ARP
    inspection feature.
    
    This feature is applicable for both bridge domains and
    bridge domain members.";
        }
    
        feature configurable-bd-ipsg {
          description
            "This feature represents ability to configure IP source
    guard feature.
    
    This feature is applicable for both bridge domains and
    bridge domain members.";
        }
    
        feature configurable-bd-snooping-profiles {
          description
            "This feature represents ability to configure snooping
    profiles for the bridge domain.
    
    This feature is applicable for both bridge domains and
    bridge domain members.";
        }
    
        feature configurable-bd-static-mac {
          description
            "This feature represents ability to configure static
    mac list.";
        }
    
        feature configurable-bd-sh-group-number {
          description
            "This feature represents ability to configure split
    horizon group number config.";
        }
    
        feature configurable-bd-member-features {
          description
            "This feature represents ability to configure advance
    features on bridge-domain members.";
        }
    
        typedef bridge-domain-ref {
          type leafref {
            path "/bd:bridge-domain-config/bd:bridge-domains/bd:bridge-domain/bd:id";
          }
          description
            "Reference to bridge-domain instance id.";
        }
    
        typedef bridge-domain-oper-ref {
          type leafref {
            path "/bd:bridge-domain-state/bd:bridge-domains/bd:bridge-domain/bd:id";
          }
          description
            "Reference to bridge-domain instance id.";
        }
    
        typedef bridge-domain-state-type {
          type enumeration {
            enum "up" {
              value 0;
              description
                "Bridge domain is operationally Up.";
            }
            enum "down" {
              value 1;
              description
                "Bridge domain is operationally Down.";
            }
            enum "admin-down" {
              value 2;
              description
                "Bridge domain is shutdown by administrator.";
            }
          }
          description "Bridge domain states.";
        }
    
        grouping bd-member-features {
          description
            "Bridge domain member specific feature grouping.
    
    This grouping is applicable to all attachment circuit (AC)
    and access pseudo-wire members.";
          container split-horizon-group {
            presence
              "Existence of this container represents Split Horizon
    configuration.
    
    When Split Horizon group number is not configured, device
    assigns default group numbers to ACs or PWs";
            description
              "Bridge domain aggregates attachment circuits (ACs) and
    pseudowires (PWs) in one or more groups called Split Horizon
    Groups. When applied to bridge domains, Split Horizon refers
    to the flooding and forwarding behavior between members of a
    Split Horizon group. In general, frames received on one
    member of a split horizon group are not flooded out to the
    other members.";
            leaf id {
              if-feature configurable-bd-sh-group-number;
              type uint16;
              mandatory true;
              description
                "Split Horizon group number for bridge domain member.";
            }
          }  // container split-horizon-group
    
          container mac {
            description
              "MAC features for bridge domain.";
            uses cbridge:mac-learning-config {
              description
                "MAC learning features:
     - enable / disable mac learning
     - mac limit
     - mac limit actions
     - mac limit notifications";
            }
    
            uses cbridge:mac-aging-config {
              description
                "MAC aging features:
     - aging time
     - aging type";
            }
    
            uses cbridge:mac-event-action-config {
              if-feature configurable-bd-mac-event-action;
              description
                "Enable or disable mac-flush upon port-down.";
            }
    
            uses cbridge:mac-secure-config {
              if-feature configurable-bd-mac-secure;
              description
                "MAC secure features for bridge domain members.";
              augment secure {
                description
                  "This augment provides configuration leaf to enable
    disable mac secure feature.";
                leaf enabled {
                  type boolean;
                  description
                    "Enable or disable mac secure feature";
                }
              }
            }
          }  // container mac
    
          uses cbridge:snooping-profile-config {
            if-feature configurable-bd-snooping-profiles;
            description
              "Snooping profile configuration for bridge-domain
    members.";
          }
    
          uses cbridge:mac-flooding-config {
            if-feature configurable-bd-flooding;
            description
              "MAC flooding features:
     - enable / disable flooding
     - enable / disable unknown unicast flooding";
          }
    
          uses cstormctrl:storm-control-config {
            if-feature configurable-bd-storm-control;
            description
              "Storm control feature for bridge domain members.";
          }
        }  // grouping bd-member-features
    
        grouping bd-pbb-features {
          description
            "This grouping defined Provider Backbone Bridge (PBB) features
    for bridge-domain instance.";
          container pbb {
            description
              "Provider Backbone Bridge (PBB) features.";
            choice pbb-role-type {
              description
                "PBB role for the bridge-domain";
              container edge {
                description
                  "PBB egde configurations for bridge-domain.";
                leaf i-sid {
                  type uint32 {
                    range "256..16777214";
                  }
                  mandatory true;
                  description
                    "PBB Instance Identifier (I-SID) value.";
                }
    
                leaf core-bridge {
                  type string;
                  mandatory true;
                  description
                    "Core bridge-domain name for the current edge
    bridge-domain.";
                }
    
                list static-mac-addresses {
                  key "c-mac";
                  description
                    "Static MAC address entry.";
                  leaf c-mac {
                    type yang:mac-address;
                    description
                      "Static C-MAC address.";
                  }
    
                  leaf b-mac {
                    type yang:mac-address;
                    mandatory true;
                    description
                      "Static B-MAC address.";
                  }
                }  // list static-mac-addresses
    
                leaf unknown-ucast-bmac {
                  type yang:mac-address;
                  description
                    "Unknown unicast B-MAC address.";
                }
              }  // container edge
              container core {
                description
                  "PBB core configurations for bridge-domain.";
              }  // container core
            }  // choice pbb-role-type
          }  // container pbb
        }  // grouping bd-pbb-features
    
        grouping bd-capabilities {
          description
            "This grouping defines capability definitions for
    bridge-domains at system or module scope.";
          leaf max-bd {
            type uint32;
            description
              "Maximum number of bridge-domains suported.";
          }
    
          leaf max-ac-per-bd {
            type uint32;
            description
              "Maximum number of attachment circuits per
    bridge-domains.";
          }
    
          leaf max-pw-per-bd {
            type uint32;
            description
              "Maximum number of access pseudowires per
    bridge-domains";
          }
    
          leaf max-vfi-per-bd {
            type uint32;
            description
              "Maximum number of virtual forwarding instances per
    bridge-domains.";
          }
    
          leaf max-sh-group-per-bd {
            type uint32;
            description
              "Maximum number of Split Horizon groups per
    bridge-domains.";
          }
        }  // grouping bd-capabilities
    
        container bridge-domain-config {
          description
            "This container defines overall configuration data for bridge
    -domains on a network device.";
          container global {
            description
              "Global configurations for bridge-domains.";
            leaf bd-state-notification-enabled {
              type boolean;
              description
                "If this leaf is set to true, then it enables the emission
    of 'bd-state-notification'; otherwise these notifications
    are not emitted.";
            }
    
            leaf bd-state-notification-rate {
              type uint32;
              description
                "This leaf defines the maximum number of 'bd-state-
    notification' that can be emitted from the device per
    second.";
            }
    
            container pbb {
              description
                "Provider Backbone Bridging (PBB) related global
    configurations.";
              leaf backbone-src-mac {
                type yang:mac-address;
                description
                  "Backbone source mac address configuration for Provider
    Backbone Bridging (PBB)";
              }
            }  // container pbb
          }  // container global
    
          container bridge-groups {
            if-feature configurable-bd-groups;
            description
              "Collection of bridge-groups.
    
    A Bridge-group is logical grouping construct for bridge
    domains. It defines grouping of bridge-domains under a
    named bridge-group. For example all bridge-domains
    belonging to a single customer can be grouped under a bridge
    -group";
            list bridge-group {
              key "name";
              description
                "Bridge-group configuration.";
              leaf name {
                type string {
                  length "1..32";
                }
                description "Bridge-group name";
              }
            }  // list bridge-group
          }  // container bridge-groups
    
          container bridge-domains {
            description
              "Collection of bridge domains.";
            list bridge-domain {
              key "id";
              description
                "Definition of a bridge-domain.";
              leaf id {
                type string;
                description
                  "Bridge domain name or number";
                reference
                  "CLI: bridge-domain <id>";
    
              }
    
              leaf bridge-group {
                if-feature configurable-bd-groups;
                type leafref {
                  path "/bd:bridge-domain-config/bd:bridge-groups/bd:bridge-group/bd:name";
                }
                mandatory true;
                description
                  "Reference to bridge-group name. If bridge-groups are
    supported, referred bridge-group MUST be created
    first.";
              }
    
              leaf enabled {
                type boolean;
                default "true";
                description
                  "This leaf represents configured admin status of the
    bridge domain";
                reference
                  "CLI: shutdown";
    
              }
    
              leaf bd-status-change-notification {
                type boolean;
                description
                  "Enable/disable bridge-domain status change notification.
    
    If true, any change in bridge-domain operational status
    will be notified to client via 'bd-status-change'
    notification.";
              }
    
              container members {
                description
                  "Collection of bridge-domain members.";
                list ac-member {
                  key "interface";
                  description
                    "List of Attachment circuits for current
    bridge-domain.";
                  leaf interface {
                    type if:interface-ref;
                    description
                      "Reference to an attchment circuit interface
    instance which is configured to be part of this
    bridge-domain.";
                  }
    
                  uses bd-member-features {
                    if-feature configurable-bd-member-features;
                    description
                      "Attachment circuit features for bridge domain.";
                  }
    
                  uses cbridge:dynamic-arp-inspection-config {
                    if-feature configurable-bd-dai;
                    description
                      "Dynamic ARP inspection parameters for bridge domain
    members";
                    augment dynamic-arp-inspection {
                      description
                        "This augment provides configuration leaf to enable
    disable Dynamic ARP inspection.";
                      leaf enable {
                        type boolean;
                        description
                          "Enable or disable Dynamic ARP Inspection.";
                      }
                    }
                  }
    
                  uses cbridge:ip-source-guard-config {
                    if-feature configurable-bd-ipsg;
                    description
                      "IP source guard feature for bridge domain member.";
                    augment ip-source-guard {
                      description
                        "This augment provides configuration leaf to enable
    disable IP source guard.";
                      leaf enable {
                        type boolean;
                        description
                          "Enable or disable IP source guard feature.";
                      }
                    }
                  }
                }  // list ac-member
    
                list vfi-member {
                  key "interface";
                  description
                    "List of Virtual Forrwarding Interfaces for current
    bridge-domain.";
                  leaf interface {
                    type if:interface-ref;
                    must
                      "/if:interfaces/if:interface/if:type = 'ifVfiType'" {
                      description
                        "Refernce to VFI type interface.";
                    }
                    description
                      "Reference to an Virtual Forwarding Interface
    instance which is configured to be part of this
    bridge-domain";
                  }
                }  // list vfi-member
    
                container access-pw-member {
                  description
                    "Collection of access pseudowire members.
    
    A Pseudowires can be a regular interface with ifType
    'ifPwType' or it can represented as a non-interface
    context. This container provides model definition for
    both types of the pseudowires.";
                  list access-pw-if-member {
                    key "interface";
                    description
                      "List of interface based access pseudowires for
    current bridge-domain.";
                    leaf interface {
                      type if:interface-ref;
                      must
                        "/if:interfaces/if:interface/if:type = 'ifPwType'" {
                        description
                          "Refernce to pseudo-wire type interface.";
                      }
                      description
                        "Reference to an access pseudo-wire interface
    instance which is configured to be part of this
    bridge domain";
                    }
                  }  // list access-pw-if-member
    
                  list pw-neighbor-spec {
                    key "neighbor-ip-address vc-id";
                    description
                      "Collection of neighbor specification based
    pseudo-wires.";
                    uses l2vpn-pw:pw-neighbor-config {
                      description
                        "Access pseudowire specification.";
                    }
    
                    uses bd-member-features {
                      if-feature configurable-bd-member-features;
                      description
                        "Bridge domain member features for neighbor spec
    based pseudowires.";
                    }
    
                    container backup {
                      description
                        "Backup pseudo-wire.";
                      uses l2vpn-pw:pw-backup-neighbor-config {
                        description
                          "Backup pseudowire specification.";
                      }
                    }  // container backup
                  }  // list pw-neighbor-spec
                }  // container access-pw-member
              }  // container members
    
              leaf mtu {
                if-feature configurable-bd-mtu;
                type uint16 {
                  range "46..65535";
                }
                description
                  "The MTU size for bridge domain. All bridge domain
    members must have same MTU size to be operational
    in the domain";
                reference
                  "CLI xr: mtu <>";
    
              }
    
              leaf flooding-mode {
                if-feature configurable-bd-flooding-mode;
                type enumeration {
                  enum "convergence-optimized" {
                    value 0;
                    description
                      "Flood mode optimized for convergence.";
                  }
                  enum "resilience-optimized" {
                    value 1;
                    description
                      "Flood mode optimized for resiliency";
                  }
                }
                description
                  "Flood modes for optimization.";
                reference
                  "CLI xr: flood-mode { convergence-optimized |
                  		     resilience-optimized } ";
    
              }
    
              container mac {
                description
                  "MAC features for bridge domain.";
                uses cbridge:mac-learning-config {
                  description
                    "MAC learning configurations for bridge-domain.";
                }
    
                uses cbridge:mac-aging-config {
                  description
                    "MAC aging configurations for bridge-domain.";
                }
    
                uses cbridge:mac-event-action-config {
                  if-feature configurable-bd-mac-event-action;
                  description
                    "Event based action configuration for bridge domain.";
                }
    
                uses cbridge:mac-flooding-config {
                  if-feature configurable-bd-flooding;
                  description
                    "MAC flooding features:
     - enable / disable flooding
     - enable / disable unknown unicast flooding";
                }
    
                uses cbridge:mac-secure-config {
                  if-feature configurable-bd-mac-secure;
                  description
                    "MAC secure features:
     - enable / disable mac secure
     - mac secure action
     - mac secure logging";
                  refine secure {
                    presence
                      "Existence of this container represents that MAC
    secure is enabled on the bridge domain.";
                  }
                }
    
                uses cbridge:static-mac-list-config {
                  if-feature configurable-bd-static-mac;
                  description
                    "Static mac address list";
                  reference
                    "CLI xr: mac static-address H.H.H drop";
    
                }
              }  // container mac
    
              uses cbridge:dynamic-arp-inspection-config {
                if-feature configurable-bd-dai;
                description
                  "Dynamic ARP inspection parameters.";
                refine dynamic-arp-inspection {
                  presence
                    "Existence of this container represents that Dynamic
    ARP inspection is enabled on the bridge domain";
                }
              }
    
              uses cbridge:ip-source-guard-config {
                if-feature configurable-bd-ipsg;
                description
                  "IP source guard feature for bridge domain.";
                refine ip-source-guard {
                  presence
                    "Existence of this container represents that IP source
    guard is enabled on the bridge domain";
                }
              }
    
              uses cstormctrl:storm-control-config {
                if-feature configurable-bd-storm-control;
                description
                  "Storm control feature for bridge domain";
              }
    
              uses cbridge:snooping-profile-config {
                if-feature configurable-bd-snooping-profiles;
                description
                  "Snooping profile configuration for bridge-domain
    members.";
                refine igmp-snooping/profile-name {
                  mandatory false;
                }
    
                augment igmp-snooping {
                  description
                    "Add configuration leaf to enable disable igmp
    snooping";
                  leaf disabled {
                    type empty;
                    description
                      "Disable IGMP snooping.";
                  }
                }
              }
            }  // list bridge-domain
          }  // container bridge-domains
        }  // container bridge-domain-config
    
        container bridge-domain-state {
          config false;
          description
            "This container defines bridge-domain operational data.";
          container system-capabilities {
            description
              "This container defines system capabilities for bridge
    domain.";
            uses bd-capabilities {
              description
                "Bridge domain system capabilities";
            }
    
            leaf max-interflex-if-per-bd {
              type uint32;
              description
                "Maximum number of Interflex interfaces per
    bridge-domains.";
            }
          }  // container system-capabilities
    
          container module-capabilities {
            description
              "This container defines module capabilities for bridge
    domain.";
            list modules {
              key "name";
              description
                "Collection of capabillity statements for hardware
    module in the system.";
              leaf name {
                type string;
                description
                  "Name of the hardware module such as linecards, for
    which capability is described.";
              }
    
              leaf max-mac-per-bd {
                type uint32;
                description
                  "Maximum number of MAC addresses per bridge-domains
    supported by this module.";
              }
    
              leaf max-pdd-edge-bd {
                type uint32;
                description
                  "Maximum number of PBB Edge type bridge-domains
    supported by this module.";
              }
    
              uses bd-capabilities {
                description
                  "Bridge domain capabilities supported by this module.";
              }
            }  // list modules
          }  // container module-capabilities
    
          container bridge-domains {
            description
              "Bridge domain state data.";
            list bridge-domain {
              key "id";
              description
                "Collection of bridge-domain state data.";
              leaf id {
                type string;
                description
                  "Bridge domain name or number";
              }
    
              leaf bd-state {
                type bridge-domain-state-type;
                mandatory true;
                description
                  "Bridge domain operational/admin status.";
              }
    
              leaf create-time {
                type yang:timestamp;
                description
                  "System time when this bridge-domain was created";
              }
    
              leaf last-status-change {
                type yang:timeticks;
                description
                  "Number of consecutive ticks since bridge-domain status
    was changed last time.";
              }
    
              leaf mac-limit-reached {
                type boolean;
                description
                  "This leaf indicates if MAC address limit has been
    reached.";
              }
    
              leaf p2mp-pw-disabled {
                type boolean;
                description
                  "Point to Mutipoint pseudowire state";
              }
    
              container members {
                description
                  "Collection of bridge-domain members.";
                list ac-member {
                  key "interface";
                  description
                    "List of attachment circuits for this bridge domains";
                  leaf interface {
                    type if:interface-state-ref;
                    description
                      "Reference to an instance of Bridge domain attachment
    circuit (AC) interface name.";
                  }
    
                  leaf static-mac-count {
                    type uint32;
                    description
                      "Number of static MAC address configured on this
    bridge-domain member interface.";
                  }
    
                  container dai-stats {
                    description
                      "Dynamic ARP Inspection (DAI) statistics.";
                    leaf packet-drops {
                      type yang:counter64;
                      description
                        "Number of packets dropped by interface due to DAI
    actions.";
                    }
    
                    leaf byte-drops {
                      type yang:counter64;
                      description
                        "Number of bytes dropped by interface due to DAI
    actions.";
                    }
                  }  // container dai-stats
    
                  container ipsg-stats {
                    description "IPSG stats.";
                    leaf packet-drops {
                      type yang:counter64;
                      description
                        "Number of packets dropped by interface due to IPSG
    actions.";
                    }
    
                    leaf byte-drops {
                      type yang:counter64;
                      description
                        "Number of bytes dropped by interface due to IPSG
    actions.";
                    }
                  }  // container ipsg-stats
    
                  uses cstormctrl:storm-control-stats;
                }  // list ac-member
    
                list vfi-member {
                  key "interface";
                  description
                    "Reference to an instance of Bridge domain Virtual
    Forwarding Instance (VFI) name.";
                  leaf interface {
                    type if:interface-state-ref;
                    must
                      "/if:interfaces-state/if:interface/if:type = 'ifVfiType'" {
                      description
                        "Filter only VFI interfaces";
                    }
                    description
                      "Bridge domain memeber interface name.";
                  }
    
                  uses cbridge:mac-flooding-state;
                }  // list vfi-member
    
                list access-pw-member {
                  key "vc-peer-address vc-id";
                  description
                    "Collection of access pseudowire members of the bridge
    domain.";
                  uses l2vpn-pw:pw-oper-ref-keys {
                    description
                      "Pseudowire oper keys. These leaves can uniquely
    identify a pseudowire instance in the pseudowire
    oper data tree.";
                  }
    
                  uses cbridge:mac-flooding-state {
                    description
                      "MAC flooding state data";
                  }
                }  // list access-pw-member
              }  // container members
            }  // list bridge-domain
          }  // container bridge-domains
    
          list mac-table {
            key "bd-id mac-address";
            description
              "This list contains mac-address entries for bridge
    domains.";
            leaf bd-id {
              type string;
              description
                "Bridge-domain name where MAC entry is learnt.";
            }
    
            leaf mac-address {
              type yang:mac-address;
              description "MAC address.";
            }
    
            leaf mac-type {
              type enumeration {
                enum "static" {
                  value 0;
                  description
                    "MAC address is configured statically.";
                }
                enum "dynamic" {
                  value 1;
                  description
                    "MAC address is learnt dynamicaly.";
                }
              }
              description "MAC address type.";
            }
    
            leaf interface {
              type if:interface-ref;
              mandatory true;
              description
                "Reference to an interface instance where MAC
    address is learnt.";
            }
    
            leaf secure-mac {
              type boolean;
              description "Secure MAC address.";
            }
    
            leaf ntfy-mac {
              type boolean;
              description "TBD ?NTFY?";
            }
    
            leaf age {
              type yang:timeticks;
              description
                "Time since mac address was learnt on the interface.";
            }
    
            leaf location {
              type string;
              description
                "Linecard / Module where mac address was learnt.";
            }
          }  // list mac-table
        }  // container bridge-domain-state
    
        notification bd-state-notification {
          description
            "This notification is generated when bridge domain state is
    changed.
    
    This notification can be enabled/disabled via configuration
    leaf 'bd-state-notification-enabled'";
          leaf id {
            type bridge-domain-oper-ref;
            description
              "Reference to bridge-domain instance.";
          }
    
          leaf bd-state {
            type bridge-domain-state-type;
            description
              "New state of the bridge-domain.";
          }
    
          leaf time {
            type yang:timestamp;
            description
              "Timestamp of the state change event.";
          }
        }  // notification bd-state-notification
    
        rpc clear-bridge-domain {
          if-feature clear-bridge-domain;
          description
            "Clear mac-address table for bridge-domain and allows a bridge
    to forward again after it was put in shutdown state as a
    result of exceeding the configured MAC limit.";
          reference
            "XR: clear l2vpn bridge-domain <>";
    
          input {
            choice bridge-domains {
              mandatory true;
              description
                "Select bridge-domains to clear.";
              leaf all {
                type empty;
                description
                  "Clear all bridge-domains configured on the device.";
              }
              leaf bd-id {
                type string;
                description
                  "Clear a single bridge-domain";
              }
              leaf bg-id {
                if-feature configurable-bd-groups;
                type string;
                description
                  "Clears all bridge-domains under this bridge-group.";
              }
            }  // choice bridge-domains
          }
    
          output {
            leaf errstr {
              type string;
              description
                "Error message from the device if RPC failed.";
            }
          }
        }  // rpc clear-bridge-domain
    
        rpc clear-mac-address {
          description
            "This RPC allows to clear dynamically learnt mac-address
    entries from the mac-address table.";
          reference
            "XR:  clear l2vpn forwarding mac-address-table <>
            IOS: clear bridge-domain <> mac table <>";
    
          input {
            container bridge-domain {
              description
                "Clear mac-address entries for given bridge-domain(s).";
              leaf bd-id {
                type string;
                mandatory true;
                description
                  "Bridge-domain identifier, clear all mac-address entries
    dynamically learnt on this bridge-domain";
              }
    
              leaf bg-id {
                if-feature configurable-bd-groups;
                type string;
                mandatory true;
                description
                  "Bridge-group identifier, clear all mac-address entries
    from all bridge-domains under this bridge-group.";
              }
            }  // container bridge-domain
    
            leaf interface {
              type if:interface-ref;
              description
                "Reference to an interface. Clear mac-addesses learnt by
    by this interface.";
            }
    
            leaf mac-address {
              type yang:mac-address;
              description
                "Clear a specific mac-address entry from the mac-table.";
            }
          }
    
          output {
            leaf errstr {
              type string;
              description
                "Error message from the device if RPC failed.";
            }
          }
        }  // rpc clear-mac-address
    
        rpc create-parameterized-bridge-domains {
          if-feature parameterized-bridge-domains;
          description
            "Create bridge domains automatically from user defined
    parameters.";
          input {
            leaf parameter {
              type enumeration {
                enum "vlan" {
                  value 0;
                  description
                    "Create bridge-domains from vlan encapsulations of the
    member interfaces.";
                }
              }
              description
                "Parameter for automatic bridge domain creation.";
            }
    
            list member {
              key "interface";
              description
                "Bridge-domain member interface.";
              leaf interface {
                type if:interface-ref;
                description
                  "Reference to an interface instance which is
    configured to be part of this bridge domain";
              }
            }  // list member
          }
    
          output {
            leaf errstr {
              type string;
              description
                "Error message from the device if RPC failed.";
            }
          }
        }  // rpc create-parameterized-bridge-domains
      }  // module cisco-bridge-domain
    

© 2023 YumaWorks, Inc. All rights reserved.