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!"))