STRUCT IDPF_Q_VECTOR(9)
πΈ NAME πΈ
okay bestie, welcome to the struct idpf_q_vector(9) page in the Kernel API Manual π the NAME line is literally just the struct name with no extra description, and we are respecting that minimal queen energy. struct idpf_q_vector is the main character here, no cap.
β¨ SYNOPSIS β¨
here's the whole struct, copied character for character, because we do not play games with literals:
struct idpf_q_vector {
__cacheline_group_begin_aligned(read_mostly);
struct idpf_vport *vport;
u16 num_rxq;
u16 num_txq;
u16 num_bufq;
u16 num_complq;
u16 num_xsksq;
struct idpf_rx_queue **rx;
struct idpf_tx_queue **tx;
struct idpf_buf_queue **bufq;
struct idpf_compl_queue **complq;
struct idpf_tx_queue **xsksq;
struct idpf_intr_reg intr_reg;
__cacheline_group_end_aligned(read_mostly);
__cacheline_group_begin_aligned(read_write);
call_single_data_t csd;
u16 total_events;
bool wb_on_itr;
struct napi_struct napi;
struct dim tx_dim;
u16 tx_itr_value;
bool tx_intr_mode;
u32 tx_itr_idx;
struct dim rx_dim;
u16 rx_itr_value;
bool rx_intr_mode;
u32 rx_itr_idx;
__cacheline_group_end_aligned(read_write);
__cacheline_group_begin_aligned(cold);
u16 v_idx;
__cacheline_group_end_aligned(cold);
};
the way this struct is organized into read_mostly, read_write, and cold cacheline groups? iconic. all the fields are staying exactly as written π«Ά
π¦ Members π¦
every single member is getting its moment, because skipping any of them would be not the vibe:
vportβ Vport back pointer. literally the back pointer to the vport, slay.num_rxqβ Number of RX queues.num_txqβ Number of TX queues.num_bufqβ Number of buffer queues.num_complqβ number of completion queues (yes, lowercase "number" in the original; we keep the details π ).num_xsksqβ number of XSk send queues.rxβ Array of RX queues to service. an array, bestie.txβ Array of TX queues to service.bufqβ Array of buffer queues to service.complqβ array of completion queues.xsksqβ array of XSk send queues.intr_regβ Seestruct idpf_intr_reg. that's the whole description, and it's giving efficient.csdβ XSk wakeup CSD. wakeup business, periodt.total_eventsβ Number of interrupts processed.wb_on_itrβ whether WB on ITR is enabled. a bool checking that exact thing.napiβ napi handler. main character energy.tx_dimβ Data for TXnet_dimalgorithm.tx_itr_valueβ TX interrupt throttling rate.tx_intr_modeβ Dynamic ITR or not. that's literally the description.tx_itr_idxβ TX ITR index.rx_dimβ Data for RXnet_dimalgorithm.rx_itr_valueβ RX interrupt throttling rate.rx_intr_modeβ Dynamic ITR or not. same energy, RX edition.rx_itr_idxβ RX ITR index.v_idxβ Vector index. the final field in thecoldgroup, cute.
π SEE ALSO π
the kernel file is ./drivers/net/ethernet/intel/idpf/idpf_txrx.h β and here are all the references, exactly as the original lists them, because we are thorough besties:
struct idpf_tx_offload_params(9)struct idpf_tx_splitq_params(9)enum idpf_queue_flags_t(9)struct idpf_vec_regs(9)struct idpf_intr_reg(9)struct idpf_rx_queue(9)struct idpf_tx_queue(9)struct idpf_buf_queue(9)struct idpf_compl_queue(9)struct idpf_sw_queue(9)struct idpf_rxq_set(9)struct idpf_bufq_set(9)struct idpf_rxq_group(9)struct idpf_txq_group(9)idpf_size_to_txd_count(9)idpf_tx_singleq_build_ctob(9)idpf_tx_splitq_build_desc(9)idpf_vport_intr_set_wb_on_itr(9)idpf_tx_splitq_get_free_bufs(9)
mwah π this page is the struct idpf_q_vector(9) manual, sourced from ./drivers/net/ethernet/intel/idpf, dated October 2026 β bye bestie, go read those structs π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms