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);
115 log_debug (
"assign_thread: interface %v queue-id %u thread %u", hi->
name,
126 log_debug (
"unassign_thread: interface %v queue-id %u thread %u", hi->
name,
VLIB_REGISTER_LOG_CLASS(if_txq_log, static)
static_always_inline vnet_hw_if_tx_queue_t * vnet_hw_if_get_tx_queue(vnet_main_t *vnm, u32 queue_index)
#define pool_get_zero(P, E)
Allocate an object E from a pool P and zero it.
void vnet_hw_if_tx_queue_unassign_thread(vnet_main_t *vnm, u32 queue_index, u32 thread_index)
vnet_interface_main_t interface_main
static vnet_hw_interface_t * vnet_get_hw_interface(vnet_main_t *vnm, u32 hw_if_index)
#define vec_add1(V, E)
Add 1 element to end of vector (unspecified alignment).
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. ...
vnet_hw_if_tx_queue_t * hw_if_tx_queues
uword * txq_index_by_hw_if_index_and_queue_id
u32 vnet_hw_if_get_tx_queue_index_by_id(vnet_main_t *vnm, u32 hw_if_index, u32 queue_id)
#define log_debug(fmt,...)
#define vec_del1(v, i)
Delete the element at index I.
static u64 tx_queue_key(u32 hw_if_index, u32 queue_id)
sll srl srl sll sra u16x4 i
#define vec_free(V)
Free vector's memory (no header).
void vnet_hw_if_unregister_tx_queue(vnet_main_t *vnm, u32 queue_index)
vnet_interface_main_t * im
#define pool_put_index(p, i)
Free pool element with given index.
u32 vnet_hw_if_register_tx_queue(vnet_main_t *vnm, u32 hw_if_index, u32 queue_id)
static void hash_unset_mem_free(uword **h, const void *key)
#define clib_bitmap_free(v)
Free a bitmap.
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
void vnet_hw_if_tx_queue_assign_thread(vnet_main_t *vnm, u32 queue_index, u32 thread_index)
#define hash_get_mem(h, key)
void vnet_hw_if_unregister_all_tx_queues(vnet_main_t *vnm, u32 hw_if_index)
static void hash_set_mem_alloc(uword **h, const void *key, uword v)
#define clib_panic(format, args...)