doc: updated SMA interface documentation

- added information of supporting crypto in volume parameters
- added description for QoS methods: SetQos and GetQosCapabilities

Signed-off-by: Michal Rozegnal <michal.rozegnal@intel.com>
Change-Id: Id117b776901eaed3cfe0845944a5d340a921ee17
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17111
Reviewed-by: Jacek Kalwas <jacek.kalwas@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Wojciech Panfil <wojciech.panfil@intel.com>
This commit is contained in:
Michal Rozegnal 2023-03-08 15:26:34 +01:00 committed by Konrad Sztyber
parent e3fdafb4f4
commit 8de3c57f8d

View File

@ -37,7 +37,11 @@ Input:
- `volume`: Volume parameters describing a volume to immediately attach to the
created device. This field may be optional for some device types (e.g. NVMe),
while it may be required for others (e.g. virtio-blk).
while it may be required for others (e.g. virtio-blk). Extending parameters with
crypto attributes like encryption type, keys, tweak mode allows the user to configure
crypto when attaching a volume to a device. Users must specify the crypto engine
to use under `crypto` section in config. It is also possible to register out-of-tree
crypto engines by inheriting from the `CryptoEngine` class.
- `params`: Device-specific parameters. The type of this structure determines
the type of device to create.
@ -67,7 +71,11 @@ Input:
- `volume`: Parameters describing the volume to attach. The type of this
structure determines the method to create it (e.g. direct NVMe-oF connection,
NVMe-oF through discovery service, iSCSI, etc.).
NVMe-oF through discovery service, iSCSI, etc.). Extending parameters with
crypto attributes like type, keys, tweak mode allowing the user to configure crypto
when attaching a volume to a device. Users must specify the crypto engine to use under
`crypto` section in config. It is also possible to register out-of-tree crypto engines
by inheriting from the `CryptoEngine` class.
- `device_handle`: Device handle obtained from `CreateDevice`.
### DetachVolume
@ -80,6 +88,36 @@ Input:
- `volume_id`: Volume UUID/GUID.
- `device_handle`: Device handle obtained from `CreateDevice`.
### SetQos
This method configures QoS on a per-device or per-volume level.
Not all QoS settings have to be supported by each device, so users
can use `GetQosCapabilities` to get capabilities.
Input:
- `handle`: Device handle obtained from `CreateDevice`.
- `volume_id`: Volume UUID/GUID. If this parameter is omitted, the QoS will be set up
on the whole device (all volumes attached to that device will share QoS settings).
Some device types might only support configuring QoS on per-device
(volume_id must be empty) or per-volume level (volume_id cannot be empty).
This information can be obtained by sending a GetQosCapabilities request.
- `maximum`: Maximum allowed IOPS/bandwidth values.
### GetQosCapabilities
This method queries supported QoS settings.
Input:
- `device_type`: Type of a device to query for QoS capabilities.
Output:
- `capabilities`: QoS capabilities response including device/volume
QoS limits like read IOPS, write IOPS, read/write IOPS, read bandwidth,
write bandwidth, read/write bandwidth.
## Running and Configuration
In order to run SMA, SPDK needs to be configured with the `--with-sma` flag.