From dd4889e21cb15df541cf3b2c2d8bb971ce460359 Mon Sep 17 00:00:00 2001 From: Steven Date: Thu, 29 Mar 2018 10:35:41 -0700 Subject: lacp: faster convergence for slow-rate config option Do fast-rate if we are not yet synchronized with the partner. Stop sending LACP updates as a flash in the worker thread. Just expire the timer and let the lacp_process handle sending LACP PDU. Change-Id: I8b36fe74e752e7f45bd4a8d70512c0341cc197a1 Signed-off-by: Steven --- src/plugins/lacp/mux_machine.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/plugins/lacp/mux_machine.c') diff --git a/src/plugins/lacp/mux_machine.c b/src/plugins/lacp/mux_machine.c index f33c2642f20..9c7cf746660 100644 --- a/src/plugins/lacp/mux_machine.c +++ b/src/plugins/lacp/mux_machine.c @@ -98,14 +98,14 @@ lacp_mux_action_detached (void *p1, void *p2) { vlib_main_t *vm = (vlib_main_t *) p1; slave_if_t *sif = (slave_if_t *) p2; + lacp_main_t *lm = &lacp_main; lacp_detach_mux_from_aggregator (vm, sif); sif->actor.state &= ~LACP_STATE_COLLECTING; bond_disable_collecting_distributing (vm, sif); sif->actor.state &= ~LACP_STATE_DISTRIBUTING; 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); if (sif->selected == LACP_PORT_SELECTED) lacp_machine_dispatch (&lacp_mux_machine, vm, sif, @@ -123,14 +123,14 @@ lacp_mux_action_attached (void *p1, void *p2) { vlib_main_t *vm = (vlib_main_t *) p1; slave_if_t *sif = (slave_if_t *) p2; + lacp_main_t *lm = &lacp_main; lacp_attach_mux_to_aggregator (vm, sif); sif->actor.state &= ~LACP_STATE_COLLECTING; bond_disable_collecting_distributing (vm, sif); sif->actor.state &= ~LACP_STATE_DISTRIBUTING; 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); if ((sif->selected == LACP_PORT_UNSELECTED) || (sif->selected == LACP_PORT_STANDBY)) @@ -171,13 +171,13 @@ lacp_mux_action_collecting_distributing (void *p1, void *p2) { vlib_main_t *vm = (vlib_main_t *) p1; slave_if_t *sif = (slave_if_t *) p2; + lacp_main_t *lm = &lacp_main; sif->actor.state |= LACP_STATE_SYNCHRONIZATION | LACP_STATE_COLLECTING | LACP_STATE_DISTRIBUTING; bond_enable_collecting_distributing (vm, sif); 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); if ((sif->selected == LACP_PORT_UNSELECTED) || (sif->selected == LACP_PORT_STANDBY) || !(sif->partner.state & LACP_STATE_SYNCHRONIZATION)) -- cgit 1.2.3-korg