Persistent Reserve In - 5Eh

The library returns information about persistent reservation and reservation keys that are currently active.
This command is only supported if the library control path is provided by a tape drive.
Note: IO blades connected to drives configured with a control path may report certain library ready conditions differently than drives without a control path configured.

This command is used in conjunction with PERSISTENT RESERVE OUT to manage persistent reservations. It can be used to retrieve a list of the current reservations and the registered reservation keys. The PERSISTENT RESERVE IN and PERSISTENT RESERVE OUT commands should not be used with the RESERVE ELEMENT and RELEASE ELEMENT commands.

The PERSISTENT RESERVE IN CDB format is shown in the following table.
Table 1: PERSISTENT RESERVE IN CDB format
Bit Byte |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
Op Code (5Eh) |
|||||||
1 |
Logical Unit Number |
Service Action |
||||||
2 |
Reserved |
|||||||
3 |
Reserved |
|||||||
4 |
Reserved |
|||||||
5 |
Reserved |
|||||||
6 |
Reserved |
|||||||
7 |
Allocation Length |
|||||||
8 |
||||||||
9 |
Control |
Field | Description |
---|---|
Service Action |
This field specifies the type of request being made as follows:
|
Allocation Length | This field specifies the byte length allowed for returning the requested data. The number of bytes returned is the lesser of the available data to return or the allocation length. |

Response data is returned depending on the requested service action.
Read Keys Response
The response for a Read Keys service action is shown the following table.
Table 2: Read Keys Response
Bit Byte |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 : 3 |
Generation |
|||||||
4 : 7 |
Additional Length (n-7) |
|||||||
Reservation Key List |
||||||||
8 : 15 |
First Reservation Key |
|||||||
: |
||||||||
n-7 : n |
Last Reservation Key |
|||||||
Field | Description |
---|---|
Generation |
This field is a 32-bit counter that is incremented every time a PERSISTENT RESERVE OUT command requests a Register, a Register and Ignore Existing Key, a Clear, a Preempt, or a Preempt and Abort service action. This counter is not maintained across power cycles. |
Additional Length |
This field indicates the length in bytes of the Reservation Key List. |
Reservation Key List |
This is a list of all the 8-byte reservation keys that have been registered through the PERSISTENT RESERVE OUT command. |
Read Reservations Response
The response for a Read Reservations service action is shown in the following table.
Table 3: Read Reservations Response
Bit Byte |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 : 3 |
Generation |
|||||||
4 : 7 |
Additional Length (0 or 0010h) |
|||||||
Reservation Descriptor |
||||||||
8 : 15 |
Reservation Key |
|||||||
16 : 19 |
Scope-Specific Address |
|||||||
20 |
Reserved |
|||||||
21 |
Scope |
Type |
||||||
22 |
Obsolete |
|||||||
23 |
Field | Description |
---|---|
Generation |
This field is a 32-bit counter that is incremented every time a PERSISTENT RESERVE OUT command requests a Register, a Register and Ignore Existing Key, a Clear, a Preempt, or a Preempt and Abort service action. This counter is not maintained across power cycles. |
Additional Length |
This field indicates the length in bytes of the Reservation Descriptor, which may return 0 or 0010h (16). Since element reservations are not supported, a single reservation descriptor is returned for logical unit. |
Reservation Key |
This is the 8-byte reservation key that was registered through the PERSISTENT RESERVE OUT command. |
Scope-Specific Address |
Element reservations are not supported and this field returns 0000h. |
Scope |
This field returns a 0h, indicating logical unit scope. Element scope is not supported. |
Type |
This field returns the type of reservation as follows:
|
Report Capabilities Response
This response contains a bit map that indicates the persistent reservation types that are supported by the device server.
Table 4: Report Capabilities Response
Bit Byte |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
Length (0008h) |
|||||||
1 |
||||||||
2 |
Reserved |
CRH |
SIP_C |
ATP_C |
Rsvd |
PTPL_C |
||
3 |
TMV |
Reserved |
PTPL_A |
|||||
4 |
WR_EX_AR |
EX_AC_RO |
WX_EX_RO |
Rsvd |
EX_AC |
Rsvd |
WR_EX |
Rsvd |
5 |
Reserved |
EX_AC_AR |
||||||
6 |
Reserved |
|||||||
7 |
Field | Description |
---|---|
Length |
This field reports 8 bytes of data. |
CRH |
A compatible reservation handling (CRH) bit set to one indicates that the device server supports the exceptions to the SPC-defined RESERVE commands and RELEASE commands. A CRH bit set to zero indicates that RESERVE commands and RELEASE commands are processed as defined in the SPC. |
SIP_C |
A specify initiator ports capable (SIP_C) bit set to one indicates that the device server supports the SPEC_I_PT bit in the PERSISTENT RESERVE OUT command parameter data. An SIP_C bit set to zero indicates that the device server does not support the SPEC_I_PT bit in the PERSISTENT RESERVE OUT command parameter data |
ATP_C |
An all target ports capable (ATP_C) bit set to one indicates that the device server supports the ALL_TG_PT bit in the PERSISTENT RESERVE OUT command parameter data. An ATP_C bit set to zero indicates that the device server does not support the ALL_TG_PT bit in the PERSISTENT RESERVE OUT command parameter data. |
PTPL_C |
A persist through power loss capable (PTPL_C) bit set to one indicates that the device server supports the persist through power loss capability for persistent reservations and the APTPL bit in the PERSISTENT RESERVE OUT command parameter data. An PTPL_C bit set to zero indicates that the device server does not support the persist through power loss capability. |
TMV |
A type mask valid (TMV) bit set to one indicates that the PERSISTENT RESERVATION TYPE MASK field contains a bit map indicating which persistent reservation types are supported by the device server. A TMV bit set to zero indicates that the PERSISTENT RESERVATION TYPE MASK field shall be ignored. |
PTPL_A |
A Persist Through Power Loss Activated (PTPL_A) bit set to one indicates that the persist through power loss capability is activated. A PTPL_A bit set to zero indicates that the persist through power loss capability is not activated |
WR_EX_AR |
A Write Exclusive – All Registrants (WR_EX_AR) bit set to one indicates that the device server supports the Write Exclusive – All Registrants persistent reservation type. An WR_EX_AR bit set to zero indicates that the device server does not support the Write Exclusive – All Registrants persistent reservation type. |
EX_AC_RO |
An Exclusive Access – Registrants Only (EX_AC_RO) bit set to one indicates that the device server supports the Exclusive Access – Registrants Only persistent reservation type. An EX_AC_RO bit set to zero indicates that the device server does not support the Exclusive Access – Registrants Only persistent reservation type. |
WX_EX_RO |
A Write Exclusive – Registrants Only (WR_EX_RO) bit set to one indicates that the device server supports the Write Exclusive – Registrants Only persistent reservation type. An WR_EX_RO bit set to zero indicates that the device server does not support the Write Exclusive – Registrants Only persistent reservation type. |
EX_AC |
An Exclusive Access (EX_AC) bit set to one indicates that the device server supports the Exclusive Access persistent reservation type. An EX_AC bit set to zero indicates that the device server does not support the Exclusive Access persistent reservation type. |
WR_EX |
A Write Exclusive (WR_EX) bit set to one indicates that the device server supports the Write Exclusive persistent reservation type. An WR_EX bit set to zero indicates that the device server does not support the Write Exclusive persistent reservation type. |
EX_AC_AR |
An Exclusive Access – All Registrants (EX_AC_AR) bit set to one indicates that the device server supports the Exclusive Access – All Registrants persistent reservation type. An EX_AC_AR bit set to zero indicates that the device server does not support the Exclusive Access – All Registrants persistent reservation type. |
Report Full Status
The response for a Report Full Status service action is shown in the following table.
Table 5: Report Full Status
Bit Byte |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 : 3 |
Generation |
|||||||
4 : 7 |
Additional Length (n-7) |
|||||||
Full Status Descriptors (see Table 6) |
||||||||
8 : 15 |
First Full Status Descriptor |
|||||||
: |
||||||||
n - 7 : n |
Last Full Status Descriptor |
|||||||
Field | Description |
---|---|
Generation | This field is a 32-bit counter that is incremented every time a PERSISTENT RESERVE OUT command requests a Register, a Register and Ignore Existing Key, a Clear, a Preempt, or a Preempt and Abort service action. This counter is not maintained across power cycles. |
Additional Length (n-7) |
This field indicates the length in bytes of the Reservation Descriptor, |
Full Status Descriptor | The response for a Full Status Descriptor is shown in the table below. |
Table 6: Full Status Descriptor
Bit Byte |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 : 7 |
Reservation Key |
|||||||
8 : 11 |
Reserved |
|||||||
12 |
Reserved |
ALL_TG_PT (0) |
R_Holder |
|||||
13 |
Scope |
Type |
||||||
14 : 17 |
Reserved |
|||||||
18 |
Relative Target Port Identifier |
|||||||
19 |
||||||||
20 : 23 |
Additional Descriptor Length |
|||||||
24 : n |
Transport ID |
|||||||
Field | Description |
---|---|
Reservation Key | This is the 8-byte reservation key that was registered through the PERSISTENT RESERVE OUT command. |
ALL_TG_PT (0) | This bit is not supported and is ignored. |
R_Holder |
Set to 1 to indicate that the I-T nexus is a Persistent Reservation Holder. |
Scope | This field returns a 0h, indicating logical unit scope. Element scope is not supported. |
Type |
This field returns the type of reservation as follows:
|
Relative Target Port Identifier | Relative target port identification descriptor (Table 11 |
Transport _ID |
See details in PERSISTENT RESERVE OUT command (Persistent Reserve In - 5Eh and Persistent Reserve In - 5Eh). |