huawei-vrrp

Global VRRP configuration.

  • Version: 2020-02-15

    huawei-vrrp@2020-02-15


    
      module huawei-vrrp {
    
        yang-version 1;
    
        namespace "urn:huawei:yang:huawei-vrrp";
    
        prefix vrrp;
    
        import huawei-ifm {
          prefix ifm;
        }
        import ietf-inet-types {
          prefix inet;
        }
        import huawei-pub-type {
          prefix pub-type;
        }
        import huawei-extension {
          prefix ext;
        }
        import huawei-network-instance {
          prefix ni;
        }
        import huawei-bfd {
          prefix bfd;
        }
        import ietf-yang-types {
          prefix yang;
        }
        import huawei-monitor-group {
          prefix monitor-group;
        }
        import huawei-ip {
          prefix ip;
        }
        import huawei-nqa {
          prefix nqa;
        }
        import huawei-ethernet {
          prefix ethernet;
        }
    
        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 "Global VRRP configuration.";
    
        revision "2020-02-15" {
          description "Modify description.";
          reference
            "Huawei private.";
    
        }
    
        revision "2019-10-27" {
          description "Initial revision.";
          reference
            "Huawei private.";
    
        }
    
        ext:task-name "vrrp";
    
        typedef vrrp-type {
          type enumeration {
            enum "normal" {
              value 0;
              description "Normal VRRP.";
            }
            enum "admin" {
              value 1;
              description "Admin VRRP.";
            }
            enum "member" {
              value 2;
              description "Member VRRP.";
            }
            enum "lbrg" {
              value 3;
              description
                "Load-balance redundancy group VRRP.";
            }
            enum "lbrg-mem" {
              value 4;
              description
                "Load-balance redundancy group member VRRP.";
            }
            enum "mem-lbrg" {
              value 5;
              description
                "Member of load-balance redundancy group VRRP.";
            }
            enum "mem-lbrg-mem" {
              value 6;
              description
                "Member of load-balance redundancy group Member VRRP.";
            }
            enum "unicast" {
              value 7;
              description "Unicast VRRP.";
            }
          }
          description "VRRP group type.";
        }
    
        typedef vrrp-bfd-type {
          type enumeration {
            enum "normal" {
              value 0;
              description "Normal BFD session.";
            }
            enum "link" {
              value 1;
              description "Link BFD session.";
            }
            enum "peer" {
              value 2;
              description "Peer BFD session.";
            }
          }
          description
            "The type of VRRP track BFD.";
        }
    
        typedef vrrp-track-mode {
          type enumeration {
            enum "increase" {
              value 0;
              description "Increase priority.";
            }
            enum "reduce" {
              value 1;
              description "Reduce priority.";
            }
          }
          description
            "VRRP track mode is like increase/reduce.";
        }
    
        typedef vrrp-track-bfd-state {
          type enumeration {
            enum "down" {
              value 0;
              description "BFD state down.";
            }
            enum "up" {
              value 1;
              description "BFD state up.";
            }
            enum "admin-down" {
              value 2;
              description "BFD state admindown.";
            }
            enum "unknow" {
              value 3;
              description "BFD state unknow.";
            }
          }
          description
            "VRRP track bfd state is like down/up/admin-down/unknow.";
        }
    
        typedef vrrp-oper-state {
          type enumeration {
            enum "initialize" {
              value 0;
              description "Initialize state.";
            }
            enum "backup" {
              value 1;
              description "Backup state.";
            }
            enum "master" {
              value 2;
              description "Master state.";
            }
          }
          description
            "VRRP operation state is like initialize/backup/master.";
        }
    
        typedef vrrp6cksm-mode {
          type enumeration {
            enum "include-pseudo-header" {
              value 0;
              description
                "Include a pseudo header.";
            }
            enum "exclude-pseudo-header" {
              value 1;
              description
                "Exclude a pseudo header.";
            }
          }
          description
            "VRRP6 cksm-mode is like include-pseudo-header/exclude-pseudo-header.";
        }
    
        typedef vrrpauthen-mode {
          type enumeration {
            enum "none" {
              value 0;
              description
                "No authentication mode.";
            }
            enum "simple" {
              value 1;
              description
                "Simple authentication mode.";
            }
            enum "md5" {
              value 2;
              description
                "MD5 authentication mode.";
            }
            enum "hmac-sha256" {
              value 3;
              description
                "SHA256 authentication mode.";
            }
          }
          description
            "VRRP authen-mode is like none/simple/md5.";
        }
    
        typedef vrrp-v3-sendmode {
          type enumeration {
            enum "v3-only" {
              value 0;
              description
                "Only VRRPv3 advertisement packets are sent.";
            }
            enum "v2v3-both" {
              value 1;
              description
                "Both VRRPv2 and VRRPv3 advertisement packets are sent.";
            }
            enum "v2-only" {
              value 2;
              description
                "Only VRRPv2 advertisement packets are sent.";
            }
          }
          description
            "VRRP V3 send mode is like v2-only/v2v3-both/v3-only.";
        }
    
        typedef vrrp-version {
          type enumeration {
            enum "v2" {
              value 0;
              description "VRRPv2 version.";
            }
            enum "v3" {
              value 1;
              description "VRRPv3 version.";
            }
          }
          description
            "VRRP version is like v2/v3.";
        }
    
        typedef vrrptrack-mode {
          type enumeration {
            enum "increase" {
              value 0;
              description "Increase priority.";
            }
            enum "reduce" {
              value 1;
              description "Reduce priority.";
            }
          }
          description
            "VRRP track mode is like increase/reduce.";
        }
    
        typedef mtgrptrack-mode {
          type enumeration {
            enum "link" {
              value 0;
              description "Link mode.";
            }
            enum "reduce" {
              value 1;
              description
                "Mode in which the priority is reduced.";
            }
          }
          description
            "Monitor-group track mode is like normal/link.";
        }
    
        typedef vgmp-type {
          type enumeration {
            enum "active" {
              value 1;
              description "Status of active.";
            }
            enum "standby" {
              value 2;
              description "Status of standby.";
            }
          }
          description
            "The configuration of VRRP.";
        }
    
        container vrrp {
          description
            "Virtual router redundancy protocol.";
          container global {
            description
              "Configure global VRRP configuration.";
            leaf gratuitous-arp-enable {
              type boolean;
              default "true";
              description
                "Enable/disable a device to periodically send gratuitous ARP packets.";
            }
    
            leaf gratuitous-timeout {
              when
                "../gratuitous-arp-enable='true'";
              type uint16 {
                range "30..1200";
              }
              units "s";
              default "30";
              description
                "Interval at which gratuitous ARP packets are sent.";
            }
    
            leaf adv-time-learn {
              type boolean;
              default "true";
              description
                "Enable/disable learning the interval at which VRRP packets are sent.";
            }
    
            leaf ping-enable {
              type boolean;
              default "true";
              description
                "Enable/disable ping virtual IP address.";
            }
    
            leaf recover-delay {
              type uint16 {
                range "0..3600";
              }
              units "s";
              default "0";
              description
                "Delay in recovering after an interface goes up. The delay is used for interface flapping suppression.";
            }
    
            leaf version {
              type vrrp-version;
              default "v2";
              description "Global VRRP version.";
            }
    
            leaf virtual-iproute-enable {
              type boolean;
              default "true";
              description
                "Enable/disable virtual IP routing function.";
            }
    
            leaf virtual-ospf-enable {
              when
                "not(../virtual-iproute-enable='false')";
              type boolean;
              default "true";
              description
                "Enable/disable advertising the virtual IP route by OSPF.";
            }
    
            leaf virtual-isis-enable {
              when
                "not(../virtual-iproute-enable='false')";
              type boolean;
              default "true";
              description
                "Enable/disable advertising the virtual IP route by ISIS.";
            }
    
            leaf virtual-rip-enable {
              when
                "not(../virtual-iproute-enable='false')";
              type boolean;
              default "true";
              description
                "Enable/disable advertising the virtual IP route by RIP.";
            }
    
            leaf v6-cks-mode {
              type vrrp6cksm-mode;
              default "include-pseudo-header";
              description "VRRP6 checksum mode.";
            }
    
            leaf smooth-switch-enable {
              when
                "not(../adv-time-learn='false')";
              type boolean;
              default "true";
              description
                "Enable/disable smoothing VRRP switching packets.";
            }
    
            leaf smooth-switch-time {
              when
                "../smooth-switch-enable='true'";
              type uint8 {
                range "1..255";
              }
              units "s";
              default "100";
              description
                "Interval carried in smooth VRRP switching packets.";
            }
    
            leaf unicast-port {
              type uint32 {
                range "1025..65535";
              }
              default "3077";
              description
                "Number of a UDP interface for sending and receiving unicast VRRP packets.";
            }
    
            leaf gratuitous-enhance-enable {
              type boolean;
              default "false";
              description
                "Enable/disable gratuitous ARP enhance.";
            }
    
            leaf na-enhance-enable {
              type boolean;
              default "false";
              description
                "Enable/disable vrrp6 na enhance.";
            }
    
            container vrrp-session-car {
              must "pir >= cir and pbs >= cbs";
              description
                "Configure session CAR.";
              leaf enable {
                type boolean;
                default "true";
                description
                  "Enable/disable session CAR.";
              }
    
              leaf cir {
                type uint32 {
                  range "0..325";
                }
                units "kbit/s";
                default "4";
                description
                  "Specify the session CAR CIR value.";
              }
    
              leaf cbs {
                type uint32 {
                  range "0..30000";
                }
                units "Byte";
                default "9000";
                description
                  "Specify the session CAR CBS value.";
              }
    
              leaf pir {
                type uint32 {
                  range "0..325";
                }
                units "kbit/s";
                default "5";
                description
                  "Specify the session CAR PIR value.";
              }
    
              leaf pbs {
                type uint32 {
                  range "0..30000";
                }
                units "Byte";
                default "9000";
                description
                  "Specify the session CAR PBS value.";
              }
            }  // container vrrp-session-car
    
            container vrrp6-session-car {
              must "pir >= cir and pbs >= cbs";
              description
                "Configure session CAR.";
              leaf enable {
                type boolean;
                default "true";
                description
                  "Enable/disable session CAR.";
              }
    
              leaf cir {
                type uint32 {
                  range "0..2600";
                }
                units "kbit/s";
                default "32";
                description
                  "Specify the session CAR CIR value.";
              }
    
              leaf cbs {
                type uint32 {
                  range "0..1600000";
                }
                units "Byte";
                default "72000";
                description
                  "Specify the session CAR CBS value.";
              }
    
              leaf pir {
                type uint32 {
                  range "0..2600";
                }
                units "kbit/s";
                default "40";
                description
                  "Specify the session CAR PIR value.";
              }
    
              leaf pbs {
                type uint32 {
                  range "0..1600000";
                }
                units "Byte";
                default "72000";
                description
                  "Specify the session CAR PBS value.";
              }
            }  // container vrrp6-session-car
          }  // container global
    
          container err-packets {
            config false;
            description "List of error packets.";
            list err-packet {
              key "index";
              description
                "Statistics of error packet.";
              leaf index {
                type uint32;
                description "Index.";
              }
    
              leaf ifname {
                type pub-type:if-name;
                description
                  "Name of the interface.";
              }
    
              leaf receive-time {
                type yang:date-and-time;
                description "Receive time.";
              }
    
              leaf reason {
                type string {
                  length "0..48";
                }
                description "Error reason.";
              }
    
              leaf buffer {
                type string {
                  length "0..512";
                }
                description "Error buffer.";
              }
            }  // list err-packet
          }  // container err-packets
        }  // container vrrp
    
        augment /ni:network-instance/ni:instances/ni:instance {
          description
            "VRRP configurations on L3VPN.";
          container vrrp {
            status deprecated;
            description
              "Configure VRRP backup groups under network-instance.";
            container groups {
              status deprecated;
              description
                "List of all VRRP backup groups.";
              list group {
                key "id if-name";
                status deprecated;
                description
                  "Configure VRRP operations on a device. It lists a series of VRRP operation entries. You can use this table to query the VRRP configuration on the device. In addition, you can create VRRP groups and modify the configuration.";
                leaf id {
                  type uint8 {
                    range "1..255";
                  }
                  status deprecated;
                  description
                    "VRRP backup group ID.";
                }
    
                leaf if-name {
                  type leafref {
                    path
                      "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                  }
                  must
                    "../../../../ni:name=/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:vrf-name";
                  status deprecated;
                  description
                    "Name of the outbound interface of a BFD session. This parameter is available only when the type of the detected link is IP or LDP LSP. If only the destination IP address is specified, multi-hop routes are detected. If both the destination IP address and outbound interface name are specified, single-hop links are detected. That is, a fixed route is detected, with the interface where the BFD session resides as the outbound interface and the destination IP address as the next hop address.";
                }
    
                leaf priority {
                  type uint8 {
                    range "1..254";
                  }
                  default "100";
                  status deprecated;
                  description
                    "Configured VRRP priority. A larger value indicates a higher priority.";
                }
    
                leaf preempt-mode {
                  type boolean;
                  default "true";
                  status deprecated;
                  description
                    "Enable/disable whether a high-priority VRRP group can preempt the master state.";
                }
    
                leaf delay-time {
                  when "../preempt-mode='true'";
                  type uint16 {
                    range "0..10800";
                  }
                  units "s";
                  default "0";
                  status deprecated;
                  description
                    "Preemption delay.";
                }
    
                leaf adver-interval {
                  type uint32 {
                    range "100..255000";
                  }
                  units "ms";
                  default "1000";
                  status deprecated;
                  description
                    "Configure an interval (in milliseconds) at which the master sends VRRP advertisement packets. This interval must be a multiple of 1000. If the device supports fast advertisement sending, this interval can be set to 100ms 200ms or 500ms.";
                }
    
                leaf isplain {
                  when
                    "../authentication-mode='simple'";
                  type boolean;
                  must
                    "../authentication-mode='simple' and ../authentication-key";
                  default "false";
                  status deprecated;
                  description
                    "Enable/disable selecting the display mode of an authentication key.";
                }
    
                leaf authentication-key {
                  when
                    "not(../authentication-mode='none')";
                  type pub-type:password {
                    length "1..128";
                    pattern '(\S+.*\S+|\S*)';
                  }
                  must
                    "(../authentication-mode='none' and not(../authentication-key)) or (not(../authentication-mode='none') and ../authentication-key)";
                  status deprecated;
                  description
                    "Authentication key, which is set based on the authentication type. Value description: If non-authentication is specified, the value is empty. If simple authentication, MD5 authentication, or HMAC-SHA256 authentication is specified, the value is a string with the length ranging from 1 to 8 bytes or a ciphertext password with the corresponding length.";
                }
    
                leaf authentication-mode {
                  type vrrpauthen-mode;
                  must
                    "((not(/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name = current()/../if-name]/ifm:type='LoopBack') and not(../authentication-mode='hmac-sha256')) or ((/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name = current()/../if-name]/ifm:type='LoopBack') and not(../authentication-mode='simple'))) and ((../authentication-mode='none' and not(../authentication-key)) or (not(../authentication-mode='none') and ../authentication-key))";
                  default "none";
                  status deprecated;
                  description
                    "Authentication type used for VRRP packet exchanges between VRRP groups. The values are as follows: noAuthentication, simpleTextPassword, md5Authentication. The default value is noAuthentication.";
                }
    
                leaf hold-multi {
                  type uint8 {
                    range "3..10";
                  }
                  default "3";
                  status deprecated;
                  description
                    "Set the hello packet sending interval multiplier.";
                }
    
                leaf backup-forward {
                  type boolean;
                  default "false";
                  status deprecated;
                  description
                    "Enable/disable VRRP backup forward mode.";
                }
    
                leaf fast-resume {
                  when "../admin-flag";
                  type boolean;
                  default "false";
                  status deprecated;
                  description
                    "Enable/disable VRRP fast resume mode.";
                }
    
                leaf v3-sendmode {
                  when
                    "not(/vrrp:vrrp/vrrp:global/vrrp:version='v2')";
                  type vrrp-v3-sendmode;
                  default "v3-only";
                  status deprecated;
                  description
                    "VRRP advertisement packet mode on the interface.";
                }
    
                choice vrrp-type {
                  status deprecated;
                  description "Type of VRRP.";
                  case member-vrrp {
                    status deprecated;
                    description "Member VRRP.";
                    leaf admin-id {
                      type uint8 {
                        range "1..255";
                      }
                      must "../admin-if-name";
                      status deprecated;
                      description
                        "Tracked MVRRP ID.";
                    }
    
                    leaf admin-if-name {
                      type leafref {
                        path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                      }
                      must "../admin-id";
                      status deprecated;
                      description
                        "Tracked MVRRP interface name.";
                    }
                  }  // case member-vrrp
    
                  case admin-vrrp {
                    status deprecated;
                    description "Admin VRRP.";
                    leaf admin-flag {
                      type empty;
                      status deprecated;
                      description
                        "Management VRRP.";
                    }
    
                    leaf admin-ignore-ifdown {
                      when "../admin-flag";
                      type boolean;
                      default "false";
                      status deprecated;
                      description
                        "Enable/disable ignoring an interface down event.";
                    }
                  }  // case admin-vrrp
                }  // choice vrrp-type
    
                leaf type {
                  type vrrp-type;
                  default "normal";
                  config false;
                  status deprecated;
                  description
                    "Type of a VRRP backup group.";
                }
    
                leaf state {
                  type vrrp-oper-state;
                  config false;
                  status deprecated;
                  description
                    "Running status of the VRRP group. This object has three defined values.
    Initialize: The VRRP group is waiting for a startup event.
    Backup: The VRRP backup group is monitoring the availability of the master device.
    Master: The VRRP backup group is forwarding packets for IP addresses that are associated with this device.";
                }
    
                leaf create-time {
                  type yang:date-and-time;
                  config false;
                  status deprecated;
                  description
                    "Time when the VRRP backup group was created.";
                }
    
                leaf last-change-time {
                  type yang:date-and-time;
                  config false;
                  status deprecated;
                  description
                    "Time when the status of the VRRP backup group last changed.";
                }
    
                container virtual-ips {
                  status deprecated;
                  description
                    "List of IP address table related to VRRP backup groups. A VRRP backup group can have 0 to 16 extended virtual IP addresses.";
                  list virtual-ip {
                    key "address";
                    max-elements 16;
                    status deprecated;
                    description
                      "Configure virtual IP address configuration. A VRRP backup group can have 0 to 16 extended virtual IP addresses.";
                    leaf address {
                      type inet:ipv4-address-no-zone;
                      status deprecated;
                      description
                        "Virtual IP address.";
                    }
                  }  // list virtual-ip
                }  // container virtual-ips
    
                container track-interfaces {
                  when "not(../admin-id)";
                  status deprecated;
                  description
                    "List of interfaces tracked by a VRRP backup group. A VRRP backup group can track a maximum of 16 interfaces.";
                  list track-interface {
                    key "ifname";
                    max-elements 16;
                    status deprecated;
                    description
                      "Configure VRRP backup group tracking interface.";
                    leaf ifname {
                      type leafref {
                        path
                          "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                      }
                      status deprecated;
                      description
                        "Name of the interface tracked by the VRRP backup group.";
                    }
    
                    leaf track-mode {
                      type vrrptrack-mode;
                      default "reduce";
                      status deprecated;
                      description
                        "Mode in which the VRRP backup group tracks the interface.";
                    }
    
                    leaf priority-change {
                      type uint8 {
                        range "1..255";
                      }
                      default "10";
                      status deprecated;
                      description
                        "Value by which the priority increases or reduces when the VRRP backup group tracks the interface.";
                    }
                  }  // list track-interface
                }  // container track-interfaces
    
                container track-bfds {
                  when "not(../admin-id)";
                  status deprecated;
                  description
                    "List of BFD sessions tracked by the VRRP backup group.";
                  list track-bfd {
                    key "session-name session-type";
                    max-elements 17;
                    status deprecated;
                    description
                      "Configure VRRP backup group tracking BFD session.";
                    leaf session-name {
                      type leafref {
                        path
                          "/bfd:bfd/bfd:sessions/bfd:session/bfd:name";
                      }
                      status deprecated;
                      description
                        "Name of the BFD session tracked by the VRRP backup group.";
                    }
    
                    leaf session-type {
                      type vrrp-bfd-type;
                      status deprecated;
                      description
                        "Type of the BFD session tracked by the VRRP backup group.";
                    }
    
                    leaf track-mode {
                      when
                        "../session-type='normal'";
                      type vrrp-track-mode;
                      default "reduce";
                      status deprecated;
                      description
                        "Mode in which the VRRP backup group tracks the BFD session.";
                    }
    
                    leaf priority-change {
                      when
                        "../session-type='normal'";
                      type uint8 {
                        range "1..255";
                      }
                      default "10";
                      status deprecated;
                      description
                        "Value by which the priority increases or reduces when the VRRP backup group tracks the common BFD session.";
                    }
    
                    leaf session-id {
                      type uint32 {
                        range "1..32768";
                      }
                      config false;
                      status deprecated;
                      description
                        "ID of the BFD session tracked by the VRRP backup group.";
                    }
    
                    leaf session-state {
                      type vrrp-track-bfd-state;
                      config false;
                      status deprecated;
                      description
                        "State of the BFD session tracked by the VRRP backup group.";
                    }
                  }  // list track-bfd
                }  // container track-bfds
              }  // list group
            }  // container groups
          }  // container vrrp
        }
    
        augment /ifm:ifm/ifm:interfaces/ifm:interface {
          description
            "VRRP configurations on interface.";
          container vrrp {
            description
              "Configure virtual router redundancy protocol.";
            container backup-groups {
              when
                "../../ip:ipv4/vrrp:vrrp/vrrp:groups/vrrp:group/vrrp:id";
              description
                "Configure VRRP backup groups under interface. The configured attributes apply to all backup groups on the interface.";
              leaf ttlcheck-flag {
                type boolean;
                default "true";
                description
                  "Enable/disable TTL check which is performed for a received VRRP advertisement packet. The check is successful only when the TTL value is 255. By default, a TTL check is performed.";
              }
    
              leaf recover-delay {
                type uint16 {
                  range "0..3600";
                }
                units "s";
                default "0";
                description
                  "Delay in recovering after an interface goes Up. The delay is used for interface flapping suppression.";
              }
    
              leaf arpsend-simple {
                when
                  "/ifm:ifm/ifm:interfaces/ifm:interface/ethernet:ethernet/ethernet:l3-sub-interface/ethernet:qinq-termination";
                type boolean;
                default "false";
                description
                  "Enable/disable simple send mode for gratuitous ARP packets.";
              }
    
              choice advertise-send-mode {
                when "../../ifm:type='Vlanif'";
                description
                  "VRRP backup groups send packets mode.";
                case all-subvlans {
                  description
                    "Packets are sent in all sub-VLANs of the super VLAN.";
                  leaf sendmode-all {
                    type empty;
                    description
                      "Packets are sent in all sub-VLANs of the super VLAN.";
                  }
                }  // case all-subvlans
    
                case one-subvlan {
                  description
                    "Packets are sent in one sub-VLAN of the super VLAN.";
                  leaf send-subvlanid {
                    type uint16 {
                      range "1..4094";
                    }
                    description
                      "Specifies the ID of a sub-VLAN in which packets are sent. By default, packets are sent from the active VLAN with the minimum ID. This configuration is valid only for a super VLAN.";
                  }
                }  // case one-subvlan
              }  // choice advertise-send-mode
    
              container statistics {
                config false;
                description
                  "Statistics of VRRP on the interface.";
                leaf ip-protocol-errs {
                  type uint32;
                  config false;
                  description
                    "Total number of VRRP packets received with an invalid IP protocol value.";
                }
    
                leaf dest-ip-errs {
                  type uint32;
                  config false;
                  description
                    "Total number of VRRP packets received with an incorrect destination IP address.";
                }
    
                leaf check-sum-errs {
                  type uint32;
                  config false;
                  description
                    "Total number of VRRP packets received with an invalid VRRP checksum value.";
                }
    
                leaf version-errs {
                  type uint32;
                  config false;
                  description
                    "Total number of VRRP packets received with an unknown or unsupported version number.";
                }
    
                leaf vrrpid-errs {
                  type uint32;
                  config false;
                  description
                    "Total number of VRRP packets received with an invalid VRRP ID for this device.";
                }
              }  // container statistics
            }  // container backup-groups
    
            container backup-group6s {
              when
                "../../ip:ipv6/vrrp:vrrp6/vrrp:group6s/vrrp:group6/vrrp:id";
              description
                "Configure VRRP6 backup groups on interfaces, the configured attributes apply to all backup groups on the interface.";
              leaf hoplimit-check {
                type boolean;
                default "true";
                description
                  "Enable/disable to control whether a hop limit check is performed for a received VRRP6 advertisement packet. The check is successful only when the hop limit value is 255.";
              }
    
              leaf recover-delay {
                type uint16 {
                  range "0..3600";
                }
                units "s";
                default "0";
                description
                  "Delay in recovering after an interface goes Up. The delay is used for interface flapping suppression.";
              }
    
              leaf nd-send-simple {
                when
                  "/ifm:ifm/ifm:interfaces/ifm:interface/ethernet:ethernet/ethernet:l3-sub-interface/ethernet:qinq-termination";
                type boolean;
                default "false";
                description
                  "Enable/disable simple send mode for ND packets.";
              }
            }  // container backup-group6s
    
            container track-admins {
              description
                "List of service interfaces.";
              list track-admin {
                key "id if-name";
                max-elements 1;
                description
                  "Configure service interface.";
                leaf id {
                  type uint8 {
                    range "1..255";
                  }
                  description
                    "Tracked MVRRP ID.";
                }
    
                leaf if-name {
                  type leafref {
                    path
                      "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                  }
                  description
                    "Tracked MVRRP interface name.";
                }
              }  // list track-admin
            }  // container track-admins
          }  // container vrrp
        }
    
        augment /ifm:ifm/ifm:interfaces/ifm:interface/ip:ipv4 {
          description
            "VRRP configurations on interface.";
          container vrrp {
            description
              "Configure all VRRP backup groups.";
            container groups {
              description
                "List of all VRRP backup groups.";
              list group {
                key "id";
                description
                  "Configure VRRP operations on a device. It lists a series of VRRP operation entries. You can use this table to query the VRRP configuration on the device. In addition, you can create VRRP groups and modify the configuration.";
                leaf id {
                  type uint8 {
                    range "1..255";
                  }
                  description
                    "VRRP backup group ID.";
                }
    
                leaf priority {
                  type uint8 {
                    range "1..254";
                  }
                  default "100";
                  description
                    "Configured VRRP priority. The value ranges from 1 to 254. A larger value indicates a higher priority.";
                }
    
                container preempt {
                  description
                    "Configure a higher priority VRRP backup group to preempt a lower priority VRRP master.";
                  leaf preempt-enable {
                    type boolean;
                    default "true";
                    description
                      "Enable/disable whether a high priority VRRP backup group can preempt the master state.";
                  }
    
                  leaf delay-time {
                    when
                      "../preempt-enable='true'";
                    type uint16 {
                      range "0..10800";
                    }
                    units "s";
                    default "0";
                    description
                      "Preemption delay.";
                  }
                }  // container preempt
    
                leaf adver-interval {
                  type uint32 {
                    range "100..255000";
                  }
                  units "ms";
                  default "1000";
                  description
                    "Configure an interval at which the master sends VRRP advertisement packets. This interval must be a multiple of 1000. If the device supports fast advertisement sending, this interval can be set to 100ms 200ms or 500 ms.";
                }
    
                leaf authentication-mode {
                  type vrrpauthen-mode;
                  must
                    "((not(../../../../../ifm:type='LoopBack') and not(../authentication-mode='hmac-sha256')) or ((../../../../../ifm:type='LoopBack') and not(../authentication-mode='simple'))) and ((../authentication-mode='none' and not(../authentication-key)) or (not(../authentication-mode='none') and ../authentication-key))";
                  default "none";
                  description
                    "Authentication type used for VRRP packet exchanges between VRRP groups. The values are as follows: noAuthentication, simpleTextPassword, md5Authentication.";
                }
    
                leaf isplain {
                  when
                    "../authentication-mode='simple'";
                  type boolean;
                  must
                    "../authentication-mode='simple' and ../authentication-key";
                  default "false";
                  description
                    "Enable/disable selecting the display mode of an authentication key.";
                }
    
                leaf authentication-key {
                  when
                    "not(../authentication-mode='none')";
                  type pub-type:password {
                    length "1..128";
                    pattern '(\S+.*\S+|\S*)';
                  }
                  must
                    "(../authentication-mode='none' and not(../authentication-key)) or (not(../authentication-mode='none') and ../authentication-key)";
                  description
                    "Authentication key, which is set based on the authentication type. Value description: If non-authentication is specified, the value is empty. If simple authentication, MD5 authentication, or HMAC-SHA256 authentication is specified, the value is a string with the length ranging from 1 to 8 bytes or a ciphertext password with the corresponding length.";
                }
    
                leaf link-bfddown-num {
                  type uint8 {
                    range "1..8";
                  }
                  description
                    "Specify the threshold for the number of link BFD sessions in the Down state tracked by the MVRRP backup group.";
                }
    
                leaf hold-multiper {
                  type uint8 {
                    range "3..10";
                  }
                  default "3";
                  description
                    "Set the hello packet sending interval multiplier.";
                }
    
                leaf backup-forward {
                  type boolean;
                  default "false";
                  description
                    "Enable/disable VRRP backup forward mode.";
                }
    
                leaf fast-resume {
                  when "../admin-flag";
                  type boolean;
                  default "false";
                  description
                    "Enable/disable VRRP fast resume mode.";
                }
    
                leaf v3-sendmode {
                  when
                    "/vrrp:vrrp/vrrp:global/vrrp:version='v3'";
                  type vrrp-v3-sendmode;
                  default "v3-only";
                  description
                    "VRRP advertisement packet mode on the interface.";
                }
    
                choice vrrp-type {
                  description "Type of VRRP.";
                  case member-vrrp {
                    description "Member VRRP.";
                    leaf admin-id {
                      type uint8 {
                        range "1..255";
                      }
                      must
                        "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/../vrrp:admin-if-name]/ip:ipv4/vrrp:vrrp/vrrp:groups/vrrp:group[vrrp:id=current()]/vrrp:admin-flag";
                      description
                        "Tracked MVRRP ID.";
                    }
    
                    leaf admin-if-name {
                      type leafref {
                        path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                      }
                      must
                        "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ip:ipv4/vrrp:vrrp/vrrp:groups/vrrp:group[vrrp:id=current()/../vrrp:admin-id]/vrrp:admin-flag";
                      description
                        "Tracked MVRRP interface name.";
                    }
    
                    leaf unflowdown {
                      when
                        "../admin-id and ../admin-if-name";
                      type boolean;
                      default "false";
                      description
                        "Enable/disable the flowdown function for service VRRP.";
                    }
                  }  // case member-vrrp
    
                  case admin-vrrp {
                    description "Admin VRRP.";
                    leaf admin-flag {
                      type empty;
                      description
                        "Management VRRP.";
                    }
    
                    leaf admin-ignore-ifdown {
                      when "../admin-flag";
                      type boolean;
                      default "false";
                      description
                        "Enable/disable ignoring an interface down event.";
                    }
    
                    leaf init-state-holdtime {
                      when
                        "../admin-ignore-ifdown='true'";
                      type uint32 {
                        range "0..3600";
                      }
                      units "s";
                      description
                        "Hold time of the Initialize state after the management VRRP backup group is configured to ignore an interface down event.";
                    }
                  }  // case admin-vrrp
                }  // choice vrrp-type
    
                leaf type {
                  type vrrp-type;
                  default "normal";
                  config false;
                  description
                    "Type of a VRRP backup group.";
                }
    
                leaf virtual-mac {
                  type pub-type:mac-address;
                  config false;
                  description
                    "Virtual MAC address of the VRRP group.";
                }
    
                leaf state {
                  type vrrp-oper-state;
                  config false;
                  description
                    "Running status of the VRRP group. This object has three defined values.
    Initialize: The VRRP group is waiting for a startup event.
    Backup: The VRRP group is monitoring the availability of the master VRRP group.
    Master: The VRRP group is forwarding packets for IP addresses that are associated with this device.";
                }
    
                leaf run-priority {
                  type uint8 {
                    range "1..255";
                  }
                  config false;
                  description
                    "This object specifies the priority for master VRRP group election. A larger value indicates a higher priority. A priority of 0, although not settable, is sent by the master VRRP group to indicate that this VRRP group has ceased to participate in VRRP and a backup VRRP group should change to a new master. A priority of 255 is used for the device that owns the associated IP addresses.";
                }
    
                leaf master-priority {
                  type uint8 {
                    range "0..255";
                  }
                  config false;
                  description
                    "Priority of the master VRRP group in the VRRP backup group.";
                }
    
                leaf master-ip {
                  type inet:ipv4-address-no-zone;
                  config false;
                  description
                    "IP address of the master router in the VRRP backup group.";
                }
    
                leaf local-if-ip {
                  type inet:ipv4-address-no-zone;
                  config false;
                  description
                    "Local IP address of the interface in the VRRP backup group.";
                }
    
                leaf create-time {
                  type yang:date-and-time;
                  config false;
                  description
                    "Time when the VRRP backup group was created.";
                }
    
                leaf last-change-time {
                  type yang:date-and-time;
                  config false;
                  description
                    "Time when the status of the VRRP backup group last changed.";
                }
    
                container virtual-ips {
                  description
                    "List of IP address table related to VRRP groups. A VRRP backup group can have 0 to 16 extended virtual IP addresses.";
                  list virtual-ip {
                    key "address";
                    max-elements 16;
                    description
                      "Configure virtual IP address configuration. A VRRP backup group can have 0 to 16 extended virtual IP addresses.";
                    leaf address {
                      type inet:ipv4-address-no-zone;
                      must
                        "/ifm:ifm/ifm:interfaces/ifm:interface/ip:ipv4/vrrp:vrrp/vrrp:groups/vrrp:group/vrrp:virtual-ips/vrrp:virtual-ip[vrrp:address!=current()]";
                      description
                        "Virtual IP address.";
                    }
    
                    leaf mask {
                      type inet:ipv4-address-no-zone;
                      description
                        "Virtual IP address mask.";
                    }
    
                    leaf vgmp-role {
                      type vgmp-type;
                      default "active";
                      description
                        "The configuration state of VRRP.";
                    }
                  }  // list virtual-ip
                }  // container virtual-ips
    
                container track-interfaces {
                  when "not(../admin-id)";
                  description
                    "List of interfaces tracked by a VRRP backup group. A VRRP backup group can track a maximum of 16 interfaces.";
                  list track-interface {
                    key "if-name";
                    max-elements 16;
                    description
                      "Configure interface tracked by a VRRP backup group.";
                    leaf if-name {
                      type leafref {
                        path
                          "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                      }
                      description
                        "Name of the interface tracked by the VRRP backup group.";
                    }
    
                    leaf priority-change {
                      type uint8 {
                        range "1..255";
                      }
                      mandatory true;
                      description
                        "Value by which the priority increases or reduces when the VRRP backup group tracks the interface.";
                    }
    
                    leaf track-mode {
                      type vrrptrack-mode;
                      default "reduce";
                      description
                        "Mode in which the VRRP backup group tracks the interface.";
                    }
                  }  // list track-interface
                }  // container track-interfaces
    
                container track-3ahs {
                  when "not(../admin-id)";
                  description
                    "List of EFM sessions tracked by the VRRP backup group.";
                  list track-3ah {
                    key "track-if-name";
                    max-elements 8;
                    description
                      "Configure EFM session tracked by the VRRP backup group.";
                    leaf track-if-name {
                      type leafref {
                        path
                          "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                      }
                      description
                        "Name of the interface of the EFM session tracked by the VRRP backup group.";
                    }
                  }  // list track-3ah
                }  // container track-3ahs
    
                container track-bfds {
                  when "not(../admin-id)";
                  description
                    "List of BFD sessions tracked by the VRRP backup group.";
                  list track-bfd {
                    key "session-name session-type";
                    max-elements 17;
                    description
                      "Configure BFD session tracked by the VRRP backup group.";
                    leaf session-name {
                      type leafref {
                        path
                          "/bfd:bfd/bfd:sessions/bfd:session/bfd:name";
                      }
                      description
                        "Name of the BFD session tracked by the VRRP backup group.";
                    }
    
                    leaf session-type {
                      type vrrp-bfd-type;
                      description
                        "Type of the BFD session tracked by the VRRP backup group.";
                    }
    
                    leaf priority-change {
                      when
                        "../session-type='normal'";
                      type uint8 {
                        range "1..255";
                      }
                      mandatory true;
                      description
                        "Value by which the priority increases or reduces when the VRRP backup group tracks the common BFD session.";
                    }
    
                    leaf track-mode {
                      when
                        "../session-type='normal'";
                      type vrrp-track-mode;
                      default "reduce";
                      description
                        "Mode in which the VRRP backup group tracks the BFD session.";
                    }
    
                    leaf session-id {
                      type uint32 {
                        range "1..32768";
                      }
                      config false;
                      description
                        "ID of the BFD session tracked by the VRRP backup group.";
                    }
    
                    leaf session-state {
                      type vrrp-track-bfd-state;
                      config false;
                      description
                        "State of the BFD session tracked by the VRRP backup group.";
                    }
                  }  // list track-bfd
                }  // container track-bfds
    
                container track-mtgrps {
                  description
                    "List of VRRP backup groups to track interface monitoring groups.";
                  list track-mtgrp {
                    key "monitor-group-name";
                    max-elements 3;
                    description
                      "Configure VRRP backup groups to track interface monitoring groups.";
                    leaf monitor-group-name {
                      type leafref {
                        path
                          "/monitor-group:monitor-group/monitor-group:groups/monitor-group:group/monitor-group:name";
                      }
                      description
                        "Name of the interface monitoring group tracked by a VRRP backup group.";
                    }
    
                    leaf failure-ratio {
                      type uint8 {
                        range "1..100";
                      }
                      mandatory true;
                      description
                        "Link failure ratio threshold for an interface monitoring group.";
                    }
    
                    leaf priority-change {
                      when
                        "../track-mode='reduce'";
                      type uint8 {
                        range "1..255";
                      }
                      mandatory true;
                      description
                        "Value by which the priority of the VRRP backup group reduces if the status of the tracked interface monitoring group changes to Down.";
                    }
    
                    leaf track-mode {
                      type mtgrptrack-mode;
                      default "reduce";
                      description
                        "Mode in which a VRRP backup group tracks an interface monitoring group.";
                    }
                  }  // list track-mtgrp
                }  // container track-mtgrps
    
                container track-nqas {
                  description
                    "List of NQA sessions tracked by the VRRP backup group.";
                  list track-nqa {
                    key "admin-name test-name";
                    max-elements 8;
                    description
                      "Configure a VRRP backup group to track NQA test instances.";
                    leaf admin-name {
                      type leafref {
                        path
                          "/nqa:nqa/nqa:instances/nqa:instance/nqa:admin-name";
                      }
                      description
                        "Name of the tracked NQA administrator.";
                    }
    
                    leaf test-name {
                      type leafref {
                        path
                          "/nqa:nqa/nqa:instances/nqa:instance/nqa:test-name";
                      }
                      must
                        "(/nqa:nqa/nqa:instances/nqa:instance[nqa:test-name=current()]/nqa:icmp-input/nqa:ni-name) and (/nqa:nqa/nqa:instances/nqa:instance[nqa:admin-name=current()/../vrrp:admin-name]/nqa:icmp-input/nqa:ni-name)";
                      description
                        "Name of the tracked NQA test instance.";
                    }
    
                    leaf priority-change {
                      type uint8 {
                        range "1..255";
                      }
                      default "10";
                      description
                        "Value by which the priority reduces when the VRRP backup group tracks NQA.";
                    }
                  }  // list track-nqa
                }  // container track-nqas
    
                container track-ip-routes {
                  description
                    "List of VRRP backup groups to track IP routes.";
                  list track-ip-route {
                    key "vpn-name ip-address mask-length";
                    description
                      "Configure VRRP backup groups to track IP route.";
                    leaf vpn-name {
                      type leafref {
                        path
                          "/ni:network-instance/ni:instances/ni:instance/ni:name";
                      }
                      description
                        "VPN instance name.";
                    }
    
                    leaf ip-address {
                      type inet:ipv4-address-no-zone;
                      description
                        "Specifies the destination IP address of a route to be tracked.";
                    }
    
                    leaf mask-length {
                      type uint8 {
                        range "0..32";
                      }
                      must
                        "not(../ip-address!='0.0.0.0' and ../mask-length=0)";
                      description
                        "Specifies the destination IP address mask length of a route to be tracked.";
                    }
    
                    leaf priority-change {
                      type uint8 {
                        range "1..255";
                      }
                      mandatory true;
                      description
                        "Value by which the priority increases or reduces when the VRRP backup group tracks IP route.";
                    }
    
                    leaf track-mode {
                      type vrrp-track-mode;
                      default "reduce";
                      description
                        "Mode in which the VRRP backup group tracks IP route.";
                    }
                  }  // list track-ip-route
                }  // container track-ip-routes
    
                container statistics {
                  config false;
                  description
                    "This is a table statistics for virtual routers. This table lists statistics of the virtual routers, including the number of times that the status changes to Master and the number of received broadcast packets.";
                  leaf change-master-num {
                    type uint32;
                    config false;
                    description
                      "Total number of times that this virtual router's state has changed to master.";
                  }
    
                  leaf send-packets-num {
                    type uint32;
                    config false;
                    description
                      "Total number of VRRP advertisement packets sent by this virtual router.";
                  }
    
                  leaf receive-packets-num {
                    type uint32;
                    config false;
                    description
                      "Total number of VRRP advertisement packets received by this virtual router.";
                  }
    
                  leaf adver-diff-num {
                    type uint32;
                    config false;
                    description
                      "Total number of received VRRP advertisement packets with the advertisement interval different from the locally configured one.";
                  }
    
                  leaf authentication-failures {
                    type uint32;
                    config false;
                    description
                      "Total number of VRRP packets that fail the authentication check.";
                  }
    
                  leaf ip-ttl-errors {
                    type uint32;
                    config false;
                    description
                      "Total number of received VRRP packets with the IP TTL not equal to 255.";
                  }
    
                  leaf receive-priority-zero {
                    type uint32;
                    config false;
                    description
                      "Total number of received VRRP packets with a priority of 0.";
                  }
    
                  leaf send-priority-zero {
                    type uint32;
                    config false;
                    description
                      "Total number of sent VRRP packets with a priority of 0.";
                  }
    
                  leaf invalid-type-packets {
                    type uint32;
                    config false;
                    description
                      "Number of received VRRP packets with an invalid value in the type field.";
                  }
    
                  leaf address-list-errs {
                    type uint32;
                    config false;
                    description
                      "Total number of packets received for which the address list does not match the locally configured list for the virtual router.";
                  }
    
                  leaf invalid-authen-type {
                    type uint32;
                    config false;
                    description
                      "Total number of packets received with an unknown authentication type.";
                  }
    
                  leaf authen-type-num {
                    type uint32;
                    config false;
                    description
                      "Total number of packets received with the authentication type not equal to the locally configured one.";
                  }
    
                  leaf receive-length-num {
                    type uint32;
                    config false;
                    description
                      "Total number of packets received with a packet length less than the length of the VRRP header.";
                  }
    
                  leaf receive-self-num {
                    type uint32;
                    config false;
                    description
                      "Total number of received packets that were sent by itself.";
                  }
    
                  leaf send-timeerr-num {
                    type uint32;
                    config false;
                    description
                      "Total number of sent packets with time error request.";
                  }
    
                  leaf receive-timeerr-num {
                    type uint32;
                    config false;
                    description
                      "Total number of received packets with time error request.";
                  }
    
                  leaf send-reply-num {
                    type uint32;
                    config false;
                    description
                      "Total number of sent packets with time error reply.";
                  }
    
                  leaf receive-reply-num {
                    type uint32;
                    config false;
                    description
                      "Total number of received packets with time error reply.";
                  }
    
                  leaf receive-attack-num {
                    type uint32;
                    config false;
                    description
                      "Total number of received attacking packets.";
                  }
    
                  leaf receive-faillearn-num {
                    type uint32;
                    config false;
                    description
                      "Total number of received packets and failed to learn interval.";
                  }
                }  // container statistics
              }  // list group
            }  // container groups
          }  // container vrrp
        }
    
        augment /ifm:ifm/ifm:interfaces/ifm:interface/ip:ipv6 {
          description
            "VRRP6 configurations on interface.";
          container vrrp6 {
            description
              "Configure all VRRP6 backup groups.";
            container group6s {
              description
                "List of all VRRP6 backup groups.";
              list group6 {
                must
                  "/ifm:ifm/ifm:interfaces/ifm:interface/ip:ipv6/ip:addresses/ip:address/ip:ip";
                key "id";
                unique "link-local-ip";
                description
                  "Configure this table for VRRP6 operations on a device. It lists a series of VRRP6 operation entries. You can use this table to query the VRRP6 configuration on the device. In addition, you can create VRRP6 groups and modify the configuration.";
                leaf id {
                  type uint8 {
                    range "1..255";
                  }
                  description
                    "VRRP6 backup group ID.";
                }
    
                leaf priority {
                  type uint8 {
                    range "1..254";
                  }
                  default "100";
                  description
                    "Configured VRRP6 priority. A larger value indicates a higher priority.";
                }
    
                container preempt {
                  description
                    "Configure a higher priority VRRP6 backup VRRP6 group to preempt a lower priority VRRP6 master.";
                  leaf preempt-enable {
                    type boolean;
                    default "true";
                    description
                      "Enable/disable the value of this object to control whether a high-priority VRRP6 group can preempt the master state.";
                  }
    
                  leaf delay-time {
                    when
                      "../preempt-enable='true'";
                    type uint16 {
                      range "0..3600";
                    }
                    units "s";
                    default "0";
                    description
                      "Preemption delay.";
                  }
                }  // container preempt
    
                leaf adver-interval {
                  type uint32 {
                    range "1000..40950";
                  }
                  units "ms";
                  default "1000";
                  description
                    "Configure an interval (in milliseconds) at which the master sends VRRP advertisement packets. This interval must be a multiple of 10 that is no less than 1000ms. If the device supports fast advertisement sending, this interval can be set to 500ms.";
                }
    
                leaf link-local-ip {
                  ext:operation-exclude "update" {
                    description "The link-local-ip can not be modified.";
                  }
                  type inet:ipv6-address-no-zone;
                  description
                    "Link local IP address of the interface in the VRRP6 backup group.";
                }
    
                leaf vgmp-role {
                  when "../link-local-ip";
                  type vgmp-type;
                  default "active";
                  description
                    "The configuration state of VRRP6.";
                }
    
                choice vrrp6-type {
                  description
                    "Type of a VRRP6 backup group.";
                  case admin {
                    description
                      "Admin type of a VRRP6 backup group.";
                    leaf adminvrrp6 {
                      type empty;
                      description
                        "Config admin VRRP6 backup groups.";
                    }
    
                    leaf admin-ignore-ifdown {
                      when "../adminvrrp6";
                      type boolean;
                      default "false";
                      description
                        "Enable/disable MVRRP6 to ignore an interface down event.";
                    }
    
                    leaf init-state-holdtime {
                      when
                        "../admin-ignore-ifdown='true'";
                      type uint32 {
                        range "0..3600";
                      }
                      description
                        "Hold time of the initialize state after the management VRRP6 backup group is configured to ignore an interface down event.";
                    }
                  }  // case admin
    
                  case member {
                    description
                      "Member type of a VRRP6 backup group.";
                    leaf admin-id {
                      type uint8 {
                        range "1..255";
                      }
                      must
                        "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/../vrrp:admin-if-name]/ip:ipv6/vrrp:vrrp6/vrrp:group6s/vrrp:group6[vrrp:id=current()]/vrrp:adminvrrp6";
                      description
                        "Tracked MVRRP6 ID.";
                    }
    
                    leaf admin-if-name {
                      type leafref {
                        path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                      }
                      must
                        "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ip:ipv6/vrrp:vrrp6/vrrp:group6s/vrrp:group6[vrrp:id=current()/../vrrp:admin-id]/vrrp:adminvrrp6";
                      description
                        "Tracked MVRRP6 interface name.";
                    }
    
                    leaf unflowdown {
                      when
                        "../admin-id and ../admin-if-name";
                      type boolean;
                      default "false";
                      description
                        "Enable/disable the flowdown function for service VRRP6.";
                    }
    
                    leaf na-copy-to-member {
                      when
                        "../unflowdown='true' and ../../../../../ifm:type='Eth-Trunk'";
                      type boolean;
                      default "false";
                      description
                        "Enable/disable VRRP6 NA copy to member mode.";
                    }
                  }  // case member
                }  // choice vrrp6-type
    
                leaf hold-multiper {
                  type uint8 {
                    range "3..10";
                  }
                  default "3";
                  description
                    "Set the hello packet sending interval multiplier.";
                }
    
                leaf backup-forward {
                  type boolean;
                  default "false";
                  description
                    "Enable/disable VRRP6 backup forward mode.";
                }
    
                leaf state {
                  type vrrp-oper-state;
                  config false;
                  description
                    "Running status of the virtual router. This object has three defined values.
    Initialize: The virtual router is waiting for a startup event.
    Backup: The virtual router is monitoring the availability of the master router.
    Master: The virtual router is forwarding packets for IP addresses that are associated with this router.";
                }
    
                leaf run-priority {
                  type uint8 {
                    range "1..255";
                  }
                  config false;
                  description
                    "This object specifies the priority for master router election. A larger value indicates a higher priority. A priority of 0, although not settable, is sent by the master router to indicate that this router has ceased to participate in VRRP6 and a backup router should change to a new master. A priority of 255 is used for the device that owns the associated IP addresses.";
                }
    
                leaf master-priority {
                  type uint8 {
                    range "1..255";
                  }
                  config false;
                  description
                    "Priority of the master router in the VRRP6 backup group.";
                }
    
                leaf master-ip {
                  type inet:ipv6-address-no-zone;
                  config false;
                  description
                    "IP address of the master router in the VRRP6 backup group.";
                }
    
                leaf local-ifip {
                  type inet:ipv6-address-no-zone;
                  config false;
                  description
                    "Local IP address of the interface in the VRRP6 backup group.";
                }
    
                leaf create-time {
                  type yang:date-and-time;
                  config false;
                  description
                    "Time when the VRRP6 backup group was created.";
                }
    
                leaf last-chage-time {
                  type yang:date-and-time;
                  config false;
                  description
                    "Time when the status of the VRRP6 backup group last changed.";
                }
    
                leaf run-adver-interval {
                  type uint32 {
                    range "100..40950";
                  }
                  units "ms";
                  default "1000";
                  config false;
                  description
                    "Running interval between sending advertisements. Only the master router sends VRRP6 advertisements.";
                }
    
                leaf remain-time {
                  type uint16 {
                    range "0..3600";
                  }
                  units "s";
                  default "0";
                  config false;
                  description
                    "Remaining time for preemption.";
                }
    
                leaf virtual-mac {
                  type pub-type:mac-address;
                  config false;
                  description
                    "Virtual MAC address of the virtual router.";
                }
    
                leaf type {
                  type vrrp-type;
                  default "normal";
                  config false;
                  description
                    "Type of a VRRP6 backup group.";
                }
    
                container virtual-ips {
                  when "../link-local-ip";
                  description
                    "List of IP addresses related to VRRP6 groups. A VRRP6 backup group can have 0 to 15 extended virtual IP addresses.";
                  list virtual-ip {
                    key "ip-address";
                    max-elements 15;
                    description
                      "Configure virtual IP address.";
                    leaf ip-address {
                      type inet:ipv6-address-no-zone;
                      must
                        "/ifm:ifm/ifm:interfaces/ifm:interface/ip:ipv6/vrrp:vrrp6/vrrp:group6s/vrrp:group6/vrrp:virtual-ips/vrrp:virtual-ip[vrrp:ip-address!=current()]";
                      description
                        "The link local address must be configured first and the virtual IP address must be in the same network segment as the IP address of the interface.";
                    }
                  }  // list virtual-ip
                }  // container virtual-ips
    
                container track-interfaces {
                  when "not(../admin-id)";
                  description
                    "List of interfaces tracked by a VRRP6 backup group. A VRRP6 backup group can track a maximum of 16 interfaces.";
                  list track-interface {
                    key "track-ifname";
                    max-elements 16;
                    description
                      "Configure interface tracked by a VRRP6 backup group.";
                    leaf track-ifname {
                      type leafref {
                        path
                          "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name";
                      }
                      description
                        "Name of the interface tracked by the VRRP6 backup group.";
                    }
    
                    leaf priority-change {
                      type uint8 {
                        range "1..255";
                      }
                      mandatory true;
                      description
                        "Value by which the priority increases or reduces when the VRRP6 backup group tracks the interface.";
                    }
    
                    leaf track-mode {
                      type vrrp-track-mode;
                      default "reduce";
                      description
                        "Mode in which the VRRP6 backup group tracks the interface.";
                    }
                  }  // list track-interface
                }  // container track-interfaces
    
                container track-bfds {
                  description
                    "List of BFD sessions tracked by the VRRP6 backup group.";
                  list track-bfd {
                    key "bfd-sessname";
                    max-elements 17;
                    description
                      "Configure BFD session tracked by the VRRP6 backup group.";
                    leaf bfd-sessname {
                      type leafref {
                        path
                          "/bfd:bfd/bfd:sessions/bfd:session/bfd:name";
                      }
                      description
                        "Name of the BFD session tracked by the VRRP6 backup group.";
                    }
    
                    leaf bfd-type {
                      type vrrp-bfd-type;
                      mandatory true;
                      description
                        "Type of the BFD session tracked by the VRRP6 backup group.";
                    }
    
                    leaf priority-change {
                      when
                        "../bfd-type='normal'";
                      type uint8 {
                        range "1..255";
                      }
                      mandatory true;
                      description
                        "Value by which the priority increases or reduces when the VRRP6 backup group tracks the common BFD session.";
                    }
    
                    leaf track-mode {
                      when
                        "../bfd-type='normal'";
                      type vrrp-track-mode;
                      default "reduce";
                      description
                        "Mode in which the VRRP6 backup group tracks the BFD session.";
                    }
    
                    leaf bfd-sessid {
                      type uint32 {
                        range "1..32768";
                      }
                      config false;
                      description
                        "ID of the BFD session tracked by the VRRP6 backup group.";
                    }
                  }  // list track-bfd
                }  // container track-bfds
    
                container statistics {
                  config false;
                  description
                    "This is a table statistics for virtual routers. This table lists statistics of the virtual routers, including the number of times that the status changes to master and the number of received broadcast packets.";
                  leaf change-master-num {
                    type uint32;
                    config false;
                    description
                      "Total number of times that this virtual router's state has changed to master.";
                  }
    
                  leaf send-adver {
                    type uint32;
                    config false;
                    description
                      "Total number of VRRP6 advertisement packets sent by this virtual router.";
                  }
    
                  leaf send-packets-num {
                    type uint32;
                    config false;
                    description
                      "Total number of VRRP6 advertisement packets received by this virtual router.";
                  }
    
                  leaf adver-diff-num {
                    type uint32;
                    config false;
                    description
                      "Total number of received VRRP6 advertisement packets with the advertisement interval different from the locally configured one.";
                  }
    
                  leaf authentication-failures {
                    type uint32;
                    config false;
                    description
                      "Total number of VRRP6 packets that fail the authentication check.";
                  }
    
                  leaf ip-ttl-errors {
                    type uint32;
                    config false;
                    description
                      "Total number of received VRRP6 packets with the IP TTL not equal to 255.";
                  }
    
                  leaf receive-priority-zero {
                    type uint32;
                    config false;
                    description
                      "Total number of received VRRP6 packets with a priority of 0.";
                  }
    
                  leaf send-priority-zero {
                    type uint32;
                    config false;
                    description
                      "Total number of sent VRRP6 packets with a priority of 0.";
                  }
    
                  leaf invalid-type-packets {
                    type uint32;
                    config false;
                    description
                      "Number of received VRRP6 packets with an invalid value in the type field.";
                  }
    
                  leaf address-list-errs {
                    type uint32;
                    config false;
                    description
                      "Total number of packets received for which the address list does not match the locally configured list for the virtual router.";
                  }
    
                  leaf invalid-authen-type {
                    type uint32;
                    config false;
                    description
                      "Total number of packets received with an unknown authentication type.";
                  }
    
                  leaf authen-type-num {
                    type uint32;
                    config false;
                    description
                      "Total number of packets received with the authentication type not equal to the locally configured one.";
                  }
    
                  leaf receive-length-num {
                    type uint32;
                    config false;
                    description
                      "Total number of packets received with a packet length less than the length of the VRRP6 header.";
                  }
    
                  leaf receive-self-num {
                    type uint32;
                    config false;
                    description
                      "Total number of received packets that were sent by itself.";
                  }
    
                  leaf receive-attack-num {
                    type uint32;
                    config false;
                    description
                      "Total number of received attacking packets.";
                  }
    
                  leaf receive-faillearn-num {
                    type uint32;
                    config false;
                    description
                      "Total number of received packets and failed to learn interval.";
                  }
                }  // container statistics
              }  // list group6
            }  // container group6s
          }  // container vrrp6
        }
      }  // module huawei-vrrp
    

© 2023 YumaWorks, Inc. All rights reserved.