STRUCT AFX_HDL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct afx_hdl β€” action frame off channel storage 🌸

ok so this is straight out of the Kernel API Manual (struct afx_hdl(9) section, section 9, kernel docs bestie πŸ’…) and it's literally the lil storage blob for action frame off channel stuff. yes that's a lot of words. stay with me 🫢


✨ NAME ✨

struct afx_hdl β€” action frame off channel storage.

like, the whole personality is right there in the name. it holds things. it stores things. action frames, off channel. iconic behavior honestly πŸ‘‘


✨ SYNOPSIS ✨

struct afx_hdl {
    struct work_struct afx_work;
    struct completion act_frm_scan;
    bool is_active;
    s32 peer_chan;
    bool is_listen;
    u16 my_listen_chan;
    u16 peer_listen_chan;
    u8 tx_dst_addr[ETH_ALEN];
 };

no cap, that's the whole struct. every field, character for character, don't @ me 😀


✨ MEMBERS ✨

okay now the good part, let's meet the cast πŸŽ€

  • afx_work β€” the worker thread for searching channel πŸ” this is the little guy doing the actual searching, main character energy ngl
  • act_frm_scan β€” thread synchronizing struct. it's the vibes coordinator 🌈 keeps the threads in sync fr fr
  • is_active β€” channel searching active. a bool, so it's very much a yes/no girlie πŸ’–
  • peer_chan β€” current channel. an s32 holding whatever channel we're on rn πŸ“‘
  • is_listen β€” sets mode for afx worker. another bool lowkey just flipping the worker's whole mode πŸ‘€
  • my_listen_chan β€” this peers listen channel. a u16, and yes the grammar is exactly as the original says it, I'm not touching it πŸ™ˆ
  • peer_listen_chan β€” remote peers listen channel. also u16, the other side of the story πŸ¦‹
  • tx_dst_addr β€” mac address where tx af should be sent to. Type is u8 tx_dst_addr[ETH_ALEN], so it's a whole MAC address array, not a single byte, don't get it twisted ⭐
heads up bestie: peer_chan is s32 but the listen channels are u16 and tx_dst_addr is u8[ETH_ALEN] β€” the types are NOT interchangeable, keep them exactly as written πŸ’€

✨ SEE ALSO ✨

go read these next, they're the friend group 🫢

  • Kernel file ./drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.h
  • enum p2p_bss_type(9)
  • struct p2p_bss(9)
  • enum brcmf_p2p_status(9)
  • struct brcmf_p2p_info(9)

and that's the whole page, no notes πŸ’…

sign-off era: this came from ./drivers/net/wireless/broadco... (yes the page really does truncate the path like that, we love a mysterious queen) and it's dated October 2026 β€” so go forth, search some channels, sync some threads, and slay βœ¨πŸŽ€πŸ”₯

πŸ“¦ where this page comes from