linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC 00/20] mac80211: multi-channel work
@ 2012-07-27 11:16 Johannes Berg
  2012-07-27 11:16 ` [RFC 01/20] mac80211: introduce channel context skeleton code Johannes Berg
                   ` (21 more replies)
  0 siblings, 22 replies; 39+ messages in thread
From: Johannes Berg @ 2012-07-27 11:16 UTC (permalink / raw)
  To: linux-wireless

Building on Michal's work for channel contexts, which I've
kept as the first few patches (some of them modified for a
few small fixes), this actually makes mac80211 support more
than a single channel. How many channels is determined by
the driver and verified by cfg80211, so mac80211 isn't much
involved there.

Internally, mac80211 will exclusively use channel contexts.
It then has some compatibility code that will call the old
config() method of the driver, if the driver isn't updated
to take advantage of channel contexts.

In order to support multi-channel, drivers must:
 * implement the five new channel context methods
 * be able to offload scanning
 * be able to offload remain-on-channel

Trying to advertise multiple channels without support for
channel context methods is an error, advertising multiple
channels without support for scan/roc causes all scan/roc
operations to always fail.

So far, I've only tested this with hwsim, and even then
only the backward compatibility code to make sure that it
won't break drivers that aren't updated. I've tested that
channel contexts are added/removed properly and that the
configuration is updated in the device. I've also tested
with two virtual interfaces to see that compatible channel
types are still possible and result in the desired driver
methods being called.

Comments welcome!

johannes


^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2012-09-05 14:02 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-27 11:16 [RFC 00/20] mac80211: multi-channel work Johannes Berg
2012-07-27 11:16 ` [RFC 01/20] mac80211: introduce channel context skeleton code Johannes Berg
2012-07-27 11:16 ` [RFC 02/20] mac80211: introduce new ieee80211_ops Johannes Berg
2012-07-27 11:16 ` [RFC 03/20] mac80211: add drv_* wrappers for channel contexts Johannes Berg
2012-07-27 18:08   ` Joe Perches
2012-07-27 21:03     ` Johannes Berg
2012-07-27 11:16 ` [RFC 04/20] mac80211: add chanctx tracing Johannes Berg
2012-07-27 11:16 ` [RFC 05/20] mac80211: use channel context notifications Johannes Berg
2012-07-27 11:16 ` [RFC 06/20] mac80211: refactor set_channel_type Johannes Berg
2012-07-29  9:03   ` Eliad Peller
2012-07-27 11:16 ` [RFC 07/20] mac80211: reuse channels for channel contexts Johannes Berg
2012-07-27 11:16 ` [RFC 08/20] mac80211: mesh: don't use global channel type Johannes Berg
2012-07-27 11:16 ` [RFC 09/20] mac80211: remove almost unused local variable Johannes Berg
2012-07-27 11:16 ` [RFC 10/20] mac80211: remove freq/chantype from debugfs Johannes Berg
2012-07-27 11:16 ` [RFC 11/20] mac80211: use oper_channel in rate init Johannes Berg
2012-07-27 11:16 ` [RFC 12/20] mac80211: don't assume channel is set in tracing Johannes Berg
2012-07-27 11:16 ` [RFC 13/20] mac80211: use RX status band instead of current band Johannes Berg
2012-07-27 11:16 ` [RFC 14/20] mac80211: check operating channel in scan Johannes Berg
2012-07-27 11:16 ` [RFC 15/20] mac80211: convert ops checks to WARN_ON Johannes Berg
2012-07-27 11:16 ` [RFC 16/20] mac80211: check channel context methods Johannes Berg
2012-07-27 11:16 ` [RFC 17/20] mac80211: track whether to use channel contexts Johannes Berg
2012-07-27 11:16 ` [RFC 18/20] mac80211: allow drv_add_chanctx to fail Johannes Berg
2012-07-27 11:42   ` Michal Kazior
2012-07-27 11:42     ` Johannes Berg
2012-07-27 11:45       ` Michal Kazior
2012-07-27 11:16 ` [RFC 19/20] mac80211: return error code from ieee80211_vif_use_channel Johannes Berg
2012-07-27 11:16 ` [RFC 20/20] mac80211: use channel contexts Johannes Berg
2012-07-27 11:46   ` Michal Kazior
2012-07-27 11:55     ` Johannes Berg
2012-08-06 15:21   ` Arik Nemtsov
2012-08-06 15:26     ` Johannes Berg
2012-07-27 12:31 ` [RFC 00/20] mac80211: multi-channel work Johannes Berg
2012-08-24  9:29 ` Johannes Berg
2012-08-26  7:58   ` Eliad Peller
2012-08-26  8:10     ` Johannes Berg
2012-08-26  8:28       ` Eliad Peller
2012-08-26  8:30         ` Johannes Berg
2012-08-26  8:36           ` Eliad Peller
2012-09-05 14:03             ` Johannes Berg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).