From owner-freebsd-wireless@FreeBSD.ORG Sun Jun 10 02:52:17 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A27FC106564A; Sun, 10 Jun 2012 02:52:17 +0000 (UTC) (envelope-from uzimac@da3m0n8t3r.com) Received: from z.umatar.com (z.umatar.com [66.135.39.87]) by mx1.freebsd.org (Postfix) with ESMTP id 6D7008FC08; Sun, 10 Jun 2012 02:52:17 +0000 (UTC) Received: from z.umatar.com (localhost [127.0.0.1]) by z.umatar.com (8.14.5/8.14.3) with ESMTP id q5A2qGBq026658; Sat, 9 Jun 2012 19:52:16 -0700 (PDT) (envelope-from uzimac@da3m0n8t3r.com) Received: (from uzimac@localhost) by z.umatar.com (8.14.5/8.14.3/Submit) id q5A2qGgJ026657; Sat, 9 Jun 2012 19:52:16 -0700 (PDT) (envelope-from uzimac@da3m0n8t3r.com) X-Authentication-Warning: z.umatar.com: uzimac set sender to uzimac@da3m0n8t3r.com using -f From: "Waitman Gobble" To: Adrian Chadd Message-Id: <1339296736.26543@da3m0n8t3r.com> X-Originating-IP: 75.36.145.215 X-Mailer: Usermin 1.500 In-Reply-To: Date: Sat, 09 Jun 2012 19:52:16 -0700 (PDT) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="bound1339296736" Cc: freebsd-wireless@freebsd.org Subject: Re: BCM94313 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 02:52:17 -0000 This is a multi-part message in MIME format. --bound1339296736 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Adrian Chadd wrote .. > Hi, > > The AR9485 isn't yet supported, sorry. It's on my TODO list, but I > have some major driver locking issues to sort out before I work on > AR93xx/AR94xx/AR95xx SoC and wifi support. > > > > Adrian thanks for the heads up, i'll go hunt for that page and make sure it was the 9485, i might have the number wrong.:) BCM4313 isn't listed in bwn man page, it might not work.. ndis needs xp driver (64 bit) and not finding it. I might need to check on a Realtek option. -- Waitman Gobble San Jose California USA --bound1339296736-- From owner-freebsd-wireless@FreeBSD.ORG Sun Jun 10 04:25:53 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A50BF106564A; Sun, 10 Jun 2012 04:25:53 +0000 (UTC) (envelope-from uzimac@da3m0n8t3r.com) Received: from z.umatar.com (z.umatar.com [66.135.39.87]) by mx1.freebsd.org (Postfix) with ESMTP id 6FC728FC0A; Sun, 10 Jun 2012 04:25:53 +0000 (UTC) Received: from z.umatar.com (localhost [127.0.0.1]) by z.umatar.com (8.14.5/8.14.3) with ESMTP id q5A4PqVF097880; Sat, 9 Jun 2012 21:25:52 -0700 (PDT) (envelope-from uzimac@da3m0n8t3r.com) Received: (from uzimac@localhost) by z.umatar.com (8.14.5/8.14.3/Submit) id q5A4PqcH097879; Sat, 9 Jun 2012 21:25:52 -0700 (PDT) (envelope-from uzimac@da3m0n8t3r.com) X-Authentication-Warning: z.umatar.com: uzimac set sender to uzimac@da3m0n8t3r.com using -f From: "Waitman Gobble" To: "Waitman Gobble" Message-Id: <1339302352.97874@da3m0n8t3r.com> X-Originating-IP: 75.36.145.215 X-Mailer: Usermin 1.500 In-Reply-To: <1339296736.26543@da3m0n8t3r.com> Date: Sat, 09 Jun 2012 21:25:52 -0700 (PDT) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="bound1339302352" Cc: freebsd-wireless@freebsd.org Subject: Re: BCM94313 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 04:25:53 -0000 This is a multi-part message in MIME format. --bound1339302352 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Waitman Gobble wrote .. > Adrian Chadd wrote .. > > Hi, > > > > The AR9485 isn't yet supported, sorry. It's on my TODO list, but I > > have some major driver locking issues to sort out before I work on > > AR93xx/AR94xx/AR95xx SoC and wifi support. > > > > > > > > Adrian > > thanks for the heads up, i'll go hunt for that page and make sure it was the 9485, > i might have the number wrong.:) > BCM4313 isn't listed in bwn man page, it might not work.. ndis needs xp driver > (64 bit) and not finding it. > I might need to check on a Realtek option. > > -- > Waitman Gobble > San Jose California USA the AR9285G is on the whitelist published in the dv6 maintenance and repair manual on the hp site. at least one person on a newsgroup claims the wireless card also has to be hp branded, i'll check it out. i didn't realize the HP wireless whitelist has been going on for like a decade. there are many complaints and supposedly lawsuits there are some options around it hacking the bios installing a pre-hacked/"clean" bios soldering a switch on the IDSEL pin on the card and turning the pin 'on' after POST replacing bios with coreboot my favorite option is using an atheros card that is on the whitelist as i understand hp claims that using non-hp branded wireless cards which are not on their whitelist are in violation of FCC rules, federal law or something like that. thanks. -- Waitman Gobble San Jose California USA --bound1339302352-- From owner-freebsd-wireless@FreeBSD.ORG Sun Jun 10 09:22:34 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 828DC106566B for ; Sun, 10 Jun 2012 09:22:34 +0000 (UTC) (envelope-from lev@FreeBSD.org) Received: from onlyone.friendlyhosting.spb.ru (onlyone.friendlyhosting.spb.ru [IPv6:2a01:4f8:131:60a2::2]) by mx1.freebsd.org (Postfix) with ESMTP id 465C58FC0C for ; Sun, 10 Jun 2012 09:22:34 +0000 (UTC) Received: from lion.home.serebryakov.spb.ru (unknown [IPv6:2001:470:923f:1:9813:befc:15f6:30d5]) (Authenticated sender: lev@serebryakov.spb.ru) by onlyone.friendlyhosting.spb.ru (Postfix) with ESMTPA id 1EF9C4AC1C for ; Sun, 10 Jun 2012 13:22:33 +0400 (MSK) Date: Sun, 10 Jun 2012 13:22:25 +0400 From: Lev Serebryakov X-Priority: 3 (Normal) Message-ID: <1224627713.20120610132225@serebryakov.spb.ru> To: freebsd-wireless@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: 802.11ac? X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 09:22:34 -0000 Hello, Freebsd-wireless. Does somebody understand, how hard will be expand excleent Adrian's (and other's!) work on 802.11n to support new 802.11ac? It seems, 802.11ac adoption will be much faster, than it was for 802.11n. -- // Black Lion AKA Lev Serebryakov From owner-freebsd-wireless@FreeBSD.ORG Sun Jun 10 19:02:10 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6CAD11065673 for ; Sun, 10 Jun 2012 19:02:10 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id 412FF8FC17 for ; Sun, 10 Jun 2012 19:02:10 +0000 (UTC) Received: by dadv36 with SMTP id v36so4669092dad.13 for ; Sun, 10 Jun 2012 12:02:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=364vpLYkn86Kr7QpeVw5zm3YJ5vdd6R1h+UBcf/q/80=; b=ajeSOipsi4tEf7hSVuo0mO6oACjuQ5R9LaraOcM0XAFD/ikWtVMOcuiZiul6rN8RPB PNXgZ3F3zrG3qRYAPCAMnhFMe5dcBsSiXW7UIeyyGyLLFUZ47qDn4E2tUOnkQrZNX6FM oeqT791u/S4y6PqdHNIeIb5QvCfylpXJH++vt+G7nlSyAEIyHCD6DqXMU2Tka6NZ7mAt y1eHS0t4sl73KagWCX8AMffJvjCt0OsGhGY4FzDMrmtonsaB7nyyJdqerLAokQu+j/M+ 9J5EfJ0BT01ToK8cv+q+8GTw6gUnu+8b68Z+IlDzNqCu0BY6O2yOAHsqJIU1gh1JesGB nyCA== MIME-Version: 1.0 Received: by 10.68.223.167 with SMTP id qv7mr18731149pbc.127.1339354929858; Sun, 10 Jun 2012 12:02:09 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.91.18 with HTTP; Sun, 10 Jun 2012 12:02:09 -0700 (PDT) In-Reply-To: <1339302352.97874@da3m0n8t3r.com> References: <1339296736.26543@da3m0n8t3r.com> <1339302352.97874@da3m0n8t3r.com> Date: Sun, 10 Jun 2012 12:02:09 -0700 X-Google-Sender-Auth: NZYCdEEXfZRGrOGQO03ubZyXFb0 Message-ID: From: Adrian Chadd To: Waitman Gobble Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: BCM94313 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 19:02:10 -0000 The AR9285 will work fine. :-) adrian From owner-freebsd-wireless@FreeBSD.ORG Sun Jun 10 22:03:44 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 633E2106564A; Sun, 10 Jun 2012 22:03:44 +0000 (UTC) (envelope-from uzimac@da3m0n8t3r.com) Received: from z.umatar.com (z.umatar.com [66.135.39.87]) by mx1.freebsd.org (Postfix) with ESMTP id 2F9AD8FC14; Sun, 10 Jun 2012 22:03:44 +0000 (UTC) Received: from z.umatar.com (localhost [127.0.0.1]) by z.umatar.com (8.14.5/8.14.3) with ESMTP id q5AM3cEf051761; Sun, 10 Jun 2012 15:03:38 -0700 (PDT) (envelope-from uzimac@da3m0n8t3r.com) Received: (from uzimac@localhost) by z.umatar.com (8.14.5/8.14.3/Submit) id q5AM3ckM051760; Sun, 10 Jun 2012 15:03:38 -0700 (PDT) (envelope-from uzimac@da3m0n8t3r.com) X-Authentication-Warning: z.umatar.com: uzimac set sender to uzimac@da3m0n8t3r.com using -f From: "Waitman Gobble" To: Adrian Chadd Message-Id: <1339365818.51508@da3m0n8t3r.com> X-Originating-IP: 75.36.145.215 X-Mailer: Usermin 1.500 In-Reply-To: Date: Sun, 10 Jun 2012 15:03:38 -0700 (PDT) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="bound1339365818" Cc: freebsd-wireless@freebsd.org Subject: Re: BCM94313 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 22:03:44 -0000 This is a multi-part message in MIME format. --bound1339365818 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Adrian Chadd wrote .. > The AR9285 will work fine. :-) > > > > adrian Cool, thanks. I have a HP branded 1/2 height AR9285 ordered, should be here Tuesday. (The only 9285 I have if 'full' height and I don't see a way to get it to fit in the laptop.) The AR9485 is also listed on whitelist so when you get to that point of wanting to test... :) I could not seem to get the BCM94313 to work with if_bwn.ko driver, following instructions in the man page for bwn. It's not listed as supported so I guess it will not work. -- Waitman Gobble San Jose California USA --bound1339365818-- From owner-freebsd-wireless@FreeBSD.ORG Sun Jun 10 22:19:08 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9E000106566C for ; Sun, 10 Jun 2012 22:19:08 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id 7178C8FC18 for ; Sun, 10 Jun 2012 22:19:08 +0000 (UTC) Received: by dadv36 with SMTP id v36so4774791dad.13 for ; Sun, 10 Jun 2012 15:19:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=tOJDpUd9JkDrrkYJ0PCk9Jj1jG/VnAvptat/gSuq0xQ=; b=K/MmoW7DJr9u7GQ0UKOK3GRCz8w5rkLqr47Ih5qLpm5nFAdU5egu/uaf9WmxdaSA49 TlDioMYbsMvsOWqd3n2dT44NBXYsoHtRD7ybY7BFWmY2zczX9aRe2wPC9VeoFcrWUxfG dlI7k/KFB7eRACb8pgJQ5vhyMOGpoVwlvJMDcCBZ1svqJeRORKoMH3iCieuGjVO6PuFB nWpIbGfC4Ji315SZdtqKQ2RtXnVn8XecgoWwjFNMWgeKIFm3/av5hpbcFYD5fQe5urJK EcYbRxOyUJyQGZQYTHBGyRkOVhUKNjm6REKTUd6JUsMG3HzrOVhpG79aazSU4L9ntRfC wvtQ== MIME-Version: 1.0 Received: by 10.68.129.167 with SMTP id nx7mr18903272pbb.80.1339366748095; Sun, 10 Jun 2012 15:19:08 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.91.18 with HTTP; Sun, 10 Jun 2012 15:19:08 -0700 (PDT) In-Reply-To: <1339365818.51508@da3m0n8t3r.com> References: <1339365818.51508@da3m0n8t3r.com> Date: Sun, 10 Jun 2012 15:19:08 -0700 X-Google-Sender-Auth: shQ0zeW6E-M5vq11GyWa4TJDULM Message-ID: From: Adrian Chadd To: Waitman Gobble Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: BCM94313 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 22:19:08 -0000 Hi, Don't get rid of that NIC. We should use that for testing at some point. :) Adrian From owner-freebsd-wireless@FreeBSD.ORG Mon Jun 11 07:00:33 2012 Return-Path: Delivered-To: freebsd-wireless@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 11683106566C for ; Mon, 11 Jun 2012 07:00:33 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id EE6248FC17 for ; Mon, 11 Jun 2012 07:00:32 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q5B70WFC084144 for ; Mon, 11 Jun 2012 07:00:32 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q5B70WY9084143; Mon, 11 Jun 2012 07:00:32 GMT (envelope-from gnats) Date: Mon, 11 Jun 2012 07:00:32 GMT Message-Id: <201206110700.q5B70WY9084143@freefall.freebsd.org> To: freebsd-wireless@FreeBSD.org From: dfilter@FreeBSD.ORG (dfilter service) Cc: Subject: Re: kern/166190: commit references a PR X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: dfilter service List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 07:00:33 -0000 The following reply was made to PR kern/166190; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/166190: commit references a PR Date: Mon, 11 Jun 2012 06:59:39 +0000 (UTC) Author: adrian Date: Mon Jun 11 06:59:28 2012 New Revision: 236872 URL: http://svn.freebsd.org/changeset/base/236872 Log: Revert r233227 and followup commits as it breaks CCMP PN replay detection. This showed up when doing heavy UDP throughput on SMP machines. The problem with this is because the 802.11 sequence number is being allocated separately to the CCMP PN replay number (which is assigned during ieee80211_crypto_encap()). Under significant throughput (200+ MBps) the TX path would be stressed enough that frame TX/retry would force sequence number and PN allocation to be out of order. So once the frames were reordered via 802.11 seqnos, the CCMP PN would be far out of order, causing most frames to be discarded by the receiver. I've fixed this in some local work by being forced to: (a) deal with the issues that lead to the parallel TX causing out of order sequence numbers in the first place; (b) fix all the packet queuing issues which lead to strange (but mostly valid) TX. I'll begin fixing these in a subsequent commit or five. PR: kern/166190 Modified: head/sys/dev/ath/if_ath_debug.c head/sys/dev/ath/if_ath_tx.c head/sys/dev/ath/if_ath_tx.h head/sys/dev/ath/if_ath_tx_ht.c head/sys/dev/ath/if_athvar.h Modified: head/sys/dev/ath/if_ath_debug.c ============================================================================== --- head/sys/dev/ath/if_ath_debug.c Mon Jun 11 05:25:26 2012 (r236871) +++ head/sys/dev/ath/if_ath_debug.c Mon Jun 11 06:59:28 2012 (r236872) @@ -144,9 +144,6 @@ ath_printtxbuf(struct ath_softc *sc, con bf->bf_state.bfs_retries, bf->bf_state.bfs_addedbaw, bf->bf_state.bfs_dobaw); - printf(" SEQNO_ASSIGNED: %d, NEED_SEQNO: %d\n", - bf->bf_state.bfs_seqno_assigned, - bf->bf_state.bfs_need_seqno); printf(" %08x %08x %08x %08x %08x %08x\n", ds->ds_ctl0, ds->ds_ctl1, ds->ds_hw[0], ds->ds_hw[1], Modified: head/sys/dev/ath/if_ath_tx.c ============================================================================== --- head/sys/dev/ath/if_ath_tx.c Mon Jun 11 05:25:26 2012 (r236871) +++ head/sys/dev/ath/if_ath_tx.c Mon Jun 11 06:59:28 2012 (r236872) @@ -109,10 +109,10 @@ static int ath_tx_ampdu_pending(struct a int tid); static int ath_tx_ampdu_running(struct ath_softc *sc, struct ath_node *an, int tid); +static ieee80211_seq ath_tx_tid_seqno_assign(struct ath_softc *sc, + struct ieee80211_node *ni, struct ath_buf *bf, struct mbuf *m0); static int ath_tx_action_frame_override_queue(struct ath_softc *sc, struct ieee80211_node *ni, struct mbuf *m0, int *tid); -static int ath_tx_seqno_required(struct ath_softc *sc, - struct ieee80211_node *ni, struct ath_buf *bf, struct mbuf *m0); /* * Whether to use the 11n rate scenario functions or not @@ -1436,7 +1436,7 @@ ath_tx_start(struct ath_softc *sc, struc int ismcast; const struct ieee80211_frame *wh; int is_ampdu, is_ampdu_tx, is_ampdu_pending; - //ieee80211_seq seqno; + ieee80211_seq seqno; uint8_t type, subtype; /* @@ -1488,9 +1488,8 @@ ath_tx_start(struct ath_softc *sc, struc is_ampdu_pending = ath_tx_ampdu_pending(sc, ATH_NODE(ni), tid); is_ampdu = is_ampdu_tx | is_ampdu_pending; - DPRINTF(sc, ATH_DEBUG_SW_TX, - "%s: bf=%p, tid=%d, ac=%d, is_ampdu=%d\n", - __func__, bf, tid, pri, is_ampdu); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: tid=%d, ac=%d, is_ampdu=%d\n", + __func__, tid, pri, is_ampdu); /* * When servicing one or more stations in power-save mode @@ -1506,9 +1505,6 @@ ath_tx_start(struct ath_softc *sc, struc /* Do the generic frame setup */ /* XXX should just bzero the bf_state? */ bf->bf_state.bfs_dobaw = 0; - bf->bf_state.bfs_seqno_assigned = 0; - bf->bf_state.bfs_need_seqno = 0; - bf->bf_state.bfs_seqno = -1; /* XXX debugging */ /* A-MPDU TX? Manually set sequence number */ /* Don't do it whilst pending; the net80211 layer still assigns them */ @@ -1521,16 +1517,15 @@ ath_tx_start(struct ath_softc *sc, struc * don't get a sequence number from the current * TID and thus mess with the BAW. */ - //seqno = ath_tx_tid_seqno_assign(sc, ni, bf, m0); - if (ath_tx_seqno_required(sc, ni, bf, m0)) { + seqno = ath_tx_tid_seqno_assign(sc, ni, bf, m0); + if (IEEE80211_QOS_HAS_SEQ(wh) && + subtype != IEEE80211_FC0_SUBTYPE_QOS_NULL) { bf->bf_state.bfs_dobaw = 1; - bf->bf_state.bfs_need_seqno = 1; } ATH_TXQ_UNLOCK(txq); } else { /* No AMPDU TX, we've been assigned a sequence number. */ if (IEEE80211_QOS_HAS_SEQ(wh)) { - bf->bf_state.bfs_seqno_assigned = 1; /* XXX we should store the frag+seqno in bfs_seqno */ bf->bf_state.bfs_seqno = M_SEQNO_GET(m0) << IEEE80211_SEQ_SEQ_SHIFT; @@ -1541,7 +1536,7 @@ ath_tx_start(struct ath_softc *sc, struc * If needed, the sequence number has been assigned. * Squirrel it away somewhere easy to get to. */ - //bf->bf_state.bfs_seqno = M_SEQNO_GET(m0) << IEEE80211_SEQ_SEQ_SHIFT; + bf->bf_state.bfs_seqno = M_SEQNO_GET(m0) << IEEE80211_SEQ_SEQ_SHIFT; /* Is ampdu pending? fetch the seqno and print it out */ if (is_ampdu_pending) @@ -1558,10 +1553,6 @@ ath_tx_start(struct ath_softc *sc, struc /* At this point m0 could have changed! */ m0 = bf->bf_m; - DPRINTF(sc, ATH_DEBUG_SW_TX, - "%s: DONE: bf=%p, tid=%d, ac=%d, is_ampdu=%d, dobaw=%d, seqno=%d\n", - __func__, bf, tid, pri, is_ampdu, bf->bf_state.bfs_dobaw, M_SEQNO_GET(m0)); - #if 1 /* * If it's a multicast frame, do a direct-dispatch to the @@ -2043,41 +2034,16 @@ ath_tx_addto_baw(struct ath_softc *sc, s if (bf->bf_state.bfs_isretried) return; - /* - * If this occurs we're in a lot of trouble. We should try to - * recover from this without the session hanging? - */ - if (! bf->bf_state.bfs_seqno_assigned) { - device_printf(sc->sc_dev, - "%s: bf=%p, seqno_assigned is 0?!\n", __func__, bf); - return; - } - tap = ath_tx_get_tx_tid(an, tid->tid); if (bf->bf_state.bfs_addedbaw) device_printf(sc->sc_dev, - "%s: re-added? bf=%p, tid=%d, seqno %d; window %d:%d; " - "baw head=%d tail=%d\n", - __func__, bf, tid->tid, SEQNO(bf->bf_state.bfs_seqno), - tap->txa_start, tap->txa_wnd, tid->baw_head, - tid->baw_tail); - - /* - * Verify that the given sequence number is not outside of the - * BAW. Complain loudly if that's the case. - */ - if (! BAW_WITHIN(tap->txa_start, tap->txa_wnd, - SEQNO(bf->bf_state.bfs_seqno))) { - device_printf(sc->sc_dev, - "%s: bf=%p: outside of BAW?? tid=%d, seqno %d; window %d:%d; " + "%s: re-added? tid=%d, seqno %d; window %d:%d; " "baw head=%d tail=%d\n", - __func__, bf, tid->tid, SEQNO(bf->bf_state.bfs_seqno), + __func__, tid->tid, SEQNO(bf->bf_state.bfs_seqno), tap->txa_start, tap->txa_wnd, tid->baw_head, tid->baw_tail); - } - /* * ni->ni_txseqs[] is the currently allocated seqno. * the txa state contains the current baw start. @@ -2085,9 +2051,9 @@ ath_tx_addto_baw(struct ath_softc *sc, s index = ATH_BA_INDEX(tap->txa_start, SEQNO(bf->bf_state.bfs_seqno)); cindex = (tid->baw_head + index) & (ATH_TID_MAX_BUFS - 1); DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, - "%s: bf=%p, tid=%d, seqno %d; window %d:%d; index=%d cindex=%d " + "%s: tid=%d, seqno %d; window %d:%d; index=%d cindex=%d " "baw head=%d tail=%d\n", - __func__, bf, tid->tid, SEQNO(bf->bf_state.bfs_seqno), + __func__, tid->tid, SEQNO(bf->bf_state.bfs_seqno), tap->txa_start, tap->txa_wnd, index, cindex, tid->baw_head, tid->baw_tail); @@ -2190,9 +2156,9 @@ ath_tx_update_baw(struct ath_softc *sc, cindex = (tid->baw_head + index) & (ATH_TID_MAX_BUFS - 1); DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, - "%s: bf=%p: tid=%d, baw=%d:%d, seqno=%d, index=%d, cindex=%d, " + "%s: tid=%d, baw=%d:%d, seqno=%d, index=%d, cindex=%d, " "baw head=%d, tail=%d\n", - __func__, bf, tid->tid, tap->txa_start, tap->txa_wnd, seqno, index, + __func__, tid->tid, tap->txa_start, tap->txa_wnd, seqno, index, cindex, tid->baw_head, tid->baw_tail); /* @@ -2273,51 +2239,11 @@ ath_tx_tid_unsched(struct ath_softc *sc, } /* - * Return whether a sequence number is actually required. - * - * A sequence number must only be allocated at the time that a frame - * is considered for addition to the BAW/aggregate and being TXed. - * The sequence number must not be allocated before the frame - * is added to the BAW (protected by the same lock instance) - * otherwise a the multi-entrant TX path may result in a later seqno - * being added to the BAW first. The subsequent addition of the - * earlier seqno would then not go into the BAW as it's now outside - * of said BAW. - * - * This routine is used by ath_tx_start() to mark whether the frame - * should get a sequence number before adding it to the BAW. - * - * Then the actual aggregate TX routines will check whether this - * flag is set and if the frame needs to go into the BAW, it'll - * have a sequence number allocated for it. - */ -static int -ath_tx_seqno_required(struct ath_softc *sc, struct ieee80211_node *ni, - struct ath_buf *bf, struct mbuf *m0) -{ - const struct ieee80211_frame *wh; - uint8_t subtype; - - wh = mtod(m0, const struct ieee80211_frame *); - subtype = wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK; - - /* XXX assert txq lock */ - /* XXX assert ampdu is set */ - - return ((IEEE80211_QOS_HAS_SEQ(wh) && - subtype != IEEE80211_FC0_SUBTYPE_QOS_NULL)); -} - -/* * Assign a sequence number manually to the given frame. * * This should only be called for A-MPDU TX frames. - * - * If this is called after the initial frame setup, make sure you've flushed - * the DMA map or you'll risk sending stale data to the NIC. This routine - * updates the actual frame contents with the relevant seqno. */ -int +static ieee80211_seq ath_tx_tid_seqno_assign(struct ath_softc *sc, struct ieee80211_node *ni, struct ath_buf *bf, struct mbuf *m0) { @@ -2330,22 +2256,8 @@ ath_tx_tid_seqno_assign(struct ath_softc wh = mtod(m0, struct ieee80211_frame *); pri = M_WME_GETAC(m0); /* honor classification */ tid = WME_AC_TO_TID(pri); - DPRINTF(sc, ATH_DEBUG_SW_TX, - "%s: bf=%p, pri=%d, tid=%d, qos has seq=%d\n", - __func__, bf, pri, tid, IEEE80211_QOS_HAS_SEQ(wh)); - - if (! bf->bf_state.bfs_need_seqno) { - device_printf(sc->sc_dev, "%s: bf=%p: need_seqno not set?!\n", - __func__, bf); - return -1; - } - /* XXX check for bfs_need_seqno? */ - if (bf->bf_state.bfs_seqno_assigned) { - device_printf(sc->sc_dev, - "%s: bf=%p: seqno already assigned (%d)?!\n", - __func__, bf, SEQNO(bf->bf_state.bfs_seqno)); - return bf->bf_state.bfs_seqno >> IEEE80211_SEQ_SEQ_SHIFT; - } + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: pri=%d, tid=%d, qos has seq=%d\n", + __func__, pri, tid, IEEE80211_QOS_HAS_SEQ(wh)); /* XXX Is it a control frame? Ignore */ @@ -2373,14 +2285,9 @@ ath_tx_tid_seqno_assign(struct ath_softc } *(uint16_t *)&wh->i_seq[0] = htole16(seqno << IEEE80211_SEQ_SEQ_SHIFT); M_SEQNO_SET(m0, seqno); - bf->bf_state.bfs_seqno = seqno << IEEE80211_SEQ_SEQ_SHIFT; - bf->bf_state.bfs_seqno_assigned = 1; /* Return so caller can do something with it if needed */ - DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p: -> seqno=%d\n", - __func__, - bf, - seqno); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: -> seqno=%d\n", __func__, seqno); return seqno; } @@ -2392,7 +2299,6 @@ ath_tx_tid_seqno_assign(struct ath_softc static void ath_tx_xmit_aggr(struct ath_softc *sc, struct ath_node *an, struct ath_buf *bf) { - struct ieee80211_node *ni = &an->an_node; struct ath_tid *tid = &an->an_tid[bf->bf_state.bfs_tid]; struct ath_txq *txq = bf->bf_state.bfs_txq; struct ieee80211_tx_ampdu *tap; @@ -2408,81 +2314,10 @@ ath_tx_xmit_aggr(struct ath_softc *sc, s return; } - /* - * TODO: If it's _before_ the BAW left edge, complain very loudly. - * This means something (else) has slid the left edge along - * before we got a chance to be TXed. - */ - - /* - * Is there space in this BAW for another frame? - * If not, don't bother trying to schedule it; just - * throw it back on the queue. - * - * If we allocate the sequence number before we add - * it to the BAW, we risk racing with another TX - * thread that gets in a frame into the BAW with - * seqno greater than ours. We'd then fail the - * below check and throw the frame on the tail of - * the queue. The sender would then have a hole. - * - * XXX again, we're protecting ni->ni_txseqs[tid] - * behind this hardware TXQ lock, like the rest of - * the TIDs that map to it. Ugh. - */ - if (bf->bf_state.bfs_dobaw) { - ieee80211_seq seqno; - - /* - * If the sequence number is allocated, use it. - * Otherwise, use the sequence number we WOULD - * allocate. - */ - if (bf->bf_state.bfs_seqno_assigned) - seqno = SEQNO(bf->bf_state.bfs_seqno); - else - seqno = ni->ni_txseqs[bf->bf_state.bfs_tid]; - - /* - * Check whether either the currently allocated - * sequence number _OR_ the to-be allocated - * sequence number is inside the BAW. - */ - if (! BAW_WITHIN(tap->txa_start, tap->txa_wnd, seqno)) { - ATH_TXQ_INSERT_TAIL(tid, bf, bf_list); - ath_tx_tid_sched(sc, tid); - return; - } - if (! bf->bf_state.bfs_seqno_assigned) { - int seqno; - - seqno = ath_tx_tid_seqno_assign(sc, ni, bf, bf->bf_m); - if (seqno < 0) { - device_printf(sc->sc_dev, - "%s: bf=%p, huh, seqno=-1?\n", - __func__, - bf); - /* XXX what can we even do here? */ - } - /* Flush seqno update to RAM */ - /* - * XXX This is required because the dmasetup - * XXX is done early rather than at dispatch - * XXX time. Ew, we should fix this! - */ - bus_dmamap_sync(sc->sc_dmat, bf->bf_dmamap, - BUS_DMASYNC_PREWRITE); - } - } - /* outside baw? queue */ if (bf->bf_state.bfs_dobaw && (! BAW_WITHIN(tap->txa_start, tap->txa_wnd, SEQNO(bf->bf_state.bfs_seqno)))) { - device_printf(sc->sc_dev, - "%s: bf=%p, shouldn't be outside BAW now?!\n", - __func__, - bf); ATH_TXQ_INSERT_TAIL(tid, bf, bf_list); ath_tx_tid_sched(sc, tid); return; @@ -2539,8 +2374,8 @@ ath_tx_swq(struct ath_softc *sc, struct tid = ath_tx_gettid(sc, m0); atid = &an->an_tid[tid]; - DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p, pri=%d, tid=%d, qos=%d, seqno=%d\n", - __func__, bf, pri, tid, IEEE80211_QOS_HAS_SEQ(wh), SEQNO(bf->bf_state.bfs_seqno)); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p, pri=%d, tid=%d, qos=%d\n", + __func__, bf, pri, tid, IEEE80211_QOS_HAS_SEQ(wh)); /* Set local packet state, used to queue packets to hardware */ bf->bf_state.bfs_tid = tid; @@ -2556,34 +2391,34 @@ ath_tx_swq(struct ath_softc *sc, struct ATH_TXQ_LOCK(txq); if (atid->paused) { /* TID is paused, queue */ - DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p: paused\n", __func__, bf); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: paused\n", __func__); ATH_TXQ_INSERT_TAIL(atid, bf, bf_list); } else if (ath_tx_ampdu_pending(sc, an, tid)) { /* AMPDU pending; queue */ - DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p: pending\n", __func__, bf); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: pending\n", __func__); ATH_TXQ_INSERT_TAIL(atid, bf, bf_list); /* XXX sched? */ } else if (ath_tx_ampdu_running(sc, an, tid)) { /* AMPDU running, attempt direct dispatch if possible */ if (txq->axq_depth < sc->sc_hwq_limit) { - DPRINTF(sc, ATH_DEBUG_SW_TX, - "%s: bf=%p: xmit_aggr\n", - __func__, bf); ath_tx_xmit_aggr(sc, an, bf); + DPRINTF(sc, ATH_DEBUG_SW_TX, + "%s: xmit_aggr\n", + __func__); } else { DPRINTF(sc, ATH_DEBUG_SW_TX, - "%s: bf=%p: ampdu; swq'ing\n", - __func__, bf); + "%s: ampdu; swq'ing\n", + __func__); ATH_TXQ_INSERT_TAIL(atid, bf, bf_list); ath_tx_tid_sched(sc, atid); } } else if (txq->axq_depth < sc->sc_hwq_limit) { /* AMPDU not running, attempt direct dispatch */ - DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p: xmit_normal\n", __func__, bf); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: xmit_normal\n", __func__); ath_tx_xmit_normal(sc, txq, bf); } else { /* Busy; queue */ - DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p: swq'ing\n", __func__, bf); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: swq'ing\n", __func__); ATH_TXQ_INSERT_TAIL(atid, bf, bf_list); ath_tx_tid_sched(sc, atid); } @@ -2873,12 +2708,10 @@ ath_tx_tid_drain(struct ath_softc *sc, s if (t == 0) { device_printf(sc->sc_dev, "%s: node %p: bf=%p: addbaw=%d, dobaw=%d, " - "seqno_assign=%d, seqno_required=%d, seqno=%d, retry=%d\n", + "seqno=%d, retry=%d\n", __func__, ni, bf, bf->bf_state.bfs_addedbaw, bf->bf_state.bfs_dobaw, - bf->bf_state.bfs_need_seqno, - bf->bf_state.bfs_seqno_assigned, SEQNO(bf->bf_state.bfs_seqno), bf->bf_state.bfs_retries); device_printf(sc->sc_dev, @@ -2888,11 +2721,11 @@ ath_tx_tid_drain(struct ath_softc *sc, s tid->hwq_depth, tid->bar_wait); device_printf(sc->sc_dev, - "%s: node %p: bf=%p: tid %d: txq_depth=%d, " + "%s: node %p: tid %d: txq_depth=%d, " "txq_aggr_depth=%d, sched=%d, paused=%d, " "hwq_depth=%d, incomp=%d, baw_head=%d, " "baw_tail=%d txa_start=%d, ni_txseqs=%d\n", - __func__, ni, bf, tid->tid, txq->axq_depth, + __func__, ni, tid->tid, txq->axq_depth, txq->axq_aggr_depth, tid->sched, tid->paused, tid->hwq_depth, tid->incomp, tid->baw_head, tid->baw_tail, tap == NULL ? -1 : tap->txa_start, Modified: head/sys/dev/ath/if_ath_tx.h ============================================================================== --- head/sys/dev/ath/if_ath_tx.h Mon Jun 11 05:25:26 2012 (r236871) +++ head/sys/dev/ath/if_ath_tx.h Mon Jun 11 06:59:28 2012 (r236872) @@ -109,8 +109,6 @@ extern void ath_tx_addto_baw(struct ath_ struct ath_tid *tid, struct ath_buf *bf); extern struct ieee80211_tx_ampdu * ath_tx_get_tx_tid(struct ath_node *an, int tid); -extern int ath_tx_tid_seqno_assign(struct ath_softc *sc, - struct ieee80211_node *ni, struct ath_buf *bf, struct mbuf *m0); /* TX addba handling */ extern int ath_addba_request(struct ieee80211_node *ni, Modified: head/sys/dev/ath/if_ath_tx_ht.c ============================================================================== --- head/sys/dev/ath/if_ath_tx_ht.c Mon Jun 11 05:25:26 2012 (r236871) +++ head/sys/dev/ath/if_ath_tx_ht.c Mon Jun 11 06:59:28 2012 (r236872) @@ -644,7 +644,7 @@ ATH_AGGR_STATUS ath_tx_form_aggr(struct ath_softc *sc, struct ath_node *an, struct ath_tid *tid, ath_bufhead *bf_q) { - struct ieee80211_node *ni = &an->an_node; + //struct ieee80211_node *ni = &an->an_node; struct ath_buf *bf, *bf_first = NULL, *bf_prev = NULL; int nframes = 0; uint16_t aggr_limit = 0, al = 0, bpad = 0, al_delta, h_baw; @@ -751,74 +751,11 @@ ath_tx_form_aggr(struct ath_softc *sc, s (HAL_TXDESC_RTSENA | HAL_TXDESC_CTSENA); /* - * TODO: If it's _before_ the BAW left edge, complain very - * loudly. - * - * This means something (else) has slid the left edge along - * before we got a chance to be TXed. - */ - - /* - * Check if we have space in the BAW for this frame before - * we add it. - * - * see ath_tx_xmit_aggr() for more info. - */ - if (bf->bf_state.bfs_dobaw) { - ieee80211_seq seqno; - - /* - * If the sequence number is allocated, use it. - * Otherwise, use the sequence number we WOULD - * allocate. - */ - if (bf->bf_state.bfs_seqno_assigned) - seqno = SEQNO(bf->bf_state.bfs_seqno); - else - seqno = ni->ni_txseqs[bf->bf_state.bfs_tid]; - - /* - * Check whether either the currently allocated - * sequence number _OR_ the to-be allocated - * sequence number is inside the BAW. - */ - if (! BAW_WITHIN(tap->txa_start, tap->txa_wnd, - seqno)) { - status = ATH_AGGR_BAW_CLOSED; - break; - } - - /* XXX check for bfs_need_seqno? */ - if (! bf->bf_state.bfs_seqno_assigned) { - int seqno; - seqno = ath_tx_tid_seqno_assign(sc, ni, bf, bf->bf_m); - if (seqno < 0) { - device_printf(sc->sc_dev, - "%s: bf=%p, huh, seqno=-1?\n", - __func__, - bf); - /* XXX what can we even do here? */ - } - /* Flush seqno update to RAM */ - /* - * XXX This is required because the dmasetup - * XXX is done early rather than at dispatch - * XXX time. Ew, we should fix this! - */ - bus_dmamap_sync(sc->sc_dmat, bf->bf_dmamap, - BUS_DMASYNC_PREWRITE); - } - } - - /* * If the packet has a sequence number, do not * step outside of the block-ack window. */ if (! BAW_WITHIN(tap->txa_start, tap->txa_wnd, SEQNO(bf->bf_state.bfs_seqno))) { - device_printf(sc->sc_dev, - "%s: bf=%p, seqno=%d, outside?!\n", - __func__, bf, SEQNO(bf->bf_state.bfs_seqno)); status = ATH_AGGR_BAW_CLOSED; break; } Modified: head/sys/dev/ath/if_athvar.h ============================================================================== --- head/sys/dev/ath/if_athvar.h Mon Jun 11 05:25:26 2012 (r236871) +++ head/sys/dev/ath/if_athvar.h Mon Jun 11 06:59:28 2012 (r236872) @@ -216,9 +216,7 @@ struct ath_buf { bfs_istxfrag:1, /* is fragmented */ bfs_ismrr:1, /* do multi-rate TX retry */ bfs_doprot:1, /* do RTS/CTS based protection */ - bfs_doratelookup:1, /* do rate lookup before each TX */ - bfs_need_seqno:1, /* need to assign a seqno for aggr */ - bfs_seqno_assigned:1; /* seqno has been assigned */ + bfs_doratelookup:1; /* do rate lookup before each TX */ int bfs_nfl; /* next fragment length */ _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" From owner-freebsd-wireless@FreeBSD.ORG Mon Jun 11 07:10:09 2012 Return-Path: Delivered-To: freebsd-wireless@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DE8C8106566B for ; Mon, 11 Jun 2012 07:10:09 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id C53348FC08 for ; Mon, 11 Jun 2012 07:10:09 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q5B7A9Rs094278 for ; Mon, 11 Jun 2012 07:10:09 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q5B7A9ZJ094277; Mon, 11 Jun 2012 07:10:09 GMT (envelope-from gnats) Date: Mon, 11 Jun 2012 07:10:09 GMT Message-Id: <201206110710.q5B7A9ZJ094277@freefall.freebsd.org> To: freebsd-wireless@FreeBSD.org From: dfilter@FreeBSD.ORG (dfilter service) Cc: Subject: Re: kern/166190: commit references a PR X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: dfilter service List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 07:10:09 -0000 The following reply was made to PR kern/166190; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/166190: commit references a PR Date: Mon, 11 Jun 2012 07:08:55 +0000 (UTC) Author: adrian Date: Mon Jun 11 07:08:40 2012 New Revision: 236874 URL: http://svn.freebsd.org/changeset/base/236874 Log: Finish undoing the previous commit - this part of the code is no longer required. PR: kern/166190 Modified: head/sys/dev/ath/if_ath_tx.c Modified: head/sys/dev/ath/if_ath_tx.c ============================================================================== --- head/sys/dev/ath/if_ath_tx.c Mon Jun 11 07:06:49 2012 (r236873) +++ head/sys/dev/ath/if_ath_tx.c Mon Jun 11 07:08:40 2012 (r236874) @@ -1518,18 +1518,15 @@ ath_tx_start(struct ath_softc *sc, struc * TID and thus mess with the BAW. */ seqno = ath_tx_tid_seqno_assign(sc, ni, bf, m0); + + /* + * Don't add QoS NULL frames to the BAW. + */ if (IEEE80211_QOS_HAS_SEQ(wh) && subtype != IEEE80211_FC0_SUBTYPE_QOS_NULL) { bf->bf_state.bfs_dobaw = 1; } ATH_TXQ_UNLOCK(txq); - } else { - /* No AMPDU TX, we've been assigned a sequence number. */ - if (IEEE80211_QOS_HAS_SEQ(wh)) { - /* XXX we should store the frag+seqno in bfs_seqno */ - bf->bf_state.bfs_seqno = - M_SEQNO_GET(m0) << IEEE80211_SEQ_SEQ_SHIFT; - } } /* _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" From owner-freebsd-wireless@FreeBSD.ORG Mon Jun 11 07:20:12 2012 Return-Path: Delivered-To: freebsd-wireless@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C68C11065670 for ; Mon, 11 Jun 2012 07:20:12 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id B15CB8FC0A for ; Mon, 11 Jun 2012 07:20:12 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q5B7KCta004570 for ; Mon, 11 Jun 2012 07:20:12 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q5B7KCxj004569; Mon, 11 Jun 2012 07:20:12 GMT (envelope-from gnats) Date: Mon, 11 Jun 2012 07:20:12 GMT Message-Id: <201206110720.q5B7KCxj004569@freefall.freebsd.org> To: freebsd-wireless@FreeBSD.org From: dfilter@FreeBSD.ORG (dfilter service) Cc: Subject: Re: kern/166190: commit references a PR X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: dfilter service List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 07:20:12 -0000 The following reply was made to PR kern/166190; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/166190: commit references a PR Date: Mon, 11 Jun 2012 07:16:04 +0000 (UTC) Author: adrian Date: Mon Jun 11 07:15:48 2012 New Revision: 236876 URL: http://svn.freebsd.org/changeset/base/236876 Log: Retried frames need to be inserted in the head of the list, not the tail. This is an unfortunate byproduct of how the routine is used - it's called with the head frame on the queue, but if the frame is failed, it's inserted into the tail of the queue. Because of this, the sequence numbers would get all shuffled around and the BAW would be bumped past this sequence number, that's now at the end of the software queue. Then, whenever it's time for that frame to be transmitted, it'll be immediately outside of the BAW and TX will stall until the BAW catches up. It can also result in all kinds of weird duplicate BAW frames, leading to hilarious panics. PR: kern/166190 Modified: head/sys/dev/ath/if_ath_tx.c Modified: head/sys/dev/ath/if_ath_tx.c ============================================================================== --- head/sys/dev/ath/if_ath_tx.c Mon Jun 11 07:11:34 2012 (r236875) +++ head/sys/dev/ath/if_ath_tx.c Mon Jun 11 07:15:48 2012 (r236876) @@ -2309,7 +2309,7 @@ ath_tx_xmit_aggr(struct ath_softc *sc, s /* paused? queue */ if (tid->paused) { - ATH_TXQ_INSERT_TAIL(tid, bf, bf_list); + ATH_TXQ_INSERT_HEAD(tid, bf, bf_list); /* XXX don't sched - we're paused! */ return; } _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" From owner-freebsd-wireless@FreeBSD.ORG Mon Jun 11 07:30:21 2012 Return-Path: Delivered-To: freebsd-wireless@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 68E5E106566C for ; Mon, 11 Jun 2012 07:30:21 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 3ACB88FC20 for ; Mon, 11 Jun 2012 07:30:21 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q5B7ULuW015070 for ; Mon, 11 Jun 2012 07:30:21 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q5B7ULf2015066; Mon, 11 Jun 2012 07:30:21 GMT (envelope-from gnats) Date: Mon, 11 Jun 2012 07:30:21 GMT Message-Id: <201206110730.q5B7ULf2015066@freefall.freebsd.org> To: freebsd-wireless@FreeBSD.org From: dfilter@FreeBSD.ORG (dfilter service) Cc: Subject: Re: kern/166190: commit references a PR X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: dfilter service List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 07:30:21 -0000 The following reply was made to PR kern/166190; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/166190: commit references a PR Date: Mon, 11 Jun 2012 07:29:38 +0000 (UTC) Author: adrian Date: Mon Jun 11 07:29:25 2012 New Revision: 236877 URL: http://svn.freebsd.org/changeset/base/236877 Log: When scheduling frames in an aggregate session, the frames should be scheduled from the head of the software queue rather than trying to queue the newly given frame. This leads to some rather unfortunate out of order (but still valid as it's inside the BAW) frame TX. This now: * Always queues the frame at the end of the software queue; * Tries to direct dispatch the frame at the head of the software queue, to try and fill up the hardware queue. TODO: * I should likely try to queue as many frames to the hardware as I can at this point, rather than doing one at a time; * ath_tx_xmit_aggr() may fail and this code assumes that it'll schedule the TID. Otherwise TX may stall. PR: kern/166190 Modified: head/sys/dev/ath/if_ath_tx.c Modified: head/sys/dev/ath/if_ath_tx.c ============================================================================== --- head/sys/dev/ath/if_ath_tx.c Mon Jun 11 07:15:48 2012 (r236876) +++ head/sys/dev/ath/if_ath_tx.c Mon Jun 11 07:29:25 2012 (r236877) @@ -2402,7 +2402,22 @@ ath_tx_swq(struct ath_softc *sc, struct /* XXX sched? */ } else if (ath_tx_ampdu_running(sc, an, tid)) { /* AMPDU running, attempt direct dispatch if possible */ + + /* + * Always queue the frame to the tail of the list. + */ + ATH_TXQ_INSERT_TAIL(atid, bf, bf_list); + + /* + * If the hardware queue isn't busy, direct dispatch + * the head frame in the list. Don't schedule the + * TID - let it build some more frames first? + * + * Otherwise, schedule the TID. + */ if (txq->axq_depth < sc->sc_hwq_limit) { + bf = TAILQ_FIRST(&atid->axq_q); + ATH_TXQ_REMOVE(atid, bf, bf_list); ath_tx_xmit_aggr(sc, an, bf); DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: xmit_aggr\n", @@ -2411,7 +2426,6 @@ ath_tx_swq(struct ath_softc *sc, struct DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: ampdu; swq'ing\n", __func__); - ATH_TXQ_INSERT_TAIL(atid, bf, bf_list); ath_tx_tid_sched(sc, atid); } } else if (txq->axq_depth < sc->sc_hwq_limit) { _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" From owner-freebsd-wireless@FreeBSD.ORG Mon Jun 11 07:40:08 2012 Return-Path: Delivered-To: freebsd-wireless@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 05500106566B for ; Mon, 11 Jun 2012 07:40:07 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id DE2FF8FC14 for ; Mon, 11 Jun 2012 07:40:07 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q5B7e7vd028138 for ; Mon, 11 Jun 2012 07:40:07 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q5B7e7gT028132; Mon, 11 Jun 2012 07:40:07 GMT (envelope-from gnats) Date: Mon, 11 Jun 2012 07:40:07 GMT Message-Id: <201206110740.q5B7e7gT028132@freefall.freebsd.org> To: freebsd-wireless@FreeBSD.org From: dfilter@FreeBSD.ORG (dfilter service) Cc: Subject: Re: kern/166190: commit references a PR X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: dfilter service List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 07:40:08 -0000 The following reply was made to PR kern/166190; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/166190: commit references a PR Date: Mon, 11 Jun 2012 07:32:08 +0000 (UTC) Author: adrian Date: Mon Jun 11 07:31:50 2012 New Revision: 236878 URL: http://svn.freebsd.org/changeset/base/236878 Log: Make sure the frames are queued to the head of the list, not the tail. See previous commit. PR: kern/166190 Modified: head/sys/dev/ath/if_ath_tx.c Modified: head/sys/dev/ath/if_ath_tx.c ============================================================================== --- head/sys/dev/ath/if_ath_tx.c Mon Jun 11 07:29:25 2012 (r236877) +++ head/sys/dev/ath/if_ath_tx.c Mon Jun 11 07:31:50 2012 (r236878) @@ -2318,7 +2318,7 @@ ath_tx_xmit_aggr(struct ath_softc *sc, s if (bf->bf_state.bfs_dobaw && (! BAW_WITHIN(tap->txa_start, tap->txa_wnd, SEQNO(bf->bf_state.bfs_seqno)))) { - ATH_TXQ_INSERT_TAIL(tid, bf, bf_list); + ATH_TXQ_INSERT_HEAD(tid, bf, bf_list); ath_tx_tid_sched(sc, tid); return; } _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" From owner-freebsd-wireless@FreeBSD.ORG Mon Jun 11 07:50:09 2012 Return-Path: Delivered-To: freebsd-wireless@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B075A106564A for ; Mon, 11 Jun 2012 07:50:09 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 9A8FD8FC0C for ; Mon, 11 Jun 2012 07:50:09 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q5B7o9C5037529 for ; Mon, 11 Jun 2012 07:50:09 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q5B7o9hS037528; Mon, 11 Jun 2012 07:50:09 GMT (envelope-from gnats) Date: Mon, 11 Jun 2012 07:50:09 GMT Message-Id: <201206110750.q5B7o9hS037528@freefall.freebsd.org> To: freebsd-wireless@FreeBSD.org From: dfilter@FreeBSD.ORG (dfilter service) Cc: Subject: Re: kern/166190: commit references a PR X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: dfilter service List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 07:50:09 -0000 The following reply was made to PR kern/166190; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/166190: commit references a PR Date: Mon, 11 Jun 2012 07:44:32 +0000 (UTC) Author: adrian Date: Mon Jun 11 07:44:16 2012 New Revision: 236880 URL: http://svn.freebsd.org/changeset/base/236880 Log: Wrap the whole (software) TX path from ifnet dequeue to software queue (or direct dispatch) behind the TXQ lock (which, remember, is doubling as the TID lock too for now.) This ensures that: (a) the sequence number and the CCMP PN allocation is done together; (b) overlapping transmit paths don't interleave frames, so we don't end up with the original issue that triggered kern/166190. Ie, that we don't end up with seqno A, B in thread 1, C, D in thread 2, and they being queued to the software queue as "A C D B" or similar, leading to the BAW stalls. This has been tested: * both STA and AP modes with INVARIANTS and WITNESS; * TCP and UDP TX; * both STA->AP and AP->STA. STA is a Routerstation Pro (single CPU MIPS) and the AP is a dual-core Centrino. PR: kern/166190 Modified: head/sys/dev/ath/if_ath_tx.c Modified: head/sys/dev/ath/if_ath_tx.c ============================================================================== --- head/sys/dev/ath/if_ath_tx.c Mon Jun 11 07:35:24 2012 (r236879) +++ head/sys/dev/ath/if_ath_tx.c Mon Jun 11 07:44:16 2012 (r236880) @@ -1171,6 +1171,15 @@ ath_tx_normal_setup(struct ath_softc *sc struct ath_node *an; u_int pri; + /* + * To ensure that both sequence numbers and the CCMP PN handling + * is "correct", make sure that the relevant TID queue is locked. + * Otherwise the CCMP PN and seqno may appear out of order, causing + * re-ordered frames to have out of order CCMP PN's, resulting + * in many, many frame drops. + */ + ATH_TXQ_LOCK_ASSERT(txq); + wh = mtod(m0, struct ieee80211_frame *); iswep = wh->i_fc[1] & IEEE80211_FC1_WEP; ismcast = IEEE80211_IS_MULTICAST(wh->i_addr1); @@ -1506,11 +1515,18 @@ ath_tx_start(struct ath_softc *sc, struc /* XXX should just bzero the bf_state? */ bf->bf_state.bfs_dobaw = 0; + /* + * Acquire the TXQ lock early, so both the encap and seqno + * are allocated together. + */ + ATH_TXQ_LOCK(txq); + /* A-MPDU TX? Manually set sequence number */ - /* Don't do it whilst pending; the net80211 layer still assigns them */ - /* XXX do we need locking here? */ + /* + * Don't do it whilst pending; the net80211 layer still + * assigns them. + */ if (is_ampdu_tx) { - ATH_TXQ_LOCK(txq); /* * Always call; this function will * handle making sure that null data frames @@ -1526,7 +1542,6 @@ ath_tx_start(struct ath_softc *sc, struc subtype != IEEE80211_FC0_SUBTYPE_QOS_NULL) { bf->bf_state.bfs_dobaw = 1; } - ATH_TXQ_UNLOCK(txq); } /* @@ -1545,7 +1560,7 @@ ath_tx_start(struct ath_softc *sc, struc r = ath_tx_normal_setup(sc, ni, bf, m0, txq); if (r != 0) - return r; + goto done; /* At this point m0 could have changed! */ m0 = bf->bf_m; @@ -1570,16 +1585,12 @@ ath_tx_start(struct ath_softc *sc, struc if (txq == &avp->av_mcastq) { DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p: mcastq: TX'ing\n", __func__, bf); - ATH_TXQ_LOCK(txq); ath_tx_xmit_normal(sc, txq, bf); - ATH_TXQ_UNLOCK(txq); } else if (type == IEEE80211_FC0_TYPE_CTL && subtype == IEEE80211_FC0_SUBTYPE_BAR) { DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: BAR: TX'ing direct\n", __func__); - ATH_TXQ_LOCK(txq); ath_tx_xmit_normal(sc, txq, bf); - ATH_TXQ_UNLOCK(txq); } else { /* add to software queue */ DPRINTF(sc, ATH_DEBUG_SW_TX, @@ -1591,10 +1602,10 @@ ath_tx_start(struct ath_softc *sc, struc * For now, since there's no software queue, * direct-dispatch to the hardware. */ - ATH_TXQ_LOCK(txq); ath_tx_xmit_normal(sc, txq, bf); - ATH_TXQ_UNLOCK(txq); #endif +done: + ATH_TXQ_UNLOCK(txq); return 0; } @@ -1630,10 +1641,29 @@ ath_tx_raw_start(struct ath_softc *sc, s /* XXX honor IEEE80211_BPF_DATAPAD */ pktlen = m0->m_pkthdr.len - (hdrlen & 3) + IEEE80211_CRC_LEN; - DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: ismcast=%d\n", __func__, ismcast); + pri = params->ibp_pri & 3; + /* Override pri if the frame isn't a QoS one */ + if (! IEEE80211_QOS_HAS_SEQ(wh)) + pri = ath_tx_getac(sc, m0); + + /* XXX If it's an ADDBA, override the correct queue */ + do_override = ath_tx_action_frame_override_queue(sc, ni, m0, &o_tid); + + /* Map ADDBA to the correct priority */ + if (do_override) { +#if 0 + device_printf(sc->sc_dev, + "%s: overriding tid %d pri %d -> %d\n", + __func__, o_tid, pri, TID_TO_WME_AC(o_tid)); +#endif + pri = TID_TO_WME_AC(o_tid); + } + + ATH_TXQ_LOCK(sc->sc_ac2q[pri]); + /* Handle encryption twiddling if needed */ if (! ath_tx_tag_crypto(sc, ni, m0, params->ibp_flags & IEEE80211_BPF_CRYPTO, 0, @@ -1688,11 +1718,6 @@ ath_tx_raw_start(struct ath_softc *sc, s if (flags & (HAL_TXDESC_RTSENA|HAL_TXDESC_CTSENA)) bf->bf_state.bfs_ctsrate0 = params->ibp_ctsrate; - pri = params->ibp_pri & 3; - /* Override pri if the frame isn't a QoS one */ - if (! IEEE80211_QOS_HAS_SEQ(wh)) - pri = ath_tx_getac(sc, m0); - /* * NB: we mark all packets as type PSPOLL so the h/w won't * set the sequence number, duration, etc. @@ -1774,19 +1799,6 @@ ath_tx_raw_start(struct ath_softc *sc, s /* NB: no buffered multicast in power save support */ - /* XXX If it's an ADDBA, override the correct queue */ - do_override = ath_tx_action_frame_override_queue(sc, ni, m0, &o_tid); - - /* Map ADDBA to the correct priority */ - if (do_override) { -#if 0 - device_printf(sc->sc_dev, - "%s: overriding tid %d pri %d -> %d\n", - __func__, o_tid, pri, TID_TO_WME_AC(o_tid)); -#endif - pri = TID_TO_WME_AC(o_tid); - } - /* * If we're overiding the ADDBA destination, dump directly * into the hardware queue, right after any pending @@ -1796,13 +1808,12 @@ ath_tx_raw_start(struct ath_softc *sc, s __func__, do_override); if (do_override) { - ATH_TXQ_LOCK(sc->sc_ac2q[pri]); ath_tx_xmit_normal(sc, sc->sc_ac2q[pri], bf); - ATH_TXQ_UNLOCK(sc->sc_ac2q[pri]); } else { /* Queue to software queue */ ath_tx_swq(sc, ni, sc->sc_ac2q[pri], bf); } + ATH_TXQ_UNLOCK(sc->sc_ac2q[pri]); return 0; } @@ -2032,6 +2043,15 @@ ath_tx_addto_baw(struct ath_softc *sc, s if (bf->bf_state.bfs_isretried) return; + if (! bf->bf_state.bfs_dobaw) { + device_printf(sc->sc_dev, + "%s: dobaw=0, seqno=%d, window %d:%d\n", + __func__, + SEQNO(bf->bf_state.bfs_seqno), + tap->txa_start, + tap->txa_wnd); + } + tap = ath_tx_get_tx_tid(an, tid->tid); if (bf->bf_state.bfs_addedbaw) @@ -2043,6 +2063,20 @@ ath_tx_addto_baw(struct ath_softc *sc, s tid->baw_tail); /* + * Verify that the given sequence number is not outside of the + * BAW. Complain loudly if that's the case. + */ + if (! BAW_WITHIN(tap->txa_start, tap->txa_wnd, + SEQNO(bf->bf_state.bfs_seqno))) { + device_printf(sc->sc_dev, + "%s: bf=%p: outside of BAW?? tid=%d, seqno %d; window %d:%d; " + "baw head=%d tail=%d\n", + __func__, bf, tid->tid, SEQNO(bf->bf_state.bfs_seqno), + tap->txa_start, tap->txa_wnd, tid->baw_head, + tid->baw_tail); + } + + /* * ni->ni_txseqs[] is the currently allocated seqno. * the txa state contains the current baw start. */ @@ -2265,6 +2299,8 @@ ath_tx_tid_seqno_assign(struct ath_softc if (! IEEE80211_QOS_HAS_SEQ(wh)) return -1; + ATH_TID_LOCK_ASSERT(sc, &(ATH_NODE(ni)->an_tid[tid])); + /* * Is it a QOS NULL Data frame? Give it a sequence number from * the default TID (IEEE80211_NONQOS_TID.) @@ -2276,6 +2312,7 @@ ath_tx_tid_seqno_assign(struct ath_softc */ subtype = wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK; if (subtype == IEEE80211_FC0_SUBTYPE_QOS_NULL) { + /* XXX no locking for this TID? This is a bit of a problem. */ seqno = ni->ni_txseqs[IEEE80211_NONQOS_TID]; INCR(ni->ni_txseqs[IEEE80211_NONQOS_TID], IEEE80211_SEQ_RANGE); } else { @@ -2369,6 +2406,8 @@ ath_tx_swq(struct ath_softc *sc, struct int pri, tid; struct mbuf *m0 = bf->bf_m; + ATH_TXQ_LOCK_ASSERT(txq); + /* Fetch the TID - non-QoS frames get assigned to TID 16 */ wh = mtod(m0, struct ieee80211_frame *); pri = ath_tx_getac(sc, m0); @@ -2391,7 +2430,6 @@ ath_tx_swq(struct ath_softc *sc, struct * If the TID is paused or the traffic it outside BAW, software * queue it. */ - ATH_TXQ_LOCK(txq); if (atid->paused) { /* TID is paused, queue */ DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: paused\n", __func__); @@ -2439,7 +2477,6 @@ ath_tx_swq(struct ath_softc *sc, struct ATH_TXQ_INSERT_TAIL(atid, bf, bf_list); ath_tx_tid_sched(sc, atid); } - ATH_TXQ_UNLOCK(txq); } /* _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" From owner-freebsd-wireless@FreeBSD.ORG Mon Jun 11 08:35:54 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 53C991065673 for ; Mon, 11 Jun 2012 08:35:54 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id 2ACAB8FC18 for ; Mon, 11 Jun 2012 08:35:54 +0000 (UTC) Received: by dadv36 with SMTP id v36so5300825dad.13 for ; Mon, 11 Jun 2012 01:35:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; bh=9c9g00ErM8xc73Q2dAJ8TSdjeXxyUJuGurR7jzVidQw=; b=LuwJ9YmKZH+WEefRelJyJ0M4K4pbOvbFxB+OfRx5JrcwquP1CUz/DgnsqtSgqokDD5 8KFZaruaw7pdpDtjh/XHqWSNm1qBxhEZh2Ks0noJbIqy1aXoVY6JcML0blZ9NHddtteM ei/w2ZiQCX7uampa51rESL4bVzitS6YjzKaTv8y1fDdps5XE9IsvjMd6Q72g7Ngx55Ij yuOLnLEbilFXSpdeijr7Ds7tFAa4Vp18sc+QTEN+NkbO3O2mBYyObqlLwswr9lAJ5VPQ ibsXAwo9k6zhZ9ONg+59dIIJZ4iQVTbem4QlT84+7mfla4WxuD6SR1lFmiPz8i6hhCrr Md3A== MIME-Version: 1.0 Received: by 10.68.226.226 with SMTP id rv2mr25468274pbc.101.1339403753752; Mon, 11 Jun 2012 01:35:53 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.91.18 with HTTP; Mon, 11 Jun 2012 01:35:53 -0700 (PDT) Date: Mon, 11 Jun 2012 01:35:53 -0700 X-Google-Sender-Auth: -c9dlTj6C6_7Vqb4yTy8ml-I4aA Message-ID: From: Adrian Chadd To: freebsd-wireless@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Subject: [heads up] please test -HEAD ath(4) 802.11n! X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 08:35:54 -0000 Hi all, I've just done some major surgery to the ath(4) TX path to fix TX throughput issues on SMP. The commit history has all the sordid details. I'd really appreciate it if people could test this out in STA and AP mode with INVARIANTS/WITNESS enabled. I'd like to ensure I haven't introduced LORs or any locking issues. As always, positive feedback is also useful (just so I know the code is tested.) I'd really like to get this thrashed out so I can move onto implementing the management frame prioritisation, power save and filtered frame support. Once that's done, I'll enable 802.11n by default. Thanks again! Adrian From owner-freebsd-wireless@FreeBSD.ORG Mon Jun 11 11:07:37 2012 Return-Path: Delivered-To: freebsd-wireless@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C0F68106564A for ; Mon, 11 Jun 2012 11:07:37 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id AAEDA8FC14 for ; Mon, 11 Jun 2012 11:07:37 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q5BB7bwR053489 for ; Mon, 11 Jun 2012 11:07:37 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q5BB7ba4053487 for freebsd-wireless@FreeBSD.org; Mon, 11 Jun 2012 11:07:37 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 11 Jun 2012 11:07:37 GMT Message-Id: <201206111107.q5BB7ba4053487@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-wireless@FreeBSD.org Cc: Subject: Current problem reports assigned to freebsd-wireless@FreeBSD.org X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 11:07:37 -0000 Note: to view an individual PR, use: http://www.freebsd.org/cgi/query-pr.cgi?pr=(number). The following is a listing of current problems submitted by FreeBSD users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Tracker Resp. Description -------------------------------------------------------------------------------- o kern/168530 wireless [ath] Broken WEP probably o kern/168393 wireless AR9285: suspend/resume sometimes fails o kern/168170 wireless [net80211] ieee80211_send_bar() doesn't complete corre o kern/167870 wireless [ath] adhoc wifi client does not join an existing IBSS o kern/167834 wireless [ath] kickpcu; 'handled 0 packets' o kern/167828 wireless [iwn] iwn(4) doesn't recover automatically after firmw o kern/167798 wireless ifconfig(8): problem with "ifconfig list scan" command o kern/167491 wireless [ath] TID != hardware queue TID in ath_tx_aggr_comp_ag o kern/167113 wireless [ath] AR5210: "stuck" TX seems to be occuring, without o kern/167080 wireless [ath] channel switch on another VAP break channel setu o kern/166684 wireless [ath] [net80211] mgmtrate/mcastrate isn't updated base p kern/166642 wireless [ieee80211] [patch] in 802.11n mode for FreeBSD AP, ha o kern/166641 wireless [ieee80211] [patch] mbuf/cluster leak in AP mode in 80 p kern/166357 wireless [ath] 802.11n TX stall when the first frame in the BAW o kern/166286 wireless [net80211] [ath] initial switch to HT40 isn't causing p kern/166190 wireless [ath] TX hangs and frames stuck in TX queue o kern/166086 wireless [Patch][ath] Reflect state of rfkill switch in a sysct o kern/165969 wireless [ath] Slower performance in adhoc mode vs Client/AP mo o kern/165966 wireless [ath] ath0: device timeout on SMP machines due to race o kern/165895 wireless [ath] overly busy cabq can tie up all tx buffers o kern/165870 wireless [bwn] bwn driver does not attach on HP Pavilion dv9420 o kern/165866 wireless [ath] TX hangs, requiring a "scan" to properly reset t o kern/165849 wireless [ath] [hang] network ath driver freeze o kern/165595 wireless [ipw] ipw(4): Can't load firmare for ipw2200bg o kern/165543 wireless [ath] ath0 endless scanning of channels without connec o kern/165517 wireless [net80211] bgscan isn't triggered when invalid beacons o kern/165475 wireless [ath] operational mode change doesn't poke the underly o kern/165382 wireless [kernel] taskqueue_unblock doesn't unblock currently q o kern/165306 wireless [ath] race conditions between scanning and beacon time o kern/165220 wireless [ath] "ath_rx_tasklet: sc_inreset_cnt > 0; skipping" m o kern/165214 wireless [ieee80211] Kernel panic in ieee80211_output.c:2505 o kern/165212 wireless [ath] No WiFi on Acer Aspire One 751h (Atheros AR5BHB6 o kern/165149 wireless [ath] [net80211] Ping with data length more than iv_fr o kern/165146 wireless [net80211] Net802.11 Fragment number is assigned 1 (sh o kern/165060 wireless [ath] vap->iv_bss race conditions causing crashes insi o kern/165021 wireless [ath] ath device timeout during scan/attach, if wlan_c o kern/164951 wireless [ath] [patch] Problem build of if_ath driver with cert o kern/164721 wireless [ath] ath device timeouts o kern/164499 wireless [wi] [patch] if_wi needs fix for big endian architectu o kern/164382 wireless [ath] crash when down/deleting a vap - inside ieee8021 o kern/164365 wireless [iwi] iwi0: UP/DOWN in o bin/164102 wireless hostapd not configured for 802.11n o kern/163759 wireless [ath] ath(4) "stops working" in hostap mode o kern/163724 wireless [mwl] [patch] NULL check before dereference o kern/163719 wireless [ath] ath interface do not receive multicast o kern/163689 wireless [ath] TX timeouts when sending probe/mgmt frames durin o kern/163574 wireless [net80211] overly-frequent HT occupancy changes o kern/163573 wireless [ath] hostap mode TX buffer hang o kern/163559 wireless [ath] kernel panic AH_DEBUG o kern/163318 wireless [ath] ath(4) stops working p kern/163312 wireless [panic] [ath driver] kernel panic: page fault with ath o kern/163237 wireless [ath] AR5416 as HostAP. Delays among clients when a cl o kern/163082 wireless [ath] ar9285 diversity fixes o kern/162648 wireless [ath] AR9227 ADC DC calibration failure o kern/162647 wireless [ath] 11n TX aggregation session / TX hang o kern/161293 wireless [iwn] hang at startup when starting network o kern/161035 wireless [ieee80211] Incorrect number describing 11ng MCS rate o kern/160391 wireless [ieee80211] [patch] Panic in mesh mode o kern/160296 wireless [zyd] [panic] 802.11 usb device reboots system on 'ifc o misc/160176 wireless [mips] [panic] Kernel panic on AR7161 platform with AR o kern/157449 wireless [ath] MAC address conflict causes system to freeze o kern/157243 wireless [ath] investigate beacon TX (AP) / RX (STA) when under o kern/156904 wireless [ath] AR9285 antenna diversity algorithm is buggy and o kern/156884 wireless [ath] ath instablity o kern/156327 wireless [bwn] bwn driver causes 20%-50% packet loss o kern/156322 wireless [wpi] no ahdemo support for if_wpi o kern/156321 wireless [ath] ahdemo doesn't work with if_ath o kern/155498 wireless [ral] ral(4) needs to be resynced with OpenBSD's to ga o kern/155100 wireless [ath] ath driver on busy channel: "stuck beacon" p kern/154598 wireless [ath] Atheros 5424/2424 can't connect to WPA network o kern/154567 wireless [ath] ath(4) lot of bad series(0) o kern/154327 wireless [ath] AR5416 in station mode hangs when transmitting f o kern/154284 wireless [ath] Modern ath wifi cards (such as AR9285) have miss o kern/154153 wireless [ath] AR5213 + MIPS + WPA group key packet corruption o kern/153448 wireless [ath] ath networking device loses association after a o kern/152750 wireless [ath] ath0 lot of bad series hwrate o kern/151198 wireless [ath] ath/5416 fails bgscan with "ath0: ath_chan_set: o kern/149786 wireless [bwn] bwn on Dell Inspiron 1150: connections stall o kern/149516 wireless [ath] ath(4) hostap with fake MAC/BSSID results in sta o kern/149373 wireless [realtek/atheros]: None of my network card working o kern/148322 wireless [ath] Triggering atheros wifi beacon misses in hostap o kern/148317 wireless [ath] FreeBSD 7.x hostap memory leak in net80211 or At o kern/148078 wireless [ath] wireless networking stops functioning o kern/146426 wireless [mwl] 802.11n rates not possible on mwl o kern/146425 wireless [mwl] mwl dropping all packets during and after high u o kern/145826 wireless [panic] [ath] Unable to configure adhoc mode on ath0/w o kern/144987 wireless [wpi] [panic] injecting packets with wlaninject using o bin/144109 wireless hostapd(8) uses the MAC of the wireless interface, but o conf/143079 wireless hostapd(8) startup missing multi wlan functionality p kern/140567 wireless [ath] [patch] ath is not worked on my notebook PC o kern/140245 wireless [ath] [panic] Kernel panic during network activity on o kern/137592 wireless [ath] panic - 7-STABLE (Aug 7, 2009 UTC) crashes on ne p bin/137484 wireless [patch] Integer overflow in wpa_supplicant(8) base64 e o kern/136943 wireless [wpi] [lor] wpi0_com_lock / wpi0 o kern/136836 wireless [ath] atheros card stops functioning after about 12 ho o kern/132722 wireless [ath] Wifi ath0 associates fine with AP, but DHCP or I o bin/131549 wireless ifconfig(8) can't clear 'monitor' mode on the wireless o kern/126475 wireless [ath] [panic] ath pcmcia card inevitably panics under o kern/125721 wireless [ath] Terrible throughput/high ping latency with Ubiqu o kern/125617 wireless [ath] [panic] ath(4) related panic o kern/125501 wireless [ath] atheros cardbus driver hangs o kern/125332 wireless [ath] [panic] crash under any non-tiny networking unde o kern/124767 wireless [iwi] Wireless connection using iwi0 driver (Intel 220 o kern/124753 wireless [ieee80211] net80211 discards power-save queue packets o docs/120456 wireless ath(4) needs to specify requirement on wlan_scan_sta o kern/119513 wireless [ath] [irq] inserting dlink dwl-g630 wireless card res o kern/116747 wireless [ndis] FreeBSD 7.0-CURRENT crash with Dell TrueMobile f kern/105348 wireless [ath] ath device stopps TX 108 problems total. From owner-freebsd-wireless@FreeBSD.ORG Mon Jun 11 15:52:52 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id F1F6A106566B for ; Mon, 11 Jun 2012 15:52:52 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-we0-f182.google.com (mail-we0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id 883EB8FC18 for ; Mon, 11 Jun 2012 15:52:52 +0000 (UTC) Received: by werg1 with SMTP id g1so2759180wer.13 for ; Mon, 11 Jun 2012 08:52:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=yNKAVhCEyl1Hjl+XtX31qhFR94lVx3eQPknIK7TvITA=; b=Dneo9d/hO8uLxzq83GpU6FdIW+pjfVEfpnrTR6+/ZjSyJZGg50xB8EdrTz6YXdBaW7 6v2tsL59ZdTLJzJj2qWkBh1W70gx8TAW9+5v/3PRGpieLqOTzy4jaX1W+RRECcQnQSm2 avd/mYOeVAv0Syzl0tZsHdhz1Muv+ayMBBV/JwelvM7PufTMX76K5jQcfUDrKcPN96Km hgzfS7+OMl2VwE8BL8MwLJ8QoeskISCAZB3b2ihbuzPXGfN2KgHs50eRMDb4uuTgeILZ PpsLHrS5Iw/JsPTu1gAUB1M0hbcjCv5IHGfSXNKd3zuk4pDtvi2g251P1jMRfIo4I+1h IvcA== MIME-Version: 1.0 Received: by 10.180.74.193 with SMTP id w1mr21960540wiv.4.1339429971452; Mon, 11 Jun 2012 08:52:51 -0700 (PDT) Received: by 10.223.158.207 with HTTP; Mon, 11 Jun 2012 08:52:51 -0700 (PDT) Date: Mon, 11 Jun 2012 17:52:51 +0200 Message-ID: From: Monthadar Al Jaberi To: freebsd-wireless@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Subject: AP <-> STA: tcpdump shows duplicate ARP request from STA, but STA only sends one. X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 15:52:53 -0000 Hi, I am looking at tcpdump output from an AP <-> STA setup with ping. Running FreeBSD Current @ RSPRO with XR-2 wifi card (pciconf says: AR5413 802.11abg NIC). AP setup: ifconfig wlan0 create wlandev ath0 wlanmode hostap mode 11g channel 7 ssid 3a3a -bgscan tcpdump -i wlan0 -XXX & ifconfig wlan0 inet 192.168.0.1 STA setup: ifconfig wlan0 create wlandev ath0 wlanmode sta mode 11g channel 7 ssid 3a3a -bgscan tcpdump -i wlan0 -XXX & ifconfig wlan0 inet 192.168.0.2 I setup AP first, then STA. tcpdump output: After AP setup on AP: 17:40:22.373042 ARP, Request who-has 192.168.0.1 tell 192.168.0.1, length 28 0x0000: ffff ffff ffff 0015 6d67 2173 0806 0001 ........mg!s.... 0x0010: 0800 0604 0001 0015 6d67 2173 c0a8 0001 ........mg!s.... 0x0020: 0000 0000 0000 c0a8 0001 .......... After STA setup on STA: 01:04:08.778887 ARP, Request who-has 192.168.0.2 tell 192.168.0.2, length 28 0x0000: ffff ffff ffff 0015 6d67 2194 0806 0001 ........mg!..... 0x0010: 0800 0604 0001 0015 6d67 2194 c0a8 0002 ........mg!..... 0x0020: 0000 0000 0000 c0a8 0002 .......... After STA setup on AP: 17:40:40.814970 00:15:6d:67:21:94 (oui Unknown) > Broadcast Null Supervisory, Receiver not Ready, rcv seq 64, Flags [Poll], length 6 0x0000: ffff ffff ffff 0015 6d67 2194 0006 0000 ........mg!..... 0x0010: f581 8000 .... 17:40:40.815023 00:15:6d:67:21:94 (oui Unknown) > Broadcast Null Supervisory, Receiver not Ready, rcv seq 64, Flags [Poll], length 6 0x0000: ffff ffff ffff 0015 6d67 2194 0006 0000 ........mg!..... 0x0010: f581 8000 .... 17:40:40.816963 ARP, Request who-has 192.168.0.2 tell 192.168.0.2, length 28 0x0000: ffff ffff ffff 0015 6d67 2194 0806 0001 ........mg!..... 0x0010: 0800 0604 0001 0015 6d67 2194 c0a8 0002 ........mg!..... 0x0020: 0000 0000 0000 c0a8 0002 .......... 17:40:40.817024 ARP, Request who-has 192.168.0.2 tell 192.168.0.2, length 28 0x0000: ffff ffff ffff 0015 6d67 2194 0806 0001 ........mg!..... 0x0010: 0800 0604 0001 0015 6d67 2194 c0a8 0002 ........mg!..... 0x0020: 0000 0000 0000 c0a8 0002 .......... Now I run ping -c 1 192.168.0.1. After 'ping -c 1 192.168.0.1' from STA on STA: 01:04:25.769500 ARP, Request who-has 192.168.0.1 tell 192.168.0.2, length 28 0x0000: ffff ffff ffff 0015 6d67 2194 0806 0001 ........mg!..... 0x0010: 0800 0604 0001 0015 6d67 2194 c0a8 0002 ........mg!..... 0x0020: 0000 0000 0000 c0a8 0001 .......... 01:04:25.776037 ARP, Reply 192.168.0.1 is-at 00:15:6d:67:21:73 (oui Unknown), length 28 0x0000: 0015 6d67 2194 0015 6d67 2173 0806 0001 ..mg!...mg!s.... 0x0010: 0800 0604 0002 0015 6d67 2173 c0a8 0001 ........mg!s.... 0x0020: 0015 6d67 2194 c0a8 0002 ..mg!..... 01:04:25.776097 IP 192.168.0.2 > 192.168.0.1: ICMP echo request, id 1330, seq 0, length 64 0x0000: 0015 6d67 2173 0015 6d67 2194 0800 4500 ..mg!s..mg!...E. 0x0010: 0054 20c5 0000 4001 d890 c0a8 0002 c0a8 .T....@......... 0x0020: 0001 0800 4d0b 0532 0000 0000 0109 000b ....M..2........ 0x0030: b9ab 0809 0a0b 0c0d 0e0f 1011 1213 1415 ................ 0x0040: 1617 1819 1a1b 1c1d 1e1f 2021 2223 2425 ...........!"#$% 0x0050: 2627 2829 2a2b 2c2d 2e2f 3031 3233 3435 &'()*+,-./012345 0x0060: 3637 67 01:04:25.777758 IP 192.168.0.1 > 192.168.0.2: ICMP echo reply, id 1330, seq 0, length 64 0x0000: 0015 6d67 2194 0015 6d67 2173 0800 4500 ..mg!...mg!s..E. 0x0010: 0054 22b0 0000 4001 d6a5 c0a8 0001 c0a8 .T"...@......... 0x0020: 0002 0000 550b 0532 0000 0000 0109 000b ....U..2........ 0x0030: b9ab 0809 0a0b 0c0d 0e0f 1011 1213 1415 ................ 0x0040: 1617 1819 1a1b 1c1d 1e1f 2021 2223 2425 ...........!"#$% 0x0050: 2627 2829 2a2b 2c2d 2e2f 3031 3233 3435 &'()*+,-./012345 0x0060: 3637 67 After 'ping -c 1 192.168.0.1' from STA on AP: 17:40:57.809311 ARP, Request who-has 192.168.0.1 tell 192.168.0.2, length 28 0x0000: ffff ffff ffff 0015 6d67 2194 0806 0001 ........mg!..... 0x0010: 0800 0604 0001 0015 6d67 2194 c0a8 0002 ........mg!..... 0x0020: 0000 0000 0000 c0a8 0001 .......... 17:40:57.809378 ARP, Request who-has 192.168.0.1 tell 192.168.0.2, length 28 0x0000: ffff ffff ffff 0015 6d67 2194 0806 0001 ........mg!..... 0x0010: 0800 0604 0001 0015 6d67 2194 c0a8 0002 ........mg!..... 0x0020: 0000 0000 0000 c0a8 0001 .......... 17:40:57.809480 ARP, Reply 192.168.0.1 is-at 00:15:6d:67:21:73 (oui Unknown), length 28 0x0000: 0015 6d67 2194 0015 6d67 2173 0806 0001 ..mg!...mg!s.... 0x0010: 0800 0604 0002 0015 6d67 2173 c0a8 0001 ........mg!s.... 0x0020: 0015 6d67 2194 c0a8 0002 ..mg!..... 17:40:57.814066 IP 192.168.0.2 > 192.168.0.1: ICMP echo request, id 1330, seq 0, length 64 0x0000: 0015 6d67 2173 0015 6d67 2194 0800 4500 ..mg!s..mg!...E. 0x0010: 0054 20c5 0000 4001 d890 c0a8 0002 c0a8 .T....@......... 0x0020: 0001 0800 4d0b 0532 0000 0000 0109 000b ....M..2........ 0x0030: b9ab 0809 0a0b 0c0d 0e0f 1011 1213 1415 ................ 0x0040: 1617 1819 1a1b 1c1d 1e1f 2021 2223 2425 ...........!"#$% 0x0050: 2627 2829 2a2b 2c2d 2e2f 3031 3233 3435 &'()*+,-./012345 0x0060: 3637 67 17:40:57.814132 IP 192.168.0.1 > 192.168.0.2: ICMP echo reply, id 1330, seq 0, length 64 0x0000: 0015 6d67 2194 0015 6d67 2173 0800 4500 ..mg!...mg!s..E. 0x0010: 0054 22b0 0000 4001 d6a5 c0a8 0001 c0a8 .T"...@......... 0x0020: 0002 0000 550b 0532 0000 0000 0109 000b ....U..2........ 0x0030: b9ab 0809 0a0b 0c0d 0e0f 1011 1213 1415 ................ 0x0040: 1617 1819 1a1b 1c1d 1e1f 2021 2223 2425 ...........!"#$% 0x0050: 2627 2829 2a2b 2c2d 2e2f 3031 3233 3435 &'()*+,-./012345 0x0060: 3637 67 I have a couple of questions: 1) What is and why do STA send out 'Broadcast Null Supervisory, Receiver not Ready'? What I could understand is that this means STA is not ready to receive data? Why? 2) STA sends one ARP request, but on AP tcpdump shows it as two why? Same goes for 'Broadcast Null Supervisory, Receiver not Ready' I guess? Because AP sees two. Why? I dont think it the retry thing, cause I setup an extra RSPRO as monitor and it registers only one ARP request. This could be a question for net people, but I am unsure, and since I am testing on wifi cards I thought I start here :) Thnx! -- Monthadar Al Jaberi From owner-freebsd-wireless@FreeBSD.ORG Mon Jun 11 16:28:50 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1614A1065675 for ; Mon, 11 Jun 2012 16:28:50 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id DBD4D8FC0C for ; Mon, 11 Jun 2012 16:28:49 +0000 (UTC) Received: by dadv36 with SMTP id v36so5893319dad.13 for ; Mon, 11 Jun 2012 09:28:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=lu/fGkm244kw/fP63C5s85H+L9hpTGf8nduPfN64JAc=; b=zPSA/dEt2+IMgLV+GVk41M8eT8Q2/haEO/GZhqInTwkcVSKrneN5A9YxdluElaODvH s4blFXwBfy4BTpre24RZLCoMqvEGabG+4/+O47BHMqH0eOs2oCq0kaN+4PIVq7ZlJ6Kg eEumX8xdl0hAkbkCwYPJwUG9dCDDWORdufFNyTJNNmHNPREgRQ4vvIxopB2FH0wqwqmE luha2dTL+VY7ilCZNPCRjSTXPR/jldXG2S9CFJQoLtbfH/Qmb0WWQaEjkDLTEnkDi7Yx 3sY+LoflhJLfyClm9YPFL/DaXRgwuoozMwO4GCoxcw76zd6XFV4IwHTV8hyXCKTe0dH4 +I4w== MIME-Version: 1.0 Received: by 10.68.226.226 with SMTP id rv2mr29645853pbc.101.1339432129583; Mon, 11 Jun 2012 09:28:49 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.91.18 with HTTP; Mon, 11 Jun 2012 09:28:49 -0700 (PDT) In-Reply-To: References: Date: Mon, 11 Jun 2012 09:28:49 -0700 X-Google-Sender-Auth: QuMouUoPbsm3GM1Spnc65V26Hdg Message-ID: From: Adrian Chadd To: Monthadar Al Jaberi Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: AP <-> STA: tcpdump shows duplicate ARP request from STA, but STA only sends one. X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 16:28:50 -0000 Hi! The "null frame" is from hostap. It sends it out whenever a new station (re) joins. It's a broadcast frame that's harmless, designed to "seed" all the switches with the true location of the MAC address. As for dup packets, I'm not sure. Hm! Adrian From owner-freebsd-wireless@FreeBSD.ORG Mon Jun 11 17:14:29 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CF93D106564A for ; Mon, 11 Jun 2012 17:14:29 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pb0-f54.google.com (mail-pb0-f54.google.com [209.85.160.54]) by mx1.freebsd.org (Postfix) with ESMTP id A607C8FC0A for ; Mon, 11 Jun 2012 17:14:29 +0000 (UTC) Received: by pbbro2 with SMTP id ro2so6145564pbb.13 for ; Mon, 11 Jun 2012 10:14:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; bh=PN6FM33QfTo+B6Ijo+lzwIaS4wsD4WwVigCTtvJkZpc=; b=VsCmUyuFGvZzjvjKLZxwJXZ3WRqkt+mCzkBpctXaNy948hUEucsDXSNwMew8huiQl9 3bMwsq7xJzH1QKIXGXWV6QDhYB2gfbfkudOj1RfnDuPCJG4/17WofDyBONzTt6vIcPXn dKdcbHyvtYekr4ToH5QqL+46VOQnz8JmtjWZ+CJFNNnNBg41GlILhQhq58jKibdyRZJH TpaYxJkQm/lp4ZMDocpLuoTRunaCB8s6a1wsAyi0pTQFcVtZlkL9uoqoJop4IicVuvhi GTT+0ZkeZD7K+lcwhARlWqIzQ1VRh309DdW1yZs9wnPyiXrjckaITtFeB5QBrtxjF6P5 tOsg== MIME-Version: 1.0 Received: by 10.68.135.201 with SMTP id pu9mr28275204pbb.146.1339434869274; Mon, 11 Jun 2012 10:14:29 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.91.18 with HTTP; Mon, 11 Jun 2012 10:14:29 -0700 (PDT) Date: Mon, 11 Jun 2012 10:14:29 -0700 X-Google-Sender-Auth: XU5hCNk7-4PdZ2o_jFve8wznUhY Message-ID: From: Adrian Chadd To: freebsd-wireless@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Subject: sample 'athaggrstats' output X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 17:14:29 -0000 Hi, As requested by bschmidt@: adrian@marilyn:~/work/freebsd/ath/head/src/sys/modules]> ~/bin/athaggrstats 42670 single frames scheduled 54 frames outside of the BAW 810306 aggregate frames scheduled 1399 single frames due to closed BAW 385116 single frames scheduled due to low HWQ depth 15545 sched called with no frames Aggregate size profile: 0: 0 1: 0 2: 16656 3: 8197 4: 6863 5: 5474 6: 5346 7: 5310 8: 5938 9: 6211 10: 6859 11: 6726 12: 6906 13: 6711 14: 7230 15: 7337 16: 6720 17: 6280 18: 6818 19: 5136 20: 4920 21: 4887 22: 4694 23: 4513 24: 4578 25: 4784 26: 4902 27: 6344 28: 5245 29: 5023 30: 5473 31: 6183 32: 622042 33: 0 34: 0 35: 0 36: 0 37: 0 38: 0 39: 0 40: 0 41: 0 42: 0 43: 0 44: 0 45: 0 46: 0 47: 0 48: 0 49: 0 50: 0 51: 0 52: 0 53: 0 54: 0 55: 0 56: 0 57: 0 58: 0 59: 0 60: 0 61: 0 62: 0 63: 0 adrian@marilyn:~/work/freebsd/ath/head/src/sys/modules]> ~/bin/athaggrstats 1 spkt nbpkt aggpkt bawclpkt lhspkt snopkt rtslimit 42670 54 810306 1399 385116 15545 0 0 0 0 0 0 0 0 Adrian From owner-freebsd-wireless@FreeBSD.ORG Mon Jun 11 19:51:13 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B37D81065674 for ; Mon, 11 Jun 2012 19:51:13 +0000 (UTC) (envelope-from bschmidt@techwires.net) Received: from mail-bk0-f54.google.com (mail-bk0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id 314828FC22 for ; Mon, 11 Jun 2012 19:51:12 +0000 (UTC) Received: by bkvi18 with SMTP id i18so4828123bkv.13 for ; Mon, 11 Jun 2012 12:51:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=sender:from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id :x-gm-message-state; bh=BYsnJYX9XS4qRAN4R4ZuHcOsDIdg9h4UcYO94GOlTtU=; b=Dk+ijL8qtag+mD8LuKDFiQ5X6CDf82JEcpMCPKIfKTfHXk18w63ofFfxtvj8S7Zkco hMqqmokhZULp4Jd529yswWAJoz+61LSoKtuN9XT+g+cVvGhEdIXfDCZyZe+k5MNF10V7 u6Aeo2aJb/uV5xiFfHddtlTwVhT5kA8QzWz6lkFPQupD/cfTUKD+WNRxLdgUx+fYzsXV DIbd184FolWik3jAymyhUPR3hZiXzocHo5exs/BwdPCSXaaXVbY7Pq4epjT9BVGhx7QG zuobeIf+UXdcgx7sb2iuRvfnDchbpgXxSKeRB/ng6147uwSqfIarrDIJmlqi2u5SBy+q d3Dg== Received: by 10.205.133.193 with SMTP id hz1mr10943868bkc.31.1339444271803; Mon, 11 Jun 2012 12:51:11 -0700 (PDT) Received: from amy.lab.techwires.net (dslb-094-217-133-166.pools.arcor-ip.net. [94.217.133.166]) by mx.google.com with ESMTPS id o4sm17726022bkv.15.2012.06.11.12.51.10 (version=SSLv3 cipher=OTHER); Mon, 11 Jun 2012 12:51:11 -0700 (PDT) Sender: Bernhard Schmidt From: Bernhard Schmidt To: freebsd-wireless@freebsd.org Date: Mon, 11 Jun 2012 21:51:39 +0200 User-Agent: KMail/1.13.7 (FreeBSD/9.0-STABLE; KDE/4.7.4; amd64; ; ) References: In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201206112151.39755.bschmidt@freebsd.org> X-Gm-Message-State: ALoCoQnnsm9BtNxsN35VXcODwjjuFRiW8GnIAfStNCMzNV6/eWse2Ml+l7g2Jcs3CDLU9A2jZEso Cc: Subject: Re: sample 'athaggrstats' output X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 19:51:13 -0000 On Monday 11 June 2012 19:14:29 Adrian Chadd wrote: > Hi, > > As requested by bschmidt@: Thanks > adrian@marilyn:~/work/freebsd/ath/head/src/sys/modules]> ~/bin/athaggrstats > 42670 single frames scheduled > 54 frames outside of the BAW > 810306 aggregate frames scheduled > 1399 single frames due to closed BAW > 385116 single frames scheduled due to low HWQ depth > 15545 sched called with no frames > > Aggregate size profile: > > 0: 0 1: 0 2: 16656 3: 8197 > 4: 6863 5: 5474 6: 5346 7: 5310 > 8: 5938 9: 6211 10: 6859 11: 6726 > 12: 6906 13: 6711 14: 7230 15: 7337 > 16: 6720 17: 6280 18: 6818 19: 5136 > 20: 4920 21: 4887 22: 4694 23: 4513 > 24: 4578 25: 4784 26: 4902 27: 6344 > 28: 5245 29: 5023 30: 5473 31: 6183 > 32: 622042 33: 0 34: 0 35: 0 > 36: 0 37: 0 38: 0 39: 0 > 40: 0 41: 0 42: 0 43: 0 > 44: 0 45: 0 46: 0 47: 0 > 48: 0 49: 0 50: 0 51: 0 > 52: 0 53: 0 54: 0 55: 0 > 56: 0 57: 0 58: 0 59: 0 > 60: 0 61: 0 62: 0 63: 0 The first column is the number of frames in a BAW I assume. But what's the second exactly? The total number of frames or the number of BAWs that size? > adrian@marilyn:~/work/freebsd/ath/head/src/sys/modules]> ~/bin/athaggrstats 1 > spkt nbpkt aggpkt bawclpkt lhspkt snopkt rtslimit > 42670 54 810306 1399 385116 15545 0 > 0 0 0 0 0 0 0 -- Bernhard From owner-freebsd-wireless@FreeBSD.ORG Mon Jun 11 20:16:57 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1A6781065676; Mon, 11 Jun 2012 20:16:57 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pb0-f54.google.com (mail-pb0-f54.google.com [209.85.160.54]) by mx1.freebsd.org (Postfix) with ESMTP id DC8B78FC16; Mon, 11 Jun 2012 20:16:56 +0000 (UTC) Received: by pbbro2 with SMTP id ro2so6370460pbb.13 for ; Mon, 11 Jun 2012 13:16:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=mJtERKXba5Ln7WEg2Kd7cKAiW8ea3ekUDFaqiD4fLBw=; b=LyorF83PpDFTz/zipWcfddPGzOixIkvjVYyOpJwWahqeTasHm+YXIKF82b+4Ehff93 i8xWzck7W23BwkaHDVlt9SKDqevu7nXUFyHQfK1aFOo8ELARh75PCkzmf1vgbIXoFRnx IAOv9/gXe3kq2mPyYcHPSYr2e75z6R/2pbNCaK5YPDibJgjecE75Groc8w9zOgC4vfpY wbWRAFPtBYJp/dbDKk87RahH7AZ9XJhNjLguh4aUklCC9jA2xqxPf3Y2jtTCx/W/R2hi ucmRp8j4X9gnt0f2QvIIJCJycSflbNJcdvaDw88QJzZdlEForjQaQ65zpO6HWqOZXXn4 bgXQ== MIME-Version: 1.0 Received: by 10.68.234.35 with SMTP id ub3mr30631886pbc.8.1339445816572; Mon, 11 Jun 2012 13:16:56 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.91.18 with HTTP; Mon, 11 Jun 2012 13:16:56 -0700 (PDT) In-Reply-To: <201206112151.39755.bschmidt@freebsd.org> References: <201206112151.39755.bschmidt@freebsd.org> Date: Mon, 11 Jun 2012 13:16:56 -0700 X-Google-Sender-Auth: kBp7B1LWPTvLJ9LpVhv7sjTEwMc Message-ID: From: Adrian Chadd To: Bernhard Schmidt Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: sample 'athaggrstats' output X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 20:16:57 -0000 Hi, The table is :. Adrian From owner-freebsd-wireless@FreeBSD.ORG Mon Jun 11 23:05:22 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 423CA106566C; Mon, 11 Jun 2012 23:05:22 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id 10A208FC0A; Mon, 11 Jun 2012 23:05:22 +0000 (UTC) Received: by dadv36 with SMTP id v36so6343108dad.13 for ; Mon, 11 Jun 2012 16:05:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=/SyX3p6D00vWX4OUqPeDcO6WkA5Dz7YyWovQfXe/11I=; b=VEAH9BV77/pNiQD642ufSZuTVeRfDD7iGovfbO7QGoDQ1xlx8aot9Kn3z531O7RsxD cYjS53g2C2SFOMpZHXlVRNCIlBv9lH2UyZ+kk25XZq8BlE/2TnKcDtrKkHu8uYwXFIkm YkBtivuSEhnMtP/bMI4Eny6ugiKaYbHKIZiKJxTXrAGnNr/bsUVbc7IXNlJVhy8eCFIQ 2x4lKOM7BmAx0Y6UtzVfl7xJfgyl90Mrs9SDyXC4Eew5/LDyG3kAKP7hBUyYbwpDVdmV PfFfZXDt4PSCNqnsz25XRv99m1Upr+ofWEbRYUwQcPyS0sHtep4MpOSPRdIdBafPj58Y 0EHA== MIME-Version: 1.0 Received: by 10.68.211.170 with SMTP id nd10mr3656693pbc.68.1339455921840; Mon, 11 Jun 2012 16:05:21 -0700 (PDT) Received: by 10.143.91.18 with HTTP; Mon, 11 Jun 2012 16:05:21 -0700 (PDT) In-Reply-To: <1224627713.20120610132225@serebryakov.spb.ru> References: <1224627713.20120610132225@serebryakov.spb.ru> Date: Mon, 11 Jun 2012 16:05:21 -0700 Message-ID: From: Adrian Chadd To: Lev Serebryakov Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-wireless@freebsd.org Subject: Re: 802.11ac? X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 23:05:22 -0000 On 10 June 2012 02:22, Lev Serebryakov wrote: > Hello, Freebsd-wireless. > > =A0Does =A0somebody understand, how hard will be expand excleent Adrian's > (and =A0other's!) =A0work =A0on =A0802.11n =A0to support new 802.11ac? It= seems, > 802.11ac adoption will be much faster, than it was for 802.11n. Hi, I've no immediate plans to implement 802.11ac channel handling and IE handl= ing. I'd obviously appreciate any and all help in implementing the 802.11ac IE parsing, channel handling and anything else that's required. (Of course, that also requires a driver for an 802.11ac chip to show up...) So: yes, I'd appreciate the help. :0 adrian From owner-freebsd-wireless@FreeBSD.ORG Tue Jun 12 06:37:30 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A97E01065670 for ; Tue, 12 Jun 2012 06:37:30 +0000 (UTC) (envelope-from jhugo@meraka.csir.co.za) Received: from marge.meraka.csir.co.za (marge.meraka.csir.co.za [146.64.28.1]) by mx1.freebsd.org (Postfix) with ESMTP id 2D4C08FC0A for ; Tue, 12 Jun 2012 06:37:29 +0000 (UTC) Received: from jeep.localnet (unknown [IPv6:2001:4200:7000:3:223:aeff:fea7:a3c2]) by marge.meraka.csir.co.za (Postfix) with ESMTP id 10EEDD0CC24 for ; Tue, 12 Jun 2012 08:37:20 +0200 (SAST) From: Johann Hugo To: freebsd-wireless@freebsd.org Date: Tue, 12 Jun 2012 08:37:19 +0200 User-Agent: KMail/1.13.7 (FreeBSD/9.0-RELEASE; KDE/4.7.3; amd64; ; ) References: In-Reply-To: X-KMail-Markup: true MIME-Version: 1.0 Message-Id: <201206120837.20027.jhugo@meraka.csir.co.za> Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Re: [heads up] please test -HEAD ath(4) 802.11n! X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2012 06:37:30 -0000 Are you interested in -HEAD ath(4) 802.11n on -9 ? The 11n adapter was in AP mode. It worked for a while giving a lot of ath_tx_normal_setup messages and then it stopped. After an ifconfig down/up it worked again, with no more ath_tx_normal_setup messges, but I only get half the speed. AP-vlan:~ # ifconfig wlan0 wlan0: flags=8943 metric 0 mtu 1500 ether 00:80:48:66:54:b4 nd6 options=29 media: IEEE 802.11 Wireless Ethernet autoselect mode 11na status: running ssid my-n channel 52 (5260 MHz 11a ht/20) bssid 00:80:48:66:54:b4 country US ecm authmode OPEN privacy OFF txpower 23 mcastrate 6 mgmtrate 6 scanvalid 60 ampdulimit 64k ampdudensity 8 shortgi wme burst dtimperiod 1 -dfs AP-vlan:~ # ath0: ath_tx_normal_setup: txq=0xc23108d4 (11), pri=0, pri txq=0xc20d591c (1) ath0: ath_tx_normal_setup: txq=0xc23108d4 (11), pri=0, pri txq=0xc20d591c (1) ath0: ath_tx_normal_setup: txq=0xc23108d4 (11), pri=0, pri txq=0xc20d591c (1) ath0: ath_tx_normal_setup: txq=0xc23108d4 (11), pri=0, pri txq=0xc20d591c (1) ath0: ath_tx_normal_setup: txq=0xc23108d4 (11), pri=0, pri txq=0xc20d591c (1) ath0: ath_tx_normal_setup: txq=0xc23108d4 (11), pri=0, pri txq=0xc20d591c (1) ifconfig wlan0 down ath0: ath_tx_tid_drain: node 0xc27e7000: bf=0xc21cff48: addbaw=0, dobaw=1, seqno=496, retry=0 ath0: ath_tx_tid_drain: node 0xc27e7000: bf=0xc21cff48: tid txq_depth=54 hwq_depth=0, bar_wait=1 ath0: ath_tx_tid_drain: node 0xc27e7000: tid 0: txq_depth=1, txq_aggr_depth=0, sched=0, paused=1, hwq_depth=0, incomp=0, baw_head=17, baw_tail=17 txa_start=496, ni_txseqs=550 FRDS 00:1b:21:13:31:b6->14:7d:c5:65:4b:88(00:80:48:66:54:b4) data QoS [TID 0] 0M 8802 0000 147d c565 4b88 0080 4866 54b4 001b 2113 31b6 001f 0000 0000 aaaa 0300 0000 0800 ath0: ath_tx_default_comp: bf 0xc21cff48: seqno 496: dobaw should've been cleared! ath0: ath_tx_default_comp: bf 0xc21d0524: seqno 497: dobaw should've been cleared! ath0: ath_tx_default_comp: bf 0xc21d0650: seqno 498: dobaw should've been cleared! ath0: ath_tx_default_comp: bf 0xc21d09d4: seqno 499: dobaw should've been cleared! ath0: ath_tx_default_comp: bf 0xc21d16b8: seqno 500: dobaw should've been cleared! ath0: ath_tx_default_comp: bf 0xc21d17e4: seqno 501: dobaw should've been cleared! ath0: ath_tx_default_comp: bf 0xc21d1eec: seqno 502: dobaw should've been cleared! ath0: ath_tx_default_comp: bf 0xc21d3530: seqno 503: dobaw should've been cleared! ath0: ath_tx_default_comp: bf 0xc21d365c: seqno 504: dobaw should've been cleared! ath0: ath_tx_default_comp: bf 0xc21d3d64: seqno 505: dobaw should've been cleared! AP-vlan:~ # ifconfig wlan0 up AP-vlan:~ # Johann On Monday 11 June 2012 10:35:53 Adrian Chadd wrote: > Hi all, > > I've just done some major surgery to the ath(4) TX path to fix TX > throughput issues on SMP. The commit history has all the sordid > details. > > I'd really appreciate it if people could test this out in STA and AP > mode with INVARIANTS/WITNESS enabled. I'd like to ensure I haven't > introduced LORs or any locking issues. > > As always, positive feedback is also useful (just so I know the code is > tested.) > > I'd really like to get this thrashed out so I can move onto > implementing the management frame prioritisation, power save and > filtered frame support. Once that's done, I'll enable 802.11n by > default. > > Thanks again! > > > > > Adrian > _______________________________________________ > freebsd-wireless@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-wireless > To unsubscribe, send any mail to "freebsd-wireless-unsubscribe@freebsd.org" From owner-freebsd-wireless@FreeBSD.ORG Tue Jun 12 09:04:35 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 635191065674; Tue, 12 Jun 2012 09:04:35 +0000 (UTC) (envelope-from vince@unsane.co.uk) Received: from unsane.co.uk (unsane-pt.tunnel.tserv5.lon1.ipv6.he.net [IPv6:2001:470:1f08:110::2]) by mx1.freebsd.org (Postfix) with ESMTP id B6E338FC14; Tue, 12 Jun 2012 09:04:34 +0000 (UTC) Received: from vhoffman.lon.namesco.net (lon.namesco.net [195.7.254.102]) (authenticated bits=0) by unsane.co.uk (8.14.5/8.14.5) with ESMTP id q5C94X4m002604 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Tue, 12 Jun 2012 10:04:33 +0100 (BST) (envelope-from vince@unsane.co.uk) Message-ID: <4FD70620.60709@unsane.co.uk> Date: Tue, 12 Jun 2012 10:04:32 +0100 From: Vincent Hoffman User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:12.0) Gecko/20120428 Thunderbird/12.0.1 MIME-Version: 1.0 To: Adrian Chadd References: In-Reply-To: X-Enigmail-Version: 1.4.2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd-wireless@freebsd.org Subject: Re: [heads up] please test -HEAD ath(4) 802.11n! X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2012 09:04:35 -0000 On 11/06/2012 09:35, Adrian Chadd wrote: > Hi all, > > I've just done some major surgery to the ath(4) TX path to fix TX > throughput issues on SMP. The commit history has all the sordid > details. > > I'd really appreciate it if people could test this out in STA and AP > mode with INVARIANTS/WITNESS enabled. I'd like to ensure I haven't > introduced LORs or any locking issues. > > As always, positive feedback is also useful (just so I know the code is tested.) > > I'd really like to get this thrashed out so I can move onto > implementing the management frame prioritisation, power save and > filtered frame support. Once that's done, I'll enable 802.11n by > default. > > Thanks again! > Just updated to r236905 so I'll let you know if anything bad happens. jhary@ostracod $ dmesg | grep ath ath0: mem 0xfebf0000-0xfebfffff irq 16 at device 0.0 on pci4 ath0: [HT] enabling HT modes ath0: [HT] 2 RX streams; 1 TX streams ath0: AR9280 mac 128.2 RF5133 phy 13.0 ath0: 2GHz radio: 0x0000; 5GHz radio: 0x00c0 ath0: ath_tx_normal_setup: txq=0xffffff8000856a70 (1), pri=3, pri txq=0xffffff8000856b60 (3) ath0: ath_tx_normal_setup: txq=0xffffff8000856a70 (1), pri=3, pri txq=0xffffff8000856b60 (3) ath0: ath_tx_normal_setup: txq=0xffffff8000856a70 (1), pri=3, pri txq=0xffffff8000856b60 (3) ath0: ath_tx_normal_setup: txq=0xffffff8000856a70 (1), pri=3, pri txq=0xffffff8000856b60 (3) (10:00:01 <~>) 0 jhary@ostracod $ ifconfig ath0 ath0: flags=8843 metric 0 mtu 2290 ether 00:24:23:07:fb:5d nd6 options=29 media: IEEE 802.11 Wireless Ethernet autoselect mode 11ng status: associated (10:02:58 <~>) 0 jhary@ostracod $ ifconfig wlan0 wlan0: flags=8843 metric 0 mtu 1500 ether 00:24:23:07:fb:5d inet 85.233.185.162 netmask 0xfffffff8 broadcast 85.233.185.167 inet6 fe80::224:23ff:fe07:fb5d%wlan0 prefixlen 64 scopeid 0x6 inet6 2001:470:9099:1::1 prefixlen 64 inet 10.x.x.x netmask 0xffffff00 broadcast 10.x.x.255 nd6 options=21 media: IEEE 802.11 Wireless Ethernet MCS mode 11ng status: associated ssid vhoff channel 6 (2437 MHz 11g ht/20) bssid e0:91:f5:48:5b:b9 regdomain 96 indoor ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit TKIP 3:128-bit txpower 20 bmiss 7 scanvalid 450 protmode CTS ampdulimit 64k ampdudensity 8 shortgi wme burst roaming MANUAL (10:03:02 <~>) 0 Vince > > > Adrian > _______________________________________________ > freebsd-wireless@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-wireless > To unsubscribe, send any mail to "freebsd-wireless-unsubscribe@freebsd.org" From owner-freebsd-wireless@FreeBSD.ORG Wed Jun 13 05:40:12 2012 Return-Path: Delivered-To: freebsd-wireless@hub.freebsd.org Received: from mx1.freebsd.org (unknown [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 342FD106566B for ; Wed, 13 Jun 2012 05:40:12 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id 140278FC1D for ; Wed, 13 Jun 2012 05:40:12 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q5D5eBBC006720 for ; Wed, 13 Jun 2012 05:40:11 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q5D5eBLv006719; Wed, 13 Jun 2012 05:40:11 GMT (envelope-from gnats) Date: Wed, 13 Jun 2012 05:40:11 GMT Message-Id: <201206130540.q5D5eBLv006719@freefall.freebsd.org> To: freebsd-wireless@FreeBSD.org From: dfilter@FreeBSD.ORG (dfilter service) Cc: Subject: Re: kern/168170: commit references a PR X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: dfilter service List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 05:40:12 -0000 The following reply was made to PR kern/168170; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/168170: commit references a PR Date: Wed, 13 Jun 2012 05:39:28 +0000 (UTC) Author: adrian Date: Wed Jun 13 05:39:16 2012 New Revision: 236993 URL: http://svn.freebsd.org/changeset/base/236993 Log: Replace the direct sc_txbuf manipulation with a pair of functions. This is preparation work for having a separate ath_buf queue for management traffic. PR: kern/168170 Modified: head/sys/dev/ath/if_ath.c head/sys/dev/ath/if_ath_misc.h head/sys/dev/ath/if_ath_tx.c Modified: head/sys/dev/ath/if_ath.c ============================================================================== --- head/sys/dev/ath/if_ath.c Wed Jun 13 05:02:51 2012 (r236992) +++ head/sys/dev/ath/if_ath.c Wed Jun 13 05:39:16 2012 (r236993) @@ -2358,7 +2358,7 @@ ath_start(struct ifnet *ifp) IFQ_DEQUEUE(&ifp->if_snd, m); if (m == NULL) { ATH_TXBUF_LOCK(sc); - TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); + ath_returnbuf_head(sc, bf); ATH_TXBUF_UNLOCK(sc); break; } @@ -2401,7 +2401,7 @@ ath_start(struct ifnet *ifp) bf->bf_m = NULL; bf->bf_node = NULL; ATH_TXBUF_LOCK(sc); - TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); + ath_returnbuf_head(sc, bf); ath_txfrag_cleanup(sc, &frags, ni); ATH_TXBUF_UNLOCK(sc); if (ni != NULL) @@ -3631,6 +3631,24 @@ ath_txq_sched_tasklet(void *arg, int npe ATH_PCU_UNLOCK(sc); } +void +ath_returnbuf_tail(struct ath_softc *sc, struct ath_buf *bf) +{ + + ATH_TXBUF_LOCK_ASSERT(sc); + + TAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list); +} + +void +ath_returnbuf_head(struct ath_softc *sc, struct ath_buf *bf) +{ + + ATH_TXBUF_LOCK_ASSERT(sc); + + TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); +} + /* * Return a buffer to the pool and update the 'busy' flag on the * previous 'tail' entry. @@ -3653,7 +3671,7 @@ ath_freebuf(struct ath_softc *sc, struct ATH_TXBUF_LOCK(sc); ath_tx_update_busy(sc); - TAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list); + ath_returnbuf_tail(sc, bf); ATH_TXBUF_UNLOCK(sc); } Modified: head/sys/dev/ath/if_ath_misc.h ============================================================================== --- head/sys/dev/ath/if_ath_misc.h Wed Jun 13 05:02:51 2012 (r236992) +++ head/sys/dev/ath/if_ath_misc.h Wed Jun 13 05:39:16 2012 (r236993) @@ -55,6 +55,8 @@ extern struct ath_buf * _ath_getbuf_lock extern struct ath_buf * ath_buf_clone(struct ath_softc *sc, const struct ath_buf *bf); extern void ath_freebuf(struct ath_softc *sc, struct ath_buf *bf); +extern void ath_returnbuf_head(struct ath_softc *sc, struct ath_buf *bf); +extern void ath_returnbuf_tail(struct ath_softc *sc, struct ath_buf *bf); extern int ath_reset(struct ifnet *, ATH_RESET_TYPE); extern void ath_tx_draintxq(struct ath_softc *sc, struct ath_txq *txq); Modified: head/sys/dev/ath/if_ath_tx.c ============================================================================== --- head/sys/dev/ath/if_ath_tx.c Wed Jun 13 05:02:51 2012 (r236992) +++ head/sys/dev/ath/if_ath_tx.c Wed Jun 13 05:39:16 2012 (r236993) @@ -184,7 +184,7 @@ ath_txfrag_cleanup(struct ath_softc *sc, TAILQ_FOREACH_SAFE(bf, frags, bf_list, next) { /* NB: bf assumed clean */ TAILQ_REMOVE(frags, bf, bf_list); - TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); + ath_returnbuf_head(sc, bf); ieee80211_node_decref(ni); } } @@ -1916,7 +1916,7 @@ ath_raw_xmit(struct ieee80211_node *ni, return 0; bad2: ATH_TXBUF_LOCK(sc); - TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); + ath_returnbuf_head(sc, bf); ATH_TXBUF_UNLOCK(sc); bad: ATH_PCU_LOCK(sc); @@ -3137,7 +3137,7 @@ ath_tx_retry_clone(struct ath_softc *sc, * the list.) */ ATH_TXBUF_LOCK(sc); - TAILQ_INSERT_HEAD(&sc->sc_txbuf, nbf, bf_list); + ath_returnbuf_head(sc, bf); ATH_TXBUF_UNLOCK(sc); return NULL; } _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" From owner-freebsd-wireless@FreeBSD.ORG Wed Jun 13 05:50:12 2012 Return-Path: Delivered-To: freebsd-wireless@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 883241065672 for ; Wed, 13 Jun 2012 05:50:12 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id 73CBD8FC0A for ; Wed, 13 Jun 2012 05:50:12 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q5D5oCiM015675 for ; Wed, 13 Jun 2012 05:50:12 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q5D5oCHJ015674; Wed, 13 Jun 2012 05:50:12 GMT (envelope-from gnats) Date: Wed, 13 Jun 2012 05:50:12 GMT Message-Id: <201206130550.q5D5oCHJ015674@freefall.freebsd.org> To: freebsd-wireless@FreeBSD.org From: dfilter@FreeBSD.ORG (dfilter service) Cc: Subject: Re: kern/168170: commit references a PR X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: dfilter service List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 05:50:12 -0000 The following reply was made to PR kern/168170; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/168170: commit references a PR Date: Wed, 13 Jun 2012 05:41:15 +0000 (UTC) Author: adrian Date: Wed Jun 13 05:41:00 2012 New Revision: 236994 URL: http://svn.freebsd.org/changeset/base/236994 Log: Oops, return the newly allocated buffer to the queue, not the completed buffer. PR: kern/168170 Modified: head/sys/dev/ath/if_ath_tx.c Modified: head/sys/dev/ath/if_ath_tx.c ============================================================================== --- head/sys/dev/ath/if_ath_tx.c Wed Jun 13 05:39:16 2012 (r236993) +++ head/sys/dev/ath/if_ath_tx.c Wed Jun 13 05:41:00 2012 (r236994) @@ -3137,7 +3137,7 @@ ath_tx_retry_clone(struct ath_softc *sc, * the list.) */ ATH_TXBUF_LOCK(sc); - ath_returnbuf_head(sc, bf); + ath_returnbuf_head(sc, nbf); ATH_TXBUF_UNLOCK(sc); return NULL; } _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" From owner-freebsd-wireless@FreeBSD.ORG Wed Jun 13 07:00:31 2012 Return-Path: Delivered-To: freebsd-wireless@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 96650106566C for ; Wed, 13 Jun 2012 07:00:31 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id 816628FC08 for ; Wed, 13 Jun 2012 07:00:31 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q5D70Vti083624 for ; Wed, 13 Jun 2012 07:00:31 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q5D70V8M083623; Wed, 13 Jun 2012 07:00:31 GMT (envelope-from gnats) Date: Wed, 13 Jun 2012 07:00:31 GMT Message-Id: <201206130700.q5D70V8M083623@freefall.freebsd.org> To: freebsd-wireless@FreeBSD.org From: dfilter@FreeBSD.ORG (dfilter service) Cc: Subject: Re: kern/168170: commit references a PR X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: dfilter service List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 07:00:31 -0000 The following reply was made to PR kern/168170; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/168170: commit references a PR Date: Wed, 13 Jun 2012 06:58:10 +0000 (UTC) Author: adrian Date: Wed Jun 13 06:57:55 2012 New Revision: 237000 URL: http://svn.freebsd.org/changeset/base/237000 Log: Implement a separate, smaller pool of ath_buf entries for use by management traffic. * Create sc_mgmt_txbuf and sc_mgmt_txdesc, initialise/free them appropriately. * Create an enum to represent buffer types in the API. * Extend ath_getbuf() and _ath_getbuf_locked() to take the above enum. * Right now anything sent via ic_raw_xmit() allocates via ATH_BUFTYPE_MGMT. This may not be very useful. * Add ATH_BUF_MGMT flag (ath_buf.bf_flags) which indicates the current buffer is a mgmt buffer and should go back onto the mgmt free list. * Extend 'txagg' to include debugging output for both normal and mgmt txbufs. * When checking/clearing ATH_BUF_BUSY, do it on both TX pools. Tested: * STA mode, with heavy UDP injection via iperf. This filled the TX queue however BARs were still going out successfully. TODO: * Initialise the mgmt buffers with ATH_BUF_MGMT and then ensure the right type is being allocated and freed on the appropriate list. That'd save a write operation (to bf->bf_flags) on each buffer alloc/free. * Test on AP mode, ensure that BAR TX and probe responses go out nicely when the main TX queue is filled (eg with paused traffic to a TID, awaiting a BAR to complete.) PR: kern/168170 Modified: head/sys/dev/ath/if_ath.c head/sys/dev/ath/if_ath_misc.h head/sys/dev/ath/if_ath_sysctl.c head/sys/dev/ath/if_ath_tx.c head/sys/dev/ath/if_athvar.h Modified: head/sys/dev/ath/if_ath.c ============================================================================== --- head/sys/dev/ath/if_ath.c Wed Jun 13 06:46:00 2012 (r236999) +++ head/sys/dev/ath/if_ath.c Wed Jun 13 06:57:55 2012 (r237000) @@ -246,6 +246,10 @@ static int ath_txbuf = ATH_TXBUF; /* # SYSCTL_INT(_hw_ath, OID_AUTO, txbuf, CTLFLAG_RW, &ath_txbuf, 0, "tx buffers allocated"); TUNABLE_INT("hw.ath.txbuf", &ath_txbuf); +static int ath_txbuf_mgmt = ATH_MGMT_TXBUF; /* # mgmt tx buffers to allocate */ +SYSCTL_INT(_hw_ath, OID_AUTO, txbuf_mgmt, CTLFLAG_RW, &ath_txbuf_mgmt, + 0, "tx (mgmt) buffers allocated"); +TUNABLE_INT("hw.ath.txbuf_mgmt", &ath_txbuf_mgmt); int ath_bstuck_threshold = 4; /* max missed beacons */ SYSCTL_INT(_hw_ath, OID_AUTO, bstuck, CTLFLAG_RW, &ath_bstuck_threshold, @@ -2212,13 +2216,17 @@ ath_reset_vap(struct ieee80211vap *vap, } struct ath_buf * -_ath_getbuf_locked(struct ath_softc *sc) +_ath_getbuf_locked(struct ath_softc *sc, ath_buf_type_t btype) { struct ath_buf *bf; ATH_TXBUF_LOCK_ASSERT(sc); - bf = TAILQ_FIRST(&sc->sc_txbuf); + if (btype == ATH_BUFTYPE_MGMT) + bf = TAILQ_FIRST(&sc->sc_txbuf_mgmt); + else + bf = TAILQ_FIRST(&sc->sc_txbuf); + if (bf == NULL) { sc->sc_stats.ast_tx_getnobuf++; } else { @@ -2228,18 +2236,29 @@ _ath_getbuf_locked(struct ath_softc *sc) } } - if (bf != NULL && (bf->bf_flags & ATH_BUF_BUSY) == 0) - TAILQ_REMOVE(&sc->sc_txbuf, bf, bf_list); - else + if (bf != NULL && (bf->bf_flags & ATH_BUF_BUSY) == 0) { + if (btype == ATH_BUFTYPE_MGMT) + TAILQ_REMOVE(&sc->sc_txbuf_mgmt, bf, bf_list); + else + TAILQ_REMOVE(&sc->sc_txbuf, bf, bf_list); + } else bf = NULL; if (bf == NULL) { + /* XXX should check which list, mgmt or otherwise */ DPRINTF(sc, ATH_DEBUG_XMIT, "%s: %s\n", __func__, TAILQ_FIRST(&sc->sc_txbuf) == NULL ? "out of xmit buffers" : "xmit buffer busy"); return NULL; } + /* XXX TODO: should do this at buffer list initialisation */ + /* XXX (then, ensure the buffer has the right flag set) */ + if (btype == ATH_BUFTYPE_MGMT) + bf->bf_flags |= ATH_BUF_MGMT; + else + bf->bf_flags &= (~ATH_BUF_MGMT); + /* Valid bf here; clear some basic fields */ bf->bf_next = NULL; /* XXX just to be sure */ bf->bf_last = NULL; /* XXX again, just to be sure */ @@ -2274,7 +2293,9 @@ ath_buf_clone(struct ath_softc *sc, cons { struct ath_buf *tbf; - tbf = ath_getbuf(sc); + tbf = ath_getbuf(sc, + (bf->bf_flags & ATH_BUF_MGMT) ? + ATH_BUFTYPE_MGMT : ATH_BUFTYPE_NORMAL); if (tbf == NULL) return NULL; /* XXX failure? Why? */ @@ -2302,12 +2323,18 @@ ath_buf_clone(struct ath_softc *sc, cons } struct ath_buf * -ath_getbuf(struct ath_softc *sc) +ath_getbuf(struct ath_softc *sc, ath_buf_type_t btype) { struct ath_buf *bf; ATH_TXBUF_LOCK(sc); - bf = _ath_getbuf_locked(sc); + bf = _ath_getbuf_locked(sc, btype); + /* + * If a mgmt buffer was requested but we're out of those, + * try requesting a normal one. + */ + if (bf == NULL && btype == ATH_BUFTYPE_MGMT) + bf = _ath_getbuf_locked(sc, ATH_BUFTYPE_NORMAL); ATH_TXBUF_UNLOCK(sc); if (bf == NULL) { struct ifnet *ifp = sc->sc_ifp; @@ -2351,7 +2378,7 @@ ath_start(struct ifnet *ifp) /* * Grab a TX buffer and associated resources. */ - bf = ath_getbuf(sc); + bf = ath_getbuf(sc, ATH_BUFTYPE_NORMAL); if (bf == NULL) break; @@ -2857,11 +2884,26 @@ ath_desc_alloc(struct ath_softc *sc) return error; } + error = ath_descdma_setup(sc, &sc->sc_txdma_mgmt, &sc->sc_txbuf_mgmt, + "tx_mgmt", ath_txbuf_mgmt, ATH_TXDESC); + if (error != 0) { + ath_descdma_cleanup(sc, &sc->sc_rxdma, &sc->sc_rxbuf); + ath_descdma_cleanup(sc, &sc->sc_txdma, &sc->sc_txbuf); + return error; + } + + /* + * XXX mark txbuf_mgmt frames with ATH_BUF_MGMT, so the + * flag doesn't have to be set in ath_getbuf_locked(). + */ + error = ath_descdma_setup(sc, &sc->sc_bdma, &sc->sc_bbuf, "beacon", ATH_BCBUF, 1); if (error != 0) { - ath_descdma_cleanup(sc, &sc->sc_txdma, &sc->sc_txbuf); ath_descdma_cleanup(sc, &sc->sc_rxdma, &sc->sc_rxbuf); + ath_descdma_cleanup(sc, &sc->sc_txdma, &sc->sc_txbuf); + ath_descdma_cleanup(sc, &sc->sc_txdma_mgmt, + &sc->sc_txbuf_mgmt); return error; } return 0; @@ -2877,6 +2919,9 @@ ath_desc_free(struct ath_softc *sc) ath_descdma_cleanup(sc, &sc->sc_txdma, &sc->sc_txbuf); if (sc->sc_rxdma.dd_desc_len != 0) ath_descdma_cleanup(sc, &sc->sc_rxdma, &sc->sc_rxbuf); + if (sc->sc_txdma_mgmt.dd_desc_len != 0) + ath_descdma_cleanup(sc, &sc->sc_txdma_mgmt, + &sc->sc_txbuf_mgmt); } static struct ieee80211_node * @@ -3323,12 +3368,14 @@ ath_tx_update_busy(struct ath_softc *sc) * descriptor. */ ATH_TXBUF_LOCK_ASSERT(sc); + last = TAILQ_LAST(&sc->sc_txbuf_mgmt, ath_bufhead_s); + if (last != NULL) + last->bf_flags &= ~ATH_BUF_BUSY; last = TAILQ_LAST(&sc->sc_txbuf, ath_bufhead_s); if (last != NULL) last->bf_flags &= ~ATH_BUF_BUSY; } - /* * Process completed xmit descriptors from the specified queue. * Kick the packet scheduler if needed. This can occur from this @@ -3637,7 +3684,10 @@ ath_returnbuf_tail(struct ath_softc *sc, ATH_TXBUF_LOCK_ASSERT(sc); - TAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list); + if (bf->bf_flags & ATH_BUF_MGMT) + TAILQ_INSERT_TAIL(&sc->sc_txbuf_mgmt, bf, bf_list); + else + TAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list); } void @@ -3646,7 +3696,10 @@ ath_returnbuf_head(struct ath_softc *sc, ATH_TXBUF_LOCK_ASSERT(sc); - TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); + if (bf->bf_flags & ATH_BUF_MGMT) + TAILQ_INSERT_HEAD(&sc->sc_txbuf_mgmt, bf, bf_list); + else + TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); } /* @@ -3727,6 +3780,9 @@ ath_tx_draintxq(struct ath_softc *sc, st bf = TAILQ_LAST(&sc->sc_txbuf, ath_bufhead_s); if (bf != NULL) bf->bf_flags &= ~ATH_BUF_BUSY; + bf = TAILQ_LAST(&sc->sc_txbuf_mgmt, ath_bufhead_s); + if (bf != NULL) + bf->bf_flags &= ~ATH_BUF_BUSY; ATH_TXBUF_UNLOCK(sc); for (ix = 0;; ix++) { Modified: head/sys/dev/ath/if_ath_misc.h ============================================================================== --- head/sys/dev/ath/if_ath_misc.h Wed Jun 13 06:46:00 2012 (r236999) +++ head/sys/dev/ath/if_ath_misc.h Wed Jun 13 06:57:55 2012 (r237000) @@ -50,10 +50,13 @@ extern int ath_tx_findrix(const struct ath_softc *sc, uint8_t rate); -extern struct ath_buf * ath_getbuf(struct ath_softc *sc); -extern struct ath_buf * _ath_getbuf_locked(struct ath_softc *sc); +extern struct ath_buf * ath_getbuf(struct ath_softc *sc, + ath_buf_type_t btype); +extern struct ath_buf * _ath_getbuf_locked(struct ath_softc *sc, + ath_buf_type_t btype); extern struct ath_buf * ath_buf_clone(struct ath_softc *sc, const struct ath_buf *bf); +/* XXX change this to NULL the buffer pointer? */ extern void ath_freebuf(struct ath_softc *sc, struct ath_buf *bf); extern void ath_returnbuf_head(struct ath_softc *sc, struct ath_buf *bf); extern void ath_returnbuf_tail(struct ath_softc *sc, struct ath_buf *bf); Modified: head/sys/dev/ath/if_ath_sysctl.c ============================================================================== --- head/sys/dev/ath/if_ath_sysctl.c Wed Jun 13 06:46:00 2012 (r236999) +++ head/sys/dev/ath/if_ath_sysctl.c Wed Jun 13 06:57:55 2012 (r237000) @@ -377,6 +377,19 @@ ath_sysctl_txagg(SYSCTL_HANDLER_ARGS) printf("Total TX buffers: %d; Total TX buffers busy: %d\n", t, i); + i = t = 0; + ATH_TXBUF_LOCK(sc); + TAILQ_FOREACH(bf, &sc->sc_txbuf_mgmt, bf_list) { + if (bf->bf_flags & ATH_BUF_BUSY) { + printf("Busy: %d\n", t); + i++; + } + t++; + } + ATH_TXBUF_UNLOCK(sc); + printf("Total mgmt TX buffers: %d; Total mgmt TX buffers busy: %d\n", + t, i); + return 0; } Modified: head/sys/dev/ath/if_ath_tx.c ============================================================================== --- head/sys/dev/ath/if_ath_tx.c Wed Jun 13 06:46:00 2012 (r236999) +++ head/sys/dev/ath/if_ath_tx.c Wed Jun 13 06:57:55 2012 (r237000) @@ -203,7 +203,8 @@ ath_txfrag_setup(struct ath_softc *sc, a ATH_TXBUF_LOCK(sc); for (m = m0->m_nextpkt; m != NULL; m = m->m_nextpkt) { - bf = _ath_getbuf_locked(sc); + /* XXX non-management? */ + bf = _ath_getbuf_locked(sc, ATH_BUFTYPE_NORMAL); if (bf == NULL) { /* out of buffers, cleanup */ device_printf(sc->sc_dev, "%s: no buffer?\n", __func__); @@ -1878,7 +1879,7 @@ ath_raw_xmit(struct ieee80211_node *ni, /* * Grab a TX buffer and associated resources. */ - bf = ath_getbuf(sc); + bf = ath_getbuf(sc, ATH_BUFTYPE_MGMT); if (bf == NULL) { sc->sc_stats.ast_tx_nobuf++; m_freem(m); Modified: head/sys/dev/ath/if_athvar.h ============================================================================== --- head/sys/dev/ath/if_athvar.h Wed Jun 13 06:46:00 2012 (r236999) +++ head/sys/dev/ath/if_athvar.h Wed Jun 13 06:57:55 2012 (r237000) @@ -44,6 +44,14 @@ #define ATH_TIMEOUT 1000 /* + * There is a separate TX ath_buf pool for management frames. + * This ensures that management frames such as probe responses + * and BAR frames can be transmitted during periods of high + * TX activity. + */ +#define ATH_MGMT_TXBUF 32 + +/* * 802.11n requires more TX and RX buffers to do AMPDU. */ #ifdef ATH_ENABLE_11N @@ -172,6 +180,11 @@ struct ath_node { ((((x)%(mul)) >= ((mul)/2)) ? ((x) + ((mul) - 1)) / (mul) : (x)/(mul)) #define ATH_RSSI(x) ATH_EP_RND(x, HAL_RSSI_EP_MULTIPLIER) +typedef enum { + ATH_BUFTYPE_NORMAL = 0, + ATH_BUFTYPE_MGMT = 1, +} ath_buf_type_t; + struct ath_buf { TAILQ_ENTRY(ath_buf) bf_list; struct ath_buf * bf_next; /* next buffer in the aggregate */ @@ -243,6 +256,7 @@ struct ath_buf { }; typedef TAILQ_HEAD(ath_bufhead_s, ath_buf) ath_bufhead; +#define ATH_BUF_MGMT 0x00000001 /* (tx) desc is a mgmt desc */ #define ATH_BUF_BUSY 0x00000002 /* (tx) desc owned by h/w */ /* @@ -487,6 +501,8 @@ struct ath_softc { struct ath_descdma sc_txdma; /* TX descriptors */ ath_bufhead sc_txbuf; /* transmit buffer */ + struct ath_descdma sc_txdma_mgmt; /* mgmt TX descriptors */ + ath_bufhead sc_txbuf_mgmt; /* mgmt transmit buffer */ struct mtx sc_txbuflock; /* txbuf lock */ char sc_txname[12]; /* e.g. "ath0_buf" */ u_int sc_txqsetup; /* h/w queues setup */ _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" From owner-freebsd-wireless@FreeBSD.ORG Thu Jun 14 01:00:28 2012 Return-Path: Delivered-To: freebsd-wireless@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B1104106566B for ; Thu, 14 Jun 2012 01:00:28 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id 9C7DD8FC12 for ; Thu, 14 Jun 2012 01:00:28 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q5E10SUe042932 for ; Thu, 14 Jun 2012 01:00:28 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q5E10Sw0042930; Thu, 14 Jun 2012 01:00:28 GMT (envelope-from gnats) Date: Thu, 14 Jun 2012 01:00:28 GMT Message-Id: <201206140100.q5E10Sw0042930@freefall.freebsd.org> To: freebsd-wireless@FreeBSD.org From: dfilter@FreeBSD.ORG (dfilter service) Cc: Subject: Re: kern/168170: commit references a PR X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: dfilter service List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 01:00:28 -0000 The following reply was made to PR kern/168170; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/168170: commit references a PR Date: Thu, 14 Jun 2012 00:52:13 +0000 (UTC) Author: adrian Date: Thu Jun 14 00:51:53 2012 New Revision: 237038 URL: http://svn.freebsd.org/changeset/base/237038 Log: Implement a global (all non-mgmt traffic) TX ath_buf limitation when ath_start() is called. This (defaults to 10 frames) gives for a little headway in the TX ath_buf allocation, so buffer cloning is still possible. This requires a lot omre experimenting and tuning. It also doesn't stop a node/TID from consuming all of the available ath_buf's, especially when the node is going through high packet loss or only talking at a low TX rate. It also doesn't stop a paused TID from taking all of the ath_bufs. I'll look at fixing that up in subsequent commits. PR: kern/168170 Modified: head/sys/dev/ath/if_ath.c head/sys/dev/ath/if_ath_sysctl.c head/sys/dev/ath/if_athvar.h Modified: head/sys/dev/ath/if_ath.c ============================================================================== --- head/sys/dev/ath/if_ath.c Wed Jun 13 22:53:56 2012 (r237037) +++ head/sys/dev/ath/if_ath.c Thu Jun 14 00:51:53 2012 (r237038) @@ -2239,8 +2239,22 @@ _ath_getbuf_locked(struct ath_softc *sc, if (bf != NULL && (bf->bf_flags & ATH_BUF_BUSY) == 0) { if (btype == ATH_BUFTYPE_MGMT) TAILQ_REMOVE(&sc->sc_txbuf_mgmt, bf, bf_list); - else + else { TAILQ_REMOVE(&sc->sc_txbuf, bf, bf_list); + sc->sc_txbuf_cnt--; + + /* + * This shuldn't happen; however just to be + * safe print a warning and fudge the txbuf + * count. + */ + if (sc->sc_txbuf_cnt < 0) { + device_printf(sc->sc_dev, + "%s: sc_txbuf_cnt < 0?\n", + __func__); + sc->sc_txbuf_cnt = 0; + } + } } else bf = NULL; @@ -2367,6 +2381,7 @@ ath_start(struct ifnet *ifp) "%s: sc_inreset_cnt > 0; bailing\n", __func__); ATH_PCU_UNLOCK(sc); IF_LOCK(&ifp->if_snd); + sc->sc_stats.ast_tx_qstop++; ifp->if_drv_flags |= IFF_DRV_OACTIVE; IF_UNLOCK(&ifp->if_snd); return; @@ -2375,6 +2390,17 @@ ath_start(struct ifnet *ifp) ATH_PCU_UNLOCK(sc); for (;;) { + ATH_TXBUF_LOCK(sc); + if (sc->sc_txbuf_cnt <= sc->sc_txq_data_minfree) { + /* XXX increment counter? */ + ATH_TXBUF_UNLOCK(sc); + IF_LOCK(&ifp->if_snd); + ifp->if_drv_flags |= IFF_DRV_OACTIVE; + IF_UNLOCK(&ifp->if_snd); + break; + } + ATH_TXBUF_UNLOCK(sc); + /* * Grab a TX buffer and associated resources. */ @@ -2883,6 +2909,7 @@ ath_desc_alloc(struct ath_softc *sc) ath_descdma_cleanup(sc, &sc->sc_rxdma, &sc->sc_rxbuf); return error; } + sc->sc_txbuf_cnt = ath_txbuf; error = ath_descdma_setup(sc, &sc->sc_txdma_mgmt, &sc->sc_txbuf_mgmt, "tx_mgmt", ath_txbuf_mgmt, ATH_TXDESC); @@ -3686,8 +3713,17 @@ ath_returnbuf_tail(struct ath_softc *sc, if (bf->bf_flags & ATH_BUF_MGMT) TAILQ_INSERT_TAIL(&sc->sc_txbuf_mgmt, bf, bf_list); - else + else { TAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list); + sc->sc_txbuf_cnt++; + if (sc->sc_txbuf_cnt > ath_txbuf) { + device_printf(sc->sc_dev, + "%s: sc_txbuf_cnt > %d?\n", + __func__, + ath_txbuf); + sc->sc_txbuf_cnt = ath_txbuf; + } + } } void @@ -3698,8 +3734,17 @@ ath_returnbuf_head(struct ath_softc *sc, if (bf->bf_flags & ATH_BUF_MGMT) TAILQ_INSERT_HEAD(&sc->sc_txbuf_mgmt, bf, bf_list); - else + else { TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); + sc->sc_txbuf_cnt++; + if (sc->sc_txbuf_cnt > ATH_TXBUF) { + device_printf(sc->sc_dev, + "%s: sc_txbuf_cnt > %d?\n", + __func__, + ATH_TXBUF); + sc->sc_txbuf_cnt = ATH_TXBUF; + } + } } /* Modified: head/sys/dev/ath/if_ath_sysctl.c ============================================================================== --- head/sys/dev/ath/if_ath_sysctl.c Wed Jun 13 22:53:56 2012 (r237037) +++ head/sys/dev/ath/if_ath_sysctl.c Thu Jun 14 00:51:53 2012 (r237038) @@ -374,8 +374,8 @@ ath_sysctl_txagg(SYSCTL_HANDLER_ARGS) t++; } ATH_TXBUF_UNLOCK(sc); - printf("Total TX buffers: %d; Total TX buffers busy: %d\n", - t, i); + printf("Total TX buffers: %d; Total TX buffers busy: %d (%d)\n", + t, i, sc->sc_txbuf_cnt); i = t = 0; ATH_TXBUF_LOCK(sc); @@ -620,12 +620,11 @@ ath_sysctlattach(struct ath_softc *sc) "tid_hwq_hi", CTLFLAG_RW, &sc->sc_tid_hwq_hi, 0, ""); -#if 0 SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "txq_data_minfree", CTLFLAG_RW, &sc->sc_txq_data_minfree, 0, "Minimum free buffers before adding a data frame" " to the TX queue"); -#endif + SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "txq_mcastq_maxdepth", CTLFLAG_RW, &sc->sc_txq_mcastq_maxdepth, 0, Modified: head/sys/dev/ath/if_athvar.h ============================================================================== --- head/sys/dev/ath/if_athvar.h Wed Jun 13 22:53:56 2012 (r237037) +++ head/sys/dev/ath/if_athvar.h Thu Jun 14 00:51:53 2012 (r237038) @@ -501,6 +501,7 @@ struct ath_softc { struct ath_descdma sc_txdma; /* TX descriptors */ ath_bufhead sc_txbuf; /* transmit buffer */ + int sc_txbuf_cnt; /* how many buffers avail */ struct ath_descdma sc_txdma_mgmt; /* mgmt TX descriptors */ ath_bufhead sc_txbuf_mgmt; /* mgmt transmit buffer */ struct mtx sc_txbuflock; /* txbuf lock */ _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" From owner-freebsd-wireless@FreeBSD.ORG Thu Jun 14 04:49:38 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (unknown [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 816BB1065673 for ; Thu, 14 Jun 2012 04:49:38 +0000 (UTC) (envelope-from uzimac@da3m0n8t3r.com) Received: from z.umatar.com (z.umatar.com [66.135.39.87]) by mx1.freebsd.org (Postfix) with ESMTP id 4C6FF8FC1E for ; Thu, 14 Jun 2012 04:49:38 +0000 (UTC) Received: from z.umatar.com (localhost [127.0.0.1]) by z.umatar.com (8.14.5/8.14.3) with ESMTP id q5E4nW0P091118; Wed, 13 Jun 2012 21:49:32 -0700 (PDT) (envelope-from uzimac@da3m0n8t3r.com) Received: (from uzimac@localhost) by z.umatar.com (8.14.5/8.14.3/Submit) id q5E4nWTi091117; Wed, 13 Jun 2012 21:49:32 -0700 (PDT) (envelope-from uzimac@da3m0n8t3r.com) X-Authentication-Warning: z.umatar.com: uzimac set sender to uzimac@da3m0n8t3r.com using -f From: "Waitman Gobble" To: "Waitman Gobble" Message-Id: <1339649372.90647@da3m0n8t3r.com> X-Originating-IP: 75.36.149.244 X-Mailer: Usermin 1.500 In-Reply-To: <1339365818.51508@da3m0n8t3r.com> Date: Wed, 13 Jun 2012 21:49:32 -0700 (PDT) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="bound1339649372" Cc: freebsd-wireless@freebsd.org Subject: Re: BCM94313 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 04:49:38 -0000 This is a multi-part message in MIME format. --bound1339649372 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Waitman Gobble wrote .. > Adrian Chadd wrote .. > > The AR9285 will work fine. :-) > > > > > > > > adrian > > Cool, thanks. I have a HP branded 1/2 height AR9285 ordered, should be here Tuesday. > (The only 9285 I have if 'full' height and I don't see a way to get it to fit in > the laptop.) > > The AR9485 is also listed on whitelist so when you get to that point of wanting > to test... :) > > I could not seem to get the BCM94313 to work with if_bwn.ko driver, following instructions > in the man page for bwn. It's not listed as supported so I guess it will not work. > > > > -- > Waitman Gobble > San Jose California USA ar9285 arrived today. they actually sent 2. BUT, these are not recognized by BIOS... it's a NOGO. so either the 'whitelist' is old, or these aren't actually 'hp' ar9285. (the manual i looked at says AR9285G). so i'm back to square one. i;ll get to the bottom of it, but i've got to hit the road before i can resolve the mPCI-e wifi issue, but i'm wondering if I can use a USB wifi interface. I have a DLINK dwa-160 which is identified as '11n ATHER'. I think this is an Atheros AR9001. Somebody posted about this over a year ago, for -9R ... can I use this with -HEAD? I have some other USB wifi plugins here somewhere, anyone have suggestions for getting wifi to work with something i can get locally in 24 hours? Thanks! -- Waitman Gobble San Jose California USA --bound1339649372-- From owner-freebsd-wireless@FreeBSD.ORG Thu Jun 14 05:18:55 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BFB4E106564A for ; Thu, 14 Jun 2012 05:18:55 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id 923468FC0A for ; Thu, 14 Jun 2012 05:18:55 +0000 (UTC) Received: by dadv36 with SMTP id v36so2102250dad.13 for ; Wed, 13 Jun 2012 22:18:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=TIzSfksrMMKBGdKSWDsaRrfa4peLAQAMEdTGxe6BBAM=; b=eOlcmHTXTgP3J16y1n0/3tydRPGcq+V74p7SCSD3hk74TBnF0n+GGlsIiSIsu62mhs z+lFsQfHFb7UkE12y9xHwRV92l8HfyqRGmPZGYkXUYzxYwenN2xIa0W4UTfRR9+9QRqC AcARqxoF614JwkIMyamU9KZjW9kyYUmlmR4JAx9OXX0/R1lqJLZkKk8UQvHth9LFscJa UkyteeRVTj7j9ZPcrAULaxT1AVqP3Z9eupmjXU7bmZ2mek1iIGxsXpW/df3fQM1GlRMI 2Ubdt2R3hzzqP5T1muTyL2L2aYxWpiXLh+AS3/8icNbEELtdLy3tAad0c4EeMjo6dO+2 l5iQ== MIME-Version: 1.0 Received: by 10.68.234.35 with SMTP id ub3mr4411611pbc.8.1339651135204; Wed, 13 Jun 2012 22:18:55 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.91.18 with HTTP; Wed, 13 Jun 2012 22:18:55 -0700 (PDT) In-Reply-To: <1339649372.90647@da3m0n8t3r.com> References: <1339365818.51508@da3m0n8t3r.com> <1339649372.90647@da3m0n8t3r.com> Date: Wed, 13 Jun 2012 22:18:55 -0700 X-Google-Sender-Auth: TXDTnyM-BGmU33UAL0oB841SVKw Message-ID: From: Adrian Chadd To: Waitman Gobble Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: BCM94313 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 05:18:55 -0000 Hi, The AR9001 USB NIC (AR9170) isn't supported. If someone ports the openbsd driver to FreeBSD I'll help them make it 802.11n aware. (That NIC has open source firmware too, which is pretty cool.) Adrian From owner-freebsd-wireless@FreeBSD.ORG Thu Jun 14 05:26:24 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (unknown [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1342B1065716; Thu, 14 Jun 2012 05:26:24 +0000 (UTC) (envelope-from uzimac@da3m0n8t3r.com) Received: from z.umatar.com (z.umatar.com [66.135.39.87]) by mx1.freebsd.org (Postfix) with ESMTP id D33248FC15; Thu, 14 Jun 2012 05:26:23 +0000 (UTC) Received: from z.umatar.com (localhost [127.0.0.1]) by z.umatar.com (8.14.5/8.14.3) with ESMTP id q5E5QNq2094949; Wed, 13 Jun 2012 22:26:23 -0700 (PDT) (envelope-from uzimac@da3m0n8t3r.com) Received: (from uzimac@localhost) by z.umatar.com (8.14.5/8.14.3/Submit) id q5E5QN7v094948; Wed, 13 Jun 2012 22:26:23 -0700 (PDT) (envelope-from uzimac@da3m0n8t3r.com) X-Authentication-Warning: z.umatar.com: uzimac set sender to uzimac@da3m0n8t3r.com using -f From: "Waitman Gobble" To: Adrian Chadd Message-Id: <1339651583.94484@da3m0n8t3r.com> X-Originating-IP: 75.36.149.244 X-Mailer: Usermin 1.500 In-Reply-To: Date: Wed, 13 Jun 2012 22:26:23 -0700 (PDT) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="bound1339651583" Cc: freebsd-wireless@freebsd.org Subject: Re: AR9001/AR9170 (was BCM94313) X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 05:26:24 -0000 This is a multi-part message in MIME format. --bound1339651583 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Adrian Chadd wrote .. > Hi, > > The AR9001 USB NIC (AR9170) isn't supported. If someone ports the > openbsd driver to FreeBSD I'll help them make it 802.11n aware. > > (That NIC has open source firmware too, which is pretty cool.) > > > > Adrian hmmm, sounds progressive.. ok i'll check it out and see what i can do. -- Waitman Gobble San Jose California USA --bound1339651583-- From owner-freebsd-wireless@FreeBSD.ORG Thu Jun 14 22:44:50 2012 Return-Path: Delivered-To: freebsd-wireless@hub.freebsd.org Received: from mx1.freebsd.org (unknown [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8A83F106566B; Thu, 14 Jun 2012 22:44:50 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id 5CD498FC12; Thu, 14 Jun 2012 22:44:50 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q5EMioEw004755; Thu, 14 Jun 2012 22:44:50 GMT (envelope-from adrian@freefall.freebsd.org) Received: (from adrian@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q5EMioh1004751; Thu, 14 Jun 2012 22:44:50 GMT (envelope-from adrian) Date: Thu, 14 Jun 2012 22:44:50 GMT Message-Id: <201206142244.q5EMioh1004751@freefall.freebsd.org> To: adrian@FreeBSD.org, freebsd-bugs@FreeBSD.org, freebsd-wireless@FreeBSD.org From: adrian@FreeBSD.org Cc: Subject: Re: kern/169084: [ath] suspend/resume doesn't cause a rescan; the association stays even if the AP is not available X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 22:44:50 -0000 Synopsis: [ath] suspend/resume doesn't cause a rescan; the association stays even if the AP is not available Responsible-Changed-From-To: freebsd-bugs->freebsd-wireless Responsible-Changed-By: adrian Responsible-Changed-When: Thu Jun 14 22:44:35 UTC 2012 Responsible-Changed-Why: Reassign to maintainer. http://www.freebsd.org/cgi/query-pr.cgi?pr=169084 From owner-freebsd-wireless@FreeBSD.ORG Fri Jun 15 01:20:06 2012 Return-Path: Delivered-To: freebsd-wireless@hub.freebsd.org Received: from mx1.freebsd.org (unknown [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 078571065672 for ; Fri, 15 Jun 2012 01:20:05 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id DECEE8FC0C for ; Fri, 15 Jun 2012 01:20:05 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q5F1K5hC052455 for ; Fri, 15 Jun 2012 01:20:05 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q5F1K5Wn052454; Fri, 15 Jun 2012 01:20:05 GMT (envelope-from gnats) Date: Fri, 15 Jun 2012 01:20:05 GMT Message-Id: <201206150120.q5F1K5Wn052454@freefall.freebsd.org> To: freebsd-wireless@FreeBSD.org From: dfilter@FreeBSD.ORG (dfilter service) Cc: Subject: Re: kern/169084: commit references a PR X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: dfilter service List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 01:20:06 -0000 The following reply was made to PR kern/169084; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/169084: commit references a PR Date: Fri, 15 Jun 2012 01:16:13 +0000 (UTC) Author: adrian Date: Fri Jun 15 01:15:59 2012 New Revision: 237108 URL: http://svn.freebsd.org/changeset/base/237108 Log: Convert ath(4) to just use ieee80211_suspend_all() and ieee80211_resume_all(). The existing code tries to use the beacon miss timer to signal that the AP has gone away. Unfortunately this doesn't seem to be behaving itself. I'll try to investigate why this is for the sake of completeness. The result is the STA will stay "associated" to the AP it was associated with when it suspended. It never receives a bmiss notification so it never tries reassociating. PR: kern/169084 Modified: head/sys/dev/ath/if_ath.c Modified: head/sys/dev/ath/if_ath.c ============================================================================== --- head/sys/dev/ath/if_ath.c Thu Jun 14 22:19:23 2012 (r237107) +++ head/sys/dev/ath/if_ath.c Fri Jun 15 01:15:59 2012 (r237108) @@ -1310,8 +1310,13 @@ ath_suspend(struct ath_softc *sc) sc->sc_resume_up = (ifp->if_flags & IFF_UP) != 0; if (ic->ic_opmode == IEEE80211_M_STA) + /* + * This has been disabled - see PR kern/169084. + */ +#if 0 ath_stop(ifp); else +#endif ieee80211_suspend_all(ic); /* * NB: don't worry about putting the chip in low power @@ -1379,6 +1384,15 @@ ath_resume(struct ath_softc *sc) ath_hal_setledstate(ah, HAL_LED_INIT); if (sc->sc_resume_up) { + /* + * This particular feature doesn't work at the present, + * at least on the 802.11n chips. It's quite possible + * that the STA Beacon timers aren't being configured + * properly. + * + * See PR kern/169084. + */ +#if 0 if (ic->ic_opmode == IEEE80211_M_STA) { ath_init(sc); ath_hal_setledstate(ah, HAL_LED_RUN); @@ -1392,7 +1406,9 @@ ath_resume(struct ath_softc *sc) */ ath_beacon_config(sc, NULL); sc->sc_syncbeacon = 1; + ieee80211_resume_all(ic); } else +#endif ieee80211_resume_all(ic); } _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" From owner-freebsd-wireless@FreeBSD.ORG Fri Jun 15 08:17:32 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (unknown [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4E3F91065672; Fri, 15 Jun 2012 08:17:32 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id 1D7128FC08; Fri, 15 Jun 2012 08:17:32 +0000 (UTC) Received: by dadv36 with SMTP id v36so3901700dad.13 for ; Fri, 15 Jun 2012 01:17:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type; bh=ftke2i5RgOVC+oOOVf5kU47E0mTGDKPSBjINb26GODc=; b=E7jXSi86scQoLqetrTwzxBBI98dHU8b8lhfkDuORcW9JmXSnHtFbTv6uJcVuDSX2YP OQl2Q03injlKcdFhOtlhW2BUAIh9B1Rra5xoo1qBVp9DjsVIPS1tLuf/t8+Z/21AK9J1 W4xCDMHfQa1Qa+SNBlbJPWt6PhzDLW5Q4jQlhBbdnuLI1yKPxXlhEb+t3IMZougCEg/B 5dsLDNLtldZ3Fu9klOScFE+LLRns7eLx29mQWoMxDPKEb9B9H/VzR4QocMWGTp6S++a0 zJ6JLqKSqM+uclOiVsET5AAyn0SakVfL7h9YRZWEpUS/tFWmvWlrQ+P8TySsQBA+D1Wy yRjg== MIME-Version: 1.0 Received: by 10.68.116.203 with SMTP id jy11mr17260290pbb.129.1339748251877; Fri, 15 Jun 2012 01:17:31 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.91.18 with HTTP; Fri, 15 Jun 2012 01:17:31 -0700 (PDT) Date: Fri, 15 Jun 2012 01:17:31 -0700 X-Google-Sender-Auth: Af5YpSJhLW7_vwqoWKL28otKc7E Message-ID: From: Adrian Chadd To: freebsd-current@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: ath(4) now defaults to 802.11n on GENERIC/i386 and GENERIC/amd64 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 08:17:32 -0000 Hi, I've flipped on ATH_ENABLE_11N and the interrupt mitigation in i386 and amd64 GENERIC. I'll flip it on on PPC when someone (chmee?) verifies that 802.11n works on PPC. It's still delicate. I still don't know if RTS/CTS HT frame protection is working quite right on all chips. But all the basics are there (software TX aggregation, RX AMPDU reordering in net80211, BAR transmission, software queue pause and unpause, frame retransmission.) Don't be surprised if your 802.11n mobile devices perform poorly as the power queue handling is very broken and will result in all kinds of weird traffic stalls if things are too aggressive. I'll look into fixing that soon. If you have problems, please read the wiki article: http://wiki.freebsd.org/dev/ath(4) - specifically the bits where I tell you to compile with the debugging and diagnostic stuff in your -HEAD kernel, including the HAL/driver diagnostic APIs and tools. Enjoy, Adrian From owner-freebsd-wireless@FreeBSD.ORG Fri Jun 15 09:00:31 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (unknown [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F2D7D1065675; Fri, 15 Jun 2012 09:00:30 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id A64478FC15; Fri, 15 Jun 2012 09:00:27 +0000 (UTC) Received: by dadv36 with SMTP id v36so3950304dad.13 for ; Fri, 15 Jun 2012 02:00:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=yRcZtUunx3Wr+FbaL2HIlXP3K/Vt+OwehSx0h/nQZEs=; b=zTQxIjzmJajo5xO918mu0SuirB5tjDPX8+rAUeAyo92E9qH7Ur/kEG/RPZ4VEsF9qA t/rOu//skHqio7vEkiduXre3qak/OuAYaQk8ou/jDvFk/tCGgnNHdnFiT7evL6B9UyzU +IM9iNpNgSTiqkoFpa/qMk8WysEUkdDajVQk3DMSmGXYxmASea/9BoqnLWJaAebcP5Gu 9ZzHIEEiQK2JrNgusyT6c+pB2Yl8wqWyXxOA17mjHrJj4fNY4Ur3PCYxHNd/DpbKLqDn Udpsteh2QhnYu7TExRVVv8VIdwLgR/ZjqgASnH5CZV3GXKx5BWPeqP5JqksGwX7TMoxZ QLmQ== MIME-Version: 1.0 Received: by 10.68.138.169 with SMTP id qr9mr17964397pbb.27.1339750827270; Fri, 15 Jun 2012 02:00:27 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.91.18 with HTTP; Fri, 15 Jun 2012 02:00:27 -0700 (PDT) In-Reply-To: References: Date: Fri, 15 Jun 2012 02:00:27 -0700 X-Google-Sender-Auth: JjnE6tDb8c59YlmCsftWAF2RKH4 Message-ID: From: Adrian Chadd To: freebsd-current@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: ath(4) now defaults to 802.11n on GENERIC/i386 and GENERIC/amd64 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 09:00:31 -0000 On 15 June 2012 01:17, Adrian Chadd wrote: > Hi, > > I've flipped on ATH_ENABLE_11N and the interrupt mitigation in i386 > and amd64 GENERIC. [snip] > If you have problems, please read the wiki article: > http://wiki.freebsd.org/dev/ath(4) - specifically the bits where I > tell you to compile with the debugging and diagnostic stuff in your > -HEAD kernel, including the HAL/driver diagnostic APIs and tools. I've also just created a wiki page which provides a very basic overview of the debugging tools for the driver: http://wiki.freebsd.org/dev/ath(4)/Debugging I'll write one for net80211 tomorrow. It turns out 'wlanstats' is really damned helpful. adrian From owner-freebsd-wireless@FreeBSD.ORG Fri Jun 15 09:02:46 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (unknown [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2F35B1065672; Fri, 15 Jun 2012 09:02:46 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-wi0-f170.google.com (mail-wi0-f170.google.com [209.85.212.170]) by mx1.freebsd.org (Postfix) with ESMTP id 880DD8FC14; Fri, 15 Jun 2012 09:02:45 +0000 (UTC) Received: by wibhm6 with SMTP id hm6so156239wib.1 for ; Fri, 15 Jun 2012 02:02:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=dTn/yjsjgyPn7q1UTGH15LA6MibGR7vGevCpnJIHRtg=; b=rM50CXKnXuKdYjnJZg1Ky016Exmykh1PdCDXSgqchHWoD8LiA8JKCWJ4vGi7NqW3y0 meSze6oknX4yxxOsacj06Qd6TxK7pgPrSCksu+OIQf84yR7gAZXYEbrpncerNk+R3VU0 QlMF828sN+CpqZd3j+iJbfTL0Um4sbBxVJzo3PP4f+uaJFKWc9I0oF3KLuKuc5GhLHY4 7imPJKDqjAiD6O4/9og6uCPuDmCYFrOhGZtp/MgYy5eRBb6H8Io399WntGzwdGdREphb CrQPZgXAQ2dH6FawbkuvNbszQAstmZLID5RPg2MnqOqgLsFN1it4EEK247lB8PgKc1WF ajIg== MIME-Version: 1.0 Received: by 10.180.85.129 with SMTP id h1mr2685623wiz.2.1339750959159; Fri, 15 Jun 2012 02:02:39 -0700 (PDT) Received: by 10.223.158.207 with HTTP; Fri, 15 Jun 2012 02:02:39 -0700 (PDT) In-Reply-To: References: Date: Fri, 15 Jun 2012 11:02:39 +0200 Message-ID: From: Monthadar Al Jaberi To: Adrian Chadd Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: AP <-> STA: tcpdump shows duplicate ARP request from STA, but STA only sends one. X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 09:02:46 -0000 On Mon, Jun 11, 2012 at 6:28 PM, Adrian Chadd wrote: > Hi! > > The "null frame" is from hostap. It sends it out whenever a new > station (re) joins. It's a broadcast frame that's harmless, designed > to "seed" all the switches with the true location of the MAC address. > > As for dup packets, I'm not sure. Hm! mm, its weird the received frame are only tapped once in net80211 from what I can see ... > > > > Adrian Ok, I tried with mesh and they dont recevie these ARP Request at all... hmmm Running two RSPRO as mesh and one RSPRO as monitor I noticed this: Both Mesh nodes sends out ARP Requests ( I verified it by tcpdump). These ARP Requests are seen by the monitor RSPRO: 01:22:38.020700 1357460558us tsft 1.0 Mb/s -28dB signal -96dB noise antenna 1 2442 MHz 11g MeshData (AE 0 TTL 31 seq 1) CF +QoS ARP, Request who-has 192.168.0.22 tell 192.168.0.22, length 28 0x0000: 0000 2000 6708 0400 4e34 e950 0000 0000 ....g...N4.P.... 0x0010: 2002 e4a0 0100 0000 8004 0000 8a09 071b ................ 0x0020: 8802 0000 ffff ffff ffff 0015 6d67 2173 ............mg!s 0x0030: 0015 6d67 2173 0000 00de 00de 001f 0100 ..mg!s.......... 0x0040: 0000 aaaa 0300 0000 0806 0001 0800 0604 ................ 0x0050: 0001 0015 6d67 2173 c0a8 0016 0000 0000 ....mg!s........ 0x0060: 0000 c0a8 0016 ...... 01:22:42.058109 1361496938us tsft 1.0 Mb/s -30dB signal -96dB noise antenna 1 2442 MHz 11g MeshData (AE 0 TTL 31 seq 1) CF +QoS ARP, Request who-has 192.168.0.23 tell 192.168.0.23, length 28 0x0000: 0000 2000 6708 0400 6acb 2651 0000 0000 ....g...j.&Q.... 0x0010: 2002 e2a0 0100 0000 8004 0000 8a09 071b ................ 0x0020: 8802 0000 ffff ffff ffff 0015 6d67 2175 ............mg!u 0x0030: 0015 6d67 2175 0000 00de 00de 001f 0100 ..mg!u.......... 0x0040: 0000 aaaa 0300 0000 0806 0001 0800 0604 ................ 0x0050: 0001 0015 6d67 2175 c0a8 0017 0000 0000 ....mg!u........ 0x0060: 0000 c0a8 0017 ...... I verified that each each mesh node have not recevied the ARP Request by tapping the link level (tcpdump -i wlan0 -y IEEE802_11_RADIO). Are they filtered out in the begining? Do we miss an interrupt? br, -- Monthadar Al Jaberi From owner-freebsd-wireless@FreeBSD.ORG Fri Jun 15 09:06:58 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 91A0B106564A for ; Fri, 15 Jun 2012 09:06:58 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id 62D7C8FC16 for ; Fri, 15 Jun 2012 09:06:58 +0000 (UTC) Received: by dadv36 with SMTP id v36so3958422dad.13 for ; Fri, 15 Jun 2012 02:06:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=wpzyu9yT3ElTezQYzNkHlfA5YXqH1zpvkQy0CLil6Jw=; b=cX8I1cVNEkxScyACT2PlHHgefs6Qs/afrIH8zUscdPFd38UlPe4ogzIbNRoIH0fWa+ ze5LX60VqdU3Yu4FH+TL1j+yfDfdDBYIx927SCvu82UcZiQlC1OWdPSEBOB+DqJLwnAW 6xjRcBPXj4tJMZRm2A/B44jUcnseuqQRgx4N4VV2amMRUB79VBFpzLhWJ/yiHE+Sm+8g R7xP/+GxgYT0qaUg9xWY1klPcXwWNCyl3Ra2XPiecZrGItUq95RzyE7k/Ab223geERXM D3JWcI+MFiPX3j1xwb6yoG+K1+HSPjAvW3nIjhYRSHr7kW5Eoe0atH4XoZdoEPGvdZbP xQaA== MIME-Version: 1.0 Received: by 10.68.226.226 with SMTP id rv2mr17954888pbc.101.1339751218067; Fri, 15 Jun 2012 02:06:58 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.91.18 with HTTP; Fri, 15 Jun 2012 02:06:58 -0700 (PDT) In-Reply-To: <201206120837.20027.jhugo@meraka.csir.co.za> References: <201206120837.20027.jhugo@meraka.csir.co.za> Date: Fri, 15 Jun 2012 02:06:58 -0700 X-Google-Sender-Auth: CpFGs3HOZsIOcPMdRdaYkbd5HkU Message-ID: From: Adrian Chadd To: Johann Hugo Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-wireless@freebsd.org Subject: Re: [heads up] please test -HEAD ath(4) 802.11n! X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 09:06:58 -0000 On 11 June 2012 23:37, Johann Hugo wrote: > Are you interested in -HEAD ath(4) 802.11n on -9 ? Sure, if you turn on debugging! > The 11n adapter was in AP mode. It worked for a while giving a lot of > ath_tx_normal_setup messages and then it stopped. > > =A0After an ifconfig down/up it worked again, with no more =A0ath_tx_norm= al_setup > messges, but I only get half the speed. Did it log anything interesting in dmesg when you brought it down/up? If the traffic stalled, it should have logged some basic information about the state of the software queue. > ifconfig wlan0 down > ath0: ath_tx_tid_drain: node 0xc27e7000: bf=3D0xc21cff48: addbaw=3D0, dob= aw=3D1, > seqno=3D496, retry=3D0 > ath0: ath_tx_tid_drain: node 0xc27e7000: bf=3D0xc21cff48: tid txq_depth= =3D54 > hwq_depth=3D0, bar_wait=3D1 Ah, here it is. > ath0: ath_tx_tid_drain: node 0xc27e7000: tid 0: txq_depth=3D1, txq_aggr_d= epth=3D0, > sched=3D0, paused=3D1, hwq_depth=3D0, incomp=3D0, baw_head=3D17, baw_tail= =3D17 > txa_start=3D496, ni_txseqs=3D550 > FRDS 00:1b:21:13:31:b6->14:7d:c5:65:4b:88(00:80:48:66:54:b4) data QoS [TI= D 0] > 0M > =A08802 0000 147d c565 4b88 0080 4866 54b4 001b 2113 31b6 001f 0000 0000 = aaaa > 0300 0000 0800 > ath0: ath_tx_default_comp: bf 0xc21cff48: seqno 496: dobaw should've been > cleared! So, hm. There was one frame in the TID queue, the queue was paused, the hardware queue had one frame in it (but not from that TID, maybe it was the BAR frame going out) and bar_wait is 1. So I bet something weird has happened with BAR TX. What happens here is: * TX aggregation fails and the TX sender needs to inform the receiver that the Block ack window (BAW) needs to be moved along artificially as there's a "hole" where the TX has failed; * .. and this happens from too many retries; * So it pauses the node TID queue and waits for the hardware frames to finish transmitting; * once that occurs, it knows where the "hole" will be and sends a BAR frame to the receiver to say what sequence number the subsequent aggregate frames will begin from; * the receiver ACKs the frame normally; * the sender then restarts the traffic by unpausing the TID and marking the BAR flag as done. It seems your BAR TX "stuck". I've just modified the TX path a little to have (a) a small pool of TX buffers just for management traffic, and (b) to limit how many buffers are allocated when sending traffic so there's a small headroom available for cloning buffers when retransmitting them. I have to work on (c) soon - to limit how many TX buffers a given node / TID can consume so you don't have one node monopolising things. So please try the latest -HEAD and see if the problem persists. It _should_ fix itself after 30 seconds (when the BAR TX times out and the session is dropped back to non-aggregate.) Thanks! Adrian From owner-freebsd-wireless@FreeBSD.ORG Fri Jun 15 09:07:28 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CB1681065670 for ; Fri, 15 Jun 2012 09:07:28 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-yw0-f54.google.com (mail-yw0-f54.google.com [209.85.213.54]) by mx1.freebsd.org (Postfix) with ESMTP id 855918FC12 for ; Fri, 15 Jun 2012 09:07:28 +0000 (UTC) Received: by yhgm50 with SMTP id m50so2597603yhg.13 for ; Fri, 15 Jun 2012 02:07:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=TC4yEKSJIHW9NPQ/Ytnt0H/vYMUMnf1NxKyxpH9WpiI=; b=jbNfSOPkwo/E6/uJDC9k+BIA/nYz5JOglZqcRd9lRrfnKPU0yGipjfWF4F/UAyiQZ8 zXR+ba9TKmr0yP1u4y4n6+QMdhHvRTmDDkj+kDTINp8HwEdHGAs/oPbo7c/RCz5gjzRO qIvx7vPGQfwrjXBKpyH6tl9NITdwqq44z2X5fguAHoU2VSgWsRSlrRg6L1557NRcsv8Z uN9tzz6Xuqrf+r+QKALv7xTDvkQngpxslx+6tDAOnSAvQqA4TYpr4wzjCRAMPL4GWGuX DE3o99CiZXDis4xuQ+XWpHeGMyqwVazJmuwPwckTOSgqp4lIMIbiXQE59c3G4bZSEY0o 7xuw== MIME-Version: 1.0 Received: by 10.68.138.169 with SMTP id qr9mr18031256pbb.27.1339751247747; Fri, 15 Jun 2012 02:07:27 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.91.18 with HTTP; Fri, 15 Jun 2012 02:07:27 -0700 (PDT) In-Reply-To: <4FD70620.60709@unsane.co.uk> References: <4FD70620.60709@unsane.co.uk> Date: Fri, 15 Jun 2012 02:07:27 -0700 X-Google-Sender-Auth: BqsLJ9paLukTRGl30HTkvdyFlr4 Message-ID: From: Adrian Chadd To: Vincent Hoffman Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: [heads up] please test -HEAD ath(4) 802.11n! X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 09:07:28 -0000 On 12 June 2012 02:04, Vincent Hoffman wrote: > Just updated to r236905 so I'll let you know if anything bad happens. Hi! Thanks! Please try the latest -HEAD, there's been a few more changes there which I'd like tested. Adrian From owner-freebsd-wireless@FreeBSD.ORG Fri Jun 15 09:09:07 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5F1F9106566C for ; Fri, 15 Jun 2012 09:09:07 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id 2F8648FC15 for ; Fri, 15 Jun 2012 09:09:07 +0000 (UTC) Received: by dadv36 with SMTP id v36so3961180dad.13 for ; Fri, 15 Jun 2012 02:09:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=OOfi8QNk0TR12L9N1Oq8XjUrNBIxccB3MuUFfdL3TJg=; b=R9qi2L5cSHcKSFe/gwwq1PYCXyzhrouidurryR9R0+EDhxadx29V/PLabFhAEHCyaC oiG5kHdNfO0nz4TjKAnd4UNHh9FJscGhdxJ3Gq4tjoDBP2HocYg5CMQXlWO2UBzo49JF fUufhBWZ4xnUfOfBUl0wKSCXFGHMS1Gq1+UW8qTENlmJ3KFhic2O5I6UBIfG4OF86XiE /ssgluiqr4XzYv7aZf7sq06XYeJ0iwIzHadf86nCCmPLhycGadS8MIiLlzcYMicQ5s3E HtTJHMXGPesJTJuxH5xqT1fKYAHGfdzFRO8rmbyzFwLnJqIfXBrbo9bI+cUg4I+I5MqS CGUQ== MIME-Version: 1.0 Received: by 10.68.116.203 with SMTP id jy11mr17749179pbb.129.1339751346751; Fri, 15 Jun 2012 02:09:06 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.91.18 with HTTP; Fri, 15 Jun 2012 02:09:06 -0700 (PDT) In-Reply-To: References: Date: Fri, 15 Jun 2012 02:09:06 -0700 X-Google-Sender-Auth: tLSEQHm6PzJFFpuO11404ghgzNE Message-ID: From: Adrian Chadd To: Monthadar Al Jaberi Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: AP <-> STA: tcpdump shows duplicate ARP request from STA, but STA only sends one. X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 09:09:07 -0000 hi, tcpdump just verifies the frame was sent to the hardware via either the raw or non-raw TX paths. It doesn't mean the hardware actually sent the frame or that it was successfully received. :-) Can you add a third physical node that's just in monitor mode and see if that frame makes it over the air? thanks, Adrian From owner-freebsd-wireless@FreeBSD.ORG Fri Jun 15 11:01:46 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (unknown [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 488811065672; Fri, 15 Jun 2012 11:01:46 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: from mail-qc0-f182.google.com (mail-qc0-f182.google.com [209.85.216.182]) by mx1.freebsd.org (Postfix) with ESMTP id C3A308FC0A; Fri, 15 Jun 2012 11:01:45 +0000 (UTC) Received: by qcsg15 with SMTP id g15so1887602qcs.13 for ; Fri, 15 Jun 2012 04:01:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:in-reply-to:references:x-mailer :mime-version:content-type:content-transfer-encoding; bh=ZIuBUqiIKrm6Tu4qywqyLBEN1G6pK9WgDLjTk5b+ajo=; b=ZxRmaY/hBB/zxOQW1GnDpMhAr+A8TKnKM+JMP9+1SK19v+/BYLAZKvwGx1ak7lzwwc vEZ5BSFyX6sNkLhNbgG/DbIm3iFQyZCETIZ8xH1Fnyhqbu1qcscnrpZPrPwwsQQ8O+Sn pMkczbw5/rZAg9MQ8L/u8oQ7x6V0q8AAjZp0SfzLFaiGDobq4uXZFPvGn0pzcfXi1On3 8IWBdm0Tytr1QiZUUnikAELzfyMpdD5XEROEIE+C4lWpBxmNPcXkl5gwAX6YJ55rITcS onojLLpX4Ty0I/LgYmgcOE8Alj+wQdccqYORizyWCUwkvt5GFf2fkrnhBFpQ/hX6t5FB PqmA== Received: by 10.229.102.67 with SMTP id f3mr2656335qco.137.1339758105108; Fri, 15 Jun 2012 04:01:45 -0700 (PDT) Received: from narn.knownspace (216-15-41-8.c3-0.gth-ubr1.lnh-gth.md.cable.rcn.com. [216.15.41.8]) by mx.google.com with ESMTPS id cg7sm21802858qab.19.2012.06.15.04.01.44 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 15 Jun 2012 04:01:44 -0700 (PDT) Date: Fri, 15 Jun 2012 07:01:41 -0400 From: Justin Hibbits To: Adrian Chadd Message-ID: <20120615070141.1e1cde6a@narn.knownspace> In-Reply-To: References: X-Mailer: Claws Mail 3.8.0 (GTK+ 2.24.10; powerpc-portbld-freebsd10.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: freebsd-current@freebsd.org, freebsd-wireless@freebsd.org Subject: Re: ath(4) now defaults to 802.11n on GENERIC/i386 and GENERIC/amd64 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 11:01:46 -0000 On Fri, 15 Jun 2012 01:17:31 -0700 Adrian Chadd wrote: > Hi, > > I've flipped on ATH_ENABLE_11N and the interrupt mitigation in i386 > and amd64 GENERIC. > > I'll flip it on on PPC when someone (chmee?) verifies that 802.11n > works on PPC. I would, but I don't have any other 802.11n hardware but the one card, and I have problems with that one on 802.11g, which I'll track down when I get some time, might have some time to test this weekend. - Justin From owner-freebsd-wireless@FreeBSD.ORG Fri Jun 15 12:26:08 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (unknown [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7DC2C1065672; Fri, 15 Jun 2012 12:26:08 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-wg0-f50.google.com (mail-wg0-f50.google.com [74.125.82.50]) by mx1.freebsd.org (Postfix) with ESMTP id DA4608FC08; Fri, 15 Jun 2012 12:26:07 +0000 (UTC) Received: by wgbds11 with SMTP id ds11so2857317wgb.31 for ; Fri, 15 Jun 2012 05:26:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=0kGdZRmRVQfWJENxA/AT0/v4VhFRDBGLQyBnV1aEDa0=; b=CufBZePqldmm3fpxQ7CVEqKhdo7yFUSPoVI6S9tK+4rIq/qZFjfky5v6pKBBQwtPUg gYvd0qqDGdIRbz7d/jCQEGTgoobrg+TDwVii+HD/OUMuJf9k/dpPGlqotSxYVY1SHeR4 OMAgQ3jjELfeDPKa8K3eYzsA/tyVyVed89obyK05W3lruPEILqmM+HgMf2++M19rLcg7 5MhdUS61V+Cknm71w9m6hrv/3K8z7mpJW5Sf7eut//Q8lt5pKeMJl5vFbUY2+HPf/Xx5 3DbsThaIVqWdMbM92vl7tokUnysULTy8gETyumvbVgOUarel8GJj91hcjSXuG+j0swii qehg== MIME-Version: 1.0 Received: by 10.180.20.137 with SMTP id n9mr4213232wie.3.1339763166196; Fri, 15 Jun 2012 05:26:06 -0700 (PDT) Received: by 10.223.158.207 with HTTP; Fri, 15 Jun 2012 05:26:06 -0700 (PDT) In-Reply-To: References: Date: Fri, 15 Jun 2012 14:26:06 +0200 Message-ID: From: Monthadar Al Jaberi To: Adrian Chadd Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: AP <-> STA: tcpdump shows duplicate ARP request from STA, but STA only sends one. X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 12:26:08 -0000 On Fri, Jun 15, 2012 at 11:09 AM, Adrian Chadd wrote: > hi, > > tcpdump just verifies the frame was sent to the hardware via either > the raw or non-raw TX paths. It doesn't mean the hardware actually > sent the frame or that it was successfully received. :-) > > Can you add a third physical node that's just in monitor mode and see > if that frame makes it over the air? The tcpdump of the two ARP request is from a third RSPRO in monitor mode, so I think they are sent but not heared or discarded in the ath driver too early? > > thanks, > > > > Adrian -- Monthadar Al Jaberi From owner-freebsd-wireless@FreeBSD.ORG Fri Jun 15 13:11:19 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (unknown [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9AB6F1065672; Fri, 15 Jun 2012 13:11:19 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by mx1.freebsd.org (Postfix) with ESMTP id D34A78FC12; Fri, 15 Jun 2012 13:11:18 +0000 (UTC) Received: by wibhn6 with SMTP id hn6so459996wib.13 for ; Fri, 15 Jun 2012 06:11:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=RnfeCWNaiI/tWvc6XrUNlKWPv3hLrVrayBufEb9Oq4U=; b=gBYOb4bhTQAf14LB+EtO3T2cHzOrWQh0OijZ6N/DRQkyw6XXeliBCtt8YnNUJzinUG SZp/QPgXFXU5LmztvC9fSsYe+JbR8AvE/1A5VLokUBXLZpAb8gw4CEj0A44wZs4VPcax fsM8FUgNCevUuN+WCut9pcAU8G5JGCE/gfiGWN7J1fPzl2bgydRo/JzmjSl8+hETciQ5 X8p+ufEXYpk+PJ9/vF5Mi/bBCXCBIQ0guFw3mUwJ4FT+5Nl8UqapefeP+Fr/DdU2FD2n K58bQAvqU6bR0XG+YZsYQ040YDT7AdVIDb/aAJ42d78yDN4VwDZXAclvP9sIswyX0pYK TW8Q== MIME-Version: 1.0 Received: by 10.180.102.36 with SMTP id fl4mr4202748wib.2.1339763028015; Fri, 15 Jun 2012 05:23:48 -0700 (PDT) Received: by 10.223.158.207 with HTTP; Fri, 15 Jun 2012 05:23:47 -0700 (PDT) In-Reply-To: References: Date: Fri, 15 Jun 2012 14:23:47 +0200 Message-ID: From: Monthadar Al Jaberi To: Adrian Chadd Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-current@freebsd.org, freebsd-wireless@freebsd.org Subject: Re: ath(4) now defaults to 802.11n on GENERIC/i386 and GENERIC/amd64 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 13:11:19 -0000 On Fri, Jun 15, 2012 at 11:00 AM, Adrian Chadd wrote: > On 15 June 2012 01:17, Adrian Chadd wrote: >> Hi, >> >> I've flipped on ATH_ENABLE_11N and the interrupt mitigation in i386 >> and amd64 GENERIC. > > [snip] > >> If you have problems, please read the wiki article: >> http://wiki.freebsd.org/dev/ath(4) - specifically the bits where I >> tell you to compile with the debugging and diagnostic stuff in your >> -HEAD kernel, including the HAL/driver diagnostic APIs and tools. > > I've also just created a wiki page which provides a very basic > overview of the debugging tools for the driver: > > http://wiki.freebsd.org/dev/ath(4)/Debugging > > I'll write one for net80211 tomorrow. It turns out 'wlanstats' is > really damned helpful. Thank you for the wiki! :) But I am having a problem with athsurvey which is just reporting: min avg max tx% rx% bc% ec% tx% rx% bc% ec% tx% rx% bc% ec% (100.0 100.0 100.0 100.0) ( 0.0 0.0 0.0 0.0) ( 0.0 0.0 0.0 0.0) (100.0 100.0 100.0 100.0) ( 0.0 0.0 0.0 0.0) ( 0.0 0.0 0.0 0.0) athdebug is returning with: athdebug: sysctl-get(dev.ath.0.debug): Cannot allocate memory This is in my kernel config: ... # Atheros wireless NICs device ath # Atheros interface support device ath_pci # Atheros PCI/Cardbus bus options ATH_DEBUG options ATH_DIAGAPI options ATH_ENABLE_11N options AH_DEBUG options AH_DEBUG_ALQ options ALQ device ath_hal option AH_SUPPORT_AR5416 device ath_rate_sample option AH_RXCFG_SDMAMW_4BYTES option AH_AR5416_INTERRUPT_MITIGATION # There's no DFS radar detection support yet so this won't actually # detect radars. It however does enable the rest of the channel change # machinery so DFS can be debugged. option ATH_ENABLE_DFS pciconf -lbvc gives: ath0@pci0:0:17:0: class=0x020000 card=0x30020777 chip=0x001b168c rev=0x01 hdr=0x00 vendor = 'Atheros Communications Inc.' device = 'AR5413 802.11abg NIC' class = network subclass = ethernet bar [10] = type Memory, range 32, base 0x10000000, size 65536, enabled cap 01[44] = powerspec 2 supports D0 D3 current D0 I am running head@235822 > > > > adrian > _______________________________________________ > freebsd-wireless@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-wireless > To unsubscribe, send any mail to "freebsd-wireless-unsubscribe@freebsd.org" -- Monthadar Al Jaberi From owner-freebsd-wireless@FreeBSD.ORG Fri Jun 15 14:57:50 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (unknown [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 43502106566C; Fri, 15 Jun 2012 14:57:50 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pb0-f54.google.com (mail-pb0-f54.google.com [209.85.160.54]) by mx1.freebsd.org (Postfix) with ESMTP id 0CC928FC08; Fri, 15 Jun 2012 14:57:50 +0000 (UTC) Received: by pbbro2 with SMTP id ro2so5734165pbb.13 for ; Fri, 15 Jun 2012 07:57:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=VOJP13OQZF12uGd6hMMsLlm7xpGdUoCxCEALZ68ze54=; b=nR5BM7j+Z4uy+odMmoGTxX30Y2wSngOEs95YkC26sObxFCQHQhDbKW8V6BR+sk5vSk D2SECXgHV3mJ+8EJfBBXRbaWJP32+DJ0DbChmf0DN0SQ5IED1zguSWepryipJWfMj2QC mQjV62C59P1e7OLjNb9mF7xehTX5hu9yE7z4ZzodGnxZYErq8vyhH+WPuyhYSyLGh8XL 9JpZ1gk1CjXYYmvosa4JtPDen1aEX5UMpKA6e8mbHxZHQHYcMEv1t37Vkixl2RSMjxwC TvQuKE3gAUtg8NyOH/9Qv1u7LYgmivF6lwVWowUrOG8F9citYk1uYuu4uTCeRcVi+2gs hJ2A== MIME-Version: 1.0 Received: by 10.68.234.35 with SMTP id ub3mr21506855pbc.8.1339772269701; Fri, 15 Jun 2012 07:57:49 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.91.18 with HTTP; Fri, 15 Jun 2012 07:57:49 -0700 (PDT) In-Reply-To: References: Date: Fri, 15 Jun 2012 07:57:49 -0700 X-Google-Sender-Auth: UslDOEGIq36tMUio9OZycQxu9nQ Message-ID: From: Adrian Chadd To: Monthadar Al Jaberi Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-current@freebsd.org, freebsd-wireless@freebsd.org Subject: Re: ath(4) now defaults to 802.11n on GENERIC/i386 and GENERIC/amd64 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 14:57:50 -0000 On 15 June 2012 05:23, Monthadar Al Jaberi wrote: > But I am having a problem with athsurvey which is just reporting: > > =A0 =A0 =A0 =A0 min =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 avg =A0 =A0 =A0 = =A0 =A0 =A0 =A0 =A0 =A0 max > =A0tx% =A0rx% =A0bc% =A0ec% =A0 =A0tx% =A0rx% =A0bc% =A0ec% =A0 =A0tx% = =A0rx% =A0bc% =A0ec% > (100.0 100.0 100.0 100.0) ( 0.0 =A00.0 =A00.0 =A00.0) ( 0.0 =A00.0 =A00.0= =A00.0) > (100.0 100.0 100.0 100.0) ( 0.0 =A00.0 =A00.0 =A00.0) ( 0.0 =A00.0 =A00.0= =A00.0) Ah. AR5416 and later only. :) > athdebug is returning with: > athdebug: sysctl-get(dev.ath.0.debug): Cannot allocate memory No ATH_DEBUG? Are you building a module? adrian From owner-freebsd-wireless@FreeBSD.ORG Fri Jun 15 15:19:28 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E8B6A1065672 for ; Fri, 15 Jun 2012 15:19:27 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id BAE918FC08 for ; Fri, 15 Jun 2012 15:19:27 +0000 (UTC) Received: by dadv36 with SMTP id v36so4405287dad.13 for ; Fri, 15 Jun 2012 08:19:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=/xYtqBcfDl4ucY6zonvWulFCWSrnCypoDk2Xk0ipKSY=; b=m3OmuUrUSgBFcYyGQXUQUv8kn20Oo+lt9Jbzdn+vCVjvoYTW/JOw91EzdzcO6NhI6U o4TUSu9qI/d0XE1KCl9Ex9aYsoeB4cTd1/oYe20uiybiM3ruB7ttYhgkfvQUABuqxaFF MtQW3ixfW5njdLKa55Nliopo10MeyCZVc9vlxRHyK247IJLbHkGAzMJYMYE/h63fOAh5 grPPAKF5hLHndblLe8jk6PPpRMSq/1qJ9+tvznjx/JwV/mJPd/8I5NPigB/3dQM72T15 pHH8FteJpZxl5yIkKeIjriD4FYHqmkMJH+HiDs0rAv4LRVq2zyq0dmwA0sxp6YyZ1eTd 50og== MIME-Version: 1.0 Received: by 10.68.116.203 with SMTP id jy11mr21000080pbb.129.1339773567119; Fri, 15 Jun 2012 08:19:27 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.91.18 with HTTP; Fri, 15 Jun 2012 08:19:27 -0700 (PDT) In-Reply-To: <4328e7cb52f97c9f8a0e6d82cff5d690.squirrel@eternamente.info> References: <4328e7cb52f97c9f8a0e6d82cff5d690.squirrel@eternamente.info> Date: Fri, 15 Jun 2012 08:19:27 -0700 X-Google-Sender-Auth: 7s-ahZulijTE4Vb5u4ih7OPVvTU Message-ID: From: Adrian Chadd To: Nenhum_de_Nos Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: ath(4) now defaults to 802.11n on GENERIC/i386 and GENERIC/amd64 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 15:19:28 -0000 On 15 June 2012 05:51, Nenhum_de_Nos wrote: > Adrian, > > this is for HEAD only ? Yup, only for -HEAD. I don't have any plans to backport anything to -9 at the moment, it's a big task. Adrian From owner-freebsd-wireless@FreeBSD.ORG Fri Jun 15 15:20:45 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8F9211065673 for ; Fri, 15 Jun 2012 15:20:45 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pb0-f54.google.com (mail-pb0-f54.google.com [209.85.160.54]) by mx1.freebsd.org (Postfix) with ESMTP id 5E1FB8FC1B for ; Fri, 15 Jun 2012 15:20:45 +0000 (UTC) Received: by pbbro2 with SMTP id ro2so5764572pbb.13 for ; Fri, 15 Jun 2012 08:20:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=Pjm3Cn8/ysbvDVYMZseUQ7Kmk8uX475yAzK2vvkrutc=; b=IaUz2HxricKOtqwySQSzT4yRGiOOi5BHGmp594JhKeApFWfztVFMRouLcfnucMsxTc Q39a+JYU6HdcjWE7w2N65Z1QQoJw0vLqqAxk2db6KwG0Yq7Pak/1fgUXLoJEcxe2FXtE pEqqnl40s3bJ3k6denzj8yUgPaWpm8Ae2lZvzfylZWrJrPvZFDwcYbGFL+27b1AzKbku 8EGHPu6HhcBIyyssQN9U/S8xSbOi3jrFfiBMl9FGyLh1iN8rwrVPQjZ3iISluNKUMYoI PVBLOBCmEN0ZkeQfDS/Gej6QnEiFbDTxgM5Z6iLh3CRaTQFjAJwK1TbAwGDb+uovDGxg sCjg== MIME-Version: 1.0 Received: by 10.68.138.169 with SMTP id qr9mr21309180pbb.27.1339773644947; Fri, 15 Jun 2012 08:20:44 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.91.18 with HTTP; Fri, 15 Jun 2012 08:20:44 -0700 (PDT) In-Reply-To: References: Date: Fri, 15 Jun 2012 08:20:44 -0700 X-Google-Sender-Auth: YrDNabygb0CHXMmyOzFHf4Qyelw Message-ID: From: Adrian Chadd To: Monthadar Al Jaberi Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: AP <-> STA: tcpdump shows duplicate ARP request from STA, but STA only sends one. X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 15:20:45 -0000 Ah. Well, that's a bit odd. Can you do some tests to see if the frame is being received? It's a broadcast frame, so there's no ACK there. Maybe add a hacky counter that counts ARP requests received in ath_rx_proc() ? :) Adrian