huawei-ipv6-nd

ND management.

  • Version: 2021-07-16

    huawei-ipv6-nd@2021-07-16


    
      module huawei-ipv6-nd {
    
        yang-version 1;
    
        namespace
          "urn:huawei:yang:huawei-ipv6-nd";
    
        prefix ipv6-nd;
    
        import huawei-ifm {
          prefix ifm;
        }
        import huawei-pub-type {
          prefix pub-type;
        }
        import ietf-inet-types {
          prefix inet;
        }
        import huawei-extension {
          prefix ext;
        }
        import huawei-ip {
          prefix ip;
        }
        import huawei-network-instance {
          prefix ni;
        }
        import huawei-ethernet {
          prefix ethernet;
        }
        import huawei-bd {
          prefix bd;
        }
        import ietf-yang-types {
          prefix yang;
        }
    
        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 "ND management.";
    
        revision "2021-07-16" {
          description
            "Leaf min-interval is added under container if-property;
           leaf proxy-reply is added under container instance;
           leaf mismatch-discard is added under container instance.";
          reference
            "Huawei private.";
    
        }
    
        revision "2021-02-02" {
          description
            "Containers dns-server-addresses and dns-search-suffixs are added.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-10-15" {
          description
            "ND rate limit and drop statistics are added;
           add some leaf nodes for the if-property and the proxys container;
           add some containers for the static-neighbor and ra-property container;
           add strict-prefix-learn container.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-03-26" {
          description
            "Leaf ns-send-rate-limit is added.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-02-29" {
          description
            "Default value of stale-time is deleted.";
          reference
            "Huawei private.";
    
        }
    
        revision "2020-02-26" {
          description "Default value.";
          reference
            "Huawei private.";
    
        }
    
        revision "2019-12-30" {
          description "Init revision.";
          reference
            "Huawei private.";
    
        }
    
        ext:task-name "nd";
    
        typedef nd-flag {
          type enumeration {
            enum "false" {
              value 0;
              description "NO.";
            }
            enum "true" {
              value 1;
              description "YES.";
            }
          }
          description "Description of nd-flag.";
        }
    
        typedef nd-switch-state {
          type enumeration {
            enum "off" {
              value 0;
              description "Off.";
            }
            enum "on" {
              value 1;
              description "On.";
            }
          }
          description "The state of the switch.";
        }
    
        typedef nd-ngb-state {
          type enumeration {
            enum "incomplete" {
              value 0;
              description
                "Address resolution is being performed on the entry.";
            }
            enum "reachable" {
              value 1;
              description
                "The neighbor is known to have been reachable recently.";
            }
            enum "stale" {
              value 2;
              description
                "The neighbor is no longer known to be reachable, but until traffic is sent to the neighbor no attempt should be made to verify its reachability.";
            }
            enum "delay" {
              value 3;
              description
                "The neighbor is no longer known to be reachable, and traffic has recently been sent to the neighbor. Rather than probe the neighbor immediately, however,
                delay sending probes for a short while in order to give upper-layer protocols a chance to provide reachability confirmation.";
            }
            enum "probe" {
              value 4;
              description
                "The neighbor is no longer known to be reachable, and unicast neighbor solicitation probes are being sent to verify reachability.";
            }
          }
          description
            "The neighbor unreachability detection state.";
          reference
            "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) Section 7.3.2";
    
        }
    
        typedef nd-route-preference {
          type enumeration {
            enum "medium" {
              value 0;
              description "Preference medium.";
            }
            enum "high" {
              value 1;
              description "Preference high.";
            }
            enum "low" {
              value 3;
              description "Preference low.";
            }
          }
          description
            "The RA router preference level.";
        }
    
        typedef nd-nb-type {
          type enumeration {
            enum "remote" {
              value 0;
              description "Remote pushed.";
            }
            enum "static" {
              value 1;
              description
                "Statically configured.";
            }
            enum "dynamic" {
              value 2;
              description
                "Dynamically resolved.";
            }
          }
          description
            "The origin of neighbor entry.";
        }
    
        typedef nd-pkt-type {
          type enumeration {
            enum "RS" {
              value 0;
              description
                "Router solicitation packet.";
            }
            enum "RA" {
              value 1;
              description
                "Router advertisement packet.";
            }
            enum "NS" {
              value 2;
              description
                "Neighbor solicitation packet.";
            }
            enum "NA" {
              value 3;
              description
                "Neighbor advertisement packet.";
            }
          }
          description
            "The ND packet type value.";
        }
    
        typedef nd-pkt-evt-type {
          type enumeration {
            enum "RS" {
              value 0;
              description
                "Router solicitation packet.";
            }
            enum "RA" {
              value 1;
              description
                "Router advertisement packet.";
            }
            enum "NS" {
              value 2;
              description
                "Neighbor solicitation packet.";
            }
            enum "NA" {
              value 3;
              description
                "Neighbor advertisement packet.";
            }
            enum "NDMISS" {
              value 4;
              description "ND miss.";
            }
          }
          description
            "The ND packet type or event value.";
        }
    
        typedef nd-tgt-pkt-type {
          type enumeration {
            enum "NS" {
              value 2;
              description
                "Neighbor solicitation packet.";
            }
            enum "NA" {
              value 3;
              description
                "Neighbor advertisement packet.";
            }
          }
          description
            "The type value of ND packet that supports the target address.";
        }
    
        container ipv6-nd {
          description "ND management.";
          container global {
            description
              "Configure global configuration of ND.";
            leaf ns-send-rate-limit {
              type uint16 {
                range "1..1000";
              }
              units "pps";
              default "550";
              description
                "Rate limit of sending NS packet.";
            }
    
            leaf na-send-rate-limit {
              type uint16 {
                range "1..10240";
              }
              units "pps";
              default "5000";
              description
                "Rate limit of sending NA packet.";
            }
    
            leaf rs-send-rate-limit {
              type uint16 {
                range "1..1000";
              }
              units "pps";
              default "550";
              description
                "Rate limit of sending RS packet.";
            }
    
            leaf ra-send-rate-limit {
              type uint16 {
                range "1..1000";
              }
              units "pps";
              default "550";
              description
                "Rate limit of sending RA packet.";
            }
    
            leaf dad-detect {
              type nd-flag;
              default "true";
              description
                "The switch of DAD enhanced detection.";
            }
    
            leaf mac-check-flag {
              type nd-flag;
              default "false";
              description
                "Enable IPv6 ND MAC check.";
            }
    
            leaf auto-detect-flag {
              type nd-switch-state;
              default "on";
              description
                "To enable the automatic detection of ND entries.";
            }
    
            leaf prefix-strict-flag {
              type nd-switch-state;
              default "on";
              description
                "ND prefix learning strict.";
            }
    
            leaf pre-detect-flag {
              type nd-switch-state;
              default "off";
              description
                "To determine whether to enable pre-detection.";
            }
    
            leaf hop-limit {
              type uint8 {
                range "1..255";
              }
              default "64";
              description
                "IPv6 packet hoplimit.";
            }
    
            leaf stale-time {
              type uint32 {
                range "60..172800";
              }
              units "s";
              default "1200";
              description
                "Aging time of the global stale state.";
            }
    
            leaf rsa-calculate-rate-limit {
              type uint32 {
                ext:value-meaning {
                  ext:item "0" {
                    ext:meaning "disabling the function of rsa calculation limit";
                  }
                }
                range "0..100";
              }
              default "0";
              description
                "Rate limit for RSA option calculation.";
            }
    
            leaf log-trap-time {
              type uint32 {
                range "60..3600";
              }
              units "s";
              default "600";
              description
                "The interval for sending speed-limit logs and alarms.";
            }
    
            leaf rs-receive-rate-limit {
              ext:dynamic-default;
              type uint16 {
                range "1..5000";
              }
              units "pps";
              description
                "Rate limit of receiving RS packet.";
            }
    
            leaf ra-receive-rate-limit {
              ext:dynamic-default;
              type uint16 {
                range "1..5000";
              }
              units "pps";
              description
                "Rate limit of receiving RA packet.";
            }
    
            leaf ns-receive-rate-limit {
              ext:dynamic-default;
              type uint16 {
                range "1..5000";
              }
              units "pps";
              description
                "Rate limit of receiving NS packet.";
            }
    
            leaf na-receive-rate-limit {
              ext:dynamic-default;
              type uint16 {
                range "1..5000";
              }
              units "pps";
              description
                "Rate limit of receiving NA packet.";
            }
    
            leaf miss-receive-rate-limit {
              ext:dynamic-default;
              type uint16 {
                range "1..5000";
              }
              units "pps";
              description
                "Rate limit of receiving ND miss.";
            }
    
            leaf dad-detect-rate-limit {
              type uint16 {
                range "1..100";
              }
              units "pps";
              default "50";
              description
                "Rate limit of sending DAD detect packet.";
            }
    
            leaf dad-detect-attempts {
              type uint16 {
                range "1..5";
              }
              default "3";
              description
                "Number of attempts to resolve address conflicts.";
            }
          }  // container global
    
          container m-lag-global {
            description
              "Configure M-LAG global configuration of ND.";
            leaf ipv6-neighbor-backup-rate {
              ext:dynamic-default;
              type uint32 {
                range "1..2000";
              }
              description
                "Specifies the number of IPv6 neighbor entries synchronized per second through M-LAG.";
            }
          }  // container m-lag-global
    
          container ipv6-neighbors {
            config false;
            description
              "List of information about neighbor entry query.";
            list ipv6-neighbor {
              key "if-name ipv6-addr";
              description
                "Statistics of query neighbor entries which can be static, or dynamic.";
              leaf if-name {
                type leafref {
                  path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                }
                description "Interface name.";
              }
    
              leaf ipv6-addr {
                type inet:ipv6-address-no-zone;
                description
                  "IPv6 address of a neighbor entry.";
              }
    
              leaf slot-id {
                ext:support-filter "true";
                type string {
                  length "1..24";
                }
                description "Slot ID.";
              }
    
              leaf mac-addr {
                type pub-type:mac-address;
                description "MAC address.";
              }
    
              leaf vpn-name {
                ext:support-filter "true";
                type leafref {
                  path "/ni:network-instance/ni:instances/ni:instance/ni:name";
                }
                description "VPN name.";
              }
    
              leaf vlan-id {
                ext:support-filter "true";
                type uint32 {
                  range "1..4094";
                }
                description "VLAN ID.";
              }
    
              leaf state {
                type nd-ngb-state;
                description
                  "Status of a neighbor entry.";
              }
    
              leaf static-flag {
                type nd-nb-type;
                description
                  "Type of a neighbor entry. The available options are static, dynamic or remote.";
              }
    
              leaf age {
                type uint32 {
                  range "0..4294967293";
                }
                units "min";
                description
                  "Time when a neighbor entry is established.";
              }
    
              leaf is-router {
                type nd-flag;
                description "Is a router.";
              }
    
              leaf cevid {
                type uint32 {
                  range "1..4094";
                }
                description
                  "Inner VLAN tag. If this parameter is not set, the value of the VLAN ID is considered to be 0. If this parameter is set, it indicates that the ND entry is in the associated VLAN.";
              }
    
              leaf strict-flag {
                type boolean;
                description
                  "Enable/disable strict security mode.";
              }
    
              leaf nickname {
                type uint32 {
                  range "1..65535";
                }
                description
                  "Nickname which uniquely identifies an RB on a TRILL network.";
              }
    
              leaf bd-id {
                type uint32 {
                  range "1..16777215";
                }
                description "Bridge-domain ID.";
              }
    
              leaf vni {
                type uint32 {
                  range "1..16777215";
                }
                description "Vxlan VNI.";
              }
    
              leaf source-addr {
                type inet:ip-address-no-zone;
                description
                  "Tunnel SourceIPAddr.";
              }
    
              leaf peer-addr {
                type inet:ip-address-no-zone;
                description "Tunnel PeerIPAddr.";
              }
            }  // list ipv6-neighbor
          }  // container ipv6-neighbors
    
          container nd-pkt-stats {
            config false;
            description
              "Statistics of ND packets.";
            container ns-stats {
              description
                "Statistics of NS packets.";
              container ns-global {
                description
                  "Statistics of global NS packets.";
                leaf send-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of sent NS packets.";
                }
    
                leaf send-dip-ucast {
                  type uint32;
                  units "packet";
                  description
                    "Number of sent NS packets with the destination address as a unicast address.";
                }
    
                leaf send-dip-mcast {
                  type uint32;
                  units "packet";
                  description
                    "Number of sent NS packets with the destination address as a multicast address.";
                }
    
                leaf send-target-linklocal {
                  type uint32;
                  units "packet";
                  description
                    "Number of sent NS packets with the target address as a link-local address.";
                }
    
                leaf send-target-global {
                  type uint32;
                  units "packet";
                  description
                    "Number of sent NS packets with the target address as a global address.";
                }
    
                leaf recv-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of received NS packets.";
                }
    
                leaf recv-valid-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of received valid NS packets.";
                }
    
                leaf recv-dip-ucast {
                  type uint32;
                  units "packet";
                  description
                    "Number of received NS packets with the destination address as a unicast address.";
                }
    
                leaf recv-dip-mcast {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets with the destination address as a multicast address.";
                }
    
                leaf recv-target-linklocal {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets with the target address as a link-local address.";
                }
    
                leaf recv-target-global {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets with the target address as a global address.";
                }
    
                leaf drop-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of discarded NS packets.";
                }
    
                leaf drop-checksum-err {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to checksum errors.";
                }
    
                leaf drop-bad-len {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to bad packet length.";
                }
    
                leaf drop-bad-code {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to bad code.";
                }
    
                leaf drop-bad-hoplimit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to bad hoplimit.";
                }
    
                leaf drop-bad-src-mac {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to bad source MAC addresses.";
                }
    
                leaf drop-bad-dst-mac {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to bad destination MAC addresses.";
                }
    
                leaf drop-bad-tgt-mac {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to bad target MAC addresses.";
                }
    
                leaf drop-bad-src-ip {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to bad source IP addresses.";
                }
    
                leaf drop-bad-dst-ip {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to bad destination IP addresses.";
                }
    
                leaf drop-bad-tgt-ip {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to bad target IP addresses.";
                }
    
                leaf drop-bad-option {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to bad options.";
                }
    
                leaf drop-local-addr {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded because the source address is the local address.";
                }
    
                leaf drop-mac-check {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to source MAC address consistency check errors.";
                }
    
                leaf drop-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to global rate limit.";
                }
    
                leaf drop-src-mac-attack {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to source MAC address attacks.";
                }
    
                leaf drop-src-mac-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to source MAC rate limit.";
                }
    
                leaf drop-src-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to source IP rate limit.";
                }
    
                leaf drop-if-src-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to interface source IP rate limit.";
                }
    
                leaf drop-if-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to interface rate limit.";
                }
    
                leaf drop-lr-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to LR rate limit.";
                }
    
                leaf send-sip-unspecified {
                  type uint32;
                  units "packet";
                  description
                    "Number of sent NS packets with the source address as an unspecified address.";
                }
    
                leaf recv-sip-unspecified {
                  type uint32;
                  units "packet";
                  description
                    "Number of received NS packets with the source address as an unspecified address.";
                }
    
                leaf drop-dst-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to destination IP rate limit.";
                }
    
                leaf drop-tgt-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NS packets discarded due to target IP rate limit.";
                }
              }  // container ns-global
    
              container ns-slots {
                config false;
                description
                  "List of NS packets in these slots.";
                list ns-slot {
                  key "slot-id";
                  description
                    "Statistics of NS packets in the slot.";
                  leaf slot-id {
                    type string {
                      length "1..24";
                    }
                    description "Slot ID.";
                  }
    
                  leaf send-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of sent NS packets.";
                  }
    
                  leaf send-dip-ucast {
                    type uint32;
                    units "packet";
                    description
                      "Number of sent NS packets with the destination address as a unicast address.";
                  }
    
                  leaf send-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of sent NS packets with the destination address as a multicast address.";
                  }
    
                  leaf send-target-linklocal {
                    type uint32;
                    units "packet";
                    description
                      "Number of sent NS packets with the target address as a link-local address.";
                  }
    
                  leaf send-target-global {
                    type uint32;
                    units "packet";
                    description
                      "Number of sent NS packets with the target address as a global address.";
                  }
    
                  leaf recv-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received NS packets.";
                  }
    
                  leaf recv-valid-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received valid NS packets.";
                  }
    
                  leaf recv-dip-ucast {
                    type uint32;
                    units "packet";
                    description
                      "Number of received NS packets with the destination address as a unicast address.";
                  }
    
                  leaf recv-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets with the destination address as a multicast address.";
                  }
    
                  leaf recv-target-linklocal {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets with the destination address as a link-local address.";
                  }
    
                  leaf recv-target-global {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets with the destination address as a global address.";
                  }
    
                  leaf drop-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of discarded NS packets.";
                  }
    
                  leaf drop-checksum-err {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to checksum errors.";
                  }
    
                  leaf drop-bad-len {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad packet length.";
                  }
    
                  leaf drop-bad-code {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad code.";
                  }
    
                  leaf drop-bad-hoplimit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad hoplimit.";
                  }
    
                  leaf drop-bad-src-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad source MAC addresses.";
                  }
    
                  leaf drop-bad-dst-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad destination MAC addresses.";
                  }
    
                  leaf drop-bad-tgt-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad target MAC addresses.";
                  }
    
                  leaf drop-bad-src-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad source IP addresses.";
                  }
    
                  leaf drop-bad-dst-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad destination IP addresses.";
                  }
    
                  leaf drop-bad-tgt-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad target IP addresses.";
                  }
    
                  leaf drop-bad-option {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad options.";
                  }
    
                  leaf drop-local-addr {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded because the source address is the local address.";
                  }
    
                  leaf drop-mac-check {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to source MAC address consistency check errors.";
                  }
    
                  leaf drop-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to global rate limit.";
                  }
    
                  leaf drop-src-mac-attack {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to source MAC address attacks.";
                  }
    
                  leaf drop-src-mac-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to source MAC rate limit.";
                  }
    
                  leaf drop-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to source IP rate limit.";
                  }
    
                  leaf drop-if-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to interface source IP rate limit.";
                  }
    
                  leaf drop-if-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to interface rate limit.";
                  }
    
                  leaf drop-lr-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to LR rate limit.";
                  }
    
                  leaf send-sip-unspecified {
                    type uint32;
                    units "packet";
                    description
                      "Number of sent NS packets with the source address as an unspecified address.";
                  }
    
                  leaf recv-sip-unspecified {
                    type uint32;
                    units "packet";
                    description
                      "Number of received NS packets with the source address as an unspecified address.";
                  }
    
                  leaf drop-dst-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to destination IP rate limit.";
                  }
    
                  leaf drop-tgt-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to target IP rate limit.";
                  }
                }  // list ns-slot
              }  // container ns-slots
    
              container ns-ifs {
                config false;
                description
                  "List of NS packets in these interfaces.";
                list ns-if {
                  key "if-name";
                  description
                    "Statistics of NS packets in the interface.";
                  leaf if-name {
                    type leafref {
                      path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                    }
                    description
                      "Interface name.";
                  }
    
                  leaf send-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of sent NS packets.";
                  }
    
                  leaf send-dip-ucast {
                    type uint32;
                    units "packet";
                    description
                      "Number of sent NS packets with the destination address as a unicast address.";
                  }
    
                  leaf send-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of sent NS packets with the destination address as a multicast address.";
                  }
    
                  leaf send-target-linklocal {
                    type uint32;
                    units "packet";
                    description
                      "Number of sent NS packets with the target address as a link-local address.";
                  }
    
                  leaf send-target-global {
                    type uint32;
                    units "packet";
                    description
                      "Number of sent NS packets with the target address as a global address.";
                  }
    
                  leaf recv-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received NS packets.";
                  }
    
                  leaf recv-valid-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received valid NS packets.";
                  }
    
                  leaf recv-dip-ucast {
                    type uint32;
                    units "packet";
                    description
                      "Number of received NS packets with the destination address as a unicast address.";
                  }
    
                  leaf recv-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets with the destination address as a multicast address.";
                  }
    
                  leaf recv-target-linklocal {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets with the destination address as a link-local address.";
                  }
    
                  leaf recv-target-global {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets with the destination address as a global address.";
                  }
    
                  leaf drop-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of discarded NS packets.";
                  }
    
                  leaf drop-checksum-err {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to checksum errors.";
                  }
    
                  leaf drop-bad-len {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad packet length.";
                  }
    
                  leaf drop-bad-code {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad code.";
                  }
    
                  leaf drop-bad-hoplimit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad hoplimit.";
                  }
    
                  leaf drop-bad-src-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad source MAC addresses.";
                  }
    
                  leaf drop-bad-dst-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad destination MAC addresses.";
                  }
    
                  leaf drop-bad-tgt-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad target MAC addresses.";
                  }
    
                  leaf drop-bad-src-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad source IP addresses.";
                  }
    
                  leaf drop-bad-dst-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad destination IP addresses.";
                  }
    
                  leaf drop-bad-tgt-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad target IP addresses.";
                  }
    
                  leaf drop-bad-option {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to bad options.";
                  }
    
                  leaf drop-local-addr {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded because the source address is the local address.";
                  }
    
                  leaf drop-mac-check {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to source MAC address consistency check errors.";
                  }
    
                  leaf drop-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to global rate limit.";
                  }
    
                  leaf drop-src-mac-attack {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to source MAC address attacks.";
                  }
    
                  leaf drop-src-mac-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to source MAC rate limit.";
                  }
    
                  leaf drop-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to source IP rate limit.";
                  }
    
                  leaf drop-if-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to interface source IP rate limit.";
                  }
    
                  leaf drop-if-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to interface rate limit.";
                  }
    
                  leaf drop-lr-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to LR rate limit.";
                  }
    
                  leaf send-sip-unspecified {
                    type uint32;
                    units "packet";
                    description
                      "Number of sent NS packets with the source address as an unspecified address.";
                  }
    
                  leaf recv-sip-unspecified {
                    type uint32;
                    units "packet";
                    description
                      "Number of received NS packets with the source address as an unspecified address.";
                  }
    
                  leaf drop-dst-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to destination IP rate limit.";
                  }
    
                  leaf drop-tgt-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NS packets discarded due to target IP rate limit.";
                  }
                }  // list ns-if
              }  // container ns-ifs
            }  // container ns-stats
    
            container na-stats {
              description
                "Statistics of NA packets.";
              container na-global {
                description
                  "Statistics of global NA packets.";
                leaf send-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of sent NA packets.";
                }
    
                leaf send-dip-ucast {
                  type uint32;
                  units "packet";
                  description
                    "Number of sent NA packets with the destination address as a unicast address.";
                }
    
                leaf send-dip-mcast {
                  type uint32;
                  units "packet";
                  description
                    "Number of sent NA packets with the destination address as a multicast address.";
                }
    
                leaf send-target-linklocal {
                  type uint32;
                  units "packet";
                  description
                    "Number of sent NA packets with the target address as a link-local address.";
                }
    
                leaf send-target-global {
                  type uint32;
                  units "packet";
                  description
                    "Number of sent NA packets with the target address as a global address.";
                }
    
                leaf recv-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of received NA packets.";
                }
    
                leaf recv-valid-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of received valid NA packets.";
                }
    
                leaf recv-dip-ucast {
                  type uint32;
                  units "packet";
                  description
                    "Number of received NA packets with the destination address as a unicast address.";
                }
    
                leaf recv-dip-mcast {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets with the destination address as a multicast address.";
                }
    
                leaf recv-target-linklocal {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets with the destination address as a link-local address.";
                }
    
                leaf recv-target-global {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets with the destination address as a global address.";
                }
    
                leaf drop-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of discarded NA packets.";
                }
    
                leaf drop-checksum-err {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to checksum errors.";
                }
    
                leaf drop-bad-len {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to bad packet length.";
                }
    
                leaf drop-bad-code {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to bad code.";
                }
    
                leaf drop-bad-hoplimit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to bad hoplimit.";
                }
    
                leaf drop-bad-src-mac {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to bad source MAC addresses.";
                }
    
                leaf drop-bad-dst-mac {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to bad destination MAC addresses.";
                }
    
                leaf drop-bad-tgt-mac {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to bad target MAC addresses.";
                }
    
                leaf drop-bad-src-ip {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to bad source IP addresses.";
                }
    
                leaf drop-bad-dst-ip {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to bad destination IP addresses.";
                }
    
                leaf drop-bad-tgt-ip {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to bad target IP addresses.";
                }
    
                leaf drop-bad-option {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to bad options.";
                }
    
                leaf drop-local-addr {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded because the source address is the local address.";
                }
    
                leaf drop-mac-check {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to source MAC address consistency check errors.";
                }
    
                leaf drop-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to global rate limit.";
                }
    
                leaf drop-src-mac-attack {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to source MAC address attacks.";
                }
    
                leaf drop-src-mac-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to source MAC rate limit.";
                }
    
                leaf drop-src-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to source IP rate limit.";
                }
    
                leaf drop-if-src-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to interface source IP rate limit.";
                }
    
                leaf drop-if-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to interface rate limit.";
                }
    
                leaf drop-lr-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to LR rate limit.";
                }
    
                leaf drop-dst-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to destination IP rate limit.";
                }
    
                leaf drop-tgt-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of NA packets discarded due to target IP rate limit.";
                }
              }  // container na-global
    
              container na-slots {
                description
                  "List of NA packets in these slots.";
                list na-slot {
                  key "slot-id";
                  description
                    "Statistics of NA packets in the slot.";
                  leaf slot-id {
                    type string {
                      length "1..24";
                    }
                    description "Slot ID.";
                  }
    
                  leaf send-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of send NA packets.";
                  }
    
                  leaf send-dip-ucast {
                    type uint32;
                    units "packet";
                    description
                      "Number of send NA packets with the destination address as a unicast address.";
                  }
    
                  leaf send-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of send NA packets with the destination address as a multicast address.";
                  }
    
                  leaf send-target-linklocal {
                    type uint32;
                    units "packet";
                    description
                      "Number of send NA packets with the target address as a link-local address.";
                  }
    
                  leaf send-target-global {
                    type uint32;
                    units "packet";
                    description
                      "Number of send NA packets with the target address as a global address.";
                  }
    
                  leaf recv-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received NA packets.";
                  }
    
                  leaf recv-valid-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received valid NA packets.";
                  }
    
                  leaf recv-dip-ucast {
                    type uint32;
                    units "packet";
                    description
                      "Number of received NA packets with the destination address as a unicast address.";
                  }
    
                  leaf recv-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets with the destination address as a multicast address.";
                  }
    
                  leaf recv-target-linklocal {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets with the destination address as a link-local address.";
                  }
    
                  leaf recv-target-global {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets with the destination address as a global address.";
                  }
    
                  leaf drop-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of discarded NA packets.";
                  }
    
                  leaf drop-checksum-err {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to checksum errors.";
                  }
    
                  leaf drop-bad-len {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad packet length.";
                  }
    
                  leaf drop-bad-code {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad code.";
                  }
    
                  leaf drop-bad-hoplimit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad hoplimit.";
                  }
    
                  leaf drop-bad-src-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad source MAC addresses.";
                  }
    
                  leaf drop-bad-dst-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad destination MAC addresses.";
                  }
    
                  leaf drop-bad-tgt-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad target MAC addresses.";
                  }
    
                  leaf drop-bad-src-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad source IP addresses.";
                  }
    
                  leaf drop-bad-dst-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad destination IP addresses.";
                  }
    
                  leaf drop-bad-tgt-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad target IP addresses.";
                  }
    
                  leaf drop-bad-option {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad options.";
                  }
    
                  leaf drop-local-addr {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded because the source address is the local address.";
                  }
    
                  leaf drop-mac-check {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to source MAC address consistency check errors.";
                  }
    
                  leaf drop-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to global rate limit.";
                  }
    
                  leaf drop-src-mac-attack {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to source MAC address attacks.";
                  }
    
                  leaf drop-src-mac-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to source MAC rate limit.";
                  }
    
                  leaf drop-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to source IP rate limit.";
                  }
    
                  leaf drop-if-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to interface source IP rate limit.";
                  }
    
                  leaf drop-if-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to interface rate limit.";
                  }
    
                  leaf drop-lr-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to LR rate limit.";
                  }
    
                  leaf drop-dst-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to destination IP rate limit.";
                  }
    
                  leaf drop-tgt-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to target IP rate limit.";
                  }
                }  // list na-slot
              }  // container na-slots
    
              container na-ifs {
                description
                  "List of NA packets in these interfaces.";
                list na-if {
                  key "if-name";
                  description
                    "Statistics of NA packets in the interface.";
                  leaf if-name {
                    type leafref {
                      path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                    }
                    description
                      "Interface name.";
                  }
    
                  leaf send-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of send NA packets.";
                  }
    
                  leaf send-dip-ucast {
                    type uint32;
                    units "packet";
                    description
                      "Number of send NA packets with the destination address as a unicast address.";
                  }
    
                  leaf send-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of send NA packets with the destination address as a multicast address.";
                  }
    
                  leaf send-target-linklocal {
                    type uint32;
                    units "packet";
                    description
                      "Number of send NA packets with the target address as a link-local address.";
                  }
    
                  leaf send-target-global {
                    type uint32;
                    units "packet";
                    description
                      "Number of send NA packets with the target address as a global address.";
                  }
    
                  leaf recv-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received NA packets.";
                  }
    
                  leaf recv-valid-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received valid NA packets.";
                  }
    
                  leaf recv-dip-ucast {
                    type uint32;
                    units "packet";
                    description
                      "Number of received NA packets with the destination address as a unicast address.";
                  }
    
                  leaf recv-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets with the destination address as a multicast address.";
                  }
    
                  leaf recv-target-linklocal {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets with the destination address as a link-local address.";
                  }
    
                  leaf recv-target-global {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets with the destination address as a global address.";
                  }
    
                  leaf drop-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of discarded NA packets.";
                  }
    
                  leaf drop-checksum-err {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to checksum errors.";
                  }
    
                  leaf drop-bad-len {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad packet length.";
                  }
    
                  leaf drop-bad-code {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad code.";
                  }
    
                  leaf drop-bad-hoplimit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad hoplimit.";
                  }
    
                  leaf drop-bad-src-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad source MAC addresses.";
                  }
    
                  leaf drop-bad-dst-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad destination MAC addresses.";
                  }
    
                  leaf drop-bad-tgt-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad target MAC addresses.";
                  }
    
                  leaf drop-bad-src-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad source IP addresses.";
                  }
    
                  leaf drop-bad-dst-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad destination IP addresses.";
                  }
    
                  leaf drop-bad-tgt-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad target IP addresses.";
                  }
    
                  leaf drop-bad-option {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to bad options.";
                  }
    
                  leaf drop-local-addr {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded because the source address is the local address.";
                  }
    
                  leaf drop-mac-check {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to source MAC address consistency check errors.";
                  }
    
                  leaf drop-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to global rate limit.";
                  }
    
                  leaf drop-src-mac-attack {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to source MAC address attacks.";
                  }
    
                  leaf drop-src-mac-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to source MAC rate limit.";
                  }
    
                  leaf drop-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to source IP rate limit.";
                  }
    
                  leaf drop-if-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to interface source IP rate limit.";
                  }
    
                  leaf drop-if-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to interface rate limit.";
                  }
    
                  leaf drop-lr-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to LR rate limit.";
                  }
    
                  leaf drop-dst-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to destination IP rate limit.";
                  }
    
                  leaf drop-tgt-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of NA packets discarded due to target IP rate limit.";
                  }
                }  // list na-if
              }  // container na-ifs
            }  // container na-stats
    
            container rs-stats {
              description
                "Statistics of RS packets.";
              container rs-global {
                description
                  "Statistics of global RS packets.";
                leaf send-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of send RS packets.";
                }
    
                leaf send-dip-mcast {
                  type uint32;
                  units "packet";
                  description
                    "Number of send RS packets with the destination address as a multicast address.";
                }
    
                leaf recv-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of received RS packets.";
                }
    
                leaf recv-valid-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of received valid RS packets.";
                }
    
                leaf recv-dip-ucast {
                  type uint32;
                  units "packet";
                  description
                    "Number of received RS packets with the destination address as a unicast address.";
                }
    
                leaf recv-dip-mcast {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets with the destination address as a multicast address.";
                }
    
                leaf drop-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of discarded RS packets.";
                }
    
                leaf drop-checksum-err {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to checksum errors.";
                }
    
                leaf drop-bad-len {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to bad packet length.";
                }
    
                leaf drop-bad-code {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to bad code.";
                }
    
                leaf drop-bad-hoplimit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to bad hoplimit.";
                }
    
                leaf drop-bad-src-mac {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to bad source MAC addresses.";
                }
    
                leaf drop-bad-dst-mac {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to bad destination MAC addresses.";
                }
    
                leaf drop-bad-tgt-mac {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to bad target MAC addresses.";
                }
    
                leaf drop-bad-src-ip {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to bad source IP addresses.";
                }
    
                leaf drop-bad-dst-ip {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to bad destination IP addresses.";
                }
    
                leaf drop-bad-option {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to bad options.";
                }
    
                leaf drop-local-addr {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded because the source address is the local address.";
                }
    
                leaf drop-mac-check {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to source MAC address consistency check errors.";
                }
    
                leaf drop-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to global rate limit.";
                }
    
                leaf drop-src-mac-attack {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to source MAC address attacks.";
                }
    
                leaf drop-src-mac-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to source MAC rate limit.";
                }
    
                leaf drop-src-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to source IP rate limit.";
                }
    
                leaf drop-if-src-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to interface source IP rate limit.";
                }
    
                leaf drop-if-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to interface rate limit.";
                }
    
                leaf drop-lr-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to LR rate limit.";
                }
    
                leaf drop-dst-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RS packets discarded due to destination IP rate limit.";
                }
              }  // container rs-global
    
              container rs-slots {
                description
                  "List of RS packets in these slots.";
                list rs-slot {
                  key "slot-id";
                  description
                    "Statistics of RS packets in the slot.";
                  leaf slot-id {
                    type string {
                      length "1..24";
                    }
                    description "Slot ID.";
                  }
    
                  leaf send-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of send RS packets.";
                  }
    
                  leaf send-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of send RS packets with the destination address as a multicast address.";
                  }
    
                  leaf recv-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received RS packets.";
                  }
    
                  leaf recv-valid-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received valid RS packets.";
                  }
    
                  leaf recv-dip-ucast {
                    type uint32;
                    units "packet";
                    description
                      "Number of received RS packets with the destination address as a unicast address.";
                  }
    
                  leaf recv-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets with the destination address as a multicast address.";
                  }
    
                  leaf drop-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of discarded RS packets.";
                  }
    
                  leaf drop-checksum-err {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to checksum errors.";
                  }
    
                  leaf drop-bad-len {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad packet length.";
                  }
    
                  leaf drop-bad-code {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad code.";
                  }
    
                  leaf drop-bad-hoplimit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad hoplimit.";
                  }
    
                  leaf drop-bad-src-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad source MAC addresses.";
                  }
    
                  leaf drop-bad-dst-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad destination MAC addresses.";
                  }
    
                  leaf drop-bad-tgt-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad target MAC addresses.";
                  }
    
                  leaf drop-bad-src-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad source IP addresses.";
                  }
    
                  leaf drop-bad-dst-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad destination IP addresses.";
                  }
    
                  leaf drop-bad-option {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad options.";
                  }
    
                  leaf drop-local-addr {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded because the source address is the local address.";
                  }
    
                  leaf drop-mac-check {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to source MAC address consistency check errors.";
                  }
    
                  leaf drop-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to global rate limit.";
                  }
    
                  leaf drop-src-mac-attack {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to source MAC address attacks.";
                  }
    
                  leaf drop-src-mac-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to source MAC rate limit.";
                  }
    
                  leaf drop-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to source IP rate limit.";
                  }
    
                  leaf drop-if-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to interface source IP rate limit.";
                  }
    
                  leaf drop-if-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to interface rate limit.";
                  }
    
                  leaf drop-lr-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to LR rate limit.";
                  }
    
                  leaf drop-dst-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to destination IP rate limit.";
                  }
                }  // list rs-slot
              }  // container rs-slots
    
              container rs-ifs {
                description
                  "List of RS packets in these interfaces.";
                list rs-if {
                  key "if-name";
                  description
                    "Statistics of RS packets in the interface.";
                  leaf if-name {
                    type leafref {
                      path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                    }
                    description
                      "Interface name.";
                  }
    
                  leaf send-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of send RS packets.";
                  }
    
                  leaf send-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of send RS packets with the destination address as a multicast address.";
                  }
    
                  leaf recv-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received RS packets.";
                  }
    
                  leaf recv-valid-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received valid RS packets.";
                  }
    
                  leaf recv-dip-ucast {
                    type uint32;
                    units "packet";
                    description
                      "Number of received RS packets with the destination address as a unicast address.";
                  }
    
                  leaf recv-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets with the destination address as a multicast address.";
                  }
    
                  leaf drop-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of discarded RS packets.";
                  }
    
                  leaf drop-checksum-err {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to checksum errors.";
                  }
    
                  leaf drop-bad-len {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad packet length.";
                  }
    
                  leaf drop-bad-code {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad code.";
                  }
    
                  leaf drop-bad-hoplimit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad hoplimit.";
                  }
    
                  leaf drop-bad-src-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad source MAC addresses.";
                  }
    
                  leaf drop-bad-dst-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad destination MAC addresses.";
                  }
    
                  leaf drop-bad-tgt-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad target MAC addresses.";
                  }
    
                  leaf drop-bad-src-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad source IP addresses.";
                  }
    
                  leaf drop-bad-dst-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad destination IP addresses.";
                  }
    
                  leaf drop-bad-option {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to bad options.";
                  }
    
                  leaf drop-local-addr {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded because the source address is the local address.";
                  }
    
                  leaf drop-mac-check {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to source MAC address consistency check errors.";
                  }
    
                  leaf drop-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to global rate limit.";
                  }
    
                  leaf drop-src-mac-attack {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to source MAC address attacks.";
                  }
    
                  leaf drop-src-mac-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to source MAC rate limit.";
                  }
    
                  leaf drop-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to source IP rate limit.";
                  }
    
                  leaf drop-if-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to interface source IP rate limit.";
                  }
    
                  leaf drop-if-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to interface rate limit.";
                  }
    
                  leaf drop-lr-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to LR rate limit.";
                  }
    
                  leaf drop-dst-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RS packets discarded due to destination IP rate limit.";
                  }
                }  // list rs-if
              }  // container rs-ifs
            }  // container rs-stats
    
            container ra-stats {
              description
                "Statistics of RA packets.";
              container ra-global {
                description
                  "Statistics of global RA packets.";
                leaf send-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of send RA packets.";
                }
    
                leaf send-dip-ucast {
                  type uint32;
                  units "packet";
                  description
                    "Number of send RA packets with the destination address as a unicast address.";
                }
    
                leaf send-dip-mcast {
                  type uint32;
                  units "packet";
                  description
                    "Number of send RA packets with the destination address as a multicast address.";
                }
    
                leaf recv-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of received RA packets.";
                }
    
                leaf recv-valid-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of received valid RA packets.";
                }
    
                leaf recv-dip-ucast {
                  type uint32;
                  units "packet";
                  description
                    "Number of received RA packets with the destination address as a unicast address.";
                }
    
                leaf recv-dip-mcast {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets with the destination address as a multicast address.";
                }
    
                leaf drop-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of discarded RA packets.";
                }
    
                leaf drop-checksum-err {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to checksum errors.";
                }
    
                leaf drop-bad-len {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to bad packet length.";
                }
    
                leaf drop-bad-code {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to bad code.";
                }
    
                leaf drop-bad-hoplimit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to bad hoplimit.";
                }
    
                leaf drop-bad-src-mac {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to bad source MAC addresses.";
                }
    
                leaf drop-bad-dst-mac {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to bad destination MAC addresses.";
                }
    
                leaf drop-bad-tgt-mac {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to bad target MAC addresses.";
                }
    
                leaf drop-bad-src-ip {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to bad source IP addresses.";
                }
    
                leaf drop-bad-dst-ip {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to bad destination IP addresses.";
                }
    
                leaf drop-bad-option {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to bad options.";
                }
    
                leaf drop-local-addr {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded because the source address is the local address.";
                }
    
                leaf drop-mac-check {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to source MAC address consistency check errors.";
                }
    
                leaf drop-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to global rate limit.";
                }
    
                leaf drop-src-mac-attack {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to source MAC address attacks.";
                }
    
                leaf drop-src-mac-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to source MAC rate limit.";
                }
    
                leaf drop-src-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to source IP rate limit.";
                }
    
                leaf drop-if-src-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to interface source IP rate limit.";
                }
    
                leaf drop-if-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to interface rate limit.";
                }
    
                leaf drop-lr-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to LR rate limit.";
                }
    
                leaf drop-dst-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of RA packets discarded due to destination IP rate limit.";
                }
              }  // container ra-global
    
              container ra-slots {
                description
                  "List of RA packets in these slots.";
                list ra-slot {
                  key "slot-id";
                  description
                    "Statistics of RA packets in the slot.";
                  leaf slot-id {
                    type string {
                      length "1..24";
                    }
                    description "Slot ID.";
                  }
    
                  leaf send-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of send RA packets.";
                  }
    
                  leaf send-dip-ucast {
                    type uint32;
                    units "packet";
                    description
                      "Number of send RA packets with the destination address as a unicast address.";
                  }
    
                  leaf send-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of send RA packets with the destination address as a multicast address.";
                  }
    
                  leaf recv-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received RA packets.";
                  }
    
                  leaf recv-valid-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received valid RA packets.";
                  }
    
                  leaf recv-dip-ucast {
                    type uint32;
                    units "packet";
                    description
                      "Number of received RA packets with the destination address as a unicast address.";
                  }
    
                  leaf recv-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets with the destination address as a multicast address.";
                  }
    
                  leaf drop-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of discarded RA packets.";
                  }
    
                  leaf drop-checksum-err {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to checksum errors.";
                  }
    
                  leaf drop-bad-len {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad packet length.";
                  }
    
                  leaf drop-bad-code {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad code.";
                  }
    
                  leaf drop-bad-hoplimit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad hoplimit.";
                  }
    
                  leaf drop-bad-src-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad source MAC addresses.";
                  }
    
                  leaf drop-bad-dst-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad destination MAC addresses.";
                  }
    
                  leaf drop-bad-tgt-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad target MAC addresses.";
                  }
    
                  leaf drop-bad-src-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad source IP addresses.";
                  }
    
                  leaf drop-bad-dst-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad destination IP addresses.";
                  }
    
                  leaf drop-bad-option {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad options.";
                  }
    
                  leaf drop-local-addr {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded because the source address is the local address.";
                  }
    
                  leaf drop-mac-check {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to source MAC address consistency check errors.";
                  }
    
                  leaf drop-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to global rate limit.";
                  }
    
                  leaf drop-src-mac-attack {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to source MAC address attacks.";
                  }
    
                  leaf drop-src-mac-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to source MAC rate limit.";
                  }
    
                  leaf drop-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to source IP rate limit.";
                  }
    
                  leaf drop-if-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to interface source IP rate limit.";
                  }
    
                  leaf drop-if-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to interface rate limit.";
                  }
    
                  leaf drop-lr-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to LR rate limit.";
                  }
    
                  leaf drop-dst-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to destination IP rate limit.";
                  }
                }  // list ra-slot
              }  // container ra-slots
    
              container ra-ifs {
                description
                  "List of RA packets in these interfaces.";
                list ra-if {
                  key "if-name";
                  description
                    "Statistics of RA packets in the interface.";
                  leaf if-name {
                    type leafref {
                      path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                    }
                    description
                      "Interface name.";
                  }
    
                  leaf send-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of send RA packets.";
                  }
    
                  leaf send-dip-ucast {
                    type uint32;
                    units "packet";
                    description
                      "Number of send RA packets with the destination address as a unicast address.";
                  }
    
                  leaf send-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of send RA packets with the destination address as a multicast address.";
                  }
    
                  leaf recv-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received RA packets.";
                  }
    
                  leaf recv-valid-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received valid RA packets.";
                  }
    
                  leaf recv-dip-ucast {
                    type uint32;
                    units "packet";
                    description
                      "Number of received RA packets with the destination address as a unicast address.";
                  }
    
                  leaf recv-dip-mcast {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets with the destination address as a multicast address.";
                  }
    
                  leaf drop-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of discarded RA packets.";
                  }
    
                  leaf drop-checksum-err {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to checksum errors.";
                  }
    
                  leaf drop-bad-len {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad packet length.";
                  }
    
                  leaf drop-bad-code {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad code.";
                  }
    
                  leaf drop-bad-hoplimit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad hoplimit.";
                  }
    
                  leaf drop-bad-src-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad source MAC addresses.";
                  }
    
                  leaf drop-bad-dst-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad destination MAC addresses.";
                  }
    
                  leaf drop-bad-tgt-mac {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad target MAC addresses.";
                  }
    
                  leaf drop-bad-src-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad source IP addresses.";
                  }
    
                  leaf drop-bad-dst-ip {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad destination IP addresses.";
                  }
    
                  leaf drop-bad-option {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to bad options.";
                  }
    
                  leaf drop-local-addr {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded because the source address is the local address.";
                  }
    
                  leaf drop-mac-check {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to source MAC address consistency check errors.";
                  }
    
                  leaf drop-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to global rate limit.";
                  }
    
                  leaf drop-src-mac-attack {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to source MAC address attacks.";
                  }
    
                  leaf drop-src-mac-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to source MAC rate limit.";
                  }
    
                  leaf drop-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to source IP rate limit.";
                  }
    
                  leaf drop-if-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to interface source IP rate limit.";
                  }
    
                  leaf drop-if-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to interface rate limit.";
                  }
    
                  leaf drop-lr-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to LR rate limit.";
                  }
    
                  leaf drop-dst-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of RA packets discarded due to destination IP rate limit.";
                  }
                }  // list ra-if
              }  // container ra-ifs
            }  // container ra-stats
    
            container ndmiss-stats {
              description
                "Statistics of ND miss packets.";
              container ndmiss-global {
                description
                  "Statistics of global ND miss packets.";
                leaf recv-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of received ND miss packets.";
                }
    
                leaf recv-valid-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of received valid ND miss packets.";
                }
    
                leaf drop-total {
                  type uint32;
                  units "packet";
                  description
                    "Number of discarded ND miss packets.";
                }
    
                leaf drop-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of ND miss packets discarded due to global rate limit.";
                }
    
                leaf drop-if-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of ND miss discarded due to interface rate limit.";
                }
    
                leaf drop-lr-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of ND miss discarded due to LR rate limit.";
                }
    
                leaf drop-src-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of ND miss discarded due to source IP rate limit.";
                }
    
                leaf drop-if-src-ip-rate-limit {
                  type uint32;
                  units "packet";
                  description
                    "Number of ND miss discarded due to interface source IP rate limit.";
                }
              }  // container ndmiss-global
    
              container ndmiss-slots {
                description
                  "List of ND miss packets in these slots.";
                list ndmiss-slot {
                  key "slot-id";
                  description
                    "Statistics of ND miss packets in the slot.";
                  leaf slot-id {
                    type string {
                      length "1..24";
                    }
                    description "Slot ID.";
                  }
    
                  leaf recv-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received ND miss packets.";
                  }
    
                  leaf recv-valid-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received valid ND miss packets.";
                  }
    
                  leaf drop-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of discarded ND miss packets.";
                  }
    
                  leaf drop-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of ND miss packets discarded due to global rate limit.";
                  }
    
                  leaf drop-if-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of ND miss discarded due to interface rate limit.";
                  }
    
                  leaf drop-lr-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of ND miss discarded due to LR rate limit.";
                  }
    
                  leaf drop-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of ND miss discarded due to source IP rate limit.";
                  }
    
                  leaf drop-if-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of ND miss discarded due to interface source IP rate limit.";
                  }
                }  // list ndmiss-slot
              }  // container ndmiss-slots
    
              container ndmiss-ifs {
                description
                  "List of ND miss packets in these interfaces.";
                list ndmiss-if {
                  key "if-name";
                  description
                    "Statistics of ND miss packets in the interface.";
                  leaf if-name {
                    type leafref {
                      path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                    }
                    description
                      "Interface name.";
                  }
    
                  leaf recv-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received ND miss packets.";
                  }
    
                  leaf recv-valid-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of received valid ND miss packets.";
                  }
    
                  leaf drop-total {
                    type uint32;
                    units "packet";
                    description
                      "Number of discarded ND miss packets.";
                  }
    
                  leaf drop-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of ND miss packets discarded due to global rate limit.";
                  }
    
                  leaf drop-if-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of ND miss discarded due to interface rate limit.";
                  }
    
                  leaf drop-lr-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of ND miss discarded due to LR rate limit.";
                  }
    
                  leaf drop-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of ND miss discarded due to source IP rate limit.";
                  }
    
                  leaf drop-if-src-ip-rate-limit {
                    type uint32;
                    units "packet";
                    description
                      "Number of ND miss discarded due to interface source IP rate limit.";
                  }
                }  // list ndmiss-if
              }  // container ndmiss-ifs
            }  // container ndmiss-stats
          }  // container nd-pkt-stats
    
          container anti-attack {
            description
              "Configure ND anti-attack for global.";
            container source-mac-receive {
              description
                "Configure the ND anti-attack based on packet source MAC address.";
              container every-mac-rate-limits {
                description
                  "List of rate limits for receiving ND packets based on every source MAC address.";
                list every-mac-rate-limit {
                  key "packet-type";
                  description
                    "Configure the rate limit for receiving ND packets based on every source MAC address.";
                  leaf packet-type {
                    type nd-pkt-type;
                    description
                      "ND packet type.";
                  }
    
                  leaf value {
                    type uint16 {
                      range "0..5000";
                    }
                    units "pps";
                    mandatory true;
                    description
                      "Rate limit of receiving ND packet.";
                  }
                }  // list every-mac-rate-limit
              }  // container every-mac-rate-limits
    
              container mac-rate-limits {
                description
                  "List of rate limits for receiving ND packets based on specified source MAC address.";
                list mac-rate-limit {
                  key "packet-type mac-addr";
                  description
                    "Configure the rate limit for receiving ND packets based on specified source MAC address.";
                  leaf packet-type {
                    type nd-pkt-type;
                    description
                      "ND packet type.";
                  }
    
                  leaf mac-addr {
                    type pub-type:mac-address {
                      pattern
                        '[0-9a-fA-F][0|2|4|6|8|aA|cC|eE][0-9a-fA-F]{2}(-[0-9a-fA-F]{4}){2}';
                    }
                    description
                      "Source MAC address.";
                  }
    
                  leaf value {
                    type uint16 {
                      range "0..5000";
                    }
                    units "pps";
                    mandatory true;
                    description
                      "Rate limit of receiving ND packet.";
                  }
                }  // list mac-rate-limit
              }  // container mac-rate-limits
            }  // container source-mac-receive
    
            container source-ip-receive {
              description
                "Configure the ND anti-attack based on packet or miss source IP address.";
              container every-ip-rate-limits {
                description
                  "List of rate limits for receiving ND packets or ND miss based on every source IP address.";
                list every-ip-rate-limit {
                  key "packet-type";
                  description
                    "Configure the rate limit for receiving ND packets or ND miss based on every source IP address.";
                  leaf packet-type {
                    type nd-pkt-evt-type;
                    description
                      "ND packet type or ND miss.";
                  }
    
                  leaf value {
                    type uint16 {
                      range "0..5000";
                    }
                    units "pps";
                    mandatory true;
                    description
                      "Rate limit of receiving ND packet or ND miss.";
                  }
                }  // list every-ip-rate-limit
              }  // container every-ip-rate-limits
    
              container ip-rate-limits {
                description
                  "List of rate limits for receiving ND packets or ND miss based on specified source IP address.";
                list ip-rate-limit {
                  key "packet-type ipv6-addr";
                  description
                    "Configure the rate limit for receiving ND packets or ND miss based on specified source IP address.";
                  leaf packet-type {
                    type nd-pkt-evt-type;
                    description
                      "ND packet type or ND miss.";
                  }
    
                  leaf ipv6-addr {
                    type inet:ipv6-address-no-zone;
                    description
                      "Source IPv6 address, the address cannot be a multicast address, that is, cannot start with FFXX or ffXX, X represents hexadecimal character. When the type is NDMISS, the source address cannot be the unspecified address.";
                  }
    
                  leaf value {
                    type uint16 {
                      range "0..5000";
                    }
                    units "pps";
                    mandatory true;
                    description
                      "Rate limit of receiving ND packet or ND miss.";
                  }
                }  // list ip-rate-limit
              }  // container ip-rate-limits
            }  // container source-ip-receive
    
            container destination-ip-receive {
              description
                "Configure the ND anti-attack based on packet destination IP address.";
              container every-ip-rate-limits {
                description
                  "List of rate limits for receiving ND packets based on every destination IP address.";
                list every-ip-rate-limit {
                  key "packet-type";
                  description
                    "Configure the rate limit for receiving ND packets based on every destination IP address.";
                  leaf packet-type {
                    type nd-pkt-type;
                    description
                      "ND packet type.";
                  }
    
                  leaf value {
                    type uint16 {
                      range "0..5000";
                    }
                    units "pps";
                    mandatory true;
                    description
                      "Rate limit of receiving ND packet.";
                  }
                }  // list every-ip-rate-limit
              }  // container every-ip-rate-limits
    
              container ip-rate-limits {
                description
                  "List of rate limits for receiving ND packets based on specified destination IP address.";
                list ip-rate-limit {
                  key "packet-type ipv6-addr";
                  description
                    "Configure the rate limit for receiving ND packets based on specified destination IP address.";
                  leaf packet-type {
                    type nd-pkt-type;
                    description
                      "ND packet type.";
                  }
    
                  leaf ipv6-addr {
                    type inet:ipv6-address-no-zone;
                    description
                      "Destination IPv6 address, the address cannot be the unspecified address.";
                  }
    
                  leaf value {
                    type uint16 {
                      range "0..5000";
                    }
                    units "pps";
                    mandatory true;
                    description
                      "Rate limit of receiving ND packet.";
                  }
                }  // list ip-rate-limit
              }  // container ip-rate-limits
            }  // container destination-ip-receive
    
            container target-ip-receive {
              description
                "Configure the ND anti-attack based on packet target IP address.";
              container every-ip-rate-limits {
                description
                  "List of rate limits for receiving ND packets based on every target IP address.";
                list every-ip-rate-limit {
                  key "packet-type";
                  description
                    "Configure the rate limit for receiving ND packets based on every target IP address.";
                  leaf packet-type {
                    type nd-tgt-pkt-type;
                    description
                      "ND packet type.";
                  }
    
                  leaf value {
                    type uint16 {
                      range "0..5000";
                    }
                    units "pps";
                    mandatory true;
                    description
                      "Rate limit of receiving ND packet.";
                  }
                }  // list every-ip-rate-limit
              }  // container every-ip-rate-limits
    
              container ip-rate-limits {
                description
                  "List of rate limits for receiving ND packets based on specified target IP address.";
                list ip-rate-limit {
                  key "packet-type ipv6-addr";
                  description
                    "Configure the rate limit for receiving ND packets based on specified target IP address.";
                  leaf packet-type {
                    type nd-tgt-pkt-type;
                    description
                      "ND packet type.";
                  }
    
                  leaf ipv6-addr {
                    type inet:ipv6-address-no-zone;
                    description
                      "Target IPv6 address, the address cannot be the unspecified address or a multicast address.";
                  }
    
                  leaf value {
                    type uint16 {
                      range "0..5000";
                    }
                    units "pps";
                    mandatory true;
                    description
                      "Rate limit of receiving ND packet.";
                  }
                }  // list ip-rate-limit
              }  // container ip-rate-limits
            }  // container target-ip-receive
          }  // container anti-attack
    
          container send-rate-limit {
            description
              "Configure ND send rate limit for global.";
            container multicast-rate-limits {
              description
                "List of ND multicast packet sending rate limits.";
              list multicast-rate-limit {
                key "packet-type";
                description
                  "Configure the rate limit of sending ND multicast packet.";
                leaf packet-type {
                  type nd-pkt-type;
                  description "ND packet type.";
                }
    
                leaf value {
                  type uint16 {
                    range "1..10240";
                  }
                  units "pps";
                  must
                    "((../packet-type = 'NA') and (../value <= 10240)) or (not(../packet-type = 'NA') and (../value <= 1000))";
                  mandatory true;
                  description
                    "Rate limit of sending ND multicast packet, when the packet type is NS, RS or RA, the maximum value is 1000.";
                }
              }  // list multicast-rate-limit
            }  // container multicast-rate-limits
          }  // container send-rate-limit
    
          container anti-attack-records {
            config false;
            description
              "Statistics of query anti-attack record.";
            container packet-records {
              description
                "List of query packet anti-attack record.";
              list packet-record {
                key "if-name record-index";
                description
                  "Statistics of query packet anti-attack record.";
                leaf if-name {
                  type leafref {
                    path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                  }
                  description "Interface name.";
                }
    
                leaf record-index {
                  type uint32;
                  description "Record index.";
                }
    
                leaf packet-type {
                  type nd-pkt-type;
                  description "ND packet type.";
                }
    
                leaf source-address {
                  type inet:ipv6-address-no-zone;
                  description
                    "Source IPv6 address of a packet.";
                }
    
                leaf dest-address {
                  type inet:ipv6-address-no-zone;
                  description
                    "Destination IPv6 address of a packet.";
                }
    
                leaf target-address {
                  type inet:ipv6-address-no-zone;
                  description
                    "Target IPv6 address of a packet.";
                }
    
                leaf source-mac {
                  type pub-type:mac-address;
                  description
                    "Source MAC address of a packet.";
                }
    
                leaf dest-mac {
                  type pub-type:mac-address;
                  description
                    "Destination MAC address of a packet.";
                }
    
                leaf pe-vlan {
                  type uint32 {
                    range "1..4094";
                  }
                  description "Outer VLAN tag.";
                }
    
                leaf ce-vlan {
                  type uint32 {
                    range "1..4094";
                  }
                  description "Inner VLAN tag.";
                }
    
                leaf attack-times {
                  type uint32;
                  description "Attacked times.";
                }
    
                leaf last-attack-time {
                  type yang:date-and-time;
                  description
                    "Last attacked time.";
                }
    
                leaf dropped-reason {
                  type string {
                    length "1..63";
                  }
                  description "Dropped reason.";
                }
              }  // list packet-record
            }  // container packet-records
    
            container miss-records {
              description
                "List of query miss anti-attack record.";
              list miss-record {
                key "if-name target-address";
                description
                  "Statistics of query miss anti-attack record.";
                leaf if-name {
                  type leafref {
                    path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                  }
                  description "Interface name.";
                }
    
                leaf target-address {
                  type inet:ipv6-address-no-zone;
                  description
                    "Target IPv6 address of a miss message.";
                }
    
                leaf source-address {
                  type inet:ipv6-address-no-zone;
                  description
                    "Source IPv6 address of a miss message.";
                }
              }  // list miss-record
            }  // container miss-records
          }  // container anti-attack-records
        }  // container ipv6-nd
    
        rpc nd-pkt-clear-all {
          ext:node-ref "/ipv6-nd:ipv6-nd/ipv6-nd:nd-pkt-stats";
          description
            "To clear all ND statistics.";
        }  // rpc nd-pkt-clear-all
    
        rpc ipv6-neighbor-clear {
          ext:node-ref "/ipv6-nd:ipv6-nd/ipv6-nd:ipv6-neighbors";
          description
            "To clear IPv6 dynamic neighbors.";
          input {
            choice clear-type {
              description
                "IPv6 neighbor clear type.";
              case if-ip {
                description
                  "Clear by specified Interface name or Interface name and IPv6 address.";
                leaf if-name {
                  type leafref {
                    path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                  }
                  mandatory true;
                  description "Interface name.";
                }
    
                leaf ipv6-addr {
                  type inet:ipv6-address-no-zone;
                  description "IPv6 address.";
                }
              }  // case if-ip
            }  // choice clear-type
          }
        }  // rpc ipv6-neighbor-clear
    
        rpc anti-attack-packet-record-clear {
          ext:node-ref "/ipv6-nd:ipv6-nd/ipv6-nd:anti-attack-records/ipv6-nd:packet-records";
          description
            "To clear packet anti-attack records.";
          input {
            leaf if-name {
              type leafref {
                path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
              }
              description "Interface name.";
            }
          }
        }  // rpc anti-attack-packet-record-clear
    
        rpc anti-attack-miss-record-clear {
          ext:node-ref "/ipv6-nd:ipv6-nd/ipv6-nd:anti-attack-records/ipv6-nd:miss-records";
          description
            "To clear miss anti-attack records.";
          input {
            leaf if-name {
              type leafref {
                path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
              }
              description "Interface name.";
            }
          }
        }  // rpc anti-attack-miss-record-clear
      }  // module huawei-ipv6-nd
    

© 2023 YumaWorks, Inc. All rights reserved.