dataoath: compat: Do not use upstream fill-meta-data function for compat tunnel
authorPravin B Shelar <pshelar@nicira.com>
Mon, 18 Jul 2016 20:53:29 +0000 (13:53 -0700)
committerPravin B Shelar <pshelar@ovn.org>
Mon, 18 Jul 2016 20:53:29 +0000 (13:53 -0700)
upstream dev_fill_metadata_dst() uses upstream tunnel-dst which could
be different from OVS defined tun-dst.  Therefore use fill-meta-data
function from compat layer.

Signed-off-by: Pravin B Shelar <pshelar@ovn.org>
Acked-by: Jesse Gross <jesse@kernel.org>
datapath/linux/compat/dev-openvswitch.c
datapath/linux/compat/include/linux/netdevice.h
datapath/linux/compat/lisp.c
datapath/linux/compat/stt.c
datapath/vport-geneve.c
datapath/vport-gre.c
datapath/vport-lisp.c
datapath/vport-stt.c
datapath/vport-vxlan.c
datapath/vport.h

index 1e87043..1a71206 100644 (file)
@@ -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;
index f066e91..00eaa21 100644 (file)
@@ -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
index bf65102..dd23059 100644 (file)
@@ -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,
index 1488afa..c899517 100644 (file)
@@ -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,
index 718b077..5821ef4 100644 (file)
@@ -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,
 };
 
index ffe0079..32d7d9f 100644 (file)
@@ -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,
 };
 
index 25f6932..9e894e8 100644 (file)
@@ -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,
 };
 
index e46bec1..1c838de 100644 (file)
@@ -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,
 };
 
index f73a10c..b830a46 100644 (file)
@@ -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,
 };
 
index c9f46f2..47995be 100644 (file)
@@ -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;
 };