fuchsia.wlan.ieee80211

Added: 7

STRUCTS

BssDescription

Defined in fuchsia.wlan.ieee80211/fields.fidl

Type corresponding to a BSSDescription defined by IEEE Std 802.11-2020 6.3.3.3.2

This type only includes explicit fields for information frequently required from a BSSDescription. All other fields are left in a raw buffer of IEs as received in an advertisement from the AP, e.g., from a Beacon or Probe Response frame.

The inclusion of a raw buffer of IEs ensures this type always includes all the information an AP advertises, no matter the version of Fuchsia the advertisement was received in.

Added: HEAD

FieldTypeDescriptionDefault
bssid MacAddr No default
bss_type BssType No default
beacon_period uint16 No default
capability_info CapabilityInfo No default
ies vector<uint8>

Buffer of IEs as received in an advertisement. E.g., from a Beacon or Probe Response frame.

No default
channel WlanChannel

Channel information for this BSS.

No default
rssi_dbm int8

The running average of received signal strength indicator in units of dBm.

No default
snr_db int8

The running average of snr in units of dB.

No default

CSsid

Defined in fuchsia.wlan.ieee80211/fields.fidl

FieldTypeDescriptionDefault
len uint8 No default
data array<uint8, 32> No default

HtCapabilities

Defined in fuchsia.wlan.ieee80211/fields.fidl

FieldTypeDescriptionDefault
bytes array<uint8, 26> No default

HtOperation

Defined in fuchsia.wlan.ieee80211/fields.fidl

FieldTypeDescriptionDefault
bytes array<uint8, 22> No default

VhtCapabilities

Defined in fuchsia.wlan.ieee80211/fields.fidl

FieldTypeDescriptionDefault
bytes array<uint8, 12> No default

VhtOperation

Defined in fuchsia.wlan.ieee80211/fields.fidl

FieldTypeDescriptionDefault
bytes array<uint8, 5> No default

WlanChannel

Defined in fuchsia.wlan.ieee80211/channel.fidl

Channel information derived from the DSSS parameter set, HT operation, and VHT operation IEs, as well as the primary channel on which a frame is received.

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

Added: 28

FieldTypeDescriptionDefault
primary uint8 No default
cbw ChannelBandwidth No default
secondary80 uint8 No default

ENUMS

BssType flexible

Type: uint32

Defined in fuchsia.wlan.ieee80211/fields.fidl

Added: NEXT

NameValueDescription
0
1
2
3
4

ChannelBandwidth flexible

Type: uint32

Defined in fuchsia.wlan.ieee80211/channel.fidl

Channel width is derived from the HT operation and VHT operation IEs, or defaults to 20 MHz if not specified explicitly

IEEE Std 802.11-2016, Table 9-153 - HT/VHT Operation Information subfields

Added: 28

NameValueDescription
1
2
3
4
5
6

CipherSuiteType flexible

Type: uint32

Defined in fuchsia.wlan.ieee80211/rsn.fidl

IEEE Std 802.11-2016, 9.4.2.25.2

NameValueDescription
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14

GuardInterval strict

Type: uint8

Defined in fuchsia.wlan.ieee80211/fields.fidl

HT and VHT guard interval. See IEEE 802.11-2016 Table 19-1 and Table 21-1.

Added: NEXT

NameValueDescription
1
2

KeyType flexible

Type: uint8

Defined in fuchsia.wlan.ieee80211/fields.fidl

Added: 27

NameValueDescription
1
2
3
4

ReasonCode flexible

Type: uint16

Defined in fuchsia.wlan.ieee80211/reason_code.fidl

802.11 reason codes. These values are common throughout the standard. IEEE Std 802.11-2016, 9.4.1.7, Table 9-45

NameValueDescription
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

15 is named "4WAY_HANDSHAKE_TIMEOUT" in 802.11-2016.

16
17
18
19
20
21
22
23

23 is named "802_1_X_AUTH_FAILED" in 802.11-2016.

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

37 is assigned to multiple names "END_TS", "END_BA", and "END_DLS" in 802.11-2016.

38

38 is assigned to multiple names "UNKNOWN_TS" and "UNKNOWN_BA" in 802.11-2016.

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

Driver detected a stalled Rx path in FW.

130

Driver detected high wme rx error rate in FW.

Added: 16

StatusCode flexible

Type: uint16

Defined in fuchsia.wlan.ieee80211/status_code.fidl

802.11 status codes. These values are common throughout the standard. IEEE Std 802.11-2016, 9.4.1.9, Table 9-46

NameValueDescription
0
1
2
3
5

4 reserved.

6
7
10

8-9 reserved.

11
12
13
14
15
16
17
18
19
22

20-21 reserved.

23
24
25
27

26 reserved.

28
29
30
31
32
33
34
35
37

36 reserved.

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

56 is assigned to "REQUESTED_TCLAS_NOT_SUPPORTED_BY_AP" in 802.11-2016, duplicate with 80. Name below is as listed in the 802.11 Assigned Numbers Authority database.

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

See assignment for 56.

81
82
83
84
85
86
87
88
89
92

90-91 reserved.

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

114-115 reserved.

Added: 29
117
Added: 29
118
Added: 29
119
Added: 29
120
Added: 29
121
Added: 29
122
Added: 29
123
Added: 29
125

124 reserved.

Added: 29
126
Added: 29
128

127 reserved.

Added: 29
129
Added: 29
256

Reserved values we will use for our own purposes.

Failure when joining the BSS.

257

Authenticate or associate fails due to spurious deauth or diassoc.

258

Connect attempt is canceled

259

Failure establishing security association

260

Failure initiating OWE handshake or receiving public key from peer

Added: 31

WlanAccessCategory strict

Type: uint32

Defined in fuchsia.wlan.ieee80211/fields.fidl

IEEE Std 802.11-2020 9.4.2.173

Added: 13

NameValueDescription
1
2
3
4

WlanBand flexible

Type: uint8

Defined in fuchsia.wlan.ieee80211/fields.fidl

Identifies a frequency band in metadata of various operations.

Examples of this enum in use are labeling scan results or reporting a driver capabilities from various frequency bands.

NOTE: This enum is similar to the Band ID field defined in IEEE Std 802.11-2016 9.4.1.46, but its values are not the same.

TODO(https://fxbug.dev/376442944): Create a spec-compliant Band ID type and migrate the platform to use it.

Added: 26

NameValueDescription
0
1

WlanPhyType flexible

Type: uint32

Defined in fuchsia.wlan.ieee80211/fields.fidl

Added: NEXT

NameValueDescription
1

IEEE 802.11-2016 Clause 15: Direct Sequence Spread Spectrum Supports 1, 2 Mbps.

2

IEEE 802.11-2016 Clause 16: High Rate DSSS Supports 5.5, 11 Mbps. Also referred to as ERP-CCK

3

IEEE 802.11a/g or IEEE 802.11-2016 Clause 17: Orthogonal Frequency Division Multiplexing Supports 6, 9, 12, 18, 24, 36, 48, and 54 Mbps.

4

IEEE 802.11g or IEEE 802.11-2016 Clause 18: Extended Rate PHY Supports 1, 2, 5.5, 11, 12, 24 Mbps + optionally 6, 54 Mbps. Encompasses DSSS/HR/OFDM rates and modulation.

5

IEEE 802.11n or IEEE 802.11-2016 Clause 19: High Throughput PHY Supports rates up to 495 Mbps.

6

802.11ad or IEEE 802.11-2016 Clause 20: Directional Multi-Gigabit PHY

7

IEEE 802.11ac or IEEE 802.11-2016 Clause 21: Very High Throughput PHY Supports rates up to 6.9 Gbps.

8

IEEE 802.11af or IEEE 802.11-2016 Clause 22: Television Very High Throughput PHY Supports rates of up to 568.9 Mbps in TV spectrum

9

IEEE 802.11ah or IEEE 802.11-2020 Clause 23: Sub 1-GHz PHY

10

IEEE 802.11aj or IEEE 802.11-2020 Clause 24: China Directional Multi-Gigabit PHY

11

IEEE 802.11aj or IEEE 802.11-2020 Clause 25: China Millimeter-wave Multi-Gigabit PHY

12

IEEE 802.11ax: High Efficiency PHY Supports rates of up to 9.6 Gbps (whew!)

TABLES

SetKeyDescriptor

Defined in fuchsia.wlan.ieee80211/fields.fidl

IEEE Std 802.11-2020 6.3.19.1.2

Added: 27

OrdinalFieldTypeDescription
key vector<uint8>:32

The key value as bytes. 802.11 specifies a bit string for this field, but we represent it as a byte array for convenience. Required.

key_id uint16

Index for rotating keys, e.g. group keys. This value is always 0 for key types which aren't rotating, e.g. pairwise keys. Required.

key_type KeyType

Whether this key is a pairwise, group or peer key. Required.

peer_addr MacAddr

The peer MAC address for pairwise and peer keys. For group keys this value is always the broadcast address. Required.

rsc uint64

Receive Sequence Counter for group keys only. In all other cases the RSC will be 0. Optional.

cipher_oui array<uint8, 3>

IEEE Cipher suite selector. See IEEE Std 802.11-2016, 9.4.2.25.2, Table 9-131 Required.

cipher_type CipherSuiteType

The cipher type. Required.

CONSTANTS

NameValueTypeDescription
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
Added: 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 The maximum length of an SSID is 32 bytes, even when the SSID should be interpreted using UTF-8 encoding (see Table 9-135). While every length in the 802.11 standard is byte oriented, the word BYTE is included in the name of this constant to emphasize the importance that it not be applied to the length of a UTF-8 encoded string.

MAX_SUPPORTED_BASIC_RATES 12 uint8
Added: 13
MAX_UNIQUE_CHANNEL_NUMBERS 256 uint16

The limit on the number of channels in a list of unique channel numbers is 256 since a channel number in IEEE 802.11-2016 cannot exceed one octet. See IEEE 802.11-2016 9.4.2.18 Supported Channels element for an example element that assumes a channel number does not exceed one octet.

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
Added: 15
SSID_LIST_MAX 84 uint8

The limit on the number of SSIDs is 84 because an SSID List IE can contain no more than 84 one byte SSIDs. (Specifying a zero byte SSID in an SSID List with more than one SSID is valid but unnecessary since it is the wildcard 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 mentions that an element body maximum length is 255 octets in the RSN element section, but not in a dedicated section. Since the IE header is two octets, the whole IE max length is 257 octets.

WLAN_MSDU_MAX_LEN 2304 uint32

IEEE Std 802.11-2016, Table 9-19

ALIASES

NameValueDescription
CapabilityInfo uint16

Corresponds to the Capability Information field defined by IEEE Std 802.11-2020, 9.4.1.4. This contains subfields that indicate support for requested or optional capabilities.

TODO(https://fxbug.dev/367315525) Consider making this a bitfield.

Added: HEAD
MacAddr array[MAC_ADDR_LEN]
Ssid vector[MAX_SSID_BYTE_LEN]