Re: [PATCH mptcp-next v13 4/4] selftests/bpf: Add mptcpify test

Martin KaFai Lau
2023-08-15T06:24:11Z

On 8/11/23 7:54 PM, Geliang Tang wrote:
> +static int verify_mptcpify(int server_fd)
> +{
> + socklen_t optlen;
> + char cmd[256];
> + int protocol;
> + int err = 0;
> +
> + optlen = sizeof(protocol);
> + if (!ASSERT_OK(getsockopt(server_fd, SOL_SOCKET, SO_PROTOCOL, &protocol, &optlen),
> + "getsockopt(SOL_PROTOCOL)"))
> + return -1;
> +
> + if (!ASSERT_EQ(protocol, IPPROTO_MPTCP, "protocol isn't MPTCP"))
> + err++;
> +
> + /* Output of nstat:
> + *
> + * #kernel
> + * MPTcpExtMPCapableSYNACKRX 1 0.0
> + */
> + snprintf(cmd, sizeof(cmd),
> + "ip netns exec %s nstat -asz %s | awk '%s' | grep -q '%s'",
> + NS_TEST, "MPTcpExtMPCapableSYNACKRX",
> + "NR==1 {next} {print $2}", "1");

Is the mp-capable something that the regular mptcp user want to learn from a fd
also? Does it have a simpler way like to learn this, eg. getsockopt(fd,
SOL_MPTCP, MPTCP_xxx), instead of parsing text output?

> + if (!ASSERT_OK(system(cmd), "No MPTcpExtMPCapableSYNACKRX found!"))