devlink: let kernel allocate region snapshot id
authorJakub Kicinski <kuba@kernel.org>
Fri, 1 May 2020 16:40:41 +0000 (09:40 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 May 2020 18:58:31 +0000 (11:58 -0700)
commit043b3e22768d5d909cb1474fc21ae2fbaf026c0c
treecf948a8bbe6e992d28bce2fd3fab3412841ea5cf
parentdd86fec7e06ab792fe470c66a67ff42bf5d72b91
devlink: let kernel allocate region snapshot id

Currently users have to choose a free snapshot id before
calling DEVLINK_CMD_REGION_NEW. This is potentially racy
and inconvenient.

Make the DEVLINK_ATTR_REGION_SNAPSHOT_ID optional and try
to allocate id automatically. Send a message back to the
caller with the snapshot info.

Example use:
$ devlink region new netdevsim/netdevsim1/dummy
netdevsim/netdevsim1/dummy: snapshot 1

$ id=$(devlink -j region new netdevsim/netdevsim1/dummy | \
       jq '.[][][][]')
$ devlink region dump netdevsim/netdevsim1/dummy snapshot $id
[...]
$ devlink region del netdevsim/netdevsim1/dummy snapshot $id

v4:
 - inline the notification code
v3:
 - send the notification only once snapshot creation completed.
v2:
 - don't wrap the line containing extack;
 - add a few sentences to the docs.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/networking/devlink/devlink-region.rst
net/core/devlink.c
tools/testing/selftests/drivers/net/netdevsim/devlink.sh