aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamjan Marion <dmarion@me.com>2021-01-27 14:21:36 +0000
committerDamjan Marion <dmarion@me.com>2021-02-04 14:46:55 +0000
commit34c6c309d5ff7acfe470dac3f974271917e7b19e (patch)
treea857f1cfc410dc3d4a329a9609cdbdc1625d8cb3
parent6b3f1c0a9cf66f82cda1dc6b15982ee910671340 (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.c22
-rw-r--r--src/vnet/interface.c2
-rw-r--r--src/vnet/interface.h3
-rw-r--r--src/vnet/interface_output.c30
-rw-r--r--src/vppinfra/cpu.h20
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) = \