Fibre Channel network protocols

Communication between devices in a fibre channel network uses different elements of the Fibre Channel standards. The following sections introduce the main concepts and show how a combination of primitives and frames is required.

Transmission words and ordered sets

All Fibre Channel communication is done in units of four 10-bit codes. This group of 4 codes is called a transmission word.

An ordered set is a transmission word that includes some combination of control (K) codes and data (D) codes

AL_PAs

Each device has an Arbitrated Loop Physical Address (AL_PA). These addresses are defined by an 8-bit field but must have neutral disparity as defined in the 8B/10B coding scheme. That reduces the number of possible values from 256 to 134. The 134 possible values have been divided between the fabric, FC_AL ports, and other special purposes as follows:

AL_PAQuantityPurpose
001FL (fabric) port
01-7E126NL (normal) ports
F01Used during LIP and ARB
F71Used during LIP
F81Used during LIP
F9-FE3Reserved
FF1Used for broadcasts

Meta-data

In addition to the transfer of data, it is necessary for Fibre Channel communication to include some meta-data. This allows for the setting up of links, sequence management, and other control functions. The meta-data falls into two types, primitives which consist of a 4 character transmission word and non-data frames which are more complex structures. Both are described in the following sections.

Primitives

All primitives are four characters in length. They begin with the control character K28.5, followed by three data characters. In some primitives the three data characters are fixed, in others they can be varied to change the meaning or to act as parameters for the primitive. In some cases the last two parameter characters are identical.

Parameters are shown in the table below in the form of their hexadecimal 8-bit values. This is clearer than their full 10-bit (Dxx.x) form as shown in the Fibre Channel standards:

MnemonicMeaningParametersComments

ARB

Arbitrate

94F0F0Request fairness
94FFFFFill word
94yyyyRequest arbitration for AL_PA=yy
CLSClose85B5B5Ends communication, cancelling previous OPN commands.
DHDDynamic Half-Duplex8AB5B5
EOFEnd of frameSee note 1
IDLEIdle95B5B5

LIP

Loop Initialization

15F7F7Request AL_PA
15F7xxReinitialise AL_PA=xx
15F8F7Loop failure at unknown AL_PA
15F8xxLoop failure at AL_PA=xx
15FFxxReset all, originating AL_PA=xx
15yyxxReset AL_PA=yy, originating AL_PA=xx

LPB

Loop Port Bypass

09yyxxBypass AL_PA=yy, originating AL_PA=xx
09FFxxBypass all, originating AL_PA=xx

LPE

Loop Port Enable

05yyxxEnable AL_PA=yy, originating AL_PA=xx
05FFxxEnable all, originating AL_PA=xx
LRLink Reset49BF49
LRRLink Reset Response35BF49
MRKMark5FxxxxVendor unique - clock sync, spindle sync etc.
NOSNot Operational55BF45Link has failed
OLSOffline358A55Going offline (due to received NOS or other event)

OPN

Open

91FFFFOpen broadcast replicate (see note 2)
91yyFFOpen selective replicate (see note 2)
91yyxxOpen full duplex between AL_PA=xx and AL_PA=yy
91yyyyOpen half duplex to AL_PA=yy
R_RDYReceiver_Ready954949
SOFStart of frameB5ccccSee note 3

SYN

Synchronise

7FxxxxClock Synchronization word X
BFyyyyClock Synchronization word Y
DFzzzzClock Synchronization word Z
VC_RDYVirtual Circuit ReadyF5vvvvWhere vv is the virtual circuit ID

Note 1: The first parameter byte of the EOF primitive can have one of four different values (8A, 95, AA, or B5). This is done so that the EOF primitive can rebalance the disparity of the whole frame. The remaining two parameter bytes define whether the frame is ending normally, terminating the transfer, or is to be aborted due to an error.

Note 2: The Open selective replicate variant can be repeated a number of times in order to communicate with more than one destination port simultaneously. The Open broadcast replicate variant will allow communication with all ports simultaneously.

Note 3: The SOF primitive contains a pair of control bytes (shown as cccc in the table) to designate the type of frame.

Frames

The Fibre Channel protocol transmits data in frames each of which can contain up to 2112 bytes of payload data. The structure of a frame is shown in this table:

FieldLength
SOF - Start Of Frame4
Extended header(s)0 or more
Routing Control1
Destination ID3
Class-Specific Control / Priority1
Source ID3
Data Structure Type1
Frame Control3
Sequence ID1
Data Field Control1
Sequence Count2
Originator Exchange ID2
Responder Exchange ID2
Parameter4
Data field0 to 2112
CRC - Cyclic redundancy Check4
EOF - End of Frame4

In addition to data frames, there are non-data frames that are used for setup and messaging purposes. These fall into three categories, link control frames, link service frames, and extended link service frames. The following table lists the most common ones:

MnemonicFrame typeMeaning
ABTSLink serviceAbort Sequence
ACKLink controlAcknowledge data frame (success)
BA_ACCLine serviceBasic accept
BA_RJTLink serviceBasic reject
F_BSYLink controlFabric busy
F_RJTLink controlFabric frame reject
FLOGIExtended link serviceFabric login
NOPLink serviceNo Operation
P_BSYLink controlPort busy
P_RJTLink controlPort frame reject
PLOGIExtended link servicePort login
PRLIExtended link serviceProcess login
PRLOExtended link serviceProcess logout
PRMTLink serviceDedicated connection preempted
RMCLink serviceRemove connection
RSIExtended link serviceRequest sequence initiative

See also


This article is issued from Wikipedia - version of the Tuesday, November 24, 2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.