{
  "status": "shipping",
  "advantages": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-21",
  "slug": "nvme-dlfeat",
  "term": "NVMe DLFEAT",
  "aliases": [
    "Deallocate Logical Block Features"
  ],
  "definition": "NVMe DLFEAT is an Identify Namespace field describing deallocated read values, Write Zeroes deallocation support and protection-information behavior.",
  "note": "Read behavior occupies bits 2:0: 0 is unreported, 1 selects zero bytes and 2 selects FFh bytes. Bit 3 separately indicates support for Write Zeroes DEAC; bit 4 selects CRC-based Guard behavior. Testing the whole byte for nonzero confuses these fields. [libnvme-fields]",
  "limitations": [
    {
      "text": "A field declaration is not evidence that a particular LBA was deallocated or that its physical copies were erased.",
      "citationIds": [
        "nvme-1-4a"
      ]
    }
  ],
  "related": [
    "deallocated-read-behavior",
    "nvme-dulbe",
    "discard",
    "protection-information"
  ],
  "citations": [
    {
      "id": "libnvme-fields",
      "title": "libnvme v1.13: namespace feature and DLFEAT field definitions",
      "url": "https://raw.githubusercontent.com/linux-nvme/libnvme/v1.13/src/nvme/types.h",
      "accessed": "2026-10-21"
    },
    {
      "id": "nvme-1-4a",
      "title": "NVM Express 1.4a: Figure 247, Figure 282 and section 6.7.1.1",
      "url": "https://nvmexpress.org/wp-content/uploads/NVM-Express-1_4a-2020.03.09-Ratified.pdf",
      "accessed": "2026-10-21"
    },
    {
      "id": "hesela-discard",
      "title": "Hesela: interpreting deallocation fields",
      "url": "https://hesela.com/analyses/discard-is-not-zeroing/#nvme-fields",
      "accessed": "2026-10-21"
    }
  ],
  "provenance": [
    "Reference interpretation is scoped to NVMe 1.4a and cross-checked against libnvme v1.13; no hardware commands were run."
  ]
}
