linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johannes Berg <johannes@sipsolutions.net>
To: linux-wireless@vger.kernel.org
Subject: [RFC 00/20] mac80211: multi-channel work
Date: Fri, 27 Jul 2012 13:16:36 +0200	[thread overview]
Message-ID: <1343387816-9414-1-git-send-email-johannes@sipsolutions.net> (raw)

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


             reply	other threads:[~2012-07-27 11:17 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-27 11:16 Johannes Berg [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1343387816-9414-1-git-send-email-johannes@sipsolutions.net \
    --to=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).