STRUCT IEEE80211_VIF_CFG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

okay so this is struct ieee80211_vif_cfg(9) β€” straight outta the Kernel API Manual β€” and it's literally the interface configuration struct. Think of it as the main-character vibe check for a wireless interface: association status, power save, SSID, ARP filtering, NAN schedule, all that good stuff. 🫢

πŸ¦‹ SYNOPSIS πŸ¦‹

struct ieee80211_vif_cfg {
    bool assoc, ibss_joined;
    bool ibss_creator;
    bool ps;
    u16 aid;
    u16 eml_cap;
    u16 eml_med_sync_delay;
    u16 mld_capa_op;
    __be32 arp_addr_list[IEEE80211_BSS_ARP_ADDR_LIST_LEN];
    int arp_addr_cnt;
    u8 ssid[IEEE80211_MAX_SSID_LEN];
    size_t ssid_len;
    bool s1g;
    bool idle;
    u8 ap_addr[ETH_ALEN];
    struct ieee80211_nan_sched_cfg nan_sched;
};

πŸ’– Members πŸ’–

  • assoc β€” the association status. basically β€œare we associated or not” energy. πŸ’…
  • ibss_joined β€” indicates whether this station is part of an IBSS or not. no cap, just a yes/no vibe.
  • ibss_creator β€” indicates if a new IBSS network is being created. like, are you the one starting the group chat? πŸ‘‘
  • ps β€” power-save mode, and it's STA only. important: this flag is NOT affected by offchannel/dynamic_ps operations. periodt.
  • aid β€” association ID number, valid only when assoc is true. so don't go reading it when assoc is false, bestie. πŸ™ˆ
  • eml_cap β€” EML capabilities as described in P802.11be_D4.1 Figure 9-1001j. exactly that. ✨
  • eml_med_sync_delay β€” Medium Synchronization delay as described in P802.11be_D4.1 Figure 9-1001i. yes, the capitalization on β€œMedium Synchronization” is staying. πŸŽ€
  • mld_capa_op β€” MLD Capabilities and Operations per P802.11be_D4.1 Figure 9-1001k. iconic spec reference, honestly.
  • arp_addr_list β€” list of IPv4 addresses for hardware ARP filtering. They may filter ARP queries targeted for other addresses than listed here. The driver must allow ARP queries targeted for all addresses listed here to pass through. An empty list implies no ARP queries need to pass. so like, if it's empty, nothing needs through. πŸ’€
  • arp_addr_cnt β€” number of addresses currently on the list. Note that this may be larger than IEEE80211_BSS_ARP_ADDR_LIST_LEN (the arp_addr_list array size), and it's up to the driver what to do in that case. no extra rules, just driver vibes. 🫢
  • ssid β€” the SSID of the current vif. Valid in AP and IBSS mode. yes, AP and IBSS specifically. 🌸
  • ssid_len β€” length of SSID given in ssid. matching pair, slay. πŸŽ€
  • s1g β€” BSS is S1G BSS (affects Association Request format). so it's not just a cute little flag, it changes the Association Request format. ⭐
  • idle β€” this interface is idle. There's also a global idle flag in the hardware config which may be more appropriate depending on what your driver/device needs to do. so check both, iykyk. πŸ’œ
  • ap_addr β€” AP MLD address, or BSSID for non-MLO connections (station mode only). keep that station-mode caveat, bestie. πŸ”₯
  • nan_sched β€” NAN schedule parameters. It's a struct ieee80211_nan_sched_cfg. cute nested struct moment. 🧚

✨ SEE ALSO ✨

okay bestie, buckle up, because this page has the longest guest list at the party and every single one of them is getting name-dropped πŸ’… first up, the header where all the magic lives:

  • Kernel file ./include/net/mac80211.h

then the whole extended cinematic universe of section 9, in order, no gatekeeping:


like, that's genuinely the whole friend group 😭 every single one of them tagged, no one left on read. if you need literally anything else in mac80211, it's prob in one of these. iykyk πŸ¦‹

lowkey the vibe check here: when in doubt, man 9 <the thing you just saw in the header> and it will almost certainly be one of the pages above πŸ’–

and that's a wrap on struct ieee80211_vif_cfg(9) bestie!! this one lives in the ./include/net corner of the kernel tree, dated October 2026, and it's struct ieee80211_vif_cfg(9) β€” go forth and configure vifs like the main character you are πŸ‘‘βœ¨πŸ«Ά

πŸ“¦ where this page comes from