huawei-macm

MAC routing management module that stores and selects the optimal MAC.

  • Version: 2020-03-30

    huawei-macm@2020-03-30


    
      module huawei-macm {
    
        yang-version 1;
    
        namespace "urn:huawei:yang:huawei-macm";
    
        prefix macm;
    
        import huawei-evpn {
          prefix evpn;
        }
        import huawei-pub-type {
          prefix pub-type;
        }
        import ietf-inet-types {
          prefix inet;
        }
        import huawei-extension {
          prefix ext;
        }
    
        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
          "MAC routing management module that stores and selects the optimal MAC.";
    
        revision "2020-03-30" {
          description "Add container macm.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-01-10" {
          description "Init revision.";
          reference
            "Huawei private.";
    
        }
    
        ext:task-name "vstm";
    
        typedef limit-action {
          type enumeration {
            enum "mac-unchanged" {
              value 0;
              description
                "When the number of EVPN MAC routes reach the upper limit, the MAC routes remain unchanged and the system generates an alarm.";
            }
            enum "simply-alert" {
              value 1;
              description
                "When the number of EVPN MAC routes reach the upper limit, the subsequent routes can be added to replace the existing routes and the system only generates an alarm.";
            }
            enum "relearn-unchanged" {
              value 2;
              description
                "The existing EVPN MAC routes must to be deleted, and relearn to the upper limit for once. Then the MAC routes remain unchanged and the system generates an alarm.";
            }
          }
          description
            "The action of MAC routing limit.";
        }
    
        typedef route-flag {
          type enumeration {
            enum "download" {
              value 1;
              description "Download to FIB.";
            }
            enum "no-download" {
              value 2;
              description "Not download to FIB.";
            }
          }
          description "MAC route flag.";
        }
    
        typedef route-status {
          type enumeration {
            enum "active" {
              value 1;
              description "Active route.";
            }
            enum "inactive" {
              value 2;
              description "Inactive route.";
            }
            enum "invalid" {
              value 3;
              description "Invalid route.";
            }
          }
          description "MAC route status.";
        }
    
        typedef route-source {
          type enumeration {
            enum "local" {
              value 1;
              description "From Local.";
            }
            enum "BGP" {
              value 2;
              description "From BGP.";
            }
            enum "total" {
              value 3;
              description
                "Learn from local and via BGP.";
            }
          }
          description "MAC route source.";
        }
    
        typedef route-type {
          type enumeration {
            enum "dynamic" {
              value 1;
              description "Dynamic.";
            }
            enum "static" {
              value 2;
              description "Static.";
            }
            enum "dynamic-black-hole" {
              value 3;
              description "Dynamic black-hole.";
            }
            enum "dynamic-leaf" {
              value 4;
              description "Dynamic E-tree leaf.";
            }
            enum "static-leaf" {
              value 5;
              description "Static E-tree leaf.";
            }
          }
          description "MAC route type.";
        }
    
        container macm {
          config false;
          description
            "MAC route management that stores and selects the optimal MAC.";
          container evpn-global {
            description
              "Statistics of global attributes.";
            container statistics {
              description
                "List of EVPN instance MAC route statistics.";
              list statistic {
                key "protocol";
                description
                  "Statistics of MAC Route collection.";
                leaf protocol {
                  type route-source;
                  description
                    "MAC route source.";
                }
    
                leaf total {
                  type uint32;
                  description
                    "Number of MAC routes in total.";
                }
    
                leaf active {
                  type uint32;
                  description
                    "Number of active MAC routes.";
                }
    
                leaf added {
                  type uint32;
                  description
                    "Number of active and inactive MAC routes added to the MAC table.";
                }
    
                leaf deleted {
                  type uint32;
                  description
                    "Number of MAC routes deleted from the MAC table.";
                }
    
                leaf freed {
                  type uint32;
                  description
                    "Number of MAC routes that are permanently deleted from the MAC table.";
                }
              }  // list statistic
            }  // container statistics
          }  // container evpn-global
    
          container evpn-instances {
            description
              "List of attributes in EVPN instances.";
            list evpn-instance {
              key "name";
              description
                "Operational data of attributes in an EVPN instance.";
              leaf name {
                type leafref {
                  path "/evpn:evpn/evpn:instances/evpn:instance/evpn:name";
                }
                description
                  "The name of EVPN instance.";
              }
    
              container statistics {
                description
                  "List of MAC route statistics in an EVPN instance.";
                list statistic {
                  key "protocol";
                  description
                    "Statistics of MAC routes.";
                  leaf protocol {
                    type route-source;
                    description
                      "MAC route source.";
                  }
    
                  leaf total {
                    type uint32;
                    description
                      "Number of MAC routes in total.";
                  }
    
                  leaf active {
                    type uint32;
                    description
                      "Number of active MAC routes.";
                  }
    
                  leaf added {
                    type uint32;
                    description
                      "Number of active and inactive MAC routes added to the MAC table.";
                  }
    
                  leaf deleted {
                    type uint32;
                    description
                      "Number of MAC routes deleted from the MAC table.";
                  }
    
                  leaf freed {
                    type uint32;
                    description
                      "Number of MAC routes that are permanently deleted from the MAC table.";
                  }
                }  // list statistic
              }  // container statistics
    
              container routes {
                description
                  "List of EVPN MAC routes.";
                list route {
                  key "mac vlan-tag-id";
                  description
                    "Operational data of EVPN MAC route table.";
                  leaf mac {
                    type pub-type:mac-address {
                      length "0..255";
                    }
                    description "MAC address.";
                  }
    
                  leaf vlan-tag-id {
                    type uint32;
                    description "VLAN tag ID.";
                  }
    
                  leaf protocol {
                    type route-source;
                    description
                      "Mac route source.";
                  }
    
                  leaf domain-id {
                    type uint32;
                    description
                      "Bridge domain ID.";
                  }
    
                  leaf peer {
                    type inet:ip-address-no-zone;
                    description
                      "The address of Remote for Mac route.";
                  }
    
                  leaf interface {
                    type pub-type:if-name;
                    description
                      "Outbound interface to reach the next hop. If the outbound interface is a tunnel interface, the tunnel interface name is displayed.";
                  }
    
                  leaf flag {
                    type route-flag;
                    description
                      "MAC route flag.";
                  }
    
                  leaf label {
                    type uint32;
                    description
                      "Label that is allocated by MPLS and used for traffic forwarding via tunnel.";
                  }
    
                  leaf indirect-id {
                    type pub-type:hex-binary;
                    description
                      "Indirect ID for a MAC route.";
                  }
    
                  leaf status {
                    type route-status;
                    description
                      "MAC route status.";
                  }
    
                  leaf type {
                    type route-type;
                    description
                      "MAC route type.";
                  }
    
                  leaf age {
                    type string {
                      length "0..20";
                    }
                    description
                      "Keep alive time.";
                  }
    
                  leaf tunnel {
                    type string {
                      length "1..21";
                    }
                    description
                      "Tunnel information.";
                  }
    
                  leaf ce-vlan {
                    type uint32;
                    description
                      "Inner VLAN tag.";
                  }
    
                  leaf pe-vlan {
                    type uint32;
                    description
                      "Outer VLAN tag.";
                  }
    
                  leaf vtep-ip {
                    type inet:ip-address-no-zone;
                    description
                      "The address of VTEP.";
                  }
                }  // list route
              }  // container routes
            }  // list evpn-instance
          }  // container evpn-instances
        }  // container macm
      }  // module huawei-macm
    

© 2023 YumaWorks, Inc. All rights reserved.