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.

Dependency Surface

Detected Declarations

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

Implementation Notes