]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
geneve: Set GSO type on transmit.
authorJesse Gross <jesse@nicira.com>
Tue, 4 Nov 2014 03:38:37 +0000 (19:38 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 5 Nov 2014 20:00:51 +0000 (15:00 -0500)
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>
net/ipv4/geneve.c

index 065cd94c640c0c2a20cbf99c31cba588db54897e..6e5266cf403dae00a99f4a83e145563390928ddc 100644 (file)
@@ -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);
 }