ieee80211_a...contains_tpc(9)
π ieee80211_action_contains_tpc(9) β the Kernel API Manual page, bestie edition β¨
okay so picture this: you're deep in the kernel, you've got a frame, and you need to know if it's got a TPC element hiding in it. That's literally this page. It's ieee80211_action_contains_tpc(9) from the Kernel API Manual, and honestly? she's a little icon. π
πΈ NAME πΈ
ieee80211_action_contains_tpc β checks if the frame contains TPC element. that's it, that's the whole job, and she does it flawlessly π
β¨ SYNOPSIS β¨
bool ieee80211_action_contains_tpc (struct sk_buff *skb );
look at her. tiny signature, big main character energy. π
π¦ ARGUMENTS π¦
skbβ the skb containing the frame, and yes bestie, length will be checked. don't try to be cute with it, she's gonna validate it. π
β RETURN β
trueβ the frame contains a TPC element, slay πfalseβ the frame does not contain a TPC element, and that's also fine, no cap πΈ
π₯ DESCRIPTION π₯
so what's she actually doing in there? she checks if it's either a TPC report action frame or a Link Measurement report action frame, exactly as defined in IEEE Std. 802.11-2012 8.5.2.5 and 8.5.7.5 accordingly. two specs, one function, zero drama. the way that she just... knows. π§
ngl this is the kind of quiet, competent function that doesn't need a whole personality β she just vibes, checks the length, matches the element, and returns a bool. iconic behaviour, fr fr. β
π SEE ALSO π
first up, the kernel file where all this lives: ./include/linux/ieee80211.h β go pay respects, she's the source of truth π«Ά
and now the whole extended friend group, in the exact order they were introduced to us:
- the
has_*girlies: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) - the
is_*girlies, part one: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) - the
is_*girlies, part two: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) - the struct + enum era (academic icons only π):
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) - and the rest of the group chat, no one left out:
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_is_timing_measurement(9),ieee80211_is_ftm(9),for_each_element_completed(9),struct ieee80211_enh_crit_upd(9),ieee80211_check_tim(9)
and that's the page!! π source lives under ./include/linux, dated October 2026, and this little rewrite was brought to you by the Kernel API Manual herself. go forth, check your TPC elements, and remember: length gets checked. periodt. πβ¨π¦
π¦ 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