Fix NewIP ofo last_skb issues

Fix ofo last_skb cover new_skb Processing.

Signed-off-by: shiyunfei <shiyunfei3@huawei.com>
This commit is contained in:
shiyunfei
2023-04-13 14:24:01 +08:00
parent ae4180b27a
commit a31a93e790
+9 -1
View File
@@ -340,7 +340,15 @@ coalesce_done:
goto insert;
}
if (after(seq, TCP_SKB_CB(tp->ooo_last_skb)->seq)) {
if (!before(seq, TCP_SKB_CB(tp->ooo_last_skb)->seq)) {
if (!after(end_seq, TCP_SKB_CB(tp->ooo_last_skb)->end_seq)) {
/* ooo_last_skb->seq <= seq, end_seq <= ooo_last_skb->end_seq */
nip_dbg("ooo_last_skb completely overlapping new skb, drop pkt");
NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPOFOMERGE);
tcp_nip_drop(sk, skb);
skb = NULL;
goto end;
}
tcp_nip_left_overlap(skb, tp->ooo_last_skb);
if (tcp_nip_ooo_try_coalesce(sk, tp->ooo_last_skb, skb, &fragstolen)) {
nip_dbg("ofo skb coalesce ooo_last_skb done");