summaryrefslogtreecommitdiff
path: root/sys/dev/nvmf/controller
AgeCommit message (Collapse)Author
2025-11-10nvmft: Honor any IOCCSZ limit imposed by the transportJohn Baldwin
Sponsored by: Chelsio Communications
2025-10-30sbuf_delete() after sbuf_finish() & add SBUF_INCLUDENULDavid E. O'Brien
Reviewed by: adrian, imp Differential Revision: https://reviews.freebsd.org/D53254
2025-07-28libnvmf: Add nvmf_nqn_valid_strict() functionJohn Baldwin
This moves the checks previously under #ifdef STRICT in nvmf_nqn_valid() into a separate helper for userland. This requires that the NQN starts with "nqn.YYYY-MM." followed by at least one additional character. Reviewed by: asomers Differential Revision: https://reviews.freebsd.org/D48767
2025-05-30nvmft: Fix a resource leak for SET_FEATURES/ASYNC_EVENT_CONFIGURATIONJohn Baldwin
The received command capsule was not freed after sending the success response. Fixes: a15f7c96a276 ("nvmft: The in-kernel NVMe over Fabrics controller") Sponsored by: Chelsio Communications
2025-02-20nvmft: Export more info for a ctl port for use by ctladmJohn Baldwin
In particular, export a "port" entry as well as an array of "host" entries for each active connection. Reviewed by: asomers Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D48775
2025-02-20nvmft: Switch the per-port lock from sx(9) to mtx(9)John Baldwin
This is needed to avoid LORs for a following commit. Sponsored by: Chelsio Communications
2025-01-31nvmft: Don't offline a port being removed if it is already offlineJohn Baldwin
This is generally harmless but can trigger spurious warnings on the console due to duplicate attempts to disable LUNs. Sponsored by: Chelsio Communications
2024-12-30nvmf: Switch several ioctls to using nvlistsJohn Baldwin
For requests that handoff queues from userspace to the kernel as well as the request to fetch reconnect parameters from the kernel, switch from using flat structures to nvlists. In particular, this will permit adding support for additional transports in the future without breaking the ABI of the structures. Note that this is an ABI break for the ioctls used by nvmf(4) and nvmft(4). Since this is only present in main I did not bother implementing compatability shims. Inspired by: imp (suggestion on a different review) Reviewed by: imp Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D48230
2024-12-28nvmft: Fix typo in error message if an I/O queue fails to handoffJohn Baldwin
Sponsored by: Chelsio Communications
2024-09-25ctl: Move extern for control_softc into <cam/ctl/ctl_private.h>John Baldwin
Reviewed by: imp Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D46778
2024-09-24nvmft: Defer datamove operations to a pool of taskqueue threadsJohn Baldwin
Some block devices may request datamove operations from an ithread context while holding locks. Queue datamove operations to a taskqueue backed by a thread pool to safely permit blocking allocations, etc. in datamove handling. Reviewed by: asomers Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D46551
2024-09-03nvmfd/nvmft: Fix a typo "whiled" -> "while"John Baldwin
Sponsored by: Chelsio Communications
2024-07-23nvmft: Handle qpair allocation failures during handoffJohn Baldwin
If the transport fails to create a queue pair, fail with an error rather than dereferencing a NULL pointer. Sponsored by: Chelsio Communications
2024-05-02nvmft: The in-kernel NVMe over Fabrics controllerJohn Baldwin
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 NVMeoF. Reviewed by: imp Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D44726
2024-05-02nvmft: Add NVMeoF controller routines shared between kernel and userlandJohn Baldwin
This includes functions to validate NVMe Qualified Names, compute an initial value of the CAP property, validate changes to the CC property, and populate the Identify Controller data structure for an I/O controller. Reviewed by: imp Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D44709