From patchwork Tue Apr 19 19:06:15 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Duyck X-Patchwork-Id: 612272 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3qqDyL07j0z9t6j for ; Wed, 20 Apr 2016 05:06:34 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=mirantis.com header.i=@mirantis.com header.b=A076ckMe; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933922AbcDSTGc (ORCPT ); Tue, 19 Apr 2016 15:06:32 -0400 Received: from mail-pa0-f52.google.com ([209.85.220.52]:32985 "EHLO mail-pa0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933452AbcDSTGa (ORCPT ); Tue, 19 Apr 2016 15:06:30 -0400 Received: by mail-pa0-f52.google.com with SMTP id zm5so9360720pac.0 for ; Tue, 19 Apr 2016 12:06:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mirantis.com; s=google; h=subject:from:to:date:message-id:in-reply-to:references:user-agent :mime-version:content-transfer-encoding; bh=U6x/BBXWTrbBbOnM53NuQcQpc4rLHH6oxkakAo92LEQ=; b=A076ckMefpVMjsDOa/G7NuBXmwzQvnhcBiRwuUbdZGbaNpX8cignWymz/+bDFSH5uJ 32xQd6Cpq2pe8ENxVWRi7Oap9HNgIpNJKdRvf0ulLI8ShqsfdHKP7Upev8etiUp4lB4r ABgskBLMBPnQS4DMlSAaZO5MElu9h1W1Y9YYU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:from:to:date:message-id:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=U6x/BBXWTrbBbOnM53NuQcQpc4rLHH6oxkakAo92LEQ=; b=dy2Ujuzj8+vXHUvng9IyR11MS5DRSQGJKUNDq9ka23jUK2zzyG8Cg2AwyfXbK8tIdm gkcvjjd7MM2AOZ9ldIkZsxfJG0xkxxC0SYKFlMFIDEm/3/34Cb9wbCgQeSl3g08dFsP6 0ihLLdEWqfvUVUH+dl7zEdFlJ3Qh6JXTOpyORlPjESCWGywhuzZc5e6JTmYAOCN6tsWw ZnFORpeIV6HWTHe+3XzZomunlo4cqfp3lEqWoHAe3Uk8DQq0roSZ5goKTbZxRGuh6Rq2 pdO2pp9xW6QH5ye8rrP08OgC55Bx6K5RNu3bu0RMq6AUUSPgxCdj3jTaWwMkUPS4kqPA tVrQ== X-Gm-Message-State: AOPr4FXr3yyz+v+sYT2xwbZuvHr1efwIsRNsjbCIV6cpdJ4zoWp0/ckruZT+RyBkVn/UoGki X-Received: by 10.66.253.68 with SMTP id zy4mr6294616pac.81.1461092784983; Tue, 19 Apr 2016 12:06:24 -0700 (PDT) Received: from [192.168.1.143] (static-50-53-29-36.bvtn.or.frontiernet.net. [50.53.29.36]) by smtp.gmail.com with ESMTPSA id ut1sm25134178pac.46.2016.04.19.12.06.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2016 12:06:24 -0700 (PDT) Subject: [RFC PATCH 4/5] bnxt: Add support for segmentation of tunnels with outer checksums From: Alexander Duyck To: eugenia@mellanox.com, bruce.w.allan@intel.com, saeedm@mellanox.com, netdev@vger.kernel.org, intel-wired-lan@lists.osuosl.org, ariel.elior@qlogic.com, mchan@broadcom.com Date: Tue, 19 Apr 2016 15:06:15 -0400 Message-ID: <20160419190615.11723.53966.stgit@ahduyck-xeon-server> In-Reply-To: <20160419185949.11723.50506.stgit@ahduyck-xeon-server> References: <20160419185949.11723.50506.stgit@ahduyck-xeon-server> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch assumes that the bnxt hardware will ignore existing IPv4/v6 header fields for length and checksum as well as the length and checksum fields for outer UDP and GRE headers. I have no means of testing this as I do not have any bnx2x hardware but thought I would submit it as an RFC to see if anyone out there wants to test this and see if this does in fact enable this functionality allowing us to to segment tunneled frames that have an outer checksum. Signed-off-by: Alexander Duyck --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 4645c44e7c15..ae668476fff0 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -6194,14 +6194,19 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_GSO_UDP_TUNNEL | NETIF_F_GSO_GRE | NETIF_F_GSO_IPIP | NETIF_F_GSO_SIT | - NETIF_F_RXHASH | + NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_GSO_GRE_CSUM | + NETIF_F_GSO_PARTIAL | NETIF_F_RXHASH | NETIF_F_RXCSUM | NETIF_F_LRO | NETIF_F_GRO; dev->hw_enc_features = NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_GSO_UDP_TUNNEL | NETIF_F_GSO_GRE | - NETIF_F_GSO_IPIP | NETIF_F_GSO_SIT; + NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_GSO_GRE_CSUM | + NETIF_F_GSO_IPIP | NETIF_F_GSO_SIT | + NETIF_F_GSO_PARTIAL; + dev->gso_partial_features = NETIF_F_GSO_UDP_TUNNEL_CSUM | + NETIF_F_GSO_GRE_CSUM; dev->vlan_features = dev->hw_features | NETIF_F_HIGHDMA; dev->hw_features |= NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_STAG_RX | NETIF_F_HW_VLAN_STAG_TX;