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