From f45a3684fe0eec7672c8c5b0cdadb8308cca3708 Mon Sep 17 00:00:00 2001 From: Pravin B Shelar Date: Thu, 7 Jul 2016 21:52:20 -0700 Subject: [PATCH] datapath: compat: Update IPv6 in setup_udp_tunnel_sock() Update setup_udp_tunnel_sock() to handle ipv6 sockets. Signed-off-by: Pravin B Shelar Acked-by: Jesse Gross --- datapath/linux/compat/include/net/udp_tunnel.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/datapath/linux/compat/include/net/udp_tunnel.h b/datapath/linux/compat/include/net/udp_tunnel.h index d953e091b..96a13ec4c 100644 --- a/datapath/linux/compat/include/net/udp_tunnel.h +++ b/datapath/linux/compat/include/net/udp_tunnel.h @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -99,7 +100,20 @@ int rpl_udp_tunnel_xmit_skb(struct rtable *rt, #define udp_tunnel_sock_release rpl_udp_tunnel_sock_release void rpl_udp_tunnel_sock_release(struct socket *sock); -#define udp_tunnel_encap_enable(sock) udp_encap_enable() +#define udp_tunnel_encap_enable rpl_udp_tunnel_encap_enable +static inline void udp_tunnel_encap_enable(struct socket *sock) +{ +#if IS_ENABLED(CONFIG_IPV6) + if (sock->sk->sk_family == PF_INET6) +#ifdef HAVE_IPV6_STUB + ipv6_stub->udpv6_encap_enable(); +#else + udpv6_encap_enable(); +#endif + else +#endif + udp_encap_enable(); +} #if IS_ENABLED(CONFIG_IPV6) #define udp_tunnel6_xmit_skb rpl_udp_tunnel6_xmit_skb -- 2.20.1