* [PATCH iproute2-next v6] mptcp: add the fullmesh flag setting support
@ 2022-01-15 0:28 Geliang Tang
2022-01-15 0:36 ` Mat Martineau
0 siblings, 1 reply; 2+ messages in thread
From: Geliang Tang @ 2022-01-15 0:28 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
This patch added the fullmesh flag setting support.
ip mptcp endpoint change id 1 fullmesh
ip mptcp endpoint change id 1 nofullmesh
ip mptcp endpoint change id 1 backup fullmesh
ip mptcp endpoint change id 1 nobackup nofullmesh
Added the fullmesh flag check for the adding address too.
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
v6:
- update the flags check as Mat suggested.
v5:
- support to set backup and fullmesh flags together.
---
ip/ipmptcp.c | 18 +++++++++++++-----
man/man8/ip-mptcp.8 | 8 ++++++--
2 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/ip/ipmptcp.c b/ip/ipmptcp.c
index 4363e753..5c8b1627 100644
--- a/ip/ipmptcp.c
+++ b/ip/ipmptcp.c
@@ -25,7 +25,8 @@ static void usage(void)
"Usage: ip mptcp endpoint add ADDRESS [ dev NAME ] [ id ID ]\n"
" [ port NR ] [ FLAG-LIST ]\n"
" ip mptcp endpoint delete id ID [ ADDRESS ]\n"
- " ip mptcp endpoint change id ID [ backup | nobackup ]\n"
+ " ip mptcp endpoint change id ID [ backup | nobackup |\n"
+ " fullmesh | nofullmesh ]\n"
" ip mptcp endpoint show [ id ID ]\n"
" ip mptcp endpoint flush\n"
" ip mptcp limits set [ subflows NR ] [ add_addr_accepted NR ]\n"
@@ -46,7 +47,7 @@ static int genl_family = -1;
GENL_REQUEST(_req, MPTCP_BUFLEN, genl_family, 0, \
MPTCP_PM_VER, _cmd, _flags)
-#define MPTCP_PM_ADDR_FLAG_NOBACKUP 0x0
+#define MPTCP_PM_ADDR_FLAG_NONE 0x0
/* Mapping from argument to address flag mask */
static const struct {
@@ -57,7 +58,8 @@ static const struct {
{ "subflow", MPTCP_PM_ADDR_FLAG_SUBFLOW },
{ "backup", MPTCP_PM_ADDR_FLAG_BACKUP },
{ "fullmesh", MPTCP_PM_ADDR_FLAG_FULLMESH },
- { "nobackup", MPTCP_PM_ADDR_FLAG_NOBACKUP }
+ { "nobackup", MPTCP_PM_ADDR_FLAG_NONE },
+ { "nofullmesh", MPTCP_PM_ADDR_FLAG_NONE }
};
static void print_mptcp_addr_flags(unsigned int flags)
@@ -116,9 +118,15 @@ static int mptcp_parse_opt(int argc, char **argv, struct nlmsghdr *n, int cmd)
ll_init_map(&rth);
while (argc > 0) {
if (get_flags(*argv, &flags) == 0) {
- /* allow changing the 'backup' flag only */
+ if (adding &&
+ (flags & MPTCP_PM_ADDR_FLAG_SIGNAL) &&
+ (flags & MPTCP_PM_ADDR_FLAG_FULLMESH))
+ invarg("invalid flags\n", *argv);
+
+ /* allow changing the 'backup' and 'fullmesh' flags only */
if (cmd == MPTCP_PM_CMD_SET_FLAGS &&
- (flags & ~MPTCP_PM_ADDR_FLAG_BACKUP))
+ (flags & ~(MPTCP_PM_ADDR_FLAG_BACKUP |
+ MPTCP_PM_ADDR_FLAG_FULLMESH)))
invarg("invalid flags\n", *argv);
} else if (matches(*argv, "id") == 0) {
diff --git a/man/man8/ip-mptcp.8 b/man/man8/ip-mptcp.8
index 0e789225..bddbff3c 100644
--- a/man/man8/ip-mptcp.8
+++ b/man/man8/ip-mptcp.8
@@ -41,7 +41,7 @@ ip-mptcp \- MPTCP path manager configuration
.BR "ip mptcp endpoint change id "
.I ID
.RB "[ "
-.I BACKUP-OPT
+.I CHANGE-OPT
.RB "] "
.ti -8
@@ -68,10 +68,14 @@ ip-mptcp \- MPTCP path manager configuration
.RB "]"
.ti -8
-.IR BACKUP-OPT " := ["
+.IR CHANGE-OPT " := ["
.B backup
.RB "|"
.B nobackup
+.RB "|"
+.B fullmesh
+.RB "|"
+.B nofullmesh
.RB "]"
.ti -8
--
2.31.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH iproute2-next v6] mptcp: add the fullmesh flag setting support
2022-01-15 0:28 [PATCH iproute2-next v6] mptcp: add the fullmesh flag setting support Geliang Tang
@ 2022-01-15 0:36 ` Mat Martineau
0 siblings, 0 replies; 2+ messages in thread
From: Mat Martineau @ 2022-01-15 0:36 UTC (permalink / raw)
To: Geliang Tang; +Cc: mptcp
On Sat, 15 Jan 2022, Geliang Tang wrote:
> This patch added the fullmesh flag setting support.
>
> ip mptcp endpoint change id 1 fullmesh
> ip mptcp endpoint change id 1 nofullmesh
> ip mptcp endpoint change id 1 backup fullmesh
> ip mptcp endpoint change id 1 nobackup nofullmesh
>
> Added the fullmesh flag check for the adding address too.
>
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> ---
> v6:
> - update the flags check as Mat suggested.
Thanks Geliang, v6 looks good to me:
Acked-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
>
> v5:
> - support to set backup and fullmesh flags together.
> ---
> ip/ipmptcp.c | 18 +++++++++++++-----
> man/man8/ip-mptcp.8 | 8 ++++++--
> 2 files changed, 19 insertions(+), 7 deletions(-)
>
> diff --git a/ip/ipmptcp.c b/ip/ipmptcp.c
> index 4363e753..5c8b1627 100644
> --- a/ip/ipmptcp.c
> +++ b/ip/ipmptcp.c
> @@ -25,7 +25,8 @@ static void usage(void)
> "Usage: ip mptcp endpoint add ADDRESS [ dev NAME ] [ id ID ]\n"
> " [ port NR ] [ FLAG-LIST ]\n"
> " ip mptcp endpoint delete id ID [ ADDRESS ]\n"
> - " ip mptcp endpoint change id ID [ backup | nobackup ]\n"
> + " ip mptcp endpoint change id ID [ backup | nobackup |\n"
> + " fullmesh | nofullmesh ]\n"
> " ip mptcp endpoint show [ id ID ]\n"
> " ip mptcp endpoint flush\n"
> " ip mptcp limits set [ subflows NR ] [ add_addr_accepted NR ]\n"
> @@ -46,7 +47,7 @@ static int genl_family = -1;
> GENL_REQUEST(_req, MPTCP_BUFLEN, genl_family, 0, \
> MPTCP_PM_VER, _cmd, _flags)
>
> -#define MPTCP_PM_ADDR_FLAG_NOBACKUP 0x0
> +#define MPTCP_PM_ADDR_FLAG_NONE 0x0
>
> /* Mapping from argument to address flag mask */
> static const struct {
> @@ -57,7 +58,8 @@ static const struct {
> { "subflow", MPTCP_PM_ADDR_FLAG_SUBFLOW },
> { "backup", MPTCP_PM_ADDR_FLAG_BACKUP },
> { "fullmesh", MPTCP_PM_ADDR_FLAG_FULLMESH },
> - { "nobackup", MPTCP_PM_ADDR_FLAG_NOBACKUP }
> + { "nobackup", MPTCP_PM_ADDR_FLAG_NONE },
> + { "nofullmesh", MPTCP_PM_ADDR_FLAG_NONE }
> };
>
> static void print_mptcp_addr_flags(unsigned int flags)
> @@ -116,9 +118,15 @@ static int mptcp_parse_opt(int argc, char **argv, struct nlmsghdr *n, int cmd)
> ll_init_map(&rth);
> while (argc > 0) {
> if (get_flags(*argv, &flags) == 0) {
> - /* allow changing the 'backup' flag only */
> + if (adding &&
> + (flags & MPTCP_PM_ADDR_FLAG_SIGNAL) &&
> + (flags & MPTCP_PM_ADDR_FLAG_FULLMESH))
> + invarg("invalid flags\n", *argv);
> +
> + /* allow changing the 'backup' and 'fullmesh' flags only */
> if (cmd == MPTCP_PM_CMD_SET_FLAGS &&
> - (flags & ~MPTCP_PM_ADDR_FLAG_BACKUP))
> + (flags & ~(MPTCP_PM_ADDR_FLAG_BACKUP |
> + MPTCP_PM_ADDR_FLAG_FULLMESH)))
> invarg("invalid flags\n", *argv);
>
> } else if (matches(*argv, "id") == 0) {
> diff --git a/man/man8/ip-mptcp.8 b/man/man8/ip-mptcp.8
> index 0e789225..bddbff3c 100644
> --- a/man/man8/ip-mptcp.8
> +++ b/man/man8/ip-mptcp.8
> @@ -41,7 +41,7 @@ ip-mptcp \- MPTCP path manager configuration
> .BR "ip mptcp endpoint change id "
> .I ID
> .RB "[ "
> -.I BACKUP-OPT
> +.I CHANGE-OPT
> .RB "] "
>
> .ti -8
> @@ -68,10 +68,14 @@ ip-mptcp \- MPTCP path manager configuration
> .RB "]"
>
> .ti -8
> -.IR BACKUP-OPT " := ["
> +.IR CHANGE-OPT " := ["
> .B backup
> .RB "|"
> .B nobackup
> +.RB "|"
> +.B fullmesh
> +.RB "|"
> +.B nofullmesh
> .RB "]"
>
> .ti -8
> --
> 2.31.1
>
>
>
--
Mat Martineau
Intel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-01-15 0:36 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-15 0:28 [PATCH iproute2-next v6] mptcp: add the fullmesh flag setting support Geliang Tang
2022-01-15 0:36 ` Mat Martineau
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.