3 namespace "http://frrouting.org/yang/vrrpd";
6 import ietf-inet-types {
10 import ietf-yang-types {
14 import frr-interface {
21 "FRR Users List: <mailto:frog@lists.frrouting.org>
22 FRR Development List: <mailto:dev@lists.frrouting.org>";
24 "This module defines a model for managing FRR vrrpd daemon.
26 Copyright 2020 FRRouting
28 Redistribution and use in source and binary forms, with or without
29 modification, are permitted provided that the following conditions
32 1. Redistributions of source code must retain the above copyright notice,
33 this list of conditions and the following disclaimer.
35 2. Redistributions in binary form must reproduce the above copyright
36 notice, this list of conditions and the following disclaimer in the
37 documentation and/or other materials provided with the distribution.
39 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
40 \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
41 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
42 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
43 HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
44 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
45 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
46 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
47 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
48 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
49 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";
56 grouping ip-vrrp-config {
58 "Configuration data for VRRP on IP interfaces";
59 leaf virtual-router-id {
64 "Set the virtual router id for use by the VRRP group. This
65 usually also determines the virtual MAC address that is
66 generated for the VRRP group";
91 "Specifies the sending VRRP interface's priority
92 for the virtual router. Higher values equal higher
100 "When set to true, enables preemption by a higher
101 priority backup router of a lower priority master router";
108 "Configure whether packets destined for
109 virtual addresses are accepted even when the virtual
110 address is not owned by the router interface";
113 leaf checksum-with-ipv4-pseudoheader {
117 "Enabled if VRRPv3 checksum for IPv4 involves pseudoheader";
120 leaf advertisement-interval {
124 units "centiseconds";
127 "Sets the interval between successive VRRP
128 advertisements -- RFC 5798 defines this as a 12-bit
129 value expressed as 0.1 seconds, with default 100, i.e.,
130 1 second. Several implementation express this in units of
138 "Administrative shutdown for this VRRP group.";
142 grouping ip-vrrp-state {
144 "Grouping for operational state data for a virtual router";
145 leaf current-priority {
149 "Operational value of the priority for the
150 interface in the VRRP group.";
153 leaf vrrp-interface {
154 type frr-interface:interface-ref;
157 "The interface used to transmit VRRP traffic.";
160 leaf source-address {
161 type inet:ip-address;
164 "The source IP address used for VRRP advertisements.";
171 "State when virtual router is waiting for a Startup event.";
175 "State when virtual router is functioning as the forwarding router
176 for the virtual addresses.";
180 "State when virtual router is monitoring the availability and state
181 of the Master router.";
187 leaf master-advertisement-interval {
191 units "centiseconds";
194 "Advertisement interval contained in advertisements received from the Master.";
199 units "centiseconds";
202 "Time to skew Master_Down_Interval.";
207 leaf state-transition {
208 type yang:zero-based-counter32;
210 "Number of state transitions the virtual router has experienced.";
215 type yang:zero-based-counter32;
217 "Number of sent VRRP advertisements.";
223 type yang:zero-based-counter32;
225 "Number of received VRRP advertisements.";
231 grouping ip-vrrp-top {
233 "Top-level grouping for Virtual Router Redundancy Protocol";
236 "Enclosing container for VRRP groups handled by this
239 "RFC 5798 - Virtual Router Redundancy Protocol
240 (VRRP) Version 3 for IPv4 and IPv6";
242 key "virtual-router-id";
244 "List of VRRP groups, keyed by virtual router id";
248 leaf-list virtual-address {
249 type inet:ipv4-address;
251 "Configure one or more IPv4 virtual addresses for the
256 augment "counter/tx" {
257 leaf gratuitous-arp {
258 type yang:zero-based-counter32;
260 "Number of sent gratuitous ARP requests.";
267 when "../version = 3";
268 leaf-list virtual-address {
269 type inet:ipv6-address;
271 "Configure one or more IPv6 virtual addresses for the
276 augment "counter/tx" {
277 leaf neighbor-advertisement {
278 type yang:zero-based-counter32;
280 "Number of sent unsolicited Neighbor Advertisements.";
289 augment "/frr-interface:lib/frr-interface:interface" {