aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/nl80211.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/nl80211.h')
-rw-r--r--include/linux/nl80211.h207
1 files changed, 201 insertions, 6 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h
index a8d71ed43a0e..28ba20fda3e2 100644
--- a/include/linux/nl80211.h
+++ b/include/linux/nl80211.h
@@ -3,7 +3,7 @@
3/* 3/*
4 * 802.11 netlink interface public header 4 * 802.11 netlink interface public header
5 * 5 *
6 * Copyright 2006, 2007, 2008 Johannes Berg <johannes@sipsolutions.net> 6 * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
7 * Copyright 2008 Michael Wu <flamingice@sourmilk.net> 7 * Copyright 2008 Michael Wu <flamingice@sourmilk.net>
8 * Copyright 2008 Luis Carlos Cobo <luisca@cozybit.com> 8 * Copyright 2008 Luis Carlos Cobo <luisca@cozybit.com>
9 * Copyright 2008 Michael Buesch <mb@bu3sch.de> 9 * Copyright 2008 Michael Buesch <mb@bu3sch.de>
@@ -160,6 +160,11 @@
160 * @NL80211_CMD_SCAN_ABORTED: scan was aborted, for unspecified reasons, 160 * @NL80211_CMD_SCAN_ABORTED: scan was aborted, for unspecified reasons,
161 * partial scan results may be available 161 * partial scan results may be available
162 * 162 *
163 * @NL80211_CMD_GET_SURVEY: get survey resuls, e.g. channel occupation
164 * or noise level
165 * @NL80211_CMD_NEW_SURVEY_RESULTS: survey data notification (as a reply to
166 * NL80211_CMD_GET_SURVEY and on the "scan" multicast group)
167 *
163 * @NL80211_CMD_REG_CHANGE: indicates to userspace the regulatory domain 168 * @NL80211_CMD_REG_CHANGE: indicates to userspace the regulatory domain
164 * has been changed and provides details of the request information 169 * has been changed and provides details of the request information
165 * that caused the change such as who initiated the regulatory request 170 * that caused the change such as who initiated the regulatory request
@@ -265,6 +270,60 @@
265 * @NL80211_CMD_SET_WIPHY_NETNS: Set a wiphy's netns. Note that all devices 270 * @NL80211_CMD_SET_WIPHY_NETNS: Set a wiphy's netns. Note that all devices
266 * associated with this wiphy must be down and will follow. 271 * associated with this wiphy must be down and will follow.
267 * 272 *
273 * @NL80211_CMD_REMAIN_ON_CHANNEL: Request to remain awake on the specified
274 * channel for the specified amount of time. This can be used to do
275 * off-channel operations like transmit a Public Action frame and wait for
276 * a response while being associated to an AP on another channel.
277 * %NL80211_ATTR_WIPHY or %NL80211_ATTR_IFINDEX is used to specify which
278 * radio is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the
279 * frequency for the operation and %NL80211_ATTR_WIPHY_CHANNEL_TYPE may be
280 * optionally used to specify additional channel parameters.
281 * %NL80211_ATTR_DURATION is used to specify the duration in milliseconds
282 * to remain on the channel. This command is also used as an event to
283 * notify when the requested duration starts (it may take a while for the
284 * driver to schedule this time due to other concurrent needs for the
285 * radio).
286 * When called, this operation returns a cookie (%NL80211_ATTR_COOKIE)
287 * that will be included with any events pertaining to this request;
288 * the cookie is also used to cancel the request.
289 * @NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL: This command can be used to cancel a
290 * pending remain-on-channel duration if the desired operation has been
291 * completed prior to expiration of the originally requested duration.
292 * %NL80211_ATTR_WIPHY or %NL80211_ATTR_IFINDEX is used to specify the
293 * radio. The %NL80211_ATTR_COOKIE attribute must be given as well to
294 * uniquely identify the request.
295 * This command is also used as an event to notify when a requested
296 * remain-on-channel duration has expired.
297 *
298 * @NL80211_CMD_SET_TX_BITRATE_MASK: Set the mask of rates to be used in TX
299 * rate selection. %NL80211_ATTR_IFINDEX is used to specify the interface
300 * and @NL80211_ATTR_TX_RATES the set of allowed rates.
301 *
302 * @NL80211_CMD_REGISTER_ACTION: Register for receiving certain action frames
303 * (via @NL80211_CMD_ACTION) for processing in userspace. This command
304 * requires an interface index and a match attribute containing the first
305 * few bytes of the frame that should match, e.g. a single byte for only
306 * a category match or four bytes for vendor frames including the OUI.
307 * The registration cannot be dropped, but is removed automatically
308 * when the netlink socket is closed. Multiple registrations can be made.
309 * @NL80211_CMD_ACTION: Action frame TX request and RX notification. This
310 * command is used both as a request to transmit an Action frame and as an
311 * event indicating reception of an Action frame that was not processed in
312 * kernel code, but is for us (i.e., which may need to be processed in a
313 * user space application). %NL80211_ATTR_FRAME is used to specify the
314 * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ (and
315 * optionally %NL80211_ATTR_WIPHY_CHANNEL_TYPE) is used to indicate on
316 * which channel the frame is to be transmitted or was received. This
317 * channel has to be the current channel (remain-on-channel or the
318 * operational channel). When called, this operation returns a cookie
319 * (%NL80211_ATTR_COOKIE) that will be included with the TX status event
320 * pertaining to the TX request.
321 * @NL80211_CMD_ACTION_TX_STATUS: Report TX status of an Action frame
322 * transmitted with %NL80211_CMD_ACTION. %NL80211_ATTR_COOKIE identifies
323 * the TX command and %NL80211_ATTR_FRAME includes the contents of the
324 * frame. %NL80211_ATTR_ACK flag is included if the recipient acknowledged
325 * the frame.
326 *
268 * @NL80211_CMD_MAX: highest used command number 327 * @NL80211_CMD_MAX: highest used command number
269 * @__NL80211_CMD_AFTER_LAST: internal use 328 * @__NL80211_CMD_AFTER_LAST: internal use
270 */ 329 */
@@ -341,6 +400,25 @@ enum nl80211_commands {
341 400
342 NL80211_CMD_SET_WIPHY_NETNS, 401 NL80211_CMD_SET_WIPHY_NETNS,
343 402
403 NL80211_CMD_GET_SURVEY,
404 NL80211_CMD_NEW_SURVEY_RESULTS,
405
406 NL80211_CMD_SET_PMKSA,
407 NL80211_CMD_DEL_PMKSA,
408 NL80211_CMD_FLUSH_PMKSA,
409
410 NL80211_CMD_REMAIN_ON_CHANNEL,
411 NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL,
412
413 NL80211_CMD_SET_TX_BITRATE_MASK,
414
415 NL80211_CMD_REGISTER_ACTION,
416 NL80211_CMD_ACTION,
417 NL80211_CMD_ACTION_TX_STATUS,
418
419 NL80211_CMD_SET_POWER_SAVE,
420 NL80211_CMD_GET_POWER_SAVE,
421
344 /* add new commands above here */ 422 /* add new commands above here */
345 423
346 /* used to define NL80211_CMD_MAX below */ 424 /* used to define NL80211_CMD_MAX below */
@@ -390,6 +468,8 @@ enum nl80211_commands {
390 * @NL80211_ATTR_WIPHY_RTS_THRESHOLD: RTS threshold (TX frames with length 468 * @NL80211_ATTR_WIPHY_RTS_THRESHOLD: RTS threshold (TX frames with length
391 * larger than or equal to this use RTS/CTS handshake); allowed range: 469 * larger than or equal to this use RTS/CTS handshake); allowed range:
392 * 0..65536, disable with (u32)-1; dot11RTSThreshold; u32 470 * 0..65536, disable with (u32)-1; dot11RTSThreshold; u32
471 * @NL80211_ATTR_WIPHY_COVERAGE_CLASS: Coverage Class as defined by IEEE 802.11
472 * section 7.3.2.9; dot11CoverageClass; u8
393 * 473 *
394 * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on 474 * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on
395 * @NL80211_ATTR_IFNAME: network interface name 475 * @NL80211_ATTR_IFNAME: network interface name
@@ -584,6 +664,33 @@ enum nl80211_commands {
584 * changed then the list changed and the dump should be repeated 664 * changed then the list changed and the dump should be repeated
585 * completely from scratch. 665 * completely from scratch.
586 * 666 *
667 * @NL80211_ATTR_4ADDR: Use 4-address frames on a virtual interface
668 *
669 * @NL80211_ATTR_SURVEY_INFO: survey information about a channel, part of
670 * the survey response for %NL80211_CMD_GET_SURVEY, nested attribute
671 * containing info as possible, see &enum survey_info.
672 *
673 * @NL80211_ATTR_PMKID: PMK material for PMKSA caching.
674 * @NL80211_ATTR_MAX_NUM_PMKIDS: maximum number of PMKIDs a firmware can
675 * cache, a wiphy attribute.
676 *
677 * @NL80211_ATTR_DURATION: Duration of an operation in milliseconds, u32.
678 *
679 * @NL80211_ATTR_COOKIE: Generic 64-bit cookie to identify objects.
680 *
681 * @NL80211_ATTR_TX_RATES: Nested set of attributes
682 * (enum nl80211_tx_rate_attributes) describing TX rates per band. The
683 * enum nl80211_band value is used as the index (nla_type() of the nested
684 * data. If a band is not included, it will be configured to allow all
685 * rates based on negotiated supported rates information. This attribute
686 * is used with %NL80211_CMD_SET_TX_BITRATE_MASK.
687 *
688 * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain
689 * at least one byte, currently used with @NL80211_CMD_REGISTER_ACTION.
690 *
691 * @NL80211_ATTR_ACK: Flag attribute indicating that the frame was
692 * acknowledged by the recipient.
693 *
587 * @NL80211_ATTR_MAX: highest attribute number currently defined 694 * @NL80211_ATTR_MAX: highest attribute number currently defined
588 * @__NL80211_ATTR_AFTER_LAST: internal use 695 * @__NL80211_ATTR_AFTER_LAST: internal use
589 */ 696 */
@@ -714,6 +821,27 @@ enum nl80211_attrs {
714 821
715 NL80211_ATTR_PID, 822 NL80211_ATTR_PID,
716 823
824 NL80211_ATTR_4ADDR,
825
826 NL80211_ATTR_SURVEY_INFO,
827
828 NL80211_ATTR_PMKID,
829 NL80211_ATTR_MAX_NUM_PMKIDS,
830
831 NL80211_ATTR_DURATION,
832
833 NL80211_ATTR_COOKIE,
834
835 NL80211_ATTR_WIPHY_COVERAGE_CLASS,
836
837 NL80211_ATTR_TX_RATES,
838
839 NL80211_ATTR_FRAME_MATCH,
840
841 NL80211_ATTR_ACK,
842
843 NL80211_ATTR_PS_STATE,
844
717 /* add attributes here, update the policy in nl80211.c */ 845 /* add attributes here, update the policy in nl80211.c */
718 846
719 __NL80211_ATTR_AFTER_LAST, 847 __NL80211_ATTR_AFTER_LAST,
@@ -895,14 +1023,14 @@ enum nl80211_sta_info {
895 * 1023 *
896 * @NL80211_MPATH_FLAG_ACTIVE: the mesh path is active 1024 * @NL80211_MPATH_FLAG_ACTIVE: the mesh path is active
897 * @NL80211_MPATH_FLAG_RESOLVING: the mesh path discovery process is running 1025 * @NL80211_MPATH_FLAG_RESOLVING: the mesh path discovery process is running
898 * @NL80211_MPATH_FLAG_DSN_VALID: the mesh path contains a valid DSN 1026 * @NL80211_MPATH_FLAG_SN_VALID: the mesh path contains a valid SN
899 * @NL80211_MPATH_FLAG_FIXED: the mesh path has been manually set 1027 * @NL80211_MPATH_FLAG_FIXED: the mesh path has been manually set
900 * @NL80211_MPATH_FLAG_RESOLVED: the mesh path discovery process succeeded 1028 * @NL80211_MPATH_FLAG_RESOLVED: the mesh path discovery process succeeded
901 */ 1029 */
902enum nl80211_mpath_flags { 1030enum nl80211_mpath_flags {
903 NL80211_MPATH_FLAG_ACTIVE = 1<<0, 1031 NL80211_MPATH_FLAG_ACTIVE = 1<<0,
904 NL80211_MPATH_FLAG_RESOLVING = 1<<1, 1032 NL80211_MPATH_FLAG_RESOLVING = 1<<1,
905 NL80211_MPATH_FLAG_DSN_VALID = 1<<2, 1033 NL80211_MPATH_FLAG_SN_VALID = 1<<2,
906 NL80211_MPATH_FLAG_FIXED = 1<<3, 1034 NL80211_MPATH_FLAG_FIXED = 1<<3,
907 NL80211_MPATH_FLAG_RESOLVED = 1<<4, 1035 NL80211_MPATH_FLAG_RESOLVED = 1<<4,
908}; 1036};
@@ -915,7 +1043,7 @@ enum nl80211_mpath_flags {
915 * 1043 *
916 * @__NL80211_MPATH_INFO_INVALID: attribute number 0 is reserved 1044 * @__NL80211_MPATH_INFO_INVALID: attribute number 0 is reserved
917 * @NL80211_ATTR_MPATH_FRAME_QLEN: number of queued frames for this destination 1045 * @NL80211_ATTR_MPATH_FRAME_QLEN: number of queued frames for this destination
918 * @NL80211_ATTR_MPATH_DSN: destination sequence number 1046 * @NL80211_ATTR_MPATH_SN: destination sequence number
919 * @NL80211_ATTR_MPATH_METRIC: metric (cost) of this mesh path 1047 * @NL80211_ATTR_MPATH_METRIC: metric (cost) of this mesh path
920 * @NL80211_ATTR_MPATH_EXPTIME: expiration time for the path, in msec from now 1048 * @NL80211_ATTR_MPATH_EXPTIME: expiration time for the path, in msec from now
921 * @NL80211_ATTR_MPATH_FLAGS: mesh path flags, enumerated in 1049 * @NL80211_ATTR_MPATH_FLAGS: mesh path flags, enumerated in
@@ -926,7 +1054,7 @@ enum nl80211_mpath_flags {
926enum nl80211_mpath_info { 1054enum nl80211_mpath_info {
927 __NL80211_MPATH_INFO_INVALID, 1055 __NL80211_MPATH_INFO_INVALID,
928 NL80211_MPATH_INFO_FRAME_QLEN, 1056 NL80211_MPATH_INFO_FRAME_QLEN,
929 NL80211_MPATH_INFO_DSN, 1057 NL80211_MPATH_INFO_SN,
930 NL80211_MPATH_INFO_METRIC, 1058 NL80211_MPATH_INFO_METRIC,
931 NL80211_MPATH_INFO_EXPTIME, 1059 NL80211_MPATH_INFO_EXPTIME,
932 NL80211_MPATH_INFO_FLAGS, 1060 NL80211_MPATH_INFO_FLAGS,
@@ -1117,6 +1245,26 @@ enum nl80211_reg_rule_flags {
1117}; 1245};
1118 1246
1119/** 1247/**
1248 * enum nl80211_survey_info - survey information
1249 *
1250 * These attribute types are used with %NL80211_ATTR_SURVEY_INFO
1251 * when getting information about a survey.
1252 *
1253 * @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved
1254 * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel
1255 * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm)
1256 */
1257enum nl80211_survey_info {
1258 __NL80211_SURVEY_INFO_INVALID,
1259 NL80211_SURVEY_INFO_FREQUENCY,
1260 NL80211_SURVEY_INFO_NOISE,
1261
1262 /* keep last */
1263 __NL80211_SURVEY_INFO_AFTER_LAST,
1264 NL80211_SURVEY_INFO_MAX = __NL80211_SURVEY_INFO_AFTER_LAST - 1
1265};
1266
1267/**
1120 * enum nl80211_mntr_flags - monitor configuration flags 1268 * enum nl80211_mntr_flags - monitor configuration flags
1121 * 1269 *
1122 * Monitor configuration flags. 1270 * Monitor configuration flags.
@@ -1196,6 +1344,8 @@ enum nl80211_mntr_flags {
1196 * @NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME: The interval of time (in TUs) 1344 * @NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME: The interval of time (in TUs)
1197 * that it takes for an HWMP information element to propagate across the mesh 1345 * that it takes for an HWMP information element to propagate across the mesh
1198 * 1346 *
1347 * @NL80211_MESHCONF_ROOTMODE: whether root mode is enabled or not
1348 *
1199 * @NL80211_MESHCONF_ATTR_MAX: highest possible mesh configuration attribute 1349 * @NL80211_MESHCONF_ATTR_MAX: highest possible mesh configuration attribute
1200 * 1350 *
1201 * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use 1351 * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use
@@ -1215,6 +1365,7 @@ enum nl80211_meshconf_params {
1215 NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT, 1365 NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT,
1216 NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL, 1366 NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL,
1217 NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME, 1367 NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME,
1368 NL80211_MESHCONF_HWMP_ROOTMODE,
1218 1369
1219 /* keep last */ 1370 /* keep last */
1220 __NL80211_MESHCONF_ATTR_AFTER_LAST, 1371 __NL80211_MESHCONF_ATTR_AFTER_LAST,
@@ -1271,12 +1422,20 @@ enum nl80211_channel_type {
1271 * @NL80211_BSS_BEACON_INTERVAL: beacon interval of the (I)BSS (u16) 1422 * @NL80211_BSS_BEACON_INTERVAL: beacon interval of the (I)BSS (u16)
1272 * @NL80211_BSS_CAPABILITY: capability field (CPU order, u16) 1423 * @NL80211_BSS_CAPABILITY: capability field (CPU order, u16)
1273 * @NL80211_BSS_INFORMATION_ELEMENTS: binary attribute containing the 1424 * @NL80211_BSS_INFORMATION_ELEMENTS: binary attribute containing the
1274 * raw information elements from the probe response/beacon (bin) 1425 * raw information elements from the probe response/beacon (bin);
1426 * if the %NL80211_BSS_BEACON_IES attribute is present, the IEs here are
1427 * from a Probe Response frame; otherwise they are from a Beacon frame.
1428 * However, if the driver does not indicate the source of the IEs, these
1429 * IEs may be from either frame subtype.
1275 * @NL80211_BSS_SIGNAL_MBM: signal strength of probe response/beacon 1430 * @NL80211_BSS_SIGNAL_MBM: signal strength of probe response/beacon
1276 * in mBm (100 * dBm) (s32) 1431 * in mBm (100 * dBm) (s32)
1277 * @NL80211_BSS_SIGNAL_UNSPEC: signal strength of the probe response/beacon 1432 * @NL80211_BSS_SIGNAL_UNSPEC: signal strength of the probe response/beacon
1278 * in unspecified units, scaled to 0..100 (u8) 1433 * in unspecified units, scaled to 0..100 (u8)
1279 * @NL80211_BSS_STATUS: status, if this BSS is "used" 1434 * @NL80211_BSS_STATUS: status, if this BSS is "used"
1435 * @NL80211_BSS_SEEN_MS_AGO: age of this BSS entry in ms
1436 * @NL80211_BSS_BEACON_IES: binary attribute containing the raw information
1437 * elements from a Beacon frame (bin); not present if no Beacon frame has
1438 * yet been received
1280 * @__NL80211_BSS_AFTER_LAST: internal 1439 * @__NL80211_BSS_AFTER_LAST: internal
1281 * @NL80211_BSS_MAX: highest BSS attribute 1440 * @NL80211_BSS_MAX: highest BSS attribute
1282 */ 1441 */
@@ -1291,6 +1450,8 @@ enum nl80211_bss {
1291 NL80211_BSS_SIGNAL_MBM, 1450 NL80211_BSS_SIGNAL_MBM,
1292 NL80211_BSS_SIGNAL_UNSPEC, 1451 NL80211_BSS_SIGNAL_UNSPEC,
1293 NL80211_BSS_STATUS, 1452 NL80211_BSS_STATUS,
1453 NL80211_BSS_SEEN_MS_AGO,
1454 NL80211_BSS_BEACON_IES,
1294 1455
1295 /* keep last */ 1456 /* keep last */
1296 __NL80211_BSS_AFTER_LAST, 1457 __NL80211_BSS_AFTER_LAST,
@@ -1388,4 +1549,38 @@ enum nl80211_key_attributes {
1388 NL80211_KEY_MAX = __NL80211_KEY_AFTER_LAST - 1 1549 NL80211_KEY_MAX = __NL80211_KEY_AFTER_LAST - 1
1389}; 1550};
1390 1551
1552/**
1553 * enum nl80211_tx_rate_attributes - TX rate set attributes
1554 * @__NL80211_TXRATE_INVALID: invalid
1555 * @NL80211_TXRATE_LEGACY: Legacy (non-MCS) rates allowed for TX rate selection
1556 * in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with
1557 * 1 = 500 kbps) but without the IE length restriction (at most
1558 * %NL80211_MAX_SUPP_RATES in a single array).
1559 * @__NL80211_TXRATE_AFTER_LAST: internal
1560 * @NL80211_TXRATE_MAX: highest TX rate attribute
1561 */
1562enum nl80211_tx_rate_attributes {
1563 __NL80211_TXRATE_INVALID,
1564 NL80211_TXRATE_LEGACY,
1565
1566 /* keep last */
1567 __NL80211_TXRATE_AFTER_LAST,
1568 NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1
1569};
1570
1571/**
1572 * enum nl80211_band - Frequency band
1573 * @NL80211_BAND_2GHZ - 2.4 GHz ISM band
1574 * @NL80211_BAND_5GHZ - around 5 GHz band (4.9 - 5.7 GHz)
1575 */
1576enum nl80211_band {
1577 NL80211_BAND_2GHZ,
1578 NL80211_BAND_5GHZ,
1579};
1580
1581enum nl80211_ps_state {
1582 NL80211_PS_DISABLED,
1583 NL80211_PS_ENABLED,
1584};
1585
1391#endif /* __LINUX_NL80211_H */ 1586#endif /* __LINUX_NL80211_H */