doc: add JSON-RPC docs for nvmf_tgt methods
This is a first pass at adding documentation for JSON-RPC methods. Currently, this covers the following nvmf_tgt RPC methods: - get_nvmf_subsystems - construct_nvmf_subsystem - delete_nvmf_subsystem Change-Id: I51f74eed52e68fef8307a278b2e36c326689bf92 Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-on: https://review.gerrithub.io/381559 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
ee732292d6
commit
415dcbf8cd
@ -793,6 +793,7 @@ INPUT = ../include/spdk \
|
|||||||
event.md \
|
event.md \
|
||||||
ioat.md \
|
ioat.md \
|
||||||
iscsi.md \
|
iscsi.md \
|
||||||
|
jsonrpc.md \
|
||||||
lvol.md \
|
lvol.md \
|
||||||
nvme.md \
|
nvme.md \
|
||||||
nvme-cli.md \
|
nvme-cli.md \
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
- @ref memory
|
- @ref memory
|
||||||
- @ref porting
|
- @ref porting
|
||||||
- [Public API header files](files.html)
|
- [Public API header files](files.html)
|
||||||
|
- @ref jsonrpc
|
||||||
|
|
||||||
# Modules {#modules}
|
# Modules {#modules}
|
||||||
|
|
||||||
|
176
doc/jsonrpc.md
Normal file
176
doc/jsonrpc.md
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
# JSON-RPC Methods {#jsonrpc}
|
||||||
|
|
||||||
|
# Overview {#jsonrpc_overview}
|
||||||
|
|
||||||
|
SPDK implements a [JSON-RPC 2.0](http://www.jsonrpc.org/specification) server
|
||||||
|
to allow external management tools to dynamically configure SPDK components.
|
||||||
|
|
||||||
|
# NVMe-oF Target {#jsonrpc_components_nvmf_tgt}
|
||||||
|
|
||||||
|
## get_nvmf_subsystems method {#rpc_get_nvmf_subsystems}
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
|
||||||
|
This method has no parameters.
|
||||||
|
|
||||||
|
### Example
|
||||||
|
|
||||||
|
Example request:
|
||||||
|
~~~
|
||||||
|
{
|
||||||
|
"jsonrpc": "2.0",
|
||||||
|
"id": 1,
|
||||||
|
"method": "get_nvmf_subsystems"
|
||||||
|
}
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Example response:
|
||||||
|
~~~
|
||||||
|
{
|
||||||
|
"jsonrpc": "2.0",
|
||||||
|
"id": 1,
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"core": 0,
|
||||||
|
"nqn": "nqn.2014-08.org.nvmexpress.discovery",
|
||||||
|
"subtype": "Discovery"
|
||||||
|
"listen_addresses": [],
|
||||||
|
"hosts": [],
|
||||||
|
"allow_any_host": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"core": 5,
|
||||||
|
"nqn": "nqn.2016-06.io.spdk:cnode1",
|
||||||
|
"subtype": "NVMe",
|
||||||
|
"listen_addresses": [
|
||||||
|
{
|
||||||
|
"trtype": "RDMA",
|
||||||
|
"adrfam": "IPv4",
|
||||||
|
"traddr": "192.168.0.123",
|
||||||
|
"trsvcid": "4420"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hosts": [
|
||||||
|
{"nqn": "nqn.2016-06.io.spdk:host1"}
|
||||||
|
],
|
||||||
|
"allow_any_host": false,
|
||||||
|
"serial_number": "abcdef",
|
||||||
|
"namespaces": [
|
||||||
|
{"nsid": 1, "name": "Malloc2"},
|
||||||
|
{"nsid": 2, "name": "Nvme0n1"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
~~~
|
||||||
|
|
||||||
|
## construct_nvmf_subsystem method {#rpc_construct_nvmf_subsystem}
|
||||||
|
|
||||||
|
Construct an NVMe over Fabrics target subsystem.
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
|
||||||
|
Name | Optional | Type | Description
|
||||||
|
----------------------- | -------- | ----------- | -----------
|
||||||
|
core | Optional | number | Core to run the subsystem's poller on. Default: Automatically assign a core.
|
||||||
|
nqn | Required | string | Subsystem NQN
|
||||||
|
listen_addresses | Required | array | Array of @ref rpc_construct_nvmf_subsystem_listen_address objects
|
||||||
|
hosts | Optional | array | Array of strings containing allowed host NQNs. Default: No hosts allowed.
|
||||||
|
allow_any_host | Optional | boolean | Allow any host (`true`) or enforce allowed host whitelist (`false`). Default: `false`.
|
||||||
|
serial_number | Required | string | Serial number of virtual controller
|
||||||
|
namespaces | Optional | array | Array of @ref rpc_construct_nvmf_subsystem_namespace objects. Default: No namespaces.
|
||||||
|
|
||||||
|
### listen_address {#rpc_construct_nvmf_subsystem_listen_address}
|
||||||
|
|
||||||
|
Name | Optional | Type | Description
|
||||||
|
----------------------- | -------- | ----------- | -----------
|
||||||
|
trtype | Required | string | Transport type ("RDMA")
|
||||||
|
adrfam | Required | string | Address family ("IPv4", "IPv6", "IB", or "FC")
|
||||||
|
traddr | Required | string | Transport address
|
||||||
|
trsvcid | Required | string | Transport service ID
|
||||||
|
|
||||||
|
### namespace {#rpc_construct_nvmf_subsystem_namespace}
|
||||||
|
|
||||||
|
Name | Optional | Type | Description
|
||||||
|
----------------------- | -------- | ----------- | -----------
|
||||||
|
nsid | Optional | number | Namespace ID between 1 and 4294967294, inclusive. Default: Automatically assign NSID.
|
||||||
|
bdev_name | Required | string | Name of bdev to expose as a namespace.
|
||||||
|
|
||||||
|
### Example
|
||||||
|
|
||||||
|
Example request:
|
||||||
|
|
||||||
|
~~~
|
||||||
|
{
|
||||||
|
"jsonrpc": "2.0",
|
||||||
|
"id": 1,
|
||||||
|
"method": "construct_nvmf_subsystem",
|
||||||
|
"params": {
|
||||||
|
"core": 5,
|
||||||
|
"nqn": "nqn.2016-06.io.spdk:cnode1",
|
||||||
|
"listen_addresses": [
|
||||||
|
{
|
||||||
|
"trtype": "RDMA",
|
||||||
|
"adrfam": "IPv4",
|
||||||
|
"traddr": "192.168.0.123",
|
||||||
|
"trsvcid: "4420"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hosts": [
|
||||||
|
"nqn.2016-06.io.spdk:host1",
|
||||||
|
"nqn.2016-06.io.spdk:host2"
|
||||||
|
],
|
||||||
|
"allow_any_host": false,
|
||||||
|
"serial_number": "abcdef",
|
||||||
|
"namespaces": [
|
||||||
|
{"nsid": 1, "name": "Malloc2"},
|
||||||
|
{"nsid": 2, "name": "Nvme0n1"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Example response:
|
||||||
|
|
||||||
|
~~~
|
||||||
|
{
|
||||||
|
"jsonrpc": "2.0",
|
||||||
|
"id": 1,
|
||||||
|
"result": true
|
||||||
|
}
|
||||||
|
~~~
|
||||||
|
|
||||||
|
## delete_nvmf_subsystem method {#rpc_delete_nvmf_subsystem}
|
||||||
|
|
||||||
|
Delete an existing NVMe-oF subsystem.
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
|
||||||
|
Parameter | Optional | Type | Description
|
||||||
|
---------------------- | -------- | ----------- | -----------
|
||||||
|
nqn | Required | string | Subsystem NQN to delete.
|
||||||
|
|
||||||
|
### Example
|
||||||
|
|
||||||
|
Example request:
|
||||||
|
|
||||||
|
~~~
|
||||||
|
{
|
||||||
|
"jsonrpc": "2.0",
|
||||||
|
"id": 1,
|
||||||
|
"method": "delete_nvmf_subsystem",
|
||||||
|
"params": {
|
||||||
|
"nqn": "nqn.2016-06.io.spdk:cnode1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Example response:
|
||||||
|
|
||||||
|
~~~
|
||||||
|
{
|
||||||
|
"jsonrpc": "2.0",
|
||||||
|
"id": 1,
|
||||||
|
"result": true
|
||||||
|
}
|
||||||
|
~~~
|
Loading…
Reference in New Issue
Block a user