STRUCT IEEE80211_ELEMS_PARSE_PARAMS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct ieee80211_elems_parse_params(9) β€” Kernel API Manual, bestie edition ✨

okay so this is struct ieee80211_elems_parse_params(9) and it lives in the Kernel API Manual, and honestly? it's the little struct that could 🫢 it's literally just the ✨parameters✨ you hand over when you want the kernel to go parse some 802.11 elements for you. think of it as the vibes-and-instructions bundle. no cap.


✨ NAME ✨

struct ieee80211_elems_parse_params β€” element parsing parameters πŸŽ€

like, the params. for parsing. elements. periodt.


πŸ¦‹ SYNOPSIS πŸ¦‹

struct ieee80211_elems_parse_params {
    enum ieee80211_conn_mode mode;
    const u8 *start;
    size_t len;
    u8 type;
    u64 filter;
    u32 crc;
    struct cfg80211_bss *bss;
    int link_id;
    bool from_ap;
 };

that's her πŸ’– that's the whole struct. nine fields. every single one of them iconic in her own way. let's go through them because i would never leave you hanging.


🌸 Members 🌸

  • mode β€” the connection mode for parsing πŸ”₯ like, what mode are we in, because that changes how we parse, obviously.
  • start β€” a pointer to the elements 🫢 literally just where the elements begin. point me at 'em.
  • len β€” the length of the elements πŸ“ so we know how far to read. boundaries, bestie. we love them.
  • type β€” the type of the frame the elements came from πŸ’… like an action, a probe response, a beacon, etc. etc. yes "etc." is doing a lot of work there but that's what the manpage says and i respect it.
  • filter β€” a bitmap of element IDs to filter out while calculating the element CRC 🧚 so while we're computing the CRC we can be like "not you, not you, definitely not you" to specific element IDs.
  • crc β€” the CRC starting value ⭐ the seed. the origin story. the starting point of the checksum journey.
  • bss β€” the BSS to parse this as πŸ‘‘ and here's the cute part: for multi-BSSID cases this can represent a non-transmitting BSS, in which case the data for that non-transmitting BSS is what gets returned. so you ask about the quiet one and you get the quiet one's stuff back. slay.
  • link_id β€” the link ID to parse elements for, if a STA profile is present in the multi-link element, or -1 to ignore πŸ¦‹ and ngl there's a lil caveat here: the code currently assumes it's parsing an association (or re-association) response frame if this is given. so like. if you set it, that's the assumption you're signing up for. no cap, that's just how it is right now.
  • from_ap β€” frame is received from an AP 🌈 (currently used only for EHT capabilities parsing). so like, is this from an AP or not? and the only place it matters right now is EHT caps parsing. she's niche. she's specific. we stan.

πŸ‘‘ SEE ALSO πŸ‘‘

okay so if you're going down the rabbit hole (and you will, bestie, it's giving main character energy), here's the whole friend group πŸ’œ β€” all of these live in the Kernel file ./net/mac80211/ieee80211_i.h:

  • enum ieee80211_bss_corrupt_data_flags(9)
  • enum ieee80211_bss_valid_data_flags(9)
  • enum ieee80211_packet_rx_flags(9)
  • enum ieee80211_rx_flags(9)
  • struct ieee80211_if_ocb(9)
  • struct ieee80211_mesh_sync_ops(9)
  • struct mesh_table(9)
  • struct mesh_tx_cache(9)
  • enum ieee80211_sub_if_data_flags(9)
  • enum ieee80211_sdata_state_bits(9)
  • enum ieee80211_chanctx_mode(9)
  • enum ieee80211_chanctx_replace_state(9)
  • struct txq_info(9)
  • struct ieee80211_if_nan(9)
  • struct ieee80211_if_nan_data(9)
  • enum mac80211_scan_flags(9)
  • enum mac80211_scan_state(9)
  • ieee80211_parse_ch_switch_ie(9)

like, that's a whole group chat right there and you're invited πŸŽ€


πŸ’– reminder bestie: everything above is exactly what the page says β€” no invented behaviour, no extra tips pretending to be facts. if the manpage didn't say it, i didn't say it. iykyk.

alright that's the whole thing, and yes this page came from ./net/mac80211 and it's dated October 2026 β€” so mark your calendar, screenshot it, put it in the group chat, because we're done here πŸ’…βœ¨πŸ“

πŸ“¦ where this page comes from