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: Geliang Tang <tanggeliang@kylinos.cn> Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Reviewed-by: Mat Martineau <martineau@kernel.org> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9963b77e25
commit
950c332125
@ -1127,8 +1127,16 @@ int dump_addrs(int fd, int pm_family, int argc, char *argv[])
|
||||
1024];
|
||||
pid_t pid = getpid();
|
||||
struct nlmsghdr *nh;
|
||||
u_int32_t token = 0;
|
||||
struct rtattr *rta;
|
||||
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));
|
||||
nh = (void *)data;
|
||||
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[])
|
||||
nh->nlmsg_pid = pid;
|
||||
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)));
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user