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 { |
