From: Quentin Young Date: Wed, 27 Feb 2019 20:46:35 +0000 (+0000) Subject: vrrpd: be less smart about interface state X-Git-Tag: base_7.2~330^2~57 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=c16fb34051998600039c5f57dbd230d237e6eced;p=mirror%2Ffrr.git 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 --- 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 */