I applied the following patch to the nvme host driver to see what is being passed to the kernel: diff --git a/drivers/nvme/host/fabrics.c b/drivers/nvme/host/fabrics.c index a5469fd9d4c3..a50693678223 100644 --- a/drivers/nvme/host/fabrics.c +++ b/drivers/nvme/host/fabrics.c @@ -582,6 +582,8 @@ static int nvmf_parse_options(struct nvmf_ctrl_options *opts, if (!*p) continue; + pr_err("p = %s\n", p); + token = match_token(p, opt_tokens, args); opts->mask |= token; switch (token) { I removed the two "-1 checks" against tos and fast_io_fail and executed this command: nvme connect -t tcp -a 10.19.242.3 -n test-nqn -s 4080 [root@aarch64-hv01-guest02 nvme-cli]# ./nvme connect -t tcp -a 10.19.242.3 -n test-nqn -s 4080 Failed to write to /dev/nvme-fabrics: Invalid argument dmesg: [50822.773423] nvmet_tcp: enabling port 1 (10.19.242.2:4080) [56087.340983] nvme_fabrics: p = nqn=test-nqn [56087.344407] nvme_fabrics: p = transport=tcp [56087.347633] nvme_fabrics: p = traddr=10.19.242.3 [56087.351113] nvme_fabrics: p = trsvcid=4080 [56087.354395] nvme_fabrics: p = hostnqn=nqn.2014-08.org.nvmexpress:uuid:e83aafbb-383f-46c8-b94b-2311e4cc436c [56087.361733] nvme_fabrics: p = hostid=3eec713e-099e-421d-8c8f-f2b08ae9f96c [56087.366844] nvme_fabrics: p = ctrl_loss_tmo=600 [56087.370266] nvme_fabrics: p = fast_io_fail_tmo=-1 <----- before my patch those 2 were filtered out [56087.373935] nvme_fabrics: p = tos=-1 <---- by add_int_argument() [56087.376616] nvme_fabrics: Invalid type of service -1 <--- Error, connection gets closed