aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/nl80211.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-11-25 04:02:29 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-11-29 15:24:35 -0500
commitf7ca38dfe58c20cb1aa2ed9643187e8b194b5bae (patch)
tree42db54588fd5fa769a16def75708117903577b40 /include/linux/nl80211.h
parent9a67d761b39614c0495dcab9a204e21a9f4c4d31 (diff)
nl80211/cfg80211: extend mgmt-tx API for off-channel
With p2p, it is sometimes necessary to transmit a frame (typically an action frame) on another channel than the current channel. Enable this through the CMD_FRAME API, and allow it to wait for a response. A new command allows that wait to be aborted. However, allow userspace to specify whether or not it wants to allow off-channel TX, it may actually want to use the same channel only. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/linux/nl80211.h')
-rw-r--r--include/linux/nl80211.h25
1 files changed, 20 insertions, 5 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h
index d706bf3badc..5cfa579df47 100644
--- a/include/linux/nl80211.h
+++ b/include/linux/nl80211.h
@@ -358,11 +358,16 @@
358 * user space application). %NL80211_ATTR_FRAME is used to specify the 358 * user space application). %NL80211_ATTR_FRAME is used to specify the
359 * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ (and 359 * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ (and
360 * optionally %NL80211_ATTR_WIPHY_CHANNEL_TYPE) is used to indicate on 360 * optionally %NL80211_ATTR_WIPHY_CHANNEL_TYPE) is used to indicate on
361 * which channel the frame is to be transmitted or was received. This 361 * which channel the frame is to be transmitted or was received. If this
362 * channel has to be the current channel (remain-on-channel or the 362 * channel is not the current channel (remain-on-channel or the
363 * operational channel). When called, this operation returns a cookie 363 * operational channel) the device will switch to the given channel and
364 * (%NL80211_ATTR_COOKIE) that will be included with the TX status event 364 * transmit the frame, optionally waiting for a response for the time
365 * pertaining to the TX request. 365 * specified using %NL80211_ATTR_DURATION. When called, this operation
366 * returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the
367 * TX status event pertaining to the TX request.
368 * @NL80211_CMD_FRAME_WAIT_CANCEL: When an off-channel TX was requested, this
369 * command may be used with the corresponding cookie to cancel the wait
370 * time if it is known that it is no longer necessary.
366 * @NL80211_CMD_ACTION: Alias for @NL80211_CMD_FRAME for backward compatibility. 371 * @NL80211_CMD_ACTION: Alias for @NL80211_CMD_FRAME for backward compatibility.
367 * @NL80211_CMD_FRAME_TX_STATUS: Report TX status of a management frame 372 * @NL80211_CMD_FRAME_TX_STATUS: Report TX status of a management frame
368 * transmitted with %NL80211_CMD_FRAME. %NL80211_ATTR_COOKIE identifies 373 * transmitted with %NL80211_CMD_FRAME. %NL80211_ATTR_COOKIE identifies
@@ -493,6 +498,8 @@ enum nl80211_commands {
493 NL80211_CMD_SET_CHANNEL, 498 NL80211_CMD_SET_CHANNEL,
494 NL80211_CMD_SET_WDS_PEER, 499 NL80211_CMD_SET_WDS_PEER,
495 500
501 NL80211_CMD_FRAME_WAIT_CANCEL,
502
496 /* add new commands above here */ 503 /* add new commands above here */
497 504
498 /* used to define NL80211_CMD_MAX below */ 505 /* used to define NL80211_CMD_MAX below */
@@ -828,6 +835,12 @@ enum nl80211_commands {
828 * 835 *
829 * @NL80211_ATTR_MCAST_RATE: Multicast tx rate (in 100 kbps) for IBSS 836 * @NL80211_ATTR_MCAST_RATE: Multicast tx rate (in 100 kbps) for IBSS
830 * 837 *
838 * @NL80211_ATTR_OFFCHANNEL_TX_OK: For management frame TX, the frame may be
839 * transmitted on another channel when the channel given doesn't match
840 * the current channel. If the current channel doesn't match and this
841 * flag isn't set, the frame will be rejected. This is also used as an
842 * nl80211 capability flag.
843 *
831 * @NL80211_ATTR_MAX: highest attribute number currently defined 844 * @NL80211_ATTR_MAX: highest attribute number currently defined
832 * @__NL80211_ATTR_AFTER_LAST: internal use 845 * @__NL80211_ATTR_AFTER_LAST: internal use
833 */ 846 */
@@ -1002,6 +1015,8 @@ enum nl80211_attrs {
1002 1015
1003 NL80211_ATTR_MCAST_RATE, 1016 NL80211_ATTR_MCAST_RATE,
1004 1017
1018 NL80211_ATTR_OFFCHANNEL_TX_OK,
1019
1005 /* add attributes here, update the policy in nl80211.c */ 1020 /* add attributes here, update the policy in nl80211.c */
1006 1021
1007 __NL80211_ATTR_AFTER_LAST, 1022 __NL80211_ATTR_AFTER_LAST,