fuchsia.wlan.ieee80211

新增:7

STRUCTS

BssDescription

定義於 fuchsia.wlan.ieee80211/fields.fidl

與 IEEE Std 802.11-2020 6.3.3.3.2 定義的 BSSDescription 對應的類型

這種類型只包含 BSSDescription 經常需要的資訊明確欄位。所有其他欄位都會保留在 IE 的原始緩衝區中,如從 AP 廣告中接收到的內容,例如從信標或探測回應框架。

加入 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 無預設值

ENUMS

BssType flexible

類型:uint32

定義於 fuchsia.wlan.ieee80211/fields.fidl

新增:32

名稱值說明
0
1
2
3
4

ChannelBandwidth 彈性

類型: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 彈性

類型: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 彈性

類型: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, Table 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

23 在 802.11-2016 中名為「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

38 在 802.11-2016 中指派給多個名稱「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 彈性

類型:uint16

定義於 fuchsia.wlan.ieee80211/status_code.fidl

802.11 狀態碼。這些值在整個標準中都很常見。IEEE Std 802.11-2016, 9.4.1.9, Table 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 reserved.

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

56 在 802.11-2016 中指派給「REQUESTED_TCLAS_NOT_SUPPORTED_BY_AP」,與 80 重複。以下名稱與 802.11 Assigned Numbers Authority 資料庫中的名稱相同。

57
58
59
60
61
62
63
64
65
67

66 個預留。

68
72

69-71 保留。

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 個保留。

新增: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 strict

類型:uint32

定義於 fuchsia.wlan.ieee80211/fields.fidl

IEEE Std 802.11-2020 9.4.2.173

新增:13

名稱值說明
1
2
3
4

WlanBand 彈性

類型: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 彈性

類型: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 條: Extended Rate 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 條:中國毫米波多 Gigabit 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 個 1 位元組 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 標頭為兩個八位元組,因此整個 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) Consider making this a bitfield.

新增:HEAD
MacAddr array[MAC_ADDR_LEN]
Ssid vector[MAX_SSID_BYTE_LEN]