diff --git a/gtests/net/mptcp/mp_prio/mp_prio_server_v4.pkt b/gtests/net/mptcp/mp_prio/mp_prio_server_v4.pkt new file mode 100644 index 00000000..eab3c374 --- /dev/null +++ b/gtests/net/mptcp/mp_prio/mp_prio_server_v4.pkt @@ -0,0 +1,59 @@ +--tolerance_usecs=100000 +`../common/defaults.sh` + ++0 `../common/server.sh` + ++0.0 socket(..., SOCK_STREAM, IPPROTO_MPTCP) = 3 ++0.0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 ++0.0 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR) ++0.0 fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0 + ++0 bind(3, ..., ...) = 0 ++0 listen(3, 1) = 0 + ++0.0 < addr[caddr0] > addr[saddr0] S 0:0(0) win 65535 ++0.0 > S. 0:0(0) ack 1 ++0.0 < . 1:1(0) ack 1 win 256 ++0 accept(3, ..., ...) = 4 + +// add_addr ++0.0 > . 1:1(0) ack 1 +// TODO: send echo bit +// +0.0 > . 1:1(0) ack 1 + ++0.2 < P. 1:3(2) ack 1 win 256 +// MP_CAPABLE carrying data are acked with 64-bit, safer not knowing if the +// sender will use a DSN on 64-bit or 32-bit. Later we can use the lower 32 bits ++0.0 > . 1:1(0) ack 3 ++0.0 read(4, ..., 2) = 2 + +// more inbound data and MP_PRIO to flip active -> backup ++0.0 < P. 3:5(2) ack 1 win 256 ++0.0 > . 1:1(0) ack 5 ++0.0 read(4, ..., 2) = 2 + +// create subflow ++0.0 < addr[caddr1] > addr[saddr1] S 0:0(0) win 65535 ++0.0 > S. 0:0(0) ack 1 ++0.0 < . 1:1(0) ack 1 win 256 ++0.0 > . 1:1(0) ack 1 + +// more inbound data and MP_PRIO to flip backup -> active ++0.0 < P. 1:11(10) ack 1 win 256 ++0.0 > . 1:1(0) ack 11 ++0.0 read(4, ..., 10) = 10 + +// write() should now go through joined subflow ++0.0 write(4, ..., 100) = 100 ++0.0 > addr[saddr1] > addr[caddr1] P. 1:101(100) ack 11 +// silently refuse v0 mp_prio ++0.0 < addr[caddr1] > addr[saddr1] . 11:11(0) ack 101 win 256 ++0.0 write(4, ..., 100) = 100 ++0.0 > addr[saddr1] > addr[caddr1] P. 101:201(100) ack 11 ++0.0 < addr[caddr1] > addr[saddr1] . 11:11(0) ack 201 win 256 + +// client sends DATA-FIN, subflows ack it ++0.0 < addr[caddr1] > addr[saddr1] . 11:11(0) ack 201 win 256 ++0.0 > addr[saddr0] > addr[caddr0] . 1:1(0) ack 5 ++0.0 > addr[saddr1] > addr[caddr1] . 201:201(0) ack 11 + diff --git a/mp_prio/mp_prio_server_v4.pkt b/mp_prio/mp_prio_server_v4.pkt new file mode 100644 index 00000000..eab3c374 --- /dev/null +++ b/mp_prio/mp_prio_server_v4.pkt @@ -0,0 +1,59 @@ +--tolerance_usecs=100000 +`../common/defaults.sh` + ++0 `../common/server.sh` + ++0.0 socket(..., SOCK_STREAM, IPPROTO_MPTCP) = 3 ++0.0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 ++0.0 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR) ++0.0 fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0 + ++0 bind(3, ..., ...) = 0 ++0 listen(3, 1) = 0 + ++0.0 < addr[caddr0] > addr[saddr0] S 0:0(0) win 65535 ++0.0 > S. 0:0(0) ack 1 ++0.0 < . 1:1(0) ack 1 win 256 ++0 accept(3, ..., ...) = 4 + +// add_addr ++0.0 > . 1:1(0) ack 1 +// TODO: send echo bit +// +0.0 > . 1:1(0) ack 1 + ++0.2 < P. 1:3(2) ack 1 win 256 +// MP_CAPABLE carrying data are acked with 64-bit, safer not knowing if the +// sender will use a DSN on 64-bit or 32-bit. Later we can use the lower 32 bits ++0.0 > . 1:1(0) ack 3 ++0.0 read(4, ..., 2) = 2 + +// more inbound data and MP_PRIO to flip active -> backup ++0.0 < P. 3:5(2) ack 1 win 256 ++0.0 > . 1:1(0) ack 5 ++0.0 read(4, ..., 2) = 2 + +// create subflow ++0.0 < addr[caddr1] > addr[saddr1] S 0:0(0) win 65535 ++0.0 > S. 0:0(0) ack 1 ++0.0 < . 1:1(0) ack 1 win 256 ++0.0 > . 1:1(0) ack 1 + +// more inbound data and MP_PRIO to flip backup -> active ++0.0 < P. 1:11(10) ack 1 win 256 ++0.0 > . 1:1(0) ack 11 ++0.0 read(4, ..., 10) = 10 + +// write() should now go through joined subflow ++0.0 write(4, ..., 100) = 100 ++0.0 > addr[saddr1] > addr[caddr1] P. 1:101(100) ack 11 +// silently refuse v0 mp_prio ++0.0 < addr[caddr1] > addr[saddr1] . 11:11(0) ack 101 win 256 ++0.0 write(4, ..., 100) = 100 ++0.0 > addr[saddr1] > addr[caddr1] P. 101:201(100) ack 11 ++0.0 < addr[caddr1] > addr[saddr1] . 11:11(0) ack 201 win 256 + +// client sends DATA-FIN, subflows ack it ++0.0 < addr[caddr1] > addr[saddr1] . 11:11(0) ack 201 win 256 ++0.0 > addr[saddr0] > addr[caddr0] . 1:1(0) ack 5 ++0.0 > addr[saddr1] > addr[caddr1] . 201:201(0) ack 11 +