US20150350112A1 - High performance ethernet networking utilizing existing fibre channel fabric hba technology - Google Patents
High performance ethernet networking utilizing existing fibre channel fabric hba technology Download PDFInfo
- Publication number
- US20150350112A1 US20150350112A1 US14/823,282 US201514823282A US2015350112A1 US 20150350112 A1 US20150350112 A1 US 20150350112A1 US 201514823282 A US201514823282 A US 201514823282A US 2015350112 A1 US2015350112 A1 US 2015350112A1
- Authority
- US
- United States
- Prior art keywords
- fibre channel
- ethernet
- network
- module
- communications
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/356—Switches specially adapted for specific applications for storage area networks
- H04L49/357—Fibre channel switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
-
- H04L61/6004—
-
- H04L61/6022—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/604—Address structures or formats
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
Definitions
- This invention generally relates to network devices and more specifically to Fibre Channel over Ethernet controllers and support devices.
- Fibre Channel is a well known standard for network communications. It is generally used for applications where high data transmission rates and high reliability are necessary, such as storage networks. Fibre channel systems are usually based on one of three topologies—point to point, arbitrated loop and switched fabric. For each topology there exist standard initialization and messaging procedures which various devices connected to the network can use to announce their presence to other devices, determine what other devices are present in the network, and determine when a device enters or exits the network. In the point to point and arbitrated loop topologies, these procedures may be performed by the devices themselves. In the switched fabric topology, these procedures may be at least partially performed by the network fabric—i.e., various switches or servers that are considered to be part of the network itself and not devices communicating with the network.
- the network fabric i.e., various switches or servers that are considered to be part of the network itself and not devices communicating with the network.
- Ethernet is a network communication standard traditionally used for applications for which the data transmission rate and reliability requirements are not as high as they are for Fibre Channel applications.
- Ethernet is often used as a base layer for TCP/IP networks, which are in turn used for Internet networking.
- CEE converged enhanced Ethernet
- Fibre Channel such as, for example, storage networking
- CEE computer to computer communications
- HBAs host bus adapters
- iSCSI Internet SCSI
- FCoE gateways can be used to connect a Fibre Channel component to an Ethernet network.
- An FCoE gateway may be a stand alone device which is connected to the Fibre Channel component through a Fibre Channel link.
- the gateway may also be connected to an Ethernet network and may thus combine an existing Fibre Channel based HBA with an Ethernet network.
- FCoE gateways would add significant costs and complexity to the resulting networks.
- a Fibre Channel over Ethernet (FCoE) enabled device may include a Fibre Channel over Ethernet Adapter (FCoEA).
- FCoEA Fibre Channel over Ethernet Adapter
- the FCoEA may include an HBA module.
- the HBA module may be configured to communicate over the Fibre Channel protocol.
- the FCoE enabled device may process and encapsulate the HBA module's communication in order to send them over an Ethernet network instead.
- the FCoE enabled device may process communications directed to various Fibre Channel fabric services by utilizing existing Ethernet services, such as an iSNS server.
- the FCoE enabled device can emulate a Fibre Channel network for the HBA module using the Ethernet network and one or more existing Ethernet services/servers.
- FIG. 1 is a diagram of an exemplary Fibre Channel Fabric network.
- FIG. 2 is a diagram of an exemplary Ethernet network according to embodiments of the invention.
- FIG. 3A is a diagram of an exemplary FCoEA (Fibre Channel over Ethernet Adapter) according to embodiments of the invention.
- FCoEA Fibre Channel over Ethernet Adapter
- FIG. 3B is a diagram of another exemplary FCoEA according to embodiments of the invention.
- FIG. 3C is a diagram of yet another exemplary FCoEA according to embodiments of the invention.
- FIG. 4 is a diagram of an exemplary FCoEA enabled device according to embodiments of the invention.
- FIG. 5 is a flowchart of an exemplary method of emulating a Fibre Channel network according to embodiments of the present invention.
- FIG. 6 is a diagram showing the operation of an exemplary FCoE (Ethernet encapsulation of a Fibre Channel frame) module during initialization according to embodiments of the invention.
- FCoE Ethernet encapsulation of a Fibre Channel frame
- FIG. 7 is a diagram showing the operation of an exemplary FCoE module during State Change Registration and NPIV (N_Port ID Virtualization) initialization according to embodiments of the invention.
- FIG. 8 is a diagram showing the operation of an exemplary FCoE module during device discovery according to embodiments of the invention.
- FIG. 9 is a diagram showing the operation of an exemplary FCoE module during device discovery according to embodiments of the invention.
- FIG. 10 is a diagram showing the operation of an exemplary FCoE module during receipt of a state change notification message according to embodiments of the invention.
- FIG. 11 is a diagram showing the operation of an exemplary FCoE module during Port Login according to embodiments of the invention.
- FIGS. 12A and 12B are diagrams of showing embodiments of the present invention being utilized in multiple heterogeneous networks.
- HBA adapters for storage area networks
- present invention is not limited to such circuits, but is generally applicable to any devices that connect through Ethernet (or other similar types of networks), while utilizing circuits that have been originally designed for Fibre Channel (or other similar types of networks).
- FIG. 1 is a diagram of an exemplary Fibre Channel network of the fabric topology.
- Several devices 101 , 102 , 103 and 104 can be connected to a Fibre Channel network 100 .
- the exemplary network of FIG. 1 may be a storage area network but other Fibre Channel fabric networks may have similar configurations.
- Devices 101 - 103 can be computers and device 104 can be a storage device (such as a RAID array) serving the computers.
- Fibre Channel Host Bus Adapters (HBAs) 105 - 108 can be used by the various devices to connect to the network.
- HBAs are networking devices which are able to perform some lower level network communications processing without burdening a main processor of the device the host bus adapter is a part of. Therefore, host bus adapters are often used with high throughput networks, such as Fibre Channel networks where the potential burden on the main processor if it had to handle the lower level network communications processing would be great.
- devices 101 - 104 In order to operate together in a fabric network, devices 101 - 104 must be aware of at least the other storage device in the network.
- the devices may obtain Fibre Channel addresses and find the Fibre Channel addresses of other devices through the fabric (i.e., by communicating with various switches and the like within Fibre Channel network 100 ).
- Devices may also need to obtain and/or share other, higher level information about each other. For example the devices may need to share the type of each device, (e.g., whether it is a server or a storage device), the number, types and/or names of various elements within a device (e.g. disks), and other information that may depend on a particular application of the Fibre Channel network.
- each of devices 101 - 104 may register with a name server 109 and send it various data that describes itself.
- the name server may keep track of that data.
- each device may receive from the name server the various data and attributes describing other devices that are connected to the network.
- the various devices may send and receive messages which relate to changes of the network. For example, if a device deactivates, or otherwise drops out of the network, or if a new device enters the network, the fabric may send out messages alerting the connected devices of the status change. These messages are referred to as registered state change notification or RSCN messages, and are provided according to a predefined RSCN protocol.
- RSCN messages registered state change notification
- the name server 109 may be provided as a discrete server, or it can be implemented by one or more switches of the Fibre Channel network 100 .
- FIG. 2 is a diagram of an Ethernet network.
- devices 201 - 204 (which may be similar to devices 101 - 104 of FIG. 1 ) can be connected to each other through the Ethernet network 200 .
- Ethernet refers to a low level networking infrastructure, and may support other higher level networking protocols, such as, most notably, IP and TCP/IP.
- Ethernet network 200 can also serve as an IP and/or TCP/IP network.
- Ethernet network 200 can be a modern enhanced type of an Ethernet network.
- Ethernet network 200 can be an Ethernet network enhanced for higher throughput, such as a 10 Gigabit Ethernet network.
- network 200 can be an Ethernet network enhanced for higher reliability and higher throughput, such as various existing and proposed networks supporting lossless Ethernet enhancements.
- Ethernet network 200 instead of the Fibre Channel network 100 for the storage area network application.
- the costs associated with that network will decrease, because of the commonality of components and the ability to share the same network infrastructure among different applications.
- Internet access, Storage access, and telephony for an enterprise can all be performed over a single Ethernet network 200 .
- FCoEAs Fibre Channel over Ethernet Adapters
- FC HBA Fibre Channel Adapter
- FCoEAs Fibre Channel over Ethernet Adapters
- FC HBA Fibre Channel Adapter
- FCoEAs may be used to connect devices in an Ethernet based storage area network (SAN) or any other application which has been traditionally based on Fibre Channel networking but is being modified for Ethernet.
- FCoEAs may be configured to operate with various types of advanced Ethernet networks, such as, for example, CEE (Converged Enhanced Ethernet) lossless networks.
- FIG. 3A is a diagram of an FCoEA 300 according to embodiments of the invention.
- FCoEA 300 may be one of FCoEAs 205 - 208 .
- FCoEA 300 may include HBA module 301 and FCoE (Ethernet encapsulation of Fibre Channel) module 302 .
- the HBA module can be the same as a respective module of an existing Fibre Channel HBA (such as, e.g., one of HBAs 105 - 108 of FIG. 1 ). However, the HBA module may exclude: the Fibre channel MAC layer functionality of existing Fibre Channel HBAs, as FCoEA 300 may utilize the Ethernet MAC layer instead and may include the corresponding functionality instead of the Fibre Channel MAC layer functionality.
- the HBA module may have a similar functionality to that of stand alone HBA, such as any one of HBAs 105 - 108 of FIG. 1 .
- the HBA module may be configured to process incoming and outgoing network communications between a server and a Fibre Channel network.
- FCoE module 302 also referred to as Ethernet encapsulation of Fibre Channel module
- FCoE module 302 can be used to provide a virtual Fibre Channel network to the HBA module while utilizing the Ethernet based network 200 . Consequently the HBA module can operate as if it were actually connected to a Fibre Channel network.
- the goal of this configuration is to utilize existing Fibre Channel based HBA technology in the Ethernet based FCoEAs.
- existing HBA technology by ensuring that significant part of the network processing is performed by existing HBA technology, the development costs of an FCoEA can be reduced.
- the FCoE module can perform the above discussed functionalities by utilizing elements 303 , 304 and 305 . These are discussed in more detail below.
- FIG. 4 is a diagram of an exemplary host computer or computing device 410 (host) that is equipped with an FCoEA 300 .
- the FCoEA 300 may include an integrated circuit (IC) 400 which may include an embedded processor such as the ARMTM processor 401 and additional logic 402 .
- the FCoEA may also include memory 403 which may include instructions executable at the ARM processor, Fibre Channel connection context, statistics, and other types of information. Some of the additional logic and some of the instructions executable at the ARM processor may be part of the HBA module while other portions of the additional logic and other instructions executable at the ARM processor may be part of the FCoE module.
- the host 410 may include the FCoEA 300 as well as a CPU ( 411 ) and a memory ( 412 ).
- the CPU may execute instructions stored in the memory.
- the CPU can execute, for example, an operating system (OS) 414 stored in the memory as well as other software 415 stored therein.
- OS operating system
- the FCoE module may need to:
- step ( 1 ) can be performed by FCoE encapsulation element 303 of the FCoE module 302
- step ( 2 ) can be performed by fabric services emulation element 304 and step ( 3 ) by address translation element 305 .
- These elements need not be mutually exclusive and can comprise common software and/or hardware.
- step 2 can be performed anywhere else within the host device including by software stored in the host's main memory and executed at the host's CPU. The examples discussed herein that show this step as being executed in the FCoE module are merely one possible implementation.
- repackaging data in a different format may be done by “wrapping” Fibre Channel frames into Ethernet frames or, in other words, tunneling or encapsulating Fibre Channel frames over Ethernet.
- part 2 may prove problematic because it requires a Fibre Channel specific name server (such as server 109 of FIG. 1 ) as well as a Fibre Channel fabric and such elements are not present in Ethernet networks. Designing an Ethernet specific emulator of a Fibre Channel fabric may prove to be a difficult and costly endeavor.
- embodiments of the present invention utilize two types of servers that already exist for Ethernet networks in order to emulate a Fibre Channel name server. These are a Dynamic Host Configuration Protocol (DHCP) server ( 210 of FIG. 2 ) and an Internet Storage Name Service (iSNS) server ( 211 of FIG. 2 ).
- DHCP Dynamic Host Configuration Protocol
- iSNS Internet Storage Name Service
- An iSNS server is an IP (Internet Protocol) network based server which is intended to provide services similar to those of a name server and other Fabric Services in a Fibre Channel network (it should be noted that most Ethernet networks transport IP frames and are also called IP networks).
- IP Internet Protocol
- a DHCP server is a server used for assigning IP addresses to devices in an IP network (such as Ethernet network 200 ).
- a DHCP server may be used to provide an IP address of a name server on the network (such as the above discussed iSNS server). It may also be used to assign IP addresses to various devices.
- FIG. 5 is a flowchart of a method of simulating the naming and messaging services of a Fibre Channel network according to embodiments of the present invention.
- the steps of FIG. 5 can be executed by software or hardware within the FCoEA, as well as by software or hardware at the computer or device which houses the FCoEA.
- the FCoE (Fibre Channel over Ethernet) enabled end device accesses the DHCP server 210 in order to find the address of the iSNS server.
- the FCoE enabled end device translates communications between the HBA module and the iSNS server.
- the FCoE enabled end device emulates a Fibre Channel name server and other Fabric Services. Therefore, it must translate communications in such a manner so that it appears to the HBA that the HBA is communicating with a Fibre Channel name server or other Fabric Service. Since, as noted above, there may not be a one to one relationship between commands and data associated with the iSNS server and those associated with a Fibre Channel name server, step 502 may be performed by a state machine.
- the FCoE enabled end device may need to translate between Ethernet addresses and Fibre Channel addresses.
- the iSNS server may provide the addresses of various elements on the network (such as devices 201 - 204 ) in an Ethernet, IP, or Fibre Channel format.
- the FCoE enabled end device may need one or more Fibre Channel addresses which can be used by the HBA module.
- the FCoE enabled end device may generate Fibre Channel addresses using a seed value provided by the iSNS server and associate them with real Ethernet addresses. Accordingly, in step 504 , the FCoE enabled end device keeps track of associations of real Ethernet addresses and Fibre Channel addresses.
- the iSNS server may also store Fibre Channel addresses of various devices. While the iSNS server is not traditionally intended to provide Fibre Channel addresses, it allows for storage of arbitrary attributes that may be defined by the client. These may be the Fibre Channel addresses.
- the FCoE enabled end device translates between Fibre Channel and Ethernet addresses in ordinary (i.e., not name server related) communications.
- the HBA module may send and/or receive data to and from other devices on the network based on Fibre Channel addresses.
- an Ethernet NIC module 306 may be connected with the FCoE module in order to perform standard lower level Ethernet processing. If an advanced type of Ethernet network is being used (such as, for example, the above noted CEE) the Ethernet NIC may be modified to operate over that network. For example, for a network that features lossless transmission, the Ethernet NIC may include a lossless Ethernet MAC processing element 307 , as shown.
- the HBA module may be connected to the host 410 .
- Existing Fibre Channel Host drivers 308 may communicate with the HBA module in order to facilitate fibre channel communications for application software running at the HBA module.
- the host drivers can be executed at the host's CPU.
- FCoEA can be executed by the host CPU and not by the FCoEA itself.
- the CPU can communicate with the FCoEA in order to execute certain operations associated with emulating a Fibre Channel network and send the results back to the FCoEA.
- the CPU may perform these FCoEA related operations when executing operating system 414 or other software 415 (e.g., a driver).
- the CPU can execute the FCoEA related operations as part of executing hypervisor software (not shown).
- FIG. 3B shows another example of an FCoEA that provides for host side execution of the FCoE functionality.
- FIG. 3B is similar to FIG. 3A , but for the fact that an FCoE functionality element 309 of the host 410 performs some of the functions performed by the FCoE module 302 of FIG. 3A . More specifically, the FCoE functionality 309 of the host performs fabric services emulation and address translation, while the FCoE module still performs FCoE encapsulation. Therefore, the FCoE functionality of the server may include fabric services emulation and address translation elements 304 and 305 .
- the FCoE functionality element can be software running at the host's processor 411 .
- the FCoE functionality may communicate with the FCoEA through Fibre Channel drivers 311 .
- the Fibre Channel drivers may not be the existing drivers 308 , as they may require additional functionality in order to facilitate communications between the FCoE functionality 309 and the FCoEA 300 .
- the FCoEA functionality may itself be considered as part of a driver for the FCoEA 300 .
- FIG. 3C shows another exemplary FCoEA in which additional functionality is moved to the host.
- HBA Module 301 of the FCoEA is replaced by HBA functionality 310 .
- the FCoE module is entirely replaced by FCoE functionality 309 .
- the FCoE functionality 309 and the HBA functionality 310 may be implemented through software at the host.
- the FCoEA retains the Ethernet NIC which includes the lossless Ethernet MAC. Thus, in this embodiment the FCoEA only performs lower layer Ethernet processing, while the host performs all other processing.
- FCoE and HBA modules refers to an FCoE functionality and an FCoE module as well as an HBA functionality and an HBA module in order to note the placement of these elements in the host (FCoE and HBA functionality) or in the FCoEA (FCoEA and HBA modules).
- FCoE and HBA functionalities at the host may also be referred to as FCoE or HBA modules, respectively.
- FCoE and HBA modules are also be referred to as FCoE or HBA modules, respectively.
- FIG. 6 is a diagram showing the operation of an exemplary FCoE enabled end device in more detail. More specifically, FIG. 6 shows a sequence or ladder diagram of a FCoE enabled end device during, the process of initialization and registration for a name service.
- the FCoE enabled end device of FIG. 6 may include 4 elements: a service mapper 601 , an iSNS client 602 , a DHCP client 603 and an IP Stack and/or CEE (Converged Enhanced Ethernet) interface 604 .
- the diagram shows how these elements operate in sequence and over time.
- the ladder or sequence diagram illustrates elements that are located between the Ethernet Network and the end device high level elements such as the operating system.
- the network can be an Ethernet network (such as network 200 of FIG. 2 ). More specifically, the network can be a CEE network. However, the network can encompass other types of IP networks. Time progresses vertically from top to bottom.
- the Service Mapper 601 is used to translate communications and data from the Fibre Channel format used by the HBA module to the format used by the iSNS module and back.
- Commands in angle brackets (such as, for example “ ⁇ DHCP Discover>”) signify commands formatted for the Ethernet network 200
- commands without brackets such as, for example, FLOGI
- the iSNS client is used to communicate with the iSNS server.
- the DHCP client is used to communicate with the DHCP server.
- the IP stack 604 is used to format outgoing communications for transmission over the network 200 , and to process communications incoming from the network (i.e., remove the network specific formatting from incoming communications). Accordingly, one of the functions of the IP stack/CEE interface can be to split outgoing communications into Ethernet frames and compose incoming communications from incoming Ethernet frames.
- Elements 601 - 604 can be implemented in hardware, software or both. Any or all of the elements 601 - 604 can also be located on the end device. Combined, these elements are used to emulate an Ethernet network for the HBA module as discussed above.
- the HBA module Initially (or upon startup or network connection) the HBA module is not “connected” to the virtual Fibre Channel network. Accordingly, during an initialization period, the FCoE enabled end device performs Ethernet network related initialization, while the HBA module is led to believe that it is not yet placed in an operating Fibre Channel network. Usually, the FCoE enabled end device needs to perform initialization with respect to the Ethernet network before it is able to simulate the initialization of the Fibre Channel network.
- the DHCP client 603 of the FCoE enabled end device communicates with the DHCP server through the IP stack 604 in order to: (i) discover the IP address of the current device (i.e., the device the DHCP client is part of) and (ii) discover the IP address of the iSNS server. This may be performed according to known DHCP protocols.
- the iSNS client registers the current device with the iSNS server by sending a ⁇ DevAttrReg> command to the iSNS server.
- the iSNS client also sends a set of attributes 607 for registration with the iSNS server.
- the iSNS server returns a ⁇ DevAttrRegRsp> message 608 to acknowledge that registration has been performed.
- the iSNS client sends a Link Init command 609 to the HBA module.
- the link init command “wakes up” the HBA module. Or, in other words, it indicates to the HBA module that it is connected to a Fibre Channel network.
- the HBA module is not actually connected to a Fibre Channel network, but at this point the FCoE enabled end device is ready to simulate a virtual Fibre Channel network of the fabric topology for the HBA module.
- the HBA module When initialized, the HBA module attempts to login into a Fibre Channel F_Port Controller by sending an FLOGI command 610 .
- the Service Mapper translates that initial FLOGI command into a ⁇ RqstDomId> command.
- the ⁇ RqstDomId> command is an iSNS command which requests an iSNS specific identification (Domain ID) for the current device. This identification may be used as part of one or more Fibre Channel addresses used to identify the current device for all other devices connected to the iSNS server.
- the iSNS client forwards the ⁇ RqstDomId> command to the iSNS server along with attributes 612 .
- the iSNS server When the iSNS server receives command 611 , it assigns a domain ID to the current device and responds by sending a ⁇ RqstDomIdRsp> message 613 back.
- Message 613 includes the assigned domain ID for the current device (as noted in the Figure, the domain ID is attached as tag 130 to the message).
- the current device is registered with the iSNS server and is assigned a domain ID.
- the domain ID is in an iSNS format and is not a valid Fibre Channel identification. Therefore, the domain ID cannot be directly used to simulate a Fibre Channel network for the HBA module. Therefore, once it receives the ⁇ RqstDomIdRsp> message including the domain ID, the Service Mapper 601 creates a Fibre Channel specific ID based on the domain ID (step 614 ).
- the Fibre Channel specific ID is referred to as a N_Port_ID. This, ID will be used to identify the HBA module.
- the Service Mapper then issues another ⁇ DevAttrReg> command (command 615 ) in order to register the Fibre Channel specific ID with the iSNS server.
- command 615 This is done because there may be other devices in the Ethernet network which also utilize the present invention. In other words there may be other devices which also include an internal HBA module and simulate a Fibre Channel network for that module. These other devices cannot use the Ethernet specific domain ID to represent the current device to their HBA modules. Therefore, the Fibre Channel specific N_Port_ID is registered with the iSNS server so that other devices can access that ID and provide it when necessary to their internal HBA modules.
- the ⁇ DevAttrReg> command 615 may be accompanied by attributes 616 .
- the iSNS server may register the N_Port_ID of the present device and return as an acknowledgement ⁇ DevAttrRegRsp> command 617 .
- the service mapper sends an FLOGI Reply message 618 to the HBA module.
- Message 618 includes the N_Port_ID.
- initialization is complete.
- the HBA module is under the impression that it has logged into a Fibre Channel Fabric network and received N_Port_ID as identification. In reality, there is no Fibre Channel network and the present device has been registered in the iSNS server in an Ethernet network and is assigned a domain ID as identification.
- the FCoEA is registered with the name service of the iSNS server.
- the FCoEA is assigned an identification, can be discovered and accessed by other devices on the network and can discover other devices.
- the FCoEA usually must also register for a messaging or state change notification service.
- State change notification services allow various devices to receive alerts of changes of the states of one or more devices on a network. Thus, devices can be kept current without having to continuously request updates from the server.
- Changes of state may include a disconnect of a device from a network, a connection of a new device or a disconnection and/or connection of a resource in a device (e.g., a connection of a new hard drive in a storage device).
- State change notifications are implemented through a registered state change notification (RSCN) service in Fibre Channel and a state change notification service (SCN) in the iSNS protocol.
- RSCN registered state change notification
- SCN state change notification service
- the FCoE of the present invention may utilize the SCN service in order to emulate the RSCN service of the Fibre Channel protocol.
- FIG. 7 shows registration with a state change notification service according to embodiments of the present invention.
- the HBA module attempts to register with the Fibre Channel RSCN service by sending a state change registration (SCR) command.
- the service mapper translates that command into an iSNS specific state change notification registration command (i.e., ⁇ SCNReg> command 701 ).
- the iSNS client adds attributes 704 to the command.
- the ⁇ SCNReg> command is sent with the attributes to the iSNS server.
- the iSNS server responds with a ⁇ SCNRegRsp> command 702 . That command is changed by the Service Mapper to a Fibre Channel specific SCR Reply command 703 .
- the SCR reply command is sent to the HBA module.
- the Fibre Channel protocol supports configurations in which a single port (e.g., a single HBA) can be used to provide connectivity for multiple entities while each of these multiple entities is treated as a different device by the Fibre Channel fabric.
- a device which features an HBA may run multiple Operating System instances, and the HBA may allow each operating system to communicate over the Fibre Channel network through the single HBA as if it were a separate device.
- the multiple Operating Systems may feature multiple respective N_Port_ID numbers. This feature is referred to as N_Port ID Virtualization or NPIV.
- Embodiments of the present invention provide for emulating the NPIV (N_Port ID virtualization) feature over an Ethernet network.
- An example of this process is shown in FIG. 7 .
- the HBA invokes the NPIV feature by sending an FDISC command 704 .
- the FDISC command is similar to the FLOGI command 610 of FIG. 6 , but it request registration of a new Fabric Port ID.
- a first OS may use the FLOGI command to obtain a first N_Port_ID
- later OSes may use the FDISC command to obtain their respective N_Port_IDs.
- the service mapper constructs a second N_Port_ID based on the domain ID provided by the iSNS server during command 613 (also referred to as tag 130 ).
- the second N_Port_ID should be different from the initial N_Port_ID constructed in step 614 of FIG. 6 .
- the additional N_Port_ID is constructed, it is registered with the iSNS server by ⁇ DevAttrReg> command 706 issued by the Service Mapper.
- Command 706 includes attributes 707 , which indicate that a new port with the new N_Port_ID is being registered. However, a new domain ID is not requested from the iSNS server. Instead all ports are registered under a single iSNS domain ID.
- the iSNS server returns a ⁇ DevAttrRegRsp> message 708 . Once that message is received by the service mapper, it sends an FDISC Reply message to the HBA module.
- the FDISC Reply message can include the second N_Port_ID that was constructed in step 705 .
- FIG. 8 is a diagram showing the process in which the FCoEA discovers other devices on the network.
- FIG. 8 also shows an additional FCoE element—the FCoE data transfer element.
- the FCoE data transfer element is part of the FCoE module and is used to send and receive data to and from other devices on the network. In other words, the data transfer element is not used to communicate with various servers (such as the iSNS and DHCP servers) but to directly communicate with other devices on the network.
- the HBA module attempts to login (by sending a PLOGI).
- the Service Mapper 601 acknowledges the login by sending a PLOGI Reply message without actually performing a login (as such is not necessary for an iSNS server).
- the HBA module may send out a GA_NXT Query 802 in order to discover all other devices on the network.
- a GA_NXT Query causes the name server to sequentially provide information about all devices currently present in the network. The information is returned in an ascending order starting from the N_Port_ID which is next largest from the N_Port_ID included in the command.
- the GA_NXT Query command does not have an equivalent in an iSNS server. Therefore, the Service Mapper must perform several commands in order to execute it.
- the Service Mapper first sends out a query 803 , which requests from the iSNS server a list of all active N_Port_IDs.
- the Service mapper determines the next largest N_Port_ID.
- the Service Mapper requests from the iSNS server additional information for the next N_Port_ID.
- the additional information may include all fields that are usually provided with the response to a GA_NXT Query, as well as the Ethernet address of the device whose N_Port_ID is being queried. This data is received with a response from the iSNS server 806 .
- the combination of the N_Port_ID and Ethernet addresses of the queried device is stored by the FCoE data transfer element 800 .
- This is necessary, because when HBA module attempts to communicate with the queried device, it will address the communications to the N_Port_ID of the queried device.
- the N_Port_ID is a Fibre Channel specific address. This address will need to be converted to an Ethernet specific one in order for the communications to be sent over the Ethernet network. Therefore, the FCoE data transfer module stores each N_Port_ID and its respective Ethernet address that are received from various queries to the iSNS server. The FCoE data transfer module may then use this stored information to translate the destination N_Port_ID communications sent by the HBA module to a respective Ethernet address.
- the service mapper translates the information received from the iSNS server into a format associated with a Fibre Channel GA_NXT Accept message.
- the Service Mapper then sends that data to the HBA module in a GA_NXT Accept message.
- the HBA module repeats step 802 causing the service mapper to repeat steps 803 - 809 .
- the HBA module repeats step 802 until all N_Port_IDs are discovered. Thus, all N_Port_IDs can be scanned and information about them sent to the HBA module.
- the HBA module does not receive the Ethernet addresses of the Port IDs, since it is not aware of the existence of the Ethernet network. These addresses are instead received and used by the FCoE data transfer module 800 , as discussed above.
- the HBA module logs out, said log out being processed locally by the service mapper.
- FIG. 9 shows the operation of the FCoE module during a GID_FF Query.
- a GID_FF Query is a query that requests the N_Port_IDs of all devices that have particular features. For example, that query can be used to obtain all targets. This process is similar to the one discussed above with respect to the GA_NXT Query.
- the HBA module performs a login that is handled locally by the Service Mapper.
- the HBA module then issues a GID_FF Query (step 902 ).
- the service mapper sends a query to the iSNS server requesting information on all devices registered with the ISNS server (step 903 ).
- the service mapper then filters the received entries based on the parameters of the GID_FF Query (step 904 ).
- the FCoE data transfer element stores Port ID and Ethernet address mappings of the filtered ports (step 905 ).
- the service mapper reformats the data associated with the filtered ports in a Fibre Channel format (step 906 ) and sends that data to the HBA module (step 907 ). Having received a response to its command, the HBA module logs out and the logout is processed locally by the service mapper (step 908 ).
- FIG. 10 is a diagram showing the behavior of the FCoE module during receipt of a state change notification message.
- state change notification messages may be used by a server (such as a Fibre Channel name server or an iSNS server) to inform the device of changes in the network, such as a drop out of one of the devices from the network, an addition of a new device, etc.
- the iSNS server sends out a state change notification ( ⁇ SCN>) message 1001 .
- Message 1001 may, for example, inform that a certain device has dropped out of the network.
- the ⁇ SCN> message is in an iSNS format and therefore does not include the Fibre Channel N_Port_ID of the dropped out device. Instead it only includes an iSNS specific address (i.e., the World Wide Port Name, tag 64 ). Therefore, at step 1002 , the service mapper requests and receives the N_Port_ID of the affected device from the iSNS server.
- the service mapper forms an RSCN message (i.e., a Fibre Channel formatted state change notification message) utilizing data received from the ⁇ SCN> message 1001 and the N_Port_ID received in step 1002 .
- the service mapper then sends the thus formed RSCN message 1004 to the HBA module.
- the HBA module then provides an RSCN reply.
- the service module reformats that reply to an iSNS formatted response message ( ⁇ SCNRsp> message 1006 ).
- the ⁇ SCNRsp> message is then sent back to the iSNS server.
- the data transfer element 800 may store pairs of Ethernet addresses and N_Port_IDs of other devices in the network in a table, whenever this data is obtained from the iSNS server. See, for example, steps 807 of FIGS. 8 and 905 of FIG. 9 .
- the data transfer element receives a Fibre Channel packet destined to a particular Fibre Channel N_Port_ID, it can consult the afore-mentioned table in order to obtain an Ethernet address associated with that N_Port_ID.
- the data transfer module may then place the Fibre Channel packet into one or more Ethernet frames and address the Ethernet frames to the Ethernet address obtained from the table.
- N_Port_IDs to which the HBA module addresses communications should be stored in the table (along with their respective Ethernet addresses). This should be the case, because in order for the HBA module to be aware of an N_Port_ID, it must obtain it through the FCoE module from the iSNS server. See for example, the processes discussed in FIGS. 8 and 9 .
- the FCoE data transfer element should store the N_Port_ID and its respective Ethernet address in its table (see, e.g., steps 807 of FIGS. 8 and 905 of FIG. 9 ).
- an HBA module may attempt to access an N_Port_ID that is not in the FCoE data transfer element's table. This may be the case if the HBA module becomes aware of the N_Port_ID in another manner, or simply decides to “blindly” send a message to a specific N_Port_ID. Embodiments of the present invention may account for this possibility by providing the method shown in FIG. 11 .
- the HBA module may attempt to log in to another device by sending a log in command (PLOGI command 1101 ).
- the PLOGI command 1101 is addressed to another device and not to the name server of the virtual Fibre Channel network.
- the FCoE data transfer element determines whether a Fibre Channel destination address (i.e., an N_Port_ID) of the PLOGI command is in its table. As noted, the process of FIG. 11 is executed when the N_Port_ID is not in the FCoE data transfer element's table.
- the data transfer element Upon determination that the N_Port_ID address is not in its table, the data transfer element sends a query ( ⁇ DevAttrQry> 1103 ) to the iSNS server requesting data on all devices registered with the iSNS server. The iSNS server provides the data for all devices in its response 1104 .
- the FCoE data transfer element searches through the received data to locate a record of a device with an N_Port_ID identical to the one provided in the PLOGI command 1101 . Once it discovers that device it saves the N_Port_ID number and its associated Ethernet address in its table.
- the remote recipient of command 1101 may send reply 1105 .
- the reply is reformatted and forwarded to the HBA module.
- the current HBA module is logged into a remote HBA module and may proceed communicating with it. Since the FCoE data transfer module now has the Ethernet address of the remote HBA module, it can easily process and route these communications.
- embodiments of the present invention may be used to connect devices that are part of multiple networks.
- a person of skill in the art would recognize that the above described embodiments of the present invention can be used with multiple connected Ethernet networks.
- embodiments of the present invention can be used with heterogeneous network environments in which multiple networks of different types are connected.
- FIG. 12A shows an example of one such environment. More specifically, FIG. 12A shows an FCoE enabled device 1200 that includes an FCoEA that is connected to Ethernet network 1202 .
- the Ethernet network is connected to a Fibre Channel Gateway 1203 .
- the Fibre Channel gateway is a gateway used to interconnect an Ethernet and a Fibre Channel network.
- the Fibre Channel gateway is connected to a Fibre Channel network 1204 which is in turn connected to another end device 1210 which utilizes a standard Fibre Channel HBA 1211 .
- the Fibre Channel gateway may connect the two networks using techniques similar to those discussed above. Thus, the Fibre Channel gateway may encapsulate and de-encapsulate communications passing between the two networks.
- the Fibre Channel gateway may forward addressing and name server communications between the two networks in order to allow FCoEA 1201 and HBA 1211 to discover each other's addresses and other information.
- the Fibre Channel gateway may achieve this, for example, by logging into the fabric and name server of network 1204 in order to discover information about device 1210 and into the iSNS server of Ethernet network 1202 in order to discover information about device 1200 .
- the Fibre Channel gateway can then provide the information of device 1210 to the iSNS server of network 1202 and the information of device 1200 to the fabric and name server of network 1204 .
- the gateway may provide its own address instead of that of the other device.
- the two devices communicate with each other, they can send communications to the gateway which can forward them to the other device in the other network.
- the gateway can also operate in cases where there are multiple devices in one or both networks (in that case it may need to use multiple addresses).
- FIG. 12B illustrates another example of multiple heterogeneous networks.
- device 1200 may use FCoEA 1201 to connect to Ethernet network 1202 , which connects to a Fibre Channel gateway 1203 and an Ethernet network 1204 .
- Ethernet network 1204 may in turn connect to a second Fibre Channel gateway 1205 which may connect to a second Ethernet network 1206 .
- a second device 1214 including an FCoEA 1215 may be connected to the second Ethernet network.
- two devices can be connected through two Ethernet networks that include a Fibre Channel network between them. While only two devices are shown, multiple devices may be connected to each network.
- FCoE module is not limited to the elements discussed in FIGS. 6-11 , or to the methods discussed in these figures.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
Description
- This invention generally relates to network devices and more specifically to Fibre Channel over Ethernet controllers and support devices.
- Fibre Channel is a well known standard for network communications. It is generally used for applications where high data transmission rates and high reliability are necessary, such as storage networks. Fibre channel systems are usually based on one of three topologies—point to point, arbitrated loop and switched fabric. For each topology there exist standard initialization and messaging procedures which various devices connected to the network can use to announce their presence to other devices, determine what other devices are present in the network, and determine when a device enters or exits the network. In the point to point and arbitrated loop topologies, these procedures may be performed by the devices themselves. In the switched fabric topology, these procedures may be at least partially performed by the network fabric—i.e., various switches or servers that are considered to be part of the network itself and not devices communicating with the network.
- Ethernet is a network communication standard traditionally used for applications for which the data transmission rate and reliability requirements are not as high as they are for Fibre Channel applications. For example, Ethernet is often used as a base layer for TCP/IP networks, which are in turn used for Internet networking. However, recent developments have brought about Ethernet technology featuring data transmission rates and reliability similar to those of Fibre Channel. An example is the converged enhanced Ethernet (CEE) currently being developed at the IEEE standards body.
- Since Ethernet is very prevalent, there have been suggestions to move applications that traditionally rely on Fibre Channel (such as, for example, storage networking) to CEE or other types of Ethernet networks. This would save resources as it would remove the necessity of building and supporting two separate networks in an organization (i.e., a Fibre Channel network for storage and an Ethernet network for Internet access, computer to computer communications, etc).
- However, changing existing Fibre Channel applications to Ethernet may require that existing networking devices such as, for example, host bus adapters (HBAs) be completely redesigned to use Ethernet or use other suboptimal protocols such as Internet SCSI (iSCSI). Since existing Fibre Channel HBAs incorporate many years worth of innovation, it may not be cost efficient to completely redesign these devices.
- One suggested scheme of switching from Fibre Channel to Ethernet without completely redesigning existing HBAs is to use gateways. More specifically, Fibre Channel over Ethernet (FCoE) gateways can be used to connect a Fibre Channel component to an Ethernet network. An FCoE gateway may be a stand alone device which is connected to the Fibre Channel component through a Fibre Channel link. The gateway may also be connected to an Ethernet network and may thus combine an existing Fibre Channel based HBA with an Ethernet network. However, this approach is not considered optimal as the requirement of using additional standalone devices (i.e., FCoE gateways) would add significant costs and complexity to the resulting networks. Furthermore, this would not completely eliminate the necessity for Fibre Channel infrastructure, because a Fibre Channel connection between the gateway and the HBA would still be necessary.
- Therefore, there is a need for creating an end to end CEE (or other Ethernet) high speed network that utilizes the technology of existing Fibre Channel HBAs to a great extent.
- This is directed to providing Fibre Channel over Ethernet communication. For example a Fibre Channel over Ethernet (FCoE) enabled device (such as a computer) may include a Fibre Channel over Ethernet Adapter (FCoEA). The FCoEA may include an HBA module. The HBA module may be configured to communicate over the Fibre Channel protocol. The FCoE enabled device may process and encapsulate the HBA module's communication in order to send them over an Ethernet network instead. The FCoE enabled device may process communications directed to various Fibre Channel fabric services by utilizing existing Ethernet services, such as an iSNS server. Thus, the FCoE enabled device can emulate a Fibre Channel network for the HBA module using the Ethernet network and one or more existing Ethernet services/servers.
-
FIG. 1 is a diagram of an exemplary Fibre Channel Fabric network. -
FIG. 2 is a diagram of an exemplary Ethernet network according to embodiments of the invention. -
FIG. 3A is a diagram of an exemplary FCoEA (Fibre Channel over Ethernet Adapter) according to embodiments of the invention. -
FIG. 3B is a diagram of another exemplary FCoEA according to embodiments of the invention. -
FIG. 3C is a diagram of yet another exemplary FCoEA according to embodiments of the invention. -
FIG. 4 is a diagram of an exemplary FCoEA enabled device according to embodiments of the invention. -
FIG. 5 is a flowchart of an exemplary method of emulating a Fibre Channel network according to embodiments of the present invention. -
FIG. 6 is a diagram showing the operation of an exemplary FCoE (Ethernet encapsulation of a Fibre Channel frame) module during initialization according to embodiments of the invention. -
FIG. 7 is a diagram showing the operation of an exemplary FCoE module during State Change Registration and NPIV (N_Port ID Virtualization) initialization according to embodiments of the invention. -
FIG. 8 is a diagram showing the operation of an exemplary FCoE module during device discovery according to embodiments of the invention. -
FIG. 9 is a diagram showing the operation of an exemplary FCoE module during device discovery according to embodiments of the invention. -
FIG. 10 is a diagram showing the operation of an exemplary FCoE module during receipt of a state change notification message according to embodiments of the invention. -
FIG. 11 is a diagram showing the operation of an exemplary FCoE module during Port Login according to embodiments of the invention. -
FIGS. 12A and 12B are diagrams of showing embodiments of the present invention being utilized in multiple heterogeneous networks. - In the following description of preferred embodiments, reference is made to the accompanying drawings which form a part hereof, and in which it is shown by way of illustration specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the preferred embodiments of the present invention.
- Although embodiments of the present invention are described herein in terms of HBA adapters for storage area networks, it should be understood that the present invention is not limited to such circuits, but is generally applicable to any devices that connect through Ethernet (or other similar types of networks), while utilizing circuits that have been originally designed for Fibre Channel (or other similar types of networks).
-
FIG. 1 is a diagram of an exemplary Fibre Channel network of the fabric topology.Several devices network 100. The exemplary network ofFIG. 1 may be a storage area network but other Fibre Channel fabric networks may have similar configurations. Devices 101-103 can be computers anddevice 104 can be a storage device (such as a RAID array) serving the computers. Fibre Channel Host Bus Adapters (HBAs) 105-108 can be used by the various devices to connect to the network. HBAs are networking devices which are able to perform some lower level network communications processing without burdening a main processor of the device the host bus adapter is a part of. Therefore, host bus adapters are often used with high throughput networks, such as Fibre Channel networks where the potential burden on the main processor if it had to handle the lower level network communications processing would be great. - In order to operate together in a fabric network, devices 101-104 must be aware of at least the other storage device in the network. The devices may obtain Fibre Channel addresses and find the Fibre Channel addresses of other devices through the fabric (i.e., by communicating with various switches and the like within Fibre Channel network 100). Devices may also need to obtain and/or share other, higher level information about each other. For example the devices may need to share the type of each device, (e.g., whether it is a server or a storage device), the number, types and/or names of various elements within a device (e.g. disks), and other information that may depend on a particular application of the Fibre Channel network. For that purpose, each of devices 101-104 may register with a
name server 109 and send it various data that describes itself. The name server may keep track of that data. Thus, each device may receive from the name server the various data and attributes describing other devices that are connected to the network. - Furthermore, the various devices may send and receive messages which relate to changes of the network. For example, if a device deactivates, or otherwise drops out of the network, or if a new device enters the network, the fabric may send out messages alerting the connected devices of the status change. These messages are referred to as registered state change notification or RSCN messages, and are provided according to a predefined RSCN protocol.
- The
name server 109 may be provided as a discrete server, or it can be implemented by one or more switches of theFibre Channel network 100. -
FIG. 2 is a diagram of an Ethernet network. There, devices 201-204 (which may be similar to devices 101-104 ofFIG. 1 ) can be connected to each other through theEthernet network 200. Ethernet refers to a low level networking infrastructure, and may support other higher level networking protocols, such as, most notably, IP and TCP/IP. Thus,Ethernet network 200 can also serve as an IP and/or TCP/IP network. Furthermore,Ethernet network 200 can be a modern enhanced type of an Ethernet network. For example,Ethernet network 200 can be an Ethernet network enhanced for higher throughput, such as a 10 Gigabit Ethernet network. Furthermore,network 200 can be an Ethernet network enhanced for higher reliability and higher throughput, such as various existing and proposed networks supporting lossless Ethernet enhancements. - As discussed above, it may be desirable to use
Ethernet network 200 instead of theFibre Channel network 100 for the storage area network application. Furthermore, it may be desirable to move other traditionally Fibre Channel based applications to the Ethernet network as well. When more and more applications are moved to a single network, the costs associated with that network will decrease, because of the commonality of components and the ability to share the same network infrastructure among different applications. Thus, for example, Internet access, Storage access, and telephony for an enterprise can all be performed over asingle Ethernet network 200. - Devices 201-204 can utilize FCoEAs (Fibre Channel over Ethernet Adapters) 205-208 to connect to
Ethernet 200. An FCoEA can provide a lossless Ethernet interface to a Fibre Channel (FC) HBA (Host Bus Adapter). In other words, it can perform the same high throughput networking communication processing functions required of a FC HBA for an Ethernet network (as contrasted from a FC HBA which is usually intended to operate through a Fibre Channel network). FCoEAs may be used to connect devices in an Ethernet based storage area network (SAN) or any other application which has been traditionally based on Fibre Channel networking but is being modified for Ethernet. FCoEAs may be configured to operate with various types of advanced Ethernet networks, such as, for example, CEE (Converged Enhanced Ethernet) lossless networks. -
FIG. 3A is a diagram of anFCoEA 300 according to embodiments of the invention.FCoEA 300 may be one of FCoEAs 205-208.FCoEA 300 may includeHBA module 301 and FCoE (Ethernet encapsulation of Fibre Channel)module 302. The HBA module can be the same as a respective module of an existing Fibre Channel HBA (such as, e.g., one of HBAs 105-108 ofFIG. 1 ). However, the HBA module may exclude: the Fibre channel MAC layer functionality of existing Fibre Channel HBAs, asFCoEA 300 may utilize the Ethernet MAC layer instead and may include the corresponding functionality instead of the Fibre Channel MAC layer functionality. - Thus, the HBA module may have a similar functionality to that of stand alone HBA, such as any one of HBAs 105-108 of
FIG. 1 . Specifically, the HBA module may be configured to process incoming and outgoing network communications between a server and a Fibre Channel network. However, in the present case, there is no Fibre Channel network connected to theHBA module 301. Instead, that module is ultimately connected to an Ethernet network. Therefore, FCoE module 302 (also referred to as Ethernet encapsulation of Fibre Channel module) can be used to provide a virtual Fibre Channel network to the HBA module while utilizing the Ethernet basednetwork 200. Consequently the HBA module can operate as if it were actually connected to a Fibre Channel network. The goal of this configuration is to utilize existing Fibre Channel based HBA technology in the Ethernet based FCoEAs. Thus, according to some embodiments, by ensuring that significant part of the network processing is performed by existing HBA technology, the development costs of an FCoEA can be reduced. - The FCoE module can perform the above discussed functionalities by utilizing
elements - The HBA and FCoE modules can be composed of hardware, software or a combination of both.
FIG. 4 is a diagram of an exemplary host computer or computing device 410 (host) that is equipped with anFCoEA 300. TheFCoEA 300 may include an integrated circuit (IC) 400 which may include an embedded processor such as theARM™ processor 401 andadditional logic 402. The FCoEA may also includememory 403 which may include instructions executable at the ARM processor, Fibre Channel connection context, statistics, and other types of information. Some of the additional logic and some of the instructions executable at the ARM processor may be part of the HBA module while other portions of the additional logic and other instructions executable at the ARM processor may be part of the FCoE module. - The
host 410 may include theFCoEA 300 as well as a CPU (411) and a memory (412). The CPU may execute instructions stored in the memory. Thus, the CPU can execute, for example, an operating system (OS) 414 stored in the memory as well asother software 415 stored therein. - In order to correctly virtualize or map the Fibre Channel network on the Ethernet network, the FCoE module may need to:
- (1) Encapsulate outgoing Fibre Channel packets within Ethernet frames for transport over the Ethernet network and extract Fibre Channel packets from incoming Ethernet frames.
- (2) Emulate the addressing, naming, messaging and other services of a Fibre Channel network of the fabric topology (e.g., by emulating the existence of a name server and supporting Register State Change Notification (RSCN) messaging, N_Port ID acquisition, inter fabric routing (IFR), virtual Fabrics, etc.)
- (3) Add Ethernet specific addresses of destination devices to the Ethernet frames that encapsulate the outgoing Fibre Channel packets.
- Referring to
FIG. 3A , step (1) can be performed byFCoE encapsulation element 303 of theFCoE module 302, step (2) can be performed by fabricservices emulation element 304 and step (3) byaddress translation element 305. These elements need not be mutually exclusive and can comprise common software and/or hardware. Alternatively, step 2 can be performed anywhere else within the host device including by software stored in the host's main memory and executed at the host's CPU. The examples discussed herein that show this step as being executed in the FCoE module are merely one possible implementation. - A person of skill in the art would recognize that repackaging data in a different format (i.e., executing
part 1 above) may be done by “wrapping” Fibre Channel frames into Ethernet frames or, in other words, tunneling or encapsulating Fibre Channel frames over Ethernet. However, part 2 may prove problematic because it requires a Fibre Channel specific name server (such asserver 109 ofFIG. 1 ) as well as a Fibre Channel fabric and such elements are not present in Ethernet networks. Designing an Ethernet specific emulator of a Fibre Channel fabric may prove to be a difficult and costly endeavor. - Therefore, embodiments of the present invention utilize two types of servers that already exist for Ethernet networks in order to emulate a Fibre Channel name server. These are a Dynamic Host Configuration Protocol (DHCP) server (210 of
FIG. 2 ) and an Internet Storage Name Service (iSNS) server (211 ofFIG. 2 ). - An iSNS server is an IP (Internet Protocol) network based server which is intended to provide services similar to those of a name server and other Fabric Services in a Fibre Channel network (it should be noted that most Ethernet networks transport IP frames and are also called IP networks). However, the various commands and data formats associated with an iSNS server are different than those for a Fibre Channel name server. Furthermore, there isn't always a one to one correspondence between the commands of an iSNS server and those of a Fibre Channel name server. A DHCP server is a server used for assigning IP addresses to devices in an IP network (such as Ethernet network 200). A DHCP server may be used to provide an IP address of a name server on the network (such as the above discussed iSNS server). It may also be used to assign IP addresses to various devices.
-
FIG. 5 is a flowchart of a method of simulating the naming and messaging services of a Fibre Channel network according to embodiments of the present invention. The steps ofFIG. 5 can be executed by software or hardware within the FCoEA, as well as by software or hardware at the computer or device which houses the FCoEA. Atstep 500, the FCoE (Fibre Channel over Ethernet) enabled end device (either the FCoEA or a software driver in the attached FCoEA device) accesses theDHCP server 210 in order to find the address of the iSNS server. Atstep 502, the FCoE enabled end device translates communications between the HBA module and the iSNS server. As noted above, the FCoE enabled end device emulates a Fibre Channel name server and other Fabric Services. Therefore, it must translate communications in such a manner so that it appears to the HBA that the HBA is communicating with a Fibre Channel name server or other Fabric Service. Since, as noted above, there may not be a one to one relationship between commands and data associated with the iSNS server and those associated with a Fibre Channel name server,step 502 may be performed by a state machine. - Furthermore, as part of
step 502, the FCoE enabled end device may need to translate between Ethernet addresses and Fibre Channel addresses. The iSNS server may provide the addresses of various elements on the network (such as devices 201-204) in an Ethernet, IP, or Fibre Channel format. The FCoE enabled end device may need one or more Fibre Channel addresses which can be used by the HBA module. Thus, the FCoE enabled end device may generate Fibre Channel addresses using a seed value provided by the iSNS server and associate them with real Ethernet addresses. Accordingly, instep 504, the FCoE enabled end device keeps track of associations of real Ethernet addresses and Fibre Channel addresses. This may be accomplished by storing pairs of associated Ethernet and Fibre Channel addresses and/or by using predefined formulae for obtaining a Fibre Channel address from an Ethernet address and an Ethernet address from a Fibre Channel address. Furthermore, the iSNS server may also store Fibre Channel addresses of various devices. While the iSNS server is not traditionally intended to provide Fibre Channel addresses, it allows for storage of arbitrary attributes that may be defined by the client. These may be the Fibre Channel addresses. - In
step 506, the FCoE enabled end device translates between Fibre Channel and Ethernet addresses in ordinary (i.e., not name server related) communications. Thus, the HBA module may send and/or receive data to and from other devices on the network based on Fibre Channel addresses. - Referring back to
FIG. 3A , anEthernet NIC module 306 may be connected with the FCoE module in order to perform standard lower level Ethernet processing. If an advanced type of Ethernet network is being used (such as, for example, the above noted CEE) the Ethernet NIC may be modified to operate over that network. For example, for a network that features lossless transmission, the Ethernet NIC may include a lossless EthernetMAC processing element 307, as shown. - The HBA module may be connected to the
host 410. Existing FibreChannel Host drivers 308 may communicate with the HBA module in order to facilitate fibre channel communications for application software running at the HBA module. The host drivers can be executed at the host's CPU. - Some functionality of the FCoEA, especially that of its FCoE module, can be executed by the host CPU and not by the FCoEA itself. For example, the CPU can communicate with the FCoEA in order to execute certain operations associated with emulating a Fibre Channel network and send the results back to the FCoEA. The CPU may perform these FCoEA related operations when executing
operating system 414 or other software 415 (e.g., a driver). Furthermore, the CPU can execute the FCoEA related operations as part of executing hypervisor software (not shown). - Accordingly,
FIG. 3B shows another example of an FCoEA that provides for host side execution of the FCoE functionality.FIG. 3B is similar toFIG. 3A , but for the fact that anFCoE functionality element 309 of thehost 410 performs some of the functions performed by theFCoE module 302 ofFIG. 3A . More specifically, theFCoE functionality 309 of the host performs fabric services emulation and address translation, while the FCoE module still performs FCoE encapsulation. Therefore, the FCoE functionality of the server may include fabric services emulation and addresstranslation elements processor 411. The FCoE functionality may communicate with the FCoEA throughFibre Channel drivers 311. In this case, the Fibre Channel drivers may not be the existingdrivers 308, as they may require additional functionality in order to facilitate communications between theFCoE functionality 309 and theFCoEA 300. In some embodiments, the FCoEA functionality may itself be considered as part of a driver for theFCoEA 300. -
FIG. 3C shows another exemplary FCoEA in which additional functionality is moved to the host.HBA Module 301 of the FCoEA is replaced byHBA functionality 310. Similarly, the FCoE module is entirely replaced byFCoE functionality 309. TheFCoE functionality 309 and theHBA functionality 310 may be implemented through software at the host. The FCoEA retains the Ethernet NIC which includes the lossless Ethernet MAC. Thus, in this embodiment the FCoEA only performs lower layer Ethernet processing, while the host performs all other processing. - The above discussion refers to an FCoE functionality and an FCoE module as well as an HBA functionality and an HBA module in order to note the placement of these elements in the host (FCoE and HBA functionality) or in the FCoEA (FCoEA and HBA modules). However, in general the FCoE and HBA functionalities at the host may also be referred to as FCoE or HBA modules, respectively. When the functionality of a certain element is split between the host and the FCoEA (as is the case in
FIG. 3B ), then both the host and FCoEA portions together may be referred to as a module. Thus, inFIG. 3B , host basedFCoE functionality 309 and adapter basedFCoE module 302 may together be referred to as an FCoE module. -
FIG. 6 is a diagram showing the operation of an exemplary FCoE enabled end device in more detail. More specifically,FIG. 6 shows a sequence or ladder diagram of a FCoE enabled end device during, the process of initialization and registration for a name service. The FCoE enabled end device ofFIG. 6 may include 4 elements: aservice mapper 601, aniSNS client 602, aDHCP client 603 and an IP Stack and/or CEE (Converged Enhanced Ethernet)interface 604. The diagram shows how these elements operate in sequence and over time. The ladder or sequence diagram illustrates elements that are located between the Ethernet Network and the end device high level elements such as the operating system. The network can be an Ethernet network (such asnetwork 200 ofFIG. 2 ). More specifically, the network can be a CEE network. However, the network can encompass other types of IP networks. Time progresses vertically from top to bottom. - The
Service Mapper 601 is used to translate communications and data from the Fibre Channel format used by the HBA module to the format used by the iSNS module and back. Commands in angle brackets (such as, for example “<DHCP Discover>”) signify commands formatted for theEthernet network 200, while commands without brackets (such as, for example, FLOGI) signify commands formatted for a Fibre Channel network. The iSNS client is used to communicate with the iSNS server. The DHCP client is used to communicate with the DHCP server. TheIP stack 604 is used to format outgoing communications for transmission over thenetwork 200, and to process communications incoming from the network (i.e., remove the network specific formatting from incoming communications). Accordingly, one of the functions of the IP stack/CEE interface can be to split outgoing communications into Ethernet frames and compose incoming communications from incoming Ethernet frames. - Elements 601-604 can be implemented in hardware, software or both. Any or all of the elements 601-604 can also be located on the end device. Combined, these elements are used to emulate an Ethernet network for the HBA module as discussed above.
- Initially (or upon startup or network connection) the HBA module is not “connected” to the virtual Fibre Channel network. Accordingly, during an initialization period, the FCoE enabled end device performs Ethernet network related initialization, while the HBA module is led to believe that it is not yet placed in an operating Fibre Channel network. Usually, the FCoE enabled end device needs to perform initialization with respect to the Ethernet network before it is able to simulate the initialization of the Fibre Channel network.
- During
period 605, theDHCP client 603 of the FCoE enabled end device communicates with the DHCP server through theIP stack 604 in order to: (i) discover the IP address of the current device (i.e., the device the DHCP client is part of) and (ii) discover the IP address of the iSNS server. This may be performed according to known DHCP protocols. - At
step 606, the iSNS client registers the current device with the iSNS server by sending a <DevAttrReg> command to the iSNS server. The iSNS client also sends a set ofattributes 607 for registration with the iSNS server. The iSNS server returns a <DevAttrRegRsp>message 608 to acknowledge that registration has been performed. Once that acknowledgement is received, the iSNS client sends aLink Init command 609 to the HBA module. The link init command “wakes up” the HBA module. Or, in other words, it indicates to the HBA module that it is connected to a Fibre Channel network. The HBA module is not actually connected to a Fibre Channel network, but at this point the FCoE enabled end device is ready to simulate a virtual Fibre Channel network of the fabric topology for the HBA module. - When initialized, the HBA module attempts to login into a Fibre Channel F_Port Controller by sending an
FLOGI command 610. The Service Mapper translates that initial FLOGI command into a <RqstDomId> command. The <RqstDomId> command is an iSNS command which requests an iSNS specific identification (Domain ID) for the current device. This identification may be used as part of one or more Fibre Channel addresses used to identify the current device for all other devices connected to the iSNS server. The iSNS client forwards the <RqstDomId> command to the iSNS server along withattributes 612. - When the iSNS server receives
command 611, it assigns a domain ID to the current device and responds by sending a <RqstDomIdRsp>message 613 back.Message 613 includes the assigned domain ID for the current device (as noted in the Figure, the domain ID is attached as tag 130 to the message). - At this point, the current device is registered with the iSNS server and is assigned a domain ID. Thus, the current device may be visible to other devices registered with the iSNS server. However, the domain ID is in an iSNS format and is not a valid Fibre Channel identification. Therefore, the domain ID cannot be directly used to simulate a Fibre Channel network for the HBA module. Therefore, once it receives the <RqstDomIdRsp> message including the domain ID, the
Service Mapper 601 creates a Fibre Channel specific ID based on the domain ID (step 614). The Fibre Channel specific ID is referred to as a N_Port_ID. This, ID will be used to identify the HBA module. - The Service Mapper then issues another <DevAttrReg> command (command 615) in order to register the Fibre Channel specific ID with the iSNS server. This is done because there may be other devices in the Ethernet network which also utilize the present invention. In other words there may be other devices which also include an internal HBA module and simulate a Fibre Channel network for that module. These other devices cannot use the Ethernet specific domain ID to represent the current device to their HBA modules. Therefore, the Fibre Channel specific N_Port_ID is registered with the iSNS server so that other devices can access that ID and provide it when necessary to their internal HBA modules. The <DevAttrReg>
command 615 may be accompanied byattributes 616. - Once it receives
command 615, the iSNS server may register the N_Port_ID of the present device and return as an acknowledgement <DevAttrRegRsp>command 617. Once it receivescommand 617, the service mapper sends anFLOGI Reply message 618 to the HBA module.Message 618 includes the N_Port_ID. Thus, initialization is complete. The HBA module is under the impression that it has logged into a Fibre Channel Fabric network and received N_Port_ID as identification. In reality, there is no Fibre Channel network and the present device has been registered in the iSNS server in an Ethernet network and is assigned a domain ID as identification. - Thus, after the process of
FIG. 6 , the FCoEA is registered with the name service of the iSNS server. Thus, the FCoEA is assigned an identification, can be discovered and accessed by other devices on the network and can discover other devices. However, in order for initialization to be complete, the FCoEA usually must also register for a messaging or state change notification service. State change notification services allow various devices to receive alerts of changes of the states of one or more devices on a network. Thus, devices can be kept current without having to continuously request updates from the server. Changes of state may include a disconnect of a device from a network, a connection of a new device or a disconnection and/or connection of a resource in a device (e.g., a connection of a new hard drive in a storage device). - State change notifications are implemented through a registered state change notification (RSCN) service in Fibre Channel and a state change notification service (SCN) in the iSNS protocol. Thus, the FCoE of the present invention may utilize the SCN service in order to emulate the RSCN service of the Fibre Channel protocol.
-
FIG. 7 shows registration with a state change notification service according to embodiments of the present invention. Initially the HBA module attempts to register with the Fibre Channel RSCN service by sending a state change registration (SCR) command. The service mapper translates that command into an iSNS specific state change notification registration command (i.e., <SCNReg> command 701). The iSNS client addsattributes 704 to the command. The <SCNReg> command is sent with the attributes to the iSNS server. The iSNS server responds with a <SCNRegRsp>command 702. That command is changed by the Service Mapper to a Fibre Channel specific SCRReply command 703. The SCR reply command is sent to the HBA module. Thus, registration for state change notification services is complete. - The Fibre Channel protocol supports configurations in which a single port (e.g., a single HBA) can be used to provide connectivity for multiple entities while each of these multiple entities is treated as a different device by the Fibre Channel fabric. Thus, for example, a device which features an HBA may run multiple Operating System instances, and the HBA may allow each operating system to communicate over the Fibre Channel network through the single HBA as if it were a separate device. Thus, the multiple Operating Systems may feature multiple respective N_Port_ID numbers. This feature is referred to as N_Port ID Virtualization or NPIV.
- Embodiments of the present invention provide for emulating the NPIV (N_Port ID virtualization) feature over an Ethernet network. An example of this process is shown in
FIG. 7 . The HBA invokes the NPIV feature by sending anFDISC command 704. The FDISC command is similar to theFLOGI command 610 ofFIG. 6 , but it request registration of a new Fabric Port ID. Thus, in the context of the previous example, a first OS may use the FLOGI command to obtain a first N_Port_ID, and later OSes may use the FDISC command to obtain their respective N_Port_IDs. - Once it receives the FDISC command, at
step 705, the service mapper constructs a second N_Port_ID based on the domain ID provided by the iSNS server during command 613 (also referred to as tag 130). The second N_Port_ID should be different from the initial N_Port_ID constructed instep 614 ofFIG. 6 . - Once the additional N_Port_ID is constructed, it is registered with the iSNS server by <DevAttrReg>
command 706 issued by the Service Mapper.Command 706 includesattributes 707, which indicate that a new port with the new N_Port_ID is being registered. However, a new domain ID is not requested from the iSNS server. Instead all ports are registered under a single iSNS domain ID. The iSNS server returns a <DevAttrRegRsp>message 708. Once that message is received by the service mapper, it sends an FDISC Reply message to the HBA module. The FDISC Reply message can include the second N_Port_ID that was constructed instep 705. -
FIG. 8 is a diagram showing the process in which the FCoEA discovers other devices on the network.FIG. 8 also shows an additional FCoE element—the FCoE data transfer element. The FCoE data transfer element is part of the FCoE module and is used to send and receive data to and from other devices on the network. In other words, the data transfer element is not used to communicate with various servers (such as the iSNS and DHCP servers) but to directly communicate with other devices on the network. - In Fibre Channel networks, logging in is required to communicate with the name server. However, the iSNS server of an Ethernet network does not require a login. Therefore, at
stage 801, the HBA module attempts to login (by sending a PLOGI). TheService Mapper 601 acknowledges the login by sending a PLOGI Reply message without actually performing a login (as such is not necessary for an iSNS server). - The HBA module may send out a
GA_NXT Query 802 in order to discover all other devices on the network. In a Fibre Channel network, a GA_NXT Query causes the name server to sequentially provide information about all devices currently present in the network. The information is returned in an ascending order starting from the N_Port_ID which is next largest from the N_Port_ID included in the command. The GA_NXT Query command does not have an equivalent in an iSNS server. Therefore, the Service Mapper must perform several commands in order to execute it. - The Service Mapper first sends out a
query 803, which requests from the iSNS server a list of all active N_Port_IDs. Atstep 804, the Service mapper determines the next largest N_Port_ID. Withcommand 805, the Service Mapper requests from the iSNS server additional information for the next N_Port_ID. The additional information may include all fields that are usually provided with the response to a GA_NXT Query, as well as the Ethernet address of the device whose N_Port_ID is being queried. This data is received with a response from theiSNS server 806. - At
step 807, the combination of the N_Port_ID and Ethernet addresses of the queried device is stored by the FCoEdata transfer element 800. This is necessary, because when HBA module attempts to communicate with the queried device, it will address the communications to the N_Port_ID of the queried device. The N_Port_ID, however is a Fibre Channel specific address. This address will need to be converted to an Ethernet specific one in order for the communications to be sent over the Ethernet network. Therefore, the FCoE data transfer module stores each N_Port_ID and its respective Ethernet address that are received from various queries to the iSNS server. The FCoE data transfer module may then use this stored information to translate the destination N_Port_ID communications sent by the HBA module to a respective Ethernet address. - At
step 808, the service mapper translates the information received from the iSNS server into a format associated with a Fibre Channel GA_NXT Accept message. The Service Mapper then sends that data to the HBA module in a GA_NXT Accept message. Atstep 810, the HBA module repeatsstep 802 causing the service mapper to repeat steps 803-809. The HBA module repeatsstep 802 until all N_Port_IDs are discovered. Thus, all N_Port_IDs can be scanned and information about them sent to the HBA module. It should be noted that the HBA module does not receive the Ethernet addresses of the Port IDs, since it is not aware of the existence of the Ethernet network. These addresses are instead received and used by the FCoEdata transfer module 800, as discussed above. Atstep 811, the HBA module logs out, said log out being processed locally by the service mapper. -
FIG. 9 shows the operation of the FCoE module during a GID_FF Query. A GID_FF Query is a query that requests the N_Port_IDs of all devices that have particular features. For example, that query can be used to obtain all targets. This process is similar to the one discussed above with respect to the GA_NXT Query. - At
step 901, the HBA module performs a login that is handled locally by the Service Mapper. The HBA module then issues a GID_FF Query (step 902). The service mapper sends a query to the iSNS server requesting information on all devices registered with the ISNS server (step 903). The service mapper then filters the received entries based on the parameters of the GID_FF Query (step 904). The FCoE data transfer element stores Port ID and Ethernet address mappings of the filtered ports (step 905). The service mapper reformats the data associated with the filtered ports in a Fibre Channel format (step 906) and sends that data to the HBA module (step 907). Having received a response to its command, the HBA module logs out and the logout is processed locally by the service mapper (step 908). -
FIG. 10 is a diagram showing the behavior of the FCoE module during receipt of a state change notification message. As noted above state change notification messages may be used by a server (such as a Fibre Channel name server or an iSNS server) to inform the device of changes in the network, such as a drop out of one of the devices from the network, an addition of a new device, etc. - The iSNS server sends out a state change notification (<SCN>)
message 1001.Message 1001 may, for example, inform that a certain device has dropped out of the network. Naturally, the <SCN> message is in an iSNS format and therefore does not include the Fibre Channel N_Port_ID of the dropped out device. Instead it only includes an iSNS specific address (i.e., the World Wide Port Name, tag 64). Therefore, atstep 1002, the service mapper requests and receives the N_Port_ID of the affected device from the iSNS server. Instep 1003, the service mapper forms an RSCN message (i.e., a Fibre Channel formatted state change notification message) utilizing data received from the <SCN>message 1001 and the N_Port_ID received instep 1002. The service mapper then sends the thus formedRSCN message 1004 to the HBA module. The HBA module then provides an RSCN reply. The service module reformats that reply to an iSNS formatted response message (<SCNRsp> message 1006). The <SCNRsp> message is then sent back to the iSNS server. - As noted above data transfer may be performed by the FCoE
data transfer element 800. The data transfer element may store pairs of Ethernet addresses and N_Port_IDs of other devices in the network in a table, whenever this data is obtained from the iSNS server. See, for example, steps 807 ofFIGS. 8 and 905 ofFIG. 9 . When the data transfer element receives a Fibre Channel packet destined to a particular Fibre Channel N_Port_ID, it can consult the afore-mentioned table in order to obtain an Ethernet address associated with that N_Port_ID. The data transfer module may then place the Fibre Channel packet into one or more Ethernet frames and address the Ethernet frames to the Ethernet address obtained from the table. - In theory, all N_Port_IDs to which the HBA module addresses communications should be stored in the table (along with their respective Ethernet addresses). This should be the case, because in order for the HBA module to be aware of an N_Port_ID, it must obtain it through the FCoE module from the iSNS server. See for example, the processes discussed in
FIGS. 8 and 9 . When the HBA module obtains an N_Port_ID in this manner, the FCoE data transfer element should store the N_Port_ID and its respective Ethernet address in its table (see, e.g., steps 807 ofFIGS. 8 and 905 ofFIG. 9 ). - However, there exists a possibility that an HBA module may attempt to access an N_Port_ID that is not in the FCoE data transfer element's table. This may be the case if the HBA module becomes aware of the N_Port_ID in another manner, or simply decides to “blindly” send a message to a specific N_Port_ID. Embodiments of the present invention may account for this possibility by providing the method shown in
FIG. 11 . - Initially, the HBA module may attempt to log in to another device by sending a log in command (PLOGI command 1101). The
PLOGI command 1101 is addressed to another device and not to the name server of the virtual Fibre Channel network. Atstep 1102, the FCoE data transfer element determines whether a Fibre Channel destination address (i.e., an N_Port_ID) of the PLOGI command is in its table. As noted, the process ofFIG. 11 is executed when the N_Port_ID is not in the FCoE data transfer element's table. - Upon determination that the N_Port_ID address is not in its table, the data transfer element sends a query (<DevAttrQry> 1103) to the iSNS server requesting data on all devices registered with the iSNS server. The iSNS server provides the data for all devices in its
response 1104. Atstep 1105, the FCoE data transfer element searches through the received data to locate a record of a device with an N_Port_ID identical to the one provided in thePLOGI command 1101. Once it discovers that device it saves the N_Port_ID number and its associated Ethernet address in its table. - It then sends the
PLOGI command 1101 to the Ethernet address obtained instep 1105. The remote recipient ofcommand 1101 may sendreply 1105. Once received, the reply is reformatted and forwarded to the HBA module. Thus, the current HBA module is logged into a remote HBA module and may proceed communicating with it. Since the FCoE data transfer module now has the Ethernet address of the remote HBA module, it can easily process and route these communications. - While the examples above have been provided in the context of a single Ethernet network, embodiments of the present invention may be used to connect devices that are part of multiple networks. A person of skill in the art would recognize that the above described embodiments of the present invention can be used with multiple connected Ethernet networks. Furthermore, embodiments of the present invention can be used with heterogeneous network environments in which multiple networks of different types are connected.
-
FIG. 12A shows an example of one such environment. More specifically,FIG. 12A shows an FCoE enableddevice 1200 that includes an FCoEA that is connected toEthernet network 1202. The Ethernet network is connected to aFibre Channel Gateway 1203. The Fibre Channel gateway is a gateway used to interconnect an Ethernet and a Fibre Channel network. The Fibre Channel gateway is connected to aFibre Channel network 1204 which is in turn connected to anotherend device 1210 which utilizes a standardFibre Channel HBA 1211. - The Fibre Channel gateway may connect the two networks using techniques similar to those discussed above. Thus, the Fibre Channel gateway may encapsulate and de-encapsulate communications passing between the two networks.
- Furthermore, the Fibre Channel gateway may forward addressing and name server communications between the two networks in order to allow
FCoEA 1201 andHBA 1211 to discover each other's addresses and other information. The Fibre Channel gateway may achieve this, for example, by logging into the fabric and name server ofnetwork 1204 in order to discover information aboutdevice 1210 and into the iSNS server ofEthernet network 1202 in order to discover information aboutdevice 1200. The Fibre Channel gateway can then provide the information ofdevice 1210 to the iSNS server ofnetwork 1202 and the information ofdevice 1200 to the fabric and name server ofnetwork 1204. However, in both cases the gateway may provide its own address instead of that of the other device. Thus, when the two devices communicate with each other, they can send communications to the gateway which can forward them to the other device in the other network. The gateway can also operate in cases where there are multiple devices in one or both networks (in that case it may need to use multiple addresses). -
FIG. 12B illustrates another example of multiple heterogeneous networks. In this case,device 1200 may useFCoEA 1201 to connect toEthernet network 1202, which connects to aFibre Channel gateway 1203 and anEthernet network 1204.Ethernet network 1204 may in turn connect to a secondFibre Channel gateway 1205 which may connect to asecond Ethernet network 1206. Asecond device 1214 including anFCoEA 1215 may be connected to the second Ethernet network. Thus, two devices can be connected through two Ethernet networks that include a Fibre Channel network between them. While only two devices are shown, multiple devices may be connected to each network. - It is noted that the present invention is not limited to the specific exemplary embodiments discussed above. For example, the FCoE module is not limited to the elements discussed in
FIGS. 6-11 , or to the methods discussed in these figures. - Although the present invention has been fully described in connection with embodiments thereof with reference to the accompanying drawings, it is to be noted that various changes and modifications will become apparent to those skilled in the art. Such changes and modifications are to be understood as being included within the scope of the present invention as defined by the appended claims.
Claims (24)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/823,282 US20150350112A1 (en) | 2007-12-19 | 2015-08-11 | High performance ethernet networking utilizing existing fibre channel fabric hba technology |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/960,627 US9137175B2 (en) | 2007-12-19 | 2007-12-19 | High performance ethernet networking utilizing existing fibre channel fabric HBA technology |
US14/823,282 US20150350112A1 (en) | 2007-12-19 | 2015-08-11 | High performance ethernet networking utilizing existing fibre channel fabric hba technology |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/960,627 Continuation US9137175B2 (en) | 2007-12-19 | 2007-12-19 | High performance ethernet networking utilizing existing fibre channel fabric HBA technology |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150350112A1 true US20150350112A1 (en) | 2015-12-03 |
Family
ID=40788559
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/960,627 Expired - Fee Related US9137175B2 (en) | 2007-12-19 | 2007-12-19 | High performance ethernet networking utilizing existing fibre channel fabric HBA technology |
US14/823,282 Abandoned US20150350112A1 (en) | 2007-12-19 | 2015-08-11 | High performance ethernet networking utilizing existing fibre channel fabric hba technology |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/960,627 Expired - Fee Related US9137175B2 (en) | 2007-12-19 | 2007-12-19 | High performance ethernet networking utilizing existing fibre channel fabric HBA technology |
Country Status (5)
Country | Link |
---|---|
US (2) | US9137175B2 (en) |
EP (1) | EP2238544A4 (en) |
JP (3) | JP2011508523A (en) |
TW (2) | TWI488460B (en) |
WO (1) | WO2009085536A2 (en) |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8310953B2 (en) | 2007-08-21 | 2012-11-13 | International Business Machines Corporation | Method and apparatus for enabling an adapter in a network device to discover the name of another adapter of another network device in a network system |
US8396009B2 (en) * | 2007-08-21 | 2013-03-12 | International Business Machines Corporation | Method and apparatus for an adapter in a network device to discover its adapter name in a network system |
US9137175B2 (en) | 2007-12-19 | 2015-09-15 | Emulex Corporation | High performance ethernet networking utilizing existing fibre channel fabric HBA technology |
US8817656B2 (en) * | 2008-04-08 | 2014-08-26 | Cisco Technology, Inc. | Discovery for fibre channel over ethernet devices |
US8402166B2 (en) * | 2008-05-01 | 2013-03-19 | International Business Machines Corporation | Access control list endpoint implementation |
US8307048B2 (en) * | 2008-07-15 | 2012-11-06 | International Business Machines Corporation | Network system with initiator subnetwork communication to target subnetwork communication including fibre channel over ethernet to fibre channel over internet protocol conversion |
US8265071B2 (en) | 2008-09-11 | 2012-09-11 | Juniper Networks, Inc. | Methods and apparatus related to a flexible data center security architecture |
US9847953B2 (en) | 2008-09-11 | 2017-12-19 | Juniper Networks, Inc. | Methods and apparatus related to virtualization of data center resources |
US8730954B2 (en) * | 2008-09-11 | 2014-05-20 | Juniper Networks, Inc. | Methods and apparatus related to any-to-any connectivity within a data center |
US11271871B2 (en) | 2008-09-11 | 2022-03-08 | Juniper Networks, Inc. | Methods and apparatus related to a flexible data center security architecture |
US8755396B2 (en) * | 2008-09-11 | 2014-06-17 | Juniper Networks, Inc. | Methods and apparatus related to flow control within a data center switch fabric |
US8340088B2 (en) * | 2008-09-11 | 2012-12-25 | Juniper Networks, Inc. | Methods and apparatus related to a low cost data center architecture |
US20100061367A1 (en) * | 2008-09-11 | 2010-03-11 | Pradeep Sindhu | Methods and apparatus related to lossless operation within a data center |
US8335213B2 (en) * | 2008-09-11 | 2012-12-18 | Juniper Networks, Inc. | Methods and apparatus related to low latency within a data center |
US8218571B2 (en) * | 2008-10-24 | 2012-07-10 | International Business Machines Corporation | Fibre channel framing and signaling optional header for ethernet fabric configuration information |
EP2211502A1 (en) * | 2009-01-22 | 2010-07-28 | IBBT vzw | Management system and method for configuring a network for transferring media data |
US9071624B2 (en) * | 2009-05-13 | 2015-06-30 | Dell Products L.P. | System and method for providing accessibility for access controller storage media |
US8355345B2 (en) * | 2009-08-04 | 2013-01-15 | International Business Machines Corporation | Apparatus, system, and method for establishing point to point connections in FCOE |
US8284785B2 (en) * | 2009-08-27 | 2012-10-09 | Emulex Design & Manufacturing Corporation | System and method for direct communications between FCoE devices |
US8073942B2 (en) * | 2009-10-20 | 2011-12-06 | Dell Products, Lp | System and method for storage discovery in a storage area network using device domains under control of a storage device |
US9813252B2 (en) | 2010-03-23 | 2017-11-07 | Juniper Networks, Inc. | Multicasting within a distributed control plane of a switch |
US8694654B1 (en) | 2010-03-23 | 2014-04-08 | Juniper Networks, Inc. | Host side protocols for use with distributed control plane of a switch |
US8594100B2 (en) | 2010-03-31 | 2013-11-26 | International Business Machines Corporation | Data frame forwarding using a distributed virtual bridge |
US8489763B2 (en) | 2010-04-20 | 2013-07-16 | International Business Machines Corporation | Distributed virtual bridge management |
US8619796B2 (en) | 2010-04-22 | 2013-12-31 | International Business Machines Corporation | Forwarding data frames with a distributed fiber channel forwarder |
US8571408B2 (en) | 2010-04-22 | 2013-10-29 | International Business Machines Corporation | Hardware accelerated data frame forwarding |
US8644139B2 (en) | 2010-04-26 | 2014-02-04 | International Business Machines Corporation | Priority based flow control within a virtual distributed bridge environment |
US8369296B2 (en) | 2010-04-26 | 2013-02-05 | International Business Machines Corporation | Distributed link aggregation |
US8379642B2 (en) | 2010-04-26 | 2013-02-19 | International Business Machines Corporation | Multicasting using a multitiered distributed virtual bridge hierarchy |
US8514856B1 (en) * | 2010-06-24 | 2013-08-20 | Cisco Technology, Inc. | End-to-end fibre channel over ethernet |
US8447909B2 (en) | 2010-07-19 | 2013-05-21 | International Business Machines Corporation | Register access in distributed virtual bridge environment |
US9065760B2 (en) | 2010-08-10 | 2015-06-23 | International Business Machines Corporation | Priority data transmission using Fibre Channel over Ethernet |
US9282060B2 (en) | 2010-12-15 | 2016-03-08 | Juniper Networks, Inc. | Methods and apparatus for dynamic resource management within a distributed control plane of a switch |
US8811399B2 (en) | 2011-01-07 | 2014-08-19 | Jeda Networks, Inc. | Methods, systems and apparatus for the interconnection of fibre channel over ethernet devices using a fibre channel over ethernet interconnection apparatus controller |
US9071629B2 (en) | 2011-01-07 | 2015-06-30 | Jeda Networks, Inc. | Methods for the interconnection of fibre channel over ethernet devices using shortest path bridging |
US9071630B2 (en) | 2011-01-07 | 2015-06-30 | Jeda Networks, Inc. | Methods for the interconnection of fibre channel over ethernet devices using a trill network |
US9178944B2 (en) | 2011-01-07 | 2015-11-03 | Jeda Networks, Inc. | Methods, systems and apparatus for the control of interconnection of fibre channel over ethernet devices |
US8559335B2 (en) | 2011-01-07 | 2013-10-15 | Jeda Networks, Inc. | Methods for creating virtual links between fibre channel over ethernet nodes for converged network adapters |
US9106579B2 (en) * | 2011-01-07 | 2015-08-11 | Jeda Networks, Inc. | Methods, systems and apparatus for utilizing an iSNS server in a network of fibre channel over ethernet devices |
US8559433B2 (en) | 2011-01-07 | 2013-10-15 | Jeda Networks, Inc. | Methods, systems and apparatus for the servicing of fibre channel fabric login frames |
US8625597B2 (en) | 2011-01-07 | 2014-01-07 | Jeda Networks, Inc. | Methods, systems and apparatus for the interconnection of fibre channel over ethernet devices |
US9030935B2 (en) * | 2011-03-30 | 2015-05-12 | International Business Machines Corporation | Device and method for adjusting rate limits for transmission rates of data flows having a certain priority in a transmitter |
JP5488841B2 (en) | 2011-09-20 | 2014-05-14 | 日本電気株式会社 | Storage device |
US8995287B2 (en) * | 2011-12-09 | 2015-03-31 | Brocade Communication Systems, Inc. | AMPP active profile presentation |
US8891535B2 (en) | 2012-01-18 | 2014-11-18 | International Business Machines Corporation | Managing a global forwarding table in a distributed switch |
US8861400B2 (en) | 2012-01-18 | 2014-10-14 | International Business Machines Corporation | Requesting multicast membership information in a distributed switch in response to a miss event |
JP5891877B2 (en) | 2012-03-19 | 2016-03-23 | 富士通株式会社 | Relay device and relay method |
JP5867211B2 (en) | 2012-03-19 | 2016-02-24 | 富士通株式会社 | RELAY DEVICE, RELAY DEVICE CONTROL METHOD, AND RELAY SYSTEM |
US9143567B2 (en) * | 2012-06-27 | 2015-09-22 | International Business Machines Corporation | Gateway device to connect native fibre channel ports to pure fibre channel over ethernet storage area networks |
US8917736B2 (en) | 2012-12-19 | 2014-12-23 | International Business Machines Corporation | Unified system networking with PCIE-CEE tunneling |
CN104247375B (en) | 2013-02-18 | 2017-11-17 | 华为技术有限公司 | The method that node port virtualization is realized in optical-fibre channel, device and system |
WO2016064397A1 (en) * | 2014-10-23 | 2016-04-28 | Hewlett Packard Enterprise Development Lp | Admissions control of a device |
WO2016068942A1 (en) | 2014-10-30 | 2016-05-06 | Hewlett Packard Enterprise Development Lp | Encryption for transactions in a memory fabric |
US10699031B2 (en) | 2014-10-30 | 2020-06-30 | Hewlett Packard Enterprise Development Lp | Secure transactions in a memory fabric |
US10057347B2 (en) | 2015-02-13 | 2018-08-21 | International Business Machines Corporation | Protocol independent storage discovery and enablement |
US10616335B2 (en) | 2016-08-17 | 2020-04-07 | Cisco Technology, Inc. | Controller-based configuration proxy |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6400730B1 (en) | 1999-03-10 | 2002-06-04 | Nishan Systems, Inc. | Method and apparatus for transferring data between IP network devices and SCSI and fibre channel devices over an IP network |
WO2001059966A1 (en) | 2000-02-08 | 2001-08-16 | Nishan Systems, Inc. | Method and apparatus for transferring data between different network devices over an ip network |
JP4483100B2 (en) * | 2001-02-20 | 2010-06-16 | 株式会社日立製作所 | Network connection device |
US8218555B2 (en) * | 2001-04-24 | 2012-07-10 | Nvidia Corporation | Gigabit ethernet adapter |
US7782778B2 (en) * | 2002-12-24 | 2010-08-24 | Samir Satish Sheth | Apparatus and method for fibre channel distance extension embedded within an optical transport system |
US7298973B2 (en) * | 2003-04-16 | 2007-11-20 | Intel Corporation | Architecture, method and system of multiple high-speed servers to network in WDM based photonic burst-switched networks |
JP4278444B2 (en) | 2003-06-17 | 2009-06-17 | 株式会社日立製作所 | Virtual port name management device |
US20090034522A1 (en) * | 2007-08-03 | 2009-02-05 | John William Hayes | Transporting fibre channel over ethernet |
US20060041580A1 (en) * | 2004-07-09 | 2006-02-23 | Intransa, Inc. | Method and system for managing distributed storage |
JP4504762B2 (en) * | 2004-08-19 | 2010-07-14 | 株式会社日立製作所 | Storage network migration method, management apparatus, management program, and storage network system |
US20060047850A1 (en) * | 2004-08-31 | 2006-03-02 | Singh Bhasin Harinder P | Multi-chassis, multi-path storage solutions in storage area networks |
US8238347B2 (en) * | 2004-10-22 | 2012-08-07 | Cisco Technology, Inc. | Fibre channel over ethernet |
TWI268668B (en) * | 2005-09-05 | 2006-12-11 | Ind Tech Res Inst | Fiber-fault monitoring apparatus and method in an optical networks |
US20080056287A1 (en) * | 2006-08-30 | 2008-03-06 | Mellanox Technologies Ltd. | Communication between an infiniband fabric and a fibre channel network |
US20090052461A1 (en) * | 2007-08-21 | 2009-02-26 | Ibm Corporation | Method and Apparatus for Fibre Channel Over Ethernet Data Packet Translation Via Look up Table Conversion Bridge in a Network System |
US9137175B2 (en) | 2007-12-19 | 2015-09-15 | Emulex Corporation | High performance ethernet networking utilizing existing fibre channel fabric HBA technology |
-
2007
- 2007-12-19 US US11/960,627 patent/US9137175B2/en not_active Expired - Fee Related
-
2008
- 2008-12-02 JP JP2010539588A patent/JP2011508523A/en active Pending
- 2008-12-02 EP EP08868188A patent/EP2238544A4/en not_active Ceased
- 2008-12-02 WO PCT/US2008/085257 patent/WO2009085536A2/en active Application Filing
- 2008-12-16 TW TW102105197A patent/TWI488460B/en not_active IP Right Cessation
- 2008-12-16 TW TW97148971A patent/TWI395434B/en not_active IP Right Cessation
-
2012
- 2012-08-08 JP JP2012175957A patent/JP5539463B2/en not_active Expired - Fee Related
-
2014
- 2014-04-30 JP JP2014093673A patent/JP5805821B2/en not_active Expired - Fee Related
-
2015
- 2015-08-11 US US14/823,282 patent/US20150350112A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2014135783A (en) | 2014-07-24 |
JP5805821B2 (en) | 2015-11-10 |
TWI395434B (en) | 2013-05-01 |
US9137175B2 (en) | 2015-09-15 |
JP5539463B2 (en) | 2014-07-02 |
TW200943830A (en) | 2009-10-16 |
WO2009085536A2 (en) | 2009-07-09 |
WO2009085536A3 (en) | 2009-12-30 |
EP2238544A4 (en) | 2012-09-12 |
JP2012213240A (en) | 2012-11-01 |
US20090161692A1 (en) | 2009-06-25 |
JP2011508523A (en) | 2011-03-10 |
EP2238544A2 (en) | 2010-10-13 |
TWI488460B (en) | 2015-06-11 |
TW201325144A (en) | 2013-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9137175B2 (en) | High performance ethernet networking utilizing existing fibre channel fabric HBA technology | |
US7969989B2 (en) | High performance ethernet networking utilizing existing fibre channel arbitrated loop HBA technology | |
US10880235B2 (en) | Remote shared server peripherals over an ethernet network for resource virtualization | |
EP3286903B1 (en) | Adaptive load balancing | |
US8214528B2 (en) | Address identifier scaling in converged networks | |
CN102124449B (en) | Method and system for low-overhead data transfer | |
US8351442B1 (en) | Method and system for network communication | |
US9559898B2 (en) | Automatically configuring data center networks with neighbor discovery protocol support | |
US20110280252A1 (en) | Managing Virtual Ports in an Information Processing System | |
US10523745B2 (en) | Load balancing mobility with automated fabric architecture | |
EP2216955B1 (en) | Network interface device | |
US20080181232A1 (en) | Computer program product and system for managing virtual instances of a physical port attached to a network | |
US20060015655A1 (en) | Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney | |
WO2014079005A1 (en) | Mac address mandatory forwarding device and method | |
US8281050B2 (en) | Method and apparatus of storage array with frame forwarding capability | |
KR20170102717A (en) | Micro server based on fabric network | |
EP3493058A1 (en) | Method and device for migrating a stateful function | |
US20140282551A1 (en) | Network virtualization via i/o interface | |
CN108965494A (en) | Data transmission method and device in data system | |
CN114500573B (en) | Storage volume mounting method, device, equipment and storage medium | |
US8886816B2 (en) | Auto-detection and selection of an optimal I/O system resource virtualization protocol | |
CN117354309A (en) | Method for realizing source ip transparent transmission by load balancing system based on lvs | |
Racherla et al. | Storage and Network Convergence Using FCoE and iSCSI | |
Kabachinski | Translating the Concepts Behind Gateways | |
Headquarters | VMware Infrastructure 3 in a Cisco Network Environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001 Effective date: 20160201 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001 Effective date: 20160201 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001 Effective date: 20170119 Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001 Effective date: 20170119 |