diff mbox series

[mptcp-next] selftests/mptcp: Capture pcap on both sender and receiver

Message ID 20200616163806.2994090-1-matthieu.baerts@tessares.net
State Accepted, archived
Delegated to: Matthieu Baerts
Headers show
Series [mptcp-next] selftests/mptcp: Capture pcap on both sender and receiver | expand

Commit Message

Matthieu Baerts June 16, 2020, 4:38 p.m. UTC
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,...

Allow the selftests to capture a pcap on both sides 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:

  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>
---

Notes:
    As discussed on IRC, here is the patch I made this morning.

 tools/testing/selftests/net/mptcp/mptcp_connect.sh | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

Comments

Mat Martineau June 19, 2020, 3:52 a.m. UTC | #1
On Tue, 16 Jun 2020, Matthieu Baerts wrote:

> 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,...
>
> Allow the selftests to capture a pcap on both sides 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:
>
>  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>
> ---
>
> Notes:
>    As discussed on IRC, here is the patch I made this morning.
>
> tools/testing/selftests/net/mptcp/mptcp_connect.sh | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> index 8f7145c413b9..c0589e071f20 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> @@ -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
> -- 
> 2.27.0.rc0

Nice improvement for the capture feature - looks ready to merge!

Thanks,

--
Mat Martineau
Intel
Matthieu Baerts June 19, 2020, 3:28 p.m. UTC | #2
Hi Mat, Christoph,

On 19/06/2020 05:52, Mat Martineau wrote:
> 
> On Tue, 16 Jun 2020, Matthieu Baerts wrote:
> 
>> 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,...
>>
>> Allow the selftests to capture a pcap on both sides 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:
>>
>>  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.

(...)

> 
> Nice improvement for the capture feature - looks ready to merge!

Thank you for the review and the patch!

Just added at the end of the series (before the two DO-NOT-MERGE patches)

- a4c3a82f66d9: selftests/mptcp: Capture pcap on both sender and receiver

Tests will be launched soon.

Cheers,
Matt
diff mbox series

Patch

diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
index 8f7145c413b9..c0589e071f20 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
@@ -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