include/linux/ieee80211.h
Source file repositories/reference/linux-study-clean/include/linux/ieee80211.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/ieee80211.h- Extension
.h- Size
- 88583 bytes
- Lines
- 2892
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hlinux/if_ether.hlinux/etherdevice.hlinux/bitfield.hasm/byteorder.hlinux/unaligned.hieee80211-ht.hieee80211-vht.hieee80211-he.hieee80211-eht.hieee80211-uhr.hieee80211-mesh.hieee80211-s1g.hieee80211-p2p.hieee80211-nan.h
Detected Declarations
struct ieee80211_hdrstruct ieee80211_hdr_3addrstruct ieee80211_qos_hdrstruct ieee80211_qos_hdr_4addrstruct ieee80211_triggerstruct ieee80211_quiet_iestruct ieee80211_msrment_iestruct ieee80211_channel_sw_iestruct ieee80211_ext_chansw_iestruct ieee80211_sec_chan_offs_iestruct ieee80211_wide_bw_chansw_iestruct ieee80211_tim_iestruct ieee80211_tpc_report_iestruct ieee80211_addba_ext_iestruct ieee80211_extstruct ieee80211_bss_load_elemstruct ieee80211_mgmtstruct ieee80211_ml_reconf_statusstruct ieee80211_mmiestruct ieee80211_mmie_16struct ieee80211_mmie_varstruct ieee80211_vendor_iestruct ieee80211_wmm_ac_paramstruct ieee80211_wmm_param_iestruct ieee80211_rtsstruct ieee80211_ctsstruct ieee80211_pspollstruct ieee80211_ch_switch_timingstruct ieee80211_tdls_lnkiestruct ieee80211_tdls_datastruct ieee80211_country_ie_tripletstruct ieee80211_timeout_interval_iestruct ieee80211_bss_max_idle_period_iestruct ieee80211_bssid_indexstruct ieee80211_multiple_bssid_configurationstruct ieee80211_tspec_iestruct elementstruct ieee80211_enh_crit_updstruct ieee80211_neighbor_ap_infostruct ieee80211_rnr_mld_paramsstruct ieee80211_tbtt_info_7_8_9struct ieee80211_tbtt_info_ge_11enum ieee80211_statuscodeenum ieee80211_reasoncodeenum ieee80211_eidenum ieee80211_eid_extenum ieee80211_categoryenum ieee80211_spectrum_mgmt_actioncode
Annotated Snippet
struct ieee80211_hdr {
__le16 frame_control;
__le16 duration_id;
struct_group(addrs,
u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
);
__le16 seq_ctrl;
u8 addr4[ETH_ALEN];
} __packed __aligned(2);
struct ieee80211_hdr_3addr {
__le16 frame_control;
__le16 duration_id;
u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
__le16 seq_ctrl;
} __packed __aligned(2);
struct ieee80211_qos_hdr {
__le16 frame_control;
__le16 duration_id;
u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
__le16 seq_ctrl;
__le16 qos_ctrl;
} __packed __aligned(2);
struct ieee80211_qos_hdr_4addr {
__le16 frame_control;
__le16 duration_id;
u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
__le16 seq_ctrl;
u8 addr4[ETH_ALEN];
__le16 qos_ctrl;
} __packed __aligned(2);
struct ieee80211_trigger {
__le16 frame_control;
__le16 duration;
u8 ra[ETH_ALEN];
u8 ta[ETH_ALEN];
__le64 common_info;
u8 variable[];
} __packed __aligned(2);
/**
* ieee80211_has_tods - check if IEEE80211_FCTL_TODS is set
* @fc: frame control bytes in little-endian byteorder
* Return: whether or not the frame has to-DS set
*/
static inline bool ieee80211_has_tods(__le16 fc)
{
return (fc & cpu_to_le16(IEEE80211_FCTL_TODS)) != 0;
}
/**
* ieee80211_has_fromds - check if IEEE80211_FCTL_FROMDS is set
* @fc: frame control bytes in little-endian byteorder
* Return: whether or not the frame has from-DS set
*/
static inline bool ieee80211_has_fromds(__le16 fc)
{
return (fc & cpu_to_le16(IEEE80211_FCTL_FROMDS)) != 0;
}
/**
* ieee80211_has_a4 - check if IEEE80211_FCTL_TODS and IEEE80211_FCTL_FROMDS are set
* @fc: frame control bytes in little-endian byteorder
* Return: whether or not it's a 4-address frame (from-DS and to-DS set)
*/
static inline bool ieee80211_has_a4(__le16 fc)
{
__le16 tmp = cpu_to_le16(IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS);
return (fc & tmp) == tmp;
}
/**
* ieee80211_has_morefrags - check if IEEE80211_FCTL_MOREFRAGS is set
* @fc: frame control bytes in little-endian byteorder
* Return: whether or not the frame has more fragments (more frags bit set)
*/
static inline bool ieee80211_has_morefrags(__le16 fc)
{
return (fc & cpu_to_le16(IEEE80211_FCTL_MOREFRAGS)) != 0;
Annotation
- Immediate include surface: `linux/types.h`, `linux/if_ether.h`, `linux/etherdevice.h`, `linux/bitfield.h`, `asm/byteorder.h`, `linux/unaligned.h`, `ieee80211-ht.h`, `ieee80211-vht.h`.
- Detected declarations: `struct ieee80211_hdr`, `struct ieee80211_hdr_3addr`, `struct ieee80211_qos_hdr`, `struct ieee80211_qos_hdr_4addr`, `struct ieee80211_trigger`, `struct ieee80211_quiet_ie`, `struct ieee80211_msrment_ie`, `struct ieee80211_channel_sw_ie`, `struct ieee80211_ext_chansw_ie`, `struct ieee80211_sec_chan_offs_ie`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.