Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 996c9fd1 authored by Tom Herbert's avatar Tom Herbert Committed by David S. Miller
Browse files

vxlan: Set inner protocol before transmit



Call skb_set_inner_protocol to set inner Ethernet protocol to
ETH_P_TEB before transmit. This is needed for GSO with UDP tunnels.

Signed-off-by: default avatarTom Herbert <therbert@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 54bc9bac
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1610,6 +1610,8 @@ static int vxlan6_xmit_skb(struct vxlan_sock *vs,
	vxh->vx_flags = htonl(VXLAN_FLAGS);
	vxh->vx_vni = vni;

	skb_set_inner_protocol(skb, htons(ETH_P_TEB));

	udp_tunnel6_xmit_skb(vs->sock, dst, skb, dev, saddr, daddr, prio,
			     ttl, src_port, dst_port);
	return 0;
@@ -1652,6 +1654,8 @@ int vxlan_xmit_skb(struct vxlan_sock *vs,
	vxh->vx_flags = htonl(VXLAN_FLAGS);
	vxh->vx_vni = vni;

	skb_set_inner_protocol(skb, htons(ETH_P_TEB));

	return udp_tunnel_xmit_skb(vs->sock, rt, skb, src, dst, tos,
				   ttl, df, src_port, dst_port, xnet);
}