![]() |
FD.io VPP
v17.07-30-g839fa73
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 | 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 133 of file vhost-user.c.
| #define foreach_vhost_user_tx_func_error |
Definition at line 110 of file vhost-user.c.
| #define foreach_virtio_trace_flags |
Definition at line 95 of file vhost-user.c.
| #define UNIX_GET_FD | ( | unixfd_idx | ) |
Definition at line 90 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 615 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 650 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.
| Enumerator | |
|---|---|
| VHOST_USER_INPUT_FUNC_N_ERROR | |
Definition at line 141 of file vhost-user.c.
| Enumerator | |
|---|---|
| VHOST_USER_TX_FUNC_N_ERROR | |
Definition at line 119 of file vhost-user.c.
| enum virtio_trace_flag_t |
| Enumerator | |
|---|---|
| foreach_virtio_trace_flags | |
Definition at line 101 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 1248 of file vhost-user.c.
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 166 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 294 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 2730 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 2828 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 2611 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 3049 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 593 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 1459 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 2690 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 1353 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 1440 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 2377 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 434 of file vhost-user.c.
Here is the caller graph for this function:
|
static |
Definition at line 491 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 617 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 2886 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 1401 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 370 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 1286 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 1333 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 464 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 1171 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 657 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 1187 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 2582 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 1971 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 1923 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 330 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 1887 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 446 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 567 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 529 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 520 of file vhost-user.c.
Here is the caller graph for this function:
|
inlinestatic |
Unlock the vring lock.
Definition at line 539 of file vhost-user.c.
Here is the caller graph for this function:
|
static |
Definition at line 2768 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 3586 of file vhost-user.c.
|
static |
(constructor) VLIB_CLI_COMMAND (show_vhost_user_command)
Definition at line 3528 of file vhost-user.c.
|
static |
(constructor) VLIB_CLI_COMMAND (vhost_user_connect_command)
Definition at line 3367 of file vhost-user.c.
|
static |
(constructor) VLIB_CLI_COMMAND (vhost_user_delete_command)
Definition at line 3388 of file vhost-user.c.
|
static |
Definition at line 149 of file vhost-user.c.
| vlib_node_registration_t vhost_user_input_node |
(constructor) VLIB_REGISTER_NODE (vhost_user_input_node)
Definition at line 108 of file vhost-user.c.
|
static |
Definition at line 156 of file vhost-user.c.
|
static |
(constructor) VLIB_REGISTER_NODE (vhost_user_process_node)
Definition at line 2570 of file vhost-user.c.
|
static |
(constructor) VLIB_REGISTER_NODE (vhost_user_send_interrupt_node)
Definition at line 2369 of file vhost-user.c.
|
static |
Definition at line 127 of file vhost-user.c.