diff options
author | Jesse Gross <jesse@nicira.com> | 2014-11-03 19:38:37 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-11-05 15:00:51 -0500 |
commit | 45cac46e51da75628ac2a593c70f5144abb9b31d (patch) | |
tree | 665855cea0a34fb66bbc8f6359d73ef9e001fc72 /net/ipv4 | |
parent | 15e4123ba837180df706577bfe3acf648524e06b (diff) | |
download | linux-45cac46e51da75628ac2a593c70f5144abb9b31d.tar.gz linux-45cac46e51da75628ac2a593c70f5144abb9b31d.tar.bz2 linux-45cac46e51da75628ac2a593c70f5144abb9b31d.zip |
geneve: Set GSO type on transmit.
Geneve does not currently set the inner protocol type when
transmitting packets. This causes GSO segmentation to fail on NICs
that do not support Geneve offloading.
CC: Andy Zhou <azhou@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/geneve.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv4/geneve.c b/net/ipv4/geneve.c index 065cd94c640c..6e5266cf403d 100644 --- a/net/ipv4/geneve.c +++ b/net/ipv4/geneve.c @@ -144,6 +144,8 @@ int geneve_xmit_skb(struct geneve_sock *gs, struct rtable *rt, gnvh = (struct genevehdr *)__skb_push(skb, sizeof(*gnvh) + opt_len); geneve_build_header(gnvh, tun_flags, vni, opt_len, opt); + skb_set_inner_protocol(skb, htons(ETH_P_TEB)); + return udp_tunnel_xmit_skb(gs->sock, rt, skb, src, dst, tos, ttl, df, src_port, dst_port, xnet); } |