`
`for Information Technology –
`SCSI-3 Primary Commands (SPC)
`
`ANSI X3.301-1997
`
`American National Standards Institute
` CROSSROADS EXHIBIT 2063
`11 West 42nd Street
`Oracle Corp., et al v. Crossroads Systems, Inc.
`New York, New York
` IPR2014-01207 and IPR2014-1209
`10036
`
`1 of 182
`
`
`
`ANSI X3.301-1997
`
`for Information Technology –
`SCSI-3 Primary Commands (SPC)
`
`ANSI X3.301-1997
`
`American National Standards Institute
`11 West 42nd Street
`New York, New York
`10036
`
`1 of 182
`
`
`
`2 of182
`
`2 of 182
`
`
`
`ANSI
`X3.301-1997
`
`®
`
`American National Standard
`for Information Technology –
`SCSI-3 Primary Commands (SPC)
`
`Secretariat
`Information Technology Industry Council
`
`Approved July 3, 1997
`American National Standards Institute, Inc.
`
`Abstract
`This standard defines the device model for all SCSI devices. This standard defines the SCSI com-
`mands that are basic to every device model and the SCSI commands that may apply to any
`device model.
`The processor device model is defined in this standard. Some target SCSI devices may require a
`host implementation of the processor device model to support the Asynchronous Event Reporting
`capability defined in the SCSI-3 Architecture Model.
`
`3 of 182
`
`
`
`American
`National
`Standard
`
`Approval of an American National Standard requires review by ANSI that the
`requirements for due process, consensus, and other criteria for approval have
`been met by the standards developer.
`Consensus is established when, in the judgment of the ANSI Board of Standards
`Review, substantial agreement has been reached by directly and materially
`affected interests. Substantial agreement means much more than a simple
`majority, but not necessarily unanimity. Consensus requires that all views and
`objections be considered, and that a concerted effort be made toward their
`resolution.
`The use of American National Standards is completely voluntary; their existence
`does not in any respect preclude anyone, whether he has approved the standards
`or not, from manufacturing, marketing, purchasing, or using products, processes,
`or procedures not conforming to the standards.
`The American National Standards Institute does not develop standards and will in
`no circumstances give an interpretation of any American National Standard.
`Moreover, no person shall have the right or authority to issue an interpretation of
`an American National Standard in the name of the American National Standards
`Institute. Requests for interpretations should be addressed to the secretariat or
`sponsor whose name appears on the title page of this standard.
`CAUTION NOTICE: This American National Standard may be revised or
`withdrawn at any time. The procedures of the American National Standards
`Institute require that action be taken periodically to reaffirm, revise, or withdraw
`this standard. Purchasers of American National Standards may receive current
`information on all standards by calling or writing the American National Standards
`Institute.
`
`CAUTION: The developers of this standard have requested that holders of patents that may be required for the
`implementation of the standard disclose such patents to the publisher. However, neither the developers nor the publisher
`have undertaken a patent search in order to identify which, if any, patents may apply to this standard. As of the date of
`publication of this standard, following calls for the identification of patents that may be required for the implementation of
`the standard, notice of one or more such claims has been received. By publication of this standard, no position is taken
`with respect to the validity of this claim or of any rights in connection therewith. The known patent holder(s) has (have),
`however, filed a statement of willingness to grant a license under these rights on reasonable and nondiscriminatory terms
`and conditions to applicants desiring to obtain such a license. Details may be obtained from the publisher. No further
`patent search is conducted by the developer or publisher in respect to any standard it processes. No representation is
`made or implied that this is the only license that may be required to avoid infringement in the use of this standard.
`
`Published by
`American National Standards Institute
`11 West 42nd Street, New York, New York 10036
`Copyright 1997 by Information Technology Industry Council (ITI)
`All rights reserved.
`No part of this publication may be reproduced in any
`form, in an electronic retrieval system or otherwise,
`without prior written permission of ITI, 1250 Eye Street NW,
`Washington, DC 20005.
`Printed in the United States of America
`
`4 of 182
`
`
`
`Contents
`
`3
`3.1
`3.2
`3.3
`3.4
`4
`4.1
`4.2
`4.2.1
`4.2.2
`4.2.3
`4.2.4
`5
`5.1
`5.1.1
`5.1.2
`5.1.3
`5.1.4
`5.2
`5.3
`5.3.1
`5.3.2
`5.3.3
`5.4
`5.5
`
`Page
`Foreword................................................................................................viii
`Introduction .............................................................................................xi
`1
`Scope .....................................................................................1
`2
`Normative references ..............................................................2
`2.1
`Document and draft document availability information..............2
`2.2
`Normative approved references for mandatory features ...........2
`2.3
`Normative approved references for optional features ...............3
`2.4
`Normative references under development for
`optional features .....................................................................3
`Definitions, symbols, abbreviations, and conventions...............3
`Definitions...............................................................................3
`Acronyms................................................................................6
`Keywords................................................................................7
`Conventions............................................................................7
`General...................................................................................8
`The request-response model ...................................................8
`The Command Descriptor Block (CDB) ....................................8
`Logical block address............................................................11
`Transfer length......................................................................11
`Parameter list length .............................................................11
`Allocation length....................................................................11
`Model common to all device types .........................................11
`Commands implemented by all SCSI device servers ..............11
`Using the INQUIRY command................................................11
`Using the REQUEST SENSE command .................................12
`Using the SEND DIAGNOSTIC command ..............................12
`Using the TEST UNIT READY command................................12
`Parameter rounding...............................................................12
`Reservations .........................................................................12
`Reservation conflicts .............................................................13
`The Reserve/Release management method...........................14
`The Persistent Reservations management method.................14
`Multiple port and multiple initiator behavior ............................14
`Removable medium devices with an attached
`medium changer....................................................................15
`Model for processor devices ..................................................15
`Commands for all device types ..............................................17
`CHANGE DEFINITION command...........................................18
`COMPARE command ............................................................20
`COPY command....................................................................20
`Errors detected by the copy manager ....................................23
`Errors detected by a target servicing a copy manager ............23
`COPY function codes 0Ah and 0Bh........................................24
`COPY function code 0Ch.......................................................25
`COPY function code 0Dh.......................................................26
`i
`
`6
`7
`7.1
`7.2
`7.3
`7.3.1
`7.3.2
`7.3.3
`7.3.4
`7.3.5
`
`5 of 182
`
`
`
`Page
`COPY function code 0Eh .......................................................27
`7.3.6
`Copies with unequal block lengths .........................................28
`7.3.7
`COPY AND VERIFY command ..............................................29
`7.4
`INQUIRY command ...............................................................29
`7.5
`Standard INQUIRY data ........................................................31
`7.5.1
`SIP-specific INQUIRY data ....................................................34
`7.5.2
`Vital product data ..................................................................35
`7.5.3
`Command support data .........................................................35
`7.5.4
`LOG SELECT command ........................................................37
`7.6
`LOG SENSE command..........................................................39
`7.7
`MODE SELECT(6) command.................................................41
`7.8
`MODE SELECT(10) command...............................................43
`7.9
`MODE SENSE(6) command ..................................................43
`7.10
`Current values.......................................................................45
`7.10.1
`Changeable values................................................................45
`7.10.2
`Default values .......................................................................45
`7.10.3
`Saved values ........................................................................45
`7.10.4
`Initial responses ....................................................................45
`7.10.5
`MODE SENSE(10) command.................................................46
`7.11
`PERSISTENT RESERVE IN command ..................................46
`7.12
`PERSISTENT RESERVE IN Service Actions..........................47
`7.12.1
`7.12.1.1 Read Keys ............................................................................47
`7.12.1.2 Read Reservations................................................................47
`7.12.2
`PERSISTENT RESERVE IN parameter data for Read Keys ...47
`7.12.3
`PERSISTENT RESERVE IN parameter data for Read
`Reservations .........................................................................48
`7.12.3.1
`Persistent Reservations Scope ..............................................50
`7.12.3.1.1 LU Scope ..............................................................................50
`7.12.3.1.2 Extent Scope.........................................................................50
`7.12.3.1.3 Element Scope......................................................................50
`7.12.3.2
`Persistent Reservations Type ................................................50
`7.13
`PERSISTENT RESERVE OUT command...............................53
`7.13.1
`PERSISTENT RESERVE OUT Service Actions ......................54
`7.13.1.1 Register ................................................................................54
`7.13.1.2 Reserve ................................................................................55
`7.13.1.3 Release ................................................................................55
`7.13.1.4 Clear.....................................................................................56
`7.13.1.5
`Preempt ................................................................................56
`7.13.1.6
`Preempt and Clear ................................................................57
`7.13.2
`PERSISTENT RESERVE OUT parameter list.........................57
`7.14
`PREVENT ALLOW MEDIUM REMOVAL command.................59
`7.15
`READ BUFFER command .....................................................60
`7.15.1
`Combined header and data mode (000b) ...............................61
`7.15.2
`Vendor-specific mode (001b).................................................62
`7.15.3
`Data mode (010b) .................................................................62
`7.15.4
`Descriptor mode (011b).........................................................62
`7.16
`RECEIVE DIAGNOSTIC RESULTS command........................63
`7.17
`RELEASE(10) command .......................................................64
`7.17.1
`Logical unit release (Mandatory)............................................65
`7.17.2
`Extent release (Optional).......................................................65
`7.17.3
`Third-party release (Mandatory).............................................65
`7.18
`RELEASE(6) command .........................................................66
`7.19
`REPORT LUNS command .....................................................67
`ii
`
`6 of 182
`
`
`
`7.20
`7.20.1
`7.20.2
`7.20.3
`7.20.4
`7.21
`7.21.1
`7.21.2
`7.21.3
`7.21.4
`7.22
`7.23
`7.24
`7.25
`7.25.1
`7.25.2
`7.25.3
`7.25.4
`7.25.5
`7.25.6
`7.25.7
`8
`8.1
`8.1.1
`8.2
`8.2.1
`8.2.2
`8.2.3
`8.2.4
`8.2.5
`8.2.6
`8.3
`8.3.1
`8.3.2
`8.3.2.1
`8.3.2.2
`8.3.3
`8.3.4
`8.3.5
`8.3.6
`8.3.7
`8.4
`8.4.1
`8.4.2
`8.4.3
`8.4.4
`8.4.5
`8.4.6
`9
`9.1
`9.2
`
`Page
`REQUEST SENSE command.................................................68
`Sense-key specific ................................................................71
`Current errors .......................................................................72
`Deferred errors......................................................................72
`Sense key and sense code definitions ...................................74
`RESERVE(10) command .......................................................85
`Logical unit reservation (Mandatory) ......................................85
`Extent reservation (Optional) .................................................86
`Third-party reservation (Mandatory).......................................88
`Superseding reservations (Mandatory)...................................89
`RESERVE(6) command.........................................................89
`SEND DIAGNOSTIC command..............................................90
`TEST UNIT READY command ...............................................91
`WRITE BUFFER command....................................................92
`Combined header and data mode (000b) ...............................93
`Vendor-specific mode (001b).................................................93
`Data mode (010b) .................................................................93
`Download microcode mode (100b).........................................94
`Download microcode and save mode (101b) ..........................94
`Download microcode with offsets (110b)................................94
`Download microcode with offsets and save mode (111b)........95
`Parameters for all device types..............................................96
`Diagnostic parameters ..........................................................96
`Supported diagnostic pages ..................................................97
`Log parameters .....................................................................98
`Buffer over-run/under-run page............................................102
`Error counter pages.............................................................103
`Last ndeferred errors or asynchronous events page ............104
`Last nerror events page......................................................104
`Non-medium error page ......................................................105
`Supported log pages ...........................................................105
`Mode parameters ................................................................105
`Mode parameter header formats ..........................................106
`Mode parameter block descriptor formats ............................107
`General block descriptor format ...........................................107
`Direct-access device block descriptor format .......................108
`Mode page format ...............................................................109
`Control mode page ..............................................................110
`Disconnect-reconnect page .................................................113
`Informational exceptions control page..................................115
`Power condition page ..........................................................118
`Vital product data parameters..............................................120
`ASCII implemented operating definition page.......................120
`ASCII information page........................................................121
`Device identification page....................................................122
`Implemented operating definition page.................................124
`Supported vital product data pages......................................125
`Unit serial number page.......................................................125
`Commands for processor type devices.................................126
`RECEIVE command ............................................................127
`SEND command..................................................................127
`iii
`
`7 of 182
`
`
`
`Page
`Parameters for processor type devices ................................128
`Diagnostic parameters.........................................................128
`Log parameters ...................................................................129
`
`Typical CDB for 6-byte commands...........................................9
`Typical CDB for 10-byte commands.........................................9
`Typical CDB for 12-byte commands .......................................10
`Typical CDB for 16-byte commands .......................................10
`Commands for all device types ..............................................17
`CHANGE DEFINITION command...........................................18
`Definition parameter field ......................................................18
`COMPARE command ............................................................20
`COPY command....................................................................21
`COPY parameter list .............................................................22
`COPY function codes ............................................................22
`Segment descriptor for COPY function codes 0Ah and 0Bh....24
`Segment descriptor for COPY function code 0Ch ...................25
`Segment descriptor for COPY function code 0Dh ...................26
`Segment descriptor for COPY function code 0Eh ...................27
`Pad and Cat bit definition ......................................................28
`COPY AND VERIFY command ..............................................29
`INQUIRY command ...............................................................30
`Standard INQUIRY data format..............................................31
`Peripheral qualifier ................................................................32
`Peripheral device type...........................................................32
`ANSI version .........................................................................33
`Maximum logical device configuration table ...........................35
`Command support data format...............................................36
`Support values and meanings................................................36
`LOG SELECT command ........................................................37
`Page control field ..................................................................38
`LOG SENSE command..........................................................39
`MODE SELECT(6) command.................................................41
`MODE SELECT(10) command...............................................43
`MODE SENSE(6) command ..................................................43
`Page control field ..................................................................44
`
`10
`10.1
`10.2
`Tables
`1
`2
`3
`4
`5
`6
`7
`8
`9
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`26
`27
`28
`29
`30
`31
`32
`iv
`
`8 of 182
`
`
`
`33
`34
`35
`36
`37
`38
`
`39
`40
`41
`42
`43
`44
`45
`46
`
`47
`48
`49
`50
`51
`52
`53
`54
`55
`56
`57
`58
`59
`60
`61
`62
`63
`64
`65
`66
`
`Page
`Mode page code usage for all devices ...................................44
`MODE SENSE(10) command.................................................46
`PERSISTENT RESERVE IN command ..................................46
`PERSISTENT RESERVE IN Service Action Codes.................47
`PERSISTENT RESERVE IN parameter data for Read Keys ...48
`PERSISTENT RESERVE IN parameter data for Read
`Reservations .........................................................................49
`PERSISTENT RESERVE IN Read Reservation Descriptor .....49
`Persistent Reservation Scope Codes .....................................50
`Persistent Reservation Type Codes .......................................51
`New Persistent Reservation Conflicts With Existing ...............52
`PERSISTENT RESERVE OUT command...............................53
`PERSISTENT RESERVE OUT Service Action Codes.............54
`PERSISTENT RESERVE OUT parameter list.........................58
`PERSISTENT RESERVE OUT Service actions and
`valid parameters ...................................................................59
`PREVENT ALLOW MEDIUM REMOVAL command.................59
`PREVENT ALLOW MEDIUM REMOVAL Prevent field ............60
`READ BUFFER command .....................................................61
`READ BUFFER mode field ....................................................61
`READ BUFFER header..........................................................62
`READ BUFFER descriptor .....................................................63
`Buffer offset boundary ...........................................................63
`RECEIVE DIAGNOSTIC RESULTS command........................64
`RELEASE(10) command .......................................................65
`RELEASE(10) parameter list .................................................66
`RELEASE(6) command .........................................................66
`REPORT LUNS command .....................................................67
`LUN reporting parameter list format .......................................67
`REQUEST SENSE command.................................................68
`Response codes 70h and 71h sense data format ...................69
`Field pointer bytes.................................................................71
`Actual retry count bytes.........................................................72
`Progress indication bytes ......................................................72
`Sense key descriptions..........................................................74
`ASC and ASCQ assignments.................................................76
`
`v
`
`9 of 182
`
`
`
`Page
`RESERVE(10) command .......................................................85
`Data format of extent descriptors...........................................87
`Reservation types .................................................................87
`RESERVE(10) ID & extents parameter list .............................88
`RESERVE(10) ID only parameter list .....................................89
`RESERVE(6) command.........................................................89
`SEND DIAGNOSTIC command..............................................80
`TEST UNIT READY command ...............................................91
`Preferred TEST UNIT READY responses...............................92
`WRITE BUFFER command....................................................92
`WRITE BUFFER Mode field...................................................93
`Diagnostic page format..........................................................97
`Diagnostic page codes ..........................................................97
`Supported diagnostic pages ..................................................98
`Log page format ....................................................................99
`Log parameter.......................................................................99
`Threshold met criteria..........................................................100
`Log page codes...................................................................102
`Parameter code field for buffer over-run/under-run
`counters..............................................................................102
`Count basis definition ..........................................................103
`Cause field definition...........................................................103
`Parameter codes for error counter pages .............................104
`Non-medium error event parameter codes ...........................105
`Supported log pages ...........................................................105
`Mode parameter list.............................................................106
`Mode parameter header(6) ..................................................106
`Mode parameter header(10) ................................................106
`General mode parameter block descriptor............................107
`Direct-access device mode parameter block descriptor ........108
`Mode page format ...............................................................109
`Mode page codes ................................................................110
`Control mode page ..............................................................111
`Queue algorithm modifier ....................................................111
`Disconnect-reconnect page .................................................112
`Data transfer disconnect control ..........................................115
`
`67
`68
`69
`70
`71
`72
`73
`74
`75
`76
`77
`78
`79
`80
`81
`82
`83
`84
`85
`
`86
`87
`88
`89
`90
`91
`92
`93
`94
`95
`96
`97
`98
`99
`100
`101
`vi
`
`10 of 182
`
`
`
`102
`103
`104
`105
`106
`107
`108
`109
`110
`111
`112
`113
`114
`115
`116
`117
`118
`119
`120
`121
`Figures
`1
`2
`Annexes
`A
`A.1
`A.2
`A.3
`A.4
`A.4.1
`A.4.2
`A.4.3
`B
`C
`
`Page
`Informational exceptions control page..................................115
`Method of Reporting Informational Exceptions field ..............117
`Power condition page ..........................................................118
`Vital product data page codes..............................................120
`ASCII implemented operating definition ..............................120
`ASCII information page........................................................121
`Device identification page....................................................122
`Identification descriptor .......................................................122
`Code set .............................................................................123
`Identifier type ......................................................................123
`Device identification page example......................................124
`Implemented operating definition page.................................124
`Supported vital product data pages......................................125
`Unit serial number page.......................................................125
`Commands for processor devices ........................................126
`RECEIVE command ............................................................127
`SEND command..................................................................127
`SEND command – AER data format.....................................128
`Processor diagnostic page codes.........................................128
`Processor log page codes ...................................................129
`
`SCSI-3 document roadmap......................................................2
`Power conditions flowchart ..................................................119
`
`Procedures for logging operations in SCSI...........................130
`Logging operations terminology ...........................................130
`LOG SENSE command........................................................130
`LOG SELECT command ......................................................134
`Exception conditions during logging.....................................137
`Pseudocode 1 .....................................................................139
`Pseudocode 2 .....................................................................139
`Pseudocode 3 .....................................................................140
`Numeric order codes ...........................................................141
`Vendor identification............................................................160
`
`vii
`
`11 of 182
`
`
`
`Foreword (This foreword is not part of American National Standard X3.301-1997.)
`The SCSI command set is designed to provide efficient peer-to-peer opera-
`tion of SCSI devices (disks, tapes, printers, etc.) by an operating system. The
`SCSI command set assumes an underlying command-response protocol.
`The SCSI command set provides multiple operating systems concurrent
`control over one or more SCSI devices. However, proper coordination of
`activities between the multiple operating systems is critical to avoid data
`corruption. Commands that assist with coordination between multiple oper-
`ating systems are described in this standard. However, details of the coor-
`dination are beyond the scope of the SCSI command set.
`This standard defines the device model for all SCSI devices. This standard
`defines the SCSI commands that are basic to every device model and the
`SCSI commands that may apply to any device model.
`The processor device model is defined in this standard. Some target SCSI
`devices may require a host implementation of the processor device model
`to support the Asynchronous Event Reporting capability defined in the
`SCSI-3 Architecture Model. Thus, the SCSI processor device commands
`are defined in this standard.
`With any technical document there may arise questions of interpretation as
`new products are implemented. The NCITS Committee has established
`procedures to issue technical opinions concerning the standards devel-
`oped by the NCITS organization. These procedures may result in SCSI
`Technical Information Bulletins being published by NCITS.
`These Bulletins, while reflecting the opinion of the Technical Committee
`that developed the standard, are intended solely as supplementary infor-
`mation to other users of the standard. This standard, ANSI X3.301-1997,
`as approved through the publication and voting procedures of the
`American National Standards Institute, is not altered by these bulletins.
`Any subsequent revision to this standard may or may not reflect the con-
`tents of these Technical Information Bulletins.
`Current NCITS practice is to make Technical Information Bulletins avail-
`able through:
`Telephone: 303-792-2181 or
`Global Engineering
`800-854-7179
`15 Inverness Way East
`Facsimile: 303-792-2192
`Englewood, CO 80112-5704
`Requests for interpretation, suggestions for improvement and addenda, or
`defect reports are welcome. They should be sent to the NCITS Secretariat,
`Information Technology Industry Council, ITI, 1250 Eye Street, NW, Suite
`200, Washington, DC 20005-3922.
`This standard was processed and approved for submittal to ANSI by the
`National Committee for Information Technology Standards (NCITS).
`Committee approval of the standard does not necessarily imply that all
`committee members voted for approval. At the time it approved this stan-
`dard, NCITS had the following members:
`
`viii
`
`12 of 182
`
`
`
`James D. Converse, Chair
`Karen Higginbottom, Vice-Chair
`Kate McMillan, Secretary
`Name of Representative
`Organization Represented
`AMP, Inc. ..........................................................................Ben Bennett
`Edward Kelly (Alt.)
`Apple Computer, Inc..........................................................David K. Michael
`Jerry Kellenbenz (Alt.)
`AT&T ................................................................................Thomas F. Frost
`Bull HN Information Systems, Inc.......................................Patrick L. Harris
`Compaq Computers...........................................................John Hill
`Steve Park (Alt.)
`Digital Equipment Corporation ...........................................Scott K. Jameson
`Richard Hovey (Alt.)
`Eastman Kodak Company..................................................James D. Converse
`Michael Nier (Alt.)
`Hewlett-Packard ................................................................Karen Higginbottom
`Donald C. Loughry (Alt.)
`Hitachi America, Ltd. ........................................................John Neumann
`Kei Yamashita (Alt.)
`Hughes Aircraft Company ..................................................Harold Zebrack
`IBM Corporation ................................................................Ronald Sellitti
`Joel Urman (Alt.)
`Imation..............................................................................Philip E. Friedlu