Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751346AbaKFQWd (ORCPT ); Thu, 6 Nov 2014 11:22:33 -0500 Received: from na3sys009aog113.obsmtp.com ([74.125.149.209]:37121 "HELO na3sys009aog113.obsmtp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1751133AbaKFQWb (ORCPT ); Thu, 6 Nov 2014 11:22:31 -0500 X-Greylist: delayed 381 seconds by postgrey-1.27 at vger.kernel.org; Thu, 06 Nov 2014 11:22:31 EST MIME-Version: 1.0 In-Reply-To: References: <20141105.163825.1433973842938441546.davem@davemloft.net> <20141106010501.GA18339@gmail.com> <20141105.211558.969082848816106943.davem@davemloft.net> From: Jesse Gross Date: Thu, 6 Nov 2014 08:15:46 -0800 Message-ID: Subject: Re: [PATCH net 0/5] Implement ndo_gso_check() for vxlan nics To: Tom Herbert Cc: Sathya Perla , David Miller , Joe Stringer , Or Gerlitz , Linux Netdev List , Jeff Kirsher , Amir Vadai , "shahed.shaikh" , dept-gelinuxnicdev , LKML Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Nov 6, 2014 at 8:06 AM, Tom Herbert wrote: > On Wed, Nov 5, 2014 at 10:16 PM, Sathya Perla wrote: >>> -----Original Message----- >>> From: Tom Herbert [mailto:therbert@google.com] >>> >>> On Wed, Nov 5, 2014 at 6:15 PM, David Miller >>> wrote: >>> > From: Joe Stringer >>> > Date: Wed, 5 Nov 2014 17:06:46 -0800 >>> > >>> >> My impression was that the changes are more likely to be >>> >> hardware-specific (like the i40e changes) rather than software-specific, >>> >> like changes that might be integrated into the helper. >>> > >>> > I think there is more commonality amongst hardware capabilities, >>> > and this is why I want the helper to play itself out. >>> > >>> >> That said, I can rework for one helper. The way I see it would be the >>> >> same code as these patches, as "vxlan_gso_check(struct sk_buff *)" in >>> >> drivers/net/vxlan.c which would be called from each driver. Is that what >>> >> you had in mind? >>> > >>> > Yes. >>> >>> Note that this code is not VXLAN specific, it will also accept NVGRE >>> and GRE/UDP with keyid and TEB. I imagine all these cases should be >>> indistinguishable to the hardware so they probably just work (which >>> would be cool!). It might be better to name and locate the helper >>> function to reflect that. >> >> Tom, I'm confused as to how the value of (skb_inner_mac_header(skb) - skb_transport_header(skb)) >> would be the same for VxLAN and NVGRE encapsulated packets. Wouldn't this value be 16 for VxLAN >> and 8 for NVGRE? >> > The inner headers are reset in iptunnel_handle_offloads. This is > called in the xmit encapsulation functions (GRE, fou, VXLAN, etc.) > before adding in encapsulation headers (skb_push), so the > mac_inner_header will point to the encapsulation payload, i.e. the > encapsulated packet. This should not change after being set, although > inner network and inner transport can. The headers are only set on the > first encapsulation, so with nested tunnels the inner headers point to > the innermost encapsulated packet. Since VXLAN and NVGRE have same > size of encapsulation (8 UDP + 8 header), skb_inner_mac_header(skb) > - skb_transport_header(skb) should always be 16. Tom, NVGRE is not encapsulated in UDP and it is not 16 bytes. http://tools.ietf.org/html/draft-sridharan-virtualization-nvgre-06 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/