[PATCH mptcp-next v14 07/12] selftests: mptcp: sockopt: add TCP_INQ test option
Geliang Tang <[email protected]> Thu, 30 Jul 2026 11:15:18 +0800
| Newsgroups | dev.linux.lists.mptcp |
|---|---|
| Message-ID | <57fb42747dd0e739b3307b084af3e9551b957997.1785380422.git.tanggeliang@kylinos.cn> |
From: Geliang Tang <[email protected]> Add -i option to enable TCP_INQ testing. This prepares for consolidating TCP_INQ tests into a single binary by adding the necessary command-line interface. Add helper functions to conditionally set TCP_INQ sockopt on accepted sockets when running in inq mode. This ensures proper testing of TCP_CM_INQ functionality by enabling the required socket option on the incoming server connection. These codes are from mptcp_inq.c. Signed-off-by: Geliang Tang <[email protected]> --- .../selftests/net/mptcp/mptcp_sockopt.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.c b/tools/testing/selftests/net/mptcp/mptcp_sockopt.c index a62f6adda8a0..1d98b8d2b4a6 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.c +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.c @@ -41,6 +41,7 @@ static int pf = AF_INET; static int proto_tx = IPPROTO_MPTCP; static int proto_rx = IPPROTO_MPTCP; +static bool inq; #ifndef MPTCP_INFO struct mptcp_info { @@ -146,6 +147,7 @@ static void die_usage(int r) { fprintf(stderr, "Usage: mptcp_sockopt [-6]\n"); fprintf(stderr, " [-t tcp|mptcp] [-r tcp|mptcp]\n"); + fprintf(stderr, " [-i]\n"); exit(r); } @@ -284,7 +286,7 @@ static void parse_opts(int argc, char **argv) { int c; - while ((c = getopt(argc, argv, "h6t:r:")) != -1) { + while ((c = getopt(argc, argv, "h6t:r:i")) != -1) { switch (c) { case 'h': die_usage(0); @@ -298,6 +300,9 @@ static void parse_opts(int argc, char **argv) case 'r': proto_rx = protostr_to_num(optarg); break; + case 'i': + inq = true; + break; default: die_usage(1); break; @@ -748,6 +753,14 @@ static void process_one_client(int fd, int pipefd) close(fd); } +static void do_setsockopt_inq(int fd) +{ + int on = 1; + + if (setsockopt(fd, IPPROTO_TCP, TCP_INQ, &on, sizeof(on))) + die_perror("setsockopt(TCP_INQ)"); +} + static int xaccept(int s) { int fd = accept(s, NULL, 0); @@ -755,6 +768,9 @@ static int xaccept(int s) if (fd < 0) die_perror("accept"); + if (inq) + do_setsockopt_inq(fd); + return fd; } -- 2.53.0