Multiarch handling in different constructor macros
[vpp.git] / src / plugins / dpdk / device / device.c
index d5ab258..b2c87c7 100644 (file)
@@ -37,7 +37,6 @@ typedef enum
     DPDK_TX_FUNC_N_ERROR,
 } dpdk_tx_func_error_t;
 
-#ifndef CLIB_MARCH_VARIANT
 static char *dpdk_tx_func_error_strings[] = {
 #define _(n,s) s,
   foreach_dpdk_tx_func_error
@@ -65,7 +64,6 @@ dpdk_set_mac_address (vnet_hw_interface_t * hi, char *address)
       return NULL;
     }
 }
-#endif
 
 static struct rte_mbuf *
 dpdk_replicate_packet_mb (vlib_buffer_t * b)
@@ -327,10 +325,9 @@ dpdk_buffer_tx_offload (dpdk_device_t * xd, vlib_buffer_t * b,
  * node. It first copies packets on the frame to a per-thread arrays
  * containing the rte_mbuf pointers.
  */
-uword
-CLIB_MULTIARCH_FN (dpdk_interface_tx) (vlib_main_t * vm,
-                                      vlib_node_runtime_t * node,
-                                      vlib_frame_t * f)
+VNET_DEVICE_CLASS_TX_FN (dpdk_device_class) (vlib_main_t * vm,
+                                            vlib_node_runtime_t * node,
+                                            vlib_frame_t * f)
 {
   dpdk_main_t *dm = &dpdk_main;
   vnet_interface_output_runtime_t *rd = (void *) node->runtime_data;
@@ -517,7 +514,6 @@ CLIB_MULTIARCH_FN (dpdk_interface_tx) (vlib_main_t * vm,
   return tx_pkts;
 }
 
-#ifndef CLIB_MARCH_VARIANT
 static void
 dpdk_clear_hw_interface_counters (u32 instance)
 {
@@ -663,7 +659,6 @@ done:
 /* *INDENT-OFF* */
 VNET_DEVICE_CLASS (dpdk_device_class) = {
   .name = "dpdk",
-  .tx_function = dpdk_interface_tx,
   .tx_function_n_errors = DPDK_TX_FUNC_N_ERROR,
   .tx_function_error_strings = dpdk_tx_func_error_strings,
   .format_device_name = format_dpdk_device_name,
@@ -679,24 +674,9 @@ VNET_DEVICE_CLASS (dpdk_device_class) = {
 };
 /* *INDENT-ON* */
 
-#if __x86_64__
-vlib_node_function_t __clib_weak dpdk_interface_tx_avx512;
-vlib_node_function_t __clib_weak dpdk_interface_tx_avx2;
-static void __clib_constructor
-dpdk_interface_tx_multiarch_select (void)
-{
-  if (dpdk_interface_tx_avx512 && clib_cpu_supports_avx512f ())
-    dpdk_device_class.tx_function = dpdk_interface_tx_avx512;
-  else if (dpdk_interface_tx_avx2 && clib_cpu_supports_avx2 ())
-    dpdk_device_class.tx_function = dpdk_interface_tx_avx2;
-}
-#endif
-#endif
-
 #define UP_DOWN_FLAG_EVENT 1
 
-#ifndef CLIB_MARCH_VARIANT
-uword
+static uword
 admin_up_down_process (vlib_main_t * vm,
                       vlib_node_runtime_t * rt, vlib_frame_t * f)
 {
@@ -740,14 +720,13 @@ admin_up_down_process (vlib_main_t * vm,
 }
 
 /* *INDENT-OFF* */
-VLIB_REGISTER_NODE (admin_up_down_process_node,static) = {
+VLIB_REGISTER_NODE (admin_up_down_process_node) = {
     .function = admin_up_down_process,
     .type = VLIB_NODE_TYPE_PROCESS,
     .name = "admin-up-down-process",
     .process_log2_n_stack_bytes = 17,  // 256KB
 };
 /* *INDENT-ON* */
-#endif
 
 /*
  * fd.io coding-style-patch-verification: ON