| layout | home |
|---|---|
| title | Debugging |
| nav_order | 4 |
| nav_titles | true |
| titles_max_depth | 2 |
To verify that everything is working correctly, or to debug issues, multiple tools can be used.
The ss command line
tool on Linux systems has an option to list MPTCP sockets: -M. The recommended
options are: ss -Mani.
M, MPTCP socketsa, display all socket not just "established" onesn, prevent the port number to protocol conversioni, connection info matching that from Netlink Diag interface:TCP_INFO,MPTCP_INFO, etc.
{: .note}
Note that technically, each subflow (path) is a TCP connection. To see subflows,
ss -tani can be executed as root: subflows will be marked with tcp-ulp-mptcp.
ss can be used with extra filters, e.g. to restrict by connection states, IP
addresses, ports, devices, marks, CGroup, etc.
ip mptcp can be used
to configure the MPTCP path-manager, but also to monitor path-manager events:
ip -ts mptcp monitornstat can list
kernel MIB counters. MPTCP has a bunch of them, e.g.
nstat -asz | grep MPTcpExtFor more details about these counters, see: MPTCP Doc.
When encountering an issue with MPTCP, it is often interesting to run nstat -n
before, and nstat | grep Tcp after the issue.
TCPDump and WireShark support MPTCP: they can be use to take packet traces, and recent enough versions will show MPTCP options in TCP packets if present.