STRUCT NVMEFC_LS_REQ(9)

📦 version 7.3.1, in nixpkgs unstable

okay bestie, welcome to struct nvmefc_ls_req(9) from the Kernel API Manual — this struct is lowkey the main character of NVME-FC LS requests, and we're covering every single member, no cap 💅✨

✨ NAME ✨

This is the request structure passed from the transport to the LLDD to perform a NVME-FC LS request and obtain a response. It's giving “the little request wrapper that could” 🫶

  • Used by the nvme-fc transport (host) to send LS's such as Create Association, Create Connection and Disconnect Association.
  • Used by the nvmet-fc transport (controller) to send LS's such as Disconnect Association.

🦋 SYNOPSIS 🦋

Here's the struct in all its iconic glory — copy it exactly, bestie:

       struct nvmefc_ls_req {
           void *rqstaddr;
           dma_addr_t rqstdma;
           u32 rqstlen;
           void *rspaddr;
           dma_addr_t rspdma;
           u32 rsplen;
           u32 timeout;
           void *private;
           void (*done)(struct nvmefc_ls_req *req, int status);
        };

🫶 Members 🫶

ngl, members time — every field, exactly as it is, fr fr:

  • rqstaddr — pointer to request buffer.
  • rqstdma — PCI DMA address of request buffer.
  • rqstlen — Length, in bytes, of request buffer.
  • rspaddr — pointer to response buffer.
  • rspdma — PCI DMA address of response buffer.
  • rsplen — Length, in bytes, of response buffer.
  • timeout — Maximum amount of time, in seconds, to wait for the LS response. If timeout exceeded, LLDD to abort LS exchange and complete LS request with error status. ⏰🚨
  • private — pointer to memory allocated alongside the ls request structure that is specifically for the LLDD to use while processing the request. The length of the buffer corresponds to the lsrqst_priv_sz value specified in the xxx_template supplied by the LLDD.
  • done — The callback routine the LLDD is to invoke upon completion of the LS request. req argument is the pointer to the original LS request structure. Status argument must be 0 upon success, a negative errno on failure (example: -ENXIO).

🔥 Description 🔥

Values set by the requestor prior to calling the LLDD ls_req entrypoint:

that's literally the whole description 😭 no extra lore, just that line.

👀 SEE ALSO 👀

Kernel file ./include/linux/nvme-fc-driver.h — plus the whole related-struct squad, go read these next bestie 🫶:

  • struct nvmefc_ls_rsp(9)
  • struct nvme_fc_port_info(9)
  • struct nvmefc_fcp_req(9)
  • struct nvme_fc_local_port(9)
  • struct nvme_fc_remote_port(9)
  • struct nvme_fc_port_template(9)
  • struct nvmet_fc_port_info(9)
  • struct nvmefc_tgt_fcp_req(9)
  • struct nvmet_fc_target_port(9)
  • struct nvmet_fc_target_template(9)

mwah 💋 source/version: ./include/linux · date: October 2026 · page: struct nvmefc_ls_req(9) — bye bestie! periodt 🫶🌈

📦 where this page comes from