Methods, systems and apparatus for the control of interconnection of fibre channel over ethernet devices

Information

  • Patent Grant
  • 9755853
  • Patent Number
    9,755,853
  • Date Filed
    Friday, October 30, 2015
    9 years ago
  • Date Issued
    Tuesday, September 5, 2017
    7 years ago
Abstract
Systems, apparatus and methods are provided for interconnection of one or more Fibre Channel over Ethernet (FCoE) devices. The system preferably comprises a virtualized or virtual server which in turn comprises a virtual machine having an FCoE device interconnection apparatus controller, a virtual switch, the virtual switch being coupled to the FCoE device interconnection apparatus controller, and a network interface. The network interface is coupled to the virtual switch, which in turn couples to an Ethernet fabric. A first Ethernet link couples the network interface to the Ethernet fabric. One or more Fibre Channel over Ethernet (FCoE) devices are coupled to the Ethernet fabric via Ethernet links.
Description
FIELD OF THE INVENTION

The disclosures and embodiments of the invention relate to network systems and communications networks, more particularly, certain embodiments of the invention relate to a method and system for Fibre Channel over Ethernet networking. Fibre Channel networking, and Ethernet frame forwarding.


BACKGROUND OF THE INVENTION

There are at least two separate networks are found in Data Centers. The more ubiquitous of the networks, the Local Area Network (LAN) based on the Ethernet protocol, is mainly used for server to server and server to Internet communications. The other network, the Storage Area Network (SAN), is specialized to carry server to storage communications. The Data Center Storage Area Network is mainly based on the Fibre Channel protocol and has the following characteristics: low latency, high bandwidth, and a loss-less network. Recently there have been innovations to merge the Storage Area Network (SAN) with the Local Area Network. The promised benefits include a savings on the amount of equipment and the resulting savings on the amount of equipment real estate, power, and cooling required. Newly created standards comprising this LAN/SAN convergence define how Storage Area Network frames, namely Fibre Channel protocol frames, are mapped over the Ethernet network. These new frames are called Fibre Channel over Ethernet (FCoE) network frames. Additional standards define how to make the Ethernet network lossless, i.e., to add flow control at the network level to prevent Ethernet frames from being dropped due to congestion. Still other standards define how to segment the transmission line into classes that virtually separate the communications over the transmission line.


Converging the LAN and SAN networks has created additional complexity in the management, control, and data switching areas. Singly, the Fibre Channel switch fabric protocols are very complex and have shown to be not very interoperable between the small number of vendors who build products that support them. Mapping the Fibre Channel switch fabric protocols over Ethernet has resulted in a dizzying amount of new standards that have inhibited the market acceptance of the Fibre Channel over Ethernet (FCoE) mapping over this new converged network. New switches have been defined called Fibre Channel Forwarders (FCFs) and Fibre Channel Data Forwarders (FDFs), which add Fibre Channel over Ethernet and Ethernet elements to the already complex Fibre Channel switch architecture. FCFs and FDFs interconnect ENodes, which are Fibre Channel or devices nodes that are able to transmit Fibre Channel over Ethernet frames. There have been some standards and innovations applied to ENodes, and their embedded Virtual N_Ports (VN_Ports), to connect without using FCF's or FDF's. One of these efforts defines an ENode to ENode connection method, called VN_Port to VN_Port (VN2VN) whereby ENodes can connect to each other over a Lossless Ethernet network without an FCF or FDF. Other methods have been suggested to move some of the FCF/FDF intelligence to the ENode. Both the emerging VN2VN standard and the emerging direct ENode direct connect methods have many significant disadvantages. These disadvantages include but are not limited to: the requirement for the ENode to choose a unique MAC address for each VN_Port, the requirement for the ENode to choose a unique Fibre Channel address identifier for each VN_Port, the lack of visibility into the network's supported maximum frame size or other capabilities, the lack of standardized discovery of specific ENode types such as Storage targets, the lack of the ability to automatically and dynamically create Fibre Channel zones or access control lists (ACLs) for intermediate Ethernet bridges, the lack of visibility to load balance across several paths from a source ENode to a destination ENode based on FCID's, and the increased complexity to scale to hundreds of ENodes which requires error prone manual configuration. Due to the lack of Fibre Channel fabric control, these emerging ideas and standards target smaller networks of ENodes, which are impractical in today's Data Center.


In parallel with the innovations around converging the LAN and SAN, there have also been a trend to virtualize servers, i.e., consolidate a corporation's many underutilized servers onto fewer more utilized servers. The server visualization trend has many advantages, including more utilization of existing underutilized servers, lower equipment space, power, and cooling requirements since there are fewer servers. This trend results in fewer and higher utilized servers which have changed the traffic characteristics of the Local Area Network that interconnects them. The traffic requirements which used to be flowing from Internet to Server have changed to an any-to-any server flow. This migration in traffic patterns has produced a trend to “flatten”LANs, i.e., consolidate the normally three layers (core, distribution, and access) of switches commonly found in a Data Center to two layers (core and access). In parallel with this physical flattening trend is the trend towards utilizing layer 2 forwarding methods to keep the network in a single broadcast domain, which helps support any-to-any connection requirements of virtualized servers and their hypervisors. New link level protocols have been defined to accelerate the ability for any to any server based virtual machine communications. Many of these new link level protocols need new switch hardware and new ways to manage the resulting network.


What is needed is a simpler way to converge the LAN and SAN in a scalable and less complex method than the trajectory of both the standards committees and emerging ENode to ENode inventions. What is also needed is have this simpler method be more compatible with the trend towards flattening the large Data Center networks. Both simpler methods need to be easily managed, scalable, and interoperable. Accomplishing this would accelerate LAN/SAN network convergence trend and accelerate the flattening of the LAN to more easily attain the benefits of visualization, convergence, and consolidation.


BRIEF SUMMARY OF THE INVENTION

In one aspect of the inventions herein, a system is provided for interconnection of one or more Fibre Channel over Ethernet (FCoE) devices. The system preferably comprises a visualized or virtual server which in turn comprises a virtual machine having an FCoE device interconnection apparatus controller, a virtual switch, the virtual switch being coupled to the FCoE device interconnection apparatus controller, and a network interface. The network interface is coupled to the virtual switch, which in turn couples to an Ethernet fabric. A first Ethernet link couples the network interface to the Ethernet fabric. One or more Fibre Channel over Ethernet (FCoE) devices are coupled to the Ethernet fabric via Ethernet links.


In yet another aspect of the inventions, a system, method or apparatus provides for interconnection of one or more Fibre Channel over Ethernet (FCoE) devices under control of a FIAC virtual machine coupled to an Ethernet fabric. In one implementation, a FIP Discovery Advertisement frame is multi-cast over the Ethernet fabric to the one or more FCoE devices. The FIP Discovery Advertisement frame is received at the one or more FCoE devices. A response is then made from one or more of the FCoE devices to the FIAC virtual machine with a FIP Discovery Solicitation frame.


In yet another aspect of the invention, automatic zone configuration is implemented through use of best practices. In the discovering of initiators and targets in the system, zones are created so as to have one initiator with one target. By way of example, if two initiators are found and one target, the best practice rule will pair one initiator with one target in a zone, for a total of two zones.


In one aspect of the invention, the systems and methods use port groups, such as LAGs and MLAGs by FIAs in forwarding the FCoE frames. In the preferred implementation, this is accomplished without use of Fibre Channel based routing, such as FSPF.


In yet another aspect of the inventions, the systems and methods provide for automatic discovery of FIA ports attached to ENodes through use of the Bridge-MIB. In one aspect, if a MAC address is known, the Bridge-MIB is used to discover the port in the FIA to which the ENode is connected.


In yet another aspect, when multiple modules share a single database is utilized, a database trigger is provided within the system when a change is made to a database thereby informing other modules that a change occurred in the database.


In yet another aspect, the FMEs are preconfigured by a FIAC to optimize FME configuration. In one implementation, the FMEs are preloaded with filter table entries, such that a VN_Port is instantiated without the need to communicate with the FIA to set an FME.


In yet another aspect, in the transport of frames between two ENodes, the network between the ENodes being a TRILL network.


In yet another aspect, in the transport of frames between two ENodes, wherein the intervening network is a network using the Shortest Path Bridging (SPB) frame forwarding.


In yet another aspect of these inventions, the use of FIACs apply to various systems, topologies and architectures. By way of example, the FIAC is used in a redundant network, a redundant FIAC may be used in a redundant network, a FIAC may be used in a core/edge or leaf/spline network and/or a FIAC in a virtual chassis network.





BRIEF DESCRIPTION OF THE DRAWINGS

The drawings illustrate only exemplary embodiments of the invention and therefore do not limit its scope because the inventive concepts lend themselves to other equally effective embodiments.



FIG. 1 shows an example of Distributed FCF composed of a Controlling FCF and two FDFs as described in the ANSI T11 FC-BB standards.



FIG. 2 shows an example of a Distributed FCF including a redundant pair of Controlling FCFs as described in the ANSI T11 FC-BB standard.



FIG. 3 shows the FDF functional mode as described in the ANSI T11 FC-BB standard.



FIG. 4 shows an example of the current invention, an FIAC coupled to an Ethernet network comprised of two FIAs, the Ethernet network is coupled to four ENodes



FIG. 5 shows one implementation of the FIAC as a virtual machine in a visualized server.



FIG. 6 shows a redundant implementation of the FIAC, the FIAC running in a visualized server and capable of migrating to another visualized server upon failure of the visualized server the FIAC is currently running on.



FIG. 7 shows a preconfigured zone set along with a default zone set for the network shown in FIG. 8.



FIG. 8 shows a network comprised of three initiators, two targets, an FIA and an FIAC.



FIG. 9 shows the FIA FME table for the FIA shown in FIG. 8.



FIG. 10 is a continuation of the FIA FME table for the FIA shown in FIG. 8.



FIG. 11 shows the function and method to discover which Fibre Channel N_Port identifiers (FCID) are in the same zones as the passed FCID.



FIG. 12 shows a network with two initiators, two FIAs, one target and a FIAC.



FIG. 13 shows the FIA 1 FME table for the network in FIG. 12.



FIG. 14 shows both the FIA 1 and FIA 2 network zoning table and the FIA 2 FME table.



FIG. 15 is a diagram showing the configuring of multiple FIA FMEs by a FIAC.



FIG. 16 is a diagram showing the discovery of an ENode FIA port and the sequence of setting of an FME in the FIA.



FIG. 17 is a diagram showing the sequence of receiving a FIP FLOGI frame when a free FME was previously configured by the FIAC.



FIG. 18 is a diagram showing the communication between a FIAC virtual machine and an ENode.



FIG. 19 shows a block diagram of one implementation of the FIAC.



FIG. 20 is a diagram showing the removal of FIA FME's upon the FIAC receipt of a FIP LOGO frame.



FIG. 21 is a diagram showing the receipt of a FIP FLOGI or FIP NPIV FDISC frame and a subset of actions by the FIAC.



FIG. 22 is a diagram showing the removal of one or more FMEs upon the receipt of a FIP FLOGO frame from an ENode.



FIG. 23 is a sequence diagram showing a PLOGI exchange between ENodes.



FIG. 24 is a sequence diagram showing the communication between a ENode and a Fibre Channel Device through FIAs.



FIG. 25 is a sequence diagram showing the interconnection of two native Fibre Channel devices through two FIAs, the FIAs comprising ports adapted to connect to Fibre Channel devices.



FIG. 26 is a diagram showing an FCoE frame sent from an Ethernet connected ENode through a network of FIAs to a destination Ethernet connected ENode over a TRILL Ethernet network.



FIG. 27 is a diagram showing the interconnection of ENodes through a Shortest Path Bridging MAC-in-MAC (SPBM) network.



FIG. 28 shows a network comprising two ENodes, two FIAs and a FIAC.



FIG. 29 shows a network comprising two ENodes, two FIAs and two FIACs.



FIG. 30 shows a network comprising five ENodes, four FIAs and a FIAC. The four FIAs comprise a single virtual chassis.



FIG. 31 shows a network comprising five ENodes, six FIAs and an FIAC. The FIAs form an access/core Ethernet networks.





ACRONYMS

CNA Converged Network Adapter


DA Destination Address


DCB Data Center Bridging


DCBX DCB Exchange protocol


ENode FCoE Node


FCF FCoE Forwarder


FIA FCoE and FC Interconnection Apparatus


FIA Controller Apparatus that controls FIA's


FIB Forwarding Information Base


FC Fibre Channel


FCF-MAC FCoE Forwarder Media Access Control


FCID Fibre Channel address or port identifier


FCoE Fibre Channel over Ethernet


FCoE_LEP FCoE Link Endpoint


FDF FCoE Data Forwarder


FIP FCoE Initialization Protocol


FME Frame Match Entry


FPMA Fabric Provided MAC Address


IEEE Institute of Electrical and Electronics Engine


MLAG Multi-chassis Link Aggregation


LAG Link Aggregation Group


LAN Local Area Network


MAC Media Access Control


PCP Priority Field in the VLAN Tag


RBridge Routing Bridge


SA Source Address


SNMP Simple Network Management Protocol


SPF Shortest Path First


TRILL Transparent Interconnection of Lots of Links


VE_Port Virtual E_Port


VF_Port Virtual F_Port


VID VLAN Identifier


VLAN Virtual Local Area Network


VN_Port Virtual N_Port


vSwitch Virtual Switch


CONSTANTS















FIP_TYPE:
8914h
The value specified in the Ethernet




TYPE field for a FIP PDU


FCoE_TYPE:
8906h
The value specified in the Ethernet




TYPE field for an FCoE PDU


All-FCoE-MACs:
01-10-18-
The group address for all FCoE devices.



01-00-00


All-ENode-
01-10-18-
The group address for all ENodes


MACs:
01-00-01


DEFAULT_FC-
0EFC00h
The default value for the FC-MAP field in


MAP:

a FIP FC-MAP descriptor









DEFINITIONS

Address or Port identifier: An address value used to identify source (S_ID) or destination (D_ID) of a frame.


Controlling FCF: An FCF able to control a set of FDFs in order to create a Distributed FCF.


Controlling FCF Set: The Switch_Names of the up to two Controlling FCFs that are part of a Distributed FCF.


Converged Network Adapter (CNA): is a technology that supports data networking (TCP/IP) and storage networking (Fibre Channel) traffic on a single I/O adapter. CNA's support both Enhanced Ethernet and Fibre Channel over Ethernet (FCoE).


Distributed FCF: A set of FDFs associated with at least one Controlling FCF, that controls the operations of the set of FDFs. A Distributed FCF is defined by the administrative configuration of the Controlling FCF Set and of the FDF Set.


Domain Identifier: Bits 23 through 16 of an address identifier.


Encapsulated FC frame: An SOF/EOF delimited FC frame prefixed with a 28-byte FC frame Encapsulation Header (see RFC 3643).


ENode: An FCoE Node, a Ether Channel node (see FC-FS-3) that is able to transmit FCoE frames using one or more ENode MACs.


ENode MAC: A Lossless Ethernet MAC coupled with an FCoE Controller in an ENode.


ENode MAC address: The MAC address used by the FCoE Controller on an ENode MAC for the FCoE Initialization Protocol (FIP).


Fabric: As defined in FC-FS-3 an entity that interconnects various Nx_Ports attached to it, and is capable of muting frames using only the D_ID information in an FC-2 frame header. A Fabric may also refer to an Ethernet network comprised of one or more Ethernet switches or FIAs.


FIA: An FCoE interconnect apparatus. Some examples may include an Ethernet switch, an Ethernet bridge or an Ethernet router.


FIB (Forwarding Information Base): also known as a forwarding table, is most commonly used in network bridging, routing and similar functions to find the proper interface to which the input interface should send a packet to be transmitted by the bridge, switch, router or similar device.


FCF (FCoE Forwarder): A Fibre Channel Switching Element (see FC-SW-5) that is able to forward FCoE frames across one or more FCF-MACs, and that optionally includes one or more Lossless Ethernet bridging elements and/or a Fibre Channel Fabric interface.


FDF (FCoE Data-Plane Forwarder): A simplified FCoE switching entity that forwards FC frames among VA_Ports and VF_Ports through a FCDF Switching Element. An FDF shall support at least one VA_Port capable FDF-MAC and may support one or more VF_Port capable FDF-MAC. Each FDF-MAC shall be coupled with an FCoE Controller function and may be coupled with a lossless Ethernet bridging element.


FDF Set: The Switch_Names of the FDFs that are part of a Distributed FCF.


FIA: A FCoE and FC interconnection apparatus. The interconnection apparatus interconnects devices selected from the list which may include but not be limited to FCoE ENodes, Fibre Channel devices, FCF's, FDF's. An FIA may also be a FCoE only interconnection apparatus, i.e., not capable of handling Fibre Channel frames not embedded in Ethernet frames.


FCF-MAC: A Lossless Ethernet MAC coupled with an FCoE Controller in an FCF.


FCF-MAC address: The MAC address of an FCF-MAC.


FCoE Controller. A functional entity, coupled with a Lossless Ethernet MAC, instantiating and de-instantiating VE_Ports, VF_Ports, VN_Ports, and/or FCoE_LEPs.


FCoE Entity: The interface, containing one or more FCoE_LEPs, between a VN_Port, a VF_Port, or a VE_Port, and a Lossless Ethernet MAC.


FCoE frame: An Ethernet frame (see IEEE 802.3-2008) that contains an FCoE PDU


FCoE_LEP (FCoE link End-Point): The data forwarding component of an FCoE Entity that handles FC frame encapsulation-decapsulation, and transmission/reception of encapsulated frames through a single Virtual Link.


FDF (FCoE Data Forwarder): a Fibre Channel Switching Element (see FC-SW-5) that is able to forward FCoE frames across on or more FCF-MACs, and that optionally includes one or more Lossless Ethernet bridging elements. A FDF comprises a subset of FCF features, most notably routing and zoning. A FDF is controlled by a FCF.


FIP frame: An Ethernet frame (see IEEE 802.3-2008) containing a FCoE Initialization Protocol (FIP) PDU.


FLOGI: Fabric Login ELS (see FC-LS-2).


Link Aggregation: link Aggregation is a term to describe various methods of combining (aggregating) multiple network connections in parallel to increase throughput beyond what a single connection could sustain, and to provide redundancy in case one of the links fails. Further umbrella terms used to describe the method include port trunking, link bundling, Ethernet/network/NIC bonding, or NIC teaming. These umbrella terms not only encompass vendor-independent standards such as IEEE 802.1ax Link Aggregation Control Protocol (LACP) for wired Ethernet, or the previous IEEE 802.3ad, but also various proprietary solutions.


Lossless Ethernet bridging element: An Ethernet bridging function operating across Lossless Ethernet MACs.


Lossless Ethernet MAC: A full duplex Ethernet MAC implementing extensions to avoid Ethernet frame loss due to congestion (e.g., the PAUSE mechanism (see IEEE 802.3-2008) or the Priority-based Flow Control mechanism (see IEEE 802.1Qbb))


LS_ACC: Link Service Accept (see FC-LS-2).


Lossless Ethernet network: An Ethernet network composed only of full duplex links, Lossless Ethernet MACs, and Lossless Ethernet bridging elements.


LS_RJT: Link Service Reject (see FC-LS-2).


Multicast MAC address: A MAC address associated with a group of logically related Ethernet stations on an Ethernet network and called a Multicast-Group Address in IEEE 802.3-2008.


N_Port: A device port that generates/terminates FC-4 channel traffic.


N_Port_Name: A Name_Identifier that identifies an N_Port.


PLOGI: N_Port Login (see FC-LS-2).


Unicast MAC address: A MAC address associated with a particular Ethernet station on an Ethernet network and called an Individual Address in IEEE 802.3-2008.


VA_Port (Virtual A_Port): An instance of the FC-2V sublevel of Fibre Channel that communicates with another VA_Port and that is dynamically instantiated on successful completion of a FIP ELP Exchange. A VA_Port is uniquely identified by an A_Port_Name Name_Identifier and is addressable by the VA_Port connected to it through the A_Port Controller address identifier (i.e., FFFFF9h).


VA_Port/FCoE_LEP pair: A VA_Port and its associated FCoE_LEP.


Virtual Switch: is a software program that allows one virtual machine (VM) to communicate with another virtual machine (VM). A virtual machine can intelligently direct communication on the network by inspecting packets before passing them on.


VF_Port/FCoE_LEP pair: A VF_Port and one of its associated FCoE_LEPs.


VF_Port/FCoE_LEP pair: A VN_Port and its associated FCoE_LEP.


Virtual Link: The logical link connecting two FCoE_LEPs.


Virtual Chassis: Virtual chassis is a technology that allows multiple physically separate Ethernet switches to be combined into a single logical entity for the purpose of simplifying management and configuration.


VN_Port (Virtual N_Port): An instance of the FC-2V sublevel of Fibre Channel that operates as an N_Port (see FC-FS-3) and is dynamically instantiated on successful completion of a FIP FLOGI or FIP NPIV FDISC Exchange.


VN_Port MAC address: The MAC address used by an ENode for a particular VN_Port.


Zone: A group of Zone Members. Members of a Zone are made aware of each other, but not made aware of Zone Members outside the Zone.


Zone Definition: The parameters that define a Zone.


Zone Member: The specification of a device to be included in a Zone.


DETAILED DESCRIPTION OF THE INVENTION


FIG. 1 shows an example of Distributed FCF composed of a Controlling FCF 1 and two FDFs 23 as described in the ANSI T11 FC-BB standards. The Controlling FCF 1 uses a Virtual Domain_ID to perform N_Port_ID allocations for ENodes 4567 connected to the FDF Set 23 of the Distributed FCF (i.e., the Virtual Domain_ID is used as the most significant byte in all N_Port_IDs allocated to ENodes that are attached to the FDF Set). The Controlling FCF 1 uses also another Domain_ID, called Principal Domain, for its normal functions as an FCF. As a result, a Distributed FCF such as the one shown in FIG. 1 uses two Domain_IDs: one for the Principal Domain 8 and one for the Virtual Domain 9. To property support the operations of a Virtual Domain 9, a Controlling FCF 1 shall have a Switch_Name to associate with the Virtual Domain 9, in addition to its own Switch_Name. FDFs are not able to operate properly without a Controlling FCF 1, therefore the Controlling FCF 1 is a single point of failure in a Distributed Switch configuration with only one Controlling Switch, as the one shown in FIG. 1. To avoid this issue, Distributed FCFs may support a redundant configuration of two Controlling FCFs, a Primary one and a Secondary one. The Secondary Controlling FCF keeps its state synchronized with the Primary and is able to take its place in case of failure according to the Controlling Switch Redundancy Protocol (see T11/11-224v0).



FIG. 2 shows an example of a Distributed FCF including a redundant pair of Controlling FCFs, i.e., a primary FCF 20 and a secondary FCF 21 as described in the ANSI T11 FC-BB standards. A Distributed FCF is a set of FDFs associated with at least one Controlling FCF that controls the operations of the set of FDFs. The two Controlling FCFs 2021 in a redundant Distributed FCF instantiate at least two Augmented VE_Port to VE_Port Virtual Links 2526 between themselves, where the term ‘augmented’ indicates that Virtual Link is used also for the Redundancy protocol, in addition to normal VE_Port operation (see T11/11-224v0). The Controlling FCFs use a Virtual Domain_ID to perform N_Port_ID allocations for ENodes 29303132 connected to the FDF Set 2728 of the Distributed FCF (i.e., the Virtual Domain_ID is used as the most significant byte in all N_Port_IDs allocated to ENodes that are attached to the FDF Set). Using a Virtual Domain_ID to assign N_Port_IDs enables seamless operation in case of failures of one of the two redundant Controlling FCFs. Each Controlling FCF 2021 uses also another Domain_ID, called Principal Domain 23, for its normal functions as an FCF. As a result, a redundant Distributed FCF typically uses three Domain_IDs: one for each Controlling FCF 2021 and one for the Virtual Domain_ID. To properly support the operations of a Virtual Domain 36, a Controlling FCF shall have a Switch_Name to associate with the Virtual Domain 36, in addition to its own Switch_Name. The two redundant Controlling FCFs instantiate VA_Port to VA_Port Virtual Links 3334354041 to enable the forwarding of FCoE frames and the communication of control information between Controlling FCFs 2021 and FDFs 2728. In a redundant configuration, FDFs instantiate VA_Port to VA_Port Virtual Links to each of the Controlling FCFs 3334354041 and between themselves 34, if they are directly reachable through the Ethernet topology. A Distributed FCF may have a cascaded FDF configuration when FDFs with at least two VA_Port capable FDF-MACs and independent Lossless Ethernet Bridging Elements are used.



FIG. 3 shows the FDF functional model as described in the ANSI FC-BB standard. An FDF is functionally composed of an FCDF Switching Element 42 (sec FC-SW-6) with at least one Lossless Ethernet MAC 57 (FDF-MAC). Each FDF-MAC 57 shall be coupled with an FCoE Controller 4752 function. Each FDF-MAC may be coupled with a Lossless Ethernet bridging element 6065. An FDF supports the instantiation of VA_Ports 4348 or VF_Ports 53 over its FDF-MACs. The FCDF Switching Element 42 may be coupled with a Fibre Channel Fabric interface (not shown in the figure), providing native A_Port and F_Port connectivity. An FDF forwards FCoE frames addressed to one of its FDF-MACs based on the D_ID of the encapsulated FC frames. The FCoE Controller 4752 is the functional entity that performs the FCoE Initialization Protocol (FIP) and instantiates or de-instantiates VA_Ports or VF_Ports, as needed. For a VA_Port capable FDF-MAC, the FCoE Controller 4752:

    • a) optionally performs the FIP VLAN discovery protocol to discover FCoE VLANs;
    • b) discovers other VA_Port capable FDF-MACs and VA_Port/VE_Port capable FCF-MACs connected to the same lossless Ethernet network using the FIP discovery protocol;
    • c) instantiates a VA_Port/FCoE_LEP 43454849 pair on successful completion of each FIP ELP Exchange with a remote VA_Port capable FDF-MAC or VA_Port/VE_Port capable FCF-MAC;
    • d) de-instantiates a VA_Port/FCoE_LEP pair on receiving a FIP Clear Virtual link request;
    • e) monitors the status of the instantiated VA_Port/FCoE_LEP pairs;
    • f) initiates FIP Clear Virtual link requests as needed to terminate Virtual Links to other VA_Ports;
    • g) transmits periodic FIP Discovery Advertisements to the All-FCF-MACs address every FKA_ADV_PERIOD; and
    • h) monitors the status of remote VA_Ports by maintaining timers and verifying that periodic FIP Discovery Advertisements are received within every FKA_ADV_PERIOD.


The FCoE_LEP 454955 is the functional entity performing the encapsulation of FC frames into FCoE frames in transmission and the decapsulation of FCoE frames into FC frames in reception. An FCoE_LEP 454955 operates according to the MAC address of the local link end-point and the MAC address of the remote link end-point. When encapsulating FC frames into FCoE frames, the MAC address of the local link end-point shall be used as source address and the MAC address of the remote link end-point shall be used as destination address of the generated FCoE frame. When decapsulating FC frames from FCoE frames, the FCoE_LEP shall verify that the destination address of the received FCoE frame is equal to the MAC address of the local link end-point and shall verify that the source address of the received FCoE frame is equal to the MAC address of the remote link end-point. If either check fails the FCoE frame shall be discarded. For a VA_Port capable FDF-MAC, the MAC address of the local link end-point is the FDF-MAC address and the MAC address of the remote link end-point is the MAC address of the remote FDF-MAC or FCF-MAC with which a FIP ELP Exchange has been successfully completed.


A VA_Port 4348 is an instance of the FC-2V 4450 sublevel of Fibre Channel that is dynamically instantiated together with its FCoE_LEP 4549 on successful completion of a FIP ELP Exchange, according to the rules specified in the FC-BB 6 standard. A VA_Port receives FC frames from the FCDF Switching Element 42 and sends them to its FCoE_LEP 454955 for encapsulation and transmission over the Lossless Ethernet network. In a similar way, a VA_Port sends FC frames received from its FCoE_LEP to the FCDF Switching element 42. A VA_Port is uniquely identified by an A_Port_Name Name_Identifier and is addressed by the A_Port Controller address identifier (i.e., FFFFF9h). To initialize VA_Port to VA_Port links, i.e., links between FDFs, a successful completion of a FIP ELP Exchange is required. After successful FIP ELP Exchange, the FCoE Controllers of the two involved VA_Port capable FDF-MACs instantiate a VA_Port/FCoE_LEP pair.


Another topology defined by the ANSI T11 standards includes the instantiation of VN_Port to VN_Port links, i.e., direct attachment between ENodes. A VN2VN ENode MAC, operating in either multipoint or point-to-point mode, instantiates VN_Port to VN_Port Virtual Links on successful completion of a point-to-point FIP FLOGI, as defined in FC-LS-2. Both FIP FLOGI Request and LS_ACC shall have the Locally Unique N_Port_ID of the originating VN2VN_Port as S_ID, the locally Unique N_Port_ID of the destination VN2VN_Port as D_ID for the point-to-point FLOGI protocol, and the originating VN_Port FPMA in the MAC Address descriptor. The MAC addresses of the FIP FLOGI Request and LS_ACC shall be the ENode MAC addresses of the involved VN2VN_Ports. As specified in FC-LS-2, the VN2VN_Port with the greater N_Port_Name proceeds to N_Port Login, with the PLOGI ELS encapsulated in FCoE. Both FCoE PLOGI Request and LS_ACC shall have the Locally Unique N_Port_ID of the originating VN2VN_Port as S_ID and the Locally Unique N_Port_ID of the destination VN2VN_Port as D_ID. Upon completion of FCoE PLOGI the involved VN_Ports operate in point-to-point mode (see FC-LS-2). A VN_Port to VN_Port Virtual Link is explicitly deinstantiated by performing a FIP LOGO, that deinstantiates the FCoE_LEPs and performs a N_Port logout. The S_ID and D_ID on the encapsulated LOGO ELS shall be set to the Locally Unique N_Port_IDs of the involved VN2VN_Ports. The VN_Port to VN_Port capability is limited due to scalability and ENode complexity in implementation issues.



FIG. 4 shows one example of the current invention, an FIAC 80 coupled to an Ethernet network 90, comprised of two FIAs 8182, the Ethernet network coupled to four ENodes 88, 89, 90, 91. FIA 181 is connected to ENode183 through Ethernet link 88 and to ENode284 through Ethernet link 89. FIA 282 is connected to ENode 385 through Ethernet link 90 and to ENode 486 through Ethernet link 91. FIA 282 is also connected to the FIAC through Ethernet link 87. FIA 181 is connected to FIA 282 through Ethernet link 92. The FIAC 80 can communicate to the FIA's through the Ethernet links to set and remove FIA FME's. The FIAC 80 can also communicate through the Ethernet links and the FIA's to the attached ENodes 83, 84, 85, 86 to exchange FCoE initialization Protocol (FIP) frames and FCoE control frames. Specialized FCF/FDF VA_Port and VE_Port protocols are not applicable to this simplified FCoE device interconnection network. This allows the use of standard FIAs, e.g., standard 10G/40G Ethernet switches, which lowers the cost and complexity for deploying FCoE networks. The MAC 80 can use any number of Domain_IDs, from one to two hundred and fifty five, at its option, and not restricted to the Domain_ID assignments for previously defined Controlling and Distributed FCFs, i.e., there is no concept of a Principle or Virtual Domain although they can be implemented/simulated if necessary. It should be noted that the FIAC 80 in FIG. 4 differs from the FCF in FIG. 1 and FIG. 2. The FIAC 80 may not implement VA_Port and VE_Port interswitch link (ISL) protocols, including discovery, notification, and other ISL functions. The FIAC 80 may not depend on FDF functioned switches FIG. 22728, including the VA_Port protocols and communication capabilities. The FIAC 80 may not have any switching, bridging or forwarding capabilities similar to the functions inherent in a FCF switch. This allows the MAC 80 to be separate from the switching function, i.e., separating the control functions from the data forwarding functions. Software Defined Networks is a method of separating the frame forwarding or switching control functions from the data forwarding functions. The FIAC 80 supports a special form of Software Defined Networks which is Software Defined Storage Networks™ (SDSN). The FIAC 80 contains the ability to configure standard FIA frame filter tables with certain match rules and actions to create the functions necessary for network attached ENodes to communicate with each other. Some examples of FIA implementations include an Ethernet switch, an Ethernet bridge or an Ethernet router.



FIG. 5 shows one example implementation of an FIAC. The FIAC 101 is a virtual machine in a virtualized server 100. An example of a virtualized server is a server running the VMWare ESXi hypervisor, the Citrix Xen hypervisor, the Linux KVM hypervisor or the Microsoft HyperV hypervisor. FIG. 5 shows the FIAC 101 coupled to two virtual switches 102, 104. Each Virtual switch will connect to a different fabric so the traditional dual storage fabrics topology can be implemented. Virtual switch 102 is coupled 111 to a physical NIC 103. Virtual switch 104 is coupled 116 to physical NIC 105. The physical NICs can comprise a 10 Gbps Ethernet NIC, a 40 Gbps Ethernet NIC, a 100 Gbps Ethernet NIC or any other network interface. Physical NIC 103 is connected through an Ethernet link 112 to an Ethernet fabric 106. Physical NIC 105 is connected through an Ethernet link 117 to an Ethernet fabric 107. Ethernet Fabric 106 is connected to FCoE device 1108 through Ethernet link 113 and connected to FCoE device 2109 through Ethernet link 114. Ethernet Fabric 107 is connected to FCoE device 1108 through Ethernet link 118 and connected to FCoE device 2109 through Ethernet link 119. FIG. 5 shows two network connections between FCoE device 1108 and FCoE device 2109. The first network connection is through Ethernet link 113, Ethernet Fabric 106 and Ethernet link 114. The second network connection is through Ethernet link 118, Ethernet Fabric 107 and Ethernet link 119. This represents a best practice network redundant network interconnect between FCoE devices 108, 109. The FIAC 101 is connected to both Ethernet fabrics through the physical NICs 103, 105 and Ethernet links 112117. The FIAC 101 communicates with the attached FCoE devices over the FCoE Initialization Protocol (FIP) and through FCoE fabric services protocols. Since the diagram shows two different networks, the FIAC communicates with each Ethernet fabric 106, 107 or network using different FIAC MAC addresses over each network



FIG. 6 shows a redundant implementation of the FIAC, the FIAC running in a virtualized server capable of being migrated to another virtualized server. The FIAC 122 is running in a virtualized server 120. The FIAC 122 is coupled 127129 to two virtual switches 123125 which are coupled 128130 to physical NICs 124126. The two physical NICs 124126 are coupled 131132 to two separate Ethernet fabrics 133134 which implement dual storage network fabrics. Two FCoE Devices 135136 are coupled to each Ethernet Fabric 133134 through Ethernet links 137138140141. There is a second virtualized server 121 that comprises two virtual switches 147148, the said virtual switches coupled 145146 to physical NICs 143144. The physical NICs 143144 are coupled to two Ethernet fabrics 133134 through Ethernet links 139142. The FIAC Virtual Machine labeled dotted box 151 represents the movement of the FIAC 122 in virtualized server 120 in case of server failure. Dotted line 152 symbolizes the movement of the FIAC virtual machine to the second virtualized server 121 resulting in the FIAC operating 151 in the said second virtualized server 121.



FIG. 7 shows an active zone set 160 along with a default zone set 167. The zone set 160 contains two zones, Zone 1161 and Zone 2162. Zone 1161 comprises zone members I1163, refer to FIG. 8181 and T1164, refer to FIG. 8183. Zone 2162 comprises zone members I2165, refer to FIG. 8182 and T1166, refer to FIG. 8183. Also shown is the default zone 167, the zone where ENodes are added when they are discovered and not currently defined in the active zone set 160. The zone members are identified by the Worldwide Port Names for I1, symbolically named WWPN I1163, T1, symbolically named WWPN T1164, I2, symbolically named WWPN I2165, I3, symbolically named WWPN I3168, and T2, symbolically named WWPN T2169. Zone set 1 implements best practice zoning by separating the each initiator in its own separate zone.



FIG. 8 shows a network comprised of three initiators, I1181, I2182 and I3192 and two targets T1183 and T2193, an FIA 184 and a FIAC 180. The FIAC 180 is connected to FIA 184 Port 4185. I1181 is connected to FIA 184 Port 1186. I2182 is connected to FIA 184 Port 2187. I3192 is connected to FIA 184 Port 20190. T1183 is connected to FIA Port 3188. The FIAC 184 communicates with I1181, I2182, I3192, T1183 and T2193 through the FIP protocol and through FCoE frames accessing the fabric services in the FIAC 180.



FIG. 9 shows the FIA 184FIG. 8 FME table 230. FME Entry #1231 comprises elements 1170-1179 and matches frames sent from T1183 to I1181. FME Entry #2232 comprises elements 1180-1189 and matches frames sent from T1183 to I2182. FME Entry #3233 comprises elements 1190-1199 and matches frames sent from I1181 to T1183. FME Entry #4 comprises elements 200-209 and matches frames sent from I2182 to T1183. FME Entry #5235 comprises elements 210-15 and matches FIP Ethernet type frames destined for the FIAC 180. FME Entry #6 comprises elements 216-222 and matches FCoE Ethernet type frames destined for the FIAC 180. Elements 117011801190200210 and 216 describe the FIA 184 ingress ports in which to apply the FME entries. Elements 117111811191201211 and 217 describe the Ethernet type field in the received Ethernet frame in which to apply the FME entries. Elements 117611861196206214221 describe the Vlan identifier and the Vlan PCP field in the received Ethernet frame in which to apply the FME entries. Elements 117211821192292212218 describe the destination MAC address, symbolically DA_MAC, in the received Ethernet frame in which to apply the FME entries. Elements 117311831193203213219 describe the source MAC address, symbolically SA_MAC, in the received Ethernet frame in which to apply the FME entries. Elements 117411841194204220 describe, the Fibre Channel destination address identifier, symbolically D_ID, in the embedded Fibre Channel header in the received Ethernet frame in which to apply the FME entries. Elements 117511851195205 describe the Fibre Channel source address identifier, symbolically S_ID, in the embedded Fibre Channel header in the received FCoE Ethernet frame in which to apply the FME entries. Elements 117711871197207 describes the action which inserts a new Ethernet destination MAC address, symbolically SA_MAC into the received Ethernet frame upon frame matching the previous FME entry elements. Elements 117811881198208 describes the action which inserts a new Ethernet source MAC address, symbolically DA_MAC in to the received Ethernet frame upon the frame matching the previous FME entry elements. Elements 117911891199209215222 describe the egress FIA port to redirect the received Ethernet frame upon the frame matching the previous FME entry elements. Note that not all of the matching elements are required, that only a subset could comprise the FME Entry and still be able to successfully match and forward the frames. For example, the Ethernet type, Vlan identifier, PCP and D_ID match fields are sufficient to match the frame. The existing FIA FIB may be sufficient to forward the frame in lieu of a specific port or port group redirect element.


In FIG. 10 FME entry #7241 is a lower priority entry in the FIA FME table, i.e., the rule will match if all it's elements match 242243244 and none of the other FME entries 231232233234235236 match. In FME entries #1231 #2232 #3233 #4234, elements 1175, 1185, 1195 and 205 may be optional. If the elements are not present, frames will still be forwarded to the appropriate FCoE devices but the check that the correct Fibre Channel source identifier (S_ID) will not be done. Further, the redirect port or port group actions 117911891199209215222 may also be optional, i.e., the FIB in the FIA FIG. 8184 can be used to forward the frames.



FIG. 11 shows the function and method to discover which Fibre Channel N_Port identifiers (FCID) are in the same zones as the passed FCID. The tuple containing the Vlan and FCID are passed to the routine 251. The Worldwide Port Name (WWPN) is found by looking up the WWPN in the WWPN/FCID table 252. When the FIAC receives a FTP FLOGI or a FIP NPIV FDISC, the FIAC stores the WWPN from the FIP frame in FIAC storage with the assigned FCID and MAC address. Create a list of zones names for each zone that the WWPN of the passed FCID is 254. For each zone name in the list, another list of zone members in those zones is created 255. For each zone member in this new list, a list of FCIDs excluding the pass FCID is created 256. If the zone name of the passed FCID is not the default zone, then the list of FCIDs in 256 is returned 257258. If the zone name of the passed FCID is in the default zone then determine the default permission of the default zone 260. FIG. 11 adds an additional default zone permission in addition to PERMIT and DENY, that is AUTOZONE. Autozoning works by taking all ENodes in the default zone and determining whether they are Initiators or Targets. This is accomplished in many ways, either through an administer identifying certain ports on FIAs that are target ports or through discovery in the Name Server table. For example, Initiators may register the FCP FC4 type and may set the Initiator bit in the FC-4 features field, see FC-GS 4. Targets may register the FCP FC4 type and may set the Target bit in the FC-4 features field, see FC-GS-4. The IEEE vendor retrieved from the WWPN could also be used to differentiate Initiators from Targets. Once the Initiators and Targets are discovered, the FIAC will create new zones comprising one initiator and one target per new zone. The result is to create zones for all discovered Initiators and Targets using the best practices one initiator/one target zone method. The discovered Initiators and Targets may not be the already configured zone sets. FIG. 11 uses a case statement to branch to the PERMIT, DENY and AUTOZONE default zone permission states 260. If the default permission is DENY, then no FCIDs are returned 261. If the default permission is PERMIT then all FCIDs in the list are returned 262. If the default permission is AUTOZONE, then from the list of FCIDs, create a new list of target only FCIDs 264. If the passed FCID is in the target only FCID list then return the list of FCIDs that exclude the target FCID list 266267. This is accomplished by subtracting the Target list from the list of all FCIDs in the default zone, resulting in only the Initiator FCIDs. If the passed FCID is not in the target list, i.e., it is an initiator, then return the list of target FCIDs 268. The get_portids_in_zone function in FIG. 11 allows for previously configured zone sets in addition to an autozoning feature, i.e., autozoning excludes those ENodes which are already defined in zones created manually. Autozoning reduces the steps to configure a network of Initiators and Targets, which is very useful especially in large networks of Initiators. If there are no configured zones in FIG. 12 and autozoning is enabled, the FIAC will create two zones, one zone with members I1 and T1, the other zone with members I2 and T1.



FIG. 12 shows two initiators, one target, two FIAs and single FIAC network. The FIAC 280 is coupled to port 4288 of FIA 1284. Initiator I1281 is coupled to FIA 1284 through port 1290. Initiator I2283 is coupled to FIA2285 through port 1296. Target T1282 is coupled to FIA 1284 through port 3291. FIA 1 is coupled to FIA 2 through two links, one through port 5292 and one through port 6293. The two links 292293 form Port Group A 286. FIA 2285 is coupled to FIA 1284 through two links, one through port 2294 and one through port 3295. The two links 294295 form Port Group B 287. The Port Groups, Port Group A 286 and Port Group B 287 may be LAG groups.



FIG. 13 shows the FME table 300 in FIA 1FIG. 12284. FME Entry #1301 describes the rules that match frames sent from T1FIG. 12282 to I1FIG. 12281. FME Entry #2302 matches frames sent from I1 to T1. FME Entry #3303 matches frames sent from I2 to T1. Entry #4304 matches frames with the Ethernet destination MAC address equal to the FIAC MAC address, symbolically FCF_MAC 342 and with the Ethernet type of FIP type 341. FME Entry #5305 matches FCoE frames destined to the FIAC fabric services. FME Entry #6306 denies all other frames not matched by FME Entries #1301, #2302, #3303, #4304, and #5305. FME Entry #6 is of a lower match priority from the rest of the FME entries, i.e., it will only match if it's elements match 360361 and none of the other FME entries match. In FME entries 301, #2302, #3303, #4304, and #5305, not all the elements are necessary. For example, the DA_MAC and SA_MAC elements may be absent and the frame will still be matched using the other march elements. The action elements to redirect the frame to a specific port 316329339345356 could be absent thereby depending on the FIA's FIB table to forward the frames.



FIG. 14 shows both the network, i.e., FIA 1FIG. 12284 and FIA 2FIG. 12285, zoning table 400 and FIA 2FIG. 12, 285 FME Table 410. The network zoning table 400 shows the active zone set comprising zones that comprised of zone members. Zone 1 contains two zone members 401403. Zone member 401 comprises the Worldwide Port Name (WWPN) of I1, symbolically WWPN-I1 and zone member 403 comprises the WWPN of T1, symbolically WWPN-T1. Zone 1 therefore comprises I1 and T1. Zone 2 contains two zone members 402 and 404. Zone member 402 comprises the WWPN of I2, symbolically WWPN-I2 and zone member 404 comprises the WWPN of T1, symbolically WWPN-T1. Zone 2 therefore comprises I2 and T1. In this zone table all zone members belong to the Vlan identifier 100 and a PCP of 3. The zone table represents best practices in separating initiators and pairing initiators with targets in their own zone.


The FIA 2 FME table 410FIG. 14 comprises two FME entries 411412. FME Entry #1411 matches frames sent from T1 to I2 and FME Entry #2 matches frames sent from I2 to T1. Note that in FME Entry #2412, there exists the capability of forwarding over a predefined Port Group. The Port Group could be a LAG group or any other method for coupling multiple ports together, e.g., TRILL, Port Bonding, etc.



FIG. 15 is a diagram showing the configuring of multi-FIA 501503504 FMEs by an FIAC 502. The FIAC can configure FIA FME's in response to the receipt FIP FLOGI or FIP NPIV FDISC frames or can preconfigure FME's to be used by the FIAC when receiving FIP FLOGI or FIP NPIV FDISC frames at a future time. The FIAC may be removed the FME's when a FIP LOGO is received from an ENode 500. When preconfiguring the FME's 509510511 the FIAC 502 may assign one or more of the following elements in the configure FME command: FIAC 502 MAC address, Vlan identifier and PCP to match, Ethernet source MAC address to match, Ethernet destination MAC address to match, Fibre Channel N_Port source and/or destination address identifier to match, ingress FIA port or port group to match, Ethernet source and/or destination MAC addresses to substitute in the received Ethernet frame, port or port group to forward the received frame to. The FIA assigns both the MAC and Fibre Channel N_Port address identifiers when instantiating VN_Ports upon the receipt of FIP FLOGI and/or FIP NPIV FDISC frames from an ENode. The method for assigning the addresses can be flexible and can take in consideration the FIA, the number of ports in the FIA and other such information. For example, the FIAC can assign a certain range of Fibre Channel address identifiers to each FIA thereby allowing the matching of a field in the address identifier to the specific FIA. This field can be the domain part of the address or use multiple fields and subfields for identifying the FIA. Once the addresses are assigned the FIAC builds a frame that contains the fields needed for the FIA to create an FME. The FIAC can send the data to build the FME either through an SNMP frame if a MIB is defined with the appropriate fields, or an FIA telnet or SSH session that accesses the FIA command line interface (CLI), or through the OpenFlow protocol or any other means to communicate the FME to the FIA. Referring to FIG. 15, the FIAC 502 sends configure FME commands 509510511 to FIA1501, FIA2503 and FIA3504. This represents a multi-FIA configuration of ENode end-to-end interconnection, configured by the FIAC 502.



FIG. 16 is a diagram showing the discovery of an ENode FIA port and the sequence of setting of an FME in the FIA. ENode 600 transmits a FIP Discovery Solicitation frame 603 through FIA 602 to the FIAC 601. The FIAC 601 may send an SNMP request containing the source MAC address from the FIP Discovery Solicitation frame 603 to the FIA 602. The FIA processes the request and responds with an SNMP response 605 containing the port in which the ENode MAC address is connected. If the FIA FME contains an action to redirect the received frame to a specific port, the SNMP BRIDGE-MIB request/response sequence will discover the port. This sequence may also be initiated at any time after receipt of the FIP Discovery Solicitation frame including upon receipt of a FIP FLOGI frame from an ENode. When the ENode 600 transmits a FIP FLOGI frame 607 to the FIAC 601 and the FIA does not contain an FME for this ENode, the FIAC 601 will transmit an SNMP set FME request 608 to the FIA 602. The SNMP set FME request may utilize a private MIB. FIA 602 will create and add an FME into its FME table and respond with an SNMP set FME response 609. The FIAC 601 receives the SNMP response and will then transmit a FIP LS_ACC to the FLOGI 610 back to the ENode 600. It should be noted that the FIAC 601 can also utilize a CLI over a Telnet or SSH session, Openflow, or any other protocol to query the FIA BRIDGE-MIB and set FME's in lieu of using SNMP.



FIG. 17 is a diagram showing the sequence of receiving a FIP FLOGI frame when a free FME was previously configured by the FIAC. ENode 620 transmits a FIP FLOGI to the FIA 622 which forwards the FIP FLOGI to the FIAC 621. FIA 622 may forward the FIP FLOGI frame using it's FIB table. If the FIAC 621 has previously set at least one FME in the FIA 622, and that FME entry is free to use, the FIAC 621 may use the FME for the incoming FTP FLOGI frame. FIAC 621 may use the Fibre Channel N_Port identifier (FCID) and MAC that was previously set FME in the FIA 622 to create the FIP LS_ACC response 625 to the FIP FLOGI. The FIAC 621 transmits the FIP LS_ACC response 625 to the FIA 622 which forwards the FIP LS_ACC response 625 to the ENode 620. When the FIAC 621 preallocates the FME, it minimizes the communications between the FIAC 621 and the FIA 622.



FIG. 18 is a diagram showing the communication between a FIAC virtual machine 626 and an ENode 629. The FIAC 626 is coupled 630 to a virtual switch or vSwitch 627. The vSwitch is coupled to a physical NIC (not shown) which is coupled 631 to an FIA 628. The FIA 628 is coupled 632 to an ENode 629. The diagram shows the FIP Discovery Advertisement 633 and FIP Discovery Solicitation protocol 634 between the FIAC 626 and ENode 629. The diagram also shows the FIP FLOGI 637, FIP LS_ACC 638 protocol frame exchange between the FIAC 626 and ENode 629. Also shown is the ENode 629 to FIAC 626 FCoE Name Server request 640 and accept 641. The Name Server commands may comprise one of more of the Name Server commands listed in the ANSI T11 FC-GS specification. The dotted lines 636 and 639 indicate that other FIP and FCoE frame exchanges can occur between the FIAC 626 and the ENode 629 which may include FCoE PLOGI to Well Known fabric services supported by the FIAC, state change registration and accept and others known to those skilled in the art.



FIG. 19 shows a block diagram of one implementation of the FIAC 667. The FIAC 667 is coupled to one or more Ethernet networks through Ethernet interfaces 665. The Ethernet interfaces 665 may include interfaces to different networks identified by different Vlan identifiers and PCP values. The FIAC communicates over the Ethernet networks using a socket architecture 664 supported by the FIAC host operating system. Attached to the socket interface and Ethernet driver 664 are raw Ethernet transmit 657 and Ethernet receive 656 handlers. The word “raw” indicates that the Ethernet type fields that are sent and received may include FIP Ethernet type, FCoE Ethernet type or LLDP Ethernet type. There may be one or more Ethernet receive handlers 656, one for each Ethernet interface. The Ethernet frame handers receive the FIP and FCoE Ethernet frame types and forward them to the Ethernet Receive Frame Handler (rcv_frame_handler 655). The rcv_frame_handler 655 forwards the frame to the appropriate enode_server 651. There is one enode_server 651 process for each ENode FCoE Controller MAC and VN_Port MAC pair and one enode_server for every additional instantiated VN_Port from the receipt of a FIP NPIV FDISC frame. The enode_server 651 receives frames from the rcv_frame_handler 655, decodes the frame and then calls the appropriate frame processing function. The frame processing functions include decode_fip 650 for decoding received FIP frames, decode_dns 646 for processing Name Server FCoE frames, decode_fdmi 647 for processing Fabric Device Management Interface frames, decode_fmgmt 648 for processing Fabric Configuration Management Server frames, decode_els 649 for processing FCoE Extended Link Services frames and decode_bls 652 for processing FCoE Basic Link Services frames. The enode_server 651 may process all other frames that don't match the previous decoding functions. The enode_server block 653 is coupled to the FIAC database 645. The FIAC database 645 contains storage for storing the Simple Name Server Table (in additional to other fields, comprising one or more of the following: the Worldwide Port and Node names, FC-4 Type, FC-4 features, symbolic Port and Node names, Fabric Port name, Hard Address, Permanent Port name, Fibre Channel Port identifier), the zoning database, FDMI and FMGMT data, SNMP MIBs, data structures in support of managed FIAs (including FME information), as well as other FIAC needed information, state and log information. The FIAC database 645 also contains database “triggers”, which allow processes such as the enode_server 651, SNMP manager 660, SNMP agent 659, CLI handler 661, RESTful handler 662, OpenFlow controller 663 and other modules not shown to be notified upon database table or record changes. This allows the different FIAC servers, modules, managers and agents to indirectly communicate changes in the FIAC Database. An example would be the change in an FIAC configuration parameter created by a administrator through the CLI server 661. The CLI server 661 would update the FIAC Database record 645. The running enode_server processes would be notified of the FIAC Database 645 record change if they subscribed to changes in that specific record. This simplifies the communication between FIAC 667 servers, modules, managers and agents. The FIAC 667 comprises an SNMP Manager 660 which functions to initiate SNMP requests. An example use may be the FIAC 667 setting and clearing FME's from FIAs. The FIAC 667 comprises an SNMP agent 659 to support both public and private MIBs. The FIAC 667 supports a CLI handler 661 to allow a network manager to access FIAC configuration and statistics data. The CLI handler 661 may also support the setting and clearing of FME's in FIAs. The FIAC 667 comprises a RESTful handler 662, which functions as an interface to web clients to manage the FIAC 667. The FIAC 663 comprises an OpenFlow Controller 663, which may function to set and clear FME's in FIAs. The FIAC 667 may also be implemented in a bare metal server, i.e., a server that is not virtualized, and run as a process in the server's resident operating system.



FIG. 20 is a diagram showing the removal of FIA FME's upon the FIAC receipt of a FIP LOGO 704. ENode 700 transmits a FIP LOGO 704 to FIA 1702, in which it is directly connected. FIA 1702 forwards the FIP LOGO frame 707 to FIAC 701. In this example both FIA 1702 and FIA 2703 contain FME entries for the ENode 700. FIAC 701 transmits an SNMP FME clear request 705 to FIA 1702 and an SNMP FME clear request 706 to FIA 2703. The SNMP request may be described by a private MIB definition. FIA 1702 removes the FME from its FME table and responds with an SNMP FME response 707 frame. FIA 2703 removes the FME from its FME table and responds with an SNMP FME response 708 frame. FIAC 701 responds to the FIP LOGO with an FIP LS_ACC to the LOGO frame 705. FIA 1702 receives the FIP LS_ACC frame 705 and forwards the FIP LS_ACC frame 706 to the ENode 700. The SNMP protocol can be replaced by any other means to communicate to the FIAs including Telnet/SSH, OpenFlow or other FIAC to FIA protocols.



FIG. 21 is a diagram showing the receipt of a FIP FLOGI or FIP NPIV FDISC frame and some associated actions by a FIAC. A FIP FLOGI frame or FIP NPIV FDISC frame is received by the FIAC 702. The FIAC determines whether there is a free FME entry in the FIA 703. This indication can come from a table resident on the FIAC which keeps track of free FIA FME entries. If a free 711 FME entry exists, the FIAC uses the Fibre Channel N_Port identifier from the FME to insert into the FIP LS_ACC frame 704. The FIAC also marks that free FME entry as used. If a free FME entry does not exist 712, the FIAC allocates a Fibre Channel N_Port identifier and communicates it to the FIA to create an FME entry 705. When the FIAC receives a successful response from the FIA indicating that an FME entry was successfully added 710 to the FIA FME table, the FIAC returns a LS_ACC to the FIP FLOGI or FIP NPIV FDISC frame 708. If the FIAC receives a failure response, e.g., a timeout or a FIA FME table full condition, the FIAC will return a FIP LS_RJT to the FIP FLOGI or FIP NPIV FDISC frame.



FIG. 22 is a diagram showing the removal of one or more FMEs upon the receipt of a FIP FLOGO frame from an ENode. The FIAC receives a FIP FLOGO frame 600. The FIAC communicates with all the FIA's which have an FME for this address 602. The FIAC transmits RSCN frames to all VN_Ports in the same zones as the VN_Port in the FIP LOGO frame 603. The FIAC de-assigns or frees the specified MAC address and specified Fibre Channel address identifier, 601. The FIAC then transmits a FIP LS_ACC response to the FIP LOGO 605.



FIG. 23 is a sequence diagram showing a PLOGI exchange between ENodes. VN_Port1 of ENode1800 transmits a FCoE PLOGI request 805 with a source Ethernet MAC address of the VN_Port1 (VN1MAC), a destination Ethernet MAC address of the FIA Controller 802, a Fibre Channel source address identifier (SID) of VN_Port1 (VN1FCID), and a Fibre Channel destination address identifier (DID) of VN_Port100 (VN100FCID) contained in ENode2804. FIA1801 matches the frame with the FME 807 match fields comprising the source and destination Ethernet MAC addresses of any (or optionally the source Ethernet MAC address of VN_Port1, i.e., VN1MAC, and the destination Ethernet MAC address of the FIAC controller MAC, symbolically FIACntlrMAC), the Ethernet Type of FCoE, the Vlan identifier, in this example 100, the Vlan PCP, in this example 3, the Fibre Channel destination address identifier (DID) of VN_Port100, symbolically VN100FCID. The action is to replace the destination Ethernet MAC address with VN_Port100's MAC address, symbolically VN100MAC, the source Ethernet MAC address with the ENode 2 VN_Port100 MAC address, symbolically VN200MAC, and to forward the frame. The frame is forwarded to FIA 7803. Note that once the FIP sequence is complete and the frames are not destined for Fabric Services Well Known addresses, the FIA Controller 802 is not involved in forwarding the FCoE frames that are not destined to Well Known Fabric Services addresses (i.e. where the Fibre Channel destination address is FF.FF.xx. where xx is don't care). FIA 7803 receives the FCoE PLOGI frame and forwards the frame based on the previously assigned FME 808 comprising the matching Fields of source Ethernet MAC address of the ENode 1 VN_Port1800 MAC, symbolically VN1MAC (or optionally any source MAC), a destination Ethernet MAC address the ENode 2 VN_Port 100 MAC 804, symbolically VN100MAC (or optionally any destination MAC), an Ethernet Type of FCoE, a Vlan identifier, in this example 100, a Vlan PCP, in this example 3 and the action is forward the frame. Optionally the action can include a port or LAG/MLAG group to forward the frame too. VN_Port100 of ENode2804 receives the FCoE PLOGI, processes it 810, and responds with a FCoE LS_ACC to the PLOGI 812. The FCoE LS_ACC includes a destination Ethernet MAC address of the FIA Controller FCF-MAC address, symbolically FIACntlrMAC, a source Ethernet MAC address of VN_Port100, symbolically VN100MAC, a Fibre Channel destination address identifier (DID) of VN_Port1, symbolically VN1FCID, and a Fibre Channel source address identifier if VN_Port100, symbolically VN100FCID. FIA 7803 uses the previously assigned FME 814 comprising the match fields of source Ethernet MAC address of the ENode 2 VN_Port 100 MAC 804, symbolically VN100 AC (or optionally any source mac), a destination Ethernet MAC address the FIAC 802, symbolically FIACntlrMAC (or optionally any source mac), the destination Fibre Channel address identifier (DID) of VN_Port1, symbolically VN1FCID, and the Ethernet Type of FCoE, a Vlan identifier, in this example 100, a Vlan PCP value, in this example 3, and with an action to replace the destination Ethernet MAC address with VN_Port1's MAC address, symbolically VN1MAC, replace the source Ethernet MAC address with the ENode 1 VN_Port 1 MAC 800. symbolically VN1MAC, and forward the frame. The frame is forwarded FIA 1801 which matches the frame with the FME 813 comprising the match fields of the source Ethernet MAC address of the ENode 2 VN_Port 100804, symbolically VN100MAC, the destination Ethernet MAC address of ENode 1 VN_Port1800, symbolically VN1MAC, the Ethernet Type of FCoE, a Vlan identifier, in this example 100, a Vlan PCP value, in this example 3, with an action to forward the frame. Optionally the source and/or the destination Ethernet MAC addresses can be to match any MAC address. The replacement of the source MAC addresses in the first FIA hop to the sending ENode allows the transition FIAs, i.e., the FIAs in the path except the last or egress FIA, to learn the MAC address and add it to their FIBs. This allows the forwarding Ethernet network of FIAs to use existing layer 2 forwarding methods (e.g., STP, MSTP, Trill, SPB, etc.) as well as bunking architectures such as LAG, MLAG, etc. to forward the FCoE frames.



FIG. 24 is a sequence diagram showing the communication between a ENode 900 and a Fibre Channel Device 904 through two FIAs 901903. The connections between the ENode1900, the FIA 1901, the FIA Controller 902, and at least one port in FIA 2903 are Ethernet connections 905. The connection between FIA 2903 and the Fibre Channel Device 904 is a Fibre Channel connection 906. VN_Port1 in ENode 1900 transmits an FCoE PLOGI request 907 frame comprising the source Ethernet MAC address of VN_Port1, symbolically VN1MAC, destination Ethernet MAC address of the FIAC, symbolically FIACntlrMAC, a destination Fibre Channel address identifier (DID) assigned to N_Port1, symbolically NP1FCID, and a source Fibre Channel address identifier (SID) assigned to VN_Port1, symbolically VN1FCID. FIA 1901 receives the frame, replaces the source Ethernet MAC address with the ENode1 VN_Port1900 MAC address, symbolically VN1MAC, replaces the destination Ethernet MAC address with the assigned Fibre Channel Device 1 N_Port MAC address, symbolically NP1MAC, then forwards the frame 908 to FIA 2903. FIA 2903 receives the frame, decapsulates the frame (i.e., removes the layer 2 Ethernet and FCoE headers) into a Fibre Channel frame 910 and transmits the Fibre Channel PLOGI frame 910 to Fibre Channel Device 1 N_Port 1904. Fibre Channel Device 1 N_Port1904 processes the N_Port PLOGI frame and responds with a Fibre Channel LS_ACC frame to the PLOGI frame 914. FIA 2903 receives the frame and encapsulates it into a FCoE LS_ACC frame, then transmits the frame 913 to FIA 1901. FIA 1901 receives the frame from FIA 2903. As part of encapsulating a Fibre Channel frame to an FCoE frame, FIA 2903 inserts both source and destination MAC addresses. The source MAC address is the assigned MAC address to Fibre Channel Device 1, symbolically NP1FCID, and the destination MAC address is the address of ENode1, symbolically VN1MAC. FIA 1 receives frame 913, substitutes the Ethernet source MAC address to the FIAC MAC address, symbolically FIACntlrMAC, and substitutes the Ethernet destination MAC address to ENode1 MAC address, symbolically VN1MAC.



FIG. 25 is a sequence diagram showing the interconnection of two native Fibre Channel devices through two FIA 951952, the FIA comprising ports adapted to connect to Fibre Channel devices 955957. FIA 1951 and FIA 2953 comprise ports adapted to connect to Fibre Channel devices 950954. FIA 1951 and FIA 2953 also comprise ports adapted to connect to an Ethernet network 956. Fibre Channel Device 1950 transmits a Fibre Channel FLOGI request frame 958 to FIA1951. The Fibre Channel FLOGI frame includes a Well Known destination Fibre Channel address identifier of the well known Directory Server address identifier (FFFTFCh), which Is a Fibre Channel fabric service implemented within the FIAC 952. FIA 1951 receives the Fibre Channel FLOGI frame, encapsulates it into a FCoE frame comprising an assigned source Ethernet MAC address of the Fibre Channel Device, symbolically FCD1MAC, and destination Ethernet MAC address of the FIAC 952 FCF-MAC address, symbolically FIACntlrMAC. A Fibre Channel Device MAC address is assigned by the FIA Controller (FIAC) 952 to the Fibre Channel Device 950 and represents a virtual FCoE_Controller MAC address to identify it on the Ethernet network. This MAC address is set in the FIAs in the FCoE encapsulation apparatus and is only used internally for frames between FIAs 951953 and between the FIAs and the FIAC 952. FIA 1951 forwards the FCoE encapsulated Fibre Channel FLOGI frame 959 to the FIAC 952 over the Ethernet network. The FIAC 952 services the frame 963 and returns a FIP LS_ACC response frame 960 comprising the source Ethernet FCF-MAC address of the FIAC 952, symbolically FIACntlrMAC, the destination Ethernet MAC address of the Fibre Channel Device 950, symbolically FCD1MAC, the source Fibre Channel address identifier of the well known Directory Server address identifier (FFFFFCh), and the newly assigned destination Fibre Channel address identifier to the Fibre Channel Device N_Port1, symbolically VN1FCID. FIA 1951 receives the LS_ACC FCoE frame, decapsulates the frame (i.e., removes the layer 2 and FCoE frame headers) into a Fibre Channel frame and transmits the Fibre Channel frame 961 to Fibre Channel Device 1950. The diagram also shows the communication between two Fibre Channel Devices 950954 over an Ethernet network 964966969967. This allows interconnection of Fibre Channel devices without the need to deploy a Fibre Channel network FIA to FIA network, thereby saving the user front purchasing and deploying two different types of FIA's or Fibre Channel switches and Ethernet switches. Fibre Channel Device 1 N_Port 1950 transmits a Fibre Channel PLOGI request frame 964, addressed to Fibre Channel Device 2 N_Port2954, symbolically NP2FCID. FIA 1951 receives the Fibre Channel PLOGI frame, encapsulates the frame into a FCoE PLOGI frame 965 comprising a source Ethernet MAC address of Fibre Channel Device 1 N_Port1950, symbolically NP1MAC, and a destination Ethernet MAC address of Fibre Channel Device 2 N_Port2954, symbolically NP2MAC. FIA 1951 then forwards the frame 965 to FIA 2953. FIA 2953 receives the frame, encapsulates the frame (i.e., removes the layer 2 Ethernet and FCoE frame headers) into a Fibre Channel frame and transmits the resulting frame 966 to Fibre Channel Device 2 N__Port2954, Fibre Channel Device 2 N_Port2954 the processes the frame 971 and may transmit a Fibre Channel LS_ACC response frame 969 to the Fibre Channel PLOGI frame. FIA 2953 receives the frame, encapsulates the frame into a FCoE frame (i.e., adds the Ethernet and FCoE headers) comprising a source Ethernet MAC address of Fibre Channel Device 2 N_Port2954, symbolically NP2MAC, a destination Ethernet MAC address of Fibre Channel Device 1 N_Port1950, symbolically NP1MAC. FIA 2953 transmits the frame 968 to FIA 1951. FIA 1951 decapsulates (i.e., removes the layer 2 Ethernet and FCoE frame headers) the FCoE frame into a Fibre Channel frame and transmits the Fibre Channel frame 967 to Fibre Channel Device 1 N_Port1950. Transporting Fibre Channel frames over an Ethernet network will allow the deployment of Fibre Channel devices without deploying a separate Fibre Channel switched network, i.e., a network with Fibre Channel protocol interswitch links. The FIAs are adapted to encapsulate and decapsulate Fibre Channel frames into and from FCoE frames.



FIG. 26 is a diagram showing a FCoE frame 2620 sent from an Ethernet connected ENode 2629 through a network of RBridge FIAs 262826272630 to a destination Ethernet connected ENode 2631 over a TRILL Ethernet network 2626. FIA12628, FIA22627, and FIA32630 form an Ethernet TRILL network 2626. The links from FIA12628 to ENode12629 and from FIA32630 to ENode22631 are Ethernet links 2652. The FIAC 2700 is coupled to 2701 FIA22627. The FIAC 2700 may be located anywhere in the network where it can communicate with all FIAs 262626282630 and ENodes 26292631. The FCoE frame transmitted 2620 from VN_Port12650 in ENode12629 includes the following values: Ethernet destination MAC address of the FIA Controller 2700 FCF_MAC address, symbolically FIACntlrMAC, Ethernet source MAC address of VN_Port12650, symbolically VN_Port1MAC, a Vlan identifier 2623, symbolically VLAN1, data 2622, and an FCS 2621. FIA12628 substitutes the destination MAC address with VN_Port2's 2651 MAC address, symbolically VN_Port2MAC. FIA12628 encapsulates the frame in a TRILL frame. The outer destination Ethernet MAC 2619 address contains the value of the next hop FIA MAC address, in this case the symbolic MAC address FIA2MAC 2619. The outer source Ethernet MAC address 2618 contains the value of the current FIA MAC address, in this case the symbolic MAC address FIA1MAC. The frame is received by FIA22627 and the outer destination Ethernet MAC address 2641 is changed to be the next hop, in this case FIA32630 and its symbolic Ethernet MAC address FIA3MAC 2641. The outer source Ethernet MAC address 2640 is changed to be FIA2's MAC address, in this case FIA2MAC 2640. The frame 2632 is then received by FIA32630, the TRILL header is removed and the source MAC address is changed to the FIAC 2700 MAC, symbolically FIACntlrMAC 2646, and the frame 2642 is forwarded to VN_Port22651 in ENode22631.


Shortest Path Bridging (SPB) is an IEEE draft (802.1aq). There are two SPB models for multipath bridging: Shortest Path Bridging VLAN (SPBV) and Shortest Path Bridging MAC-in-MAC (SPBM). FIG. 27 is a diagram showing the interconnection of ENodes 28182821 through a Shortest Path Bridging MAC-in-MAC (SPBM) network 2814. An FCoE frame 2808 sent from an Ethernet connected ENode 2818 through a network of FIAs 281628152817 adapted to implement Shortest Path Bridging to a destination Ethernet connected ENode 2821 over a SPBM network 2814. FIA12816, FIA22815, and FIA32817 form a SPBM 2814. The links from FIA12816 to ENode12818 and from FIA32817 to ENode22821 are Ethernet links 2820. An FIAC 2850 is coupled to the SPBM network 2814 through the link 2851. The FIAC 2850 may be located anywhere in the network as long as it can access both the FIAs 281528162817 to set and remove FMEs and access the ENodes 28182821 to perform the FIP protocol and provide essential Fabric Services through FCoE frames. The FCoE frame transmitted 2808 from VN_Port12819 in ENode12818 includes the following values: Ethernet destination FCF-MAC address 2813 of the FIAC 2850, symbolically FIACntlrMAC 2813, Ethernet source MAC address 2812 of VN_Port 1, symbolically VN_Port1MAC, a Vlan identifier 2811, symbolically VLAN1, data 2810, and an FCS 2809. FIA12816 substitutes the destination MAC address with VN_Port2's 2822 MAC address 2805, symbolically VN_Port2MAC, and substitutes the source MAC address 2804 with VN Port1's 2819 MAC address, symbolically VN_Port1MAC. The FIA12816 encapsulates the frame in a SPBM frame, i.e., adds a MAC-in-MAC header and other SPB fields. The outer destination Ethernet MAC 2619 address contains the value of the egress FIA MAC address, in this case the symbolic MAC address FIA3MAC 2817. The outer source Ethernet MAC address 2806 contains the value of the current FIA MAC address, in this case the symbolic MAC address FIA1MAC. The frame is received by FIA22815 and forwarded to the egress FIA, FIA32817. FIA32817 removes the outer MAC header, substitutes the source MAC address 2837 with the FIAC MAC address, symbolically FIACntlrMAC, and forwards the frame to VN_Port22822 in ENode22821. The Shortest Path Bridging network can be adapted to use Shortest Path Bridging VLAN (SPBV) in lieu of SPBM by using the Shortest Path VLAN ID (SPVID) to designate nodal reachability.



FIG. 28 shows a network comprising two ENodes 29002904, two FIAs 29012902 and a FIAC 2903. FIA 12901 and FIA 22902 comprise dual Fabrics for redundant connections between ENodes, identified by two different Vlan identifiers, in this example Vlan 100 and Vlan 200. ENode 12900 is coupled to FIA 12901 through link 2905 and coupled to FIA22902 through link 2906. ENode 22904 is coupled to FIA 12901 through link 2908 and to FIA 22902 through link 2910. The FIAC 2903 is coupled to FIA 12901 through link 2907 and coupled to FIA22902 through link 2909. The FIAC and the ENodes which are coupled to the links 2905, 2908 and 2907 are adapted to use the Vlan identifier of 100. The FIAC and the ENodes which are coupled to the links 2906, 2909 and 2910 are adapted to use the Vlan identifier of 200.



FIG. 29 shows a network comprising two ENodes 2950, two FIAs 29542955 and two FIACs 29512952. FIA 12954 and FIA 22955 comprise dual Fabrics for redundant connections between ENodes, identified by two different Vlan identifiers. ENode 12950 is coupled to FIA 12954 through link 2956 and coupled to FIA22955 through link 2960. ENode 22953 is coupled to FIA 12954 through link 2959 and to FIA 22955 through link 2963. FIAC 12951 is coupled to FIA 12954 through link 2957 and coupled to FIA22955 through link 2961. FIAC 22952 is coupled to FIA 12954 through link 2958 and coupled to FIA 22955 through link 2962. FIAC 12951, FIAC 22952 and the ENodes 29502953 that are coupled to the links 2956, 2957, 2958 and 2959 are adapted to use the Vlan identifier of 100. FIAC 12951 and FIAC 22952 and the ENodes 29502953 that are coupled to the links 2960, 2961, 2962 and 2963 are adapted to use the Vlan identifier of 200. FIAC 22952 can operate either in a redundant mode, taking over control of the network in case FIAC 12951 fails or FIAC 22952 can control one of the Vlan networks, for example Vlan 200, while FIAC 12951 controls the other Vlan network, for example Vlan 100.



FIG. 30 shows a network comprising five ENodes 32543255325632583259, four FIAs 3250325132523253 and a FIAC 3257. The four FIAs 3250325132523253 comprise a single virtual chassis 3260. A virtual chassis 3260 comprised of multiple FIAs 3250325132523253 is managed as if it was a single logical chassis. The multi-FIA virtual chassis 3260 acts like a single FIA. Each physical FIA in the fabric is managed as if it were a single FIA, responding to a single management address. This enables FIA scalability without manual configuration. The logical chassis capability significantly reduces management of physically different FIAs. ENode13254, ENode23255, ENode33256 ENode43258 ENode53259 are connected to the single virtual chassis through links 32663267326832733274. FIAC 3257 connects to the virtual chassis through link 3269. The FIAC 3257 acts as the FCF in the FIP protocol to connected ENodes 32543255325632583259 and provides essential Fabric Services comprising a zone server, name server, state change notification service among other services. The Virtual Chassis 3260 comprised of multiple FIAs 3250325132523253 arc managed as a single FIA, i.e., the setting of FME's is done through a single management entity, such as a single SNMP IP address or Telnet/SSH address. The frame forwarding is performed by using the FIB tables in the FIA's forwarding over inter-FIA links 3261328032623281. The inter-FIA links connect the FIA'a through internal to the virtual chassis paths.



FIG. 31 shows a network comprising five ENodes 33203321332233243325, six FIAs 330133023303330433053306 and an FIAC 3323. The FIAs form an access 3301330233033304 and core 33053306 Ethernet network or alternatively a leaf 330330233033304 and spline 33053306 network. The access FIAs 33013302 and 33033304 form two redundant access networks. The redundant networks are identified by the Vlan identifiers, 100 and 200. ENode13320, ENode23321 and ENode33322 connect to dual networks through FIA13301 and FIA23302. FIAC 3323, ENode43324 ENode53325 connect to dual networks through FIA33303 and FIA43304. The access FIAs 3301330233033304 connect to the core FIAs 33053306 through redundant paths. FIAC 3323 connects to one of the two networks, identified by Vlan 100 through FIA33303 through link 3314. FIAC 3323 connects to the other of the two networks, identified by Vlan 200 through FIA43304 through link 3317. FIAC 3323 uses two FCF-MACs, one for each network identified by Vlan 100 and Vlan 200 to instantiate VN_Ports with connected ENodes 3320332133223324. The network shown in FIG. 31 allows two paths of connection from each ENode to other ENodes and from the FIA to each ENode.


The foregoing systems, methods and apparatus may be widely applied to various applications. Without narrowing the generality of the foregoing, they may be fully applicable to Software Defined Storage Networks.


Although the foregoing invention has been described in some detail by way of illustration and example for purposes of clarity and understanding, it may be readily apparent to those of ordinary skill in the art in light of the teachings of this invention that certain changes and modifications may be made thereto without departing from the spirit or scope of the appended claims.


All publications and patents cited in this specification are herein incorporated by reference as if each individual publication or patent were specifically and individually indicated to be incorporated by reference in their entirety.

Claims
  • 1. A system for interconnection of one or more Fibre Channel over Ethernet (FCoE) devices, the system comprising: a virtual server, the virtual server comprising: a virtual machine comprising an FCoE device interconnection apparatus controller (FIAC), the FIAC comprising a database and an OpenFlow controller,a virtual switch, the virtual switch being coupled to the FCoE device interconnection apparatus controller, anda network interface, the network interface being coupled to the virtual switch,an Ethernet fabric,a first Ethernet link, the first Ethernet link coupling the network interface to the Ethernet fabric,a first Fibre Channel over Ethernet (FCoE) device,a second Ethernet link, the second Ethernet link coupling the first Fibre Channel over Ethernet device to the Ethernet fabric,a second Fibre Channel over Ethernet (FCoE) device, anda third Ethernet link, the third Ethernet link coupling the second Fibre Channel over Ethernet device to the Ethernet fabric.
  • 2. The system of claim 1 wherein the Ethernet fabric is comprised of one or more Ethernet switches.
  • 3. The system of claim 1 wherein the virtual server further includes a second virtual switch,a second network interface,a second Ethernet fabric,the FCoE device interconnection apparatus controller coupled to the said second virtual switch,a fourth Ethernet link, the fourth Ethernet link coupling the second network interface to the second Ethernet fabric,a fifth Ethernet link, the fifth Ethernet link coupling the first FCoE device to the second Ethernet fabric.
  • 4. The system of claim 1 wherein the FIAC comprises storage, the storage containing one or more of the following Name Server objects from the first FCoE device: Port Identifier, Port Name, Node Name, Class of Service, FC-4 TYPE, Symbolic Port Name, Symbolic Node Name, Port Type, Fabric Port Name, Hard Address, FC-4 Features and Permanent Port Name.
  • 5. The system of claim 1 wherein one or more of the FCoE devices is a storage array.
  • 6. The system of claim 1 wherein one or more of the FCoE devices is a server.
  • 7. The system of claim 1 wherein the virtualized server is embedded in a storage array.
  • 8. A method for interconnection of one or more Fibre Channel over Ethernet (FCoE) devices comprising the steps of: a virtual server, the virtual server comprising:a virtual machine comprising an FCoE device interconnection apparatus controller (FIAC),a virtual switch, the virtual switch being coupled to the FCoE device interconnection apparatus controller, anda network interface, the network interface being coupled to the virtual switch,an Ethernet fabric,a first Ethernet link, the first Ethernet link coupling the network interface to the Ethernet fabric,a first Fibre Channel over Ethernet (FCoE) device,a second Ethernet link, the second Ethernet link coupling the first Fibre Channel over Ethernet device to the Ethernet fabric,a second Fibre Channel over Ethernet (FCoE) device, anda third Ethernet link, the third Ethernet link coupling the second Fibre Channel over Ethernet device to the Ethernet fabric;whereby the FIAC sends one or more of the following FCoE Initialization Protocol (FIP) frames to the attached FCoE devices: FIP Discovery Advertisement multicast, FIP Discovery Advertisement unicast, FIP VLAN response, FIP FCoE accept FLOGI LS_ACC to a FIP FLOGI Request frame.
  • 9. The method in claim 8 wherein the first FCoE device receives the FIP Discovery Advertisement multicast frame from the FIAC, processes the frame, and then sends a FIP Discovery Solicitation response frame back to the FIAC.
  • 10. The method in claim 8 wherein the first FCoE device transmits a FIP FLOGI Request frame to the FIAC, the FIAC receives the FIP FLOGI Request frame, the FIAC then responds with a FIP FLOGI LS_ACC frame.
  • 11. The method in claim 8 wherein the FIAC comprises storage, the storage containing a Simple Name Server table, the said Simple name Server table comprising one or more of the following Name Server objects registered by the first FCoE device: Port Identifier, Port Name, Node Name, Class of Service, FC-4 TYPE, Symbolic Port Name, Symbolic Node Name, Port Type, Fabric Port Name, Hard Address, FC-4 Features and Permanent Port Name.
  • 12. The method in claim 11 wherein the first FCoE device queries the Simple Name Server contained in the FIAC for other FCoE devices which support the FCP protocol.
  • 13. A method for interconnection of one or more Fibre Channel over Ethernet (FCoE) devices under control of an FCoE virtual machine device interconnection apparatus controller (FIAC) coupled to an Ethernet fabric, comprising the steps of: multicasting a FIP Discovery Advertisement frame over the Ethernet fabric to the one or more FCoE devices,receiving the FIP Discovery Advertisement frame at the one or more FCoE devices,responding from one or more of the FCoE devices to tint FIAC virtual machine with a FIP Discovery Solicitation frame.
  • 14. The method in claim 13 wherein the said FIAC virtual machine receives said FIP Discovery Solicitation frame, and responds with a FIP Discovery Advertisement unicast frame to a first FCoE device which sent the FIP Discovery Solicitation frame.
  • 15. The method in claim 14 wherein the FCoE device receives the FIP Discovery Advertisement unicast frame from a first FCoE device, processes the frame, then sends a FIP FLOGI Request frame to the FIAC.
  • 16. The method in claim 13 wherein the FIAC comprises storage, the storage containing a Simple Name Server table, the Simple Name Server table containing one or more of the following Name Server objects which were registered by the first FCoE device; Port Identifier, Port Name, Node Name, Class of Service, FC-4 TYPE, Symbolic Port Name, Symbolic Node Name, Port Type, Fabric Port Name, Hard Address, FC-4 Features and Permanent Port Name.
  • 17. The method in claim 16 wherein a first FCoE device queries the Simple Name Server contained in the FIAC for other FCoE devices which support the FCP protocol.
  • 18. The method in claim 13 wherein a first FCoE device sends a FCoE State Change Registration (SCR) Command to the FIAC, the FIAC receives the SCR Command, and responds with an FCoE PLOGI Accept command.
  • 19. The method of claim 13 wherein the one or more first FCoE devices send a Simple Name Server Get Port Identifiers (GID_FF) request query to the FIAC, and the FIAC responds with a Simple Name Server Accept to the GID_FF frame, the Accept comprising the N_Port Identifier of a second FCoE device.
  • 20. The method of claim 13 wherein the one or more first FCoE devices send a Simple Name Server Get Port Names Simplified Discovery for FCP (FPN_SDFCP) request query to the FIAC, and the FIAC responds with a Simple Name Server Accept to the GPN_SDFCP frame, the Accept comprising the N_Port Identifier and port name of a second FCoE device.
PRIORITY CLAIM

This patent application is a continuation of application Ser. No. 13/547,848, filed Jul. 12, 2012, which is a continuation-in-part of the following U.S. patent applications: application Ser. No. 12/987,057, entitled “Methods, Systems and Apparatus for the Interconnection of Fibre Channel Over Ethernet Devices”, application Ser. No. 12/987,063 entitled “Methods, Systems and Apparatus for the Interconnection of Fibre Channel Over Ethernet Devices Using a Fibre Channel Over Ethernet Interconnection Apparatus Controller”, application Ser. No. 12/987,066 entitled “Methods, Systems, and Apparatus for the Servicing of Fibre Channel Fabric Login Frames”, application Ser. No. 12/987,073 entitled “Methods, Systems and Apparatus for Utilizing an iSNS Server in a Network of Fibre Channel Over Ethernet Devices”, application Ser. No. 12/987,077 entitled “Methods, Systems and Apparatus for the Interconnection of Fibre Channel Over Ethernet Devices Using a TRILL Network”, application Ser. No. 12/987,076 entitled “Methods, Systems and Apparatus for Converged Network Adapters”, and application Ser. No. 12/987,075 entitled “Methods, Systems and Apparatus for the Interconnection of Fibre Channel Over Ethernet Devices Using Shortest Path Bridging”, all filed on Jan. 7, 2011, which are all incorporated herein by reference as if fully net forth herein.

US Referenced Citations (2)
Number Name Date Kind
8929368 Zhang Jan 2015 B2
9178944 Berman Nov 2015 B2
Related Publications (1)
Number Date Country
20160248599 A1 Aug 2016 US
Continuations (1)
Number Date Country
Parent 13547848 Jul 2012 US
Child 14928573 US
Continuation in Parts (7)
Number Date Country
Parent 12987057 Jan 2011 US
Child 13547848 US
Parent 12987063 Jan 2011 US
Child 12987057 US
Parent 12987066 Jan 2011 US
Child 12987063 US
Parent 12987073 Jan 2011 US
Child 12987066 US
Parent 12987077 Jan 2011 US
Child 12987073 US
Parent 12987076 Jan 2011 US
Child 12987077 US
Parent 12987075 Jan 2011 US
Child 12987076 US