-
Notifications
You must be signed in to change notification settings - Fork 664
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nvme Fabrics connections over Ipv6 not working with nvme-cli 2.11 and libnvme 1.11.1 #2648
Comments
Just another data point that connection with TCP protocol works to the same target from same host with nvme-cli 2.11 using the following commands
|
Could provide the output the Also please provide the output from the |
@sukhi61166 - If I understand correctly, it works when you specify the interface separately with the If that's the case that would indicate that the |
@martin-belanger @igaw |
These work as we've figured out through experimentation. It would be great if working examples could be added to the nvme-cli documentation. We didn't find any examples in the included docs. Also, it would help if IPv6 addresses worked consistently between TCP & RDMA. TCP: (included -f and removed -w) sudo ~/tmp/nvme-cli-v2.11/.build/nvme connect -t tcp -s 4420 -a fe80:0000:0000:0000:020c:caff:fe12:2a0c -f enp129s0f0np0 -i 2 -n nqn.2015-09.com.wdc:nvme.1 RDMA: (-f not allowed, so removed it. included host-iface with target addr; squished 0's in IPv6 addr unlike in TCP) sudo ~/tmp/nvme-cli-v2.11/.build/nvme connect -t rdma -s 4420 -a fe80::020c:caff:fe12:2a0c%enp129s0f0np0 -i 2 -n nqn.2015-09.com.wdc:nvme.1 |
I should have paid more attention. I did not realize that you had both rdma and tcp examples. In that case, you are correct that I'm no RDMA expert, but I don't think that the BTW, nvme-cli 1.16 is pretty old. Looking at the releases I don't even see 1.16. Are you running on an older system? Which distro? And what is the kernel version? Thanks. |
Clarification for TCP transport: Scoped addresses (i.e. The |
|
Please provide some documentation in this case. I'm glad to add it. |
Are we still looking into the connect-all issue? Yes, we didnt find any examples or documentation on IPV6 connect command arguments. It will be nice to add it to the documentation |
@igaw, that's what I listed in my previous reply, i.e. the examples for TCP & RDMA that worked. If you could please include those in the documentation that would help. At the same time, we should update the tool's help text for some of the options mentioned above like -f, -w and scoped addresses, clearly mentioning allowed/not-allowed for each protocol. Based on my observations with nvme-cli v2.11 (+libnvme 1.11) here's my understanding so far. If the tool is modified to fix an issue the help text shown below should be updated accordingly. [ --traddr=, -a ] --- transport address. Use scoped address for RDMA over IPv6, e.g. fe80::020c:caff:fe12:2a0c%enp129s0f0np0 RDMA over IPv6: [does not work]
|
I think this could go into the wiki https://github.com/linux-nvme/nvme-cli/wiki as I don't think this should be in the man pages. Please add it to the wiki, I just don't have the bandwidth to do everything. |
@igaw, Will update it with TCP example when I get a chance. |
I've also added some bits to the wiki, e.g. Martin's explanation on the scoped interface. Anyway all are invited to improve the wiki. Thanks a lot! |
@igaw @martin-belanger The connect-all not working even with the correct parameters is still an issue for us. Did anyone get a chance to look at the output I provided with verbosity enabled? |
The command lines contain some weird stuff, not easy to parse:
Note that libnvme will auto generate the hostnqn as there is no /etc/nvme/{hostnqn,hostid}, this should obviously match with your target configuration. Anyway, the resulting connect command to the kernel looks okay for the traddr, it matches what seems to be provided on the command line:
The rdma transport is using the same parser as the tcp transport for splitting |
We are trying to connect using the IPv6 address over RoCEv2 protocol and it is not working with the latest nvme-cli/libnvme versions. We tried the same setup on the same server with nvme-cli 1.16 and connections are made. We must stay at the latest version in order to use other features. This is a blocking issue for us. Please correct me in case the arguments I am using are not correct.
Discover does work fine but the connect or connect-all does not even try to reach the target over the wire. We see no activity on the network trace.
This is all we see after the connect command is issued "could not add new controller: failed to write to nvme-fabrics device"
In the dmesg it shows "nvme nvme0: rdma connection establishment failed (-104)"
Failing nvme-versions are:
nvme version 2.11 (git 2.11+)
libnvme version 1.11.1 (git 1.11.1)
nvme version 2.10.2 (git 2.10.2)
libnvme version 1.10 (git 1.10)
Command used to connect/discover with 2.10/2.11
nvme discover -t rdma -a fe80::020c:caff:fe12:24c3%enp193s0f0np0 -s 4420
nvme connect-all -t rdma -a fe80::020c:caff:fe12:24c3%enp193s0f0np0 -s 4420 -i 1
Command used with Passing nvme version is 1.16
nvme connect-all -t rdma -a fe80::020c:caff:fe12:24c3%enp193s0f0np0 -s 4420 -i 1 -w fe80::966d:aeff:fe38:772e%enp193s0f0np0
The text was updated successfully, but these errors were encountered: