Transporting fibre channel over ethernet

Information

  • Patent Application
  • 20080028096
  • Publication Number
    20080028096
  • Date Filed
    October 21, 2003
    21 years ago
  • Date Published
    January 31, 2008
    16 years ago
Abstract
Methods and apparatus for the Transporting of Fibre Channel data over Ethernet are disclosed. In one embodiment of the invention, Fibre Channel data frame and primitive signals are transported over Ethernet instead of using the Fibre Channel FC-1 and FC-0 protocols. This allows less expensive Ethernet equipment and devices to transport and perform services for Fibre Channel connected devices without having a physical Fibre Channel interface. The ability to provide Fibre Channel services and functions without having a physical Fibre Channel interface allows existing Ethernet equipment to be placed into service as SAN components without modification.
Description

A BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is an illustration of the classical ISO protocol layering stack.



FIG. 2 is an illustration of the Fibre Channel protocol architecture



FIG. 3 is an illustration of the Ethernet protocol architecture



FIG. 4 is an illustration of the FCoE protocol architecture.



FIG. 5 is an illustration which shows a data center with both a LAN and a SAN.



FIG. 6 is an illustration which shows a data center with a merged L2-7 Ethernet topology



FIG. 7 is an illustration which shows a data center with a merged LAN/SAN data center topology



FIG. 8 is an illustration which shows a network topology containing an FCoE HBA, an FCoE Transformer and a Fibre Channel SAN.



FIG. 9 is an illustration which shows a network topology containing an FCoE HBA, an FCoE Fabric, an FCoE Transformer and a Fibre Channel SAN.



FIG. 10 is an illustration which shows the detail of an FCoE Fabric.



FIG. 11 is an illustration which shows a network topology containing a Fibre Channel HBA, FCoE Transformers, an FCoE Fabric and a Fibre Channel SAN.



FIG. 12 is an illustration of the Fibre Channel frame format.



FIG. 13 is an illustration of the Ethernet frame format.



FIG. 14 is an illustration of the FCoE frame format.



FIG. 15 is an illustration of the FCoE header format.



FIG. 16 is an illustration of the FCoE Association header format.



FIG. 17 is an illustration of the FCoE Transport header format.



FIG. 18 is an illustration of the FCoE Primitive header format.



FIG. 19 is an illustration of the FCoE Management header format.



FIG. 20 is an illustration of an Ethernet frame containing a FCoE frame containing a Fibre Channel frame.



FIG. 21 is an illustration which shows the detail of an FCoE Transformer.



FIG. 22 is an illustration which shows a how the FCoE components can be connected together.





A DETAILED DESCRIPTION OF PREFERRED & ALTERNATIVE EMBODIMENTS
I. Overview of the Invention

The present invention provides methods and apparatus for transporting Fibre Channel data over Ethernet. Fibre Channel data frames, primitive signals and primitive sequences are collectively called Fibre Channel data. The protocol that describes the transformation of Fibre Channel data into Ethernet frames and visa-versa is called the Fibre Channel over Ethernet (FCoE) protocol. The apparatus that transforms Fibre Channel data into Ethernet frames and visa-versa is called a Fibre Channel over Ethernet Transformer.


In one preferred embodiment, the task of encrypting a Fibre Channel payload is performed using an Ethernet device. In another preferred embodiment, the task of performing storage management of a Fibre Channel payload is performed using an Ethernet device.


In other preferred embodiments, other tasks and sequences of tasks may be performed on Fibre Channel data using Ethernet based devices. The tasks and sequences of tasks are described in further detail below.



FIG. 1 generally illustrates the classic ISO protocol layering stack. The Physical layer L1 communicates with the Data Link layer L2. The Data Link layer L2 communicates with the Network layer L3. The Network layer L3 communicates with the Transport layer L4. The Transport layer L4 communicates with the Session layer L5. The Session layer L5 communicates with the Presentation layer L6. The Presentation layer L6 communicates with the Application layer L7. When a given layer is not present, the lower layer communicates with the next higher layer. For example, if the Session layer L5 and the Presentation layer L6 are not present, the Transport layer L4 communicates directly with the Application layer L7.



FIG. 2 generally illustrates the Fibre Channel protocol stack. The Fibre Channel Media layer and the Fibre Channel Transmitters and Receivers layer form the Fibre Channel Physical layer FC0. The Fibre Channel Physical layer FC0 communicates with the Fibre Channel Transmission Protocol FC1. The Fibre Channel Transmission Protocol FC1 communicates with the Fibre Channel Signaling Protocol FC2. The Fibre Channel Common Services and the Fibre Channel Link Services are taken together to form the Fibre Channel layer 3 protocol FC3. The Fibre Channel Signaling protocol FC2 communicates with the Fibre Channel layer 3 protocol FC3. The Fibre Channel layer 3 protocol FC3 communicates with the Fibre Channel Upper Layer Protocol Mapping Protocol FC4. The Fibre Channel Upper Layer Protocol Mapping Protocol FC4 communicates with the Upper Layer Protocol ULP.



FIG. 3 generally illustrates the Ethernet protocol stack. The Ethernet Physical layer PHY communicates with the Ethernet Media Access Control MAC layer. The Ethernet Media Access Control layer MAC communicates with the Ethernet Logical Link Control layer LLC. The Ethernet Logical Link Control layer LLC communicates with the Upper Layer Protocols.



FIG. 4 generally illustrates the FCoE protocol stack. The Ethernet Physical layer PHY communicates with the Ethernet Media Access Control MAC layer. The Ethernet Media Access Control layer MAC communicates with the Ethernet Logical Link Control layer LLC. The Ethernet Logical Link Control layer LLC communicates with the FCoE protocol P. The FCoE protocol P communicates with the Fibre Channel Signaling protocol FC2. The Fibre Channel Signaling protocol communicates with both the FCoE protocol P and the Fibre Channel Transmission protocol FC1.



FIG. 5 is a schematic depiction of the embodiments of a computer network to which the present invention pertains as Transporting Fibre Channel over Ethernet from the servers 14. Routers 12 are attached to an external network. Routers 12 are also attached to firewalls 10. The firewalls 10 are connected to layer 4-7 switches 8. The layer 4-7 switches 8 are connected to the layer 2 switches 6. The layer 2 switches 6 are connected to the servers 14. The servers 14 are connected to a Fibre Channel switch 4. The Fibre Channel switch 4 is connected to the Storage network 2.



FIG. 6 is a schematic depiction of the embodiments of a computer network to which the present invention pertains as Transporting Fibre Channel over Ethernet from the servers 14. Routers 12 are attached to an external network. Routers 12 are also attached to firewalls 10. The firewalls 10 are connected to layer 2-7 switches 20. The layer 2-7 switches 20 are connected to the servers 14. The servers 14 are connected to a Fibre Channel switch 4. The Fibre Channel switch 4 is connected to the Storage network 2.



FIG. 7 is a schematic depiction of the embodiments of a computer network to which the present invention pertains as Transporting Fibre Channel over Ethernet from the servers 14. Routers 12 are attached to an external network. Routers 12 are also attached to firewalls 10. The firewalls 10 are connected to LAN/SAN switches 30. The LAN/SAN switches 30 are connected to the servers 14. The LAN/SAN switches 30 are also connected to the Storage network 2.



FIG. 8 is a schematic depiction of an embodiment of the invention. A server 14 contains a virtual Fibre Channel Host Bus Adapter (HBA) 40. The virtual Fibre Channel HBA 40 contains a number of virtual Fibre Channel N-Ports 42 and an Ethernet interface 44. The virtual Fibre Channel HBA 40 is connected to an Ethernet layer 2 switch 6. The Ethernet layer 2 switch 6 is also connected to an FCoE Transformer 46. The FCoE Transformer 46 is connected to the Fibre Channel SAN 2. Contained within the FCoE Transformer 46 are a number of real Fibre Channel N-Ports 48 that correspond to the virtual Fibre Channel N-Ports 42.



FIG. 9 is a schematic depiction of an embodiment of the invention. A server 14 contains a virtual Fibre Channel Host Bus Adapter (HBA) 40. The virtual Fibre Channel HBA 40 contains a number of virtual Fibre Channel N-Ports 42 and an Ethernet interface 44. The virtual Fibre Channel HBA 40 is connected to an Ethernet layer 2 switch 6. The Ethernet layer 2 switch 6 is also connected to an FCoE Transformer 46. The Ethernet layer 2 switch 6 is also connected to an FCoE Fabric 50. The FCoE Transformer 46 is connected to the Fibre Channel SAN 2. Contained within the FCoE Transformer 46 are a number of real Fibre Channel N-Ports 48 that correspond to the virtual Fibre Channel N-Ports 42.



FIG. 10 is a schematic description of an embodiment of the invention showing the FCoE Fabric detail. The FCoE Fabric 50 contains apparatus to perform Fibre Channel services 56, operating on Well Known Fibre Channel ports 54 and Virtual Fibre Channel N-Ports 42. The FCoE Fabric 50 also contains a Management function 60 and a Storage Switching Function 52.



FIG. 11 is a schematic depiction of an embodiment of the invention. A server 14 contains a Fibre Channel Host Bus Adapter (HBA) 61. The Fibre Channel HBA 60 contains a number of Fibre Channel N-Ports 62. The Fibre Channel HBA 61 is connected to an FCoE Transformer 46. The FCoE Transformer 46 is connected to an Ethernet layer 2 switch 6. The Ethernet layer 2 switch 6 is also connected to a second FCoE Transformer 46. The Ethernet layer 2 switch 6 is also connected to an FCoE Fabric 50. The second FCoE Transformer 46 is connected to the Fibre Channel SAN 2.



FIG. 12 generally illustrates the Fibre Channel frame format 71. A valid Fibre Channel frame 71 always starts with a Start Of Frame (SOF) delimiter 70. The SOF delimiter 70 is followed by the Fibre Channel Frame Header 72. The Fibre Channel Frame Header 72 is optionally followed by one or more optional headers 74. A Fibre Channel frame 71 may contain a payload 76. A Fibre Channel frame 71 ends with a CRC field 78 and an End Of Frame (EOF) delimiter 80.



FIG. 13 generally illustrates the Ethernet frame format 83. A valid Ethernet frame 83 always starts with a Start Of Frame (SOF) delimiter 82. The SOF delimiter 82 is followed by the Ethernet Frame Header 84. An Ethernet frame 83 contains a payload 86. An Ethernet frame 83 ends with a CRC field 88 and an End Of Frame (EOF) delimiter 90.



FIG. 14 generally illustrates the Fibre Channel over Ethernet (FCoE) frame format 93. An FCoE frame 93 starts with an FCoE Header 92 and is followed by an FCoE Type Header 94. An FCoE frame 93 may contain a payload 96.



FIG. 15 generally illustrates the Fibre Channel over Ethernet (FCoE) Header format 92. An FCoE Header 92 starts with a Version field 98 and is followed by a Type field 100, an Interface Port Identifier field 102 and an Interface Identifier field 104.



FIG. 16 generally illustrates the FCoE Association header 107. The FCoE Association header 107 is used for the FCoE Type header 94 when the Type field 100 is specified as Association. An FCoE Association Header 107 starts with an Operation field 106 and is followed by a Sequence field 108, a Fabric Physical Address field 110, a Last Physical Address field 112, a Hard Physical Address field 114, a state field 116, a Port Name field 118 and a Physical Address Map 120.



FIG. 17 generally illustrates the FCoE Transport header 123. The FCoE Transport header 123 is used for the FCoE Type header 94 when the Type field 100 is specified as Transport. An FCoE Transport Header 123 starts with a Device field 122 and is followed by a Start Of Frame (SOF) field 124, an End Of Frame field 126, a flags field 128, a length field 130, a fragment offset field 132 and an FCoE ID field 134.



FIG. 18 generally illustrates the FCoE Primitive Header 137. The FCoE Primitive header 137 is used for the FCoE Type header 94 when the Type field 100 is specified as Primitive. An FCoE Primitive Header 137 starts with a Device field 122 and is followed by a Primitive field 136, an Ordered Set byte 3 field 138 and an Ordered Set byte 4 field 140.



FIG. 19 generally illustrates the FCoE Management Header 143. The FCoE Management header 143 is used for the FCoE Type header 94 when the Type field 100 is specified as Management. An FCoE Management Header 143 starts with an Operation field 142 and is followed by a Structure Index field 144, a Sequence field 146 and a Variable Index field 148.



FIG. 20 generally illustrates a Fibre Channel frame 71 being transported in an FCoE frame 93 in an Ethernet frame 83. Within the FCoE frame 93, an FCoE Header 92 and an FCoE Transport header 123 are used.



FIG. 21 is a schematic description of an embodiment of the invention showing the FCoE Transformer detail. The FCoE Transformer 46 contains one or more Ethernet interfaces 150, one or more Fibre Channel interfaces 158, apparatus to perform FCoE Management services 154, apparatus to perform FCOE Transformer services 156 and apparatus to perform FCoE Association services 152.



FIG. 22 is a schematic depiction of an embodiment of the invention. A server 14 contains and is connected to a virtual Fibre Channel Host Bus Adapter (HBA) 40. The virtual Fibre Channel HBA 40 is connected to an Ethernet LAN/SAN switch 30. The Ethernet LAN/SAN switch 30 is also connected to several FCoE Transformers 46. A second server 14 contains and is connected to a Fibre Channel HBA 60. The Fibre Channel HBA 61 is connected to an FCoE Transformer 46. The FCoE Transformer 46 is connected to the Ethernet LAN/SAN switch 30. Additional FCoE Transformers 46 are connected to the Ethernet LAN/SAN switch 30 and to other Fibre Channel SAN devices.


The Fibre Channel protocol has been designed as a layered protocol and generally follows the ISO reference protocol model shown in FIG. 1. In a layered protocol architecture, each layer has a specific responsibility. For example, the Data Link layer L2 of the ISO reference protocol model is responsible for providing and controlling access to the physical media described in the Physical layer L1. The Fibre Channel protocol provides services at the physical L1, Data Link L2, Network L3 and Transport L4 layers.


The Ethernet protocol has also been designed as a layered protocol and generally follows the ISO reference protocol model shown in FIG. 1. The Ethernet protocol provides services at the physical L1 and Data Link L2 layers.


Within a protocol architecture, most of the information is contained within the data frame and the various protocol headers and trailers. Some of the protocol information is external to the data frames. Examples of external data are the Start Of Frame characters 70, 82, the End Of Frame characters 80, 90 and Fibre Channel primitive signals and sequences. When information is external to the data frame and must be communicated over a non-native medium, such a Fibre Channel over Ethernet, a mechanism must exist to carry this external data.


II. Apparatus for Transporting Fibre Channel over Ethernet

The apparatus for Transporting Fibre Channel over Ethernet is called an FCoE Transformer 46. An FCoE Transformer 46 is the interface between the Ethernet and the Fibre Channel networks. The FCoE Transformer 46 is responsible for converting the FCoE protocol to the Fibre Channel FC-1 protocol and vise-versa. Each FCoE Transformer 46 has at least two interfaces; an Ethernet interface 150 and a Fibre Channel interface 158. When initializing and associating with one or more Fibre Channel interfaces 158, the FCoE Transformer 46 performs link and loop initialization and participates in physical address assignment under the direction of commands received by an Ethernet interface 150. The details of the methods of operation of Associating with Fibre Channel over Ethernet devices are described below. Once initialized and associated, the FCoE Transformer 46 translates FC-1 data frames and primitive sequences to and from FCoE frames. The novel use of the FCoE protocol and Ethernet as a replacement for the Fibre Channel FC-1 and FC-0 protocols allows Ethernet devices to transport Fibre Channel data. The details of the methods of operation of Transporting Fibre Channel data over Ethernet are described below.


An FCoE Transformer 46 may be used between any Fibre Channel HBA 60, Fibre Channel Switch 4, Fibre Channel SAN 2, or other Fibre Channel interface and any FCoE HBA 40 or FCoE Fabric 50. Specifically, an FCoE Transformer 46 can be used between an FC HBA 61 and an FCoE Fabric 50 or it may be used between an FCoE Fabric 50 and a Fibre Channel SAN 2 or device. The details of the methods of operation of Managing Fibre Channel over Ethernet devices are described below.


III. Methods of Operation of Transporting Fibre Channel over Ethernet To transport Fibre Channel data over Ethernet, one must be able to differentiate between the various types of Fibre Channel data and have a method to appropriately process each type of data. Fibre Channel has three types of data, Fibre Channel frames 71, Fibre Channel Primitive signals and Fibre Channel Primitive Sequences. The details of the methods of operation of Transporting Fibre Channel Data Frames over Ethernet and the Transporting Fibre Channel Primitive Signals over Ethernet are described below. In one preferred embodiment, Fibre Channel primitive sequences are consumed by the FCoE Transformer 46 and the results are generally communicated through the FCoE Association method. The details of the methods of operation of Associating with Fibre Channel over Ethernet devices are described below. In another preferred embodiment, the primitive sequences are transported over Ethernet using the same mechanism as primitive signals.


To unambiguously describe the type of the Fibre Channel data carried within an FCoE frame 93, and the FCoE Transformer 46 and Fibre Channel interface 158 on a given FCoE Transformer 46 to whom it is destined, this information must be specified in all communications to and from a FCoE Transformer 46. This information is specified in the FCoE Header 92. The FCoE Header 90 is composed of a Version field 98, a Type field 100, an Interface Port Identifier field 102 and an Interface Identifier field 104. The Version field 98 is used to insure that the format of the FCoE Header 46 has not changed. The Type field 100 is used to determine the format and length of the FCoE Type Header 94 that immediately follows the FCoE Header 46. The Interface Port Identifier field 102 identifies which Fibre Channel interface 158 an FCoE frame 93 is referencing. The Interface Port Identifier field 102 is generally expected to be a ones based index of the Fibre Channel interfaces 158. The Interface Port Identifier field 102 can be eliminated in an alternative embodiment that supports only one Fibre Channel interface 158 per FCoE Transformer 46. The Interface Identifier field 104 unambiguously identifies an FCoE transformer 46 when it has more than Ethernet interfaces 150. The Interface Identifier field 104 is generally expected to contain the Ethernet Address of the first Ethernet interface 150. The Interface Identifier field 104 can be eliminated in an alternate embodiment that supports only one Ethernet interface 150 per Transformer 46.


IV. Methods of Operation of Transporting Fibre Channel Data Frames over Ethernet

When the FCoE Type 100 of the FCoE Header 92 is specified as Transport, the FCoE Header 92 is immediately followed by the FCoE Transport header 123. The FCoE Transport header 123 is composed of a series of fields 122, 124, 126, 128, 130, 132, 134 which allow a Fibre Channel frame to be carried and delivered unambiguously to its destination using one or more Ethernet frames 83 for transport. The device address field 122 contains the physical Fibre Channel address of the Fibre Channel device to which is being addressed through the FCoE Transformer 46.


Both gigabit Ethernet and Fibre Channel protocols use the same encoding mechanism, 8B/10B. While the same encoding mechanism is used, the method in which specific codes are used differs considerably. An example of this is how an SOF 70 and EOF 80 of a Fibre Channel frame are used and how an SOF 82 and EOF 90 of an Ethernet frame are used. In Ethernet, the SOF 82 character simply indicates the Start Of frame, while in Fibre Channel; the SOF 70 character indicates both the Start Of Frame and the frame class. Specifically, the SOF character 70 and the EOF character 80 vary depending upon the data contained within the Fibre Channel frame 71. The SOF character 70 is encoded into the SOF field 124 of the FCoE Transport header 123 of the FCoE frame 93. The EOF character 80 is encoded into the EOF field 126 of the FCoE Transport header 123 of the FCoE frame 93.


The flags field 128 contains implementation specific indicators. These indicators indicate when additional fragments follow and when the Fibre Channel CRC 78 is valid. The length field 130 contains the length of the Fibre Channel frame that forms the payload. The fragment offset field 132 indicates where in the receiving FCoE Transformer's 46 buffer the payload should be placed. The fragment offset field 132 is measured in units of 64 bytes (512 bits). When the fragment offset field 132 is set to zero, the payload should start at the beginning of the buffer. A non-fragmented FCoE Transport frame must have the fragment offset field 132 set to zero and must have the last fragment indicator in the flags field 128 set. This FCoE frame must be sent in a single Ethernet frame. The FCoE ID 134 contains a unique identification for each Fibre Channel frame. The FCoE ID 134 must be the same for all fragments of a single Fibre Channel frame. The FCoE ID 134 should be different for each new received Fibre Channel frame.


When a Fibre Channel frame 71 is received by an FCoE Transformer 46, it is specifically received by one of the Fibre Channel interfaces 158. The receiving Fibre Channel interface 158 sends the Fibre Channel frame 71 to the FCoE Transformer Services function 156.


The Fibre Channel Transformer Services function 156 creates an FCoE header 92 with the type field 100 set to Transport. The Fibre Channel Transformer Services function 156 sets the Version field 98, the Interface Port Identifier field 102 and the Interface Identifier field 104 to the correct values for the FCoE Transformer 46. The Fibre Channel Transformer Services function 156 then creates an FCoE type header 94 of type FCoE Transport header 123. The Fibre Channel Transformer Services function 156 sets the device field 122 to the Fibre Channel physical address of the Fibre Channel device from which the Fibre Channel frame 71 was received. The SOF field 124 is set to a unique value that corresponds to the SOF field 70 of the Fibre Channel frame 71. The EOF field 126 is set to a unique value that corresponds to the value of the EOF field 80 of the Fibre Channel frame 71. The values used in the SOF field 124 and the EOF field 126 may be equal to the 8-bit representation of the Fibre Channel SOF and EOF characters or any other value that allows an FCoE device to recognize the various SOF and EOF characters used by Fibre Channel.


If the complete Fibre Channel frame 71 will fit in the payload 96 of the FCoE frame 93, then the flags field 128 has the last offset bit set and the fragment offset field 132 is set to zero. The length field 130 is set to the length of the Fibre Channel frame 71. If the Fibre Channel CRC field 78 is valid, then the CRC valid bit in the flags field 128 is set. The FCoE ID field 134 is set to a unique value.


If the complete Fibre Channel frame 71 will not fit in the payload 96 of the FCoE frame 93, then the Fibre Channel frame 71 must be fragmented across several FCoE frames 93. For each frame other that the last frame, the flags field 128 must not have the last fragment bit or the CRC valid bit set. For the last frame, the flags field 128 must have the last fragment bit set and if the Fibre Channel CRC field 78 is valid, then the CRC valid bit in the flags field 128 must be set. For all FCoE frames 93 containing fragments of a single Fibre Channel frame 71, the fragment offset field 132 is set to the offset where the fragment begins. The length field 130 is set to the length of the data in the FCoE payload 96. The FCoE ID field 134 is set to a unique value that is the same for all Fibre Channel fragments.


Once the FCoE frame 93 or FCoE frames 93 have been constructed, they are sent to the Ethernet interface 150 for transmission. There is a one to one correspondence between the received Fibre Channel frames 71 and the transmitted FCoE frames 93 when the Fibre Channel frames 71 are not fragmented.


When an FCoE frame 93 is received by the Ethernet interface 150, the process is reversed. The Ethernet interface 150 sends the received FCoE frame 93 the FCoE Transformer Services function 156. The FCoE Transformer Services function 156 examines the FCoE type field 100. If the type field 100 is not set to Transport, the FCoE Transformer Services 156 processes the received FCoE frame 93 as described elsewhere in this document. If the type field is set to Transport, the FCoE payload 96 is extracted as the Fibre Channel frame 71. The Fibre Channel SOF 70 is set to the value in the SOF field 124. The Fibre Channel EOF 80 is set to the value in the EOF field 126. If the CRC valid bit not set in the flags field 128, then the Fibre Channel CRC is calculated and the CRC field 78 is set to the calculated value. If the last fragment bit is set in the flags field 128 and the fragment offset field 132 is set to zero, the entire Fibre Channel frame 71 is contained within a single FCoE frame 93. If either of the last fragment bit in the flags field 128 is not set or the fragment offset field 132 is non-zero, then the Fibre Channel frame 71 must be reassembled from the various FCoE fragments. A complete Fibre Channel frame 71 has been received when each the accumulated lengths of the fragments without the last fragment bit in the flags field 128 set equals the fragment offset field 132 of the FCoE fragment with the last fragment bit set in the flags field 128. All of the fragments must have the same value in the FCoE ID field 134 and must have a different value in the fragment offset field 132. The completed Fibre Channel frame 71 is then sent to the Fibre Channel interface 158 to be sent to the Fibre Channel device specified in the device field 122.


V. Methods of Operation of Transporting Fibre Channel Primitive Signals over Ethernet

When the FCoE Type 100 of the FCoE Header 92 is specified as Primitive, the FCoE Header 92 is immediately followed by the FCoE Primitive header 137. The FCoE Primitive header 137 is composed of a series of fields 122, 136, 138, 140 which allow a Fibre Channel primitive to be carried and delivered unambiguously to its destination using an Ethernet frame 83 for transport. The device address field 122 contains the physical Fibre Channel address of the Fibre Channel device that is being addressed through the FCoE Transformer 46. The primitive field 136 specifies the specific ordered set being carried by the FCoE Primitive header 137. Some ordered sets require one or two additional ordered sets to be specified. These additional ordered sets are specified in the OS byte 3 field 138 and the OS byte 4 field 140.


When a Fibre Channel primitive signal is received by an FCoE Transformer 46, it is specifically received by one of the Fibre Channel interfaces 158. The receiving Fibre Channel interface 158 sends the Fibre Channel primitive sequence to the FCoE Transformer Services function 156.


The Fibre Channel Transformer Services function 156 creates an FCoE header 92 with the type field 100 set to Primitive. The Fibre Channel Transformer Services function 156 sets the Version field 98, the Interface Port Identifier field 102 and the Interface Identifier field 104 to the correct values for the FCoE Transformer 46. The Fibre Channel Transformer Services function 156 then creates an FCoE type header 94 of type FCoE Primitive header 137. The Fibre Channel Transformer Services function 156 sets the device field 122 to the Fibre Channel physical address of the Fibre Channel device from which the Fibre Channel primitive sequence was received. The Primitive field 136 is set to the value of the primitive received. If the received primitive has ordered set specific values for bytes 3 and 4, these values are placed in the OS byte 3 138 and OS byte 4 140 fields respectively.


Once the FCoE frame has been constructed, it is sent to the Ethernet interface 150 for transmission. There is a one to one correspondence between the received Fibre Channel primitive signals and the transmitted FCoE frames 93. FCoE PR frames are never large enough to require fragmentation.


When an FCoE frame 93 is received by the Ethernet interface 150, the process is reversed. The Ethernet interface 150 sends the received FCoE frame 93 the FCoE Transformer Services function 156. The FCoE Transformer Services function 156 examines the FCoE type field 100. If the type field 100 is not set to Primitive, the FCoE Transformer Services 156 processes the received FCoE frame 93 as described elsewhere in this document. If the type field is set to Primitive, the primitive field 136 is extracted from the FCoE frame 93. A Fibre Channel primitive signal is created according to the value extracted from the primitive field 136. If the extracted primitive has ordered set specific values for bytes 3 and 4, these values are extracted from the OS byte 3 138 and OS byte 4 140 fields respectively. The completed Fibre Channel primitive signal is then sent to the Fibre Channel interface 158 to be sent to the Fibre Channel device specified in the device field 122.


VI. Methods of Operation of Associating with Fibre Channel over Ethernet devices

The FCoE protocol provides a mechanism for an FCoE Transformer 46 to dynamically associate with one or more Ethernet interfaces 150 on either FCoE HBAs 40 or FCoE Fabrics 50. This enables FCoE HBAs 40 or FCoE Fabrics 50 to have a Fibre Channel Physical Addresses (FC-PA) assigned to it. The novel ability of an Ethernet interface 44 to have a Fibre Channel physical address assigned to it enable the Ethernet devices 40, 50 to communicate with Fibre Channel devices without being directly connected to the Fibre Channel network. The FCoE Transformer 46 maps the Fibre Channel physical addresses to Ethernet MAC addresses. The FCoE Transformer 46 only performs this mapping when it has been instructed to establish link with the Fibre Channel fabric, loop or device. An FCoE Transformer 46 may be associated with more than one Ethernet interface 44. The FCoE Association method includes a method to dynamically discover FCoE Transformers 46 and Interfaces, and a method to dynamically associate and disassociate with an FCoE Transformer 46 or a device performing FCoE Transformer 46 functionality.


When the FCoE Type 100 of the FCoE Header 92 is specified as Association, the FCoE Header 92 is immediately followed by the FCoE Association header 107. The FCoE Association header 107 is composed of a series of fields 106, 108, 110, 112, 114, 116, 118, 120 which allow an FCoE Interface to discover and associate with an FCoE Transformer 46. The Operation field 106 can be set to one of the following values; Interface Announce, Interface Query, Link Control, Link State, Link Query. The Sequence field 108 indicates that the value of the state field 116 has changed. All FCoE Transformers 46 must increment this field any time the state field 116 in a transmitted FCoE Association header 107 is different from the last transmitted value. The Physical Address Fabric field 110 is only valid in a Link Control operation. The Physical Address Fabric field 110 is set to the last Fibre Channel physical address assigned by the Fibre Channel fabric during the Fibre Channel fabric login process. If no address has been assigned by the Fibre Channel fabric, the Physical Address Fabric field 110 should be set to unassigned. The Physical Address Last field 112 is only valid in a Link Control or a Link State operation. In a Link Control operation, the Physical Address Last field 112 is set to the last physical address that was assigned to the Ethernet interface 44. In a Link State operation, the Physical Address Last field 112 is set to the physical address that has just been assigned to the Ethernet interface 44 by the FCoE Transformer. If no address has been previously assigned by the FCoE Transformer 46, the Physical Address Last field 112 should be set to unassigned. The Physical Address Hard field 114 is only valid in a Link Control operation. The Physical Address Fabric Hard 114 is set to the specific Fibre Channel physical address requested by the Ethernet interface hardware, such as a switch on the front panel of the device. If no specific address has been requested by the Ethernet interface, the Physical Address Hard field 114 should be set to unassigned. The State field 116 contains a description of the Fibre Channel and Ethernet capabilities of the FCoE Transformer 46 as requested by the Ethernet interface 44 or as provided by the FCoE Transformer 46. The Port Name field 118 contains the Fibre Channel world wide name associated with the Ethernet interface 44. The Map field 120 contains a map of all Fibre Channel devices attached to the FCoE Transformer 46 on the Fibre Channel port described by the IN_PI field 102. The format of the Map field is defined in the Fibre Channel Arbitrated Loop specification.


When an FCoE Transformer 46 is initialized, it establishes link on its Ethernet interfaces 150. It does not establish link with its Fibre Channel interfaces 158 at this time. After the Ethernet link is established, the FCoE Association Services function 152 periodically broadcasts an FCoE Association message 107 with the operation field 106 set to Interface Announce. An FCoE Transformer 46 broadcasts these messages until the FCoE Association Services function 152 receives an FCoE Association message with the type field set to Link Control. These FCoE Interface Announce messages are broadcast at intervals of 0.1 seconds to 1 second.


When an FCoE HBA 40 is initialized, it establishes link with its Ethernet interface 44. After the Ethernet link is established, the FCoE Association Services function 152 broadcasts an FCoE Association message 107 with the operation field 106 set to Interface Query to determine what FCoE Fabrics and FCoE Transformers are connected to the Ethernet.


When an FCoE Transformer 46 receives an FCoE Interface Query message, it responds with a unicast FCoE Interface Announce message. When an FCoE HBA 40 receives an FCoE Interface Announce message from an FCoE Transformer 46 it saves the Ethernet address of the FCoE Transformer 46 in an interface table. With the Ethernet address, the FCoE HBA 40 can now instruct the FCoE Transformer 46 to establish the Fibre Channel link and obtain a Fibre Channel Physical Address An FCoE HBA 40 can discover an FCoE Transformer 46 based on either an Interface Announce broadcast or an Interface Announce unicast response to an Interface Query message. An FCoE Transformer 46 can discover an FCoE HBA 40 based on either an Interface Query message broadcast or a Link Config message.


Once an FCoE Transformer 46 has been discovered by an FCoE HBA 40, the FCoE HBA 40 may request that the FCoE Transformer 46 initialize its Fibre Channel interface 158 and have a Fibre Channel Physical Address assigned. The FCoE HBA 40 sends an FCoE Association Link Control message to the FCoE Transformer 46. This message contains the Fibre Channel Port Name 118, the desired physical address 114, the last physical address 112, the last fabric assigned physical address 110 and the desired link characteristics 116. Upon receiving an FCoE Association Link Control message, the FCoE Transformer 46 attempts to establish the Fibre Channel link in accordance with the parameters specified in the message. Upon success or failure, the FCoE Transformer 46 responds with an FCoE Association Link State message. On success, the FCoE Transformer 46 adds the assigned Fibre Channel Physical Address and the FCoE HBA's 40 Ethernet address into a table so that subsequent traffic can be transformed between the Fibre Channel and the Ethernet networks.


If the link on the Fibre Channel interface 158 fails, for any reason, the FCoE Transformer 46 sends an FCoE Association Link State message to each of the associated FCoE HBAs 40 indicating that the Fibre Channel link is down. The FCoE Transformer 46 (re)establishes Fibre Channel link when it receives a subsequence FCoE Association Link Control message from the FCoE HBA 40.


An FCoE HBA 40 can change the link state at any time by sending an FCoE Association Link Control message to the FCoE Transformer 46. Each Link Control message is responded to by an FCoE Association Link State message.


An FCoE HBA 40 can query the link state by sending an FCoE Association Link Query message. The response to a Link Query message is a Link State message.


Both the FCoE HBA 40 and the FCoE Transformer 46 maintain tables of Fibre Channel Physical Addresses and Fibre Channel Port Names to Ethernet address mapping. When either the FCoE HBA 40 or the FCoE Transformer 46 loses link on the Ethernet interface 44, 150, the associated mapping table entries must be flushed.


VII. Methods of Operation of Managing Fibre Channel over Ethernet devices

The FCoE protocol is designed as an alternative to the Fibre Channel FC-1 protocol. It is an Ethernet based layer 2 protocol. Because FCoE is used in an Ethernet environment, it is expected that hosts with FCoE HBAs 40 and FCoE Fabrics 50 will use SNMP or a similar, widely deployed network management protocol. However, given the desire to build small, simple FCoE Transformers 46 that do not have the ability to run a TCP/IP protocol stack necessary to implement SNMP, there is a requirement for a companion to the existing FCoE protocols to implement a simple management function. FCoE Management is meant to be implemented in the spirit of both the FCoE protocol and the SNMP protocol. Alternative embodiments may use other management protocols or completely eliminate the management function.


When the FCoE Type 100 of the FCoE Header 92 is specified as Management, the FCoE Header 92 is immediately followed by the FCoE Management header 143. The FCoE Management header 143 is composed of a series of fields 142, 144, 146, 148 which allow an FCoE management command or response to be carried and delivered unambiguously to its destination using an Ethernet frame 83 for transport. The Operation field 142 can be set to one of the following values; Get Variable, Set Variable, Valid Response, Invalid Response. The Structure Index field 144 describes which group of variables the request should operate on. The Structure Index field 144 can be set to one of the following values; ConnUnitPortEntry, ConnUnitPortStatEntry. The Sequence field 146 is used to match FCoE management requests with responses. The Sequence field 146 of a management response must have the same value as the management request. The Variable Index field 148 specifies the management variable being operated on. The FCoE payload field 96 contains the value of the variable specified by the variable index field 148.


When an FCoE frame 93 is received by the Ethernet interface 150, the Ethernet interface 150 sends the received FCoE frame 93 to the FCoE Transformer Services function 156. The FCoE Transformer Services function 156 examines the FCoE type field 100. If the type field 100 is not set to Management, the FCoE Transformer Services 156 processes the received FCoE frame 93 as described elsewhere in this document. If the type field is set to Management, the FCoE Management frame is sent to the FCoE Management Services function 154. The FCoE Management Services function 154 extracts the operation from the operation field 142. If the extracted operation is not Get Variable or Set Variable, an FCoE Management response with the operation field set to Invalid Response is returned to the FCoE Management requester. If the extracted operation is Get Variable or Set Variable, the management variable is extracted from the Structure Index field 144 and the Variable Index field 148. If the management variable is valid, the given operation is performed. If the operation is Set Variable, the given variable is set to the value contained in the payload field 96. An FCoE Management response frame is created from the original FCoE frame 93. The same FCoE Header 92 may be used. The same FCoE Management Header 143 may be used. The operation field 142 is set to Valid Response. The Structure Index 144 and Variable Index 148 are set to the Structure Index 144 and Variable Index 148 values from the FCoE Management request. The sequence field 146 is set to the sequence field 146 value from the FCoE Management request. If the operation field 142 of the Management request was set to Get Variable, the value of the requested variable is placed in the payload field 96. Once the FCoE Management response has been completed, it is sent to the Ethernet interface 150 for transmission back to the requestor.


FCoE Management requests can only be received by the Ethernet interfaces 150.


VIII. Alternative Embodiments of Transporting Fibre Channel over Ethernet

A preferred embodiment is a Fibre Channel interface with a remote Fibre Channel interface.


Another preferred embodiment is an FCiP interface with a remote Fibre Channel interface.


Another preferred embodiment is an iFCP interface with a remote Fibre Channel interface.


Another preferred embodiment is a Fibre Channel firewall using Ethernet devices.


Another preferred embodiment is performing Fibre Channel storage data virtualization using Ethernet devices.


Another preferred embodiment is performing Fibre Channel data replication using Ethernet devices.


Another preferred embodiment is unifying Fibre Channel and Ethernet on the backplane of a computer or cluster of computers.


Another preferred embodiment is a Fibre Channel Host Bus Adapter (HBA) using an Ethernet NIC.


Another preferred embodiment is host access of Fibre Channel based data using Ethernet devices.


Another preferred embodiment is transporting SCSI traffic over Fibre Channel over Ethernet.


Another preferred embodiment is performing Fibre Channel data erasure using Ethernet devices.


Another preferred embodiment is transporting encrypted SCSI traffic over Fibre Channel over Ethernet.


CONCLUSION

Although the present invention has been described in detail with reference to one or more preferred embodiments, persons possessing ordinary skill in the art to which this invention pertains will appreciate that various modifications and enhancements may be made without departing from the spirit and scope of the Claims that follow. The various alternatives for providing a efficient means for transporting Fibre Channel over Ethernet that have been disclosed above are intended to educate the reader about preferred embodiments of the invention, and are not intended to constrain the limits of the invention or the scope of Claims. The List of Reference Characters which follows is intended to provide the reader with a convenient means of identifying elements of the invention in the Specification and Drawings. This list is not intended to delineate or narrow the scope of the Claims.


LIST OF REFERENCE CHARACTERS



  • FC0 Fibre Channel Physical Layer

  • FC1 Fibre Channel Transmission Protocol

  • FC2 Fibre Channel Signaling Protocol

  • FC3 Fibre Channel Layer 3 Protocol

  • FC4 Fibre Channel Upper Layer Protocol Interface Protocol

  • L1 Layer 1 Protocol; Physical Layer

  • L2 Layer 2 Protocol; Data Link Layer

  • L3 Layer 3 Protocol; Network Layer

  • L4 Layer 4 Protocol; Transport Layer

  • L5 Layer 5 Protocol; Session Layer

  • L6 Layer 6 Protocol; Presentation Layer

  • L7 Layer 7 Protocol; Application Layer

  • LLC Ethernet Logical Link Control

  • MAC Ethernet Media Access Control Layer

  • PHY Ethernet Physical Layer

  • ULP Fibre Channel Upper Layer Protocol


  • 2 SAN network


  • 4 Fibre Channel Switch


  • 6 Layer 2 Ethernet Switch


  • 8 Layer 4-7 Ethernet Switch


  • 10 Firewall


  • 12 Router


  • 14 Server


  • 20 Layer 2-7 Ethernet Switch


  • 30 Merged LAN/SAN Switch


  • 40 FCoE HBA


  • 42 Virtual Fibre Channel N-Port, FCoE HBA


  • 44 Ethernet interface, FCoE HBA


  • 46 FCoE Transformer


  • 48 Real Fibre Channel N-Port


  • 50 FCoE Fabric


  • 52 Storage Switching Function


  • 54 Well Known Fibre Channel Ports


  • 56 Fibre Channel Services


  • 58 Virtual Fibre Channel F-Port


  • 60 FCoE Management Functions


  • 61 FC HBA


  • 62 Real Fibre Channel N-Port within an FC HBA


  • 70 SOF field, Fibre Channel Frame


  • 71 Fibre Channel Frame


  • 72 Frame Header, Fibre Channel Frame


  • 74 Optional Header, Fibre Channel Frame


  • 76 Payload field, Fibre Channel Frame


  • 78 CRC field, Fibre Channel Frame


  • 80 EOF field, Fibre Channel Frame


  • 82 SOF field, Ethernet Frame


  • 83 Ethernet Frame


  • 84 Frame Header, Ethernet Frame


  • 86 Payload field, Ethernet Frame


  • 88 CRC field, Ethernet Frame


  • 90 EOF field, Ethernet Frame


  • 92 FCoE Header, FCoE Frame


  • 93 FCoE Frame


  • 94 FCoE Type Header, FCoE Frame


  • 96 Payload field, FCoE Frame


  • 98 Version field, FCoE Header


  • 100 Type field, FCoE Header


  • 102 Interface Port Identifier field, FCoE Header


  • 104 Interface Identifier field, FCoE Header


  • 106 Operation field, FCoE Association Header


  • 108 Sequence field, FCoE Association Header


  • 110 Physical Address Fabric field, FCoE Association Header


  • 112 Physical Address Last field, FCoE Association Header


  • 114 Physical Address Hard field, FCoE Association Header


  • 116 State field, FCoE Association Header


  • 118 Port Name field, FCoE Association Header


  • 120 Map field, FCoE Association Header


  • 122 Device field, FCoE Transport Header


  • 123 FCoE Transport Header


  • 124 SOF field, FCoE Transport Header


  • 126 EOF field, FCoE Transport Header


  • 128 Flags field, FCoE Transport Header


  • 130 Length field, FCoE Transport Header


  • 132 Fragment Offset field, FCoE Transport Header


  • 134 FCoE ID field, FCoE Transport Header


  • 136 Primitive field, FCoE Primitive Header


  • 137 FCoE Primitive Header


  • 138 Ordered Set Byte 3 field, FCoE Primitive Header


  • 140 Ordered Set Byte 4 field, FCoE Primitive Header


  • 142 Operation field, FCoE Management Header


  • 143 FCoE Management Header


  • 144 Structure Index field, FCoE Management Header


  • 146 Variable Index field, FCoE Management Header


  • 150 Ethernet interface, FCoE Transformer


  • 152 FCoE Association Services, FCoE Transformer


  • 154 FCoE Management Services, FCoE Transformer


  • 156 FCoE Transformer Services, FCoE Transformer


  • 158 Fibre Channel interface, FCoE Transformer


Claims
  • 1. A method comprising the steps of: providing a fibre channel frame;receiving said fiber channel frame using a fibre channel interface;transforming said fibre channel frame an FCoE frame; andtransmitting said FCoE frame using an Ethernet interface.