selftests: mptcp: capture pcap on both sides
authorMatthieu Baerts <matthieu.baerts@tessares.net>
Mon, 6 Jul 2020 12:44:08 +0000 (14:44 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 Jul 2020 19:47:29 +0000 (12:47 -0700)
When investigating performance issues that involve latency / loss /
reordering it is useful to have the pcap from the sender-side as it
allows to easier infer the state of the sender's congestion-control,
loss-recovery, etc.

Allow the selftests to capture a pcap on both sender and receiver so
that this information is not lost when reproducing.

This patch also improves the file names. Instead of:

  ns4-5ee79a56-X4O6gS-ns3-5ee79a56-X4O6gS-MPTCP-MPTCP-10.0.3.1.pcap

We now have something like for the same test:

  5ee79a56-X4O6gS-ns3-ns4-MPTCP-MPTCP-10.0.3.1-10030-connector.pcap
  5ee79a56-X4O6gS-ns3-ns4-MPTCP-MPTCP-10.0.3.1-10030-listener.pcap

It was a connection from ns3 to ns4, better to start with ns3 then. The
port is also added, easier to find the trace we want.

Co-developed-by: Christoph Paasch <cpaasch@apple.com>
Signed-off-by: Christoph Paasch <cpaasch@apple.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/mptcp/mptcp_connect.sh

index 8f7145c..c0589e0 100755 (executable)
@@ -395,10 +395,14 @@ do_transfer()
                        capuser="-Z $SUDO_USER"
                fi
 
-               local capfile="${listener_ns}-${connector_ns}-${cl_proto}-${srv_proto}-${connect_addr}.pcap"
+               local capfile="${rndh}-${connector_ns:0:3}-${listener_ns:0:3}-${cl_proto}-${srv_proto}-${connect_addr}-${port}"
+               local capopt="-i any -s 65535 -B 32768 ${capuser}"
 
-               ip netns exec ${listener_ns} tcpdump -i any -s 65535 -B 32768 $capuser -w $capfile > "$capout" 2>&1 &
-               local cappid=$!
+               ip netns exec ${listener_ns}  tcpdump ${capopt} -w "${capfile}-listener.pcap"  >> "${capout}" 2>&1 &
+               local cappid_listener=$!
+
+               ip netns exec ${connector_ns} tcpdump ${capopt} -w "${capfile}-connector.pcap" >> "${capout}" 2>&1 &
+               local cappid_connector=$!
 
                sleep 1
        fi
@@ -423,7 +427,8 @@ do_transfer()
 
        if $capture; then
                sleep 1
-               kill $cappid
+               kill ${cappid_listener}
+               kill ${cappid_connector}
        fi
 
        local duration