datapath/linux/compat/vxlan.c
/* Transmit local packets over Vxlan
 *
 * Outer IP header inherits ECN and DF from inner header.
 * Outer UDP destination is the VXLAN assigned port.
 *           source port is based on hash of flow
 */
Transmit local packets over Vxlan
Outer IP header inherits ECN and DF from inner header.
Outer UDP destination is the VXLAN assigned port.
source port is based on hash of flow
Transmit local packets over Vxlan Outer IP header inherits ECN and DF from inner header . Outer UDP destination is the VXLAN assigned port . source port is based on hash of flow
netdev_tx_t rpl_vxlan_xmit(struct sk_buff *skb)
{
	struct net_device *dev = skb->dev;
	struct vxlan_dev *vxlan = netdev_priv(dev);
	const struct ip_tunnel_info *info;
	info = skb_tunnel_info(skb);
	skb_reset_mac_header(skb);
	if (vxlan->flags & VXLAN_F_COLLECT_METADATA) {
		if (info && info->mode & IP_TUNNEL_INFO_TX) {
			vxlan_xmit_one(skb, dev, NULL, false);
			return NETDEV_TX_OK;
		}
	}
	dev->stats.tx_dropped++;
	kfree_skb(skb);
	return NETDEV_TX_OK;
}
netdev_tx_t rpl_vxlan_xmit ( struct sk_buff * skb ) { struct net_device * dev = skb -> dev ; struct vxlan_dev * vxlan = netdev_priv ( dev ) ; const struct ip_tunnel_info * info ; info = skb_tunnel_info ( skb ) ; skb_reset_mac_header ( skb ) ; if ( vxlan -> flags & VXLAN_F_COLLECT_METADATA ) { if ( info && info -> mode & IP_TUNNEL_INFO_TX ) { vxlan_xmit_one ( skb , dev , NULL , false ) ; return NETDEV_TX_OK ; } } dev -> stats . tx_dropped ++ ; kfree_skb ( skb ) ; return NETDEV_TX_OK ; }
Transmit local packets over Vxlan
 Outer IP header inherits ECN and DF from inner header.
Transmit local packets over Vxlan Outer IP header inherits ECN and DF from inner header .