diff options
author | Damjan Marion <dmarion@me.com> | 2021-01-27 14:21:36 +0000 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2021-02-04 14:46:55 +0000 |
commit | 34c6c309d5ff7acfe470dac3f974271917e7b19e (patch) | |
tree | a857f1cfc410dc3d4a329a9609cdbdc1625d8cb3 | |
parent | 6b3f1c0a9cf66f82cda1dc6b15982ee910671340 (diff) |
vlib: "revert startup multi-arch variant configuration fix for interfaces"
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>
-rw-r--r-- | src/vlib/node_init.c | 22 | ||||
-rw-r--r-- | src/vnet/interface.c | 2 | ||||
-rw-r--r-- | src/vnet/interface.h | 3 | ||||
-rw-r--r-- | src/vnet/interface_output.c | 30 | ||||
-rw-r--r-- | src/vppinfra/cpu.h | 20 |
5 files changed, 8 insertions, 69 deletions
diff --git a/src/vlib/node_init.c b/src/vlib/node_init.c index 232eeb35e3c..265e88f525c 100644 --- a/src/vlib/node_init.c +++ b/src/vlib/node_init.c @@ -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); } diff --git a/src/vnet/interface.c b/src/vnet/interface.c index e2e4e9166bf..862f57404aa 100644 --- a/src/vnet/interface.c +++ b/src/vnet/interface.c @@ -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)); diff --git a/src/vnet/interface.h b/src/vnet/interface.h index e9e7462efd7..88f7c88eff9 100644 --- a/src/vnet/interface.h +++ b/src/vnet/interface.h @@ -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); diff --git a/src/vnet/interface_output.c b/src/vnet/interface_output.c index e79ad451c55..3363f76b722 100644 --- a/src/vnet/interface_output.c +++ b/src/vnet/interface_output.c @@ -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 */ diff --git a/src/vppinfra/cpu.h b/src/vppinfra/cpu.h index bef2a029e94..6a812180008 100644 --- a/src/vppinfra/cpu.h +++ b/src/vppinfra/cpu.h @@ -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) = \ |