[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJ-Vmonwur-SXddNwjPEidCMqes+PwbRWFBddfdwTp2jOMu64g@mail.gmail.com>
Date: Tue, 30 Aug 2011 11:42:32 +0800
From: Adrian Chadd <adrian@...ebsd.org>
To: Tom Herbert <therbert@...gle.com>
Cc: Jim Gettys <jg@...edesktop.org>,
"Luis R. Rodriguez" <mcgrof@...il.com>,
Dave Taht <dave.taht@...il.com>,
linux-wireless <linux-wireless@...r.kernel.org>,
Andrew McGregor <andrewmcgr@...il.com>,
Matt Smith <smithm@....qualcomm.com>,
Kevin Hayes <hayes@....qualcomm.com>,
Derek Smithies <derek@...ranet.co.nz>, netdev@...r.kernel.org
Subject: Re: BQL crap and wireless
On 30 August 2011 11:34, Tom Herbert <therbert@...gle.com> wrote:
> The generalization of BQL would be to set the queue limit in terms of
> a cost function implemented by the driver. The cost function would
> most likely be an estimate of time to transmit a packet. So C(P)
> could represent cost of a packet, sum(C(P) for P queued) is aggregate
> cost of queue packets, and queue limit is the maximum cost sum. For
> wired Ethernet, number of bytes in packet might be a reasonable
> function (although framing cost could be included, but I'm not sure
> that would make a material difference). For wireless, maybe the
> function could be more complex possibly taking multicast, previous
> history of transmission times, or other arbitrary characteristics of
> the packet into account...
>
> I can post a new patch with this generalization if this is interesting.
As I said before, I think this is the kind of thing the rate control
code needs to get its dirty hands into.
With 802.11 you have to care about the PHY side of things too, so your
cost suddenly would include the PER for combinations of {remote node,
antenna setup, TX rate, sub-frame length, aggregate length}, etc. Do
you choose that up front and then match a cost to it, or do you
involve the rate control code in deciding a "good enough" way of
handling what's on the queue by making rate decisions, then implement
random/weighted/etc drop of what's left? Do you do some weighted/etc
drop beforehand in the face of congestion, then pass what's left to
the rate control code, then discard the rest?
C(P) is going to be quite variable - a full frame retransmit of a 4ms
long aggregate frame is SUM(exponential backoff, grab the air,
preamble, header, 4ms, etc. for each pass.)
Adrian
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists