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 <pshe...@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(-)

diff --git a/datapath/linux/compat/dev-openvswitch.c 
b/datapath/linux/compat/dev-openvswitch.c
index 1e87043..1a71206 100644
--- a/datapath/linux/compat/dev-openvswitch.c
+++ b/datapath/linux/compat/dev-openvswitch.c
@@ -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;
diff --git a/datapath/linux/compat/geneve.c b/datapath/linux/compat/geneve.c
index f782606..1d5b291 100644
--- a/datapath/linux/compat/geneve.c
+++ b/datapath/linux/compat/geneve.c
@@ -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,
diff --git a/datapath/linux/compat/include/linux/netdevice.h 
b/datapath/linux/compat/include/linux/netdevice.h
index f066e91..00eaa21 100644
--- a/datapath/linux/compat/include/linux/netdevice.h
+++ b/datapath/linux/compat/include/linux/netdevice.h
@@ -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
diff --git a/datapath/linux/compat/ip_gre.c b/datapath/linux/compat/ip_gre.c
index d585f67..f44e350 100644
--- a/datapath/linux/compat/ip_gre.c
+++ b/datapath/linux/compat/ip_gre.c
@@ -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)
diff --git a/datapath/linux/compat/lisp.c b/datapath/linux/compat/lisp.c
index bf65102..dd23059 100644
--- a/datapath/linux/compat/lisp.c
+++ b/datapath/linux/compat/lisp.c
@@ -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,
diff --git a/datapath/linux/compat/stt.c b/datapath/linux/compat/stt.c
index 1488afa..c899517 100644
--- a/datapath/linux/compat/stt.c
+++ b/datapath/linux/compat/stt.c
@@ -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,
diff --git a/datapath/linux/compat/vxlan.c b/datapath/linux/compat/vxlan.c
index 8e0075d..e835c6d 100644
--- a/datapath/linux/compat/vxlan.c
+++ b/datapath/linux/compat/vxlan.c
@@ -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 = {
diff --git a/datapath/vport-geneve.c b/datapath/vport-geneve.c
index 718b077..5821ef4 100644
--- a/datapath/vport-geneve.c
+++ b/datapath/vport-geneve.c
@@ -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,
 };
 
diff --git a/datapath/vport-gre.c b/datapath/vport-gre.c
index ffe0079..32d7d9f 100644
--- a/datapath/vport-gre.c
+++ b/datapath/vport-gre.c
@@ -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,
 };
 
diff --git a/datapath/vport-lisp.c b/datapath/vport-lisp.c
index 25f6932..9e894e8 100644
--- a/datapath/vport-lisp.c
+++ b/datapath/vport-lisp.c
@@ -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,
 };
 
diff --git a/datapath/vport-stt.c b/datapath/vport-stt.c
index e46bec1..1c838de 100644
--- a/datapath/vport-stt.c
+++ b/datapath/vport-stt.c
@@ -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,
 };
 
diff --git a/datapath/vport-vxlan.c b/datapath/vport-vxlan.c
index f73a10c..b830a46 100644
--- a/datapath/vport-vxlan.c
+++ b/datapath/vport-vxlan.c
@@ -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,
 };
 
diff --git a/datapath/vport.h b/datapath/vport.h
index c9f46f2..47995be 100644
--- a/datapath/vport.h
+++ b/datapath/vport.h
@@ -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;
 };
-- 
1.8.3.1

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to