Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Jul 2011 05:08:06 -0600
From:      PseudoCylon <moonlightakkiy@yahoo.ca>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        freebsd-wireless@freebsd.org
Subject:   Re: Direct-dispatching addba frames and to the correct hardware queue?
Message-ID:  <BANLkTinXf60Oi71pUw3jbGJxOQoq%2B84=cg@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
> Message: 24
> Date: Fri, 17 Jun 2011 19:27:39 +0800
> From: Adrian Chadd <adrian@freebsd.org>
> Subject: Direct-dispatching addba frames and to the correct hardware
> =A0 =A0 =A0 =A0queue?
> To: freebsd-wireless@freebsd.org
> Message-ID: <BANLkTi=3Dk8iKMzF6JwGNEG_DsrvM5j79atg@mail.gmail.com>
> Content-Type: text/plain; charset=3DISO-8859-1
>
> Hi,
>
> I've found that all the HT action frames are assigned to the WME
> priority 3 (voice).

I didn't know that either.

> I've added a hack to my branch that rewrites the priority on ADDBA
> frames, and also marks them as direct dispatch to the hardware rather
> than stuffed in the software queue. But I'd rather this be done in the
> net80211 stack.

I have tried the same thing. I grabbed action frames and passed them
to proper hw queue.

voila! I've got 0 out-of-order packets from total 30min. of ipref.
(Though, there are still lots of discarded mpdu frames.)

Using M_WME_GETAC() is good enough for run(4).
Here is the code.
https://gitorious.org/run/run/trees/11n_rc2
(I'll play with it a little bit more before announcing.)

>
> So the questions!
>
> * Should the stack be throwing the action frame(s) for a given TID
> onto the right hardware queue?

This would work best with run(4)

> * Should the ADDBA (and DELBA) TX be split out from the actual status
> change so the driver can actually say when the frames go out? Ie, the
> driver can wait for all pending packets to the given node in the
> relevant TID to have gone out before completing the ADDBA transaction.
> I'm not sure yet about DELBA as I haven't yet gotten to implementing
> it. :-)

I have a feeling of the time delay (driver->usb stack->hw->usb
stack->driver) might cause the problem. (But, might work fine.)


AK



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTinXf60Oi71pUw3jbGJxOQoq%2B84=cg>