diff options
| author | Quentin Young <qlyoung@cumulusnetworks.com> | 2019-02-27 20:46:35 +0000 |
|---|---|---|
| committer | Quentin Young <qlyoung@cumulusnetworks.com> | 2019-05-17 00:27:08 +0000 |
| commit | c16fb34051998600039c5f57dbd230d237e6eced (patch) | |
| tree | fe3011492030e6fc903031ecfc898e92a50504b0 | |
| parent | 354b49d6d9433c3e5b57fb76e8ce8b72c9388d26 (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.c | 8 |
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 */ |
