T10 PI Overview
August 2016 Data Integrity Validation 245
Each BLOCK GUARD field contains a CRC (refer to SBC-3 r35 Clause 4.22.4,
polynomium = 0x1_8BB7, seed = 0x0000, and no invert). Only the contents of the
USER DATA field immediately preceding the BLOCK GUARD field. (that is, the user
data between the preceding block reference tag, if any, and the current block guard)
shall be used to generate and check the CRC contained in the BLOCK GUARD field.
Each BLOCK APPLICATION TAG field is set by the application client. If the device
server detects a BLOCK APPLICATION TAG field set to FFFFh, then the device
server disables checking of all other protection information for the associated
protection information interval (single logical user data block) when reading from the
medium. The contents of a BLOCK APPLICATION TAG field shall not be used to
generate or check the CRC contained in the BLOCK GUARD field.
The first BLOCK REFERENCE TAG field of the first block shall be the value in the
expected initial BLOCK REFERENCE TAG field of the command. Subsequent BLOCK
REFERENCE TAG fields for a block shall be the previous block reference tag value
plus one.
One or more sets of user data and protection information intervals may be combined
into a single data stream (physical tape record) for tape write and read operations.
The limiting factor is the maximum Block Length reported by the Mode Sense Block
Descriptor Data, that is, a user data and protection information interval may not be
split across two separate Host Write or Read operations.
These changes are in code release following the initial code release. Additional
changes may be made in the future.