include/net/ieee80211_radiotap.h
Source file repositories/reference/linux-study-clean/include/net/ieee80211_radiotap.h
File Facts
- System
- Linux kernel
- Corpus path
include/net/ieee80211_radiotap.h- Extension
.h- Size
- 24220 bytes
- Lines
- 618
- Domain
- Networking Core
- Bucket
- Sockets, Protocols, Packet Path, And Network Policy
- Inferred role
- Networking Core: implementation source
- Status
- source implementation candidate
Why This File Exists
Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.
- Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/kernel.hlinux/unaligned.h
Detected Declarations
struct ieee80211_radiotap_headerstruct ieee80211_radiotap_vhtstruct ieee80211_radiotap_hestruct ieee80211_radiotap_he_mustruct ieee80211_radiotap_lsigstruct ieee80211_radiotap_tlvstruct ieee80211_radiotap_vendor_contentstruct ieee80211_radiotap_vendor_tlvstruct ieee80211_radiotap_eht_usigstruct ieee80211_radiotap_ehtenum ieee80211_radiotap_presenceenum ieee80211_radiotap_flagsenum ieee80211_radiotap_channel_flagsenum ieee80211_radiotap_rx_flagsenum ieee80211_radiotap_tx_flagsenum ieee80211_radiotap_mcs_haveenum ieee80211_radiotap_mcs_flagsenum ieee80211_radiotap_ampdu_flagsenum ieee80211_radiotap_vht_knownenum ieee80211_radiotap_vht_flagsenum ieee80211_radiotap_vht_codingenum ieee80211_radiotap_vht_bandwidthenum ieee80211_radiotap_timestamp_unit_sposenum ieee80211_radiotap_timestamp_flagsenum ieee80211_radiotap_he_bitsenum ieee80211_radiotap_he_mu_bitsenum ieee80211_radiotap_lsig_data1enum ieee80211_radiotap_lsig_data2enum ieee80211_radiotap_zero_len_psdu_typeenum ieee80211_radiotap_eht_knownenum ieee80211_radiotap_eht_dataenum ieee80211_radiotap_eht_user_infoenum ieee80211_radiotap_eht_usig_commonenum ieee80211_radiotap_eht_usig_muenum ieee80211_radiotap_eht_usig_tbfunction ieee80211_get_radiotap_len
Annotated Snippet
struct ieee80211_radiotap_header {
__struct_group(ieee80211_radiotap_header_fixed, hdr, __packed,
/**
* @it_version: radiotap version, always 0
*/
uint8_t it_version;
/**
* @it_pad: padding (or alignment)
*/
uint8_t it_pad;
/**
* @it_len: overall radiotap header length
*/
__le16 it_len;
/**
* @it_present: (first) present word
*/
__le32 it_present;
);
/**
* @it_optional: all remaining presence bitmaps
*/
__le32 it_optional[];
} __packed;
static_assert(offsetof(struct ieee80211_radiotap_header, it_optional) == sizeof(struct ieee80211_radiotap_header_fixed),
"struct member likely outside of __struct_group()");
/* version is always 0 */
#define PKTHDR_RADIOTAP_VERSION 0
/* see the radiotap website for the descriptions */
enum ieee80211_radiotap_presence {
IEEE80211_RADIOTAP_TSFT = 0,
IEEE80211_RADIOTAP_FLAGS = 1,
IEEE80211_RADIOTAP_RATE = 2,
IEEE80211_RADIOTAP_CHANNEL = 3,
IEEE80211_RADIOTAP_FHSS = 4,
IEEE80211_RADIOTAP_DBM_ANTSIGNAL = 5,
IEEE80211_RADIOTAP_DBM_ANTNOISE = 6,
IEEE80211_RADIOTAP_LOCK_QUALITY = 7,
IEEE80211_RADIOTAP_TX_ATTENUATION = 8,
IEEE80211_RADIOTAP_DB_TX_ATTENUATION = 9,
IEEE80211_RADIOTAP_DBM_TX_POWER = 10,
IEEE80211_RADIOTAP_ANTENNA = 11,
IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12,
IEEE80211_RADIOTAP_DB_ANTNOISE = 13,
IEEE80211_RADIOTAP_RX_FLAGS = 14,
IEEE80211_RADIOTAP_TX_FLAGS = 15,
IEEE80211_RADIOTAP_RTS_RETRIES = 16,
IEEE80211_RADIOTAP_DATA_RETRIES = 17,
/* 18 is XChannel, but it's not defined yet */
IEEE80211_RADIOTAP_MCS = 19,
IEEE80211_RADIOTAP_AMPDU_STATUS = 20,
IEEE80211_RADIOTAP_VHT = 21,
IEEE80211_RADIOTAP_TIMESTAMP = 22,
IEEE80211_RADIOTAP_HE = 23,
IEEE80211_RADIOTAP_HE_MU = 24,
IEEE80211_RADIOTAP_ZERO_LEN_PSDU = 26,
IEEE80211_RADIOTAP_LSIG = 27,
IEEE80211_RADIOTAP_TLV = 28,
/* valid in every it_present bitmap, even vendor namespaces */
IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29,
IEEE80211_RADIOTAP_VENDOR_NAMESPACE = 30,
IEEE80211_RADIOTAP_EXT = 31,
IEEE80211_RADIOTAP_EHT_USIG = 33,
IEEE80211_RADIOTAP_EHT = 34,
};
/* for IEEE80211_RADIOTAP_FLAGS */
enum ieee80211_radiotap_flags {
IEEE80211_RADIOTAP_F_CFP = 0x01,
IEEE80211_RADIOTAP_F_SHORTPRE = 0x02,
IEEE80211_RADIOTAP_F_WEP = 0x04,
IEEE80211_RADIOTAP_F_FRAG = 0x08,
IEEE80211_RADIOTAP_F_FCS = 0x10,
IEEE80211_RADIOTAP_F_DATAPAD = 0x20,
IEEE80211_RADIOTAP_F_BADFCS = 0x40,
};
/* for IEEE80211_RADIOTAP_CHANNEL */
enum ieee80211_radiotap_channel_flags {
IEEE80211_CHAN_CCK = 0x0020,
IEEE80211_CHAN_OFDM = 0x0040,
IEEE80211_CHAN_2GHZ = 0x0080,
Annotation
- Immediate include surface: `linux/kernel.h`, `linux/unaligned.h`.
- Detected declarations: `struct ieee80211_radiotap_header`, `struct ieee80211_radiotap_vht`, `struct ieee80211_radiotap_he`, `struct ieee80211_radiotap_he_mu`, `struct ieee80211_radiotap_lsig`, `struct ieee80211_radiotap_tlv`, `struct ieee80211_radiotap_vendor_content`, `struct ieee80211_radiotap_vendor_tlv`, `struct ieee80211_radiotap_eht_usig`, `struct ieee80211_radiotap_eht`.
- Atlas domain: Networking Core / Sockets, Protocols, Packet Path, And Network Policy.
- 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.