]> git.puffer.fish Git - matthieu/frr.git/commitdiff
vrrpd: do not transition to backup on ifdown
authorQuentin Young <qlyoung@cumulusnetworks.com>
Thu, 21 Feb 2019 22:42:55 +0000 (22:42 +0000)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Fri, 17 May 2019 00:27:08 +0000 (00:27 +0000)
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 <qlyoung@cumulusnetworks.com>
vrrpd/vrrp.c

index 92ed12e2391b6d7b08508e58656cc3077fbe4963..da6f5ba4d940accac8372e40b568d5a9504ddf8c 100644 (file)
@@ -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);
                }
        }