mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-21 17:47:00 +00:00
kernel/3.10: improve fq_codel hashing for 6in4 6to4 801.ad and IPIP cases
This is a backport of code to improve the quality of fq_codel hashing for 3.10 for some encapsulated protocols. Not needed in 3.11 and later. Patch-by: Dave Taht <dave.taht@bufferbloat.net> Patchwork: http://patchwork.openwrt.org/patch/4902/ Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 39640
This commit is contained in:
parent
fcbfe67e2a
commit
ab6e3af7fc
@ -0,0 +1,25 @@
|
|||||||
|
From de03a7f8eddba389668e3c35d4a31d985d29778f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tom Herbert <therbert@google.com>
|
||||||
|
Date: Mon, 29 Jul 2013 11:07:36 -0700
|
||||||
|
Subject: [PATCH 3/5] flow_dissector: clean up IPIP case
|
||||||
|
|
||||||
|
Explicitly set proto to ETH_P_IP and jump directly to ip processing.
|
||||||
|
|
||||||
|
Signed-off-by: Tom Herbert <therbert@google.com>
|
||||||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
---
|
||||||
|
net/core/flow_dissector.c | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/net/core/flow_dissector.c
|
||||||
|
+++ b/net/core/flow_dissector.c
|
||||||
|
@@ -139,7 +139,8 @@ ipv6:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case IPPROTO_IPIP:
|
||||||
|
- goto again;
|
||||||
|
+ proto = htons(ETH_P_IP);
|
||||||
|
+ goto ip;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
From 9c60237cd842c337539b1d72582b8cc410aeb3a6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tom Herbert <therbert@google.com>
|
||||||
|
Date: Mon, 29 Jul 2013 11:07:42 -0700
|
||||||
|
Subject: [PATCH 4/5] flow_dissector: add support for IPPROTO_IPV6
|
||||||
|
|
||||||
|
Support IPPROTO_IPV6 similar to IPPROTO_IPIP
|
||||||
|
|
||||||
|
Signed-off-by: Tom Herbert <therbert@google.com>
|
||||||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
---
|
||||||
|
net/core/flow_dissector.c | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
--- a/net/core/flow_dissector.c
|
||||||
|
+++ b/net/core/flow_dissector.c
|
||||||
|
@@ -141,6 +141,9 @@ ipv6:
|
||||||
|
case IPPROTO_IPIP:
|
||||||
|
proto = htons(ETH_P_IP);
|
||||||
|
goto ip;
|
||||||
|
+ case IPPROTO_IPV6:
|
||||||
|
+ proto = htons(ETH_P_IPV6);
|
||||||
|
+ goto ipv6;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
From 017879b546ee5f85d13f90236a251d56605c9e86 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eric Dumazet <edumazet@google.com>
|
||||||
|
Date: Tue, 6 Aug 2013 04:35:06 -0700
|
||||||
|
Subject: [PATCH 5/5] net: flow_dissector: add 802.1ad support
|
||||||
|
|
||||||
|
Same behavior than 802.1q : finds the encapsulated protocol and
|
||||||
|
skip 32bit header.
|
||||||
|
|
||||||
|
Signed-off-by: Eric Dumazet <edumazet@google.com>
|
||||||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
---
|
||||||
|
net/core/flow_dissector.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
--- a/net/core/flow_dissector.c
|
||||||
|
+++ b/net/core/flow_dissector.c
|
||||||
|
@@ -65,6 +65,7 @@ ipv6:
|
||||||
|
nhoff += sizeof(struct ipv6hdr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
+ case __constant_htons(ETH_P_8021AD):
|
||||||
|
case __constant_htons(ETH_P_8021Q): {
|
||||||
|
const struct vlan_hdr *vlan;
|
||||||
|
struct vlan_hdr _vlan;
|
Loading…
x
Reference in New Issue
Block a user