Message ID | 20200430175759.1301789-5-kuba@kernel.org |
---|---|
State | Changes Requested |
Delegated to: | David Ahern |
Headers | show |
Series | [iproute2-next,v3] devlink: support kernel-side snapshot id allocation | expand |
Thu, Apr 30, 2020 at 07:57:59PM CEST, kuba@kernel.org wrote: >Make ID argument optional and read the snapshot info >that kernel sends us. > >$ devlink region new netdevsim/netdevsim1/dummy >netdevsim/netdevsim1/dummy: snapshot 0 >$ devlink -jp region new netdevsim/netdevsim1/dummy >{ > "regions": { > "netdevsim/netdevsim1/dummy": { > "snapshot": [ 1 ] > } > } >} >$ devlink region show netdevsim/netdevsim1/dummy >netdevsim/netdevsim1/dummy: size 32768 snapshot [0 1] > >v3: back to v1.. > >Signed-off-by: Jakub Kicinski <kuba@kernel.org> Reviewed-by: Jiri Pirko <jiri@mellanox.com>
On 4/30/20 11:57 AM, Jakub Kicinski wrote: > Make ID argument optional and read the snapshot info > that kernel sends us. > > $ devlink region new netdevsim/netdevsim1/dummy > netdevsim/netdevsim1/dummy: snapshot 0 > $ devlink -jp region new netdevsim/netdevsim1/dummy > { > "regions": { > "netdevsim/netdevsim1/dummy": { > "snapshot": [ 1 ] > } > } > } > $ devlink region show netdevsim/netdevsim1/dummy > netdevsim/netdevsim1/dummy: size 32768 snapshot [0 1] > > v3: back to v1.. > > Signed-off-by: Jakub Kicinski <kuba@kernel.org> > --- > devlink/devlink.c | 26 +++++++++++++++++++++++--- > 1 file changed, 23 insertions(+), 3 deletions(-) this does not apply to current iproute2-next
On Tue, 5 May 2020 10:14:24 -0600 David Ahern wrote: > On 4/30/20 11:57 AM, Jakub Kicinski wrote: > > Make ID argument optional and read the snapshot info > > that kernel sends us. > > > > $ devlink region new netdevsim/netdevsim1/dummy > > netdevsim/netdevsim1/dummy: snapshot 0 > > $ devlink -jp region new netdevsim/netdevsim1/dummy > > { > > "regions": { > > "netdevsim/netdevsim1/dummy": { > > "snapshot": [ 1 ] > > } > > } > > } > > $ devlink region show netdevsim/netdevsim1/dummy > > netdevsim/netdevsim1/dummy: size 32768 snapshot [0 1] > > > > v3: back to v1.. > > > > Signed-off-by: Jakub Kicinski <kuba@kernel.org> > > --- > > devlink/devlink.c | 26 +++++++++++++++++++++++--- > > 1 file changed, 23 insertions(+), 3 deletions(-) > > this does not apply to current iproute2-next Hm. This was on top of Jake's patch, but Stephen took that one into iproute2, since the kernel feature is in 5.7 already. What is the protocol here? Can you merge iproute2 into iproute2-next? :S
On 5/5/20 10:20 AM, Jakub Kicinski wrote: > On Tue, 5 May 2020 10:14:24 -0600 David Ahern wrote: >> On 4/30/20 11:57 AM, Jakub Kicinski wrote: >>> Make ID argument optional and read the snapshot info >>> that kernel sends us. >>> >>> $ devlink region new netdevsim/netdevsim1/dummy >>> netdevsim/netdevsim1/dummy: snapshot 0 >>> $ devlink -jp region new netdevsim/netdevsim1/dummy >>> { >>> "regions": { >>> "netdevsim/netdevsim1/dummy": { >>> "snapshot": [ 1 ] >>> } >>> } >>> } >>> $ devlink region show netdevsim/netdevsim1/dummy >>> netdevsim/netdevsim1/dummy: size 32768 snapshot [0 1] >>> >>> v3: back to v1.. >>> >>> Signed-off-by: Jakub Kicinski <kuba@kernel.org> >>> --- >>> devlink/devlink.c | 26 +++++++++++++++++++++++--- >>> 1 file changed, 23 insertions(+), 3 deletions(-) >> >> this does not apply to current iproute2-next > > Hm. This was on top of Jake's patch, but Stephen took that one into > iproute2, since the kernel feature is in 5.7 already. What is the > protocol here? Can you merge iproute2 into iproute2-next? :S > merged and pushed. can you resend? I deleted it after it failed to apply and now has vanished.
On Tue, 5 May 2020 10:59:28 -0600 David Ahern wrote: > merged and pushed. can you resend? I deleted it after it failed to apply > and now has vanished. Thanks! Resent now
On Tue, 5 May 2020 10:05:36 -0700 Jakub Kicinski wrote: > On Tue, 5 May 2020 10:59:28 -0600 David Ahern wrote: > > merged and pushed. can you resend? I deleted it after it failed to apply > > and now has vanished. > > Thanks! Resent now Ah damn, I didn't add Jiri's review tag, should I resent again?
diff --git a/devlink/devlink.c b/devlink/devlink.c index bd48a73bc0e4..507972c360a7 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c @@ -6476,6 +6476,23 @@ static int cmd_region_read(struct dl *dl) return err; } +static int cmd_region_snapshot_new_cb(const struct nlmsghdr *nlh, void *data) +{ + struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); + struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; + struct dl *dl = data; + + mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb); + if (!tb[DEVLINK_ATTR_BUS_NAME] || !tb[DEVLINK_ATTR_DEV_NAME] || + !tb[DEVLINK_ATTR_REGION_NAME] || + !tb[DEVLINK_ATTR_REGION_SNAPSHOT_ID]) + return MNL_CB_ERROR; + + pr_out_region(dl, tb); + + return MNL_CB_OK; +} + static int cmd_region_snapshot_new(struct dl *dl) { struct nlmsghdr *nlh; @@ -6484,12 +6501,15 @@ static int cmd_region_snapshot_new(struct dl *dl) 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); + err = dl_argv_parse_put(nlh, dl, DL_OPT_HANDLE_REGION, + DL_OPT_REGION_SNAPSHOT_ID); if (err) return err; - return _mnlg_socket_sndrcv(dl->nlg, nlh, NULL, NULL); + pr_out_section_start(dl, "regions"); + err = _mnlg_socket_sndrcv(dl->nlg, nlh, cmd_region_snapshot_new_cb, dl); + pr_out_section_end(dl); + return err; } static void cmd_region_help(void)
Make ID argument optional and read the snapshot info that kernel sends us. $ devlink region new netdevsim/netdevsim1/dummy netdevsim/netdevsim1/dummy: snapshot 0 $ devlink -jp region new netdevsim/netdevsim1/dummy { "regions": { "netdevsim/netdevsim1/dummy": { "snapshot": [ 1 ] } } } $ devlink region show netdevsim/netdevsim1/dummy netdevsim/netdevsim1/dummy: size 32768 snapshot [0 1] v3: back to v1.. Signed-off-by: Jakub Kicinski <kuba@kernel.org> --- devlink/devlink.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-)