fuchsia.wlan.ieee80211

新增:7

STRUCTS

BssDescription

在 fuchsia.wlan.ieee80211/fields.fidl 中定义

与 IEEE Std 802.11-2020 6.3.3.3.2 定义的 BSSDescription 对应的类型

此类型仅包含 BSSDescription 经常需要的信息的显式字段。所有其他字段都保留在从 AP 接收的通告(例如,来自信标或探测响应帧)中的 IE 原始缓冲区中。

包含 IE 的原始缓冲区可确保此类型始终包含 AP 通告的所有信息,无论接收通告的 Fuchsia 版本如何。

添加:HEAD

字段类型说明默认
bssid MacAddr 无默认应用
bss_type BssType 无默认应用
beacon_period uint16 无默认应用
capability_info CapabilityInfo 无默认应用
ies vector<uint8>

在通告中收到的 IE 缓冲区。例如,来自信标或探测响应帧。

无默认应用
primary ChannelNumber

此 BSS 的信道信息。

无默认应用
bandwidth ChannelBandwidth 无默认应用
vht_secondary_80_channel ChannelNumber 无默认应用
rssi_dbm int8

接收信号强度指示器的移动平均值(以 dBm 为单位)。

无默认应用
snr_db int8

信噪比的移动平均值(以 dB 为单位)。

无默认应用

CSsid

在 fuchsia.wlan.ieee80211/fields.fidl 中定义

字段类型说明默认
len uint8 无默认应用
data array<uint8, 32> 无默认应用

ChannelNumber

在 fuchsia.wlan.ieee80211/channel.fidl 中定义

由频段和频道号组成的频道信息。

添加:33

字段类型说明默认
band WlanBand 无默认应用
number uint8 无默认应用

HtCapabilities

在 fuchsia.wlan.ieee80211/fields.fidl 中定义

字段类型说明默认
bytes array<uint8, 26> 无默认应用

HtOperation

在 fuchsia.wlan.ieee80211/fields.fidl 中定义

字段类型说明默认
bytes array<uint8, 22> 无默认应用

VhtCapabilities

在 fuchsia.wlan.ieee80211/fields.fidl 中定义

字段类型说明默认
bytes array<uint8, 12> 无默认应用

VhtOperation

在 fuchsia.wlan.ieee80211/fields.fidl 中定义

字段类型说明默认
bytes array<uint8, 5> 无默认应用

WlanChannel

在 fuchsia.wlan.ieee80211/channel.fidl 中定义

从 DSSS 参数集、HT 操作和 VHT 操作 IE 以及接收帧的主信道派生的信道信息。

IEEE Std 802.11-2016, 9.4.2.4 - DSSS Parameter Set element IEEE Std 802.11-2016, 9.4.2.57 - HT Operation element IEEE Std 802.11-2016, 9.4.2.159 - VHT Operation element

已移除:33 已添加:28

字段类型说明默认
primary uint8 无默认应用
cbw ChannelBandwidth 无默认应用
secondary80 uint8 无默认应用

枚举

BssType flexible

类型:uint32

在 fuchsia.wlan.ieee80211/fields.fidl 中定义

新增:32

名称值说明
0
1
2
3
4

ChannelBandwidth flexible

类型:uint32

在 fuchsia.wlan.ieee80211/channel.fidl 中定义

信道宽度派生自 HT 操作和 VHT 操作 IE,如果未明确指定,则默认为 20 MHz

IEEE Std 802.11-2016,表 9-153 - HT/VHT 操作信息子字段

新增:28

名称值说明
1
2
3
4
5
6

CipherSuiteType flexible

类型:uint32

在 fuchsia.wlan.ieee80211/rsn.fidl 中定义

IEEE Std 802.11-2016, 9.4.2.25.2

名称值说明
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14

GuardInterval strict

类型:uint8

在 fuchsia.wlan.ieee80211/fields.fidl 中定义

HT 和 VHT 保护间隔。 请参阅 IEEE 802.11-2016 表 19-1 和表 21-1。

新增:32

名称值说明
1
2

KeyType flexible

类型:uint8

在 fuchsia.wlan.ieee80211/fields.fidl 中定义

新增:27

名称值说明
1
2
3
4

ReasonCode flexible

类型:uint16

在 fuchsia.wlan.ieee80211/reason_code.fidl 中定义

802.11 原因代码。这些值在整个标准中都很常见。 IEEE Std 802.11-2016、9.4.1.7、表 9-45

名称值说明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

15 在 802.11-2016 中名为“4WAY_HANDSHAKE_TIMEOUT”。

16
17
18
19
20
21
22
23

在 802.11-2016 中,23 命名为“802_1_X_AUTH_FAILED”。

24
25
26
27
28
29
30
31
32
33
34
35
36
37

在 802.11-2016 中,37 被分配给多个名称:“END_TS”“END_BA”和“END_DLS”。

38

在 802.11-2016 中,38 被分配给多个名称“UNKNOWN_TS”和“UNKNOWN_BA”。

39
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
129

驱动程序在固件中检测到 Rx 路径停滞。

130

驱动程序检测到固件中的 wme rx 错误率较高。

新增:16

StatusCode flexible

类型:uint16

在 fuchsia.wlan.ieee80211/status_code.fidl 中定义

802.11 状态代码。这些值在整个标准中都很常见。 IEEE Std 802.11-2016、9.4.1.9、表 9-46

名称值说明
0
1
2
3
5

4 个预留。

6
7
10

8-9:预留。

11
12
13
14
15
16
17
18
19
22

20-21 已预留。

23
24
25
27

已预留 26 个。

28
29
30
31
32
33
34
35
37

36 个已预留。

38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56

在 802.11-2016 中,56 分配给“REQUESTED_TCLAS_NOT_SUPPORTED_BY_AP”,与 80 重复。 以下名称与 802.11 Assigned Numbers Authority 数据库中列出的名称一致。

57
58
59
60
61
62
63
64
65
67

66 reserved.

68
72

69-71 reserved.

73
74
75
76
77
78
79
80

查看 56 的分配情况。

81
82
83
84
85
86
87
88
89
92

90-91 已预留。

93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
新增:29
109
新增:29
110
新增:29
111
新增:29
112
新增:29
113
新增:29
116

114-115 已预留。

新增:29
117
新增:29
118
新增:29
119
新增:29
120
新增:29
121
新增:29
122
新增:29
123
新增:29
125

124 reserved.

新增:29
126
新增:29
128

127 个已预留。

新增:29
129
新增:29
256

我们将用于自身用途的预留值。

加入 BSS 时失败。

257

由于虚假的取消身份验证或取消关联,身份验证或关联失败。

258

连接尝试已取消

259

无法建立安全关联

260

无法发起 OWE 握手或无法从对等方接收公钥

新增:31
261

未收到来自对等方的 802.11 MAC 级确认。

添加:33
262

等待对等端发送管理响应帧时超时。

添加:33
263

收到来自对等网关的意外或无序响应。

添加:33
264

由于未指定的客户端、驱动程序或固件错误,连接尝试失败。

添加:33

WlanAccessCategory 严格执行

类型:uint32

在 fuchsia.wlan.ieee80211/fields.fidl 中定义

IEEE Std 802.11-2020 9.4.2.173

新增:13

名称值说明
1
2
3
4

WlanBand flexible

类型:uint8

在 fuchsia.wlan.ieee80211/fields.fidl 中定义

在各种操作的元数据中标识频段。

此枚举的使用示例包括标记扫描结果或报告各种频段的驱动程序功能。

注意:此枚举类似于 IEEE Std 802.11-2016 9.4.1.46 中定义的频段 ID 字段,但其值不同。

TODO(https://fxbug.dev/376442944):创建符合规范的频段 ID 类型,并迁移平台以使用该类型。

新增:26

名称值说明
0
1

WlanPhyType flexible

类型:uint32

在 fuchsia.wlan.ieee80211/fields.fidl 中定义

新增:32

名称值说明
1

IEEE 802.11-2016 第 15 条: 直接序列扩频 支持 1、2 Mbps。

2

IEEE 802.11-2016 第 16 条: 高速 DSSS 支持 5.5、11 Mbps。 也称为 ERP-CCK

3

IEEE 802.11a/g 或 IEEE 802.11-2016 第 17 条: 正交频分多路复用 支持 6、9、12、18、24、36、48 和 54 Mbps。

4

IEEE 802.11g 或 IEEE 802.11-2016 第 18 条: 扩展速率 PHY 支持 1、2、5.5、11、12、24 Mbps + 可选 6、54 Mbps。 涵盖 DSSS/HR/OFDM 速率和调制。

5

IEEE 802.11n 或 IEEE 802.11-2016 第 19 条: 高吞吐量 PHY 支持高达 495 Mbps 的速率。

6

802.11ad 或 IEEE 802.11-2016 第 20 条:定向多千兆位 PHY

7

IEEE 802.11ac 或 IEEE 802.11-2016 第 21 条: 超高吞吐量 PHY 支持高达 6.9 Gbps 的速率。

8

IEEE 802.11af 或 IEEE 802.11-2016 第 22 条: 电视超高吞吐量 PHY 在电视频谱中支持高达 568.9 Mbps 的速率

9

IEEE 802.11ah 或 IEEE 802.11-2020 第 23 条:1 GHz 以下 PHY

10

IEEE 802.11aj 或 IEEE 802.11-2020 第 24 条:中国定向多千兆 PHY

11

IEEE 802.11aj 或 IEEE 802.11-2020 第 25 条:中国毫米波多千兆位 PHY

12

IEEE 802.11ax:高效 PHY 支持高达 9.6 Gbps 的速率(哇!)

TABLES

SetKeyDescriptor

在 fuchsia.wlan.ieee80211/fields.fidl 中定义

IEEE Std 802.11-2020 6.3.19.1.2

新增:27

序数字段类型说明
key vector<uint8>:32

键值(以字节为单位)。 802.11 为此字段指定了一个位字符串,但为方便起见,我们将其表示为字节数组。 必填。

key_id uint16

轮替密钥(例如群组密钥)的索引。 对于不轮替的密钥类型(例如成对密钥),此值始终为 0。 必填。

key_type KeyType

此密钥是成对密钥、群组密钥还是对等密钥。 必填。

peer_addr MacAddr

成对密钥和对等密钥的对等 MAC 地址。 对于群组密钥,此值始终为广播地址。 必填。

rsc uint64

仅接收群组密钥的序列计数器。 在所有其他情况下,RSC 将为 0。 可选。

cipher_oui array<uint8, 3>

IEEE 加密套件选择器。请参阅 IEEE Std 802.11-2016、9.4.2.25.2、表 9-131 必需。

cipher_type CipherSuiteType

密码类型。 必填。

常量

名称值类型说明
CCMP_128_MIC_LEN 8 uint32
CCMP_256_MIC_LEN 16 uint32
CCMP_HDR_LEN 8 uint32

IEEE Std 802.11-2016 12.5.3.2

CCMP_PN_LEN 6 uint32
HT_CAP_LEN 26 uint8
HT_OP_LEN 22 uint8
MAC_ADDR_LEN 6 uint8
MAX_KEY_LEN 32 uint8
新增:15
MAX_MESH_ID_BYTE_LEN 32 uint8

IEEE Std 802.11-2016, 9.4.2.99

MAX_MGMT_FRAME_MAC_HEADER_BYTE_LEN 28 uint8

IEEE Std 802.11-2016, 9.3.3.2

MAX_MMPDU_BYTE_LEN 2304 uint16

IEEE Std 802.11-2016, 9.2.4.7

MAX_SSID_BYTE_LEN 32 uint8

IEEE Std 802.11-2016, 9.4.2.2 SSID 的最大长度为 32 字节,即使 SSID 应使用 UTF-8 编码进行解释也是如此(请参阅表 9-135)。虽然 802.11 标准中的每个长度都以字节为单位,但此常量的名称中包含 BYTE 一词,以强调不应将其应用于 UTF-8 编码字符串的长度。

MAX_SUPPORTED_BASIC_RATES 12 uint8
新增:13
MAX_UNIQUE_CHANNEL_NUMBERS 256 uint16

唯一信道号列表中的信道数量上限为 256,因为 IEEE 802.11-2016 中的信道号不能超过一个八位字节。如需查看假定信道编号不超过一个八位字节的示例元素,请参阅 IEEE 802.11-2016 9.4.2.18 支持的信道元素。

MAX_VHT_MPDU_BYTE_LEN_0 3895 uint16
MAX_VHT_MPDU_BYTE_LEN_1 7991 uint16
MAX_VHT_MPDU_BYTE_LEN_2 11454 uint16
OUI_LEN 3 uint8
新增:15
SSID_LIST_MAX 84 uint8

SSID 数量上限为 84,因为 SSID 列表 IE 最多只能包含 84 个单字节 SSID。(在包含多个 SSID 的 SSID 列表中指定零字节 SSID 是有效的,但没有必要,因为它是通配符 SSID。)

TIDS_MAX 16 uint32

IEEE Std 802.11-2016, 9.2.4.5

VHT_CAP_LEN 12 uint8
VHT_OP_LEN 5 uint8
WLAN_IE_BODY_MAX_LEN 255 uint32
WLAN_IE_MAX_LEN 257 uint32

IEEE Std 802.11-2016, 9.4.2.25.1 IEEE 在 RSN 元素部分中提到元素正文的最大长度为 255 个八位字节,但未在专用部分中提及。 由于 IE 标头为 2 个八位字节,因此整个 IE 的最大长度为 257 个八位字节。

WLAN_MSDU_MAX_LEN 2304 uint32

IEEE Std 802.11-2016,表 9-19

别名

名称值说明
CapabilityInfo uint16

对应于 IEEE Std 802.11-2020 9.4.1.4 定义的功能信息字段。 其中包含指示对请求的功能或可选功能的支持的子字段。

TODO(https://fxbug.dev/367315525) 考虑将其设为位字段。

添加:HEAD
MacAddr array[MAC_ADDR_LEN]
Ssid vector[MAX_SSID_BYTE_LEN]