return 0;
}
-
-uword
-CLIB_MULTIARCH_FN (vhost_user_tx) (vlib_main_t * vm,
- vlib_node_runtime_t * node,
- vlib_frame_t * frame)
+VNET_DEVICE_CLASS_TX_FN (vhost_user_device_class) (vlib_main_t * vm,
+ vlib_node_runtime_t *
+ node, vlib_frame_t * frame)
{
u32 *buffers = vlib_frame_args (frame);
u32 n_left = frame->n_vectors;
u32 qid = ~0;
vhost_user_vring_t *rxvq;
u8 error;
- u32 thread_index = vlib_get_thread_index ();
+ u32 thread_index = vm->thread_index;
u32 map_hint = 0;
u8 retry = 8;
u16 copy_len;
return /* no error */ 0;
}
-#ifndef CLIB_MARCH_VARIANT
/* *INDENT-OFF* */
VNET_DEVICE_CLASS (vhost_user_device_class) = {
.name = "vhost-user",
- .tx_function = vhost_user_tx,
.tx_function_n_errors = VHOST_USER_TX_FUNC_N_ERROR,
.tx_function_error_strings = vhost_user_tx_func_error_strings,
.format_device_name = format_vhost_user_interface_name,
.format_tx_trace = format_vhost_trace,
};
-#if __x86_64__
-vlib_node_function_t __clib_weak vhost_user_tx_avx512;
-vlib_node_function_t __clib_weak vhost_user_tx_avx2;
-static void __clib_constructor
-vhost_user_tx_multiarch_select (void)
-{
- if (vhost_user_tx_avx512 && clib_cpu_supports_avx512f ())
- vhost_user_device_class.tx_function = vhost_user_tx_avx512;
- else if (vhost_user_tx_avx2 && clib_cpu_supports_avx2 ())
- vhost_user_device_class.tx_function = vhost_user_tx_avx2;
-}
-#endif
-#endif
-
/* *INDENT-ON* */
/*