nl80211.h
1 #ifndef __LINUX_NL80211_H
2 #define __LINUX_NL80211_H
3 /*
4  * 802.11 netlink interface public header
5  *
6  * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
7  * Copyright 2008 Michael Wu <flamingice@sourmilk.net>
8  * Copyright 2008 Luis Carlos Cobo <luisca@cozybit.com>
9  * Copyright 2008 Michael Buesch <mb@bu3sch.de>
10  * Copyright 2008, 2009 Luis R. Rodriguez <lrodriguez@atheros.com>
11  * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
12  * Copyright 2008 Colin McCabe <colin@cozybit.com>
13  *
14  * Permission to use, copy, modify, and/or distribute this software for any
15  * purpose with or without fee is hereby granted, provided that the above
16  * copyright notice and this permission notice appear in all copies.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
19  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
20  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
21  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
22  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
23  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
24  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
25  *
26  */
27 
28 #include <linux/types.h>
29 
347 enum nl80211_commands {
348 /* don't change the order or add anything inbetween, this is ABI! */
349  NL80211_CMD_UNSPEC,
350 
351  NL80211_CMD_GET_WIPHY, /* can dump */
352  NL80211_CMD_SET_WIPHY,
353  NL80211_CMD_NEW_WIPHY,
354  NL80211_CMD_DEL_WIPHY,
355 
356  NL80211_CMD_GET_INTERFACE, /* can dump */
357  NL80211_CMD_SET_INTERFACE,
358  NL80211_CMD_NEW_INTERFACE,
359  NL80211_CMD_DEL_INTERFACE,
360 
361  NL80211_CMD_GET_KEY,
362  NL80211_CMD_SET_KEY,
363  NL80211_CMD_NEW_KEY,
364  NL80211_CMD_DEL_KEY,
365 
366  NL80211_CMD_GET_BEACON,
367  NL80211_CMD_SET_BEACON,
368  NL80211_CMD_NEW_BEACON,
369  NL80211_CMD_DEL_BEACON,
370 
371  NL80211_CMD_GET_STATION,
372  NL80211_CMD_SET_STATION,
373  NL80211_CMD_NEW_STATION,
374  NL80211_CMD_DEL_STATION,
375 
376  NL80211_CMD_GET_MPATH,
377  NL80211_CMD_SET_MPATH,
378  NL80211_CMD_NEW_MPATH,
379  NL80211_CMD_DEL_MPATH,
380 
381  NL80211_CMD_SET_BSS,
382 
383  NL80211_CMD_SET_REG,
384  NL80211_CMD_REQ_SET_REG,
385 
386  NL80211_CMD_GET_MESH_PARAMS,
387  NL80211_CMD_SET_MESH_PARAMS,
388 
389  NL80211_CMD_SET_MGMT_EXTRA_IE /* reserved; not used */,
390 
391  NL80211_CMD_GET_REG,
392 
393  NL80211_CMD_GET_SCAN,
394  NL80211_CMD_TRIGGER_SCAN,
395  NL80211_CMD_NEW_SCAN_RESULTS,
396  NL80211_CMD_SCAN_ABORTED,
397 
398  NL80211_CMD_REG_CHANGE,
399 
400  NL80211_CMD_AUTHENTICATE,
401  NL80211_CMD_ASSOCIATE,
402  NL80211_CMD_DEAUTHENTICATE,
403  NL80211_CMD_DISASSOCIATE,
404 
405  NL80211_CMD_MICHAEL_MIC_FAILURE,
406 
407  NL80211_CMD_REG_BEACON_HINT,
408 
409  NL80211_CMD_JOIN_IBSS,
410  NL80211_CMD_LEAVE_IBSS,
411 
412  NL80211_CMD_TESTMODE,
413 
414  NL80211_CMD_CONNECT,
415  NL80211_CMD_ROAM,
416  NL80211_CMD_DISCONNECT,
417 
418  NL80211_CMD_SET_WIPHY_NETNS,
419 
420  NL80211_CMD_GET_SURVEY,
421  NL80211_CMD_NEW_SURVEY_RESULTS,
422 
423  NL80211_CMD_SET_PMKSA,
424  NL80211_CMD_DEL_PMKSA,
425  NL80211_CMD_FLUSH_PMKSA,
426 
427  NL80211_CMD_REMAIN_ON_CHANNEL,
428  NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL,
429 
430  NL80211_CMD_SET_TX_BITRATE_MASK,
431 
432  NL80211_CMD_REGISTER_ACTION,
433  NL80211_CMD_ACTION,
434  NL80211_CMD_ACTION_TX_STATUS,
435 
436  NL80211_CMD_SET_POWER_SAVE,
437  NL80211_CMD_GET_POWER_SAVE,
438 
439  NL80211_CMD_SET_CQM,
440  NL80211_CMD_NOTIFY_CQM,
441 
442  NL80211_CMD_SET_CHANNEL,
443 
444  /* add new commands above here */
445 
446  /* used to define NL80211_CMD_MAX below */
447  __NL80211_CMD_AFTER_LAST,
448  NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1
449 };
450 
451 /*
452  * Allow user space programs to use #ifdef on new commands by defining them
453  * here
454  */
455 #define NL80211_CMD_SET_BSS NL80211_CMD_SET_BSS
456 #define NL80211_CMD_SET_MGMT_EXTRA_IE NL80211_CMD_SET_MGMT_EXTRA_IE
457 #define NL80211_CMD_REG_CHANGE NL80211_CMD_REG_CHANGE
458 #define NL80211_CMD_AUTHENTICATE NL80211_CMD_AUTHENTICATE
459 #define NL80211_CMD_ASSOCIATE NL80211_CMD_ASSOCIATE
460 #define NL80211_CMD_DEAUTHENTICATE NL80211_CMD_DEAUTHENTICATE
461 #define NL80211_CMD_DISASSOCIATE NL80211_CMD_DISASSOCIATE
462 #define NL80211_CMD_REG_BEACON_HINT NL80211_CMD_REG_BEACON_HINT
463 
731 enum nl80211_attrs {
732 /* don't change the order or add anything inbetween, this is ABI! */
733  NL80211_ATTR_UNSPEC,
734 
735  NL80211_ATTR_WIPHY,
736  NL80211_ATTR_WIPHY_NAME,
737 
738  NL80211_ATTR_IFINDEX,
739  NL80211_ATTR_IFNAME,
740  NL80211_ATTR_IFTYPE,
741 
742  NL80211_ATTR_MAC,
743 
744  NL80211_ATTR_KEY_DATA,
745  NL80211_ATTR_KEY_IDX,
746  NL80211_ATTR_KEY_CIPHER,
747  NL80211_ATTR_KEY_SEQ,
748  NL80211_ATTR_KEY_DEFAULT,
749 
750  NL80211_ATTR_BEACON_INTERVAL,
751  NL80211_ATTR_DTIM_PERIOD,
752  NL80211_ATTR_BEACON_HEAD,
753  NL80211_ATTR_BEACON_TAIL,
754 
755  NL80211_ATTR_STA_AID,
756  NL80211_ATTR_STA_FLAGS,
757  NL80211_ATTR_STA_LISTEN_INTERVAL,
758  NL80211_ATTR_STA_SUPPORTED_RATES,
759  NL80211_ATTR_STA_VLAN,
760  NL80211_ATTR_STA_INFO,
761 
762  NL80211_ATTR_WIPHY_BANDS,
763 
764  NL80211_ATTR_MNTR_FLAGS,
765 
766  NL80211_ATTR_MESH_ID,
767  NL80211_ATTR_STA_PLINK_ACTION,
768  NL80211_ATTR_MPATH_NEXT_HOP,
769  NL80211_ATTR_MPATH_INFO,
770 
771  NL80211_ATTR_BSS_CTS_PROT,
772  NL80211_ATTR_BSS_SHORT_PREAMBLE,
773  NL80211_ATTR_BSS_SHORT_SLOT_TIME,
774 
775  NL80211_ATTR_HT_CAPABILITY,
776 
777  NL80211_ATTR_SUPPORTED_IFTYPES,
778 
779  NL80211_ATTR_REG_ALPHA2,
780  NL80211_ATTR_REG_RULES,
781 
782  NL80211_ATTR_MESH_PARAMS,
783 
784  NL80211_ATTR_BSS_BASIC_RATES,
785 
786  NL80211_ATTR_WIPHY_TXQ_PARAMS,
787  NL80211_ATTR_WIPHY_FREQ,
788  NL80211_ATTR_WIPHY_CHANNEL_TYPE,
789 
790  NL80211_ATTR_KEY_DEFAULT_MGMT,
791 
792  NL80211_ATTR_MGMT_SUBTYPE,
793  NL80211_ATTR_IE,
794 
795  NL80211_ATTR_MAX_NUM_SCAN_SSIDS,
796 
797  NL80211_ATTR_SCAN_FREQUENCIES,
798  NL80211_ATTR_SCAN_SSIDS,
799  NL80211_ATTR_GENERATION, /* replaces old SCAN_GENERATION */
800  NL80211_ATTR_BSS,
801 
802  NL80211_ATTR_REG_INITIATOR,
803  NL80211_ATTR_REG_TYPE,
804 
805  NL80211_ATTR_SUPPORTED_COMMANDS,
806 
807  NL80211_ATTR_FRAME,
808  NL80211_ATTR_SSID,
809  NL80211_ATTR_AUTH_TYPE,
810  NL80211_ATTR_REASON_CODE,
811 
812  NL80211_ATTR_KEY_TYPE,
813 
814  NL80211_ATTR_MAX_SCAN_IE_LEN,
815  NL80211_ATTR_CIPHER_SUITES,
816 
817  NL80211_ATTR_FREQ_BEFORE,
818  NL80211_ATTR_FREQ_AFTER,
819 
820  NL80211_ATTR_FREQ_FIXED,
821 
822 
823  NL80211_ATTR_WIPHY_RETRY_SHORT,
824  NL80211_ATTR_WIPHY_RETRY_LONG,
825  NL80211_ATTR_WIPHY_FRAG_THRESHOLD,
826  NL80211_ATTR_WIPHY_RTS_THRESHOLD,
827 
828  NL80211_ATTR_TIMED_OUT,
829 
830  NL80211_ATTR_USE_MFP,
831 
832  NL80211_ATTR_STA_FLAGS2,
833 
834  NL80211_ATTR_CONTROL_PORT,
835 
836  NL80211_ATTR_TESTDATA,
837 
838  NL80211_ATTR_PRIVACY,
839 
840  NL80211_ATTR_DISCONNECTED_BY_AP,
841  NL80211_ATTR_STATUS_CODE,
842 
843  NL80211_ATTR_CIPHER_SUITES_PAIRWISE,
844  NL80211_ATTR_CIPHER_SUITE_GROUP,
845  NL80211_ATTR_WPA_VERSIONS,
846  NL80211_ATTR_AKM_SUITES,
847 
848  NL80211_ATTR_REQ_IE,
849  NL80211_ATTR_RESP_IE,
850 
851  NL80211_ATTR_PREV_BSSID,
852 
853  NL80211_ATTR_KEY,
854  NL80211_ATTR_KEYS,
855 
856  NL80211_ATTR_PID,
857 
858  NL80211_ATTR_4ADDR,
859 
860  NL80211_ATTR_SURVEY_INFO,
861 
862  NL80211_ATTR_PMKID,
863  NL80211_ATTR_MAX_NUM_PMKIDS,
864 
865  NL80211_ATTR_DURATION,
866 
867  NL80211_ATTR_COOKIE,
868 
869  NL80211_ATTR_WIPHY_COVERAGE_CLASS,
870 
871  NL80211_ATTR_TX_RATES,
872 
873  NL80211_ATTR_FRAME_MATCH,
874 
875  NL80211_ATTR_ACK,
876 
877  NL80211_ATTR_PS_STATE,
878 
879  NL80211_ATTR_CQM,
880 
881  NL80211_ATTR_LOCAL_STATE_CHANGE,
882 
883  NL80211_ATTR_AP_ISOLATE,
884 
885  /* add attributes here, update the policy in nl80211.c */
886 
887  __NL80211_ATTR_AFTER_LAST,
888  NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
889 };
890 
891 /* source-level API compatibility */
892 #define NL80211_ATTR_SCAN_GENERATION NL80211_ATTR_GENERATION
893 
894 /*
895  * Allow user space programs to use #ifdef on new attributes by defining them
896  * here
897  */
898 #define NL80211_CMD_CONNECT NL80211_CMD_CONNECT
899 #define NL80211_ATTR_HT_CAPABILITY NL80211_ATTR_HT_CAPABILITY
900 #define NL80211_ATTR_BSS_BASIC_RATES NL80211_ATTR_BSS_BASIC_RATES
901 #define NL80211_ATTR_WIPHY_TXQ_PARAMS NL80211_ATTR_WIPHY_TXQ_PARAMS
902 #define NL80211_ATTR_WIPHY_FREQ NL80211_ATTR_WIPHY_FREQ
903 #define NL80211_ATTR_WIPHY_CHANNEL_TYPE NL80211_ATTR_WIPHY_CHANNEL_TYPE
904 #define NL80211_ATTR_MGMT_SUBTYPE NL80211_ATTR_MGMT_SUBTYPE
905 #define NL80211_ATTR_IE NL80211_ATTR_IE
906 #define NL80211_ATTR_REG_INITIATOR NL80211_ATTR_REG_INITIATOR
907 #define NL80211_ATTR_REG_TYPE NL80211_ATTR_REG_TYPE
908 #define NL80211_ATTR_FRAME NL80211_ATTR_FRAME
909 #define NL80211_ATTR_SSID NL80211_ATTR_SSID
910 #define NL80211_ATTR_AUTH_TYPE NL80211_ATTR_AUTH_TYPE
911 #define NL80211_ATTR_REASON_CODE NL80211_ATTR_REASON_CODE
912 #define NL80211_ATTR_CIPHER_SUITES_PAIRWISE NL80211_ATTR_CIPHER_SUITES_PAIRWISE
913 #define NL80211_ATTR_CIPHER_SUITE_GROUP NL80211_ATTR_CIPHER_SUITE_GROUP
914 #define NL80211_ATTR_WPA_VERSIONS NL80211_ATTR_WPA_VERSIONS
915 #define NL80211_ATTR_AKM_SUITES NL80211_ATTR_AKM_SUITES
916 #define NL80211_ATTR_KEY NL80211_ATTR_KEY
917 #define NL80211_ATTR_KEYS NL80211_ATTR_KEYS
918 
919 #define NL80211_MAX_SUPP_RATES 32
920 #define NL80211_MAX_SUPP_REG_RULES 32
921 #define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0
922 #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16
923 #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24
924 #define NL80211_HT_CAPABILITY_LEN 26
925 
926 #define NL80211_MAX_NR_CIPHER_SUITES 5
927 #define NL80211_MAX_NR_AKM_SUITES 2
928 
947 enum nl80211_iftype {
948  NL80211_IFTYPE_UNSPECIFIED,
949  NL80211_IFTYPE_ADHOC,
950  NL80211_IFTYPE_STATION,
951  NL80211_IFTYPE_AP,
952  NL80211_IFTYPE_AP_VLAN,
953  NL80211_IFTYPE_WDS,
954  NL80211_IFTYPE_MONITOR,
955  NL80211_IFTYPE_MESH_POINT,
956 
957  /* keep last */
958  __NL80211_IFTYPE_AFTER_LAST,
959  NL80211_IFTYPE_MAX = __NL80211_IFTYPE_AFTER_LAST - 1
960 };
961 
974 enum nl80211_sta_flags {
975  __NL80211_STA_FLAG_INVALID,
976  NL80211_STA_FLAG_AUTHORIZED,
977  NL80211_STA_FLAG_SHORT_PREAMBLE,
978  NL80211_STA_FLAG_WME,
979  NL80211_STA_FLAG_MFP,
980 
981  /* keep last */
982  __NL80211_STA_FLAG_AFTER_LAST,
983  NL80211_STA_FLAG_MAX = __NL80211_STA_FLAG_AFTER_LAST - 1
984 };
985 
994  __u32 mask;
995  __u32 set;
996 } __attribute__((packed));
997 
1012 enum nl80211_rate_info {
1013  __NL80211_RATE_INFO_INVALID,
1014  NL80211_RATE_INFO_BITRATE,
1015  NL80211_RATE_INFO_MCS,
1016  NL80211_RATE_INFO_40_MHZ_WIDTH,
1017  NL80211_RATE_INFO_SHORT_GI,
1018 
1019  /* keep last */
1020  __NL80211_RATE_INFO_AFTER_LAST,
1021  NL80211_RATE_INFO_MAX = __NL80211_RATE_INFO_AFTER_LAST - 1
1022 };
1023 
1043 enum nl80211_sta_info {
1044  __NL80211_STA_INFO_INVALID,
1045  NL80211_STA_INFO_INACTIVE_TIME,
1046  NL80211_STA_INFO_RX_BYTES,
1047  NL80211_STA_INFO_TX_BYTES,
1048  NL80211_STA_INFO_LLID,
1049  NL80211_STA_INFO_PLID,
1050  NL80211_STA_INFO_PLINK_STATE,
1051  NL80211_STA_INFO_SIGNAL,
1052  NL80211_STA_INFO_TX_BITRATE,
1053  NL80211_STA_INFO_RX_PACKETS,
1054  NL80211_STA_INFO_TX_PACKETS,
1055 
1056  /* keep last */
1057  __NL80211_STA_INFO_AFTER_LAST,
1058  NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1
1059 };
1060 
1070 enum nl80211_mpath_flags {
1071  NL80211_MPATH_FLAG_ACTIVE = 1<<0,
1072  NL80211_MPATH_FLAG_RESOLVING = 1<<1,
1073  NL80211_MPATH_FLAG_SN_VALID = 1<<2,
1074  NL80211_MPATH_FLAG_FIXED = 1<<3,
1075  NL80211_MPATH_FLAG_RESOLVED = 1<<4,
1076 };
1077 
1094 enum nl80211_mpath_info {
1095  __NL80211_MPATH_INFO_INVALID,
1096  NL80211_MPATH_INFO_FRAME_QLEN,
1097  NL80211_MPATH_INFO_SN,
1098  NL80211_MPATH_INFO_METRIC,
1099  NL80211_MPATH_INFO_EXPTIME,
1100  NL80211_MPATH_INFO_FLAGS,
1101  NL80211_MPATH_INFO_DISCOVERY_TIMEOUT,
1102  NL80211_MPATH_INFO_DISCOVERY_RETRIES,
1103 
1104  /* keep last */
1105  __NL80211_MPATH_INFO_AFTER_LAST,
1106  NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1
1107 };
1108 
1122 enum nl80211_band_attr {
1123  __NL80211_BAND_ATTR_INVALID,
1124  NL80211_BAND_ATTR_FREQS,
1125  NL80211_BAND_ATTR_RATES,
1126 
1127  NL80211_BAND_ATTR_HT_MCS_SET,
1128  NL80211_BAND_ATTR_HT_CAPA,
1129  NL80211_BAND_ATTR_HT_AMPDU_FACTOR,
1130  NL80211_BAND_ATTR_HT_AMPDU_DENSITY,
1131 
1132  /* keep last */
1133  __NL80211_BAND_ATTR_AFTER_LAST,
1134  NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1
1135 };
1136 
1137 #define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA
1138 
1153 enum nl80211_frequency_attr {
1154  __NL80211_FREQUENCY_ATTR_INVALID,
1155  NL80211_FREQUENCY_ATTR_FREQ,
1156  NL80211_FREQUENCY_ATTR_DISABLED,
1157  NL80211_FREQUENCY_ATTR_PASSIVE_SCAN,
1158  NL80211_FREQUENCY_ATTR_NO_IBSS,
1159  NL80211_FREQUENCY_ATTR_RADAR,
1160  NL80211_FREQUENCY_ATTR_MAX_TX_POWER,
1161 
1162  /* keep last */
1163  __NL80211_FREQUENCY_ATTR_AFTER_LAST,
1164  NL80211_FREQUENCY_ATTR_MAX = __NL80211_FREQUENCY_ATTR_AFTER_LAST - 1
1165 };
1166 
1167 #define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER
1168 
1175 enum nl80211_bitrate_attr {
1176  __NL80211_BITRATE_ATTR_INVALID,
1177  NL80211_BITRATE_ATTR_RATE,
1178  NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE,
1179 
1180  /* keep last */
1181  __NL80211_BITRATE_ATTR_AFTER_LAST,
1182  NL80211_BITRATE_ATTR_MAX = __NL80211_BITRATE_ATTR_AFTER_LAST - 1
1183 };
1184 
1197 enum nl80211_reg_initiator {
1198  NL80211_REGDOM_SET_BY_CORE,
1199  NL80211_REGDOM_SET_BY_USER,
1200  NL80211_REGDOM_SET_BY_DRIVER,
1201  NL80211_REGDOM_SET_BY_COUNTRY_IE,
1202 };
1203 
1220 enum nl80211_reg_type {
1221  NL80211_REGDOM_TYPE_COUNTRY,
1222  NL80211_REGDOM_TYPE_WORLD,
1223  NL80211_REGDOM_TYPE_CUSTOM_WORLD,
1224  NL80211_REGDOM_TYPE_INTERSECTION,
1225 };
1226 
1246 enum nl80211_reg_rule_attr {
1247  __NL80211_REG_RULE_ATTR_INVALID,
1248  NL80211_ATTR_REG_RULE_FLAGS,
1249 
1250  NL80211_ATTR_FREQ_RANGE_START,
1251  NL80211_ATTR_FREQ_RANGE_END,
1252  NL80211_ATTR_FREQ_RANGE_MAX_BW,
1253 
1254  NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN,
1255  NL80211_ATTR_POWER_RULE_MAX_EIRP,
1256 
1257  /* keep last */
1258  __NL80211_REG_RULE_ATTR_AFTER_LAST,
1259  NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1
1260 };
1261 
1275 enum nl80211_reg_rule_flags {
1276  NL80211_RRF_NO_OFDM = 1<<0,
1277  NL80211_RRF_NO_CCK = 1<<1,
1278  NL80211_RRF_NO_INDOOR = 1<<2,
1279  NL80211_RRF_NO_OUTDOOR = 1<<3,
1280  NL80211_RRF_DFS = 1<<4,
1281  NL80211_RRF_PTP_ONLY = 1<<5,
1282  NL80211_RRF_PTMP_ONLY = 1<<6,
1283  NL80211_RRF_PASSIVE_SCAN = 1<<7,
1284  NL80211_RRF_NO_IBSS = 1<<8,
1285 };
1286 
1297 enum nl80211_survey_info {
1298  __NL80211_SURVEY_INFO_INVALID,
1299  NL80211_SURVEY_INFO_FREQUENCY,
1300  NL80211_SURVEY_INFO_NOISE,
1301 
1302  /* keep last */
1303  __NL80211_SURVEY_INFO_AFTER_LAST,
1304  NL80211_SURVEY_INFO_MAX = __NL80211_SURVEY_INFO_AFTER_LAST - 1
1305 };
1306 
1324 enum nl80211_mntr_flags {
1325  __NL80211_MNTR_FLAG_INVALID,
1326  NL80211_MNTR_FLAG_FCSFAIL,
1327  NL80211_MNTR_FLAG_PLCPFAIL,
1328  NL80211_MNTR_FLAG_CONTROL,
1329  NL80211_MNTR_FLAG_OTHER_BSS,
1330  NL80211_MNTR_FLAG_COOK_FRAMES,
1331 
1332  /* keep last */
1333  __NL80211_MNTR_FLAG_AFTER_LAST,
1334  NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 1
1335 };
1336 
1393 enum nl80211_meshconf_params {
1394  __NL80211_MESHCONF_INVALID,
1395  NL80211_MESHCONF_RETRY_TIMEOUT,
1396  NL80211_MESHCONF_CONFIRM_TIMEOUT,
1397  NL80211_MESHCONF_HOLDING_TIMEOUT,
1398  NL80211_MESHCONF_MAX_PEER_LINKS,
1399  NL80211_MESHCONF_MAX_RETRIES,
1400  NL80211_MESHCONF_TTL,
1401  NL80211_MESHCONF_AUTO_OPEN_PLINKS,
1402  NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES,
1403  NL80211_MESHCONF_PATH_REFRESH_TIME,
1404  NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT,
1405  NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT,
1406  NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL,
1407  NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME,
1408  NL80211_MESHCONF_HWMP_ROOTMODE,
1409 
1410  /* keep last */
1411  __NL80211_MESHCONF_ATTR_AFTER_LAST,
1412  NL80211_MESHCONF_ATTR_MAX = __NL80211_MESHCONF_ATTR_AFTER_LAST - 1
1413 };
1414 
1429 enum nl80211_txq_attr {
1430  __NL80211_TXQ_ATTR_INVALID,
1431  NL80211_TXQ_ATTR_QUEUE,
1432  NL80211_TXQ_ATTR_TXOP,
1433  NL80211_TXQ_ATTR_CWMIN,
1434  NL80211_TXQ_ATTR_CWMAX,
1435  NL80211_TXQ_ATTR_AIFS,
1436 
1437  /* keep last */
1438  __NL80211_TXQ_ATTR_AFTER_LAST,
1439  NL80211_TXQ_ATTR_MAX = __NL80211_TXQ_ATTR_AFTER_LAST - 1
1440 };
1441 
1442 enum nl80211_txq_q {
1443  NL80211_TXQ_Q_VO,
1444  NL80211_TXQ_Q_VI,
1445  NL80211_TXQ_Q_BE,
1446  NL80211_TXQ_Q_BK
1447 };
1448 
1449 enum nl80211_channel_type {
1450  NL80211_CHAN_NO_HT,
1451  NL80211_CHAN_HT20,
1452  NL80211_CHAN_HT40MINUS,
1453  NL80211_CHAN_HT40PLUS
1454 };
1455 
1482 enum nl80211_bss {
1483  __NL80211_BSS_INVALID,
1484  NL80211_BSS_BSSID,
1485  NL80211_BSS_FREQUENCY,
1486  NL80211_BSS_TSF,
1487  NL80211_BSS_BEACON_INTERVAL,
1488  NL80211_BSS_CAPABILITY,
1489  NL80211_BSS_INFORMATION_ELEMENTS,
1490  NL80211_BSS_SIGNAL_MBM,
1491  NL80211_BSS_SIGNAL_UNSPEC,
1492  NL80211_BSS_STATUS,
1493  NL80211_BSS_SEEN_MS_AGO,
1494  NL80211_BSS_BEACON_IES,
1495 
1496  /* keep last */
1497  __NL80211_BSS_AFTER_LAST,
1498  NL80211_BSS_MAX = __NL80211_BSS_AFTER_LAST - 1
1499 };
1500 
1504 enum nl80211_bss_status {
1505  NL80211_BSS_STATUS_AUTHENTICATED,
1506  NL80211_BSS_STATUS_ASSOCIATED,
1507  NL80211_BSS_STATUS_IBSS_JOINED,
1508 };
1509 
1523 enum nl80211_auth_type {
1524  NL80211_AUTHTYPE_OPEN_SYSTEM,
1525  NL80211_AUTHTYPE_SHARED_KEY,
1526  NL80211_AUTHTYPE_FT,
1527  NL80211_AUTHTYPE_NETWORK_EAP,
1528 
1529  /* keep last */
1530  __NL80211_AUTHTYPE_NUM,
1531  NL80211_AUTHTYPE_MAX = __NL80211_AUTHTYPE_NUM - 1,
1532  NL80211_AUTHTYPE_AUTOMATIC
1533 };
1534 
1541 enum nl80211_key_type {
1542  NL80211_KEYTYPE_GROUP,
1543  NL80211_KEYTYPE_PAIRWISE,
1544  NL80211_KEYTYPE_PEERKEY,
1545 };
1546 
1552 enum nl80211_mfp {
1553  NL80211_MFP_NO,
1554  NL80211_MFP_REQUIRED,
1555 };
1556 
1557 enum nl80211_wpa_versions {
1558  NL80211_WPA_VERSION_1 = 1 << 0,
1559  NL80211_WPA_VERSION_2 = 1 << 1,
1560 };
1561 
1578 enum nl80211_key_attributes {
1579  __NL80211_KEY_INVALID,
1580  NL80211_KEY_DATA,
1581  NL80211_KEY_IDX,
1582  NL80211_KEY_CIPHER,
1583  NL80211_KEY_SEQ,
1584  NL80211_KEY_DEFAULT,
1585  NL80211_KEY_DEFAULT_MGMT,
1586 
1587  /* keep last */
1588  __NL80211_KEY_AFTER_LAST,
1589  NL80211_KEY_MAX = __NL80211_KEY_AFTER_LAST - 1
1590 };
1591 
1602 enum nl80211_tx_rate_attributes {
1603  __NL80211_TXRATE_INVALID,
1604  NL80211_TXRATE_LEGACY,
1605 
1606  /* keep last */
1607  __NL80211_TXRATE_AFTER_LAST,
1608  NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1
1609 };
1610 
1616 enum nl80211_band {
1617  NL80211_BAND_2GHZ,
1618  NL80211_BAND_5GHZ,
1619 };
1620 
1621 enum nl80211_ps_state {
1622  NL80211_PS_DISABLED,
1623  NL80211_PS_ENABLED,
1624 };
1625 
1639 enum nl80211_attr_cqm {
1640  __NL80211_ATTR_CQM_INVALID,
1641  NL80211_ATTR_CQM_RSSI_THOLD,
1642  NL80211_ATTR_CQM_RSSI_HYST,
1643  NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT,
1644 
1645  /* keep last */
1646  __NL80211_ATTR_CQM_AFTER_LAST,
1647  NL80211_ATTR_CQM_MAX = __NL80211_ATTR_CQM_AFTER_LAST - 1
1648 };
1649 
1657 enum nl80211_cqm_rssi_threshold_event {
1658  NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW,
1659  NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH,
1660 };
1661 
1662 #endif /* __LINUX_NL80211_H */
double ReadFloat(int section, const char *name, double value)
Read a floating point (double) value.
Generic message header.
Definition: player.h:161
virtual int MainSetup(void)
Sets up the resources needed by the driver thread.
Definition: driver.h:658
virtual void MainQuit(void)
Cleanup method for driver thread (called when main exits)
Definition: driver.h:664
virtual void Main(void)=0
Main method for driver thread.
int ReadInt(int section, const char *name, int value)
Read an integer value.
#define PLAYER_MSGTYPE_DATA
A data message.
Definition: player.h:95
struct nl80211_sta_flag_update - station flags mask/set @mask: mask of station flags to set @set: whi...
Definition: nl80211.h:993
virtual int ProcessMessage(QueuePointer &resp_queue, player_msghdr *hdr, void *data)
Message handler.
#define PLAYER_MSGTYPE_REQ
A request message.
Definition: player.h:106
Class for loading configuration file information.
Definition: configfile.h:196
#define PLAYER_CAPABILITIES_REQ
Capability request message type.
Definition: player.h:397
An autopointer for the message queue.
Definition: message.h:73
Definition: nimu.h:62
Base class for drivers which oeprate with a thread.
Definition: driver.h:552
Messages between wsn and a robot.
Definition: er.h:86
#define PLAYER_IMU_DATA_CALIB
Data subtype: Calibrated IMU data
Definition: player_interfaces.h:4682
#define PLAYER_IMU_REQ_SET_DATATYPE
Request/reply subtype: set data type.
Definition: player_interfaces.h:4694
Base class for all drivers.
Definition: driver.h:108
Definition: nimu.h:38
Data: calibrated IMU data (PLAYER_IMU_DATA_CALIB)
Definition: player_interfaces.h:4719
#define PLAYER_MSGQUEUE_DEFAULT_MAXLEN
Default maximum length for a message queue.
Definition: player.h:76