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