From 059e03530ea1cf0c2b97e7063e68a66b70fa64b9 Mon Sep 17 00:00:00 2001 From: Davide Caratti Date: Thu, 30 Jan 2020 18:05:21 +0100 Subject: [PATCH] test server for DSS option This exploits a "feature" in current MPTCP code, i.e. client will ack packets at TCP level but DACK will be increased only after data are read. This increased DACK will not reach the MPTCP endpoint unless "something" (e.g. a write() or a close()) is done at MPTCP socket level. Related-to: issue #3 Signed-off-by: Davide Caratti --- .../mptcp/dss/dss_ssn_specified_server.pkt | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 gtests/net/mptcp/dss/dss_ssn_specified_server.pkt diff --git a/gtests/net/mptcp/dss/dss_ssn_specified_server.pkt b/gtests/net/mptcp/dss/dss_ssn_specified_server.pkt new file mode 100644 index 00000000..4eadad5a --- /dev/null +++ b/gtests/net/mptcp/dss/dss_ssn_specified_server.pkt @@ -0,0 +1,30 @@ +// connection initiated by packetdrill +--tolerance_usecs=100000 +`../common/defaults.sh` + + ++0 socket(..., SOCK_STREAM, IPPROTO_MPTCP) = 3 ++0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 + ++0 bind(3, ..., ...) = 0 ++0 listen(3, 1) = 0 ++0 < S 0:0(0) win 32792 ++0 > S. 0:0(0) ack 1 ++0.01 < . 1:1(0) ack 1 win 257 ++0 accept(3, ..., ...) = 4 + +// send 2 data segments and ack them ++0 write(4, ..., 1000) = 1000 ++0 > P. 1:1001(1000) ack 1 ++0.1 < . 1:1(0) ack 1001 win 225 + ++0 write(4, ..., 1000) = 1000 ++0 > P. 1001:2001(1000) ack 1 ++0.1 < . 1:1(0) ack 2001 win 225 + +// read and ack 1 data segment ++0 < P. 1:11(10) ack 2001 win 225 ++0 > . 2001:2001(0) ack 11 +0.3 read(4, ..., 10) = 10 ++0 close(4) = 0 ++0 > F. 2001:2001(0) ack 11