From c4485ad5aaade4b6f68b932a9be35b7f911b50cf Mon Sep 17 00:00:00 2001 From: Quentin Young Date: Thu, 21 Feb 2019 22:42:55 +0000 Subject: [PATCH] vrrpd: do not transition to backup on ifdown Transitioning to backup on an interface down causes all sorts of problems when it comes back up, not least of which is breaking preempt mode. Signed-off-by: Quentin Young --- vrrpd/vrrp.c | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/vrrpd/vrrp.c b/vrrpd/vrrp.c index 92ed12e239..da6f5ba4d9 100644 --- a/vrrpd/vrrp.c +++ b/vrrpd/vrrp.c @@ -1874,24 +1874,11 @@ void vrrp_if_down(struct interface *ifp) vrs = vrrp_lookup_by_if_any(ifp); for (ALL_LIST_ELEMENTS_RO(vrs, ln, vr)) { - if (vr->v4->mvl_ifp == ifp || vr->ifp == ifp) { - if (vr->v4->fsm.state == VRRP_STATE_MASTER) { - DEBUGD(&vrrp_dbg_auto, - VRRP_LOGPFX VRRP_LOGPFX_VRID - "Interface %s down; transitioning IPv4 VRRP router to Backup", - vr->vrid, ifp->name); - vrrp_change_state(vr->v4, VRRP_STATE_BACKUP); - } - } - - if (vr->v6->mvl_ifp == ifp || vr->ifp == ifp) { - if (vr->v6->fsm.state == VRRP_STATE_MASTER) { - DEBUGD(&vrrp_dbg_auto, - VRRP_LOGPFX VRRP_LOGPFX_VRID - "Interface %s down; transitioning IPv6 VRRP router to Backup", - vr->vrid, ifp->name); - vrrp_change_state(vr->v6, VRRP_STATE_BACKUP); - } + if (vr->ifp == ifp || vr->v4->mvl_ifp == ifp + || vr->v6->mvl_ifp == ifp) { + DEBUGD(&vrrp_dbg_auto, + VRRP_LOGPFX VRRP_LOGPFX_VRID "Interface %s down", + vr->vrid, ifp->name); } } -- 2.39.5