STRUCT CFG80211_CONNECT_PARAMS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ NAME πŸ¦‹

okay so bestie, this is the manual page for struct cfg80211_connect_params β€” it's in section 9 of the kernel API manual, and honestly? it's the glow-up struct. it's literally Connection parameters ✨ like it holds all the deets you need to actually join a Wi-Fi network. periodt.


🌸 SYNOPSIS 🌸

no cap, here's the whole thing, character for character, because i would never mess with your code πŸ’…

struct cfg80211_connect_params {
    struct ieee80211_channel *channel;
    struct ieee80211_channel *channel_hint;
    const u8 *bssid;
    const u8 *bssid_hint;
    const u8 *ssid;
    size_t ssid_len;
    enum nl80211_auth_type auth_type;
    const u8 *ie;
    size_t ie_len;
    bool privacy;
    enum nl80211_mfp mfp;
    struct cfg80211_crypto_settings crypto;
    const u8 *key;
    u8 key_len, key_idx;
    u32 flags;
    int bg_scan_period;
    struct ieee80211_ht_cap ht_capa;
    struct ieee80211_ht_cap ht_capa_mask;
    struct ieee80211_vht_cap vht_capa;
    struct ieee80211_vht_cap vht_capa_mask;
    bool pbss;
    struct cfg80211_bss_selection bss_select;
    const u8 *prev_bssid;
    const u8 *fils_erp_username;
    size_t fils_erp_username_len;
    const u8 *fils_erp_realm;
    size_t fils_erp_realm_len;
    u16 fils_erp_next_seq_num;
    const u8 *fils_erp_rrk;
    size_t fils_erp_rrk_len;
    bool want_1x;
    struct ieee80211_edmg edmg;
};

like, look at all those fields. she's thriving. 🌈


πŸ’– Members πŸ’–

okay so this is the part where we go field by field, and i'm gonna be so real with you, there are a LOT of them. but every single one matters, so buckle up bestie 🫢

  • channel β€” the channel to use, or NULL if you're not specifying one (in which case it auto-selects based on scan results, iconic behaviour honestly).
  • channel_hint β€” the channel of the recommended BSS for your initial connection, or NULL if you haven't specified one. it's giving "suggestion, not a demand" energy.
  • bssid β€” the AP BSSID, or NULL if not specified (again, auto-select based on scan results). this one's fr fr, like the driver should respect it.
  • bssid_hint β€” the recommended AP BSSID for the initial connection to the BSS, or NULL if not specified. and here's the tea β˜•: unlike the bssid parameter, the driver is allowed to ignore this bssid_hint if it has knowledge of a better BSS to use. so it's more of a vibe check than a rule, iykyk.
  • ssid β€” the SSID. that's it. that's the network name. πŸŽ€
  • ssid_len β€” length of ssid in octets.
  • auth_type β€” authentication type (algorithm). like, which flavour of auth we're doing.
  • ie β€” IEs for the association request.
  • ie_len β€” length of assoc_ie in octets.
  • privacy β€” indicates whether privacy-enabled APs should be used.
  • mfp β€” indicate whether management frame protection is used. πŸ›‘οΈ
  • crypto β€” crypto settings.
  • key β€” WEP key for shared key authentication.
  • key_len β€” length of the WEP key for shared key authentication.
  • key_idx β€” index of the WEP key for shared key authentication.
  • flags β€” see enum cfg80211_assoc_req_flags.
  • bg_scan_period β€” background scan period in seconds, or -1 to indicate that the default value is to be used. (yes, -1 is the "idk just pick for me" option πŸ’€)
  • ht_capa β€” HT Capabilities over-rides. values set in ht_capa_mask will be used in ht_capa. un-supported values will be ignored. so like, the mask is the bouncer at the club and only the approved bits get in 🎟️
  • ht_capa_mask β€” the bits of ht_capa which are to be used.
  • vht_capa β€” VHT Capability overrides.
  • vht_capa_mask β€” the bits of vht_capa which are to be used.
  • pbss β€” if set, connect to a PCP instead of an AP. valid for DMG networks. plot twist moment.
  • bss_select β€” criteria to be used for BSS selection.
  • prev_bssid β€” previous BSSID. if not NULL, use a reassociate frame. this is used to indicate a request to reassociate within the ESS instead of a request to do the initial association with the ESS. when included, this is set to the BSSID of the current association β€” i.e., to the value that is included in the Current AP address field of the Reassociation Request frame. it's literally the "hey, we've met before" field πŸ’«
  • fils_erp_username β€” EAP re-authentication protocol (ERP) username part of the NAI, or NULL if not specified. this is used to construct the FILS wrapped data IE.
  • fils_erp_username_len β€” length of fils_erp_username in octets.
  • fils_erp_realm β€” EAP re-authentication protocol (ERP) realm part of the NAI, or NULL if not specified. this specifies the domain name of the ER server and is used to construct the FILS wrapped data IE.
  • fils_erp_realm_len β€” length of fils_erp_realm in octets.
  • fils_erp_next_seq_num β€” the next sequence number to use in the FILS ERP messages. this is also used to construct the FILS wrapped data IE.
  • fils_erp_rrk β€” ERP re-authentication Root Key (rRK) used to derive additional keys in FILS, or NULL if not specified. πŸ”‘
  • fils_erp_rrk_len β€” length of fils_erp_rrk in octets.
  • want_1x β€” indicates user-space supports and wants to use 802.1X driver offload of the 4-way handshake. she said "i'll handle it myself" πŸ’…
  • edmg β€” define the EDMG channels. this may specify multiple channels and bonding options for the driver to choose from, based on BSS configuration. like a menu, and the driver gets to pick πŸ“

✨ Description ✨

okay so the whole point of this struct: it provides the information needed to complete IEEE 802.11 authentication and association. that's it, that's the thesis statement. it's the little packet of hopes and dreams you hand the kernel when you want to actually connect to something. main character energy fr fr πŸ‘‘


(part 1 done β€” more coming, don't go anywhere bestie πŸ¦‹)

✨ SEE ALSO ✨

okay bestie, the SEE ALSO section for struct cfg80211_connect_params(9) is giving β€œwhole friend group tagged in the group chat” πŸ’–. no cap, here is every single reference from the kernel file, in the original order β€” no cuts, no β€œyou know the rest” energy, because that is not how we do it around here πŸ’….

...and the rest of the squad, because this list is LONG and every single one of them showed up πŸ’–:


and that's the whole reunion tour, bestie β€” all 64 of them, not a single one left behind 🫢✨

ngl this page was giving main character energy the whole way through, and i'm obsessed that you stayed till the end πŸ’…

this little love letter lives in ./include/net, dated October 2026, filed under the extremely dramatic title struct cfg80...nnect_params(9) β€” yes, the man page really does truncate its own name like that 😭 iconic behaviour tbh

go forth and configure ur wireless stuff, u absolute legend πŸ‘‘πŸ’–

πŸ“¦ where this page comes from