{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/linux-nvme/libnvme/doc/config-schema.json", "title": "config.json", "description": "libnvme JSON configuration", "type": "object", "properties": { "hosts": { "description": "Array of NVMe Host properties", "type": "array", "items": { "$ref": "#/$defs/host" } } }, "$defs": { "host": { "description": "NVMe Host properties", "type": "object", "properties": { "hostnqn": { "description": "NVMe host NQN", "type": "string", "maxLength": 223 }, "hostid": { "description": "NVMe host ID", "type": "string" }, "dhchap_key": { "description": "Host DH-HMAC-CHAP key", "type": "string" }, "hostsymname": { "description": "NVMe host symbolic name", "type": "string" }, "persistent_discovery_ctrl": { "description": "Enable/disable Persistent Discovery Controller", "type": "boolean" }, "required": [ "hostnqn" ], "subsystems": { "description": "Array of NVMe subsystem properties", "type": "array", "items": { "$ref": "#/$defs/subsystem" } } } }, "subsystem": { "description": "NVMe subsystem properties", "type": "object", "properties": { "nqn": { "description": "Subsystem NQN", "type": "string", "maxLength": 223 }, "ports": { "description": "Array of NVMe subsystem ports", "type": "array", "items": { "$ref": "#/$defs/port" } }, "application": { "description": "Program managing this subsystem", "type": "string" }, "required": [ "nqn" ] } }, "port": { "description": "NVMe subsystem port", "type": "object", "properties": { "transport": { "description": "Transport type", "type": "string" }, "traddr": { "description": "Transport address", "type": "string" }, "host_traddr": { "description": "Host transport address", "type": "string" }, "host_iface": { "description": "Host interface name", "type": "string" }, "trsvcid": { "description": "Transport service identifier", "type": "string" }, "dhchap_key": { "description": "Host DH-HMAC-CHAP key", "type": "string" }, "dhchap_ctrl_key": { "description": "Controller DH-HMAC-CHAP key", "type": "string" }, "nr_io_queues": { "description": "Number of I/O queues", "type": "integer" }, "nr_write_queues": { "description": "Number of write queues", "type": "integer" }, "nr_poll_queues": { "description": "Number of poll queues", "type": "integer" }, "queue_size": { "description": "Queue size", "type": "integer" }, "keep_alive_tmo": { "description": "Keep-Alive timeout (in seconds)", "type": "integer" }, "reconnect_delay": { "description": "Reconnect delay (in seconds)", "type": "integer" }, "ctrl_loss_tmo": { "description": "Controller loss timeout (in seconds)", "type": "integer" }, "fast_io_fail_tmo": { "description": "Fast I/O Fail timeout (in seconds)", "type": "integer", "default": 600 }, "tos": { "description": "Type of service", "type": "integer", "default": -1 }, "duplicate_connect": { "description": "Allow duplicate connections", "type": "boolean", "default": false }, "disable_sqflow": { "description": "Explicitly disable SQ flow control", "type": "boolean", "default": false }, "hdr_digest": { "description": "Enable header digest", "type": "boolean", "default": false }, "data_digest": { "description": "Enable data digest", "type": "boolean", "default": false }, "keyring": { "description": "Keyring for TLS key lookup", "type": "integer" }, "tls_key": { "description": "TLS key for the connection", "type": "integer" }, "tls": { "description": "Enable TLS encryption", "type": "boolean", "default": false }, "concat": { "description": "Enable secure concatenation", "type": "boolean", "default": false }, "persistent": { "description": "Create persistent discovery connection", "type": "boolean" }, "discovery": { "description": "Connect to a discovery controller", "type": "boolean" } }, "required": [ "transport" ] } } }