ieee80211_is_data_qos(9)
π ieee80211_is_data_qos π
okay so bestie, welcome to the Kernel API Manual, section 9 β the little corner of the kernel where we all sit around asking "is this frame control field giving QoS data energy or not?" and honestly? iconic question. this one's a tiny function with a very specific job and it does it flawlessly, no notes. π
β¨ NAME β¨
ieee80211_is_data_qos β check if type is IEEE80211_FTYPE_DATA and IEEE80211_STYPE_QOS_DATA is set π¦
like yes, that's the whole vibe check: data type? QoS subtype? both? we stan a two-factor confirmation.
πΈ SYNOPSIS πΈ
bool ieee80211_is_data_qos (__le16 fc );
literally just hand it the frame control bytes and it comes back with a bool. clean. simple. main character energy. π
π«Ά ARGUMENTS π«Ά
fcβ frame control bytes in little-endian byteorder π (yes, little-endian, don't come at me with big-endian bytes, the function will simply not be slayed)
β RETURN β
returns whether or not the frame is a QoS data frame β a bool, so like, yes or no, no in-between, no "it's complicated". π
π§ SEE ALSO π§
bestie this list is long β it's giving "the whole friend group showed up to the function's birthday party" π but every single one is here, no cap, in order fr fr:
Kernel file ./include/linux/ieee80211.h β that's the home base π
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_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_cfend(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)
ngl the whole point is this:IEEE80211_FTYPE_DATAandIEEE80211_STYPE_QOS_DATAboth gotta be set. miss one and it's a no. periodt. π₯
okay that's the whole page bestie, go forth and check your frame types π
β¨ β this little masterpiece lives at ./include/linux and it's dated October 2026, so like, future-proofed and gorgeous. bye, love u, see u in the next function π¦ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms