mirror of
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git
synced 2024-11-15 22:15:13 +08:00
mptcp: add id check for deleting address
This patch added the id check for deleting address in mptcp_parse_opt(). The ADDRESS argument is invalid for the non-zero id address, only needed for the id 0 address. # ip mptcp endpoint delete id 1 # ip mptcp endpoint delete id 0 10.0.1.1 Signed-off-by: Geliang Tang <geliang.tang@suse.com> Acked-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
This commit is contained in:
parent
c556f57784
commit
52370c611a
11
ip/ipmptcp.c
11
ip/ipmptcp.c
@ -24,7 +24,7 @@ static void usage(void)
|
||||
fprintf(stderr,
|
||||
"Usage: ip mptcp endpoint add ADDRESS [ dev NAME ] [ id ID ]\n"
|
||||
" [ port NR ] [ FLAG-LIST ]\n"
|
||||
" ip mptcp endpoint delete id ID\n"
|
||||
" ip mptcp endpoint delete id ID [ ADDRESS ]\n"
|
||||
" ip mptcp endpoint change id ID [ backup | nobackup ]\n"
|
||||
" ip mptcp endpoint show [ id ID ]\n"
|
||||
" ip mptcp endpoint flush\n"
|
||||
@ -103,6 +103,7 @@ static int get_flags(const char *arg, __u32 *flags)
|
||||
static int mptcp_parse_opt(int argc, char **argv, struct nlmsghdr *n, int cmd)
|
||||
{
|
||||
bool adding = cmd == MPTCP_PM_CMD_ADD_ADDR;
|
||||
bool deling = cmd == MPTCP_PM_CMD_DEL_ADDR;
|
||||
struct rtattr *attr_addr;
|
||||
bool addr_set = false;
|
||||
inet_prefix address;
|
||||
@ -156,8 +157,14 @@ static int mptcp_parse_opt(int argc, char **argv, struct nlmsghdr *n, int cmd)
|
||||
if (!addr_set && adding)
|
||||
missarg("ADDRESS");
|
||||
|
||||
if (!id_set && !adding)
|
||||
if (!id_set && deling) {
|
||||
missarg("ID");
|
||||
} else if (id_set && deling) {
|
||||
if (id && addr_set)
|
||||
invarg("invalid for non-zero id address\n", "ADDRESS");
|
||||
else if (!id && !addr_set)
|
||||
invarg("address is needed for deleting id 0 address\n", "ID");
|
||||
}
|
||||
|
||||
if (port && !(flags & MPTCP_PM_ADDR_FLAG_SIGNAL))
|
||||
invarg("flags must have signal when using port", "port");
|
||||
|
@ -31,8 +31,11 @@ ip-mptcp \- MPTCP path manager configuration
|
||||
.RB "] "
|
||||
|
||||
.ti -8
|
||||
.BR "ip mptcp endpoint del id "
|
||||
.BR "ip mptcp endpoint delete id "
|
||||
.I ID
|
||||
.RB "[ "
|
||||
.I IFADDR
|
||||
.RB "] "
|
||||
|
||||
.ti -8
|
||||
.BR "ip mptcp endpoint change id "
|
||||
@ -107,6 +110,16 @@ ip mptcp endpoint show get existing MPTCP endpoint
|
||||
ip mptcp endpoint flush flush all existing MPTCP endpoints
|
||||
.TE
|
||||
|
||||
.TP
|
||||
.IR IFADDR
|
||||
An IPv4 or IPv6 address. When used with the
|
||||
.B delete id
|
||||
operation, an
|
||||
.B IFADDR
|
||||
is only included when the
|
||||
.B ID
|
||||
is 0.
|
||||
|
||||
.TP
|
||||
.IR PORT
|
||||
When a port number is specified, incoming MPTCP subflows for already
|
||||
@ -114,6 +127,7 @@ established MPTCP sockets will be accepted on the specified port, regardless
|
||||
the original listener port accepting the first MPTCP subflow and/or
|
||||
this peer being actually on the client side.
|
||||
|
||||
.TP
|
||||
.IR ID
|
||||
is a unique numeric identifier for the given endpoint
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user