include/linux/ieee80211-mesh.h
Source file repositories/reference/linux-study-clean/include/linux/ieee80211-mesh.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/ieee80211-mesh.h- Extension
.h- Size
- 12258 bytes
- Lines
- 443
- 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 ieee80211s_hdrstruct ieee80211_mesh_hwmp_preq_targetstruct ieee80211_mesh_hwmp_preq_topstruct ieee80211_mesh_hwmp_preq_bottomstruct ieee80211_mesh_hwmp_prep_topstruct ieee80211_mesh_hwmp_prep_bottomstruct ieee80211_mesh_hwmp_perr_dststruct ieee80211_mesh_hwmp_perrstruct ieee80211_mesh_chansw_params_iestruct ieee80211_meshconf_iestruct ieee80211_rann_ieenum ieee80211_preq_flagsenum ieee80211_preq_target_flagsenum mesh_config_capab_flagsenum ieee80211_rann_flagsenum ieee80211_mesh_actioncodeenum ieee80211_mesh_sync_methodenum ieee80211_mesh_path_protocolenum ieee80211_mesh_path_metricenum ieee80211_root_mode_identifierfunction ieee80211_mesh_preq_prep_ae_enabledfunction ieee80211_mesh_hwmp_preq_get_bottomfunction ieee80211_mesh_hwmp_prep_get_bottomfunction ieee80211_mesh_hwmp_perr_get_dstfunction ieee80211_mesh_hwmp_perr_get_addrfunction ieee80211_mesh_hwmp_perr_get_snfunction ieee80211_mesh_hwmp_perr_get_rcodefunction ieee80211_mesh_preq_size_okfunction ieee80211_mesh_prep_size_okfunction ieee80211_mesh_perr_size_ok
Annotated Snippet
struct ieee80211s_hdr {
u8 flags;
u8 ttl;
__le32 seqnum;
u8 eaddr1[ETH_ALEN];
u8 eaddr2[ETH_ALEN];
} __packed __aligned(2);
struct ieee80211_mesh_hwmp_preq_target {
u8 flags;
u8 addr[ETH_ALEN];
__le32 sn;
} __packed;
struct ieee80211_mesh_hwmp_preq_top {
u8 flags;
u8 hopcount;
u8 ttl;
__le32 preq_id;
u8 orig_addr[ETH_ALEN];
__le32 orig_sn;
/* optional AE, lifetime, metric, target */
u8 variable[];
} __packed;
struct ieee80211_mesh_hwmp_preq_bottom {
__le32 lifetime;
__le32 metric;
u8 target_count;
struct ieee80211_mesh_hwmp_preq_target targets[];
} __packed;
struct ieee80211_mesh_hwmp_prep_top {
u8 flags;
u8 hopcount;
u8 ttl;
u8 target_addr[ETH_ALEN];
__le32 target_sn;
/* optional Target External Address */
u8 variable[];
} __packed;
struct ieee80211_mesh_hwmp_prep_bottom {
__le32 lifetime;
__le32 metric;
u8 orig_addr[ETH_ALEN];
__le32 orig_sn;
} __packed;
struct ieee80211_mesh_hwmp_perr_dst {
u8 flags;
u8 addr[ETH_ALEN];
__le32 sn;
/* optional Destination External Address */
u8 variable[];
} __packed;
struct ieee80211_mesh_hwmp_perr {
u8 ttl;
u8 number_of_dst;
/* Destinations */
u8 variable[];
} __packed;
/* Mesh flags */
#define MESH_FLAGS_AE_A4 0x1
#define MESH_FLAGS_AE_A5_A6 0x2
#define MESH_FLAGS_AE 0x3
#define MESH_FLAGS_PS_DEEP 0x4
/* HWMP IE processing macros */
#define AE_F (1<<6)
/**
* enum ieee80211_preq_flags - mesh PREQ element flags
*
* @IEEE80211_PREQ_PROACTIVE_PREP_FLAG: proactive PREP subfield
*/
enum ieee80211_preq_flags {
IEEE80211_PREQ_PROACTIVE_PREP_FLAG = 1<<2,
};
/**
* enum ieee80211_preq_target_flags - mesh PREQ element per target flags
*
* @IEEE80211_PREQ_TO_FLAG: target only subfield
* @IEEE80211_PREQ_USN_FLAG: unknown target HWMP sequence number subfield
*/
Annotation
- Immediate include surface: `linux/types.h`, `linux/if_ether.h`.
- Detected declarations: `struct ieee80211s_hdr`, `struct ieee80211_mesh_hwmp_preq_target`, `struct ieee80211_mesh_hwmp_preq_top`, `struct ieee80211_mesh_hwmp_preq_bottom`, `struct ieee80211_mesh_hwmp_prep_top`, `struct ieee80211_mesh_hwmp_prep_bottom`, `struct ieee80211_mesh_hwmp_perr_dst`, `struct ieee80211_mesh_hwmp_perr`, `struct ieee80211_mesh_chansw_params_ie`, `struct ieee80211_meshconf_ie`.
- 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.