STRUCT BRCMF_PMKSA_V2(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct brcmf_pmksa_v2 β€” PMK Security Association πŸ’…

Okay bestie, so this page is from the Kernel API Manual, and it's all about struct brcmf_pmksa_v2(9). It's giving "tiny little struct that holds your PMK Security Association" energy, and honestly? Iconic. Let's get into it. πŸŽ€


✨ SYNOPSIS ✨

struct brcmf_pmksa_v2 {
    __le16 length;
    u8 bssid[ETH_ALEN];
    u8 pmkid[WLAN_PMKID_LEN];
    u8 pmk[WLAN_PMK_LEN_SUITE_B_192];
    __le16 pmk_len;
    struct brcmf_ssid8_le ssid;
    u16 fils_cache_id;
 };

Like, that's the whole struct. No cap. Now let's meet the members one by one because they all ate. πŸ’–


🌸 Members 🌸

  • length β€” bestie, this is literally just the length of the structure. That's it. That's the whole gig. ✨
  • bssid β€” the AP's BSSID. The access point's little name tag, basically. πŸ¦‹
  • pmkid β€” the PMK ID. Yes queen, we love an identifier. πŸ’…
  • pmk β€” the PMK material used for FILS key derivation. It's the actual key-ish good stuff, lowkey the main character here. πŸ”₯
  • pmk_len β€” the length of the PMK data. We're keeping track, we're being responsible. πŸ‘‘
  • ssid β€” the AP's SSID. So the AP's actual network name, as opposed to its BSSID name tag up above. Don't mix them up, iykyk. 🌈
  • fils_cache_id β€” the FILS cache identifier. It's giving "cache but make it FILS." ⭐

πŸ¦‹ SEE ALSO πŸ¦‹

First off, the kernel file this whole thing lives in:

  • ./drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h

And then we have, like, the entire friend group. Obsessed with how long this list is, fr fr:

  • struct brcmf_wsec_pmk_le(9)
  • struct brcmf_wsec_sae_pwd_le(9)
  • struct brcmf_fil_wowl_pattern_le(9)
  • struct brcmf_fil_country_le(9)
  • struct brcmf_rev_info_le(9)
  • struct brcmf_wlc_version_le(9)
  • struct brcmf_assoclist_le(9)
  • struct brcmf_rssi_be(9)
  • struct brcmf_wowl_wakeind_le(9)
  • struct brcmf_pmksa(9)
  • struct brcmf_pmksa_v3(9)
  • struct brcmf_pmk_list_le(9)
  • struct brcmf_pmk_list_v2_le(9)
  • struct brcmf_pmk_op_v3_le(9)
  • struct brcmf_pno_param_le(9)
  • struct brcmf_pno_config_le(9)
  • struct brcmf_pno_net_param_le(9)
  • struct brcmf_pno_net_info_le(9)
  • struct brcmf_pno_scanresults_le(9)
  • struct brcmf_pno_macaddr_le(9)
  • struct brcmf_dload_data_le(9)
  • struct brcmf_pno_bssid_le(9)
  • struct brcmf_pktcnt_le(9)
  • struct brcmf_gtk_keyinfo_le(9)
  • struct brcmf_gscan_bucket_config(9)
  • enum brcmf_gscan_cfg_flags(9)
  • struct brcmf_gscan_config(9)
  • struct brcmf_mkeep_alive_pkt_le(9)
Note the pattern, bestie β€” half of these end in _le because they're little-endian structs. It's not a typo, it's a lifestyle. πŸ’€

And that's the whole page!! 🫢 Source and version vibes come from ./drivers/net/wireless/broadco... and the date on this one is October 2026, so yeah, it's a whole struct brcmf_pmksa_v2(9) situation, and you now know it inside and out. Slay, go forth, understand your PMK security associations. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from