diff options
author | Steven Luong <sluong@cisco.com> | 2021-06-17 08:22:50 -0700 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2021-07-08 16:53:17 +0000 |
commit | 8e3f109a0664404c36bdcb6b5a20d836c1d7d887 (patch) | |
tree | 7ff4c32825d23a0268ef399b09a721bb34add99b /src | |
parent | 0cc23b7dde261390b0ffa7a5ba2d11603b40eafa (diff) |
interface: unable to to assign tx queue to last worker thread
Using the cli "set interface tx-queue", it is not possible to assign
tx queue to the last worker thread.
The reason is that vdm->first_worker_thread_index is 1. Adding that
to clib_bitmap_last_set (bitmap) exceeds vdm->last_worker_thread_index
when the CLI specifies the last worker thread.
Also make the threads argument optional to enable user to unbind a queue
from any thread.
Type: fix
Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I796259c20f571289c8f5a97b9418caf452d0ab3d
Diffstat (limited to 'src')
-rw-r--r-- | src/vnet/interface_cli.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/vnet/interface_cli.c b/src/vnet/interface_cli.c index e5d0ab280db..73b275785b8 100644 --- a/src/vnet/interface_cli.c +++ b/src/vnet/interface_cli.c @@ -1822,9 +1822,8 @@ set_hw_interface_tx_queue (u32 hw_if_index, u32 queue_id, uword *bitmap) hw = vnet_get_hw_interface (vnm, hw_if_index); /* highest set bit in bitmap should not exceed last worker thread index */ - thread_index = - clib_bitmap_last_set (bitmap) + vdm->first_worker_thread_index; - if (thread_index > vdm->last_worker_thread_index) + thread_index = clib_bitmap_last_set (bitmap); + if ((thread_index != ~0) && (thread_index > vdm->last_worker_thread_index)) return clib_error_return (0, "please specify valid thread(s)"); queue_index = @@ -1900,7 +1899,7 @@ error: VLIB_CLI_COMMAND (cmd_set_if_tx_queue, static) = { .path = "set interface tx-queue", .short_help = "set interface tx-queue <interface> queue <n> " - "threads <list>", + "[threads <list>]", .function = set_interface_tx_queue, .is_mp_safe = 1, }; |