]> git.puffer.fish Git - matthieu/frr.git/commitdiff
vrrpd: transition to master when adv timer expires
authorQuentin Young <qlyoung@cumulusnetworks.com>
Wed, 16 Jan 2019 20:09:17 +0000 (20:09 +0000)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Fri, 17 May 2019 00:27:08 +0000 (00:27 +0000)
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
vrrpd/vrrp.c

index f76102884617d5f75d1287a6107cce50bee45d85..1f89ef7b96dc344fd925d0186b1846feadee8603 100644 (file)
@@ -845,6 +845,14 @@ static int vrrp_master_down_timer_expire(struct thread *thread)
        zlog_info(VRRP_LOGPFX VRRP_LOGPFX_VRID "Master_Down_Timer expired",
                  r->vr->vrid);
 
+       vrrp_send_advertisement(r);
+       if (r->family == AF_INET)
+               vrrp_garp_send_all(r);
+       thread_add_timer_msec(master, vrrp_adver_timer_expire, r,
+                             r->vr->advertisement_interval * 10,
+                             &r->t_adver_timer);
+       vrrp_change_state(r, VRRP_STATE_MASTER);
+
        return 0;
 }