include/net/mac80211.h
Source file repositories/reference/linux-study-clean/include/net/mac80211.h
File Facts
- System
- Linux kernel
- Corpus path
include/net/mac80211.h- Extension
.h- Size
- 326747 bytes
- Lines
- 8207
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/bug.hlinux/kernel.hlinux/if_ether.hlinux/skbuff.hlinux/ieee80211.hlinux/lockdep.hnet/cfg80211.hnet/codel.hnet/ieee80211_radiotap.hlinux/unaligned.h
Detected Declarations
struct devicestruct ieee80211_tx_queue_paramsstruct ieee80211_low_level_statsstruct ieee80211_chan_reqstruct ieee80211_chanctx_confstruct ieee80211_vif_chanctx_switchstruct ieee80211_rssi_eventstruct ieee80211_mlme_eventstruct ieee80211_ba_eventstruct ieee80211_eventstruct ieee80211_mu_group_datastruct ieee80211_ftm_responder_paramsstruct ieee80211_fils_discoverystruct ieee80211_parsed_tpe_eirpstruct ieee80211_parsed_tpe_psdstruct ieee80211_parsed_tpestruct ieee80211_bss_npca_paramsstruct ieee80211_bss_confstruct ieee80211_nan_channelstruct ieee80211_nan_peer_mapstruct ieee80211_nan_peer_schedstruct ieee80211_tx_ratestruct ieee80211_tx_infostruct ieee80211_rate_statusstruct ieee80211_tx_statusstruct ieee80211_scan_iesstruct ieee80211_rx_statusstruct ieee80211_confstruct ieee80211_channel_switchstruct ieee80211_eml_paramsstruct ieee80211_nan_sched_cfgstruct ieee80211_vif_cfgstruct ieee80211_neg_ttlmstruct ieee80211_vifstruct ieee80211_key_confstruct ieee80211_key_seqstruct ieee80211_sta_ratesstruct ieee80211_sta_txpwrstruct ieee80211_sta_aggregatesstruct ieee80211_link_stastruct ieee80211_stastruct ieee80211_tx_controlstruct ieee80211_txqstruct ieee80211_hwstruct ieee80211_scan_requeststruct ieee80211_tdls_ch_sw_paramsstruct ieee80211_ampdu_paramsstruct ieee80211_prep_tx_info
Annotated Snippet
struct ieee80211_tx_queue_params {
u16 txop;
u16 cw_min;
u16 cw_max;
u8 aifs;
bool acm;
bool uapsd;
bool mu_edca;
struct ieee80211_he_mu_edca_param_ac_rec mu_edca_param_rec;
};
struct ieee80211_low_level_stats {
unsigned int dot11ACKFailureCount;
unsigned int dot11RTSFailureCount;
unsigned int dot11FCSErrorCount;
unsigned int dot11RTSSuccessCount;
};
/**
* enum ieee80211_chanctx_change - change flag for channel context
* @IEEE80211_CHANCTX_CHANGE_WIDTH: The channel width changed
* @IEEE80211_CHANCTX_CHANGE_RX_CHAINS: The number of RX chains changed
* @IEEE80211_CHANCTX_CHANGE_RADAR: radar detection flag changed
* @IEEE80211_CHANCTX_CHANGE_CHANNEL: switched to another operating channel,
* this is used only with channel switching with CSA
* @IEEE80211_CHANCTX_CHANGE_MIN_DEF: The min chandef changed
* @IEEE80211_CHANCTX_CHANGE_AP: The AP channel definition changed, so (wider
* bandwidth) OFDMA settings need to be changed
* @IEEE80211_CHANCTX_CHANGE_PUNCTURING: The punctured channel(s) bitmap
* was changed.
* @IEEE80211_CHANCTX_CHANGE_NPCA: NPCA configuration changed
* @IEEE80211_CHANCTX_CHANGE_NPCA_PUNCT: NPCA puncturing changed
*/
enum ieee80211_chanctx_change {
IEEE80211_CHANCTX_CHANGE_WIDTH = BIT(0),
IEEE80211_CHANCTX_CHANGE_RX_CHAINS = BIT(1),
IEEE80211_CHANCTX_CHANGE_RADAR = BIT(2),
IEEE80211_CHANCTX_CHANGE_CHANNEL = BIT(3),
IEEE80211_CHANCTX_CHANGE_MIN_DEF = BIT(4),
IEEE80211_CHANCTX_CHANGE_AP = BIT(5),
IEEE80211_CHANCTX_CHANGE_PUNCTURING = BIT(6),
IEEE80211_CHANCTX_CHANGE_NPCA = BIT(7),
IEEE80211_CHANCTX_CHANGE_NPCA_PUNCT = BIT(8),
};
/**
* struct ieee80211_chan_req - A channel "request"
* @oper: channel definition to use for operation
* @ap: the channel definition of the AP, if any
* (otherwise the chan member is %NULL)
* @require_npca: If NPCA is configured, require it to
* remain, this is used by AP interfaces
*/
struct ieee80211_chan_req {
struct cfg80211_chan_def oper;
struct cfg80211_chan_def ap;
bool require_npca;
};
/**
* struct ieee80211_chanctx_conf - channel context that vifs may be tuned to
*
* This is the driver-visible part. The ieee80211_chanctx
* that contains it is visible in mac80211 only.
*
* @def: the channel definition
* @min_def: the minimum channel definition currently required.
* @ap: the channel definition the AP actually is operating as,
* for use with (wider bandwidth) OFDMA
* @radio_idx: index of the wiphy radio used used for this channel
* @rx_chains_static: The number of RX chains that must always be
* active on the channel to receive MIMO transmissions
* @rx_chains_dynamic: The number of RX chains that must be enabled
* after RTS/CTS handshake to receive SMPS MIMO transmissions;
* this will always be >= @rx_chains_static.
* @radar_enabled: whether radar detection is enabled on this channel.
* @drv_priv: data area for driver use, will always be aligned to
* sizeof(void *), size is determined in hw information.
*/
struct ieee80211_chanctx_conf {
struct cfg80211_chan_def def;
struct cfg80211_chan_def min_def;
struct cfg80211_chan_def ap;
int radio_idx;
u8 rx_chains_static, rx_chains_dynamic;
bool radar_enabled;
u8 drv_priv[] __aligned(sizeof(void *));
Annotation
- Immediate include surface: `linux/bug.h`, `linux/kernel.h`, `linux/if_ether.h`, `linux/skbuff.h`, `linux/ieee80211.h`, `linux/lockdep.h`, `net/cfg80211.h`, `net/codel.h`.
- Detected declarations: `struct device`, `struct ieee80211_tx_queue_params`, `struct ieee80211_low_level_stats`, `struct ieee80211_chan_req`, `struct ieee80211_chanctx_conf`, `struct ieee80211_vif_chanctx_switch`, `struct ieee80211_rssi_event`, `struct ieee80211_mlme_event`, `struct ieee80211_ba_event`, `struct ieee80211_event`.
- Atlas domain: Networking Core / Sockets, Protocols, Packet Path, And Network Policy.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.