On Wed, 2013-11-06 at 12:47 +0100, Simon Wunderlich wrote: > Hey Luca, > > > With a CSA count of 0, we won't transmit any CSA beacons, because the > > switch will happen before the next TBTT. To avoid extra work and > > potential confusion in the drivers, complete the CSA immediately, > > instead of waiting for the driver to call ieee80211_csa_finish(). > > > > To keep things simpler, we also switch immediately when the CSA count > > is 1, while in theory we should delay the switch until just before the > > next TBTT. > > > > Additionally, move the ieee80211_csa_finish() function to cfg.c, > > where it makes more sense (and since we call it from cfg.c now). > > > > Cc: Simon Wunderlich <sw@xxxxxxxxxxxxxxxxxx> > > Signed-off-by: Luciano Coelho <luciano.coelho@xxxxxxxxx> > > --- > > Simon, I think with this we won't need any changes in ath9k, right? > > I think you still need to change ieee80211_ibss_process_chanswitch() which > also calls ieee80211_ibss_csa_beacon() and drv_channel_switch_beacon(). Okay, I admit I didn't look into IBSS that much... *again*. :( I assumed that simply not calling ieee80211_ibss_csa_beacon() would have the right effect. > Also, I don't think that this is sufficient for IBSS mode - changing immediately > without sending any action frame will just split the IBSS network. Action > frames are currently set in ieee80211_ibss_csa_beacon() as well, with this > change we should probably move that to another position. Okay, I'll look into this. In AP mode, switching without sending the action frame will also break the connection, but at least in the AP case the userspace could send the action frame before calling channel switch in cfg80211. > Even if we don't allow count <=1 from userspace as Johannes suggested, Ah, I had misunderstood Johannes. I thought he meant to reject the patch. :P Rejecting count <= 1 could be a temporary solution until we implement the action frames properly. Unless we decide that the action frames should be handled in userspace as you proposed. > we still have to fix the CSA handling from other STAs in IBSS. What do you mean? Because they are waiting for beacon with count == 0 before switching? I guess this is also wrong in BSS STAs. I'll check. -- Luca. ��.n��������+%������w��{.n�����{���zW����ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f