Wireless must bee kept alive by simultaneous pings

Rui Paulo rpaulo at FreeBSD.org
Mon May 31 08:25:48 PDT 2010


On 29 May 2010, at 15:24, elekktretterr at exemail.com.au wrote:

>> What driver/chipset are you using?  SMP or UP kernel?  What AP are you
>> connecting to?
> 
> atheros. SMP kernel. The AP is a Billion ADSL2+ router. It should be noted
> that in every OS other than FBSD/Dragonfly ive tried - windows and linux -
> it works fine.
> 
> I should also note that Sepherosa once made a patch for me that got
> commited but probably got blasted away during the wlan update. Its
> referenced in this thread but its no longer in Sephe's directory.
> 
> http://leaf.dragonflybsd.org/mailarchive/bugs/2007-06/msg00012.html
> 
> I should note that, this only improved the situtation, it did not fix it.
> Connections were still dropping out, just not as often.
> 

Revision 1.21 / (download) - annotate - [select for diffs], Fri Jun 15 12:04:45 2007 UTC (2 years, 11 months ago) by sephe 
Branch: MAIN 
CVS Tags: DragonFly_RELEASE_1_12_Slip, DragonFly_RELEASE_1_12, DragonFly_RELEASE_1_10_Slip, DragonFly_RELEASE_1_10 
Changes since 1.20: +1 -1 lines
Diff to previous 1.20 (colored)

Some non-802.11e non-standard conforming APs use seperate TX sequences
for non-beacon frames and beacons.  If local cache of <addr2,seq,fragno>
tuple is updated when beacons from such kind of AP are received, 802.11
duplication detection mechanism may decide to discard non-beacon retry
frames if its sequence is less than or equal to just received beacon's.
Together with the poor TX rate control algorithm chosen by these kinds
of APs, i.e. a lot of retry data frames, a TCP connection can be choked
by STA's duplication detection mechanism.

To handle these kinds of APs (yep, we are in the world of compat):
Don't update cache of <addr2,seq,fragno> tuple for multicast or broadcast
802.11 MAC frames.  This does not violate IEEE Std 802.11, 1999 Edition
subclause 9.2.9, which actually allows us to "omit tuples obtained from
broadcast/multicast ...".

Thank Petr Janda <elekktretterr at exemail.com.au> for providing all
necessary 802.11 tcpdumps to track down the problem.

Thank dillon@ for analyzing some tcpdumps which leads me to think that
the reported problem may be caused by the duplication detection in
802.11 layer.

Reported-by: Petr Janda <elekktretterr at exemail.com.au>


Try doing something like this:
http://cvsweb.dragonflybsd.org/cvsweb/src/sys/netproto/802_11/wlan/ieee80211_input.c.diff?r1=1.20&r2=1.21

If it works, I'll commit it in FreeBSD.

Regards,
--
Rui Paulo








More information about the Kernel mailing list