ieee80211_ie_split(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ ieee80211_ie_split ✨

okay bestie, so this one's from the Kernel API Manual β€” section 9, kernel developer vibes, very main character of the kernel API honestly πŸ’…


🌸 NAME 🌸

ieee80211_ie_split β€” split an IE buffer according to ordering πŸ’«


πŸŽ€ SYNOPSIS πŸŽ€

size_t ieee80211_ie_split (const u8 *ies , size_t ielen , const u8 *ids
, int n_ids , size_t offset );

literally the whole signature, no cap ✨


πŸ¦‹ ARGUMENTS πŸ¦‹

  • ies β€” the IE buffer 🌈 like, the actual buffer bestie, this is the thing we're splitting
  • ielen β€” the length of the IE buffer πŸ“ exactly what it says on the tin
  • ids β€” an array with element IDs that are allowed before the split. and okay this part is a lil special πŸ‘€ a WLAN_EID_EXTENSION value means that the next EID in the list is a sub-element of the EXTENSION IE. iykyk 🫢
  • n_ids β€” the size of the element ID array πŸ”’ how many IDs we're working with
  • offset β€” offset where to start splitting in the buffer 🎯 like the starting point, where we kick things off

πŸ’œ DESCRIPTION πŸ’œ

so what does this do?? it splits an IE buffer by updating the offset variable to point to the location where the buffer should be split. that's the whole bit ✨

⚠️ okay this is the important part, do NOT skip it: it assumes that the given IE buffer is well-formed, and this has to be guaranteed by the caller! that's you bestie, that's your job 😭 the function is not gonna vibe check the buffer for you, no cap πŸ’€

it also assumes that the IEs in the buffer are ordered correctly 🧚 if not, the result of using this function will not be ordered correctly either, i.e. it does no reordering. so like, it's not out here fixing your mess, it's just splitting what you gave it πŸ™ˆ


⭐ RETURN ⭐

the offset where the next part of the buffer starts πŸ“ which may be ielen if the entire (remainder) of the buffer should be used πŸ‘‘ slay


still more to come bestie, don't go anywhere πŸ’–

okay bestie so this is the part of the page that's just the biggest friend group at the party πŸ’… β€” literally everyone cfg80211 has ever met, all tagged with (9) like a little name badge so you know which manual section they live in. no cap, this is the whole squad, so let's go down the line, no skipping, no "omg I'll get to them later" πŸ™ˆ


starting with the foundational texts and the capability lore πŸŽ€

  • Device registration(9)
  • enum ieee80211_channel_flags(9)
  • struct ieee80211_channel(9)
  • enum ieee80211_rate_flags(9)
  • enum ieee80211_bss_type(9)
  • enum ieee80211_privacy(9)
  • struct ieee80211_rate(9)
  • struct ieee80211_he_obss_pd(9)
  • struct cfg80211_he_bss_color(9)
  • struct ieee80211_sta_ht_cap(9)
  • struct ieee80211_sta_vht_cap(9)
  • struct ieee80211_sta_he_cap(9)
  • struct ieee80211_eht_mcs_nss_supp(9)
  • struct ieee80211_sta_eht_cap(9)
  • struct ieee80211_sta_uhr_cap(9)
  • struct ieee80211_sband_iftype_data(9)
  • enum ieee80211_edmg_bw_config(9)
  • struct ieee80211_edmg(9)

the s1g + band-support girlies, they ate πŸ“


okay next up, the whole "Actions and configuration" chapter and every struct that lives in it πŸ”₯

  • Actions and configuration(9)
  • struct vif_params(9)
  • struct key_params(9)
  • struct cfg80211_chan_def(9)
  • struct cfg80211_tid_cfg(9)
  • struct cfg80211_tid_config(9)
  • struct cfg80211_fils_aad(9)
  • struct cfg80211_set_hw_timestamp(9)

the channel-definition crew, they're literally the main characters of every "why is my bandwidth weird" moment πŸ’€


survey + crypto + beacon-ish squad, showing up together like they carpooled πŸš—

  • enum survey_info_flags(9)
  • struct survey_info(9)- struct cfg80211_crypto_settings(9)`

okay so the SEE ALSO section is still going, and honestly? it's giving ✨guest list at the function✨. here's everyone else who gets a mention, in the exact order the page names them β€” no skipping, no shuffling, we're respecting the queue πŸ’…

and we're still going, bestie, do not close the tab 😭

the way this list just keeps going. main character energy fr fr 🌈

that's the whole squad, every single one, and yes i counted, we do not leave a bestie off the list 🫢

ngl bestie, if you're reading this far you either really love cfg80211 cross-references or you clicked "SEE ALSO" by accident. either way i'm proud of you πŸ’–

and that's a wrap on ieee80211_ie_split(9)! πŸŽ€ the page lives in ./include/net, it's dated October 2026, and this whole gorgeous thing goes by the name ieee80211_ie_split(9) β€” go forth, split some IEs, and slay βœ¨πŸ’…πŸ‘‘

πŸ“¦ where this page comes from