summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSteven Luong <sluong@cisco.com>2021-06-17 08:22:50 -0700
committerDamjan Marion <dmarion@me.com>2021-07-08 16:53:17 +0000
commit8e3f109a0664404c36bdcb6b5a20d836c1d7d887 (patch)
tree7ff4c32825d23a0268ef399b09a721bb34add99b /src
parent0cc23b7dde261390b0ffa7a5ba2d11603b40eafa (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.c7
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,
};