Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Jul 2012 00:52:42 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        Kim Culhan <w8hdkim@gmail.com>
Cc:        freebsd-wireless@freebsd.org
Subject:   Re: Please test ath(4) on HEAD (was Fwd: svn commit: r238609 - head/sys/dev/ath)
Message-ID:  <CAJ-Vmo=9%2BO_55a05mv53wJ4JXr-saYZ2fsqbSkPdiYxTJQtgkQ@mail.gmail.com>
In-Reply-To: <CAJ-Vmom4sovAHW-O_XbSCqBy4q_iEGuE4p0NqLm%2B0e2qm3AqtQ@mail.gmail.com>
References:  <CAKZxVQV2SybkO3=Ue4uA8aV0CmunKDwJmCqJXquy2xeV19nbAA@mail.gmail.com> <CAJ-VmonfaseVe_W6%2BwkaYjD-YVuR%2B071cdMxeE=-sVqG3wSESw@mail.gmail.com> <CAKZxVQUz37ZjKh%2BvY0u=k==UsmWBuBiYRBoW=mj=CHFL6s54Nw@mail.gmail.com> <CAJ-Vmom4sovAHW-O_XbSCqBy4q_iEGuE4p0NqLm%2B0e2qm3AqtQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
The thirty second version:

* You can create them as normal child interfaces (wlan0, wlan1 ...);
* You can configure a single hostapd interface for multiple wlan
interfaces - you don't _have_ to run one hostapd for each interface. I
haven't tried it yet, but I'm sure someone has reported our hostapd
works. Just run hostapd with multiple configuration files on the
command line, one per interface;
* Don't exceed 4, the driver doesn't handle it.

Please just try manually running a single hostapd with multiple
configuration files listed. I just tried on two VAPs and it worked
fine.

Now, the reasons why multi-SSID is slightly odd:

* there's hardware support for a "BSS mask", which the hardware does
use to determine whether frames are actually destined to it or not. I
think you can mask out many more bits than that, but four is the
default;
* You then have to look at how the hardware does "TSF adjustment" - to
keep accurate time-keeping, each VAP beacon must go out with a
corrected TSF. The driver code sets a bit to ask the hardware to fudge
the TSF, then it writes a TSF offset into the beacon frame. The
hardware will then add that to the current TSF. This requires the
driver to correctly order the beacon frames in the beacon queue and
make sure the timers are setup correctly. This has been a source of
annoyance in open source Atheros drivers for quite some time. I'd love
someone to audit this and then get it working for up to say 10 VAPs;
* there's "burst" and "staggered" beacons. Burst is "all beacons go
out at once" - you get one burst every beacon interval. "staggered" is
"each beacon goes out at 1/n the beacon interval", so although your
run your beacon timer at n * beacon interval, you send them out evenly
spaced and they come out at the correct interval. However - this has
implications for handling sleep queue (content after beacon) traffic
for each VAP as well as TIM/ATIM handling. Short answer is: I've not
sat down and audited or stress tested this code at all.

If people are interested in jumping into the driver code and getting
their hands dirty then please say so and I'll brain-dump as much stuff
as I can get my hands on.



Adrian



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=9%2BO_55a05mv53wJ4JXr-saYZ2fsqbSkPdiYxTJQtgkQ>