Skip to content

Commit

Permalink
net: Copy inner L3 and L4 headers as unaligned on GRE TEB
Browse files Browse the repository at this point in the history
This patch corrects the unaligned accesses seen on GRE TEB tunnels when
generating hash keys.  Specifically what this patch does is make it so that
we force the use of skb_copy_bits when the GRE inner headers will be
unaligned due to NET_IP_ALIGNED being a non-zero value.

Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
Acked-by: Tom Herbert <tom@herbertland.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Alexander Duyck authored and davem330 committed Feb 16, 2016
1 parent 7b4c534 commit 7856520
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions net/core/flow_dissector.c
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,13 @@ bool __skb_flow_dissect(const struct sk_buff *skb,
goto out_bad;
proto = eth->h_proto;
nhoff += sizeof(*eth);

/* Cap headers that we access via pointers at the
* end of the Ethernet header as our maximum alignment
* at that point is only 2 bytes.
*/
if (NET_IP_ALIGN)
hlen = nhoff;
}

key_control->flags |= FLOW_DIS_ENCAPSULATION;
Expand Down

0 comments on commit 7856520

Please sign in to comment.