NVMe Command Identifier
An NVMe Command Identifier is a host-assigned 16-bit value that distinguishes outstanding commands within a submission queue.
Scope: CID is queue-scoped, not globally unique. On the memory-based path, SQID and CID together identify the completed command. SQID is reserved in NVMe over Fabrics. [1]
Lifetime: SPDK v24.09 assigns a tracker CID to a request and, after non-retry completion processing, returns the tracker to its free list for reuse. A CID is therefore not a permanent request identifier. [2]
Reuse: Do not infer CID retirement from SQHD; that field reports consumed command slots, not command completion. A driver tracker index also does not make CID the submission-ring slot number. [1] [2]
Relations
Citations
- NVM Express Base 2.0d, sections 3.3.1.2, 3.3.2.1.1-2 and 3.3.3; copyright 2008-2024 NVM Express, Inc., all rights reserved
- SPDK v24.09: PCIe tracker completion, retirement and CID assignment
Sources & caveats
- Versioned sources explain protocol and implementation behavior; no hardware experiment or performance claim.