STRUCT VIRTCHNL2_TXQ_INFO(9)
π struct virtchnl2_txq_info(9) β the transmit queue config info glow-up
okay bestie, settle in, because this is a Kernel API Manual page and it's genuinely kind of iconic. We're talking about struct virtchnl2_txq_info β aka Transmit queue config info, aka the little struct that tells everyone how a TX queue should look. No cap. π
β¨ NAME β¨
struct virtchnl2_txq_info β Transmit queue config info π
πΈ SYNOPSIS πΈ
Here's the whole struct, verbatim, don't touch it, it's perfect:
struct virtchnl2_txq_info {
__le64 dma_ring_addr;
__le32 type;
__le32 queue_id;
__le16 relative_queue_id;
__le16 model;
__le16 sched_mode;
__le16 qflags;
__le16 ring_len;
__le16 tx_compl_queue_id;
__le16 peer_type;
__le16 peer_rx_queue_id;
u8 pad[4];
__le32 egress_pasid;
__le32 egress_hdr_pasid;
__le32 egress_buf_pasid;
u8 pad1[8];
};
π¦ Members π¦
okay so each field, one by one, main character energy each:
dma_ring_addrβ the DMA address. literally where the ring lives in DMA-land. β¨typeβ seeenum virtchnl2_queue_type. iykyk.queue_idβ the queue ID. simple, cute, does its job. πrelative_queue_idβ valid only if the queue model is split and the type is a transmit queue. It's used in the many-to-one mapping of transmit queues to a completion queue. lowkey the most lore-heavy field here.modelβ seeenum virtchnl2_queue_model.sched_modeβ seeenum virtchnl2_txq_sched_mode.qflagsβ the TX queue feature flags. π© (the good kind)ring_lenβ the ring length.tx_compl_queue_idβ valid only if the queue model is split and the type is a transmit queue. same vibe check asrelative_queue_id.peer_typeβ valid only if the queue type isVIRTCHNL2_QUEUE_TYPE_MAILBOX_TX.peer_rx_queue_idβ valid only if the queue type isCONFIG_TX, and it's used to deliver messages for the respectiveCONFIG_TXqueue.padβ padding. the filler episode. π«Άegress_pasidβ egress PASID info.egress_hdr_pasidβ egress HDR passid. (yes, the original spells it "passid" here β we respect the canon π«‘)egress_buf_pasidβ egress buf passid.pad1β padding for future extensions. manifesting future features for her. π
π reminder bestie:relative_queue_idandtx_compl_queue_idare only valid under those split-model + transmit-queue conditions,peer_typeis only valid forVIRTCHNL2_QUEUE_TYPE_MAILBOX_TX, andpeer_rx_queue_idis only valid forCONFIG_TX. Don't be out here reading them in the wrong context, fr fr.
β SEE ALSO β
so many friends, she's so connected. First up, the actual source file: Kernel file ./include/linux/net/intel/virtchnl2.h. Then the whole squad:
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_config_tx_queues(9)struct virtchnl2_rxq_info(9)struct virtchnl2_config_rx_queues(9)struct virtchnl2_add_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)
likeβ¦ she has a lot of mutuals. ate and left no crumbs. π
π§ sign-off π§
and that's the whole page, bestie! this one comes from ./include/linux/net/intel, dated October 2026, and it's filed as struct virtchnl2_txq_info(9). go forth and configure those transmit queues responsibly. mwah! ππβ¨
π¦ 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