lacp: faster convergence for slow-rate config option
[vpp.git] / src / plugins / lacp / rx_machine.c
index 374e3f8..fd65aa3 100644 (file)
@@ -174,6 +174,7 @@ lacp_update_ntt (vlib_main_t * vm, slave_if_t * sif)
   lacp_pdu_t *lacpdu = (lacp_pdu_t *) sif->last_rx_pkt;
   u8 states = LACP_STATE_LACP_ACTIVITY | LACP_STATE_LACP_TIMEOUT |
     LACP_STATE_SYNCHRONIZATION | LACP_STATE_AGGREGATION;
+  lacp_main_t *lm = &lacp_main;
 
   if ((states & lacpdu->partner.port_info.state) !=
       (states & sif->actor.state)
@@ -181,8 +182,7 @@ lacp_update_ntt (vlib_main_t * vm, slave_if_t * sif)
                 sizeof (sif->actor) - sizeof (sif->actor.state)))
     {
       sif->ntt = 1;
-      lacp_machine_dispatch (&lacp_tx_machine, vm, sif, LACP_TX_EVENT_NTT,
-                            &sif->tx_state);
+      lacp_start_periodic_timer (lm->vlib_main, sif, 0);
     }
 }
 
@@ -292,7 +292,7 @@ lacp_rx_action_expired (void *p1, void *p2)
     timer_expired = 1;
   else
     timer_expired = 0;
-  lacp_start_current_while_timer (lm->vlib_main, sif, LACP_SHORT_TIMOUT_TIME);
+  lacp_start_current_while_timer (lm->vlib_main, sif, sif->ttl_in_seconds);
   sif->actor.state |= LACP_STATE_EXPIRED;
   if (timer_expired)
     lacp_machine_dispatch (&lacp_rx_machine, vm, sif,