Development issues regarding the cerowrt test router project
 help / color / mirror / Atom feed
From: Dave Taht <dave.taht@gmail.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: "cerowrt-devel@lists.bufferbloat.net"
	<cerowrt-devel@lists.bufferbloat.net>
Subject: Re: [Cerowrt-devel] cerowrt-3.10.34-4 dev build released
Date: Wed, 2 Apr 2014 18:58:39 -0700	[thread overview]
Message-ID: <CAA93jw6xxunweQgyCi2H_VjUSSTZD1Y5_A-C_HHsw6Ye8QzScw@mail.gmail.com> (raw)
In-Reply-To: <CAOaVG14Y_E7ocUPVzjDJk28xUHjAf_Gxo6-MhH=rg1zQZYzdng@mail.gmail.com>

On Wed, Apr 2, 2014 at 6:48 PM, Stephen Hemminger
<stephen@networkplumber.org> 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 the
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 <dave.taht@bufferbloat.net>
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[] = {
+ 0, /* BE = 0x0 */
+ 0, /* Max-Reliability = 0x1 */
+ 3, /* Max-Throughput = 0x2 */
+ 0, /* 0x3 Undefined */
+ 5, /* Min-Delay = 0x4 */
+ 0, /* 0x5 Undefined */
+ 0, /* 0x6 Undefined */
+ 0, /* 0x7 Undefined */
+ 1, /* CS1 = 0x8 */
+ 0, /* 0x9 Undefined */
+ 3, /* AF11 = 0xa */
+ 0, /* 0xb Undefined */
+ 3, /* AF12 = 0xc */
+ 0, /* 0xd Undefined */
+ 3, /* AF13 = 0xe */
+ 0, /* 0xf Undefined */
+ 2, /* CS2 = 0x10 */
+ 0, /* 0x11 Undefined */
+ 3, /* AF21 = 0x12 */
+ 0, /* 0x13 Undefined */
+ 3, /* AF22 = 0x14 */
+ 0, /* 0x15 Undefined */
+ 3, /* AF23 = 0x16 */
+ 0, /* 0x17 Undefined */
+ 4, /* CS3 = 0x18 */
+ 0, /* 0x19 Undefined */
+ 3, /* AF31 = 0x1a */
+ 0, /* 0x1b Undefined */
+ 3, /* AF32 = 0x1c */
+ 0, /* 0x1d Undefined */
+ 3, /* AF33 = 0x1e */
+ 0, /* 0x1f Undefined */
+ 5, /* CS4 = 0x20 */
+ 0, /* 0x21 Undefined */
+ 5, /* AF41 = 0x22 */
+ 0, /* 0x23 Undefined */
+ 5, /* AF42 = 0x24 */
+ 0, /* 0x25 Undefined */
+ 4, /* AF43 = 0x26 */
+ 0, /* 0x27 Undefined */
+ 5, /* CS5 = 0x28 */
+ 0, /* 0x29 Undefined */
+ 0, /* 0x2a Undefined */
+ 0, /* 0x2b Undefined */
+ 4, /* VA = 0x2c */
+ 0, /* 0x2d Undefined */
+ 5, /* EF = 0x2e */
+ 0, /* 0x2f Undefined */
+ 5, /* CS6 = 0x30 */
+ 0, /* 0x31 Undefined */
+ 0, /* 0x32 Undefined */
+ 0, /* 0x33 Undefined */
+ 0, /* 0x34 Undefined */
+ 0, /* 0x35 Undefined */
+ 0, /* 0x36 Undefined */
+ 0, /* 0x37 Undefined */
+ 5, /* CS7 = 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 >= 256 && skb->priority <= 263)
- return skb->priority - 256;
-
- if (vlan_tx_tag_present(skb)) {
- vlan_priority = (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);

-- 
1.7.9.5


-- 
Dave Täht

Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html

  reply	other threads:[~2014-04-03  1:58 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-03  1:17 Dave Taht
2014-04-03  1:48 ` Stephen Hemminger
2014-04-03  1:58   ` Dave Taht [this message]
2014-04-03  2:43   ` Dave Taht
2014-04-03 10:09     ` David Personette
2014-04-03 15:17   ` Jim Gettys
2014-04-03 18:20 ` Neil Shepperd
2014-04-03 22:36   ` Dave Taht
2014-04-03 22:51     ` Maxim Kharlamov
2014-04-03 22:54       ` Dave Taht
2014-04-03 22:56       ` Aaron Wood
2014-04-03 22:57         ` Aaron Wood
2014-04-03 22:58           ` Dave Taht
2014-04-03 23:01             ` Maxim Kharlamov
2014-04-04  1:26               ` David Personette
2014-04-04  7:04             ` Aaron Wood
2014-04-04  6:57     ` Toke Høiland-Jørgensen
2014-04-05 12:49     ` Neil Shepperd
2014-04-05 16:02       ` Dave Taht
2014-04-05 16:15         ` Dave Taht
2014-04-05  8:34 ` Török Edwin
2014-04-05 15:53   ` Dave Taht
2014-04-05 21:25     ` Török Edwin
2014-04-07 14:45   ` Toke Høiland-Jørgensen
2014-04-07 15:27     ` Török Edwin
2014-04-07 15:31       ` Toke Høiland-Jørgensen
2014-04-07 17:58       ` Dave Taht
2014-04-07 18:51         ` Török Edwin
2014-04-05 19:11 ` Jim Reisert AD1C
2014-04-05 19:26   ` Dave Taht
2014-04-06  0:15     ` Jim Reisert AD1C
2014-04-06 10:23       ` Robert Bradley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.bufferbloat.net/postorius/lists/cerowrt-devel.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAA93jw6xxunweQgyCi2H_VjUSSTZD1Y5_A-C_HHsw6Ye8QzScw@mail.gmail.com \
    --to=dave.taht@gmail.com \
    --cc=cerowrt-devel@lists.bufferbloat.net \
    --cc=stephen@networkplumber.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox