data-integrity-extensions · shipping · also DIX

Data Integrity Extensions (DIX)

Data Integrity Extensions let host software exchange protection information with a storage controller using metadata buffers separate from the data buffers.

Related Observatory article: Data Integrity Extensions (DIX) on hesela.com

DIX covers host-to-controller metadata exchange, while DIF covers the controller-to-target segment. Either can operate without the other; a DIF-capable disk alone does not establish host participation. Separate host scatter-gather lists preserve ordinary data-buffer layout. [1]

Linux v6.12 distinguishes insertion, stripping and passing of PI. With host-side PI only, reads insert it and writes strip it; with target-side PI only, reads strip it and writes insert it. With both segments participating, reads and writes pass PI. These names describe the controller operation, not a guarantee that every check ran. [2]

Operation selection and check flags are separate. In the cited SCSI path, BIP_CTRL_NOCHECK suppresses controller-check requests and BIP_DISK_NOCHECK changes target checking. Record the actual command flags and where PI was generated before describing the protected path as application-to-media. [3]

A host guard need not be the on-disk CRC. The original design describes an optional IP checksum on the host segment, with controller conversion to CRC for the disk and the reverse on reads. Linux v6.12 selects the host IP or CRC profile from the adapter guard capability. A DIX label therefore does not specify one checksum algorithm for both segments; this is not a current adapter-support or performance claim. [1] [4]

Relations

related
Protection information (PI), End-to-end data protection, PI guard tag, PI reference tag, Serial Attached SCSI (SAS)

Citations

  1. Petersen (2008), Linux Data Integrity Extensions, Linux Symposium vol. 2, sections 3, 3.1 and 4, pp. 152-153. (accessed 2026-11-13)
  2. Linux v6.12, SCSI protection operations and separate protection flags (GPL-2.0). (accessed 2026-11-13)
  3. Linux v6.12, sd_prot_op and sd_setup_protect_cmnd: operation selection and check masks (GPL-2.0-only). (accessed 2026-11-13)
  4. Linux v6.12, sd_dif_config_host: host-side IP or CRC integrity profile selection (GPL-2.0-only). (accessed 2026-11-13)
Sources & caveats
  • Terminology follows the original 2008 design paper; operation names and flags are scoped to Linux v6.12 SCSI, not NVMe commands or a current hardware-support matrix.
  • This is a source synthesis, not a controller experiment; no corruption-detection rate or performance claim is inferred.

JSON: /data/terms/data-integrity-extensions.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. Data Integrity Extensions (DIX). Hesela. 2026-11-13. https://hesela.dev/terms/data-integrity-extensions/