net/mac80211/airtime.c
Source file repositories/reference/linux-study-clean/net/mac80211/airtime.c
File Facts
- System
- Linux kernel
- Corpus path
net/mac80211/airtime.c- Extension
.c- Size
- 23740 bytes
- Lines
- 838
- Domain
- Networking Core
- Bucket
- Sockets, Protocols, Packet Path, And Network Policy
- Inferred role
- Networking Core: exported/initcall integration point
- Status
- integration 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.
- Exports symbols or registers init work; inspect boot/module ordering and who consumes the exported contract.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
net/mac80211.hieee80211_i.hsta_info.h
Detected Declarations
struct mcs_groupfunction ieee80211_calc_legacy_rate_durationfunction ieee80211_get_rate_durationfunction ieee80211_calc_rx_airtimefunction ieee80211_fill_rate_infofunction ieee80211_fill_rx_statusfunction ieee80211_calc_tx_airtime_ratefunction ieee80211_calc_tx_airtimefunction ieee80211_calc_expected_tx_airtimeexport ieee80211_calc_rx_airtimeexport ieee80211_calc_tx_airtime
Annotated Snippet
struct mcs_group {
u8 shift;
u16 duration[MCS_GROUP_RATES];
};
static const struct mcs_group airtime_mcs_groups[] = {
MCS_GROUP(1, 0, BW_20),
MCS_GROUP(2, 0, BW_20),
MCS_GROUP(3, 0, BW_20),
MCS_GROUP(4, 0, BW_20),
MCS_GROUP(1, 1, BW_20),
MCS_GROUP(2, 1, BW_20),
MCS_GROUP(3, 1, BW_20),
MCS_GROUP(4, 1, BW_20),
MCS_GROUP(1, 0, BW_40),
MCS_GROUP(2, 0, BW_40),
MCS_GROUP(3, 0, BW_40),
MCS_GROUP(4, 0, BW_40),
MCS_GROUP(1, 1, BW_40),
MCS_GROUP(2, 1, BW_40),
MCS_GROUP(3, 1, BW_40),
MCS_GROUP(4, 1, BW_40),
VHT_GROUP(1, 0, BW_20),
VHT_GROUP(2, 0, BW_20),
VHT_GROUP(3, 0, BW_20),
VHT_GROUP(4, 0, BW_20),
VHT_GROUP(1, 1, BW_20),
VHT_GROUP(2, 1, BW_20),
VHT_GROUP(3, 1, BW_20),
VHT_GROUP(4, 1, BW_20),
VHT_GROUP(1, 0, BW_40),
VHT_GROUP(2, 0, BW_40),
VHT_GROUP(3, 0, BW_40),
VHT_GROUP(4, 0, BW_40),
VHT_GROUP(1, 1, BW_40),
VHT_GROUP(2, 1, BW_40),
VHT_GROUP(3, 1, BW_40),
VHT_GROUP(4, 1, BW_40),
VHT_GROUP(1, 0, BW_80),
VHT_GROUP(2, 0, BW_80),
VHT_GROUP(3, 0, BW_80),
VHT_GROUP(4, 0, BW_80),
VHT_GROUP(1, 1, BW_80),
VHT_GROUP(2, 1, BW_80),
VHT_GROUP(3, 1, BW_80),
VHT_GROUP(4, 1, BW_80),
VHT_GROUP(1, 0, BW_160),
VHT_GROUP(2, 0, BW_160),
VHT_GROUP(3, 0, BW_160),
VHT_GROUP(4, 0, BW_160),
VHT_GROUP(1, 1, BW_160),
VHT_GROUP(2, 1, BW_160),
VHT_GROUP(3, 1, BW_160),
VHT_GROUP(4, 1, BW_160),
HE_GROUP(1, HE_GI_08, BW_20),
HE_GROUP(2, HE_GI_08, BW_20),
HE_GROUP(3, HE_GI_08, BW_20),
HE_GROUP(4, HE_GI_08, BW_20),
HE_GROUP(5, HE_GI_08, BW_20),
HE_GROUP(6, HE_GI_08, BW_20),
HE_GROUP(7, HE_GI_08, BW_20),
HE_GROUP(8, HE_GI_08, BW_20),
HE_GROUP(1, HE_GI_16, BW_20),
HE_GROUP(2, HE_GI_16, BW_20),
HE_GROUP(3, HE_GI_16, BW_20),
HE_GROUP(4, HE_GI_16, BW_20),
HE_GROUP(5, HE_GI_16, BW_20),
HE_GROUP(6, HE_GI_16, BW_20),
HE_GROUP(7, HE_GI_16, BW_20),
HE_GROUP(8, HE_GI_16, BW_20),
HE_GROUP(1, HE_GI_32, BW_20),
HE_GROUP(2, HE_GI_32, BW_20),
HE_GROUP(3, HE_GI_32, BW_20),
HE_GROUP(4, HE_GI_32, BW_20),
HE_GROUP(5, HE_GI_32, BW_20),
HE_GROUP(6, HE_GI_32, BW_20),
Annotation
- Immediate include surface: `net/mac80211.h`, `ieee80211_i.h`, `sta_info.h`.
- Detected declarations: `struct mcs_group`, `function ieee80211_calc_legacy_rate_duration`, `function ieee80211_get_rate_duration`, `function ieee80211_calc_rx_airtime`, `function ieee80211_fill_rate_info`, `function ieee80211_fill_rx_status`, `function ieee80211_calc_tx_airtime_rate`, `function ieee80211_calc_tx_airtime`, `function ieee80211_calc_expected_tx_airtime`, `export ieee80211_calc_rx_airtime`.
- Atlas domain: Networking Core / Sockets, Protocols, Packet Path, And Network Policy.
- Implementation status: integration 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.