4 Monitoring and Troubleshooting MPTCP

After enabling and configuring MPTCP, use the following checks to monitor active multipath connections and troubleshoot any issues.

Checking if MPTCP is Enabled

To check if MPTCP is enabled, run the following command:

sysctl net.mptcp.enabled

If MPTCP is enabled, the output is as follows:

net.mptcp.enabled = 1

Viewing Active MPTCP Connections

Run the following command to display all active MPTCP connections.

ss --mptcp

The output is similar to the following:

State      Recv-Q Send-Q        Local Address:Port       Peer Address:Port
ESTAB      0      0             192.0.2.10:50412         192.0.2.20:80      users:(("curl",pid=20748,fd=3)) mptcp_subflows:2

Checking Interface Configuration

List all network devices:

ip link show

The output is similar to the following:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

Review MPTCP-capable addresses:

ip addr show eth0
ip addr show wlan0

Use nmcli to check and manage connections:

nmcli device status

The output is similar to the following:

DEVICE   TYPE      STATE      CONNECTION
eth0     ethernet  connected  eth0
wlan0    wifi      connected  wlan0
lo       loopback  unmanaged  --

Tip:

You can also configure interfaces using nmtui (the text-based NetworkManager UI):

  1. Run nmtui.
  2. Select Edit a connection.
  3. Edit the required connection and ensure it's active and up.

Checking Kernel Logs

Check kernel messages for MPTCP events or errors:

dmesg | grep -i mptcp

The output is similar to the following

[13948.311111] mptcp: subflow established
[13948.311222] mptcp: additional subflow established

Or, review the system journal:

sudo journalctl -k | grep -i mptcp

The output is similar to the following:

date and time host kernel: mptcp: subflow established
date and time host kernel: mptcp: additional subflow established