huawei-mac-fwd

Forwarding MAC service.

  • Version: 2020-01-22

    huawei-mac-fwd@2020-01-22


    
      module huawei-mac-fwd {
    
        yang-version 1;
    
        namespace
          "urn:huawei:yang:huawei-mac-fwd";
    
        prefix mac-fwd;
    
        import huawei-extension {
          prefix ext;
        }
        import huawei-devm {
          prefix devm;
        }
        import huawei-vlan {
          prefix vlan;
        }
        import huawei-l2vpn {
          prefix l2vpn;
        }
        import huawei-bd {
          prefix bd;
        }
        import huawei-mac {
          prefix mac;
        }
        import huawei-ifm {
          prefix ifm;
        }
        import huawei-mac-flapping {
          prefix mac-flapping;
        }
        import huawei-pub-type {
          prefix pub-type;
        }
        import ietf-inet-types {
          prefix inet;
        }
    
        organization
          "Huawei Technologies Co., Ltd.";
    
        contact
          "Huawei Industrial Base
    Bantian, Longgang
    Shenzhen 518129
    People's Republic of China
    Website: http://www.huawei.com
    Email: support@huawei.com";
    
        description "Forwarding MAC service.";
    
        revision "2020-01-22" {
          description "Modify description.";
          reference
            "Huawei private.";
    
        }
    
        revision "2019-04-15" {
          description "Initial revision.";
          reference
            "Huawei private.";
    
        }
    
        ext:task-name "mac";
    
        typedef alarm-state {
          type enumeration {
            enum "disable" {
              value 0;
              description
                "Disable the MAC flapping alarm function.";
            }
            enum "enable" {
              value 1;
              description
                "Enable the MAC flapping alarm function.";
            }
          }
          description
            "MAC flapping alarm enable.";
        }
    
        rpc reset-bd-machop {
          ext:node-ref "/bd:bd/bd:instances/bd:instance/mac-fwd:mac-hops/mac-fwd:mac-hop";
          description
            "Reset MAC hop info by BD ID.";
          input {
            leaf bd-id {
              type uint32 {
                range "1..16777215";
              }
              mandatory true;
              description "BD ID.";
            }
          }
        }  // rpc reset-bd-machop
    
        rpc reset-bd-machop-all {
          ext:node-ref "/bd:bd/bd:instances/bd:instance/mac-fwd:mac-hops/mac-fwd:mac-hop";
          description "Reset MAC hop info.";
        }  // rpc reset-bd-machop-all
    
        rpc reset-vlan-machop {
          ext:node-ref "/vlan:vlan/vlan:vlans/vlan:vlan/mac-fwd:mac-hops/mac-fwd:mac-hop";
          description
            "Reset MAC hop info by VLAN ID.";
          input {
            leaf vlan-id {
              type uint32 {
                range "1..4094";
              }
              mandatory true;
              description "VLAN ID.";
            }
          }
        }  // rpc reset-vlan-machop
    
        rpc reset-vlan-machop-all {
          ext:node-ref "/vlan:vlan/vlan:vlans/vlan:vlan/mac-fwd:mac-hops/mac-fwd:mac-hop";
          description "Reset MAC hop info.";
        }  // rpc reset-vlan-machop-all
    
        rpc reset-vsi-machop {
          ext:node-ref "/l2vpn:l2vpn/l2vpn:instances/l2vpn:instance/l2vpn:vpls/mac-fwd:mac-hops/mac-fwd:mac-hop";
          description
            "Reset MAC hop info by VSI name.";
          input {
            leaf name {
              type string {
                length "1..31";
              }
              mandatory true;
              description "VSI name.";
            }
          }
        }  // rpc reset-vsi-machop
    
        rpc reset-vsi-machop-all {
          ext:node-ref "/l2vpn:l2vpn/l2vpn:instances/l2vpn:instance/l2vpn:vpls/mac-fwd:mac-hops/mac-fwd:mac-hop";
          description "Reset MAC hop info.";
        }  // rpc reset-vsi-machop-all
    
        augment /devm:devm/devm:lpu-boards/devm:lpu-board {
          description "Slot MAC synchronize.";
          container mac-sync {
            description
              "Configure MAC synchronize.";
            leaf enable {
              type boolean;
              default "false";
              description
                "Enable/disable MAC synchronize.";
            }
          }  // container mac-sync
        }
    
        augment /bd:bd/bd:instances/bd:instance {
          description "BD MAC hop info.";
          container mac-hops {
            config false;
            description
              "List of the bridge domain MAC hop info.";
            list mac-hop {
              key "mac-address interface-name peer-ip";
              config false;
              description
                "Operational data of the bridge domain MAC hop info.";
              leaf mac-address {
                type pub-type:mac-address {
                  length "0..255";
                }
                config false;
                description "MAC address.";
              }
    
              leaf interface-name {
                type leafref {
                  path
                    "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                }
                config false;
                description "Interface name.";
              }
    
              leaf peer-ip {
                type inet:ipv4-address-no-zone;
                config false;
                description
                  "Remote peer IP information.";
              }
    
              leaf detect-time {
                type string {
                  length "1..20";
                }
                config false;
                description "Detect time.";
              }
            }  // list mac-hop
          }  // container mac-hops
        }
    
        augment /vlan:vlan/vlan:vlans/vlan:vlan {
          description "VLAN MAC hop info.";
          container mac-hops {
            config false;
            description
              "List of the VLAN MAC hop info.";
            list mac-hop {
              key "mac-address interface-name";
              config false;
              description
                "Operational data of VLAN MAC hop info.";
              leaf mac-address {
                type pub-type:mac-address {
                  length "0..255";
                }
                config false;
                description "MAC address.";
              }
    
              leaf interface-name {
                type leafref {
                  path
                    "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                }
                config false;
                description "Interface name.";
              }
    
              leaf detect-time {
                type string {
                  length "1..20";
                }
                config false;
                description "Detect time.";
              }
            }  // list mac-hop
          }  // container mac-hops
    
          container loop-detect-suppression {
            config false;
            description
              "Statistics of the VLAN suppression.";
            leaf interface-name {
              type leafref {
                path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
              }
              config false;
              description "Interface name.";
            }
    
            leaf cir {
              type uint32;
              config false;
              description
                "Committed information rate.";
            }
    
            leaf time {
              type string {
                length "1..20";
              }
              config false;
              description
                "Suppression generation time.";
            }
    
            leaf state {
              type string {
                length "1..15";
              }
              config false;
              description "Suppression state.";
            }
    
            leaf slot {
              type string {
                length "1..20";
              }
              config false;
              description "Slot ID.";
            }
          }  // container loop-detect-suppression
        }
    
        augment /l2vpn:l2vpn/l2vpn:instances/l2vpn:instance/l2vpn:vpls {
          description "VPLS MAC hop info.";
          container mac-hops {
            config false;
            description
              "List of the VPLS MAC hop info.";
            list mac-hop {
              key "mac-address interface-name peer-ip";
              config false;
              description
                "Operational data of VPLS MAC hop info.";
              leaf mac-address {
                type pub-type:mac-address {
                  length "0..255";
                }
                config false;
                description "MAC address.";
              }
    
              leaf interface-name {
                type leafref {
                  path
                    "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                }
                config false;
                description "Interface name.";
              }
    
              leaf peer-ip {
                type inet:ipv4-address-no-zone;
                config false;
                description
                  "Remote peer IP information.";
              }
    
              leaf pw-id {
                type uint32;
                config false;
                description
                  "Remote PW ID information.";
              }
    
              leaf detect-time {
                type string {
                  length "1..20";
                }
                config false;
                description "Detect time.";
              }
            }  // list mac-hop
          }  // container mac-hops
    
          container loop-detect-suppression {
            config false;
            description
              "Statistics of the VSI suppression.";
            leaf interface-name {
              type leafref {
                path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
              }
              config false;
              description "Interface name.";
            }
    
            leaf peer-ip {
              type string {
                length "1..20";
              }
              config false;
              description
                "Remote peer IP information.";
            }
    
            leaf vc-lable {
              type uint32;
              config false;
              description
                "Remote PW ID information.";
            }
    
            leaf cir {
              type uint32;
              config false;
              description
                "Committed information rate.";
            }
    
            leaf time {
              type string {
                length "1..20";
              }
              config false;
              description
                "Suppression generation time.";
            }
    
            leaf state {
              type string {
                length "1..15";
              }
              config false;
              description "Suppression state.";
            }
    
            leaf slot {
              type string {
                length "1..20";
              }
              config false;
              description "Slot ID.";
            }
          }  // container loop-detect-suppression
        }
    
        augment /mac:mac/mac:global-attribute {
          description
            "Forwarding MAC global attribute.";
          container mac-fwd {
            description
              "Configure forwarding MAC global attribute.";
            leaf mac-synchronize {
              type boolean;
              default "false";
              description
                "Enable/disable global MAC address synchronization.";
            }
    
            leaf learn-first-packet {
              type boolean;
              default "false";
              description
                "Enable/disable MAC limit since-first-packet.";
            }
          }  // container mac-fwd
        }
    
        augment /mac-flapping:mac-flapping/mac-flapping:global-attribute {
          description
            "MAC flapping alarm parameter.";
          container alarm-para {
            description
              "Configure MAC flapping alarm parameter.";
            leaf loop-times {
              type uint32 {
                range "3..1000";
              }
              default "3";
              description
                "Number of MAC address flappings.";
            }
    
            leaf detect-cycle {
              type uint16 {
                range "10..30";
              }
              units "s";
              default "10";
              description "Detection cycle.";
            }
    
            leaf cycles {
              type uint16 {
                range "3..15";
              }
              default "3";
              description "Number of cycles.";
            }
    
            leaf alarm-state {
              type alarm-state;
              default "enable";
              description
                "MAC flapping alarm status.";
            }
          }  // container alarm-para
        }
      }  // module huawei-mac-fwd
    

© 2023 YumaWorks, Inc. All rights reserved.