![]() |
FD.io VPP
v17.10-9-gd594711
Vector Packet Processing
|
vHost User Device Driver. More...
Include dependency graph for vhost-user.c:Go to the source code of this file.
Macros | |
| #define | VHOST_DEBUG_VQ 0 |
| #define | DBG_SOCK(args...) |
| #define | DBG_VQ(args...) |
| #define | VHOST_USER_DOWN_DISCARD_COUNT 256 |
| #define | VHOST_USER_RX_BUFFER_STARVATION 32 |
| #define | VHOST_USER_RX_COPY_THRESHOLD 64 |
| #define | VHOST_USER_TX_COPY_THRESHOLD (VHOST_USER_COPY_ARRAY_N - 40) |
| #define | UNIX_GET_FD(unixfd_idx) |
| #define | foreach_virtio_trace_flags |
| #define | foreach_vhost_user_tx_func_error |
| #define | foreach_vhost_user_input_func_error |
| #define | VHOST_LOG_PAGE 0x1000 |
| #define | vhost_user_log_dirty_ring(vui, vq, member) |
| #define | foreach_protocol_feature |
Enumerations | |
| enum | virtio_trace_flag_t { foreach_virtio_trace_flags } |
| enum | vhost_user_tx_func_error_t { VHOST_USER_TX_FUNC_N_ERROR } |
| enum | vhost_user_input_func_error_t { VHOST_USER_INPUT_FUNC_N_ERROR } |
Variables | |
| vlib_node_registration_t | vhost_user_input_node |
| (constructor) VLIB_REGISTER_NODE (vhost_user_input_node) More... | |
| static char * | vhost_user_tx_func_error_strings [] |
| static char * | vhost_user_input_func_error_strings [] |
| static vhost_user_main_t | vhost_user_main |
| static vlib_node_registration_t | vhost_user_send_interrupt_node |
| (constructor) VLIB_REGISTER_NODE (vhost_user_send_interrupt_node) More... | |
| static vlib_node_registration_t | vhost_user_process_node |
| (constructor) VLIB_REGISTER_NODE (vhost_user_process_node) More... | |
| static vlib_cli_command_t | vhost_user_connect_command |
| (constructor) VLIB_CLI_COMMAND (vhost_user_connect_command) More... | |
| static vlib_cli_command_t | vhost_user_delete_command |
| (constructor) VLIB_CLI_COMMAND (vhost_user_delete_command) More... | |
| static vlib_cli_command_t | show_vhost_user_command |
| (constructor) VLIB_CLI_COMMAND (show_vhost_user_command) More... | |
| static vlib_cli_command_t | debug_vhost_user_command |
| (constructor) VLIB_CLI_COMMAND (debug_vhost_user_command) More... | |
vHost User Device Driver.
This file contains the source code for vHost User interface.
Definition in file vhost-user.c.
| #define DBG_SOCK | ( | args... | ) |
Definition at line 54 of file vhost-user.c.
| #define DBG_VQ | ( | args... | ) |
Definition at line 64 of file vhost-user.c.
| #define foreach_protocol_feature |
| #define foreach_vhost_user_input_func_error |
Definition at line 143 of file vhost-user.c.
| #define foreach_vhost_user_tx_func_error |
Definition at line 120 of file vhost-user.c.
| #define foreach_virtio_trace_flags |
Definition at line 105 of file vhost-user.c.
| #define UNIX_GET_FD | ( | unixfd_idx | ) |
Definition at line 100 of file vhost-user.c.
| #define VHOST_DEBUG_VQ 0 |
Definition at line 52 of file vhost-user.c.
| #define VHOST_LOG_PAGE 0x1000 |
Definition at line 625 of file vhost-user.c.
| #define VHOST_USER_DOWN_DISCARD_COUNT 256 |
Definition at line 72 of file vhost-user.c.
| #define vhost_user_log_dirty_ring | ( | vui, | |
| vq, | |||
| member | |||
| ) |
Definition at line 660 of file vhost-user.c.
| #define VHOST_USER_RX_BUFFER_STARVATION 32 |
Definition at line 78 of file vhost-user.c.
| #define VHOST_USER_RX_COPY_THRESHOLD 64 |
Definition at line 88 of file vhost-user.c.
| #define VHOST_USER_TX_COPY_THRESHOLD (VHOST_USER_COPY_ARRAY_N - 40) |
Definition at line 98 of file vhost-user.c.
| Enumerator | |
|---|---|
| VHOST_USER_INPUT_FUNC_N_ERROR | |
Definition at line 151 of file vhost-user.c.
| Enumerator | |
|---|---|
| VHOST_USER_TX_FUNC_N_ERROR | |
Definition at line 129 of file vhost-user.c.
| enum virtio_trace_flag_t |
| Enumerator | |
|---|---|
| foreach_virtio_trace_flags | |
Definition at line 111 of file vhost-user.c.
| clib_error_t* debug_vhost_user_command_fn | ( | vlib_main_t * | vm, |
| unformat_input_t * | input, | ||
| vlib_cli_command_t * | cmd | ||
| ) |
Definition at line 1258 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 176 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
| static_always_inline void* map_guest_mem | ( | vhost_user_intf_t * | vui, |
| uword | addr, | ||
| u32 * | hint | ||
| ) |
|
inlinestatic |
| clib_error_t* show_vhost_user_command_fn | ( | vlib_main_t * | vm, |
| unformat_input_t * | input, | ||
| vlib_cli_command_t * | cmd | ||
| ) |
|
static |
Definition at line 304 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
static |
| clib_error_t* vhost_user_connect_command_fn | ( | vlib_main_t * | vm, |
| unformat_input_t * | input, | ||
| vlib_cli_command_t * | cmd | ||
| ) |
|
static |
Create ethernet interface for vhost user interface.
Definition at line 2763 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int vhost_user_create_if | ( | vnet_main_t * | vnm, |
| vlib_main_t * | vm, | ||
| const char * | sock_filename, | ||
| u8 | is_server, | ||
| u32 * | sw_if_index, | ||
| u64 | feature_mask, | ||
| u8 | renumber, | ||
| u32 | custom_dev_instance, | ||
| u8 * | hwaddr | ||
| ) |
Definition at line 2861 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:| clib_error_t* vhost_user_delete_command_fn | ( | vlib_main_t * | vm, |
| unformat_input_t * | input, | ||
| vlib_cli_command_t * | cmd | ||
| ) |
| int vhost_user_delete_if | ( | vnet_main_t * | vnm, |
| vlib_main_t * | vm, | ||
| u32 | sw_if_index | ||
| ) |
Definition at line 2644 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int vhost_user_dump_ifs | ( | vnet_main_t * | vnm, |
| vlib_main_t * | vm, | ||
| vhost_user_intf_details_t ** | out_vuids | ||
| ) |
Definition at line 3082 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
inlinestatic |
Definition at line 603 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1468 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
static |
Open server unix socket on specified sock_filename.
Definition at line 2723 of file vhost-user.c.
Here is the caller graph for this function:
|
static |
| static_always_inline u32 vhost_user_input_copy | ( | vhost_user_intf_t * | vui, |
| vhost_copy_t * | cpy, | ||
| u16 | copy_len, | ||
| u32 * | map_hint | ||
| ) |
Definition at line 1362 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1449 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
static |
Definition at line 2405 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int vhost_user_intf_ready | ( | vhost_user_intf_t * | vui | ) |
Returns whether at least one TX and one RX vring are enabled.
Definition at line 444 of file vhost-user.c.
Here is the caller graph for this function:
|
static |
Definition at line 501 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:| static_always_inline void vhost_user_log_dirty_pages | ( | vhost_user_intf_t * | vui, |
| u64 | addr, | ||
| u64 | len | ||
| ) |
| static_always_inline void vhost_user_log_dirty_pages_2 | ( | vhost_user_intf_t * | vui, |
| u64 | addr, | ||
| u64 | len, | ||
| u8 | is_host_address | ||
| ) |
Definition at line 627 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int vhost_user_modify_if | ( | vnet_main_t * | vnm, |
| vlib_main_t * | vm, | ||
| const char * | sock_filename, | ||
| u8 | is_server, | ||
| u32 | sw_if_index, | ||
| u64 | feature_mask, | ||
| u8 | renumber, | ||
| u32 | custom_dev_instance | ||
| ) |
Definition at line 2919 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
| u32 vhost_user_rx_discard_packet | ( | vlib_main_t * | vm, |
| vhost_user_intf_t * | vui, | ||
| vhost_user_vring_t * | txvq, | ||
| u32 | discard_max | ||
| ) |
Try to discard packets from the tx ring (VPP RX path).
Returns the number of discarded packets.
Definition at line 1410 of file vhost-user.c.
Here is the caller graph for this function:
|
static |
Unassign existing interface/queue to thread mappings and re-assign new interface/queue to thread mappings.
Definition at line 380 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void vhost_user_rx_trace | ( | vhost_trace_t * | t, |
| vhost_user_intf_t * | vui, | ||
| u16 | qid, | ||
| vlib_buffer_t * | b, | ||
| vhost_user_vring_t * | txvq | ||
| ) |
Definition at line 1296 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 1342 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
static |
Definition at line 474 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1181 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 667 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1197 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Disables and reset interface structure.
It can then be either init again, or removed from used interfaces.
Definition at line 2615 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1981 of file vhost-user.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 1933 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 340 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:| 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 1898 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void vhost_user_unmap_all | ( | void | ) |
|
static |
Definition at line 456 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 577 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
|
inlinestatic |
Spin until the vring is successfully locked.
Definition at line 539 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Try once to lock the vring.
Definition at line 530 of file vhost-user.c.
Here is the caller graph for this function:
|
inlinestatic |
Unlock the vring lock.
Definition at line 549 of file vhost-user.c.
Here is the caller graph for this function:
|
static |
Definition at line 2801 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:| VLIB_DEVICE_TX_FUNCTION_MULTIARCH | ( | vhost_user_dev_class | , |
| vhost_user_tx | |||
| ) |
| VNET_DEVICE_CLASS | ( | vhost_user_dev_class | , |
| static | |||
| ) |
Here is the caller graph for this function:| VNET_HW_INTERFACE_CLASS | ( | vhost_interface_class | , |
| static | |||
| ) |
|
static |
(constructor) VLIB_CLI_COMMAND (debug_vhost_user_command)
Definition at line 3620 of file vhost-user.c.
|
static |
(constructor) VLIB_CLI_COMMAND (show_vhost_user_command)
Definition at line 3562 of file vhost-user.c.
|
static |
(constructor) VLIB_CLI_COMMAND (vhost_user_connect_command)
Definition at line 3401 of file vhost-user.c.
|
static |
(constructor) VLIB_CLI_COMMAND (vhost_user_delete_command)
Definition at line 3422 of file vhost-user.c.
|
static |
Definition at line 159 of file vhost-user.c.
| vlib_node_registration_t vhost_user_input_node |
(constructor) VLIB_REGISTER_NODE (vhost_user_input_node)
Definition at line 118 of file vhost-user.c.
|
static |
Definition at line 166 of file vhost-user.c.
|
static |
(constructor) VLIB_REGISTER_NODE (vhost_user_process_node)
Definition at line 2603 of file vhost-user.c.
|
static |
(constructor) VLIB_REGISTER_NODE (vhost_user_send_interrupt_node)
Definition at line 2397 of file vhost-user.c.
|
static |
Definition at line 137 of file vhost-user.c.