- Shopping Bag ( 0 items )
When the Ports have all made the transition to the Active state, it is possible to begin procedures to initialize the Loop, assigning Arbitrated Loop Physi- cal Addresses (AL PA values) to each Port. If the two NL Ports in this example were N Ports (i.e., they didn't incorporate Arbitrated Loop func- tionality), processing would skip to the steps described in the "Fabric and N -Port Login" section, on page 49.
When the Loop Port state machine (LPSM) has detected that the Ports are in the Active state, without loop initialization, the Ports continuously transmit a "Loop Initialization Primitive, no valid AL PA" (LIP) Ordered Sequence. Receipt of three consecutive Ordered Sets of this type causes the LPSM to transition into the OPEN-INIT state, triggering the Ports go through the procedure to select a temporary loop master and determine AL-PA values.
After transitioning into the OPEN-INIT state, the NL Port transmits an LISM Frame and monitors the receiver for an LISM Frame received. This Frame consists of a stream of transmission characters in the form of a normal Data Frame, as shown in Figure 7.1. The Payload of each LISM Frame, shown in Figure 16.2, contains the transmitting NL Port's Port _Name. Each Port Name is an 8-byte value, guaranteed to be unique worldwide.
At this point, each NL Port is transmitting an LISM Frame and monitoring the incoming fiber for a similar Frame received. All the time they are doing anything other than transmitting Frames, they will transmit the Idle Ordered Set. The Frames are transmitted using Class 3 rules, so there are no Link Control Frames traveling in the opposite direction. When each NL Port receives the first LISM Frame from the other Port, it compares the Port-Name contained in the Frame to its own Port _Name to decide which has the higher priority. If the received Port-Name has higher priority, it will forward the received LISM on. Otherwise, it will transmit its own LISM again. If the Port-Name in the received LISM is its own, it becomes the loop master.
Suppose that the computer's NL Port has the higher priority. The drive's NL Port, seeing the higher priority LISM arriving, will forward it around the loop. The computer's NL Port, seeing a lower-priority LISM arriving, will discard it and transmit an LISM with its own Port-Name. Very soon, the computer's NL Port will receive an LISM containing its own Port Name and will know that it is the loop master for the purposes of Loop initialization.
As loop master, it is the computer NL Port's responsibility to initiate the four loop initialization Frames (LIFA, LIPA, LIHA, and LISA) to allow the NL Ports to determine AL PA addresses. The procedure for assigning AL PA values provides four different ways to have addresses assigned. The NL Ports may either (1) remember an address assigned by an attached Fabric (LIFA), (2) remember an address assigned by some other means (LIPA), (3) have some hard-wired preference for an address (LIHA), or (4) take an address left over after all other higher priority assignment methods have reserved their own AL PA values (LISA).
The LIFA, LIPA, LIHA, and LISA Frames are used to collect AL PA values for each of these four assignment methods. They are each passed around the loop, with each NL Port reserving an AL PA value by setting a bit in one of the Frames. The Payload contains a field slightly larger than 127 bits, to contain bit masks for the 127 valid AL-PA values on the network.
At this point, assume that the computer's NL Port remembers that the last time it was powered on it had an AL PA value of x'01' and that the drive's NL Port also has a hard-wired preference for the AL-PA value x'01.'
The computer's NL Port transmits a LIFA Frame, a blank Payload, since it was not assigned an address by a Fabric. The NL Port receives the Frame and passes it back to the NL Port unmodified, since it had no Fabricassigned AL PA value either. After receiving the Frame back, the computer's NL Port transmits a LIPA Frame with the bit corresponding to the AL-PA value x'01' set to 1, to express its request for that value. The drive's NL Port passes this Frame on unmodified too, since it has no previously assigned address.
The NL Port then transmits the LIHA Frame, with the bit for x'01' still set to 1, since this is a cumulative address collection. The drive's NL Port receives the LIRA and would set the bit for x'01' to 1, but it sees that this value is already taken, so it passes on the Frame unmodified. The computer's NL Port then transmits an identical LISA Frame, with the bit for AL PA x'01' set to 1. The drive's NL Port receives the Frame, sees that the bit for x'01' is taken, so it sets the next available AL PA, which is x'02.' The computer's NL Port receives the LISA Frame back with the 2 bits set for AL PA values x'01' and x'02,' so it knows that it is on a two-port loop.
On this small network, it is known where the AL PA values physically live, but the LIFAs through LISA Frames do not inherently have any spatial information, and it's useful to know where the different AL PA values are located around the network. The LIRP and LILP Frames are used for this. The computer's NL Port sets an offset count to x'01,' sets the first byte in the 128-byte AL PA position map field to its own AL PA value, and passes it on. The drive's NL Port receives the LIRP Frame, increments the count to x'02,' then fills in the second byte with its own AL PA value, and forwards it. When the computer's NL Port receives the LIRP Frame, it forwards it on as a LILP Frame, reporting the Address map to every other Port on the loop. At this point, both NL Ports have valid AL PA address maps for the entire loop, and although the drive's NL Port doesn't have the preferred hard-wired AL PA value, it can still be addressed by every other NL Port on the loop.
On an Arbitrated Loop, we would normally have to worry about the arbitration mechanism for determining which Ports have access to the Loop resources at any particular time. We would also have to consider the method a Port uses to release the Loop resources once it is finished communicating. In this case, though, since we have only two Ports, we don't have to worry about other Ports needing access to the loop. Therefore, we can arbitrate for the Loop once and be done with it.
Arbitration for the loop operates similarly to the operation for the LISM arbitration to determine the loop master. Each Port monitors the incoming fiber for an ARBx Ordered Set and either forwards it on or, if it wants loop access and has higher priority, replaces the ARBx received with its own ARBx (x indicates the AL PA value).
In the example, both NL Ports try to arbitrate for the Loop simultaneously. Both transmit an ARBx Ordered Set, and monitor the incoming fiber for other ARBx Ordered Sets to decide whether to forward or replace any incoming ARBx Ordered Sets having lower priority with their own. The computer's NL Port is using AL PA x'01,' so it transmits an ARB(01), and receives the ARB(02) from the other NL Port. The x'02' value is lower priority than x'01,' so the computer's NL Port discards the ARB(02) and replaces it with ARB(O1). The NL Port at the drive is forwarding the ARB(O1) as higher priority, so as soon as the computer's NL Port receives its own ARB, it knows that it owns the loop. Therefore, it goes into the OPEN state, as shown in Figure 16.4. It then sends the OPNyx Primitive Signal with y = x'02' and x='O1' (OPN(02,01)), so that the drive's NL Port transitions to the OPENED state.
In the OPEN and OPENED state, with no other L Ports arbitrating for access, the two Ports are engaged in the equivalent of a Point-to-point topol- ogy, and further communication is carried out independently of the fact that both Ports have the capability of operating as L_ports. We will not discuss Arbitrated Loop anymore in this section, except to state that _i1 there were other L -Ports on the loop, Frame transmission would be identical to a Point- to-point topology, except that in the space between Frames arbitration sig- nals may be transmitted.....
|Ch. 1||Fibre Channel and Storage Area Networks||1|
|Ch. 3||Initialization and Data Transfer||43|
|Ch. 4||FC-0: Physical Interface||59|
|Ch. 5||FC-1: 8B/10B, Transmitters, and Receivers||75|
|Ch. 6||Ordered Sets||89|
|Ch. 7||FC-2: Frames||107|
|Ch. 8||FC-2: Sequences and Exchanges||143|
|Ch. 9||Login and Logout Services||157|
|Ch. 10||Classes of Service||181|
|Ch. 11||Link Services||195|
|Ch. 12||Error Detection and Recovery||217|
|Ch. 13||Optional Headers and Special Functions||241|
|Ch. 14||Class 1 Connection Management||247|
|Ch. 15||Flow Control||261|
|Ch. 16||Arbitrated Loop||273|
|Ch. 17||Switch Fabrics||299|
|Ch. 18||FC-4: SCSI and IP over Fibre Channel||315|
|Ch. 19||Future Work: FC-PH-?? and Beyond||333|
|App. A: References and Further Reading||343|