STRUCT THUNDERBOLT_IP_FRAME_HEADER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

struct thunderbolt_ip_frame_header β€” the lil' header that rides on every single Thunderbolt frame πŸ¦‹ no cap, every frame has one

okay so bestie, welcome to struct thunderbolt_ip_frame_header(9) πŸ’… this is the Kernel API Manual page for it, and we're gonna get you obsessed with frame headers, fr fr 🌸


🌩️ SYNOPSIS 🌩️

the whole struct, literally right here, character for character πŸŽ€

struct thunderbolt_ip_frame_header {
    __le32 frame_size;
    __le16 frame_index;
    __le16 frame_id;
    __le32 frame_count;
 };

it's giving "small struct, big responsibilities" ngl 😭

🧩 Members

  • frame_size β€” the size of the data that's chillin' with the frame, like how much stuff is actually in there πŸ“
  • frame_index β€” the running index on the frames, just counting along as they go ✨
  • frame_id β€” the ID of the frame, and its whole job is matching frames to a specific packet, iykyk πŸŽ€
  • frame_count β€” how many frames assemble a full packet, like the headcount for the packet's group chat πŸ’¬

πŸ’¬ Description

so here's the vibe πŸ’… every data frame that gets passed to the high-speed DMA ring has this header with it. that's just how it is, periodt.

and here's the tea πŸ«– if the XDomain network directory announces that TBNET_MATCH_FRAGS_ID is supported, then frame_id gets filled in. if it's not supported? frame_id just stays 0. iconic behavior honestly πŸ™ˆ

no extra lore here bestie β€” that's literally the whole description, don't let anyone tell you otherwise πŸ’€

πŸ‘€ SEE ALSO πŸ‘€

  • the kernel file ./drivers/net/thunderbolt/main.c β€” go read it, it's right there πŸ“‚
  • struct tbnet(9) β€” the related struct, absolutely worth a look πŸ‘‘

and that's the page, bestie!! 🧚 source + version: ./drivers/net/thunderbolt, dated October 2026 ⭐ slay, go forth and match those frames to their packets πŸ’–πŸŒˆ

πŸ“¦ where this page comes from