]> git.puffer.fish Git - matthieu/frr.git/commitdiff
vrrpd: don't restart when changing priority
authorQuentin Young <qlyoung@cumulusnetworks.com>
Fri, 8 Feb 2019 19:52:24 +0000 (19:52 +0000)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Fri, 17 May 2019 00:27:08 +0000 (00:27 +0000)
Both master and backup should be able to react to priority changes
without requiring a restart.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
vrrpd/vrrp.c
vrrpd/vrrp_vty.c

index 01044b580f2e09668498311593ea07e2ac09f017..6cfbd7c09017b8e84eff8905dbed29854893feb8 100644 (file)
@@ -125,9 +125,6 @@ static bool vrrp_is_owner(struct interface *ifp, struct ipaddr *addr)
 
 void vrrp_set_priority(struct vrrp_vrouter *vr, uint8_t priority)
 {
-       if (vr->priority == priority)
-               return;
-
        vr->priority = priority;
        vr->v4->priority = priority;
        vr->v6->priority = priority;
index c73e5cb55632254923eccbc536ae358f010fb48f..c32e5c2c8cfc7da4a0875bd9601b58e93be56b15 100644 (file)
@@ -106,40 +106,12 @@ DEFPY(vrrp_priority,
        VTY_DECLVAR_CONTEXT(interface, ifp);
 
        struct vrrp_vrouter *vr;
-       struct vrrp_router *r;
-       bool nr[2] = { false, false };
-       int ret = CMD_SUCCESS;
        uint8_t newprio = no ? VRRP_DEFAULT_PRIORITY : priority;
 
        VROUTER_GET_VTY(vty, ifp, vrid, vr);
 
-       r = vr->v4;
-       for (int i = 0; i < 2; i++) {
-               nr[i] = r->is_active && r->fsm.state != VRRP_STATE_INITIALIZE
-                       && vr->priority != newprio;
-               if (nr[i]) {
-                       vty_out(vty,
-                               "%% WARNING: Restarting %s Virtual Router %ld to update priority\n",
-                               family2str(r->family), vrid);
-                       (void)vrrp_event(r, VRRP_EVENT_SHUTDOWN);
-               }
-               r = vr->v6;
-       }
-
        vrrp_set_priority(vr, newprio);
 
-       r = vr->v4;
-       for (int i = 0; i < 2; i++) {
-               if (nr[i]) {
-                       ret = vrrp_event(r, VRRP_EVENT_STARTUP);
-                       if (ret < 0)
-                               vty_out(vty,
-                                       "%% Failed to start Virtual Router %ld (%s)\n",
-                                       vrid, family2str(r->family));
-               }
-               r = vr->v6;
-       }
-
        return CMD_SUCCESS;
 }