On Mon, Oct 14, 2024 at 06:10:36PM +0900, Damien Le Moal wrote: > Nope, the PCIe "transport" is the front-end of the endpoint driver. > What this patch does is to allow this driver to be created by passing it a > string that is normally used for "nvme connect" command, which calls > nvmf_create_ctrl(). That's a pretty wrong and broken layering. PCIe isn't any different than RDMA or TCP in being a NVMe transport. > The entire thing was created to not add a PCIe host transport but rather to use > a locally created fabric host controller which connect to whatever the user > wants. That is: the PCI endpoint driver can implement a PCI interface which uses > a loop nvme device, or a tcp nvme device (and if you have a board that can do > rdma or fc, that can also be used as the backend nvme device used from the pci > endpoint driver). You can always use the nvmet passthrough backend to directly use a nvme controller to export through nvmet.