Return-path: Received: from nick.hrz.tu-chemnitz.de ([134.109.228.11]:39928 "EHLO nick.hrz.tu-chemnitz.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753744Ab3HBPiR (ORCPT ); Fri, 2 Aug 2013 11:38:17 -0400 From: Simon Wunderlich To: linux-wireless@vger.kernel.org Cc: Johannes Berg , Mathias Kretschmer , Simon Wunderlich Subject: [PATCH 0/7] add IBSS channel switch announcement support Date: Fri, 2 Aug 2013 17:37:59 +0200 Message-Id: <1375457886-7275-1-git-send-email-siwu@hrz.tu-chemnitz.de> (sfid-20130802_173826_562776_AC69741D) Sender: linux-wireless-owner@vger.kernel.org List-ID: This patchset adds channel switch support for IBSS mode. This is required for later DFS support in IBSS. It builds on top of the previously submitted AP DFS patchset. The rough design is: * Userspace may request to change channel using the already introduced NL80211_CMD_CHANNEL_SWITCH command. Unlike AP mode, it does not contain IEs or offset for CSA elements, because this is to be generated by the kernel. * Also other stations may request a channel change by sending (E)CSA within beacons or action frames. This is parsed and further handled as if it would have come from userspace. * When performing a channel switch, an action frame is sent, because beaconing is distributed among IBSS peers and might be lost early. Furthermore, channel switch announcement IEs are added to the beacon/probe response. * When a channel switch could was not understood, it disconnects from the IBSS and tries to re-connect. Discussion points: * When disconnecting from the IBSS because a channel switch announcement was bogus or not understood, we might reconnect to the same BSS again - on the old channel, because the other stas are still there, and stay there. Although it is "accepted behaviour" in IEEE 802.11 that not all station could make it, we should consider ignoring beacons/presp if they include CSAs when scanning for networks to prevent this problem. As always, any comments are appreciated. Cheers, Simon Simon Wunderlich (7): cfg80211: export cfg80211_chandef_dfs_required mac80211: fix ieee80211_sta_process_chanswitch for 5/10 MHz channels mac80211: split off channel switch parsing function mac80211: move ibss presp generation in own function mac80211: add support for CSA in IBSS mode mac80211: send a CSA action frame when changing channel nl80211: enable IBSS support for channel switch announcements include/net/cfg80211.h | 9 + net/mac80211/cfg.c | 84 ++++-- net/mac80211/ibss.c | 715 +++++++++++++++++++++++++++++++++++--------- net/mac80211/ieee80211_i.h | 24 ++ net/mac80211/iface.c | 4 + net/mac80211/mlme.c | 143 +++++---- net/mac80211/rx.c | 36 ++- net/mac80211/tx.c | 34 ++- net/wireless/chan.c | 1 + net/wireless/core.h | 8 - net/wireless/nl80211.c | 49 ++- 11 files changed, 853 insertions(+), 254 deletions(-) -- 1.7.10.4