CN100375469C - 在物理端口上模拟多个逻辑端口的方法和装置 - Google Patents
在物理端口上模拟多个逻辑端口的方法和装置 Download PDFInfo
- Publication number
- CN100375469C CN100375469C CNB2004100713467A CN200410071346A CN100375469C CN 100375469 C CN100375469 C CN 100375469C CN B2004100713467 A CNB2004100713467 A CN B2004100713467A CN 200410071346 A CN200410071346 A CN 200410071346A CN 100375469 C CN100375469 C CN 100375469C
- Authority
- CN
- China
- Prior art keywords
- packet
- port
- formation
- logic
- channel adapter
- 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.)
- Expired - Fee Related
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/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/205—Quality of Service based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/557—Error correction, e.g. fault recovery or fault tolerance
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了在物理端口上模拟多个逻辑端口的方法和装置。提供了一种支持多个逻辑分区的主机通道适配器。在逻辑分区中,可以运行子网管理器,它具有相关联的别名队列对。为主机通道适配器中的每个物理端口配备了单一的物理子网管理队列及其相关联的固件。如果数据包要传送到在逻辑分区中驻留的子网管理器,那么该数据包就放在所述物理端口的发送队列中排队,以便传送到子网管理器所用的别名队列对。主机通道适配器硬件使该数据包循环回到适当的逻辑分区中的别名队列对。对于循环回到管理程序子网管理代理的数据包,别名队列对也能够发送。
Description
技术领域
本发明涉及一种改进的数据处理系统。更确切地说,本发明涉及一种装置和方法,用于子网管理器队列对在单一的物理端口上模拟多个逻辑端口。
背景技术
InfiniBand(IB)提供了一种硬件消息传输机制,它能够用于输入/输出设备(I/O)以及通用计算节点之间的工序间通信(IPC)。客户向IB通道适配器(CA)上的发送/接收工作队列发出发送/接收消息,从而访问IB消息传输硬件。将发送/接收工作队列(WQ)分配给客户作为队列对(QP)。客户通过IB发送和接收完工查询,从完成队列(CQ)检索这些消息的结果。
源CA照管出站消息的划分并将它们发送到目的地。目的地CA照管进站消息的重新装配并将它们置于目的地客户指定的存储区域中。有两种CA类型:主机CA和目标CA。主机通道适配器(HCA)由通用计算节点用来访问IB线缆。客户使用IB动词来访问主机CA功能。解释动词和直接访问CA的软件称为通道界面(CI)。
常规情况下,每个队列对都关联到CA中的物理端口。不过,需要主机CA关联到一台服务器的多个逻辑分区。所以,需要一种高效的机制来将单一的物理端口和队列对关联到多个逻辑分区。所以,在主机CA之内将数据包引向若干逻辑分区,具有这样一种方法、装置和程序将是有益的。
发明内容
对于逻辑主机通道适配器上的每个逻辑端口以及对于每台逻辑交换机,本发明都提供一条子网管理器队列对通信通道。对于这些低使用率的通信通道,不是每一条都包括分别的物理资源,而是为每个物理端口提供单一的物理队列对零点及其相关联的固件。对于主机通道适配器上的端口,队列对是通信通道。队列对零点是子网管理器通信量所用的通信通道。本发明的机制利用多个逻辑端口来引导和处理这种通信量。
对于每个逻辑端口或交换机,可以配备一种子网管理器代理来响应子网管理器的请求。同时,在逻辑分区中可以运行一种具有相关联队列对零点的子网管理器。与逻辑分区相关联的子网管理器队列对,称为别名队列对。子网管理器使用其相关联的别名队列对,可以与子网上的其他节点进行通信,也可以与同一物理主机通道适配器之内的逻辑节点进行通信。
对于每个物理端口,所有数据包都是在单一的队列对上接收,而且是由称为管理程序子网管理器代理的管理程序代码进行处理。如果要将数据包路由到逻辑分区中驻留的子网管理器,就将该数据包放到物理端口的发送队列中排队,以便传送到子网管理器的别名队列对。主机通道适配器硬件使该数据包循环回到适当的逻辑分区中的别名队列对中。别名队列对能够将数据包向外发送。对于循环回到管理程序子网管理代理的数据包,别名队列对也能够传送。
附图简要说明
在附带的权利要求书中阐明了本发明据信有特征的新颖特性。不过,连同附图参考展示性实施例的以下详细说明,将会最好地理解发明本身以及其使用的优选模式、进一步的目的和优点,其中:
图1是一幅框图,展示了依据本发明的一个优选实施例的一台分布式计算机系统;
图2是一幅功能框图,显示了依据本发明的一个优选实施例的主机处理器节点;
图3A是一幅框图,显示了依据本发明的一个优选实施例的主机通道适配器;
图3B是一幅框图,显示了依据本发明的一个优选实施例的一台交换机;
图3C是一幅框图,显示了依据本发明的一个优选实施例的一台路由器;
图4是一幅框图,显示了依据本发明的一个优选实施例的工作请求处理过程;
图5是一幅框图,显示了依据本发明的一个优选实施例的分布式计算机系统的一部分,其中使用了一种可靠的连接服务;
图6是一幅框图,显示了依据本发明的一个优选实施例的分布式计算机系统的一部分,其中使用了若干可靠的数据报服务连接;
图7展示了依据本发明的一个优选实施例的数据包;
图8是一幅框图,显示了依据本发明的一个优选实施例的分布式计算机系统的一部分;
图9是一幅框图,显示了依据本发明之分布式网络系统中使用的网络寻址;
图10是一幅框图,显示了依据本发明的一个优选实施例的分布式计算机系统的一部分,其中展示了SAN线缆子网的结构;
图11是一幅框图,显示了本发明的一个优选实施例中使用的分层通信架构;
图12展示了依据本发明的一个优选实施例的逻辑分区环境中的主机通道适配器;
图13展示了依据本发明的一个优选实施例的逻辑分区环境中,通信量子网管理数据流的一个实例;
图14是一幅流程图,展示了依据本发明的一个优选实施例的主机通道适配器中,收到的子网管理数据包的处理;
图15是一幅流程图,展示了依据本发明的一个优选实施例的主机通道适配器中,发送子网管理数据包的过程。
具体实施方式
本发明提供了一种装置和方法,用于在主机通道适配器中,为逻辑分区管理子网管理队列对。本发明可以由硬件来实施。优选情况下,本发明在一种分布式计算系统中实施,比如一种系统区域网络(SAN),它具有末端节点、交换机、路由器以及使这些部件相互连接的链接。
图1是一幅框图,展示了依据本发明的一个优选实施例的一台分布式计算机系统。图1中表示的分布式计算机系统采取了一种系统区域网络(SAN)100的形式,仅仅是为了展示的目的,下面介绍的本发明的若于实施例能够在许多其他类型和配置的计算机系统上实施。例如,实施本发明的计算机系统,其范围可以从具有一个处理器和几个输入/输出(I/O)适配器的小型服务器,到具有成百上千个处理器和数千个I/O适配器的大规模并行超级计算机系统。
SAN 100是一种高带宽、短等待时间的网络,使分布式计算机系统之内的节点相互连接。一个节点就是连接到网络的一个或多个链接的任何部件,它形成了网络之内若干消息的源头和/或目的地。在展示的实例中,SAN 100包括的节点形式有主机处理器节点102、主机处理器节点104、冗余磁盘阵列(RAID)子系统节点106和I/O机箱节点108。图1所示的节点仅仅是为了展示的目的,因为SAN 100能够连接任何数目和任何类型的独立处理器节点、I/O适配器节点和I/O设备节点。这些节点中的任何一个都能够用作一个末端节点,它在本文中定义为SAN 100中发起或最终消耗若干消息或帧的一台设备。
在本发明的一个实施例中,分布式计算机系统内有一种错误应对机制,这种错误应对机制使分布式计算机系统比如SAN 100中,可以实现末端节点之间的可靠连接或可靠数据报通信。
如同本文中的情况,一条消息就是应用程序定义的一个数据交换单元,它是协同操作的过程之间通信的一个基本单位。一个数据包就是联网协议的报头和/或报尾封装后数据的一个单位。报头通常提供了控制和路由信息,引导该帧通过SAN 100。报尾通常包含着控制和循环冗余检验(CRC)数据,以确保传递数据包时内容不被破坏。
SAN 100包含着通信和管理基础设施,分布式计算机系统之内的I/O和处理器间通信(IPC)都受到支持。图1所示的SAN 100包括以交换机相连的通信线缆116,它使得许多设备能够在一个安全的、远程管理的环境中,以高带宽、短等待时间同时传递数据。末端节点能够通过多个端口通信,能够利用多条路径通过SAN线缆。可以采用图1所示的通过SAN的多个端口和路径,以实现容错,提高数据传递带宽。
图1中的SAN 100包括交换机112、交换机114、交换机146和路由器117。交换机就是将多个链接连接在一起的一台设备,它使用一个小报头目的地局部标识符(DLID)域,能够在一个子网之内引导若干数据包从一个链接到另一个链接。路由器就是将多个子网连接在一起的一台设备,它使用一个大报头目的地全局惟一标识符(DGUID),能够引导若干帧从第一个子网中的一个链接到第二个子网中的另一个链接。
在一个实施例中,一个链接就是任何两个网络线缆元件(比如目的节点、交换机或路由器)之间的一个全双工通道。适当的链接实例包括但是不限于铜电缆、光缆以及底板和印刷电路板上的印刷电路铜线。
对于可靠的服务类型、末端节点,比如主机处理器末端节点和I/O适配器末端节点,产生请求数据包并且返回肯定应答数据包。交换机和路由器使数据包通过,从源头至目的地。除了可变的CRC报尾域(它要在网络中的每个阶段都更新)以外,交换机使数据包通过而不改变。路由器在数据包通过时,更新可变的CRC报尾域,并且修改报头中的其他域。
在图1所示的SAN 100中,主机处理器节点102、主机处理器节点104和I/O机箱108包括至少一个通道适配器(CA)连接到SAN 100。在一个实施例中,每个通道适配器都是一个端点,它对于SAN线缆116中传送的源头或汇聚数据包,以充分的细节实施通道适配器接口。主机处理器节点102包含着若干通道适配器,其形式为主机通道适配器118和主机通道适配器120。主机处理器节点104包含着主机通道适配器122和主机通道适配器124。主机处理器节点102还包括中央处理器126-130和一个存储器132,通过总线系统134相互连接。主机处理器节点104同样包括中央处理器136-140和一个存储器142,通过总线系统144相互连接。
主机通道适配器118和120提供了至交换机112的连接,而主机通道适配器122和124提供了至交换机112和114的连接。
在一个实施例中,一个主机通道适配器是以硬件实施的。在这个实施方案中,主机通道适配器硬件分担了中央处理器和I/O适配器通信的许多经常负担。主机通道适配器的这种硬件实施方案,也允许在一个交换机连接的网络中同时进行多项通信,而不产生与通信协议相关联的传统开销。在一个实施例中,主机通道适配器和图1中的SAN100在零处理器复制数据传递以及不涉及操作系统内核过程的情况下,向分布式计算机系统的客户提供了I/O和处理器间通信(IPC),并且采用硬件来提供可靠的容错的通信。
如图1所示,路由器117连接到广域网(WAN)和/或局域网(LAN),再连接到其他主机或其他路由器。图1中的I/O机箱108包括一台交换机146和多个I/O模块148-156。在这些实例中,I/O模块的形式为适配卡。图1所示的实例适配卡包括I/O模块148所用的SCSI适配卡;I/O模块152所用的、通向光纤通道集线器和光纤通道-仲裁环路(FC-AL)设备的适配卡;I/O模块150所用的以太网适配卡;I/O模块154所用的图形适配卡;以及I/O模块156所用的视频适配卡。任何已知类型的适配卡都能够实施。I/O适配器也包括I/O适配器底板上的一台交换机,使适配卡连接到SAN线缆。这些模块包含着目标通道适配器158-166。
在这个实例中,图1中的RAID子系统节点106包括一个处理器168、一个存储器170、一个目标通道适配器(TCA)172以及多个冗余和/或条带式存储磁盘单元174。目标通道适配器172可以是一个全功能的主机通道适配器。
SAN 100管理着I/O的数据通信和处理器间的通信。SAN 100支持高带宽和I/O所需的可扩缩性,也支持处理器间通信所需的极短等待时间和低CPU开销。使用者客户能够绕过操作系统内核过程,直接访问网络通信硬件,比如主机通道适配器,这就能够实现高效的消息传输协议。SAN 100适于当前的计算模型,而且是一种标准组件,是I/O和计算机集群通信的新形式。另外,图1中的SAN 100使得I/O适配器节点能够在它们自己之间通信,或者与分布式计算机系统中的任何或所有处理器节点通信。利用与SAN 100相联的一个I/O适配器,该I/O适配器所在节点实质上与SAN 100中的任何主机处理器节点具有相同的通信能力。
在一个实施例中,图1所示的SAN 100支持通道语义和存储器语义。通道语义常常被称为发送/接收或者推送通信操作、通道语义是传统I/O通道中采用的通信类型,源设备推送数据,目的地设备确定数据的最终目的地。在通道语义中,从源过程传送的数据包指定了目的得过程的通信端口,但是不指定数据包将要写入目的地过程存储区域中的位置。因此,在通道语义中,目的地过程预先分配所传送数据的放置处。
在存储器语义中,一个源过程直接读写一个远程节点目的地过程的虚拟地址空间。该远程目的地过程仅仅需要与一个数据缓冲区的位置通信,而不需要涉及任何数据的传递。因此,在存储器语义中,一个源过程发送一个数据包,它包含着目的地过程的目的地缓冲区存储器地址。在存储器语义中,目的地过程事先允许源过程访问其存储器。
典型情况下,对于I/O和处理器间的通信,通道语义和存储器语义都是必要的。一个典型的I/O操作采用通道和存储器语义的一种组合。在图1所示分布式计算机系统的一个展示性I/O操作实例中,一个主机处理器节点(比如主机处理器节点102)使用通道语义启动一个I/O操作,将一条磁盘写命令发送到一个磁盘I/O适配器,比如RAID子系统目标通道适配器(TCA)172。该磁盘I/O适配器考察该命令并使用存储器语义,直接从主机处理器节点的存储区域读取数据缓冲区。读取了数据缓冲区之后,该磁盘I/O适配器采用通道语义,将一条I/O完成消息推送回主机处理器节点。
在一个示范性实施例中,图1所示的分布式计算机系统执行的操作采用虚拟地址和虚拟存储器保护机制,以确保对所有存储器的正确和适当访问。在这样一种分布式计算机系统中运行的应用程序,对于任何操作都不需要使用物理地址。
下一步转向图2,其中的一幅功能框图显示了依据本发明的一个优选实施例的一个主机处理器节点。主机处理器节点200是主机处理器节点(比如图1中的主机处理器节点102)的一个实例。在这个实例中,图2所示的主机处理器节点200包括一组客户202-208,它们是在主机处理器节点200上执行的过程。主机处理器节点200也包括通道适配器210和通道适配器212。通道适配器210包含着端口214和216,而通道适配器212包含着端口218和220。每个端口都连接到一个链接。这些端口能够连接到一个SAN子网或者多个SAN子网,比如图1中的SAN100。在这些实例中,这些通道适配器的形式为主机通道适配器。
客户202-208通过动词接口222以及消息和数据服务224,向SAN传递消息。一个动词接口本质上就是一个主机通道适配器全部功能的一种抽象描述。一个操作系统可以通过其编程接口,展示某些或所有动词功能。这个接口基本上定义了主机的行为。此外,主机处理器节点200还包括一种消息和数据服务224,它是一种级别高于动词层的接口,用于处理通过通道适配器210和通道适配器212收到的消息和数据。消息和数据服务224向客户202-208提供了一种处理消息和其他数据的接口。
现在参考图3A,其中的一幅框图显示了依据本发明的一个优选实施例的一个主机通道适配器。图3A所示的主机通道适配器300A包括一组队列对(QP)302A-310A,它们用于将消息传递到主机通道适配器端口312A-316A。要发送到主机通道适配器端口312A-316A的数据,通过虚拟巷道(VL)318A-334A进行通道缓冲,其中每个VL都有其自身的数据流控制。子网管理器为通道适配器配置了每个物理端口的局部地址,即端口的LID。子网管理器代理(SMA)336A是为了配置通道适配器而与子网管理器通信的实体。存储器寻址和保护(MTP)是把虚拟地址转换为物理地址以及确认访问权的一种机制。直接存储器访问(DMA)340A对于队列对302A-310A,提供了使用存储器342A的直接存储器访问操作。
一个单一的通道适配器,比如图3A所示的主机通道适配器300A,能够支持数千个队列对。相反,典型情况下,一个I/O适配器中的一个目标通道适配器支持的队列对数目要小得多。每个队列对包括一个发送工作队列(SWQ)和一个接收工作队列。发送工作队列用于发送通道和存储器语义消息。接收工作队列接收通道语义消息。客户访问一个操作系统特定的编程接口——本文中称为动词——将工作请求(WR)置于工作队列中。
图3B显示了依据本发明的一个优选实施例的一台交换机300B。交换机300B包括一个数据包中继器302B,通过若干虚拟巷道比如虚拟巷道306B,与许多端口304B进行通信。一般说来,一台交换机比如交换机300B能够引导若干数据包从一个端口到同一交换机上的任何其他端口。
同样,图3C显示了依据本发明的一个优选实施例的一台路由器300C。路由器300C包括一个数据包中继器302C,通过若干虚拟巷道比如虚拟巷道306C,与许多端口304C进行通信。如同交换机300B,一般说来路由器300C也将能够引导若干数据包从一个端口到同一路由器上的任何其他端口。
通道适配器、交换机和路由器采用单一物理链接之内的多条虚拟巷道。如图3A、图3B和图3C所示,若干物理端口将若干末端节点、若干交换机和若干路由器连接到一个子网。注入SAN线缆的若干数据包沿着一条或多条虚拟巷道,从数据包的源头至数据包的目的地。所选定的虚拟巷道映射自与该数据包相关联的一个服务级别。在任何一个时刻,仅有一条虚拟巷道通至一个给定的物理链接。虚拟巷道提供了一种技术,在不影响其他虚拟巷道的情况下,对一条虚拟巷道进行链接级别的数据流控制。由于争用、服务质量(QoS)或其他因素,使一条虚拟巷道中的一个数据包受阻时,就允许另一条虚拟巷道中的一个数据包前进。采用虚拟巷道有许多理由,其中一部分如下:
虚拟巷道提供了QoS。在一个示范实施例中,保留了一定的虚拟巷道,为高优先权的或同步的通信量提供QoS。
虚拟巷道提供了死锁避免。虚拟巷道允许含有环路的拓扑结构通过所有的物理链接发送数据包,而仍然能够确保环路不会引起可能造成死锁的返压依赖。
虚拟巷道减轻了线端阻塞。对于使用一条给定虚拟巷道的若干数据包,当一台交换机没有更多的信用量可用时,就允许数据包使用另一条具有充分信用量的虚拟巷道,以便继续前进。
现在参考图4,其中显示了依据本发明的一个优选实施例的工作请求处理过程。在图4中,为了处理来自和为了客户406的若干请求,有一个接收工作队列400、发送工作队列402和完成队列404。来自客户406的这些请求,最终发送到硬件408。在这个实例中,客户406产生了工作请求410和412,并接收完工查询414。如图4所示,置于一个工作队列中的若干工作请求,称为工作队列元素(WQE)。
发送工作队列402包含着工作队列元素(WQE)422-428,它们描述了要传送到SAN线缆中的数据。接收工作队列400包含着工作队列元素(WQE)416-420,它们描述了要将来自SAN线缆的引入通道语义数据置于何处。由主机通道适配器中的硬件408来处理工作队列元素。
这些动词也提供了从完成队列404检索已完成工作的一种机制。如图4所示,完成队列404包含着完成队列元素(CQE)430-436。完成队列元素包含着过去已完成的工作队列元素有关的信息。完成队列404用于为多个队列对产生一个单一的完成通知点。一个完成队列元素就是完成队列中的一个数据结构。这个元素描述了一个已完成的工作队列元素。完成队列元素包含足够的信息,以便确定队列对和已完成的特定工作队列元素。完成队列上下文就是一个信息块,它包含着管理各个完成队列需要的指针、长度和其他信息。
支持图4所示的发送工作队列402的实例工作请求如下。一个发送工作请求就是一个通道语义操作,将一组本机数据片段推送至一个远程节点的接收工作队列元素引用的数据片段。例如,工作队列元素428包含着对数据片段4438、数据片段5440和数据片段6442的引用。发送工作请求之数据片段中的每一个都包含着一个虚拟地毗邻的存储区域。引用这些本机数据片段所用的虚拟地址,处于产生本机队列对之过程的地址上下文中。
一个远程直接存储器访问(RDMA)的读取工作请求,提供了一种存储器语义操作,以读取一个远程节点上的一个虚拟地毗邻的存储区域。一个存储区域或者可以是一个存储器区域的一部分,或者可以是一个存储器窗口的一部分。一个存储器区域引用事先注册的一组由一个虚拟地址和长度定义的虚拟地毗邻的存储器地址。一个存储器窗口引用一组虚拟地毗邻的存储器地址,它们已经限制在一个事先注册的区域中。
RDMA的读取工作请求读取一个远程末端节点上的一个虚拟地毗邻的存储区域,并且将数据写入一个虚拟地毗邻的本机存储区域。类似于发送工作请求,RDMA的读取工作队列元素用来引用本机数据片段的若干虚拟地址,处于产生本机队列对之过程的地址上下文中。例如,接收工作队列400中的工作队列元素416,引用数据片段1444、数据片段2446和数据片段3448。远程虚拟地址所在的地址上下文,属于拥有RDMA的读取工作队列元素指向之远程队列对的过程。
一个RDMA的写入工作队列元素提供了一个存储器语义操作,以写入一个远程节点上的一个虚拟地毗邻的存储区域。RDMA的写入工作队列元素包含着一个散布列表,列出了本机中虚拟地毗邻的存储区域以及本机存储区域写入之远程存储区域的虚拟地址。
一个RDMA的FetchOp工作队列元素提供了一个存储器语义操作,以对一个远程字进行一种原子操作。RDMA的FetchOp工作队列元素是一种组合的RDMA读取、修改和RDMA写入操作。RDMA的FetchOp工作队列元素能够支持几种读取-修改-写入操作,比如“比较”以及“如相等则交换”。一个约束(释放)远程访问键(R_Key)工作队列元素提供了一条命令,以便主机通道适配器硬件使一个存储器窗口关联到(脱离)一个存储器区域,从而修改(撤销)存储器窗口。R_Key是每个RDMA访问的一部分,并且用于确认已经允许该远程过程访问缓冲区。
在一个实施例中,图4所示的接收工作队列400仅仅支持一种类型的工作队列元素,称为接收工作队列元素。接收工作队列元素提供了一种通道语义操作,它描述了一个本机存储区域,引入的发送消息写入其中。接收工作队列元素包括一个散布列表,描述了几个虚拟地毗邻的存储区域。一条引入的发送消息写入这些存储区域中。这些虚拟地址处于产生本机队列对之过程的地址上下文中。
为了进行处理器间的通信,一个用户模式的软件过程直接从缓冲区在存储器中的驻留处,通过若干队列对传递数据。在一个实施例中,通过队列对的传递绕过了操作系统,耗用为数不多的几个主机指令周期。队列对允许零处理器复制的数据传递以及不涉及操作系统内核。零处理器复制的数据传递,提供了对高带宽、短等待时间通信的高效支持。
产生一个队列对时,该队列对设定为提供一种选定类型的传输服务。在一个实施例中,实施本发明的一个分布式计算机系统支持四种类型的传输服务:可靠的连接、不可靠的连接、可靠的数据报和不可靠的数据报连接服务。
可靠的和不可靠的连接服务,使一个本机队列对关联到一个且仅有一个远程队列对。对于要通过SAN线缆进行通信的每个过程,连接服务都需要一个过程来产生一个队列对。因此,如果N个主机处理器节点中的每一个都包含P个过程,而且每个节点上的所有P个过程都希望与所有其他节点上的所有过程通信,那么每个主机处理器节点就需要P2x(N-1)个队列对。此外,一个过程能够将一个队列对连接到同一主机通道适配器上的另一个队列对。
如果一个分布式计算机系统采用一种可靠的连接服务来进行分布式过程之间的通信,其一部分通常如图5所示。图5中的分布式计算机系统500包括一个主机处理器节点1、一个主机处理器节点2和一个主机处理器节点3。主机处理器节点1包括一个过程A 510。主机处理器节点3包括一个过程C 520和一个过程D 530。主机处理器节点2包括一个过程E 540。
主机处理器节点1包括队列对4、6和7,其中每一个都具有发送工作队列和接收工作队列。主机处理器节点2具有一个队列对9,主机处理器节点3具有队列对2和5。分布式计算机系统500的可靠连接服务,使一个本机队列对关联到一个且仅有一个远程队列对。因此,队列对4用于与队列对2通信;队列对7用于与队列对5通信;队列对6用于与队列对9通信。
在一个可靠的连接服务中,置于一个队列对上的一个WQE,使数据写入相连接之队列对的一个接收WQE引用的接收存储空间。RDMA操作在相连接之队列对的地址空间上运行。
在本发明的一个实施例中,可靠的连接服务之所以可靠,是因为硬件维护着序号并且确认所有的数据包传递。硬件和SAN驱动软件的一种结合对任何失败的通信都要重试。即使在存在着数位错误、欠载接收和网络拥挤时,队列对的过程客户也会获得可靠的通信。如果在SAN线缆中存在着另外的路径,那么即使在存在着线缆交换机、链接或通道适配器端口失效时,也能够保持可靠的通信。
此外,可以采用确认来通过SAN线缆可靠地传递数据。确认可以是,也可以不是过程级别的确认,即证实一个接收过程已经耗用了数据的一个确认。另外,确认也可以仅仅表明数据已经到达其目的地。
可靠的数据报服务将一个本机端到端(EE)上下文关联到一个且仅有一个远程端到端上下文。可靠的数据报服务允许一个队列对的一个客户过程与任何其他远程节点上的任何其他队列对通信。在一个接收工作队列中,可靠的数据报服务允许从任何其他远程节点上的任何发送工作队列引入消息。
因为可靠的数据报服务是无连接的,所以可靠的数据报服务极大地改善了可扩缩性。因此,具有固定数目之队列对的一个末端节点,利用可靠的数据报服务能够与之通信的过程和末端节点,比利用可靠的连接传输服务要多得多。例如,假若N个主机处理器节点中的每一个都包含P个过程,而且每个节点上的所有P个过程都希望与所有其他节点上的所有过程通信,那么可靠的连接服务在每个节点上就需要P2x(N-1)个队列对。与之相比,对于恰好同样多的通信,无连接的可靠数据报服务在每个节点上仅仅需要P个队列对+(N-1)个EE上下文。
如果一个分布式计算机系统采用一种可靠的数据报服务来进行分布式过程之间的通信,其一部分如图6所示。图6中的分布式计算机系统600包括一个主机处理器节点1、一个主机处理器节点2和一个主机处理器节点3。主机处理器节点1包括一个过程A 610,它有一个队列对4。主机处理器节点2具有一个过程C 620和一个过程D 630,前者有一个队列对24,后者有一个队列对25。主机处理器节点3具有一个过程E 640,它有一个队列对14。
在分布式计算机系统600中实施的可靠的数据报服务中,这些队列对以称为无连接传输服务来耦合。例如,一种可靠的数据报服务将队列对4耦合到队列对24、25和14。确切地说,一种可靠的数据报服务使得队列对4的发送工作队列能够可靠地将消息传递到队列对24、25和14中的接收工作队列中。同样,队列对24、25和14中的发送队列也能够可靠地将消息传递到队列对4中的接收工作队列中。
在本发明的一个实施例中,可靠的数据报服务采用序号以及与每个消息帧相关联的确认,以确保与可靠的连接服务相同程度的可靠性。端到端(EE)上下文保持了端到端特定的状态,以便对序号、确认和超时值保持跟踪。保持在EE上下文中的端到端状态,由一对末端节点之间的所有无连接队列对通信共享。每个末端节点对于它希望以可靠的数据报服务与之通信的每一个末端节点,都需要至少一个EE上下文(例如,一个给定的末端节点需要至少N个EE上下文,以便能够与N个其他的末端节点具有可靠的数据报服务)。
不可靠的数据报服务是无连接的。不可靠的数据报服务由管理应用程序所采用,以便发现新的交换机、路由器和末端节点,并且将它们整合到给定的分布式计算机系统中。与可靠的连接服务和可靠的数据报服务不同,不可靠的数据报服务并不提供可靠性保证。所以,不可靠的数据报服务运行时,在每个末端节点上保持的状态信息较少。
下一步转向图7,其中展示了依据本发明的一个优选实施例的一个数据包。一个数据包就是穿过SAN线缆的一个信息单位。数据包是一种末端节点至末端节点的构造,因此是由末端节点产生和耗用。对于去往一个(或者是主机或者是目标)通道适配器的数据包,这些数据包既不是由SAN线缆中的交换机和路由器产生,也不是由它们耗用。不是像对于去往一个通道适配器的数据包那样,交换机和路由器只是通过在过程中修改可变链接报头域,将请求数据包或确认数据包移向更接近最终目的地。数据包跨越一个子网边界时,路由器也会修改数据包的网络报头。在穿越一个子网时,单个数据包保留在单一的服务级别。
消息数据700包含着数据片段1702、数据片段2704和数据片段3706,它们类似于图4展示的数据片段。在这个实例中,这些数据片段形成了一个数据包708,置于数据包712之内的包净荷710中。另外,数据包712还包含CRC 714,它用于错误检验。另外,在数据包712中还有路由报头716和传输报头718。路由报头716用于为数据包712标识源头和目的地端口。传输报头718在这个实例中为数据包712指定了目的地队列对。另外,传输报头718还提供了一些信息,比如数据包712的操作码、包序号和分区。
操作码标识了这个包是一条消息的第一个、最后一个、中间的还是仅有的包。操作码也指定了该操作是发送、RDMA写入、RDMA读取还是原子操作。建立通信时,将包序号初始化,一个队列对每次产生一个新包时,包序号增大。一个末端节点的若干端口,可以配置为一个或多个组的成员,称为分区。这些组可能重叠。
在图8中,显示了一个分布式计算机系统的一部分,以展示一个实例请求和确认处理。图8中的分布式计算机系统包括一个主机处理器节点802和一个主机处理器节点804。主机处理器节点802包括一个主机通道适配器806。主机处理器节点804包括一个主机通道适配器808。图8中的分布式计算机系统还包括一条SAN线缆810,它包括交换机812和交换机814。SAN线缆包括将主机通道适配器806耦合到交换机812的一个链接,将交换机812耦合到交换机814的一个链接,以及将主机通道适配器808耦合到交换机814的一个链接。
在这个实例处理中,主机处理器节点802包括一个客户过程A。主机处理器节点804包括一个客户过程B。客户过程A通过队列对23(824和826),与主机通道适配器806互动。客户过程B通过队列对24(828和830),与主机通道适配器硬件808互动。队列对23和24为数据结构,包括一个发送工作队列和一个接收工作队列。
过程A将若干工作队列元素置于队列对23的发送队列824中,从而启动一个消息请求。这样一个工作队列元素展示在图4中。客户过程A的消息请求,由发送工作队列元素中包含的一个汇集列表引用。汇集列表中的每个数据片段都指向一个虚拟地毗邻的本机存储区域,它包含着该消息的一部分,比如数据片段1、2和3所示,分别保持着图4中消息的部分1、2和3。
主机通道适配器806中的硬件将该消息存放在虚拟毗邻缓冲区中的工作队列元素和若干片段,读取到若干数据包中,比如图7展示的数据包。引导数据包经过SAN线缆,而且对于可靠的传递服务,数据包要由最终目的地末端节点确认。如果未经正确确认,源头末端节点就要再次发送数据包。数据包由源头末端节点产生,由目的地末端节点耗用。
参考图9,其中显示了依据本发明之分布式网络系统中使用的网络寻址。一个主机名称为一个主机节点(比如一个主机处理器节点或I/O适配器节点)提供了一个逻辑标识。主机名称标识了消息的端点,所以消息就去往由主机名称指定一个末端节点上驻留的过程。因此,每个节点有一个主机名称,但是一个节点可以具有多个CA。为每个部件分配一个单一的、IEEE分配的64位标识符(EUI-64)902。一个部件可以是一台交换机、路由器或CA。
每个CA端口906分配一个或多个全局惟一的ID(GUID)标识符。可以使用多个GUID(亦称为IP地址)有几个理由,下面的例子说明了其中的部分理由。在一个实施例中,不同的IP地址标识一个末端节点上的不同分区或服务。在另一个实施例中,不同的IP地址用于指定不同的服务质量(QoS)属性。在又一个实施例中,不同的IP地址标识通过内部子网路由的不同路径。
一个GUID 908分配到交换机910上。
一个本机ID(LID)是指在单一的子网之内识别一个CA端口所用的一个短地址ID。在一个示范实施例中,一个子网具有多至216个末端节点、交换机和路由器,所以LID就是16位。源LID(SLID)和目的地LID(DLID)就是一个本机网络报头中使用的源头和和目的地LID。一个单一的CA端口906具有多至2LMC个LID 912分配给它。LMC表示CA中的LID掩码控制域。掩码是用来决定接收或拒绝另外一组数据的数位模式。
可以使用多个LID有几个理由,下面的例子提供了其中的部分理由。在一个实施例中,不同的LID标识一个末端节点中的不同分区或服务。在另一个实施例中,不同的LID用于指定不同的QoS属性。在又一个实施例中,不同的LID指定通过子网的不同路径。一个单一的交换机端口914具有一个LID 916与它相关联。
因为对于每个端口,一个CA具有的LID可能多于也可能少于GUID,所以LID与GUID之间不必存在一对一的对应关系。对于有冗余端口和冗余传导能力通至多条SAN线缆的CA,CA就能够在它的每一个端口上使用相同的LID和GUID,但是并不要求它这样做。
图10展示了依据本发明的一个优选实施例的分布式计算机系统的一部分。分布式计算机系统1000包括子网1002和子网1004。子网1002包括主机处理器节点1006、1008和1010。子网1004包括主机处理器节点1012和1014。子网1002包括交换机1016和1018。子网1004包括交换机1020和1022。
路由器连接着子网。例如,子网1002通过路由器1024和1026连接到子网1004。在一个示范实施例中,一个子网具有多至216个末端节点、交换机和路由器。
一个子网定义为作为单一单元管理的一组末端节点和级联的交换机。典型情况下,一个子网占据了单一的地理或功能区域。例如,一个房间里的单一计算机系统可以被定义为一个子网。在一个实施例中,子网中的交换机可以为消息找到非常快捷的虫蚀或直通路由。
一个子网之内的一台交换机考察该子网之内惟一的DLID,以允许该交换机快速、高效地为引入的消息包确定路由。在一个实施例中,交换机是一个相对简单的电路,典型情况下实施为单一的集成电路。一个子网可以具有级联交换机形成的成百上千的末端节点。
如图10所示,为了扩充为大得多的系统,子网与路由器相连,比如路由器1024和1026。路由器解释IP目的地ID(如IPv6目的地ID)并确定似IP包的路由。
图3B中一般性地展示了一台交换机的一个示范实施例。一台交换机或路由器的每条I/O路径都有一个端口。一般说来,一台交换机能够将若干数据包从一个端口上传送到同一交换机上任何其他端口。
在一个子网之内,比如子网1002或子网1004,由目的主机通道适配器端口的LID,确定从源端口到目的地端口的一条路径。在子网之间,确定路径则是根据目的地主机通道适配器端口的IP地址(如IPv6地址),以及根据到达目的地子网将要使用的路由器端口的LID地址。
在一个实施例中,请求数据包和请求包对应的肯定确认(ACK)或否定确认(NAK)帧,不要求它们使用的路径是对称的。在一个采用特定路由的实施例中,交换机根据DLID选择一个输出端口。在一个实施例中,一台交换机对其所有的输入端口使用同一组路由决策准则。在一个示范实施例中,路由决策准则包含在一个路由表中。在另一个实施例中,交换开关对每个输入端口采用不同组的准则。
典型情况下,本发明的分布式计算机系统的数据处理事务,包括几个硬件和软件步骤。一种客户过程数据传输服务可以是用户模式,也可以是内核模式。客户过程通过一个或多个队列对访问主机通道适配器硬件,比如如图3A、图5和图6所示的队列对。客户过程调用一种操作系统特定的编程界面,本文中称之为“动词”。执行动词的软件代码将一个工作队列元素放置到给定队列对的工作队列里。
放置一个工作队列元素有许多可能的方法,也有许多可能的工作队列元素格式,它们容许设计为各种不同的性能价格比模式,但是这并不影响互操作性。然而,一个用户过程必须以一个明确定义的方式与动词通信,通过SAN线缆传输数据的格式和协议,必须充分地指定,以便允许若干设备在一个异构的卖方环境下进行互操作。
在一个实施例中,通道适配器硬件检测工作队列元素的放置,并且访问工作队列元素。在这个实施例中,通道适配器翻译和确认了这个工作队列元素的虚拟地址并且访问了该数据。
一个外发的消息分成一个或多个数据包。在一个实施例中,通道适配器硬件给每一个数据包添加一个传输报头和网络报头。传输报头包括序号和其它传输信息。网络报头包括路由信息,比如目的地IP地址和其它网络路由信息。链接报头含有目的地本机标识符(DLID)和其它本机路由信息。在数据包中总要添加适当的链接报头。如果目的地末端节点驻留在一个远程子网中,给定的数据包中就要添加适当的全局网络报头。
如果采用了一种可靠的传输服务,当一个请求数据包到达其目的地末端节点时,目的地末端节点就会发出若干确认数据包,让请求数据包的发送者知道,请求数据包已经在目的地被验证并且接收了。确认数据包确认一个或多个有效的和接受的请求数据包。请求者在收到任何确认之前,可能已有多个未完成的请求数据包。在一个实施例中,多条未完成的消息,即请求数据包的数目是在产生队列对时确定的。
图11中的框图一般地展示了实施本发明的一个分层架构1100的一个实施例。图11中的分层架构图显示了各层数据通信路径,以及通过各层之数据和控制信息的组织结构。
主机通道适配器末端节点协议层(例如,末端节点1111所用者)包括客户1103定义的上层协议1102、传输层1104、网络层1106、链接层1108和物理层1110。交换机层(例如,交换机1113所用者)包括链接层1108和物理层1110。路由器层(例如,路由器1115所用者)包括网络层1106、链接层1108和物理层1110。
分层架构1100一般遵从一种经典通信堆叠的概要。例如,对于末端节点1111的协议层,上层协议1102采用动词在传输层1104上产生消息。网络层1106使数据包在网络子网(1116)之间传输。链接层1108使数据包在一个网络子网(1118)之内传输。物理层1110向其它设备的物理层发送若干数位或者若干数位组。每一层都不知道它的上层或它的下层是如何执行它们的功能。
客户1103和1105表示若干应用程序或过程,它们采用其它层在末端节点之间进行通信。传输层1104提供了端到端的消息移动。在一个实施例中,传输层提供了如上所述的四类传输服务:可靠的连接服务;可靠的数据报服务;不可靠的数据报服务以及原始数据报服务。网络层1106使数据包通过一个子网或多个子网到达目的地末端节点。链接层1108进行流量控制、错误检测以及跨链接的优先数据包传递。
物理层1110执行技术相关的数位传输。若干数位和或若干数位组通过链接1122、1124和1126,在物理层之间进行传输。链接的实施可以利用印刷电路铜线、铜电缆、光缆或者其它合适的连接。
图12展示了依据本发明的一个优选实施例的逻辑分区环境中的一个主机通道适配器。该HCA包括第一个物理端口1202和第二个物理端口1204。本领域的技术人员将会理解,该HCA可以包括更多或更少的端口,取决于实施方案。该HCA还可以包括逻辑交换机1212、1214。物理HCA关联到多个逻辑分区,从LPAR 11272到LPAR N1278。这些LPAR关联到若干逻辑主机通道适配器,从LHCA 11242到LHCA N 1248。
单个物理端口上的多个逻辑端口:
本发明运行在以上关于图1-12所介绍的SAN环境之内。本发明满足公知的QP0通信通道的InfiniBand需求,为一个逻辑HCA上的每个逻辑端口,也为每台逻辑开关机,提供这种通道。对于这些低使用率的通信通道,不是每一条都包括分别的物理资源,而是为每个物理端口提供单一的物理QP0及其相关联的固件。本发明提供了若干机制,当只有单一的QP0关联到所述物理端口时,代表多个逻辑端口传送和处理该QP0的通信量。一个外部子网管理器无法将逻辑交换机和带有若干逻辑端口的逻辑HCA与真实的物理实体区分开。
QP0需求:
所有的逻辑端口/交换机都需要支持子网管理代理(SMA),以便响应子网管理器(SM)的请求。此外,子网管理器1282-1288可能需要在LPAR 1272-1278中运行。同时,每个SM也将需要一个QP0与子网上的其他节点以及物理HCA上的若干逻辑节点通信。在LPAR中运行的子网管理器所使用的QP,称为别名QP01252-1258,并且使用标准的IB动词接口进行访问。
为了在同一HCA中同时支持管理器和代理,收到的所有QP0数据包都必须首先进行多路分解,以确定去往的目标。这些数据包在每个物理端口的单一QP上接收,并且由管理程序码进行处理,它也称为管理程序子网管理代理(HSMA)1230。后文中这个QP称为HSMA QP0。这些QP显示为HSMA QP0端口11222和HSMA QP0端口21224。子网管理接口(SMI)1260用于确定一个数据包是去往一个子网管理器,还是去往一个子网管理代理。
HCA之内QP0通信量的数据流:
图13展示了依据本发明的一个优选实施例的逻辑分区环境中,通信量子网管理数据流的一个实例。如同在这个环境下与其它所有QP一样,提供了一种机制,根据其DLID来确定是否应当接受一个收到的数据包。同样,在传输时也提供了一种机制,确定该数据包应该传输到外部还是循环回到一个内部QP。
从一个外部端口(动作1和3)比如物理端口21304,收到的所有QP0通信量,一开始就通过HCA硬件传送到所述物理端口所用的HSMA QP0 1324,它由代表所有LPAR和逻辑交换机的管理程序SMA 1330监控。该管理程序SMA还代表若干逻辑端口(动作2)进行响应。
为了确定子网管理包(SMP)的最终目的地,这个公共代理对SMP进行解码。如果该SMA要去往驻留在LPAR 1372上的子网管理器1382,在HSMA QP0端口21324接收队列中收到并且解码的数据包,就在HSMA QP0端口21324发送队列上排队,以便通过LHCA 11342传送到别名QP0 1352上。该HCA硬件将数据包循环回到适当的LPAR中的别名QP0(动作4)。源自子网管理器1382的QP0通信量,可以使用别名QP0(动作5)直接传输。
引导的路由通信量——标识为使用允许LID(x’FFFF’)的若干数据包——由HSMA代表LHCA或者是逻辑交换机进行处理。在这种情况下,HCA硬件无法根据LID确定数据包的路由。因此,在WQE中提供了一个数位,以容许HSMA指引出站数据包或者是到一个外部端口,或者是到一个别名QP0。如果指引是到一个别名QP0,HSMA还在WQE中提供该别名QP0的真实QP号,以便通知将要放置该数据包之队列的HCA。
参考图14,其中显示了一幅流程图,展示了依据本发明的一个优选实施例的一个主机通道适配器中,一个收到的数据包的处理。该过程开始于在HSMA QP0收到一个数据包,以及确定数据包是去往一个子网管理器还是去往一个子网管理代理(步骤1402)。如果数据包去往一个子网管理器,该过程就使数据包循环回到SM的别名QP0(步骤1404)并且结束。
如果在步骤1402中数据包是去往一个子网管理代理,该过程就代表逻辑端口SMA准备一个响应数据包(步骤1406),并且确定该响应数据包的目的地是否为一个逻辑端口(步骤1408)。如果响应数据包的目的地是一个外部端口,而不是HCA之内的一个逻辑端口,那么该过程就传送该响应数据包并且指明一个逻辑端口的源LID(步骤1410)。然后,该过程将响应数据包强行传送至一个外部物理端口(步骤1412),处理过程结束。
如果响应数据包是去往一个内部逻辑端口(步骤1408),那么该过程就传送响应数据包并且指明该逻辑端口的源LID(步骤1414)。随后,该过程强行循环返回到内部别名QP0(步骤1416),处理过程结束。
现在参考图15,其中的流程图展示了依据本发明的一个优选实施例的一个主机通道适配器中,发送一个数据包的过程。该过程开始于一个LPAR的SM发送一个数据包之时。作出一个决定,数据包的目的地是否为HCA之内的一个逻辑端口(步骤1502)。如果目的地是一个外部端口,该过程就使用别名QP0从子网管理器直接传送数据包(步骤1504),处理过程结束。然而,如果在步骤1502中,数据包的目的地是到HCA之内的一个逻辑端口,该过程就使数据包循环回到HSMA QP0(步骤1506),处理过程结束。
HSMA QP0:
每个物理端口都有一个HSMA QP0。物理端口和HSMA QP0的关联关系可以是硬布线的或可配置的。一种简单常规做法是QP0与端口1相关联,QP1与端口2相关联,依此类推,直到所支持的物理端口数目。
HSMA QP0可以实施为专用的QP。然而,由于它们与常规的不可靠数据报(UD)QP共享许多特征,将它们实施为具有额外功能的UD QP,可能效率更高。在这种情况下,一个HSMA QP0可以由一个控制位来标识,该控制位与一个UD QP相关联。这一数位可以存放在UD QP的上下文里,它含有属于该QP的所有状态信息和配置信息。
一个HSMA QP0所需要的专门功能如下:
1.能够接收去往任何逻辑端口的SMP,并且向HSMA指明要去往的目标。在与收到的SMP相关联的完成队列入口(CQE)中,提供要去往之目标的目的地LID。
2.能够传送SMP并且在数据包报头中提供任何逻辑端口或者任何外部端口的源LID。这个源LID是提供给HSMA QP0发送队列中放置的工作队列元素(WQE)中的HCA。
3.能够将SMP强行传送到一个外部物理端口或者强行循环回到WQE中指定的一个内部别名QP0。这种做法是由一个“Force-Out”数位指明,该数位是在HSMA QP0发送队列中放置的WQE中。
4.能够在HSMA QP0发送队列中放置的WQE中,提供别名QP的真实QP号,从而将一个SMP强行循环回到一个别名QP0。
5.能够传送若干SMP并且指明源QP为QP0,它与发送SMP的QP无关。或者可以对从HSMA QP0发送的每个数据包固化代码,或者由HSMA在HSMA QP0发送队列中放置的WQE中提供。
6.除了以上功能之外,HSMA QP0必须符合一个QP0的所有IB定义的特征(比如接受带有任何Q_Key的SMP,始终使用VL15,能够使用容许的LID接收/传送数据包,等等)。
别名QP0:
希望使用物理HCA的每个子网管理器实例,都需要用别名QP0来访问HCA。为了使HCA资源的使用效率最高,同时容许最大的可扩缩性,具有将规则的UD QP配置为别名QP0的能力是有益的。别名QP0由一个控制数位标识,它存放在UD QP的上下文中。
一个别名QP0所需要的专门功能如下:
1.能够接收去往QP0的若干SMP,QP0与别名QP0的真实QP号无关。
2.能够接收从HSMA QP0循环返回的若干SMP。
3.能够使用x’FFFF’的目的地LID,发送循环返回到HSMAQP0的若干SMP。
4.能够向外传送若干SMP并且指明源QP为QP0,它与发送SMP的QP无关。
5.除了以上功能之外,别名QP0必须符合一个QP0的所有IB定义的特征(比如接受带有任何Q_Key的SMP,始终使用VLI5,接受目标指向容许的LID的若干SMP,等等)。
与HSMA QP0和别名QP0相关联的CQ:
HSMA QP0和别名QP0分配到若干CQ,其方式与任何其他QP相同。任何CQ都可以分配给任何特殊的QP。
放置在与HSMA QP0相关联的一个CQ中的CQE,具有HCA提供的完全的目的地LID。这个DLID与数据包到达点HSMA QP0合并,被HSMA用于确定数据包的原始去往目标逻辑端口。
因此,本发明为一个逻辑HCA上的每个逻辑端口也为每台交换机提供了一条公知的QP0通信通道,从而解决了现有技术的缺点。对于这些低使用率的通信通道,不是每一条都包括分别的物理资源,而是为每个物理端口提供单一的物理QP0及其相关联的固件。本发明包括若干机制,当只有单一的QP0关联到所述物理端口时,代表多个逻辑端口传送和处理该QP0的通信量。一个外部子网管理器无法将逻辑交换机和带有若干逻辑端口的逻辑HCA与真实的物理实体区分开。对一个HCA进行非常小的改进,就能够实现QP0的这种虚拟化,同时具有可扩缩到支持大量的LPAR的能力,而不会消耗额外的HCA资源。本发明还具有在使用标准的服从InfiniBand子网管理器的同时提供QP0虚拟化的优点。
虽然是在全功能数据处理系统的环境中介绍本发明,但是本领域的普通技术人员将会承认,本发明的过程能够以含有指令的计算机可读介质的形式和多种形式发行,而且无论进行发行时实际使用的信号承载介质的具体类型如何,本发明都会同样应用,注意到这两点很重要。计算机可读介质的实例包括可记录型的介质,比如一片软盘、一台硬盘驱动器、一片RAM、CD-ROM、DVD-ROM,以及传输型的介质,比如数字和模拟通信连接、有线或无线通信连接,它们使用若干传输形式,比如举例来说,射频和光波传输。计算机可读的介质可以采取若干编码格式的形式,经过解码后在具体的数据处理系统中实际使用。
为了展示和说明的目的,已经呈献了本发明的说明,但是本说明并非试图面面俱到,亦非试图将本发明局限在所公开的形式中。对于本领域的普通技术人员,许多修改和变化是显而易见的。选择和介绍本实施例,是为了最好地讲解本发明的原理、实际应用和使本领域的其他普通技术人员能够理解本发明,以便实现具有多种修改的多种实施例,适应具体的预期使用效果。
Claims (14)
1.一种用于InfiniBand体系结构的主机通道适配器的在物理端口上仿真多个逻辑端口的方法,所述方法包括:
为物理端口提供队列对零点;
提供多个逻辑端口,其中去往所述多个逻辑端口的数据包在所述物理端口接收,所述主机通道适配器响应去往给定逻辑端口的数据包的接收,使该数据包循环回到该给定逻辑端口;以及
为所述多个逻辑端口中的每一个,提供别名子网管理器队列对,其中,从别名子网管理器队列对发送数据包;并且所述主机通道适配器响应去往给定逻辑端口的数据包的发送,使该数据包循环回到所述物理端口所用的队列对零点。
2.根据权利要求1的方法,进一步包括:
所述主机通道适配器响应去往外部端口的数据包的发送,使该数据包传送到所述物理端口。
3.根据权利要求1的方法,进一步包括:
为所述物理端口提供一台逻辑交换机。
4.根据权利要求1的方法,其中每个别名子网管理器队列对都关联到一个逻辑分区。
5.根据权利要求1的方法,进一步包括:
提供管理程序子网管理代理,其中所述管理程序子网管理代理为多个逻辑端口传送通信量。
6.根据权利要求5的方法,其中管理程序子网管理代理代表所述多个逻辑端口发送响应数据包。
7.一种用于InfiniBand体系结构的主机通道适配器的在物理端口上仿真多个逻辑端口的装置,所述装置包括:
物理端口所用的队列对零点;
多个逻辑端口,其中去往所述多个逻辑端口的数据包在所述物理端口接收,所述主机通道适配器响应去往给定逻辑端口的数据包的接收,使该数据包循环回到该给定逻辑端口;以及
所述多个逻辑端口中的每一个所用的别名子网管理器队列对,其中,从别名子网管理器队列对发送数据包;并且所述主机通道适配器响应去往给定逻辑端口的数据包的发送,使该数据包循环回到所述物理端口所用的队列对零点。
8.根据权利要求7的装置,进一步包括:
管理程序子网管理代理,其中管理程序子网管理代理为多个逻辑端口传送通信量。
9.根据权利要求8的装置,其中管理程序子网管理代理代表所述多个逻辑端口发送响应数据包。
10.根据权利要求7的装置,进一步包括:
与所述物理端口相关联的一台逻辑交换机。
11.根据权利要求7的装置,其中为了响应去往外部端口的数据包的发送,逻辑交换机将该数据包传送到所述物理端口。
12.根据权利要求7的装置,其中每个别名子网管理器队列对都关联到一个逻辑分区。
13.一种InfiniBand体系结构的主机通道适配器,包括:
一个或多个物理端口;
每个物理端口所用的队列对零点,其中在物理端口收到的若干数据包放置在对应的队列对零点上;
多个逻辑主机通道适配器,其中每个逻辑主机通道适配器都关联到一个逻辑分区,其中每个逻辑主机通道适配器都具有至少一个逻辑端口,并且每个逻辑端口都具有相关联的别名队列对零点;
管理程序子网管理代理,其中管理程序子网管理代理在物理端口所用的队列对零点接收若干数据包,代表若干逻辑端口发送响应数据包,并且将所速若干数据包路由到去往的逻辑端口。
14.根据权利要求13的主机通道适配器,进一步包括:
与给定的物理端口相关联的一台逻辑交换机,其中所述逻辑交换机从别名队列对零点接收数据包,并且为了响应去往给定逻辑端口的数据包的接收,使该数据包循环回到物理端口所用的队列对零点。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/626,988 US20050018669A1 (en) | 2003-07-25 | 2003-07-25 | Infiniband subnet management queue pair emulation for multiple logical ports on a single physical port |
US10/626,988 | 2003-07-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1617526A CN1617526A (zh) | 2005-05-18 |
CN100375469C true CN100375469C (zh) | 2008-03-12 |
Family
ID=34080526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100713467A Expired - Fee Related CN100375469C (zh) | 2003-07-25 | 2004-07-20 | 在物理端口上模拟多个逻辑端口的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050018669A1 (zh) |
CN (1) | CN100375469C (zh) |
Families Citing this family (168)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050132089A1 (en) * | 2003-12-12 | 2005-06-16 | Octigabay Systems Corporation | Directly connected low latency network and interface |
US7664110B1 (en) | 2004-02-07 | 2010-02-16 | Habanero Holdings, Inc. | Input/output controller for coupling the processor-memory complex to the fabric in fabric-backplane interprise servers |
US7757033B1 (en) | 2004-02-13 | 2010-07-13 | Habanero Holdings, Inc. | Data exchanges among SMP physical partitions and I/O interfaces enterprise servers |
US8145785B1 (en) | 2004-02-13 | 2012-03-27 | Habanero Holdings, Inc. | Unused resource recognition in real time for provisioning and management of fabric-backplane enterprise servers |
US7561571B1 (en) | 2004-02-13 | 2009-07-14 | Habanero Holdings, Inc. | Fabric address and sub-address resolution in fabric-backplane enterprise servers |
US7843906B1 (en) | 2004-02-13 | 2010-11-30 | Habanero Holdings, Inc. | Storage gateway initiator for fabric-backplane enterprise servers |
US7633955B1 (en) | 2004-02-13 | 2009-12-15 | Habanero Holdings, Inc. | SCSI transport for fabric-backplane enterprise servers |
US7860961B1 (en) | 2004-02-13 | 2010-12-28 | Habanero Holdings, Inc. | Real time notice of new resources for provisioning and management of fabric-backplane enterprise servers |
US7685281B1 (en) | 2004-02-13 | 2010-03-23 | Habanero Holdings, Inc. | Programmatic instantiation, provisioning and management of fabric-backplane enterprise servers |
US7990994B1 (en) | 2004-02-13 | 2011-08-02 | Habanero Holdings, Inc. | Storage gateway provisioning and configuring |
US7953903B1 (en) | 2004-02-13 | 2011-05-31 | Habanero Holdings, Inc. | Real time detection of changed resources for provisioning and management of fabric-backplane enterprise servers |
US7873693B1 (en) | 2004-02-13 | 2011-01-18 | Habanero Holdings, Inc. | Multi-chassis fabric-backplane enterprise servers |
US7860097B1 (en) | 2004-02-13 | 2010-12-28 | Habanero Holdings, Inc. | Fabric-backplane enterprise servers with VNICs and VLANs |
US8868790B2 (en) | 2004-02-13 | 2014-10-21 | Oracle International Corporation | Processor-memory module performance acceleration in fabric-backplane enterprise servers |
US7843907B1 (en) | 2004-02-13 | 2010-11-30 | Habanero Holdings, Inc. | Storage gateway target for fabric-backplane enterprise servers |
US7609636B1 (en) * | 2004-03-29 | 2009-10-27 | Sun Microsystems, Inc. | System and method for infiniband receive flow control with combined buffering of virtual lanes and queue pairs |
US8713295B2 (en) | 2004-07-12 | 2014-04-29 | Oracle International Corporation | Fabric-backplane enterprise servers with pluggable I/O sub-system |
US8055818B2 (en) * | 2004-08-30 | 2011-11-08 | International Business Machines Corporation | Low latency queue pairs for I/O adapters |
US7529886B2 (en) | 2004-11-03 | 2009-05-05 | International Business Machines Corporation | Method, system and storage medium for lockless InfiniBand™ poll for I/O completion |
JP4394624B2 (ja) * | 2005-09-21 | 2010-01-06 | 株式会社日立製作所 | 計算機システム及びi/oブリッジ |
JP4799118B2 (ja) * | 2005-10-14 | 2011-10-26 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、情報処理システム、通信中継装置および通信制御方法 |
US8077610B1 (en) * | 2006-02-22 | 2011-12-13 | Marvell Israel (M.I.S.L) Ltd. | Memory architecture for high speed network devices |
US8108549B2 (en) * | 2006-04-04 | 2012-01-31 | International Business Machines Corporation | Method for using the loopback interface in a computer system having multiple workload partitions |
US8619771B2 (en) | 2009-09-30 | 2013-12-31 | Vmware, Inc. | Private allocated networks over shared communications infrastructure |
US8924524B2 (en) | 2009-07-27 | 2014-12-30 | Vmware, Inc. | Automated network configuration of virtual machines in a virtual lab data environment |
US8892706B1 (en) | 2010-06-21 | 2014-11-18 | Vmware, Inc. | Private ethernet overlay networks over a shared ethernet in a virtual environment |
US8265092B2 (en) * | 2007-09-14 | 2012-09-11 | International Business Machines Corporation | Adaptive low latency receive queues |
US7899050B2 (en) * | 2007-09-14 | 2011-03-01 | International Business Machines Corporation | Low latency multicast for infiniband® host channel adapters |
US9083609B2 (en) | 2007-09-26 | 2015-07-14 | Nicira, Inc. | Network operating system for managing and securing networks |
US7949721B2 (en) * | 2008-02-25 | 2011-05-24 | International Business Machines Corporation | Subnet management discovery of point-to-point network topologies |
US7962564B2 (en) * | 2008-02-25 | 2011-06-14 | International Business Machines Corporation | Discovery of a virtual topology in a multi-tasking multi-processor environment |
US8009589B2 (en) * | 2008-02-25 | 2011-08-30 | International Business Machines Corporation | Subnet management in virtual host channel adapter topologies |
US8065279B2 (en) * | 2008-02-25 | 2011-11-22 | International Business Machines Corporation | Performance neutral heartbeat for a multi-tasking multi-processor environment |
US8762125B2 (en) * | 2008-02-25 | 2014-06-24 | International Business Machines Corporation | Emulated multi-tasking multi-processor channels implementing standard network protocols |
US8793699B2 (en) * | 2008-02-25 | 2014-07-29 | International Business Machines Corporation | Negating initiative for select entries from a shared, strictly FIFO initiative queue |
US8195774B2 (en) | 2008-05-23 | 2012-06-05 | Vmware, Inc. | Distributed virtual switch for virtualized computer systems |
US8966035B2 (en) | 2009-04-01 | 2015-02-24 | Nicira, Inc. | Method and apparatus for implementing and managing distributed virtual switches in several hosts and physical forwarding elements |
US8837493B2 (en) | 2010-07-06 | 2014-09-16 | Nicira, Inc. | Distributed network control apparatus and method |
US9680750B2 (en) | 2010-07-06 | 2017-06-13 | Nicira, Inc. | Use of tunnels to hide network addresses |
US8964528B2 (en) | 2010-07-06 | 2015-02-24 | Nicira, Inc. | Method and apparatus for robust packet distribution among hierarchical managed switching elements |
US10103939B2 (en) | 2010-07-06 | 2018-10-16 | Nicira, Inc. | Network control apparatus and method for populating logical datapath sets |
US9525647B2 (en) | 2010-07-06 | 2016-12-20 | Nicira, Inc. | Network control apparatus and method for creating and modifying logical switching elements |
US9043452B2 (en) | 2011-05-04 | 2015-05-26 | Nicira, Inc. | Network control apparatus and method for port isolation |
US8484392B2 (en) | 2011-05-31 | 2013-07-09 | Oracle International Corporation | Method and system for infiniband host channel adaptor quality of service |
US8804752B2 (en) | 2011-05-31 | 2014-08-12 | Oracle International Corporation | Method and system for temporary data unit storage on infiniband host channel adaptor |
US8589610B2 (en) | 2011-05-31 | 2013-11-19 | Oracle International Corporation | Method and system for receiving commands using a scoreboard on an infiniband host channel adaptor |
US9935848B2 (en) | 2011-06-03 | 2018-04-03 | Oracle International Corporation | System and method for supporting subnet manager (SM) level robust handling of unkown management key in an infiniband (IB) network |
US8874742B2 (en) | 2011-07-11 | 2014-10-28 | Oracle International Corporation | System and method for supporting virtual machine migration in a middleware machine environment |
AU2012296329B2 (en) | 2011-08-17 | 2015-08-27 | Nicira, Inc. | Logical L3 routing |
AU2012296330B2 (en) | 2011-08-17 | 2016-03-17 | Nicira, Inc. | Hierarchical controller clusters for interconnecting different logical domains |
US8879579B2 (en) | 2011-08-23 | 2014-11-04 | Oracle International Corporation | Method and system for requester virtual cut through |
US9021123B2 (en) | 2011-08-23 | 2015-04-28 | Oracle International Corporation | Method and system for responder side cut through of received data |
US8832216B2 (en) | 2011-08-31 | 2014-09-09 | Oracle International Corporation | Method and system for conditional remote direct memory access write |
US9137107B2 (en) | 2011-10-25 | 2015-09-15 | Nicira, Inc. | Physical controllers for converting universal flows |
US9154433B2 (en) | 2011-10-25 | 2015-10-06 | Nicira, Inc. | Physical controller |
US9288104B2 (en) | 2011-10-25 | 2016-03-15 | Nicira, Inc. | Chassis controllers for converting universal flows |
US9203701B2 (en) | 2011-10-25 | 2015-12-01 | Nicira, Inc. | Network virtualization apparatus and method with scheduling capabilities |
US9015823B2 (en) | 2011-11-15 | 2015-04-21 | Nicira, Inc. | Firewalls in logical networks |
EP2748993B1 (en) | 2012-04-18 | 2015-09-02 | Nicira Inc. | Using transactions to compute and propagate network forwarding state |
US9594818B2 (en) | 2012-05-10 | 2017-03-14 | Oracle International Corporation | System and method for supporting dry-run mode in a network environment |
US9231888B2 (en) * | 2012-05-11 | 2016-01-05 | Oracle International Corporation | System and method for routing traffic between distinct InfiniBand subnets based on source routing |
US9665719B2 (en) | 2012-06-04 | 2017-05-30 | Oracle International Corporation | System and method for supporting host-based firmware upgrade of input/output (I/O) devices in a middleware machine environment |
US9231892B2 (en) | 2012-07-09 | 2016-01-05 | Vmware, Inc. | Distributed virtual switch configuration and state management |
US9069485B2 (en) | 2012-12-20 | 2015-06-30 | Oracle International Corporation | Doorbell backpressure avoidance mechanism on a host channel adapter |
US9069633B2 (en) | 2012-12-20 | 2015-06-30 | Oracle America, Inc. | Proxy queue pair for offloading |
US8937949B2 (en) | 2012-12-20 | 2015-01-20 | Oracle International Corporation | Method and system for Infiniband host channel adapter multicast packet replication mechanism |
US9384072B2 (en) | 2012-12-20 | 2016-07-05 | Oracle International Corporation | Distributed queue pair state on a host channel adapter |
US9256555B2 (en) | 2012-12-20 | 2016-02-09 | Oracle International Corporation | Method and system for queue descriptor cache management for a host channel adapter |
US9191452B2 (en) | 2012-12-20 | 2015-11-17 | Oracle International Corporation | Method and system for an on-chip completion cache for optimized completion building |
US9148352B2 (en) | 2012-12-20 | 2015-09-29 | Oracle International Corporation | Method and system for dynamic repurposing of payload storage as a trace buffer |
US9069705B2 (en) | 2013-02-26 | 2015-06-30 | Oracle International Corporation | CAM bit error recovery |
US9336158B2 (en) | 2013-02-26 | 2016-05-10 | Oracle International Corporation | Method and system for simplified address translation support for static infiniband host channel adaptor structures |
US8850085B2 (en) | 2013-02-26 | 2014-09-30 | Oracle International Corporation | Bandwidth aware request throttling |
US9432215B2 (en) | 2013-05-21 | 2016-08-30 | Nicira, Inc. | Hierarchical network managers |
US9571386B2 (en) | 2013-07-08 | 2017-02-14 | Nicira, Inc. | Hybrid packet processing |
US9571304B2 (en) | 2013-07-08 | 2017-02-14 | Nicira, Inc. | Reconciliation of network state across physical domains |
US10218564B2 (en) | 2013-07-08 | 2019-02-26 | Nicira, Inc. | Unified replication mechanism for fault-tolerance of state |
US9282019B2 (en) | 2013-07-12 | 2016-03-08 | Nicira, Inc. | Tracing logical network packets through physical network |
US9407580B2 (en) | 2013-07-12 | 2016-08-02 | Nicira, Inc. | Maintaining data stored with a packet |
US9344349B2 (en) | 2013-07-12 | 2016-05-17 | Nicira, Inc. | Tracing network packets by a cluster of network controllers |
US9887960B2 (en) | 2013-08-14 | 2018-02-06 | Nicira, Inc. | Providing services for logical networks |
US9952885B2 (en) | 2013-08-14 | 2018-04-24 | Nicira, Inc. | Generation of configuration files for a DHCP module executing within a virtualized container |
US9973382B2 (en) | 2013-08-15 | 2018-05-15 | Nicira, Inc. | Hitless upgrade for network control applications |
US9503371B2 (en) | 2013-09-04 | 2016-11-22 | Nicira, Inc. | High availability L3 gateways for logical networks |
US9577845B2 (en) | 2013-09-04 | 2017-02-21 | Nicira, Inc. | Multiple active L3 gateways for logical networks |
US9602398B2 (en) | 2013-09-15 | 2017-03-21 | Nicira, Inc. | Dynamically generating flows with wildcard fields |
US9674087B2 (en) | 2013-09-15 | 2017-06-06 | Nicira, Inc. | Performing a multi-stage lookup to classify packets |
US10148484B2 (en) | 2013-10-10 | 2018-12-04 | Nicira, Inc. | Host side method of using a controller assignment list |
US10063458B2 (en) | 2013-10-13 | 2018-08-28 | Nicira, Inc. | Asymmetric connection with external networks |
US9575782B2 (en) | 2013-10-13 | 2017-02-21 | Nicira, Inc. | ARP for logical router |
US9967199B2 (en) | 2013-12-09 | 2018-05-08 | Nicira, Inc. | Inspecting operations of a machine to detect elephant flows |
US10193771B2 (en) | 2013-12-09 | 2019-01-29 | Nicira, Inc. | Detecting and handling elephant flows |
US9569368B2 (en) | 2013-12-13 | 2017-02-14 | Nicira, Inc. | Installing and managing flows in a flow table cache |
US9996467B2 (en) | 2013-12-13 | 2018-06-12 | Nicira, Inc. | Dynamically adjusting the number of flows allowed in a flow table cache |
US9495325B2 (en) | 2013-12-30 | 2016-11-15 | International Business Machines Corporation | Remote direct memory access (RDMA) high performance producer-consumer message processing |
US9419855B2 (en) | 2014-03-14 | 2016-08-16 | Nicira, Inc. | Static routes for logical routers |
US9225597B2 (en) | 2014-03-14 | 2015-12-29 | Nicira, Inc. | Managed gateways peering with external router to attract ingress packets |
US9590901B2 (en) | 2014-03-14 | 2017-03-07 | Nicira, Inc. | Route advertisement by managed gateways |
US9313129B2 (en) | 2014-03-14 | 2016-04-12 | Nicira, Inc. | Logical router processing by network controller |
US9647883B2 (en) | 2014-03-21 | 2017-05-09 | Nicria, Inc. | Multiple levels of logical routers |
US9503321B2 (en) | 2014-03-21 | 2016-11-22 | Nicira, Inc. | Dynamic routing for logical routers |
US9413644B2 (en) | 2014-03-27 | 2016-08-09 | Nicira, Inc. | Ingress ECMP in virtual distributed routing environment |
US9893988B2 (en) | 2014-03-27 | 2018-02-13 | Nicira, Inc. | Address resolution using multiple designated instances of a logical router |
US9385954B2 (en) | 2014-03-31 | 2016-07-05 | Nicira, Inc. | Hashing techniques for use in a network environment |
US10193806B2 (en) | 2014-03-31 | 2019-01-29 | Nicira, Inc. | Performing a finishing operation to improve the quality of a resulting hash |
US9985896B2 (en) | 2014-03-31 | 2018-05-29 | Nicira, Inc. | Caching of service decisions |
US10091120B2 (en) | 2014-05-05 | 2018-10-02 | Nicira, Inc. | Secondary input queues for maintaining a consistent network state |
US9742881B2 (en) | 2014-06-30 | 2017-08-22 | Nicira, Inc. | Network virtualization using just-in-time distributed capability for classification encoding |
US9875127B2 (en) | 2014-08-22 | 2018-01-23 | Nicira, Inc. | Enabling uniform switch management in virtual infrastructure |
US9768980B2 (en) | 2014-09-30 | 2017-09-19 | Nicira, Inc. | Virtual distributed bridging |
US11178051B2 (en) | 2014-09-30 | 2021-11-16 | Vmware, Inc. | Packet key parser for flow-based forwarding elements |
US10511458B2 (en) | 2014-09-30 | 2019-12-17 | Nicira, Inc. | Virtual distributed bridging |
US10250443B2 (en) | 2014-09-30 | 2019-04-02 | Nicira, Inc. | Using physical location to modify behavior of a distributed virtual network element |
US10020960B2 (en) | 2014-09-30 | 2018-07-10 | Nicira, Inc. | Virtual distributed bridging |
US10469342B2 (en) | 2014-10-10 | 2019-11-05 | Nicira, Inc. | Logical network traffic analysis |
CN105763356A (zh) * | 2014-12-19 | 2016-07-13 | 中兴通讯股份有限公司 | 一种资源虚拟化处理的方法、装置及控制器 |
US10079779B2 (en) | 2015-01-30 | 2018-09-18 | Nicira, Inc. | Implementing logical router uplinks |
CN105991191A (zh) * | 2015-02-12 | 2016-10-05 | 中兴通讯股份有限公司 | 信号处理方法、装置及无源光纤集线器 |
US10038628B2 (en) | 2015-04-04 | 2018-07-31 | Nicira, Inc. | Route server mode for dynamic routing between logical and physical networks |
US9967134B2 (en) | 2015-04-06 | 2018-05-08 | Nicira, Inc. | Reduction of network churn based on differences in input state |
US10361952B2 (en) | 2015-06-30 | 2019-07-23 | Nicira, Inc. | Intermediate logical interfaces in a virtual distributed router environment |
US10230629B2 (en) | 2015-08-11 | 2019-03-12 | Nicira, Inc. | Static route configuration for logical router |
US10057157B2 (en) | 2015-08-31 | 2018-08-21 | Nicira, Inc. | Automatically advertising NAT routes between logical routers |
US10204122B2 (en) | 2015-09-30 | 2019-02-12 | Nicira, Inc. | Implementing an interface between tuple and message-driven control entities |
US10095535B2 (en) | 2015-10-31 | 2018-10-09 | Nicira, Inc. | Static route types for logical routers |
US10333849B2 (en) | 2016-04-28 | 2019-06-25 | Nicira, Inc. | Automatic configuration of logical routers on edge nodes |
US11019167B2 (en) | 2016-04-29 | 2021-05-25 | Nicira, Inc. | Management of update queues for network controller |
US10484515B2 (en) | 2016-04-29 | 2019-11-19 | Nicira, Inc. | Implementing logical metadata proxy servers in logical networks |
US10841273B2 (en) | 2016-04-29 | 2020-11-17 | Nicira, Inc. | Implementing logical DHCP servers in logical networks |
US10091161B2 (en) | 2016-04-30 | 2018-10-02 | Nicira, Inc. | Assignment of router ID for logical routers |
US10153973B2 (en) | 2016-06-29 | 2018-12-11 | Nicira, Inc. | Installation of routing tables for logical router in route server mode |
US10560320B2 (en) | 2016-06-29 | 2020-02-11 | Nicira, Inc. | Ranking of gateways in cluster |
US10454758B2 (en) | 2016-08-31 | 2019-10-22 | Nicira, Inc. | Edge node cluster network redundancy and fast convergence using an underlay anycast VTEP IP |
US10341236B2 (en) | 2016-09-30 | 2019-07-02 | Nicira, Inc. | Anycast edge service gateways |
US10742746B2 (en) | 2016-12-21 | 2020-08-11 | Nicira, Inc. | Bypassing a load balancer in a return path of network traffic |
US10237123B2 (en) | 2016-12-21 | 2019-03-19 | Nicira, Inc. | Dynamic recovery from a split-brain failure in edge nodes |
US10212071B2 (en) | 2016-12-21 | 2019-02-19 | Nicira, Inc. | Bypassing a load balancer in a return path of network traffic |
US10616045B2 (en) | 2016-12-22 | 2020-04-07 | Nicira, Inc. | Migration of centralized routing components of logical router |
US10200306B2 (en) | 2017-03-07 | 2019-02-05 | Nicira, Inc. | Visualization of packet tracing operation results |
US10637800B2 (en) | 2017-06-30 | 2020-04-28 | Nicira, Inc | Replacement of logical network addresses with physical network addresses |
US10681000B2 (en) | 2017-06-30 | 2020-06-09 | Nicira, Inc. | Assignment of unique physical network addresses for logical network addresses |
US10608887B2 (en) | 2017-10-06 | 2020-03-31 | Nicira, Inc. | Using packet tracing tool to automatically execute packet capture operations |
US10511459B2 (en) | 2017-11-14 | 2019-12-17 | Nicira, Inc. | Selection of managed forwarding element for bridge spanning multiple datacenters |
US10374827B2 (en) | 2017-11-14 | 2019-08-06 | Nicira, Inc. | Identifier that maps to different networks at different datacenters |
US10999220B2 (en) | 2018-07-05 | 2021-05-04 | Vmware, Inc. | Context aware middlebox services at datacenter edge |
US11184327B2 (en) | 2018-07-05 | 2021-11-23 | Vmware, Inc. | Context aware middlebox services at datacenter edges |
US10931560B2 (en) | 2018-11-23 | 2021-02-23 | Vmware, Inc. | Using route type to determine routing protocol behavior |
US10735541B2 (en) | 2018-11-30 | 2020-08-04 | Vmware, Inc. | Distributed inline proxy |
US10797998B2 (en) | 2018-12-05 | 2020-10-06 | Vmware, Inc. | Route server for distributed routers using hierarchical routing protocol |
US10938788B2 (en) | 2018-12-12 | 2021-03-02 | Vmware, Inc. | Static routes for policy-based VPN |
CN111865794B (zh) * | 2019-04-24 | 2023-04-21 | 厦门网宿有限公司 | 一种逻辑端口的关联方法、系统、设备及数据传输系统 |
US11095480B2 (en) | 2019-08-30 | 2021-08-17 | Vmware, Inc. | Traffic optimization using distributed edge services |
US11641305B2 (en) | 2019-12-16 | 2023-05-02 | Vmware, Inc. | Network diagnosis in software-defined networking (SDN) environments |
US11283699B2 (en) | 2020-01-17 | 2022-03-22 | Vmware, Inc. | Practical overlay network latency measurement in datacenter |
US11616755B2 (en) | 2020-07-16 | 2023-03-28 | Vmware, Inc. | Facilitating distributed SNAT service |
US11606294B2 (en) | 2020-07-16 | 2023-03-14 | Vmware, Inc. | Host computer configured to facilitate distributed SNAT service |
US11611613B2 (en) | 2020-07-24 | 2023-03-21 | Vmware, Inc. | Policy-based forwarding to a load balancer of a load balancing cluster |
US11902050B2 (en) | 2020-07-28 | 2024-02-13 | VMware LLC | Method for providing distributed gateway service at host computer |
US11451413B2 (en) | 2020-07-28 | 2022-09-20 | Vmware, Inc. | Method for advertising availability of distributed gateway service and machines at host computer |
US11558426B2 (en) | 2020-07-29 | 2023-01-17 | Vmware, Inc. | Connection tracking for container cluster |
US11196628B1 (en) | 2020-07-29 | 2021-12-07 | Vmware, Inc. | Monitoring container clusters |
US11570090B2 (en) | 2020-07-29 | 2023-01-31 | Vmware, Inc. | Flow tracing operation in container cluster |
US11736436B2 (en) | 2020-12-31 | 2023-08-22 | Vmware, Inc. | Identifying routes with indirect addressing in a datacenter |
US11336533B1 (en) | 2021-01-08 | 2022-05-17 | Vmware, Inc. | Network visualization of correlations between logical elements and associated physical elements |
US11687210B2 (en) | 2021-07-05 | 2023-06-27 | Vmware, Inc. | Criteria-based expansion of group nodes in a network topology visualization |
US11711278B2 (en) | 2021-07-24 | 2023-07-25 | Vmware, Inc. | Visualization of flow trace operation across multiple sites |
US11855862B2 (en) | 2021-09-17 | 2023-12-26 | Vmware, Inc. | Tagging packets for monitoring and analysis |
CN115001627B (zh) * | 2022-05-30 | 2023-06-09 | 山东省计算中心(国家超级计算济南中心) | 一种InfiniBand网络子网管理报文处理方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030208631A1 (en) * | 2002-05-06 | 2003-11-06 | Todd Matters | System and method for dynamic link aggregation in a shared I/O subsystem |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6789143B2 (en) * | 2001-09-24 | 2004-09-07 | International Business Machines Corporation | Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries |
US8611363B2 (en) * | 2002-05-06 | 2013-12-17 | Adtran, Inc. | Logical port system and method |
US20030236852A1 (en) * | 2002-06-20 | 2003-12-25 | International Business Machines Corporation | Sharing network adapter among multiple logical partitions in a data processing system |
-
2003
- 2003-07-25 US US10/626,988 patent/US20050018669A1/en not_active Abandoned
-
2004
- 2004-07-20 CN CNB2004100713467A patent/CN100375469C/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030208631A1 (en) * | 2002-05-06 | 2003-11-06 | Todd Matters | System and method for dynamic link aggregation in a shared I/O subsystem |
Non-Patent Citations (2)
Title |
---|
IBM Storage Tank - A heterogeneous scalable SAN filesystem. J.Menon, D.A.Pease, R.Rees, L.Duyanovich, B.Hillsberg.IBM SYSTEM JOURNAL,Vol.42 No.2. 2003 * |
Infiniband体系结构和协议规范. 邓里文,余少华.光通信研究,第106期. 2001 * |
Also Published As
Publication number | Publication date |
---|---|
US20050018669A1 (en) | 2005-01-27 |
CN1617526A (zh) | 2005-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100375469C (zh) | 在物理端口上模拟多个逻辑端口的方法和装置 | |
CN100361100C (zh) | 对用于单通道适配器的多个资源进行逻辑分区的方法和系统 | |
EP1399829B1 (en) | End node partitioning using local identifiers | |
US7023811B2 (en) | Switched fabric network and method of mapping nodes using batch requests | |
US7555002B2 (en) | Infiniband general services queue pair virtualization for multiple logical ports on a single physical port | |
US5592625A (en) | Apparatus for providing shared virtual memory among interconnected computer nodes with minimal processor involvement | |
US7493409B2 (en) | Apparatus, system and method for implementing a generalized queue pair in a system area network | |
US20030018828A1 (en) | Infiniband mixed semantic ethernet I/O path | |
US7233570B2 (en) | Long distance repeater for digital information | |
US7095750B2 (en) | Apparatus and method for virtualizing a queue pair space to minimize time-wait impacts | |
US7283473B2 (en) | Apparatus, system and method for providing multiple logical channel adapters within a single physical channel adapter in a system area network | |
US6789143B2 (en) | Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries | |
US6748559B1 (en) | Method and system for reliably defining and determining timeout values in unreliable datagrams | |
CN101222428B (zh) | 用于在网络结构上发送数据包的方法、系统和硬件 | |
US6578122B2 (en) | Using an access key to protect and point to regions in windows for infiniband | |
US7165110B2 (en) | System and method for simultaneously establishing multiple connections | |
US6766467B1 (en) | Method and apparatus for pausing a send queue without causing sympathy errors | |
US20030061296A1 (en) | Memory semantic storage I/O | |
US6941350B1 (en) | Method and apparatus for reliably choosing a master network manager during initialization of a network computing system | |
US20020073257A1 (en) | Transferring foreign protocols across a system area network | |
US6990528B1 (en) | System area network of end-to-end context via reliable datagram domains | |
US7099955B1 (en) | End node partitioning using LMC for a system area network | |
US20020198927A1 (en) | Apparatus and method for routing internet protocol frames over a system area network | |
US6898638B2 (en) | Method and apparatus for grouping data for transfer according to recipient buffer size | |
TW583543B (en) | Infiniband work and completion queue management via head only circular buffers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080312 |