STRUCT VIRTCHNL2_RX_FLEX_DESC_NIC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– 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 like umb_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, matching ts_low for 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