Persistent Reserve In (5Eh)

Persistent Reserve In (5Eh) returns information about active registrations or an active reservation. You can use Persistent Reserve In to help resolve contention among multiple initiators and multiple-port targets within the system.

Service Action

00h = Returns Read Keys Data

01h = Returns Read Reservation Data

02h = Returns Report Capabilities Data

03h through 1Fh are reserved.

Allocation Length

Indicates the space reserved for the returned parameter list. If the length is not sufficient to contain the entire parameter list, the parameter list will be incomplete. However, a partial list is not an error

Read Keys Data

The Read Keys Data is a list of all the currently registered reservation keys.

PR Generation

A 32-bit counter that increments each time a Persistent Reserve Out command requests a Register, a Register and Ignore, a Clear, a Preempt, or a Preempt and Abort operation. The counter allows the application client to determine if another application client has changed the configuration.

A Power-On-Reset sets the counter to zero.

Additional Length

The number of bytes in the reservation key list.

Reservation Key List

Contains the eight-byte reservation keys registered with the library through a Persistent Reserve Out command.

Read Reservation Data

The Read Reservation Data is a description of all currently registered reservation keys.

PR Generation

A 32-bit counter that increments each time a Persistent Reserve Out command requests a Register, a Register and Ignore, a Clear, a Preempt, or a Preempt and Abort operation. The counter allows the application client to determine if another application client has changed the configuration.

A Power-On-Reset sets the counter to zero.

Additional Length

The number of bytes in the reservation descriptor list.

0 = No reservation held

16 = Active reservation data

Reservation Descriptor

Each persistent reservation for a logical unit has one reservation descriptor that has the format shown below.

Reservation Key

The reservation key for the descriptor data that follows.

Scope

Indicates whether a persistent reservation applies to an entire logical unit or to an element. The only valid value is 0h.

0h = The persistent reservation applies to the logical unit

Type

3h = Exclusive access. The initiator holding the persistent reservation has exclusive access. Some commands (such as Move Medium) are only allowed for the persistent reservation holder.

6h = Exclusive Access, Registrants Only. Any currently registered initiator has exclusive access. Some commands (such as Move Medium) are only allowed for registered I_T nexuses.

Report Capabilities Data

Length

The length in bytes of the parameter data.

CRH (Compatibility Reservation Handling)

0 = The library processes the Reserve and Release commands as defined in SPC-2.

SIP_C (Specify Initiator Ports Capable)

0 = The library does not support the SPEC_I_PT bit in the Persistent Reserve Out (5Fh) command parameter data.

ATP_C (All Target Ports Capable)

0 = The library does not support the ALL_TG_PT bit in the Persistent Reserve Out (5Fh) command parameter data.

PTPL_C (Persist Through Power Loss Capable)

0 = The library does not support the persist through power loss capability for persistent reservations and the APTPL bit in the Persistent Reserve Out (5Fh) command parameter data.

TMV (Type Mask Valid)

0 = Ignore the persistent reservation type mask.

1 = The persistent reservation type mask field contains a bit map indicating which persistent reservation types the library supports.

PTPL_A (Persist Through Power Loss Activated)

0 = The library does not support the Persist Through Power Loss Activated bit.

WR_EX_AR (Write Exclusive-All Registrants)

0 = The library does not support the Write Exclusive-All Registrants persistent reservation type.

EX_AC_RO (Exclusive Access Registrants Only)

1 = The library supports this persistent reservation type.

WR_EX_RO (Write Exclusive Registrants Only)

0 = The library does not support the Write Exclusive-Registrants Only persistent reservation type.

EX_AC (Exclusive Access)

1 = The library supports this persistent reservation type.

WR_EX (Write Exclusive)

0 = The library does not support the Write Exclusive persistent reservation type.

EX_AC_AR (Exclusive Access All Registrants)

0 = The library does not support the Exclusive Access-All Registrants persistent reservation type.