|
| VNET_HW_INTERFACE_CLASS (vhost_interface_class, static) |
|
static u8 * | format_vhost_user_interface_name (u8 *s, va_list *args) |
|
static int | vhost_user_name_renumber (vnet_hw_interface_t *hi, u32 new_dev_instance) |
|
static_always_inline void * | map_guest_mem (vhost_user_intf_t *vui, uword addr, u32 *hint) |
|
static void * | map_user_mem (vhost_user_intf_t *vui, uword addr) |
|
static long | get_huge_page_size (int fd) |
|
static void | unmap_all_mem_regions (vhost_user_intf_t *vui) |
|
static void | vhost_user_tx_thread_placement (vhost_user_intf_t *vui) |
|
static void | vhost_user_rx_thread_placement () |
| Unassign existing interface/queue to thread mappings and re-assign new interface/queue to thread mappings. More...
|
|
int | vhost_user_intf_ready (vhost_user_intf_t *vui) |
| Returns whether at least one TX and one RX vring are enabled. More...
|
|
static void | vhost_user_update_iface_state (vhost_user_intf_t *vui) |
|
static void | vhost_user_set_interrupt_pending (vhost_user_intf_t *vui, u32 ifq) |
|
static clib_error_t * | vhost_user_callfd_read_ready (clib_file_t *uf) |
|
static clib_error_t * | vhost_user_kickfd_read_ready (clib_file_t *uf) |
|
static int | vhost_user_vring_try_lock (vhost_user_intf_t *vui, u32 qid) |
| Try once to lock the vring. More...
|
|
static void | vhost_user_vring_lock (vhost_user_intf_t *vui, u32 qid) |
| Spin until the vring is successfully locked. More...
|
|
static void | vhost_user_vring_unlock (vhost_user_intf_t *vui, u32 qid) |
| Unlock the vring lock. More...
|
|
static void | vhost_user_vring_init (vhost_user_intf_t *vui, u32 qid) |
|
static void | vhost_user_vring_close (vhost_user_intf_t *vui, u32 qid) |
|
static void | vhost_user_if_disconnect (vhost_user_intf_t *vui) |
|
static_always_inline void | vhost_user_log_dirty_pages_2 (vhost_user_intf_t *vui, u64 addr, u64 len, u8 is_host_address) |
|
static_always_inline void | vhost_user_log_dirty_pages (vhost_user_intf_t *vui, u64 addr, u64 len) |
|
static clib_error_t * | vhost_user_socket_read (clib_file_t *uf) |
|
static clib_error_t * | vhost_user_socket_error (clib_file_t *uf) |
|
static clib_error_t * | vhost_user_socksvr_accept_ready (clib_file_t *uf) |
|
static clib_error_t * | vhost_user_init (vlib_main_t *vm) |
|
static u8 * | format_vhost_trace (u8 *s, va_list *va) |
|
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) |
|
static void | vhost_user_send_call (vlib_main_t *vm, vhost_user_vring_t *vq) |
|
static_always_inline u32 | vhost_user_input_copy (vhost_user_intf_t *vui, vhost_copy_t *cpy, u16 copy_len, u32 *map_hint) |
|
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). More...
|
|
static void | vhost_user_input_rewind_buffers (vlib_main_t *vm, vhost_cpu_t *cpu, vlib_buffer_t *b_head) |
|
static u32 | vhost_user_if_input (vlib_main_t *vm, vhost_user_main_t *vum, vhost_user_intf_t *vui, u16 qid, vlib_node_runtime_t *node, vnet_hw_interface_rx_mode mode) |
|
static uword | vhost_user_input (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *f) |
|
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) |
|
static uword | vhost_user_tx (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
static uword | vhost_user_send_interrupt_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f) |
|
static 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 clib_error_t * | vhost_user_interface_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags) |
|
| VNET_DEVICE_CLASS (vhost_user_dev_class, static) |
|
| VLIB_DEVICE_TX_FUNCTION_MULTIARCH (vhost_user_dev_class, vhost_user_tx) |
|
static void | vhost_user_term_if (vhost_user_intf_t *vui) |
| Disables and reset interface structure. More...
|
|
int | vhost_user_delete_if (vnet_main_t *vnm, vlib_main_t *vm, u32 sw_if_index) |
|
static clib_error_t * | vhost_user_exit (vlib_main_t *vm) |
|
static int | vhost_user_init_server_sock (const char *sock_filename, int *sock_fd) |
| Open server unix socket on specified sock_filename. More...
|
|
static void | vhost_user_create_ethernet (vnet_main_t *vnm, vlib_main_t *vm, vhost_user_intf_t *vui, u8 *hwaddress) |
| Create ethernet interface for vhost user interface. More...
|
|
static void | vhost_user_vui_init (vnet_main_t *vnm, vhost_user_intf_t *vui, int server_sock_fd, const char *sock_filename, u64 feature_mask, u32 *sw_if_index) |
|
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) |
|
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) |
|
clib_error_t * | vhost_user_connect_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
clib_error_t * | vhost_user_delete_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
int | vhost_user_dump_ifs (vnet_main_t *vnm, vlib_main_t *vm, vhost_user_intf_details_t **out_vuids) |
|
clib_error_t * | show_vhost_user_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
clib_error_t * | debug_vhost_user_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | vhost_user_config (vlib_main_t *vm, unformat_input_t *input) |
|
void | vhost_user_unmap_all (void) |
|
vHost User Device Driver.
This file contains the source code for vHost User interface.
Definition in file vhost-user.c.