sma: volume crypto interface

This interface will make it possible for users to configure data at rest
encryption for volumes exposed through SMA.  The crypto parameters are
part of volume parameters specified when a volume is attached.  Once a
volume is attached it is not possible to change it.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I795cfab67523ace47d366d50e33b253737716668
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13868
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Dong Yi <dongx.yi@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Konrad Sztyber 2022-08-01 04:43:50 +02:00 committed by Ben Walker
parent 11d13b85e6
commit b30edf643d

View File

@ -13,6 +13,20 @@ package sma;
option go_package = "spdk.io/sma"; option go_package = "spdk.io/sma";
// Volume's crypto parameters
message VolumeCryptoParameters {
// Key to be used for encryption
bytes key = 1;
// Second key (only required by some ciphers)
bytes key2 = 2;
enum Cipher {
AES_CBC = 0;
AES_XTS = 1;
}
// Cipher to use
Cipher cipher = 3;
}
// Parameters describing a volume // Parameters describing a volume
message VolumeParameters { message VolumeParameters {
// Volume GUID/UUID // Volume GUID/UUID
@ -21,6 +35,8 @@ message VolumeParameters {
// NVMeoF volume // NVMeoF volume
nvmf.VolumeConnectionParameters nvmf = 2; nvmf.VolumeConnectionParameters nvmf = 2;
} }
// Crypto parameters (optional)
VolumeCryptoParameters crypto = 3;
} }
// Create device request // Create device request