include/linux/ieee80211-s1g.h
Source file repositories/reference/linux-study-clean/include/linux/ieee80211-s1g.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/ieee80211-s1g.h- Extension
.h- Size
- 17241 bytes
- Lines
- 576
- 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.h
Detected Declarations
struct ieee80211_s1g_bcn_compat_iestruct ieee80211_s1g_oper_iestruct ieee80211_aid_response_iestruct ieee80211_s1g_capstruct s1g_tim_aidstruct s1g_tim_enc_blockenum ieee80211_s1g_chanwidthenum ieee80211_s1g_pri_chanwidthenum ieee80211_s1g_actioncodefunction Copyrightfunction ieee80211_s1g_has_next_tbttfunction ieee80211_s1g_has_anofunction ieee80211_s1g_has_cssidfunction ieee80211_s1g_optional_lenfunction TBTTfunction ieee80211_s1g_len_bitmapfunction ieee80211_s1g_len_singlefunction ieee80211_s1g_len_olbfunction ieee80211_s1g_find_target_blockfunction ieee80211_s1g_parse_bitmapfunction ieee80211_s1g_parse_singlefunction ieee80211_s1g_parse_olbfunction ieee80211_s1g_check_tim
Annotated Snippet
struct ieee80211_s1g_bcn_compat_ie {
__le16 compat_info;
__le16 beacon_int;
__le32 tsf_completion;
} __packed;
/**
* struct ieee80211_s1g_oper_ie - S1G Operation element
* @ch_width: S1G Operation Information Channel Width
* @oper_class: S1G Operation Information Operating Class
* @primary_ch: S1G Operation Information Primary Channel Number
* @oper_ch: S1G Operation Information Channel Center Frequency
* @basic_mcs_nss: Basic S1G-MCS and NSS Set
*
* This structure represents the payload of the "S1G Operation
* element" as described in IEEE Std 802.11-2020 section 9.4.2.212.
*/
struct ieee80211_s1g_oper_ie {
u8 ch_width;
u8 oper_class;
u8 primary_ch;
u8 oper_ch;
__le16 basic_mcs_nss;
} __packed;
/**
* struct ieee80211_aid_response_ie - AID Response element
* @aid: AID/Group AID
* @switch_count: AID Switch Count
* @response_int: AID Response Interval
*
* This structure represents the payload of the "AID Response element"
* as described in IEEE Std 802.11-2020 section 9.4.2.194.
*/
struct ieee80211_aid_response_ie {
__le16 aid;
u8 switch_count;
__le16 response_int;
} __packed;
struct ieee80211_s1g_cap {
u8 capab_info[10];
u8 supp_mcs_nss[5];
} __packed;
/**
* ieee80211_s1g_optional_len - determine length of optional S1G beacon fields
* @fc: frame control bytes in little-endian byteorder
* Return: total length in bytes of the optional fixed-length fields
*
* S1G beacons may contain up to three optional fixed-length fields that
* precede the variable-length elements. Whether these fields are present
* is indicated by flags in the frame control field.
*
* From IEEE 802.11-2024 section 9.3.4.3:
* - Next TBTT field may be 0 or 3 bytes
* - Short SSID field may be 0 or 4 bytes
* - Access Network Options (ANO) field may be 0 or 1 byte
*/
static inline size_t
ieee80211_s1g_optional_len(__le16 fc)
{
size_t len = 0;
if (ieee80211_s1g_has_next_tbtt(fc))
len += 3;
if (ieee80211_s1g_has_cssid(fc))
len += 4;
if (ieee80211_s1g_has_ano(fc))
len += 1;
return len;
}
/* S1G Capabilities Information field */
#define IEEE80211_S1G_CAPABILITY_LEN 15
#define S1G_CAP0_S1G_LONG BIT(0)
#define S1G_CAP0_SGI_1MHZ BIT(1)
#define S1G_CAP0_SGI_2MHZ BIT(2)
#define S1G_CAP0_SGI_4MHZ BIT(3)
#define S1G_CAP0_SGI_8MHZ BIT(4)
#define S1G_CAP0_SGI_16MHZ BIT(5)
#define S1G_CAP0_SUPP_CH_WIDTH GENMASK(7, 6)
#define S1G_SUPP_CH_WIDTH_2 0
#define S1G_SUPP_CH_WIDTH_4 1
#define S1G_SUPP_CH_WIDTH_8 2
Annotation
- Immediate include surface: `linux/types.h`, `linux/if_ether.h`.
- Detected declarations: `struct ieee80211_s1g_bcn_compat_ie`, `struct ieee80211_s1g_oper_ie`, `struct ieee80211_aid_response_ie`, `struct ieee80211_s1g_cap`, `struct s1g_tim_aid`, `struct s1g_tim_enc_block`, `enum ieee80211_s1g_chanwidth`, `enum ieee80211_s1g_pri_chanwidth`, `enum ieee80211_s1g_actioncode`, `function Copyright`.
- 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.