aboutsummaryrefslogtreecommitdiff
path: root/sys/net80211/ieee80211_ioctl.c
diff options
context:
space:
mode:
authorSam Leffler <sam@FreeBSD.org>2009-01-08 17:12:47 +0000
committerSam Leffler <sam@FreeBSD.org>2009-01-08 17:12:47 +0000
commit10ad9a77f391233a7052a3715578dda5a6e9812e (patch)
tree6038542738398db4d8d4a8e36ed50ac642a506ac /sys/net80211/ieee80211_ioctl.c
parentba181a0efd532a8ea381523d736a4c43d3794ac7 (diff)
downloadsrc-10ad9a77f391233a7052a3715578dda5a6e9812e.tar.gz
src-10ad9a77f391233a7052a3715578dda5a6e9812e.zip
TDMA support for long distance point-to-point links using ath devices:
o add net80211 support for a tdma vap that is built on top of the existing adhoc-demo support o add tdma scheduling of frame transmission to the ath driver; it's conceivable other devices might be capable of this too in which case they can make use of the 802.11 protocol additions etc. o add minor bits to user tools that need to know: ifconfig to setup and configure, new statistics in athstats, and new debug mask bits While the architecture can support >2 slots in a TDMA BSS the current design is intended (and tested) for only 2 slots. Sponsored by: Intel
Notes
Notes: svn path=/head/; revision=186904
Diffstat (limited to 'sys/net80211/ieee80211_ioctl.c')
-rw-r--r--sys/net80211/ieee80211_ioctl.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c
index b967e479cc47..3f62850cc268 100644
--- a/sys/net80211/ieee80211_ioctl.c
+++ b/sys/net80211/ieee80211_ioctl.c
@@ -1,6 +1,6 @@
/*-
* Copyright (c) 2001 Atsushi Onoe
- * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
+ * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -62,6 +62,9 @@ __FBSDID("$FreeBSD$");
#include <net80211/ieee80211_ioctl.h>
#include <net80211/ieee80211_regdomain.h>
#include <net80211/ieee80211_input.h>
+#ifdef IEEE80211_SUPPORT_TDMA
+#include <net80211/ieee80211_tdma.h>
+#endif
#define IS_UP_AUTO(_vap) \
(IFNET_IS_UP_RUNNING(vap->iv_ifp) && \
@@ -1089,6 +1092,14 @@ ieee80211_ioctl_get80211(struct ieee80211vap *vap, u_long cmd,
ireq->i_val =
(vap->iv_flags_ext & IEEE80211_FEXT_RIFS) != 0;
break;
+#ifdef IEEE80211_SUPPORT_TDMA
+ case IEEE80211_IOC_TDMA_SLOT:
+ case IEEE80211_IOC_TDMA_SLOTCNT:
+ case IEEE80211_IOC_TDMA_SLOTLEN:
+ case IEEE80211_IOC_TDMA_BINTERVAL:
+ error = ieee80211_tdma_ioctl_get80211(vap, ireq);
+ break;
+#endif
default:
error = EINVAL;
break;
@@ -3105,6 +3116,14 @@ ieee80211_ioctl_set80211(struct ieee80211vap *vap, u_long cmd, struct ieee80211r
if (isvapht(vap))
error = ERESTART;
break;
+#ifdef IEEE80211_SUPPORT_TDMA
+ case IEEE80211_IOC_TDMA_SLOT:
+ case IEEE80211_IOC_TDMA_SLOTCNT:
+ case IEEE80211_IOC_TDMA_SLOTLEN:
+ case IEEE80211_IOC_TDMA_BINTERVAL:
+ error = ieee80211_tdma_ioctl_set80211(vap, ireq);
+ break;
+#endif
default:
error = EINVAL;
break;