diff options
Diffstat (limited to 'include/linux/nl80211.h')
-rw-r--r-- | include/linux/nl80211.h | 210 |
1 files changed, 177 insertions, 33 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h index 2c8701687336..0edb2566c14c 100644 --- a/include/linux/nl80211.h +++ b/include/linux/nl80211.h | |||
@@ -40,6 +40,43 @@ | |||
40 | */ | 40 | */ |
41 | 41 | ||
42 | /** | 42 | /** |
43 | * DOC: Frame transmission/registration support | ||
44 | * | ||
45 | * Frame transmission and registration support exists to allow userspace | ||
46 | * management entities such as wpa_supplicant react to management frames | ||
47 | * that are not being handled by the kernel. This includes, for example, | ||
48 | * certain classes of action frames that cannot be handled in the kernel | ||
49 | * for various reasons. | ||
50 | * | ||
51 | * Frame registration is done on a per-interface basis and registrations | ||
52 | * cannot be removed other than by closing the socket. It is possible to | ||
53 | * specify a registration filter to register, for example, only for a | ||
54 | * certain type of action frame. In particular with action frames, those | ||
55 | * that userspace registers for will not be returned as unhandled by the | ||
56 | * driver, so that the registered application has to take responsibility | ||
57 | * for doing that. | ||
58 | * | ||
59 | * The type of frame that can be registered for is also dependent on the | ||
60 | * driver and interface type. The frame types are advertised in wiphy | ||
61 | * attributes so applications know what to expect. | ||
62 | * | ||
63 | * NOTE: When an interface changes type while registrations are active, | ||
64 | * these registrations are ignored until the interface type is | ||
65 | * changed again. This means that changing the interface type can | ||
66 | * lead to a situation that couldn't otherwise be produced, but | ||
67 | * any such registrations will be dormant in the sense that they | ||
68 | * will not be serviced, i.e. they will not receive any frames. | ||
69 | * | ||
70 | * Frame transmission allows userspace to send for example the required | ||
71 | * responses to action frames. It is subject to some sanity checking, | ||
72 | * but many frames can be transmitted. When a frame was transmitted, its | ||
73 | * status is indicated to the sending socket. | ||
74 | * | ||
75 | * For more technical details, see the corresponding command descriptions | ||
76 | * below. | ||
77 | */ | ||
78 | |||
79 | /** | ||
43 | * enum nl80211_commands - supported nl80211 commands | 80 | * enum nl80211_commands - supported nl80211 commands |
44 | * | 81 | * |
45 | * @NL80211_CMD_UNSPEC: unspecified command to catch errors | 82 | * @NL80211_CMD_UNSPEC: unspecified command to catch errors |
@@ -258,7 +295,9 @@ | |||
258 | * auth and assoc steps. For this, you need to specify the SSID in a | 295 | * auth and assoc steps. For this, you need to specify the SSID in a |
259 | * %NL80211_ATTR_SSID attribute, and can optionally specify the association | 296 | * %NL80211_ATTR_SSID attribute, and can optionally specify the association |
260 | * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_MAC, | 297 | * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_MAC, |
261 | * %NL80211_ATTR_WIPHY_FREQ and %NL80211_ATTR_CONTROL_PORT. | 298 | * %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT, |
299 | * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE and | ||
300 | * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT. | ||
262 | * It is also sent as an event, with the BSSID and response IEs when the | 301 | * It is also sent as an event, with the BSSID and response IEs when the |
263 | * connection is established or failed to be established. This can be | 302 | * connection is established or failed to be established. This can be |
264 | * determined by the STATUS_CODE attribute. | 303 | * determined by the STATUS_CODE attribute. |
@@ -276,8 +315,8 @@ | |||
276 | * channel for the specified amount of time. This can be used to do | 315 | * channel for the specified amount of time. This can be used to do |
277 | * off-channel operations like transmit a Public Action frame and wait for | 316 | * off-channel operations like transmit a Public Action frame and wait for |
278 | * a response while being associated to an AP on another channel. | 317 | * a response while being associated to an AP on another channel. |
279 | * %NL80211_ATTR_WIPHY or %NL80211_ATTR_IFINDEX is used to specify which | 318 | * %NL80211_ATTR_IFINDEX is used to specify which interface (and thus |
280 | * radio is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the | 319 | * radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the |
281 | * frequency for the operation and %NL80211_ATTR_WIPHY_CHANNEL_TYPE may be | 320 | * frequency for the operation and %NL80211_ATTR_WIPHY_CHANNEL_TYPE may be |
282 | * optionally used to specify additional channel parameters. | 321 | * optionally used to specify additional channel parameters. |
283 | * %NL80211_ATTR_DURATION is used to specify the duration in milliseconds | 322 | * %NL80211_ATTR_DURATION is used to specify the duration in milliseconds |
@@ -301,16 +340,20 @@ | |||
301 | * rate selection. %NL80211_ATTR_IFINDEX is used to specify the interface | 340 | * rate selection. %NL80211_ATTR_IFINDEX is used to specify the interface |
302 | * and @NL80211_ATTR_TX_RATES the set of allowed rates. | 341 | * and @NL80211_ATTR_TX_RATES the set of allowed rates. |
303 | * | 342 | * |
304 | * @NL80211_CMD_REGISTER_ACTION: Register for receiving certain action frames | 343 | * @NL80211_CMD_REGISTER_FRAME: Register for receiving certain mgmt frames |
305 | * (via @NL80211_CMD_ACTION) for processing in userspace. This command | 344 | * (via @NL80211_CMD_FRAME) for processing in userspace. This command |
306 | * requires an interface index and a match attribute containing the first | 345 | * requires an interface index, a frame type attribute (optional for |
307 | * few bytes of the frame that should match, e.g. a single byte for only | 346 | * backward compatibility reasons, if not given assumes action frames) |
308 | * a category match or four bytes for vendor frames including the OUI. | 347 | * and a match attribute containing the first few bytes of the frame |
309 | * The registration cannot be dropped, but is removed automatically | 348 | * that should match, e.g. a single byte for only a category match or |
310 | * when the netlink socket is closed. Multiple registrations can be made. | 349 | * four bytes for vendor frames including the OUI. The registration |
311 | * @NL80211_CMD_ACTION: Action frame TX request and RX notification. This | 350 | * cannot be dropped, but is removed automatically when the netlink |
312 | * command is used both as a request to transmit an Action frame and as an | 351 | * socket is closed. Multiple registrations can be made. |
313 | * event indicating reception of an Action frame that was not processed in | 352 | * @NL80211_CMD_REGISTER_ACTION: Alias for @NL80211_CMD_REGISTER_FRAME for |
353 | * backward compatibility | ||
354 | * @NL80211_CMD_FRAME: Management frame TX request and RX notification. This | ||
355 | * command is used both as a request to transmit a management frame and | ||
356 | * as an event indicating reception of a frame that was not processed in | ||
314 | * kernel code, but is for us (i.e., which may need to be processed in a | 357 | * kernel code, but is for us (i.e., which may need to be processed in a |
315 | * user space application). %NL80211_ATTR_FRAME is used to specify the | 358 | * user space application). %NL80211_ATTR_FRAME is used to specify the |
316 | * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ (and | 359 | * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ (and |
@@ -320,11 +363,14 @@ | |||
320 | * operational channel). When called, this operation returns a cookie | 363 | * operational channel). When called, this operation returns a cookie |
321 | * (%NL80211_ATTR_COOKIE) that will be included with the TX status event | 364 | * (%NL80211_ATTR_COOKIE) that will be included with the TX status event |
322 | * pertaining to the TX request. | 365 | * pertaining to the TX request. |
323 | * @NL80211_CMD_ACTION_TX_STATUS: Report TX status of an Action frame | 366 | * @NL80211_CMD_ACTION: Alias for @NL80211_CMD_FRAME for backward compatibility. |
324 | * transmitted with %NL80211_CMD_ACTION. %NL80211_ATTR_COOKIE identifies | 367 | * @NL80211_CMD_FRAME_TX_STATUS: Report TX status of a management frame |
368 | * transmitted with %NL80211_CMD_FRAME. %NL80211_ATTR_COOKIE identifies | ||
325 | * the TX command and %NL80211_ATTR_FRAME includes the contents of the | 369 | * the TX command and %NL80211_ATTR_FRAME includes the contents of the |
326 | * frame. %NL80211_ATTR_ACK flag is included if the recipient acknowledged | 370 | * frame. %NL80211_ATTR_ACK flag is included if the recipient acknowledged |
327 | * the frame. | 371 | * the frame. |
372 | * @NL80211_CMD_ACTION_TX_STATUS: Alias for @NL80211_CMD_FRAME_TX_STATUS for | ||
373 | * backward compatibility. | ||
328 | * @NL80211_CMD_SET_CQM: Connection quality monitor configuration. This command | 374 | * @NL80211_CMD_SET_CQM: Connection quality monitor configuration. This command |
329 | * is used to configure connection quality monitoring notification trigger | 375 | * is used to configure connection quality monitoring notification trigger |
330 | * levels. | 376 | * levels. |
@@ -341,6 +387,8 @@ | |||
341 | * of any other interfaces, and other interfaces will again take | 387 | * of any other interfaces, and other interfaces will again take |
342 | * precedence when they are used. | 388 | * precedence when they are used. |
343 | * | 389 | * |
390 | * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface. | ||
391 | * | ||
344 | * @NL80211_CMD_MAX: highest used command number | 392 | * @NL80211_CMD_MAX: highest used command number |
345 | * @__NL80211_CMD_AFTER_LAST: internal use | 393 | * @__NL80211_CMD_AFTER_LAST: internal use |
346 | */ | 394 | */ |
@@ -429,9 +477,12 @@ enum nl80211_commands { | |||
429 | 477 | ||
430 | NL80211_CMD_SET_TX_BITRATE_MASK, | 478 | NL80211_CMD_SET_TX_BITRATE_MASK, |
431 | 479 | ||
432 | NL80211_CMD_REGISTER_ACTION, | 480 | NL80211_CMD_REGISTER_FRAME, |
433 | NL80211_CMD_ACTION, | 481 | NL80211_CMD_REGISTER_ACTION = NL80211_CMD_REGISTER_FRAME, |
434 | NL80211_CMD_ACTION_TX_STATUS, | 482 | NL80211_CMD_FRAME, |
483 | NL80211_CMD_ACTION = NL80211_CMD_FRAME, | ||
484 | NL80211_CMD_FRAME_TX_STATUS, | ||
485 | NL80211_CMD_ACTION_TX_STATUS = NL80211_CMD_FRAME_TX_STATUS, | ||
435 | 486 | ||
436 | NL80211_CMD_SET_POWER_SAVE, | 487 | NL80211_CMD_SET_POWER_SAVE, |
437 | NL80211_CMD_GET_POWER_SAVE, | 488 | NL80211_CMD_GET_POWER_SAVE, |
@@ -440,6 +491,7 @@ enum nl80211_commands { | |||
440 | NL80211_CMD_NOTIFY_CQM, | 491 | NL80211_CMD_NOTIFY_CQM, |
441 | 492 | ||
442 | NL80211_CMD_SET_CHANNEL, | 493 | NL80211_CMD_SET_CHANNEL, |
494 | NL80211_CMD_SET_WDS_PEER, | ||
443 | 495 | ||
444 | /* add new commands above here */ | 496 | /* add new commands above here */ |
445 | 497 | ||
@@ -639,6 +691,15 @@ enum nl80211_commands { | |||
639 | * request, the driver will assume that the port is unauthorized until | 691 | * request, the driver will assume that the port is unauthorized until |
640 | * authorized by user space. Otherwise, port is marked authorized by | 692 | * authorized by user space. Otherwise, port is marked authorized by |
641 | * default in station mode. | 693 | * default in station mode. |
694 | * @NL80211_ATTR_CONTROL_PORT_ETHERTYPE: A 16-bit value indicating the | ||
695 | * ethertype that will be used for key negotiation. It can be | ||
696 | * specified with the associate and connect commands. If it is not | ||
697 | * specified, the value defaults to 0x888E (PAE, 802.1X). This | ||
698 | * attribute is also used as a flag in the wiphy information to | ||
699 | * indicate that protocols other than PAE are supported. | ||
700 | * @NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT: When included along with | ||
701 | * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE, indicates that the custom | ||
702 | * ethertype frames used for key negotiation must not be encrypted. | ||
642 | * | 703 | * |
643 | * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver. | 704 | * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver. |
644 | * We recommend using nested, driver-specific attributes within this. | 705 | * We recommend using nested, driver-specific attributes within this. |
@@ -708,7 +769,16 @@ enum nl80211_commands { | |||
708 | * is used with %NL80211_CMD_SET_TX_BITRATE_MASK. | 769 | * is used with %NL80211_CMD_SET_TX_BITRATE_MASK. |
709 | * | 770 | * |
710 | * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain | 771 | * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain |
711 | * at least one byte, currently used with @NL80211_CMD_REGISTER_ACTION. | 772 | * at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME. |
773 | * @NL80211_ATTR_FRAME_TYPE: A u16 indicating the frame type/subtype for the | ||
774 | * @NL80211_CMD_REGISTER_FRAME command. | ||
775 | * @NL80211_ATTR_TX_FRAME_TYPES: wiphy capability attribute, which is a | ||
776 | * nested attribute of %NL80211_ATTR_FRAME_TYPE attributes, containing | ||
777 | * information about which frame types can be transmitted with | ||
778 | * %NL80211_CMD_FRAME. | ||
779 | * @NL80211_ATTR_RX_FRAME_TYPES: wiphy capability attribute, which is a | ||
780 | * nested attribute of %NL80211_ATTR_FRAME_TYPE attributes, containing | ||
781 | * information about which frame types can be registered for RX. | ||
712 | * | 782 | * |
713 | * @NL80211_ATTR_ACK: Flag attribute indicating that the frame was | 783 | * @NL80211_ATTR_ACK: Flag attribute indicating that the frame was |
714 | * acknowledged by the recipient. | 784 | * acknowledged by the recipient. |
@@ -731,6 +801,9 @@ enum nl80211_commands { | |||
731 | * This is used in association with @NL80211_ATTR_WIPHY_TX_POWER_SETTING | 801 | * This is used in association with @NL80211_ATTR_WIPHY_TX_POWER_SETTING |
732 | * for non-automatic settings. | 802 | * for non-automatic settings. |
733 | * | 803 | * |
804 | * @NL80211_ATTR_SUPPORT_IBSS_RSN: The device supports IBSS RSN, which mostly | ||
805 | * means support for per-station GTKs. | ||
806 | * | ||
734 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 807 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
735 | * @__NL80211_ATTR_AFTER_LAST: internal use | 808 | * @__NL80211_ATTR_AFTER_LAST: internal use |
736 | */ | 809 | */ |
@@ -891,6 +964,15 @@ enum nl80211_attrs { | |||
891 | NL80211_ATTR_WIPHY_TX_POWER_SETTING, | 964 | NL80211_ATTR_WIPHY_TX_POWER_SETTING, |
892 | NL80211_ATTR_WIPHY_TX_POWER_LEVEL, | 965 | NL80211_ATTR_WIPHY_TX_POWER_LEVEL, |
893 | 966 | ||
967 | NL80211_ATTR_TX_FRAME_TYPES, | ||
968 | NL80211_ATTR_RX_FRAME_TYPES, | ||
969 | NL80211_ATTR_FRAME_TYPE, | ||
970 | |||
971 | NL80211_ATTR_CONTROL_PORT_ETHERTYPE, | ||
972 | NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, | ||
973 | |||
974 | NL80211_ATTR_SUPPORT_IBSS_RSN, | ||
975 | |||
894 | /* add attributes here, update the policy in nl80211.c */ | 976 | /* add attributes here, update the policy in nl80211.c */ |
895 | 977 | ||
896 | __NL80211_ATTR_AFTER_LAST, | 978 | __NL80211_ATTR_AFTER_LAST, |
@@ -946,8 +1028,10 @@ enum nl80211_attrs { | |||
946 | * @NL80211_IFTYPE_WDS: wireless distribution interface | 1028 | * @NL80211_IFTYPE_WDS: wireless distribution interface |
947 | * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames | 1029 | * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames |
948 | * @NL80211_IFTYPE_MESH_POINT: mesh point | 1030 | * @NL80211_IFTYPE_MESH_POINT: mesh point |
1031 | * @NL80211_IFTYPE_P2P_CLIENT: P2P client | ||
1032 | * @NL80211_IFTYPE_P2P_GO: P2P group owner | ||
949 | * @NL80211_IFTYPE_MAX: highest interface type number currently defined | 1033 | * @NL80211_IFTYPE_MAX: highest interface type number currently defined |
950 | * @__NL80211_IFTYPE_AFTER_LAST: internal use | 1034 | * @NUM_NL80211_IFTYPES: number of defined interface types |
951 | * | 1035 | * |
952 | * These values are used with the %NL80211_ATTR_IFTYPE | 1036 | * These values are used with the %NL80211_ATTR_IFTYPE |
953 | * to set the type of an interface. | 1037 | * to set the type of an interface. |
@@ -962,10 +1046,12 @@ enum nl80211_iftype { | |||
962 | NL80211_IFTYPE_WDS, | 1046 | NL80211_IFTYPE_WDS, |
963 | NL80211_IFTYPE_MONITOR, | 1047 | NL80211_IFTYPE_MONITOR, |
964 | NL80211_IFTYPE_MESH_POINT, | 1048 | NL80211_IFTYPE_MESH_POINT, |
1049 | NL80211_IFTYPE_P2P_CLIENT, | ||
1050 | NL80211_IFTYPE_P2P_GO, | ||
965 | 1051 | ||
966 | /* keep last */ | 1052 | /* keep last */ |
967 | __NL80211_IFTYPE_AFTER_LAST, | 1053 | NUM_NL80211_IFTYPES, |
968 | NL80211_IFTYPE_MAX = __NL80211_IFTYPE_AFTER_LAST - 1 | 1054 | NL80211_IFTYPE_MAX = NUM_NL80211_IFTYPES - 1 |
969 | }; | 1055 | }; |
970 | 1056 | ||
971 | /** | 1057 | /** |
@@ -974,11 +1060,14 @@ enum nl80211_iftype { | |||
974 | * Station flags. When a station is added to an AP interface, it is | 1060 | * Station flags. When a station is added to an AP interface, it is |
975 | * assumed to be already associated (and hence authenticated.) | 1061 | * assumed to be already associated (and hence authenticated.) |
976 | * | 1062 | * |
1063 | * @__NL80211_STA_FLAG_INVALID: attribute number 0 is reserved | ||
977 | * @NL80211_STA_FLAG_AUTHORIZED: station is authorized (802.1X) | 1064 | * @NL80211_STA_FLAG_AUTHORIZED: station is authorized (802.1X) |
978 | * @NL80211_STA_FLAG_SHORT_PREAMBLE: station is capable of receiving frames | 1065 | * @NL80211_STA_FLAG_SHORT_PREAMBLE: station is capable of receiving frames |
979 | * with short barker preamble | 1066 | * with short barker preamble |
980 | * @NL80211_STA_FLAG_WME: station is WME/QoS capable | 1067 | * @NL80211_STA_FLAG_WME: station is WME/QoS capable |
981 | * @NL80211_STA_FLAG_MFP: station uses management frame protection | 1068 | * @NL80211_STA_FLAG_MFP: station uses management frame protection |
1069 | * @NL80211_STA_FLAG_MAX: highest station flag number currently defined | ||
1070 | * @__NL80211_STA_FLAG_AFTER_LAST: internal use | ||
982 | */ | 1071 | */ |
983 | enum nl80211_sta_flags { | 1072 | enum nl80211_sta_flags { |
984 | __NL80211_STA_FLAG_INVALID, | 1073 | __NL80211_STA_FLAG_INVALID, |
@@ -1048,6 +1137,8 @@ enum nl80211_rate_info { | |||
1048 | * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station) | 1137 | * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station) |
1049 | * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this | 1138 | * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this |
1050 | * station) | 1139 | * station) |
1140 | * @NL80211_STA_INFO_TX_RETRIES: total retries (u32, to this station) | ||
1141 | * @NL80211_STA_INFO_TX_FAILED: total failed packets (u32, to this station) | ||
1051 | */ | 1142 | */ |
1052 | enum nl80211_sta_info { | 1143 | enum nl80211_sta_info { |
1053 | __NL80211_STA_INFO_INVALID, | 1144 | __NL80211_STA_INFO_INVALID, |
@@ -1061,6 +1152,8 @@ enum nl80211_sta_info { | |||
1061 | NL80211_STA_INFO_TX_BITRATE, | 1152 | NL80211_STA_INFO_TX_BITRATE, |
1062 | NL80211_STA_INFO_RX_PACKETS, | 1153 | NL80211_STA_INFO_RX_PACKETS, |
1063 | NL80211_STA_INFO_TX_PACKETS, | 1154 | NL80211_STA_INFO_TX_PACKETS, |
1155 | NL80211_STA_INFO_TX_RETRIES, | ||
1156 | NL80211_STA_INFO_TX_FAILED, | ||
1064 | 1157 | ||
1065 | /* keep last */ | 1158 | /* keep last */ |
1066 | __NL80211_STA_INFO_AFTER_LAST, | 1159 | __NL80211_STA_INFO_AFTER_LAST, |
@@ -1091,14 +1184,17 @@ enum nl80211_mpath_flags { | |||
1091 | * information about a mesh path. | 1184 | * information about a mesh path. |
1092 | * | 1185 | * |
1093 | * @__NL80211_MPATH_INFO_INVALID: attribute number 0 is reserved | 1186 | * @__NL80211_MPATH_INFO_INVALID: attribute number 0 is reserved |
1094 | * @NL80211_ATTR_MPATH_FRAME_QLEN: number of queued frames for this destination | 1187 | * @NL80211_MPATH_INFO_FRAME_QLEN: number of queued frames for this destination |
1095 | * @NL80211_ATTR_MPATH_SN: destination sequence number | 1188 | * @NL80211_MPATH_INFO_SN: destination sequence number |
1096 | * @NL80211_ATTR_MPATH_METRIC: metric (cost) of this mesh path | 1189 | * @NL80211_MPATH_INFO_METRIC: metric (cost) of this mesh path |
1097 | * @NL80211_ATTR_MPATH_EXPTIME: expiration time for the path, in msec from now | 1190 | * @NL80211_MPATH_INFO_EXPTIME: expiration time for the path, in msec from now |
1098 | * @NL80211_ATTR_MPATH_FLAGS: mesh path flags, enumerated in | 1191 | * @NL80211_MPATH_INFO_FLAGS: mesh path flags, enumerated in |
1099 | * &enum nl80211_mpath_flags; | 1192 | * &enum nl80211_mpath_flags; |
1100 | * @NL80211_ATTR_MPATH_DISCOVERY_TIMEOUT: total path discovery timeout, in msec | 1193 | * @NL80211_MPATH_INFO_DISCOVERY_TIMEOUT: total path discovery timeout, in msec |
1101 | * @NL80211_ATTR_MPATH_DISCOVERY_RETRIES: mesh path discovery retries | 1194 | * @NL80211_MPATH_INFO_DISCOVERY_RETRIES: mesh path discovery retries |
1195 | * @NL80211_MPATH_INFO_MAX: highest mesh path information attribute number | ||
1196 | * currently defind | ||
1197 | * @__NL80211_MPATH_INFO_AFTER_LAST: internal use | ||
1102 | */ | 1198 | */ |
1103 | enum nl80211_mpath_info { | 1199 | enum nl80211_mpath_info { |
1104 | __NL80211_MPATH_INFO_INVALID, | 1200 | __NL80211_MPATH_INFO_INVALID, |
@@ -1127,6 +1223,8 @@ enum nl80211_mpath_info { | |||
1127 | * @NL80211_BAND_ATTR_HT_CAPA: HT capabilities, as in the HT information IE | 1223 | * @NL80211_BAND_ATTR_HT_CAPA: HT capabilities, as in the HT information IE |
1128 | * @NL80211_BAND_ATTR_HT_AMPDU_FACTOR: A-MPDU factor, as in 11n | 1224 | * @NL80211_BAND_ATTR_HT_AMPDU_FACTOR: A-MPDU factor, as in 11n |
1129 | * @NL80211_BAND_ATTR_HT_AMPDU_DENSITY: A-MPDU density, as in 11n | 1225 | * @NL80211_BAND_ATTR_HT_AMPDU_DENSITY: A-MPDU density, as in 11n |
1226 | * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined | ||
1227 | * @__NL80211_BAND_ATTR_AFTER_LAST: internal use | ||
1130 | */ | 1228 | */ |
1131 | enum nl80211_band_attr { | 1229 | enum nl80211_band_attr { |
1132 | __NL80211_BAND_ATTR_INVALID, | 1230 | __NL80211_BAND_ATTR_INVALID, |
@@ -1147,6 +1245,7 @@ enum nl80211_band_attr { | |||
1147 | 1245 | ||
1148 | /** | 1246 | /** |
1149 | * enum nl80211_frequency_attr - frequency attributes | 1247 | * enum nl80211_frequency_attr - frequency attributes |
1248 | * @__NL80211_FREQUENCY_ATTR_INVALID: attribute number 0 is reserved | ||
1150 | * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz | 1249 | * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz |
1151 | * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current | 1250 | * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current |
1152 | * regulatory domain. | 1251 | * regulatory domain. |
@@ -1158,6 +1257,9 @@ enum nl80211_band_attr { | |||
1158 | * on this channel in current regulatory domain. | 1257 | * on this channel in current regulatory domain. |
1159 | * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm | 1258 | * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm |
1160 | * (100 * dBm). | 1259 | * (100 * dBm). |
1260 | * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number | ||
1261 | * currently defined | ||
1262 | * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use | ||
1161 | */ | 1263 | */ |
1162 | enum nl80211_frequency_attr { | 1264 | enum nl80211_frequency_attr { |
1163 | __NL80211_FREQUENCY_ATTR_INVALID, | 1265 | __NL80211_FREQUENCY_ATTR_INVALID, |
@@ -1177,9 +1279,13 @@ enum nl80211_frequency_attr { | |||
1177 | 1279 | ||
1178 | /** | 1280 | /** |
1179 | * enum nl80211_bitrate_attr - bitrate attributes | 1281 | * enum nl80211_bitrate_attr - bitrate attributes |
1282 | * @__NL80211_BITRATE_ATTR_INVALID: attribute number 0 is reserved | ||
1180 | * @NL80211_BITRATE_ATTR_RATE: Bitrate in units of 100 kbps | 1283 | * @NL80211_BITRATE_ATTR_RATE: Bitrate in units of 100 kbps |
1181 | * @NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE: Short preamble supported | 1284 | * @NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE: Short preamble supported |
1182 | * in 2.4 GHz band. | 1285 | * in 2.4 GHz band. |
1286 | * @NL80211_BITRATE_ATTR_MAX: highest bitrate attribute number | ||
1287 | * currently defined | ||
1288 | * @__NL80211_BITRATE_ATTR_AFTER_LAST: internal use | ||
1183 | */ | 1289 | */ |
1184 | enum nl80211_bitrate_attr { | 1290 | enum nl80211_bitrate_attr { |
1185 | __NL80211_BITRATE_ATTR_INVALID, | 1291 | __NL80211_BITRATE_ATTR_INVALID, |
@@ -1235,6 +1341,7 @@ enum nl80211_reg_type { | |||
1235 | 1341 | ||
1236 | /** | 1342 | /** |
1237 | * enum nl80211_reg_rule_attr - regulatory rule attributes | 1343 | * enum nl80211_reg_rule_attr - regulatory rule attributes |
1344 | * @__NL80211_REG_RULE_ATTR_INVALID: attribute number 0 is reserved | ||
1238 | * @NL80211_ATTR_REG_RULE_FLAGS: a set of flags which specify additional | 1345 | * @NL80211_ATTR_REG_RULE_FLAGS: a set of flags which specify additional |
1239 | * considerations for a given frequency range. These are the | 1346 | * considerations for a given frequency range. These are the |
1240 | * &enum nl80211_reg_rule_flags. | 1347 | * &enum nl80211_reg_rule_flags. |
@@ -1251,6 +1358,9 @@ enum nl80211_reg_type { | |||
1251 | * If you don't have one then don't send this. | 1358 | * If you don't have one then don't send this. |
1252 | * @NL80211_ATTR_POWER_RULE_MAX_EIRP: the maximum allowed EIRP for | 1359 | * @NL80211_ATTR_POWER_RULE_MAX_EIRP: the maximum allowed EIRP for |
1253 | * a given frequency range. The value is in mBm (100 * dBm). | 1360 | * a given frequency range. The value is in mBm (100 * dBm). |
1361 | * @NL80211_REG_RULE_ATTR_MAX: highest regulatory rule attribute number | ||
1362 | * currently defined | ||
1363 | * @__NL80211_REG_RULE_ATTR_AFTER_LAST: internal use | ||
1254 | */ | 1364 | */ |
1255 | enum nl80211_reg_rule_attr { | 1365 | enum nl80211_reg_rule_attr { |
1256 | __NL80211_REG_RULE_ATTR_INVALID, | 1366 | __NL80211_REG_RULE_ATTR_INVALID, |
@@ -1302,11 +1412,31 @@ enum nl80211_reg_rule_flags { | |||
1302 | * @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved | 1412 | * @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved |
1303 | * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel | 1413 | * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel |
1304 | * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm) | 1414 | * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm) |
1415 | * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used | ||
1416 | * @NL80211_SURVEY_INFO_CHANNEL_TIME: amount of time (in ms) that the radio | ||
1417 | * spent on this channel | ||
1418 | * @NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY: amount of the time the primary | ||
1419 | * channel was sensed busy (either due to activity or energy detect) | ||
1420 | * @NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY: amount of time the extension | ||
1421 | * channel was sensed busy | ||
1422 | * @NL80211_SURVEY_INFO_CHANNEL_TIME_RX: amount of time the radio spent | ||
1423 | * receiving data | ||
1424 | * @NL80211_SURVEY_INFO_CHANNEL_TIME_TX: amount of time the radio spent | ||
1425 | * transmitting data | ||
1426 | * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number | ||
1427 | * currently defined | ||
1428 | * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use | ||
1305 | */ | 1429 | */ |
1306 | enum nl80211_survey_info { | 1430 | enum nl80211_survey_info { |
1307 | __NL80211_SURVEY_INFO_INVALID, | 1431 | __NL80211_SURVEY_INFO_INVALID, |
1308 | NL80211_SURVEY_INFO_FREQUENCY, | 1432 | NL80211_SURVEY_INFO_FREQUENCY, |
1309 | NL80211_SURVEY_INFO_NOISE, | 1433 | NL80211_SURVEY_INFO_NOISE, |
1434 | NL80211_SURVEY_INFO_IN_USE, | ||
1435 | NL80211_SURVEY_INFO_CHANNEL_TIME, | ||
1436 | NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY, | ||
1437 | NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY, | ||
1438 | NL80211_SURVEY_INFO_CHANNEL_TIME_RX, | ||
1439 | NL80211_SURVEY_INFO_CHANNEL_TIME_TX, | ||
1310 | 1440 | ||
1311 | /* keep last */ | 1441 | /* keep last */ |
1312 | __NL80211_SURVEY_INFO_AFTER_LAST, | 1442 | __NL80211_SURVEY_INFO_AFTER_LAST, |
@@ -1466,6 +1596,7 @@ enum nl80211_channel_type { | |||
1466 | * enum nl80211_bss - netlink attributes for a BSS | 1596 | * enum nl80211_bss - netlink attributes for a BSS |
1467 | * | 1597 | * |
1468 | * @__NL80211_BSS_INVALID: invalid | 1598 | * @__NL80211_BSS_INVALID: invalid |
1599 | * @NL80211_BSS_BSSID: BSSID of the BSS (6 octets) | ||
1469 | * @NL80211_BSS_FREQUENCY: frequency in MHz (u32) | 1600 | * @NL80211_BSS_FREQUENCY: frequency in MHz (u32) |
1470 | * @NL80211_BSS_TSF: TSF of the received probe response/beacon (u64) | 1601 | * @NL80211_BSS_TSF: TSF of the received probe response/beacon (u64) |
1471 | * @NL80211_BSS_BEACON_INTERVAL: beacon interval of the (I)BSS (u16) | 1602 | * @NL80211_BSS_BEACON_INTERVAL: beacon interval of the (I)BSS (u16) |
@@ -1509,6 +1640,12 @@ enum nl80211_bss { | |||
1509 | 1640 | ||
1510 | /** | 1641 | /** |
1511 | * enum nl80211_bss_status - BSS "status" | 1642 | * enum nl80211_bss_status - BSS "status" |
1643 | * @NL80211_BSS_STATUS_AUTHENTICATED: Authenticated with this BSS. | ||
1644 | * @NL80211_BSS_STATUS_ASSOCIATED: Associated with this BSS. | ||
1645 | * @NL80211_BSS_STATUS_IBSS_JOINED: Joined to this IBSS. | ||
1646 | * | ||
1647 | * The BSS status is a BSS attribute in scan dumps, which | ||
1648 | * indicates the status the interface has wrt. this BSS. | ||
1512 | */ | 1649 | */ |
1513 | enum nl80211_bss_status { | 1650 | enum nl80211_bss_status { |
1514 | NL80211_BSS_STATUS_AUTHENTICATED, | 1651 | NL80211_BSS_STATUS_AUTHENTICATED, |
@@ -1546,11 +1683,14 @@ enum nl80211_auth_type { | |||
1546 | * @NL80211_KEYTYPE_GROUP: Group (broadcast/multicast) key | 1683 | * @NL80211_KEYTYPE_GROUP: Group (broadcast/multicast) key |
1547 | * @NL80211_KEYTYPE_PAIRWISE: Pairwise (unicast/individual) key | 1684 | * @NL80211_KEYTYPE_PAIRWISE: Pairwise (unicast/individual) key |
1548 | * @NL80211_KEYTYPE_PEERKEY: PeerKey (DLS) | 1685 | * @NL80211_KEYTYPE_PEERKEY: PeerKey (DLS) |
1686 | * @NUM_NL80211_KEYTYPES: number of defined key types | ||
1549 | */ | 1687 | */ |
1550 | enum nl80211_key_type { | 1688 | enum nl80211_key_type { |
1551 | NL80211_KEYTYPE_GROUP, | 1689 | NL80211_KEYTYPE_GROUP, |
1552 | NL80211_KEYTYPE_PAIRWISE, | 1690 | NL80211_KEYTYPE_PAIRWISE, |
1553 | NL80211_KEYTYPE_PEERKEY, | 1691 | NL80211_KEYTYPE_PEERKEY, |
1692 | |||
1693 | NUM_NL80211_KEYTYPES | ||
1554 | }; | 1694 | }; |
1555 | 1695 | ||
1556 | /** | 1696 | /** |
@@ -1581,6 +1721,9 @@ enum nl80211_wpa_versions { | |||
1581 | * CCMP keys, each six bytes in little endian | 1721 | * CCMP keys, each six bytes in little endian |
1582 | * @NL80211_KEY_DEFAULT: flag indicating default key | 1722 | * @NL80211_KEY_DEFAULT: flag indicating default key |
1583 | * @NL80211_KEY_DEFAULT_MGMT: flag indicating default management key | 1723 | * @NL80211_KEY_DEFAULT_MGMT: flag indicating default management key |
1724 | * @NL80211_KEY_TYPE: the key type from enum nl80211_key_type, if not | ||
1725 | * specified the default depends on whether a MAC address was | ||
1726 | * given with the command using the key or not (u32) | ||
1584 | * @__NL80211_KEY_AFTER_LAST: internal | 1727 | * @__NL80211_KEY_AFTER_LAST: internal |
1585 | * @NL80211_KEY_MAX: highest key attribute | 1728 | * @NL80211_KEY_MAX: highest key attribute |
1586 | */ | 1729 | */ |
@@ -1592,6 +1735,7 @@ enum nl80211_key_attributes { | |||
1592 | NL80211_KEY_SEQ, | 1735 | NL80211_KEY_SEQ, |
1593 | NL80211_KEY_DEFAULT, | 1736 | NL80211_KEY_DEFAULT, |
1594 | NL80211_KEY_DEFAULT_MGMT, | 1737 | NL80211_KEY_DEFAULT_MGMT, |
1738 | NL80211_KEY_TYPE, | ||
1595 | 1739 | ||
1596 | /* keep last */ | 1740 | /* keep last */ |
1597 | __NL80211_KEY_AFTER_LAST, | 1741 | __NL80211_KEY_AFTER_LAST, |
@@ -1619,8 +1763,8 @@ enum nl80211_tx_rate_attributes { | |||
1619 | 1763 | ||
1620 | /** | 1764 | /** |
1621 | * enum nl80211_band - Frequency band | 1765 | * enum nl80211_band - Frequency band |
1622 | * @NL80211_BAND_2GHZ - 2.4 GHz ISM band | 1766 | * @NL80211_BAND_2GHZ: 2.4 GHz ISM band |
1623 | * @NL80211_BAND_5GHZ - around 5 GHz band (4.9 - 5.7 GHz) | 1767 | * @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz) |
1624 | */ | 1768 | */ |
1625 | enum nl80211_band { | 1769 | enum nl80211_band { |
1626 | NL80211_BAND_2GHZ, | 1770 | NL80211_BAND_2GHZ, |
@@ -1658,9 +1802,9 @@ enum nl80211_attr_cqm { | |||
1658 | 1802 | ||
1659 | /** | 1803 | /** |
1660 | * enum nl80211_cqm_rssi_threshold_event - RSSI threshold event | 1804 | * enum nl80211_cqm_rssi_threshold_event - RSSI threshold event |
1661 | * @NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW - The RSSI level is lower than the | 1805 | * @NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW: The RSSI level is lower than the |
1662 | * configured threshold | 1806 | * configured threshold |
1663 | * @NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH - The RSSI is higher than the | 1807 | * @NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH: The RSSI is higher than the |
1664 | * configured threshold | 1808 | * configured threshold |
1665 | */ | 1809 | */ |
1666 | enum nl80211_cqm_rssi_threshold_event { | 1810 | enum nl80211_cqm_rssi_threshold_event { |