include/net/cfg80211.h
Source file repositories/reference/linux-study-clean/include/net/cfg80211.h
File Facts
- System
- Linux kernel
- Corpus path
include/net/cfg80211.h- Extension
.h- Size
- 401413 bytes
- Lines
- 10996
- 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/ethtool.huapi/linux/rfkill.hlinux/netdevice.hlinux/debugfs.hlinux/list.hlinux/bug.hlinux/netlink.hlinux/skbuff.hlinux/nl80211.hlinux/if_ether.hlinux/ieee80211.hlinux/net.hlinux/rfkill.hnet/regulatory.h
Detected Declarations
struct wiphystruct ieee80211_channelstruct ieee80211_ratestruct ieee80211_he_obss_pdstruct cfg80211_he_bss_colorstruct ieee80211_sta_ht_capstruct ieee80211_sta_vht_capstruct ieee80211_sta_he_capstruct ieee80211_eht_mcs_nss_suppstruct ieee80211_sta_eht_capstruct ieee80211_sta_uhr_capstruct ieee80211_sband_iftype_datastruct ieee80211_edmgstruct ieee80211_sta_s1g_capstruct ieee80211_supported_bandstruct vif_paramsstruct key_paramsstruct cfg80211_chan_defstruct cfg80211_bitrate_maskstruct cfg80211_tid_cfgstruct cfg80211_tid_configstruct cfg80211_fils_aadstruct cfg80211_set_hw_timestampstruct survey_infostruct cfg80211_crypto_settingsstruct cfg80211_mbssid_configstruct cfg80211_mbssid_elemsstruct cfg80211_rnr_elemsstruct cfg80211_beacon_datastruct mac_addressstruct cfg80211_acl_datastruct cfg80211_fils_discoverystruct cfg80211_unsol_bcast_probe_respstruct cfg80211_s1g_short_beaconstruct cfg80211_ap_settingsstruct cfg80211_ap_updatestruct cfg80211_csa_settingsstruct cfg80211_color_change_settingsstruct iface_combination_paramsstruct sta_txpwrstruct link_station_parametersstruct link_station_del_parametersstruct cfg80211_ttlm_paramsstruct station_parametersstruct station_del_parametersstruct rate_infostruct sta_bss_parametersstruct cfg80211_txq_stats
Annotated Snippet
struct ieee80211_channel {
enum nl80211_band band;
u32 center_freq;
u16 freq_offset;
u16 hw_value;
u32 flags;
int max_antenna_gain;
int max_power;
int max_reg_power;
bool beacon_found;
u32 orig_flags;
int orig_mag, orig_mpwr;
enum nl80211_dfs_state dfs_state;
unsigned long dfs_state_entered;
unsigned int dfs_cac_ms;
u64 cac_start_time;
s8 psd;
};
/**
* enum ieee80211_rate_flags - rate flags
*
* Hardware/specification flags for rates. These are structured
* in a way that allows using the same bitrate structure for
* different bands/PHY modes.
*
* @IEEE80211_RATE_SHORT_PREAMBLE: Hardware can send with short
* preamble on this bitrate; only relevant in 2.4GHz band and
* with CCK rates.
* @IEEE80211_RATE_MANDATORY_A: This bitrate is a mandatory rate
* when used with 802.11a (on the 5 GHz band); filled by the
* core code when registering the wiphy.
* @IEEE80211_RATE_MANDATORY_B: This bitrate is a mandatory rate
* when used with 802.11b (on the 2.4 GHz band); filled by the
* core code when registering the wiphy.
* @IEEE80211_RATE_MANDATORY_G: This bitrate is a mandatory rate
* when used with 802.11g (on the 2.4 GHz band); filled by the
* core code when registering the wiphy.
* @IEEE80211_RATE_ERP_G: This is an ERP rate in 802.11g mode.
* @IEEE80211_RATE_SUPPORTS_5MHZ: Rate can be used in 5 MHz mode
* @IEEE80211_RATE_SUPPORTS_10MHZ: Rate can be used in 10 MHz mode
*/
enum ieee80211_rate_flags {
IEEE80211_RATE_SHORT_PREAMBLE = BIT(0),
IEEE80211_RATE_MANDATORY_A = BIT(1),
IEEE80211_RATE_MANDATORY_B = BIT(2),
IEEE80211_RATE_MANDATORY_G = BIT(3),
IEEE80211_RATE_ERP_G = BIT(4),
IEEE80211_RATE_SUPPORTS_5MHZ = BIT(5),
IEEE80211_RATE_SUPPORTS_10MHZ = BIT(6),
};
/**
* enum ieee80211_bss_type - BSS type filter
*
* @IEEE80211_BSS_TYPE_ESS: Infrastructure BSS
* @IEEE80211_BSS_TYPE_PBSS: Personal BSS
* @IEEE80211_BSS_TYPE_IBSS: Independent BSS
* @IEEE80211_BSS_TYPE_MBSS: Mesh BSS
* @IEEE80211_BSS_TYPE_ANY: Wildcard value for matching any BSS type
*/
enum ieee80211_bss_type {
IEEE80211_BSS_TYPE_ESS,
IEEE80211_BSS_TYPE_PBSS,
IEEE80211_BSS_TYPE_IBSS,
IEEE80211_BSS_TYPE_MBSS,
IEEE80211_BSS_TYPE_ANY
};
/**
* enum ieee80211_privacy - BSS privacy filter
*
* @IEEE80211_PRIVACY_ON: privacy bit set
* @IEEE80211_PRIVACY_OFF: privacy bit clear
* @IEEE80211_PRIVACY_ANY: Wildcard value for matching any privacy setting
*/
enum ieee80211_privacy {
IEEE80211_PRIVACY_ON,
IEEE80211_PRIVACY_OFF,
IEEE80211_PRIVACY_ANY
};
#define IEEE80211_PRIVACY(x) \
((x) ? IEEE80211_PRIVACY_ON : IEEE80211_PRIVACY_OFF)
/**
* struct ieee80211_rate - bitrate definition
*
* This structure describes a bitrate that an 802.11 PHY can
* operate with. The two values @hw_value and @hw_value_short
Annotation
- Immediate include surface: `linux/ethtool.h`, `uapi/linux/rfkill.h`, `linux/netdevice.h`, `linux/debugfs.h`, `linux/list.h`, `linux/bug.h`, `linux/netlink.h`, `linux/skbuff.h`.
- Detected declarations: `struct wiphy`, `struct ieee80211_channel`, `struct ieee80211_rate`, `struct ieee80211_he_obss_pd`, `struct cfg80211_he_bss_color`, `struct ieee80211_sta_ht_cap`, `struct ieee80211_sta_vht_cap`, `struct ieee80211_sta_he_cap`, `struct ieee80211_eht_mcs_nss_supp`, `struct ieee80211_sta_eht_cap`.
- 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.