From patchwork Mon Jan 18 20:35:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Boyer X-Patchwork-Id: 86830 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1AEF3A0A03; Mon, 18 Jan 2021 21:36:47 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 936C9140EAB; Mon, 18 Jan 2021 21:35:54 +0100 (CET) Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) by mails.dpdk.org (Postfix) with ESMTP id 1933E140E9D for ; Mon, 18 Jan 2021 21:35:52 +0100 (CET) Received: by mail-pl1-f180.google.com with SMTP id q4so9242516plr.7 for ; Mon, 18 Jan 2021 12:35:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pensando.io; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=IeQwsR1SALNR5wPJJmZgHgCcB84YinyMJIeCE8CLDkw=; b=gPAhuQXvyAphp9xzmkXuofl6C13rRb1FdLq/mI4V8IHXfB+5Ljm8+/5laIKHjE1Q4t uzCan69wypZ045C+Lg/HYMUyLB3ukcFiz6h6C6haEyRiBjGeop3ajFWjQpKb7i+bz+7a Eo1xRD1gjFdciTCxfog7DcZOFX60heBp1BxZ6ffWiGkB5kxb0jzzVb/sBRpa88RQWFFa ty1rNObUF3lpngS4BIlXsba4WMz+hW0ZTd0VDaFMug2KuY708ZuBSCVsH5xgVxV4Ju91 U0aTi4/ERh6PhLTbWwMOWr7HqbBHdH1dlO3q4G0Mi+WQbHVBhM9hCneW3oWcJEbpUvcu 8AZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=IeQwsR1SALNR5wPJJmZgHgCcB84YinyMJIeCE8CLDkw=; b=frc13BDTd69X652y9R3V9bZEaKf1bVRmx8mtdZRawgEFhdp68n7qr3b/6lXP7yOEAD JXQzVSvhp6EDxpI74fmEG94WoeVRb/yCsUqgvKll7EhInGEM2Ly4BFMMgkUotKQ+J2RA 6DphmHUyffHwsj5ugwhDn+MkTYlyhR6/VuQBLiYafLexKElekUhntnH/5lfwjk8YTQ1+ IVTB7DFg7ZUIQQA+Mx83S1XNg2R6AUNU9JRL5X407AIjMbhE7hcfaUIpghdXmYIJEQXk PXjalu+suiW6m84kfM4w9pqpyiHoYFseArPkPPEr4cRDaQiOadPJDv1l9Av1jBjEuMv1 /3cQ== X-Gm-Message-State: AOAM531l+P5PcEx4a3mZY9I+8cQ+wYURyAl+1dxdM5BpfXeH+e8yuo1w FBe0EAZadsxo/He/D1uT05+fjGeSxqQN4g== X-Google-Smtp-Source: ABdhPJwu+WRMwqUMnFxlIFxQ4gWK3O+aknwbf6ySZ/nrulJIOXJwpyUX5/jnRMcCRjZ/6NflUXli6A== X-Received: by 2002:a17:902:8a88:b029:dc:f3:6db2 with SMTP id p8-20020a1709028a88b02900dc00f36db2mr1222896plo.2.1611002151152; Mon, 18 Jan 2021 12:35:51 -0800 (PST) Received: from driver-dev1.pensando.io ([12.226.153.42]) by smtp.gmail.com with ESMTPSA id g201sm795160pfb.81.2021.01.18.12.35.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Jan 2021 12:35:50 -0800 (PST) From: Andrew Boyer To: dev@dpdk.org Cc: Alfredo Cardigliano , Andrew Boyer , stable@dpdk.org Date: Mon, 18 Jan 2021 12:35:05 -0800 Message-Id: <20210118203508.1332-11-aboyer@pensando.io> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210118203508.1332-1-aboyer@pensando.io> References: <20210118203508.1332-1-aboyer@pensando.io> Subject: [dpdk-dev] [PATCH 10/13] net/ionic: fix to allow separate L3 and L4 csum offload X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DTS, at least, expects to be able to specify L4 checksum offload without L3 csum offload. Split up the flag checks. Fixes: a27d901331da ("net/ionic: add Rx and Tx handling") Cc: stable@dpdk.org Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_rxtx.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/net/ionic/ionic_rxtx.c b/drivers/net/ionic/ionic_rxtx.c index c3a44faa21..d0f8954753 100644 --- a/drivers/net/ionic/ionic_rxtx.c +++ b/drivers/net/ionic/ionic_rxtx.c @@ -460,18 +460,22 @@ ionic_tx(struct ionic_queue *q, struct rte_mbuf *txm, uint8_t flags = 0; if ((ol_flags & PKT_TX_IP_CKSUM) && - (offloads & DEV_TX_OFFLOAD_IPV4_CKSUM)) { + (offloads & DEV_TX_OFFLOAD_IPV4_CKSUM)) { opcode = IONIC_TXQ_DESC_OPCODE_CSUM_HW; flags |= IONIC_TXQ_DESC_FLAG_CSUM_L3; - if (((ol_flags & PKT_TX_TCP_CKSUM) && - (offloads & DEV_TX_OFFLOAD_TCP_CKSUM)) || - ((ol_flags & PKT_TX_UDP_CKSUM) && - (offloads & DEV_TX_OFFLOAD_UDP_CKSUM))) - flags |= IONIC_TXQ_DESC_FLAG_CSUM_L4; - } else { - stats->no_csum++; } + if (((ol_flags & PKT_TX_TCP_CKSUM) && + (offloads & DEV_TX_OFFLOAD_TCP_CKSUM)) || + ((ol_flags & PKT_TX_UDP_CKSUM) && + (offloads & DEV_TX_OFFLOAD_UDP_CKSUM))) { + opcode = IONIC_TXQ_DESC_OPCODE_CSUM_HW; + flags |= IONIC_TXQ_DESC_FLAG_CSUM_L4; + } + + if (opcode == IONIC_TXQ_DESC_OPCODE_CSUM_NONE) + stats->no_csum++; + has_vlan = (ol_flags & PKT_TX_VLAN_PKT); encap = ((ol_flags & PKT_TX_OUTER_IP_CKSUM) || (ol_flags & PKT_TX_OUTER_UDP_CKSUM)) &&