summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Young <qlyoung@cumulusnetworks.com>2019-02-27 20:46:35 +0000
committerQuentin Young <qlyoung@cumulusnetworks.com>2019-05-17 00:27:08 +0000
commitc16fb34051998600039c5f57dbd230d237e6eced (patch)
treefe3011492030e6fc903031ecfc898e92a50504b0
parent354b49d6d9433c3e5b57fb76e8ce8b72c9388d26 (diff)
vrrpd: be less smart about interface state
Stop caring about interface state so much. It's screwing up autoconfig because Zebra's message semantics are pretty much absolute nonsense when it comes to indicating interface state. This change will cause us to do things like attempt to transmit advertisements on a down interface, but I'd rather have the user see those error messages in the log file than force them to fight vrrpd to convince it that, yes, they actually do want a VRRP instance created. Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
-rw-r--r--vrrpd/vrrp.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/vrrpd/vrrp.c b/vrrpd/vrrp.c
index 20cec70063..bec47a0e2a 100644
--- a/vrrpd/vrrp.c
+++ b/vrrpd/vrrp.c
@@ -251,14 +251,18 @@ void vrrp_check_start(struct vrrp_vrouter *vr)
start = r->fsm.state == VRRP_STATE_INITIALIZE;
/* Must have a parent interface */
start = start && (vr->ifp != NULL);
+#if 0
/* Parent interface must be up */
start = start && if_is_operative(vr->ifp);
+#endif
/* Parent interface must have at least one v4 */
start = start && vr->ifp->connected->count > 1;
/* Must have a macvlan interface */
start = start && (r->mvl_ifp != NULL);
+#if 0
/* Macvlan interface must be admin up */
start = start && CHECK_FLAG(r->mvl_ifp->flags, IFF_UP);
+#endif
/* Must have at least one VIP configured */
start = start && r->addrs->count > 0;
if (start)
@@ -269,12 +273,16 @@ void vrrp_check_start(struct vrrp_vrouter *vr)
start = r->fsm.state == VRRP_STATE_INITIALIZE;
/* Must have a parent interface */
start = start && (vr->ifp != NULL);
+#if 0
/* Parent interface must be up */
start = start && if_is_operative(vr->ifp);
+#endif
/* Must have a macvlan interface */
start = start && (r->mvl_ifp != NULL);
+#if 0
/* Macvlan interface must be admin up */
start = start && CHECK_FLAG(r->mvl_ifp->flags, IFF_UP);
+#endif
/* Macvlan interface must have at least two v6 */
start = start && (r->mvl_ifp->connected->count >= 2);
/* Macvlan interface must have a link local */