init / exit function ordering
[vpp.git] / src / plugins / nsh / nsh-md2-ioam / nsh_md2_ioam_trace.c
index 495bb16..c40e89b 100644 (file)
@@ -308,7 +308,8 @@ nsh_md2_ioam_trace_swap_handler (vlib_buffer_t * b,
                                 nsh_tlv_header_t * new_opt)
 {
 
-  clib_memcpy (new_opt, old_opt, new_opt->length + sizeof (nsh_tlv_header_t));
+  clib_memcpy_fast (new_opt, old_opt,
+                   new_opt->length + sizeof (nsh_tlv_header_t));
   return nsh_md2_ioam_trace_data_list_handler (b, new_opt);
 }
 
@@ -353,13 +354,6 @@ nsh_md2_ioam_trace_init (vlib_main_t * vm)
 {
   nsh_md2_ioam_trace_main_t *hm = &nsh_md2_ioam_trace_main;
   nsh_md2_ioam_main_t *gm = &nsh_md2_ioam_main;
-  clib_error_t *error;
-
-  if ((error = vlib_call_init_function (vm, nsh_init)))
-    return (error);
-
-  if ((error = vlib_call_init_function (vm, nsh_md2_ioam_init)))
-    return (error);
 
   hm->vlib_main = vm;
   hm->vnet_main = vnet_get_main ();
@@ -383,7 +377,12 @@ nsh_md2_ioam_trace_init (vlib_main_t * vm)
   return (0);
 }
 
-VLIB_INIT_FUNCTION (nsh_md2_ioam_trace_init);
+/* *INDENT-OFF* */
+VLIB_INIT_FUNCTION (nsh_md2_ioam_trace_init) =
+{
+  .runs_after = VLIB_INITS ("nsh_init", "nsh_md2_ioam_init"),
+};
+/* *INDENT-ON* */
 
 int
 nsh_md2_ioam_trace_profile_cleanup (void)