[PATCH 0/2 v2] cfg80211: mac80211: 802.11p OCB mode support
From: Rostislav Lisovy
Date: Thu Oct 30 2014 - 06:43:28 EST
The IEEE 802.11p amendment (already part of IEEE 802.11-2012)
specifies usage of 5 and 10 MHz wide channels in 5.9GHz band for
vehicular environment. All the 802.11p compliant devices should
be set to the newly added operation mode -- OCB (Outside the
Context of a BSS). No authentication/association is necessary to
communicate. The only parameter to be configured is the channel
(central frequency and bandwidth) to communicate on. The channel
has to be known a priori. It is set during the 'ocb join'
operation (sent via netlink message from user-space).
This patchset adds the OCB mode, OCB join and leave handling
(nl80211, cfg80211, mac80211), 802.11p EDCA parameters
modification, RX and TX path (for unicast/broadcast messages).
What aspects are ignored for now:
* Rate control -- We limit the supported datarates to the .11a
mandatory rates and use the Minstrel as usual
* Actually restricting the OCB mode to the 5.9 GHz band
Tested with the ath9k card with slightly modified driver.
User-space configuration utilities are not part of this patch.
Changes since v1:
* Do not define bssid_wildcard in a header file, define it as
'static const' in ieee80211_setup_sdata only (JBerg)
* Use GFP_ATOMIC memory allocation in ieee80211_ocb_rx_no_sta
so it can be called in the RX path (JBerg)
* IEEE80211_CHANCTX_EXCLUSIVE -> IEEE80211_CHANCTX_SHARED (JBerg)
* Fix the situation when the housekeeping timer might be called
(JBerg)
* Remove NL80211_CHAN_WIDTH_5/10 from 'old channels' handling
functions cfg80211_get_chandef_type() and nl80211_send_chandef()
(JBerg)
* Do not break ABI by adding new fileds in the middle of the enum
nl80211_commands (JBerg)
* Add a flag denoting whether we are joined to the network or not
* Handle multiple consecutive calls to ocb_join
* Many minor fixes
Rostislav Lisovy (2):
cfg80211: 802.11p OCB mode handling
mac80211: 802.11p OCB mode support
include/net/cfg80211.h | 14 +++
include/net/mac80211.h | 2 +
include/uapi/linux/nl80211.h | 10 ++
net/mac80211/Kconfig | 11 ++
net/mac80211/Makefile | 3 +-
net/mac80211/cfg.c | 14 +++
net/mac80211/chan.c | 3 +
net/mac80211/debug.h | 10 ++
net/mac80211/driver-ops.h | 3 +-
net/mac80211/ieee80211_i.h | 29 +++++
net/mac80211/iface.c | 23 ++++
net/mac80211/ocb.c | 251 +++++++++++++++++++++++++++++++++++++++++++
net/mac80211/rx.c | 35 ++++++
net/mac80211/tx.c | 15 +++
net/mac80211/util.c | 31 +++++-
net/mac80211/wme.c | 4 +
net/wireless/Makefile | 2 +-
net/wireless/chan.c | 8 ++
net/wireless/core.h | 10 ++
net/wireless/nl80211.c | 41 +++++++
net/wireless/ocb.c | 89 +++++++++++++++
net/wireless/rdev-ops.h | 21 ++++
net/wireless/trace.h | 21 ++++
net/wireless/util.c | 5 +-
24 files changed, 646 insertions(+), 9 deletions(-)
create mode 100644 net/mac80211/ocb.c
create mode 100644 net/wireless/ocb.c
--
2.0.0.rc4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/