Fibre channel over ethernet (FCoE) pinning system

A Fibre Channel over Ethernet (FCoE) pinning system includes a first Fibre Channel Forwarder (FCF) device that is coupled to a Fibre Channel (FC) storage device through a first FCF device port, and that is coupled to a first server device through a second FCF device port that is included on an aggregated interface. The FCF device sends an FCF advertisement through the second FCF device port. The FCF device receives, from the first server device at the second FCF device port in response to sending the FCF advertisement through the second FCF device port, a server message that includes a first server port identifier of a first server port. The FCF device associates the first server port identifier with the second FCF device port to form a first FCF group and pins the first FCF group for FCoE traffic.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is related to United States Utility Application Ser. No. 16/138,626, filed Sep. 21, 2018, now U.S. Pat. No. 10,666,499, the disclosure of which is incorporated herein by reference in its entirety.

BACKGROUND

The present disclosure relates generally to information handling systems, and more particularly to Fibre Channel over Ethernet (FCoE) auto-pinning by information handling systems.

Some information handling systems provide a Fibre Channel (FC) Storage Area Network (SAN) for the storage of data. In such systems, an FC switch may be utilized to couple the FC storage devices to servers via a FC Forwarder (FCF) that performs FC over Ethernet (FCoE)-to-FC protocol conversions on Ethernet communications sent from the servers to the FC storage devices, as well as FC-to-FCoE protocol conversions on FC communications sent from the FC storage devices to the servers. Such FCFs allow for servers that communicate via the Ethernet protocol to utilize FC SANs that communicate via the FC protocol. In some server/FCF configurations, multiple links may be provided between a server and an FCF, and those links may be aggregated using an aggregation protocol to provide an aggregated interface. For example, a port channel utilizing Virtual link Trunking (VLT), which is a link aggregation protocol available in devices provided by DELL® Inc. of Round Rock, Tex., United States, may be used to aggregate the links between FCFs and servers. To support FCoE along with an aggregation interface, a user may statically pin one of the ports in the aggregation interface for FCoE traffic per FC SAN by, for example, providing a command via a command line interface (CLI). In some implementations, the server may include a Converged Network Adapter (CNA) having four ports, with one port per FC SAN dedicated for Ethernet traffic, and only one port that is capable of being pinned for FCoE traffic per FC SAN. As such, using an aggregated interface, only two of the four ports on that CNA can be configured for FCoE traffic.

Similarly, one or more FCoE Initialization Protocol (FIP) snooping bridges (FSBs) may be provided between the server and the FCF, and may provide multiple links to the FCF that can be aggregated as an aggregated interface, as well as multiple links to the server device(s). The FSB may be dedicated to a particular SAN, but may be coupled to other FCFs of other SANs as well. However, in current implementations, only one of the ports in an aggregated interface to the FCF, which is provided for the SAN to which the FSB is dedicated, can be configured as an FCoE pinned port. Thus, when multiple links of an aggregated interface are provided between the server and the FSB (or between the FCF and the FSB), only one of those links may be pinned for FCoE traffic, which is inefficient as there is potential unused bandwidth on the additional links for that FCoE traffic.

Accordingly, it would be desirable to provide an improved FCoE pinning system.

SUMMARY

According to one embodiment, an Information Handling System (IHS) includes a plurality of ports; a processing system that is coupled to the plurality of ports; and a memory system that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide an Fibre Channel over Ethernet (FCoE) pinning engine that is configured to: send a Fibre Channel Forwarder (FCF) advertisement through a first port of the plurality of ports that is a member of an aggregated interface; receive, from a first server device at the first port in response to sending the FCF advertisement through the first port, a server message that includes a first server port identifier of a first server port; associate the first server port identifier with the first port to form a first FCF group; and pin the first FCF group for FCoE traffic.

DETAILED DESCRIPTION

Referring now toFIG. 2A, an embodiment of a Fibre Channel over Ethernet (FCoE) pinning system200ais illustrated. In the illustrated embodiment, the FCoE pinning system200includes a server device202that may be the IHS100discussed above with reference toFIG. 1and/or that may include some or all of the components of the IHS100. For example, the server device202may be one or more servers in a server rack or server chassis, and one of skill in the art in possession of the present disclosure will recognize that any number of servers may be provided in the FCoE pinning system200aand may operate similarly to the server devices discussed below. In the illustrated embodiment, the server device202is coupled to an FC Forwarder (FCF) device206athat may be the IHS100discussed above with reference toFIG. 1and/or that may include some or all of the components of the IHS100. For example, the FCF device206amay be provided by a switch or other networking device that is configured to receive Ethernet communications from the server device202a, convert those Ethernet communications to Fibre Chanel (FC) communications for forwarding to an FC Storage Area Network (SAN), receive FC communications from the FC SAN, convert those FC communications to Ethernet communications for forwarding to the server device202, and/or perform other FCF device functionality know in the art. One of skill in the art in possession of the present disclosure will recognize that any number of FCF devices, such as the FCF device206billustrated inFIG. 2A, may be provided in the FCoE pinning system200aand operate similarly to the FCF device206a.

In the illustrated embodiment, the FCF device206ais coupled to an FC switch, an FC storage system, and/or any other FC networking device that may be included in an SAN208a. For example, the FC SAN208amay be configured to receive communications from the server device202that were converted as discussed above by the FCF device206a, send communications to the server device that are converted as discussed above by the FCF device206a, and/or perform a variety of other FC networking and storage system functionality that would be apparent to one of skill in the art in possession of the present disclosure. In various embodiments, the FCF device206amay be coupled to a local area network (LAN) in order to send and receive Ethernet traffic via the LAN. In various embodiments, the FCF device206ais included in a first virtual local area network for the SAN208a.

In the illustrated embodiment, the FCF device206bis coupled to an FC switch, an FC storage system, and/or any other FC networking device that may be included in an SAN208b. For example, the FC SAN208bmay be configured to receive communications from the server device202that were converted as discussed above by the FCF device206b, send communications to the server device that are converted as discussed above by the FCF device206b, and/or perform a variety of other FC networking and storage system functionality that would be apparent to one of skill in the art in possession of the present disclosure. In various embodiments, the FCF device206amay be coupled to a local area network (LAN) in order to send and receive Ethernet traffic via the LAN. In various embodiments, the FCF device206bis included in a second virtual local area network for the SAN208b. One of skill in the art in possession of the present disclosure will recognize that the FCF device206aand the FCF device206bmay be coupled to the same upstream target device (e.g., an FC switch, an FC storage device, etc.) but belong to different SANs.

In the illustrated embodiment, the server device202may be connected with the FCF device206aby a link210abetween a server port202(1) and an FCF device port206a(1), and by a link210bbetween a server port202(2) and an FCF device port206a(2). Similarly, the server device202may be connected with the FCF device206bby a link210cbetween a server port202(3) and an FCF device port206b(1), and by a link210dbetween a server port202(4) and an FCF device port206b(2). The links210a-210dmay be aggregated (e.g., via a port channel (also referred to as a VLT Link Aggregation Group (LAG) in VLT systems)) to provide an aggregated interface212. The FCF device206amay be connected to the FCF device206bby a link210ebetween an FCF device port206a(3) and an FCF device port206b(3). The link210emay be an Inter-Chassis link (ICL) (also called a VLT interface (VLTi) in VLT systems) that may include a plurality of aggregated links. In the illustrated embodiment, the FCF device206amay be connected to the FC SAN208aby a link210fthrough an FCF device port206a(4), and the FCF device206bmay be connected to the FC SAN208bby a link210gthrough an FCF device port206b(4). As would be understood by one of skill in the art in possession of the present disclosure, VLT is a proprietary aggregation protocol utilized by devices provided by DELL®, Inc. of Round Rock, Tex., United States, in order to allow an aggregated link with two different devices, although other aggregation protocols may benefit from the teachings of the present disclosure and thus are envisioned as falling within its scope as well.

Referring now toFIG. 2B, an embodiment of an FCoE pinning system200bis illustrated that may include the server device202, the FCF device206a, and the FC SAN208aof the FCoE pinning system200adescribed above with reference toFIG. 2A. In the illustrated embodiment, the server device202and the FCF device206aare coupled to an FCoE Initialization Protocol (FIP) Snooping Bridge (FSB)204athat may be the IHS100discussed above with reference toFIG. 1and/or that may include some or all of the components of the IHS100. For example, the FSB204amay be provided by a switch or other networking device that is configured to snoop on FIP packets during the discovery and login phases of end nodes in order to, for example, implement data integrity mechanisms using access control lists (ACLs) that permit valid FCoE traffic between an ENode and the FCF device206a, as well as other FSB functionality that would be apparent to one of skill in the art in possession of the present disclosure. One of skill in the art in possession of the present disclosure will recognize that any number of FSBs, such as the FSB204billustrated inFIG. 2B, may be provided in the FCoE pinning system200band may operate similarly to the FSB204a. As discussed below, the server device202amay include a four port Converged Network Adapter (CNA), with each port being an FCoE node (ENode).

In the illustrated embodiment, a first SAN/VLAN may include the server device202, the FCF device206a, and the FSB204a. The server device202may be connected with the FSB204aby a link214abetween a server port202(1) and an FSB port204a(1), and by a link214bbetween a server port202(2) and an FSB port204a(2). A second SAN/VLAN may include the server device202, the FCF device206a, and the FSB204b. The server device202may be connected with the FSB204bby a link214cbetween a server port202(3) and an FSB port204b(1), and by a link214dbetween a server port202(4) and an FSB port204b(2). The links214a-214dmay be aggregated (e.g., using a port channel) to provide an aggregated interface216. The FSB204amay be connected to the FSB204bby a link214ebetween an FSB port204a(3) and an FSB port204b(3). The link214emay be an ICL (e.g., a VLTi in VLT systems) that may include a plurality of aggregated links. In the illustrated embodiment, the FSB204amay be connected to the FCF device206aby a link214fbetween an FSB port204a(4) and the FCF device port206a(1). The FSB204bmay be connected to the FCF device206aby a link214gbetween an FSB port204b(4) and the FCF device port206b(1). The links214fand214gmay be aggregated to provide an aggregated interface218. The FCF device206amay be connected to the FC SAN208aby a link214hthrough the FCF device port206a(3).

While the aggregated interface216in the FCoE pinning system200bis illustrated as having four links between the server device202and the FSBs204aand204b, one of skill in the art in possession of the present disclosure would recognize that the aggregated interface216may include more or fewer links. For example, and with reference toFIG. 2C, an FCoE pinning system200cis illustrated that is substantially similar to the FCoE pinning system200bofFIG. 2B, but with the aggregated interface216including only two links: the link214abetween the server port202(1) and the FSB port204a(1), and the link214dbetween the server port202(4) and the FSB port204b(2).

Similarly, while the aggregated interface218includes links214fand214g, one of skill in the art in possession of the present disclosure would recognize that there may be additional links between the FSB204aand the FCF device206a, and/or between the FSB204band the FCF device206a. For example and referring now toFIG. 2D, an FCoE pinning system200dis illustrated where the FSB204a, the FSB204b, the FCF device206a, and the FCF device206bare configured in a square topology. In the illustrated embodiment, a first SAN/VLAN may include the server device202, the FCF device206a, and the FSB204a, and a second SAN/VLAN may include the server device202, the FCF device206b, and the FSB204b. The server device202may be connected with the FSB204aby the link214abetween the server port202(1) and the FSB port204a(1). The server device202may be connected with the FSB204bby the link214dbetween a server port202(4) and an FSB port204b(2). The links214aand214dmay be aggregated to provide the aggregated interface216. The FSB204amay be connected to the FSB204bby a link214ebetween an FSB port204a(3) and an FSB port204b(3). The link214emay be an ICL and may include a plurality of aggregated links.

In the illustrated embodiment, the FSB204amay be connected to the FCF device206aby the link214fbetween the FSB port204a(4) and the FCF device port206a(1). The FSB204amay also be connected to the FCF device206aby a link214gbetween the FSB port204a(5) and the FCF device port206a(2). The FSB204amay be connected to the FCF device206bby a link214hbetween an FSB port204a(6) and the FCF device port206b(1). The FSB204bmay be connected to the FCF device206aby a link214ibetween the FSB port204b(4) and the FCF device port206a(3). The FSB204bmay be connected to the FCF device206bby a link214jbetween the FSB port204b(5) and the FCF device port206b(2). The links214f-214jmay be aggregated to provide the aggregated interface218. The FCF device206amay be connected to the FCF device206bby a link214lbetween the FCF device port206a(4) and the FCF device port206b(3). The link214lmay be an ICL and may include a plurality of aggregated links. The FCF device206amay be connected to the FC SAN208aby a link214mthrough an FCF device port206a(5). The FCF device206bmay be connected to the FC SAN208aby a link214nthrough an FCF device port206b(4). While specific FCoE pinning systems200a-200dhave been illustrated and described, one of skill in the art in possession of the present disclosure will recognize that the teachings of the present disclosure will be beneficial for a variety of FCoE pinning systems that would be apparent to one of skill in the art in possession of the present disclosure and, as such, a wide variety of modifications to the number, types, and orientation of devices in the FCoE pinning systems200a-200dwill fall within the scope of the present disclosure as well.

Referring now toFIG. 3, an embodiment of a server device300is illustrated that may be the server device202discussed above with reference toFIGS. 2A-2D. As such, the server device300may be the IHS100discussed above with reference toFIG. 1and/or may include some or all of the components of the IHS100, and in specific examples may be one or more servers in a server rack or server chassis. In the illustrated embodiment, the server device300includes a chassis302that houses the components of the server device300, only some of which are illustrated inFIG. 3. For example, the chassis302may house a processing system (not illustrated, but which may include the processor102discussed above with reference toFIG. 1) and a memory system (not illustrated, but which may include the system memory114discussed above with reference toFIG. 1) that includes instructions that, when executed by the processing system, cause the processing system to provide an adapter engine304that is configured to perform the functions of the adapter engines and server devices discussed below.

The chassis302may also house a storage system (not illustrated, but which may include the storage device108discussed above with reference toFIG. 1) that is coupled to the adapter engine304(e.g., via a coupling between the storage system and the processing system) and that may include a storage subsystem306that is configured to store the data utilized as discussed below. However, in some embodiments the storage subsystem306may be omitted. The chassis302may also house a communication subsystem308that is coupled to the adapter engine304(e.g., via a coupling between the communication subsystem308and the processing system) and that may include a Network Interface Controller (NIC), a wireless communication devices, one or more ports (e.g., a port308a), and/or other communication components that would be apparent to one of skill in the art in possession of the present disclosure. Furthermore, in some embodiments, components of the adapter engine304and/or the communication subsystem308may be provided by a Converged Network Adapter (CNA) that performs the functionality of the adapter engines and/or server devices discussed below. In various embodiments, the CNA may be a four port CNA that includes a port308a, a port308b, a port308c, and a port308d, which may be the ports202a-202ddiscussed above with reference toFIGS. 2A-2D. However, in other embodiments, the adapter engine304and/or communication subsystem308may be utilized to provide any number of ports and other types of adapters (e.g., Host Bus Adapters (HBAs)) while remaining within the scope of the present disclosure. While a specific server device300has been described, one of skill in the art in possession of the present disclosure will recognize that the server device300may include a variety of other components that perform conventional server device functionality, as well as the functionality described below, while remaining within the scope of the present disclosure.

Referring now toFIG. 4, an embodiment of a Fibre Channel Forwarder (FCF) device400is illustrated that may be the FCF devices206aand206bdiscussed above with reference toFIGS. 2A-2D. As such, the FCF device400may be the IHS100discussed above with reference toFIG. 1and/or may include some or all of the components of the IHS100, and in specific examples may be a switch, a gateway, or other networking device. In the illustrated embodiment, the FCF device400includes a chassis402that houses the components of the FCF device400, only some of which are illustrated inFIG. 4. For example, the chassis402may house a processing system (not illustrated, but which may include the processor102discussed above with reference toFIG. 1) and a memory system (not illustrated, but which may include the system memory114discussed above with reference toFIG. 1) that includes instructions that, when executed by the processing system, cause the processing system to provide a conversion engine404that is configured to perform the functions of the conversion engines and FCF devices discussed below. In a specific example, the conversion engine404may include an N_Port ID Virtualization (NPIV) Proxy Gateway (NPG) engine that operates as discussed below, although other conversion engines may fall within the scope of the present disclosure as well. In another example, the conversion engine404may include an FCoE pinning engine405that is configured to perform the functions of the FCoE pinning engines and FCF devices discussed below such as, for example, pinning one or more ports that are included in a port interface/aggregated interface for FCoE traffic, as discussed in detail below.

The chassis402may also house a storage system (not illustrated, but which may include the storage device108discussed above with reference toFIG. 1) that is coupled to the conversion engine404(e.g., via a coupling between the storage system and the processing system) and that may include an FCF device pinned database406that is configured to store the data utilized by the configuration engine404as discussed below. The chassis402may also house a communication subsystem408that is coupled to the conversion engine404(e.g., via a coupling between the communication subsystem408and the processing system) and that may include a Network Interface Controller (NIC), a wireless communication devices, ports, and/or other communication components that would be apparent to one of skill in the art in possession of the present disclosure. For example, in the illustrated embodiment, the communication subsystem408includes a plurality of ports (e.g., the ports408a,408b,408c,408d, and up to408eillustrated inFIG. 4) that may be coupled to an FC networking device, another FCF device, an FSB, and/or a server device as discussed below. The ports408a-408emay be any of the FCF device ports206a(1)-206a(5) or206b(1)-206b(5) discussed above with reference toFIGS. 2A-2D. Furthermore, in some embodiments, components of the conversion engine404and/or the communication subsystem408may provide an NPG that performs the functionality of the conversion engines and/or server devices discussed below. However, as discussed above, the conversion engine404may be utilized to provide for other types of conversions while remaining within the scope of the present disclosure. While a specific FCF device400has been described, one of skill in the art in possession of the present disclosure will recognize that the FCF device400may include a variety of other components that perform conventional FCF device functionality, as well as the functionality described below, while remaining within the scope of the present disclosure.

Referring now toFIG. 5, an embodiment of an FCF device pinned database500is illustrated. In an embodiment, the FCF device pinned database500may be the FCF device pinned database406discussed above with reference toFIG. 4. In a specific example, the FCF device pinned database500may include an FCF device pinning table502that may identify, for example, FCF device ports of the FCF device400that are grouped and pinned for FCoE traffic based on the aggregated interface (e.g., a port channel) in which the FCF device ports are members. In the illustrated example, the FCF device pinned database500includes the FCF device pinning table502having FCF device pinning table entries502a,502b,502c, and up to502d. For example, for each FCF device pinning table entry502a-d, the FCF device pinning table502may include an ENode identifier column504, an FSB identifier column506, a pinned group identifier column508, a member column510for FCF device ports that are members of the aggregated interface, and/or any other information column that would be apparent to one of skill in the art to pin FCF device ports of the FCF device206aand/or206bfor FCoE traffic. However, one of skill in the art in possession of the present disclosure will recognize that the FCF device pinned database500and/or the FCF device pinning table502may include and/or store other information to enable the functionality discussed below while remaining within the scope of the present disclosure.

Referring now toFIG. 6, an embodiment of an FCoE Initialization Protocol (FIP) Snooping Bridge (FSB)600is illustrated that may be the FSB204aor204bdiscussed above with reference toFIGS. 2A-2D. As such, the FSB600may be the IHS100discussed above with reference toFIG. 1and/or may include some or all of the components of the IHS100, and in specific examples may be an FCoE transit switch or FCF device. In the illustrated embodiment, the FSB600includes a chassis602that houses the components of the FSB600, only some of which are illustrated inFIG. 6. For example, the chassis602may house a processing system (not illustrated, but which may include the processor102discussed above with reference toFIG. 1) and a memory system (not illustrated, but which may include the system memory114discussed above with reference toFIG. 1) that includes instructions that, when executed by the processing system, cause the processing system to provide an FIP snooping engine604that is configured to perform the functions of the FIP snooping engines and FSBs discussed below. The chassis602may also house a storage system (not illustrated, but which may include the storage device108discussed above with reference toFIG. 1) that is coupled to the FIP snooping engine604(e.g., via a coupling between the storage system and the processing system) and that may include an FSB pinned database606that is configured to store the data utilized as discussed below. In another example, the FIP snooping engine604may include an FCoE pinning engine605that is configured to perform the functions of the FCoE pinning engines and FSBs discussed below such as, e.g., pinning one or ports of the FSB that are included in a port interface/aggregated interface, as discussed in detail below.

The chassis602may also house a communication subsystem608that is coupled to the FIP snooping engine604(e.g., via a coupling between the communication subsystem608and the processing system) and that may include a Network Interface Controller (NIC), a wireless communication devices, ports, and/or other communication components that would be apparent to one of skill in the art in possession of the present disclosure. For example, in the illustrated embodiment, the communication subsystem608includes a plurality of ports608a,608b,608c,608d, and up to608e, any of which may be coupled to an FCF device as well as a server device, as discussed herein. The ports608a-608emay be any of the FSB ports204a(1)-204a(6) or204b(1)-204b(5) discussed above with reference toFIGS. 2A-2D. While a specific FSB600has been described, one of skill in the art in possession of the present disclosure will recognize that the FSB600may include a variety of other components that perform conventional FC networking device functionality, as well as the functionality described below, while remaining within the scope of the present disclosure.

Referring now toFIG. 7, an embodiment of an FSB pinned database700is illustrated. In an embodiment, the FSB pinned database500may be the FSB pinned database606discussed above with reference toFIG. 6. In a specific example, the FSB pinned database700may include an FSB pinning table702that may identify, for example, FSB ports of the FSB600that are grouped and pinned for FCoE traffic based on the aggregated interface (e.g., a port channel) in which the FSB ports are members. In the illustrated example, the FSB pinned database700includes the FSB pinning table702having FSB pinning table entries702a,702b,702c, and up to702d. For example, for each FSB pinning table entry702a-d, the FSB pinning table702may include an connected device identifier column704, an connected device type column706(e.g., an ENode or an FCF device), a pinned group identifier column708, a member column710for FSB ports that are members of the aggregated interface, and/or any other information column that would be apparent to one of skill in the art to pin FSB ports of the FSBs204aand/or204bfor FCoE traffic. However, one of skill in the art in possession of the present disclosure will recognize that the FSB pinned database700and/or the FSB pinning table702may include and/or store other information to enable the functionality discussed below while remaining within the scope of the present disclosure.

Referring now toFIG. 8, an embodiment of a method800for FCoE pinning is illustrated. As discussed above, in conventional systems that support FCoE and that utilize an aggregation protocol (e.g., VLT) that aggregates links between an ENode, an FCF device and, in some embodiments, an FSB in order to provide an aggregated interface (e.g., a port channel also referred to as a VLT LAG), an administrator has to statically pin one of the ports in the aggregated interface for FCoE traffic per SAN fabric, and that administrator must configure the port to be pinned via a Command Line Interface (CLI). However, this manual pinning configuration of ports for FCoE traffic is inefficient when there are multiple links in a SAN that are included in the aggregated interface. For example, if there are multiple links between an FSB and an FCF device provided in a SAN and/or VLAN, only one set of ports (i.e., a single FSB port and a single FCF device port that provide a link) that are members of the aggregated interface may be configured as an FCoE pinned port. Furthermore, in conventional FCoE pinning systems, four port CNAs can only have one of those ports used for FCoE traffic per SAN fabric, and required one of those ports to be dedicated to Ethernet traffic. As such, out of the four ports on the CNA, only two ports of the CNA can be pinned for FCoE traffic (converged traffic cannot be used when using aggregated interfaces due to the one port pinning limit.) The systems and methods of the present disclosure provide an FCoE pinning system that automatically pins ports for FCoE traffic if the ports are members of an aggregated interface. Pinning tables are generated by FCFs and FSBs that group together multiple links that are pinned as groups such that FCoE traffic can be routed through all ports and links that are part of the aggregated interface. Thus, the pinning tables and the FCoE pinning discussed herein decreases latency with respect to the FCoE traffic being sent, allows for converged traffic from a four port CNA where the ports of the CNA are aggregated, alleviates congestion on the links between the an ENode and an FC storage device, and/or provides other benefits that will be apparent to one of skill in the art in possession of the present disclosure when additional links between an ENode and a FCF device are utilized for FCoE traffic.

The method800begins at block802where an FCF advertisement is sent through FCF device ports that are members of an aggregated interface. In an embodiment of block802, the FCF device206aand/or206bofFIGS. 2A-2Dmay send an FCF advertisement though each FCF device port that is a member of the aggregated interface212ofFIG. 2Aand/or the aggregated interface218ofFIGS. 2B-2D(e.g., a port channel (i.e., a VLT LAG)). Each FCF advertisement may include an FCF device identifier (e.g., an FCF Media Access Control (MAC) address) that identifies the FCF device from which the FCF identifier originated.

Referring now toFIG. 9A, an example FCoE pinning communication diagram900aillustrates the communications between the server device202/400and the FCF device206a/400during the method800. The FCoE pinning communication diagram900ais discussed with reference to the FCoE pinning system200aofFIG. 2A. In the illustrated example, FCF device206asends a multicast discovery advertisement (MDA)902through each of: the FCF device port206a(1) via the link210a, and the FCF device port206a(2) via the link210b, each of which are members of the aggregated interface212. Each MDA902may include an FCF MAC address that identifies the FCF device206a. The corresponding server ports202(1) and202(2) may receive the MDA902. While the examples inFIG. 9Aare directed to the communications between the FCF device206aand server device202, one of skill in the art in possession of the present disclosure will recognize that the methods herein may be applied to communications between the FCF device206band the server device202while remaining within the scope of the present disclosure and are omitted to simplify the discussion.

Referring now toFIG. 9B, an example FCoE pinning communication diagram900billustrates communications between the server device202/300and the FSB204a/600, and between the FSB204a/600and the FCF device206a/400, during the method800. FCoE pinning communication diagram900bis discussed with reference to the FCoE pinning systems200b-200dofFIGS. 2B-2D. In the illustrated example, the FCF device206asends an MDA902through each of: the FCF device port206a(1) via the link214f, and the FCF device port206a(2) via the link214gofFIGS. 2B and 2C, each of which are members of the aggregated interface212. In the FCoE pinning system200dofFIG. 2D, the FCF device206asends the MDA902through the FCF device ports206a(1),206a(2), and206a(3). Each MDA902may include an FCF MAC address that identifies the FCF device206a. The corresponding FSB ports204a(4) and204a(5) on the FSB204amay receive the MDA902. While the examples inFIG. 9Bare directed to the communications between the FCF device206aand the FSB204a, one of skill in the art in possession of the present disclosure will recognize that the methods herein may be applied to communications between the FCF device206aand the FSB204band/or between FCF device206band the FSBs204(a) and204(b) while remaining within the scope of the present disclosure and are omitted to simplify the discussion.

In response to receiving the FCF advertisement, the FSB204(a) may associate the FCF device identifier included in the FCF advertisement with the FSB port that received the FCF advertisement in order to form a first FSB group and pin the first FSB group for FCoE traffic. Additional FSB ports may also be added to the same FSB group based on whether those FSB ports received an FCF advertisement with the same FCF device identifier. In an embodiment of block802, and with reference to the FSB pinned database700ofFIGS. 10A, 11A, and 12A, the FCoE pinning engine605may generate one or more FSB pinning tables702. For example, the FC device206aof the FCoE pinning system200binFIG. 2Bmay maintain an FSB pinning table702in the FSB pinned database700ofFIG. 10Athat provides the pinned group members of FSB ports. Because only the link214fis provided between FSB204aand FCF device206a, the FSB204may only receive the MDA902that includes the FCF device MAC address for the FCF device206aon the FSB port204a(4). The FCF device MAC address of the FCF device206amay be associated FSB port204a(4) upon which the FSB204areceived the MDA902. For example, the FSB pinning table entry702aof the FSB pinning table702illustrates how the FCoE pinning engine605may operate to pin the FSB port204a(4) with FCoE traffic by associating the FCF device identifier of the FCF device206a(“FCF_MAC206a”) to an FSB port identifier (“FSB port204a(4)”).

In another example and with reference to the FSB204aof the FCoE pinning system200cinFIG. 2C, the FSB204amay maintain an FSB pinning table702in the FSB pinned database700ofFIG. 11Athat provides the pinned group members of FSB ports. Because only the link214fis provided between FSB204aand FCF device206a, the FSB204may only receive the MDA902that includes the FCF device MAC address for the FCF device206aon the FSB port204a(4). The FCF MAC of FCF device206amay be associated with the FSB port204a(4) upon which the FSB204areceived the MDA902. For example, the FSB pinning table entry702aof the FSB pinning table702illustrates how the FCoE pinning engine605may operate to pin the FSB port204a(4) with FCoE traffic by associating the FCF device identifier of the FCF device206a(“FCF_MAC206a”) to an FSB port identifier (“FSB port204a(4)”).

In another example and with reference to the FSB204aof the FCoE pinning system200dinFIG. 2D, the FSB204amay maintain an FSB pinning table702in the FSB pinned database700ofFIG. 12Athat provides the pinned group members of FSB ports. In this example, there are two links (e.g., the link214fand the link214g) connecting the FSB204with the FCF device206a. The FSB204amay receive the MDA902that includes the FCF device MAC address for the FCF device206aon the FSB port204a(4) and on the FSB port204a(5). The FCF MAC of FCF device206amay be associated with the FSB port204a(4) and the FSB port204a(5) upon which the FSB204areceived the MDA902. For example, the FSB pinning table entry702aof the FSB pinning table702illustrates how the FCoE pinning engine605may operate to pin the group of the FSB port204a(4) and the FSB port204a(5) with FCoE traffic by associating the FCF device identifier of the FCF device206a(“FCF_MAC206a”) to FSB port identifiers (“FSB port204a(4)”) and (“FSB port204a(5)”).

After the FCoE pinning at the FSB204ais completed, the FSB204amay send an FSB pinned notification, which includes an FSB identifier, through the FSB ports that are members of the pinned group. As illustrated inFIG. 9B, the FSB pinned notification may be a special FIP frame904that indicates to the FCF device206athat the FSB204ahas pinned FSB ports of the aggregated interface for FCoE traffic. The FSB identifier may be an identifier of the FSB204asuch as, for example, an FSB MAC address. For example, the FSB204ain the FCoE pinning system200bofFIG. 2Band the FCoE pinning system200cinFIG. 2Cmay send the FSB pinned notification through the FSB port204a(4), and the FSB204ain the FCoE pinning system200dFIG. 2Dmay send the FSB pinned notification through the FSB port204a(4) and the FSB port204a(5).

In various embodiments, the FSB204amay forward the FCF advertisement received from the FCF device206a. The FCF advertisement may be forwarded through any FSB port that is a member of the aggregated interface216. For example, the FSB204aof the FCoE pinning system200bofFIG. 2Bmay send a forwarded MDA906through the FSB port204a(1) and the FSB port204a(2). The FSB204aof the FCoE pinning system200cofFIG. 2Cand the FCoE pinning system200dofFIG. 2Dmay send the forwarded MDA906through the FSB port204a(1).

The method800then proceeds to block804where a server message that includes an ENode identifier is received in response to the sending of the FCF advertisement at block802. In an embodiment of block804, the FCF device206aof the FCoE pinning system200aofFIG. 2Amay receive a server message from the server device202that was sent by the server device202in response to the server device202receiving the FCF advertisement. For example and with reference toFIG. 9A, the server device202may receive the MDA902on the server port202(1) and202(2). The server device202may then provide a server message, such as a FLOGI908, through the server port202(1) that is then received at the FCF device port206a(1). Similarly, the server device202may provide a FLOGI908through the server port202(2) that is then received at the FCF device port206a(2). While a FLOGI908is provided as a server device message in the illustrated embodiment, one of skill in the art in possession of the present disclosure will recognize that the server device message may be another server message that includes an ENode identifier such as a virtual local area network (VLAN) notification or a VLAN solicitation while remaining within the scope of the present disclosure as well.

In an embodiment of block804, and with reference toFIG. 9Band the FCoE pinning systems200b-200dofFIGS. 2B-2D, the FCF device206amay receive the server message through the FCF device port206a(1) and/or, if sent in the FCoE pinning system200dofFIG. 2D, through the FCF device port206a(2). For example, the server device202may receive the forwarded MDA906through server port202(1) and/or, if sent in the FCoE pinning system200bofFIG. 2D, through the server port202(2). In response, the server device202may send the server message (e.g., FLOGI908) through the server port202(1) and/or through the server port202(2). The FSB204amay receive the server message through FSB ports204a(1) and/or204a(2). The FSB204amay learn the ENode identifier (e.g., an ENode MAC address) from the server message that is received on at least one of the FSB ports204a(1) and/or204a(2) that are members of the aggregated interface216, and associate those ports with a respective ENode identifier to form a respective group that is pinned for FCoE traffic.

In an embodiment of block804, and with reference to the FSB pinned database700ofFIGS. 10A, 11A, and 12A, the FCoE pinning engine605may add the ENode identifier to its respective to the FSB pinning table702. For example, the FSB204aof the FCoE pinning system200binFIG. 2Bmay add pinned groups of ENode identifiers and FSB ports to the FSB pinning table702in the FSB pinned database700ofFIG. 10A. For example, the FSB pinning table entry702bof the FSB pinning table702illustrates how the FCoE pinning engine605may operate to pin the FSB port204a(1) with FCoE traffic by associating the ENode identifier (“ENode_MAC202(1)”) of the server port202(1) of server device202awith an FSB port identifier (“FSB port204a(1)”). Also, the FSB pinning table entry702cof the FSB pinning table702illustrates how the FCoE pinning engine605may operate to pin the FSB port204a(2) with FCoE traffic by associating the ENode identifier (“ENode_MAC202(2)”) of the server port202(2) of the server device202awith an FSB port identifier (“FSB port204a(2)”). Thus, because of the pinning, both links214aand214bmay be used to provide FCoE traffic, rather than only the one of those links that would be available in conventional systems.

In another example, and with reference to the FSB204aof the FCoE pinning system200cinFIG. 2C, the FSB204amay add pinned groups of ENode identifiers and FSB ports to the FSB pinning table702in the FSB pinned database700ofFIG. 11A. For example, the FSB pinning table entry702bof the FSB pinning table702illustrates how the FCoE pinning engine605may operate to pin the FSB port204a(1) with FCoE traffic by associating the ENode identifier (“ENode_MAC202(1)”) of the server port202(1) of server device202awith the FSB port (“FSB port204a(1)”). Similarly and with reference to the FSB204aof the FCoE pinning system200dinFIG. 2D, the FSB204amay add pinned groups of the ENode identifiers and the FSB ports to the FSB pinning table702in the FSB pinned database700ofFIG. 12A. For example, the FSB pinning table entry702bof the FSB pinning table702illustrates how the FCoE pinning engine605may operate to pin the FSB port204a(1) with FCoE traffic by associating the ENode identifier (“ENode_MAC202(1)”) of the server port202(1) of server device202awith the FSB port (“FSB port204a(1)”).

The FSB204amay then forward the server message(s) to the FCF device206asuch that they are received by the FCF device206a. In the example illustrated in9B, the FSB204amay forward the FLOGI910to the FCF device206. For example and with reference to the FCoE pinning system200bofFIG. 2B, the FSB204amay forward the server message received from the server port202(1) and the server message received from the server port202(2) through the FSB port204a(4). The FCF device206amay then receive the server messages through the FCF device port206a(1). In another example and with reference to the FCoE pinning system200cofFIG. 2C, the FSB204amay forward the server message received from the server port202(1) through the FSB port204a(4). The FCF device206amay then receive the server message through the FCF device port206a(1). In another example and with reference to the FCoE pinning system200dofFIG. 2D, the FSB204amay forward the server message received from the server port202(1) through the FSB port204a(4) or the FSB port204a(5). Because the FSB port204a(4) and the FSB port204a(5) are pinned for FCoE traffic and belong to the same group (as indicated in the FSB pinning table entry702aofFIG. 12A), the FSB204amay hash FCoE traffic, including the server messages, between the FSB port204a(4) and the FSB port204a(5).

The method800may then proceed to block806where an ENode identifier from the server message is associated with an FCF device port to form an FCF group that is then pinned for FCoE traffic. In an embodiment of block806, the FCF device206aof the FCoE pinning system200aofFIG. 2Amay associate the ENode identifier that was provided in the server message with the FCF device port on which that server message was received.

In an embodiment of block806and with reference to the FCF device pinned database500ofFIGS. 10B, 11B, 12B, and 13, the FCoE pinning engine405may generate one or more pinning tables. For example, the FCF device206aof the FCoE pinning system200ainFIG. 2Amay maintain an FCF device pinning table502in the FCF device pinned database500ofFIG. 13that provides the pinned group members of FCF device ports. For example, the FCF device pinning table entry502aof the FCF device pinning table502ofFIG. 13illustrates how the FCoE pinning engine405may operate to pin the FCF device port206a(1) with FCoE traffic by associating the ENode identifier of the server port202(1) (“ENODE_MAC202(1)”) of the server device202with the FCF device port206a(1) (“FCF Device Port206a(1)”) through which the FCF device206areceived the server message that provided the ENode identifier. Similarly, because there are two links210aand210bthat are included in the aggregated interface212, the FCF device pinning table entry502bof the FCF device pinning table502illustrates how the FCoE pinning engine405may operate to pin the FCF device port206a(2) with FCoE traffic by associating the ENode identifier of the server port202(2) (“ENODE_MAC202(2)”) of the server device202with the FCF device port206a(2) (“FCF Device Port206a(2)”) through which the FCF device206areceived the server message that provided the ENode identifier. Because there are no FSBs between the server device202and the FCF device206ain the FCoE pinning system200a, the FSB identifier column506is left without an entry.

However, in various embodiments and with reference to the FCoE pinning systems202b-202dofFIGS. 2B-2D, the FCF device206amay associate each FSB identifier, which is received in the FSB pinned notification from the FSB204a, with the FCF device port on which the FSB pinned notification was received. Each FSB identifier may be associated with the pinned group that the associated FCF device port is a member. In various embodiments, the FCF device206may associate each FSB identifier that is received in the FSB pinned notification from the FSB204awith the FCF device port on which the FSB pinned notification was received prior to the pinned group being formed that associates the ENode identifier with the FCF device port. Thus, the association of the FSB identifier with the FCF device port may form a group that is pinned for FCoE traffic. FCF device ports that receive FSB pinned notifications that include the same FSB identifier may be included in the same group.

For example, the FCF device206aof the FCoE pinning system200bofFIG. 2Bmay maintain an FCF device pinning table502in the FCF device pinned database500ofFIG. 10Bthat provides the pinned group members of the FCF device ports on the FCF device206a. The FCF device pinning table entry502aof the FCF device pinning table502illustrates how the FCoE pinning engine405may operate to pin the FCF device port206a(1) with FCoE traffic by associating the FCF device port206a(1) (“FCF Device Port206a(1)”) of FCF device206awith the FSB identifier (“FSB_MAC204a”) of FSB204a, with the ENode identifier (“ENODE_MAC202(1)”) of server port202(1), and with the ENode identifier (“ENODE_MAC202(2)”) of the server port202(2). Similarly, the FCF device pinning table entry502bof the FCF device pinning table502illustrates how the FCoE pinning engine405may operate to pin the FCF device port206a(2) with FCoE traffic by associating the FCF device port206a(2) (“FCF Device Port206a(2)”) of FCF device206awith the FSB identifier (“FSB_MAC204b”) of FSB204b, with the ENode identifier (“ENODE_MAC202(3)”) of server port202(3), and with the ENode identifier (“ENODE_MAC202(4)”) of the server port202(4).

In another example, the FCF device206aof the FCoE pinning system200cinFIG. 2Cmay maintain an FCF device pinning table502in the FCF device pinned database500inFIG. 11Bthat provides the pinned group members of the FCF device ports on the FCF device206a. For example, the FCF device pinning table entry502aof the FCF device pinning table502illustrates how the FCoE pinning engine405may operate to pin the FCF device port206a(1) with FCoE traffic by associating the FCF device port206a(1) (“FCF Device Port206a(1)”) of FCF device206awith the FSB identifier (“FSB_MAC204a”) of FSB204a, and with the ENode identifier (“ENODE_MAC202(1)”) of server port202(1). Similarly, the FCF device pinning table entry502bof the FCF device pinning table502illustrates how the FCoE pinning engine405may operate to pin the FCF device port206a(2) with FCoE traffic by associating the FCF device port206a(2) (“FCF Device Port206a(2)”) of FCF device206awith the FSB identifier (“FSB_MAC204b”) of FSB204b, and with the ENode identifier (“ENODE_MAC202(4)”) of server port202(4).

In another example, the FCF device206aof the FCoE pinning system200dinFIG. 2Dmay maintain an FCF device pinning table502in the FCF device pinned database500ofFIG. 12Bthat provides the pinned group members of the FCF device ports of the FCF device206a. For example, the FCF device pinning table entry502aof the FCF device pinning table502illustrates how the FCoE pinning engine405may operate to pin the FCF device port206a(1) and the FCF device port206a(2) with FCoE traffic by associating the FCF device port206a(1) (“FCF Device Port206a(1)”) and the FCF device port206a(2) (“FCF Device Port206a(2)”) of FCF device206awith the FSB identifier (“FSB_MAC204a”) of FSB204a, and with the ENode identifier (“ENODE_MAC202(1)”) of server port202(1).

The method800then proceeds to block808where FCoE traffic is provided on the pinned FCF device ports. In an embodiment of block808, the FCF device206amay provide an FCF response message in response to the server message received at block804. For example, the FCF response message may include an FLOGI accept message (e.g., a FLOGI LS_ACC), which may be sent in response to the server message that included the FLOGI908in order to complete a fabric login. The FCF device206amay send the FCF response message on the FCF device port(s) that are members of a pinned group. As illustrated inFIG. 9Aand with reference to the FCoE pinning system200a, the FCF device206amay send the FCF response message912to the server device202. As illustrated inFIG. 9Band with reference to the FCoE pinning systems200b-200dofFIGS. 2B-2D, the FCF device206amay send the FCF response message912to the server device202via the FSB204a, which forwards the FCF response message as a forwarded FCF response message914to the server device202.

In various embodiments, once fabric login is completed, FCoE traffic may now be provided through the FCF device port(s) and the FSB ports that are pinned for FCoE traffic. The FSB204aand/or the FCF device206amay reference the respective FSB pinned database606and FCF device pinned database406to determine which ports of the FSB204aand/or the FCF device206ain the aggregated interface are pinned for FCoE traffic, or otherwise support routing of FCoE traffic. If multiple links in a pinned group exist, the FCoE traffic may be load balanced between the links via, for example, hashing operations performed on the FCoE traffic. If a link that is included in a pinned group of the FCF device206agoes down, the FCoE pinning engine405in the FCF device206amay remove the port or downstream device identifier from the pinned group in the FCF device pinned database406. Similarly, if a link that is included in a pinned group of the FSB204agoes down, the FCoE pinning engine605of the FSB204amay remove the FSB port, downlink (e.g., ENode), and/or uplink (e.g., FCF device) device identifier from the pinned group in the FSB pinned database606. Alternatively, if a link is added to an aggregated interface, the FCoE pinning engine405of the FCF device206amay add the port or downstream device identifier to the pinned group, or generate a new pinned group in the FCF device pinned database406according to the method800. Similarly, the FCoE pinning engine605of the FSB204amay add the FSB port, downlink, and/or uplink device identifier to the pinned group, or generate a new pinned group in the FCF device pinned database406according to the method800.

Thus, systems and methods have been presented that provide for FCoE pinning in a manner that allows more than one FSB port or FCF device port in an aggregated interface to be automatically pinned for FCoE traffic. An FCF device and, in some embodiments, an FSB may maintain pinning tables where multiple links may be pinned as groups and referenced when providing FCoE traffic. Thus, the systems and methods of the present disclosure solve the issues with conventional pinning systems that limit the number of CNA ports used for FCoE traffic (i.e., to one port per SAN fabric) when those CNA ports are members of an aggregated interface. For example, specific embodiments the pinning tables of the present disclosure allow FCoE traffic to be provided on each CNA port in a four port CNA. Furthermore, by pinning multiple links between an ENode and an FCF device for FCoE traffic, the systems and methods of the present disclosure reduce latency associated with FCoE traffic, free bandwidth on the links between the FCF device and the ENode, and relieve congestion on those links.