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.

> Or is there a bug that caused you to put this here that that would miss?

nope.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to