STRUCT VIRTCHNL2_RX_FLEX_DESC_NIC(9)
π struct virtchnl2_rx_flex_desc_nic β RX descriptor writeback format π
okay so bestie, we're deep in the Kernel API Manual today and this one is a lil struct from ./include/linux/net/intel β the RX descriptor writeback format. it's giving "I know what every single bit does" energy and honestly? iconic. let's get into it π
β¨ SYNOPSIS β¨
struct virtchnl2_rx_flex_desc_nic {
u8 rxdid;
u8 mir_id_umb_cast;
__le16 ptype_flex_flags0;
__le16 pkt_len;
__le16 hdr_len_sph_flex_flags1;
__le16 status_error0;
__le16 l2tag1;
__le32 rss_hash;
__le16 status_error1;
u8 flexi_flags2;
u8 ts_low;
__le16 l2tag2_1st;
__le16 l2tag2_2nd;
__le32 flow_id;
union {
struct {
__le16 rsvd;
__le16 flow_id_ipv6;
} flex;
__le32 ts_high;
} flex_ts;
};
like, look at her. so many little fields, all doing their own main character thing π«Ά
πΈ Members πΈ
rxdidβ the descriptor builder profile id. her whole identity fr.mir_id_umb_castβ packed up likeumb_cast=[7:6],mir=[5:0]. bits sharing a room, no cap.ptype_flex_flags0βff0=[15:10],ptype=[9:0]. flags first, ptype chillin' below πpkt_lenβ packet length, and hey, heads up:[15:14]are reserved. don't touch those bits bestie πhdr_len_sph_flex_flags1βff1/ext=[15:12],sph=[11],header=[10:0]. three things in one field, she's multitasking β¨status_error0β Status/Error section 0. the first of the status/error twins.l2tag1β the stripped L2 tag from the received packet πrss_hashβ RSS hash. she's spreading the load, queen behavior πstatus_error1β Status/Error section 1. the sequel, and honestly it ate πflexi_flags2β Flexible flags section 2. flexible literally in the name π§ts_lowβ lower word of timestamp value. the low half, holding it down.l2tag2_1stβ First L2TAG2. yes, there's a second one, keep reading.l2tag2_2ndβ Second L2TAG2. told you πflow_idβ flow id. simple, iconic, no notes.flex_tsβ the timestamp and flexible flow id union. she contains multitudes πflex_ts.flex.rsvdβ Reserved. nothing to see here, move along π¦flex_ts.flex.flow_id_ipv6β IPv6 flow id.flex_ts.ts_highβ timestamp higher word of the timestamp value. the high half, matchingts_lowfor the full picture β¨
π₯ Description π₯
Profile ID 0x2, SingleQ, flex writeback format. periodt. that's the vibe check and she passed π
β SEE ALSO β
- kernel file
./include/linux/net/intel/virtchnl2_lan_desc.h struct virtchnl2_splitq_rx_buf_desc(9)struct virtchnl2_singleq_rx_buf_desc(9)struct virtchnl2_singleq_base_rx_desc(9)struct virtchnl2_rx_flex_desc_adv_nic_3(9)
go read those next, iykyk π«Ά
mwah π that's the whole page! this lil beauty lives in ./include/linux/net/intel, dated October 2026, and she's filed under struct virt...lex_desc_nic(9) in the Kernel API Manual. love her, know her, cite her correctly bestie πΈπβ¨
π¦ 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