vlib: "revert startup multi-arch variant configuration fix for interfaces" 11/30911/3
authorDamjan Marion <dmarion@me.com>
Wed, 27 Jan 2021 14:21:36 +0000 (14:21 +0000)
committerDamjan Marion <dmarion@me.com>
Thu, 4 Feb 2021 14:46:55 +0000 (14:46 +0000)
Type: fix

This reverts commit 5a48b3b9d88fa2793793e2bf3db8bf156fe2951f.

Change-Id: Ifa91b18bdbbc32bb729abc09d95637d9cdf42c3b
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
src/vlib/node_init.c
src/vnet/interface.c
src/vnet/interface.h
src/vnet/interface_output.c
src/vppinfra/cpu.h

index 232eeb3..265e88f 100644 (file)
@@ -40,7 +40,6 @@
 #include <sys/types.h>
 #include <fcntl.h>
 #include <vlib/vlib.h>
-#include <vnet/vnet.h>
 
 typedef struct _vlib_node_march_variant
 {
@@ -90,9 +89,9 @@ unformat_vlib_node_variant (unformat_input_t * input, va_list * args)
 }
 
 static_always_inline void
-vlib_update_nr_variant_default (vlib_node_fn_registration_t * fnr,
-                               u8 * variant)
+vlib_update_nr_variant_default (vlib_node_registration_t *nr, u8 *variant)
 {
+  vlib_node_fn_registration_t *fnr = nr->node_fn_registrations;
   vlib_node_fn_registration_t *p_reg = 0;
   vlib_node_fn_registration_t *v_reg = 0;
   u32 tmp;
@@ -128,8 +127,6 @@ vlib_early_node_config (vlib_main_t * vm, unformat_input_t * input)
 {
   clib_error_t *error = 0;
   vlib_node_registration_t *nr, **all;
-  vnet_device_class_t *c;
-  vnet_main_t *vnm = vnet_get_main ();
   unformat_input_t sub_input;
   uword *hash = 0, *p;
   u8 *variant = 0;
@@ -164,20 +161,10 @@ vlib_early_node_config (vlib_main_t * vm, unformat_input_t * input)
              nr = vm->node_main.node_registrations;
              while (nr)
                {
-                 vlib_update_nr_variant_default (nr->node_fn_registrations,
-                                                 variant);
+                 vlib_update_nr_variant_default (nr, variant);
                  nr = nr->next_registration;
                }
 
-             /* also apply it to interfaces */
-             c = vnm->device_class_registrations;
-             while (c)
-               {
-                 vlib_update_nr_variant_default (c->tx_fn_registrations,
-                                                 variant);
-                 c = c->next_class_registration;
-               }
-
              vec_free (variant);
            }
        }
@@ -205,8 +192,7 @@ vlib_early_node_config (vlib_main_t * vm, unformat_input_t * input)
                                              "please specify a valid node variant");
                  vec_add1 (variant, 0);
 
-                 vlib_update_nr_variant_default (nr->node_fn_registrations,
-                                                 variant);
+                 vlib_update_nr_variant_default (nr, variant);
 
                  vec_free (variant);
                }
index e2e4e91..862f574 100644 (file)
@@ -810,7 +810,7 @@ vnet_register_interface (vnet_main_t * vnm,
   vnet_config_main_t *cm;
   u32 hw_index, i;
   char *tx_node_name = NULL, *output_node_name = NULL;
-  vlib_node_function_t *output_node = vnet_interface_output_node_get (vm);
+  vlib_node_function_t *output_node = vnet_interface_output_node_get ();
 
   pool_get (im->hw_interfaces, hw);
   clib_memset (hw, 0, sizeof (*hw));
index e9e7462..88f7c88 100644 (file)
@@ -326,7 +326,6 @@ CLIB_MARCH_SFX (devclass##_tx_fn_multiarch_register) (void)         \
   vlib_node_fn_registration_t *r;                                      \
   r = &CLIB_MARCH_SFX (devclass##_tx_fn_registration);                 \
   r->priority = CLIB_MARCH_FN_PRIORITY();                              \
-  r->name = CLIB_MARCH_VARIANT_STR;                                    \
   r->next_registration = devclass.tx_fn_registrations;                 \
   devclass.tx_fn_registrations = r;                                    \
 }                                                                      \
@@ -956,7 +955,7 @@ void vnet_pcap_drop_trace_filter_add_del (u32 error_index, int is_add);
 
 int vnet_interface_name_renumber (u32 sw_if_index, u32 new_show_dev_instance);
 
-vlib_node_function_t *vnet_interface_output_node_get (vlib_main_t * vm);
+vlib_node_function_t *vnet_interface_output_node_get (void);
 
 void vnet_register_format_buffer_opaque_helper
   (vnet_buffer_opquae_formatter_t fn);
index e79ad45..3363f76 100644 (file)
@@ -513,35 +513,9 @@ CLIB_MARCH_FN_REGISTRATION (vnet_interface_output_node);
 
 #ifndef CLIB_MARCH_VARIANT
 vlib_node_function_t *
-vnet_interface_output_node_get (vlib_main_t * vm)
+vnet_interface_output_node_get (void)
 {
-  vlib_node_function_t *fn = 0;
-  vlib_node_fn_registration_t *fnr;
-  char *name = 0;
-  vlib_node_t *node = vlib_get_node_by_name (vm, (u8 *) "interface-output");
-  ASSERT (node);
-
-  /* search for the same name */
-  fnr = node->node_fn_registrations;
-  while (fnr)
-    {
-      if (fnr->function == node->function)
-       {
-         name = fnr->name;
-         break;
-       }
-      fnr = fnr->next_registration;
-    }
-
-  if (name)
-    {
-      fn = CLIB_MARCH_FN_POINTER_BY_NAME (vnet_interface_output_node, name);
-    }
-  if (!fn)                     /* revert to march type selection if search failed */
-    {
-      fn = CLIB_MARCH_FN_POINTER (vnet_interface_output_node);
-    }
-  return fn;
+  return CLIB_MARCH_FN_POINTER (vnet_interface_output_node);
 }
 #endif /* CLIB_MARCH_VARIANT */
 
index bef2a02..6a81218 100644 (file)
@@ -84,29 +84,9 @@ clib_march_select_fn_ptr (clib_march_fn_registration * r)
   return rv;
 }
 
-static_always_inline void *
-clib_march_select_fn_ptr_by_name (clib_march_fn_registration * r, char *name)
-{
-  void *rv = 0;
-
-  while (r)
-    {
-      if (strncmp (name, r->name, vec_len (r->name) - 1) == 0)
-       {
-         rv = r->function;
-         break;
-       }
-      r = r->next;
-    }
-  return rv;
-}
-
 #define CLIB_MARCH_FN_POINTER(fn) \
   clib_march_select_fn_ptr (fn##_march_fn_registrations);
 
-#define CLIB_MARCH_FN_POINTER_BY_NAME(fn, name) \
-  clib_march_select_fn_ptr_by_name (fn##_march_fn_registrations, name);
-
 #define _CLIB_MARCH_FN_REGISTRATION(fn) \
 static clib_march_fn_registration \
 CLIB_MARCH_SFX(fn##_march_fn_registration) = \