Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: net/ipv6/xfrm6_output.c net/openvswitch/flow_netlink.c net/openvswitch/vport-gre.c net/openvswitch/vport-vxlan.c net/openvswitch/vport.c net/openvswitch/vport.h The openvswitch conflicts were overlapping changes. One was the egress tunnel info fix in 'net' and the other was the vport ->send() op simplification in 'net-next'. The xfrm6_output.c conflicts was also a simplification overlapping a bug fix. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -99,6 +99,7 @@
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <linux/stat.h>
|
||||
#include <net/dst.h>
|
||||
#include <net/dst_metadata.h>
|
||||
#include <net/pkt_sched.h>
|
||||
#include <net/checksum.h>
|
||||
#include <net/xfrm.h>
|
||||
@@ -681,6 +682,32 @@ int dev_get_iflink(const struct net_device *dev)
|
||||
}
|
||||
EXPORT_SYMBOL(dev_get_iflink);
|
||||
|
||||
/**
|
||||
* dev_fill_metadata_dst - Retrieve tunnel egress information.
|
||||
* @dev: targeted interface
|
||||
* @skb: The packet.
|
||||
*
|
||||
* For better visibility of tunnel traffic OVS needs to retrieve
|
||||
* egress tunnel information for a packet. Following API allows
|
||||
* user to get this info.
|
||||
*/
|
||||
int dev_fill_metadata_dst(struct net_device *dev, struct sk_buff *skb)
|
||||
{
|
||||
struct ip_tunnel_info *info;
|
||||
|
||||
if (!dev->netdev_ops || !dev->netdev_ops->ndo_fill_metadata_dst)
|
||||
return -EINVAL;
|
||||
|
||||
info = skb_tunnel_info_unclone(skb);
|
||||
if (!info)
|
||||
return -ENOMEM;
|
||||
if (unlikely(!(info->mode & IP_TUNNEL_INFO_TX)))
|
||||
return -EINVAL;
|
||||
|
||||
return dev->netdev_ops->ndo_fill_metadata_dst(dev, skb);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(dev_fill_metadata_dst);
|
||||
|
||||
/**
|
||||
* __dev_get_by_name - find a device by its name
|
||||
* @net: the applicable net namespace
|
||||
|
Reference in New Issue
Block a user