Page MenuHomeFreeBSD

nvmft: The in-kernel NVMe over Fabrics controller

Authored by jhb on Apr 9 2024, 11:04 PM.
Referenced Files
Unknown Object (File)
Mon, May 27, 2:12 AM
Unknown Object (File)
Tue, May 21, 9:45 AM
Unknown Object (File)
Sun, May 19, 6:00 AM
Unknown Object (File)
Sun, May 5, 3:20 PM
Unknown Object (File)
Fri, May 3, 4:21 PM
Unknown Object (File)
Tue, Apr 30, 7:36 PM
Unknown Object (File)
Apr 29 2024, 4:40 AM
Unknown Object (File)
Apr 26 2024, 5:56 AM



This is the server (target in SCSI terms) for NVMe over Fabrics.
Userland is responsible for accepting a new queue pair and receiving
the initial Connect command before handing the queue pair off via an
ioctl to this CTL frontend.

This frontend exposes CTL LUNs as NVMe namespaces to remote hosts.
Users can ask LUNS to CTL that can be shared via either iSCSI or

Sponsored by: Chelsio Communications

Diff Detail

rG FreeBSD src repository
Lint Not Applicable
Tests Not Applicable

Event Timeline

jhb requested review of this revision.Apr 9 2024, 11:04 PM
jhb created this revision.

Nothing bad stood out, but the size of this makes it hard to review carefully.


For NDA the LUN == NSID. Does the mismatch matter in this context?

This revision is now accepted and ready to land.Apr 13 2024, 8:23 PM

This is indeed a large change, but it's not really feasible to split it up further. :(


No. CTL LUNs start at 0, but NVMe namespaces start at 1, so I can't reuse CTL LUNs directly.

Switch to SPDX-only license blocks for C files

This revision now requires review to proceed.Wed, May 1, 10:51 PM
This revision was not accepted when it landed; it landed in state Needs Review.Fri, May 3, 12:17 AM
This revision was automatically updated to reflect the committed changes.