Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef __LINUX_NL80211_H
     20 #define __LINUX_NL80211_H
     21 #include <linux/types.h>
     22 #define NL80211_GENL_NAME "nl80211"
     23 #define NL80211_MULTICAST_GROUP_CONFIG "config"
     24 #define NL80211_MULTICAST_GROUP_SCAN "scan"
     25 #define NL80211_MULTICAST_GROUP_REG "regulatory"
     26 #define NL80211_MULTICAST_GROUP_MLME "mlme"
     27 #define NL80211_MULTICAST_GROUP_VENDOR "vendor"
     28 #define NL80211_MULTICAST_GROUP_NAN "nan"
     29 #define NL80211_MULTICAST_GROUP_TESTMODE "testmode"
     30 enum nl80211_commands {
     31   NL80211_CMD_UNSPEC,
     32   NL80211_CMD_GET_WIPHY,
     33   NL80211_CMD_SET_WIPHY,
     34   NL80211_CMD_NEW_WIPHY,
     35   NL80211_CMD_DEL_WIPHY,
     36   NL80211_CMD_GET_INTERFACE,
     37   NL80211_CMD_SET_INTERFACE,
     38   NL80211_CMD_NEW_INTERFACE,
     39   NL80211_CMD_DEL_INTERFACE,
     40   NL80211_CMD_GET_KEY,
     41   NL80211_CMD_SET_KEY,
     42   NL80211_CMD_NEW_KEY,
     43   NL80211_CMD_DEL_KEY,
     44   NL80211_CMD_GET_BEACON,
     45   NL80211_CMD_SET_BEACON,
     46   NL80211_CMD_START_AP,
     47   NL80211_CMD_NEW_BEACON = NL80211_CMD_START_AP,
     48   NL80211_CMD_STOP_AP,
     49   NL80211_CMD_DEL_BEACON = NL80211_CMD_STOP_AP,
     50   NL80211_CMD_GET_STATION,
     51   NL80211_CMD_SET_STATION,
     52   NL80211_CMD_NEW_STATION,
     53   NL80211_CMD_DEL_STATION,
     54   NL80211_CMD_GET_MPATH,
     55   NL80211_CMD_SET_MPATH,
     56   NL80211_CMD_NEW_MPATH,
     57   NL80211_CMD_DEL_MPATH,
     58   NL80211_CMD_SET_BSS,
     59   NL80211_CMD_SET_REG,
     60   NL80211_CMD_REQ_SET_REG,
     61   NL80211_CMD_GET_MESH_CONFIG,
     62   NL80211_CMD_SET_MESH_CONFIG,
     63   NL80211_CMD_SET_MGMT_EXTRA_IE,
     64   NL80211_CMD_GET_REG,
     65   NL80211_CMD_GET_SCAN,
     66   NL80211_CMD_TRIGGER_SCAN,
     67   NL80211_CMD_NEW_SCAN_RESULTS,
     68   NL80211_CMD_SCAN_ABORTED,
     69   NL80211_CMD_REG_CHANGE,
     70   NL80211_CMD_AUTHENTICATE,
     71   NL80211_CMD_ASSOCIATE,
     72   NL80211_CMD_DEAUTHENTICATE,
     73   NL80211_CMD_DISASSOCIATE,
     74   NL80211_CMD_MICHAEL_MIC_FAILURE,
     75   NL80211_CMD_REG_BEACON_HINT,
     76   NL80211_CMD_JOIN_IBSS,
     77   NL80211_CMD_LEAVE_IBSS,
     78   NL80211_CMD_TESTMODE,
     79   NL80211_CMD_CONNECT,
     80   NL80211_CMD_ROAM,
     81   NL80211_CMD_DISCONNECT,
     82   NL80211_CMD_SET_WIPHY_NETNS,
     83   NL80211_CMD_GET_SURVEY,
     84   NL80211_CMD_NEW_SURVEY_RESULTS,
     85   NL80211_CMD_SET_PMKSA,
     86   NL80211_CMD_DEL_PMKSA,
     87   NL80211_CMD_FLUSH_PMKSA,
     88   NL80211_CMD_REMAIN_ON_CHANNEL,
     89   NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL,
     90   NL80211_CMD_SET_TX_BITRATE_MASK,
     91   NL80211_CMD_REGISTER_FRAME,
     92   NL80211_CMD_REGISTER_ACTION = NL80211_CMD_REGISTER_FRAME,
     93   NL80211_CMD_FRAME,
     94   NL80211_CMD_ACTION = NL80211_CMD_FRAME,
     95   NL80211_CMD_FRAME_TX_STATUS,
     96   NL80211_CMD_ACTION_TX_STATUS = NL80211_CMD_FRAME_TX_STATUS,
     97   NL80211_CMD_SET_POWER_SAVE,
     98   NL80211_CMD_GET_POWER_SAVE,
     99   NL80211_CMD_SET_CQM,
    100   NL80211_CMD_NOTIFY_CQM,
    101   NL80211_CMD_SET_CHANNEL,
    102   NL80211_CMD_SET_WDS_PEER,
    103   NL80211_CMD_FRAME_WAIT_CANCEL,
    104   NL80211_CMD_JOIN_MESH,
    105   NL80211_CMD_LEAVE_MESH,
    106   NL80211_CMD_UNPROT_DEAUTHENTICATE,
    107   NL80211_CMD_UNPROT_DISASSOCIATE,
    108   NL80211_CMD_NEW_PEER_CANDIDATE,
    109   NL80211_CMD_GET_WOWLAN,
    110   NL80211_CMD_SET_WOWLAN,
    111   NL80211_CMD_START_SCHED_SCAN,
    112   NL80211_CMD_STOP_SCHED_SCAN,
    113   NL80211_CMD_SCHED_SCAN_RESULTS,
    114   NL80211_CMD_SCHED_SCAN_STOPPED,
    115   NL80211_CMD_SET_REKEY_OFFLOAD,
    116   NL80211_CMD_PMKSA_CANDIDATE,
    117   NL80211_CMD_TDLS_OPER,
    118   NL80211_CMD_TDLS_MGMT,
    119   NL80211_CMD_UNEXPECTED_FRAME,
    120   NL80211_CMD_PROBE_CLIENT,
    121   NL80211_CMD_REGISTER_BEACONS,
    122   NL80211_CMD_UNEXPECTED_4ADDR_FRAME,
    123   NL80211_CMD_SET_NOACK_MAP,
    124   NL80211_CMD_CH_SWITCH_NOTIFY,
    125   NL80211_CMD_START_P2P_DEVICE,
    126   NL80211_CMD_STOP_P2P_DEVICE,
    127   NL80211_CMD_CONN_FAILED,
    128   NL80211_CMD_SET_MCAST_RATE,
    129   NL80211_CMD_SET_MAC_ACL,
    130   NL80211_CMD_RADAR_DETECT,
    131   NL80211_CMD_GET_PROTOCOL_FEATURES,
    132   NL80211_CMD_UPDATE_FT_IES,
    133   NL80211_CMD_FT_EVENT,
    134   NL80211_CMD_CRIT_PROTOCOL_START,
    135   NL80211_CMD_CRIT_PROTOCOL_STOP,
    136   NL80211_CMD_GET_COALESCE,
    137   NL80211_CMD_SET_COALESCE,
    138   NL80211_CMD_CHANNEL_SWITCH,
    139   NL80211_CMD_VENDOR,
    140   NL80211_CMD_SET_QOS_MAP,
    141   NL80211_CMD_ADD_TX_TS,
    142   NL80211_CMD_DEL_TX_TS,
    143   NL80211_CMD_GET_MPP,
    144   NL80211_CMD_JOIN_OCB,
    145   NL80211_CMD_LEAVE_OCB,
    146   NL80211_CMD_CH_SWITCH_STARTED_NOTIFY,
    147   NL80211_CMD_TDLS_CHANNEL_SWITCH,
    148   NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH,
    149   NL80211_CMD_WIPHY_REG_CHANGE,
    150   NL80211_CMD_ABORT_SCAN,
    151   NL80211_CMD_START_NAN,
    152   NL80211_CMD_STOP_NAN,
    153   NL80211_CMD_ADD_NAN_FUNCTION,
    154   NL80211_CMD_DEL_NAN_FUNCTION,
    155   NL80211_CMD_CHANGE_NAN_CONFIG,
    156   NL80211_CMD_NAN_MATCH,
    157   NL80211_CMD_SET_MULTICAST_TO_UNICAST,
    158   NL80211_CMD_UPDATE_CONNECT_PARAMS,
    159   NL80211_CMD_SET_PMK,
    160   NL80211_CMD_DEL_PMK,
    161   NL80211_CMD_PORT_AUTHORIZED,
    162   NL80211_CMD_RELOAD_REGDB,
    163   __NL80211_CMD_AFTER_LAST,
    164   NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1
    165 };
    166 #define NL80211_CMD_SET_BSS NL80211_CMD_SET_BSS
    167 #define NL80211_CMD_SET_MGMT_EXTRA_IE NL80211_CMD_SET_MGMT_EXTRA_IE
    168 #define NL80211_CMD_REG_CHANGE NL80211_CMD_REG_CHANGE
    169 #define NL80211_CMD_AUTHENTICATE NL80211_CMD_AUTHENTICATE
    170 #define NL80211_CMD_ASSOCIATE NL80211_CMD_ASSOCIATE
    171 #define NL80211_CMD_DEAUTHENTICATE NL80211_CMD_DEAUTHENTICATE
    172 #define NL80211_CMD_DISASSOCIATE NL80211_CMD_DISASSOCIATE
    173 #define NL80211_CMD_REG_BEACON_HINT NL80211_CMD_REG_BEACON_HINT
    174 #define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS
    175 #define NL80211_CMD_GET_MESH_PARAMS NL80211_CMD_GET_MESH_CONFIG
    176 #define NL80211_CMD_SET_MESH_PARAMS NL80211_CMD_SET_MESH_CONFIG
    177 #define NL80211_MESH_SETUP_VENDOR_PATH_SEL_IE NL80211_MESH_SETUP_IE
    178 enum nl80211_attrs {
    179   NL80211_ATTR_UNSPEC,
    180   NL80211_ATTR_WIPHY,
    181   NL80211_ATTR_WIPHY_NAME,
    182   NL80211_ATTR_IFINDEX,
    183   NL80211_ATTR_IFNAME,
    184   NL80211_ATTR_IFTYPE,
    185   NL80211_ATTR_MAC,
    186   NL80211_ATTR_KEY_DATA,
    187   NL80211_ATTR_KEY_IDX,
    188   NL80211_ATTR_KEY_CIPHER,
    189   NL80211_ATTR_KEY_SEQ,
    190   NL80211_ATTR_KEY_DEFAULT,
    191   NL80211_ATTR_BEACON_INTERVAL,
    192   NL80211_ATTR_DTIM_PERIOD,
    193   NL80211_ATTR_BEACON_HEAD,
    194   NL80211_ATTR_BEACON_TAIL,
    195   NL80211_ATTR_STA_AID,
    196   NL80211_ATTR_STA_FLAGS,
    197   NL80211_ATTR_STA_LISTEN_INTERVAL,
    198   NL80211_ATTR_STA_SUPPORTED_RATES,
    199   NL80211_ATTR_STA_VLAN,
    200   NL80211_ATTR_STA_INFO,
    201   NL80211_ATTR_WIPHY_BANDS,
    202   NL80211_ATTR_MNTR_FLAGS,
    203   NL80211_ATTR_MESH_ID,
    204   NL80211_ATTR_STA_PLINK_ACTION,
    205   NL80211_ATTR_MPATH_NEXT_HOP,
    206   NL80211_ATTR_MPATH_INFO,
    207   NL80211_ATTR_BSS_CTS_PROT,
    208   NL80211_ATTR_BSS_SHORT_PREAMBLE,
    209   NL80211_ATTR_BSS_SHORT_SLOT_TIME,
    210   NL80211_ATTR_HT_CAPABILITY,
    211   NL80211_ATTR_SUPPORTED_IFTYPES,
    212   NL80211_ATTR_REG_ALPHA2,
    213   NL80211_ATTR_REG_RULES,
    214   NL80211_ATTR_MESH_CONFIG,
    215   NL80211_ATTR_BSS_BASIC_RATES,
    216   NL80211_ATTR_WIPHY_TXQ_PARAMS,
    217   NL80211_ATTR_WIPHY_FREQ,
    218   NL80211_ATTR_WIPHY_CHANNEL_TYPE,
    219   NL80211_ATTR_KEY_DEFAULT_MGMT,
    220   NL80211_ATTR_MGMT_SUBTYPE,
    221   NL80211_ATTR_IE,
    222   NL80211_ATTR_MAX_NUM_SCAN_SSIDS,
    223   NL80211_ATTR_SCAN_FREQUENCIES,
    224   NL80211_ATTR_SCAN_SSIDS,
    225   NL80211_ATTR_GENERATION,
    226   NL80211_ATTR_BSS,
    227   NL80211_ATTR_REG_INITIATOR,
    228   NL80211_ATTR_REG_TYPE,
    229   NL80211_ATTR_SUPPORTED_COMMANDS,
    230   NL80211_ATTR_FRAME,
    231   NL80211_ATTR_SSID,
    232   NL80211_ATTR_AUTH_TYPE,
    233   NL80211_ATTR_REASON_CODE,
    234   NL80211_ATTR_KEY_TYPE,
    235   NL80211_ATTR_MAX_SCAN_IE_LEN,
    236   NL80211_ATTR_CIPHER_SUITES,
    237   NL80211_ATTR_FREQ_BEFORE,
    238   NL80211_ATTR_FREQ_AFTER,
    239   NL80211_ATTR_FREQ_FIXED,
    240   NL80211_ATTR_WIPHY_RETRY_SHORT,
    241   NL80211_ATTR_WIPHY_RETRY_LONG,
    242   NL80211_ATTR_WIPHY_FRAG_THRESHOLD,
    243   NL80211_ATTR_WIPHY_RTS_THRESHOLD,
    244   NL80211_ATTR_TIMED_OUT,
    245   NL80211_ATTR_USE_MFP,
    246   NL80211_ATTR_STA_FLAGS2,
    247   NL80211_ATTR_CONTROL_PORT,
    248   NL80211_ATTR_TESTDATA,
    249   NL80211_ATTR_PRIVACY,
    250   NL80211_ATTR_DISCONNECTED_BY_AP,
    251   NL80211_ATTR_STATUS_CODE,
    252   NL80211_ATTR_CIPHER_SUITES_PAIRWISE,
    253   NL80211_ATTR_CIPHER_SUITE_GROUP,
    254   NL80211_ATTR_WPA_VERSIONS,
    255   NL80211_ATTR_AKM_SUITES,
    256   NL80211_ATTR_REQ_IE,
    257   NL80211_ATTR_RESP_IE,
    258   NL80211_ATTR_PREV_BSSID,
    259   NL80211_ATTR_KEY,
    260   NL80211_ATTR_KEYS,
    261   NL80211_ATTR_PID,
    262   NL80211_ATTR_4ADDR,
    263   NL80211_ATTR_SURVEY_INFO,
    264   NL80211_ATTR_PMKID,
    265   NL80211_ATTR_MAX_NUM_PMKIDS,
    266   NL80211_ATTR_DURATION,
    267   NL80211_ATTR_COOKIE,
    268   NL80211_ATTR_WIPHY_COVERAGE_CLASS,
    269   NL80211_ATTR_TX_RATES,
    270   NL80211_ATTR_FRAME_MATCH,
    271   NL80211_ATTR_ACK,
    272   NL80211_ATTR_PS_STATE,
    273   NL80211_ATTR_CQM,
    274   NL80211_ATTR_LOCAL_STATE_CHANGE,
    275   NL80211_ATTR_AP_ISOLATE,
    276   NL80211_ATTR_WIPHY_TX_POWER_SETTING,
    277   NL80211_ATTR_WIPHY_TX_POWER_LEVEL,
    278   NL80211_ATTR_TX_FRAME_TYPES,
    279   NL80211_ATTR_RX_FRAME_TYPES,
    280   NL80211_ATTR_FRAME_TYPE,
    281   NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
    282   NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT,
    283   NL80211_ATTR_SUPPORT_IBSS_RSN,
    284   NL80211_ATTR_WIPHY_ANTENNA_TX,
    285   NL80211_ATTR_WIPHY_ANTENNA_RX,
    286   NL80211_ATTR_MCAST_RATE,
    287   NL80211_ATTR_OFFCHANNEL_TX_OK,
    288   NL80211_ATTR_BSS_HT_OPMODE,
    289   NL80211_ATTR_KEY_DEFAULT_TYPES,
    290   NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION,
    291   NL80211_ATTR_MESH_SETUP,
    292   NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX,
    293   NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX,
    294   NL80211_ATTR_SUPPORT_MESH_AUTH,
    295   NL80211_ATTR_STA_PLINK_STATE,
    296   NL80211_ATTR_WOWLAN_TRIGGERS,
    297   NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED,
    298   NL80211_ATTR_SCHED_SCAN_INTERVAL,
    299   NL80211_ATTR_INTERFACE_COMBINATIONS,
    300   NL80211_ATTR_SOFTWARE_IFTYPES,
    301   NL80211_ATTR_REKEY_DATA,
    302   NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS,
    303   NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN,
    304   NL80211_ATTR_SCAN_SUPP_RATES,
    305   NL80211_ATTR_HIDDEN_SSID,
    306   NL80211_ATTR_IE_PROBE_RESP,
    307   NL80211_ATTR_IE_ASSOC_RESP,
    308   NL80211_ATTR_STA_WME,
    309   NL80211_ATTR_SUPPORT_AP_UAPSD,
    310   NL80211_ATTR_ROAM_SUPPORT,
    311   NL80211_ATTR_SCHED_SCAN_MATCH,
    312   NL80211_ATTR_MAX_MATCH_SETS,
    313   NL80211_ATTR_PMKSA_CANDIDATE,
    314   NL80211_ATTR_TX_NO_CCK_RATE,
    315   NL80211_ATTR_TDLS_ACTION,
    316   NL80211_ATTR_TDLS_DIALOG_TOKEN,
    317   NL80211_ATTR_TDLS_OPERATION,
    318   NL80211_ATTR_TDLS_SUPPORT,
    319   NL80211_ATTR_TDLS_EXTERNAL_SETUP,
    320   NL80211_ATTR_DEVICE_AP_SME,
    321   NL80211_ATTR_DONT_WAIT_FOR_ACK,
    322   NL80211_ATTR_FEATURE_FLAGS,
    323   NL80211_ATTR_PROBE_RESP_OFFLOAD,
    324   NL80211_ATTR_PROBE_RESP,
    325   NL80211_ATTR_DFS_REGION,
    326   NL80211_ATTR_DISABLE_HT,
    327   NL80211_ATTR_HT_CAPABILITY_MASK,
    328   NL80211_ATTR_NOACK_MAP,
    329   NL80211_ATTR_INACTIVITY_TIMEOUT,
    330   NL80211_ATTR_RX_SIGNAL_DBM,
    331   NL80211_ATTR_BG_SCAN_PERIOD,
    332   NL80211_ATTR_WDEV,
    333   NL80211_ATTR_USER_REG_HINT_TYPE,
    334   NL80211_ATTR_CONN_FAILED_REASON,
    335   NL80211_ATTR_AUTH_DATA,
    336   NL80211_ATTR_VHT_CAPABILITY,
    337   NL80211_ATTR_SCAN_FLAGS,
    338   NL80211_ATTR_CHANNEL_WIDTH,
    339   NL80211_ATTR_CENTER_FREQ1,
    340   NL80211_ATTR_CENTER_FREQ2,
    341   NL80211_ATTR_P2P_CTWINDOW,
    342   NL80211_ATTR_P2P_OPPPS,
    343   NL80211_ATTR_LOCAL_MESH_POWER_MODE,
    344   NL80211_ATTR_ACL_POLICY,
    345   NL80211_ATTR_MAC_ADDRS,
    346   NL80211_ATTR_MAC_ACL_MAX,
    347   NL80211_ATTR_RADAR_EVENT,
    348   NL80211_ATTR_EXT_CAPA,
    349   NL80211_ATTR_EXT_CAPA_MASK,
    350   NL80211_ATTR_STA_CAPABILITY,
    351   NL80211_ATTR_STA_EXT_CAPABILITY,
    352   NL80211_ATTR_PROTOCOL_FEATURES,
    353   NL80211_ATTR_SPLIT_WIPHY_DUMP,
    354   NL80211_ATTR_DISABLE_VHT,
    355   NL80211_ATTR_VHT_CAPABILITY_MASK,
    356   NL80211_ATTR_MDID,
    357   NL80211_ATTR_IE_RIC,
    358   NL80211_ATTR_CRIT_PROT_ID,
    359   NL80211_ATTR_MAX_CRIT_PROT_DURATION,
    360   NL80211_ATTR_PEER_AID,
    361   NL80211_ATTR_COALESCE_RULE,
    362   NL80211_ATTR_CH_SWITCH_COUNT,
    363   NL80211_ATTR_CH_SWITCH_BLOCK_TX,
    364   NL80211_ATTR_CSA_IES,
    365   NL80211_ATTR_CSA_C_OFF_BEACON,
    366   NL80211_ATTR_CSA_C_OFF_PRESP,
    367   NL80211_ATTR_RXMGMT_FLAGS,
    368   NL80211_ATTR_STA_SUPPORTED_CHANNELS,
    369   NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES,
    370   NL80211_ATTR_HANDLE_DFS,
    371   NL80211_ATTR_SUPPORT_5_MHZ,
    372   NL80211_ATTR_SUPPORT_10_MHZ,
    373   NL80211_ATTR_OPMODE_NOTIF,
    374   NL80211_ATTR_VENDOR_ID,
    375   NL80211_ATTR_VENDOR_SUBCMD,
    376   NL80211_ATTR_VENDOR_DATA,
    377   NL80211_ATTR_VENDOR_EVENTS,
    378   NL80211_ATTR_QOS_MAP,
    379   NL80211_ATTR_MAC_HINT,
    380   NL80211_ATTR_WIPHY_FREQ_HINT,
    381   NL80211_ATTR_MAX_AP_ASSOC_STA,
    382   NL80211_ATTR_TDLS_PEER_CAPABILITY,
    383   NL80211_ATTR_SOCKET_OWNER,
    384   NL80211_ATTR_CSA_C_OFFSETS_TX,
    385   NL80211_ATTR_MAX_CSA_COUNTERS,
    386   NL80211_ATTR_TDLS_INITIATOR,
    387   NL80211_ATTR_USE_RRM,
    388   NL80211_ATTR_WIPHY_DYN_ACK,
    389   NL80211_ATTR_TSID,
    390   NL80211_ATTR_USER_PRIO,
    391   NL80211_ATTR_ADMITTED_TIME,
    392   NL80211_ATTR_SMPS_MODE,
    393   NL80211_ATTR_OPER_CLASS,
    394   NL80211_ATTR_MAC_MASK,
    395   NL80211_ATTR_WIPHY_SELF_MANAGED_REG,
    396   NL80211_ATTR_EXT_FEATURES,
    397   NL80211_ATTR_SURVEY_RADIO_STATS,
    398   NL80211_ATTR_NETNS_FD,
    399   NL80211_ATTR_SCHED_SCAN_DELAY,
    400   NL80211_ATTR_REG_INDOOR,
    401   NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS,
    402   NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL,
    403   NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS,
    404   NL80211_ATTR_SCHED_SCAN_PLANS,
    405   NL80211_ATTR_PBSS,
    406   NL80211_ATTR_BSS_SELECT,
    407   NL80211_ATTR_STA_SUPPORT_P2P_PS,
    408   NL80211_ATTR_PAD,
    409   NL80211_ATTR_IFTYPE_EXT_CAPA,
    410   NL80211_ATTR_MU_MIMO_GROUP_DATA,
    411   NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR,
    412   NL80211_ATTR_SCAN_START_TIME_TSF,
    413   NL80211_ATTR_SCAN_START_TIME_TSF_BSSID,
    414   NL80211_ATTR_MEASUREMENT_DURATION,
    415   NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY,
    416   NL80211_ATTR_MESH_PEER_AID,
    417   NL80211_ATTR_NAN_MASTER_PREF,
    418   NL80211_ATTR_BANDS,
    419   NL80211_ATTR_NAN_FUNC,
    420   NL80211_ATTR_NAN_MATCH,
    421   NL80211_ATTR_FILS_KEK,
    422   NL80211_ATTR_FILS_NONCES,
    423   NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED,
    424   NL80211_ATTR_BSSID,
    425   NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI,
    426   NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST,
    427   NL80211_ATTR_TIMEOUT_REASON,
    428   NL80211_ATTR_FILS_ERP_USERNAME,
    429   NL80211_ATTR_FILS_ERP_REALM,
    430   NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM,
    431   NL80211_ATTR_FILS_ERP_RRK,
    432   NL80211_ATTR_FILS_CACHE_ID,
    433   NL80211_ATTR_PMK,
    434   NL80211_ATTR_SCHED_SCAN_MULTI,
    435   NL80211_ATTR_SCHED_SCAN_MAX_REQS,
    436   NL80211_ATTR_WANT_1X_4WAY_HS,
    437   NL80211_ATTR_PMKR0_NAME,
    438   NL80211_ATTR_PORT_AUTHORIZED,
    439   __NL80211_ATTR_AFTER_LAST,
    440   NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST,
    441   NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
    442 };
    443 #define NL80211_ATTR_SCAN_GENERATION NL80211_ATTR_GENERATION
    444 #define NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG
    445 #define NL80211_ATTR_IFACE_SOCKET_OWNER NL80211_ATTR_SOCKET_OWNER
    446 #define NL80211_ATTR_SAE_DATA NL80211_ATTR_AUTH_DATA
    447 #define NL80211_CMD_CONNECT NL80211_CMD_CONNECT
    448 #define NL80211_ATTR_HT_CAPABILITY NL80211_ATTR_HT_CAPABILITY
    449 #define NL80211_ATTR_BSS_BASIC_RATES NL80211_ATTR_BSS_BASIC_RATES
    450 #define NL80211_ATTR_WIPHY_TXQ_PARAMS NL80211_ATTR_WIPHY_TXQ_PARAMS
    451 #define NL80211_ATTR_WIPHY_FREQ NL80211_ATTR_WIPHY_FREQ
    452 #define NL80211_ATTR_WIPHY_CHANNEL_TYPE NL80211_ATTR_WIPHY_CHANNEL_TYPE
    453 #define NL80211_ATTR_MGMT_SUBTYPE NL80211_ATTR_MGMT_SUBTYPE
    454 #define NL80211_ATTR_IE NL80211_ATTR_IE
    455 #define NL80211_ATTR_REG_INITIATOR NL80211_ATTR_REG_INITIATOR
    456 #define NL80211_ATTR_REG_TYPE NL80211_ATTR_REG_TYPE
    457 #define NL80211_ATTR_FRAME NL80211_ATTR_FRAME
    458 #define NL80211_ATTR_SSID NL80211_ATTR_SSID
    459 #define NL80211_ATTR_AUTH_TYPE NL80211_ATTR_AUTH_TYPE
    460 #define NL80211_ATTR_REASON_CODE NL80211_ATTR_REASON_CODE
    461 #define NL80211_ATTR_CIPHER_SUITES_PAIRWISE NL80211_ATTR_CIPHER_SUITES_PAIRWISE
    462 #define NL80211_ATTR_CIPHER_SUITE_GROUP NL80211_ATTR_CIPHER_SUITE_GROUP
    463 #define NL80211_ATTR_WPA_VERSIONS NL80211_ATTR_WPA_VERSIONS
    464 #define NL80211_ATTR_AKM_SUITES NL80211_ATTR_AKM_SUITES
    465 #define NL80211_ATTR_KEY NL80211_ATTR_KEY
    466 #define NL80211_ATTR_KEYS NL80211_ATTR_KEYS
    467 #define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS
    468 #define NL80211_MAX_SUPP_RATES 32
    469 #define NL80211_MAX_SUPP_HT_RATES 77
    470 #define NL80211_MAX_SUPP_REG_RULES 64
    471 #define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0
    472 #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16
    473 #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24
    474 #define NL80211_HT_CAPABILITY_LEN 26
    475 #define NL80211_VHT_CAPABILITY_LEN 12
    476 #define NL80211_MAX_NR_CIPHER_SUITES 5
    477 #define NL80211_MAX_NR_AKM_SUITES 2
    478 #define NL80211_MIN_REMAIN_ON_CHANNEL_TIME 10
    479 #define NL80211_SCAN_RSSI_THOLD_OFF - 300
    480 #define NL80211_CQM_TXE_MAX_INTVL 1800
    481 enum nl80211_iftype {
    482   NL80211_IFTYPE_UNSPECIFIED,
    483   NL80211_IFTYPE_ADHOC,
    484   NL80211_IFTYPE_STATION,
    485   NL80211_IFTYPE_AP,
    486   NL80211_IFTYPE_AP_VLAN,
    487   NL80211_IFTYPE_WDS,
    488   NL80211_IFTYPE_MONITOR,
    489   NL80211_IFTYPE_MESH_POINT,
    490   NL80211_IFTYPE_P2P_CLIENT,
    491   NL80211_IFTYPE_P2P_GO,
    492   NL80211_IFTYPE_P2P_DEVICE,
    493   NL80211_IFTYPE_OCB,
    494   NL80211_IFTYPE_NAN,
    495   NUM_NL80211_IFTYPES,
    496   NL80211_IFTYPE_MAX = NUM_NL80211_IFTYPES - 1
    497 };
    498 enum nl80211_sta_flags {
    499   __NL80211_STA_FLAG_INVALID,
    500   NL80211_STA_FLAG_AUTHORIZED,
    501   NL80211_STA_FLAG_SHORT_PREAMBLE,
    502   NL80211_STA_FLAG_WME,
    503   NL80211_STA_FLAG_MFP,
    504   NL80211_STA_FLAG_AUTHENTICATED,
    505   NL80211_STA_FLAG_TDLS_PEER,
    506   NL80211_STA_FLAG_ASSOCIATED,
    507   __NL80211_STA_FLAG_AFTER_LAST,
    508   NL80211_STA_FLAG_MAX = __NL80211_STA_FLAG_AFTER_LAST - 1
    509 };
    510 enum nl80211_sta_p2p_ps_status {
    511   NL80211_P2P_PS_UNSUPPORTED = 0,
    512   NL80211_P2P_PS_SUPPORTED,
    513   NUM_NL80211_P2P_PS_STATUS,
    514 };
    515 #define NL80211_STA_FLAG_MAX_OLD_API NL80211_STA_FLAG_TDLS_PEER
    516 struct nl80211_sta_flag_update {
    517   __u32 mask;
    518   __u32 set;
    519 } __attribute__((packed));
    520 enum nl80211_rate_info {
    521   __NL80211_RATE_INFO_INVALID,
    522   NL80211_RATE_INFO_BITRATE,
    523   NL80211_RATE_INFO_MCS,
    524   NL80211_RATE_INFO_40_MHZ_WIDTH,
    525   NL80211_RATE_INFO_SHORT_GI,
    526   NL80211_RATE_INFO_BITRATE32,
    527   NL80211_RATE_INFO_VHT_MCS,
    528   NL80211_RATE_INFO_VHT_NSS,
    529   NL80211_RATE_INFO_80_MHZ_WIDTH,
    530   NL80211_RATE_INFO_80P80_MHZ_WIDTH,
    531   NL80211_RATE_INFO_160_MHZ_WIDTH,
    532   NL80211_RATE_INFO_10_MHZ_WIDTH,
    533   NL80211_RATE_INFO_5_MHZ_WIDTH,
    534   __NL80211_RATE_INFO_AFTER_LAST,
    535   NL80211_RATE_INFO_MAX = __NL80211_RATE_INFO_AFTER_LAST - 1
    536 };
    537 enum nl80211_sta_bss_param {
    538   __NL80211_STA_BSS_PARAM_INVALID,
    539   NL80211_STA_BSS_PARAM_CTS_PROT,
    540   NL80211_STA_BSS_PARAM_SHORT_PREAMBLE,
    541   NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME,
    542   NL80211_STA_BSS_PARAM_DTIM_PERIOD,
    543   NL80211_STA_BSS_PARAM_BEACON_INTERVAL,
    544   __NL80211_STA_BSS_PARAM_AFTER_LAST,
    545   NL80211_STA_BSS_PARAM_MAX = __NL80211_STA_BSS_PARAM_AFTER_LAST - 1
    546 };
    547 enum nl80211_sta_info {
    548   __NL80211_STA_INFO_INVALID,
    549   NL80211_STA_INFO_INACTIVE_TIME,
    550   NL80211_STA_INFO_RX_BYTES,
    551   NL80211_STA_INFO_TX_BYTES,
    552   NL80211_STA_INFO_LLID,
    553   NL80211_STA_INFO_PLID,
    554   NL80211_STA_INFO_PLINK_STATE,
    555   NL80211_STA_INFO_SIGNAL,
    556   NL80211_STA_INFO_TX_BITRATE,
    557   NL80211_STA_INFO_RX_PACKETS,
    558   NL80211_STA_INFO_TX_PACKETS,
    559   NL80211_STA_INFO_TX_RETRIES,
    560   NL80211_STA_INFO_TX_FAILED,
    561   NL80211_STA_INFO_SIGNAL_AVG,
    562   NL80211_STA_INFO_RX_BITRATE,
    563   NL80211_STA_INFO_BSS_PARAM,
    564   NL80211_STA_INFO_CONNECTED_TIME,
    565   NL80211_STA_INFO_STA_FLAGS,
    566   NL80211_STA_INFO_BEACON_LOSS,
    567   NL80211_STA_INFO_T_OFFSET,
    568   NL80211_STA_INFO_LOCAL_PM,
    569   NL80211_STA_INFO_PEER_PM,
    570   NL80211_STA_INFO_NONPEER_PM,
    571   NL80211_STA_INFO_RX_BYTES64,
    572   NL80211_STA_INFO_TX_BYTES64,
    573   NL80211_STA_INFO_CHAIN_SIGNAL,
    574   NL80211_STA_INFO_CHAIN_SIGNAL_AVG,
    575   NL80211_STA_INFO_EXPECTED_THROUGHPUT,
    576   NL80211_STA_INFO_RX_DROP_MISC,
    577   NL80211_STA_INFO_BEACON_RX,
    578   NL80211_STA_INFO_BEACON_SIGNAL_AVG,
    579   NL80211_STA_INFO_TID_STATS,
    580   NL80211_STA_INFO_RX_DURATION,
    581   NL80211_STA_INFO_PAD,
    582   __NL80211_STA_INFO_AFTER_LAST,
    583   NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1
    584 };
    585 enum nl80211_tid_stats {
    586   __NL80211_TID_STATS_INVALID,
    587   NL80211_TID_STATS_RX_MSDU,
    588   NL80211_TID_STATS_TX_MSDU,
    589   NL80211_TID_STATS_TX_MSDU_RETRIES,
    590   NL80211_TID_STATS_TX_MSDU_FAILED,
    591   NL80211_TID_STATS_PAD,
    592   NUM_NL80211_TID_STATS,
    593   NL80211_TID_STATS_MAX = NUM_NL80211_TID_STATS - 1
    594 };
    595 enum nl80211_mpath_flags {
    596   NL80211_MPATH_FLAG_ACTIVE = 1 << 0,
    597   NL80211_MPATH_FLAG_RESOLVING = 1 << 1,
    598   NL80211_MPATH_FLAG_SN_VALID = 1 << 2,
    599   NL80211_MPATH_FLAG_FIXED = 1 << 3,
    600   NL80211_MPATH_FLAG_RESOLVED = 1 << 4,
    601 };
    602 enum nl80211_mpath_info {
    603   __NL80211_MPATH_INFO_INVALID,
    604   NL80211_MPATH_INFO_FRAME_QLEN,
    605   NL80211_MPATH_INFO_SN,
    606   NL80211_MPATH_INFO_METRIC,
    607   NL80211_MPATH_INFO_EXPTIME,
    608   NL80211_MPATH_INFO_FLAGS,
    609   NL80211_MPATH_INFO_DISCOVERY_TIMEOUT,
    610   NL80211_MPATH_INFO_DISCOVERY_RETRIES,
    611   __NL80211_MPATH_INFO_AFTER_LAST,
    612   NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1
    613 };
    614 enum nl80211_band_attr {
    615   __NL80211_BAND_ATTR_INVALID,
    616   NL80211_BAND_ATTR_FREQS,
    617   NL80211_BAND_ATTR_RATES,
    618   NL80211_BAND_ATTR_HT_MCS_SET,
    619   NL80211_BAND_ATTR_HT_CAPA,
    620   NL80211_BAND_ATTR_HT_AMPDU_FACTOR,
    621   NL80211_BAND_ATTR_HT_AMPDU_DENSITY,
    622   NL80211_BAND_ATTR_VHT_MCS_SET,
    623   NL80211_BAND_ATTR_VHT_CAPA,
    624   __NL80211_BAND_ATTR_AFTER_LAST,
    625   NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1
    626 };
    627 #define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA
    628 enum nl80211_frequency_attr {
    629   __NL80211_FREQUENCY_ATTR_INVALID,
    630   NL80211_FREQUENCY_ATTR_FREQ,
    631   NL80211_FREQUENCY_ATTR_DISABLED,
    632   NL80211_FREQUENCY_ATTR_NO_IR,
    633   __NL80211_FREQUENCY_ATTR_NO_IBSS,
    634   NL80211_FREQUENCY_ATTR_RADAR,
    635   NL80211_FREQUENCY_ATTR_MAX_TX_POWER,
    636   NL80211_FREQUENCY_ATTR_DFS_STATE,
    637   NL80211_FREQUENCY_ATTR_DFS_TIME,
    638   NL80211_FREQUENCY_ATTR_NO_HT40_MINUS,
    639   NL80211_FREQUENCY_ATTR_NO_HT40_PLUS,
    640   NL80211_FREQUENCY_ATTR_NO_80MHZ,
    641   NL80211_FREQUENCY_ATTR_NO_160MHZ,
    642   NL80211_FREQUENCY_ATTR_DFS_CAC_TIME,
    643   NL80211_FREQUENCY_ATTR_INDOOR_ONLY,
    644   NL80211_FREQUENCY_ATTR_IR_CONCURRENT,
    645   NL80211_FREQUENCY_ATTR_NO_20MHZ,
    646   NL80211_FREQUENCY_ATTR_NO_10MHZ,
    647   __NL80211_FREQUENCY_ATTR_AFTER_LAST,
    648   NL80211_FREQUENCY_ATTR_MAX = __NL80211_FREQUENCY_ATTR_AFTER_LAST - 1
    649 };
    650 #define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER
    651 #define NL80211_FREQUENCY_ATTR_PASSIVE_SCAN NL80211_FREQUENCY_ATTR_NO_IR
    652 #define NL80211_FREQUENCY_ATTR_NO_IBSS NL80211_FREQUENCY_ATTR_NO_IR
    653 #define NL80211_FREQUENCY_ATTR_NO_IR NL80211_FREQUENCY_ATTR_NO_IR
    654 #define NL80211_FREQUENCY_ATTR_GO_CONCURRENT NL80211_FREQUENCY_ATTR_IR_CONCURRENT
    655 enum nl80211_bitrate_attr {
    656   __NL80211_BITRATE_ATTR_INVALID,
    657   NL80211_BITRATE_ATTR_RATE,
    658   NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE,
    659   __NL80211_BITRATE_ATTR_AFTER_LAST,
    660   NL80211_BITRATE_ATTR_MAX = __NL80211_BITRATE_ATTR_AFTER_LAST - 1
    661 };
    662 enum nl80211_reg_initiator {
    663   NL80211_REGDOM_SET_BY_CORE,
    664   NL80211_REGDOM_SET_BY_USER,
    665   NL80211_REGDOM_SET_BY_DRIVER,
    666   NL80211_REGDOM_SET_BY_COUNTRY_IE,
    667 };
    668 enum nl80211_reg_type {
    669   NL80211_REGDOM_TYPE_COUNTRY,
    670   NL80211_REGDOM_TYPE_WORLD,
    671   NL80211_REGDOM_TYPE_CUSTOM_WORLD,
    672   NL80211_REGDOM_TYPE_INTERSECTION,
    673 };
    674 enum nl80211_reg_rule_attr {
    675   __NL80211_REG_RULE_ATTR_INVALID,
    676   NL80211_ATTR_REG_RULE_FLAGS,
    677   NL80211_ATTR_FREQ_RANGE_START,
    678   NL80211_ATTR_FREQ_RANGE_END,
    679   NL80211_ATTR_FREQ_RANGE_MAX_BW,
    680   NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN,
    681   NL80211_ATTR_POWER_RULE_MAX_EIRP,
    682   NL80211_ATTR_DFS_CAC_TIME,
    683   __NL80211_REG_RULE_ATTR_AFTER_LAST,
    684   NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1
    685 };
    686 enum nl80211_sched_scan_match_attr {
    687   __NL80211_SCHED_SCAN_MATCH_ATTR_INVALID,
    688   NL80211_SCHED_SCAN_MATCH_ATTR_SSID,
    689   NL80211_SCHED_SCAN_MATCH_ATTR_RSSI,
    690   NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI,
    691   NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST,
    692   NL80211_SCHED_SCAN_MATCH_ATTR_BSSID,
    693   __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST,
    694   NL80211_SCHED_SCAN_MATCH_ATTR_MAX = __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST - 1
    695 };
    696 #define NL80211_ATTR_SCHED_SCAN_MATCH_SSID NL80211_SCHED_SCAN_MATCH_ATTR_SSID
    697 enum nl80211_reg_rule_flags {
    698   NL80211_RRF_NO_OFDM = 1 << 0,
    699   NL80211_RRF_NO_CCK = 1 << 1,
    700   NL80211_RRF_NO_INDOOR = 1 << 2,
    701   NL80211_RRF_NO_OUTDOOR = 1 << 3,
    702   NL80211_RRF_DFS = 1 << 4,
    703   NL80211_RRF_PTP_ONLY = 1 << 5,
    704   NL80211_RRF_PTMP_ONLY = 1 << 6,
    705   NL80211_RRF_NO_IR = 1 << 7,
    706   __NL80211_RRF_NO_IBSS = 1 << 8,
    707   NL80211_RRF_AUTO_BW = 1 << 11,
    708   NL80211_RRF_IR_CONCURRENT = 1 << 12,
    709   NL80211_RRF_NO_HT40MINUS = 1 << 13,
    710   NL80211_RRF_NO_HT40PLUS = 1 << 14,
    711   NL80211_RRF_NO_80MHZ = 1 << 15,
    712   NL80211_RRF_NO_160MHZ = 1 << 16,
    713 };
    714 #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
    715 #define NL80211_RRF_NO_IBSS NL80211_RRF_NO_IR
    716 #define NL80211_RRF_NO_IR NL80211_RRF_NO_IR
    717 #define NL80211_RRF_NO_HT40 (NL80211_RRF_NO_HT40MINUS | NL80211_RRF_NO_HT40PLUS)
    718 #define NL80211_RRF_GO_CONCURRENT NL80211_RRF_IR_CONCURRENT
    719 #define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS)
    720 enum nl80211_dfs_regions {
    721   NL80211_DFS_UNSET = 0,
    722   NL80211_DFS_FCC = 1,
    723   NL80211_DFS_ETSI = 2,
    724   NL80211_DFS_JP = 3,
    725 };
    726 enum nl80211_user_reg_hint_type {
    727   NL80211_USER_REG_HINT_USER = 0,
    728   NL80211_USER_REG_HINT_CELL_BASE = 1,
    729   NL80211_USER_REG_HINT_INDOOR = 2,
    730 };
    731 enum nl80211_survey_info {
    732   __NL80211_SURVEY_INFO_INVALID,
    733   NL80211_SURVEY_INFO_FREQUENCY,
    734   NL80211_SURVEY_INFO_NOISE,
    735   NL80211_SURVEY_INFO_IN_USE,
    736   NL80211_SURVEY_INFO_TIME,
    737   NL80211_SURVEY_INFO_TIME_BUSY,
    738   NL80211_SURVEY_INFO_TIME_EXT_BUSY,
    739   NL80211_SURVEY_INFO_TIME_RX,
    740   NL80211_SURVEY_INFO_TIME_TX,
    741   NL80211_SURVEY_INFO_TIME_SCAN,
    742   NL80211_SURVEY_INFO_PAD,
    743   __NL80211_SURVEY_INFO_AFTER_LAST,
    744   NL80211_SURVEY_INFO_MAX = __NL80211_SURVEY_INFO_AFTER_LAST - 1
    745 };
    746 #define NL80211_SURVEY_INFO_CHANNEL_TIME NL80211_SURVEY_INFO_TIME
    747 #define NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY NL80211_SURVEY_INFO_TIME_BUSY
    748 #define NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY NL80211_SURVEY_INFO_TIME_EXT_BUSY
    749 #define NL80211_SURVEY_INFO_CHANNEL_TIME_RX NL80211_SURVEY_INFO_TIME_RX
    750 #define NL80211_SURVEY_INFO_CHANNEL_TIME_TX NL80211_SURVEY_INFO_TIME_TX
    751 enum nl80211_mntr_flags {
    752   __NL80211_MNTR_FLAG_INVALID,
    753   NL80211_MNTR_FLAG_FCSFAIL,
    754   NL80211_MNTR_FLAG_PLCPFAIL,
    755   NL80211_MNTR_FLAG_CONTROL,
    756   NL80211_MNTR_FLAG_OTHER_BSS,
    757   NL80211_MNTR_FLAG_COOK_FRAMES,
    758   NL80211_MNTR_FLAG_ACTIVE,
    759   __NL80211_MNTR_FLAG_AFTER_LAST,
    760   NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 1
    761 };
    762 enum nl80211_mesh_power_mode {
    763   NL80211_MESH_POWER_UNKNOWN,
    764   NL80211_MESH_POWER_ACTIVE,
    765   NL80211_MESH_POWER_LIGHT_SLEEP,
    766   NL80211_MESH_POWER_DEEP_SLEEP,
    767   __NL80211_MESH_POWER_AFTER_LAST,
    768   NL80211_MESH_POWER_MAX = __NL80211_MESH_POWER_AFTER_LAST - 1
    769 };
    770 enum nl80211_meshconf_params {
    771   __NL80211_MESHCONF_INVALID,
    772   NL80211_MESHCONF_RETRY_TIMEOUT,
    773   NL80211_MESHCONF_CONFIRM_TIMEOUT,
    774   NL80211_MESHCONF_HOLDING_TIMEOUT,
    775   NL80211_MESHCONF_MAX_PEER_LINKS,
    776   NL80211_MESHCONF_MAX_RETRIES,
    777   NL80211_MESHCONF_TTL,
    778   NL80211_MESHCONF_AUTO_OPEN_PLINKS,
    779   NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES,
    780   NL80211_MESHCONF_PATH_REFRESH_TIME,
    781   NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT,
    782   NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT,
    783   NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL,
    784   NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME,
    785   NL80211_MESHCONF_HWMP_ROOTMODE,
    786   NL80211_MESHCONF_ELEMENT_TTL,
    787   NL80211_MESHCONF_HWMP_RANN_INTERVAL,
    788   NL80211_MESHCONF_GATE_ANNOUNCEMENTS,
    789   NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL,
    790   NL80211_MESHCONF_FORWARDING,
    791   NL80211_MESHCONF_RSSI_THRESHOLD,
    792   NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR,
    793   NL80211_MESHCONF_HT_OPMODE,
    794   NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT,
    795   NL80211_MESHCONF_HWMP_ROOT_INTERVAL,
    796   NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL,
    797   NL80211_MESHCONF_POWER_MODE,
    798   NL80211_MESHCONF_AWAKE_WINDOW,
    799   NL80211_MESHCONF_PLINK_TIMEOUT,
    800   __NL80211_MESHCONF_ATTR_AFTER_LAST,
    801   NL80211_MESHCONF_ATTR_MAX = __NL80211_MESHCONF_ATTR_AFTER_LAST - 1
    802 };
    803 enum nl80211_mesh_setup_params {
    804   __NL80211_MESH_SETUP_INVALID,
    805   NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL,
    806   NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC,
    807   NL80211_MESH_SETUP_IE,
    808   NL80211_MESH_SETUP_USERSPACE_AUTH,
    809   NL80211_MESH_SETUP_USERSPACE_AMPE,
    810   NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC,
    811   NL80211_MESH_SETUP_USERSPACE_MPM,
    812   NL80211_MESH_SETUP_AUTH_PROTOCOL,
    813   __NL80211_MESH_SETUP_ATTR_AFTER_LAST,
    814   NL80211_MESH_SETUP_ATTR_MAX = __NL80211_MESH_SETUP_ATTR_AFTER_LAST - 1
    815 };
    816 enum nl80211_txq_attr {
    817   __NL80211_TXQ_ATTR_INVALID,
    818   NL80211_TXQ_ATTR_AC,
    819   NL80211_TXQ_ATTR_TXOP,
    820   NL80211_TXQ_ATTR_CWMIN,
    821   NL80211_TXQ_ATTR_CWMAX,
    822   NL80211_TXQ_ATTR_AIFS,
    823   __NL80211_TXQ_ATTR_AFTER_LAST,
    824   NL80211_TXQ_ATTR_MAX = __NL80211_TXQ_ATTR_AFTER_LAST - 1
    825 };
    826 enum nl80211_ac {
    827   NL80211_AC_VO,
    828   NL80211_AC_VI,
    829   NL80211_AC_BE,
    830   NL80211_AC_BK,
    831   NL80211_NUM_ACS
    832 };
    833 #define NL80211_TXQ_ATTR_QUEUE NL80211_TXQ_ATTR_AC
    834 #define NL80211_TXQ_Q_VO NL80211_AC_VO
    835 #define NL80211_TXQ_Q_VI NL80211_AC_VI
    836 #define NL80211_TXQ_Q_BE NL80211_AC_BE
    837 #define NL80211_TXQ_Q_BK NL80211_AC_BK
    838 enum nl80211_channel_type {
    839   NL80211_CHAN_NO_HT,
    840   NL80211_CHAN_HT20,
    841   NL80211_CHAN_HT40MINUS,
    842   NL80211_CHAN_HT40PLUS
    843 };
    844 enum nl80211_chan_width {
    845   NL80211_CHAN_WIDTH_20_NOHT,
    846   NL80211_CHAN_WIDTH_20,
    847   NL80211_CHAN_WIDTH_40,
    848   NL80211_CHAN_WIDTH_80,
    849   NL80211_CHAN_WIDTH_80P80,
    850   NL80211_CHAN_WIDTH_160,
    851   NL80211_CHAN_WIDTH_5,
    852   NL80211_CHAN_WIDTH_10,
    853 };
    854 enum nl80211_bss_scan_width {
    855   NL80211_BSS_CHAN_WIDTH_20,
    856   NL80211_BSS_CHAN_WIDTH_10,
    857   NL80211_BSS_CHAN_WIDTH_5,
    858 };
    859 enum nl80211_bss {
    860   __NL80211_BSS_INVALID,
    861   NL80211_BSS_BSSID,
    862   NL80211_BSS_FREQUENCY,
    863   NL80211_BSS_TSF,
    864   NL80211_BSS_BEACON_INTERVAL,
    865   NL80211_BSS_CAPABILITY,
    866   NL80211_BSS_INFORMATION_ELEMENTS,
    867   NL80211_BSS_SIGNAL_MBM,
    868   NL80211_BSS_SIGNAL_UNSPEC,
    869   NL80211_BSS_STATUS,
    870   NL80211_BSS_SEEN_MS_AGO,
    871   NL80211_BSS_BEACON_IES,
    872   NL80211_BSS_CHAN_WIDTH,
    873   NL80211_BSS_BEACON_TSF,
    874   NL80211_BSS_PRESP_DATA,
    875   NL80211_BSS_LAST_SEEN_BOOTTIME,
    876   NL80211_BSS_PAD,
    877   NL80211_BSS_PARENT_TSF,
    878   NL80211_BSS_PARENT_BSSID,
    879   __NL80211_BSS_AFTER_LAST,
    880   NL80211_BSS_MAX = __NL80211_BSS_AFTER_LAST - 1
    881 };
    882 enum nl80211_bss_status {
    883   NL80211_BSS_STATUS_AUTHENTICATED,
    884   NL80211_BSS_STATUS_ASSOCIATED,
    885   NL80211_BSS_STATUS_IBSS_JOINED,
    886 };
    887 enum nl80211_auth_type {
    888   NL80211_AUTHTYPE_OPEN_SYSTEM,
    889   NL80211_AUTHTYPE_SHARED_KEY,
    890   NL80211_AUTHTYPE_FT,
    891   NL80211_AUTHTYPE_NETWORK_EAP,
    892   NL80211_AUTHTYPE_SAE,
    893   NL80211_AUTHTYPE_FILS_SK,
    894   NL80211_AUTHTYPE_FILS_SK_PFS,
    895   NL80211_AUTHTYPE_FILS_PK,
    896   __NL80211_AUTHTYPE_NUM,
    897   NL80211_AUTHTYPE_MAX = __NL80211_AUTHTYPE_NUM - 1,
    898   NL80211_AUTHTYPE_AUTOMATIC
    899 };
    900 enum nl80211_key_type {
    901   NL80211_KEYTYPE_GROUP,
    902   NL80211_KEYTYPE_PAIRWISE,
    903   NL80211_KEYTYPE_PEERKEY,
    904   NUM_NL80211_KEYTYPES
    905 };
    906 enum nl80211_mfp {
    907   NL80211_MFP_NO,
    908   NL80211_MFP_REQUIRED,
    909   NL80211_MFP_OPTIONAL,
    910 };
    911 enum nl80211_wpa_versions {
    912   NL80211_WPA_VERSION_1 = 1 << 0,
    913   NL80211_WPA_VERSION_2 = 1 << 1,
    914 };
    915 enum nl80211_key_default_types {
    916   __NL80211_KEY_DEFAULT_TYPE_INVALID,
    917   NL80211_KEY_DEFAULT_TYPE_UNICAST,
    918   NL80211_KEY_DEFAULT_TYPE_MULTICAST,
    919   NUM_NL80211_KEY_DEFAULT_TYPES
    920 };
    921 enum nl80211_key_attributes {
    922   __NL80211_KEY_INVALID,
    923   NL80211_KEY_DATA,
    924   NL80211_KEY_IDX,
    925   NL80211_KEY_CIPHER,
    926   NL80211_KEY_SEQ,
    927   NL80211_KEY_DEFAULT,
    928   NL80211_KEY_DEFAULT_MGMT,
    929   NL80211_KEY_TYPE,
    930   NL80211_KEY_DEFAULT_TYPES,
    931   __NL80211_KEY_AFTER_LAST,
    932   NL80211_KEY_MAX = __NL80211_KEY_AFTER_LAST - 1
    933 };
    934 enum nl80211_tx_rate_attributes {
    935   __NL80211_TXRATE_INVALID,
    936   NL80211_TXRATE_LEGACY,
    937   NL80211_TXRATE_HT,
    938   NL80211_TXRATE_VHT,
    939   NL80211_TXRATE_GI,
    940   __NL80211_TXRATE_AFTER_LAST,
    941   NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1
    942 };
    943 #define NL80211_TXRATE_MCS NL80211_TXRATE_HT
    944 #define NL80211_VHT_NSS_MAX 8
    945 struct nl80211_txrate_vht {
    946   __u16 mcs[NL80211_VHT_NSS_MAX];
    947 };
    948 enum nl80211_txrate_gi {
    949   NL80211_TXRATE_DEFAULT_GI,
    950   NL80211_TXRATE_FORCE_SGI,
    951   NL80211_TXRATE_FORCE_LGI,
    952 };
    953 enum nl80211_band {
    954   NL80211_BAND_2GHZ,
    955   NL80211_BAND_5GHZ,
    956   NL80211_BAND_60GHZ,
    957   NUM_NL80211_BANDS,
    958 };
    959 enum nl80211_ps_state {
    960   NL80211_PS_DISABLED,
    961   NL80211_PS_ENABLED,
    962 };
    963 enum nl80211_attr_cqm {
    964   __NL80211_ATTR_CQM_INVALID,
    965   NL80211_ATTR_CQM_RSSI_THOLD,
    966   NL80211_ATTR_CQM_RSSI_HYST,
    967   NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT,
    968   NL80211_ATTR_CQM_PKT_LOSS_EVENT,
    969   NL80211_ATTR_CQM_TXE_RATE,
    970   NL80211_ATTR_CQM_TXE_PKTS,
    971   NL80211_ATTR_CQM_TXE_INTVL,
    972   NL80211_ATTR_CQM_BEACON_LOSS_EVENT,
    973   NL80211_ATTR_CQM_RSSI_LEVEL,
    974   __NL80211_ATTR_CQM_AFTER_LAST,
    975   NL80211_ATTR_CQM_MAX = __NL80211_ATTR_CQM_AFTER_LAST - 1
    976 };
    977 enum nl80211_cqm_rssi_threshold_event {
    978   NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW,
    979   NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH,
    980   NL80211_CQM_RSSI_BEACON_LOSS_EVENT,
    981 };
    982 enum nl80211_tx_power_setting {
    983   NL80211_TX_POWER_AUTOMATIC,
    984   NL80211_TX_POWER_LIMITED,
    985   NL80211_TX_POWER_FIXED,
    986 };
    987 enum nl80211_packet_pattern_attr {
    988   __NL80211_PKTPAT_INVALID,
    989   NL80211_PKTPAT_MASK,
    990   NL80211_PKTPAT_PATTERN,
    991   NL80211_PKTPAT_OFFSET,
    992   NUM_NL80211_PKTPAT,
    993   MAX_NL80211_PKTPAT = NUM_NL80211_PKTPAT - 1,
    994 };
    995 struct nl80211_pattern_support {
    996   __u32 max_patterns;
    997   __u32 min_pattern_len;
    998   __u32 max_pattern_len;
    999   __u32 max_pkt_offset;
   1000 } __attribute__((packed));
   1001 #define __NL80211_WOWLAN_PKTPAT_INVALID __NL80211_PKTPAT_INVALID
   1002 #define NL80211_WOWLAN_PKTPAT_MASK NL80211_PKTPAT_MASK
   1003 #define NL80211_WOWLAN_PKTPAT_PATTERN NL80211_PKTPAT_PATTERN
   1004 #define NL80211_WOWLAN_PKTPAT_OFFSET NL80211_PKTPAT_OFFSET
   1005 #define NUM_NL80211_WOWLAN_PKTPAT NUM_NL80211_PKTPAT
   1006 #define MAX_NL80211_WOWLAN_PKTPAT MAX_NL80211_PKTPAT
   1007 #define nl80211_wowlan_pattern_support nl80211_pattern_support
   1008 enum nl80211_wowlan_triggers {
   1009   __NL80211_WOWLAN_TRIG_INVALID,
   1010   NL80211_WOWLAN_TRIG_ANY,
   1011   NL80211_WOWLAN_TRIG_DISCONNECT,
   1012   NL80211_WOWLAN_TRIG_MAGIC_PKT,
   1013   NL80211_WOWLAN_TRIG_PKT_PATTERN,
   1014   NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED,
   1015   NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE,
   1016   NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST,
   1017   NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE,
   1018   NL80211_WOWLAN_TRIG_RFKILL_RELEASE,
   1019   NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211,
   1020   NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN,
   1021   NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023,
   1022   NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN,
   1023   NL80211_WOWLAN_TRIG_TCP_CONNECTION,
   1024   NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH,
   1025   NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST,
   1026   NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS,
   1027   NL80211_WOWLAN_TRIG_NET_DETECT,
   1028   NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS,
   1029   NUM_NL80211_WOWLAN_TRIG,
   1030   MAX_NL80211_WOWLAN_TRIG = NUM_NL80211_WOWLAN_TRIG - 1
   1031 };
   1032 struct nl80211_wowlan_tcp_data_seq {
   1033   __u32 start, offset, len;
   1034 };
   1035 struct nl80211_wowlan_tcp_data_token {
   1036   __u32 offset, len;
   1037   __u8 token_stream[];
   1038 };
   1039 struct nl80211_wowlan_tcp_data_token_feature {
   1040   __u32 min_len, max_len, bufsize;
   1041 };
   1042 enum nl80211_wowlan_tcp_attrs {
   1043   __NL80211_WOWLAN_TCP_INVALID,
   1044   NL80211_WOWLAN_TCP_SRC_IPV4,
   1045   NL80211_WOWLAN_TCP_DST_IPV4,
   1046   NL80211_WOWLAN_TCP_DST_MAC,
   1047   NL80211_WOWLAN_TCP_SRC_PORT,
   1048   NL80211_WOWLAN_TCP_DST_PORT,
   1049   NL80211_WOWLAN_TCP_DATA_PAYLOAD,
   1050   NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ,
   1051   NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN,
   1052   NL80211_WOWLAN_TCP_DATA_INTERVAL,
   1053   NL80211_WOWLAN_TCP_WAKE_PAYLOAD,
   1054   NL80211_WOWLAN_TCP_WAKE_MASK,
   1055   NUM_NL80211_WOWLAN_TCP,
   1056   MAX_NL80211_WOWLAN_TCP = NUM_NL80211_WOWLAN_TCP - 1
   1057 };
   1058 struct nl80211_coalesce_rule_support {
   1059   __u32 max_rules;
   1060   struct nl80211_pattern_support pat;
   1061   __u32 max_delay;
   1062 } __attribute__((packed));
   1063 enum nl80211_attr_coalesce_rule {
   1064   __NL80211_COALESCE_RULE_INVALID,
   1065   NL80211_ATTR_COALESCE_RULE_DELAY,
   1066   NL80211_ATTR_COALESCE_RULE_CONDITION,
   1067   NL80211_ATTR_COALESCE_RULE_PKT_PATTERN,
   1068   NUM_NL80211_ATTR_COALESCE_RULE,
   1069   NL80211_ATTR_COALESCE_RULE_MAX = NUM_NL80211_ATTR_COALESCE_RULE - 1
   1070 };
   1071 enum nl80211_coalesce_condition {
   1072   NL80211_COALESCE_CONDITION_MATCH,
   1073   NL80211_COALESCE_CONDITION_NO_MATCH
   1074 };
   1075 enum nl80211_iface_limit_attrs {
   1076   NL80211_IFACE_LIMIT_UNSPEC,
   1077   NL80211_IFACE_LIMIT_MAX,
   1078   NL80211_IFACE_LIMIT_TYPES,
   1079   NUM_NL80211_IFACE_LIMIT,
   1080   MAX_NL80211_IFACE_LIMIT = NUM_NL80211_IFACE_LIMIT - 1
   1081 };
   1082 enum nl80211_if_combination_attrs {
   1083   NL80211_IFACE_COMB_UNSPEC,
   1084   NL80211_IFACE_COMB_LIMITS,
   1085   NL80211_IFACE_COMB_MAXNUM,
   1086   NL80211_IFACE_COMB_STA_AP_BI_MATCH,
   1087   NL80211_IFACE_COMB_NUM_CHANNELS,
   1088   NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS,
   1089   NL80211_IFACE_COMB_RADAR_DETECT_REGIONS,
   1090   NL80211_IFACE_COMB_BI_MIN_GCD,
   1091   NUM_NL80211_IFACE_COMB,
   1092   MAX_NL80211_IFACE_COMB = NUM_NL80211_IFACE_COMB - 1
   1093 };
   1094 enum nl80211_plink_state {
   1095   NL80211_PLINK_LISTEN,
   1096   NL80211_PLINK_OPN_SNT,
   1097   NL80211_PLINK_OPN_RCVD,
   1098   NL80211_PLINK_CNF_RCVD,
   1099   NL80211_PLINK_ESTAB,
   1100   NL80211_PLINK_HOLDING,
   1101   NL80211_PLINK_BLOCKED,
   1102   NUM_NL80211_PLINK_STATES,
   1103   MAX_NL80211_PLINK_STATES = NUM_NL80211_PLINK_STATES - 1
   1104 };
   1105 enum plink_actions {
   1106   NL80211_PLINK_ACTION_NO_ACTION,
   1107   NL80211_PLINK_ACTION_OPEN,
   1108   NL80211_PLINK_ACTION_BLOCK,
   1109   NUM_NL80211_PLINK_ACTIONS,
   1110 };
   1111 #define NL80211_KCK_LEN 16
   1112 #define NL80211_KEK_LEN 16
   1113 #define NL80211_REPLAY_CTR_LEN 8
   1114 enum nl80211_rekey_data {
   1115   __NL80211_REKEY_DATA_INVALID,
   1116   NL80211_REKEY_DATA_KEK,
   1117   NL80211_REKEY_DATA_KCK,
   1118   NL80211_REKEY_DATA_REPLAY_CTR,
   1119   NUM_NL80211_REKEY_DATA,
   1120   MAX_NL80211_REKEY_DATA = NUM_NL80211_REKEY_DATA - 1
   1121 };
   1122 enum nl80211_hidden_ssid {
   1123   NL80211_HIDDEN_SSID_NOT_IN_USE,
   1124   NL80211_HIDDEN_SSID_ZERO_LEN,
   1125   NL80211_HIDDEN_SSID_ZERO_CONTENTS
   1126 };
   1127 enum nl80211_sta_wme_attr {
   1128   __NL80211_STA_WME_INVALID,
   1129   NL80211_STA_WME_UAPSD_QUEUES,
   1130   NL80211_STA_WME_MAX_SP,
   1131   __NL80211_STA_WME_AFTER_LAST,
   1132   NL80211_STA_WME_MAX = __NL80211_STA_WME_AFTER_LAST - 1
   1133 };
   1134 enum nl80211_pmksa_candidate_attr {
   1135   __NL80211_PMKSA_CANDIDATE_INVALID,
   1136   NL80211_PMKSA_CANDIDATE_INDEX,
   1137   NL80211_PMKSA_CANDIDATE_BSSID,
   1138   NL80211_PMKSA_CANDIDATE_PREAUTH,
   1139   NUM_NL80211_PMKSA_CANDIDATE,
   1140   MAX_NL80211_PMKSA_CANDIDATE = NUM_NL80211_PMKSA_CANDIDATE - 1
   1141 };
   1142 enum nl80211_tdls_operation {
   1143   NL80211_TDLS_DISCOVERY_REQ,
   1144   NL80211_TDLS_SETUP,
   1145   NL80211_TDLS_TEARDOWN,
   1146   NL80211_TDLS_ENABLE_LINK,
   1147   NL80211_TDLS_DISABLE_LINK,
   1148 };
   1149 enum nl80211_feature_flags {
   1150   NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
   1151   NL80211_FEATURE_HT_IBSS = 1 << 1,
   1152   NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2,
   1153   NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3,
   1154   NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 1 << 4,
   1155   NL80211_FEATURE_SAE = 1 << 5,
   1156   NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6,
   1157   NL80211_FEATURE_SCAN_FLUSH = 1 << 7,
   1158   NL80211_FEATURE_AP_SCAN = 1 << 8,
   1159   NL80211_FEATURE_VIF_TXPOWER = 1 << 9,
   1160   NL80211_FEATURE_NEED_OBSS_SCAN = 1 << 10,
   1161   NL80211_FEATURE_P2P_GO_CTWIN = 1 << 11,
   1162   NL80211_FEATURE_P2P_GO_OPPPS = 1 << 12,
   1163   NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 1 << 14,
   1164   NL80211_FEATURE_FULL_AP_CLIENT_STATE = 1 << 15,
   1165   NL80211_FEATURE_USERSPACE_MPM = 1 << 16,
   1166   NL80211_FEATURE_ACTIVE_MONITOR = 1 << 17,
   1167   NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE = 1 << 18,
   1168   NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES = 1 << 19,
   1169   NL80211_FEATURE_WFA_TPC_IE_IN_PROBES = 1 << 20,
   1170   NL80211_FEATURE_QUIET = 1 << 21,
   1171   NL80211_FEATURE_TX_POWER_INSERTION = 1 << 22,
   1172   NL80211_FEATURE_ACKTO_ESTIMATION = 1 << 23,
   1173   NL80211_FEATURE_STATIC_SMPS = 1 << 24,
   1174   NL80211_FEATURE_DYNAMIC_SMPS = 1 << 25,
   1175   NL80211_FEATURE_SUPPORTS_WMM_ADMISSION = 1 << 26,
   1176   NL80211_FEATURE_MAC_ON_CREATE = 1 << 27,
   1177   NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 1 << 28,
   1178   NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 1 << 29,
   1179   NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 1 << 30,
   1180   NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1 << 31,
   1181 };
   1182 enum nl80211_ext_feature_index {
   1183   NL80211_EXT_FEATURE_VHT_IBSS,
   1184   NL80211_EXT_FEATURE_RRM,
   1185   NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER,
   1186   NL80211_EXT_FEATURE_SCAN_START_TIME,
   1187   NL80211_EXT_FEATURE_BSS_PARENT_TSF,
   1188   NL80211_EXT_FEATURE_SET_SCAN_DWELL,
   1189   NL80211_EXT_FEATURE_BEACON_RATE_LEGACY,
   1190   NL80211_EXT_FEATURE_BEACON_RATE_HT,
   1191   NL80211_EXT_FEATURE_BEACON_RATE_VHT,
   1192   NL80211_EXT_FEATURE_FILS_STA,
   1193   NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA,
   1194   NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED,
   1195   NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI,
   1196   NL80211_EXT_FEATURE_CQM_RSSI_LIST,
   1197   NL80211_EXT_FEATURE_FILS_SK_OFFLOAD,
   1198   NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK,
   1199   NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X,
   1200   NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME,
   1201   NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP,
   1202   NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE,
   1203   NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION,
   1204   NL80211_EXT_FEATURE_MFP_OPTIONAL,
   1205   NUM_NL80211_EXT_FEATURES,
   1206   MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1
   1207 };
   1208 enum nl80211_probe_resp_offload_support_attr {
   1209   NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS = 1 << 0,
   1210   NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2 = 1 << 1,
   1211   NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P = 1 << 2,
   1212   NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U = 1 << 3,
   1213 };
   1214 enum nl80211_connect_failed_reason {
   1215   NL80211_CONN_FAIL_MAX_CLIENTS,
   1216   NL80211_CONN_FAIL_BLOCKED_CLIENT,
   1217 };
   1218 enum nl80211_timeout_reason {
   1219   NL80211_TIMEOUT_UNSPECIFIED,
   1220   NL80211_TIMEOUT_SCAN,
   1221   NL80211_TIMEOUT_AUTH,
   1222   NL80211_TIMEOUT_ASSOC,
   1223 };
   1224 enum nl80211_scan_flags {
   1225   NL80211_SCAN_FLAG_LOW_PRIORITY = 1 << 0,
   1226   NL80211_SCAN_FLAG_FLUSH = 1 << 1,
   1227   NL80211_SCAN_FLAG_AP = 1 << 2,
   1228   NL80211_SCAN_FLAG_RANDOM_ADDR = 1 << 3,
   1229   NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME = 1 << 4,
   1230   NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP = 1 << 5,
   1231   NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE = 1 << 6,
   1232   NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 1 << 7,
   1233 };
   1234 enum nl80211_acl_policy {
   1235   NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED,
   1236   NL80211_ACL_POLICY_DENY_UNLESS_LISTED,
   1237 };
   1238 enum nl80211_smps_mode {
   1239   NL80211_SMPS_OFF,
   1240   NL80211_SMPS_STATIC,
   1241   NL80211_SMPS_DYNAMIC,
   1242   __NL80211_SMPS_AFTER_LAST,
   1243   NL80211_SMPS_MAX = __NL80211_SMPS_AFTER_LAST - 1
   1244 };
   1245 enum nl80211_radar_event {
   1246   NL80211_RADAR_DETECTED,
   1247   NL80211_RADAR_CAC_FINISHED,
   1248   NL80211_RADAR_CAC_ABORTED,
   1249   NL80211_RADAR_NOP_FINISHED,
   1250   NL80211_RADAR_PRE_CAC_EXPIRED,
   1251 };
   1252 enum nl80211_dfs_state {
   1253   NL80211_DFS_USABLE,
   1254   NL80211_DFS_UNAVAILABLE,
   1255   NL80211_DFS_AVAILABLE,
   1256 };
   1257 enum nl80211_protocol_features {
   1258   NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP = 1 << 0,
   1259 };
   1260 enum nl80211_crit_proto_id {
   1261   NL80211_CRIT_PROTO_UNSPEC,
   1262   NL80211_CRIT_PROTO_DHCP,
   1263   NL80211_CRIT_PROTO_EAPOL,
   1264   NL80211_CRIT_PROTO_APIPA,
   1265   NUM_NL80211_CRIT_PROTO
   1266 };
   1267 #define NL80211_CRIT_PROTO_MAX_DURATION 5000
   1268 enum nl80211_rxmgmt_flags {
   1269   NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0,
   1270 };
   1271 #define NL80211_VENDOR_ID_IS_LINUX 0x80000000
   1272 struct nl80211_vendor_cmd_info {
   1273   __u32 vendor_id;
   1274   __u32 subcmd;
   1275 };
   1276 enum nl80211_tdls_peer_capability {
   1277   NL80211_TDLS_PEER_HT = 1 << 0,
   1278   NL80211_TDLS_PEER_VHT = 1 << 1,
   1279   NL80211_TDLS_PEER_WMM = 1 << 2,
   1280 };
   1281 enum nl80211_sched_scan_plan {
   1282   __NL80211_SCHED_SCAN_PLAN_INVALID,
   1283   NL80211_SCHED_SCAN_PLAN_INTERVAL,
   1284   NL80211_SCHED_SCAN_PLAN_ITERATIONS,
   1285   __NL80211_SCHED_SCAN_PLAN_AFTER_LAST,
   1286   NL80211_SCHED_SCAN_PLAN_MAX = __NL80211_SCHED_SCAN_PLAN_AFTER_LAST - 1
   1287 };
   1288 struct nl80211_bss_select_rssi_adjust {
   1289   __u8 band;
   1290   __s8 delta;
   1291 } __attribute__((packed));
   1292 enum nl80211_bss_select_attr {
   1293   __NL80211_BSS_SELECT_ATTR_INVALID,
   1294   NL80211_BSS_SELECT_ATTR_RSSI,
   1295   NL80211_BSS_SELECT_ATTR_BAND_PREF,
   1296   NL80211_BSS_SELECT_ATTR_RSSI_ADJUST,
   1297   __NL80211_BSS_SELECT_ATTR_AFTER_LAST,
   1298   NL80211_BSS_SELECT_ATTR_MAX = __NL80211_BSS_SELECT_ATTR_AFTER_LAST - 1
   1299 };
   1300 enum nl80211_nan_function_type {
   1301   NL80211_NAN_FUNC_PUBLISH,
   1302   NL80211_NAN_FUNC_SUBSCRIBE,
   1303   NL80211_NAN_FUNC_FOLLOW_UP,
   1304   __NL80211_NAN_FUNC_TYPE_AFTER_LAST,
   1305   NL80211_NAN_FUNC_MAX_TYPE = __NL80211_NAN_FUNC_TYPE_AFTER_LAST - 1,
   1306 };
   1307 enum nl80211_nan_publish_type {
   1308   NL80211_NAN_SOLICITED_PUBLISH = 1 << 0,
   1309   NL80211_NAN_UNSOLICITED_PUBLISH = 1 << 1,
   1310 };
   1311 enum nl80211_nan_func_term_reason {
   1312   NL80211_NAN_FUNC_TERM_REASON_USER_REQUEST,
   1313   NL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED,
   1314   NL80211_NAN_FUNC_TERM_REASON_ERROR,
   1315 };
   1316 #define NL80211_NAN_FUNC_SERVICE_ID_LEN 6
   1317 #define NL80211_NAN_FUNC_SERVICE_SPEC_INFO_MAX_LEN 0xff
   1318 #define NL80211_NAN_FUNC_SRF_MAX_LEN 0xff
   1319 enum nl80211_nan_func_attributes {
   1320   __NL80211_NAN_FUNC_INVALID,
   1321   NL80211_NAN_FUNC_TYPE,
   1322   NL80211_NAN_FUNC_SERVICE_ID,
   1323   NL80211_NAN_FUNC_PUBLISH_TYPE,
   1324   NL80211_NAN_FUNC_PUBLISH_BCAST,
   1325   NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE,
   1326   NL80211_NAN_FUNC_FOLLOW_UP_ID,
   1327   NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID,
   1328   NL80211_NAN_FUNC_FOLLOW_UP_DEST,
   1329   NL80211_NAN_FUNC_CLOSE_RANGE,
   1330   NL80211_NAN_FUNC_TTL,
   1331   NL80211_NAN_FUNC_SERVICE_INFO,
   1332   NL80211_NAN_FUNC_SRF,
   1333   NL80211_NAN_FUNC_RX_MATCH_FILTER,
   1334   NL80211_NAN_FUNC_TX_MATCH_FILTER,
   1335   NL80211_NAN_FUNC_INSTANCE_ID,
   1336   NL80211_NAN_FUNC_TERM_REASON,
   1337   NUM_NL80211_NAN_FUNC_ATTR,
   1338   NL80211_NAN_FUNC_ATTR_MAX = NUM_NL80211_NAN_FUNC_ATTR - 1
   1339 };
   1340 enum nl80211_nan_srf_attributes {
   1341   __NL80211_NAN_SRF_INVALID,
   1342   NL80211_NAN_SRF_INCLUDE,
   1343   NL80211_NAN_SRF_BF,
   1344   NL80211_NAN_SRF_BF_IDX,
   1345   NL80211_NAN_SRF_MAC_ADDRS,
   1346   NUM_NL80211_NAN_SRF_ATTR,
   1347   NL80211_NAN_SRF_ATTR_MAX = NUM_NL80211_NAN_SRF_ATTR - 1,
   1348 };
   1349 enum nl80211_nan_match_attributes {
   1350   __NL80211_NAN_MATCH_INVALID,
   1351   NL80211_NAN_MATCH_FUNC_LOCAL,
   1352   NL80211_NAN_MATCH_FUNC_PEER,
   1353   NUM_NL80211_NAN_MATCH_ATTR,
   1354   NL80211_NAN_MATCH_ATTR_MAX = NUM_NL80211_NAN_MATCH_ATTR - 1
   1355 };
   1356 #endif
   1357