X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fplugins%2Flacp%2Fmux_machine.c;h=6a5549077a2a1a5567313ab7cb8c7bf66231aef9;hb=4d1423c5ace249f6609a41fadec9e4b9c4b323de;hp=9c7cf7466600d7943568f7158e73cb4e7e05c68a;hpb=dd4889e21cb15df541cf3b2c2d8bb971ce460359;p=vpp.git diff --git a/src/plugins/lacp/mux_machine.c b/src/plugins/lacp/mux_machine.c index 9c7cf746660..6a5549077a2 100644 --- a/src/plugins/lacp/mux_machine.c +++ b/src/plugins/lacp/mux_machine.c @@ -96,16 +96,15 @@ lacp_attach_mux_to_aggregator (vlib_main_t * vm, slave_if_t * sif) int 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; + vlib_main_t *vm = p1; + slave_if_t *sif = p2; 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_start_periodic_timer (lm->vlib_main, sif, 0); + lacp_start_periodic_timer (vm, sif, 0); if (sif->selected == LACP_PORT_SELECTED) lacp_machine_dispatch (&lacp_mux_machine, vm, sif, @@ -121,16 +120,15 @@ lacp_mux_action_detached (void *p1, void *p2) int 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; + vlib_main_t *vm = p1; + slave_if_t *sif = p2; 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_start_periodic_timer (lm->vlib_main, sif, 0); + lacp_start_periodic_timer (vm, sif, 0); if ((sif->selected == LACP_PORT_UNSELECTED) || (sif->selected == LACP_PORT_STANDBY)) @@ -147,13 +145,11 @@ lacp_mux_action_attached (void *p1, void *p2) int lacp_mux_action_waiting (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; + vlib_main_t *vm = p1; + slave_if_t *sif = p2; if (!lacp_timer_is_running (sif->wait_while_timer)) - lacp_start_wait_while_timer (lm->vlib_main, sif, - LACP_AGGREGATE_WAIT_TIME); + lacp_start_wait_while_timer (vm, sif, LACP_AGGREGATE_WAIT_TIME); if ((sif->selected == LACP_PORT_SELECTED) && sif->ready) lacp_machine_dispatch (&lacp_mux_machine, vm, sif, @@ -169,15 +165,14 @@ lacp_mux_action_waiting (void *p1, void *p2) int 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; + vlib_main_t *vm = p1; + slave_if_t *sif = p2; sif->actor.state |= LACP_STATE_SYNCHRONIZATION | LACP_STATE_COLLECTING | LACP_STATE_DISTRIBUTING; bond_enable_collecting_distributing (vm, sif); sif->ntt = 1; - lacp_start_periodic_timer (lm->vlib_main, sif, 0); + lacp_start_periodic_timer (vm, sif, 0); if ((sif->selected == LACP_PORT_UNSELECTED) || (sif->selected == LACP_PORT_STANDBY) || !(sif->partner.state & LACP_STATE_SYNCHRONIZATION)) @@ -198,8 +193,7 @@ format_mux_event (u8 * s, va_list * args) {.str = NULL} }; int e = va_arg (*args, int); - lacp_event_struct *event_entry = - (lacp_event_struct *) & lacp_mux_event_array; + lacp_event_struct *event_entry = lacp_mux_event_array; if (e >= (sizeof (lacp_mux_event_array) / sizeof (*event_entry))) s = format (s, "Bad event %d", e); @@ -213,11 +207,26 @@ void lacp_mux_debug_func (slave_if_t * sif, int event, int state, lacp_fsm_state_t * transition) { - clib_warning ("%U-MUX: event %U, old state %U, new state %U", - format_vnet_sw_if_index_name, vnet_get_main (), - sif->sw_if_index, format_mux_event, - event, format_mux_sm_state, state, format_mux_sm_state, - transition->next_state); + vlib_worker_thread_t *w = vlib_worker_threads + os_get_thread_index (); + /* *INDENT-OFF* */ + ELOG_TYPE_DECLARE (e) = + { + .format = "%s", + .format_args = "T4", + }; + /* *INDENT-ON* */ + struct + { + u32 event; + } *ed = 0; + + ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, e, w->elog_track); + ed->event = + elog_string (&vlib_global_main.elog_main, "%U-MUX: %U, %U->%U%c", + format_vnet_sw_if_index_name, vnet_get_main (), + sif->sw_if_index, format_mux_event, event, + format_mux_sm_state, state, format_mux_sm_state, + transition->next_state, 0); } void