Subject: Re: Atheros tweaks
To: NetBSD-net <>
From: Sam Leffler <>
List: tech-net
Date: 03/08/2006 10:33:06
David Young wrote:
> On Wed, Mar 08, 2006 at 05:41:39PM +0000, Marcin Jessa wrote:
>> Hi guys.
>> I created an image with NetBSD which will run on WRAP boards
>> for a buddy who runs an ISP. The WRAP boards are small embedded devices 
>> ( and will act as wireless clients.
>> He wants to connect to access points over longer distances - more than 10 miles.
>> I think he uses StarOS now or RouterOS for the same purpose.
>> The system works pretty damn well in my lab but the distance is of course pretty short here.
>> My question is how to adjust atheros to work flawlesly on long range links? 
>> What sysctl values would need to be tweaked ?
>> I am using NetBSD 3.99.16 and ath HAL version is
> There are sysctls for the purpose of changing the timeouts for
> long-distance links, hw.ath0.acktimeout and hw.ath0.ctstimeout.  Units are
> microseconds; defaults (at least for 802.11b) are 48us.
> See John Atkinson's report on using ath(4) to make wireless links over
> several kilometers in rural Ghana,
> <>.
> John is using CUWiN's NetBSD-based software for ad hoc wireless networks.
> CUWiN runs on Soekris & WRAP boards.  I hope to have it running on cheap
> APs based on the Atheros SoC in a few months.

athctrl's calculation is bogus; use whatever settings for timeouts and 
slottime were used under staros.  The other important things to do are 
to fix the transmit rate and to turn off bursting.  Not sure if netbsd 
has the latter--I only recently added it to freebsd for doing just this 
sort of thing.  I also added adhoc demo mode to the driver recently for 
this application.

You can turn off ACK's using WME but bidirectional traffic will fall 
down if the link is lossy as TCP doesn't handle this well (retransmit 
timers too coarse grained).

I'm mostly doing long distance link stuff these days though all my 
testing has been in the lab with a link emulator box.