From: Dave Taht <dave.t...@bufferbloat.net>

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.
---
 .../686-flow_dissector-clean-up-IPIP-case.patch    |   30 ++++++++++++++++++++
 ...ow_dissector-add-support-for-IPPROTO_IPV6.patch |   30 ++++++++++++++++++++
 ...88-net-flow_dissector-add-802.1ad-support.patch |   29 +++++++++++++++++++
 3 files changed, 89 insertions(+)
 create mode 100644 
target/linux/generic/patches-3.10/686-flow_dissector-clean-up-IPIP-case.patch
 create mode 100644 
target/linux/generic/patches-3.10/687-flow_dissector-add-support-for-IPPROTO_IPV6.patch
 create mode 100644 
target/linux/generic/patches-3.10/688-net-flow_dissector-add-802.1ad-support.patch

diff --git 
a/target/linux/generic/patches-3.10/686-flow_dissector-clean-up-IPIP-case.patch 
b/target/linux/generic/patches-3.10/686-flow_dissector-clean-up-IPIP-case.patch
new file mode 100644
index 0000000..151c148
--- /dev/null
+++ 
b/target/linux/generic/patches-3.10/686-flow_dissector-clean-up-IPIP-case.patch
@@ -0,0 +1,30 @@
+From de03a7f8eddba389668e3c35d4a31d985d29778f Mon Sep 17 00:00:00 2001
+From: Tom Herbert <therb...@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 <therb...@google.com>
+Signed-off-by: David S. Miller <da...@davemloft.net>
+---
+ net/core/flow_dissector.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
+index 00ee068..3259446 100644
+--- 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;
+       }
+-- 
+1.7.9.5
+
diff --git 
a/target/linux/generic/patches-3.10/687-flow_dissector-add-support-for-IPPROTO_IPV6.patch
 
b/target/linux/generic/patches-3.10/687-flow_dissector-add-support-for-IPPROTO_IPV6.patch
new file mode 100644
index 0000000..2f8ab3e
--- /dev/null
+++ 
b/target/linux/generic/patches-3.10/687-flow_dissector-add-support-for-IPPROTO_IPV6.patch
@@ -0,0 +1,30 @@
+From 9c60237cd842c337539b1d72582b8cc410aeb3a6 Mon Sep 17 00:00:00 2001
+From: Tom Herbert <therb...@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 <therb...@google.com>
+Signed-off-by: David S. Miller <da...@davemloft.net>
+---
+ net/core/flow_dissector.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
+index 3259446..ade9ff1 100644
+--- 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;
+       }
+-- 
+1.7.9.5
+
diff --git 
a/target/linux/generic/patches-3.10/688-net-flow_dissector-add-802.1ad-support.patch
 
b/target/linux/generic/patches-3.10/688-net-flow_dissector-add-802.1ad-support.patch
new file mode 100644
index 0000000..49d9e1b
--- /dev/null
+++ 
b/target/linux/generic/patches-3.10/688-net-flow_dissector-add-802.1ad-support.patch
@@ -0,0 +1,29 @@
+From 017879b546ee5f85d13f90236a251d56605c9e86 Mon Sep 17 00:00:00 2001
+From: Eric Dumazet <eduma...@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 <eduma...@google.com>
+Signed-off-by: David S. Miller <da...@davemloft.net>
+---
+ net/core/flow_dissector.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
+index ade9ff1..159737c 100644
+--- 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;
+-- 
+1.7.9.5
+
-- 
1.7.9.5
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to