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>