STRUCT SKB_FRAME_DESC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct skb_frame_desc(9) πŸ’…

okay so bestie, welcome to struct skb_frame_desc β€” literally the descriptor-info situation for the skb buffer. it's in the Kernel API Manual, and it's giving "small struct, big responsibilities" energy. πŸŽ€


✨ NAME ✨

struct skb_frame_desc β€” descriptor information for the skb buffer. that's it, that's the whole vibe. πŸ¦‹


🌸 SYNOPSIS 🌸

struct skb_frame_desc {
    u8 flags;
    u8 desc_len;
    u8 tx_rate_idx;
    u8 tx_rate_flags;
    void *desc;
    __le32 iv[2];
    dma_addr_t skb_dma;
    struct ieee80211_sta *sta;
 };

no cap, that's the whole thing. now let's meet the members 🫢


πŸ‘‘ Members πŸ‘‘

  • flags β€” the frame flags, okurrr. see enum skb_frame_desc_flags for the whole lore.
  • desc_len β€” length of the frame descriptor. it's the desc's length. iconic of it.
  • tx_rate_idx β€” the index of the TX rate, and it's used for TX status reporting πŸ’…
  • tx_rate_flags β€” the TX rate flags, also used for TX status reporting. twins fr fr.
  • desc β€” pointer to the descriptor part of the frame. ⚠️ heads up bestie: this pointer could point to something outside of the scope of the skb->data pointer. so like… don't assume it lives inside skb->data, because it does not. be careful out there 😭
  • iv β€” the IV/EIV data used during encryption/decryption. little __le32 iv[2] doing crypto duties πŸ”₯
  • skb_dma β€” (PCI-only!) the DMA address associated with the sk buffer. PCI-only, so don't come looking for it elsewhere πŸ™ˆ
  • sta β€” the station where the sk buffer was sent. main character station energy ⭐

πŸ’– Description πŸ’–

okay so here's the tea: this structure gets placed over the driver_data array. and that means β€” literally means β€” this structure should not exceed the size of that array, which is 40 bytes. that's the budget. 40 bytes. don't be greedy, don't overflow it, that's the whole deal πŸ’€


🌈 SEE ALSO 🌈

the whole friend group, gathered for you 🧚:


bestie reminder: desc may point outside skb->data's scope, and this whole struct has to fit in 40 bytes. those two facts are the ones that will get you. πŸ“

and that's the page!! mwah πŸ’œ this came from ./drivers/net/wireless/ralink/..., dated October 2026 β€” go off, kernel docs, you ate. βœ¨πŸŽ€

πŸ“¦ where this page comes from