{
  "slug": "pi-reference-tag",
  "term": "PI reference tag",
  "aliases": [
    "Protection-information reference tag",
    "Logical block reference tag"
  ],
  "definition": "A protection-information reference tag carries address-related information whose checking depends on the selected protection type and format.",
  "note": "Linux v6.12's t10_pi_tuple uses a 32-bit reference field for a target or indirect logical-block address; its Type 3 description does not define a reference-address check. Do not assume every PI tuple validates location. [linux-format]\n\nNVM Command Set 1.0e distinguishes protection type from field layout and permits configurable storage/reference allocation. A reference field need not have the width of the host address. [nvm-fields]\n\nHesela inference: matching an address-related tag does not prove freshness. A previously valid data/tag pair can still represent an older version unless another mechanism checks the expected generation. This is a limit of the information supplied to the checker, not evidence of a device vulnerability. [linux-format]",
  "related": [
    "protection-information",
    "pi-guard-tag",
    "pi-application-tag",
    "logical-block-address",
    "misdirected-write",
    "lost-write"
  ],
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "citations": [
    {
      "id": "linux-format",
      "title": "Linux v6.12: T10 PI tuple and protection-type comments (GPL-2.0)",
      "url": "https://github.com/torvalds/linux/blob/adc218676eef25575469234709c2d87185ca223a/include/linux/t10-pi.h",
      "accessed": "2026-11-05"
    },
    {
      "id": "nvm-fields",
      "title": "NVM Express NVM Command Set Specification 1.0e, sections 5.2.1 and 5.2.3, pp. 78-84 and 94-95; copyright 2008 to 2024 NVM Express, Inc. ALL RIGHTS RESERVED.",
      "url": "https://nvmexpress.org/wp-content/uploads/NVM-Express-NVM-Command-Set-Specification-1.0e-2024.07.29-Ratified.pdf",
      "accessed": "2026-11-05"
    },
    {
      "id": "linux-boundary",
      "title": "Linux v6.12 Data Integrity documentation, sections 2 and 3 (historical design context)",
      "url": "https://docs.kernel.org/6.12/block/data-integrity.html",
      "accessed": "2026-11-05"
    }
  ],
  "updated": "2026-11-05",
  "provenance": [
    "Source synthesis scoped to Linux v6.12 and NVM Command Set 1.0e; not a device test, support matrix or extension of the existing CRC experiment."
  ]
}
