]> git.puffer.fish Git - mirror/frr.git/commitdiff
vrrpd: be less smart about interface state
authorQuentin Young <qlyoung@cumulusnetworks.com>
Wed, 27 Feb 2019 20:46:35 +0000 (20:46 +0000)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Fri, 17 May 2019 00:27:08 +0000 (00:27 +0000)
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>
vrrpd/vrrp.c

index 20cec7006369c95e94c4ef9fe9843c54bcb6bb9e..bec47a0e2a2053a9e505ae6b16e3a59c780f2270 100644 (file)
@@ -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 */