Fibre Channel Data Constructs Introduction Like all networks, Fibre Channel (FC) uses well-defined units of data to encapsulate and transmit information. This lesson introduces the FC data units and explains the purpose and structure of each unit. Importance This lesson defines the data units that are the basic building blocks of the FC protocol. These data units are referred to in the majority of FC literature and documentation, including this course, so you need to know the basic role of each data unit. In addition, understanding the structure of each data unit, especially the frame, is essential when you are troubleshooting or tuning the performance of an FC Storage Area Network (SAN).
Lesson Objectives Upon completion of this lesson, you will be able to identify the fundamental units of data used in Fibre Channel and describe the role of each data unit. Performance Objective Upon completion of this lesson, you will be able to identify the fundamental units of data used in FC and describe the role of each data unit. Enabling Objectives Identify the fundamental units of data used in FC Identify the types of data that can be transported in an FC frame Describe the structure of an FC frame Identify the header fields of an FC frame Describe how upper-layer protocol (ULP) data are mapped to FC data units Describe how ULP data are transferred across an FC network
Outline Fibre Channel Data Units Fibre Channel Frames Frame Structure Frame Headers Data Units and ULPs ULP Information Transfer Prerequisites All previous lessons in Curriculum Unit 2, Module 1.
Fibre Channel Data Units Exchange Sequence Frame Word "The whale, the whale! Up helm, up helm! Oh, all ye sweet powers of air, now hug me close! Let not Starbuck die, if die he must, in a woman's fainting fit. Up helm, I say--ye fools, the jaw! the jaw! Is this the end of all my bursting prayers? all my life-long fidelities? Oh, Ahab, Ahab, lo, thy work. Steady! helmsman, steady. Nay, nay! Up helm again! He turns to meet us! Oh, his unappeasable brow drives on towards one, whose duty tells him he cannot depart. My God, stand by me now!" "Stand not by me, but stand under me, whoever you are that will now help Stubb; for Stubb, too, sticks here. I grin at thee, thou grinning whale! Who ever helped Stubb, or kept Stubb awake, but Stubb's own unwinking eye? And now poor Stubb goes to bed upon a mattress that is all too soft; would it were stuffed with brushwood! I grin at thee, thou grinning whale! Look ye, sun, moon, and stars! I call ye assassins of as good a fellow as ever spouted up his ghost. For all that, I would yet ring glasses with ye, would ye but hand the cup! Oh, oh! oh, oh! thou grinning whale, but there'll be plenty of gulping soon! Why fly ye not, O Ahab! For me, off shoes and jacket to it; let Stubb die in his drawers! A most mouldy and over salted death, though;--cherries! cherries! cherries! Oh, Flask, for one red cherry ere we die!" "Cherries? I only wish that we were where they grow. Oh, Stubb, I hope my poor mother's drawn my part-pay ere this; if not, few coppers will now come to her, for the voyage is up." FC FC Fibre Channel Data Units Objective Identify the fundamental units of data used in FC Introduction This section introduces the fundamental units of data used in FC. Facts The preceding graphic illustrates the FC data unit hierarchy using the analogy of a dialog: Words are the basic unit of conversation in both speech and FC. A word is four bytes. Frames are “meaningful” collections of words, and relate to complete phrases or sentences. Sequences are a collection of frames in a single transmission from one node to another, represented as a paragraph. Exchanges are a collection of sequences. They are bidirectional “conversations” between nodes. Initiator Target
Fibre Channel Data Units (cont.) Word Exchange Frame FC FC Sequence The preceding graphic shows a transaction between a host (initiator) and a storage device (target): The smallest unit of data is a word. Words consist of 32 bits (4 bytes) of data that are encoded into a 40-bit form by the 8b/10b encoding process. Words are packaged into frames. An FC frame is equivalent to an IP packet. A sequence is a series of frames sent from one node to another node. Sequences are unidirectional—in other words, a sequence is a set of frames that are issued by one node. An exchange is a series of sequences sent between tow nodes. The exchange is the mechanism used by two ports to identify and manage a discrete transaction. The exchange defines an entire transaction, such as a SCSI read or write request. An exchange is opened whenever a transaction is started between two ports and is closed when the transaction ends. An FC exchange is equivalent to a TCP session. Initiator Target
Fibre Channel Frames Frames can contain… ULP data, commands, and status information Link control information Fibre Channel control signals: Flow control Session management Error recovery Optional header fields for metadata and status data: FC-4 extensions Native protocols (FC-AE, FC-AV) Fibre Channel Frames Objective List the types of data that can be transported in an FC frame Introduction This section describes the types of data that can be transported in an FC frame. Facts Frames are the basic building blocks of an FC data transmission. FC frames encapsulate the following types of information: ULP data, commands, and status information Metadata, such as the source and destination addresses, that the FC network uses to reliably deliver data FC link control information Frames are also used to transmit control signals to perform functions such as: Session management Flow control Error detection and correction Frames provide optional header fields that can be used to convey metadata and status information: FC-4 extensions can use optional header fields Native protocols such as FC-AV and FC-AE make extensive use of optional headers
Frame Structure A frame consists of… A variable-size payload A defined structure for conveying metadata: Position-sensitive header fields Cyclic Redundancy Check (CRC) Start-of-Frame (SOF) and End-of-Frame (EOF) Frame Structure Objective Describe the structure of an FC frame Introduction This section describes the structure of an FC frame. Facts Frames contain the data that is to be transmitted, known as the payload, the address of the source and destination ports, and other control information. An FC frame is simply a container for information that is transported from its source to its destination. A frame consists of: A variable-size payload A defined structure for conveying metadata: Position-sensitive header fields A Cyclic Redundancy Check (CRC) for error detection Start-of-Frame (SOF) and End-of-Frame (EOF) delimiters
Frame Structure (cont.) Words Bytes 1 4 6 24 0–528 0–2112 1 4 1 = 537 4 = 2148 S O F E O F Header Payload CRC Facts The maximum total length of an FC frame is 2148 bytes, or 537 words. This consists of: A 4-byte SOF delimiter A 24-byte header A data payload that can vary from 0 to 2112 bytes A 4-byte (32-bit) CRC that is used to detect bit-level errors in the payload A 4-byte EOF delimiter The frame payload consists of 3 elements: The payload itself, containing data or commands, can be up to 2112 bytes. The first 64 bytes of the payload can be used to incorporate optional headers. This would reduce the data payload size to 2048 bytes (2KB). The payload ends with 1-3 fill bytes. This is necessary because the smallest unit of data recognized by FC is a 4-byte word. However, the ULP is not aware of this FC requirement, and the data payload for a frame might not end on a word boundary. FC therefore adds up to 3 fill bytes to the end of the payload—as many as are needed to ensure that the payload ends on a word boundary. Optional Headers Data or commands Fill Bytes 0–16 0–64 Words Bytes = 528 0-3 = 2112 0–512 0–2048
Frame Structure (cont.) Example The screen image displays an FC protocol trace. A single FC frame—Fabric Login (FLOGI)—is displayed in the right-hand window. Each word in the frame is depicted on a separate line, beginning with the SOF Frame Delimiter (SOFi3) and ending with the EOF Frame Delimiter (EOFt). The display shows the 6 words in the frame header, 29 words in the payload, and the 32-bit CRC.
Frame Headers S O F E O F Header Payload CRC Bit 24 23 16 15 8 7 31 31 Word R_CTL CS_CTL TYPE SEQ_ID OX_ID DF_CTL RX_ID SEQ_CNT F_CTL Parameter S_ID D_ID 1 2 3 4 5 Frame Headers Objective Identify the header fields of an FC frame Introduction This section describes the header fields of an FC frame. Facts The following table describes the header fields of an FC frame: Field Definition Function Size R_CTL Routing Control Frame type and function; used by the switch to route frames 8 D_ID Destination ID Class specific control information for Class 1, 4 & 6 24 S_ID Source ID 24-bit address of the destination port CS_CTL Class Specific Control 24-bit address of the source port TYPE Data Structure Type Type of Information Unit & ULP carried by this frame F_CTL Frame Control Specifies number of fill bytes and sequence control information SEQ_ID Sequence ID Unique ID for each sequence SEQ_CNT Sequence Count Frame count identifying each frame in the sequence 16 DF_CTL Data Frame Control Information about optional headers OX_ID Originator ID Unique ID set by the exchange originator RX_ID Receiver ID Unique ID set by the exchange responder Parameter Parameter or Offset Used for multi-purpose parameters, such as buffer offset. 32
Frame Headers (cont.) D_ID is the destination port address R_CTL CS_CTL TYPE SEQ_ID OX_ID DF_CTL RX_ID SEQ_CNT F_CTL Parameter S_ID D_ID D_ID is the destination port address S_ID is the source port address Facts The S_ID and D_ID fields identify the source and destination port addresses of the frame.
Frame Headers (cont.) OX_ID is the Originator eXchange ID R_CTL CS_CTL TYPE SEQ_ID OX_ID DF_CTL RX_ID SEQ_CNT F_CTL Parameter S_ID D_ID OX_ID is the Originator eXchange ID RX_ID is the Responder eXchange ID Initially set to 0xFFFF by the initiator Responder does not need to assign RX_ID RX_ID can be assigned if the exchange is multiplexed Facts The N_Port that initiates an exchange is called the Exchange Originator and the N_Port that responds to the exchange is called the Exchange Responder. The OX_ID and RX_ID fields are used by the Exchange Originator and Responder to identify a given exchange: When the Exchange Originator initiates an exchange, it assigns an OX_ID, and uses the same OX_ID is used for every frame in the exchange. The originator initially sets RX_ID to 0xFFFF. The responder can then assign an RX_ID. Typically, the responder does not send RX_ID. RX_ID can be used if the exchange is multiplexed across multiple data paths. OX_ID and RX_ID have the same value for every frame in an exchange, but are unique only within the context of the originator-responder node pair. OX_ID and RX_ID values can be reused as soon as the exchange is complete. These fields alone cannot be used to determine to which exchange a frame belongs.
Frame Headers (cont.) SEQ_ID identifies the sequence: R_CTL CS_CTL TYPE SEQ_ID OX_ID DF_CTL RX_ID SEQ_CNT F_CTL Parameter S_ID D_ID SEQ_ID identifies the sequence: Must be unique in the context of the S_ID while the sequence is open Can be reused after the sequence is complete SEQ_CNT identifies the position of the frame in the sequence Used to verify in-order delivery, missing frames Facts The N_Port that is sending the sequence is called the Sequence Initiator and the N_port that receives the sequence is called the Sequence Recipient. The SEQ_ID field is an eight-bit field that is used by the Sequence Initiator and Responder to identify all frames in a given sequence: The Sequence Initiator assigns a SEQ_ID to the sequence and uses the same SEQ_ID for every frame in the sequence. As long as the sequence is open, SEQ_ID must be unique within the context of the sequence initiator (S_ID). However, a given SEQ_ID can be reused after the sequence is complete. SEQ_ID values are not assigned in numerical order, and cannot be used to infer the order of sequences in an exchange. The SEQ_CNT field is a 16-bit field that identifies the position of the frame in its sequence: SEQ_CNT is 0 for the first frame and is then incremented for each frame. The sequence recipient can use SEQ_CNT to determine the correct order of the frames in the sequence. The sequence recipient can use SEQ_CNT to confirm that all frames in the sequence were received and to detect missing frames. Only one sequence can be active at a time within a single exchange. A Sequence Initiator must complete transmission of data frames for a sequence before the other node can send another sequence for the same exchange. The Exchange Originator and Responder must coordinate control of the exchange; control over the exchange is called the Sequence Initiative. However, a port can transmit sequences for different exchanges concurrently. This is one form of multiplexing that is supported by Fibre Channel.
Frame Headers (cont.) R_CTL differentiates frames based on function CS_CTL TYPE SEQ_ID OX_ID DF_CTL RX_ID SEQ_CNT F_CTL Parameter S_ID D_ID R_CTL differentiates frames based on function Routing Information 0000 = FC-4 Device_Data 0010 = Extended Link_Data 0011 = FC-4 Link_Data 0100 = Video_Data 1000 = Basic Link_Data 1100 = Link_Contro Others = Reserved 0000 = Uncategorized information 0001 = Solicited Data 0010 = Unsolicited Control 0011 = Solicited Control 0100 = Unsolicited Data 0101 = Data Descriptor 0111 = Command Status Others = Unspecified Facts The R_CTL field differentiates frames based on function or service within an N_Port or F_Port. The R_CTL field consists of two 4-bit subfields that identify the category and function of the frame: The Routing Bits identify the category of the frame. For example, link control frames are differentiated from data frames. The Information Bits further define the type of data in the frame. For example, SCSI-FCP frames use different codes in this subfield to differentiate data frames from command and status frames. For example, a Fabric Login (FLOGI) frame has a R_CTL field of 0010 0010, indicating that it is an unsolicited Extended Link Services (ELS) frame. Link Services are used for session management functions, such as login.
Frame Headers (cont.) R_CTL CS_CTL TYPE SEQ_ID OX_ID DF_CTL RX_ID SEQ_CNT F_CTL Parameter S_ID D_ID CS_CTL contains class-specific control information, such as: Delivery preference Priority and pre-emption Virtual Circuit identifier Facts The CS_CTL field contains class-specific control information, such as: Delivery preference Priority and pre-emption Virtual Circuit identifier The specific meaning of each bit in the CS_CTL field depends on the Class of Service that is used for that frame.
Frame Headers (cont.) R_CTL CS_CTL TYPE SEQ_ID OX_ID DF_CTL RX_ID SEQ_CNT F_CTL Parameter S_ID D_ID TYPE is a one-byte field that identifies the protocol carried by a data frame 0x00 – Basic Link Services 0x01 – Extended Link Services 0x05 – IP over FC (RFC-2625) 0x08 – SCSI-FCP 0x20 – FC-CT 0x24 – SNMP 0x58 – FC-VI Facts The TYPE field is a one-byte field that identifies the protocol carried by a data frame. The following are some example TYPE values: 0x00 – Basic Link Services 0x01 – Extended Link Services 0x05 – IP over FC (RFC-2625) 0x08 – SCSI-FCP 0x20 – FC-CT 0x24 – SNMP 0x58 – FC-VI
Frame Headers (cont.) R_CTL CS_CTL TYPE SEQ_ID OX_ID DF_CTL RX_ID SEQ_CNT F_CTL Parameter S_ID D_ID F_CTL contains miscellaneous frame control information, such as: Position of the frame in the sequence and exchange (first/last) Role of the frame originator (sequence initiator /recipient, exchange originator/responder) Number of fill bytes Facts The F_CTL field is a bitmap that contains miscellaneous frame control information. For example, the F_CTL field identifies: Whether the frame is the first or last frame in the exchange Whether the frame is the first or last frame in the sequence Whether the frame was sent by the sequence initiator or recipient Whether the frame was sent by the exchange originator or responder The number of fill bytes in the frame
Frame Headers (cont.) R_CTL CS_CTL TYPE SEQ_ID OX_ID DF_CTL RX_ID SEQ_CNT F_CTL Parameter S_ID D_ID DF_CTL is a one- byte field that specifies the presence of an optional header Header Network Header Assoc. Header Device Header Payload CRC E O F S Optional Headers Facts The DF_CTL field is a one-byte field that specifies the presence of an optional header: The network header can be used for routing between Fibre Channel networks of different fabric address spaces, or between Fibre Channel and other networks. If a network header is present, the network header is the first 16 bytes of the data field and is only present in the first data frame of the first sequence. The association header is provided to support system architectures that require more than two levels of identifiers, and is only present in the first data frame of the first sequence. For example, Fibre Channel defines sequence IDs and exchange IDs; a system might need to define a transaction ID, and would use the association header for this purpose. The contents of the device header are determined by the ULP. If the device header is present, it will be either in the first data frame or in all data frames of a sequence. Header Payload CRC E O F S
Frame Headers (cont.) R_CTL CS_CTL TYPE SEQ_ID OX_ID DF_CTL RX_ID SEQ_CNT F_CTL Parameter S_ID D_ID The use of the Parameter field depends on the frame type (see R_CTL): Can contain the relative offset of the frame payload with respect to the ULP buffer space The relative offset can allow the recipient to reconstruct out-of-order data Facts The use of the Parameter field depends on the frame type, and is therefore determined by the value of the R_CTL field: For data frames, Parameter can contain the relative offset of the frame payload with respect to the ULP buffer space. A relative offset value can allow the recipient to reconstruct a transaction from out-of-order frames.
Frame Headers (cont.) Bit 24 23 16 15 8 7 31 Word R_CTL CS_CTL TYPE 31 Word R_CTL CS_CTL TYPE SEQ_ID OX_ID DF_CTL RX_ID SEQ_CNT F_CTL Parameter S_ID D_ID 1 2 3 4 5 Example The screen image displays a section of a FC protocol trace. A single FC frame is displayed in the right-hand window. Only the contents of the frame header fields are displayed. Note that the S_ID address has not yet been set. This frame is a FLOGI frame, which is sent from a node port to a switch port before the node port has received a port address.
Data Units and ULPs ULP Fibre Channel I/O Transaction Exchange FC-4 Information Unit Information Unit Sequence Sequence FC-2 Data Units and ULPs Objective Describe how ULP data are mapped to FC data units Introduction This section describes how ULP data are mapped to FC data units. Facts ULPs, such as SCSI, are mapped to the FC-4 layer for transmission, as shown in the preceding graphic: An Fibre Channel exchange is the fundamental mechanism for coordinating the interchange of information and data between two N_Ports. Each FC exchange encapsulates one ULP I/O transaction. For example, a transaction might consist of an initiator (a host) opening a connection to a target (a storage device) and writing a file. Information Units (IUs) are ULP units that are mapped into FC sequences. An IU might contain a single SCSI command, a SCSI response, or a piece of data. The maximum frame payload size is 2112 bytes, with a typical maximum data payload of 2048 bytes, so FC-2 might have to split a sequence into multiple frames. The FC-1 layer encodes frames into transmission words using the 8b/10b character set. Frame Frame Frame Frame Word Word Word Word Word Word Word Word Word Word Word Word FC-1
Data Units and ULPs (cont.) Comparison of Operations SCSI vs FCP SCSI Function FCP Equivalent I/O Operation Exchange Protocol Service Request/Response Sequence Send SCSI Command Request Unsolicited command IU (FCP_CMD) Data delivery request Facts An I/O operation, as defined by the SCSI Architectural Model (SAM-2) is mapped to a Fibre Channel Exchange. The request and response primitives of an I/O Operation are mapped into Sequences. Each Sequence contains a single Information Unit (IU). The preceding table shows the FCP IUs that are defined for each type of SCSI Protocol Service Request and Response. Data descriptor IU (FCP_XFR_RDY) Data delivery action Solicited data IU (FCP_DATA) Send Command Complete Response Command status IU (FCP_RSP) REQ/ACK for Command Complete Confirmation IU (FCP_CONF)
ULP Information Transfer FC FC 00110101 00110101 SCSI-3 SCSI-3 FCP FCP 1 6 FC-3 Common Services FC-3 Common Services 2 FC-2 Framing and flow control 5 FC-2 Framing and flow control ULP Information Transfer Objective Describe how ULP data are transferred across an FC network Introduction This section describes how ULP data are transferred across an FC network. Process FC information passing is a symmetric operation: 1. When a node wants to initiate an I/O operation, the node’s ULP driver—the FC-4 layer—creates an IU, places the IU in a buffer, and makes a sequence delivery request to FC-2. 2. The port’s FC-2 layer takes the data out of the buffer and packages the data into frames. 3. FC-1 serializes the frames using the 8b/10b encoding process and passes the serialized data to FC-0 for transmission. 4. At the receiving node, the FC-1 layer decodes the serialized data stream into 8-bit bytes and passes the frames back to the FC-2 layer. 5. The fabric can deliver frames out of order, so the receiving port reassembles the frames in a reassembly buffer. The segmentation and reassembly is done by the FC-2 layer and is transparent to the ULP. 6. After the recipient’s FC-2 layer has completed reassembling the IU, the FC-2 layer notifies the ULP that the data is available for processing. FC-1 Encoding FC-1 Encoding 3 4 FC-0 Physical interface FC-0 Physical interface
ULP Information Transfer (cont.) SCSI-FCP Read Operation Initiator Fabric Target Exchange FCP_CMD 1 IU 1 Frame 2 Sequence 1 Frames 4 IU 2 FCP_DATA 3 Sequence 2 Example The preceding diagram illustrates a SCSI-FCP read operation: 1. The initiator node generates a SCSI read request (FCP_CMD), which is packaged as IU 1. 2. The initiator FC-2 layer converts IU 1 to a single command chunk and sends it across the fabric as a single frame. This constitutes Sequence 1. 3. The target node processes IU 1, retrieves the requested data (FCP_DATA) from storage and packages the data as IU 2. 4. The target FC-2 layer converts IU 2 to one or more data chunks and sends them across the fabric. This constitutes Sequence 2. 5. The target node then generates a status command (FCP_RSP) that informs the initiator that the requested data transmission is complete. The status command is packaged as IU 3. 6. The target FC-2 layer converts IU 3 to a single command chunk and sends it across the fabric. This constitutes Sequence 3. At this point, the I/O operation is complete. The collection of three sequences constitutes a single exchange. Frame 6 IU 3 FCP_RSP 5 Sequence 3
ULP Information Transfer (cont.) SCSI-FCP Write Operation Initiator Fabric Target Exchange FCP_CMD 1 IU 1 Frame 2 Sequence 1 Frame 4 IU 2 FCP_XFR_ RDY 3 Sequence 2 Frames 6 Example The preceding diagram illustrates a SCSI-FCP write operation: 1. The initiator node generates a SCSI write request (FCP_CMD), which is packaged by the FC-4 layer as IU 1. 2. The initiator FC-2 layer converts IU 1 to a single command chunk and sends it across the fabric as a single frame. This constitutes Sequence 1. 3. The target node responds with a SCSI write request response (FCP_XFR_RDY), which is packaged as IU 2. The write request response is required for synchronization between the initiator and target. 4. The target FC-2 layer converts IU 2 to a single command chunk and sends it across the fabric. This constitutes Sequence 2. 5. The initiator node retrieves the data (FCP_DATA) from its ULP buffers and packages it as IU 3. 6. The initiator FC-2 layer converts IU 3 to one or more data chunks and sends them across the fabric. This constitutes Sequence 3. 7. The target then generates a status command (FCP_RSP) to confirm the end of the exchange. The command is packaged as IU 4. 8. The target FC-2 layer converts IU 4 to a single command chunk and sends it across the fabric. This constitutes Sequence 4. The collection of four Sequences constitutes a single Exchange. FCP_DATA 5 IU 3 Sequence 3 Frame 8 IU 4 FCP_RSP 7 Sequence 4
Lesson Review Organize the Fibre Channel data units from smallest to largest. How many Sequence Initiators can there be in a single exchange? How many Sequence Initiators can there be in a single sequence? How many bytes are in a word? What is the maximum number of bytes in a Fibre Channel frame? What is the maximum number of bytes in a Fibre Channel frame payload? Practice 1. Organize the FC data units from smallest to largest. 2. How many Sequence Initiators can there be in a single exchange? 3. How many Sequence Initiators can there be in a single sequence? 4. How many bytes are in a word? 5. What is the maximum number of bytes in an FC frame? 6. What is the maximum number of bytes in an FC frame payload?
Lesson Review (cont.) Which of the elements listed below are found in the frame header? What field can a receiving port use to determine if a frame has arrived out of order? When you analyze a protocol trace taken from an ISL, what field(s) can you use to determine if two frames belong to the same sequence? 7. Which of the following elements of an FC frame are found in the frame header? a. Destination ID, optional header, source port address b. Fill bytes, source port address, destination port address c. Originator ID, source port address, data structure type d. Sequence ID, class-specific control, fill bytes 8. What field can a receiving port use to determine if a frame has arrived out of order? a. D_ID b. RX_ID c. SEQ_CNT d. SEQ_ID 9. When you analyze a protocol trace taken from an interswitch link (ISL), what field(s) can you use to determine if two frames belong to the same sequence? a. D_ID, S_ID, OX_ID, and SEQ_ID b. S_ID, OX_ID and SEQ_ID c. SEQ_CNT, SEQ_ID and RX_ID d. SEQ_ID and OX_ID
Summary The basic units of data in Fibre Channel are words, frames, sequences, and exchanges Fibre Channel frames can carry: ULP payload data Fibre Channel control signals Optional headers A frame consists of a variable-size payload and a defined structure for conveying metadata: 24-byte header 0-2112 byte payload 4-byte CRC Fibre Channel Data Constructs In this lesson you learned to: Identify the fundamental units of data used in FC Identify the types of data an FC frame can transport Describe the structure of an FC frame Describe how ULPs are mapped and transferred in an FC network
Summary (cont.) Fibre Channel frame header fields: R_CTL – CS_CTL D_ID – S_ID TYPE – F_CTL DF_CTL – SEQ_ID SEQ_CNT – OX_ID RX_ID – Parameter Fibre Channel data units are mapped to ULP data: Each exchange encapsulates one ULP transaction Each sequence encapsulates one ULP Information Unit Information Units are “chunks” mapped onto frames