From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wi0-x22d.google.com (mail-wi0-x22d.google.com [IPv6:2a00:1450:400c:c05::22d]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by huchra.bufferbloat.net (Postfix) with ESMTPS id F03EC21F231 for ; Wed, 2 Apr 2014 18:58:41 -0700 (PDT) Received: by mail-wi0-f173.google.com with SMTP id z2so6474494wiv.12 for ; Wed, 02 Apr 2014 18:58:40 -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=MSeqJZWNYH1MDYMQWx4gXMelxCBAjMM3bwSgwj3WX1M=; b=kD4UbF4c9U0jnNcjyxfKUL34ZSvhaldf+ufDFrr/HVubl/0GXW/kyyLiT+nkLMdeE/ oXm9tT18882Y0yRO3liPXWT9iEP4+Q32T/HQv0Sk7gSdnOLOgyGlWQdlxFsw30rDyjTW vjiD7JFEdRpPiEWovtHaVuxDblMUfqIru93ZytnSqXh6Di2+fCCJ/x+NDKtORRRJXDVX +yFvw+85o89KIqIBalXPdl1HWLLKV+MwqNwsOD2gzyPvM+2WPp/dKgS6m2pq8Oy6riqu Y5m2jQ0t7EQc2ZtIjL0L5xLOdqOKKcUT7SDXyxhxPEyweENwzGfOfnqhzEzntkYa3+0g Ujhg== MIME-Version: 1.0 X-Received: by 10.194.187.50 with SMTP id fp18mr877772wjc.89.1396490319946; Wed, 02 Apr 2014 18:58:39 -0700 (PDT) Received: by 10.216.8.1 with HTTP; Wed, 2 Apr 2014 18:58:39 -0700 (PDT) In-Reply-To: References: Date: Wed, 2 Apr 2014 18:58:39 -0700 Message-ID: From: Dave Taht To: Stephen Hemminger Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: "cerowrt-devel@lists.bufferbloat.net" Subject: Re: [Cerowrt-devel] cerowrt-3.10.34-4 dev build released X-BeenThere: cerowrt-devel@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: Development issues regarding the cerowrt test router project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Apr 2014 01:58:42 -0000 On Wed, Apr 2, 2014 at 6:48 PM, Stephen Hemminger wrote: > I am seeing wireless hang as well. > Mostly when multiple macbooks are active on 2.4g Grump. This patch is what is in 3.10.34-4. It is essentially the same as th= e patch that I've been carrying in cerowrt for ages, but I dropped it circa 3.10.28 or so as upstream had sprouted vlan and qos mapping support in addition to the other weirdnesses in 802.11e classification therein. The vlan mapping is just plain a bad idea, as is mapping priorities 256-, and I don't know how to use the new qos-mapping feature... There was some churn over wpa in the main tree that mapped it into the VO queue recently... So I regenerated that patch in this release. This instead maps dscp values to the aggregateable wifi queue types: From: Dave Taht Date: Wed, 2 Apr 2014 12:38:53 -0700 Subject: [PATCH] wifi does not map to vlan priorities at all obsolete "special" priority markings get rid of vlan priorities map unclassified dscp values to vi,be, and bk queues only the VO queue should be as rarely used as possible. --- net/wireless/util.c | 85 ++++++++++++++++++++++++++++++++++++++++-------= ---- 1 file changed, 68 insertions(+), 17 deletions(-) diff --git a/net/wireless/util.c b/net/wireless/util.c index d39c371..4d1dce4 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c @@ -688,27 +688,78 @@ void ieee80211_amsdu_to_8023s(struct sk_buff *skb, struct sk_buff_head *list, } EXPORT_SYMBOL(ieee80211_amsdu_to_8023s); +static u8 dscp_table[] =3D { + 0, /* BE =3D 0x0 */ + 0, /* Max-Reliability =3D 0x1 */ + 3, /* Max-Throughput =3D 0x2 */ + 0, /* 0x3 Undefined */ + 5, /* Min-Delay =3D 0x4 */ + 0, /* 0x5 Undefined */ + 0, /* 0x6 Undefined */ + 0, /* 0x7 Undefined */ + 1, /* CS1 =3D 0x8 */ + 0, /* 0x9 Undefined */ + 3, /* AF11 =3D 0xa */ + 0, /* 0xb Undefined */ + 3, /* AF12 =3D 0xc */ + 0, /* 0xd Undefined */ + 3, /* AF13 =3D 0xe */ + 0, /* 0xf Undefined */ + 2, /* CS2 =3D 0x10 */ + 0, /* 0x11 Undefined */ + 3, /* AF21 =3D 0x12 */ + 0, /* 0x13 Undefined */ + 3, /* AF22 =3D 0x14 */ + 0, /* 0x15 Undefined */ + 3, /* AF23 =3D 0x16 */ + 0, /* 0x17 Undefined */ + 4, /* CS3 =3D 0x18 */ + 0, /* 0x19 Undefined */ + 3, /* AF31 =3D 0x1a */ + 0, /* 0x1b Undefined */ + 3, /* AF32 =3D 0x1c */ + 0, /* 0x1d Undefined */ + 3, /* AF33 =3D 0x1e */ + 0, /* 0x1f Undefined */ + 5, /* CS4 =3D 0x20 */ + 0, /* 0x21 Undefined */ + 5, /* AF41 =3D 0x22 */ + 0, /* 0x23 Undefined */ + 5, /* AF42 =3D 0x24 */ + 0, /* 0x25 Undefined */ + 4, /* AF43 =3D 0x26 */ + 0, /* 0x27 Undefined */ + 5, /* CS5 =3D 0x28 */ + 0, /* 0x29 Undefined */ + 0, /* 0x2a Undefined */ + 0, /* 0x2b Undefined */ + 4, /* VA =3D 0x2c */ + 0, /* 0x2d Undefined */ + 5, /* EF =3D 0x2e */ + 0, /* 0x2f Undefined */ + 5, /* CS6 =3D 0x30 */ + 0, /* 0x31 Undefined */ + 0, /* 0x32 Undefined */ + 0, /* 0x33 Undefined */ + 0, /* 0x34 Undefined */ + 0, /* 0x35 Undefined */ + 0, /* 0x36 Undefined */ + 0, /* 0x37 Undefined */ + 5, /* CS7 =3D 0x38 */ + 0, /* 0x39 Undefined */ + 0, /* 0x3a Undefined */ + 0, /* 0x3b Undefined */ + 0, /* 0x3c Undefined */ + 0, /* 0x3d Undefined */ + 0, /* 0x3e Undefined */ + 0, /* 0x3f Undefined */ + }; + /* Given a data frame determine the 802.1p/1d tag to use. */ unsigned int cfg80211_classify8021d(struct sk_buff *skb, struct cfg80211_qos_map *qos_map) { unsigned int dscp; - unsigned char vlan_priority; - - /* skb->priority values from 256->263 are magic values to - * directly indicate a specific 802.1d priority. This is used - * to allow 802.1d priority to be passed directly in from VLAN - * tags, etc. - */ - if (skb->priority >=3D 256 && skb->priority <=3D 263) - return skb->priority - 256; - - if (vlan_tx_tag_present(skb)) { - vlan_priority =3D (vlan_tx_tag_get(skb) & VLAN_PRIO_MASK) - >> VLAN_PRIO_SHIFT; - if (vlan_priority > 0) - return vlan_priority; - } switch (skb->protocol) { case htons(ETH_P_IP): @@ -736,7 +787,7 @@ unsigned int cfg80211_classify8021d(struct sk_buff *skb= , } } - return dscp >> 5; + return dscp_table[dscp>>2]; } EXPORT_SYMBOL(cfg80211_classify8021d); --=20 1.7.9.5 --=20 Dave T=E4ht Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.= html