STRUCT IEEE80211_FAST_RX(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct ieee80211_fast_rx(9) β€” the kernel API manual, but make it make sense

okay so bestie, welcome to the struct ieee80211_fast_rx(9) page ✨ this is the Kernel API Manual, and we're talking about one specific little struct, so buckle up πŸŽ€


πŸ¦‹ NAME πŸ¦‹

struct ieee80211_fast_rx β€” literally the RX fastpath information. that's the whole vibe. it's the struct that holds the deets the receive fastpath needs to not have to think too hard πŸ’…


✨ SYNOPSIS ✨

here's the whole thing, character for character, no cap:

struct ieee80211_fast_rx {
    struct net_device *dev;
    enum nl80211_iftype vif_type;
    u8 vif_addr[ETH_ALEN];
    u8 rfc1042_hdr[6];
    __be16 control_port_protocol;
    __le16 expected_ds_bits;
    u8 icv_len;
    u8 key:1, internal_forward:1, uses_rss:1;
    u8 da_offs, sa_offs;
    struct rcu_head rcu_head;
 };

🌸 Members 🌸

like, one by one, here's what each field is giving πŸ‘‘

  • dev β€” the netdevice, for reporting the SKB 🫢
  • vif_type β€” the (P2P-less) interface type of the original sdata, aka sdata->vif.type. yes, P2P-less, that's the note, keep it πŸ’–
  • vif_addr β€” the interface address
  • rfc1042_hdr β€” a copy of the RFC 1042 SNAP header, kept around so it's already in cache. obsessed with a pre-cached header ngl ⭐
  • control_port_protocol β€” the control port protocol, copied over from sdata
  • expected_ds_bits β€” the from/to DS bits that are expected πŸ‘€
  • icv_len β€” length of the MIC, if there is one
  • key β€” a bool indicating encryption is expected (key is set) πŸ”₯
  • internal_forward β€” forward frames internally on AP/VLAN type interfaces
  • uses_rss β€” a copy of the USES_RSS hw flag
  • da_offs β€” offset of the DA in the header (for header conversion) 🎯
  • sa_offs β€” offset of the SA in the header (for header conversion) 🎯
  • rcu_head β€” the RCU head, for freeing this structure. bye bestie, RCU will handle the cleanup πŸ’€

🧚 SEE ALSO 🧚

go read these next, iykyk 🌈

  • Kernel file ./net/mac80211/sta_info.h
  • enum ieee80211_sta_info_flags(9)
  • struct tid_ampdu_tx(9)
  • struct tid_ampdu_rx(9)
  • struct sta_ampdu_mlme(9)
  • struct ieee80211_fast_tx(9)
  • struct mesh_sta(9)
  • struct link_sta_info(9)
  • struct ieee80211_sta_removed_link_stats(9)
  • struct sta_info(9)
  • __sta_info_flush(9)
  • sta_info_flush(9)

this page lives in ./net/mac80211 and it's dated October 2026 β€” that's the source and the date, mwah πŸ’‹

and that's the whole page, bestie. struct ieee80211_fast_rx(9) ate and left no crumbs πŸ‘‘πŸ’œ

πŸ“¦ where this page comes from