Spdk/scripts
Konrad Sztyber 048fb36ac3 sma: initial Storage Management Agent structures
Storage Management Agent is a gRPC server that provides an abstraction
layer above the SPDK RPC interface.  The interface aims to provide a set
of methods for managing various protocols (e.g. NVMe, virtio-blk) while
hiding the details of a particular transport.

The external API is defined by `lib/python/spdk/sma/proto/sma.proto`
protobuf file.  It defines the generic gRPC service methods and their
requests/responses.  Device-specific messages are defined in their own
files.  This patch also defines messages for creating NVMe and NVMe/TCP
devices.

This patch implements a gRPC service that delegates the work to a
specific device type.  A DeviceManager is a class that implements some
of the methods defined by the service for a given type of devices (e.g.
NVMe, virtio-blk, NVMe/TCP, etc.).  For now, only the RPC for creating a
device is implemented, others are added in subsequent patches.

The series implements the generic calls as well as their NVMe/TCP
implementation.  Support for other devce types could be easily added by
creating a new device manager and defining its protobuf parameter
definition.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I17cde3b31d3514878f1027cfcd112b48848f6123
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10273
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-05-18 07:24:06 +00:00
..
bash-completion scripts/bash-completion: Use default filename completion for ./configure 2021-12-14 09:09:24 +00:00
bpf scripts/bpf: remove bdev_nvme_destroy_qpair probe 2022-04-20 08:20:02 +00:00
ceph spelling: scripts 2021-12-03 08:13:04 +00:00
perf scripts/nvmf_perf: reload ice driver after ADQ tests 2022-05-13 07:26:25 +00:00
pkgdep scripts/pkgdep: add support for Rocky Linux 2022-05-09 09:14:36 +00:00
vagrant test/nvmf: Multipath testing with ANA states support 2022-05-12 07:22:23 +00:00
arm_cross_compile.sh scripts: ARM64 Cross-Compilation Support 2021-09-09 20:26:59 +00:00
bpftrace.sh scripts/bpftrace: use SO names in bpftrace scripts 2021-10-20 23:39:59 +00:00
check_format.sh check_format.sh: only use specific v3.1.0 shfmt version 2022-04-27 07:36:14 +00:00
common.sh scripts/common: set special name to test partitions 2022-01-26 19:07:43 +00:00
core-collector.sh scripts/core-collector: Don't limit core dump collection 2022-01-05 09:24:22 +00:00
detect_cc.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
dpdk_mem_info.py scripts: add a parser for the dpdk memory stats. 2020-01-24 05:46:43 +00:00
eofnl scripts/check_format: check trailing whitespace 2017-10-24 17:35:23 -04:00
fio-wrapper test/nvmf: enable fio verify_backlog option 2022-02-04 21:58:18 +00:00
gdb_macros.py scripts: Use range instead of xrange 2019-02-13 22:54:15 +00:00
gen_ftl.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
gen_nvme.sh scripts/gen_nvme.sh: add option for remote bdev JSON configuration 2021-09-24 07:39:41 +00:00
genconfig.py genconfig.py: allow numbers in config option names 2020-02-20 14:40:19 +00:00
get-pmr pkgdep/git: Bump vanilla qemu to v6.0.0 2021-05-11 11:51:01 +00:00
histogram.py histograms: add script for parsing histogram data 2019-01-24 14:14:32 +00:00
iostat.py scripts: move python modules to python directory 2022-04-05 14:40:47 +00:00
lspci scripts/rpc: option to format framework_get_pci_devices for use with lspci 2021-12-14 09:08:59 +00:00
pc_libs.sh build: generate pkg-config files for SPDK 2021-01-21 09:46:32 +00:00
pc_modules.sh build: generate pkg-config files for SPDK 2021-01-21 09:46:32 +00:00
pc.sh build: install generated pkg-config files 2021-03-17 11:10:45 +00:00
pkgdep.sh pkgdep: Fix ID lookup 2021-11-18 08:17:50 +00:00
posix.txt build: Automatically detect use of POSIX includes 2017-05-08 13:20:37 -07:00
prep_benchmarks.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
qat_setup.sh qat_setup: Don't use absolute path to igb_uio driver 2021-12-02 08:08:10 +00:00
rpc_http_proxy.py scripts: move python modules to python directory 2022-04-05 14:40:47 +00:00
rpc.py bdev/nvme: add timeout option to start_discovery 2022-05-18 07:24:06 +00:00
rxe_cfg_small.sh test/nvmf: Use rxe_cfg to get rxe-enabled net devices 2021-04-12 09:41:20 +00:00
setup.sh scripts/setup: Skip devices which have any valid data present 2022-04-06 07:21:17 +00:00
sma-client.py sma: initial Storage Management Agent structures 2022-05-18 07:24:06 +00:00
sma.py sma: initial Storage Management Agent structures 2022-05-18 07:24:06 +00:00
spdk-gpt.py scripts/spdk-gpt: Fix path lookup of the target device 2022-01-25 08:13:40 +00:00
spdkcli.py scripts: move python modules to python directory 2022-04-05 14:40:47 +00:00
sync_dev_uevents.sh sync_dev_uevents: Break from the loop if kernel seqnum matches mdev's 2021-02-04 16:10:49 +00:00