vxlan: Fix bug introduced by commit acbf74a76300
authorAndy Zhou <azhou@nicira.com>
Tue, 23 Sep 2014 08:44:51 +0000 (01:44 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 23 Sep 2014 19:32:10 +0000 (15:32 -0400)
Commit acbf74a76300 ("vxlan: Refactor vxlan driver to make use of the common UDP tunnel functions." introduced a bug in vxlan_xmit_one()
function, causing it to transmit Vxlan packets without proper
Vxlan header inserted. The change was not needed in the first
place. Revert it.

Reported-by: Tom Herbert <therbert@google.com>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Andy Zhou <azhou@nicira.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vxlan.c

index 39c86536fb9b7e5b1a2651b5a867a21a9609dd42..34e102ec95c26ad746c183a9c714d24b535ecbfd 100644 (file)
@@ -1778,11 +1778,11 @@ static void vxlan_xmit_one(struct sk_buff *skb, struct net_device *dev,
                tos = ip_tunnel_ecn_encap(tos, old_iph, skb);
                ttl = ttl ? : ip4_dst_hoplimit(&rt->dst);
 
-               err = udp_tunnel_xmit_skb(vxlan->vn_sock->sock, rt, skb,
-                                         fl4.saddr, dst->sin.sin_addr.s_addr,
-                                         tos, ttl, df, src_port, dst_port,
-                                         !net_eq(vxlan->net,
-                                                 dev_net(vxlan->dev)));
+               err = vxlan_xmit_skb(vxlan->vn_sock, rt, skb,
+                                    fl4.saddr, dst->sin.sin_addr.s_addr,
+                                    tos, ttl, df, src_port, dst_port,
+                                    htonl(vni << 8),
+                                    !net_eq(vxlan->net, dev_net(vxlan->dev)));
 
                if (err < 0)
                        goto rt_tx_error;