-
-
Notifications
You must be signed in to change notification settings - Fork 54
Description
A recent commit from Paolo was trying to avoid dropping partial packets, see commit 1d2ce71 ("mptcp: do not drop partial packets").
Unfortunately, this had to be reverted, because it was causing issues in the selftests, see below and this packet trace:
lpN1FI-ns2-ns1-MPTCP-MPTCP-dead:beef:1::1-10003-listener.pcap.gz
Note that in the packet trace, we have retransmissions that seem to be ignored: probably an exception is missing for such retransmissions.
The idea here is to re-apply the patch, with an additional fix to avoid the mentioned issues.
Original bug report:
The CI recently reported issues with mptcp_connect.sh, probably linked to the mptcp: a few random fixes series.
I managed to reproduce the issue locally, with a packet trace: lpN1FI-ns2-ns1-MPTCP-MPTCP-dead:beef:1::1-10003-connector.pcap.gz
# 04 ns2 MPTCP -> ns1 (dead:beef:1::1:10003) MPTCP (duration 61131ms) [FAIL] client exit code 124, server 124
#
# netns ns1-lpN1FI (listener) socket stat for 10003:
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
# tcp ESTAB 0 0 [dead:beef:1::1]:10003 [dead:beef:1::2]:41046 ino:70658 sk:1 cgroup:unreachable:1 <->
# skmem:(r0,rb957700,t0,tb986112,f0,w0,o0,bl0,d0) ts sack fastopen cubic wscale:8,8 rto:201 rtt:0.058/0.008 ato:40 mss:1428 pmtu:1500 rcvmss:1428 advmss:1428 cwnd:15 ssthresh:31 bytes_sent:6572704 bytes_retrans:375848 bytes_acked:6196856 bytes_received:4869397 segs_out:5067 segs_in:4636 data_segs_out:4904 data_segs_in:3545 send 2954482759bps lastsnd:156 lastrcv:61100 lastack:156 pacing_rate 3537754832bps delivery_rate 952000000bps delivered:4626 busy:121ms rwnd_limited:7ms(5.8%) sndbuf_limited:41ms(33.9%) retrans:0/279 rcv_rtt:0.637 rcv_space:58887 rcv_ssthresh:829239 minrtt:0.005 snd_wnd:357888 rcv_wnd:210688 tcp-ulp-mptcp flags:Mec token:0000(id:0)/af4aa5c3(id:0) seq:9951141134689003280 sfseq:4810278 ssnoff:3944730462 maplen:57720
# mptcp LAST-ACK 0 0 [dead:beef:1::1]:10003 [dead:beef:1::2]:41046 timer:(keepalive,58sec,0) ino:0 sk:2 cgroup:unreachable:1 ---
# skmem:(r0,rb238499,t0,tb990208,f3984,w626800,o0,bl0,d0) subflows_max:2 remote_key token:af4aa5c3 write_seq:7898658179809219122 snd_una:7898658179808596529 rcv_nxt:9951141134689061001 bytes_retrans:1814136 bytes_sent:4382720 bytes_received:4815824 bytes_acked:3760128 subflows_total:1 last_data_sent:1422 last_data_recv:61118 last_ack_recv:174
# TcpPassiveOpens 1 0.0
# TcpInSegs 1425 0.0
# TcpOutSegs 4789 0.0
# TcpRetransSegs 279 0.0
# TcpExtDelayedACKs 1 0.0
# TcpExtTCPPureAcks 1012 0.0
# TcpExtTCPSackRecovery 7 0.0
# TcpExtTCPFastRetrans 279 0.0
# TcpExtTCPLossProbes 3 0.0
# TcpExtTCPBacklogCoalesce 79 0.0
# TcpExtTCPSackMerged 1 0.0
# TcpExtTCPSackShiftFallback 7 0.0
# TcpExtTCPRcvCoalesce 3 0.0
# TcpExtTCPFastOpenPassive 1 0.0
# TcpExtTCPAutoCorking 1 0.0
# TcpExtTCPFromZeroWindowAdv 7 0.0
# TcpExtTCPToZeroWindowAdv 11 0.0
# TcpExtTCPWantZeroWindowAdv 36 0.0
# TcpExtTCPOrigDataSent 4625 0.0
# TcpExtTCPHystartTrainDetect 1 0.0
# TcpExtTCPHystartTrainCwnd 306 0.0
# TcpExtTCPDelivered 4625 0.0
# MPTcpExtMPCapableSYNRX 1 0.0
# MPTcpExtMPCapableACKRX 1 0.0
# MPTcpExtMPTCPRetrans 300 0.0
# MPTcpExtDuplicateData 8 0.0
# MPTcpExtSndWndShared 652 0.0
# MPTcpExtRcvWndShared 6 0.0
#
# netns ns2-I6OSDA (connector) socket stat for 10003:
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
# tcp ESTAB 0 0 [dead:beef:1::2]:41046 [dead:beef:1::1]:10003 ino:70012 sk:3 cgroup:unreachable:1 <->
# skmem:(r0,rb621824,t0,tb1783296,f0,w0,o0,bl0,d286) ts sack fastopen cubic wscale:8,8 rto:201 rtt:0.098/0.051 ato:40 mss:1428 pmtu:1500 rcvmss:1400 advmss:1428 cwnd:244 bytes_sent:4869397 bytes_acked:4869398 bytes_received:6205048 segs_out:4638 segs_in:5074 data_segs_out:3545 data_segs_in:4910 send 28443428571bps lastsnd:61171 lastrcv:19 lastack:19 pacing_rate 56814389808bps delivery_rate 12725468352bps delivered:3545 busy:90ms rwnd_limited:16ms(17.8%) sndbuf_limited:1ms(1.1%) rcv_rtt:207.973 rcv_space:47983 rcv_ssthresh:378924 minrtt:0.005 rcv_ooopack:51 snd_wnd:210688 rcv_wnd:353024 tcp-ulp-mptcp flags:Mmec token:0000(id:0)/ef3d6cab(id:0) seq:7898658179808596529 sfseq:6196857 ssnoff:196930618 maplen:8192
# mptcp FIN-WAIT-2 42752 0 [dead:beef:1::2]:41046 [dead:beef:1::1]:10003 timer:(keepalive,58sec,0) ino:0 sk:4 cgroup:unreachable:1 ---
# skmem:(r42752,rb621824,t0,tb1787392,f2304,w0,o0,bl0,d1609) subflows_max:2 remote_key token:ef3d6cab write_seq:9951141134689061001 snd_una:9951141134689061001 rcv_nxt:7898658179808604721 bytes_retrans:53568 bytes_sent:4814424 bytes_received:3768320 bytes_acked:4814425 subflows_total:1 last_data_sent:61172 last_data_recv:20 last_ack_recv:20
# TcpActiveOpens 1 0.0
# TcpInSegs 1456 0.0
# TcpOutSegs 4636 0.0
# TcpExtBeyondWindow 89 0.0
# TcpExtDelayedACKs 2 0.0
# TcpExtTCPPureAcks 155 0.0
# TcpExtTCPBacklogCoalesce 1 0.0
# TcpExtTCPRcvCoalesce 35 0.0
# TcpExtTCPOFOQueue 8 0.0
# TcpExtTCPFastOpenActive 1 0.0
# TcpExtTCPFromZeroWindowAdv 2 0.0
# TcpExtTCPToZeroWindowAdv 2 0.0
# TcpExtTCPWantZeroWindowAdv 44 0.0
# TcpExtTCPOrigDataSent 3545 0.0
# TcpExtTCPACKSkippedSeq 6 0.0
# TcpExtTCPDelivered 3546 0.0
# TcpExtTCPZeroWindowDrop 2 0.0
# MPTcpExtMPCapableSYNTX 1 0.0
# MPTcpExtMPCapableSYNACKRX 1 0.0
# MPTcpExtMPTCPRetrans 3 0.0
# MPTcpExtOFOQueueTail 11 0.0
# MPTcpExtOFOQueue 12 0.0
# MPTcpExtOFOMerge 8 0.0
# MPTcpExtNoDSSInWindow 328 0.0
# MPTcpExtRcvWndShared 68 0.0
# MPTcpExtWinProbe 5 0.0
#
# tcpdump: WARNING: any: That device doesn't support promiscuous mode
# (Promiscuous mode not supported on the "any" device)tcpdump: WARNING:
# any: That device doesn't support promiscuous mode
# (Promiscuous mode not supported on the "any" device)
# tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 65535 bytes
# tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 65535 bytes
# 2882 packets captured
# 2890 packets received by filter2882 packets captured
# 2890 packets received by filter
# 0 packets dropped by kernel
# 0 packets dropped by kernel
#
# INFO: with MPTFO end
# [FAIL] Tests with MPTFO have failed
Very likely an issue with 1d2ce71 (mptcp: do not drop partial packets)?