On Thu, Jul 7, 2016 at 7:16 PM, Jesse Gross <je...@kernel.org> wrote: > On Thu, Jul 7, 2016 at 7:13 PM, Jesse Gross <je...@kernel.org> wrote: >> On Thu, Jul 7, 2016 at 5:23 PM, Pravin B Shelar <pshe...@ovn.org> wrote: >>> diff --git a/datapath/linux/compat/include/linux/udp.h >>> b/datapath/linux/compat/include/linux/udp.h >>> new file mode 100644 >>> index 0000000..31ae022 >>> --- /dev/null >>> +++ b/datapath/linux/compat/include/linux/udp.h >>> @@ -0,0 +1,33 @@ >>> +#ifndef __LINUX_UDP_WRAPPER_H >>> +#define __LINUX_UDP_WRAPPER_H 1 >>> + >>> +#include_next <linux/udp.h> >>> +#include <linux/ipv6.h> >>> + >>> +#ifndef HAVE_NO_CHECK6_TX >>> +static inline void udp_set_no_check6_tx(struct sock *sk, bool val) >>> +{ >>> +#ifdef HAVE_SK_NO_CHECK_TX >>> + sk->sk_no_check_tx = val; >>> +#else >>> + /* since netwroking stack is not checking for zero UDP checksum >>> + * check it in OVS module. */ >>> + #define OVS_CHECK_UDP_TUNNEL_ZERO_CSUM >>> +#endif >>> +} >>> + >>> +static inline void udp_set_no_check6_rx(struct sock *sk, bool val) >>> +{ >>> +#ifdef HAVE_SK_NO_CHECK_TX >>> + sk->sk_no_check_rx = val; >>> +#endif >>> +} >>> +#endif >> >> I guess it probably makes more sense to #define >> OVS_CHECK_UDP_TUNNEL_ZERO_CSUM in udp_set_no_check6_rx() since it is >> receive side issue, though functionally it doesn't make a difference. >> >>> diff --git a/datapath/linux/compat/vxlan.c b/datapath/linux/compat/vxlan.c >>> index d45125d..3776990 100644 >>> --- a/datapath/linux/compat/vxlan.c >>> +++ b/datapath/linux/compat/vxlan.c >>> @@ -850,6 +850,13 @@ static void vxlan_rcv(struct vxlan_sock *vs, struct >>> sk_buff *skb, >>> oip6 = ipv6_hdr(skb); >>> saddr.sin6.sin6_addr = oip6->saddr; >>> saddr.sa.sa_family = AF_INET6; >>> +#ifdef OVS_CHECK_UDP_TUNNEL_ZERO_CSUM >>> + if (!udp_hdr(skb)->check && >>> + !(vs->flags & VXLAN_F_UDP_ZERO_CSUM6_RX)) { >>> + udp6_csum_zero_error(skb); >>> + goto drop; >>> + } >>> +#endif >>> #endif >> >> Do we need a version of this for Geneve as well? > > OK - I see that it actually came in later in the big resync patch.
Yes, Geneve does not support ipv6 tunnels at this point. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev