ieee80211_ie_split_ric(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… ieee80211_ie_split_ric

okay so bestie, welcome to the Kernel API Manual, section 9 β€” this is the page for ieee80211_ie_split_ric(9) and honestly? she's a baddie with a very specific job. let's get into it πŸŽ€


✨ NAME ✨

ieee80211_ie_split_ric β€” split an IE buffer according to ordering (with RIC) πŸ’«

like, she splits. according to ordering. and there's RIC involved. that's the whole vibe check.


πŸ¦‹ SYNOPSIS πŸ¦‹

size_t ieee80211_ie_split_ric (const u8 *ies , size_t ielen , const u8
*ids , int n_ids , const u8 *after_ric , int n_after_ric , size_t offset
);

seven arguments, one size_t coming back at you. she's thriving πŸ’…


🌸 ARGUMENTS 🌸

  • ies β€” the IE buffer. this is the main character, the thing we're slicing 🫢
  • ielen β€” the length of the IE buffer. gotta know how long she is before you start cutting, yk?
  • ids β€” an array with element IDs that are allowed before the split. heads up tho: a WLAN_EID_EXTENSION value means that the next EID in the list is a sub-element of the EXTENSION IE. not me needing you to remember that ordering, iykyk πŸ”₯
  • n_ids β€” the size of the element ID array πŸ‘‘
  • after_ric β€” array of IE types that come after the RIC element 🌈
  • n_after_ric β€” size of the after_ric array ⭐
  • offset β€” offset where to start splitting in the buffer πŸ’œ

🧚 DESCRIPTION 🧚

so what does she actually do? this function splits an IE buffer by updating the offset variable to point to the location where the buffer should be split. lowkey elegant, honestly 🌸

⚠️ but listen β€” it assumes that the given IE buffer is well-formed. this has to be guaranteed by the caller! that's on you, bestie, not on her 😭

it also assumes that the IEs in the buffer are ordered correctly. if they're not? the result of using this function will not be ordered correctly either β€” i.e. it does no reordering. she is not doing that labor. periodt πŸ’€


πŸ’– 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 ✨

like, she'll hand you back the whole rest of the thing if that's what's correct. generous icon πŸŽ€


Wait, before we get into the list β€” the mothership of all of this is the kernel file ./include/net/cfg80211.h, so if you want the real source of truth, that's where she lives πŸ‘‘

And then, bestie, buckle up, because the cross-reference list is long long. Like, "study group at 2am" long πŸ’€ but every single one matters, so here we go:


Okay that was the band/capabilities girlies. Next up, the whole doing stuff wing of the library, aka:


Scannie szn πŸ“‘ the whole "finding networks and remembering them" cluster:

  • Scanning and BSS list handling(9)
  • struct cfg80211_ssid(9)
  • struct cfg80211_scan_info(9)
  • struct cfg80211_scan_6ghz_params(9)
  • struct cfg80211_scan_request(9)
  • struct cfg80211_match_set(9)
  • struct cfg80211_sched_scan_plan(9)
  • struct cfg80211_bss_select_adjust(9)
  • struct cfg80211_sched_scan_request(9)
  • enum cfg80211_signal_type(9)
  • struct cfg80211_inform_bss(9)
  • struct cfg80211_bss_ies(9)
  • struct cfg80211_bss(9)
  • ieee80211_bss_get_elem(9)
  • ieee80211_bss_get_ie(9)
  • struct cfg80211_auth_request(9)
  • struct cfg80211_assoc_link(9)
  • struct cfg80211_ml_reconf_req(9)
  • enum cfg80211_assoc_req_flags(9)
  • struct cfg80211_assoc_request(9)
  • struct cfg80211_deauth_request(9)
  • struct cfg80211_disassoc_request(9)
  • struct cfg80211_ibss_params(9)
  • struct cfg80211_bss_selection(9)
  • struct cfg80211_connect_params(9)
  • enum cfg80211_connect_params_changed(9)
  • enum wiphy_params_flags(9)
  • struct cfg80211_pmksa(9)
  • struct cfg80211_pkt_pattern(9)
  • struct cfg80211_wowlan_tcp(9)
  • struct cfg80211_wowlan(9)
  • struct cfg80211_coalesce_rules(9)
  • struct cfg80211_coalesce(9)
  • struct cfg80211_wowlan_nd_match(9)
  • struct cfg80211_wowlan_nd_info(9)
  • struct cfg80211_wowlan_wakeup(9)
  • struct cfg80211_gtk_rekey_data(9)
  • struct cfg80211_update_ft_ies_params(9)
  • struct cfg80211_mgmt_tx_params(9)
  • struct cfg80211_dscp_exception(9)
  • struct cfg80211_dscp_range(9)
  • struct cfg80211_qos_map(9)

Now the spicy social stuff β€” NAN, PMSR, and literally every wiphy entry point you could ever need:


The little helpers that make everything else possible 🧚:


Data path besties, aka where the actual packets live 🚚:


Regulatory content β€” yes queen, the FCC of it all πŸ“œ:





Yeah. That's the whole list. No cap, that's genuinely every single entry πŸ’€πŸ«Ά and we're still not done with this page, so keep scrolling, bestie β€”


Okay that's genuinely the whole SEE ALSO list, no skips, no shortcuts, we ate πŸ“

This page lives in ./include/net (that's the source tree path you're looking at, bestie) and it's dated October 2026 β€” yes, from the future, we stay ahead πŸ’…βœ¨ Go read the actual function now, mwah πŸŽ€πŸ’–

πŸ“¦ where this page comes from