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

Reply via email to