Commit 950c3321 authored by Geliang Tang's avatar Geliang Tang Committed by David S. Miller

selftests: mptcp: add token for dump_addr

The command dump_addr() of pm_nl_ctl can be used like this in in-kernel PM:

        pm_nl_ctl dump

This patch adds token argument for it to support userspace PM:

        pm_nl_ctl dump token $token

If 'token $token' is passed to dump_addr(), copy it into the kernel
netlink.
Signed-off-by: default avatarGeliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: default avatarMatthieu Baerts (NGI0) <matttbe@kernel.org>
Reviewed-by: default avatarMat Martineau <martineau@kernel.org>
Signed-off-by: default avatarMatthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9963b77e
...@@ -1127,8 +1127,16 @@ int dump_addrs(int fd, int pm_family, int argc, char *argv[]) ...@@ -1127,8 +1127,16 @@ int dump_addrs(int fd, int pm_family, int argc, char *argv[])
1024]; 1024];
pid_t pid = getpid(); pid_t pid = getpid();
struct nlmsghdr *nh; struct nlmsghdr *nh;
u_int32_t token = 0;
struct rtattr *rta;
int off = 0; int off = 0;
if (argc != 2 && argc != 4)
syntax(argv);
if (argc == 4 && !strcmp(argv[2], "token"))
token = strtoul(argv[3], NULL, 10);
memset(data, 0, sizeof(data)); memset(data, 0, sizeof(data));
nh = (void *)data; nh = (void *)data;
off = init_genl_req(data, pm_family, MPTCP_PM_CMD_GET_ADDR, off = init_genl_req(data, pm_family, MPTCP_PM_CMD_GET_ADDR,
...@@ -1138,6 +1146,15 @@ int dump_addrs(int fd, int pm_family, int argc, char *argv[]) ...@@ -1138,6 +1146,15 @@ int dump_addrs(int fd, int pm_family, int argc, char *argv[])
nh->nlmsg_pid = pid; nh->nlmsg_pid = pid;
nh->nlmsg_len = off; nh->nlmsg_len = off;
/* token */
if (token) {
rta = (void *)(data + off);
rta->rta_type = MPTCP_PM_ATTR_TOKEN;
rta->rta_len = RTA_LENGTH(4);
memcpy(RTA_DATA(rta), &token, 4);
off += NLMSG_ALIGN(rta->rta_len);
}
print_addrs(nh, pm_family, do_nl_req(fd, nh, off, sizeof(data))); print_addrs(nh, pm_family, do_nl_req(fd, nh, off, sizeof(data)));
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment