ikev2: add support for custom ipsec-over-udp port
[vpp.git] / src / plugins / lacp / mux_machine.c
index f33c264..bbe452d 100644 (file)
@@ -96,16 +96,16 @@ 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;
+  vlib_main_t *vm = p1;
+  slave_if_t *sif = 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,
@@ -121,16 +121,16 @@ 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;
+  vlib_main_t *vm = p1;
+  slave_if_t *sif = 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))
@@ -147,8 +147,8 @@ 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;
+  vlib_main_t *vm = p1;
+  slave_if_t *sif = p2;
   lacp_main_t *lm = &lacp_main;
 
   if (!lacp_timer_is_running (sif->wait_while_timer))
@@ -169,15 +169,15 @@ 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;
+  vlib_main_t *vm = p1;
+  slave_if_t *sif = 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))
@@ -198,8 +198,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 +212,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