Fibre Channel Interface Manual, Rev. D 47
replaced, that port has won arbitration of the loop and is free to open the loop between its receiver and trans-
mitter and is also free to stop retransmitting received transmission words. This means the NL_Port is no longer
in repeat mode and all words transmitted on its outbound fiber are generated by the NL_Port.
When operating in full duplex mode, the port that wins arbitration sends out a special primitive signal called
OPNyx to select a destination port on the loop and to identify the port sending the OPNyx primitive signal. The
“y” value of OPNyx is the arbitrated loop physical address of the destination device (AL_PD). If a port receives
an OPNyx and recognizes its AL_PD, the L_Port opens the loop at its L_Port. This L_Port and the one that
sent the OPNyx begin normal FC-2 protocols.
When the port that won arbitration and sent the OPNyx to initiate communication between itself and another
L_Port wants to close communication with the port, it uses another primitive signal called close (CLS) to signal
the other port of its intent to close the loop. The receiving L_Port finishes its work and then transmits a CLS
back to the originating L_Port. At this point, the two ports return to the monitoring state, and other L_Ports can
start communicating.
When operating in half duplex mode, OPNyy only identifies the destination port; therefore, the sending port
cannot be determined.
8.3.1 Access fairness
So what happens when two or more ports happen to request access to the loop at exactly the same time? Or
what happens when one port has already won access to the loop and others then want to arbitrate to win
access? The answers lie in the access fairness algorithm that most NL_Ports on a loop use. This access fair-
ness algorithm ensures that all participating NL_Ports will have equal access to the loop. NL_Ports that use the
access fairness algorithm are called “fair” NL_Ports. Seagate Fibre Channel drives fully implement the access
fairness algorithm.
Remember that each L_Port can continuously arbitrate to access the loop. Each L_Port has a priority assigned
to it based on its’ Arbitrated Loop Physical Address (AL_PA). AL_PA “01” has the highest priority for an
NL_Port and AL_PA “EF” has the lowest priority (except for the special arbitration primitive signal ARB(F0) dis-
cussed below). See section 8.1 for additional information about AL_PAs. The access fairness algorithm cre-
ates an access window in which all L_Ports are given an opportunity to arbitrate and win access to the loop
regardless of its’ assigned priority. After all L_Ports have had an opportunity to win access to the loop, a new
access window is started; however, all L_Ports don’t have to actually choose to win access, they just have to
be given the opportunity to win access in each access window.
When a fair L_Port has arbitrated for and won access to the loop, that L_Port will not arbitrate again until it
receives at least one Idle. The time between the first L_Port to win arbitration and transmitting an Idle is an
access window. A special arbitration Primitive Signal (ARB(F0)) prevents the access window from being reset
too early.
When a fair NL_Port has arbitrated for and won access to the loop and does not detect that another L_Port is
arbitrating, it may keep the existing circuit open indefinitely or close the circuit and retain control of the loop
(without rearbitrating) to open another L_Port on the loop.
How does the open NL_Port know when another port is arbitrating? The open NL_Port transmits ARB(F0)
primitive sequences and monitors to see if its ARB(F0) is replaced by a higher priority address. Since xF0 is
the lowest-priority address, any other NL_Port that is arbitrating will replace the ARB(F0) with its’ own ARBx
(which will always be higher-priority than ARB(F0)) and the highest priority arbitrating L_Port will win arbitra-
tion. If the OPEN L_port receives the ARB(F0) back it knows that no other NL_Port is arbitrating for the loop.
Once an L_Port has won access to the loop, it may retain control of the loop indefinitely; however, if access is
denied longer than the Error Detect Timeout Value (E_D_TOV), the offended L_Port can reset the access win-
dow to force arbitration. When a Seagate drive is operating as a target, it closes the loop when it has transmit-
ted all of the frames it needed to send. Seagate drives do not hold the loop open to monitor the input stream for
ARBs.