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. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev