Abstract:
A system for an apparatus for extending the physical reach of an InfiniBand network. Methods and apparatus can connect an InfiniBand network to a long distance connection (e.g. WAN) while maintaining full 10 Gbit InfiniBand speeds and retaining the semantics specified by the InfiniBand Architecture (IBTA). A system can include an InfiniBand interface, a management block, packet routing, encapsulation/de-encapsulation, bulk memory buffer, and WAN interface, logic and circuits. The invention is applicable to efficiently moving large amounts of data over large distances using a single transport stream.

Description:
FIELD OF THE INVENTION  
       [0001]     The present invention relates to an apparatus for extending the physical reach of an InfiniBand network beyond that currently possible within the InfiniBand Architecture and in particular allows InfiniBand packets to be carried over networks that are not themselves conformant to the InfiniBand Architecture. This allows InfiniBand traffic to share a physical network with other standard protocols such as the Internet Protocol version 6 (IPv6) or Asynchronous Transfer Mode (ATM) cells. Further, due to a very large flow control buffer in the apparatus, coupled with the use of a flow control credit scheme to prevent buffer overflow, the invention allows a large amount of data to be in transit within the Wide Area Network (WAN) while still ensuring that no packets will be lost due to inadequate buffering resources at the receiver. In order to help ensure that no packets are dropped within the WAN the apparatus may also include a number of Quality of Service (QOS) functions that serve to limit the injection rate of data into the WAN in response to back pressure. The invention may also allow packets to be routed in such a way as to allow more than one apparatus to be connected to the WAN thus enabling an InfiniBand network to be extended to more than 2 physical locations using a minimum number of apparatus. A processor contained within the apparatus may handle management functions, such as the InfiniBand subnet management agent and device management.  
       BACKGROUND OF THE INVENTION  
       [0002]     It is known that 10 Gbit InfiniBand is only capable of reaching approximately 10 km due to the limit within the InfiniBand Architecture of at most 128 KiB of granted credits per virtual lane (VL). This restriction places an upper limit on the amount of data that can be in transit at once, since a standard InfiniBand transmitter will not transmit without an available credit. Further, it is known that limiting the amount of data that can be in transit to less than the bandwidth latency product of a network path will directly limit the maximum data transfer rate that can be attained.  
         [0003]     For instance, a 10 Gbit InfiniBand link with a round trip latency of 130 microseconds has a bandwidth latency product of 128 KiB, which is the maximum amount of credits that can be granted for a single VL within an InfiniBand link.  
         [0004]     Typically an InfiniBand link will have more than 1 ingress and egress VL (up to 15), which the InfiniBand Architecture specifies must each be independently buffered and flow controlled to prevent head of line blocking and flow control dead lock. In some embodiments, the InfiniBand interface contains additional flow control buffering units to transition from a WAN clock domain to an InfiniBand clock domain.  
         [0005]     Due to physical limitations data travels at a rate slower than the speed of light over optical fiber. When the fiber is considered as a conduit that carries bits, it is clear that a single piece of long fiber may contain many megabits of data that is in transit. For instance, if the speed of light in a particular fiber carrying a 10 Gbit data stream is 5 ns/meter and the fiber is 100 km long then the fiber will contain 5 megabits of data in each direction. Many WAN paths also include added latency from in band equipment such as regeneration equipment, optical multiplexes, add/drop multiplexors, routers, switches and so on. This extra equipment adds additional latency and further extends the bandwidth latency product of the path.  
         [0006]     As defined by the InfiniBand Architecture the InfiniBand electrical and optical signaling protocols are not compatible with, or suitable for use in, a traditional WAN environment. Typical WAN environments use the Synchronous Optical Network (SONET) standard over long distance optical fiber.  
         [0007]     Also to ease administration of the InfiniBand network it is desirable to perform routing on InfiniBand packets, as described in the InfiniBand Architecture. Routing allows each remote distant site to maintain local control over their portion of the larger InfiniBand network without imposing substantial policy on all other participants.  
       SUMMARY OF THE INVENTION  
       [0008]     When taken together, the physical limitations of fiber, the need to have buffering capacity above that of the bandwidth latency product of the path, and the feature of multiple VLs within the InfiniBand Architecture, it becomes apparent that apparatus wherein a well-managed very large buffer memory is required to extend an InfiniBand network to a transcontinental distance. For instance a physical distance of 5000 km with 15 VLs will require 894 MiB of buffer memory without considering any additional latency overheads.  
         [0009]     Part of the function of the apparatus is to extend the credit advertised on a local short InfiniBand link, which is typically 8 KiB, to a number more suitable for a WAN, typically 512 MiB per VL. This is done using a first in first out buffer (FIFO) that empties when local InfiniBand credits are available and fills up as incoming data arrives. Periodically the apparatus notifies other remote apparatus how much space is available within the FIFO via a credit advertisement packet for each active VL and the remote apparatus use this information to ensure that it never transmits more data than the FIFO can accept. This is the same basic flow control mechanism (end-to-end credit information exchange) that is used with the InfiniBand Architecture but it is scaled up to handle gigabytes of buffer and to be more suitable for a WAN environment. In this manner, InfiniBand style flow control semantics are maintained over great distances, ensuring that no packets are discarded due to congestion.  
         [0010]     In another embodiment, the bulk buffer memory can take packets out of the plurality of FIFO structures in an order different from the order that the packets were received.  
         [0011]     If there is credit starvation on the local InfiniBand port then the FIFO will fill up, but due to the credit packets sent over the WAN the transmitter will stop sending before the FIFO can overflow. Credit packets may be inserted into IPv6 payload structures, or alternatively they may be embedded in IPv6 extension headers for improved efficiency.  
         [0012]     Credit information or data is encoded in ordered sets in the 66/64 b code. InfiniBand packets can be placed within the payload structure of UDP or DCCP datagrams carried within IPv6 or IPv4 packets.  
         [0013]     To achieve compatibility with WAN standards the InfiniBand packets are encapsulated by the apparatus within other protocols, such as IPv6 within packet over SONET (POS), for transmission over the WAN. As set forth in the IBTA, a full duplex independent transmit and receive data path is controlled by a link state machine. The InfiniBand physical link state machine can be maintained by exchanging non-InfiniBand packets across the WAN; wherein doing so establishes that an end-to-end path exists in the WAN, this exchanging of packets comprising PPP LCP (as per RFC1661) packets, Ethernet ARP (as per RFC826 and RFC2461 (IPv6 Neighbor Discovery)) exchanges, TCP session initializations (as per RFC 793), establishing ATM SVC&#39;s (as per ATM Forum Private Network Network Interface specification), or any other form of session initiation.  
         [0014]     After being encapsulated the packets are transmitted over the WAN and the receiving apparatus performs a de-encapsulation step, removing the data added during encapsulation, thereby recovering the original InfiniBand packet.  
         [0015]     This encapsulation serves two purposes; the first is to change the optical signaling format to something that can be natively carried over a WAN connection, such as SONET. This allows the apparatus to be directly connected to SONET optical equipment that is part of a larger SONET topology and to be carried through to a single remote destination. SONET protocols such as the Generic Framing Protocol (GFP) are designed for this kind of encapsulation task. The encapsulation component is capable of supporting a plurality of networks including any of IPv6, UDP in IPv6, DCCP in IPv6, ATM AAL5 or GFP.  
         [0016]     This also allows the apparatus to interface with intelligent equipment within the WAN that can route individual packets or cells. This also allows the InfiniBand traffic to share the WAN infrastructure with traffic from other sources by relying on the WAN to perform aggregation, routing and/or switching of many connections.  
         [0017]     Protocols such as ATM Adaptation Layer 5 (AAL5), IPv6 over POS and IPv6 over Ethernet are designed to allow for this.  
         [0018]     For the purposes of establishing and maintaining an end-to-end path across the WAN, it is necessary for the communicating apparatus to exchange non-InfiniBand packets in addition to the encapsulated InfiniBand packets.  
         [0019]     Many encapsulations are possible by the apparatus, including ATM AAL5, IPv6 over POS, IPv6 over Ethernet, DCCP in IPv6, UDP in IPv6, IPv6 over generic multi-protocol label switching (GMPLS), GFP and others. Similarly many WAN signaling standards and speeds can be supported, including SONET, Ethernet LAN-PHY and Ethernet WAN-PHY. A single apparatus may support many encapsulations and signaling standards and the user can select which to use during installation.  
         [0020]     For shorter distances, less than 10 km, the encapsulation is forgone and simply uses optical signaling that is defined by the InfiniBand Architecture in combination with a very large flow control buffer to extend the reach of normal InfiniBand equipment while fully conforming to the InfiniBand Architecture. In this case, the encapsulation process is reduced to a null encapsulation and emits the InfiniBand packets unchanged. The number of credit blocks and/or the credit block size may be increased to extend the range beyond 10 km while still observing the otherwise unchanged InfiniBand communications protocol.  
         [0021]     Multiple Apparatus: When the apparatus is connected to an intelligent WAN using an encapsulation protocol, which is capable of addressing, it is possible to have more than two apparatus communicate. This allows apparatus located at many physical sites to share the same WAN connection and the same apparatus while extending and linking their InfiniBand networks into a large mesh.  
         [0022]     In this operational mode, the apparatus is required to examine each incoming local InfiniBand packet to determine which remote apparatus it should be sent to and then form the proper encapsulation to deliver it. This can be done by examining the Local Identifier (LID) within the InfiniBand packet and using the switching infrastructure defined by the InfiniBand Specification, or by examining the Global Identifier (GID) within the InfiniBand packet and routing based on a longest prefix match of the subnet prefix.  
         [0023]     Each apparatus must also reserve a separate portion of its flow control buffer for each possible remote apparatus. This further increases the demands for buffer memory, by N−1 times, where N is the number of apparatus in the mesh.  
         [0024]     When multicast InfiniBand packets are received, the apparatus will either map them onto a suitable WAN multicast address, or perform packet replication to send multiple copies of the packet to each remote apparatus that is subscribed to the multicast group.  
         [0025]     As specified by the InfiniBand Architecture release 1.2, the InfiniBand routing operation requires the apparatus to translate the 128 bit IPv6 GID into a local InfiniBand path description, a 16 bit Local Identifier (LID), a 24 bit partition key and a 4 bit service level, for transmission on the local InfiniBand network using the Global Route Header (GRH).  
         [0026]     When the apparatus is used on an intelligent network, rather than in a point-to-point configuration, the issue of quality of service within the intelligent network becomes important. The apparatus only ensures that InfiniBand packets will never be dropped due to insufficient buffering, it does not provide any guarantee that an intelligent network will not drop packets due to internal congestion or otherwise.  
         [0027]     The primary means to minimize packet loss within the network is by the apparatus to control the injection rate of packets into the network by the apparatus. The apparatus does this by inserting delays between packets as they are sent into the WAN to the receiving unit.  
         [0028]     The rate of injection can be either set by the user or controlled dynamically by interactions and protocols between the apparatus and the intelligent network. There are many protocols and methods for this kind of dynamic control.  
         [0029]     The secondary approach is for the apparatus to specially tag packets so that the intelligent network can minimize the loss. This approach may be used in conjunction with injection rate control.  
         [0030]     Management software within the Management Block of the apparatus, is responsible for running any protocols and methods that may be necessary to establish Quality of Service guarantees through the WAN network using a general purpose processor.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0031]      FIGS. 1 through 3  are data flow diagrams that show the route packets may take within a system. Each box with square corners represents a buffer, transformational process, or a decision point. Larger round cornered boxes represent related groups of functions. Arrows show the direction of packet flow.  
         [0032]      FIG. 1  is a data flow diagram for a prototypical apparatus. It shows the major blocks for one embodiment of the invention.  
         [0033]      FIG. 2  is a data flow diagram for a specific long-range implementation designed to interoperate with a large number of WAN signaling standards and protocols. It shares many of the functional blocks outlined in  FIG. 1 .  
         [0034]      FIG. 3  is a data flow diagram for a specific reduced feature short-range implementation that illustrates how the InfiniBand Architecture can be used as the WAN protocol.  
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0035]     A person of skill in the art recognizes that various standards and resources are inherent in the conventional formulation of digital data. Some the standards and principles of operation referred to herein as being known in the art can be found with reference to: 
        InfiniBand Trade Association (2005). The InfiniBand Architecture release 1.2 (also known as “IBTA”).     Internet Engineering Task Force (1998). RFC 2460—Internet Protocol, Version 6 (IPv6) Specification.     Internet Engineering Task Force (1989. RFC 2615—PPP over SONET/SDH.     The ATM Forum (1994). ATM User-Network Interface Specification version 3.1.     International Telecommunications Union. ITU-T Recommendation I.432.1 General Characteristics.     Open Systems Interconnection (OSI)—Basic Reference Model: The Basic Model (1994). ISO 7498-1:1994     IEEE802.3ae clause 49; 66/64b coding scheme        
 
         [0043]     With reference to  FIG. 1 , data flow within a prototypical apparatus is described. The apparatus contains six major blocks: InfiniBand Interface, Management Block, Packet Routing, Encapsulation/De-encapsulation component (ENCAP), Wan Interface and Bulk Buffer Memory. There are a variety of techniques and technologies that can be used to implement each of these blocks. These blocks are identified as logical functions in a data flow diagram, specific implementations may choose to spread these logical functions among different physical blocks to achieve a more optimal implementation. The apparatus can maintain transfer rates of about 1 gigabyte per second of InfiniBand packets simultaneously in each direction.  
         [0044]     The InfiniBand interface provides the LAN connection to the local IB fabric. For clarity the InfiniBand interface includes two small flow-controlling buffers to mediate the data rates from the other attached blocks.  
         [0045]     The Management Block provides an implementation of the various high level management and control protocols that are required by the various standards the apparatus may adhere to; for instance the IB Subnet Management Agent, an implementation of the point-to-point (PPP) protocol for packet over SONET, ATM operation and maintenance cells (OAM) and neighbor discovery caching/queries for Ethernet. Typically this block will be implemented using some form of general microprocessor combined with specialized logic for any low latency or high frequency management packets, such as some kinds of OAM cells.  
         [0046]     The Packet Routing block implements the functionality required by the multiple apparatus InfiniBand routing, and Quality of Service (QOS) capabilities described above. It also provides the WAN credit packets as discussed in the context of distance extension. The Packet Routing block is also able to identify packets that should be delivered to the Management Block for special processing.  
         [0047]     The Encapsulation/De-encapsulation block implements the encapsulation process discussed in the context of protocol encapsulation above. On one embodiment, the protocol is an OSI 7 Layer reference model (as defined in ISO 7498-1:1994) and is selected from the group consisting of layer  1  (physical), layer  2  (data link), layer  3  (network) and layer  4  (transport).  
         [0048]     The prototypical diagram shows several possible different schemes. The Encapsulation block relies on additional data from the Routing Block to determine the exact form of encapsulation. De-Encapsulation restores the original IB packet from the encapsulated data. Some packets may be routed to the Management Block and not sent through the De-Encapsulation block if they are identified as management packets.  
         [0049]     The WAN interface is a generic interface to the WAN port. As shown here it includes an optical subsystem, but WAN interfaces are possible that use electrical signaling. A framer unit or function takes the packet data from the Encapsulation block and formats it to comply with the chosen WAN protocol. For instance, the Ethernet specifications would refer to the framer as a combination of the Media Access Controller (MAC) the physical coding sub-layer (PCS) and the physical media attachment (PMA). The framer also performs the inverse, and extracts the packet from the WAN interface to be passed to the de-encapsulation block.  
         [0050]     Supported framing formats include SONET/SDH, 10 GBASE-R, InfiniBand, 10 GBASE-W and the 66/64 b coding scheme defined by IEEE802.3ae clause 49— 10  GBASE-R.  
         [0051]     The Bulk Buffer Memory implements the Credit Management unit as per the description of distance extension. The exact nature of the underlying memory can vary depending on the implementation.  
         [0052]      FIG. 2 , describes the data flow within the preferred embodiment for a long-range configuration of the Invention. This embodiment of the invention consists of a Printed Circuit Board (PCB) assembly that contains a System on a Chip implemented within a Field Programmable Gate Array (FPGA), a CX4 copper 4× InfiniBand connector, a SONET/Ethernet framer/mapper, 2 slots of registered double data rate 2 (DDR2) synchronous dynamic random access memory (SDRAM), a network search engine, management processor support elements and an interchangeable WAN optical module that conforms to the MSA-300 specification.  
         [0053]     The FPGA provides the unique functionality for the apparatus, while the rest of the components are industry standard parts. The FPGA implements four electrical interfaces for the main data path, 2.5 Gbit 4× InfiniBand—connected to the CX4 connector, 266 MHz DDR2 SDRAM—used for the FIFOs, SPI-4.2—to connect to the framer/mapper and LA-1—connected to the network search engine.  
         [0054]     The FIFO buffer is implemented using standard DDR2 SDRAM. By time division multiplexing access to the memory to provide an effective dual ported RAM with a maximum ingress bandwidth above 10 Gbit/sec, while simultaneously maintaining an egress bandwidth above 10 Gbit/sec. This allows inexpensive commodity memory to be used for the FIFO buffer. Control logic within the FPGA partitions the SDRAM into multiple VLs and operates the SDRAM memory bus to provide the FIFO functionality.  
         [0055]     Access to the WAN is provided using components that follow the specifications defined by the Optical Internetworking Forum (OIF). Specifically, a SFI-4.1 interface is used to connect to an optical module over a connector defined by the MSA-300 specification. This same interface can also be converted on the fly to an IEEE 802.3ae XSBI interface for use with 10 G Ethernet LAN PHY. The interchangeable module allows the apparatus to support OC-192 SONET, 10 G Ethernet LAN PHY and 10 G Ethernet LAN PHY, on several kinds of fiber with different launch powers and receiver sensitivities, depending on the user requirement and optical module installed.  
         [0056]     The apparatus may communicate directly across an optical WAN, or indirectly via additional standard networking equipment such as SONET/SDH multiplexers, optical regenerators, packet routers and cell switches.  
         [0057]     The SFI-4.1/XSBI interface is connected to the framer/mapper, which internally handles aspects the low level signaling protocol (MAC/PCS/PMA functions in Ethernet parlance). The FPGA communicates entire packets (or cells in the ATM case) with the framer/mapper over a SPI-4.2 interface, which the framer/mapper then transforms into the desired WAN signaling protocol. This transformation is governed by standards published by the International Telecommunications Union (ITU), the Internet Engineering Task Force (IETF), the ATM Forum, the Institute of Electrical and Electronic Engineers (IEEE) and the Optical Internetworking Forum (OIF).  
         [0058]     The final component is the LA-1 connected network search engine (NSE). The NSE is used as part of the InfiniBand routing feature to translate incoming IPv6 addresses to local InfiniBand path descriptions. The FPGA will extract the IPv6 packet from the packet arriving from the WAN and pass it to the NSE, which will then rapidly search internal tables to find a match, and will then return the associated data (the matching IB path) to the FPGA. As necessary the management processor within the FPGA will update the NSE tables with new data as it becomes available.  
         [0059]     A second embodiment of the invention is shown in  FIG. 3 . This embodiment is a cost reduced version of the same prototypical apparatus shown in  FIG. 2 . The main goal of this implementation is to allow for distance extension up to 10 km using only quad data rate (QDR) 1× InfiniBand, as defined by the InfiniBand Architecture.  
         [0060]     This implementation consists of a FPGA, a CX4 connector, a single chip of QDR SRAM and an XFP optical module. The FPGA directly interfaces with both 10 Gbit 4× InfiniBand (Local) and 10 Gbit 1× InfiniBand (WAN).  
         [0061]     Like in the long-range embodiment an interchangeable module provides the optical WAN interface. However, instead of an MSA-300 interface, this module conforms to the XFP specification (as defined by the XFP MSA Group) and communicates directly with the FPGA over a 10 Gbit XFI bus. This allows the user to select an XFP module that best suites their local environment.  
         [0062]     The FIFO buffer is implemented using QDR (or QDR2) SRAM, which are forms of memory that are optimally designed for small dual ported memory. A controller in the FPGA partitions the memory into multiple VLs and managed operations of the FIFOs.