|
FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
Go to the documentation of this file.
11 .class_name =
"interface",
12 .subclass_name =
"tx-queue",
15 #define log_debug(fmt, ...) vlib_log_debug (if_txq_log.class, fmt, __VA_ARGS__)
16 #define log_err(fmt, ...) vlib_log_err (if_txq_log.class, fmt, __VA_ARGS__)
21 return ((
u64) hw_if_index << 32) | queue_id;
44 clib_panic (
"Trying to register already registered queue id (%u) in the "
56 log_debug (
"register: interface %v queue-id %u",
hi->name, queue_id);
74 if (
hi->tx_queue_indices[
i] == queue_index)
93 log_debug (
"unregister_all: interface %v",
hi->name);
118 "assign_thread: interface %v queue-id %u thread %u queue-shared %s",
133 "unassign_thread: interface %v queue-id %u thread %u queue-shared %s",
vnet_interface_main_t * im
void vnet_hw_if_unregister_all_tx_queues(vnet_main_t *vnm, u32 hw_if_index)
u32 vnet_hw_if_get_tx_queue_index_by_id(vnet_main_t *vnm, u32 hw_if_index, u32 queue_id)
void vnet_hw_if_tx_queue_assign_thread(vnet_main_t *vnm, u32 queue_index, u32 thread_index)
void vnet_hw_if_unregister_tx_queue(vnet_main_t *vnm, u32 queue_index)
void vnet_hw_if_tx_queue_unassign_thread(vnet_main_t *vnm, u32 queue_index, u32 thread_index)
#define pool_put_index(p, i)
Free pool element with given index.
static void hash_set_mem_alloc(uword **h, const void *key, uword v)
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
#define vec_add1(V, E)
Add 1 element to end of vector (unspecified alignment).
static vnet_hw_interface_t * vnet_get_hw_interface(vnet_main_t *vnm, u32 hw_if_index)
static uword clib_bitmap_count_set_bits(uword *ai)
Return the number of set bits in a bitmap.
#define clib_bitmap_free(v)
Free a bitmap.
static_always_inline vnet_hw_if_tx_queue_t * vnet_hw_if_get_tx_queue(vnet_main_t *vnm, u32 queue_index)
static uword * clib_bitmap_set(uword *ai, uword i, uword value)
Sets the ith bit of a bitmap to new_value Removes trailing zeros from the bitmap.
uword * txq_index_by_hw_if_index_and_queue_id
#define hash_get_mem(h, key)
#define vec_free(V)
Free vector's memory (no header).
VLIB_REGISTER_LOG_CLASS(if_txq_log, static)
vnet_hw_if_tx_queue_t * hw_if_tx_queues
static u64 tx_queue_key(u32 hw_if_index, u32 queue_id)
static void hash_unset_mem_free(uword **h, const void *key)
#define pool_get_zero(P, E)
Allocate an object E from a pool P and zero it.
#define log_debug(fmt,...)
#define clib_panic(format, args...)
u32 vnet_hw_if_register_tx_queue(vnet_main_t *vnm, u32 hw_if_index, u32 queue_id)
#define vec_del1(v, i)
Delete the element at index I.
vnet_interface_main_t interface_main