PI guard tag
A protection-information guard tag stores a checksum for the data covered by a selected storage-integrity format.
Linux v6.12's t10_pi_tuple has a 16-bit guard field beside separate application and reference tags. The checksum value does not itself encode the intended address. [1]
Specify both the checksum algorithm and covered bytes. As historical design context, Linux's integrity documentation describes host-side checksums that a controller can translate, so a generic PI label does not identify one algorithm or one application-to-device boundary. [3]
NVM Command Set 1.0e defines 16-, 32- and 64-bit guard formats. A protection type is not a guard width. In that revision, 32- and 64-bit guard formats require logical blocks of at least 4 KiB (sections 5.2.1.2 and 5.2.1.3). A successful command may involve a disabled or escaped check; it does not by itself prove that the guard was compared. [2]
Relations
- related
- Protection information (PI), PI application tag, PI reference tag, End-to-end data protection
Citations
- Linux v6.12: T10 PI tuple and protection-type comments (GPL-2.0)
- 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.
- Linux v6.12 Data Integrity documentation, sections 2 and 3 (historical design context)
Sources & caveats
- 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.