{
  "slug": "nvme-subsystem-nqn",
  "term": "NVMe subsystem NQN",
  "aliases": [
    "Subsystem NVMe Qualified Name",
    "SUBNQN"
  ],
  "definition": "An NVMe subsystem NQN is the NVMe Qualified Name identifying an NVM subsystem, distinct from a host NQN and from individual namespace identifiers.",
  "note": "The subsystem NQN is reported in Identify Controller and is intended to remain permanent for the subsystem lifetime [nvme-base-2-0c]. libnvme models the subsystem NQN separately from the transport address, transport service and host NQN [libnvme-api].\n\nLinux v6.12 normally uses the reported SUBNQN but can construct a compatibility value when it is missing, invalid or ignored by a device quirk [linux-v6-12]. A namespace identity must still be checked within the discovered subsystem before interpreting multipath state [hesela-ana]. The well-known discovery NQN is not a unique identity for an ordinary storage subsystem [libnvme-types].",
  "status": "shipping",
  "advantages": [
    "Separates subsystem identity from the address of an individual transport endpoint."
  ],
  "limitations": [
    "One subsystem may expose multiple namespaces, so a matching NQN alone does not identify a particular volume.",
    "An NQN is a name, not a secret credential or proof that the target is authentic."
  ],
  "related": [
    "nvm-subsystem",
    "nvme-nsid",
    "nvme-namespace-identifiers",
    "nvme-host-identifier",
    "multipath-nvme",
    "nvme"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "citations": [
    {
      "id": "nvme-base-2-0c",
      "title": "NVM Express Base Specification 2.0c, sections 4.5 and 4.5.1; copyright 2008-2022 NVM Express, Inc., all rights reserved",
      "url": "https://www.nvmexpress.org/wp-content/uploads/NVM-Express-Base-Specification-2.0c-2022.10.04-Ratified.pdf",
      "accessed": "2026-10-16"
    },
    {
      "id": "libnvme-api",
      "title": "libnvme API: fabrics connection parameters and host identification",
      "url": "https://libnvme.readthedocs.io/en/stable/api.html",
      "accessed": "2026-10-16"
    },
    {
      "id": "libnvme-types",
      "title": "libnvme upstream types: nvmf_disc_log_entry.subnqn",
      "url": "https://github.com/linux-nvme/libnvme/blob/master/doc/rst/types.rst",
      "accessed": "2026-10-16"
    },
    {
      "id": "linux-v6-12",
      "title": "Linux v6.12 NVMe host core: nvme_init_subnqn and subsystem discovery",
      "url": "https://github.com/torvalds/linux/blob/v6.12/drivers/nvme/host/core.c",
      "accessed": "2026-10-16"
    },
    {
      "id": "hesela-ana",
      "title": "NVMe multipath: ANA access states and Linux path policies",
      "url": "https://hesela.com/analyses/nvme-multipath-ana-path-selection/",
      "accessed": "2026-10-16"
    }
  ],
  "updated": "2026-10-16"
}
