The data in FCoE is sent through FCoE frames. An FCoE frame is an Ethernet frame that contains an FCoE Protocol Data Unit (PDU). The below diagram shows the FCoE frame structure. The Ethernet header includes the source and destination MAC addresses, IEEE 802.1Q VLAN tag, and Ethertype field. FCoE has its own Ethertype. 
 
The FCoE header includes a version field that identifies the version of FCoE being implemented and some reserved bits. The Start of Frame (SOF) and the End of Frame (EOF) mark the start and the end of the encapsulated FC frame respectively. The encapsulated FC frame consists of the FC header and the data being transported (including the FC CRC). The FCoE frame ends with the Frame Check Sequence (FCS) field that provides error detection for the Ethernet frame. Notice that the FCoE frame, unlike iSCSI and FCIP, has no TCP/IP overhead.
 
FCoE Architecture
Frame size is an important factor in FCoE. A typical FC data frame has a 2112-byte payload, a 24-byte header, and an FCS. A standard Ethernet frame has a default payload capacity of 1500 bytes. To maintain good performance, FCoE must use jumbo frames to prevent an FC frame from being split into two Ethernet frames.
FCoE layers
The encapsulation of the FC frames occurs through the mapping of the FC frames onto Ethernet, as shown on the slide. FC and traditional networks have stacks of layers where each layer in the stack represents a set of functionalities. The FC stack consists of five layers – FC-0 through FC-4. 

Ethernet is typically considered as a set of protocols that operates at the physical and data link layers in the seven-layer OSI stack. The FCoE protocol specification replaces the FC-0 and FC-1 layers of the FC stack with Ethernet. This provides the capability to carry the FC-2 to the FC-4 layer over the Ethernet layer.

FCoE Addressing

An FCoE SAN uses MAC address for frame forwarding. The MAC addresses are assigned to the VN_Ports, VF_Ports, and VE_Ports. The destination and the source MAC addresses are used to direct frames to their Ethernet destinations. Both the VF_Ports and the VE_Ports obtain MAC addresses from the FCoE switch. FCoE supports two types of addressing for the VN_Ports: server-provided MAC address (SPMA) and fabric-provided MAC address (FPMA). These addressing types are described below
 
SPMA: In this type of addressing, the compute systems provide MAC addresses to the associated VN_Ports. The MAC addresses are issued in accordance with Ethernet standards. These addresses are either burned-in by the manufacturers of the network adapters or are configured by an administrator. SPMA can use a single MAC address exclusively for FCoE traffic or it can have different MAC address for each VN_Port.
 
FPMA: In this type of addressing, the VN_Ports receive MAC addresses from the FCoE switches dynamically during login. The VN_Ports then use their granted MAC addresses for communication. This address is derived by concatenating the 24-bit FC MAC address prefix (FC-MAP) and the 24-bit FC address assigned to the VN_Port by the FCoE switch. FC-MAP identifies the fabric to which an FCoE switch belongs. The FPMA ensures that the MAC addresses are unique within an FCoE SAN.
 
FCoE Frame Forwarding
In an FCoE SAN, a node must know two different addresses to forward a frame to another node. First, it must know the Ethernet MAC address of the FCoE switch port (VF_Port). Second, it must know the FC address assigned to the destination node port (VN_Port or N_Port). The MAC address is used to forward an Ethernet frame containing FC payload over a CEE network. The FC address is used to send the FC frame, encapsulated into the Ethernet frame, to its FC destination.

FCoE Process Flow

To understand the FCoE communication, it is important to know the FCoE process. The FCoE process includes three key phases: discovery, login, and data transfer. 
  • Discovery phase: In this phase, the FCFs discover each other and form an FCoE fabric. The FCoE nodes also find the available FCFs for login. Moreover, both the FCoE nodes and the FCFs discover potential VN_Port to VF_Port pairing.
  • Login phase: In this phase, the virtual FC links are established between VN_Ports and VF_Ports as well as between VE_Ports. VN_ports perform FC login (including FLOGI, PLOGI, PRLI) to the discovered FCFs and obtain FC addresses. Each VN_Port also obtains a unique MAC address.
  • Data transfer phase: After login, the VN_Ports can start transferring regular FC frames (encapsulated) over the CEE network.

FCoE Initiation Protocol (FIP)

In an FCoE SAN, an FCoE node needs a discovery mechanism that allows it to discover the available FCFs before it can perform FC login. The mechanism used for the discovery is the FCoE Initialization Protocol (FIP). 

FIP is used for discovering the FCFs and establishing virtual links between FCoE devices (FCoE nodes and FCoE switches). Unlike FCoE frames, FIP frames do not transport FC data, but contain discovery and login/logout parameters. FIP frames are assigned a unique EtherType code to distinguish them from the FCoE frames. 

The FCoE node to FCF discovery and the login use the following FIP operations:
  • FCoE node sends multicast FIP Solicitation frame to find which FCFs are available for login.
  • Each FCF replies to the FCoE node by sending unicast FIP Advertisement frame.
  • After the FCoE node decides which FCF is appropriate, it sends FIP FLOGI request to the FCF.
  • The selected FCF sends FIP FLOGI Accept which contains both FC address and MAC address for the VN_Port. The reason for using FIP for FLOGI instead of a regular FLOGI is that the FIP FLOGI Accept has a field for the FCF to assign a MAC address to the VN_Port.

Go To >> Index Page

Previous article6.4 FCoE Connectivity Models
Next article7.1 Block Based Storage Systems (SAN) Overview
Cloud Solutions Architect with more than 10 years of experience in designing & deploying application in multiple cloud platforms. Owner of Mycloudwiki.com and tsmtutorials.com tech blogs. Email me if you are interested in writing tech articles.

Leave a Reply