vlib_node_registration_t vhost_user_send_interrupt_node;
-/* *INDENT-OFF* */
vhost_user_main_t vhost_user_main = {
.mtu_bytes = 1518,
};
VNET_HW_INTERFACE_CLASS (vhost_interface_class, static) = {
.name = "vhost-user",
};
-/* *INDENT-ON* */
static long
get_huge_page_size (int fd)
return 0;
}
-/* *INDENT-OFF* */
VLIB_INIT_FUNCTION (vhost_user_init) =
{
.runs_after = VLIB_INITS("ip4_init"),
};
-/* *INDENT-ON* */
static uword
vhost_user_send_interrupt_process (vlib_main_t * vm,
/* fall through */
case ~0:
- /* *INDENT-OFF* */
pool_foreach (vui, vum->vhost_user_interfaces) {
next_timeout = timeout;
FOR_ALL_VHOST_RX_TXQ (qid, vui)
timeout = next_timeout;
}
}
- /* *INDENT-ON* */
break;
default:
return 0;
}
-/* *INDENT-OFF* */
VLIB_REGISTER_NODE (vhost_user_send_interrupt_node) = {
.function = vhost_user_send_interrupt_process,
.type = VLIB_NODE_TYPE_PROCESS,
.name = "vhost-user-send-interrupt-process",
};
-/* *INDENT-ON* */
static uword
vhost_user_process (vlib_main_t * vm,
timeout = 3.0;
- /* *INDENT-OFF* */
pool_foreach (vui, vum->vhost_user_interfaces) {
if (vui->unix_server_index == ~0) { //Nothing to do for server sockets
}
}
}
- /* *INDENT-ON* */
}
return 0;
}
-/* *INDENT-OFF* */
VLIB_REGISTER_NODE (vhost_user_process_node,static) = {
.function = vhost_user_process,
.type = VLIB_NODE_TYPE_PROCESS,
.name = "vhost-user-process",
};
-/* *INDENT-ON* */
/**
* Disables and reset interface structure.
vhost_user_intf_t *vui;
vlib_worker_thread_barrier_sync (vlib_get_main ());
- /* *INDENT-OFF* */
pool_foreach (vui, vum->vhost_user_interfaces) {
vhost_user_delete_if (vnm, vm, vui->sw_if_index);
}
- /* *INDENT-ON* */
vlib_worker_thread_barrier_release (vlib_get_main ());
return 0;
}
* Once the vHost interface is created, enable the interface using:
* @cliexcmd{set interface state VirtualEthernet0/0/0 up}
?*/
-/* *INDENT-OFF* */
VLIB_CLI_COMMAND (vhost_user_connect_command, static) = {
.path = "create vhost-user",
.short_help = "create vhost-user socket <socket-filename> [server] "
.function = vhost_user_connect_command_fn,
.is_mp_safe = 1,
};
-/* *INDENT-ON* */
/*?
* Delete a vHost User interface using the interface name or the
* Example of how to delete a vhost interface by software interface index:
* @cliexcmd{delete vhost-user sw_if_index 1}
?*/
-/* *INDENT-OFF* */
VLIB_CLI_COMMAND (vhost_user_delete_command, static) = {
.path = "delete vhost-user",
.short_help = "delete vhost-user {<interface> | sw_if_index <sw_idx>}",
* @cliexend
* @endparblock
?*/
-/* *INDENT-OFF* */
VLIB_CLI_COMMAND (show_vhost_user_command, static) = {
.path = "show vhost-user",
.short_help = "show vhost-user [<interface> [<interface> [..]]] "
"[[descriptors] [verbose]]",
.function = show_vhost_user_command_fn,
};
-/* *INDENT-ON* */
static clib_error_t *