A YANG Data Model for Virtual Router Redundancy Protocol (VRRP)
draft-liu-rtgwg-yang-vrrp-00

The information below is for an old version of the document
Document Type Active Internet-Draft (individual)
Authors Xufeng Liu  , Athanasios Kyparlis 
Last updated 2014-12-04
Replaced by RFC 8347
Stream (None)
Formats pdf htmlized (tools) htmlized bibtex
Stream Stream state (No stream defined)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                            X. Liu
Internet-Draft                                              A. Kyparlis
Intended status: Standards Track                               Ericsson
Expires: June 3, 2015                                  December 3, 2014

      A YANG Data Model for Virtual Router Redundancy Protocol (VRRP)
                     draft-liu-rtgwg-yang-vrrp-00.txt

Abstract

   This document describes a data model for Virtual Router Redundancy
   Protocol (VRRP). Both version 2 and version 3 of VRRP are covered.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

   This Internet-Draft will expire on January 1, 2015.

Copyright Notice

   Copyright (c) 2014 IETF Trust and the persons identified as the
   document authors. All rights reserved.

Liu                      Expires June 3, 2015                  [Page 1]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document. Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.

Table of Contents

   1. Introduction...................................................2
      1.1. Terminology...............................................2
   2. VRRP YANG model overview.......................................3
   3. VRRP YANG module...............................................6
   4. Security Considerations.......................................21
   5. References....................................................21
      5.1. Normative References.....................................21
      5.2. Informative References...................................21

1. Introduction

   This document introduces a YANG [RFC6020] data model for Virtual
   Router Redundancy Protocol (VRRP) [RFC3768][RFC5798]. VRRP provides
   higher resiliency by specifying an election protocol that dynamically
   assigns responsibility for a virtual router to one of the VRRP
   routers on a LAN.

   This YNAG model supports both version 2 and version 3 of VRRP. VRRP
   version 2 defined in [RFC3768] supports IPv4. VRRP version 3 defined
   in [RFC5798] supports both IPv4 and IPv6.

1.1. Terminology

   The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14, [RFC2119].

   The following terms are defined in [RFC6020] and are not redefined
   here:

      o  augment

      o  data model

      o  data node

Liu                      Expires June 3, 2015                  [Page 2]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

2. VRRP YANG model overview

   This document defines the YANG module "ietf-vrrp", which has the
   following structure:

   module: ietf-vrrp
   augment /if:interfaces/if:interface/ip:ipv4:
      +--rw vrrp
         +--rw vrrp-instance* [vrid]
            +--rw vrid                            uint8
            +--rw version?                        enumeration
            +--rw (advertise-interval-choice)?
            |  +--:(v2)
            |  |  +--rw advertise-interval-sec?         uint8
            |  +--:(v3)
            |     +--rw advertise-interval-centi-sec?   uint16
            +--rw is-owner?                       boolean
            +--rw init-wait?                      uint16
            +--rw log-state-change?               boolean
            +--rw preempt!
            |  +--rw hold-time?   uint16
            +--rw priority?                       uint8
            +--rw accept-mode?                    boolean
            +--rw virtual-ipv4-addresses
               +--rw virtual-ipv4-address* [ipv4-address]
                  +--rw ipv4-address    inet:ipv4-address
   augment /if:interfaces/if:interface/ip:ipv6:
      +--rw vrrp
         +--rw vrrp-instance* [vrid]
            +--rw vrid                            uint8
            +--rw version?                        enumeration
            +--rw (advertise-interval-choice)?
            |  +--:(v2)
            |  |  +--rw advertise-interval-sec?         uint8
            |  +--:(v3)
            |     +--rw advertise-interval-centi-sec?   uint16
            +--rw is-owner?                       boolean
            +--rw init-wait?                      uint16
            +--rw log-state-change?               boolean
            +--rw preempt!
            |  +--rw hold-time?   uint16
            +--rw priority?                       uint8

Liu                      Expires June 3, 2015                  [Page 3]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

            +--rw accept-mode?                    boolean
            +--rw virtual-ipv4-addresses
               +--rw virtual-ipv4-address* [ipv4-address]
                  +--rw ipv4-address    inet:ipv4-address
   augment /if:interfaces-state/if:interface/ip:ipv4:
      +--ro vrrp
         +--ro vrrp-instance* [vrid]
            +--ro vrid                            uint8
            +--ro version?                        enumeration
            +--ro (advertise-interval-choice)?
            |  +--:(v2)
            |  |  +--ro advertise-interval-sec?         uint8
            |  +--:(v3)
            |     +--ro advertise-interval-centi-sec?   uint16
            +--ro is-owner?                       boolean
            +--ro init-wait?                      uint16
            +--ro log-state-change?               boolean
            +--ro preempt!
            |  +--ro hold-time?   uint16
            +--ro priority?                       uint8
            +--ro accept-mode?                    boolean
            +--ro virtual-ipv4-addresses
            |  +--ro virtual-ipv4-address* [ipv4-address]
            |     +--ro ipv4-address    inet:ipv4-address
            +--ro state?                          enumeration
            +--ro last-adv-source?                inet:ip-address
            +--ro up-time?                        yang:date-and-time
            +--ro master-down-interval?           uint32
            +--ro skew-time?                      uint32
            +--ro last-event?                     string
            +--ro statistics
               +--ro master-transitions?       yang:counter32
               +--ro new-master-reason?        enumeration
               +--ro advertisement-recv?       yang:counter64
               +--ro advertisement-sent?       yang:counter64
               +--ro interval-errors?          yang:counter64
               +--ro ip-ttl-errors?            yang:counter64
               +--ro riority-zero-pkts-rcvd?   yang:counter64
               +--ro riority-zero-pkts-sent?   yang:counter64
               +--ro invalid-type-pkts-rcvd?   yang:counter64
               +--ro address-list-errors?      yang:counter64

Liu                      Expires June 3, 2015                  [Page 4]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

               +--ro packet-length-errors?     yang:counter64
               +--ro wrong-owner-errors?       yang:counter64
               +--ro self-orig-pkt-recv?       yang:counter64
   augment /if:interfaces-state/if:interface/ip:ipv6:
      +--ro vrrp
         +--ro vrrp-instance* [vrid]
            +--ro vrid                            uint8
            +--ro version?                        enumeration
            +--ro (advertise-interval-choice)?
            |  +--:(v2)
            |  |  +--ro advertise-interval-sec?         uint8
            |  +--:(v3)
            |     +--ro advertise-interval-centi-sec?   uint16
            +--ro is-owner?                       boolean
            +--ro init-wait?                      uint16
            +--ro log-state-change?               boolean
            +--ro preempt!
            |  +--ro hold-time?   uint16
            +--ro priority?                       uint8
            +--ro accept-mode?                    boolean
            +--ro virtual-ipv6-addresses
            |  +--ro virtual-ipv6-address* [ipv6-address]
            |     +--ro ipv6-address    inet:ipv6-address
            +--ro state?                          enumeration
            +--ro last-adv-source?                inet:ip-address
            +--ro up-time?                        yang:date-and-time
            +--ro master-down-interval?           uint32
            +--ro skew-time?                      uint32
            +--ro last-event?                     string
            +--ro statistics
               +--ro master-transitions?       yang:counter32
               +--ro new-master-reason?        enumeration
               +--ro advertisement-recv?       yang:counter64
               +--ro advertisement-sent?       yang:counter64
               +--ro interval-errors?          yang:counter64
               +--ro ip-ttl-errors?            yang:counter64
               +--ro riority-zero-pkts-rcvd?   yang:counter64
               +--ro riority-zero-pkts-sent?   yang:counter64
               +--ro invalid-type-pkts-rcvd?   yang:counter64
               +--ro address-list-errors?      yang:counter64
               +--ro packet-length-errors?     yang:counter64

Liu                      Expires June 3, 2015                  [Page 5]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

               +--ro wrong-owner-errors?       yang:counter64
               +--ro self-orig-pkt-recv?       yang:counter64
   rpcs:
      +---x clear-vrrp-statistics
         +--ro input
            +--ro clear-type?   enumeration
            +--ro interface?    if:interface-ref
            +--ro ip-version?   enumeration
            +--ro vrid-v4?      leafref
            +--ro vrid-v6?      leafref

3. VRRP YANG module

   <CODE BEGINS> file "ietf-vrrp@2014-11-24.yang"
   module ietf-vrrp {
     namespace "urn:ietf:params:xml:ns:yang:ietf-vrrp";
     // replace with IANA namespace when assigned
     prefix vrrp;

     import ietf-inet-types {
       prefix "inet";
     }

     import ietf-yang-types {
       prefix "yang";
     }

     import ietf-interfaces {
       prefix if;
     }

     import ietf-ip {
       prefix ip;
     }

     organization "TBD";
     contact "TBD";
     description
       "This YANG module defines a model for managing Virtual Router
       Redundancy Protocol (VRRP) version 2 and version 3.";

Liu                      Expires June 3, 2015                  [Page 6]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

     revision "2014-11-24" {
       description "Initial revision";
       reference
         "RFC 2787: Definitions of Managed Objects for the Virtual
          Router Redundancy Protocol.
          RFC 3768: Virtual Router Redundancy Protocol (VRRP).
          RFC 5798: Virtual Router Redundancy Protocol (VRRP) Version
          3.
          RFC 6527: Definitions of Managed Objects for the Virtual
          Router Redundancy Protocol Version 3 (VRRPv3).";
     }

     grouping vrrp-common-attributes {
       description
         "Goup of VRRP attributes common to version 2 and version 3";

       leaf vrid {
         type uint8 {
           range 1..255;
         }
         description "Virtual router ID.";
       }

       leaf version {
         type enumeration {
           enum 2 {
             description "VRRP version 2.";
           }
           enum 3 {
             description "VRRP version 3.";
           }
         }
         description "Version 2 or version 3 of VRRP.";
       }

       choice advertise-interval-choice {
         description
           "The options of advertisement interval at which VRRPv2
           or VRRPv3 advertisements are sent from the specified
           interface.";

Liu                      Expires June 3, 2015                  [Page 7]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

         case v2 {
           when "version = 2" {
             description "Applicable only to version 2.";
           }
           leaf advertise-interval-sec {
             type uint8 {
               range 1..254;
             }
             default 1;
             description
               "Configures the interval at which Virtual Router
               Redundancy Protocol Version 2 (VRRPv2) advertisements
               are sent from the specified interface.";
           }
         }

         case v3 {
           when "version = 3" {
             description "Applicable only to version 3.";
           }
           leaf advertise-interval-centi-sec {
             type uint16 {
               range 1..4095;
             }
             units centiseconds;
             default 100;
             description
               "Configures the interval at which Virtual Router
               Redundancy Protocol version 3 (VRRPv3) advertisements
               are sent from the specified interface.";
           }
         }
       } // advertise-interval-choice

       leaf is-owner {
         type boolean;
         description
           "Set to true if this VRRP router is owner.";
       }

Liu                      Expires June 3, 2015                  [Page 8]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

       leaf init-wait {
         type uint16 {
           range 1..3600;
         }
         units seconds;
         description
           "Time, in seconds, that a backup router in Initialize state
           delays before transitioning to Backup state.";
       }

       leaf log-state-change {
         type boolean;
         description
           "Generates VRRP state change messages each time the VRRP
           instance changes state (from up to down or down to up).";
       }

       container preempt {
         presence "Present if preempt is enabled.";
         description
           "Enables a higher priority Virtual Router Redundancy
           Protocol (VRRP) backup router to preempt a lower priority
           VRRP master.";
         leaf hold-time {
           type uint16;
           description
             "Hold time, in seconds, for which a higher priority VRRP
             backup router must wait before preempting a lower priority
             VRRP master.";
         }
       }

       leaf priority {
         type uint8 {
           range 1..254;
         }
         default 100;
         description
           "Configures the Virtual Router Redundancy Protocol (VRRP)
           election priority for the backup virtual router.";
       }

Liu                      Expires June 3, 2015                  [Page 9]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

     } // vrrp-common-attributes

     grouping vrrp-v3-attributes {
       description
         "Goup of VRRP versin 3 attributes.";

       leaf accept-mode {
         type boolean;
         description
           "Configures a virtual router in Master state to accept
           packets addressed to the IPv4 or IPv6 address of the owner
           even if it is not the IPv4 or IPv6 address owner.";
       }
     }

     grouping vrrp-ipv4-attributes {
       description
         "Goup of VRRP attributes for IPv4.";

       uses vrrp-common-attributes;

       uses vrrp-v3-attributes {
         when "version = 3" {
           description "Applicable only to version 3.";
         }
       }

       container virtual-ipv4-addresses {
         description
           "Configures the virtual IP address for the Virtual Router
           Redundancy Protocol (VRRP) interface.";

         list virtual-ipv4-address {
           key "ipv4-address";
           max-elements 16;
           description
             "Virtual IP addresses for a single VRRP instance. For a
             VRRP owner router, the virtual address must match one
             of the interface IP addresses on which the owner VRRP
             is configured.";

Liu                      Expires June 3, 2015                 [Page 10]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

           leaf ipv4-address {
             type inet:ipv4-address;
                 description
                   "Virtual IPv4 address.";
           }
         } // virtual-ipv4-address
       } // virtual-ipv4-addresses
     } // grouping vrrp-ipv4-attributes

     grouping vrrp-ipv6-attributes {
       description
         "Goup of VRRP attributes for IPv6.";

       uses vrrp-common-attributes;

       uses vrrp-v3-attributes {
         when "version = 3" {
           description "Uses VRRP version 3 attributes.";
         }
       } // uses vrrp-v3-attributes

       container virtual-ipv6-addresses {
         description
           "Configures the virtual IP address for the Virtual Router
            Redundancy Protocol (VRRP) interface.";
         list virtual-ipv6-address {
           key "ipv6-address";
           max-elements 2;
           description
             "Two IPv6 addresses are allowed. The first one must be
             a link-local address and the second one can be a
             link-local or global address.";

           leaf ipv6-address {
             type inet:ipv6-address;
             description
               "Virtual IPv4 address.";
           }
         } // virtual-ipv6-address
       } // virtual-ipv6-addresses
     } // grouping vrrp-ipv6-attributes

Liu                      Expires June 3, 2015                 [Page 11]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

     grouping vrrp-state-attributes {
       description
         "Goup of VRRP state attributes.";

       leaf state {
         type enumeration {
           enum none {
             description
               "Unknown state.";
           }
           enum init {
             description
               "Not initialized. Not ready to process events.";
           }
           enum wait {
             description
               "Indicates that all the virtual router is waiting
               for a startup event.";
           }
           enum backup {
             description
               "Indicates the virtual router is monitoring the
               availability of the master router.";
           }
           enum master {
             description
               "indicates that the virtual router is forwarding
               packets for IP addresses that are associated with
               this router.";
           }
         }
         description
           "Operational state.";
       }

       leaf last-adv-source {
         type inet:ip-address;
         description
           "Last advertised IPv4/IPv6 source address";
       }

Liu                      Expires June 3, 2015                 [Page 12]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

       leaf up-time {
         type yang:date-and-time;
         description
           "The time when this virtual router oper-state
           transitioned out of init state.";
       }

       leaf master-down-interval {
         type uint32;
         units centiseconds;
         description
           "Time interval for Backup to declare Master down.";
       }

       leaf skew-time {
         type uint32;
         units microseconds;
         description
           "Calculated based on the priority and adv interval
           configuration command parameters. See RFC 3768.";
       }

       leaf last-event {
         type string;
         description
           "Last reported event.";
       }

       container statistics {
         description
           "VRRP statistics.";

         leaf master-transitions {
           type yang:counter32;
           description
             "The total number of times that this virtual router's
             state has transitioned to master";
         }

         leaf new-master-reason {

Liu                      Expires June 3, 2015                 [Page 13]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

           type enumeration {
             enum not-master {
               description
                 "The virtual router was never transitioned to master
                 state,";
             }
             enum priority {
               description "Priority was higher.";
             }
             enum preempted {
               description "The master was preempted.";
             }
             enum master-no-response {
               description "Previous master did not response.";
             }
           }
           description
             "Indicates the reason for the virtual router to transition
             to master state.";
         }

         leaf advertisement-recv {
           type yang:counter64;
           description
             "The total number of VRRP advertisements received by
              this virtual router.";
         }

         leaf advertisement-sent {
           type yang:counter64;
           description
             "The total number of VRRP advertisements sent by
             this virtual router.";
         }

         leaf interval-errors {
           type yang:counter64;
           description
             "The total number of VRRP advertisement packets
             received for which the advertisement interval is
             different than the one configured for the local

Liu                      Expires June 3, 2015                 [Page 14]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

             virtual router";
         }

         leaf ip-ttl-errors {
           type yang:counter64;
           description
             "The total number of VRRP packets received by the
             virtual router with IP TTL (Time-To-Live) not equal
             to 255";
         }

         leaf riority-zero-pkts-rcvd {
           type yang:counter64;
           description
             "The total number of VRRP packets received by the
             virtual router with a priority of 0.";
         }

         leaf riority-zero-pkts-sent {
           type yang:counter64;
           description
             "The total number of VRRP packets sent by the
             virtual router with a priority of 0.";
         }

         leaf invalid-type-pkts-rcvd {
           type yang:counter64;
           description
             "The number of VRRP packets received by the virtual
             router with an invalid value in the 'type' field.";
         }

         leaf address-list-errors {
           type yang:counter64;
           description
             "The total number of packets received for which the
             address list does not match the locally configured
             list for the virtual router.";
         }

         leaf packet-length-errors {

Liu                      Expires June 3, 2015                 [Page 15]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

           type yang:counter64;
           description
             "The total number of packets received with a packet
             length less than the length of the VRRP header.";
         }

         leaf wrong-owner-errors {
           type yang:counter64;
           description
             "The number of VRRP packets received by the virtual
             router with an invalid owner.";
         }

         leaf self-orig-pkt-recv {
           type yang:counter64;
           description
             "The number of VRRP packets received by the virtual
             router originated by itself.";
         }
       } // container statistics
     } // grouping vrrp-state-attributes

     augment "/if:interfaces/if:interface/ip:ipv4" {
       description "Augment IPv4 interface.";

       container vrrp {
         description
           "Configures the Virtual Router Redundancy Protocol (VRRP)
           version 2 for IPv4.";

         list vrrp-instance {
           key vrid;
           description
             "Defines a virtual router, identified by a virtual router
             identifier (VRID), within IPv4 address space.";

           uses vrrp-ipv4-attributes;
         }
       }
     } // augment ipv4

Liu                      Expires June 3, 2015                 [Page 16]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

     augment "/if:interfaces/if:interface/ip:ipv6" {
       description "Augment IPv6 interface.";

       container vrrp {
         description
           "Configures the Virtual Router Redundancy Protocol (VRRP)
           version 2 or version 3 for IPv6.";

         list vrrp-instance {
           key vrid;
           description
             "Defines a virtual router, identified by a virtual router
             identifier (VRID), within IPv6 address space.";

           uses vrrp-ipv4-attributes;
         } // list vrrp-instance
       } // container vrrp
     } // augment ipv6

     augment "/if:interfaces-state/if:interface/ip:ipv4" {
       description "Augment IPv4 interface state.";

       container vrrp {
         description
           "State information of the Virtual Router Redundancy Protocol
           (VRRP) version 2 for IPv4.";

         list vrrp-instance {
           key vrid;
           description
             "States of a virtual router, identified by a virtual router
             identifier (VRID), within IPv4 address space.";

           uses vrrp-ipv4-attributes;
           uses vrrp-state-attributes;
         } // list vrrp-instance
       }
     }

     augment "/if:interfaces-state/if:interface/ip:ipv6" {
       description "Augment IPv6 interface state.";

Liu                      Expires June 3, 2015                 [Page 17]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

       container vrrp {
         description
           "State information of the Virtual Router Redundancy Protocol
           (VRRP) version 2 or version 3 for IPv6.";

         list vrrp-instance {
           key vrid;
           description
             "States of a virtual router, identified by a virtual router
             identifier (VRID), within IPv6 address space.";

           uses vrrp-ipv6-attributes;
           uses vrrp-state-attributes;
         } // list vrrp-instance
       }
     }

     rpc clear-vrrp-statistics {
       description
         "Clears Virtual Router Redundancy Protocol (VRRP) statistics.";

       input {
         description
           "Specify the information to be cleared";

         leaf clear-type {
           type enumeration {
             enum all {
               description
                 "Clears all VRRP statistics.";
             }
             enum global {
               description
                 "Clears global VRRP statistics.";
             }
             enum all-interface {
               description
                 "Clears VRRP statistics for all interfaces.";
             }
             enum interface {

Liu                      Expires June 3, 2015                 [Page 18]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

               description
                 "Clears VRRP statistics for the specified interface.";
             }
             enum virtual-router {
               description
                 "Clears VRRP statistics for the specified virtual
                 router.";
             }
             enum scheduler {
               description "Clear VRRP scheduler statistics.";
             }
           }
           description
             "Specify the type of information to be cleared.";
         }

         leaf interface {
           when  "../clear-type = interface or "
                 +"../clear-type = virtual-router" {
             description
               "Valid only when clear-type is interface.";
           }
           type if:interface-ref;
           description
             "Specify the interface whose statistics to be cleared.";
         }

         leaf ip-version {
           when "../clear-type = virtual-router" {
             description
               "Valid only when clear-type is virtual-router.";
           }
           type enumeration {
             enum 4 {
               description "IPv4";
             }
             enum 6 {
               description "IPv6";
             }
           }
           description "Specify the IP version.";

Liu                      Expires June 3, 2015                 [Page 19]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

         }

         leaf vrid-v4 {
           when "'../clear-type = virtual-router' and"
              + "'../ip-version = 4'" {
             description
               "Valid only when clear-type is virtual-router.";
           }
           type leafref {
             path "/if:interfaces/if:interface"
               + "[if:name = current()/../interface]/ip:ipv4/vrrp/"
               + "vrrp-instance/vrid";
           }
           description
             "Specify the virtual router whose statistics to be
              cleared.";
         }

         leaf vrid-v6 {
           when "'../clear-type = virtual-router' and"
              + "'../ip-version = 4'" {
             description
               "Valid only when clear-type is virtual-router.";
           }
           type leafref {
             path "/if:interfaces/if:interface"
               + "[if:name = current()/../interface]/ip:ipv6/vrrp/"
               + "vrrp-instance/vrid";
           }
           description
             "Specify the virtual router whose statistics to be
             cleared.";
         }
       } // input
     } // rpc clear-vrrp-statistics
   }
   <CODE ENDS>

Liu                      Expires June 3, 2015                 [Page 20]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

4. Security Considerations

   The abstract protocol used for sending the topology data MUST support
   authentication and SHOULD support encryption.  The data-model by
   itself does not create any security implications.

5. References

5.1. Normative References

   [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the
             Network Configuration Protocol (NETCONF)", RFC 6020,
             October 2010.

   [RFC6021] Schoenwaelder, J., "Common YANG Data Types", RFC 6021,
             October 2010.

   [RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A. Bierman,
             "Network Configuration Protocol (NETCONF)", RFC 6241, June
             2011.

   [RFC2234] Crocker, D. and Overell, P.(Editors), "Augmented BNF for
             Syntax Specifications: ABNF", RFC 2234, Internet Mail
             Consortium and Demon Internet Ltd., November 1997.

   [RFC2338] Knight, S., Weaver, D., Whipple, D., Hinden, R., Mitzel,
             D., Hunt, P., Higginson, P., Shand, M., and A. Lindem,
             "Virtual Router Redundancy Protocol", RFC 2338, April 1998.

   [RFC2787] Jewell, B. and D. Chuang, "Definitions of Managed Objects
             for the Virtual Router Redundancy Protocol", RFC 2787,
             March 2000.

   [RFC5798] Nadas, S., Ed., "Virtual Router Redundancy Protocol (VRRP)
             Version 3 for IPv4 and IPv6", RFC 5798, March 2010.

   [RFC6527] Tata, K., Ed., "Definitions of Managed Objects for the
             Virtual Router Redundancy Protocol Version 3 (VRRPv3)", RFC
             6527, March 2012.

5.2. Informative References

   [RFC6087] Bierman, A., "Guidelines for Authors and Reviewers of YANG
             Data Model Documents", RFC 6087, January 2011.

Liu                      Expires June 3, 2015                 [Page 21]
Internet-Draft     draft-liu-rtgwg-yang-vrrp-00.txt       December 2014

Authors' Addresses

   Xufeng Liu
   Ericsson

   Email: xufeng.liu@ericsson.com

   Athanasios Kyparlis
   Ericsson

   Email: athanasios.kyparlis@ericsson.com

Liu                      Expires June 3, 2015                 [Page 22]