Appendix – JSON File Format
This section is relevant only for the following cases:
Using legacy mode in which the user prefers to not use the recommended SNAP commands, but to use the JSON file format
NVMe-RDMA full offload mode in which the configuration is only possible with the JSON file format
The configuration parameters are divided into two categories: Controller and backends.
Legacy Mode
For the non-full offload mode, it is recommended to use the SNAP RPC commands (described in .SNAP Commands v3.5.0) and not the legacy mode of the JSON file format described in this section.
{
"ctrl": {
"func_num": 0,
"rdma_device": "mlx5_2",
"sqes": 0x6,
"cqes": 0x4,
"cq_period": 3,
"cq_max_count": 6,
"nr_io_queues": 32,
"mn": "Mellanox BlueField NVMe SNAP Controller",
"sn": "MNC12",
"mdts": 4,
"oncs": 0,
"offload": false,
"max_namespaces": 1024,
"quirks": 0x0,
"version": "1.3.0"
},
"backends": [
{
"type": "spdk_bdev",
"paths": [
{
}
]
}
]
}
NVMe-RDMA Full Offload Mode
For NVMe-RDMA full offload mode, users can only use the JSON file format (and not the SNAP RPC commands).
{
"ctrl": {
"func_num": 0,
"rdma_device": "mlx5_2",
"sqes": 0x6,
"cqes": 0x4,
"cq_period": 3,
"cq_max_count": 6,
"nr_io_queues": 32,
"mn": "Mellanox BlueField NVMe SNAP Controller",
"sn": "MNC12",
"mdts": 4,
"oncs": 0,
"offload": true,
"max_namespaces": 1024,
"quirks": 0x0
"version": "1.3.0"
},
"backends": [
{
"type": "nvmf_rdma",
"name": "testsubsystem",
"paths": [
{
"addr": "1.1.1.1",
"port": 4420,
"ka_timeout_ms": 15000,
"hostnqn": "r-nvmx03"
}
]
}
]
}
Controller Parameters
Parameters in SNAP JSON configuration file. Default file is located in /etc/mlnx_snap/mlnx_snap.json.
Parameter |
Description |
Legal Values |
Default |
rpc_server |
Describes the RPC server socket for passing through RPC commands. Relevant only when using vendor-specific RPC commands from host. |
Any |
"" |
offload |
Enable full-offload mode |
true/false |
false |
nr_io_queues |
Maximum number of I/O queues. Note
The actual number of queues is limited by number of queues supported by FW.
|
≥ 0 |
32 |
mn |
Model number |
String (up to 40 chars) |
"MLX NVMe Ctrl" |
sn |
Serial number |
String (up to 20 chars) |
"MNC12" |
nn |
Number of namespaces (NN) indicates the maximum value of a valid NSID for the NVM subsystem. If the mnan field is cleared to 0h, then this field also indicates the maximum number of namespaces supported by the NVM subsystem. |
0-0xFFFFFFFE |
0xFFFFFFFE |
mnan |
Maximum number of allowed namespaces (MNAN) supported by the NVM subsystem |
1-0xFFFFFFFE |
1024 |
mdts |
Max data transfer size. This value is in units of the minimum memory page size (CAP.MPSMIN) and is reported as a power of two (2n). A value of 0h indicates that there is no maximum data transfer size. |
1-6 |
4 |
quirks |
Bitmask for enabling specific NVMe driver quirks in order to work with non-NVMe spec compliant drivers.
|
0x0-0x3 |
0x0 |
max_namespaces |
Limit number of available namespaces |
Any |
1024 |
Backend Parameters
Theses parameters are used to define the backend server.
Even though a list of backends can be configured, currently only a single backend is supported.
Parameter |
Description |
Legal Values |
Default |
type |
Backend type:
|
nvmf_rdma, spdk_bdev |
"spdk_bdev" |
name |
Depends on backend type:
|
Any |
Null |
size_mb |
Represents the desired size (in MB) of the opened backend. Relevant only for memdisk/posix_io backends. |
Any |
Unused |
block_order |
Represents the desired block size (in logarithmic scale) of the opened backend. Relevant only for memdisk/posix_io backends. |
9, 12 |
Unused |
Path Section
This section is relevant only if backend type is set to "nvmf_rdma". For each backend, a list of paths can be specified using the following parameters:
Parameter |
Description |
Legal Values |
Default |
addr |
Target IPv4 address |
String in x.x.x.x format |
"192.168.101.2" |
port |
Target port number |
1024-65534 |
4420 |
ka_timeout_ms |
Keepalive timeout in msec |
>0 |
15000 |
Nqn |
Host NQN |
String up to 223-char long |
"nqn.2014-08.org.nvmexpress:uuid:11111111-2222-3333-4444-555555555555" |