wifi rate control
dcbw at redhat.com
Mon Nov 14 18:01:20 EST 2011
On Wed, 2011-11-09 at 19:53 -0800, hong zhang wrote:
> I am thinking why wifi driver needs rate control and ethernet does not have it.
> For example, if Tx fifo is full, then stop_queue is called so that upper lay will stop sending packet. When Tx fifo is empty then kernel starts sending packet again.
> Does wifi chip have some special registers to control rate?
Wifi needs rate control because wireless is a lossy medium and wired
connections practically aren't. Wifi is all about signal-to-noise
ration. If the SNR gets too bad (ie, low signal to noise) then you'll
start seeing bit errors in the received packets, or you simply can't
detect a packet out of the noise at all. So WiFi ties the transmission
rate to the SNR: if the SNR is good (ie, higher signal to noise ratio)
then you can use more risky techniques to transmit the packet at higher
speeds. If the SNR is bad (ie, low signal to noise) then you must use
more robust transmission techniques.
Higher speeds are less robust to interference and thus can only be used
when near the AP and when the SNR is good. Lower speeds are more robust
and thus are used when farther away from the AP where interference is
greater and the signal is simply weaker. Thus you have rate control to
automatically adjust the rates to select the highest rate when the radio
conditions are best and lower rates when they are worse.
More information about the libertas-dev