ieee80211_is_cfend(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… ieee80211_is_cfend β€” the kernel API manual, bestie edition

okay so real talk, this is a page from the Kernel API Manual, and it's about one tiny little function: ieee80211_is_cfend(9). yes, the (9) is part of the name, it's a section thing, iykyk πŸŽ€


✨ NAME ✨

ieee80211_is_cfend β€” checks if the frame is IEEE80211_FTYPE_CTL and IEEE80211_STYPE_CFEND. that's it. that's the whole job. and honestly? she ate. πŸ’…


🌸 SYNOPSIS 🌸

bool ieee80211_is_cfend (__le16 fc );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • fc β€” the frame control bytes, but in little-endian byteorder. like, lowercase little-endian, not the other one. respect the byteorder fr fr πŸ™ˆ

⭐ RETURN ⭐

it returns whether or not the frame is a CF-end frame. that's the whole vibe check: yes CF-end, or no CF-end. iconic binary behaviour, no notes πŸ‘‘


πŸ’– SEE ALSO πŸ’–

the kernel file lives at ./include/linux/ieee80211.h, and bestie, the friend group here is huge β€” every single one of these:

ieee80211_has_tods(9), ieee80211_has_fromds(9), ieee80211_has_a4(9), ieee80211_has_morefrags(9), ieee80211_has_retry(9), ieee80211_has_pm(9), ieee80211_has_moredata(9), ieee80211_has_protected(9), ieee80211_has_order(9), ieee80211_is_mgmt(9), ieee80211_is_ctl(9), ieee80211_is_data(9), ieee80211_is_ext(9), ieee80211_is_data_qos(9), ieee80211_is_data_present(9), ieee80211_is_assoc_req(9), ieee80211_is_assoc_resp(9), ieee80211_is_reassoc_req(9), ieee80211_is_reassoc_resp(9), ieee80211_is_assoc(9), ieee80211_is_probe_req(9), ieee80211_is_probe_resp(9), ieee80211_is_beacon(9), ieee80211_is_atim(9), ieee80211_is_disassoc(9), ieee80211_is_auth(9), ieee80211_is_deauth(9), ieee80211_is_action(9), ieee80211_is_back_req(9), ieee80211_is_back(9), ieee80211_is_pspoll(9), ieee80211_is_rts(9), ieee80211_is_cts(9), ieee80211_is_ack(9), ieee80211_is_cfendack(9), ieee80211_is_nullfunc(9), ieee80211_is_qos_nullfunc(9), ieee80211_is_trigger(9), ieee80211_is_any_nullfunc(9), ieee80211_is_first_frag(9), ieee80211_is_frag(9), struct ieee80211_quiet_ie(9), struct ieee80211_msrment_ie(9), struct ieee80211_channel_sw_ie(9), struct ieee80211_ext_chansw_ie(9), struct ieee80211_sec_chan_offs_ie(9), struct ieee80211_wide_bw_chansw_ie(9), struct ieee80211_tim_ie(9), struct ieee80211_tpc_report_ie(9), struct ieee80211_bss_load_elem(9), struct ieee80211_timeout_interval_ie(9), enum ieee80211_idle_options(9), struct ieee80211_bss_max_idle_period_ie(9), struct ieee80211_bssid_index(9), struct ieee80211_multiple_bssid_configuration(9), ieee80211_get_qos_ctl(9), ieee80211_get_tid(9), ieee80211_get_SA(9), ieee80211_get_DA(9), ieee80211_is_bufferable_mmpdu(9), _ieee80211_is_robust_mgmt_frame(9), ieee80211_is_robust_mgmt_frame(9), ieee80211_is_public_action(9), ieee80211_is_protected_dual_of_public_action(9), _ieee80211_is_group_privacy_action(9), ieee80211_is_group_privacy_action(9), ieee80211_tu_to_usec(9), ieee80211_get_tdls_action(9), ieee80211_action_contains_tpc(9), ieee80211_is_timing_measurement(9), ieee80211_is_ftm(9), for_each_element_completed(9), struct ieee80211_enh_crit_upd(9), ieee80211_check_tim(9)

no cap, that's 40-ish ieee80211_is_* checks and a whole parade of IE structs. if you're looking for the rest of the squad, this is the group chat πŸ’€

so yeah, that's the whole page 🫢 go check your frame control bytes, stay little-endian, and remember: IEEE80211_FTYPE_CTL + IEEE80211_STYPE_CFEND = CF-end, periodt.

shoutout to the source dir ./include/linux and the October 2026 date stamped on this one β€” that's the footer energy, mwah πŸ’‹

πŸ“¦ where this page comes from