From: Mat Martineau <mathew.j.martineau@linux.intel.com>
To: Geliang Tang <geliang.tang@suse.com>
Cc: mptcp@lists.linux.dev, Paolo Abeni <pabeni@redhat.com>
Subject: Re: [PATCH iproute2-next v2 2/3] mptcp: add fullmesh support for setting flags
Date: Tue, 22 Feb 2022 17:23:39 -0800 (PST) [thread overview]
Message-ID: <71fbda79-bbab-c45-6f99-ea7b984676cb@linux.intel.com> (raw)
In-Reply-To: <5747de1784ce159db98fd81fa825c451fa0c5dcf.1645422873.git.geliang.tang@suse.com>
On Mon, 21 Feb 2022, Geliang Tang wrote:
> A pair of new flags, fullmesh and nofullmesh, had been added in the
> setting flags of MPTCP PM netlink in kernel space recently by the commit
> 73c762c1f07d ("mptcp: set fullmesh flag in pm_netlink").
>
> This patch added the corresponding logic to pass these two flags to the
> netlink in user space.
>
> These new flags can be used like this:
>
> 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
>
I suggest you add an example here in the commit message that includes 'ip
mptcp endpoint show' and mention that it already supports showing the
'fullmesh' flag. I think that's what Stephan was asking about on netdev.
Other than that, the series looks good. Thanks.
Mat
> Acked-by: Paolo Abeni <pabeni@redhat.com>
> Acked-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> ---
> ip/ipmptcp.c | 18 +++++++++++-------
> man/man8/ip-mptcp.8 | 8 ++++++--
> 2 files changed, 17 insertions(+), 9 deletions(-)
>
> diff --git a/ip/ipmptcp.c b/ip/ipmptcp.c
> index 0b744720..247d1caf 100644
> --- a/ip/ipmptcp.c
> +++ b/ip/ipmptcp.c
> @@ -25,14 +25,15 @@ 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 CHANGE-OPT\n"
> " ip mptcp endpoint show [ id ID ]\n"
> " ip mptcp endpoint flush\n"
> " ip mptcp limits set [ subflows NR ] [ add_addr_accepted NR ]\n"
> " ip mptcp limits show\n"
> " ip mptcp monitor\n"
> "FLAG-LIST := [ FLAG-LIST ] FLAG\n"
> - "FLAG := [ signal | subflow | backup | fullmesh ]\n");
> + "FLAG := [ signal | subflow | backup | fullmesh ]\n"
> + "CHANGE-OPT := [ backup | nobackup | fullmesh | nofullmesh ]\n");
>
> exit(-1);
> }
> @@ -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)
> @@ -102,6 +104,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 setting = cmd == MPTCP_PM_CMD_SET_FLAGS;
> bool adding = cmd == MPTCP_PM_CMD_ADD_ADDR;
> bool deling = cmd == MPTCP_PM_CMD_DEL_ADDR;
> struct rtattr *attr_addr;
> @@ -121,9 +124,10 @@ static int mptcp_parse_opt(int argc, char **argv, struct nlmsghdr *n, int cmd)
> (flags & MPTCP_PM_ADDR_FLAG_FULLMESH))
> invarg("invalid flags\n", *argv);
>
> - /* allow changing the 'backup' flag only */
> - if (cmd == MPTCP_PM_CMD_SET_FLAGS &&
> - (flags & ~MPTCP_PM_ADDR_FLAG_BACKUP))
> + /* allow changing the 'backup' and 'fullmesh' flags only */
> + if (setting &&
> + (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.34.1
>
>
--
Mat Martineau
Intel
next prev parent reply other threads:[~2022-02-23 1:23 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-21 6:12 [PATCH iproute2-next v2 0/3] mptcp: add the fullmesh flag setting support Geliang Tang
2022-02-21 6:12 ` [PATCH iproute2-next v2 1/3] mptcp: add fullmesh check for adding address Geliang Tang
2022-02-21 6:12 ` [PATCH iproute2-next v2 2/3] mptcp: add fullmesh support for setting flags Geliang Tang
2022-02-23 1:23 ` Mat Martineau [this message]
2022-02-21 6:12 ` [PATCH iproute2-next v2 3/3] mptcp: add port " Geliang Tang
-- strict thread matches above, loose matches on Subject: below --
2022-02-23 2:59 [PATCH iproute2-next v2 0/3] mptcp: add the fullmesh flag setting support Geliang Tang
2022-02-23 2:59 ` [PATCH iproute2-next v2 2/3] mptcp: add fullmesh support for setting flags Geliang Tang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=71fbda79-bbab-c45-6f99-ea7b984676cb@linux.intel.com \
--to=mathew.j.martineau@linux.intel.com \
--cc=geliang.tang@suse.com \
--cc=mptcp@lists.linux.dev \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.