From: Gang Yan <yang...@kylinos.cn>

This patch use 'inet_diag_req_v2' instead of 'token' as parameters of
send_query, and construct the req in 'get_mptcpinfo'.

This modification enhances the clarity of the code, and prepare for the
dump_subflow_info.

Co-developed-by: Geliang Tang <geli...@kernel.org>
Signed-off-by: Geliang Tang <geli...@kernel.org>
Signed-off-by: Gang Yan <yang...@kylinos.cn>
Reviewed-by: Matthieu Baerts (NGI0) <matt...@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matt...@kernel.org>
---
 tools/testing/selftests/net/mptcp/mptcp_diag.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_diag.c 
b/tools/testing/selftests/net/mptcp/mptcp_diag.c
index 
ea7cb1128044ab7f9bad50cb29856c2e290f385f..76135aba71ad24c25c7babb6875e8a6dd7636b21
 100644
--- a/tools/testing/selftests/net/mptcp/mptcp_diag.c
+++ b/tools/testing/selftests/net/mptcp/mptcp_diag.c
@@ -62,7 +62,7 @@ static void die_usage(int r)
        exit(r);
 }
 
-static void send_query(int fd, __u32 token)
+static void send_query(int fd, struct inet_diag_req_v2 *r)
 {
        struct sockaddr_nl nladdr = {
                .nl_family = AF_NETLINK
@@ -76,19 +76,13 @@ static void send_query(int fd, __u32 token)
                        .nlmsg_type = SOCK_DIAG_BY_FAMILY,
                        .nlmsg_flags = NLM_F_REQUEST
                },
-               .r = {
-                       .sdiag_family = AF_INET,
-                       /* Real proto is set via INET_DIAG_REQ_PROTOCOL */
-                       .sdiag_protocol = IPPROTO_TCP,
-                       .id.idiag_cookie[0] = token,
-               }
+               .r = *r
        };
        struct rtattr rta_proto;
        struct iovec iov[6];
        int iovlen = 1;
        __u32 proto;
 
-       req.r.idiag_ext |= (1 << (INET_DIAG_INFO - 1));
        proto = IPPROTO_MPTCP;
        rta_proto.rta_type = INET_DIAG_REQ_PROTOCOL;
        rta_proto.rta_len = RTA_LENGTH(sizeof(proto));
@@ -229,13 +223,20 @@ static void recv_nlmsg(int fd)
 
 static void get_mptcpinfo(__u32 token)
 {
+       struct inet_diag_req_v2 r = {
+               .sdiag_family           = AF_INET,
+               /* Real proto is set via INET_DIAG_REQ_PROTOCOL */
+               .sdiag_protocol         = IPPROTO_TCP,
+               .idiag_ext              = 1 << (INET_DIAG_INFO - 1),
+               .id.idiag_cookie[0]     = token,
+       };
        int fd;
 
        fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG);
        if (fd < 0)
                die_perror("Netlink socket");
 
-       send_query(fd, token);
+       send_query(fd, &r);
        recv_nlmsg(fd);
 
        close(fd);

-- 
2.48.1


Reply via email to