FD.io VPP  v18.07.1-19-g511ce25
Vector Packet Processing
vhost_user_output.c File Reference
+ Include dependency graph for vhost_user_output.c:

Go to the source code of this file.

Macros

#define VHOST_USER_TX_COPY_THRESHOLD   (VHOST_USER_COPY_ARRAY_N - 40)
 
#define foreach_vhost_user_tx_func_error
 

Enumerations

enum  vhost_user_tx_func_error_t { VHOST_USER_TX_FUNC_N_ERROR }
 

Functions

static __clib_unused u8format_vhost_user_interface_name (u8 *s, va_list *args)
 
static __clib_unused int vhost_user_name_renumber (vnet_hw_interface_t *hi, u32 new_dev_instance)
 
static_always_inline int vhost_user_vring_try_lock (vhost_user_intf_t *vui, u32 qid)
 Try once to lock the vring. More...
 
static_always_inline void vhost_user_vring_lock (vhost_user_intf_t *vui, u32 qid)
 Spin until the vring is successfully locked. More...
 
static_always_inline void vhost_user_vring_unlock (vhost_user_intf_t *vui, u32 qid)
 Unlock the vring lock. More...
 
static_always_inline void vhost_user_tx_trace (vhost_trace_t *t, vhost_user_intf_t *vui, u16 qid, vlib_buffer_t *b, vhost_user_vring_t *rxvq)
 
static_always_inline u32 vhost_user_tx_copy (vhost_user_intf_t *vui, vhost_copy_t *cpy, u16 copy_len, u32 *map_hint)
 
uword CLIB_MULTIARCH_FN() vhost_user_tx (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static __clib_unused clib_error_tvhost_user_interface_rx_mode_change (vnet_main_t *vnm, u32 hw_if_index, u32 qid, vnet_hw_interface_rx_mode mode)
 
static __clib_unused clib_error_tvhost_user_interface_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags)
 
 VNET_DEVICE_CLASS (vhost_user_device_class)
 
static void __clib_constructor vhost_user_tx_multiarch_select (void)
 

Variables

vnet_device_class_t vhost_user_device_class
 
static __clib_unused char * vhost_user_tx_func_error_strings []
 
vlib_node_function_t __clib_weak vhost_user_tx_avx512
 
vlib_node_function_t __clib_weak vhost_user_tx_avx2
 

Macro Definition Documentation

#define foreach_vhost_user_tx_func_error
Value:
_(NONE, "no error") \
_(NOT_READY, "vhost vring not ready") \
_(DOWN, "vhost interface is down") \
_(PKT_DROP_NOBUF, "tx packet drops (no available descriptors)") \
_(PKT_DROP_NOMRG, "tx packet drops (cannot merge descriptors)") \
_(MMAP_FAIL, "mmap failure") \
_(INDIRECT_OVERFLOW, "indirect descriptor table overflow")

Definition at line 58 of file vhost_user_output.c.

#define VHOST_USER_TX_COPY_THRESHOLD   (VHOST_USER_COPY_ARRAY_N - 40)

Definition at line 54 of file vhost_user_output.c.

Enumeration Type Documentation

Enumerator
VHOST_USER_TX_FUNC_N_ERROR 

Definition at line 67 of file vhost_user_output.c.

Function Documentation

static __clib_unused u8* format_vhost_user_interface_name ( u8 s,
va_list *  args 
)
static

Definition at line 82 of file vhost_user_output.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static __clib_unused clib_error_t* vhost_user_interface_admin_up_down ( vnet_main_t vnm,
u32  hw_if_index,
u32  flags 
)
static

Definition at line 619 of file vhost_user_output.c.

+ Here is the call graph for this function:

static __clib_unused clib_error_t* vhost_user_interface_rx_mode_change ( vnet_main_t vnm,
u32  hw_if_index,
u32  qid,
vnet_hw_interface_rx_mode  mode 
)
static

Definition at line 556 of file vhost_user_output.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static __clib_unused int vhost_user_name_renumber ( vnet_hw_interface_t hi,
u32  new_dev_instance 
)
static

Definition at line 99 of file vhost_user_output.c.

+ Here is the caller graph for this function:

uword CLIB_MULTIARCH_FN() vhost_user_tx ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)

Definition at line 228 of file vhost_user_output.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline u32 vhost_user_tx_copy ( vhost_user_intf_t vui,
vhost_copy_t cpy,
u16  copy_len,
u32 map_hint 
)

Definition at line 180 of file vhost_user_output.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void __clib_constructor vhost_user_tx_multiarch_select ( void  )
static

Definition at line 653 of file vhost_user_output.c.

static_always_inline void vhost_user_tx_trace ( vhost_trace_t t,
vhost_user_intf_t vui,
u16  qid,
vlib_buffer_t b,
vhost_user_vring_t rxvq 
)

Definition at line 145 of file vhost_user_output.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline void vhost_user_vring_lock ( vhost_user_intf_t vui,
u32  qid 
)

Spin until the vring is successfully locked.

Definition at line 129 of file vhost_user_output.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline int vhost_user_vring_try_lock ( vhost_user_intf_t vui,
u32  qid 
)

Try once to lock the vring.

Returns
0 on success, non-zero on failure.

Definition at line 120 of file vhost_user_output.c.

+ Here is the caller graph for this function:

static_always_inline void vhost_user_vring_unlock ( vhost_user_intf_t vui,
u32  qid 
)

Unlock the vring lock.

Definition at line 139 of file vhost_user_output.c.

+ Here is the caller graph for this function:

VNET_DEVICE_CLASS ( vhost_user_device_class  )

+ Here is the caller graph for this function:

Variable Documentation

vnet_device_class_t vhost_user_device_class

Definition at line 56 of file vhost_user_output.c.

vlib_node_function_t __clib_weak vhost_user_tx_avx2

Definition at line 651 of file vhost_user_output.c.

vlib_node_function_t __clib_weak vhost_user_tx_avx512

Definition at line 650 of file vhost_user_output.c.

__clib_unused char* vhost_user_tx_func_error_strings[]
static
Initial value:
= {
#define _(n,s)
}
#define foreach_vhost_user_tx_func_error

Definition at line 75 of file vhost_user_output.c.