From patchwork Fri Feb 5 23:28:26 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Duyck X-Patchwork-Id: 579678 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 36C72140BCD for ; Sat, 6 Feb 2016 10:33:57 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=mirantis.com header.i=@mirantis.com header.b=YAqMupuG; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751489AbcBEXdl (ORCPT ); Fri, 5 Feb 2016 18:33:41 -0500 Received: from mail-pa0-f46.google.com ([209.85.220.46]:33125 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751393AbcBEX21 (ORCPT ); Fri, 5 Feb 2016 18:28:27 -0500 Received: by mail-pa0-f46.google.com with SMTP id cy9so41530065pac.0 for ; Fri, 05 Feb 2016 15:28:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mirantis.com; s=google; h=subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-type:content-transfer-encoding; bh=Sn1P4Q5bRIBWMVp7sUxL518y928ddcDTn7tKb7HtxlI=; b=YAqMupuGM+v5AWrpqqgp5EYjB8SeqzTQHtpdO1P7NCsO0brty3TMw4THd+XrIQxY/w zvDuVr3CrHIWSQFLz82ZOijE129qHK8g6deVbTGJO65PCM8oMN7yZTrmYxscpNMpcjCi 3ZzvzDC04RByYa9GaHxOXcD7ec9HrU/QXzGtk= 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:cc:date:message-id:in-reply-to :references:user-agent:mime-version:content-type :content-transfer-encoding; bh=Sn1P4Q5bRIBWMVp7sUxL518y928ddcDTn7tKb7HtxlI=; b=gGm/SWEuJSvcsPBFyGCTQMEogjKGPKPc9Ys6wkYB0D/w8QuvoT/ZIzis55GAn8AHKU +14wtwrxR9Lk8P7CVi68h00Aa29c/zZaXn0x4myAe5mHLjc86rBSA+FkL9CUnWQyLuz1 Nxg1AJo9KNRkOVRZsTeGai0g5b++l842evs56SBfwOK1X1FI2breOezzQIw74al3bpPp ObbEeGsgDsWeKsnHOVudzI7uxltAAwe9X4g6TCu92yOtRrnp1sG6CD+hgQ1eHkOCnEb8 uuGg+feMejkm1/E16ulMydhG4LxOyySlfOJEgYgEK0/V9n7a3epfrNRJ5WVT8jDZf4+4 /5kw== X-Gm-Message-State: AG10YOStiJ1QiOWk36GeAAS2tAKjhnGZ6m6f7VaXOdbuUfBN5KNrwDB+s9fgF9G16PTdiJmO X-Received: by 10.66.54.78 with SMTP id h14mr23746420pap.59.1454714907210; Fri, 05 Feb 2016 15:28:27 -0800 (PST) Received: from localhost.localdomain (static-50-53-29-36.bvtn.or.frontiernet.net. [50.53.29.36]) by smtp.gmail.com with ESMTPSA id n8sm26854262pfj.46.2016.02.05.15.28.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 05 Feb 2016 15:28:26 -0800 (PST) Subject: [net-next PATCH 10/10] net: Allow tunnels to use inner checksum offloads with outer checksums needed From: Alexander Duyck To: netdev@vger.kernel.org, alexander.duyck@gmail.com Cc: ecree@solarflare.com, tom@herbertland.com, davem@davemloft.net Date: Fri, 05 Feb 2016 15:28:26 -0800 Message-ID: <20160205232826.18529.69333.stgit@localhost.localdomain> In-Reply-To: <20160205232109.18529.99816.stgit@localhost.localdomain> References: <20160205232109.18529.99816.stgit@localhost.localdomain> 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 enables us to use inner checksum offloads if provided by hardware with outer checksums computed by software. It basically reduces encap_hdr_csum to an advisory flag for now, but based on the fact that SCTP may be getting segmentation support before long I thought we may want to keep it as it is possible we may need to support CRC32c and 1's compliment checksum in the same packet at some point in the future. Signed-off-by: Alexander Duyck Acked-by: Tom Herbert --- net/core/skbuff.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 88262c82b96a..b0cce744e2a0 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -3004,8 +3004,7 @@ struct sk_buff *skb_segment(struct sk_buff *head_skb, if (unlikely(!proto)) return ERR_PTR(-EINVAL); - csum = !head_skb->encap_hdr_csum && - !!can_checksum_protocol(features, proto); + csum = !!can_checksum_protocol(features, proto); headroom = skb_headroom(head_skb); pos = skb_headlen(head_skb);