summaryrefslogtreecommitdiff
path: root/vrrpd/vrrp.h
diff options
context:
space:
mode:
authorQuentin Young <qlyoung@cumulusnetworks.com>2019-03-04 18:46:08 +0000
committerQuentin Young <qlyoung@cumulusnetworks.com>2019-05-17 00:27:08 +0000
commitd60b2ffdfad204b675f642e9b712034e8dcef432 (patch)
treea6c847794f9c060d1662b9424b39fce87c90b0c0 /vrrpd/vrrp.h
parent2f1fc30fd25aeff4ff88efbab31cf31d366793ef (diff)
vrrpd: delay sending adverts/garp/una for iface up
When transitioning to Master from Backup, wait until Zebra sets the macvlan device to protodown off before transmitting advertisements, gratuitous ARPs, or Unsolicited Neighbor Advertisements. Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Diffstat (limited to 'vrrpd/vrrp.h')
-rw-r--r--vrrpd/vrrp.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/vrrpd/vrrp.h b/vrrpd/vrrp.h
index 4ea1a37377..99cebd5c8a 100644
--- a/vrrpd/vrrp.h
+++ b/vrrpd/vrrp.h
@@ -121,6 +121,27 @@ struct vrrp_router {
struct list *addrs;
/*
+ * This flag says whether we are waiting on an interface up
+ * notification from Zebra before we send an ADVERTISEMENT.
+ */
+ bool advert_pending;
+
+ /*
+ * If this is an IPv4 VRRP router, this flag says whether we are
+ * waiting on an interface up notification from Zebra before we send
+ * gratuitous ARP packets for all our addresses. Should never be true
+ * if family == AF_INET6.
+ */
+ bool garp_pending;
+ /*
+ * If this is an IPv6 VRRP router, this flag says whether we are
+ * waiting on an interface up notification from Zebra before we send
+ * Unsolicited Neighbor Advertisement packets for all our addresses.
+ * Should never be true if family == AF_INET.
+ */
+ bool ndisc_pending;
+
+ /*
* Effective priority
* => vr->priority if we are Backup
* => 255 if we are Master