From owner-freebsd-wireless@FreeBSD.ORG Fri Jun 17 11:27:40 2011 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 71CF31065670 for ; Fri, 17 Jun 2011 11:27:40 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-gx0-f182.google.com (mail-gx0-f182.google.com [209.85.161.182]) by mx1.freebsd.org (Postfix) with ESMTP id 2F6B38FC16 for ; Fri, 17 Jun 2011 11:27:39 +0000 (UTC) Received: by gxk28 with SMTP id 28so748139gxk.13 for ; Fri, 17 Jun 2011 04:27:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:date:x-google-sender-auth :message-id:subject:from:to:content-type; bh=Dwuv546qHSSVdS8zkxa5is7+JNFYDRMAB5hwkejZ9QQ=; b=NH0CpBGZMzbXZcio76TykBmdV8j+UbCkMg1f9EdLIq02gmMLFkkRosUwQoxhhT4tM9 sl2yD0UK6UN7p9jeGTC0TROhjQdGvv9wlmt+64CaAULz3fet4ZvAUmJdoDPBa7STIu4a qPnsdr0om5HXQWOotshLxws5JfCRNbdpk78iY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; b=fHUfYgr8X+0oDkRg07fknvcfe1vD0HftE//8y4jjbe/VxiGFWjY89uoFLIKfwKreYY ndE+Eb680MIraTDqh87zjr0tljExiff3/AeyMSRoERKdTep3kz4vgN0itL125h8+RUjY qSBG8uM4rzker37GET0lKIRDFXnENn4ORXr7M= MIME-Version: 1.0 Received: by 10.150.74.17 with SMTP id w17mr2351710yba.274.1308310059451; Fri, 17 Jun 2011 04:27:39 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.150.216.3 with HTTP; Fri, 17 Jun 2011 04:27:39 -0700 (PDT) Date: Fri, 17 Jun 2011 19:27:39 +0800 X-Google-Sender-Auth: bxeaeouRPpDo51RoaNQyIawuIv8 Message-ID: From: Adrian Chadd To: freebsd-wireless@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Subject: Direct-dispatching addba frames and to the correct hardware queue? 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, 17 Jun 2011 11:27:40 -0000 Hi, I've found that all the HT action frames are assigned to the WME priority 3 (voice). This means they'll go out in a different hardware queue in ath(4) than any pre-aggregation frames queued to the hardware. So the ADDBA frame appears before some of the already-queued frames. Frames in the ath software TX queue can be held, but those in the hardware queue can't. I've added a hack to my branch that rewrites the priority on ADDBA frames, and also marks them as direct dispatch to the hardware rather than stuffed in the software queue. But I'd rather this be done in the net80211 stack. So the questions! * Should the stack be throwing the action frame(s) for a given TID onto the right hardware queue? * Should there be an ieee80211_param flag that says "don't software queue, please just send straight through thanks?" for things like action frames that should behave as above? * Should the ADDBA (and DELBA) TX be split out from the actual status change so the driver can actually say when the frames go out? Ie, the driver can wait for all pending packets to the given node in the relevant TID to have gone out before completing the ADDBA transaction. I'm not sure yet about DELBA as I haven't yet gotten to implementing it. :-) I don't mind leaving this dirtiness in the ath(4) code I'm working on for now until we've figured out a cleaner option, so there's no rush to figure it out. Thanks, Adrian