ip_tunnel_get_iflink() depends on ip_tunnel structure. But OVS compat layer defines its own ip_tunnel structure which is not compatible with all upstream kernel versions. Therefore we can no use such function.
Signed-off-by: Pravin B Shelar <[email protected]> --- datapath/linux/compat/include/net/ip_tunnels.h | 2 ++ datapath/linux/compat/ip_tunnel.c | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/datapath/linux/compat/include/net/ip_tunnels.h b/datapath/linux/compat/include/net/ip_tunnels.h index 47dce78..185d7e9 100644 --- a/datapath/linux/compat/include/net/ip_tunnels.h +++ b/datapath/linux/compat/include/net/ip_tunnels.h @@ -302,5 +302,7 @@ void rpl_ip_tunnel_delete_net(struct ip_tunnel_net *itn, struct rtnl_link_ops *o #define ip_tunnel_setup rpl_ip_tunnel_setup void rpl_ip_tunnel_setup(struct net_device *dev, int net_id); +#define ip_tunnel_get_iflink rpl_ip_tunnel_get_iflink +int rpl_ip_tunnel_get_iflink(const struct net_device *dev); #endif /* HAVE_METADATA_DST */ #endif /* __NET_IP_TUNNELS_H */ diff --git a/datapath/linux/compat/ip_tunnel.c b/datapath/linux/compat/ip_tunnel.c index f43e2d4..db0cb8e 100644 --- a/datapath/linux/compat/ip_tunnel.c +++ b/datapath/linux/compat/ip_tunnel.c @@ -282,4 +282,12 @@ void rpl_ip_tunnel_setup(struct net_device *dev, int net_id) tunnel->ip_tnl_net_id = net_id; } + +int rpl_ip_tunnel_get_iflink(const struct net_device *dev) +{ + struct ip_tunnel *tunnel = netdev_priv(dev); + + return tunnel->parms.link; +} + #endif -- 1.8.3.1 _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
