Search Linux Wireless

[RFC 0/4] add master channel switch announcement support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is an early RFC of a possible channel switch announcement infrastructure.
It adds CSA/ECSA handling support for AP. This is required for DFS operation
(e.g. Wi-Fi Alliance requires this for 802.11h certification). This will also
be required for IBSS-DFS later.

I'd like to discuss if this design approach is going in the right direction.
What is currently working:

 * channels are announced by adding IEs (CSA and Extended CSA) in beacons
 * after some (configurable) time, the channel is switched
 * with the channel switch, CSA/ECSA IEs are removed and channel information
   is updated.
 * Userspace calls a new command NL80211_CMD_CHANNEL_SWITCH along with channel info
   (freq + width), whether traffic should be blocked and timing information
 * it currently works for me [TM] on my ath9k based machine

Questions:

 * We already have NL80211_CMD_CH_SWITCH_NOTIFY which is only used for notification.
   Maybe we can rename that and re-use it instead of adding a new command
   NL80211_CMD_CHANNEL_SWITCH?
 * Changes from HT20/NOHT to HT20/NOHT are handled with normal Channel Switch
   Announcements, everything else (for 40 MHz) is done with Extended Channel Switch
   Announcements. As far as I read the spec, we can't  use the secondary channel
   offset IE in beacons, but maybe I'm wrong here?
 * could other drivers (next to ath9k) work with this API?

Limitations:
 * only works for single interfaces (no plan to change that, due to lack of good concept)
 * Only changes in the same band (e.g. 2GHz -> 2GHz or 5GHz -> 5 GHz) and same
   operation mode (HT->HT or NOHT->NOHT) are supported. Especially the first
   restriction would be troublesome when rewriting the beacon (not only channel
   info has to be changed, but also basic rates, country information, etc ...).
   => What do you think about this approach?
   => (An alternative would be to require userspace to supply the next beacon too)
 * probe responses are not handled yet (have to look into it)
 * user notification is missing (we should send an event after this is finished)
 * locking and many corner cases are still broken (will fix that later)

As always, any comments are appreciated.

Cheers,
	Simon 

Simon Wunderlich (4):
  cfg80211: add chandef to operating class conversion
  nl80211/cfg80211: add channel switch command
  mac80211: add channel switch command and beacon callbacks
  ath9k: enable CSA functionality in ath9k

 drivers/net/wireless/ath/ath9k/main.c |    6 +
 include/linux/ieee80211.h             |    9 ++
 include/net/cfg80211.h                |   15 ++
 include/net/mac80211.h                |   21 +++
 include/uapi/linux/nl80211.h          |   20 +++
 net/mac80211/cfg.c                    |  262 +++++++++++++++++++++++++++++++++
 net/mac80211/driver-ops.h             |   11 ++
 net/mac80211/ieee80211_i.h            |    9 ++
 net/mac80211/iface.c                  |    2 +
 net/mac80211/trace.h                  |   20 +++
 net/mac80211/tx.c                     |   59 ++++++++
 net/mac80211/util.c                   |  210 ++++++++++++++++++++++++++
 net/wireless/nl80211.c                |   76 +++++++++-
 net/wireless/util.c                   |  193 ++++++++++++++++++++++++
 14 files changed, 912 insertions(+), 1 deletion(-)

-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux