Fibre Channel network protocols is used for communication between devices in a fibre channel network
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_PAQuantityPurpose001FL (fabric) port01-7E126NL (normal) portsF01Used during LIP and ARBF71Used during LIPF81Used during LIPF9-FE3ReservedFF1Used for broadcasts
Meta-data In addition to the transfer of data, it is necessary for Fibre Channel communication to include some metadata. 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.
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:
MnemonicMeaningParametersCommentsARBArbitrate94F0F0Request fairness94FFFFFill word94yyyyRequest arbitration for AL_PA=yyCLSClose85B5B5Ends communication, cancelling previous OPN commands.DHDDynamic Half-Duplex8AB5B5 EOFEnd of frameSee note 1 IDLEIdle95B5B5 LIPLoop Initialization15F7F7Request AL_PA15F7xxReinitialise AL_PA=xx15F8F7Loop failure at unknown AL_PA15F8xxLoop failure at AL_PA=xx15FFxxReset all, originating AL_PA=xx15yyxxReset AL_PA=yy, originating AL_PA=xxLPBLoop Port Bypass09yyxxBypass AL_PA=yy, originating AL_PA=xx09FFxxBypass all, originating AL_PA=xxLPELoop Port Enable05yyxxEnable AL_PA=yy, originating AL_PA=xx05FFxxEnable all, originating AL_PA=xxLRLink Reset49BF49 LRRLink Reset Response35BF49 MRKMark5FxxxxVendor unique - clock sync, spindle sync etc.NOSNot Operational55BF45Link has failedOLSOffline358A55Going offline (due to received NOS or other event)OPNOpen91FFFFOpen broadcast replicate (see note 2)91yyFFOpen selective replicate (see note 2)91yyxxOpen full duplex between AL_PA=xx and AL_PA=yy91yyyyOpen half duplex to AL_PA=yyR_RDYReceiver_Ready954949 SOFStart of frameB5ccccSee note 3SYNSynchronise7FxxxxClock Synchronization word XBFyyyyClock Synchronization word YDFzzzzClock Synchronization word ZVC_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:
FieldLengthSOF - Start Of Frame4Extended header(s)0 or moreRouting Control1Destination ID3Class-Specific Control / Priority1Source ID3Data Structure Type1Frame Control3Sequence ID1Data Field Control1Sequence Count2Originator Exchange ID2Responder Exchange ID2Parameter4Data field0 to 2112CRC - cyclic redundancy check4EOF - 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 typeMeaningABTSLink serviceAbort SequenceACKLink controlAcknowledge data frame (success)BA_ACCLink serviceBasic acceptBA_RJTLink serviceBasic rejectF_BSYLink controlFabric busyF_RJTLink controlFabric frame rejectFLOGIExtended link serviceFabric loginNOPLink serviceNo OperationP_BSYLink controlPort busyP_RJTLink controlPort frame rejectPLOGIExtended link servicePort loginPRLIExtended link serviceProcess loginPRLOExtended link serviceProcess logoutPRMTLink serviceDedicated connection preemptedRMCLink serviceRemove connectionRSIExtended link serviceRequest sequence initiative
References