Date: Tue, 23 Aug 2011 21:10:56 +0800 From: Adrian Chadd <adrian@freebsd.org> To: bschmidt@freebsd.org Cc: Kang Yin Su <cantona@cantona.net>, freebsd-wireless@freebsd.org Subject: Re: AR5416 beacon issue. Message-ID: <CAJ-Vmo=QAc5NLvs6EH-FW9dgWhKis927NiQZ7BXTA4q6KCJ8XQ@mail.gmail.com> In-Reply-To: <201108231415.11981.bschmidt@freebsd.org> References: <CAHjFwoCVwRNyJ_jCgthWFvi%2Bh%2B7xy6-bt=hDrhimMVHS7--dtQ@mail.gmail.com> <CAHjFwoA-G5m-mHdT3L2se88Li4qEaFSmR1iggKZcPrV74mtrhA@mail.gmail.com> <CAJ-Vmokazy8xUGvCM-R9zG3u_x%2BjWGcvqp6UYX=2_i9sctbv6Q@mail.gmail.com> <201108231415.11981.bschmidt@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 23 August 2011 20:15, Bernhard Schmidt <bschmidt@freebsd.org> wrote: >> Bernhard? > > Please stop top posting, thanks. Ok. > You can't over-simplify here. Some HW supports generating seqnos, > some other don't and yet again other overwrites it anyways. What > you really need is a per-case decision. If the hardware is able > to generate seqnos correctly (which afaik ath is) then use it. > If the generated numbers are wrong for whatever reason, then try > to use those generated in software. ath generates sequence numbers ok - except for handling 11n aggregation. At that point, you need to do sequence number allocation in software. So how's the beacon code (in this example) supposed to handle it? > What you can generalize is, if the HW does something wrong (or > not 100% correct) try to use SW as a fallback. See the beacon > miss implementation in SW as an example, it is only used for > the multiple VAP case, otherwise the HW function itself is used. Right. But I'm still unclear about how we could possibly handle it. (But I've been deep in this aggregation stuff, so my "big picture" handle is not quite working at the moment.) For example, with ath sequence number generation - we need to do it in software if the NIC is going to be doing 11n, otherwise we can leave it as-is. So do we somehow teach the net80211 code about the hardware capabilities? Do we add a capability _and_ a callback to enable/disable it? If we're doing 11n then we have to disable it - so net80211 has to fill in its own sequence numbers. If we're not doing 11n then the ath HAL still disables hardware sequence numbers on AR5416 and later - how do you propose we tell the driver to flip it on/off? Adrian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=QAc5NLvs6EH-FW9dgWhKis927NiQZ7BXTA4q6KCJ8XQ>