vnet_hw_interface_rx_mode old_mode;
int rv;
+ if (mode == VNET_HW_INTERFACE_RX_MODE_DEFAULT)
+ mode = hw->default_rx_mode;
+
rv = vnet_hw_interface_get_rx_mode (vnm, hw_if_index, queue_id, &old_mode);
switch (rv)
{
hw = vnet_get_hw_interface (vnm, hw_if_index);
if (queue_id == ~0)
- for (i = 0; i < vec_len (hw->dq_runtime_index_by_queue); i++)
- {
- error = set_hw_interface_rx_mode (vnm, hw_if_index, i, mode);
- if (error)
- break;
- }
+ {
+ for (i = 0; i < vec_len (hw->dq_runtime_index_by_queue); i++)
+ {
+ error = set_hw_interface_rx_mode (vnm, hw_if_index, i, mode);
+ if (error)
+ break;
+ }
+ hw->default_rx_mode = mode;
+ }
else
error = set_hw_interface_rx_mode (vnm, hw_if_index, queue_id, mode);
vec_foreach (dq, rt->devices_and_queues)
{
+ vnet_hw_interface_t *hi = vnet_get_hw_interface (vnm,
+ dq->hw_if_index);
s = format (s, " %U queue %u (%U)\n",
- format_vnet_sw_if_index_name, vnm, dq->hw_if_index,
+ format_vnet_sw_if_index_name, vnm, hi->sw_if_index,
dq->queue_id,
format_vnet_hw_interface_rx_mode, dq->mode);
}
/* *INDENT-OFF* */
VLIB_CLI_COMMAND (cmd_set_if_rx_placement,static) = {
.path = "set interface rx-placement",
- .short_help = "set interface rx-placement <hw-interface> [queue <n>] [thread <n> | main]",
+ .short_help = "set interface rx-placement <hw-interface> [queue <n>] "
+ "[worker <n> | main]",
.function = set_interface_rx_placement,
+ .is_mp_safe = 1,
};
/* *INDENT-ON* */