@@ -60,7 +60,7 @@ int rpl_rtnl_delete_link(struct net_device *dev)
return 0;
}
-#ifndef HAVE_NDO_FILL_METADATA_DST
+#ifndef USE_UPSTREAM_TUNNEL
int ovs_dev_fill_metadata_dst(struct net_device *dev, struct sk_buff *skb)
{
struct ip_tunnel_info *info;
@@ -1227,9 +1227,11 @@ static const struct net_device_ops geneve_netdev_ops = {
.ndo_change_mtu = geneve_change_mtu,
.ndo_validate_addr = eth_validate_addr,
.ndo_set_mac_address = eth_mac_addr,
+#ifdef USE_UPSTREAM_TUNNEL
#ifdef HAVE_NDO_FILL_METADATA_DST
.ndo_fill_metadata_dst = geneve_fill_metadata_dst,
#endif
+#endif
};
static void geneve_get_drvinfo(struct net_device *dev,
@@ -249,7 +249,7 @@ do { \
#endif
-#ifndef HAVE_NDO_FILL_METADATA_DST
+#ifndef USE_UPSTREAM_TUNNEL
#define dev_fill_metadata_dst ovs_dev_fill_metadata_dst
int ovs_dev_fill_metadata_dst(struct net_device *dev, struct sk_buff *skb);
#endif
@@ -496,9 +496,11 @@ static const struct net_device_ops gre_tap_netdev_ops = {
#ifdef HAVE_NDO_GET_IFLINK
.ndo_get_iflink = ip_tunnel_get_iflink,
#endif
+#ifdef USE_UPSTREAM_TUNNEL
#ifdef HAVE_NDO_FILL_METADATA_DST
.ndo_fill_metadata_dst = gre_fill_metadata_dst,
#endif
+#endif
};
static void ipgre_tap_setup(struct net_device *dev)
@@ -510,9 +510,11 @@ static const struct net_device_ops lisp_netdev_ops = {
.ndo_change_mtu = lisp_change_mtu,
.ndo_validate_addr = eth_validate_addr,
.ndo_set_mac_address = eth_mac_addr,
+#ifdef USE_UPSTREAM_TUNNEL
#ifdef HAVE_NDO_FILL_METADATA_DST
.ndo_fill_metadata_dst = lisp_fill_metadata_dst,
#endif
+#endif
};
static void lisp_get_drvinfo(struct net_device *dev,
@@ -1845,9 +1845,11 @@ static const struct net_device_ops stt_netdev_ops = {
.ndo_change_mtu = stt_change_mtu,
.ndo_validate_addr = eth_validate_addr,
.ndo_set_mac_address = eth_mac_addr,
+#ifdef USE_UPSTREAM_TUNNEL
#ifdef HAVE_NDO_FILL_METADATA_DST
.ndo_fill_metadata_dst = stt_fill_metadata_dst,
#endif
+#endif
};
static void stt_get_drvinfo(struct net_device *dev,
@@ -1487,9 +1487,11 @@ static const struct net_device_ops vxlan_netdev_ether_ops = {
.ndo_change_mtu = vxlan_change_mtu,
.ndo_validate_addr = eth_validate_addr,
.ndo_set_mac_address = eth_mac_addr,
+#ifdef USE_UPSTREAM_TUNNEL
#ifdef HAVE_NDO_FILL_METADATA_DST
.ndo_fill_metadata_dst = ovs_vxlan_fill_metadata_dst,
#endif
+#endif
};
static const struct net_device_ops vxlan_netdev_raw_ops = {
@@ -116,7 +116,9 @@ static struct vport_ops ovs_geneve_vport_ops = {
.create = geneve_create,
.destroy = ovs_netdev_tunnel_destroy,
.get_options = geneve_get_options,
+#ifndef USE_UPSTREAM_TUNNEL
.fill_metadata_dst = geneve_fill_metadata_dst,
+#endif
.send = geneve_xmit,
};
@@ -88,7 +88,9 @@ static struct vport_ops ovs_gre_vport_ops = {
.type = OVS_VPORT_TYPE_GRE,
.create = gre_create,
.send = gre_fb_xmit,
+#ifndef USE_UPSTREAM_TUNNEL
.fill_metadata_dst = gre_fill_metadata_dst,
+#endif
.destroy = ovs_netdev_tunnel_destroy,
};
@@ -116,7 +116,9 @@ static struct vport_ops ovs_lisp_vport_ops = {
.create = lisp_create,
.destroy = ovs_netdev_tunnel_destroy,
.get_options = lisp_get_options,
+#ifndef USE_UPSTREAM_TUNNEL
.fill_metadata_dst = lisp_fill_metadata_dst,
+#endif
.send = lisp_xmit,
};
@@ -118,7 +118,9 @@ static struct vport_ops ovs_stt_vport_ops = {
.create = stt_create,
.destroy = ovs_netdev_tunnel_destroy,
.get_options = stt_get_options,
+#ifndef USE_UPSTREAM_TUNNEL
.fill_metadata_dst = stt_fill_metadata_dst,
+#endif
.send = ovs_stt_xmit,
};
@@ -153,7 +153,9 @@ static struct vport_ops ovs_vxlan_netdev_vport_ops = {
.create = vxlan_create,
.destroy = ovs_netdev_tunnel_destroy,
.get_options = vxlan_get_options,
+#ifndef USE_UPSTREAM_TUNNEL
.fill_metadata_dst = vxlan_fill_metadata_dst,
+#endif
.send = vxlan_xmit,
};
@@ -142,8 +142,9 @@ struct vport_ops {
int (*get_options)(const struct vport *, struct sk_buff *);
netdev_tx_t (*send)(struct sk_buff *skb);
+#ifndef USE_UPSTREAM_TUNNEL
int (*fill_metadata_dst)(struct net_device *dev, struct sk_buff *skb);
-
+#endif
struct module *owner;
struct list_head list;
};
upstream dev_fill_metadata_dst() uses upstream tunnel-dst which could be different from OVS defined tun-dst. Therefore use ovs_dev_fill_metadata_dst() function from compat layer when not useing upstream tunneling. Rest of changes are not really required, they are here to make it consistent. Signed-off-by: Pravin B Shelar <pshelar@ovn.org> --- datapath/linux/compat/dev-openvswitch.c | 2 +- datapath/linux/compat/geneve.c | 2 ++ datapath/linux/compat/include/linux/netdevice.h | 2 +- datapath/linux/compat/ip_gre.c | 2 ++ datapath/linux/compat/lisp.c | 2 ++ datapath/linux/compat/stt.c | 2 ++ datapath/linux/compat/vxlan.c | 2 ++ datapath/vport-geneve.c | 2 ++ datapath/vport-gre.c | 2 ++ datapath/vport-lisp.c | 2 ++ datapath/vport-stt.c | 2 ++ datapath/vport-vxlan.c | 2 ++ datapath/vport.h | 3 ++- 13 files changed, 24 insertions(+), 3 deletions(-)