From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from he.sipsolutions.net ([78.46.109.217]:35646 "EHLO sipsolutions.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750775Ab1FHLIF (ORCPT ); Wed, 8 Jun 2011 07:08:05 -0400 Subject: Re: iwlagn aggregation problem when stations are removed/re-added quickly From: Johannes Berg To: Daniel Halperin Cc: ipw3945-devel@lists.sourceforge.net, linux-wireless , Wey-Yi W Guy In-Reply-To: (sfid-20110514_005657_579238_E23F3390) References: (sfid-20110514_005657_579238_E23F3390) Content-Type: text/plain; charset="UTF-8" Date: Wed, 08 Jun 2011 13:07:56 +0200 Message-ID: <1307531276.3961.8.camel@jlt3.sipsolutions.net> (sfid-20110608_130809_625668_38B83AD2) Mime-Version: 1.0 Sender: linux-wireless-owner@vger.kernel.org List-ID: On Fri, 2011-05-13 at 15:56 -0700, Daniel Halperin wrote: > I'm running an experiment where a client connects to the AP (both HT > iwlagn devices), starts a large transfer that gets aggregation going, > disassociates, and then reassociates and restarts the transfer. > > When mac80211 stops the queue (as part of the client's disassocation > process), it goes into the following code: > > IWL_DEBUG_HT(priv, "Stopping a non empty AGG HW QUEUE\n"); > priv->stations[sta_id].tid[tid].agg.state = > IWL_EMPTYING_HW_QUEUE_DELBA; > spin_unlock_irqrestore(&priv->sta_lock, flags); > > but if the station is removed right away the packets stay in the > queue. Indeed, when the client reconnects, the packets are then > delivered! But then the queue gets stuck and the AP issues a firmware > reset, which doesn't actually get traffic flowing again. Below, > there's a log with IWL_DL_HT set. It may be something racy; adding > DL_INFO and DL_MAC80211 I haven't been able to reproduce the bug yet > in a few tries. > > I suspect this will also be a problem with P2P, and not just my klugey > use of AP mode. Any suggestions as to how to fix? Sorry I'm replying this late. I'm not sure what the best way to fix it would be, but it makes sense that this would happen. Maybe we can flush the aggregation queue (asking the ucode to drop all frames) when the station is removed, but I'm not sure how we'd do that -- Wey-Yi do you know if that's possible? johannes