All of lore.kernel.org
 help / color / mirror / Atom feed
* Rate control & USB
@ 2010-07-12 10:48 Ivo Van Doorn
  2010-07-12 15:17 ` Felix Fietkau
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Ivo Van Doorn @ 2010-07-12 10:48 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg, Felix Fietkau

Hi,

I am currently looking into the old problem of the mac80211 rate
control algorithms
and USB devices. The Ralink USB devices (and as far as I know, the
other USB devices
as well), do not work well with the PID and Minstrel algorithms. This
is caused by the
fact that USB devices do not report the TX status to mac80211.

When the URB callback function is called, it only indicates the frame
was uploaded
to the hardware, and the frame has been enqueued in the hardware queue
within the
USB device itself. The statistics about the number of retries and the
ACK status are
therefor lost.

These statistics are however often still available (in a limited form)
within the device
registers. Although these statistics cannot be obtained per frame, it
might still be
possible to control a working rate control algorithm with it.

My current idea for this, is not to generate a completely new
algorithm, but base
it on the currently existing rate controls. For this I want to
introduce a new flag:
IEEE80211_HW_REQUIRES_BATCH_TX_STATUS, This flag will enable
polling in mac80211, where the callback function ieee80211_ops->get_tx_stats
is called. In this function the driver can fill in a structure
containing the number
of Acked frames, non-acked frames and retries. This structure can then be
passed to a new function in the rate_control_ops structure.

The problem here is that we have lost the per-sta statistics. However using the
single TX status reports, we can count the number of frames which are sent for
a given STA during the poll interval. We can then determine the percentage of
frames sent for that STA, We can then add the percentage of the retry and ACK
count to each STA. Throughout poll interval the rate algorithm would send all
frames to the same STA with the same TX rate, but between polls, the rate will
be updated.

Overall these changes will not make the optimal use of PID or
Minstrel, but it would
at least improve the situation for USB.

Any thoughts about this solution?

Ivo

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2010-07-14 21:36 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-12 10:48 Rate control & USB Ivo Van Doorn
2010-07-12 15:17 ` Felix Fietkau
2010-07-12 15:20   ` John W. Linville
2010-07-12 18:55     ` Ivo Van Doorn
2010-07-12 16:25 ` Steve deRosier
2010-07-12 18:54   ` Ivo Van Doorn
2010-07-12 19:14 ` Helmut Schaa
2010-07-13  6:59   ` Ivo Van Doorn
2010-07-13 19:15     ` Helmut Schaa
2010-07-13 19:51       ` Ivo Van Doorn
2010-07-14  1:53         ` Julian Calaby
2010-07-14 21:36           ` Ivo Van Doorn

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.