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 6574F42E5F; Thu, 13 Jul 2023 14:16:27 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E23E440DDB; Thu, 13 Jul 2023 14:16:26 +0200 (CEST) Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) by mails.dpdk.org (Postfix) with ESMTP id 7C64340DDA for ; Thu, 13 Jul 2023 14:16:25 +0200 (CEST) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 48E925C0180; Thu, 13 Jul 2023 08:16:22 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Thu, 13 Jul 2023 08:16:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm3; t= 1689250582; x=1689336982; bh=UVOdlKRTjU68HP4wTgsPP407E3HkUasDMIt jmfsGca4=; b=lIO4w3MEWfWU8gKf3EdE0FoQuKjlN89nfldc9p6sIcw7RLDDVsY qVmK5SLcj7KptB0ew026cSwWxknw85M4Pyc8ndHt3+rzLsTxg9gBOG534eKtGiiJ Pk0j/PL1yiHS49jyuiGK6Rw0yj4o/VHFWFZ2voR7t6kEHwK98PRCI2sJ3R1GZ0gJ XaKT45BtO+yHnjGSVSX37ArydRcCsoQ0iBa6KBjyM4um8zk2fLNGHYFZSdt8tet8 7wd0C3PIUtzK9b2WxR0BX9jmM4a6r+Js2wmZH4h9WdFM9AwdAtRoGbYQbY51oPty 1NrHY9B2NJyA2F8l0uGe8233YjxCXVBTdvQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1689250582; x=1689336982; bh=UVOdlKRTjU68HP4wTgsPP407E3HkUasDMIt jmfsGca4=; b=BRHbYXcHfD29PVU69QbftnwhbV6zaUknTpBlEG+6+y7rXL7zrwl yaYajz132KBIflNytQoOcpLr72NUyaJ/5qzjasAZRxd9q+AgfFEse+6frGCvcY8P n6Vg5zQFitGF/3pzhzaXxfpzgT4iQdz9WUymjFrXNl4/LEjUmp309jKve83H2xlo lKis+SzKZSrzApj8EG0wIa38kQ8IBjg+a3misH9bho51tq9O9WHO9CZP2tIaxEtT NJ8rm8RABNYg/wxoBo62As+AIfbVzeOR87btT3vtH5eVzMQrd6czCAeLgtxXkB+j fC4lQId7KhxdaWXMAwnzrRHXYYilo62zB8g== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrfeeggdehtdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvfevufffkfgjfhgggfgtsehtqhertddttdejnecuhfhrohhmpefvhhhomhgr shcuofhonhhjrghlohhnuceothhhohhmrghssehmohhnjhgrlhhonhdrnhgvtheqnecugg ftrfgrthhtvghrnhepgedttdeljeejgeffkeekkedtjeevtdehvedtkeeivdeuuedviedu vdelveejueejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrh homhepthhhohhmrghssehmohhnjhgrlhhonhdrnhgvth X-ME-Proxy: Feedback-ID: i47234305:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 13 Jul 2023 08:16:21 -0400 (EDT) From: Thomas Monjalon To: Slava Ovsiienko , Matan Azrad , rasland@nvidia.com Cc: "dev@dpdk.org" , "jiangheng (G)" Subject: Re: [PATCH v2] net/mlx5: fix lro update tcp header cksum error Date: Thu, 13 Jul 2023 14:16:19 +0200 Message-ID: <3300841.tIAgqjz4sF@thomas> In-Reply-To: <46433ee3531547aebf906e4144c520d1@huawei.com> References: <46433ee3531547aebf906e4144c520d1@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" 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 Any comment on this patch? 13/04/2023 02:57, jiangheng (G): > The variable csum is the sum of three 16 bits integers, the max value > is 0x2FFFD. The corner case of sum of 3 is 0x1FFFF gives the wrong > result: 0x1 + 0xFFFF =3D 0x10000, the upper 16 bits are not 0. > It must be folded again to ensure that the upper 16 bits are 0. >=20 > Fixes: e4c2a16eb1de ("net/mlx5: handle LRO packets in Rx queue") > Cc: stable@dpdk.org >=20 > Signed-off-by: jiangheng > --- > drivers/net/mlx5/mlx5_rx.c | 1 + > 1 file changed, 1 insertion(+) >=20 > diff --git a/drivers/net/mlx5/mlx5_rx.c b/drivers/net/mlx5/mlx5_rx.c > index a2be523e9e..ae537dfffa 100644 > --- a/drivers/net/mlx5/mlx5_rx.c > +++ b/drivers/net/mlx5/mlx5_rx.c > @@ -1090,6 +1090,7 @@ mlx5_lro_update_tcp_hdr(struct rte_tcp_hdr *__rte_r= estrict tcp, > tcp->cksum =3D 0; > csum +=3D rte_raw_cksum(tcp, (tcp->data_off >> 4) * 4); > csum =3D ((csum & 0xffff0000) >> 16) + (csum & 0xffff); > + csum =3D ((csum & 0xffff0000) >> 16) + (csum & 0xffff); > csum =3D (~csum) & 0xffff; > if (csum =3D=3D 0) > csum =3D 0xffff; > > Hi, Jiangheng > > > > You are right, the corner case of sum of 3 is 0x1FFFF gives the wrong r= esult. > > Could you, please, format the patch according to the rules and send v2= ? > > - add Fixes: tag with reference to appropriate commit > > - add Cc: stable@dpdk.org > > - fix typos in commit message - capitalize sentences, add trailing poin= ts, etc. > > > > With best regards, > > Slava > > > > > From: jiangheng (G) > > > Sent: =D1=81=D1=80=D0=B5=D0=B4=D0=B0, 12 =D0=B0=D0=BF=D1=80=D0=B5=D0= =BB=D1=8F 2023 =D0=B3. 14:39 > > > To: dev@dpdk.org; Matan Azrad ; Slava Ovsiienko=20 > > > > > > Subject: [PATCH] net/mlx5: fix lro update tcp header cksum error > > >=20 > > > csum is the sum of three 16 bits value it must be folded twice to=20 > > > ensure that the upper 16 bits are 0 > > > --- > > > drivers/net/mlx5/mlx5_rx.c | 1 + > > > 1 file changed, 1 insertion(+) > > >=20 > > > diff --git a/drivers/net/mlx5/mlx5_rx.c b/drivers/net/mlx5/mlx5_rx.c= =20 > > > index a2be523e9e..ae537dfffa 100644 > > > --- a/drivers/net/mlx5/mlx5_rx.c > > > +++ b/drivers/net/mlx5/mlx5_rx.c > > > @@ -1090,6 +1090,7 @@ mlx5_lro_update_tcp_hdr(struct rte_tcp_hdr=20 > > > *__rte_restrict tcp, > > > tcp->cksum =3D 0; > > > csum +=3D rte_raw_cksum(tcp, (tcp->data_off >> 4) * 4); > > > csum =3D ((csum & 0xffff0000) >> 16) + (csum & 0xffff); > > > + csum =3D ((csum & 0xffff0000) >> 16) + (csum & 0xffff); > > > csum =3D (~csum) & 0xffff; > > > if (csum =3D=3D 0) > > > csum =3D 0xffff; > > > -- > > > 2.27.0