Search Linux Wireless

multi-BSSID AP support

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

 



Ok, so after that thread started out Broadcom specific and then went off
discussing various related things, I want to summarise a bit.

Because beacons are also subject to media delays, I'm now convinced that
my interpretation of the standard wrt. TBTT always being a multiple of
the beacon interval is correct [1].

What I'm trying to decide now is what beaconing scheme is best. We have
a few possible schemes:
 (a) simply burst beacons at TBTT, all beacons have same DTIM period and
     count, then multicast traffic after the beacons
 (b) burst beacons at TBTT but vary DTIM count so that the DTIM 0 beacon
     can come first in the burst, then multicast traffic after the
     beacons
 (c) spread out beacons across the beacon period with TSF offsets

To my knowledge, the (b) scheme I described isn't used anywhere [guess I
should've patented it...]. I'm told Atheros uses (c), but this isn't
confirmed and I doubt it when I look at their TX descriptors. Some APs
at my university use (a). I haven't checked what other collocated
multi-BSSID implementations do.

If anybody can come up with other schemes, let me know.

Now let me list the upsides/downsides of these schemes.

(a) can be a problem because the TBTT is a multiple of the beacon
interval and thus just bursting the beacons is not good because it
forces STAs to wake up at the first beacon even if they're interested in
the third or so. Also, if the DTIM 0 beacons are all aligned as they are
in the implementations I know, stations will have to receive basically
all multicast traffic of the AP even when they only want one of the
BSSIDs.

(c) is nice because it doesn't suffer from any of these effects.
However, it requires that the hardware be able to timestamp the frames
with arbitrary offsets to support the virtual timers. Offsets are pretty
much required due to the fact that probe responses must be timestamped
as well and they can be sent with various rates etc, but it's not clear
that arbitrary offsets can be specified on a per-packet basis. Broadcom
hardware is capable of doing this, it would require small firmware
changes to allow setting the offset from the driver [2]. However, this
requirement may make it impossible to support this feature well with
other drivers.

(b) has the same good behaviour with power saving stations because the
relevant beacons (those that the stations wake up for) are sent as close
to the TBTT as possible. It also doesn't suffer from the hardware (or
firmware) support problem because only one timer is used rather than one
virtual timer per BSSID. Thus, any current hardware/firmware design
should be able to support this (the non-DTIM beacons can be considered
broadcast traffic and put into the queue for such traffic).

(c) has a slight power save advantage over (b) because if multicast
traffic is present, it'll be sent right away after the beacon and not
after the other beacons. Therefore, powersaving STAs will not need to
receive the other beacons in this case. I think, however, that this is
almost negligible. Opinions?

Now, considering the CFP [3], I first thought that (a) would have
advantages because it can do a CFP for all BSSIDs at the same time, but
because 9.3.2.2 requires that the NAV is updated [4] for *any* received
beacon's CFPDurRemaining value, I don't even see any problem with CFPs
in the other two schemes either.

And here ends my knowledge about what the beacon timing is relevant for.
Is there anything else? I can't think of anything.

In summary, I think (b) is the way to go. After this analysis I'm a bit
confused that (a) is implemented at all by anybody. Did I miss any
benefits of that except having to think less? :)

Since (c) has (albeit very slight) advantages for power saving, I'm
tempted to implement both (b) and (c) to be able to tell the difference.

johannes


[1] otherwise errors would add up and it would very quickly be
impossible for a STA to wake up at the right time

[2] in fact, we need to implement this anyway to timestamp probe
responses!

[3] btw, is Broadcom hardware CF-Pollable? I can't seem to find any
indication that it is in the firmware, but that seems weird to me.
Anybody know?

[4] off topic, but does anybody know why Broadcom hardware updates the
NAV for the duration field of 802.11 frames with version != 0? Seems
wrong to me, it's not even clear that there would be a duration value at
that spot for new versions, is it?

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux