From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Dumazet Subject: Re: [PATCH net-next] net: ipv6/gre: Add GRO support Date: Mon, 2 Apr 2018 08:19:55 -0700 Message-ID: References: <1522588651-28800-1-git-send-email-tariqt@mellanox.com> <8dd7220e-e536-f89b-e5d4-27e57f319e0f@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: Tariq Toukan , "David S. Miller" , Linux Netdev List , Eran Ben Elisha , Eric Dumazet To: Eran Ben Elisha , Eric Dumazet Return-path: Received: from mail-pl0-f67.google.com ([209.85.160.67]:38140 "EHLO mail-pl0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751435AbeDBPT5 (ORCPT ); Mon, 2 Apr 2018 11:19:57 -0400 Received: by mail-pl0-f67.google.com with SMTP id m22-v6so4513154pls.5 for ; Mon, 02 Apr 2018 08:19:57 -0700 (PDT) In-Reply-To: Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: On 04/02/2018 08:00 AM, Eran Ben Elisha wrote: >>>> Seems good, but why isn't this handled directly in GRO native layer ? >>> ip6_tunnel and ip6_gre do not share initialization flow functions (unlike ipv4). >>> Changing the ipv6 init infrastructure should not be part of this >>> patch. we prefer to keep this one minimal, simple and safe. >> >> >> >> Looking at gre_gro_receive() and gre_gro_complete() I could not see why they >> could not be copied/pasted to IPv6. > > These functions to handle GRO over GRE are already assigned in > gre_offload_init() (in net/ipv4/gre_offload.c under CONFIG_IPV6). > However without initializing the gro_cells, the receive path will not > go via napi_gro_receive path, but directly to netif_rx. > So AFAIU, only gcells->cells was missing for gro_cells_receive to > really go via GRO flow. > >> >> Maybe give more details on the changelog, it is really not obvious. > Hopefully the above filled this request. >> Not really :/ gro_cells_receive() is not really useful with native GRO, since packet is already a GRO packet by the time it reaches ip_tunnel_rcv() or __ip6_tnl_rcv() Sure, it might be usefull if native GRO (happening on eth0 if you prefer) did not handle a particular encapsulation. gro_cell was a work around before we extended GRO to be able to decap some tunnel headers. It seems we have to extend this to also support GRE6.