ath driver transmits frames only after a low watermark is filled
vsemionov at gmail.com
Mon Jul 17 18:17:27 UTC 2006
I have a wireless card with an Atheros 5212 chipset and I'm experiencing the
following behavior under FreeBSD 6.1:
TCP connections that consist of small short bursts of one-way (transmission)
traffic often stall until traffic is received over another TCP connection.
For example, if I try to load a small web page, located on the FreeBSD box,
over the wireless link, it doesn't load completely, unless I hit return in a
concurrent terminal session, or until I request some other file hosted on the
FreeBSD box, or until I wait 20 seconds or so. The signal is not low, the two
wireless boxes are in the same room.
Higher-bandwidth connections rarely stall. This makes me think there is some
kind of low watermark functionality in the hardware/driver that doesn't send
frames until a certain number of them have been queued for transmission, or
until a frame has been received. Also, I guess this is the reason that the
ath module caused the system to freeze at shutdown or when the module is
unloaded, unless I do an "ifconfig ath0 down" before unloading - the
unloading code is probably waiting for all queued frames to be transmitted,
but that never happens.
Sorry for the weak conclusion that is based on assumptions. I'm not familiar
with the OS/driver internals and don't know how to investigate further. Is
there a sysctl or other setting that controls this behavior, or some other
workaround? Any help would be greatly appreciated.
More information about the freebsd-stable