Search Linux Wireless

Re: [RFC] mac80211: don't transmit beacon with CSA count 0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2013-11-05 at 10:27 +0200, Luciano Coelho wrote:
> On Mon, 2013-11-04 at 15:31 +0100, Simon Wunderlich wrote:
> > > > Thanks for checking back - I've read the part in the spec again [1], and
> > > > appearently you are right.
> > > > 
> > > > With your proposed change, shouldn't we also change the behaviour if the
> > > > userspace requests a channel switch with count = 0? I guess we should
> > > > immediately change the channel then without waiting for beacons? I don't
> > > > see the point in changing the beacons if we don't send them, after all.
> > > 
> > > You're right, changing the beacons doesn't make sense in this case.
> > > I'll change that and send v2.
> > > 
> > > Another thing is that we are missing the action frames.  The idea with
> > > the count == 0 is that the STA's should start listening on the other
> > > channel immediately after receiving the action frame (because the switch
> > > will happen at any time).
> > > 
> > > If we don't send the action frame, passing context == 0 from the
> > > userspace doesn't much make sense, because the clients won't know we're
> > > switching.  Well, maybe it makes a bit of sense, if there are no clients
> > > connected, but nevertheless.
> > 
> > Yeah, switching without actionframe and count == 0 is pretty useless.
> 
> Actually, if the userspace requests count == 1, we won't have any
> beacons either, because 1 means "just before the next TBTT".  So for
> count == 1 (coming from the userspace) we shouldn't configure the
> beacon, since we won't send it.  We need the action frame for this case
> too.

Hmmm... Now there's something that is a bit unclear to me in the specs:

"For nonmesh STAs, the Channel Switch Count field either is set to the
number of TBTTs until the STA sending the Channel Switch Announcement
element switches to the new channel or is set to 0."

There's nothing specifying exactly when, relative to the beacon, the
switch actually happens.  Just before? Just after? Is the beacon that
matches that TBTT transmitted in the current or in the next channel?

For a value of 1, it's pretty clear:

"A value of 1 indicates that the switch occurs immediately before the
next TBTT."

I don't think we're doing that now.  At least in the ath9k case, you
switch the channel immediately after the beacon with count == 1, by
calling ieee80211_csa_finish().  The correct would be just before the
next beacon is sent.

A value of 0 is also unclear, because it doesn't refer to any TBTTs at
all.  So if you read it literally, the following would mean that it
could at *any* time in the future:

"A value of 0 indicates that the switch occurs at any time after the
frame containing the element is transmitted."

Am I missing something? What do you think?

--
Cheers,
Luca.
��.n��������+%������w��{.n�����{���zW����ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f





[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux