CN101151851A - 用于服务器环境中的联网卸载的主机以太网适配器 - Google Patents

用于服务器环境中的联网卸载的主机以太网适配器 Download PDF

Info

Publication number
CN101151851A
CN101151851A CNA2006800108202A CN200680010820A CN101151851A CN 101151851 A CN101151851 A CN 101151851A CN A2006800108202 A CNA2006800108202 A CN A2006800108202A CN 200680010820 A CN200680010820 A CN 200680010820A CN 101151851 A CN101151851 A CN 101151851A
Authority
CN
China
Prior art keywords
grouping
processor
layer
ethernet
unstrings
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.)
Granted
Application number
CNA2006800108202A
Other languages
English (en)
Other versions
CN101151851B (zh
Inventor
R·K·阿里米利
J·卡尔维纳克
C·巴索
C·常
P·达蒙
R·E·富斯
S·P·夏尔马
N·瓦伊达亚纳塔
F·韦普朗肯
C·B·韦瑞利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101151851A publication Critical patent/CN101151851A/zh
Application granted granted Critical
Publication of CN101151851B publication Critical patent/CN101151851B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • H04L12/413Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection (CSMA-CD)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40032Details regarding a bus interface enhancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC

Abstract

本发明公开了一种以太网适配器。所述以太网适配器包括多个层,用于允许所述适配器从处理器接收分组并将分组发送到处理器。所述多个层包括多路分用机制,以便允许对所述处理器进行分区。主机以太网适配器(HEA)是提供了以太网和TCP加速的新方法的集成以太网适配器。将一组TCP/IP加速特性引入工具箱方法:服务器TCP/IP堆栈在需要时使用这些加速器。通过旁路PCI总线来使服务器与网络接口控制器之间的接口成流。所述HEA支持网络虚拟化。HEA可以由多个操作系统共享,这提供了基本的隔离和保护而不影响其性能。

Description

用于服务器环境中的联网卸载的主机以太网适配器
技术领域
本发明一般地涉及服务器环境,具体地说,涉及在此类环境中使用的适配器。
相关申请的交叉引用
本申请涉及以下未决的美国专利申请:
美国专利申请,序号____(代理人案号RPS920050060US1/3486P),标题为“Method and System for Accommodating Several Ethernet Ports anda Wrap Transmitted Flow Handled by a Simplified Frame-By-Frame UpperStructure”,与本申请同日提出并受让给本发明的受让人。
美国专利申请,序号____(代理人案号RPS920050061US1/3487P),标题为“Method and Apparatus for Providing a Network Connection Table”,与本申请同日提出并受让给本发明的受让人。
美国专利申请,序号____(代理人案号RPS920050062US1/3488P),标题为“Network Communications for Operating System Partitions”,与本申请同日提出并受让给本发明的受让人。
美国专利申请,序号____(代理人案号RPS920050073US1/3502P),标题为“Configurable Ports for a Host Ethernet Adapter”,与本申请同日提出并受让给本发明的受让人。
美国专利申请,序号____(代理人案号RPS920050074US1/3503P),标题为“System and Method for Parsing,Filtering,and Computing theChecksum in a Host Ethernet Adapter(HEA)”,与本申请同日提出并受让给本发明的受让人。
美国专利申请,序号____(代理人案号RPS920050075US1/3504P),标题为“System and Method for a Method for Reducing Latency in a HostEthernet Adapter(HEA)”,与本申请同日提出并受让给本发明的受让人。
美国专利申请,序号____(代理人案号RPS920050076US1/3505P),标题为“Method and Apparatus for Blind Checksum and Correction forNetwork Transmissions”,与本申请同日提出并受让给本发明的受让人。
美国专利申请,序号____(代理人案号RPS920050082US1/3512P),标题为“Method and System for Performing a Packet Header Lookup”,与本申请同日提出并受让给本发明的受让人。
美国专利申请,序号____(代理人案号RPS920050089US1/3516P),标题为“System and Method for Computing a Blind Checksum in a HostEthernet Adapter(HEA)”,与本申请同日提出并受让给本发明的受让人。
背景技术
图1示出了常规服务器系统10。服务器系统10包括连接到主存储器14的处理器12。处理器12通过其专用总线(GX)16连接到包括网络接口系统18的系统。网络接口系统18又通过PCI总线22等连接到适配器20。如公知的,PCI总线22具有有限的带宽,它会影响可以从其通过的业务量。
互联网及其应用极大地增加了服务器必须满足的客户端请求的数量。每个客户端的请求同时生成网络和存储I/O。此外,10千兆位以太网和IP存储的到来使在单个主干基础设施(以太网、TCP/IP)上合并数据中心通信成为可能。
但是,10千兆位速度的TCP/IP协议消耗了主流服务器中的极大的处理和存储器带宽,因此严重地限制了服务器运行应用的能力。
在今天的服务器网络接口控制器(NIC)中,支持有限卸载诸如TCP和IP校验和、大量发送(或TCP分段卸载)之类的功能。但是,这些功能在1G时尚可胜任,但是不能解决诸如10G和更高速度的问题。
使用TCP卸载引擎将全部TCP/IP协议堆栈完全从服务器卸载是公知的。但是,TCP卸载引擎实施方式通常以相对复杂的硬件或微处理器体系结构中的微码来实现。还存在调试、问题确定和堆栈可维护性问题。此外,当使用微码时还存在伸缩性问题,因为微引擎并不遵循主处理器路线图。最后,卸载引擎通常引入新的协议和API,因此要求应用和互操作问题方面的更改。
因此,需要一种允许克服上文确定的问题的以太网环境中的高带宽数据的系统和方法。本发明解决了此类需要。
发明内容
本发明公开了一种以太网适配器。所述以太网适配器包括多个层,用于允许所述适配器从处理器接收分组并将分组发送到处理器。所述多个层包括多路分用机制,以便允许对所述处理器进行分区。
主机以太网适配器(HEA)是提供了以太网和TCP加速的新方法的集成以太网适配器。将一组TCP/IP加速特性引入工具箱方法:服务器TCP/IP堆栈在需要时使用这些加速器。通过旁路PCI总线来使服务器与网络接口控制器之间的接口成流。
所述HEA支持网络虚拟化。所述HEA可以由多个操作系统共享,这提供了基本的隔离和保护而不影响其性能。
附图说明
图1示出了常规服务器系统;
图2是根据本发明的服务器系统的方块图;
图3是根据本发明的主机以太网适配器的简单方块图;
图4是具有介质访问控制器和串行化/解串层的更详细视图的主机以太网适配器的方块图;
图5示出了一个RxNet的组件和数据流;
图6示出了一个TxEnet的组件和数据流;
图7是具有分组加速和虚拟化层的更详细视图的主机以太网适配器的方块图;
图8是RxAccel单元的更详细的视图;
图9示出了RxAccel单元包括两个发送主干(XBB)、两个发送校验和单元、两个发送MIB、一个环绕单元和一个暂停单元;
图10是具有主机接口层的更详细视图的主机以太网适配器110的方块图;
图11示出了提供每物理端口的逻辑层2交换机的主机以太网适配器;
图12示出了与遗留操作系统TCP/IP堆栈一起使用的主机以太网适配器;
图13示出了在一些分区支持用户空间TCP堆栈的系统中使用的主机以太网适配器;
图14示出了所有支持包括每连接排队的加速特性的主机以太网适配器;
图15示出了入站多播发送;
图16示出了出站多播发送。
具体实施方式
本发明一般地涉及服务器环境,具体地说,涉及在此类环境中使用的适配器。提出了以下说明以使本领域的技术人员能够实施和使用本发明,并且在专利申请及其要求的上下文中提供以下说明。对本领域的技术人员来说,对本文所述的优选实施例和一般原理及特性的各种修改将是显而易见的。因此,本发明并非旨在被限于示出的实施例,而是将被赋予与本文说明的原理及特性一致的最广泛的范围。
图2是根据本发明的服务器系统100的方块图。服务器系统100包括连接在存储器104与接口适配器芯片106之间的处理器102。接口适配器芯片106包括到处理器102的专用(Gx)总线的接口以及主机以太网适配器(HEA)110。HEA 110接收来自处理器102的信号并将信号发送到处理器102。
HEA 110是集成以太网适配器。在服务器内的TCP/IP堆栈中提供了一组加速器特性。通过旁路PCI总线并提供允许多路分用和多重排队及分组标头分离的接口技术来使处理器102与接口适配器芯片106之间的接口100成流。
HEA 110通过直接连接到GX+总线并由此分享巨大的带宽(在866Mhz为55.42Gbps)以真正支持两个10Gbps端口的完全40Gbps带宽来实现无与伦比的性能水平。注意,64位PCI-X133MHz总线被限制在8.51Mbps并至少要求PCI Express x8总线来匹配两个10Gbps端口的吞吐量。在GX总线上还移除了中间逻辑并由此改进了发送等待时间。
通过此类操作,提供了一种允许高速系统的改进功能同时允许与遗留服务器环境的兼容性的以太网适配器。下文说明了此改进功能的一些关键特性。
加速功能
HEA 110支持高级加速特性。一个关键的观察结果是当前的加速功能在发送侧(即,从处理器发送分组)充分地执行,但在接收侧(即,通过适配器接收分组)并不充分。HEA110通过引入诸如分组多路分用和多重排队以及标头分离之类的新特性来解决此差距。
所有这些HEA 110新特性都是可选的;它取决于TCP/IP堆栈在需要时利用它们。例如,TCP/IP堆栈可以使用HEA 110并利用HEA的其他特性(例如,吞吐量、低等待时间和虚拟化支持)。
分组多路分用知多重排队
多重排队和多路分用是支持诸如虚拟化、每连接排队和操作系统旁路之类的功能的关键特性。HEA多路分用使用队列对、完成队列和事件队列的概念。添加了增强功能来更好地解决操作系统协议堆栈要求和短的分组等待时间降低。
根据系统要求和配置,HEA可以根据以下项来多路分用入站分组:
目的地MAC地址(通常每分区一个MAC地址和一个默认队列);
已建立连接的连接标识符(协议、源IP地址、目的地IP地址、源端口、目的地端口);
TCP连接设置分组的目的地端口以及可选的目的地IP地址(SYN)。
分组标头分离
HEA 110能够将TCP/IP标头从数据有效负载中分离。该特性使标头能够被引导到协议堆栈以便处理,而不污染由应用发布的接收缓冲区。
增强特性
HEA 110在服务器环境下提供了很多增强特性。下文列出了这些特性中的一些特性。
1.多接收队列:将队列对概念扩展为支持每对多于一个接收队列。这使堆栈能更好地管理其缓冲池存储器。例如,可以将一个队列分配到小型分组,一个分配到中型分组,一个分配到大型分组。HEA 110将根据接收的分组大小来选择专用队列。
2.低等待时间队列:在发送侧,描述符(WQE)可以包含直接数据,在此情况下,不需要间接(即,不需要来自系统存储器的额外DMA)发送数据。在接收侧,低等待时间队列不提供缓冲,而是接收直接分组数据。HEA 110直接写入接收队列。较短分组利用此特性,导致大幅减少DMA操作:与每分组一个DMA读取及一个DMA写入相反的每分组单个DMA写入。
3.接收低等待时间队列还用于支持分组标头分离:将标头写入低等待时间队列,而将有效负载以DMA方式发送到专用接收队列中指示的缓冲区。
总之,多路分用和多重排队以及分组标头分离是虚拟化和提供低等待时间操作的基本构建块。此外,应指出的是,这些特性还可用于提高传统操作系统协议堆栈性能,例如,每连接排队允许删除代码且更重要地减少了定位存储器中适当信息所消耗的存储器存取-以及关联的停止/高速缓存污染。
为了更详细地说明HEA 110的特性,现在结合附图参考以下说明。
图3是根据本发明的HEA 110的简单方块图。如图所示,HEA 110具有三层体系结构。第一层包括介质访问控制器(MAC)和串行化/解串(Serdes)层202,其提供了去往和来自以太网上的其他设备的多个接口。在层202中,使用同一芯片I/O来提供多个接口。例如,在优选实施例中,使用同一芯片I/O来提供10千兆位接口或1千兆位接口。
第二层包括分组加速和虚拟化层204。层204用来接收分组并对分组流进行多路分用来允许虚拟化。层204根据分组来允许服务器操作系统的虚拟化或分区。层204还提供分组标头分离来允许零复制操做并由此提供改进的等待时间。还由于层204通过主机接口层206与专用总线(Gx)直接交互,所以提供了低等待时间、高带宽连接。
第三层包括主机接口层206。主机接口层206提供到处理器的Gx或专用总线的接口并与层204通信。层206提供了每队列对(QP)的多个接收子队列来允许针对TCP堆栈的有效缓冲区管理。主机层206为给定的数据分组流提供上下文管理。
为了更详细地说明HEA 110的层202、204和206中的每个层的特性,现在结合附图参考以下讨论。
MAC和串行化/解串层202
图4是具有MAC和串行化/解串层202的更详细视图的HEA 110的方块图。如图所示,在此实施例中,存在一个10千兆位MAC 302和四个1千兆位MAC 304a和304b。MAC 302、304a和304b包括用于对齐和编码接收的分组的模拟编码单元308a、308b和308c。MAC 302、304a和304b连接到高速串行器/解串器(HSS)306。高速串行器/解串器306能够从一个10千兆位源或四个1千兆位源接收数据。
接收以太网功能(RxNet)概述
本节示出了层202中的高级结构和通过接收以太网功能的流。将在下文更详细说明的Rx加速器单元400是分组加速和虚拟化层204的一部分。
图5示出了一个RxNet的组件和数据流。数据到达接口302并由高速串行器/解串器304、模拟编码单元308a和308b以及MAC处理,在此实施例中,所述MAC在64位(10G)或32位(1G)并行数据总线中装配和对齐分组数据。还生成指示帧起始和结束以及其他分组信息的控制信号。数据和控制通过RxAccel单元400,其执行分析、过滤、校验和及查找功能以准备由层206(图2)的接收分组处理器(RPP)来处理。在此实施例中,当数据进入RxAccel单元400时,将时钟转换为4.6ns时钟,并且将数据宽度转换为128b。
随着数据通过RxAccel单元400流到主机层206中的数据缓冲区,RxAccel单元400窥探控制和数据并启动其处理。延迟了RxAccel单元400中的数据流,以便将RxAccel单元400的结果与分组的尾部同步。这时,将RxAccel单元400的结果连同一些来自MAC 302的原始控制信息一起传递到命令队列。将该控制信息和数据一起存储在缓冲区中。
如果RxAccel单元400没有缓存查找表项,则它可能需要通过GX总线接口转到主存储器。GX总线在4.6ns下工作。主机层206可以异步地读取来自RxAccel单元400的队列对求解信息。
发送以太网功能(TxEnet)概述
本节提供了发送结构和通过以太网的流及加速特性的概述。将在下文更详细说明的Tx加速器单元500是分组加速和虚拟化层204的一部分。
图6示出了一个TxEnet的组件和数据流。分组数据和控制从HEA 110的TxAccel 500组件到达。Tx加速器(TxAccel)单元500解译控制信息并修改流过单元500的分组标头中的字段。它根据控制信息或在分组标头中发现的信息来做出环绕或端口决定。它还生成用于TxMAC 302和304的适当控制。延迟了TxAccel单元500中的数据流,以使TxAccel单元500能够在流向MAC 302和304之前更新分组标头。在退出时,将数据宽度从128为转换为64位(10G)或32位(1G)。数据和控制通过TxAccel单元500中的时钟转换功能,以便进入MAC 302和304的不同时钟域。MAC 302和304、模拟转换器508a和508b以及高速串行器/解串器306对以太网接口的分组进行格式化。
分组加速和虚拟化层204
图7是具有分组加速和虚拟化层204的更详细视图的HEA 110的方块图。HEA层204包括上述接收(RxAccel)加速单元400和发送加速(TxAccel)单元500。RxAccel单元400包括接收主干(RBB)402、分析器、过滤器及校验和单元(PFC)404、查找引擎(LUE)406和MIB数据库408。TxAccel单元500包括发送主干502、查找校验504和MIB引擎516。将在下文更详细地说明Rx加速单元400和Tx加速单元500的操作。
接收加速(RxAccel)单元400
本节说明了通过RxAccel单元400的高级结构。图8是RxAccel单元400的更详细的视图。RxAccel单元400包括接收主干(RBB)402、分析器、过滤器及校验和单元(PFC)404、本地查找单元(LLU)406、远程查找单元(RLU)408和MIB数据库410。
数据从接收MAC流过RxAccel单元400而未改变。RBB 402管理数据流并负责时钟和数据总线宽度转换功能。从接收MAC接收的控制和数据由PFC 404用于执行加速功能并做出丢弃决定。PFC 404将从帧提取的控制和数据(包括五元组密钥)传送到LLU 406,以便求解RBB 402的队列对编号(QPN)。LLU 406立即寻找QPN或分配高速缓存表项以保留空位(slot)。如果当前密钥不在高速缓存中,则LLU 406在主存储器中搜索密钥。PFC 404连接到MIB数据库410以存储分组统计信息。
Tx加速500
本节说明了通过发送加速单元500(TxAccel)的高级结构和流。
图9示出了TxAccel单元500包括两个发送主干(XBB)502a和502b、两个发送校验和单元(XCS)504a和504b、两个发送MIB 506a和506b、一个环绕单元(WRP)508和一个暂停单元(PAU)逻辑510。数据从ENop流过TxAccel并被修改以调整IP和TCP校验和字段。XBB 502a和502b管理数据流并负责时钟和数据总线宽度转换功能。从ENop接收的控制和数据由XCS 504a和504b用于执行校验和功能。在MAC层202发送(或丢弃)分组之后,发送状态返回TxAccel以便核算。XBB 502将信息转换到TxAccel单元500的时钟域。将状态信息与XCS 504从分组获得的原始信息结合并传送到MIB计数器逻辑506a和506b。MIB逻辑506a和506b更新MIB阵列中的适当计数器。环绕单元(WRP)508负责向接收侧传送XCS 504a和504b决定环绕的分组。暂停单元(PAU)510命令MAC根据接收缓冲区的占用率来发送暂停帧。
主机接口层206
图10是具有主机接口层206的更详细视图的HEA 110的方决图。主机接口层206包括用于从层204接收分组并将分组提供给层204的输入和输出缓冲区602和604。层206包括用于适当地处理输入缓冲区中的分组的接收分组处理器(RPP)606。上下文管理机制908在允许TCP堆栈的有效缓冲区管理之前提供每队列的多个子队列。
多路分用功能
层204的Rx单元400结合主机接口层206的组件对分组进行多路分用以确保将它们提供给处理器的适当部分。因此,必须对接收的分组进行多路分用以确保它们流向服务器的适当部分。
为了说明此多路分用功能的细节,现在结合图8和图9参考以下内容。
HEA适配器上的多路分用实施方式
在接收分组处理器(RPP)606可以处理已接收的分组之前,必须检索队列对上下文。QP连接管理器使用QP号来完成该操作。因为未在TCP/IP分组中传送QP号,所以必须通过其他方法来确定此编号。存在两大类QP,每连接QP和默认QP。
每连接队列对(QP)
每连接QP旨在用于持久连接,其中不希望IP分组的碎片而希望低等待时间。它要求应用支持由HEA 110提供的用户空间排队机制。在此实施例中,必须首先使用目的地MAC地址找到逻辑端口。对于每连接QP,存在三种类型的查找:
1.特定目的地IP地址和目的地TCP端口的新TCP连接。如果分组为TCP SYN分组,则根据TCP/IP(DA、DP、逻辑端口)来执行查找。
2.仅用于特定目的地TCP端口(不考虑DA)的新TCP连接。如果分组为TCP SYN分组,则根据TCP/IP(DP、逻辑端口)来执行查找。
3.现有的TCP/UDP连接。如果分组为无碎片单播TCP或UDP分组,则根据TCP/IP五元组加上逻辑端口来执行查找。
默认队列对
如果不能找到分组的每连接QP,或如果未启用MAC地址的每连接查找,或如果分组为再循环的多播/广播分组,则使用默认QP。通常,默认QP由内核联网堆栈处理。在HEA 110中存在三种类型的默认QP:
1.每逻辑端口的默认OS队列。逻辑端口对应于具有其自己的默认队列的逻辑以太网接口。每个逻辑端口在逻辑交换机上具有单独的端口。
根据MAC地址执行查找。
到默认OS队列的直接索引(逻辑端口号)具备再循环的(环绕的)多播/广播分组。
2.多播(MC)或广播(BC)队列。
在分组是不匹配MAC查找表中的MAC地址之一的多播或广播分组时,为已配置的值。
3.超默认单播(UC)队列。
如果UC分组不匹配配置的MAC地址之一,则可以使用默认UC QPN。
此机制允许每连接排队和每逻辑端口排队(OS队列)的两个极端之间的灵活性。两个模型都可以与具有其自己排队的一些连接和使用默认逻辑端口队列排队的一些连接一起工作。
由RxAccel单元400执行连接查找。每个端口组都存在一个此类单元。在RxAccel单元400中,每个组件执行该过程的一部分。PFC 404从分组标头提取所需字段并根据目的地MAC地址来确定逻辑端口号。然后,本地查找单元(LLU)406和远程查找单元(RLU)408负责求解QP号。LLU 406尝试仅使用本地资源(高速缓存和寄存器)来寻找QPN。
LLU 406的用途是尝试确定与接收的分组关联的QP号。VLIM和RPP 606需要QP号。它在可能的情况下本地执行此任务(即,不转到系统存储器)。
可以通过以下几种方式之一本地寻找QP号:
在TS高速缓存中查找
默认分区QP
默认UC QP
如果没有在本地找到任何匹配,则进行初步检查以查看表项是否可能存在于系统存储器中。如果是,则调用RLU 408来执行搜索。如果RLU 408忙,则形成在RLU 408空闲时提供给它的请求队列。
LLU 406与RBB 402通信,后者提供QP号和/或队列索引以用于临时排队。如果在高速缓存中没有适合的表项可用,则LLU 406指示RBB 402搜索正忙。在此情况下,必须丢弃分组。
当请求队列索引解并得到解时,LLU 406将QPN提供给主机层406。RLU
408尝试使用系统存储器表来寻找QPN。
LLU 406使用本地64表项高速缓存以便寻找TCP/UDP分组的QPN。如果在高速缓存中找到该表项,则无需调用RLU 408。如果没有在高速缓存中找到该表项,则在高速缓存中进行初步检查以查看该表项是否可能在连接表中。当存在数个配置的队列时,对于消除对主存储器的不必要访问来说,高速缓存是有用的。
如果调用了RLU 408,则它使用六元组的散列(包括逻辑端口号)来从存储器取回128字节直接表(DT)表项。该DT表项包含最多八个六元组模式和关联的QPN。如果找到匹配,则无需进一步的操作。
当必须调用RLU 408时,不能在运行中确定QPN,因为正在将分组放入输入缓冲区。实际上,可以在数个分组之后确定QPN。出于此原因,RxAccel单元400可以向主机层206提供QPN或队列索引以便分组排队。如果提供了QPN,则主机层206(卸载机)可以直接将分组排队以由RPP处理。如果提供了队列索引,则主机层206必须保留此分组以等待QPN的解。始终在分派RPP时才确定QPN。
虚拟化
因为高速数据路径很可能由多个分区共享并且因为高速以太网性能对服务器来说至关重要,所以HEA执行下列操作非常关键:
提供在多个分区之间共享的适配器;
允许本机性能,即,“与专用适配器一样”;
允许本机增值特性,即,“与专用适配器一样”(大量发送、每连接队列、......);
允许分区之间的隔离;
提供分区连接性。
分区必须能够透明地通信,即,以相同的方式,无论它们是共同位于同一物理服务器上还是位于由真实以太网连接的不同物理服务器上。
今天,通过在拥有适配器的服务器分区中进行切换或路由来支持以太网虚拟化,此额外跳跃带来了性能瓶颈(数据复制、三个驱动器、......)。HEA 110旨在提供正在使用的分区与适配器之间的直接数据和控制路径(没有额外跳跃)。也就是说,HEA向每个分区提供其自己的“虚拟”适配器和“逻辑”端口。与HCA一样,可以每分区地分配/启用所有HEA资源和功能,使用完全相同的机制来提供分区间保护和隔离。
数据路径
关于数据路径,如图11所示,HEA 110提供每物理端口902和904的逻辑层2交换机906和908,以便提供多播处理和分区到分区910a-910c通信。在HEA中实现此支持使整体系统解决方案简单(具体地说,对软件透明)并提供了高性能。所有HEA硬件加速和保护都对分区到分区通信可用。
为了支持以上流程,可以考虑的便捷方法是向给定物理端口以及该物理端口自身连接的端口显示所有逻辑端口与其关联的逻辑层2交换机902和904。问题是如何及在何处实现此逻辑交换机,选择的范围从固件/软件中的完全仿真到HEA硬件中的完全实现。每物理端口都有一个逻辑层2交换机;这些逻辑交换机没有连接在一起。
系统配置
具有遗留OS TCP/IP堆栈的虚拟化HEA
图12示出了与遗留OS TCP/IP堆栈1102、1104和1106一起使用的HEA。
-未更改应用1108a-1108c;
-未更改TCP/IP堆栈1102、1104和1106;
-要求支持HEA 110的设备驱动器1107a、1107b和1107c。
可以可选地增强TCP/IP堆栈(OS)以利用诸如用于短分组或每TCP连接的多路分用分组的低等待时间队列之类的特性。如图所示,根据MAC地址和每分区的QPN来执行分组的多路分用。
具有遗留OS堆栈和用户空间TCP/IP的虚拟化HEA
图13示出了在一些分区支持用户空间TCP堆栈1220以及遗留OS堆栈1208a和1208b的系统中使用的HEA 110。
-可能需要支持用户空间TCP的应用来使用套接字扩展API;
-其他分区可以使用常规OS TCP/IP堆栈;
-支持用户空间TCP的分区中的一些应用也可以使用常规TCP/IP堆栈(默认路径)。由HEA根据客户标识(Cid)信息和客户QPN来对用户空间TCP 1220进行多路分用。
在适配器中完全支持逻辑交换机。为了使HEA硬件复杂性最小化,HEA依赖软件实体(多播管理器)来进行多播/广播分组复制。HEA协助多播管理器将分组副本传送到目的地分区。
外部单播业务
通过分配给分区的QP来处理发送单播业务。它可以是每连接的专用队列对或每逻辑端口的单个队列对或两者。HEA提供了“发送”队列间的公平调度。根据系统配置,可以许可QP访问应用(用户空间)或仅访问OS堆栈(特权)。
按照以下步骤对接收的单播业务进行多路分用:
-对目的地MAC地址执行查找以找到目的地逻辑端口;
-如果为目的地逻辑端口启用了每连接排队,则对连接ID执行第二查找以找到与连接关联的QP;
-如果未启用每连接排队或尚未设置特定连接的连接QP,则将入站消息排队到与目的地逻辑端口关联的“默认”QP。
分区到分区单播业务
图14是示出了包括支持每连接排队的所有HEA加速特性的方块图。将完全透明性提供给分区的设备驱动器。
分区堆栈使用每连接QP或默认QP来发送分组。由于分组由HEA发送侧处理,所以HEA检测到目的地MAC地址是与同一物理端口上定义的逻辑端口关联的MAC地址(也就是说,目的地MAC地址标识属于同一层2逻辑交换机的接收逻辑链路而非发送逻辑链路)。因此,HEA使分组环绕。HEA接收侧然后处理分组,似乎分组是从物理链路接收的,并因此使用完全相同的加速特性。
在IP情况下,IP堆栈可以使用常规机制来找到位于同一IP子网的目的地分区的目的地MAC地址。该分区可以共同位于同一服务器或位于不同服务器,这对堆栈和设备驱动器两者都是透明的。
外部和分区到分区多播/广播业务
HEA未规定将多播和广播分组复制到所需分区。相反,它将所有接收的MC/BC分组转发到由多播管理器功能拥有的QP。该功能按需要复制分组并使用HEA传输功能来将副本分发到所需分区。
接收
图15示出了入站多播传输。接收的多播和广播分组首先通过HEA过滤功能。如果未被丢弃,则将分组引导到多播管理器1500拥有的QP。将分组传送到系统存储器并激活多播管理器1500。多播管理器1500确定哪个逻辑端口应接收分组的副本(多播过滤)并处理分组复制。多播管理器可以使用HEA 110来协助将分组重新分发到接收分区1502a-1502c。
为执行此操作,多播管理器使n个(接收方的数量)引用所接收分组的描述符(WQE)入队到其发送队列。注意,必须将分组完好地发送到其接收方,具体地说,用其各个接收方的单播地址来替换多播目的地MAC地址是不可接受的。因此,分组描述符必须包含信息,以便HEA可以将分组引导到其适合的目的地。此信息可以是接收方的默认QP或其逻辑端口ID或其MAC地址。一旦选择了要发送的分组,HEA发送侧根据包含在QP和WQE两者中的信息确定需要通过环绕发送分组。将确定接收方QP的信息连同数据一起传送到HEA接收侧。HEA接收侧使用该信息来将分组入队到接收方QP。
发送
图16示出了出站多播传输。通过发起分区使用普通过程来发送广播/多播分组。由于分组由HEA发送侧处理,所以HEA检测目的地MAC地址是广播还是多播以及未在WQE中设置“驱逐”选项。因此,HEA使分组环绕。HEA接收侧然后如上所述的处理分组。多播管理器如上所述的处理分组,同时具有以下附加要求:
-它必须确保将发送方从接收方列表中删除,它将分组的源MAC地址用作过滤器来执行此操作;
-可以在分组复制过程期间执行VLAN过滤。仅将分组发送到VLAN的成员;
-一旦发生内部复制,则必须将分组发送到物理端口外。它通过启用其QP的驱逐功能及在WQE中设置“驱逐”位来执行此操作。当设置了该位时,HEA直接将分组发送到物理链路外。
多分区环境中的多播过滤
在接收侧,HEA提供多播过滤。与其他“现用”适配器一样,HEA提供基于目的地MAC地址的散列值的最佳过滤和对每物理端口的一个过滤表的查找。此功能意在限制多播业务,但是将“最终”过滤留给堆栈。在多分区的情况下,来自所有涉及的分区的过滤要求应由多播管理器合并,然后在HEA中配置。
然后,多播管理器可以在处理将分组分发到所需分区时执行每分区的多播过滤。
分组标头分离
HEA 110能够将TCP/IP标头从数据有效负载中分离。此特性允许零复制操作并由此改善了等待时间。
当在QP上下文中配置时,由HEA 110执行分组标头分离。当配置之后,将以太网/IP/TCP或以太网/IP/UDP标头从分组本体分离并置于不同的存储器中。通常,TCP/IP堆栈处理标头,而应用处理本体。在硬件中分离允许将用户数据对齐到用户缓冲区中并由此避免复制。
层204(图8)中的PFC 404将总标头长度(8位)传递到主机接口206(图10)的RPP 606,所述长度指示以太网、IP和TCP/UDP标头的字节数。当未执行标头分离时将标头长度设置为0。
必须为两个或更多接收队列(RQ)配置QP。
如果分组是TCP或UDP(标头长度不为零),则RPP 606将标头置于RQ1WQE中。然后,RPP 606为分组的数据部分选择适当的RQ(RQ2或RQ3)。RQ2或RQ3WQE中的描述符用于放置其余数据。RPP 606指示应生成具有完整信息的CQE。设置了分组分离标志。从使用的RQ2或RQ 3WQE复制CQE的相关器字段中的相关器。还将置于第一WQE中的标头字节的计数放置在CQE中。
如果标头大于RQ1WQE中的可用空间,则使用尽可能多的数据填充WQE并在CQE中设置“标头过长”标志。标头的其余部分和数据一起置于RQ2/RQ3WQE中。
当将标头分离模式设置为“全部”且正在执行标头分离时(标头长度不为零),不会将分组的任何本体放置在RQ1WQE中。可以可选地将QP配置为将短分组完全置于RQ1 WQE中(标头分离模式=ML)。在如此配置时,如果分组长度小于RQ2阈值,则仅使用RQ1WQE而不执行标头分离。注意,从不在RQ1和RQ2/RQ3之间分离本体。
如果分组是IP碎片或不是TCP或者UDP(标头长度为零)且分组太大而不能放置在RQ1WQE中,则使用RQ2或RQ3WQE来放置整个分组。将标头计数设置为零。关闭标头分离标志。不使用RQ1WQE(除非要将竞争信息置于RQ1WQE中)。
因此,HEA 110能够将TCP/IP标头从数据有效负载中分离。此特性允许将标头引导到协议堆栈以供处理而不污染由应用发布的接收缓冲区,并因此降低特定事务的等待周期。
综述
因此,根据本发明的主机以太网适配器(HEA)通过直接连接到处理器的专用总线并由此具有足够带宽(例如,866MHz下为55.42Gbps)以支持两个10Gbps端口的完整40Gbps带宽而达到了无与伦比的性能水平。通过使适配器位于处理器的专用总线上,还去除了中间逻辑并由此改进了传送等待时间。因此,可以提供一种使用HEA 110的网络接口控制器(NIC),其比常规NIC允许更高的速度、更低的等待时间及更简单的逻辑。
尽管根据示出的实施例描述了本发明,但是本领域的技术人员将容易地认识到,可以存在实施例的变型并且这些变型将在本发明的精神和范围之内。因此,本领域的技术人员可以做出许多修改而不偏离所附权利要求的精神和范围。

Claims (27)

1.一种以太网适配器,包括:
多个层,用于允许所述适配器从至少一个处理器接收分组并将分组发送到至少一个处理器;其中所述多个层包括多路分用机制,以便允许对所述至少一个处理器的多个资源进行分区。
2.如权利要求1中所述的以太网适配器,其中所述多路分用机制允许在所述处理器中并行使用到多个操作系统的直接路径。
3.如权利要求1中所述的以太网适配器,其中所述多路分用机制允许在所述处理器中并行使用到多个应用的直接路径。
4.如权利要求1中所述的以太网适配器,其中所述多路分用机制允许在所述处理器中并行使用到多个操作系统的直接路径并且允许在所述处理器中并行使用多个应用。
5.如权利要求1中所述的以太网适配器,其中所述多个层包括:
介质访问控制器和串行化/解串层;
分组加速和虚拟化层,用于从所述介质访问控制器和串行化/解串层接收分组并向所述介质访问控制器和串行化/解串层提供分组;以及
主机接口层,用于与所述分组加速和虚拟化层通信以及用于与所述处理器的专用总线连接。
6.如权利要求1中所述的以太网适配器,其中为所述适配器的每个物理端口使用一个逻辑交换机。
7.如权利要求6中所述的以太网适配器,其中一个逻辑交换机提供了多个逻辑端口,其中所述多个逻辑端口中的每个端口都支持所述处理器的分区。
8.如权利要求5中所述的以太网适配器,其中所述介质访问控制器和串行化/解串层包括用于接收分组的接收以太网功能;以及用于发送分组的发送以太网功能。
9.如权利要求5中所述的以太网适配器,其中在适当时将分组标头从数据有效负载中分离以降低特定事务的等待周期。
10.一种网络接口控制器,包括:
接口,所述接口适于连接到处理器的专用总线;以及
以太网适配器,所述以太网适配器包括多个层,用于允许所述适配器从至少一个处理器接收分组并将分组发送到至少一个处理器;其中所述多个层包括多路分用机制,以便允许对所述至少一个处理器的多个资源进行分区。
11.如权利要求10中所述的网络接口控制器,其中所述多路分用机制允许在所述处理器中并行使用到多个操作系统的直接路径。
12.如权利要求10中所述的网络接口控制器,其中所述多路分用机制允许在所述处理器中并行使用到多个应用的直接路径。
13.如权利要求10中所述的网络接口控制器,其中所述多路分用机制允许在所述处理器中并行使用到多个操作系统的直接路径并且允许在所述处理器中并行使用多个应用。
14.如权利要求10中所述的网络接口控制器,其中所述多个层包括:
介质访问控制器和串行化/解串层;
分组加速和虚拟化层,用于从所述介质访问控制器和串行化/解串层接收分组并向所述介质访问控制器和串行化/解串层提供分组;以及
主机接口层,用于与所述分组加速和虚拟化层通信以及用于与所述处理器的专用总线连接。
15.如权利要求10中所述的网络接口控制器,其中为所述适配器的每个物理端口使用一个逻辑交换机。
16.如权利要求15中所述的网络接口控制器,其中一个逻辑交换机提供了多个逻辑端口,其中所述多个逻辑端口中的每个端口都支持所述处理器的分区。
17.如权利要求14中所述的网络接口控制器,其中所述介质访问控制器和串行化/解串层包括用于接收分组的接收以太网功能;以及用于发送分组的发送以太网功能。
18.如权利要求14中所述的网络接口控制器,其中在适当时将分组标头从数据有效负载中分离以降低特定事务的等待周期。
19.一种服务器系统,包括:
服务器,所述服务器包括处理器和连接到所述处理器的存储器;以及
网络接口控制器,所述网络接口控制器通过所述处理器的专用总线连接到所述处理器;所述网络接口控制器包括通过专用总线接口连接到所述专用总线的以太网适配器,所述以太网适配器包括多个层,用于允许所述适配器从处理器接收分组并将分组发送到处理器;其中所述多个层包括多路分用机制,以便允许对所述至少一个处理器的多个资源进行分区。
20.如权利要求19中所述的服务器系统,其中所述多路分用机制允许在所述处理器中并行使用到多个操作系统的直接路径。
21.如权利要求19中所述的服务器系统,其中所述多路分用机制允许在所述处理器中并行使用到多个应用的直接路径。
22.如权利要求19中所述的服务器系统,其中所述多路分用机制允许在所述处理器中并行使用到多个操作系统的直接路径并且允许在所述处理器中并行使用多个应用。
23.如权利要求19中所述的服务器系统,其中所述多个层包括:
介质访问控制器和串行化/解串层;
分组加速和虚拟化层,用于从所述介质访问控制器和串行化/解串层接收分组并向所述介质访问控制器和串行化/解串层提供分组;以及
主机接口层,用于与所述分组加速和虚拟化层通信以及用于与所述处理器的专用总线连接。
24.如权利要求19中所述的服务器系统,其中为所述适配器的每个物理端口使用一个逻辑交换机。
25.如权利要求24中所述的服务器系统,其中一个逻辑交换机提供了多个逻辑端口,其中所述多个逻辑端口中的每个端口都支持所述处理器的分区。
26.如权利要求23中所述的服务器系统,其中所述介质访问控制器和串行化/解串层包括用于接收分组的接收以太网功能;以及用于发送分组的发送以太网功能。
27.如权利要求23中所述的服务器系统,其中在适当时将分组标头从数据有效负载中分离以降低特定事务的等待周期。
CN2006800108202A 2005-04-01 2006-03-15 用于服务器环境中的联网卸载的主机以太网适配器 Expired - Fee Related CN101151851B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/097,608 US7586936B2 (en) 2005-04-01 2005-04-01 Host Ethernet adapter for networking offload in server environment
US11/097,608 2005-04-01
PCT/EP2006/060734 WO2006103169A1 (en) 2005-04-01 2006-03-15 Host ethernet adapter for networking offload in server environment

Publications (2)

Publication Number Publication Date
CN101151851A true CN101151851A (zh) 2008-03-26
CN101151851B CN101151851B (zh) 2013-03-06

Family

ID=36441302

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800108202A Expired - Fee Related CN101151851B (zh) 2005-04-01 2006-03-15 用于服务器环境中的联网卸载的主机以太网适配器

Country Status (6)

Country Link
US (2) US7586936B2 (zh)
EP (1) EP1864444A1 (zh)
JP (1) JP4807861B2 (zh)
CN (1) CN101151851B (zh)
TW (1) TWI392275B (zh)
WO (1) WO2006103169A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103269333A (zh) * 2013-04-23 2013-08-28 深圳市京华科讯科技有限公司 基于虚拟化的多媒体加速系统
CN113127390A (zh) * 2021-05-13 2021-07-16 西安微电子技术研究所 一种多协议数据总线适配器引擎架构设计方法
US11522931B1 (en) * 2021-07-30 2022-12-06 Avago Technologies International Sales Pte. Limited Systems and methods for controlling high speed video

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7007103B2 (en) * 2002-04-30 2006-02-28 Microsoft Corporation Method to offload a network stack
US7586936B2 (en) * 2005-04-01 2009-09-08 International Business Machines Corporation Host Ethernet adapter for networking offload in server environment
US9794378B2 (en) * 2006-11-08 2017-10-17 Standard Microsystems Corporation Network traffic controller (NTC)
US8706987B1 (en) 2006-12-01 2014-04-22 Synopsys, Inc. Structured block transfer module, system architecture, and method for transferring
US8127113B1 (en) 2006-12-01 2012-02-28 Synopsys, Inc. Generating hardware accelerators and processor offloads
US8289966B1 (en) * 2006-12-01 2012-10-16 Synopsys, Inc. Packet ingress/egress block and system and method for receiving, transmitting, and managing packetized data
US7813366B2 (en) * 2006-12-19 2010-10-12 International Business Machines Corporation Migration of a virtual endpoint from one virtual plane to another
US7715428B2 (en) * 2007-01-31 2010-05-11 International Business Machines Corporation Multicore communication processing
US20080285551A1 (en) * 2007-05-18 2008-11-20 Shamsundar Ashok Method, Apparatus, and Computer Program Product for Implementing Bandwidth Capping at Logical Port Level for Shared Ethernet Port
US7930462B2 (en) * 2007-06-01 2011-04-19 Apple Inc. Interface controller that has flexible configurability and low cost
US8284792B2 (en) * 2007-06-01 2012-10-09 Apple Inc. Buffer minimization in interface controller
US8250254B2 (en) * 2007-07-31 2012-08-21 Intel Corporation Offloading input/output (I/O) virtualization operations to a processor
KR101365595B1 (ko) * 2007-08-16 2014-02-21 삼성전자주식회사 Gui기반의 디스플레이부를 구비한 디바이스의 입력 방법및 그 장치
US20090055831A1 (en) * 2007-08-24 2009-02-26 Bauman Ellen M Allocating Network Adapter Resources Among Logical Partitions
US8103785B2 (en) * 2007-12-03 2012-01-24 Seafire Micros, Inc. Network acceleration techniques
US7760736B2 (en) * 2008-02-25 2010-07-20 International Business Machines Corporation Method, system, and computer program product for ethernet virtualization using an elastic FIFO memory to facilitate flow of broadcast traffic to virtual hosts
US7751400B2 (en) * 2008-02-25 2010-07-06 International Business Machines Coproration Method, system, and computer program product for ethernet virtualization using an elastic FIFO memory to facilitate flow of unknown traffic to virtual hosts
JP5125777B2 (ja) * 2008-06-03 2013-01-23 富士通株式会社 入出力ポートの割当て識別装置、その割当て識別方法及び情報処理装置
TWI379567B (en) * 2008-09-12 2012-12-11 Realtek Semiconductor Corp Single network interface card (nic) with multiple-ports and method thereof
US8887144B1 (en) 2009-09-04 2014-11-11 Amazon Technologies, Inc. Firmware updates during limited time period
US10177934B1 (en) * 2009-09-04 2019-01-08 Amazon Technologies, Inc. Firmware updates inaccessible to guests
US9565207B1 (en) 2009-09-04 2017-02-07 Amazon Technologies, Inc. Firmware updates from an external channel
US8214653B1 (en) 2009-09-04 2012-07-03 Amazon Technologies, Inc. Secured firmware updates
US8971538B1 (en) 2009-09-08 2015-03-03 Amazon Technologies, Inc. Firmware validation from an external channel
US8601170B1 (en) 2009-09-08 2013-12-03 Amazon Technologies, Inc. Managing firmware update attempts
US8300641B1 (en) 2009-09-09 2012-10-30 Amazon Technologies, Inc. Leveraging physical network interface functionality for packet processing
US8959611B1 (en) 2009-09-09 2015-02-17 Amazon Technologies, Inc. Secure packet management for bare metal access
US8381264B1 (en) 2009-09-10 2013-02-19 Amazon Technologies, Inc. Managing hardware reboot and reset in shared environments
US20110283278A1 (en) * 2010-05-13 2011-11-17 Vmware, Inc. User interface for managing a distributed virtual switch
US8873389B1 (en) * 2010-08-09 2014-10-28 Chelsio Communications, Inc. Method for flow control in a packet switched network
US8843628B2 (en) * 2010-08-31 2014-09-23 Harris Corporation System and method of capacity management for provisioning and managing network access and connectivity
US8576864B2 (en) 2011-01-21 2013-11-05 International Business Machines Corporation Host ethernet adapter for handling both endpoint and network node communications
US8838837B2 (en) 2011-06-23 2014-09-16 Microsoft Corporation Failover mechanism
US9444651B2 (en) 2011-08-17 2016-09-13 Nicira, Inc. Flow generation from second level controller to first level controller to managed switching element
US8839044B2 (en) 2012-01-05 2014-09-16 International Business Machines Corporation Debugging of adapters with stateful offload connections
US9135092B2 (en) 2012-02-02 2015-09-15 International Business Machines Corporation Multicast message filtering in virtual environments
CN102710813B (zh) * 2012-06-21 2014-07-09 杭州华三通信技术有限公司 一种mac地址表项存取方法和设备
US10459594B2 (en) 2013-12-31 2019-10-29 Vmware, Inc. Management of a pre-configured hyper-converged computing device
US9444754B1 (en) 2014-05-13 2016-09-13 Chelsio Communications, Inc. Method for congestion control in a network interface card
JP6300366B2 (ja) * 2014-08-01 2018-03-28 日本電信電話株式会社 仮想ネットワーク設定情報管理装置および仮想ネットワーク設定情報管理プログラム
JP2016201683A (ja) * 2015-04-10 2016-12-01 ソニー株式会社 ビデオサーバー、ビデオサーバーシステムおよび命令処理方法
US9923811B2 (en) 2015-06-27 2018-03-20 Nicira, Inc. Logical routers and switches in a multi-datacenter environment
GB201616413D0 (en) 2016-09-28 2016-11-09 International Business Machines Corporation Monitoring network addresses and managing data transfer
US11165635B2 (en) * 2018-09-11 2021-11-02 Dell Products L.P. Selecting and configuring multiple network components in enterprise hardware
US11088902B1 (en) 2020-04-06 2021-08-10 Vmware, Inc. Synchronization of logical network state between global and local managers
US11777793B2 (en) 2020-04-06 2023-10-03 Vmware, Inc. Location criteria for security groups
US11438238B2 (en) 2020-04-06 2022-09-06 Vmware, Inc. User interface for accessing multi-site logical network
US11799726B2 (en) 2020-04-06 2023-10-24 Vmware, Inc. Multi-site security groups
US11336556B2 (en) 2020-04-06 2022-05-17 Vmware, Inc. Route exchange between logical routers in different datacenters
US11757940B2 (en) 2020-09-28 2023-09-12 Vmware, Inc. Firewall rules for application connectivity

Family Cites Families (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058110A (en) 1989-05-03 1991-10-15 Ultra Network Technologies Protocol processor
EP0549924A1 (en) * 1992-01-03 1993-07-07 International Business Machines Corporation Asynchronous co-processor data mover method and means
US5430842A (en) 1992-05-29 1995-07-04 Hewlett-Packard Company Insertion of network data checksums by a network adapter
JPH06187178A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
JPH086882A (ja) * 1994-06-17 1996-01-12 Hitachi Cable Ltd 通信装置
US5752078A (en) 1995-07-10 1998-05-12 International Business Machines Corporation System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory
US6330005B1 (en) * 1996-02-23 2001-12-11 Visionael Corporation Communication protocol binding in a computer system for designing networks
US5831610A (en) * 1996-02-23 1998-11-03 Netsuite Development L.P. Designing networks
US5821937A (en) * 1996-02-23 1998-10-13 Netsuite Development, L.P. Computer method for updating a network design
US6112015A (en) * 1996-12-06 2000-08-29 Northern Telecom Limited Network management graphical user interface
US5983274A (en) * 1997-05-08 1999-11-09 Microsoft Corporation Creation and use of control information associated with packetized network data by protocol drivers and device drivers
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6226680B1 (en) 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6408393B1 (en) * 1998-01-09 2002-06-18 Hitachi, Ltd. CPU power adjustment method
US6658002B1 (en) 1998-06-30 2003-12-02 Cisco Technology, Inc. Logical operation unit for packet processing
US6970419B1 (en) * 1998-08-07 2005-11-29 Nortel Networks Limited Method and apparatus for preserving frame ordering across aggregated links between source and destination nodes
US6510552B1 (en) 1999-01-29 2003-01-21 International Business Machines Corporation Apparatus for keeping several versions of a file
US6650640B1 (en) 1999-03-01 2003-11-18 Sun Microsystems, Inc. Method and apparatus for managing a network flow in a high performance network interface
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
US6937574B1 (en) * 1999-03-16 2005-08-30 Nortel Networks Limited Virtual private networks and methods for their operation
GB2352360B (en) * 1999-07-20 2003-09-17 Sony Uk Ltd Network terminator
US6427169B1 (en) 1999-07-30 2002-07-30 Intel Corporation Parsing a packet header
US6404752B1 (en) * 1999-08-27 2002-06-11 International Business Machines Corporation Network switch using network processor and methods
US6724769B1 (en) 1999-09-23 2004-04-20 Advanced Micro Devices, Inc. Apparatus and method for simultaneously accessing multiple network switch buffers for storage of data units of data frames
US6788697B1 (en) 1999-12-06 2004-09-07 Nortel Networks Limited Buffer management scheme employing dynamic thresholds
US6822968B1 (en) * 1999-12-29 2004-11-23 Advanced Micro Devices, Inc. Method and apparatus for accounting for delays caused by logic in a network interface by integrating logic into a media access controller
US7308006B1 (en) * 2000-02-11 2007-12-11 Lucent Technologies Inc. Propagation and detection of faults in a multiplexed communication system
US6988235B2 (en) * 2000-03-02 2006-01-17 Agere Systems Inc. Checksum engine and a method of operation thereof
US6795870B1 (en) * 2000-04-13 2004-09-21 International Business Machines Corporation Method and system for network processor scheduler
US6735670B1 (en) 2000-05-12 2004-05-11 3Com Corporation Forwarding table incorporating hash table and content addressable memory
US6678746B1 (en) 2000-08-01 2004-01-13 Hewlett-Packard Development Company, L.P. Processing network packets
US6754662B1 (en) 2000-08-01 2004-06-22 Nortel Networks Limited Method and apparatus for fast and consistent packet classification via efficient hash-caching
CA2415888C (en) * 2000-08-04 2008-10-21 Avaya Technology Corporation Intelligent demand driven recognition of url objects in connection oriented transactions
US8019901B2 (en) 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
US7218632B1 (en) 2000-12-06 2007-05-15 Cisco Technology, Inc. Packet processing engine architecture
US6954463B1 (en) 2000-12-11 2005-10-11 Cisco Technology, Inc. Distributed packet processing architecture for network access servers
US7131140B1 (en) * 2000-12-29 2006-10-31 Cisco Technology, Inc. Method for protecting a firewall load balancer from a denial of service attack
US7023811B2 (en) 2001-01-17 2006-04-04 Intel Corporation Switched fabric network and method of mapping nodes using batch requests
EP1358562B8 (en) * 2001-01-31 2012-03-28 International Business Machines Corporation Method and apparatus for controlling flow of data between data processing systems via a memory
US7149817B2 (en) * 2001-02-15 2006-12-12 Neteffect, Inc. Infiniband TM work queue to TCP/IP translation
US6728929B1 (en) 2001-02-16 2004-04-27 Spirent Communications Of Calabasas, Inc. System and method to insert a TCP checksum in a protocol neutral manner
US7292586B2 (en) 2001-03-30 2007-11-06 Nokia Inc. Micro-programmable protocol packet parser and encapsulator
JP4291964B2 (ja) * 2001-04-19 2009-07-08 株式会社日立製作所 仮想計算機システム
CN1290008C (zh) * 2001-04-20 2006-12-13 伊金耐勒股份有限公司 在处理系统中虚拟连网的系统及方法
US7274706B1 (en) * 2001-04-24 2007-09-25 Syrus Ziai Methods and systems for processing network data
JP3936550B2 (ja) 2001-05-14 2007-06-27 富士通株式会社 パケットバッファ
US7164678B2 (en) 2001-06-25 2007-01-16 Intel Corporation Control of processing order for received network packets
US20030026252A1 (en) * 2001-07-31 2003-02-06 Thunquest Gary L. Data packet structure for directly addressed multicast protocol
US6976205B1 (en) 2001-09-21 2005-12-13 Syrus Ziai Method and apparatus for calculating TCP and UDP checksums while preserving CPU resources
US7124198B2 (en) 2001-10-30 2006-10-17 Microsoft Corporation Apparatus and method for scaling TCP off load buffer requirements by segment size
US6907466B2 (en) 2001-11-08 2005-06-14 Extreme Networks, Inc. Methods and systems for efficiently delivering data to a plurality of destinations in a computer network
EP1464144A4 (en) 2001-11-09 2010-09-22 Vitesse Semiconductor Corp MEANS AND METHOD FOR SWITCHING PACKETS OR DATA FRAMES
US7286557B2 (en) * 2001-11-16 2007-10-23 Intel Corporation Interface and related methods for rate pacing in an ethernet architecture
US7236492B2 (en) 2001-11-21 2007-06-26 Alcatel-Lucent Canada Inc. Configurable packet processor
JP4018900B2 (ja) * 2001-11-22 2007-12-05 株式会社日立製作所 仮想計算機システム及びプログラム
AU2002365837A1 (en) 2001-12-03 2003-06-17 Tagore-Brage, Jens P. Interface to operate groups of inputs/outputs
US8370936B2 (en) * 2002-02-08 2013-02-05 Juniper Networks, Inc. Multi-method gateway-based network security systems and methods
US7269661B2 (en) 2002-02-12 2007-09-11 Bradley Richard Ree Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet
US7047374B2 (en) 2002-02-25 2006-05-16 Intel Corporation Memory read/write reordering
US7283528B1 (en) 2002-03-22 2007-10-16 Raymond Marcelino Manese Lim On the fly header checksum processing using dedicated logic
US20040030766A1 (en) * 2002-08-12 2004-02-12 Michael Witkowski Method and apparatus for switch fabric configuration
US7251704B2 (en) * 2002-08-23 2007-07-31 Intel Corporation Store and forward switch device, system and method
US7031304B1 (en) 2002-09-11 2006-04-18 Redback Networks Inc. Method and apparatus for selective packet Mirroring
KR100486713B1 (ko) 2002-09-17 2005-05-03 삼성전자주식회사 멀티미디어 스트리밍 장치 및 방법
US7271706B2 (en) * 2002-10-09 2007-09-18 The University Of Mississippi Termite acoustic detection
KR100454681B1 (ko) * 2002-11-07 2004-11-03 한국전자통신연구원 프레임 다중화를 이용한 이더넷 스위칭 장치 및 방법
KR100460672B1 (ko) * 2002-12-10 2004-12-09 한국전자통신연구원 10 기가비트 이더넷 회선 정합 장치 및 그 제어 방법
US8346884B2 (en) * 2003-01-21 2013-01-01 Nextio Inc. Method and apparatus for a shared I/O network interface controller
US7493409B2 (en) * 2003-04-10 2009-02-17 International Business Machines Corporation Apparatus, system and method for implementing a generalized queue pair in a system area network
US20040218623A1 (en) 2003-05-01 2004-11-04 Dror Goldenberg Hardware calculation of encapsulated IP, TCP and UDP checksums by a switch fabric channel adapter
US7298761B2 (en) * 2003-05-09 2007-11-20 Institute For Information Industry Link path searching and maintaining method for a bluetooth scatternet
US20050022017A1 (en) * 2003-06-24 2005-01-27 Maufer Thomas A. Data structures and state tracking for network protocol processing
US7098685B1 (en) 2003-07-14 2006-08-29 Lattice Semiconductor Corporation Scalable serializer-deserializer architecture and programmable interface
JP4587446B2 (ja) * 2003-08-07 2010-11-24 キヤノン株式会社 ネットワークシステム、並びにスイッチ装置及び経路管理サーバ及びそれらの制御方法、及び、コンピュータプログラム及びコンピュータ可読記憶媒体
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
JP4437650B2 (ja) 2003-08-25 2010-03-24 株式会社日立製作所 ストレージシステム
US7668923B2 (en) * 2003-10-14 2010-02-23 International Business Machines Corporation Master-slave adapter
US20050080869A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Transferring message packets from a first node to a plurality of nodes in broadcast fashion via direct memory to memory transfer
US20050091383A1 (en) * 2003-10-14 2005-04-28 International Business Machines Corporation Efficient zero copy transfer of messages between nodes in a data processing system
US20050080920A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Interpartition control facility for processing commands that effectuate direct memory to memory information transfer
US7441179B2 (en) 2003-10-23 2008-10-21 Intel Corporation Determining a checksum from packet data
US7219294B2 (en) * 2003-11-14 2007-05-15 Intel Corporation Early CRC delivery for partial frame
US20050114710A1 (en) 2003-11-21 2005-05-26 Finisar Corporation Host bus adapter for secure network devices
US7633955B1 (en) * 2004-02-13 2009-12-15 Habanero Holdings, Inc. SCSI transport for fabric-backplane enterprise servers
US7873693B1 (en) * 2004-02-13 2011-01-18 Habanero Holdings, Inc. Multi-chassis fabric-backplane enterprise servers
US7292591B2 (en) 2004-03-30 2007-11-06 Extreme Networks, Inc. Packet processing system architecture and method
US7502474B2 (en) 2004-05-06 2009-03-10 Advanced Micro Devices, Inc. Network interface with security association data prefetch for high speed offloaded security processing
US20050265252A1 (en) * 2004-05-27 2005-12-01 International Business Machines Corporation Enhancing ephemeral port allocation
US7461183B2 (en) * 2004-08-03 2008-12-02 Lsi Corporation Method of processing a context for execution
US7134796B2 (en) 2004-08-25 2006-11-14 Opnext, Inc. XFP adapter module
US7436773B2 (en) * 2004-12-07 2008-10-14 International Business Machines Corporation Packet flow control in switched full duplex ethernet networks
US8040903B2 (en) 2005-02-01 2011-10-18 Hewlett-Packard Development Company, L.P. Automated configuration of point-to-point load balancing between teamed network resources of peer devices
US7620754B2 (en) 2005-03-25 2009-11-17 Cisco Technology, Inc. Carrier card converter for 10 gigabit ethernet slots
US20060230098A1 (en) * 2005-03-30 2006-10-12 International Business Machines Corporation Routing requests to destination application server partitions via universal partition contexts
US7586936B2 (en) * 2005-04-01 2009-09-08 International Business Machines Corporation Host Ethernet adapter for networking offload in server environment
US7903687B2 (en) * 2005-04-01 2011-03-08 International Business Machines Corporation Method for scheduling, writing, and reading data inside the partitioned buffer of a switch, router or packet processing device
US20070079103A1 (en) * 2005-10-05 2007-04-05 Yasuyuki Mimatsu Method for resource management in a logically partitioned storage system
WO2007047694A2 (en) * 2005-10-17 2007-04-26 Alebra Technologies, Inc. Method, process and system for sharing data in a heterogeneous storage network
JP4542514B2 (ja) * 2006-02-13 2010-09-15 株式会社日立製作所 計算機の制御方法、プログラム及び仮想計算機システム
US7716356B2 (en) * 2006-06-30 2010-05-11 International Business Machines Corporation Server-based acquisition, distributed acquisition and usage of dynamic MAC addresses in a virtualized Ethernet environment
US7827331B2 (en) * 2006-12-06 2010-11-02 Hitachi, Ltd. IO adapter and data transferring method using the same
US20090055831A1 (en) * 2007-08-24 2009-02-26 Bauman Ellen M Allocating Network Adapter Resources Among Logical Partitions
JP5216336B2 (ja) * 2008-01-23 2013-06-19 株式会社日立製作所 計算機システム、管理サーバ、および、不一致接続構成検知方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103269333A (zh) * 2013-04-23 2013-08-28 深圳市京华科讯科技有限公司 基于虚拟化的多媒体加速系统
CN113127390A (zh) * 2021-05-13 2021-07-16 西安微电子技术研究所 一种多协议数据总线适配器引擎架构设计方法
CN113127390B (zh) * 2021-05-13 2023-03-14 西安微电子技术研究所 一种多协议数据总线适配器引擎架构设计方法
US11522931B1 (en) * 2021-07-30 2022-12-06 Avago Technologies International Sales Pte. Limited Systems and methods for controlling high speed video

Also Published As

Publication number Publication date
CN101151851B (zh) 2013-03-06
JP4807861B2 (ja) 2011-11-02
WO2006103169A1 (en) 2006-10-05
US8291050B2 (en) 2012-10-16
JP2008535343A (ja) 2008-08-28
EP1864444A1 (en) 2007-12-12
TWI392275B (zh) 2013-04-01
US7586936B2 (en) 2009-09-08
US20060251120A1 (en) 2006-11-09
US20070283286A1 (en) 2007-12-06
TW200644512A (en) 2006-12-16

Similar Documents

Publication Publication Date Title
CN101151851B (zh) 用于服务器环境中的联网卸载的主机以太网适配器
US6160811A (en) Data packet router
US7245627B2 (en) Sharing a network interface card among multiple hosts
US6798776B1 (en) Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
US6590861B1 (en) Combining virtual local area networks and load balancing with fault tolerance in a high performance protocol
US7792027B2 (en) Pipelined packet switching and queuing architecture
JP3640299B2 (ja) ルートルックアップおよびパケット分類要求のための提起および応答アーキテクチャ
US20040252685A1 (en) Channel adapter with integrated switch
JP2001500680A (ja) 分類キーを利用したフレーム分類
US6754222B1 (en) Packet switching apparatus and method in data network
US20020101867A1 (en) Network switch with mutually coupled look-up engine and network processor
US9300597B2 (en) Statistics module for network processors in virtual local area networks
US20030009466A1 (en) Search engine with pipeline structure
CN102957619B (zh) 虚拟路由系统及方法
JP2000503828A (ja) データネットワーク上でデータパケットをスイッチングする方法および装置
US7675924B2 (en) Gigabit switch on chip architecture
CN1842059B (zh) 在计算机网络中接收包的方法和系统
US6965945B2 (en) System and method for slot based ARL table learning and concurrent table search using range address insertion blocking
US7580354B2 (en) Multi-speed cut through operation in fibre channel switches
US20030123387A1 (en) Device and method for filtering network traffic
US20020129189A1 (en) Binary search engine and method
US6963566B1 (en) Multiple address lookup engines running in parallel in a switch for a packet-switched network
CN113422741B (zh) 一种时间触发以太网交换机结构
US20220224645A1 (en) End system for an avionics communication system and associated avionics communication system
EP1279102B1 (en) Gigabit switch on chip architecture

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130306

Termination date: 20190315