CN108475244B - 加速网络分组处理 - Google Patents
加速网络分组处理 Download PDFInfo
- Publication number
- CN108475244B CN108475244B CN201680075637.4A CN201680075637A CN108475244B CN 108475244 B CN108475244 B CN 108475244B CN 201680075637 A CN201680075637 A CN 201680075637A CN 108475244 B CN108475244 B CN 108475244B
- Authority
- CN
- China
- Prior art keywords
- packet
- processing
- network data
- network
- action
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
Abstract
本文中描述了用于加速分组处理的设备和技术。该设备可以使动作匹配至网络数据分组的一部分并且通过处理动作来通过机器使针对网络数据分组的分组处理流水线加速。
Description
本申请要求保护2015年12月22日提交的美国专利申请序列号14/977,810的优先权的权益,通过引用将其以其整体合并于此。
技术领域
本文所述实施例总体上涉及通过网络发送或接收的数据分组的处理。一些实施例涉及数据分组处理的硬件加速。
背景技术
当硬件交换机与专门的硬件功能相结合时,该硬件交换机提供网络能力,包括分组交换、安全性、深度分组检查和其他能力。最近,已经出现了提供在大容量计算机架构上执行虚拟交换机和虚拟功能的趋势。业界一直致力于改善虚拟交换机之间的协调,以达到最佳地利用由硬件交换机提供的吞吐量益处连同虚拟交换机的灵活性和功率的目的。
附图说明
在不一定按照比例绘制的绘图中,相似的数字可以描述不同视图中的类似组件。具有不同字母后缀的相似数字可以表示类似组件的不同实例。绘图通常以示例的方式而非限制的方式来说明在本文档中讨论的各个实施例。
图1图示根据一些实施例的部署用于实施加速网络分组处理的多个交换平台的单个系统的组件。
图2图示根据一些实施例的部署用于实施加速网络分组处理的虚拟环境的系统的组件。
图3图示根据一些实施例的用来加速网络处理的控制设备。
图4图示根据一些实施例的用于加速网络分组处理的方法。
图5图示根据一些实施例的用于加速网络分组处理的系统。
具体实施方式
一些网络分组处理解决方案已将重点集中在硬件上,使用机架顶(ToR)交换机和专用功能硬件来提供网络功能(包括分组交换、安全性、深度分组检查和其他功能)。然而,客户可能经历由硬件限制(诸如有限的存储器、有限的三态内容可寻址存储器(TCAM)、减少的被支持数据流的总数等等)造成的降低的功能。此外,硬件交换机在分组解析方面可能过于严格并且硬件交换可能会展示出平台灵活性和可配置性的普遍缺乏。
因此,业界的趋势已提供软件定义网络(SDN)以用于使网络功能与底层硬件解耦,这可以帮助增加敏捷性并降低成本。类似地,网络功能虚拟化(NFV)可以用完全部署在软件中的实现来替换固定功能硬件,该软件在通用、基于标准的服务器、大容量服务器等等上更成本高效地运行。然而,这种软件定义系统可能不会利用硬件交换机的某些合意的特性。
这些基于软件的解决方案包括对底层物理架构的各种各样的基于软件的抽象。例如,虚拟交换机允许一个或多个虚拟机(VM)彼此通信。虚拟网络功能(VNF)可以包括在一个或多个大容量硬件服务器架构、硬件交换机、硬件存储装置和/或云基础设施上执行的一个或多个VM(运行不同操作系统(OS))。VNF过程用来提供取代定制网络设备的专门网络处理。
各种各样的应用编程接口(API)和软件平台都存在于用于准许利用虚拟交换机的网络自动化的行业中。这些方法的一个显著好处是用来在操作系统(OS)的用户级定义和定制分组处理规则和对应动作的能力。这些方法的一个问题是底层物理硬件交换机的利用不足,因为大量的规则匹配和分组处理的动作标识是在OS的内核空间内进行的,并且不是在底层硬件交换机上进行的,该底层硬件交换机具有显著更好的处理吞吐量。
与更好地利用底层交换机架构相关联的一种方法是单输入/输出(I/O)虚拟化(SR-IOV)。在SR-IOV的情况下,提供了允许设备适配器在分组处理功能之间分离硬件资源的接口。然而,这是一种二进制方法,在这种情况下特征是:接通或断开。此外,SR-IOV激活改变了该架构的配置和管理。因此,SR-IOV是分组处理“卸下”解决方案,而不是分组加速解决方案。
实施例提供了一种用来加速现有虚拟交换机解决方案的方式,以便更好地利用底层物理交换机硬件,而不改变或修改现有虚拟交换机解决方案如何与设备管理和配置的上层交互。
分组处理以细粒度的方式协调并管理多个数据平面组件,以利用硬件交换和SDN/NFV使用二者的合意特征。控制平面组件包括用来确定通信量(例如,数据分组或流)应该指向哪里的机制,而数据平面组件包括向这些目的地转发通信量的机制。实施例提供了用来加速针对多个数据平面组件的分组处理的控制平面方法、系统和设备。除了其他组件之外,该数据平面组件可以包括(以非限制示例的方式)数据平面开发套件(DPDK)组件、现场可编程门阵列(FPGA)组件和从加州圣克拉拉的英特尔可得到的Red Rock Canyon(RRC)/FM10K交换组件。根据各个实施例的方法可以基于用户定义的和用户配置的动作以动态且灵活的方式协调这些和其他组件的利用,以减少或最小化能量消耗或提高速度和性能。在实施例中,控制平面可以从基于软件的交换机或虚拟交换机卸下简单的快速分组处理流水线来交换硬件,同时在基于CPU的软件数据平面上提供更复杂的处理。
图1图示部署用于实施根据一些实施例的方法的多个交换平台的单个网络100的组件。实施例的说明仅仅呈现领会所描绘的实施例所必需的那些组件,以使得在不偏离本文中的教导的情况下其他组件是可预见的。
该系统100实施在现有的基于软件的分组处理流水线(一系列分组处理阶段)中具有增强匹配动作加速的技术,以用于优化的增加带宽、更低的延迟和抖动、以及更低的中央处理单元(CPU)消耗。匹配动作处理指的是系统100通过其来实现分组处理加速的机制。在系统100中找到的匹配动作资源执行该加速。现有的基于软件的控制平面101和102(诸如OpenStack、OpenDaylight等等)不需要修改以便实现本文中提出的加速。此外,不需要修改诸如半虚拟化(Virtio)113和133的现有的虚拟化构造(提供虚拟环境管理)来使用系统100下面的架构,其包括对分组加速的优化。
不存在需要用户学习的附加接口或控制平面以便实现本文中呈现的关于设备(诸如由VNF 110、120和130管理的VM)之间加速分组处理/通信的优化。
具体来说,网络接口控制器(NIC)提供一个或多个新颖的物理功能(PF 141)和一个或多个虚拟函数(VF 142和143)。这些功能141-143响应于一个或多个新颖的匹配动作(例如P4)表,并与现有控制平面101和102以及它们的现有API命令协作,以用于通过将基于软件的匹配动作网络分组处理卸下至NIC 140的底层交换架构来执行VNF(110、120和130)之间的增强的网络分组处理。该处理在TCAM内的NIC 140、PF 141和/或VF 142和143上的操作系统(OS)内核堆栈115的下面发生。
功能141-143提供:1)虚拟交换机(vSwitch)加速118,2)vSwitch卸下126,3)VNF加速124,4)半虚拟化(虚拟化(VM))加速135。
要指出,虽然系统100描绘了支持四种类型的加速(118、124、126和135)的功能141-143;但并不一定在每个实例中都是如此。也就是说,在其他实施例中,NIC可以实施四种类型的加速 (118、124、126和135)中的一种和/或配置为支持四种类型的加速 (118、124、126和135)的所有或各种组合。
通过匹配动作处理的功能(141、142和143)和支持的四种类型的网络分组加速(118、124、126和135)如下(参考图1的系统100)。
要指出,VNF 110被编程用于(在系统100的底层硬件上)处理各种各样的软件,诸如并且以示例的方式,网络应用111(执行一个或多个专用网络分组处理操作)、数据计划开发套件122(DPDK 122)API和虚拟化服务(半虚拟化 113)。VNF 120包括网络应用121、DPDKAPI选项122和NIC VF驱动器123。VNF 130包括网络应用131、DPDK API选项132和虚拟化服务(半虚拟化123)。
VNF 110、120 和130位于vSwitch 114上方。vSwitch 114位于内核堆栈115上方。通过vSwitch的访问用于通过链路117来匹配和访问PF 141。由VNF 120的NIC VF驱动器123的用于访问VF 142的访问通过链路125 (用于通过VF 142的直接TLV查找)。用于由VNF 130的半虚拟化实例133对VF 143的访问通过链路134和137一直到136,用于半虚拟化TLV驱动查找表134和匹配TLV查找表137的访问直接到VF 143。
vSwitch加速 。
通过采用响应于匹配动作表(例如(一个或多个)P4文件)而生成的元数据,发生对于vSwitch 114的分组处理流水线的加速。
P4文件描述匹配动作流水线的能力。在一个实施例中,匹配动作表的结构是(由p4.org开源编程语言和格式定义的)P4文件,其是:
[解析器]-[入口服务质量(QoS)]-[过滤]-[隧道/网络地址转换(NAT)]-[复制]-[出口QoS]。
在一个实施例中,解析器也是P4格式。这也提供了用于匹配的帧格式(分组有效负载格式)。
此外,P4提供了用于定义匹配文件的机制。文件的非线性设置可以如下显现:
L1 | L2 | L3 | L4 | >L5 |
源端口 | 目的地介质访问控制(DMAC) | 源互联网协议(IP) | 目的地L4 | 虚拟网络索引(VNI) |
源虚拟端口 | 源介质访问控制(SMAC) | 目的地IP(4/6) | 源L4 | 网络服务报头(NSH)路径 |
以太网 | 协议 | 传输控制协议(TCP) | NSH服务 | |
最外面的虚拟局域网(VLAN) | L4 TCAM | |||
第二最外面的VLAN | ||||
最外面的多协议标记交换(MPLS) | ||||
第二MPLS |
解析树还识别用于内部报头隧道封装的帧的格式:
内部报头 | 内部L2 | 内部L3 | 内部L4 |
VNI | DMAC | 源IP(4/6) | 目的地L4 |
SMAC | 目的地IP(4/6) | 源L4 | |
以太网 | 协议 | ||
最外面的VLAN |
P4还提供一种用于指定所支持的动作以及哪些表支持哪些动作的机制。一组非限制性动作示例可以如下:
基本动作 | 修改动作 | 隧道/NAT动作 | 复制 |
计数 | 设置VLAN/VPRI | 虚拟可扩展局域网(VXLAN) | 镜像 |
准许/否定/丢弃 | 压入VLAN | 解封VXLAN | 多播 |
转发至端口 | 弹出VLAN | 封装NSH | 样本 |
转发至虚拟端口 | 设置差分服务代码点(DSCP) | 解封NSH | |
跨端口传播 | 路由 | ||
Set_soft_id |
使用元数据的vSwitch加速。
主机以太网控制器(例如NIC 140)首先在系统100上处理接收到的-接收到的帧,并且然后主机以太网控制器将处理后的帧一直传递到系统100的各个软件层中以用于进一步附加处理。在接收路径上,以太网控制器可以预处理帧并与帧附加元数据相关联。该预处理的语义是基于匹配动作的。下面的示例说明了利用本文中给出的实施例通过其来使vSwitch 114(诸如开放的vSwitch(OvS)114)流水线处理加速的处理。
TCAM预分类 。
主机控制器将接收到的分组帧推送到流水线中的TCAM中。vSwitch 114将一组匹配规则编程到TCAM中(使用并且存在vSwitch 114的API,诸如与OvS相关联的API)。这导致设置包括TCAM查找的结果的一定数量的元数据。在匹配时,PF 141将结果(额外的元数据以及或者在封装的VLAN中或者在soft_id_value中)附加到接收到的帧中。软件流水线使用嵌入在接收到的帧中的元数据中的该结果,并且可以避免在软件流水线内必须实现该TCAM查找。
在一个实施例中并且在OvS(114)的情况下,对OvS 114的增强补丁检测分组中的该添加的元数据。如果分组报头中不存在元数据,则OvS 114继续进行其正常的处理路径。然而,当分组报头中存在元数据时,OvS 114跳过117其流水线内的其典型的基于软件的TCAM查找处理(在OvS 114处理分组之前,PF 141先前已将TCAM查找结果附加到NIC 140内的指示)。
隧道解封。
主机控制器140接收帧,vSwitch 114对将外部VXLAN、VXLAN-通用协议扩展(GPE)+NSH、通用网络虚拟化封装(Geneve)或使用通用路由扩展的网络虚拟化(NVGRE)报头映射到元数据中的规则编程。在一个实施例中,PF 141处理这些规则,以用于:1)匹配外部报头上的规则(L2、L3、VNI和服务报头);2)对已匹配的外部报头解封,和3)添加一些附加元数据以用于信令传送被移除的报头。该流水线处理检测被移除的外部报头并且相应地处理内部报头。
在OvS 114(vSwitch 114)的情况下,PF 141使用结合TCAM预分类处理的解封处理以用于提供关于外部报头的元数据以及关于在TCAM中匹配的规则的元数据。当结合使用时,将TCAM预分类规则应用于内部报头。
vSwitch点击(tap) 。
点击接口可被用于通过拷贝(与该接口相关联的)一些或所有帧并将该帧发送到不同位置来监视分组处理。这不适当地使系统100的软件和硬件资源受到压力,并且对vSwitch114处理具有侵入性。因此,在本文中呈现的教导在这种场景特别有益。系统100使用在匹配动作表中映射至镜像动作的匹配规则来实现该拷贝,这是NIC 140内的功能(141-143)过程。
在一个实施例中,vSwitch 114发送帧并且然后在帧出现之后发生用于加速流水线中的多播复制、隧道封装和监视的过程。以这种方式,在分组的传送期间发生分组加速的执行。
vSwitch卸下 。
当对于给定的一组通信量(通过系统100处理的网络分组)以下条件为真时,vSwitch卸下126是vSwitch加速118的扩展:
1)加速流水线具有至(与VNF 120内管理的通信量相关联的)VM的直接连接125;以及
2)加速流水线具有用来利用所有相同的规则来完全处理通信量的能力(vSwitch114数据平面处理的那些)。
尽管被标识为“卸下”,但是vSwitch 114内的规则绝不离开vSwitch 114;在这里,处理将规则推送并拷贝到加速流水线中,并将针对这些规则的统计信息推送回到vSwitch114,使得规则保留在软件表中。vSwitch卸下126可能发生的情况的常见配置是在使用OvS114来实施规则时。规则由单独的控制平面软件层来应用;例如OpenStack和OpenDaylight(例如第三方API 101和102)。控制流程如下:
1)隧道管理器列举虚拟交换机(图1中未示出vSwitch 114的多个实例),并且在它们之间创建处于完整的网格拓扑的隧道(每个vSwitch连接到每个其他vSwitch)。要指出,在一些实施例中,当vSwitch需要彼此对话时,就会出现隧道的创建(延迟处理方式)。
2)当两个VM/容器想要彼此连接时(来自VNF110-130),至VM/容器相应vSwitch的转发规则的填充发生。某些系统将经由虚拟L2学习来填充这些规则;其他系统将规定直接来自于集中控制器的规则。
除了(如上所讨论的)隧道规则之外,vSwitch 114可以实施访问控制列表(ACL)、服务功能分类、服务功能转发、基本入口QoS和连接跟踪。
VNF加速 。
在vSwitch加速118和vSwitch卸下126二者中,vSwitch 114正在主机系统100中执行并且对于系统100相关联的底层设备具有完全控制以进行加速处理。在这里,连接的VM/容器对“来自网络的”任何种类的加速不具有任何控制。VM/容器对vSwitch 114内发生的那些不具有任何控制。VNF 120使用与vSwitch 114针对以下各项的相同语义:发现哪些表可用,在每个表中有多少个条目可用,以及将什么匹配动作规则用于应用。然而,VNF 120的约束以下面的方式发生:
1)主机系统100信任VNF 120以实现加速(否则,主机系统100不能批准来自VNF120的请求)。
2)应用或VNF的规则发生在发送给该VNF 120或从该VNF 120接收的通信量上。因此,VNF加速124的重点是在将该通信量发送到VNF 120之前对通信量进行整饰(groom)。因此,VNF 120不能添加规则来影响去到/来自其他VF (例如VF 143)、其他PF 141或物理上行链路端口的通信量。
3)VNF 120不具有超出其自身接口的可见性。因此,VNF 120不能添加影响去到/来自其他VNF (110和/或130)、PF 141、VF 141和143或物理上行链路端口的通信量的规则。
4)VNF 120可能不具有对其可用的相同动作集。也就是说,VNF功能通常限于与VNF120相关的功能,诸如ACL(丢弃、计数和监管)、将分组引导至队列、将分组按优先级排序到队列,以及用元数据标记分组以进行预处理。
在一个实施例中,VNF 120具有与该VNF 120相关联的多个队列。以以下方式来对VNF 120编程(使用例如数据计划开发套件122(DPDK 122)API):
1)配置默认的接收站点缩放(RSS)规则以便跨多个队列中传播通信量。在这里,VNF 120可以为每个队列关联一个CPU核以跨多个流缩放分组处理。
2)配置充当RSS默认传播规则的例外的一组FlowDirector® (Intel®分组引导产品)规则,其将具体流类型和兆流放置到具体流或给定的具体优先级中。当RSS不能有效地用RSS传播时,FlowDirector®的配置帮助处理该通信量。FlowDirector®的该配置还帮助处理高优先级的通信量。
3)配置一组用来丢弃或监管通信量的过滤规则。这可以保护VNF 120免受不想要的通信量的影响,或者防止以太高的速率接收通信量。
4)以类似于vSwitch加速118的方式,VNF 120还可以基于匹配动作规则关联流上的16位软件标识符(ID)。
这可以加速VNF 120内的某些转发路径(诸如TCAM处理)。
半虚拟化加速 。
半虚拟化加速度135是vSwitch卸下126的一个变体,它仍然要求系统100的硬件能够完全转发和执行分组以处理帧,但是VNF 130/VM和底层硬件(134和137)之间不存在直接连接。相反,VNF 130与半虚拟化驱动器136连接(经由软件)。在这种场景下,存在软件循环(这可能是使用DPDK netdev的OvS,或拷贝去到/来自VF 143的帧以及VF 130/VM内的半虚拟化队列的一些其他实体。所呈现的利用DPDK netdev来实施OvS的场景如下。
参考图2提供半虚拟化加速的讨论。
尽管图2的实施例在半虚拟化的情境内,但是可利用任何可用的虚拟化管理系统来部署其他实施例。
图2图示根据一些实施例的部署用于实施加速设备间通信的虚拟环境(诸如半虚拟化)的系统200的组件。实施例的说明仅仅呈现认识所描绘的实施例所需的那些组件,以使得在不偏离本文中的教导的情况下其他组件是可预见的。
再次地,系统200图示了许多VNF (210、220和230),每个VNF都具有网络应用(211、221和231)、DPDK选项API(212、222和232)和半虚拟化的实例(虚拟化管理服务-213、223和233)。连接到相应vHost(241、242和243)的每个半虚拟化实例(214、223和233)都具有经由214、224和234用于半虚拟化TLV查找的能力。
vHost(241、242和245)位于具有vSwitch 240和由DPDK 244提供的服务的OS中。内核堆栈250位于vSwitch 240和DPDK 244下的OS中。内核堆栈250具有至PF 261的直接访问并且DPDK 244和vSwitch 240具有至VF 262-265的直接访问。匹配TLV查找配置通过266-268发生。链路251提供卸下到PF 261的操作,PF 261和VF 262-265是NIC 260的部分。
在OvS下面,发生N个(其数目)DPDK netdevs(Linux虚拟非动作netdevs-用于获得状态和能力的函数)的实例化。每个netdev都对应于硬件内的一个VF(诸如VF 261和262)。于是OvS下面的端口的布置看起来如下:
1)附接为至OvS内核数据路径的规则非DPDK的PF加速端口。当流需要通过内核的处理时(需要TCP、IP表等等),使用这些接口。
2)(一个或多个)默认规则VF:在0个VF和4个VF之间,可访问用于将帧(其是不能被转发的被处理分组)发送至DPDK用户空间流水线以用于处理的硬件。这些VF(诸如VF 142和143)具有与PF 141端口类似的功能,除了分组处理数据平面在DPDK中(具有更高性能但是不具有内核堆栈)。
在一个实施例中,如果从加州圣克拉拉的Intel®可得到的底层Red Rock Canyon(RRC)交换组件在VF(142或143)上可以支持50G带宽,其中通过将来自不同PF 117的多个VF(142和143)连接到半虚拟化队列来分配带宽的附加指派。
3)半虚拟化别名(alias)VF:剩余的VF(图2的142或143或261-265)被用作半虚拟化别名端口并且在DPDK用户空间轮询模式驱动器(PMD)的控制下。
当发生新的VNF 130/VM至OvS的附接时,该VF 130的分配作为半虚拟化别名VF而出现。当这发生时,具有DPDK netdev的OvS在其虚拟Host(vHost)实现和半虚拟化别名VF之间实现一组“硬件卸下虚拟(HOV)”路径。软件逻辑的安装如下:
1)如果已将关于来自该VNF 130/VM的分组的所有规则放入硬件中,则来自vHost的零拷贝直接进入对应半虚拟化别名VF。
2)否则,如果已将关于来自该VNF 130/VM的分组的部分规则集合放入硬件中,则通过OvS用户空间流水线处理该帧,并在完成时将该帧推送到对应的半虚拟化别名VF中。
3)否则通过OvS分组处理流水线来传递分组。可以经由PF netdevs(将帧直接转发到端口外部)、或经由DPDK VF 130(在这种情况下由硬件选取使用其下面的嵌入式交换机或经由内核NIC接口(KNIC)推送到内核中进行处理的传输上行链路)来将分组发送到网络中。
4)在其他方向上,将在半虚拟化别名VF上接收到的所有分组直接从硬件发送到HOV路径上的软件半虚拟化队列(经由vHost)中(在一个实施例中,第三方应用可以提供用于这样做的零拷贝实现)。
在硬件中,逆路径的探究发生并且该处理看起来类似于以下各项:
1)如果发生了来到该VF 130/VM的分组的所有规则的应用,则将帧转发至对应于该VM的VF 130。PMD拾取该帧并通过HOV路径将该帧推送到VM。
2)如果发生了关于该分组的部分规则集合的应用,或者如果该分组在硬件表中丢失,则将帧转发至默认规则VF以用于处理。这些帧被PMD拾取并且在DPDK用户空间流水线中被处理。
3)可选地,需要内核处理的具体流被捕获到标准内核处理的PF 141。
在对硬件进行编程时,在半虚拟化别名、默认用户空间和内核数据路径之间划分通信量的规则保留会话排序。这是不会经由一条路径转发特定5元组(目的地IP、源IP、L4目的地、L4源、协议)并且然后通过另一条路径转发具有相同5元组的另一帧的一条规则。
在软件侧上使用的逆处理:vHost在直接来自于半虚拟化别名、DPDK用户空间和内核数据路径的帧之间进行仲裁。由于这些已经处于会话顺序,所以仅仅处理调度功能。半虚拟化别名具有最高的处理优先级,之后是DPDK用户空间并且然后是内核路径。
在该场景中,VNF 130可以通过经由半虚拟化发送标记长度值(TLV)来请求加速。如果该VNF 130具有带别名的VF,则这些TLV通过VF邮箱转换为VNF加速请求。因为该原因并且在一个实施例中,配置提供了对多队列半虚拟化的支持,因为这允许VNF 130启用RSS和FlowDirector®,以便将通信量传播到VM内的多个队列。对于使用多个核的VNF,这允许硬件将通信量传播到多个核,从而VNF 130与VF 130之间的连接看起来是直接连接。
在其中DPDK或内核数据路径完全处理该通信量的场景中,通过系统100的处理以两种方式发生:
1)内联:用来处理帧的第一数据路径(来自网络的硬件分组,用于来自vHost的分组的软件)可以最小化地处理该帧并将其发送到主数据平面(用户空间、内核或硬件)。这是一种在数据路径之间进行选择的非常有效的机制,因为它不会在数据路径之间“反弹”帧,但它确实需要通过第一数据路径的一定量的处理。该第一数据路径可以是冗余的或者是除了进行该处理的主数据路径之外的开销。
2)回弹:在该场景中软件“快速路径”帧进入硬件,如果该硬件不能处理帧自己,然后它将帧回环返回到DPDK或内核。这具有较低量的软件开销,但当帧从硬件反弹回到软件中时,利用额外的外围组件互联高速(PCIe)带宽。
在一个实施例中,上面提到的技术被实施为用于实现加速的设备间通信或操作(诸如针对单个设备架构的片上VM件通信)的计算设备架构的方法、设备和系统。这为以下各项中的一个、所有或组合提供加速: 1)使用元数据的vSwitch加速,2) 用于半虚拟化连接的VM的卸下的vSwitch,3) 用于NSH服务链的卸下的vSwitch、和/或4)多层通信量预分类(VNF加速和NSH服务链)。
下面参考图3-5给出加速设备间通信的这些和其他实施例。
图3图示根据一些实施例的用来加速网络处理的控制设备300。该控制设备300包括存储器301、具有指令303的处理器302、交换接口304、一个或多个数据平面接口305。该控制设备300与交换硅310交互(通过交换接口304)并且与一个或多个数据平面处理器320交互(通过(一个或多个)数据平面接口305)。
在一个实施例中,该控制设备300是NIC。
在一个实施例中,该控制设备300是图1的NIC 140。
在一个实施例中,该控制设备300是图2的NIC 260。
在一个实施例中,该控制设备300被集成在多核处理器中和/或接口连接至多核处理器。在一个实施例中,该多核处理器是服务器。
在一个实施例中,该控制设备300在具有各种各样的VM、操作系统等的多个异构和虚拟化处理环境中操作。
该控制设备300包括用来执行本文中描述的功能的处理器302。将要理解,处理器302所执行的任何或所有功能都可以在一个或多个处理核(例如Intel®架构核114或控制设备300的核)上利用硬件、软件、固件或其任何组合来执行。
在一个实施例中,该处理器302执行上面关于图1的PF 141和VF 142和143所述的处理。
在一个实施例中,处理器302执行上面关于pF 261和VF 262-265所述的处理。
在一个实施例中,处理器302可以使从表中引用的动作匹配至网络分组中的一部分数据。
在一个实施例中,处理器302至少部分由应用编程接口(API)来编程。在一个实施例中,以由DPDK、OvS、OpenDaylight和OpenStack中的一个或多个所支持的格式来提供API。
在一个实施例中,处理器302被编程为响应于一个或多个表或文件,该表或文件标识处理器302所响应的动作,以达到基于特定标识的动作来执行预定义处理的目的。
在一个实施例中,用户接口允许用户访问API以便利用动作来填充表或文件。
在一个实施例中,该文件或表是上面参考图1-2讨论的匹配动作文件。
该处理器302可以将来自文件/表的动作引用匹配到用于接收到的网络分组的分组报头的一部分。该处理器302与存储器301协作地处理由动作引用标识的动作,以加速用于网络分组的分组处理流水线。
在一个实施例中,该存储器301是控制设备300上的随机存取存储器(RAM)。
处理动作不一定是单个操作;相反,该动作可以触发处理器302来执行一系列预定义的操作。
在一个实施例中,该处理器302在处理动作时对某些分组数据执行三元CAM查找。上面在图1-2中讨论了这一点,并且其与使用在NIC处执行的分组预分类处理的加速具体相关。
在一个实施例中,该处理器302在处理动作时解封用于网络分组的外部隧道封装报头,移除该报头,并将指示报头已被移除的元数据添加到报头中。上面参考图1讨论了该处理。
在一个实施例中,该处理器302在处理动作时拷贝来自网络分组的分组有效载荷(帧),并且然后将该拷贝的有效载荷发送至网络位置,该网络位置独立于在用于处理分组处理流水线的资源内定义或标识该资源的网络位置。该场景描述了在处理吞吐量中具有显著改善的网络通信量镜像和监视操作,因为在控制设备300上而不是在网络架构内的上层(诸如用于具体VM的OS层等等)处发生针对镜像分组的解析、处理和发送。
在一个实施例中,该处理器302在处理动作时将网络分组转发规则从第一虚拟交换机拷贝到第二虚拟交换机。上面讨论的场景参考了vSwitch卸下加速和图1的讨论。
该处理器302被配置为通过交换接口304与底层交换硅310通信。
图4图示根据一些实施例的用于加速网络分组处理的方法400。该方法400被实施为通过一个或多个软件模块(在下面这里的方法400被称为“分组加速器”)表示且由来自非瞬时计算机可读存储介质的一个或多个硬件处理器执行的可执行指令。
在一个实施例中,表示分组加速器的可执行指令被存储在非瞬时计算机可读存储介质上,当由一个或多个计算设备执行时执行方法400处理。
在一个实施例中,该分组加速器被配置用于作为NIC上的固件的执行。在一个实施例中,该分组加速器是图1的PF 141。在一个实施例中,该分组加速器是图1的(一个或多个)VF 142和/或143。在一个实施例中,该分组加速器是图2的PF 261。在一个实施例中,该分组加速器是图2的(一个或多个)VF 262-265。
在一个实施例中,该分组加速器被配置用于在一个或多个虚拟交换机、一个或多个物理交换机、一个或多个设备接口、一个或多个虚拟设备接口和/或一个或多个操作系统内的执行。
在一个实施例中,该分组加速器被配置用于在一个或多个独立且虚拟环境内的执行(分别在图1和图2的系统100和/或系统200上的执行)。
在一个实施例中,该分组加速器被配置用于如图3的控制设备300的执行。
在410处,分组加速器使网络数据分组的一部分匹配至匹配动作表中的动作。例如,在上面的图1中讨论了匹配动作文件的处理和文件结构以及匹配至网络分组。
在420处,该分组加速器通过执行作为针对网络数据分组的分组处理流水线的一部分的动作来加速网络分组通过机器的处理。即,动作处理以可包括用于以下各项的处理的许多方式来加速分组处理:1)将基于软件的资源的处理卸下到基于硬件的资源;2)重新组织基于软件的资源的处理;和/或3)重新组织基于软件的资源如何访问基于硬件的资源。
根据一个实施例,在421处,分组加速器将元数据作为当动作被处理时分组处理的一部分已经被处置/处理的指示插入到网络数据分组中。例如,上面在图1-2中呈现的预分类处理和TCAM处理提供与该处理有关的讨论。
在一个实施例中,在422处,该分组加速器拷贝用于网络数据分组的分组帧并且将已拷贝的分组帧发送至独立于与分组处理流水线相关联的位置的位置。这是上面参考图1讨论的分组镜像处理情况。
在一个实施例中,在423处,分组加速器向与具体处理核相关联的队列指派网络数据分组。这可能需要其他配置依赖性和上面利用图2的半虚拟化加速处理的讨论而呈现的处理。
在423和424处的一个实施例中,该分组加速器响应于过滤规则对网络分组过滤。
在424和425处的一个实施例中,该分组加速器在网络数据分组上设置资源标识符,其标识当通过分组处理流水线来处理网络数据分组时用于针对网络数据分组来处理的资源。因此,表、元数据和/或分组处理流水线控制结构提供了一种机制,通过该机制不同的异构软件和/或硬件资源帮助通过分组处理流水线((一个或多个)网络/设备)来使网络数据分组加速,以及这些机制被标识为用于网络数据分组的资源标识符。该分组加速器被配置用于标识资源标识符并促使对应的资源进行处理以用于使分组通过(一个或多个)网络/设备的分组的流水线处理加速。
在一个实施例中,在426处,该分组加速器依据通信量规则是否被完全卸下到硬件或其他状况来执行各种各样的替换处理。参考图2的半虚拟化假设来讨论这样的状况。因此,该分组加速器可以:1)用于将网络数据分组处理成带别名的虚拟化功能的零拷贝规则;2)通过OS的用户空间并且当已完成将帧推送到带别名的虚拟化功能时处理用于网络数据分组的帧;或3)使网络数据分组传递通过针对OS的用户空间流水线。
如本文中讨论的示例可以包括逻辑或许多组件、模块或机制,或者可以在该逻辑或许多组件、模块或机制上操作。模块是能够执行具体操作的有形实体(例如硬件)并且可以以某一方式来配置或布置。在一个示例中,可以以具体方式将电路布置为模块(例如内部地或关于诸如其他电路的外部实体)。在一个示例中,可以通过固件或软件(例如指令303(图3)、应用部分或应用)将控制设备300的一个或多个处理器或者一个或多个计算机系统(例如独立、客户端或服务器计算机系统)的至少一部分配置为操作用来执行具体操作的模块。在一个示例中,该软件可以驻留在至少一个机器可读介质上。在一个示例中,当被模块(例如控制设备300)的底层硬件执行时,该软件可以包括用来促使硬件执行具体操作的指令303(图3)。
术语“模块”被理解成包括有形实体,该有形实体是被物理构造、具体配置(例如硬连线)、或临时(例如瞬时)配置(例如编程)为以具体方式操作或执行本文中描述的任何操作的至少一部分的实体。考虑到在其中模块被临时配置的示例,不需要在时间上的任何一个时刻来对模块实例化。例如,在模块包括使用软件配置的通用硬件处理器的情况下,该通用硬件处理器可以在不同时间被配置为相应的不同模块。软件可以相应地配置硬件处理器,以例如在一个时间实例构成特定模块并且在不同的时间实例构成不同模块。在本文中可扩展地使用术语“应用、过程或服务”或者其变体以包括例程、程序模块、程序、组件等等,并且可以在各个系统配置(包括单个处理器或多处理器系统、基于微处理器的电子器件、单核或多核系统、其组合等等)上实施。因此,术语“应用、过程或服务”可以被用来指代软件的实施例或被布置成执行本文中描述的任何操作的至少一部分的硬件。
尽管机器可读介质可以包括单个介质,但是术语“机器可读介质”可以包括单个介质或多个介质(例如集中式或分布式数据库、和/或相关联的高速缓存和服务器)。
术语“机器可读介质”可以包括能够存储、编码或载送用于由机器(例如控制设备300或任何其他模块)执行的指令303并促使机器执行本公开内容的技术中的任一个或多个或者能够存储、编码或载送由这样的指令使用或与这样的指令相关联的数据结构的任何介质。换言之,该处理器302(图3)可以包括指令并且因此可以在各个实施例的上下文中被称为计算机可读介质。其他非限制性机器可读介质示例可以包括固态存储器、和光学以及磁性介质。机器可读介质的具体示例可以包括:非易失性存储器,诸如半导体存储器设备(例如电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、和闪速存储器设备);磁盘,诸如内部硬盘和可移除盘;磁光盘;和CD-ROM和DVD-ROM盘。
可以使用利用许多传输协议(例如帧中继、互联网协议(IP)、TCP、用户数据报协议(UDP)、超文本传输协议(HTTP)等等)中的任一个的传输介质来通过通信网络进一步传送或接收该指令303。示例通信网络可以包括局域网(LAN)、广域网(WAN)、分组数据网(例如互联网)、移动电话网(例如包括码分多址(CDMA)、时分多址(TDMA)、频分多址(FDMA)和正交频分多址(OFDMA)以及蜂窝网络(诸如全球移动通信系统(GSM)、通用移动电信系统(UMTS)、CDMA2000 1x*标准和长期演进(LTE)的信道访问方法)、普通旧电话(POTS)网络、和无线数据网络(例如包括IEEE 802.11标准(WiFi)、IEEE 802.16标准(WiMax®)和其他的电气与电子工程师协会(IEEE)802标准家族)、端对端(P2P)网络、或现在已知或稍后开发的其他协议。
术语“传输介质”应该被理解为包括能够存储、编码或载送用于由硬件处理电路系统执行的指令且包括数字或模拟通信信号的任何无形介质、或用来促进这样的软件的通信的其他无形介质。
图5图示根据一些实施例的用于加速网络分组处理的系统500。以大大简化的格式示出的系统500仅仅具有用于领会系统500所必需图示的特定组件。
在一个实施例中,该系统是多核服务器510。
在一个实施例中,该多核服务器510被配置用于以上面参考图1讨论的方式来执行vSwitch加速。
在一个实施例中,该多核服务器510被配置用于以上面参考图1讨论的方式来执行vSwitch卸下加速。
在一个实施例中,多核服务器510被配置用于以上面参考图1讨论的方式来执行VNF加速。
在一个实施例中,多核服务器510被配置用于以上面参考图1和/或2讨论的方式来执行半虚拟化加速。
在一个实施例中,多核服务器510被配置用于以上面参考图1和/或2讨论的方式来执行针对以下各项的有选择的网络分组加速:vSwitch加速、vSwitch卸下加速、VNF加速和/或半虚拟化加速。
该系统500包括用于使网络分组的一部分匹配至动作的装置和用于处理该动作以加速分组处理流水线的装置,以及可选地用于配置用于匹配的装置和用于处理的装置的装置。
该装置用于在网络分组处理期间使网络分组一部分匹配至动作。
在一个实施例中,用于匹配的装置包括匹配动作表521或文件,诸如上面参考图1讨论的P4文件。
在一个实施例中,用于匹配的装置包括存储器,诸如图3的存储器301。
在一个实施例中,用于匹配的装置包括NIC上的易失性或非易失性存储器,诸如相应地图1和图2的NIC 140或260。
在一个实施例中,用于匹配的装置包括可在表示系统500的一个或多个设备上访问的易失性或非易失性存储器。
在一个实施例中,用于匹配的装置包括可在表示系统500的一个或多个设备上访问的存储器和存储装置的组合。
用于处理的装置被配置成处理(从用于匹配的装置获得的)动作。该动作被处理来使针对网络分组的分组处理的流水线(其与该网络分组相关联或被指派给该网络分组)加速。
在一个实施例中,用于处理的装置是以下各项中的一个或多个:一个或多个设备驱动器接口540、一个或多个虚拟接口540、一个或多个虚拟交换机550、一个或多个OS内核处理(560)、和/或具有物理交换机570的NIC。
在一个实施例中,用于处理的装置是在图1、2和/或3中图示的组件设备和模块的各种组合。
在一个实施例中,该系统500包括用于将用于处理的装置配置成用户自定义(或用户定义)动作的装置。
在一个实施例中,用于配置的装置是API 520。在一个实施例中,该API 520是使用利用OvS、DPDK、OpenStack、OpenDaylight和/或半虚拟化提供的API在图1和2中图示的组件的具体配置的实例。
在一个实施例中,用于配置的装置还提供用于配置用于匹配的装置的装置。在一个实施例中,API 520是用于配置的装置并且准许为匹配动作表/文件521中的动作建立文件的表。
附加注释和示例:
示例1包括包含存储器和处理电路系统的主题(诸如控制设备、平面间控制设备、控制平面处理器、计算机设备和或任何其他电气装置、设备或处理器)。该处理电路系统被配置成使来自表的动作引用匹配至网络数据分组中的数据的一部分。该处理电路系统被进一步配置成与使针对网络数据分组的分组处理流水线加速的存储器协作地处理通过动作引用标识的动作。
在示例2中,示例1的主题可以可选地包括其中当处理电路系统处理该动作时,该处理电路系统被进一步配置成在数据的该部分上执行三元CAM查找并且根据网络数据分组的预分类将来自查找的结果插入网络分组中。
在示例3中,示例1-2的任一个的主题可以可选地包括其中当处理电路系统处理该动作时,该处理电路系统被进一步配置成解封网络数据分组的外部隧道封装的报头,从网络数据分组移除隧道封装的报头,以及将元数据添加到用于指示从网络数据分组移除了隧道封装的报头的网络数据分组的报头中。
在示例4中,示例1-3的任一个的主题可以可选地包括其中当处理电路系统处理该动作时,该处理电路系统被进一步配置成拷贝来自网络数据分组的分组有效载荷并且将已拷贝的分组有效载荷发送至独立于处理分组处理流水线的位置的位置。
在示例5中,示例1-4的主题可以可选地包括其中当处理电路系统处理该动作时,该处理电路系统被进一步配置成将数据分组转发规则从第一虚拟交换机拷贝至第二虚拟交换机。
在示例6中,示例1-5的任一个的主题可以可选地包括其中该处理电路系统是集成在控制设备中的物理功能。
在示例7中,示例1-5的任一个的主题可以可选地包括其中该处理电路系统是被编程到控制设备中的虚拟化功能。
在示例8中,示例1-7的任一个的主题可以可选地包括数据平面接口,其被配置成将网络数据分组转发至以下各项中的一个:OS内核堆栈、虚拟交换机、和设备驱动器。
在示例9中,示例1-8的任一个的主题可以可选地包括其中该控制设备是网络接口控制器(NIC)。
在示例10中,示例1-9的任一个的主题可以可选地包括其中该控制设备被接口连接且集成到多核硬件服务器中。
示例11包括诸如包括指令的机器可读介质的主题,当在机器(诸如控制设备、平面间控制设备、控制平面处理器、计算设备、NIC卡等等)上执行时该指令促使该机器使网络数据分组的一部分匹配至匹配动作表中的动作以及通过执行作为针对网络数据分组的分组处理流水线的一部分的动作来通过机器使对网络数据分组的处理加速。
在示例12中,示例11的主题可以可选地包括其中用来加速的指令进一步包括将指示当动作被处理时分组处理流水线的一部分被处理的元数据插入网络数据分组中。
在示例13中,示例11-12中的任一个的主题可以可选地包括其中用来加速的指令进一步包括用于拷贝针对网络数据分组的分组帧并且将已拷贝的分组帧发送至独立于与分组处理流水线相关联的位置的位置的指令。
在示例14中,示例11-13中的任一个的主题可以可选地包括其中用来加速的指令进一步包括用来向与机器的具体处理核相关联的队列指派网络数据分组的指令。
在示例15中,示例14的主题可以可选地包括其中用来加速的指令进一步包括用来响应于过滤规则对网络数据分组过滤的指令。
在示例16中,示例15的主题可以可选地包括其中用来加速的指令进一步包括用来当通过分组处理流水线处理网络数据分组时在网络数据分组上设置资源标识符的指令,该资源标识符针对网络数据分组标识用于处理的资源。
示例17包括一种系统(例如服务器、计算机、协作计算机组等等),其包括用于使网络分组的一部分匹配至动作的装置和用于处理该动作以使基于处理该动作的与网络分组相关联的分组处理流水线加速的装置。
示例18包括示例17的主题,并且可选地,其中将网络分组从第一虚拟机(VM)发送至第二VM,并且在同一多核服务器上执行的VM中的每一个执行用于匹配的装置和用于处理的装置。
示例19包括示例16-17中的任一个的主题,并且可选地进一步包括用于将用于处理的装置配置成用户自定义动作的装置。
示例20包括示例16-17中的任一个的主题,并且可选地包括其中用于处理的装置是以下各项中的一个:虚拟网络交换机、硬件交换机、内核过程、设备驱动器和虚拟化接口。
上面的详细描述包括对形成详细描述的一部分的附图的参考。该图以图示的方式示出可以实行的具体实施例。这些实施例在本文中也被称为“示例”。这样的示例可以包括除了示出或描述的那些之外的元件。然而,还预期包括示出或描述的元件的示例。此外,还预期或者关于特定示例(或其一个或多个方面)或者关于本文中示出或描述的其他示例(或其一个或多个方面)使用示出或描述的那些元件(或其一个或多个方面)的任何组合或排列的示例。
通过引用将在本文档中提到的公开物、专利和专利文档以其整体合并在这里,就像通过引用单独合并一样。在本文档和通过引用这样合并的那些文档之间存在不一致使用的情况下,在(一个或多个)被合并引用中的使用是本文档的使用的补充;对于不相容的不一致,以本文档中的使用为准。
在本文档中,使用术语“一”或“一个”(如在专利文档中常见的那样)来包括独立于“至少一个”或“一个或多个”的任何其他实例或使用的一个或多于一个。在本文档中,术语“或”被用来指代非排他性或,使得“A或B”包括“A而非B”、“B而非A”、以及“A和B”,除非以其他方式指示。在所附权利要求中,术语“包括”和“在其中”被用作相应术语“包含”和“其中”的易懂英语等同物。而且,在下面的权利要求中,术语“包括”和“包含”是开放式的,即包括除了在权利要求中这样的术语后面列出的那些之外的元件的系统、设备、物品或过程仍被认为落在该权利要求的范围内。此外,在以下权利要求中,术语“第一”、“第二”和“第三”等等仅仅用作标记,并且不打算暗示用于它们的对象的数字顺序。
打算使上面的描述成为说明性而非约束性的。例如,可以结合其他来使用上述示例(或其一个或多个方面)。在查阅上面的描述时,诸如由本领域普通技术人员可以使用其他实施例。摘要用来允许读者迅速确定技术公开内容的本质,并且在理解它将不被用来解释或限制权利要求的范围或含义的情况下提交该摘要。而且,在上面的具体实施方式中,各个特征可以被分组在一起以使本公开内容合理化。然而,权利要求可能没有阐述本文中公开的特征,因为实施例可以包括所述特征的子集。进一步地,实施例可以包括比特定示例中公开的 特征更少的特征。因此,由此将下面的权利要求合并在具体实施方式中,其中权利要求独自作为单独的实施例。要参考所附权利要求连同这样的权利要求所赋予的等同物的全范围来确定本文中公开的实施例的范围。
Claims (21)
1.一种具有用于加速的分组处理的存储器和处理器的控制设备,包括:
存储器;以及
处理器,其被配置成:
使来自表的动作引用匹配至网络数据分组中的数据的一部分;以及
与存储器协作地处理通过动作引用标识的动作,并且通过将动作处理成以下中的一个或多个来使针对网络数据分组的分组处理流水线加速:1)将基于软件的资源的处理卸下到基于硬件的资源;2)重新组织基于软件的资源的处理;和/或3)重新组织基于软件的资源如何访问基于硬件的资源。
2.根据权利要求1所述的控制设备,其中当处理器处理该动作时,该处理器被进一步配置成在数据的该部分上执行三元内容可寻址存储器查找并且根据网络数据分组的预分类将来自查找的结果插入网络数据分组中。
3.根据权利要求1所述的控制设备,其中当处理器处理该动作时,该处理器被进一步配置成:
解封网络数据分组的外部隧道封装的报头;
从网络数据分组移除外部隧道封装的报头;以及
将元数据添加到用于指示从网络数据分组移除了外部隧道封装的报头的网络数据分组的报头中。
4.根据权利要求1-3中的任一项所述的控制设备,其中当处理器处理该动作时,该处理器被进一步配置成:
拷贝来自网络数据分组的分组有效载荷;以及
将已拷贝的分组有效载荷发送至独立于处理分组处理流水线的位置的位置。
5.根据权利要求1所述的控制设备,其中当处理器处理该动作时,该处理器被进一步配置成:
将数据分组转发规则从虚拟交换机拷贝至第二虚拟交换机。
6.根据权利要求1所述的控制设备,其中该处理器是集成在控制设备中的物理功能。
7.根据权利要求1所述的控制设备,其中该处理器是被编程到控制设备中的虚拟化功能。
8.根据权利要求1-3中的任一项所述的控制设备,进一步包括:
数据平面接口,其被配置成将网络数据分组转发至以下各项中的一个:操作系统(OS)内核堆栈、虚拟交换机、和驱动器。
9.根据权利要求1-3中的任一项所述的控制设备,其中该控制设备是网络接口控制器。
10.根据权利要求9所述的控制设备,其中该控制设备被接口连接且集成到多核硬件服务器中。
11.一种用于使分组处理加速的方法,包括:
在机器内使网络数据分组的一部分匹配至匹配动作表中的动作;以及
通过将动作处理成以下中的一个或多个、通过执行作为针对网络数据分组的分组处理流水线的一部分的动作,来通过机器使对网络数据分组的处理加速:1)将基于软件的资源的处理卸下到基于硬件的资源;2)重新组织基于软件的资源的处理;和/或3)重新组织基于软件的资源如何访问基于硬件的资源。
12.根据权利要求11所述的方法,其中该加速进一步包括将指示当动作被处理时分组处理流水线的一部分被处理的元数据插入网络数据分组中。
13.根据权利要求11所述的方法,其中该加速进一步包括:
拷贝针对网络数据分组的分组帧;以及
将已拷贝的分组帧发送至独立于与分组处理流水线相关联的位置的位置。
14.根据权利要求11-13中的任一项所述的方法,其中该加速进一步包括:
向与机器的具体处理核相关联的队列指派网络数据分组。
15.根据权利要求14所述的方法,其中该加速进一步包括:
响应于过滤规则对网络数据分组过滤。
16.根据权利要求15所述的方法,其中该加速进一步包括:
当通过分组处理流水线处理网络数据分组时在网络数据分组上设置资源标识符,该资源标识符针对网络数据分组标识用于处理的资源。
17.根据权利要求14所述的方法,其中该加速进一步包括:
将用于处理网络数据分组的规则零拷贝到带别名的虚拟化功能中;
通过操作系统(OS)的用户空间流水线处理用于网络数据分组的帧并且当完成时将该帧推送到带别名的虚拟化功能中;以及
通过OS的用户空间流水线传递网络数据分组。
18.一种用于使分组处理加速的网络交换机,包括:
用于接收网络分组的端口:
用来与控制设备通信的控制接口;以及
用来与一个或多个数据平面处理器通信的数据平面接口,其中该交换机被配置成通过控制接口评估匹配动作规则,针对该匹配动作规则,网络分组被设计成:通过由交换机执行成以下中的一个或多个的定制动作处理,来通过用于网络分组的分组处理流水线被加速:1)将基于软件的资源的处理卸下到基于硬件的资源;2)重新组织基于软件的资源的处理;和/或3)重新组织基于软件的资源如何访问基于硬件的资源。
19.根据权利要求18所述的交换机,其中该交换机是物理交换机和虚拟交换机中的一个。
20.根据权利要求18-19中的任一项所述的交换机,其中该交换机用来将网络分组标识为在相同的硬件服务器内在两个不同虚拟机(VM)之间通信的分组。
21.一种机器可读介质,其包括当被执行时促使机器执行权利要求11-17中的任一项的方法的代码。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111206815.1A CN113934660A (zh) | 2015-12-22 | 2016-11-17 | 加速网络分组处理 |
CN202111494631.XA CN114189571B (zh) | 2015-12-22 | 2016-11-17 | 用于实施加速网络分组处理的装置和方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/977810 | 2015-12-22 | ||
US14/977,810 US9912774B2 (en) | 2015-12-22 | 2015-12-22 | Accelerated network packet processing |
PCT/US2016/062511 WO2017112165A1 (en) | 2015-12-22 | 2016-11-17 | Accelerated network packet processing |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111206815.1A Division CN113934660A (zh) | 2015-12-22 | 2016-11-17 | 加速网络分组处理 |
CN202111494631.XA Division CN114189571B (zh) | 2015-12-22 | 2016-11-17 | 用于实施加速网络分组处理的装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108475244A CN108475244A (zh) | 2018-08-31 |
CN108475244B true CN108475244B (zh) | 2022-07-08 |
Family
ID=59066820
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111494631.XA Active CN114189571B (zh) | 2015-12-22 | 2016-11-17 | 用于实施加速网络分组处理的装置和方法 |
CN201680075637.4A Active CN108475244B (zh) | 2015-12-22 | 2016-11-17 | 加速网络分组处理 |
CN202111206815.1A Pending CN113934660A (zh) | 2015-12-22 | 2016-11-17 | 加速网络分组处理 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111494631.XA Active CN114189571B (zh) | 2015-12-22 | 2016-11-17 | 用于实施加速网络分组处理的装置和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111206815.1A Pending CN113934660A (zh) | 2015-12-22 | 2016-11-17 | 加速网络分组处理 |
Country Status (4)
Country | Link |
---|---|
US (5) | US9912774B2 (zh) |
CN (3) | CN114189571B (zh) |
DE (1) | DE112016005924T5 (zh) |
WO (1) | WO2017112165A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI819892B (zh) * | 2022-11-11 | 2023-10-21 | 瑞昱半導體股份有限公司 | 以硬體加速產生vxlan封包的方法以及以硬體加速處理vxlan封包的方法 |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9825913B2 (en) | 2014-06-04 | 2017-11-21 | Nicira, Inc. | Use of stateless marking to speed up stateful firewall rule processing |
US10015048B2 (en) | 2014-12-27 | 2018-07-03 | Intel Corporation | Programmable protocol parser for NIC classification and queue assignments |
IL238690B (en) | 2015-05-07 | 2019-07-31 | Mellanox Technologies Ltd | Network-based computational accelerator |
US9825862B2 (en) | 2015-08-26 | 2017-11-21 | Barefoot Networks, Inc. | Packet header field extraction |
US9912774B2 (en) | 2015-12-22 | 2018-03-06 | Intel Corporation | Accelerated network packet processing |
US10908941B2 (en) * | 2016-03-11 | 2021-02-02 | Tektronix Texas, Llc | Timestamping data received by monitoring system in NFV |
US10516626B1 (en) * | 2016-03-16 | 2019-12-24 | Barefoot Networks, Inc. | Generating configuration data and API for programming a forwarding element |
US10230810B1 (en) | 2016-03-18 | 2019-03-12 | Barefoot Networks, Inc. | Storing packet data in mirror buffer |
US9967136B2 (en) * | 2016-03-28 | 2018-05-08 | Dell Products L.P. | System and method for policy-based smart placement for network function virtualization |
CN107515775B (zh) * | 2016-06-15 | 2021-11-19 | 华为技术有限公司 | 一种数据传输方法及装置 |
WO2018068202A1 (en) * | 2016-10-11 | 2018-04-19 | Nokia Technologies Oy | Virtualized network function security wrapping orchestration in the cloud environment |
US10348652B2 (en) * | 2017-01-28 | 2019-07-09 | Juniper Networks, Inc. | Systems and methods for propagating metadata of in-flight packets within kernel space |
US11245572B1 (en) | 2017-01-31 | 2022-02-08 | Barefoot Networks, Inc. | Messaging between remote controller and forwarding element |
US10694006B1 (en) | 2017-04-23 | 2020-06-23 | Barefoot Networks, Inc. | Generation of descriptive data for packet fields |
US11093284B2 (en) * | 2017-05-12 | 2021-08-17 | Xilinx, Inc. | Data processing system |
US11146508B2 (en) * | 2017-05-12 | 2021-10-12 | Xilinx, Inc. | Data processing system |
US10999219B1 (en) * | 2017-06-19 | 2021-05-04 | Juniper Networks, Inc. | Automated packet switch type and host selection for efficient virtualized network function service chaining |
US10826840B1 (en) | 2017-07-23 | 2020-11-03 | Barefoot Networks, Inc. | Multiple copies of stateful tables |
US10949199B1 (en) | 2017-09-14 | 2021-03-16 | Barefoot Networks, Inc. | Copying packet data to mirror buffer |
US11469953B2 (en) | 2017-09-27 | 2022-10-11 | Intel Corporation | Interworking of legacy appliances in virtualized networks |
US10771387B1 (en) * | 2017-09-28 | 2020-09-08 | Barefoot Networks, Inc. | Multiple packet data container types for a processing pipeline |
CN107707548B (zh) * | 2017-09-30 | 2020-06-23 | 北京东土军悦科技有限公司 | Tlv报文解析方法、装置、电子设备及存储介质 |
US11005771B2 (en) | 2017-10-16 | 2021-05-11 | Mellanox Technologies, Ltd. | Computational accelerator for packet payload operations |
US11502948B2 (en) | 2017-10-16 | 2022-11-15 | Mellanox Technologies, Ltd. | Computational accelerator for storage operations |
WO2019079960A1 (en) * | 2017-10-24 | 2019-05-02 | Intel Corporation | MATERIAL ASSISTED VIRTUAL SWITCH |
US11336756B2 (en) | 2017-11-06 | 2022-05-17 | Intel Corporation | Technologies for programming flexible accelerated network pipeline using eBPF |
US10841243B2 (en) * | 2017-11-08 | 2020-11-17 | Mellanox Technologies, Ltd. | NIC with programmable pipeline |
CN107835184A (zh) * | 2017-11-20 | 2018-03-23 | 北京东土军悦科技有限公司 | Tlv数据段处理方法、装置、电子设备及存储介质 |
US10708240B2 (en) * | 2017-12-14 | 2020-07-07 | Mellanox Technologies, Ltd. | Offloading communication security operations to a network interface controller |
US10608939B1 (en) | 2018-02-13 | 2020-03-31 | Barefoot Networks, Inc. | Identifying congestion in a network |
CN108540408B (zh) * | 2018-04-16 | 2020-11-13 | 广东亿迅科技有限公司 | 一种基于Openstack的分布式虚拟交换机的管理方法及系统 |
US11082399B2 (en) * | 2018-08-10 | 2021-08-03 | Microsoft Technology Licensing, Llc | Virtual switch bypass |
US11537541B2 (en) | 2018-09-28 | 2022-12-27 | Xilinx, Inc. | Network interface device and host processing device |
US11570045B2 (en) * | 2018-09-28 | 2023-01-31 | Xilinx, Inc. | Network interface device |
US11082364B2 (en) | 2019-04-25 | 2021-08-03 | Xilinx, Inc. | Network interface device |
US11012411B2 (en) | 2018-11-05 | 2021-05-18 | Xilinx, Inc. | Network interface device |
CN111224897A (zh) * | 2018-11-23 | 2020-06-02 | 北京金山云网络技术有限公司 | 一种流量转发方法、装置、交换机设备及智能网卡 |
EP3887961B1 (en) * | 2018-11-28 | 2023-06-14 | Marvell Asia Pte, Ltd. | Network switch with endpoint and direct memory access controllers for in-vehicle data transfers |
US10824469B2 (en) | 2018-11-28 | 2020-11-03 | Mellanox Technologies, Ltd. | Reordering avoidance for flows during transition between slow-path handling and fast-path handling |
CN109379269A (zh) * | 2018-11-29 | 2019-02-22 | 南京中孚信息技术有限公司 | 虚拟交换设备数据转发方法、装置和计算机设备 |
US10880265B1 (en) * | 2019-01-31 | 2020-12-29 | NortonLifeLock, Inc. | Systems and methods for improving network efficiency |
US11258729B2 (en) * | 2019-02-27 | 2022-02-22 | Vmware, Inc. | Deploying a software defined networking (SDN) solution on a host using a single active uplink |
US11184439B2 (en) | 2019-04-01 | 2021-11-23 | Mellanox Technologies, Ltd. | Communication with accelerator via RDMA-based network adapter |
US11212227B2 (en) | 2019-05-17 | 2021-12-28 | Pensando Systems, Inc. | Rate-optimized congestion management |
US11595303B2 (en) * | 2019-06-10 | 2023-02-28 | Vmware, Inc. | Packet handling in software-defined net working (SDN) environments |
LU101361B1 (en) * | 2019-08-26 | 2021-03-11 | Microsoft Technology Licensing Llc | Computer device including nested network interface controller switches |
CN110768829B (zh) * | 2019-10-23 | 2022-02-15 | 江苏省未来网络创新研究院 | 一种基于dpdk实现流量分析业务性能线性增长的方法 |
US11394700B2 (en) * | 2020-01-31 | 2022-07-19 | Pensando Systems Inc. | Proxy service through hardware acceleration using an IO device |
US11494189B2 (en) | 2020-02-21 | 2022-11-08 | Pensando Systems Inc. | Methods and systems for processing data in a programmable data processing pipeline that includes out-of-pipeline processing |
US11431681B2 (en) | 2020-04-07 | 2022-08-30 | Pensando Systems Inc. | Application aware TCP performance tuning on hardware accelerated TCP proxy services |
US11740919B2 (en) | 2020-05-18 | 2023-08-29 | Dell Products L.P. | System and method for hardware offloading of nested virtual switches |
US11750532B2 (en) | 2020-07-21 | 2023-09-05 | Vmware, Inc. | Logical network packet handling on physical network interface controller (PNIC) |
US11811559B2 (en) * | 2020-07-21 | 2023-11-07 | Vmware, Inc. | Logical network packet handling on physical network interface controller (PNIC) |
CN111970249B (zh) * | 2020-07-22 | 2022-11-11 | 山西大学 | 一种基于DPDK的Modbus协议实现方法和装置 |
IL276538B2 (en) | 2020-08-05 | 2023-08-01 | Mellanox Technologies Ltd | A cryptographic device for data communication |
CN114095153A (zh) | 2020-08-05 | 2022-02-25 | 迈络思科技有限公司 | 密码数据通信装置 |
EP3962026A1 (de) * | 2020-08-31 | 2022-03-02 | Siemens Aktiengesellschaft | Verfahren und system zur bereitstellung von zeitkritischen diensten |
US11829793B2 (en) | 2020-09-28 | 2023-11-28 | Vmware, Inc. | Unified management of virtual machines and bare metal computers |
US20210144094A1 (en) * | 2020-11-09 | 2021-05-13 | Namrata Limaye | Extension of openvswitch megaflow offloads to hardware to address hardware pipeline limitations |
WO2022128068A1 (en) * | 2020-12-15 | 2022-06-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for implementing packet processing in a cloud computing environment |
US11470007B2 (en) | 2021-01-19 | 2022-10-11 | Mellanox Technologies, Ltd. | Bandwidth-control policers in a network adapter |
CN112910790B (zh) * | 2021-02-08 | 2023-06-30 | 网宿科技股份有限公司 | 导流系统及其方法 |
US11310163B1 (en) | 2021-02-10 | 2022-04-19 | Mellanox Technologies, Ltd. | Network flow sampling fairness |
US11934333B2 (en) | 2021-03-25 | 2024-03-19 | Mellanox Technologies, Ltd. | Storage protocol emulation in a peripheral device |
US11934658B2 (en) | 2021-03-25 | 2024-03-19 | Mellanox Technologies, Ltd. | Enhanced storage protocol emulation in a peripheral device |
CN113254081B (zh) * | 2021-06-16 | 2021-10-08 | 中国人民解放军国防科技大学 | 一种交换芯片内控制通路镜像读写系统及方法 |
CN113965521B (zh) * | 2021-10-19 | 2024-03-01 | 京东科技信息技术有限公司 | 数据包的传输方法、服务器及存储介质 |
CN114020618B (zh) * | 2021-10-30 | 2023-10-03 | 江苏信而泰智能装备有限公司 | 一种基于fpga和dpdk的高可用测试方法及系统 |
CN114239818B (zh) * | 2021-12-23 | 2023-04-18 | 电子科技大学 | 基于tcam和lut的存内计算架构神经网络加速器 |
US11899594B2 (en) | 2022-06-21 | 2024-02-13 | VMware LLC | Maintenance of data message classification cache on smart NIC |
US11928062B2 (en) | 2022-06-21 | 2024-03-12 | VMware LLC | Accelerating data message classification with smart NICs |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1589551A (zh) * | 2001-09-24 | 2005-03-02 | 艾利森公司 | 用于处理分组的系统和方法 |
CN101352012A (zh) * | 2005-10-07 | 2009-01-21 | 安吉尔系统公司 | 使用不同元件对流进行媒体数据处理以及控制方法 |
Family Cites Families (291)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6127900U (ja) | 1984-07-23 | 1986-02-19 | 株式会社 富永製作所 | 給油装置 |
US5243596A (en) | 1992-03-18 | 1993-09-07 | Fischer & Porter Company | Network architecture suitable for multicasting and resource locking |
JP2541460B2 (ja) | 1993-07-30 | 1996-10-09 | 日本電気株式会社 | 送信制限付きユ―ザ状態ブロ―ドキャスト方式 |
US5784003A (en) | 1996-03-25 | 1998-07-21 | I-Cube, Inc. | Network switch with broadcast support |
US6442172B1 (en) | 1996-07-11 | 2002-08-27 | Alcatel Internetworking, Inc. | Input buffering and queue status-based output control for a digital traffic switch |
US6157955A (en) | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
US6836483B1 (en) | 1998-06-24 | 2004-12-28 | Research Investment Network, Inc. | Message system for asynchronous transfer |
US7002982B1 (en) | 1998-07-08 | 2006-02-21 | Broadcom Corporation | Apparatus and method for storing data |
US6104696A (en) | 1998-07-08 | 2000-08-15 | Broadcom Corporation | Method for sending packets between trunk ports of network switches |
US7430171B2 (en) | 1998-11-19 | 2008-09-30 | Broadcom Corporation | Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost |
JP3684308B2 (ja) | 1998-12-15 | 2005-08-17 | 富士通株式会社 | スケジューリング制御装置および交換機 |
US6453360B1 (en) | 1999-03-01 | 2002-09-17 | Sun Microsystems, Inc. | High performance network interface |
US6948099B1 (en) | 1999-07-30 | 2005-09-20 | Intel Corporation | Re-loading operating systems |
JP3643507B2 (ja) | 1999-09-20 | 2005-04-27 | 株式会社東芝 | パケット処理装置及びパケット処理方法 |
US7203740B1 (en) | 1999-12-22 | 2007-04-10 | Intel Corporation | Method and apparatus for allowing proprietary forwarding elements to interoperate with standard control elements in an open architecture for network devices |
US6549604B2 (en) | 1999-12-28 | 2003-04-15 | Symmetricom, Inc. | Clock recovery and detection of rapid phase transients |
US6977930B1 (en) | 2000-02-14 | 2005-12-20 | Cisco Technology, Inc. | Pipelined packet switching and queuing architecture |
FI109061B (fi) | 2000-05-10 | 2002-05-15 | Nokia Corp | Resurssien varaaminen pakettiverkossa |
US7062571B1 (en) | 2000-06-30 | 2006-06-13 | Cisco Technology, Inc. | Efficient IP load-balancing traffic distribution using ternary CAMs |
US7180857B2 (en) | 2000-11-24 | 2007-02-20 | Matsushita Electric Industrial Co., Ltd | Apparatus and method for flow control |
US7418523B2 (en) | 2001-01-25 | 2008-08-26 | Ericsson Ab | Operation of a multiplicity of time sorted queues with reduced memory |
US6976149B1 (en) | 2001-02-22 | 2005-12-13 | Cisco Technology, Inc. | Mapping technique for computing addresses in a memory of an intermediate network node |
US7082104B2 (en) | 2001-05-18 | 2006-07-25 | Intel Corporation | Network device switch |
US20030009466A1 (en) | 2001-06-21 | 2003-01-09 | Ta John D. C. | Search engine with pipeline structure |
US7418536B2 (en) | 2001-07-30 | 2008-08-26 | Cisco Technology, Inc. | Processor having systolic array pipeline for processing data packets |
US20030046429A1 (en) | 2001-08-30 | 2003-03-06 | Sonksen Bradley Stephen | Static data item processing |
US6909713B2 (en) | 2001-09-05 | 2005-06-21 | Intel Corporation | Hash-based data frame distribution for web switches |
US20030063345A1 (en) | 2001-10-01 | 2003-04-03 | Dan Fossum | Wayside user communications over optical supervisory channel |
US20030118022A1 (en) | 2001-12-21 | 2003-06-26 | Chip Engines | Reconfigurable data packet header processor |
KR100464406B1 (ko) | 2002-02-08 | 2005-01-03 | 삼성전자주식회사 | 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법 |
US7100011B2 (en) | 2002-03-01 | 2006-08-29 | Arris International, Inc. | Method and system for reducing storage requirements for program code in a communication device |
US9203135B2 (en) | 2002-04-23 | 2015-12-01 | Piedek Technical Laboratory | Method for manufacturing quartz crystal resonator |
US20120155466A1 (en) | 2002-05-06 | 2012-06-21 | Ian Edward Davis | Method and apparatus for efficiently processing data packets in a computer network |
US7142513B2 (en) | 2002-05-23 | 2006-11-28 | Yea-Li Sun | Method and multi-queue packet scheduling system for managing network packet traffic with minimum performance guarantees and maximum service rate control |
US7415723B2 (en) | 2002-06-11 | 2008-08-19 | Pandya Ashish A | Distributed network security system and a hardware processor therefor |
US8015303B2 (en) | 2002-08-02 | 2011-09-06 | Astute Networks Inc. | High data rate stateful protocol processing |
US20040031029A1 (en) | 2002-08-06 | 2004-02-12 | Kyu-Woong Lee | Methods and systems for automatically updating software components in a network |
US7245586B2 (en) | 2002-08-30 | 2007-07-17 | Lucent Technologies Inc. | Buffer management based on buffer sharing across ports and per-port minimum buffer guarantee |
US7539777B1 (en) | 2002-10-25 | 2009-05-26 | Cisco Technology, Inc. | Method and system for network time protocol forwarding |
US7324460B2 (en) | 2002-11-28 | 2008-01-29 | International Business Machines Corporation | Event-driven flow control for a very high-speed switching node |
US7050394B2 (en) | 2002-12-18 | 2006-05-23 | Intel Corporation | Framer |
CN100440825C (zh) * | 2003-01-28 | 2008-12-03 | 华为技术有限公司 | 数字传送网上不同的数据帧接入和传送的系统和方法 |
US7492714B1 (en) | 2003-02-04 | 2009-02-17 | Pmc-Sierra, Inc. | Method and apparatus for packet grooming and aggregation |
US7389462B1 (en) * | 2003-02-14 | 2008-06-17 | Istor Networks, Inc. | System and methods for high rate hardware-accelerated network protocol processing |
US7522523B2 (en) | 2003-04-25 | 2009-04-21 | Alcatel-Lucent Usa Inc. | Assigning packet queue priority |
US20050108518A1 (en) | 2003-06-10 | 2005-05-19 | Pandya Ashish A. | Runtime adaptable security processor |
US20050013251A1 (en) | 2003-07-18 | 2005-01-20 | Hsuan-Wen Wang | Flow control hub having scoreboard memory |
JP4243229B2 (ja) | 2003-08-16 | 2009-03-25 | 三星電子株式会社 | 移動通信システムでの上りリンクパケットの伝送のためのスケジューリング割当方法及び装置 |
US8018852B2 (en) | 2003-08-22 | 2011-09-13 | Alcatel Lucent | Equal-cost source-resolved routing system and method |
US7464181B2 (en) | 2003-09-11 | 2008-12-09 | International Business Machines Corporation | Method for caching lookups based upon TCP traffic flow characteristics |
US7111102B2 (en) | 2003-10-06 | 2006-09-19 | Cisco Technology, Inc. | Port adapter for high-bandwidth bus |
US7787471B2 (en) * | 2003-11-10 | 2010-08-31 | Broadcom Corporation | Field processor for a network device |
JP4376040B2 (ja) | 2003-11-27 | 2009-12-02 | 株式会社日立製作所 | 複数のプロセッサを用いて情報処理を行う装置及び方法 |
CN1625176B (zh) | 2003-12-03 | 2010-04-28 | 华为技术有限公司 | 基于边缘到边缘伪线仿真协议的通信方法 |
KR20050057698A (ko) | 2003-12-10 | 2005-06-16 | 삼성전자주식회사 | 체크섬을 생성하는 장치 및 방법 |
KR100592412B1 (ko) | 2004-01-05 | 2006-06-22 | 삼성전자주식회사 | 실시간 트래픽 특성을 고려하여 큐를 관리하는 액세스네트워크 장치 및 그 큐 관리 방법 |
US7685434B2 (en) | 2004-03-02 | 2010-03-23 | Advanced Micro Devices, Inc. | Two parallel engines for high speed transmit IPsec processing |
US7889750B1 (en) | 2004-04-28 | 2011-02-15 | Extreme Networks, Inc. | Method of extending default fixed number of processing cycles in pipelined packet processor architecture |
US8665719B2 (en) | 2004-05-03 | 2014-03-04 | Alcatel Lucent | Variable packet-size backplanes for switching and routing systems |
US7760719B2 (en) | 2004-06-30 | 2010-07-20 | Conexant Systems, Inc. | Combined pipelined classification and address search method and apparatus for switching environments |
US7453797B2 (en) | 2004-09-29 | 2008-11-18 | Intel Corporation | Method to provide high availability in network elements using distributed architectures |
US7826470B1 (en) | 2004-10-19 | 2010-11-02 | Broadcom Corp. | Network interface device with flow-oriented bus interface |
US8953432B2 (en) | 2004-11-01 | 2015-02-10 | Alcatel Lucent | Softrouter dynamic binding protocol |
US8000324B2 (en) | 2004-11-30 | 2011-08-16 | Broadcom Corporation | Pipeline architecture of a network device |
US8170019B2 (en) | 2004-11-30 | 2012-05-01 | Broadcom Corporation | CPU transmission of unmodified packets |
US7873959B2 (en) | 2005-02-01 | 2011-01-18 | Microsoft Corporation | Publishing the status of and updating firmware components |
US20070050426A1 (en) | 2005-06-20 | 2007-03-01 | Dubal Scott P | Platform with management agent to receive software updates |
US7505410B2 (en) | 2005-06-30 | 2009-03-17 | Intel Corporation | Method and apparatus to support efficient check-point and role-back operations for flow-controlled queues in network devices |
GB0517304D0 (en) * | 2005-08-23 | 2005-10-05 | Netronome Systems Inc | A system and method for processing and forwarding transmitted information |
US7499941B2 (en) | 2005-09-05 | 2009-03-03 | Cisco Technology, Inc. | Pipeline regular expression matching |
JP2009512280A (ja) | 2005-10-07 | 2009-03-19 | アギア システムズ インコーポレーテッド | 補完指示ファイルを用いた、rtpエグレスストリーミング装置及び方法 |
US7953002B2 (en) | 2005-11-10 | 2011-05-31 | Broadcom Corporation | Buffer management and flow control mechanism including packet-based dynamic thresholding |
US8218546B2 (en) | 2005-11-10 | 2012-07-10 | Broadcom Corporation | Interleaved processing of dropped packets in a network device |
US20070153796A1 (en) | 2005-12-30 | 2007-07-05 | Intel Corporation | Packet processing utilizing cached metadata to support forwarding and non-forwarding operations on parallel paths |
US7593330B1 (en) | 2006-01-30 | 2009-09-22 | Juniper Networks, Inc. | Processing of partial frames and partial superframes |
US7809009B2 (en) | 2006-02-21 | 2010-10-05 | Cisco Technology, Inc. | Pipelined packet switching and queuing architecture |
US8139593B2 (en) | 2006-03-31 | 2012-03-20 | Qualcomm Incorporated | Memory management for high speed media access control |
JP4236672B2 (ja) | 2006-04-05 | 2009-03-11 | シャープ株式会社 | 画像処理装置 |
US8665892B2 (en) | 2006-05-30 | 2014-03-04 | Broadcom Corporation | Method and system for adaptive queue and buffer control based on monitoring in a packet network switch |
US7701849B1 (en) | 2006-06-23 | 2010-04-20 | Juniper Networks, Inc. | Flow-based queuing of network traffic |
US8077611B2 (en) | 2006-07-27 | 2011-12-13 | Cisco Technology, Inc. | Multilevel coupled policer |
CN101453673B (zh) * | 2006-08-21 | 2011-09-14 | 华为技术有限公司 | 光网络终端及其报文处理方法 |
GB2442499B (en) | 2006-10-03 | 2011-02-16 | Advanced Risc Mach Ltd | Register renaming in a data processing system |
US7835277B2 (en) | 2006-12-05 | 2010-11-16 | Samsung Electronics Co., Ltd. | Method and apparatus for managing a buffer in a communication system |
US7746901B2 (en) | 2006-12-14 | 2010-06-29 | Oracle America, Inc. | Method and system for offloaded transport layer protocol switching |
JP5102844B2 (ja) | 2006-12-19 | 2012-12-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ネットワーク・フローを解析する装置および方法 |
US20080175449A1 (en) | 2007-01-19 | 2008-07-24 | Wison Technology Corp. | Fingerprint-based network authentication method and system thereof |
US7904642B1 (en) | 2007-02-08 | 2011-03-08 | Netlogic Microsystems, Inc. | Method for combining and storing access control lists |
US8458282B2 (en) | 2007-06-26 | 2013-06-04 | International Business Machines Corporation | Extended write combining using a write continuation hint flag |
US8094659B1 (en) | 2007-07-09 | 2012-01-10 | Marvell Israel (M.I.S.L) Ltd. | Policy-based virtual routing and forwarding (VRF) assignment |
US8458497B2 (en) | 2007-10-11 | 2013-06-04 | Qualcomm Incorporated | Demand based power control in a graphics processing unit |
US8156309B2 (en) | 2007-10-18 | 2012-04-10 | Cisco Technology, Inc. | Translation look-aside buffer with variable page sizes |
JP5088145B2 (ja) | 2008-01-10 | 2012-12-05 | 富士通株式会社 | パケット中継装置、制御方法およびパケット中継プログラム |
US8031606B2 (en) | 2008-06-24 | 2011-10-04 | Intel Corporation | Packet switching |
US7961734B2 (en) | 2008-09-30 | 2011-06-14 | Juniper Networks, Inc. | Methods and apparatus related to packet classification associated with a multi-stage switch |
US9262509B2 (en) | 2008-11-12 | 2016-02-16 | Collective, Inc. | Method and system for semantic distance measurement |
RU2009144127A (ru) | 2008-12-01 | 2011-06-10 | РАЗУМ, Инк. (US) | Управление качеством обслуживания на основе контроля состояния потока без сигнализации пользователя |
US8118238B2 (en) | 2008-12-10 | 2012-02-21 | Honeywell International Inc. | User interface for building controller |
US8214060B2 (en) | 2008-12-10 | 2012-07-03 | Honeywell International Inc. | Building appliance controller with safety feature |
JP5168166B2 (ja) | 2009-01-21 | 2013-03-21 | 富士通株式会社 | 通信装置および通信制御方法 |
US8527613B2 (en) | 2009-01-26 | 2013-09-03 | Assa Abloy Ab | Provisioned firmware updates using object identifiers |
US8391163B2 (en) | 2009-03-23 | 2013-03-05 | Cisco Technology, Inc. | Operating MPLS label switched paths and MPLS pseudowire in loopback mode |
US8638793B1 (en) | 2009-04-06 | 2014-01-28 | Marvell Israle (M.I.S.L) Ltd. | Enhanced parsing and classification in a packet processor |
US9049271B1 (en) | 2009-07-16 | 2015-06-02 | Teradici Corporation | Switch-initiated congestion management method |
US20110149960A1 (en) | 2009-12-17 | 2011-06-23 | Media Patents, S.L. | Method and apparatus for filtering multicast packets |
US9112818B1 (en) | 2010-02-05 | 2015-08-18 | Marvell Isreal (M.I.S.L) Ltd. | Enhanced tail dropping in a switch |
US8869138B2 (en) | 2011-11-11 | 2014-10-21 | Wyse Technology L.L.C. | Robust firmware update with recovery logic |
EP2381622B1 (en) | 2010-04-23 | 2012-06-20 | Alcatel Lucent | Update of a cumulative residence time of a packet in a packet-switched communication network |
US8514855B1 (en) | 2010-05-04 | 2013-08-20 | Sandia Corporation | Extensible packet processing architecture |
CN103119900B (zh) | 2010-06-23 | 2016-01-27 | 日本电气株式会社 | 通信系统、控制设备、节点控制方法和节点控制程序 |
US8717895B2 (en) | 2010-07-06 | 2014-05-06 | Nicira, Inc. | Network virtualization apparatus and method with a table mapping engine |
JP5498889B2 (ja) | 2010-08-06 | 2014-05-21 | アラクサラネットワークス株式会社 | パケット中継装置および輻輳制御方法 |
US8738860B1 (en) | 2010-10-25 | 2014-05-27 | Tilera Corporation | Computing in parallel processing environments |
CN103503424B (zh) | 2010-12-20 | 2016-08-10 | 思杰系统有限公司 | 用于实现多核系统中的连接镜像的系统和方法 |
US8798077B2 (en) | 2010-12-29 | 2014-08-05 | Juniper Networks, Inc. | Methods and apparatus for standard protocol validation mechanisms deployed over a switch fabric system |
US9003057B2 (en) | 2011-01-04 | 2015-04-07 | Cisco Technology, Inc. | System and method for exchanging information in a mobile wireless network environment |
WO2012093335A1 (en) | 2011-01-06 | 2012-07-12 | Marvell Israel (M.I.S.L) Ltd. | Network device with a programmable core |
WO2012143953A2 (en) | 2011-04-21 | 2012-10-26 | Ineda Systems Pvt. Ltd | Optimized multi-root input output virtualization aware switch |
US20150142991A1 (en) | 2011-04-21 | 2015-05-21 | Efficiency3 Corp. | Electronic hub appliances used for collecting, storing, and processing potentially massive periodic data streams indicative of real-time or other measuring parameters |
US8869087B2 (en) | 2011-05-06 | 2014-10-21 | Xcelemor, Inc. | Computing system with data and control planes and method of operation thereof |
JP6072782B2 (ja) | 2011-06-10 | 2017-02-01 | フィリップス ライティング ホールディング ビー ヴィ | ネットワークにおける安全なプロトコルの実行 |
US8442056B2 (en) | 2011-06-28 | 2013-05-14 | Marvell International Ltd. | Scheduling packets in a packet-processing pipeline |
US8798047B1 (en) | 2011-08-29 | 2014-08-05 | Qlogic, Corporation | Methods and systems for processing network information |
US8694994B1 (en) | 2011-09-07 | 2014-04-08 | Amazon Technologies, Inc. | Optimization of packet processing by delaying a processor from entering an idle state |
US9204207B2 (en) | 2011-11-01 | 2015-12-01 | Plexxi Inc. | Hierarchy of control in a data center network |
US20130124491A1 (en) | 2011-11-11 | 2013-05-16 | Gerald Pepper | Efficient Pipelined Binary Search |
CN104067231B (zh) * | 2011-12-07 | 2017-03-29 | 西里克斯系统公司 | 使用虚拟交换代理控制网络接口 |
US8521905B2 (en) | 2011-12-22 | 2013-08-27 | Telefonaktiebolaget L M Ericsson (Publ) | System for flexible and extensible flow processing in software-defined networks |
US9055114B1 (en) | 2011-12-22 | 2015-06-09 | Juniper Networks, Inc. | Packet parsing and control packet classification |
US8711860B2 (en) | 2011-12-22 | 2014-04-29 | Telefonaktiebolaget L M Ericsson (Publ) | Controller for flexible and extensible flow processing in software-defined networks |
US8718064B2 (en) | 2011-12-22 | 2014-05-06 | Telefonaktiebolaget L M Ericsson (Publ) | Forwarding element for flexible and extensible flow processing software-defined networks |
US9450836B2 (en) | 2011-12-27 | 2016-09-20 | Cisco Technology, Inc. | System and method for management of network-based services |
WO2013101024A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Imaging task pipeline acceleration |
US8971338B2 (en) | 2012-01-09 | 2015-03-03 | Telefonaktiebolaget L M Ericsson (Publ) | Expanding network functionalities for openflow based split-architecture networks |
US9519614B2 (en) | 2012-01-10 | 2016-12-13 | Verizon Digital Media Services Inc. | Multi-layer multi-hit caching for long tail content |
US20160342510A1 (en) | 2012-01-17 | 2016-11-24 | Google Inc. | Remote management of data planes and configuration of networking devices |
WO2013115177A1 (ja) | 2012-01-30 | 2013-08-08 | 日本電気株式会社 | ネットワークシステム、及びトポロジー管理方法 |
US9608893B2 (en) | 2012-02-27 | 2017-03-28 | The Boeing Company | Methods and systems for parsing data objects |
EP2829024B1 (en) * | 2012-03-19 | 2020-07-08 | Intel Corporation | Techniques for packet management in an input/output virtualization system |
US8930690B2 (en) * | 2012-03-21 | 2015-01-06 | Microsoft Corporation | Offloading packet processing for networking device virtualization |
US8886879B2 (en) | 2012-04-27 | 2014-11-11 | Hewlett-Packard Development Company, L.P. | TCAM action updates |
US8788512B2 (en) | 2012-05-23 | 2014-07-22 | International Business Machines Corporation | Generating data feed specific parser circuits |
US9438527B2 (en) | 2012-05-24 | 2016-09-06 | Marvell World Trade Ltd. | Flexible queues in a network switch |
US8750288B2 (en) * | 2012-06-06 | 2014-06-10 | Juniper Networks, Inc. | Physical path determination for virtual network packet flows |
US8856600B2 (en) | 2012-06-21 | 2014-10-07 | Breakingpoint Systems, Inc. | JTAG-based programming and debug |
US9065755B2 (en) | 2012-08-07 | 2015-06-23 | Broadcom Corporation | Low-latency switching |
US9015427B2 (en) | 2012-09-14 | 2015-04-21 | Xerox Corporation | Systems and methods for employing an electronically-readable monitoring module associated with a customer replaceable component to update a non-volatile memory in an image forming device |
US9065780B2 (en) | 2012-09-18 | 2015-06-23 | Cisco Technology, Inc. | Low latency networking device using header prediction |
CN103777971A (zh) | 2012-10-23 | 2014-05-07 | 新加坡商华科国际股份有限公司 | 电子装置、更新固件的方法与电脑可读取记录媒体 |
US10104004B2 (en) | 2012-11-08 | 2018-10-16 | Texas Instruments Incorporated | Openflow match and action pipeline structure |
US9419903B2 (en) | 2012-11-08 | 2016-08-16 | Texas Instruments Incorporated | Structure for implementing openflow all group buckets using egress flow table entries |
US8711855B1 (en) | 2012-12-18 | 2014-04-29 | Juniper Networks, Inc. | Topology discovery, control channel establishment, and datapath provisioning within an aggregation network with centralized control |
US9384072B2 (en) | 2012-12-20 | 2016-07-05 | Oracle International Corporation | Distributed queue pair state on a host channel adapter |
US9350656B2 (en) | 2013-01-24 | 2016-05-24 | Knuedge Incorporated | Systems and methods for packet routing |
US20150363522A1 (en) | 2013-01-31 | 2015-12-17 | Hewlett-Packard Development Company, L.P. | Network switch simulation |
US9906445B2 (en) | 2013-02-01 | 2018-02-27 | Texas Instruments Incorporated | Packet processing match and action pipeline structure with dependency calculation removing false dependencies |
US9258224B2 (en) | 2013-02-28 | 2016-02-09 | Texas Instruments Incorporated | Packet processing VLIW action unit with or-multi-ported instruction memory |
US10009276B2 (en) | 2013-02-28 | 2018-06-26 | Texas Instruments Incorporated | Packet processing match and action unit with a VLIW action engine |
US9826067B2 (en) | 2013-02-28 | 2017-11-21 | Texas Instruments Incorporated | Packet processing match and action unit with configurable bit allocation |
US9712439B2 (en) | 2013-02-28 | 2017-07-18 | Texas Instruments Incorporated | Packet processing match and action unit with configurable memory allocation |
US10645032B2 (en) | 2013-02-28 | 2020-05-05 | Texas Instruments Incorporated | Packet processing match and action unit with stateful actions |
US20160019161A1 (en) | 2013-03-12 | 2016-01-21 | Hewlett-Packard Development Company, L.P. | Programmable address mapping and memory access operations |
US9419919B2 (en) | 2013-03-15 | 2016-08-16 | Cisco Technology, Inc. | VPC auto configuration |
US9276846B2 (en) | 2013-03-15 | 2016-03-01 | Cavium, Inc. | Packet extraction optimization in a network processor |
US9450817B1 (en) | 2013-03-15 | 2016-09-20 | Juniper Networks, Inc. | Software defined network controller |
US9100346B2 (en) * | 2013-03-15 | 2015-08-04 | Cisco Technology, Inc. | Commmon agent framework for network devices |
US9973429B2 (en) | 2013-04-05 | 2018-05-15 | Futurewei Technologies, Inc. | Software defined networking (SDN) controller orchestration and network virtualization for data center interconnection |
CN103248573A (zh) * | 2013-04-08 | 2013-08-14 | 北京天地互连信息技术有限公司 | 面向OpenFlow的集中管理交换机及其数据处理方法 |
US20140321473A1 (en) | 2013-04-26 | 2014-10-30 | Mediatek Inc. | Active output buffer controller for controlling packet data output of main buffer in network device and related method |
US9667561B2 (en) | 2013-04-26 | 2017-05-30 | Mediatek Inc. | Packet output controller and method for dequeuing multiple packets from one scheduled output queue and/or using over-scheduling to schedule output queues |
US9571386B2 (en) | 2013-07-08 | 2017-02-14 | Nicira, Inc. | Hybrid packet processing |
US9559870B2 (en) | 2013-07-08 | 2017-01-31 | Nicira, Inc. | Managing forwarding of logical network traffic between physical domains |
US9124644B2 (en) | 2013-07-14 | 2015-09-01 | Netronome Systems, Inc. | Script-controlled egress packet modifier |
US9712431B2 (en) | 2013-07-17 | 2017-07-18 | Kt Corporation | Methods for managing transaction in software defined network |
CN104348750B (zh) | 2013-07-31 | 2019-07-26 | 中兴通讯股份有限公司 | OpenFlow网络中QoS的实现方法及装置 |
US9843504B2 (en) | 2013-08-09 | 2017-12-12 | Futurewei Technologies, Inc. | Extending OpenFlow to support packet encapsulation for transport over software-defined networks |
CN103428094B (zh) | 2013-08-12 | 2016-08-17 | 杭州华三通信技术有限公司 | 开放流OpenFlow系统中的报文转发方法及装置 |
WO2015031866A1 (en) | 2013-08-30 | 2015-03-05 | Clearpath Networks, Inc. | System and method of network functions virtualization of network services within and across clouds |
US9602398B2 (en) | 2013-09-15 | 2017-03-21 | Nicira, Inc. | Dynamically generating flows with wildcard fields |
US9722916B2 (en) | 2013-09-30 | 2017-08-01 | Cisco Technology, Inc. | Data-plane driven fast protection mechanism for MPLS pseudowire services |
US9467399B2 (en) * | 2013-10-17 | 2016-10-11 | Marvell World Trade Ltd. | Processing concurrency in a network device |
JP6127900B2 (ja) | 2013-10-18 | 2017-05-17 | 富士通株式会社 | パケット処理装置、パケット処理方法、パケット処理プログラム |
CN104579968B (zh) | 2013-10-26 | 2018-03-09 | 华为技术有限公司 | Sdn交换机获取精确流表项方法及sdn交换机、控制器、系统 |
US9298446B2 (en) | 2013-10-28 | 2016-03-29 | International Business Machines Corporation | Unified update tool for multi-protocol network adapter |
KR20150053620A (ko) | 2013-11-08 | 2015-05-18 | 한국전자통신연구원 | 패킷 전송 장치 및 방법 |
US9577924B2 (en) | 2013-11-14 | 2017-02-21 | Electronics And Telecommunications Research Institute | SDN-based network device with extended function and method of processing packet in the same device |
FI20136138L (fi) | 2013-11-18 | 2015-05-19 | Tellabs Oy | Verkkoelementti ja kontrolleri verkkoelementin hallitsemiseksi |
CN105765946B (zh) | 2013-11-26 | 2019-06-21 | 瑞典爱立信有限公司 | 支持数据网络中的服务链接的方法和系统 |
US9762497B2 (en) * | 2013-11-26 | 2017-09-12 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System, method and apparatus for network congestion management and network resource isolation |
US9973599B2 (en) | 2013-12-04 | 2018-05-15 | Mediatek Inc. | Parser for parsing header in packet and related packet processing apparatus |
WO2015107385A2 (en) | 2013-12-18 | 2015-07-23 | Marvell Israel (M.I.S.L.) Ltd. | Methods and network device for oversubscription handling |
US20150180769A1 (en) | 2013-12-20 | 2015-06-25 | Alcatel-Lucent Usa Inc. | Scale-up of sdn control plane using virtual switch based overlay |
US20150178746A1 (en) | 2013-12-20 | 2015-06-25 | Zumur, LLC | System and method for near real-time, unsolicited, unbiased demand collection for distributing consumer items |
US9825884B2 (en) | 2013-12-30 | 2017-11-21 | Cavium, Inc. | Protocol independent programmable switch (PIPS) software defined data center networks |
CN104753818B (zh) | 2013-12-30 | 2019-04-30 | 深圳市中兴微电子技术有限公司 | 一种队列调度方法和装置 |
US9299434B2 (en) | 2014-01-09 | 2016-03-29 | Netronome Systems, Inc. | Dedicated egress fast path for non-matching packets in an OpenFlow switch |
US9686204B2 (en) | 2014-02-05 | 2017-06-20 | Verizon Patent And Licensing Inc. | Capacity management based on backlog information |
KR20160124161A (ko) | 2014-02-19 | 2016-10-26 | 닛본 덴끼 가부시끼가이샤 | 네트워크 제어 방법, 네트워크 시스템, 장치, 및 프로그램 |
US20150249572A1 (en) | 2014-03-03 | 2015-09-03 | Futurewei Technologies, Inc. | Software-Defined Network Control Using Functional Objects |
US20150256465A1 (en) | 2014-03-04 | 2015-09-10 | Futurewei Technologies, Inc. | Software-Defined Network Control Using Control Macros |
US9503321B2 (en) | 2014-03-21 | 2016-11-22 | Nicira, Inc. | Dynamic routing for logical routers |
US9686200B2 (en) | 2014-03-31 | 2017-06-20 | Nicira, Inc. | Flow cache hierarchy |
US10448246B2 (en) | 2014-04-29 | 2019-10-15 | Hewlett Packard Enterprise Development Lp | Network re-convergence point |
US9986434B2 (en) | 2014-04-30 | 2018-05-29 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System for accelerated network route update through exclusive access to routing tables |
US10892939B2 (en) | 2014-05-27 | 2021-01-12 | Telecom Italia S.P.A. | System and method for network apparatus management |
WO2015180130A1 (zh) | 2014-05-30 | 2015-12-03 | 华为技术有限公司 | 报文编辑处理方法和相关设备 |
US9729512B2 (en) * | 2014-06-04 | 2017-08-08 | Nicira, Inc. | Use of stateless marking to speed up stateful firewall rule processing |
SG10201402893YA (en) | 2014-06-04 | 2016-01-28 | Lantiq Deutschland Gmbh | Data packet processing system on a chip |
US9888033B1 (en) | 2014-06-19 | 2018-02-06 | Sonus Networks, Inc. | Methods and apparatus for detecting and/or dealing with denial of service attacks |
US9838268B1 (en) | 2014-06-27 | 2017-12-05 | Juniper Networks, Inc. | Distributed, adaptive controller for multi-domain networks |
US20150381418A1 (en) | 2014-06-27 | 2015-12-31 | iPhotonix | Remote Orchestration of Virtual Machine Updates |
WO2016000170A1 (zh) | 2014-06-30 | 2016-01-07 | 华为技术有限公司 | 网络装置执行的数据处理方法和相关设备 |
US9419897B2 (en) | 2014-06-30 | 2016-08-16 | Nicira, Inc. | Methods and systems for providing multi-tenancy support for Single Root I/O Virtualization |
US9455908B2 (en) | 2014-07-07 | 2016-09-27 | Cisco Technology, Inc. | Bi-directional flow stickiness in a network environment |
US10044795B2 (en) | 2014-07-11 | 2018-08-07 | Vmware Inc. | Methods and apparatus for rack deployments for virtual computing environments |
EP3172877B1 (en) | 2014-07-25 | 2019-07-10 | Telefonaktiebolaget LM Ericsson (publ) | Packet processing in an openflow switch |
WO2016023148A1 (zh) | 2014-08-11 | 2016-02-18 | 华为技术有限公司 | 报文的控制方法、交换机及控制器 |
US9755932B1 (en) | 2014-09-26 | 2017-09-05 | Juniper Networks, Inc. | Monitoring packet residence time and correlating packet residence time to input sources |
US11178051B2 (en) | 2014-09-30 | 2021-11-16 | Vmware, Inc. | Packet key parser for flow-based forwarding elements |
US9960956B1 (en) | 2014-10-15 | 2018-05-01 | The United States Of America, As Represented By The Secretary Of The Navy | Network monitoring method using phantom nodes |
US9606781B2 (en) | 2014-11-14 | 2017-03-28 | Cavium, Inc. | Parser engine programming tool for programmable network devices |
US9838286B2 (en) | 2014-11-20 | 2017-12-05 | Telefonaktiebolaget L M Ericsson (Publ) | Passive performance measurement for inline service chaining |
US10044646B1 (en) | 2014-12-02 | 2018-08-07 | Adtran, Inc. | Systems and methods for efficiently storing packet data in network switches |
CN105721332A (zh) | 2014-12-03 | 2016-06-29 | 深圳市中兴微电子技术有限公司 | 一种基于改进的wred的拥塞控制方法和装置 |
WO2016094825A1 (en) | 2014-12-11 | 2016-06-16 | Brocade Communications Systems, Inc. | Multilayered distributed router architecture |
US10003544B2 (en) | 2014-12-11 | 2018-06-19 | Futurewei Technologies, Inc. | Method and apparatus for priority flow and congestion control in ethernet network |
US9553807B2 (en) | 2014-12-24 | 2017-01-24 | Nicira, Inc. | Batch processing of packets |
US9846576B2 (en) | 2014-12-27 | 2017-12-19 | Intel Corporation | Technologies for reprogramming network interface cards over a network |
US10015048B2 (en) | 2014-12-27 | 2018-07-03 | Intel Corporation | Programmable protocol parser for NIC classification and queue assignments |
US9602387B2 (en) | 2014-12-29 | 2017-03-21 | Juniper Networks, Inc. | Network topology optimization |
US10193783B2 (en) | 2014-12-31 | 2019-01-29 | Nicira, Inc. | System for aggregating statistics associated with interfaces |
CN107113637B (zh) | 2015-01-12 | 2021-02-26 | 瑞典爱立信有限公司 | 用于在软件定义网络中管理分组的方法和模块 |
US10812632B2 (en) | 2015-02-09 | 2020-10-20 | Avago Technologies International Sales Pte. Limited | Network interface controller with integrated network flow processing |
US9660903B2 (en) | 2015-02-10 | 2017-05-23 | Alcatel Lucent | Method and system for inserting an openflow flow entry into a flow table using openflow protocol |
US9686137B2 (en) | 2015-02-10 | 2017-06-20 | Alcatel Lucent | Method and system for identifying an outgoing interface using openflow protocol |
US9660904B2 (en) | 2015-02-10 | 2017-05-23 | Alcatel Lucent | Method and system for inserting an openflow flow entry into a flow table using openflow protocol |
US9596173B2 (en) | 2015-04-09 | 2017-03-14 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for traffic pattern generation in a software-defined networking (SDN) system |
US20160315866A1 (en) | 2015-04-27 | 2016-10-27 | Telefonaktiebolaget L M Ericsson (Publ) | Service based intelligent packet-in mechanism for openflow switches |
US9754217B2 (en) | 2015-05-01 | 2017-09-05 | Cirius Messaging Inc. | Data leak protection system and processing methods thereof |
US9578008B2 (en) * | 2015-05-11 | 2017-02-21 | Intel Corporation | Technologies for secure bootstrapping of virtual network functions |
US10116557B2 (en) | 2015-05-22 | 2018-10-30 | Gray Research LLC | Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network |
US10089089B2 (en) | 2015-06-03 | 2018-10-02 | The Mathworks, Inc. | Data type reassignment |
US10505819B2 (en) | 2015-06-04 | 2019-12-10 | Cisco Technology, Inc. | Method and apparatus for computing cell density based rareness for use in anomaly detection |
US10419242B1 (en) | 2015-06-04 | 2019-09-17 | Netronome Systems, Inc. | Low-level programming language plugin to augment high-level programming language setup of an SDN switch |
US9891898B1 (en) | 2015-06-04 | 2018-02-13 | Netronome Systems, Inc. | Low-level programming language plugin to augment high-level programming language setup of an SDN switch |
WO2017003436A1 (en) | 2015-06-30 | 2017-01-05 | Hewlett Packard Enterprise Development Lp | Action references |
US9942171B2 (en) | 2015-07-02 | 2018-04-10 | Arista Networks, Inc. | Network data processor having per-input port virtual output queues |
US10439886B2 (en) | 2015-07-13 | 2019-10-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Analytics-driven dynamic network design and configuration |
US10367728B2 (en) | 2015-07-15 | 2019-07-30 | Netsia, Inc. | Methods for forwarding rule hopping based secure communications |
US9654424B2 (en) | 2015-07-31 | 2017-05-16 | Nicira, Inc. | Managed forwarding element with conjunctive match flow entries |
US9692690B2 (en) | 2015-08-03 | 2017-06-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for path monitoring in a software-defined networking (SDN) system |
US20170048144A1 (en) | 2015-08-13 | 2017-02-16 | Futurewei Technologies, Inc. | Congestion Avoidance Traffic Steering (CATS) in Datacenter Networks |
US10496680B2 (en) | 2015-08-17 | 2019-12-03 | Mellanox Technologies Tlv Ltd. | High-performance bloom filter array |
US9825862B2 (en) | 2015-08-26 | 2017-11-21 | Barefoot Networks, Inc. | Packet header field extraction |
US9826071B2 (en) | 2015-08-26 | 2017-11-21 | Barefoot Networks, Inc. | Configuring a switch for extracting packet header fields |
US20170070416A1 (en) | 2015-09-04 | 2017-03-09 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for modifying forwarding states in a network device of a software defined network |
US10255074B2 (en) | 2015-09-11 | 2019-04-09 | Qualcomm Incorporated | Selective flushing of instructions in an instruction pipeline in a processor back to an execution-resolved target address, in response to a precise interrupt |
US10523764B2 (en) | 2015-09-24 | 2019-12-31 | Barefoot Networks, Inc. | Data-plane stateful processing units in packet processing pipelines |
US9923816B2 (en) | 2015-09-24 | 2018-03-20 | Barefoot Networks, Inc. | Data-plane stateful processing units in packet processing pipelines |
US9912610B2 (en) | 2015-09-24 | 2018-03-06 | Barefoot Networks, Inc. | Data-plane stateful processing units in packet processing pipelines |
US10361899B2 (en) | 2015-09-30 | 2019-07-23 | Nicira, Inc. | Packet processing rule versioning |
US10284389B2 (en) | 2015-10-21 | 2019-05-07 | Arris Enterprises Llc | High availability for distributed network services in an extended bridge |
GB2559907A (en) | 2015-10-21 | 2018-08-22 | Brocade Comm Systems Inc | Distributed rule provisioning in an extended bridge |
US10282220B2 (en) | 2015-11-05 | 2019-05-07 | Dell Products, L.P. | Dynamic allocation of queue depths for virtual functions in a converged infrastructure |
US20170134282A1 (en) | 2015-11-10 | 2017-05-11 | Ciena Corporation | Per queue per service differentiation for dropping packets in weighted random early detection |
US10291555B2 (en) | 2015-11-17 | 2019-05-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Service based intelligent packet-in buffering mechanism for openflow switches by having variable buffer timeouts |
US9912774B2 (en) | 2015-12-22 | 2018-03-06 | Intel Corporation | Accelerated network packet processing |
US10135734B1 (en) | 2015-12-28 | 2018-11-20 | Amazon Technologies, Inc. | Pipelined evaluations for algorithmic forwarding route lookup |
US10484285B2 (en) | 2015-12-30 | 2019-11-19 | Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. | System, method and article of manufacture for using control plane for critical data communications in software-defined networks |
WO2017120270A1 (en) | 2016-01-04 | 2017-07-13 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications |
WO2017118875A1 (en) | 2016-01-05 | 2017-07-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Mechanism to detect control plane loops in a software defined networking (sdn) network |
US10574555B2 (en) | 2016-01-28 | 2020-02-25 | Arista Networks, Inc. | Network data stream tracer |
US10609597B2 (en) | 2016-01-29 | 2020-03-31 | Arista Networks, Inc. | System and method of a pause watchdog |
US10778809B2 (en) | 2016-02-26 | 2020-09-15 | Arista Networks, Inc. | Per-input port, per-control plane network data traffic class control plane policing |
US10250530B2 (en) | 2016-03-08 | 2019-04-02 | Mellanox Technologies Tlv Ltd. | Flexible buffer allocation in a network switch |
US10333848B2 (en) | 2016-07-01 | 2019-06-25 | Intel Corporation | Technologies for adaptive routing using throughput estimation |
US10305805B2 (en) | 2016-07-01 | 2019-05-28 | Intel Corporation | Technologies for adaptive routing using aggregated congestion information |
US10305799B2 (en) | 2016-08-17 | 2019-05-28 | Cisco Technology, Inc. | Re-configurable lookup pipeline architecture for packet forwarding |
US10212065B2 (en) | 2016-10-20 | 2019-02-19 | Gatesair, Inc. | Extended time reference generation |
US20180124183A1 (en) | 2016-11-03 | 2018-05-03 | Futurewei Technologies, Inc. | Method and Apparatus for Stateful Control of Forwarding Elements |
US10341242B2 (en) | 2016-12-13 | 2019-07-02 | Oracle International Corporation | System and method for providing a programmable packet classification framework for use in a network device |
US10091137B2 (en) | 2017-01-30 | 2018-10-02 | Cavium, Inc. | Apparatus and method for scalable and flexible wildcard matching in a network switch |
US11245572B1 (en) | 2017-01-31 | 2022-02-08 | Barefoot Networks, Inc. | Messaging between remote controller and forwarding element |
US10412018B1 (en) | 2017-03-21 | 2019-09-10 | Barefoot Networks, Inc. | Hierarchical queue scheduler |
US10735221B2 (en) | 2017-03-28 | 2020-08-04 | Marvell International Ltd. | Flexible processor of a port extender device |
US10694006B1 (en) | 2017-04-23 | 2020-06-23 | Barefoot Networks, Inc. | Generation of descriptive data for packet fields |
JP2020113924A (ja) | 2019-01-15 | 2020-07-27 | 富士通株式会社 | モニタリングプログラム,プログラマブルデバイス及びモニタリング方法 |
US10833987B2 (en) | 2019-01-29 | 2020-11-10 | Cisco Technology, Inc. | Supporting asynchronous packet operations in a deterministic network |
US20200280428A1 (en) | 2019-10-18 | 2020-09-03 | Intel Corporation | Configuration scheme for link establishment |
US20200280518A1 (en) | 2020-01-28 | 2020-09-03 | Intel Corporation | Congestion management techniques |
US20220091992A1 (en) | 2020-09-23 | 2022-03-24 | Intel Corporation | Device, system and method to provide line level tagging of data at a processor cache |
-
2015
- 2015-12-22 US US14/977,810 patent/US9912774B2/en active Active
-
2016
- 2016-11-17 CN CN202111494631.XA patent/CN114189571B/zh active Active
- 2016-11-17 DE DE112016005924.8T patent/DE112016005924T5/de active Pending
- 2016-11-17 CN CN201680075637.4A patent/CN108475244B/zh active Active
- 2016-11-17 CN CN202111206815.1A patent/CN113934660A/zh active Pending
- 2016-11-17 WO PCT/US2016/062511 patent/WO2017112165A1/en active Application Filing
-
2018
- 2018-01-24 US US15/878,966 patent/US10432745B2/en active Active
-
2019
- 2019-07-02 US US16/460,798 patent/US11134132B2/en active Active
-
2021
- 2021-09-24 US US17/484,004 patent/US11677851B2/en active Active
-
2023
- 2023-04-04 US US18/130,733 patent/US20230239368A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1589551A (zh) * | 2001-09-24 | 2005-03-02 | 艾利森公司 | 用于处理分组的系统和方法 |
CN101352012A (zh) * | 2005-10-07 | 2009-01-21 | 安吉尔系统公司 | 使用不同元件对流进行媒体数据处理以及控制方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI819892B (zh) * | 2022-11-11 | 2023-10-21 | 瑞昱半導體股份有限公司 | 以硬體加速產生vxlan封包的方法以及以硬體加速處理vxlan封包的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108475244A (zh) | 2018-08-31 |
US11677851B2 (en) | 2023-06-13 |
US11134132B2 (en) | 2021-09-28 |
US20230239368A1 (en) | 2023-07-27 |
CN114189571A (zh) | 2022-03-15 |
DE112016005924T5 (de) | 2018-10-25 |
CN113934660A (zh) | 2022-01-14 |
CN114189571B (zh) | 2024-04-05 |
WO2017112165A1 (en) | 2017-06-29 |
US20180234516A1 (en) | 2018-08-16 |
US20190327323A1 (en) | 2019-10-24 |
US9912774B2 (en) | 2018-03-06 |
US20170180273A1 (en) | 2017-06-22 |
US20220060555A1 (en) | 2022-02-24 |
US10432745B2 (en) | 2019-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108475244B (zh) | 加速网络分组处理 | |
US10997106B1 (en) | Inter-smartNIC virtual-link for control and datapath connectivity | |
EP2880828B1 (en) | System and method for virtual ethernet interface binding | |
US9692706B2 (en) | Virtual enhanced transmission selection (VETS) for lossless ethernet | |
US20170366605A1 (en) | Providing data plane services for applications | |
US9148368B2 (en) | Packet routing with analysis assist for embedded applications sharing a single network interface over multiple virtual networks | |
US20190052567A1 (en) | Non-random flowlet-based routing | |
US11936562B2 (en) | Virtual machine packet processing offload | |
US9077659B2 (en) | Packet routing for embedded applications sharing a single network interface over multiple virtual networks | |
US20160110212A1 (en) | Methods And Systems For Network Packet Impairment Within Virtual Machine Host Systems | |
US10877822B1 (en) | Zero-copy packet transmission between virtualized computing instances | |
US10581730B2 (en) | Packet processing using service chains | |
US10931552B1 (en) | Connectivity check with service insertion | |
US11126249B1 (en) | Power reduction methods for variable sized tables | |
US20220166718A1 (en) | Systems and methods to prevent packet reordering when establishing a flow entry | |
US20200336573A1 (en) | Network switching with co-resident data-plane and network interface controllers | |
US11740920B2 (en) | Methods and systems for migrating virtual functions in association with virtual machines | |
US10506044B1 (en) | Statistics collecting architecture | |
Wang et al. | OXDP: Offloading XDP to SmartNIC for Accelerating Packet Processing | |
US20230040655A1 (en) | Network switching with co-resident data-plane and network interface controllers | |
US9866657B2 (en) | Network switching with layer 2 switch coupled co-resident data-plane and network interface controllers | |
US20230043461A1 (en) | Packet processing configurations | |
EP4304148A1 (en) | Edge services using network interface cards having processing units | |
US20230116614A1 (en) | Deterministic networking node |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |