aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/flow_dissector.c
diff options
context:
space:
mode:
authorMichael Dalton <mwdalton@google.com>2013-03-11 02:52:28 -0400
committerDavid S. Miller <davem@davemloft.net>2013-03-12 05:14:06 -0400
commite1733de2243609073534cf56afb146a62af3c3d8 (patch)
treeed216256b1375155a153597d13364564a5ba6fb0 /net/core/flow_dissector.c
parentf4f3efdaf9f0770b69fb2c86f1a67547ad756942 (diff)
flow_dissector: support L2 GRE
Add support for L2 GRE tunnels, so that RPS can be more effective. Signed-off-by: Michael Dalton <mwdalton@google.com> Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/flow_dissector.c')
-rw-r--r--net/core/flow_dissector.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
index 9d4c7201400d..f8d9e03b7a7c 100644
--- a/net/core/flow_dissector.c
+++ b/net/core/flow_dissector.c
@@ -119,6 +119,17 @@ ipv6:
119 nhoff += 4; 119 nhoff += 4;
120 if (hdr->flags & GRE_SEQ) 120 if (hdr->flags & GRE_SEQ)
121 nhoff += 4; 121 nhoff += 4;
122 if (proto == htons(ETH_P_TEB)) {
123 const struct ethhdr *eth;
124 struct ethhdr _eth;
125
126 eth = skb_header_pointer(skb, nhoff,
127 sizeof(_eth), &_eth);
128 if (!eth)
129 return false;
130 proto = eth->h_proto;
131 nhoff += sizeof(*eth);
132 }
122 goto again; 133 goto again;
123 } 134 }
124 break; 135 break;