From 98ad45c3d3f257c3649d4e198723267231203184 Mon Sep 17 00:00:00 2001 From: sam Date: Thu, 8 Jan 2009 17:12:47 +0000 Subject: 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 --- sys/net80211/ieee80211_ioctl.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'sys/net80211/ieee80211_ioctl.c') diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c index b967e47..3f62850 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 #include #include +#ifdef IEEE80211_SUPPORT_TDMA +#include +#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; -- cgit v1.1