On Wed, 2014-01-22 at 11:23 +0100, Michal Kazior wrote: > On 22 January 2014 10:58, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > > On Wed, 2014-01-22 at 10:40 +0100, Michal Kazior wrote: > >> > That's true, so maybe you just need to explain this chandef thing > >> > better? I don't really see the utility (admittedly without actually > >> > checking carefully in the code where you need it) > >> > >> Since you can CSA multiple interfaces you can have different chandefs > >> for those interfaces. This means you need to know the chandef for the > >> final channel switch. > >> > >> You could probably cache this to local->csa_chandef when processing > >> the channel switch request itself, but that means you explicitly limit > >> yourself to single CSA against a given hw/driver. > >> > >> At one point I was contemplating having a dedicated structure for > >> channel switches, and have a list of channel switch structures in > >> ieee80211_local, but perhaps that's just an overkill. > > > > But if we bind all interfaces against a 'pending' chanctx, then that's > > all implicit in that chanctx calculating/binding, no? > > Correct. > > Hmm. How do you bind a pending chanctx? Does this mean an interface > can have two channel contexts - the current one, and the pending one? > > I suppose you'd still need to iterate over interfaces (through > local->interfaces or the [non-existent yet] chanctx->interfaces) > anyway for validate/sanity check if the final switch is really okay, > and/or possibly disconnect/stop some interfaces that didn't get a > chance to request a channel switch (I'm thinking of your STA-CSA-GO > case). I'll have to let Luca answer this. :) johannes -- 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