3.16 Operation of the FC-AL

only for RuBoard - do not distribute or recompile

3.16 Operation of the FC-AL

3.16.1 Primitive Signals

Primitive signals are sent by a transmitting port, and recognized and acted on by a receiving port.

Table  3-3. Primitive Signals

Signal

Description

ARB(x)

Arbitrate address x for loop control

OPN(y)

Open one other NL_Port

- - Full duplex


- - Half duplex


OPN(r)

Replicate

- - Broadcast


- - Selective replicate or multicast


CLS

Close the circuit at the NL_Port

MRK(tx)

Synchronization signal t from x

Note

The ˜x is the address of the port wanting to own the loop and the y is the address of the port to be opened.



3.16.2 Primitive Sequences

Primitive sequences are not recognized or acted on until the third consecutive occurrence of the ordered set. Currently, there are only three primitive sequences used:

  • LIP Loop Initialization

  • LPB Loop Port Bypass

  • LPE Loop Port Enable

The LIP sequence allows for discovery of ports on the loop. This means that when a new node is connected to a loop, the LIP sequence discovers it and allows for the new node to be initialized on the loop.

3.16.3 Arbitrated Loop Physical Address (AL_PA)

All ports have a 24-bit native address identifier, called the N_Port ID. The AL_PA is in the lower eight (8) bits of this identifier. The lower the 8-bit address, the higher the priority is for arbitrating. An 8-bit field can have values from 0 “255, or 256 values. However, not all of these are used for physical addresses.

AL_PA values must have neutral disparity. (Remember that 8B/10B encoding has positive, negative, or neutral disparity.) There are only 134 neutral disparity values out of the set of 256 8-bit addresses. 126 values, of the 134, are used for port addresses and 8 are used for control functions. Hewlett-Packard uses addresses 00-EF. See Table 3-4 for further reference.

The upper 16 bits are non-zero for public ports on a public loop but are zero for ports on a private loop. This is how the loop determines whether it is talking publicly or privately.

Table  3-4. AL_PA Values

Value

Description

00

Reserved for FL_Port (high priority)

01-EF

Available for active NL_Ports (126 valid neutral disparity values)

F0

Reserved for access fairness algorithm ( lowest priority)

F1-F6

Invalid

F7

Used with initialization primitive sequences

F8

Used with initialization primitive sequences

F9-FE

Reserved (3 valid)

FF

Replicate request (low priority) or to address ALL

3.16.4 Loop States and Operation

3.16.4.1 Operation Over view

There is a controlled arbitration process for a port to gain control of an arbitrated loop. The Open NL_Port selects a destination NL_Port on the loop before a frame is transmitted. The arbitrating port releases control of the loop when frame transmission is complete.

A port gains ownership of the loop by an arbitration process. The port winning arbitration sends an OPN primitive to the destination node, and enters the Opened state. Upon receiving the OPN primitive, the destination node also enters the Opened state. The loop is now in a point-to-point configuration. Either of the open ports can now send command or data frames .

After completing the information exchange, the port that won arbitration sends a CLS primitive to the destination port. Both ports now return to the monitoring state.

3.16.4.2 The Monitoring State

After port initialization, all ports start in the monitoring state, the loop is idle, no data is being transmitted, and there is no activity. The loop at this time is considered to be closed. While in the monitoring state, ports act as repeaters and are looking for primitive signals and sequences to act upon. Before any port arbitrates for the loop, the loop is filled with Idles.

3.16.4.3 The Arbitration Process

To begin the arbitration process, a port, in this example Port A, sends the primitive signal ARB(a) to notify the loop of its intention to own the loop. Port A wins arbitration when the ARB(a) is returned to it. Receiving its ARB(a) means no higher priority NL_Port needs the loop at this time.

When Port A wants to acquire the loop, there can be different conditions on the loop. For example:

  • Some other port may already have control of the loop.

  • Several ports may be trying to acquire the loop at the same time.

Port A will win when:

  • No other port controls the loop, and

  • No port with a lower AL_PA address (higher priority) is arbitrating.

Once a port has acquired the loop, it opens the loop, preventing all other ports from acquiring the loop. It receives and discards all ARB(x) primitive signals.

Figure 3-20. Arbitration Process
graphics/03fig20.gif
3.16.4.4 The Open State

In this example, Port A has acquired the loop. It is now in the Open state with the loop physically open at Port A. Nothing may be done until Port A has completed a circuit with its intended destination ”in Figure 3-21, Port C.

Figure 3-21. The Open State
graphics/03fig21.gif

Port A sends the OPN primitive signal naming C with an OPN(c,a) for full duplex or an OPN(c,c) for half duplex. Port C is monitoring the loop, acting as a repeater, and listening for any ordered set pertaining to it. Once it receives the OPN primitive signal from Port A, it enters the Open state and physically opens the loop at its port.

The loop is now open between Port A and C and is considered to be a point-to-point connection.

3.16.4.5 Open Loop

Both Port A and Port C have opened the loop. Upper level protocol frames and link control frames may now be sent back and forth.

The circuit formed is essentially a point-to-point link between A and C. This is a dedicated path for the duration of the transaction.

Ports B and D are acting as repeaters, but are listening for specific ordered sets as before.

Figure 3-22. Open Loop
graphics/03fig22.gif
3.16.4.6 Closing the Loop

Either one of the Open ports may initiate the closing procedure by sending a CLS primitive signal to the other. In this example, Port A initiates the closing by sending the CLS signal.

Once a port has sent a CLS primitive signal, it may not send frames or R_RDYs. However, it may still receive frames and R_RDYs.

The port receiving the first CLS primitive signal ”here, Port C ”does not have to close its circuit right away. It may continue to send frames. Once its operation is complete, it sends a CLS primitive signal back to the other port, Port A.

Port C closes when it sends the CLS to Port A and Port A closes when it receives the CLS from Port C. The loop is now closed, with both ports returning to the monitoring state.

Figure 3-23. Closing the Loop
graphics/03fig23.gif

Once the loop is closed it returns to the monitoring or idle state shown in Figure 3-19. There is no activity and all nodes are retransmitting idle signals. When the loop is closed, other ports may acquire the loop.

Figure 3-19. Monitoring or Idle State
graphics/03fig19.gif

Access fairness provides other ports on the loop have one chance to acquire the loop before the port that just owned the loop can acquire the loop again. Access fairness does not imply time fairness. In other words, a port may hold on to the loop as long as it is transmitting frames.

only for RuBoard - do not distribute or recompile


Storage Area Networks. Designing and Implementing a Mass Storage System
Storage Area Networks: Designing and Implementing a Mass Storage System
ISBN: 0130279595
EAN: 2147483647
Year: 2000
Pages: 88

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net