Persistent Reserve Out (5Fh)

Persistent Reserve Out (5Fh) uses service actions to create, manage, or remove a persistent reservation.

The application client provides a registered reservation key that identifies the initiator. An application client may use the Persistent Reserve In (5Eh) command to obtain the reservation key for the initiator holding a persistent reservation. The client may use the Persistent Reserve Out command to preempt that persistent reservation.

Note:

For more information on command processing when the library has a persistent reservation, see Reservation Handling.

Service Action

00h = Register — registers or unregisters a reservation key.

01h = Reserve — creates a persistent reservation of the scope and type specified in Byte 2.

02h = Release — removes an active persistent reservation, if the initiator holds the persistent reservation.

03h = Clear — clears all persistent reservations for all initiators and reset all reservation keys to 0.

04h = Preempt — removes all reservations and registrations for the initiators associated with the service action reservation key in the parameter list.

05h = Preempt and Abort — perform a Preempt action and terminate all commands by initiators associated with the cleared service action reservation key. This also clears any CAP locks and contingent allegiance in effect for these initiators.

06h = Register and Ignore Existing Key — registers or unregisters a reservation key with the library.

07h = Register and Move — register a reservation key for another I_T nexus with the device server and move a persistent reservation to that I_T nexus.

Scope

Indicates whether a persistent reservation applies to an entire logical unit or to an element.

0h = The persistent reservation applies to the logical unit (library or partition). This is the only valid value.

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 initiators.

8h = Exclusive Access, All Registrants: Some commands (for example, Move Medium) are only allowed for registered I_T nexuses. Each registered I_T nexus is a persistent reservation holder.

Parameter List Length

The parameter data for the Persistent Reserve Out command includes all fields, even when a field is not required for the specified service action.

Persistent Reserve Out Parameter List

Reservation Key

An 8-byte value that identifies the initiator.

Service Action Reservation Key

This field contains information needed for five service actions: Register, Register and Ignore Existing Key, Preempt, Preempt and Abort, and Register and Move.

SPEC_I_PT (Specify Initiator Ports - not supported)

The Specify Initiator Ports bit is only applicable to the Register and Register and Ignore Service Actions:

0 = The library shall apply the registration only to the I_T nexus that sent the Persistent Reservation Out command.

1 = The additional parameter data shall include a list of Transport IDs and the library shall also apply the registration to the I_T nexus for each initiator port specified by a TransportID.

ALL_TG_PT (All Target Ports - not supported)

The All Target Ports bit is not supported and must be set to 0.

APTPL (Activate Persist Through Power Loss)

The Activate Persist Through Power Loss bit is only valid for the Register, Register and Ignore, and Register and Move service actions and is defined as follows:

0 = The library shall not preserve any persistent reservation and all registrations if power is lost and later returned.

1 = The library preserves any persistent reservation and all registrations if power is lost and later returned.

Table 2-1 Persistent Reserve Out Service Actions and Valid Parameters

Service Action Scope Type Reservation Key Service Action Res. Key ALL_TG_PT, and APTPL SPEC_I_PT

Register

Ignored

Ignored

Valid

Valid

Valid

Valid

Register and Ignore

Ignored

Ignored

Ignored

Valid

Valid

Valid

Reserve

LU_SCOPE

Valid

Valid

Ignored

Ignored

Ignored

Release

LU_SCOPE

Valid

Valid

Ignored

Ignored

Ignored

Clear

Ignored

Ignored

Validy

Ignored

Ignored

Ignored

Preempt

LU_SCOPE

Valid

Valid

Valid

Ignored

Ignored

Preempt Abort

LU_SCOPE

Valid

Valid

Valid

Ignored

Ignored.

Register and Move

LU_SCOPE

Valid

Valid

Valid

Valid

Ignored

Table 2-2 Service Action Reservation Key Information

If the service action is... Then the information in the field is the...

Register

New reservation key to be registered.

Register and Ignore Existing Key

New reservation key to be registered.

Preempt

Reservation key of the persistent reservation being preempted.

Preempt and Abort

Reservation key of the persistent reservation being preempted.

Register and Move

Reservation key to be registered on the specified I_T nexus.