On 4 February 2014 11:27, Luca Coelho <luca@xxxxxxxxx> wrote: > On Mon, 2014-02-03 at 13:43 +0100, Johannes Berg wrote: >> On Mon, 2014-02-03 at 10:58 +0100, Michal Kazior wrote: >> > This makes it possible for more elegant channel >> > switching behavior by moving the decision up to >> > cfg80211. >> > >> > Until now mac80211 could start channel switching >> > internally for STA, mesh and IBSS interfaces >> > without userspace interaction. This bypassed >> > interface combination checks at the very least. >> > >> > Now mac80211 requests cfg80211 to channel switch >> > an interface, in a similar manner as userspace >> > asks cfg80211 for a channel switch. This makes it >> > possible to perform interface combination checks >> > (albeit it is not implemented yet). >> >> Couldn't you just return the decision to mac80211? It would also have to >> keep track of start/end of the CSA period, I guess, since a few things >> that Ilan is working on shouldn't be allowed while the AP announces CSA. > > mac80211 could keep track of the start/finalize callbacks. But I don't > think that's a good idea, as I mentioned in the other email. > > I think mac80211 should keep the client CSA control and the userspace > should control the host interfaces. cfg80211 should keep track of the > channel switches and be asked if the switch is okay (so it can take the > interface combinations and regulatory into consideration). Why does mac80211 need to keep CSA control? Does it solve anything? > Maybe mac80211 could call a cfg80211_reserve_channel() function? If that > call fails, it means the switch cannot be done. If it succeeds, > cfg80211 keeps the reservation. Same thing if the switch is coming from > userspace, nl80211 could call cfg80211_reserve_channel() in the same > way. The problem is you need RTNL for this to make any sense (interface combinations need it). You can't make a directly callable cfg80211 function available in mac80211 that takes RTNL. It just won't work. The only way I see it, is you need an asynchronous call with a callback. Michał -- 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