diff options
author | Michael Dalton <mwdalton@google.com> | 2013-03-11 02:52:28 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-03-12 05:14:06 -0400 |
commit | e1733de2243609073534cf56afb146a62af3c3d8 (patch) | |
tree | ed216256b1375155a153597d13364564a5ba6fb0 /net/core/flow_dissector.c | |
parent | f4f3efdaf9f0770b69fb2c86f1a67547ad756942 (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.c | 11 |
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; |