On Wed, Aug 17, 2016 at 10:17 PM, pravin shelar <pshe...@ovn.org> wrote: > On Wed, Aug 17, 2016 at 5:26 PM, Jesse Gross <je...@kernel.org> wrote: >> On Wed, Aug 17, 2016 at 10:23 AM, Pravin B Shelar <pshe...@ovn.org> wrote: >>> diff --git a/datapath/linux/compat/gso.c b/datapath/linux/compat/gso.c >>> index 89df07f..48a56b9 100644 >>> --- a/datapath/linux/compat/gso.c >>> +++ b/datapath/linux/compat/gso.c >>> @@ -236,12 +236,12 @@ static int output_ip(struct sk_buff *skb) >>> >>> int rpl_ip_local_out(struct net *net, struct sock *sk, struct sk_buff *skb) >>> { >>> - /* This bit set can confuse some drivers on old kernel. */ >>> - skb->encapsulation = 0; >>> - >>> if (!OVS_GSO_CB(skb)->fix_segment) >>> return output_ip(skb); >>> >>> + /* This bit set can confuse some drivers on old kernel. */ >>> + skb->encapsulation = 0; >>> + >>> if (skb_is_gso(skb)) { >>> int ret; >>> int id; >>> @@ -282,12 +282,12 @@ static int output_ipv6(struct sk_buff *skb) >>> >>> int rpl_ip6_local_out(struct net *net, struct sock *sk, struct sk_buff >>> *skb) >>> { >>> - /* This bit set can confuse some drivers on old kernel. */ >>> - skb->encapsulation = 0; >>> - >>> if (!OVS_GSO_CB(skb)->fix_segment) >>> return output_ipv6(skb); >>> >>> + /* This bit set can confuse some drivers on old kernel. */ >>> + skb->encapsulation = 0; >>> + >>> if (skb_is_gso(skb)) { >>> int ret; >> >> Should we just put this back into the GSO code path where it was >> previously? I think that most closely mirrors the original version of >> the patchset and also upstream. I still think that we have an issue >> where all checksum offloaded packets will be sent directly to the >> stack. If we were to fix this then LCO will incorrectly have >> skb->encapsulation cleared. >> > I agree cleaning the bit in compat GSO code would be in-sync with upstream. > But this is right place to clear the encapsulation bit. since after > this point the skb would not need any offloading for inner packet. LCO > packet checksum would be handled by the skb_checksum_help() call in > same rpl_ip_local_out() function.
OK, I guess you are right. Acked-by: Jesse Gross <je...@kernel.org> _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev