aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/nvmf/controller
Commit message (Collapse)AuthorAgeFilesLines
* nvmf: Fix null ptr referenceMariusz Zaborski2026-03-231-1/+1
| | | | | | Reported by: Nikolay Denev <ndenev@gmail.com> Reviewed by: imp, jhb Differential Revision: https://reviews.freebsd.org/D55863
* nvmft: Honor any IOCCSZ limit imposed by the transportJohn Baldwin2025-11-103-0/+21
| | | | Sponsored by: Chelsio Communications
* sbuf_delete() after sbuf_finish() & add SBUF_INCLUDENULDavid E. O'Brien2025-10-311-1/+1
| | | | | Reviewed by: adrian, imp Differential Revision: https://reviews.freebsd.org/D53254
* libnvmf: Add nvmf_nqn_valid_strict() functionJohn Baldwin2025-07-281-40/+0
| | | | | | | | | | 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
* nvmft: Fix a resource leak for SET_FEATURES/ASYNC_EVENT_CONFIGURATIONJohn Baldwin2025-05-301-0/+1
| | | | | | | | 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
* nvmft: Export more info for a ctl port for use by ctladmJohn Baldwin2025-02-202-0/+27
| | | | | | | | | 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
* nvmft: Switch the per-port lock from sx(9) to mtx(9)John Baldwin2025-02-203-44/+62
| | | | | | This is needed to avoid LORs for a following commit. Sponsored by: Chelsio Communications
* nvmft: Don't offline a port being removed if it is already offlineJohn Baldwin2025-01-311-1/+7
| | | | | | | This is generally harmless but can trigger spurious warnings on the console due to duplicate attempts to disable LUNs. Sponsored by: Chelsio Communications
* nvmf: Switch several ioctls to using nvlistsJohn Baldwin2024-12-304-41/+62
| | | | | | | | | | | | | | | | | 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
* nvmft: Fix typo in error message if an I/O queue fails to handoffJohn Baldwin2024-12-281-1/+1
| | | | Sponsored by: Chelsio Communications
* ctl: Move extern for control_softc into <cam/ctl/ctl_private.h>John Baldwin2024-09-251-2/+0
| | | | | | Reviewed by: imp Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D46778
* nvmft: Defer datamove operations to a pool of taskqueue threadsJohn Baldwin2024-09-243-2/+112
| | | | | | | | | | | 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
* nvmfd/nvmft: Fix a typo "whiled" -> "while"John Baldwin2024-09-031-1/+1
| | | | Sponsored by: Chelsio Communications
* nvmft: Handle qpair allocation failures during handoffJohn Baldwin2024-07-231-0/+10
| | | | | | | If the transport fails to create a queue pair, fail with an error rather than dereferencing a NULL pointer. Sponsored by: Chelsio Communications
* nvmft: The in-kernel NVMe over Fabrics controllerJohn Baldwin2024-05-024-0/+2788
| | | | | | | | | | | | | | | 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
* nvmft: Add NVMeoF controller routines shared between kernel and userlandJohn Baldwin2024-05-022-0/+306
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