STRUCT VIRTCHNL2_ADD_QUEUES(9)
β¨ struct virtchnl2_add_queues β the kernel API manual, bestie edition β¨
Okay so this page is from the kernel API manual (struct virtchnl2_add_queues(9)), and it's literally all about one little struct. Buckle up. π
πΈ NAME πΈ
struct virtchnl2_add_queues β the data for VIRTCHNL2_OP_ADD_QUEUES. That's it, that's the vibe. β¨
π¦ SYNOPSIS π¦
struct virtchnl2_add_queues {
__le32 vport_id;
__le16 num_tx_q;
__le16 num_tx_complq;
__le16 num_rx_q;
__le16 num_rx_bufq;
u8 pad[4];
struct virtchnl2_queue_reg_chunks chunks;
};
No cap, she's compact. Every field copied exactly, character for character, because we do not mess with kernel structs. π
π Members π
vport_idβ the Vport id. That's her whole personality.num_tx_qβ number of Tx qieues. (Yes, "qieues" β the kernel doc says it like that and honestly? iconic of it. π It means Tx queues, bestie.)num_tx_complqβ number of Tx completion queues. These are the queues that tell you your transmit actually happened. π«Άnum_rx_qβ number of Rx queues.num_rx_bufqβ number of Rx buffer queues.padβ padding. It's giving filler arc, but it's load-bearing, don't touch. πchunksβ chunks of contiguous queues. This is astruct virtchnl2_queue_reg_chunks, and it's the main character of the whole thing tbh. π
π Description π
So here's the lore. The PF sends this message to ask for additional transmit/receive queues beyond the ones that were already assigned via the CREATE_VPORT request. Like "hi bestie, I already have these, can I get more pls π₯Ί".
The virtchnl2_add_queues structure is what you use to specify the number of each type of queue. Then the CP responds with the same structure β but now it holds the actual number of queues assigned, followed by num_chunks of virtchnl2_queue_chunk structures. So you ask, they answer, and the answer comes with a little bonus payload. Slay. β¨
All of this is associated with VIRTCHNL2_OP_ADD_QUEUES. That's the op, that's the whole point. π₯
π SEE ALSO π
The whole family, no one left behind. First off, the home base: kernel file ./include/linux/net/intel/virtchnl2.h, and then:
enum virtchnl2_vport_type(9)enum virtchnl2_queue_model(9)enum virtchnl2_action_types(9)enum virtchnl2_txq_sched_mode(9)enum virtchnl2_rxq_flags(9)enum virtchnl2_mac_addr_type(9)struct virtchnl2_edt_caps(9)struct virtchnl2_version_info(9)struct virtchnl2_get_capabilities(9)struct virtchnl2_queue_reg_chunk(9)struct virtchnl2_queue_reg_chunks(9)enum virtchnl2_vport_flags(9)struct virtchnl2_create_vport(9)struct virtchnl2_vport(9)struct virtchnl2_txq_info(9)struct virtchnl2_config_tx_queues(9)struct virtchnl2_rxq_info(9)struct virtchnl2_config_rx_queues(9)struct virtchnl2_vector_chunk(9)struct virtchnl2_vector_chunks(9)struct virtchnl2_alloc_vectors(9)struct virtchnl2_rss_lut(9)struct virtchnl2_rss_hash(9)struct virtchnl2_sriov_vfs_info(9)struct virtchnl2_ptype(9)struct virtchnl2_get_ptype_info(9)struct virtchnl2_vport_stats(9)struct virtchnl2_event(9)struct virtchnl2_rss_key(9)struct virtchnl2_queue_chunk(9)struct virtchnl2_del_ena_dis_queues(9)struct virtchnl2_queue_vector(9)struct virtchnl2_queue_vector_maps(9)struct virtchnl2_loopback(9)struct virtchnl2_mac_addr_list(9)struct virtchnl2_promisc_info(9)enum virtchnl2_ptp_caps(9)struct virtchnl2_ptp_clk_reg_offsets(9)struct virtchnl2_ptp_cross_time_reg_offsets(9)struct virtchnl2_ptp_clk_adj_reg_offsets(9)struct virtchnl2_ptp_tx_tstamp_latch_caps(9)struct virtchnl2_ptp_get_vport_tx_tstamp_caps(9)struct virtchnl2_ptp_get_caps(9)struct virtchnl2_ptp_tx_tstamp_latch(9)struct virtchnl2_ptp_get_vport_tx_tstamp_latches(9)struct virtchnl2_ptp_get_dev_clk_time(9)struct virtchnl2_ptp_get_cross_time(9)struct virtchnl2_ptp_set_dev_clk_time(9)struct virtchnl2_ptp_adj_dev_clk_fine(9)struct virtchnl2_ptp_adj_dev_clk_time(9)struct virtchnl2_mem_region(9)struct virtchnl2_get_lan_memory_regions(9)struct virtchnl2_proto_hdr(9)struct virtchnl2_proto_hdrs(9)struct virtchnl2_rule_action(9)struct virtchnl2_rule_action_set(9)struct virtchnl2_flow_rule(9)struct virtchnl2_flow_rule_info(9)struct virtchnl2_flow_rule_add_del(9)
Forty-something cross-references and we listed every single one, because leaving one out would be a crime and we don't do that here. π§π
ngl bestie, if you got this far you lowkey understand virtchnl2 queue negotiation now. go off. π«Ά
And that's the page! Signed off with love β this one lives in ./include/linux/net/intel, dated October 2026, and it's the struct virtchnl2_add_queues(9) page, periodt. π
πΈ
π¦ 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