aboutsummaryrefslogtreecommitdiffstats
path: root/wpa_supplicant/driver_i.h
diff options
context:
space:
mode:
authorJouni Malinen <jouni.malinen@atheros.com>2010-01-03 11:57:51 (GMT)
committerJouni Malinen <j@w1.fi>2010-01-03 11:57:51 (GMT)
commit55777702cd7df7d459c89ceee8bfbb8a7f5bce0a (patch)
tree12771d02288ce3fbb0c596221db398a2c21b1d07 /wpa_supplicant/driver_i.h
parentd7c53e432bee5085a8d654b71a6311919e06eedf (diff)
downloadhostap-55777702cd7df7d459c89ceee8bfbb8a7f5bce0a.zip
hostap-55777702cd7df7d459c89ceee8bfbb8a7f5bce0a.tar.gz
hostap-55777702cd7df7d459c89ceee8bfbb8a7f5bce0a.tar.bz2
Add driver API functionality for off-channel Action frames
This adds new commands and events for allowing off-channel Action frame exchanges to be requested. This functionality is not yet used and is only fully supported by driver_test.c at this point. driver_nl80211.c has support for the remain-on-channel commands, but the Action frame TX/RX part is still pending review for the kernel code and as such, is not yet included here.
Diffstat (limited to 'wpa_supplicant/driver_i.h')
-rw-r--r--wpa_supplicant/driver_i.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/wpa_supplicant/driver_i.h b/wpa_supplicant/driver_i.h
index 4a701f1..2f5b134 100644
--- a/wpa_supplicant/driver_i.h
+++ b/wpa_supplicant/driver_i.h
@@ -383,6 +383,17 @@ static inline int wpa_drv_set_supp_port(struct wpa_supplicant *wpa_s,
return 0;
}
+static inline int wpa_drv_send_action(struct wpa_supplicant *wpa_s,
+ unsigned int freq,
+ const u8 *dst, const u8 *src,
+ const u8 *data, size_t data_len)
+{
+ if (wpa_s->driver->send_action)
+ return wpa_s->driver->send_action(wpa_s->drv_priv, freq,
+ dst, src, data, data_len);
+ return -1;
+}
+
static inline int wpa_drv_alloc_interface_addr(struct wpa_supplicant *wpa_s,
u8 *addr)
{
@@ -399,6 +410,25 @@ static inline void wpa_drv_release_interface_addr(struct wpa_supplicant *wpa_s,
wpa_s->driver->release_interface_addr(wpa_s->drv_priv, addr);
}
+static inline int wpa_drv_remain_on_channel(struct wpa_supplicant *wpa_s,
+ unsigned int freq,
+ unsigned int duration)
+{
+ if (wpa_s->driver->remain_on_channel)
+ return wpa_s->driver->remain_on_channel(wpa_s->drv_priv, freq,
+ duration);
+ return -1;
+}
+
+static inline int wpa_drv_cancel_remain_on_channel(
+ struct wpa_supplicant *wpa_s)
+{
+ if (wpa_s->driver->cancel_remain_on_channel)
+ return wpa_s->driver->cancel_remain_on_channel(
+ wpa_s->drv_priv);
+ return -1;
+}
+
static inline int wpa_drv_probe_req_report(struct wpa_supplicant *wpa_s,
int report)
{