[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200428054321.GZ6581@nanopsycho.orion>
Date: Tue, 28 Apr 2020 07:43:21 +0200
From: Jiri Pirko <jiri@...nulli.us>
To: Jacob Keller <jacob.e.keller@...el.com>
Cc: netdev@...r.kernel.org, Jakub Kicinski <kuba@...nel.org>
Subject: Re: [iproute2] devlink: add support for DEVLINK_CMD_REGION_NEW
Tue, Apr 28, 2020 at 04:05:12AM CEST, jacob.e.keller@...el.com wrote:
>Add support to request that a new snapshot be taken immediately for
>a devlink region. To avoid confusion, the desired snapshot id must be
>provided.
>
>Note that if a region does not support snapshots on demand, the kernel
>will reject the request with -EOPNOTSUP.
>
>Signed-off-by: Jacob Keller <jacob.e.keller@...el.com>
>---
> devlink/devlink.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
>diff --git a/devlink/devlink.c b/devlink/devlink.c
>index 67e6e64181f9..c750ee1ec6d3 100644
>--- a/devlink/devlink.c
>+++ b/devlink/devlink.c
>@@ -6362,10 +6362,27 @@ static int cmd_region_read(struct dl *dl)
> return err;
> }
>
>+static int cmd_region_snapshot_new(struct dl *dl)
>+{
>+ struct nlmsghdr *nlh;
>+ int err;
>+
>+ nlh = mnlg_msg_prepare(dl->nlg, DEVLINK_CMD_REGION_NEW,
>+ NLM_F_REQUEST | NLM_F_ACK);
>+
>+ err = dl_argv_parse_put(nlh, dl, DL_OPT_HANDLE_REGION |
>+ DL_OPT_REGION_SNAPSHOT_ID, 0);
>+ if (err)
>+ return err;
>+
>+ return _mnlg_socket_sndrcv(dl->nlg, nlh, NULL, NULL);
>+}
>+
> static void cmd_region_help(void)
> {
> pr_err("Usage: devlink region show [ DEV/REGION ]\n");
> pr_err(" devlink region del DEV/REGION snapshot SNAPSHOT_ID\n");
>+ pr_err(" devlink region new DEV/REGION [snapshot SNAPSHOT_ID]\n");
Same as for "del", snapshot id is mandatory. You should not have it in "[]".
> pr_err(" devlink region dump DEV/REGION [ snapshot SNAPSHOT_ID ]\n");
> pr_err(" devlink region read DEV/REGION [ snapshot SNAPSHOT_ID ] address ADDRESS length LENGTH\n");
> }
>@@ -6389,6 +6406,9 @@ static int cmd_region(struct dl *dl)
> } else if (dl_argv_match(dl, "read")) {
> dl_arg_inc(dl);
> return cmd_region_read(dl);
>+ } else if (dl_argv_match(dl, "new")) {
>+ dl_arg_inc(dl);
>+ return cmd_region_snapshot_new(dl);
> }
> pr_err("Command \"%s\" not found\n", dl_argv(dl));
> return -ENOENT;
>--
>2.25.2
>
Powered by blists - more mailing lists