[PATCH] net/mlx5: fix lro update tcp header cksum error
jiangheng (G)
jiangheng14 at huawei.com
Wed Apr 12 13:38:35 CEST 2023
csum is the sum of three 16 bits value
it must be folded twice to ensure that the upper 16 bits are 0
---
drivers/net/mlx5/mlx5_rx.c | 1 +
1 file changed, 1 insertion(+)
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_restrict tcp,
tcp->cksum = 0;
csum += rte_raw_cksum(tcp, (tcp->data_off >> 4) * 4);
csum = ((csum & 0xffff0000) >> 16) + (csum & 0xffff);
+ csum = ((csum & 0xffff0000) >> 16) + (csum & 0xffff);
csum = (~csum) & 0xffff;
if (csum == 0)
csum = 0xffff;
--
2.27.0
More information about the dev
mailing list