From owner-cvs-src-old@FreeBSD.ORG Wed May 4 02:24:17 2011 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C37E01065673 for ; Wed, 4 May 2011 02:24:17 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AFA128FC13 for ; Wed, 4 May 2011 02:24:17 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id p442OHWG078807 for ; Wed, 4 May 2011 02:24:17 GMT (envelope-from adrian@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id p442OHEA078806 for cvs-src-old@freebsd.org; Wed, 4 May 2011 02:24:17 GMT (envelope-from adrian@repoman.freebsd.org) Message-Id: <201105040224.p442OHEA078806@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to adrian@repoman.freebsd.org using -f From: Adrian Chadd Date: Wed, 4 May 2011 02:23:59 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/net80211 ieee80211_adhoc.c ieee80211_hostap.c ieee80211_input.h ieee80211_mesh.c ieee80211_sta.c ieee80211_wds.c X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 02:24:17 -0000 adrian 2011-05-04 02:23:59 UTC FreeBSD src repository Modified files: sys/net80211 ieee80211_adhoc.c ieee80211_hostap.c ieee80211_input.h ieee80211_mesh.c ieee80211_sta.c ieee80211_wds.c Log: SVN rev 221418 on 2011-05-04 02:23:59Z by adrian Fix some corner cases in the net80211 sequence number retransmission handling. The current sequence number code does a few things incorrectly: * It didn't try eliminating duplications from HT nodes. I guess it's assumed that out of order / retransmission handling would be handled by the AMPDU RX routines. If a HT node isn't doing AMPDU RX, then retransmissions need to be eliminated. Since most of my debugging is based on this (as AMPDU TX software packet aggregation isn't yet handled), handle this corner case. * When a sequence number of 4095 was received, any subsequent sequence number is going to be (by definition) less than 4095. So if the following sequence number (0) doesn't initially occur and the retransmit is received, it's incorrectly eliminated by the IEEE80211_FC1_RETRY && SEQ_LEQ() check. Try to handle this better. This almost completely eliminates out of order TCP statistics showing up during iperf testing for the 11a, 11g and non-aggregate 11n AMPDU RX case. The only other packet loss conditions leading to this are due to baseband resets or heavy interference. Revision Changes Path 1.22 +1 -5 src/sys/net80211/ieee80211_adhoc.c 1.34 +1 -5 src/sys/net80211/ieee80211_hostap.c 1.5 +98 -0 src/sys/net80211/ieee80211_input.h 1.19 +1 -4 src/sys/net80211/ieee80211_mesh.c 1.40 +1 -5 src/sys/net80211/ieee80211_sta.c 1.19 +1 -5 src/sys/net80211/ieee80211_wds.c