ASSERT (vui->virtio_net_hdr_sz < VLIB_BUFFER_PRE_DATA_SIZE);
vnet_hw_interface_set_flags (vnm, vui->hw_if_index, 0);
vui->is_ready = 0;
+ vhost_user_update_iface_state (vui);
break;
case VHOST_USER_SET_MEM_TABLE:
static clib_error_t *
vhost_user_init (vlib_main_t * vm)
{
- clib_error_t *error;
vhost_user_main_t *vum = &vhost_user_main;
vlib_thread_main_t *tm = vlib_get_thread_main ();
- error = vlib_call_init_function (vm, ip4_init);
- if (error)
- return error;
-
vum->log_default = vlib_log_register_class ("vhost-user", 0);
vum->coalesce_frames = 32;
return 0;
}
-VLIB_INIT_FUNCTION (vhost_user_init);
+/* *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,
vnet_hw_interface_t *hwif;
u16 qid;
- if (!(hwif = vnet_get_sup_hw_interface (vnm, sw_if_index)) ||
- hwif->dev_class_index != vhost_user_device_class.index)
+ if (!
+ (hwif =
+ vnet_get_sup_hw_interface_api_visible_or_null (vnm, sw_if_index))
+ || hwif->dev_class_index != vhost_user_device_class.index)
return VNET_API_ERROR_INVALID_SW_IF_INDEX;
vui = pool_elt_at_index (vum->vhost_user_interfaces, hwif->dev_instance);
vnet_hw_interface_t *hwif;
uword *if_index;
- if (!(hwif = vnet_get_sup_hw_interface (vnm, sw_if_index)) ||
- hwif->dev_class_index != vhost_user_device_class.index)
+ if (!
+ (hwif =
+ vnet_get_sup_hw_interface_api_visible_or_null (vnm, sw_if_index))
+ || hwif->dev_class_index != vhost_user_device_class.index)
return VNET_API_ERROR_INVALID_SW_IF_INDEX;
if (sock_filename == NULL || !(strlen (sock_filename) > 0))
&sw_if_index))
{
vnet_hw_interface_t *hwif =
- vnet_get_sup_hw_interface (vnm, sw_if_index);
+ vnet_get_sup_hw_interface_api_visible_or_null (vnm, sw_if_index);
if (hwif == NULL ||
vhost_user_device_class.index != hwif->dev_class_index)
{