diff mbox

[ovs-dev,1/3] datapath: compat: keep skb encapsulation zero on older kernel.

Message ID 1470850478-108111-1-git-send-email-pshelar@ovn.org
State Accepted
Headers show

Commit Message

Pravin Shelar Aug. 10, 2016, 5:34 p.m. UTC
When using compat GSO there is no need to turn on skb
encapsulation bit since OVS does not use any tunnel GSO
functionality from the networking stack.

Signed-off-by: Pravin B Shelar <pshelar@ovn.org>
---
 datapath/linux/compat/ip_tunnels_core.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Jesse Gross Aug. 11, 2016, 8:17 p.m. UTC | #1
On Wed, Aug 10, 2016 at 10:34 AM, Pravin B Shelar <pshelar@ovn.org> wrote:
> When using compat GSO there is no need to turn on skb
> encapsulation bit since OVS does not use any tunnel GSO
> functionality from the networking stack.
>
> Signed-off-by: Pravin B Shelar <pshelar@ovn.org>

I'm not sure that this is the best place to clear the flag. It's not
entirely obvious why it's being done as it makes it seem like it's
related having inner and outer checksums.

What if we clear it in rpl_ip_local_out() instead? It seems like
that's closer to where might actually be used and is already
specialized for !USE_UPSTREAM_TUNNEL_GSO. Note that we're currently
clearing it in tnl_skb_gso_segment().
Jesse Gross Aug. 11, 2016, 8:54 p.m. UTC | #2
On Wed, Aug 10, 2016 at 10:34 AM, Pravin B Shelar <pshelar@ovn.org> wrote:
> Same as earlier patch this fixes vxlan recieve offload implementation.
>
> Signed-off-by: Pravin B Shelar <pshelar@ovn.org>

Acked-by: Jesse Gross <jesse@kernel.org>
Pravin Shelar Aug. 11, 2016, 9:04 p.m. UTC | #3
On Thu, Aug 11, 2016 at 1:17 PM, Jesse Gross <jesse@kernel.org> wrote:
> On Wed, Aug 10, 2016 at 10:34 AM, Pravin B Shelar <pshelar@ovn.org> wrote:
>> When using compat GSO there is no need to turn on skb
>> encapsulation bit since OVS does not use any tunnel GSO
>> functionality from the networking stack.
>>
>> Signed-off-by: Pravin B Shelar <pshelar@ovn.org>
>
> I'm not sure that this is the best place to clear the flag. It's not
> entirely obvious why it's being done as it makes it seem like it's
> related having inner and outer checksums.
>
> What if we clear it in rpl_ip_local_out() instead? It seems like
> that's closer to where might actually be used and is already
> specialized for !USE_UPSTREAM_TUNNEL_GSO. Note that we're currently
> clearing it in tnl_skb_gso_segment().

ok, I will update the patch.
Pravin Shelar Aug. 11, 2016, 9:05 p.m. UTC | #4
On Thu, Aug 11, 2016 at 1:54 PM, Jesse Gross <jesse@kernel.org> wrote:
> On Wed, Aug 10, 2016 at 10:34 AM, Pravin B Shelar <pshelar@ovn.org> wrote:
>> Same as earlier patch this fixes vxlan recieve offload implementation.
>>
>> Signed-off-by: Pravin B Shelar <pshelar@ovn.org>
>
> Acked-by: Jesse Gross <jesse@kernel.org>


Thanks for review, I have pushed these GRO related patches.
diff mbox

Patch

diff --git a/datapath/linux/compat/ip_tunnels_core.c b/datapath/linux/compat/ip_tunnels_core.c
index d1fe20f..bf71b02 100644
--- a/datapath/linux/compat/ip_tunnels_core.c
+++ b/datapath/linux/compat/ip_tunnels_core.c
@@ -123,7 +123,9 @@  int ovs_iptunnel_handle_offloads(struct sk_buff *skb,
 	 * on the outer header without confusing devices that implement
 	 * NETIF_F_IP_CSUM with encapsulation.
 	 */
+#ifdef USE_UPSTREAM_TUNNEL_GSO
 	if (csum_help)
+#endif
 		skb->encapsulation = 0;
 
 	if (skb->ip_summed == CHECKSUM_PARTIAL && csum_help) {