From 7d2094c12b01ac1f902755157361bd0eb547abac Mon Sep 17 00:00:00 2001 From: Benoît Ganne Date: Mon, 9 Nov 2020 15:23:52 +0100 Subject: interface: add multiarch support for per-interface tx node MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Type: improvement Change-Id: Ia4ce47c0f727cf7b02294f05b94f14e788f52f30 Signed-off-by: Benoît Ganne --- src/vnet/interface_output.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'src/vnet/interface_output.c') diff --git a/src/vnet/interface_output.c b/src/vnet/interface_output.c index 65bc4a4b7ec..3363f76b722 100644 --- a/src/vnet/interface_output.c +++ b/src/vnet/interface_output.c @@ -91,6 +91,7 @@ format_vnet_interface_output_trace (u8 * s, va_list * va) } return s; } +#endif /* CLIB_MARCH_VARIANT */ static void vnet_interface_output_trace (vlib_main_t * vm, @@ -427,7 +428,6 @@ vnet_interface_output_node_inline (vlib_main_t * vm, rt->sw_if_index, n_packets, n_bytes); return n_buffers; } -#endif /* CLIB_MARCH_VARIANT */ static_always_inline void vnet_interface_pcap_tx_trace (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame, @@ -486,11 +486,12 @@ static_always_inline void vnet_interface_pcap_tx_trace } } -#ifndef CLIB_MARCH_VARIANT +static vlib_node_function_t CLIB_MULTIARCH_FN (vnet_interface_output_node); -uword -vnet_interface_output_node (vlib_main_t * vm, vlib_node_runtime_t * node, - vlib_frame_t * frame) +static uword +CLIB_MULTIARCH_FN (vnet_interface_output_node) (vlib_main_t * vm, + vlib_node_runtime_t * node, + vlib_frame_t * frame) { vnet_main_t *vnm = vnet_get_main (); vnet_hw_interface_t *hi; @@ -507,6 +508,15 @@ vnet_interface_output_node (vlib_main_t * vm, vlib_node_runtime_t * node, return vnet_interface_output_node_inline (vm, node, frame, vnm, hi, /* do_tx_offloads */ 1); } + +CLIB_MARCH_FN_REGISTRATION (vnet_interface_output_node); + +#ifndef CLIB_MARCH_VARIANT +vlib_node_function_t * +vnet_interface_output_node_get (void) +{ + return CLIB_MARCH_FN_POINTER (vnet_interface_output_node); +} #endif /* CLIB_MARCH_VARIANT */ /* Use buffer's sw_if_index[VNET_TX] to choose output interface. */ -- cgit 1.2.3-korg