FC-4 (FCP) Features
96122 • Revision: F Chapter 5 Fibre Channel Operations 79
To determine if an OPN was “successful,” the NL_Port must be able to:
1. Detect when an OPN has not been intercepted by the designated AL_PA.
2. Detect that an R_RDY or CLS has not been received from the AL_PA specified in
an OPN within E_D_TOV of sending that OPN.
3. Detect that a CLS was received in response to the OPN.
In this case, the Target Discovery procedure should be retried at a later time.
4. Detect that the OPN or frame Extended Link Service failed.
If the SCSI Target Discovery procedure revealed a Hard Address conflict (such as
an NL_Port was unable to acquire its hard address), then the application may
choose to operate in spite of that conflict.
If this is the case, then the discovery procedure can continue with the PRLI and
subsequent SCSI INQUIRY command.
If the application is not tolerant of Hard Address conflicts, the SCSI initiator may
choose not to use that NL_Port.
Using this SCSI Target Discovery procedure, the SCSI initiator has the ability to
assemble a database consisting of Node name, Port name, and N_Port ID.
There are several confirmations a SCSI initiator can perform on that database to
determine which SCSI targets it can continue to communicate with, but this
document does not define them.
Note: Not all initiators perform the exact steps described in the above algorithm.
However, a SCSI initiator is required to issue ADISC or PDISC to all SCSI targets it
is logged in with within RR_TOV of receiving LIP if it wants to remain logged in
with those SCSI Targets.
The ADISC/PDISC procedure is designed to avoid the abnormal termination of all
open Exchanges when a new device is attached to the loop or when a device
powers on.
Note: Because devices are not required to respond to Class 3 frames that have a
D_ID that does not match the full 24-bit N_Port identifier of the receiving NL_Port,
timeouts might occur during the SCSI target discovery process if a SCSI initiator
sends a frame to a Public NL_Port using a D_ID of 0000h || AL_PA or to a Private
NL_Port using a D_ID with the upper 16 bits non-zero. Therefore, for performance
reasons, SCSI initiators should originate PDISC or ADISC Exchanges by
transmitting the ELS Sequence, without waiting for the response. SCSI initiators
might need to originate multiple concurrent Exchanges to hide multiple timeouts
from the user.