From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C58B6A0555 for ; Thu, 9 Jun 2022 13:37:43 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C000340689; Thu, 9 Jun 2022 13:37:43 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id CE3174281C for ; Thu, 9 Jun 2022 13:37:41 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1654774660; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YbLg0WHsH7v6htTV/Yn4V6pojMfA4KL2AQPUtHuVjxQ=; b=OuWn75ax4ocJeEt08x0RKEUQbrePrTFpWJdIYvV7j8xdsS/VNzxatDa89GKpWrSra+r3nv 1wATi0vMrq3TdMPLB9epOgstd75KIeLRwo4H1sdzgGkKJqS34yASeNRMysvh8E5dXQ01eg 4DzYV1NiPbQMD2LbX0ARnrY2ZWHl6jU= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-404-lWMJhPqrNCazlZA7fGqP_A-1; Thu, 09 Jun 2022 07:37:37 -0400 X-MC-Unique: lWMJhPqrNCazlZA7fGqP_A-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id F0BD18027EE; Thu, 9 Jun 2022 11:37:36 +0000 (UTC) Received: from rh.redhat.com (unknown [10.39.195.82]) by smtp.corp.redhat.com (Postfix) with ESMTP id A480E1730C; Thu, 9 Jun 2022 11:37:35 +0000 (UTC) From: Kevin Traynor To: Wenwu Ma Cc: Jiayu Hu , Wei Ling , Yuying Zhang , dpdk stable Subject: patch 'app/testpmd: perform SW IP checksum for GRO/GSO packets' has been queued to stable release 21.11.2 Date: Thu, 9 Jun 2022 12:36:06 +0100 Message-Id: <20220609113701.386938-19-ktraynor@redhat.com> In-Reply-To: <20220609113701.386938-1-ktraynor@redhat.com> References: <20220609113701.386938-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ktraynor@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 21.11.2 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 06/13/22. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable/commit/960622e0ddb839accd2852af3e36aadbf3034217 Thanks. Kevin --- >From 960622e0ddb839accd2852af3e36aadbf3034217 Mon Sep 17 00:00:00 2001 From: Wenwu Ma Date: Thu, 12 May 2022 01:07:56 +0000 Subject: [PATCH] app/testpmd: perform SW IP checksum for GRO/GSO packets [ upstream commit 1945c64674b2b9ad55af0ef31f8a02ae0b747400 ] The GRO/GSO library doesn't re-calculate checksums for merged/fragmented packets. If users want the packets to have correct IP checksums, they should select HW IP checksum calculation for the port which the packets are transmitted to. But if the port doesn't support HW IP checksum, users may perform a SW IP checksum. Fixes: b7091f1dcfbc ("app/testpmd: enable the heavyweight mode TCP/IPv4 GRO") Fixes: 52f38a2055ed ("app/testpmd: enable TCP/IPv4 VxLAN and GRE GSO") Signed-off-by: Wenwu Ma Reviewed-by: Jiayu Hu Tested-by: Wei Ling Acked-by: Yuying Zhang --- app/test-pmd/csumonly.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index f0c69c5d16..24265ce4de 100644 --- a/app/test-pmd/csumonly.c +++ b/app/test-pmd/csumonly.c @@ -769,4 +769,26 @@ pkt_copy_split(const struct rte_mbuf *pkt) } +#if defined(RTE_LIB_GRO) || defined(RTE_LIB_GSO) +/* + * Re-calculate IP checksum for merged/fragmented packets. + */ +static void +pkts_ip_csum_recalc(struct rte_mbuf **pkts_burst, const uint16_t nb_pkts, uint64_t tx_offloads) +{ + int i; + struct rte_ipv4_hdr *ipv4_hdr; + for (i = 0; i < nb_pkts; i++) { + if ((pkts_burst[i]->ol_flags & RTE_MBUF_F_TX_IPV4) && + (tx_offloads & RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) == 0) { + ipv4_hdr = rte_pktmbuf_mtod_offset(pkts_burst[i], + struct rte_ipv4_hdr *, + pkts_burst[i]->l2_len); + ipv4_hdr->hdr_checksum = 0; + ipv4_hdr->hdr_checksum = rte_ipv4_cksum(ipv4_hdr); + } + } +} +#endif + /* * Receive a burst of packets, and for each packet: @@ -1092,4 +1114,6 @@ tunnel_update: } } + + pkts_ip_csum_recalc(pkts_burst, nb_rx, tx_offloads); } #endif @@ -1125,4 +1149,6 @@ tunnel_update: tx_pkts_burst = gso_segments; nb_rx = nb_segments; + + pkts_ip_csum_recalc(tx_pkts_burst, nb_rx, tx_offloads); } else #endif -- 2.34.3 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2022-06-09 12:34:30.231901931 +0100 +++ 0019-app-testpmd-perform-SW-IP-checksum-for-GRO-GSO-packe.patch 2022-06-09 12:34:29.667980508 +0100 @@ -1 +1 @@ -From 1945c64674b2b9ad55af0ef31f8a02ae0b747400 Mon Sep 17 00:00:00 2001 +From 960622e0ddb839accd2852af3e36aadbf3034217 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 1945c64674b2b9ad55af0ef31f8a02ae0b747400 ] + @@ -15 +16,0 @@ -Cc: stable@dpdk.org @@ -26 +27 @@ -index cdb1920763..05763a71e8 100644 +index f0c69c5d16..24265ce4de 100644 @@ -29 +30 @@ -@@ -779,4 +779,26 @@ pkt_copy_split(const struct rte_mbuf *pkt) +@@ -769,4 +769,26 @@ pkt_copy_split(const struct rte_mbuf *pkt) @@ -56 +57 @@ -@@ -1103,4 +1125,6 @@ tunnel_update: +@@ -1092,4 +1114,6 @@ tunnel_update: @@ -63 +64 @@ -@@ -1136,4 +1160,6 @@ tunnel_update: +@@ -1125,4 +1149,6 @@ tunnel_update: