Information technology — Small computer system interface (SCSI) — Part 454: SCSI Primary Commands - 4 (SPC-4)

ISO/IEC 14776-454:2018(E) provides for many different types of SCSI devices and specifies the interfaces, functions and operations necessary to ensure interoperability between conforming SCSI implementations. This standard defines the SCSI commands that are mandatory and optional for all SCSI devices.

Technologies de l'information — Interface de petit système d'ordinateur (SCSI) — Partie 454: Titre manque

General Information

Status
Published
Publication Date
22-Apr-2018
Current Stage
6060 - International Standard published
Start Date
23-Apr-2018
Due Date
15-Jul-2018
Completion Date
15-Jul-2018

Overview

ISO/IEC 14776-454:2018 (SPC-4) - SCSI Primary Commands - 4 - is the international standard that defines the core command set, interfaces and behaviors required for Small Computer System Interface (SCSI) devices. It specifies which SCSI commands are mandatory or optional, data and sense formats, command descriptor block (CDB) formats, and operational conventions to ensure interoperability among diverse SCSI implementations.

Key Topics

  • Scope and interoperability: Defines interfaces, functions and operations for many SCSI device types to ensure consistent behavior across implementations.
  • Command Descriptor Block (CDB) formats: Detailed definitions for fixed-length CDBs (6-, 10-, 12-, 16-byte) and variable/extended CDBs, including common fields such as operation code, service action, logical block address and transfer length.
  • SCSI commands: Lists important and required commands for device servers, including use guidance for INQUIRY, REPORT LUNS, TEST UNIT READY, and REQUEST SENSE.
  • Sense data: Descriptor and fixed sense-data formats, sense keys, additional sense codes and rules for returning Information and Command-Specific Information fields.
  • Data field and encoding rules: Numeric/character conventions, bit/byte ordering, ASCII and variable-type field requirements, null termination and padding.
  • Device model and behaviors: Common device model, device clocks/timestamps, device-specific background functions, download/activation of microcode and error history handling.
  • Notation and documentation conventions: Terms, definitions, UML, flowchart and state-diagram notation conventions used across the standard.
  • Security and utility: Guidance on secure random numbers and other operational details.

Applications

SPC-4 is used by:

  • Storage device vendors and firmware engineers - to implement compliant SCSI device command sets and ensure interoperability with host systems.
  • Operating system and driver developers - to interpret and generate SCSI commands and correctly handle sense data and CDB formats.
  • Test labs and integrators - to validate compliance, interoperability and conformance to mandatory/optional command behaviors.
  • Storage architects and system integrators - to design multi-vendor storage solutions where consistent SCSI behavior is critical.

Practical benefits include reliable cross-vendor compatibility, predictable error reporting, consistent command semantics and clear rules for firmware updates and device background operations.

Related Standards

  • Other parts of the ISO/IEC 14776 SCSI series and device-specific SCSI command standards provide complementary requirements (device-type command sets, transport mappings and conformance tests). Implementers should consult the applicable parts for device-specific behaviors and normative references.

Keywords: ISO/IEC 14776-454:2018, SPC-4, SCSI Primary Commands, SCSI commands, Command Descriptor Block, CDB formats, sense data, storage interoperability.

Buy Documents

Standard

ISO/IEC 14776-454:2018 - Information technology -- Small computer system interface (SCSI)

English language (911 pages)
sale 15% off
Preview
sale 15% off
Preview
Standard

ISO/IEC 14776-454:2018 - Information technology — Small computer system interface (SCSI) — Part 454: SCSI Primary Commands - 4 (SPC-4) Released:4/23/2018

English language (911 pages)
sale 15% off
Preview
sale 15% off
Preview

Get Certified

Connect with accredited certification bodies for this standard

BSI Group

BSI (British Standards Institution) is the business standards company that helps organizations make excellence a habit.

UKAS United Kingdom Verified

NYCE

Mexican standards and certification body.

EMA Mexico Verified

Sponsored listings

Frequently Asked Questions

ISO/IEC 14776-454:2018 is a standard published by the International Organization for Standardization (ISO). Its full title is "Information technology — Small computer system interface (SCSI) — Part 454: SCSI Primary Commands - 4 (SPC-4)". This standard covers: ISO/IEC 14776-454:2018(E) provides for many different types of SCSI devices and specifies the interfaces, functions and operations necessary to ensure interoperability between conforming SCSI implementations. This standard defines the SCSI commands that are mandatory and optional for all SCSI devices.

ISO/IEC 14776-454:2018(E) provides for many different types of SCSI devices and specifies the interfaces, functions and operations necessary to ensure interoperability between conforming SCSI implementations. This standard defines the SCSI commands that are mandatory and optional for all SCSI devices.

ISO/IEC 14776-454:2018 is classified under the following ICS (International Classification for Standards) categories: 35.200 - Interface and interconnection equipment. The ICS classification helps identify the subject area and facilitates finding related standards.

ISO/IEC 14776-454:2018 is available in PDF format for immediate download after purchase. The document can be added to your cart and obtained through the secure checkout process. Digital delivery ensures instant access to the complete standard document.

Standards Content (Sample)


ISO/IEC 14776-454
Edition 1.0 2018-04
INTERNATIONAL
STANDARD
colour
inside
Information technology – Small Computer System Interface (SCSI) –
Part 454: SCSI Primary Commands – 4 (SPC-4)

All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form
or by any means, electronic or mechanical, including photocopying and microfilm, without permission in writing from
either IEC or IEC's member National Committee in the country of the requester. If you have any questions about
ISO/IEC copyright or have an enquiry about obtaining additional rights to this publication, please contact the address
below or your local IEC member National Committee for further information.

IEC Central Office Tel.: +41 22 919 02 11
3, rue de Varembé info@iec.ch
CH-1211 Geneva 20 www.iec.ch
Switzerland
About the IEC
The International Electrotechnical Commission (IEC) is the leading global organization that prepares and publishes
International Standards for all electrical, electronic and related technologies.

About IEC publications
The technical content of IEC publications is kept under constant review by the IEC. Please make sure that you have the
latest edition, a corrigenda or an amendment might have been published.

IEC Catalogue - webstore.iec.ch/catalogue Electropedia - www.electropedia.org
The stand-alone application for consulting the entire The world's leading online dictionary of electronic and
bibliographical information on IEC International Standards, electrical terms containing 21 000 terms and definitions in
Technical Specifications, Technical Reports and other English and French, with equivalent terms in 16 additional
documents. Available for PC, Mac OS, Android Tablets and languages. Also known as the International Electrotechnical
iPad. Vocabulary (IEV) online.

IEC publications search - webstore.iec.ch/advsearchform IEC Glossary - std.iec.ch/glossary
The advanced search enables to find IEC publications by a 67 000 electrotechnical terminology entries in English and
variety of criteria (reference number, text, technical French extracted from the Terms and Definitions clause of
committee,…). It also gives information on projects, replaced IEC publications issued since 2002. Some entries have been
and withdrawn publications. collected from earlier publications of IEC TC 37, 77, 86 and

CISPR.
IEC Just Published - webstore.iec.ch/justpublished

Stay up to date on all new IEC publications. Just Published IEC Customer Service Centre - webstore.iec.ch/csc
details all new publications released. Available online and If you wish to give us your feedback on this publication or
also once a month by email. need further assistance, please contact the Customer Service
Centre: sales@iec.ch.
ISO/IEC 14776-454
Edition 1.0 2018-04
INTERNATIONAL
STANDARD
colour
inside
Information technology – Small Computer System Interface (SCSI) –

Part 454: SCSI Primary Commands – 4 (SPC-4)

INTERNATIONAL
ELECTROTECHNICAL
COMMISSION
ICS 35.200 ISBN 978-2-8322-5595-7

Contents
Page
1 Scope. 40
2 Normative references. 40
3 Terms, definitions, symbols, abbreviations, and conventions . 45
3.1 Terms and definitions . 45
3.2 Abbreviations and symbols. 65
3.2.1 Abbreviations. 65
3.2.2 Symbols. 67
3.2.3 Mathematical operators . 67
3.3 Keywords. 68
3.4 Conventions. 69
3.5 Numeric and character conventions . 70
3.5.1 Numeric conventions . 70
3.5.2 Units of measure . 70
3.5.3 Byte encoded character strings conventions. 71
3.6 Bit and byte ordering . 71
3.7 Notation conventions . 73
3.7.1 Notation for procedure calls. 73
3.7.2 Notation for state diagrams . 74
3.7.3 Notation for flowcharts. 75
3.7.4 Notation for UML figures. 75
3.7.4.1 Overview. 75
3.7.4.2 Class notation. 77
3.7.4.3 Class association relationships notation. 77
3.7.4.4 Class aggregation relationships notation. 78
3.7.4.5 Class generalization relationships notation . 80
3.7.4.6 Class dependency relationships notation . 81
3.7.4.7 Object notation . 81
3.7.5 Notation for EXTENDED COPY command segment descriptors . 81
4 General concepts. 82
4.1 Introduction. 82
4.2 Command Descriptor Block. 82
4.2.1 CDB usage and structure . 82
4.2.2 Fixed length CDB formats . 83
4.2.2.1 Formats for 6-byte CDBs. 83
4.2.2.1.1 Generic 6-byte CDB format . 83
4.2.2.1.2 Typical 6-byte CDB format . 83
4.2.2.2 Formats for 10-byte CDBs. 84
4.2.2.2.1 Generic 10-byte CDB format . 84
4.2.2.2.2 Typical 10-byte CDB format . 85
4.2.2.3 Formats for 12-byte CDBs. 86
4.2.2.3.1 Generic 12-byte CDB format . 86
4.2.2.3.2 Typical 12-byte CDB format . 86
4.2.2.3.3 MAINTENANCE IN CDB format . 87
4.2.2.3.4 MAINTENANCE OUT CDB format . 88
4.2.2.3.5 SERVICE ACTION IN(12) CDB format .88
4.2.2.3.6 SERVICE ACTION OUT(12) CDB format . 89
4.2.2.4 Formats for 16-byte CDBs. 89
4.2.2.4.1 Generic 16-byte CDB format . 89
4.2.2.4.2 Typical 16-byte CDB format, if eight-byte LBAs not supported . 90
4.2.2.4.3 Typical 16-byte CDB format with eight-byte LBAs supported. 91
4.2.2.4.4 SERVICE ACTION IN(16) CDB format .92

4.2.2.4.5 SERVICE ACTION OUT(16) CDB format . 92
4.2.2.4.6 SERVICE ACTION BIDIRECTIONAL CDB format. 93
4.2.3 Variable length CDB formats . 93
4.2.3.1 Generic variable length CDB format. 93
4.2.3.2 Typical 32-byte variable length CDB format . 95
4.2.4 Extended CDBs . 96
4.2.4.1 XCDB model. 96
4.2.4.2 The XCDB format . 96
4.2.5 Common CDB fields . 98
4.2.5.1 Operation code . 98
4.2.5.2 Service action . 98
4.2.5.3 Logical block address . 98
4.2.5.4 Transfer length . 99
4.2.5.5 Parameter list length. 99
4.2.5.6 Allocation length . 99
4.3 Data field requirements . 99
4.3.1 ASCII data field requirements. 99
4.3.2 Null data field termination and zero padding requirements . 100
4.3.3 Variable type data field requirements . 100
4.3.4 Port identifier field requirements. 100
4.4 Secure random numbers . 101
4.5 Sense data . 101
4.5.1 Sense data introduction. 101
4.5.2 Descriptor format sense data . 102
4.5.2.1 Descriptor format sense data overview . 102
4.5.2.2 Information sense data descriptor . 104
4.5.2.3 Command-specific information sense data descriptor. 105
4.5.2.4 Sense key specific sense data descriptor . 106
4.5.2.4.1 Sense key specific sense data descriptor overview . 106
4.5.2.4.2 Field pointer sense key specific information. 107
4.5.2.4.3 Actual retry count sense key specific information.108
4.5.2.4.4 Progress indication sense key specific information . 108
4.5.2.4.5 Segment pointer sense key specific information . 109
4.5.2.4.6 Unit attention condition queue overflow sense key specific information. 109
4.5.2.5 Field replaceable unit sense data descriptor . 110
4.5.2.6 Another progress indication sense data descriptor . 110
4.5.2.7 Forwarded sense data. 111
4.5.2.8 Vendor specific sense data descriptors. 112
4.5.3 Fixed format sense data . 113
4.5.4 Returning a value in the INFORMATION field in the sense data . 114
4.5.5 Returning a value in the COMMAND-SPECIFIC INFORMATION field in the sense data . 115
4.5.6 Current information. 115
4.5.7 Deferred errors . 116
4.5.8 Sense key and additional sense code definitions.117
5 Model common to all device types. 136
5.1 Introduction to the model common to all device types. 136
5.1.1 Overview. 136
5.1.2 Important commands for all SCSI device servers . 136
5.1.2.1 Commands implemented by all SCSI device servers. 136
5.1.2.2 Commands recommended for all SCSI device servers. 136
5.1.2.3 Using the INQUIRY command. 136
5.1.2.4 Using the REPORT LUNS command . 136
5.1.2.5 Using the TEST UNIT READY command. 137
5.1.2.6 Using the REQUEST SENSE command . 137
5.1.3 Implicit head of queue . 137
5.2 Device clocks and timestamps . 137

5.3 Device specific background functions . 138
5.3.1 Introduction. 138
5.3.2 Suspending and resuming device specific background functions . 139
5.4 Downloading and activating microcode . 140
5.4.1 Downloading microcode . 140
5.4.2 Activating microcode . 144
5.5 Error history . 145
5.5.1 Error history overview. 145
5.5.2 Retrieving error history with the READ BUFFER command. 145
5.5.3 Adding application client error history with the WRITE BUFFER command . 148
5.5.4 Clearing error history with the WRITE BUFFER command. 148
5.6 Identifying information . 149
5.7 Medium auxiliary memory. 149
5.8 Parameter rounding. 150
5.9 Parsing variable length parameter lists and parameter data . 151
5.10 Pollable condition information. 152
5.10.1 Information that does not represent an exception condition. 152
5.10.2 REQUEST SENSE pollable sense data . 152
5.10.2.1 Making information available for the REQUEST SENSE command . 152
5.10.2.2 Selecting pollable sense data to return . 152
5.10.2.3 Returning one or more progress indications. 152
5.10.3 Log parameter pollable device condition information . 153
5.11 Power management . 153
5.11.1 Power management overview . 153
5.11.2 Power consumption management . 153
5.11.3 Power conditions management . 154
5.11.4 Active power condition. 155
5.11.5 Idle power conditions. 155
5.11.6 Standby power conditions . 156
5.11.7 Power condition pollable sense data . 156
5.11.8 Power condition state machine. 157
5.11.8.1 Power condition state machine overview . 157
5.11.8.2 PC0:Powered_On state. 158
5.11.8.2.1 PC0:Powered_On state description . 158
5.11.8.2.2 Transition PC0:Powered_On to PC4:Active_Wait. 159
5.11.8.3 PC1:Active state . 159
5.11.8.3.1 PC1:Active state description. 159
5.11.8.3.2 Transition PC1:Active to PC5:Wait_Idle . 159
5.11.8.3.3 Transition PC1:Active to PC6:Wait_Standby. 159
5.11.8.4 PC2:Idle state . 159
5.11.8.4.1 PC2:Idle state description. 159
5.11.8.4.2 Transition PC2:Idle to PC4:Active_Wait . 160
5.11.8.4.3 Transition PC2:Idle to PC5:Wait_Idle . 160
5.11.8.4.4 Transition PC2:Idle to PC6:Wait_Standby.160
5.11.8.5 PC3:Standby state. 160
5.11.8.5.1 PC3:Standby state description . 160
5.11.8.5.2 Transition PC3:Standby to PC4:Active_Wait. 161
5.11.8.5.3 Transition PC3:Standby to PC6:Wait_Standby . 161
5.11.8.6 PC4:Active_Wait state. 161
5.11.8.6.1 PC4:Active_Wait state description . 161
5.11.8.6.2 Transition PC4:Active_Wait to PC1:Active .162
5.11.8.7 PC5:Wait_Idle state. 162
5.11.8.7.1 PC5:Wait_Idle state description . 162
5.11.8.7.2 Transition PC5:Wait_Idle to PC2:Idle . 162
5.11.8.8 PC6:Wait_Standby state . 163
5.11.8.8.1 PC6:Wait_Standby state description . 163
5.11.8.8.2 Transition PC6:Wait_Standby to PC3:Standby . 163

5.12 Reservations. 163
5.12.1 Persistent Reservations overview . 163
5.12.2 Third party persistent reservations . 168
5.12.3 Exceptions to SPC-2 RESERVE and RELEASE behavior. 168
5.12.4 Persistent reservations interactions with IKEv2-SCSI SA creation . 169
5.12.5 Preserving persistent reservations and registrations. 169
5.12.5.1 Requirements for preserving persistent reservations and registrations . 169
5.12.5.2 Preserving persistent reservations and registrations through power loss . 169
5.12.5.3 Nonvolatile memory considerations for preserving persistent reservations and registrations. 170
5.12.5.4 Loss of persistent reservation information. 170
5.12.5.4.1 Loss of persistent reservation information overview. 170
5.12.5.4.2 Recoverable loss of persistent reservation information. 170
5.12.5.4.3 Unrecoverable loss of persistent reservation information overview . 171
5.12.6 Finding persistent reservations and reservation keys . 171
5.12.6.1 Summary of commands for finding persistent reservations and reservation keys . 171
5.12.6.2 Reporting reservation keys. 171
5.12.6.3 Reporting the persistent reservation. 171
5.12.6.4 Reporting full status. 172
5.12.7 Registering . 172
5.12.8 Registering and moving the reservation . 176
5.12.9 Reserving . 177
5.12.10 Persistent reservation holder. 178
5.12.11 Releasing persistent reservations and removing registrations . 178
5.12.11.1 Releasing persistent reservations, removing registrations, and lost reservation information. 178
5.12.11.2 Service actions that release persistent reservations and remove registrations. 179
5.12.11.2.1 Service actions that release persistent reservations and remove registrations overview . 179
5.12.11.2.2 Releasing. 180
5.12.11.2.3 Unregistering . 180
5.12.11.2.4 Preempting . 182
5.12.11.2.4.1 Commands that preempt reservations . 182
5.12.11.2.4.2 Failed persistent reservation preempt . 184
5.12.11.2.4.3 Preempting persistent reservations and registration handling. 184
5.12.11.2.5 Removing registrations. 185
5.12.11.2.6 Preempting and aborting . 185
5.12.11.2.7 Clearing . 186
5.12.11.3 Replacing lost reservations . 187
5.13 Security features. 188
5.13.1 Security goals and threat model . 188
5.13.1.1 Introduction. 188
5.13.1.2 Security goals . 188
5.13.1.3 Threat model . 189
5.13.1.4 Types of attacks . 189
5.13.1.5 SCSI security considerations. 190
5.13.2 Security associations. 190
5.13.2.1 Principles of SAs . 190
5.13.2.2 SA parameters. 192
5.13.2.3 Creating an SA . 194
5.13.3 Key derivation functions . 195
5.13.3.1 KDFs overview . 195
5.13.3.2 IKEv2-based iterative KDF . 195
5.13.3.3 HMAC-based KDFs . 196
5.13.3.4 AES-XCBC-PRF-128 IKEv2-based iterative KDF . 197
5.13.4 Using IKEv2-SCSI to create an SA . 198
5.13.4.1 Overview. 198
5.13.4.2 IKEv2-SCSI Protocol summary . 201
5.13.4.3 IKEv2-SCSI Authentication. 204
5.13.4.3.1 Overview. 204

5.13.4.3.2 Pre-shared key authentication. 205
5.13.4.3.3 Digital signature authentication . 205
5.13.4.3.3.1 Overview. 205
5.13.4.3.3.2 Certificates and digital signature authentication .206
5.13.4.3.3.3 Example of certificate use for digital signature authentication. 206
5.13.4.3.3.4 Handling of the Certificate Request payload and the Certificate payload . 207
5.13.4.3.4 Constraints on skipping the Authentication step. 207
5.13.4.4 Summary of IKEv2-SCSI shared keys nomenclature and shared key sizes . 209
5.13.4.5 Device Server Capabilities step. 210
5.13.4.6 IKEv2-SCSI Key Exchange step . 212
5.13.4.6.1 Overview. 212
5.13.4.6.2 Key Exchange step SECURITY PROTOCOL OUT command. 212
5.13.4.6.3 Key Exchange step SECURITY PROTOCOL IN command. 213
5.13.4.6.4 Key Exchange step completion . 214
5.13.4.6.5 After the Key Exchange step . 214
5.13.4.7 IKEv2-SCSI Authentication step. 214
5.13.4.7.1 Overview. 214
5.13.4.7.2 Authentication step SECURITY PROTOCOL OUT command . 215
5.13.4.7.3 Authentication step SECURITY PROTOCOL IN command . 216
5.13.4.8 Generating shared keys . 217
5.13.4.8.1 Overview. 217
5.13.4.8.2 Generating shared keys when the Authentication step is skipped . 218
5.13.4.8.3 Generating shared keys when the Authentication step is processed . 218
5.13.4.8.4 Initializing shared key generation . 218
5.13.4.8.4.1 Initializing for SA creation shared key generation . 218
5.13.4.8.4.2 Initializing for generation of shared keys used by the created SA. 219
5.13.4.8.5 Generating shared keys used for SA management. 219
5.13.4.8.6 Generating shared keys for use by the created SA. 220
5.13.4.9 IKEv2-SCSI SA generation. 221
5.13.4.10 Abandoning an IKEv2-SCSI CCS. 222
5.13.4.11 Deleting an IKEv2-SCSI SA . 223
5.13.5 Security progress indication . 223
5.13.6 Command security. 224
5.13.6.1 Overview. 224
5.13.6.2 Secure CDB Originator class. 224
5.13.6.3 Secure CDB Processor class . 224
5.13.6.4 Enforcement Manager class. 225
5.13.6.5 Security Manager class . 225
5.13.6.6 The relationship between SAs and command security. 226
5.13.6.7 Capability-based command security technique . 226
5.13.6.7.1 Overview. 226
5.13.6.7.2 Security Manager class . 229
5.13.6.7.3 CbCS Management Device Server class . 230
5.13.6.7.3.1 CbCS Management Device Server class overview . 230
5.13.6.7.3.2 Decision Database attribute . 230
5.13.6.7.4 CbCS Management Application Client class . 230
5.13.6.7.5 Secure CDB Originator class. 230
5.13.6.7.6 Secure CDB Processor class . 230
5.13.6.7.7 Enforcement Manager class. 231
5.13.6.7.8 CbCS methods . 232
5.13.6.7.8.1 Overview. 232
5.13.6.7.8.2 The BASIC CbCS method . 232
5.13.6.7.8.3 The CAPKEY CbCS method . 233
5.13.6.7.9 CbCS trust assumptions. 233
5.13.6.7.10 CbCS security tokens . 234
5.13.6.7.11 CbCS shared keys. 235
5.13.6.7.11.1 Overview. 235

5.13.6.7.11.2 CbCS shared key identifiers . 236
5.13.6.7.11.3 Specifying which CbCS shared key to change. 236
5.13.6.7.11.4 Updating a CbCS master key . 237
5.13.6.7.11.5 Changing a CbCS working keys. 237
5.13.6.7.12 CbCS credentials. 237
5.13.6.7.12.1 Overview. 237
5.13.6.7.12.2 CbCS capability key computations for the secure CDB originator . 238
5.13.6.7.12.3 CbCS capability key computations for general use . 238
5.13.6.7.13 CbCS capability descriptors . 239
5.13.6.7.13.1 Overview. 239
5.13.6.7.13.2 CbCS extension descriptor validation. 239
5.13.6.7.13.3 CAPKEY CbCS method capability integrity validation. 240
5.13.6.7.14 Association between commands and permission bits . 241
5.13.6.7.15 CbCS parameters. 244
5.13.6.7.15.1 Overview. 244
5.13.6.7.16 CbCS extension descriptor format. 246
5.13.7
...


ISO/IEC 14776-454
Edition 1.0 2018-04
INTERNATIONAL
STANDARD
colour
inside
Information technology – Small Computer System Interface (SCSI) –
Part 454: SCSI Primary Commands – 4 (SPC-4)

All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form
or by any means, electronic or mechanical, including photocopying and microfilm, without permission in writing from
either IEC or IEC's member National Committee in the country of the requester. If you have any questions about
ISO/IEC copyright or have an enquiry about obtaining additional rights to this publication, please contact the address
below or your local IEC member National Committee for further information.

IEC Central Office Tel.: +41 22 919 02 11
3, rue de Varembé info@iec.ch
CH-1211 Geneva 20 www.iec.ch
Switzerland
About the IEC
The International Electrotechnical Commission (IEC) is the leading global organization that prepares and publishes
International Standards for all electrical, electronic and related technologies.

About IEC publications
The technical content of IEC publications is kept under constant review by the IEC. Please make sure that you have the
latest edition, a corrigenda or an amendment might have been published.

IEC Catalogue - webstore.iec.ch/catalogue Electropedia - www.electropedia.org
The stand-alone application for consulting the entire The world's leading online dictionary of electronic and
bibliographical information on IEC International Standards, electrical terms containing 21 000 terms and definitions in
Technical Specifications, Technical Reports and other English and French, with equivalent terms in 16 additional
documents. Available for PC, Mac OS, Android Tablets and languages. Also known as the International Electrotechnical
iPad. Vocabulary (IEV) online.

IEC publications search - webstore.iec.ch/advsearchform IEC Glossary - std.iec.ch/glossary
The advanced search enables to find IEC publications by a 67 000 electrotechnical terminology entries in English and
variety of criteria (reference number, text, technical French extracted from the Terms and Definitions clause of
committee,…). It also gives information on projects, replaced IEC publications issued since 2002. Some entries have been
and withdrawn publications. collected from earlier publications of IEC TC 37, 77, 86 and

CISPR.
IEC Just Published - webstore.iec.ch/justpublished

Stay up to date on all new IEC publications. Just Published IEC Customer Service Centre - webstore.iec.ch/csc
details all new publications released. Available online and If you wish to give us your feedback on this publication or
also once a month by email. need further assistance, please contact the Customer Service
Centre: sales@iec.ch.
ISO/IEC 14776-454
Edition 1.0 2018-04
INTERNATIONAL
STANDARD
colour
inside
Information technology – Small Computer System Interface (SCSI) –

Part 454: SCSI Primary Commands – 4 (SPC-4)

INTERNATIONAL
ELECTROTECHNICAL
COMMISSION
ICS 35.200 ISBN 978-2-8322-5595-7

Contents
Page
1 Scope. 40
2 Normative references. 40
3 Terms, definitions, symbols, abbreviations, and conventions . 45
3.1 Terms and definitions . 45
3.2 Abbreviations and symbols. 65
3.2.1 Abbreviations. 65
3.2.2 Symbols. 67
3.2.3 Mathematical operators . 67
3.3 Keywords. 68
3.4 Conventions. 69
3.5 Numeric and character conventions . 70
3.5.1 Numeric conventions . 70
3.5.2 Units of measure . 70
3.5.3 Byte encoded character strings conventions. 71
3.6 Bit and byte ordering . 71
3.7 Notation conventions . 73
3.7.1 Notation for procedure calls. 73
3.7.2 Notation for state diagrams . 74
3.7.3 Notation for flowcharts. 75
3.7.4 Notation for UML figures. 75
3.7.4.1 Overview. 75
3.7.4.2 Class notation. 77
3.7.4.3 Class association relationships notation. 77
3.7.4.4 Class aggregation relationships notation. 78
3.7.4.5 Class generalization relationships notation . 80
3.7.4.6 Class dependency relationships notation . 81
3.7.4.7 Object notation . 81
3.7.5 Notation for EXTENDED COPY command segment descriptors . 81
4 General concepts. 82
4.1 Introduction. 82
4.2 Command Descriptor Block. 82
4.2.1 CDB usage and structure . 82
4.2.2 Fixed length CDB formats . 83
4.2.2.1 Formats for 6-byte CDBs. 83
4.2.2.1.1 Generic 6-byte CDB format . 83
4.2.2.1.2 Typical 6-byte CDB format . 83
4.2.2.2 Formats for 10-byte CDBs. 84
4.2.2.2.1 Generic 10-byte CDB format . 84
4.2.2.2.2 Typical 10-byte CDB format . 85
4.2.2.3 Formats for 12-byte CDBs. 86
4.2.2.3.1 Generic 12-byte CDB format . 86
4.2.2.3.2 Typical 12-byte CDB format . 86
4.2.2.3.3 MAINTENANCE IN CDB format . 87
4.2.2.3.4 MAINTENANCE OUT CDB format . 88
4.2.2.3.5 SERVICE ACTION IN(12) CDB format .88
4.2.2.3.6 SERVICE ACTION OUT(12) CDB format . 89
4.2.2.4 Formats for 16-byte CDBs. 89
4.2.2.4.1 Generic 16-byte CDB format . 89
4.2.2.4.2 Typical 16-byte CDB format, if eight-byte LBAs not supported . 90
4.2.2.4.3 Typical 16-byte CDB format with eight-byte LBAs supported. 91
4.2.2.4.4 SERVICE ACTION IN(16) CDB format .92

4.2.2.4.5 SERVICE ACTION OUT(16) CDB format . 92
4.2.2.4.6 SERVICE ACTION BIDIRECTIONAL CDB format. 93
4.2.3 Variable length CDB formats . 93
4.2.3.1 Generic variable length CDB format. 93
4.2.3.2 Typical 32-byte variable length CDB format . 95
4.2.4 Extended CDBs . 96
4.2.4.1 XCDB model. 96
4.2.4.2 The XCDB format . 96
4.2.5 Common CDB fields . 98
4.2.5.1 Operation code . 98
4.2.5.2 Service action . 98
4.2.5.3 Logical block address . 98
4.2.5.4 Transfer length . 99
4.2.5.5 Parameter list length. 99
4.2.5.6 Allocation length . 99
4.3 Data field requirements . 99
4.3.1 ASCII data field requirements. 99
4.3.2 Null data field termination and zero padding requirements . 100
4.3.3 Variable type data field requirements . 100
4.3.4 Port identifier field requirements. 100
4.4 Secure random numbers . 101
4.5 Sense data . 101
4.5.1 Sense data introduction. 101
4.5.2 Descriptor format sense data . 102
4.5.2.1 Descriptor format sense data overview . 102
4.5.2.2 Information sense data descriptor . 104
4.5.2.3 Command-specific information sense data descriptor. 105
4.5.2.4 Sense key specific sense data descriptor . 106
4.5.2.4.1 Sense key specific sense data descriptor overview . 106
4.5.2.4.2 Field pointer sense key specific information. 107
4.5.2.4.3 Actual retry count sense key specific information.108
4.5.2.4.4 Progress indication sense key specific information . 108
4.5.2.4.5 Segment pointer sense key specific information . 109
4.5.2.4.6 Unit attention condition queue overflow sense key specific information. 109
4.5.2.5 Field replaceable unit sense data descriptor . 110
4.5.2.6 Another progress indication sense data descriptor . 110
4.5.2.7 Forwarded sense data. 111
4.5.2.8 Vendor specific sense data descriptors. 112
4.5.3 Fixed format sense data . 113
4.5.4 Returning a value in the INFORMATION field in the sense data . 114
4.5.5 Returning a value in the COMMAND-SPECIFIC INFORMATION field in the sense data . 115
4.5.6 Current information. 115
4.5.7 Deferred errors . 116
4.5.8 Sense key and additional sense code definitions.117
5 Model common to all device types. 136
5.1 Introduction to the model common to all device types. 136
5.1.1 Overview. 136
5.1.2 Important commands for all SCSI device servers . 136
5.1.2.1 Commands implemented by all SCSI device servers. 136
5.1.2.2 Commands recommended for all SCSI device servers. 136
5.1.2.3 Using the INQUIRY command. 136
5.1.2.4 Using the REPORT LUNS command . 136
5.1.2.5 Using the TEST UNIT READY command. 137
5.1.2.6 Using the REQUEST SENSE command . 137
5.1.3 Implicit head of queue . 137
5.2 Device clocks and timestamps . 137

5.3 Device specific background functions . 138
5.3.1 Introduction. 138
5.3.2 Suspending and resuming device specific background functions . 139
5.4 Downloading and activating microcode . 140
5.4.1 Downloading microcode . 140
5.4.2 Activating microcode . 144
5.5 Error history . 145
5.5.1 Error history overview. 145
5.5.2 Retrieving error history with the READ BUFFER command. 145
5.5.3 Adding application client error history with the WRITE BUFFER command . 148
5.5.4 Clearing error history with the WRITE BUFFER command. 148
5.6 Identifying information . 149
5.7 Medium auxiliary memory. 149
5.8 Parameter rounding. 150
5.9 Parsing variable length parameter lists and parameter data . 151
5.10 Pollable condition information. 152
5.10.1 Information that does not represent an exception condition. 152
5.10.2 REQUEST SENSE pollable sense data . 152
5.10.2.1 Making information available for the REQUEST SENSE command . 152
5.10.2.2 Selecting pollable sense data to return . 152
5.10.2.3 Returning one or more progress indications. 152
5.10.3 Log parameter pollable device condition information . 153
5.11 Power management . 153
5.11.1 Power management overview . 153
5.11.2 Power consumption management . 153
5.11.3 Power conditions management . 154
5.11.4 Active power condition. 155
5.11.5 Idle power conditions. 155
5.11.6 Standby power conditions . 156
5.11.7 Power condition pollable sense data . 156
5.11.8 Power condition state machine. 157
5.11.8.1 Power condition state machine overview . 157
5.11.8.2 PC0:Powered_On state. 158
5.11.8.2.1 PC0:Powered_On state description . 158
5.11.8.2.2 Transition PC0:Powered_On to PC4:Active_Wait. 159
5.11.8.3 PC1:Active state . 159
5.11.8.3.1 PC1:Active state description. 159
5.11.8.3.2 Transition PC1:Active to PC5:Wait_Idle . 159
5.11.8.3.3 Transition PC1:Active to PC6:Wait_Standby. 159
5.11.8.4 PC2:Idle state . 159
5.11.8.4.1 PC2:Idle state description. 159
5.11.8.4.2 Transition PC2:Idle to PC4:Active_Wait . 160
5.11.8.4.3 Transition PC2:Idle to PC5:Wait_Idle . 160
5.11.8.4.4 Transition PC2:Idle to PC6:Wait_Standby.160
5.11.8.5 PC3:Standby state. 160
5.11.8.5.1 PC3:Standby state description . 160
5.11.8.5.2 Transition PC3:Standby to PC4:Active_Wait. 161
5.11.8.5.3 Transition PC3:Standby to PC6:Wait_Standby . 161
5.11.8.6 PC4:Active_Wait state. 161
5.11.8.6.1 PC4:Active_Wait state description . 161
5.11.8.6.2 Transition PC4:Active_Wait to PC1:Active .162
5.11.8.7 PC5:Wait_Idle state. 162
5.11.8.7.1 PC5:Wait_Idle state description . 162
5.11.8.7.2 Transition PC5:Wait_Idle to PC2:Idle . 162
5.11.8.8 PC6:Wait_Standby state . 163
5.11.8.8.1 PC6:Wait_Standby state description . 163
5.11.8.8.2 Transition PC6:Wait_Standby to PC3:Standby . 163

5.12 Reservations. 163
5.12.1 Persistent Reservations overview . 163
5.12.2 Third party persistent reservations . 168
5.12.3 Exceptions to SPC-2 RESERVE and RELEASE behavior. 168
5.12.4 Persistent reservations interactions with IKEv2-SCSI SA creation . 169
5.12.5 Preserving persistent reservations and registrations. 169
5.12.5.1 Requirements for preserving persistent reservations and registrations . 169
5.12.5.2 Preserving persistent reservations and registrations through power loss . 169
5.12.5.3 Nonvolatile memory considerations for preserving persistent reservations and registrations. 170
5.12.5.4 Loss of persistent reservation information. 170
5.12.5.4.1 Loss of persistent reservation information overview. 170
5.12.5.4.2 Recoverable loss of persistent reservation information. 170
5.12.5.4.3 Unrecoverable loss of persistent reservation information overview . 171
5.12.6 Finding persistent reservations and reservation keys . 171
5.12.6.1 Summary of commands for finding persistent reservations and reservation keys . 171
5.12.6.2 Reporting reservation keys. 171
5.12.6.3 Reporting the persistent reservation. 171
5.12.6.4 Reporting full status. 172
5.12.7 Registering . 172
5.12.8 Registering and moving the reservation . 176
5.12.9 Reserving . 177
5.12.10 Persistent reservation holder. 178
5.12.11 Releasing persistent reservations and removing registrations . 178
5.12.11.1 Releasing persistent reservations, removing registrations, and lost reservation information. 178
5.12.11.2 Service actions that release persistent reservations and remove registrations. 179
5.12.11.2.1 Service actions that release persistent reservations and remove registrations overview . 179
5.12.11.2.2 Releasing. 180
5.12.11.2.3 Unregistering . 180
5.12.11.2.4 Preempting . 182
5.12.11.2.4.1 Commands that preempt reservations . 182
5.12.11.2.4.2 Failed persistent reservation preempt . 184
5.12.11.2.4.3 Preempting persistent reservations and registration handling. 184
5.12.11.2.5 Removing registrations. 185
5.12.11.2.6 Preempting and aborting . 185
5.12.11.2.7 Clearing . 186
5.12.11.3 Replacing lost reservations . 187
5.13 Security features. 188
5.13.1 Security goals and threat model . 188
5.13.1.1 Introduction. 188
5.13.1.2 Security goals . 188
5.13.1.3 Threat model . 189
5.13.1.4 Types of attacks . 189
5.13.1.5 SCSI security considerations. 190
5.13.2 Security associations. 190
5.13.2.1 Principles of SAs . 190
5.13.2.2 SA parameters. 192
5.13.2.3 Creating an SA . 194
5.13.3 Key derivation functions . 195
5.13.3.1 KDFs overview . 195
5.13.3.2 IKEv2-based iterative KDF . 195
5.13.3.3 HMAC-based KDFs . 196
5.13.3.4 AES-XCBC-PRF-128 IKEv2-based iterative KDF . 197
5.13.4 Using IKEv2-SCSI to create an SA . 198
5.13.4.1 Overview. 198
5.13.4.2 IKEv2-SCSI Protocol summary . 201
5.13.4.3 IKEv2-SCSI Authentication. 204
5.13.4.3.1 Overview. 204

5.13.4.3.2 Pre-shared key authentication. 205
5.13.4.3.3 Digital signature authentication . 205
5.13.4.3.3.1 Overview. 205
5.13.4.3.3.2 Certificates and digital signature authentication .206
5.13.4.3.3.3 Example of certificate use for digital signature authentication. 206
5.13.4.3.3.4 Handling of the Certificate Request payload and the Certificate payload . 207
5.13.4.3.4 Constraints on skipping the Authentication step. 207
5.13.4.4 Summary of IKEv2-SCSI shared keys nomenclature and shared key sizes . 209
5.13.4.5 Device Server Capabilities step. 210
5.13.4.6 IKEv2-SCSI Key Exchange step . 212
5.13.4.6.1 Overview. 212
5.13.4.6.2 Key Exchange step SECURITY PROTOCOL OUT command. 212
5.13.4.6.3 Key Exchange step SECURITY PROTOCOL IN command. 213
5.13.4.6.4 Key Exchange step completion . 214
5.13.4.6.5 After the Key Exchange step . 214
5.13.4.7 IKEv2-SCSI Authentication step. 214
5.13.4.7.1 Overview. 214
5.13.4.7.2 Authentication step SECURITY PROTOCOL OUT command . 215
5.13.4.7.3 Authentication step SECURITY PROTOCOL IN command . 216
5.13.4.8 Generating shared keys . 217
5.13.4.8.1 Overview. 217
5.13.4.8.2 Generating shared keys when the Authentication step is skipped . 218
5.13.4.8.3 Generating shared keys when the Authentication step is processed . 218
5.13.4.8.4 Initializing shared key generation . 218
5.13.4.8.4.1 Initializing for SA creation shared key generation . 218
5.13.4.8.4.2 Initializing for generation of shared keys used by the created SA. 219
5.13.4.8.5 Generating shared keys used for SA management. 219
5.13.4.8.6 Generating shared keys for use by the created SA. 220
5.13.4.9 IKEv2-SCSI SA generation. 221
5.13.4.10 Abandoning an IKEv2-SCSI CCS. 222
5.13.4.11 Deleting an IKEv2-SCSI SA . 223
5.13.5 Security progress indication . 223
5.13.6 Command security. 224
5.13.6.1 Overview. 224
5.13.6.2 Secure CDB Originator class. 224
5.13.6.3 Secure CDB Processor class . 224
5.13.6.4 Enforcement Manager class. 225
5.13.6.5 Security Manager class . 225
5.13.6.6 The relationship between SAs and command security. 226
5.13.6.7 Capability-based command security technique . 226
5.13.6.7.1 Overview. 226
5.13.6.7.2 Security Manager class . 229
5.13.6.7.3 CbCS Management Device Server class . 230
5.13.6.7.3.1 CbCS Management Device Server class overview . 230
5.13.6.7.3.2 Decision Database attribute . 230
5.13.6.7.4 CbCS Management Application Client class . 230
5.13.6.7.5 Secure CDB Originator class. 230
5.13.6.7.6 Secure CDB Processor class . 230
5.13.6.7.7 Enforcement Manager class. 231
5.13.6.7.8 CbCS methods . 232
5.13.6.7.8.1 Overview. 232
5.13.6.7.8.2 The BASIC CbCS method . 232
5.13.6.7.8.3 The CAPKEY CbCS method . 233
5.13.6.7.9 CbCS trust assumptions. 233
5.13.6.7.10 CbCS security tokens . 234
5.13.6.7.11 CbCS shared keys. 235
5.13.6.7.11.1 Overview. 235

5.13.6.7.11.2 CbCS shared key identifiers . 236
5.13.6.7.11.3 Specifying which CbCS shared key to change. 236
5.13.6.7.11.4 Updating a CbCS master key . 237
5.13.6.7.11.5 Changing a CbCS working keys. 237
5.13.6.7.12 CbCS credentials. 237
5.13.6.7.12.1 Overview. 237
5.13.6.7.12.2 CbCS capability key computations for the secure CDB originator . 238
5.13.6.7.12.3 CbCS capability key computations for general use . 238
5.13.6.7.13 CbCS capability descriptors . 239
5.13.6.7.13.1 Overview. 239
5.13.6.7.13.2 CbCS extension descriptor validation. 239
5.13.6.7.13.3 CAPKEY CbCS method capability integrity validation. 240
5.13.6.7.14 Association between commands and permission bits . 241
5.13.6.7.15 CbCS parameters. 244
5.13.6.7.15.1 Overview. 244
5.13.6.7.16 CbCS extension descriptor format. 246
5.13.7
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.

Loading comments...