TCP data length is incorrectly calculated in the gro_tcp4_reassemble function.
PATCH 1/1 TCP data length is incorrectly calculated in the gro_tcp4_reassemble function.
Hello:
In gro_tcp4_reassemble function, tcp data len is calculated:tcp_dl = pkt->pkt_len - hdr_len;
https://github.com/DPDK/dpdk/blob/v22.07/lib/gro/gro_tcp4.c#L232
if packets < 60 bytes, pkt_len will contain padding bytes, tcp_dl is incorrectly calculated. this will result the wrong data length after gro.
lib/gro/gro_tcp4.c +1 -1
@@ -229,7 +229,7 @@ gro_tcp4_reassemble(struct rte_mbuf *pkt,* Don't process the packet whose payload length is less than or * equal to 0. */ - tcp_dl = pkt->pkt_len - hdr_len; + tcp_dl =rte_be_to_cpu_16 (ipv4_hdr->total_length) - hdr_len;if (tcp_dl <=0 )return -1 ;
Quoted 12 lines · On Wed, 28 Sep 2022 14:10:52 +0000 "jiangheng (G)" <[email protected]>…
Hello:
Ingro_tcp4_reassemblefunction, tcp data len is calculated:tcp_dl=pkt->pkt_len-hdr_len;
https://github.com/DPDK/dpdk/blob/v22.07/lib/gro/gro_tcp4.c#L232if packets < 60 bytes,
pkt_lenwill contain padding bytes,tcp_dlis incorrectly calculated. this will result the wrong data length after gro.lib/gro/gro_tcp4.c +0
-0
lib/gro/gro_tcp4.c gro_tcp4_reassemble(struct rte_mbuf *pkt, · line 234
Quoted 7 lines
lib/gro/gro_tcp4.c +1
-1@@ -229,7 +229,7 @@ gro_tcp4_reassemble(struct rte_mbuf *pkt,* Don't process the packet whose payload length is less than or * equal to 0. */ - tcp_dl = pkt->pkt_len - hdr_len; + tcp_dl =rte_be_to_cpu_16 (ipv4_hdr->total_length) - hdr_len;if (tcp_dl <=0 )return -1 ;
Yes, this patch looks correct. But it is not formatted correctly as reported by checkpatch.
1. DPDK uses tab character for indent
2. Commit messages are supposed to be wrapped and not long lines
Could you resubmit?
Hi:
This issue has been fixed:
https://github.com/DPDK/dpdk/commit/b8a55871d5af6f5b8694b1cb5eacbc629734e403
https://github.com/DPDK/dpdk/commit/72f51b097a71fb9bdea13bdd254ff620b34c852e
-----邮件原件-----
发件人: Stephen Hemminger <[email protected]>
发送时间: 2023年11月1日 2:56
收件人: jiangheng (G) <[email protected]>
抄送: [email protected]
主题: Re: [PATCH] TCP data length is incorrectly calculated in the gro_tcp4_reassemble function.
Quoted 12 lines · On Wed, 28 Sep 2022 14:10:52 +0000 "jiangheng (G)" <[email protected]>…
Hello:
Ingro_tcp4_reassemblefunction, tcp data len is calculated:tcp_dl=pkt->pkt_len-hdr_len;
https://github.com/DPDK/dpdk/blob/v22.07/lib/gro/gro_tcp4.c#L232if packets < 60 bytes,
pkt_lenwill contain padding bytes,tcp_dlis incorrectly calculated. this will result the wrong data length after gro.lib/gro/gro_tcp4.c index renamed from lib/gro/gro_tcp4.c +0
-0
7498c66141..cbba9fed5e100644
lib/gro/gro_tcp4.c gro_tcp4_reassemble(struct rte_mbuf *pkt, · line 234
Quoted 7 lines
lib/gro/gro_tcp4.c +1
-1@@ -229,7 +229,7 @@ gro_tcp4_reassemble(struct rte_mbuf *pkt,* Don't process the packet whose payload length is less than or * equal to 0. */ - tcp_dl = pkt->pkt_len - hdr_len; + tcp_dl =rte_be_to_cpu_16 (ipv4_hdr->total_length) - hdr_len;if (tcp_dl <=0 )return -1 ;
Yes, this patch looks correct. But it is not formatted correctly as reported by checkpatch.
1. DPDK uses tab character for indent
2. Commit messages are supposed to be wrapped and not long lines
Could you resubmit?