xref: /freebsd/sys/compat/linuxkpi/common/include/linux/nl80211.h (revision 6b4cac814e32f3b307720d6b880939fb1f21f3ac)
1*6b4cac81SBjoern A. Zeeb /*-
2*6b4cac81SBjoern A. Zeeb  * Copyright (c) 2020-2021 The FreeBSD Foundation
3*6b4cac81SBjoern A. Zeeb  *
4*6b4cac81SBjoern A. Zeeb  * This software was developed by Björn Zeeb under sponsorship from
5*6b4cac81SBjoern A. Zeeb  * the FreeBSD Foundation.
6*6b4cac81SBjoern A. Zeeb  *
7*6b4cac81SBjoern A. Zeeb  * Redistribution and use in source and binary forms, with or without
8*6b4cac81SBjoern A. Zeeb  * modification, are permitted provided that the following conditions
9*6b4cac81SBjoern A. Zeeb  * are met:
10*6b4cac81SBjoern A. Zeeb  * 1. Redistributions of source code must retain the above copyright
11*6b4cac81SBjoern A. Zeeb  *    notice, this list of conditions and the following disclaimer.
12*6b4cac81SBjoern A. Zeeb  * 2. Redistributions in binary form must reproduce the above copyright
13*6b4cac81SBjoern A. Zeeb  *    notice, this list of conditions and the following disclaimer in the
14*6b4cac81SBjoern A. Zeeb  *    documentation and/or other materials provided with the distribution.
15*6b4cac81SBjoern A. Zeeb  *
16*6b4cac81SBjoern A. Zeeb  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17*6b4cac81SBjoern A. Zeeb  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18*6b4cac81SBjoern A. Zeeb  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19*6b4cac81SBjoern A. Zeeb  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20*6b4cac81SBjoern A. Zeeb  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21*6b4cac81SBjoern A. Zeeb  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22*6b4cac81SBjoern A. Zeeb  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23*6b4cac81SBjoern A. Zeeb  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24*6b4cac81SBjoern A. Zeeb  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25*6b4cac81SBjoern A. Zeeb  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26*6b4cac81SBjoern A. Zeeb  * SUCH DAMAGE.
27*6b4cac81SBjoern A. Zeeb  *
28*6b4cac81SBjoern A. Zeeb  * $FreeBSD$
29*6b4cac81SBjoern A. Zeeb  */
30*6b4cac81SBjoern A. Zeeb 
31*6b4cac81SBjoern A. Zeeb #ifndef	_LINUXKPI_LINUX_NL80211_H
32*6b4cac81SBjoern A. Zeeb #define	_LINUXKPI_LINUX_NL80211_H
33*6b4cac81SBjoern A. Zeeb 
34*6b4cac81SBjoern A. Zeeb #include <linux/bitops.h>
35*6b4cac81SBjoern A. Zeeb 
36*6b4cac81SBjoern A. Zeeb enum nl80211_feature_flags {
37*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE	= BIT(0),
38*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES	= BIT(1),
39*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_HT_IBSS				= BIT(2),
40*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_LOW_PRIORITY_SCAN		= BIT(3),
41*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_ND_RANDOM_MAC_ADDR		= BIT(4),
42*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_P2P_GO_CTWIN			= BIT(5),
43*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_P2P_GO_OPPPS			= BIT(6),
44*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_QUIET				= BIT(7),
45*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR		= BIT(8),
46*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR	= BIT(9),
47*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_DYNAMIC_SMPS			= BIT(10),
48*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_STATIC_SMPS			= BIT(11),
49*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_SUPPORTS_WMM_ADMISSION		= BIT(12),
50*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_TDLS_CHANNEL_SWITCH		= BIT(13),
51*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_TX_POWER_INSERTION		= BIT(14),
52*6b4cac81SBjoern A. Zeeb 	NL80211_FEATURE_WFA_TPC_IE_IN_PROBES		= BIT(15),
53*6b4cac81SBjoern A. Zeeb };
54*6b4cac81SBjoern A. Zeeb 
55*6b4cac81SBjoern A. Zeeb enum nl80211_pmsr_ftm_failure_flags {
56*6b4cac81SBjoern A. Zeeb 	NL80211_PMSR_FTM_FAILURE_NO_RESPONSE		= BIT(0),
57*6b4cac81SBjoern A. Zeeb 	NL80211_PMSR_FTM_FAILURE_PEER_BUSY		= BIT(1),
58*6b4cac81SBjoern A. Zeeb 	NL80211_PMSR_FTM_FAILURE_UNSPECIFIED		= BIT(2),
59*6b4cac81SBjoern A. Zeeb };
60*6b4cac81SBjoern A. Zeeb 
61*6b4cac81SBjoern A. Zeeb enum nl80211_pmsr_status_flags {
62*6b4cac81SBjoern A. Zeeb 	NL80211_PMSR_STATUS_FAILURE			= BIT(0),
63*6b4cac81SBjoern A. Zeeb 	NL80211_PMSR_STATUS_SUCCESS			= BIT(1),
64*6b4cac81SBjoern A. Zeeb 	NL80211_PMSR_STATUS_TIMEOUT			= BIT(2),
65*6b4cac81SBjoern A. Zeeb };
66*6b4cac81SBjoern A. Zeeb 
67*6b4cac81SBjoern A. Zeeb #define	NL80211_PMSR_TYPE_FTM				1
68*6b4cac81SBjoern A. Zeeb 
69*6b4cac81SBjoern A. Zeeb enum nl80211_reg_rule_flags {
70*6b4cac81SBjoern A. Zeeb 	NL80211_RRF_AUTO_BW				= BIT(0),
71*6b4cac81SBjoern A. Zeeb 	NL80211_RRF_DFS					= BIT(1),
72*6b4cac81SBjoern A. Zeeb 	NL80211_RRF_GO_CONCURRENT			= BIT(2),
73*6b4cac81SBjoern A. Zeeb 	NL80211_RRF_NO_IR				= BIT(3),
74*6b4cac81SBjoern A. Zeeb 	NL80211_RRF_NO_OUTDOOR				= BIT(4),
75*6b4cac81SBjoern A. Zeeb 	NL80211_RRF_NO_HT40MINUS			= BIT(5),
76*6b4cac81SBjoern A. Zeeb 	NL80211_RRF_NO_HT40PLUS				= BIT(6),
77*6b4cac81SBjoern A. Zeeb 	NL80211_RRF_NO_80MHZ				= BIT(7),
78*6b4cac81SBjoern A. Zeeb 	NL80211_RRF_NO_160MHZ				= BIT(8),
79*6b4cac81SBjoern A. Zeeb 	NL80211_RRF_NO_HE				= BIT(9),
80*6b4cac81SBjoern A. Zeeb };
81*6b4cac81SBjoern A. Zeeb #define	NL80211_RRF_NO_HT40	(NL80211_RRF_NO_HT40MINUS|NL80211_RRF_NO_HT40PLUS)
82*6b4cac81SBjoern A. Zeeb 
83*6b4cac81SBjoern A. Zeeb enum nl80211_scan_flags {
84*6b4cac81SBjoern A. Zeeb 	NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME		= BIT(0),
85*6b4cac81SBjoern A. Zeeb 	NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION	= BIT(1),
86*6b4cac81SBjoern A. Zeeb 	NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE	= BIT(2),
87*6b4cac81SBjoern A. Zeeb 	NL80211_SCAN_FLAG_RANDOM_ADDR			= BIT(3),
88*6b4cac81SBjoern A. Zeeb 	NL80211_SCAN_FLAG_COLOCATED_6GHZ		= BIT(4),
89*6b4cac81SBjoern A. Zeeb };
90*6b4cac81SBjoern A. Zeeb 
91*6b4cac81SBjoern A. Zeeb #define	NL80211_REGDOM_SET_BY_USER			1
92*6b4cac81SBjoern A. Zeeb #define	NL80211_REGDOM_SET_BY_DRIVER			2
93*6b4cac81SBjoern A. Zeeb 
94*6b4cac81SBjoern A. Zeeb #define	NL80211_MAX_SUPP_REG_RULES			512	/* TODO FIXME, random */
95*6b4cac81SBjoern A. Zeeb 
96*6b4cac81SBjoern A. Zeeb #define	NL80211_BSS_CHAN_WIDTH_20			__LINE__ /* TODO FIXME, brcmfmac */
97*6b4cac81SBjoern A. Zeeb 
98*6b4cac81SBjoern A. Zeeb enum nl80211_wpa_versions {
99*6b4cac81SBjoern A. Zeeb 	NL80211_WPA_VERSION_1	= 1,
100*6b4cac81SBjoern A. Zeeb 	NL80211_WPA_VERSION_2,
101*6b4cac81SBjoern A. Zeeb 	NL80211_WPA_VERSION_3,
102*6b4cac81SBjoern A. Zeeb };
103*6b4cac81SBjoern A. Zeeb 
104*6b4cac81SBjoern A. Zeeb enum nl80211_bss_select_attr {
105*6b4cac81SBjoern A. Zeeb 	__NL80211_BSS_SELECT_ATTR_INVALID	= 0,
106*6b4cac81SBjoern A. Zeeb 	NL80211_BSS_SELECT_ATTR_BAND_PREF,
107*6b4cac81SBjoern A. Zeeb 	NL80211_BSS_SELECT_ATTR_RSSI,
108*6b4cac81SBjoern A. Zeeb 	NL80211_BSS_SELECT_ATTR_RSSI_ADJUST,
109*6b4cac81SBjoern A. Zeeb };
110*6b4cac81SBjoern A. Zeeb 
111*6b4cac81SBjoern A. Zeeb enum nl80211_sta_flag {
112*6b4cac81SBjoern A. Zeeb 	/* XXX TODO */
113*6b4cac81SBjoern A. Zeeb 	NL80211_STA_FLAG_ASSOCIATED,
114*6b4cac81SBjoern A. Zeeb 	NL80211_STA_FLAG_AUTHENTICATED,
115*6b4cac81SBjoern A. Zeeb 	NL80211_STA_FLAG_AUTHORIZED,
116*6b4cac81SBjoern A. Zeeb 	NL80211_STA_FLAG_TDLS_PEER,
117*6b4cac81SBjoern A. Zeeb 	NL80211_STA_FLAG_WME,
118*6b4cac81SBjoern A. Zeeb };
119*6b4cac81SBjoern A. Zeeb 
120*6b4cac81SBjoern A. Zeeb enum nl80211_band {
121*6b4cac81SBjoern A. Zeeb 	/* XXX TODO */
122*6b4cac81SBjoern A. Zeeb 	NL80211_BAND_2GHZ	= 0,
123*6b4cac81SBjoern A. Zeeb 	NL80211_BAND_5GHZ,
124*6b4cac81SBjoern A. Zeeb 	NL80211_BAND_60GHZ,
125*6b4cac81SBjoern A. Zeeb 	NL80211_BAND_6GHZ,
126*6b4cac81SBjoern A. Zeeb 
127*6b4cac81SBjoern A. Zeeb 	/* Keep this last. */
128*6b4cac81SBjoern A. Zeeb 	NUM_NL80211_BANDS
129*6b4cac81SBjoern A. Zeeb };
130*6b4cac81SBjoern A. Zeeb 
131*6b4cac81SBjoern A. Zeeb enum nl80211_chan_flags {
132*6b4cac81SBjoern A. Zeeb 	/* XXX TODO */
133*6b4cac81SBjoern A. Zeeb 	NL80211_CHAN_NO_HT,
134*6b4cac81SBjoern A. Zeeb };
135*6b4cac81SBjoern A. Zeeb 
136*6b4cac81SBjoern A. Zeeb enum nl80211_chan_width {
137*6b4cac81SBjoern A. Zeeb 	/* XXX TODO */
138*6b4cac81SBjoern A. Zeeb 	NL80211_CHAN_WIDTH_20_NOHT,
139*6b4cac81SBjoern A. Zeeb 	NL80211_CHAN_WIDTH_20,
140*6b4cac81SBjoern A. Zeeb 	NL80211_CHAN_WIDTH_40,
141*6b4cac81SBjoern A. Zeeb 	NL80211_CHAN_WIDTH_80,
142*6b4cac81SBjoern A. Zeeb 	NL80211_CHAN_WIDTH_80P80,
143*6b4cac81SBjoern A. Zeeb 	NL80211_CHAN_WIDTH_160,
144*6b4cac81SBjoern A. Zeeb 	NL80211_CHAN_WIDTH_5,
145*6b4cac81SBjoern A. Zeeb 	NL80211_CHAN_WIDTH_10,
146*6b4cac81SBjoern A. Zeeb };
147*6b4cac81SBjoern A. Zeeb 
148*6b4cac81SBjoern A. Zeeb enum nl80211_iftype {
149*6b4cac81SBjoern A. Zeeb 	/* XXX TODO */
150*6b4cac81SBjoern A. Zeeb 	NL80211_IFTYPE_UNSPECIFIED,
151*6b4cac81SBjoern A. Zeeb 	NL80211_IFTYPE_ADHOC,
152*6b4cac81SBjoern A. Zeeb 	NL80211_IFTYPE_STATION,
153*6b4cac81SBjoern A. Zeeb 	NL80211_IFTYPE_AP,
154*6b4cac81SBjoern A. Zeeb 	NL80211_IFTYPE_AP_VLAN,
155*6b4cac81SBjoern A. Zeeb 	NL80211_IFTYPE_MONITOR,
156*6b4cac81SBjoern A. Zeeb 	NL80211_IFTYPE_P2P_CLIENT,
157*6b4cac81SBjoern A. Zeeb 	NL80211_IFTYPE_P2P_DEVICE,
158*6b4cac81SBjoern A. Zeeb 	NL80211_IFTYPE_P2P_GO,
159*6b4cac81SBjoern A. Zeeb 	NL80211_IFTYPE_MESH_POINT,
160*6b4cac81SBjoern A. Zeeb 	NL80211_IFTYPE_WDS,
161*6b4cac81SBjoern A. Zeeb 
162*6b4cac81SBjoern A. Zeeb 	/* Keep this last. */
163*6b4cac81SBjoern A. Zeeb 	NUM_NL80211_IFTYPES
164*6b4cac81SBjoern A. Zeeb };
165*6b4cac81SBjoern A. Zeeb 
166*6b4cac81SBjoern A. Zeeb enum nl80211_preamble {
167*6b4cac81SBjoern A. Zeeb 	/* XXX TODO */
168*6b4cac81SBjoern A. Zeeb 	NL80211_PREAMBLE_LEGACY,
169*6b4cac81SBjoern A. Zeeb 	NL80211_PREAMBLE_HT,
170*6b4cac81SBjoern A. Zeeb 	NL80211_PREAMBLE_VHT,
171*6b4cac81SBjoern A. Zeeb 	NL80211_PREAMBLE_HE,
172*6b4cac81SBjoern A. Zeeb };
173*6b4cac81SBjoern A. Zeeb 
174*6b4cac81SBjoern A. Zeeb enum nl80211_tdls_operation {
175*6b4cac81SBjoern A. Zeeb 	/* XXX TODO */
176*6b4cac81SBjoern A. Zeeb 	NL80211_TDLS_SETUP,
177*6b4cac81SBjoern A. Zeeb 	NL80211_TDLS_TEARDOWN,
178*6b4cac81SBjoern A. Zeeb 	NL80211_TDLS_ENABLE_LINK,
179*6b4cac81SBjoern A. Zeeb 	NL80211_TDLS_DISABLE_LINK,
180*6b4cac81SBjoern A. Zeeb 	NL80211_TDLS_DISCOVERY_REQ,
181*6b4cac81SBjoern A. Zeeb 	NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY,
182*6b4cac81SBjoern A. Zeeb 	NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY,
183*6b4cac81SBjoern A. Zeeb };
184*6b4cac81SBjoern A. Zeeb 
185*6b4cac81SBjoern A. Zeeb enum nl80211_cqm_rssi_threshold_event {
186*6b4cac81SBjoern A. Zeeb 	/* XXX TODO */
187*6b4cac81SBjoern A. Zeeb 	NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW,
188*6b4cac81SBjoern A. Zeeb 	NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH,
189*6b4cac81SBjoern A. Zeeb };
190*6b4cac81SBjoern A. Zeeb 
191*6b4cac81SBjoern A. Zeeb enum nl80211_ext_feature {
192*6b4cac81SBjoern A. Zeeb 	/* XXX TODO */
193*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP,
194*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_BSS_PARENT_TSF,
195*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_CAN_REPLACE_PTK0,
196*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_DFS_OFFLOAD,
197*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER,
198*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_EXT_KEY_ID,
199*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME,
200*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER,
201*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION,
202*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE,
203*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_PROTECTED_TWT,
204*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_SAE_OFFLOAD,
205*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_SCAN_START_TIME,
206*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_SET_SCAN_DWELL,
207*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_VHT_IBSS,
208*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X,
209*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK,
210*6b4cac81SBjoern A. Zeeb 	NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT,
211*6b4cac81SBjoern A. Zeeb 
212*6b4cac81SBjoern A. Zeeb 	/* Keep this last. */
213*6b4cac81SBjoern A. Zeeb 	NUM_NL80211_EXT_FEATURES
214*6b4cac81SBjoern A. Zeeb };
215*6b4cac81SBjoern A. Zeeb 
216*6b4cac81SBjoern A. Zeeb enum nl80211_sta_info {
217*6b4cac81SBjoern A. Zeeb 	/* XXX TODO */
218*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_BEACON_RX,
219*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_BEACON_SIGNAL_AVG,
220*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_BSS_PARAM,
221*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_CHAIN_SIGNAL,
222*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_CONNECTED_TIME,
223*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_INACTIVE_TIME,
224*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_SIGNAL,
225*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_SIGNAL_AVG,
226*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_STA_FLAGS,
227*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_RX_BITRATE,
228*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_RX_PACKETS,
229*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_RX_BYTES,
230*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_RX_DROP_MISC,
231*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_TX_BITRATE,
232*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_TX_PACKETS,
233*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_TX_BYTES,
234*6b4cac81SBjoern A. Zeeb 	NL80211_STA_INFO_TX_FAILED,
235*6b4cac81SBjoern A. Zeeb };
236*6b4cac81SBjoern A. Zeeb 
237*6b4cac81SBjoern A. Zeeb enum nl80211_ftm_stats {
238*6b4cac81SBjoern A. Zeeb 	/* XXX TODO */
239*6b4cac81SBjoern A. Zeeb 	NL80211_FTM_STATS_ASAP_NUM,
240*6b4cac81SBjoern A. Zeeb 	NL80211_FTM_STATS_FAILED_NUM,
241*6b4cac81SBjoern A. Zeeb 	NL80211_FTM_STATS_NON_ASAP_NUM,
242*6b4cac81SBjoern A. Zeeb 	NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM,
243*6b4cac81SBjoern A. Zeeb 	NL80211_FTM_STATS_PARTIAL_NUM,
244*6b4cac81SBjoern A. Zeeb 	NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM,
245*6b4cac81SBjoern A. Zeeb 	NL80211_FTM_STATS_SUCCESS_NUM,
246*6b4cac81SBjoern A. Zeeb 	NL80211_FTM_STATS_TOTAL_DURATION_MSEC,
247*6b4cac81SBjoern A. Zeeb 	NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM,
248*6b4cac81SBjoern A. Zeeb };
249*6b4cac81SBjoern A. Zeeb 
250*6b4cac81SBjoern A. Zeeb enum nl80211_reg_initiator {
251*6b4cac81SBjoern A. Zeeb 	/* XXX TODO */
252*6b4cac81SBjoern A. Zeeb 	_XXX_FXIME_RTW88_USES_ENUM,
253*6b4cac81SBjoern A. Zeeb };
254*6b4cac81SBjoern A. Zeeb 
255*6b4cac81SBjoern A. Zeeb struct nl80211_sta_flag_update {
256*6b4cac81SBjoern A. Zeeb 	/* XXX TODO */
257*6b4cac81SBjoern A. Zeeb 	int     mask, set;
258*6b4cac81SBjoern A. Zeeb 
259*6b4cac81SBjoern A. Zeeb };
260*6b4cac81SBjoern A. Zeeb 
261*6b4cac81SBjoern A. Zeeb enum nl80211_tx_power_setting {
262*6b4cac81SBjoern A. Zeeb 	/* XXX TODO */
263*6b4cac81SBjoern A. Zeeb 	NL80211_TX_POWER_AUTOMATIC,
264*6b4cac81SBjoern A. Zeeb 	NL80211_TX_POWER_FIXED,
265*6b4cac81SBjoern A. Zeeb 	NL80211_TX_POWER_LIMITED,
266*6b4cac81SBjoern A. Zeeb };
267*6b4cac81SBjoern A. Zeeb 
268*6b4cac81SBjoern A. Zeeb enum nl80211_crit_proto_id {
269*6b4cac81SBjoern A. Zeeb 	/* XXX TODO */
270*6b4cac81SBjoern A. Zeeb 	NL80211_CRIT_PROTO_DHCP,
271*6b4cac81SBjoern A. Zeeb };
272*6b4cac81SBjoern A. Zeeb 
273*6b4cac81SBjoern A. Zeeb enum nl80211_auth_type {
274*6b4cac81SBjoern A. Zeeb 	NL80211_AUTHTYPE_AUTOMATIC,
275*6b4cac81SBjoern A. Zeeb 	NL80211_AUTHTYPE_OPEN_SYSTEM,
276*6b4cac81SBjoern A. Zeeb 	NL80211_AUTHTYPE_SHARED_KEY,
277*6b4cac81SBjoern A. Zeeb 	NL80211_AUTHTYPE_SAE,
278*6b4cac81SBjoern A. Zeeb };
279*6b4cac81SBjoern A. Zeeb 
280*6b4cac81SBjoern A. Zeeb enum nl80211_key_type {
281*6b4cac81SBjoern A. Zeeb 	NL80211_KEYTYPE_GROUP,
282*6b4cac81SBjoern A. Zeeb 	NL80211_KEYTYPE_PAIRWISE,
283*6b4cac81SBjoern A. Zeeb };
284*6b4cac81SBjoern A. Zeeb 
285*6b4cac81SBjoern A. Zeeb enum nl80211_rate_info_he_ru_alloc {
286*6b4cac81SBjoern A. Zeeb 	NL80211_RATE_INFO_HE_RU_ALLOC_26,
287*6b4cac81SBjoern A. Zeeb 	NL80211_RATE_INFO_HE_RU_ALLOC_52,
288*6b4cac81SBjoern A. Zeeb 	NL80211_RATE_INFO_HE_RU_ALLOC_106,
289*6b4cac81SBjoern A. Zeeb 	NL80211_RATE_INFO_HE_RU_ALLOC_242,
290*6b4cac81SBjoern A. Zeeb 	NL80211_RATE_INFO_HE_RU_ALLOC_484,
291*6b4cac81SBjoern A. Zeeb 	NL80211_RATE_INFO_HE_RU_ALLOC_996,
292*6b4cac81SBjoern A. Zeeb 	NL80211_RATE_INFO_HE_RU_ALLOC_2x996,
293*6b4cac81SBjoern A. Zeeb };
294*6b4cac81SBjoern A. Zeeb 
295*6b4cac81SBjoern A. Zeeb enum nl80211_rate_info_he_gi {
296*6b4cac81SBjoern A. Zeeb 	NL80211_RATE_INFO_HE_GI_0_8,
297*6b4cac81SBjoern A. Zeeb 	NL80211_RATE_INFO_HE_GI_1_6,
298*6b4cac81SBjoern A. Zeeb 	NL80211_RATE_INFO_HE_GI_3_2,
299*6b4cac81SBjoern A. Zeeb };
300*6b4cac81SBjoern A. Zeeb 
301*6b4cac81SBjoern A. Zeeb enum nl80211_dfs_regions {
302*6b4cac81SBjoern A. Zeeb 	NL80211_DFS_UNSET,
303*6b4cac81SBjoern A. Zeeb 	NL80211_DFS_FCC,
304*6b4cac81SBjoern A. Zeeb 	NL80211_DFS_ETSI,
305*6b4cac81SBjoern A. Zeeb 	NL80211_DFS_JP,
306*6b4cac81SBjoern A. Zeeb };
307*6b4cac81SBjoern A. Zeeb 
308*6b4cac81SBjoern A. Zeeb #endif	/* _LINUXKPI_LINUX_NL80211_H */
309