Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
The CAN/CSA ISO/IEC 14776-326-16 standard, also known as SCSI Primary Commands (SPC-6), is the Canadian adoption of the international ISO/IEC 14776-326:2016 specification. This standard defines the fundamental command set for SCSI (Small Computer System Interface) storage devices, providing a consistent protocol for communication between hosts and peripherals such as hard disk drives, solid state drives, tape drives, and storage arrays. This article explores the scope, technical requirements, and compliance aspects of this critical standard.
The standard applies to all SCSI devices that implement the primary command set, regardless of the underlying transport layer (e.g., SAS, Fibre Channel, iSCSI, or SCSI over PCIe). SPC-6 establishes mandatory and optional commands that every SCSI target must support, including:
INQUIRY commandREAD (multiple variants), WRITEINQUIRY response format. The standard mandates precise keyword compliance for Vital Product Data (VPD) pages such as the Device Identification page (page 83h). Malformed page data can cause interoperability failures even if all other commands work correctly. This standard replaces earlier editions (SPC-5 and prior) and adds new command descriptors and functionality that better support modern storage features, including zoned block devices, persistent reservations with enhanced capabilities, and extended sense data reporting.
Every SCSI command is encoded in a Command Descriptor Block (CDB) whose size and format depend on the operation. SPC-6 defines CDBs for all primary commands and extends the supported CDB sizes up to 260 bytes (variable-length CDBs). Table 1 summarises the key command categories with their mandatory status.
| Command Name | Opcode (Group) | Mandatory Status | Key Function |
|---|---|---|---|
| INQUIRY | 12h | Required | Return device identification and VPD data |
| READ (10) | 28h | Required | Read logical blocks from the medium |
| WRITE (10) | 2Ah | Required | Write logical blocks to the medium |
| MODE SENSE (10) | 5Ah | Required | Read device configuration parameters |
| REQUEST SENSE | 03h | Required | Retrieve sensed error information |
| TEST UNIT READY | 00h | Required | Check device readiness without data transfer |
| REPORT LUNS | A0h | Required (for multi-LUN targets) | List available logical units |
SPC-6 introduces a unified sense data format (fixed and descriptor) that provides up to 60 bytes of detailed error information, including field replaceable unit (FRU) codes and command-specific information. The standard adds 16 new sense key codes and over 200 additional additional sense code (ASC/ASCQ) pairs to cover scenarios such as:
The standard also mandates support for the Extended COPY (XCOPY) command used in advanced offload operations. Implementations must correctly handle token management and segment descriptor formatting to ensure compatibility with SAN-based copy offload mechanisms.
Compared to SPC-5, CAN/CSA ISO/IEC 14776-326-16 introduces the following improvements:
The standard defines conformance profiles that allow products to claim compliance to subsets of the command set (e.g., “Basic Disk Profile” or “Enterprise Array Profile”). Each profile lists the mandatory and conditionally required commands. Developers should choose the profile that matches their product’s target use case to simplify certification.
In Canada, compliance to CAN/CSA ISO/IEC 14776-326-16 is typically validated through the CSA certification process. Manufacturers and developers must:
INQUIRY or MODE SENSE response formats is the most common cause of interoperability rejection during certification. During testing, carefully compare every byte of the response against the standard’s tables. Even a single reserved bit set to 1 can break host drivers. Beyond certification, the standard encourages manufacturers to participate in plugfests organised by the SCSI Trade Association to verify end-to-end interoperability with multiple host bus adapters and operating systems.
Recognised testing organizations for CAN/CSA ISO/IEC 14776-326-16 include CSA Group (Canada), Underwriters Laboratories (UL), and Intertek. All tests are based on the CSA version of the standard, which is identical in technical content to the ISO/IEC edition but includes national deviations if applicable.