用于经硬件加速的分组处理的装置和方法与流程

文档序号:13985259
用于经硬件加速的分组处理的装置和方法与流程

本文一般描述的实施例涉及通过网络发送或接收的数据分组的处理。一些实施例涉及数据分组处理的硬件加速。



背景技术:

架顶式交换机和特殊功能硬件提供包括分组交换、安全性、深入分组检查和其它功能的网络功能。近来已经存在提供在高体积计算机架构上施行的虚拟交换机和网络功能的趋势。进行中的努力针对改进交换机之间的协调以利用硬件交换机中的速度益处和虚拟交换机的灵活性和能力。

附图说明

在图中,所述图未被按照比例绘制,相同的标号可以描述不同视图中的类似组件。具有不同字母后缀的相似标号可以表示类似组件的不同实例。附图通过示例的方式而不是通过限制的方式一般地图示在本文档中讨论的各种实施例。

图1图示依照一些实施例的包括用于实现方法的控制设备的交换平台的组件。

图2图示依照一些实施例的控制设备。

图3图示依照一些实施例的交换平台的服务功能转发器使用模型。

图4图示依照一些实施例的交换平台的开放虚拟交换机使用模型。

图5图示依照一些实施例的交换平台的连接追踪器使用模型。

图6是依照一些实施例的示例硬件实现的方法的流程图。

图7是依照一些实施例的硬件交换机的框图。

具体实施方式

一些数据中心使用架顶式(ToR)交换机和特殊功能硬件来提供包括分组交换、安全性、深入分组检查和其它功能的网络功能。然而,消费者可能经历由诸如有限的存储器、有限的三元内容可寻址存储器(TCAM)、受支持的数据流的减少的总数目等之类的硬件限制导致的降低的功能性。另外,硬件交换机关于分组解析可能过于严格,并且硬件交换机可以展现平台灵活性和可配置性的普遍缺乏。

近来在数据中心内已经存在一种趋势,用以提供用于将网络功能从底层硬件解耦的软件定义的联网(SDN),这可以帮助增加敏捷性和降低成本。类似地,网络功能虚拟化(NFV)可以利用完全在软件中的实现方式来取代固定功能硬件,所述软件在通用、基于标准的服务器上更加成本有效地运行。然而,这样的软件定义的系统可能不利用硬件交换机的一些合期望的特性。

实施例提供以精细粒度的方式协调和管理多个数据平面组件以利用硬件交换和SDN/NFV使用二者的合期望的特征。控制平面组件包括确定应当向哪里引导业务(例如数据分组或流)的机构,而数据平面组件包括向那些目的地转发业务的机构。实施例提供控制平面方法和装置以协调多个数据平面组件。除其它组件之外,数据平面组件可以特别包括,作为非限制性示例,数据平面开发套件(DPDK)组件、现场可编程门阵列(FPGA)组件,以及从加利福尼亚州圣克拉拉的英特尔可得到的红石峡谷(RRC)交换机组件。依照各种实施例的方法可以基于用户定义的策略来以动态且灵活的方式协调这些和其它组件的利用,以减少或最小化能量消耗或增强速度和性能。在实施例中,控制平面可以将简单的快速分组处理管线从基于软件的交换机或虚拟交换机卸载到交换机硬件,而同时提供基于CPU的软件数据平面上的更加复杂的处理。此外,以下关于各种实施例描述的方法和装置可以提供响应于被监视的网络负载中的改变的缩放动作以得到附加的功率和性能增强。

依照本文稍后描述的各种实施例的装置包括控制设备,控制设备包含与硬件交换机或一组硬件交换机通信的交换机接口。在一些实施例或实现方式中,控制设备可以称为平面间控制设备。在一些实施例或实现方式中,控制设备可以称为控制平面处理器。控制设备还包括与一个或多个数据平面处理器通信的数据平面接口。控制设备还包括基于分组串流的所检测到的特性而在硬件交换机与软件数据平面组件之间分发分组串流的处理电路,如本文稍后将更加详细描述的。相比之下,一些其它经硬件加速的分组处理架构不利用软件和硬件数据平面组件二者。

图1图示依照各种实施例的包括用于实现方法的控制设备102的交换平台100的组件。网络操作系统(在内核或用户空间中)在交换平台100上运行,并且除其它功能性之外,特别管理硬件交换机104、数据平面处理器106和在FPGA 108中编程的相关联的加速器。硬件交换机104可以包括固定逻辑交换机硅(交换机Si)电路或其它硬件电路,并且硬件交换机104可以包括从加利福尼业州圣克拉拉的英特尔公司可得到的Intel®以太网交换机家族中的交换机。数据平面处理器106中的每一个使用非常高带宽、低延时互连110连接到硬件交换机104,所述互连110可以支持例如10-40吉比特以太网(GbE)的速度。此外,除其它用途之外,数据平面处理器106还特别在彼此之间互连以产生连贯结构以访问交换平台100的随机存取存储器(RAM)112中所提供的扩展流表,或从一个数据平面处理器106向下一个传递分组。

控制设备102初始化硬件交换机104并且使用灵活的接口对面向数据平面处理器106的硬件交换机104的交换端口进行编程,以提供除其它数据中心使用模型之外还可以适配用于本文稍后参考图3-5描述的各种使用模型的可缩放的流处理。硬件交换机104还接收分组串流并且使用以太网端口111连接到其它设备或系统。在一些实施例中,控制设备102可以在专门化的核上施行(例如“运行”)。可替换地,在其它实施例中,控制设备102(或控制设备102的处理电路)作为非限制性示例可以分布在一个或多个Intel Architecture(Intel架构)®核114之间。

图2图示依照一些实施例的控制设备102。控制设备102包括与一个或多个硬件交换机(例如硬件交换机104(图1))通信的交换机接口200。

控制设备102还包括与一个或多个数据平面处理器106(图1)通信的数据平面接口202。

控制设备102包括执行如本文稍后描述的功能性的处理电路204。将理解到,由处理电路204执行的功能中的任何一个或全部可以利用硬件、软件、固件或其任何组合在一个或多个处理核(例如IA核114或控制设备102的核)上施行。

在实施例中,处理电路204可以检测已经在交换机接口200处接收到的多个分组串流的特性。处理电路204可以基于所述多个分组串流的所检测到的特性而在所述一个或多个硬件交换机(例如硬件交换机104(图1))和软件数据平面组件之间分发所述多个分组串流。特性可以包括相应分组串流的复杂度(以机器周期来测量)、分组串流是否简单地为不使用处理能力的I/O流等。软件数据平面组件可以包括用于SDN或NFV功能的元件,如本文较早前描述的,并且软件数据平面组件可以在IA核114上施行。

处理电路204可以监视分组串流并且卸载简单的分组串流。处理电路204可以基于预计要由相应分组串流使用的处理能力而确定分组串流是否是简单的分组串流(例如如果没有或很少的中央处理单元(CPU)机器周期将用于处理相应的分组串流,分组串流是简单的分组串流)。处理电路204可以使用任何其它准则来确定哪些分组串流是简单的分组串流,并且处理电路204可以向硬件交换机分发除简单的分组串流之外的其它类型的分组串流以供进一步处理。

在实施例中,处理电路204可以分发所述多个分组串流,使得至少一个分组串流被指派由所述一个或多个硬件交换机处理。在实施例中,处理电路204可以检测针对所述一个或多个硬件交换机的能力信息,并且处理电路204可以至少部分地基于针对所述一个或多个硬件交换机的能力信息而分发所述多个分组串流。能力信息的示例可以包括服务质量能力、交换机是否支持硬件加速器能力以执行基于硬件的查找、支持加密等。

处理电路204以及控制设备102的其它组件可以实现在用于控制平面功能性的专门化核中,或者在一些实施例中,一些或全部控制平面功能性可以分布在多个核之间。以下更加详细地描述控制平面功能性。

用于经硬件加速的软件分组处理的控制平面功能性

如本文较早前简要提到的,具有TCAM的硬件交换机结构具有高吞吐量和低延时的优点。然而,硬件交换机可能缺乏灵活性和可配置性。此外,硬件交换机可能仅具有有限的TCAM容量。另一方面,IA软件或包括DPDK组件的其它软件可以展现高吞吐量和相对于硬件组件的增强的灵活性,但是具有延时和功率方面的折衷。实施例因此利用硬件和软件数据平面组件二者以实现增强的性能和能量效率。本文所描述的控制平面功能性中的任何一个或全部可以通过控制设备102(图1和2)的组件实现。例如,作为非限制性示例,处理电路204(图2)可以在专门化的处理核上或在多个IA核114上实现一个或多个功能性。

在各种实施例中,控制设备102通过使得硬件交换机104(图1)能够处理如根据硬件限制或其它限制而可以处理的那么多的分组串流来支持硬件/软件混合分组处理,而同时向软件引导其它分组串流以供处理。在一些实施例中,可以向软件而不是硬件分发不太被频繁访问的分组串流或特殊分组串流。例如,可以将不要求特定服务质量的流,诸如基于web的业务(如与可以具有延时或服务质量要求的视频或语音业务相对),路由至软件而不是硬件交换机。相应地,实施例可以允许数据中心操作者利用硬件来加速分组处理而同时仍旧允许用于具有相对更加复杂的处理需求的分组串流的灵活软件分组处理。

控制设备102监视网络业务,决定哪些分组串流应当由交换机硬件处理,并且使用灵活的接口来动态地配置多个数据平面以实现增强的性能。控制设备102可以实现各种算法以决定哪些分组串流应当在TCAM中缓存。

控制设备102可以执行硬件辅助的负载平衡。例如,控制设备102的处理电路204(图2)可以检测对应于所述多个数据串流的业务负载特性或数据,并且基于业务负载特性而向所述一个或多个硬件交换机引导一个或多个分组串流。在示例中,可以基于在硬件交换机104(图1)的以太网端口111处观察到的业务模式而检测业务负载。

在实施例中,控制设备102向硬件交换机104(图1)提供硬件分组处理提示,使得硬件交换机104可以向适当的目标核引导分组串流的分组。目标核可以包括处理器、软件应用或将处理分组串流的其它模块。控制设备102可以在一些实施例中基于上下文感知,或者基于任何其它准组或用户定义的请求而提供这些提示。

控制设备102可以通过基于网络负载或其它准则而确定多少处理核(例如IA核114,图1)必须保持活跃以跟上所需求的分组处理速度来提供增强的性能或能量效率。取代于将端口静态地绑定到核,控制设备102然后可以向硬件交换机104提供提示以向那些活跃的核引导分组串流,而同时保持其它核处于非活跃或功率节省状态中。

使用模型

以上描述的控制设备102可以依照各种使用模型而使用在各种系统或网络中。图3图示依照一些实施例的交换平台300的服务功能转发器使用模型。控制设备102可以利用路由规则对硬件交换机104进行编程。例如,控制设备102可以利用规则(使用互连110)对硬件交换机104进行编程以操纵瞄准在更多数据平面处理器106中的一个上施行(例如“运行”)的服务功能转发器(SFF)301实例的业务。在各种实施例中,SFF 301可以使用可用接口来向服务功能(SF)302传递分组。SF 302可以在FPGA 108内施行,尽管实施例不限于此。SF是负责所接收的分组的特定处置的功能。SF可以在网络层或其它开放系统互连(OSI)层处起作用。SF可以是功能的虚拟实例,或者SF可以嵌入在物理网络元件中。多个SF中的一个可以嵌入在相同的网络元件中。可以在相同的管理域中实现SF的多个实例。SF可以包括,作为非限制性实例,防火墙、无线区域网(WAN)和应用加速、深入分组检查(DPI)、服务器负载平衡器、传输控制协议(TCP)优化器等。

在一些实施例中,其它使用模型也是可用的。例如,图4图示依照一些实施例的交换平台400的开放虚拟交换机使用模型。在至少该实施例中,硬件交换机104被抽象为开放虚拟交换机(OVS)数据平面。硬件交换机104包括流表402,流表402包括用于路由分组串流的规则。因为由于空间限制和硬件限制而在硬件交换机104中仅能够支持有限数目的流,所以流表402可以与存储在例如系统RAM 112中的扩展流表404协作。扩展流表404可以提供比利用仅硬件交换可以实现的更大的可缩放性。当与DPDK分组处理、高速软件交换(例如CuckooSwitching)和应用编程接口(API)一起用于动态配置时,数据中心操作者可以将分组处理管线扩展到超出硬件交换机104中的硬编码管线,而同时仍旧维持高性能,和典型地作为硬件交换的特征一样。此外,交换平台400允许具有超出可以利用一些可用的固定逻辑硬件交换机执行的那些状态性动作的状态性动作中的一些的流。

图5图示依照一些实施例的交换平台500的连接追踪器使用模型。在至少这些实施例中,除了可选地在硬件交换机104处提供流表502之外,应用递送控制器(ADC)实例504可以在数据平面处理器106中的一个或多个上施行。流表502中所包括的规则可以在面向数据平面处理器106的各种端口之间路由应用业务。流表502可以与流表402(图4)相同或类似。

在每一个数据平面处理器106上施行的ADC实例504可以提供用于监视连接的状态性连接追踪器。连接追踪器追踪各个流特性或在一些情况下整合的流特性。例如,连接追踪器可以追踪每秒发送或接收的分组数目、发送或接收的字节数目、由流传输的分组类型等。分组类型的两个示例包括TCP-SYN分组(TCP-SYN分组打开连接)以及TCP-FIN分组(TCP-FIN分组关闭现有连接)。连接追踪器可以出于安全目的而追踪该信息或其它信息以防止攻击,为比其它流更活跃的某些流提供更好的服务质量等。

示例方法

依照各种实施例,可以实现各种方法以执行以上所描述的使用模型以及其它使用模型的功能。图6是依照一些实施例的示例方法600的流程图。控制设备,例如如以上关于图1描述的控制设备102或参考图2所描述的其元件,可以执行示例方法600的操作。相应地,将参考图2的组件来描述示例方法600。例如,处理电路204可以执行示例方法600的一个或多个操作。

示例方法600以操作602开始,其中处理电路204检测在交换机接口200处接收到的多个分组串流的特性。在实施例中,最终可能已经在硬件交换机104的以太网端口111处接收分组串流。

示例方法600以操作602继续,其中处理电路204基于所述多个分组串流的所检测到的特性而在一个或多个硬件交换机(例如硬件交换机104)和一个或多个数据平面组件之间分发所述多个分组串流。

在实施例中,示例方法600可以包括控制设备102向所述一个或多个硬件交换机(例如硬件交换机104)中的相应一个提供提示字段,所述提示字段包括关于要由所述一个或多个硬件交换机中的所述相应一个响应于接收到数据分组而采取的行动的信息。在实施例中,示例方法600可以包括检测针对所述一个或多个硬件交换机的能力信息,并且至少部分地基于针对所述一个或多个硬件交换机的能力信息而分发所述多个分组串流。

示例方法600可以包括附加的操作,诸如例如,检测对应于所述多个分组串流的业务负载特性,以及基于业务负载特性而向所述一个或多个硬件交换机引导一个或多个分组流。可以基于在硬件交换机104(图1)的以太网端口处观察到的数据而检测业务负载特性。

示例方法600可以包括基于所检测到的业务负载特性而检测分组处理工作负载已经落至阈值以下,并且响应于该检测而命令至少一个处理核进入睡眠模式。

示例方法600可以包括以上关于图1-5描述的控制设备102或其使用模型的任何其它操作或功能性。在适当的情况下,可以以任何次序或并行执行操作。方法600可以由硬件、固件、软件或其任何组合执行。

如本文所描述的示例可以包括逻辑或数个组件、模块或机构,或者可以在其上操作。模块是能够执行指定操作的有形实体(例如硬件),并且可以以某种方式进行配置或布置。在示例中,电路可以以指定方式(例如在内部或关于诸如其它电路之类的外部实体)布置为模块。在示例中,一个或多个计算机系统(例如独立、客户端或服务器计算机系统)的至少部分或控制设备102的一个或多个处理器可以通过固件或软件(例如指令205(图2)、应用部分或应用)而被配置为操作成执行指定操作的模块。在示例中,软件可以驻留在至少一个机器可读介质上。在示例中,软件在由模块(例如控制设备102)的底层硬件施行时,可以包括指令205(图2)以使得硬件执行指定操作。

例如,指令205可以使得硬件检测在交换机接口处或在固定逻辑硬件交换机的以太网端口处接收到的多个分组串流的特性。特性可以包括,基于预计要由相应的分组串流使用的中央处理单元(CPU)机器周期的数目,所述多个分组串流中的相应分组串流是否是简单的分组串流。指令205可以使得硬件基于所述多个分组串流的所检测到的特性而在硬件交换机和软件数据平面组件之间分发所述多个分组串流,使得向硬件交换机分发所述多个分组串流中的简单分组串流。

在各种实施例中,指令205可以可选地使得硬件检测对应于所述多个分组串流的业务负载特性并且基于业务负载特性而向所述一个或多个硬件交换机引导一个或多个分组串流。如本文较早前描述的,业务负载特性可以通过观察硬件交换机104(图1)的以太网端口111处的数据和业务模式来检测。指令205可以使得硬件基于所检测到的业务负载特性而检测分组处理工作负载已经落至阈值以下,并且响应于该检测而命令至少一个处理核(例如IA核114)进入睡眠模式。

在一些实施例中,指令205可以使得硬件基于存储在对应于所述至少一个硬件交换机的TCAM中的规则而向所述至少一个硬件交换机(例如硬件交换机104)分发至少一个分组串流。在实施例中,硬件可以基于用于根据所检测到的业务负载特性而在TCAM中存储规则的算法而在TCAM中存储规则。

术语“模块”被理解成涵盖有形实体,即,经物理构造、具体配置(例如硬连线)或临时(例如暂时)配置(例如编程)以便以指定方式操作或执行本文所描述的任何操作的至少部分的实体。考虑其中模块经临时配置的示例,模块不需要在任何一个时刻处都被实例化。例如,在模块包括使用软件配置的通用硬件处理器的情况下,通用硬件处理器可以在不同时间处被配置为相应的不同模块。软件可以相应地配置硬件处理器,例如,以构成一个时间实例处的特定模块并且以构成不同时间实例处的不同模块。术语“应用”或其变型在本文中可扩张地用于包括例程、程序模块、程序、组件等,并且可以实现在各种系统配置上,各种系统配置包括单处理器或多处理器系统、基于微处理器的电子器件、单核或多核系统、其组合等。因此,术语应用可以用于指代软件的实施例或指代布置成执行本文所描述的任何操作的至少部分的硬件。

虽然机器可读介质可以包括单个介质,但是术语“机器可读介质”可以包括单个介质或多个介质(例如集中式或分布式数据库,和/或相关联的高速缓存和服务器)。

术语“机器可读介质”可以包括任何介质,所述任何介质能够存储、编码或承载指令205以供机器(例如控制设备102或任何其它模块)施行并且所述任何介质使得机器执行本公开的技术中的任何一个或多个或者所述任何介质能够存储、编码或承载由这样的指令使用的数据机构或与这样的指令相关联的数据机构。换言之,处理电路204(图2)可以包括指令,并且可以因而在各种实施例的上下文中称为机器可读介质。其它非限制性机器可读介质示例可以包括固态存储器以及光学和磁性介质。机器可读介质的具体示例可以包括:非易失性存储器,诸如半导体存储器设备(例如电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪速存储器设备;磁盘,诸如内部硬盘和可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。

指令205还可以使用传输介质利用数个传输协议(例如帧中继、互联网协议(IP)、TCP、用户数据报协议(UDP)、超文本传输协议(HTTP)等)中的任何一个在通信网络之上传送或接收。示例通信网络可以包括局域网(LAN)、广域网(WAN)、分组数据网络(例如因特网)、移动电话网络((例如信道访问方法,包括码分多址(CDMA)、时分多址(TDMA)、频分多址(FDMA)和正交频分多址(OFDMA)和蜂窝网络,诸如全球移动通信系统(GSM)、通用移动电信系统(UMTS)、CDMA 2000 1x*标准和长期演进(LTE))、普通老式电话(POTS)网络和无线数据网络(例如电气和电子工程师协会(IEEE)802标准族,包括IEEE 802.11标准(WiFi)、IEEE 802.16标准(WiMax®)和其它)、对等(P2P)网络或现在已知的或稍后开发的其它协议。

术语“传输介质”应当被理解成包括能够存储、编码或承载指令以供硬件处理电路施行的任何非有形介质,并且包括数字或模拟通信信号或促进这样的软件的通信的其它非有形介质。

图7是依照一些实施例的硬件交换机104的框图。硬件交换机104包括用于接收多个分组串流的入口端口702。入口端口702还可以称为以太网端口、通信端口等。

硬件交换机104包括与控制设备102通信的控制接口704和与一个或多个数据平面处理器106通信的交换机数据平面接口706。

根据以上描述的实施例,硬件交换机104配置成通过控制接口704接收所述多个分组串流中的哪些分组串流被指派由硬件交换机104处理的指示。如本文较早前描述的,硬件交换机104可以通过控制接口704向控制设备102提供能力信息,并且硬件交换机104可以接收硬件提示以命令硬件交换机104向目标处理核引导分组以用于处理对应的分组串流。

附加注释和示例:

示例1包括主题(诸如控制设备、平面间控制设备、控制平面处理器、计算机设备和或任何其它电气装置、设备或处理器),所述主题包括与一个或多个硬件交换机通信的交换机接口;与一个或多个数据平面处理器通信的数据平面接口;以及处理电路,所述处理电路检测在交换机接口处接收到的多个分组串流的特性并且基于所述多个分组串流的所检测到的特性而在所述一个或多个硬件交换机与所述一个或多个数据平面数据平面处理器的软件数据平面组件之间分发所述多个分组串流,使得所述多个分组串流中的至少一个分组串流被指派由所述一个或多个硬件交换机处理。

在示例2中,示例1的主题可以可选地包括,其中处理器电路还配置成检测针对所述一个或多个硬件交换机的能力信息,并且其中处理电路至少部分地基于针对所述一个或多个硬件交换机的能力信息而分发所述多个分组串流。

在示例3中,示例1-2中的任何一个的主题可以可选地包括,其中处理电路配置成向所述一个或多个硬件交换机引导简单的分组串流,并且其中处理电路基于预计要由相应分组串流使用的中央处理单元(CPU)机器周期的数目而确定所述多个分组串流中的相应分组串流是否是简单的分组串流。

在示例4中,示例1-3中的任何一个的主题可以可选地包括,其中处理电路配置成检测对应于所述多个分组串流的业务负载数据,并且基于业务负载数据而向所述一个或多个硬件交换机引导一个或多个分组串流。

在示例5中,示例4的主题可以可选地包括,其中处理电路还配置成检测分组处理工作负载已经落至阈值以下;并且响应于所述检测而向至少一个处理核提供命令以使得所述至少一个处理核进入睡眠模式。

在示例6中,示例1-5中的任何一个的主题可以可选地包括,其中处理电路配置成对至少一个硬件交换机进行编程以施行路由规则。

在示例7中,示例6的主题可以可选地包括,其中路由规则包括向在现场可编程门阵列(FPGA)上施行的服务功能(SF)引导分组串流的分组的规则。

在示例8中,示例1-7中的任何一个的主题可以可选地包括,其中处理电路还配置成对硬件提示进行编程以命令至少一个硬件交换机向目标处理核引导分组以用于处理对应的分组串流。

在示例9中,示例1-8中的任何一个的主题可以可选地包括,其中处理电路在特定于控制设备的处理核上施行。

在示例10中,示例1-9中的任何一个的主题可以可选地包括,其中处理电路在两个或更多处理核之间分布。

示例11包括诸如包括指令的机器可读介质之类的主题,所述指令当在机器(诸如控制设备、平面间控制设备、控制平面处理器、计算设备、NIC卡等)上施行时使得机器检测在交换机接口处接收到的多个分组串流的特性,其中特性包括基于预计要由相应分组串流使用的中央处理单元(CPU)周期的数目的所述多个分组串流中的相应分组串流是否是简单的分组串流;并且基于所述多个分组串流的所检测到的特性而在硬件交换机与软件数据平面组件之间分发所述多个分组串流,使得所述多个分组串流中的简单的分组串流被分发到硬件交换机。

在示例12中,示例11的主题可以可选地包括另外的指令,以使机器检测对应于所述多个分组串流的网络上的业务负载数据;并且基于业务负载特性而向所述一个或多个硬件交换机引导一个或多个分组串流。

在示例13中,示例11-12中的任何一个的主题可以可选地包括另外的指令,以使得机器基于所检测到的业务负载特性而检测分组处理工作负载已经落至阈值以下;并且响应于所述检测而命令至少一个处理核进入睡眠模式。

在示例14中,示例11-13中的任何一个的主题可以可选地包括指令,以使得机器基于存储在对应于所述至少一个硬件交换机的三元内容可寻址存储器(TCAM)中的规则而向至少一个硬件交换机分发至少一个分组串流。

在示例15中,示例14的主题可以可选地包括,其中规则基于用于根据所检测到的业务负载特性而在TCAM中存储规则的算法而存储在TACM中。

示例16包括一种机构(例如硬件交换机、固定逻辑硅交换机等),机构包括用于接收多个分组串流的入口端口;与控制设备通信的控制接口;以及与一个或多个数据平面处理器通信的数据平面接口,其中硬件交换机配置成通过控制接口接收所述多个分组串流中的哪些分组串流被指派由硬件交换机处理的指示。

示例17包括示例16的主题,并且可选地其中,硬件交换机还配置成通过控制接口向控制设备提供能力信息。

示例18包括示例16-17中的任何一个的主题,并且可选地其中,硬件交换机还配置成接收硬件提示以命令硬件交换机向目标处理核引导分组以用于处理对应的分组串流。

示例19包括主题,主题包括一种方法,方法包括检测在交换机接口处接收到的多个分组串流的特性;以及基于所述多个分组串流的所检测到的特性而在一个或多个硬件交换机与一个或多个软件数据平面组件之间分发所述多个分组串流。

在示例20中,示例19的主题可以可选地包括向所述一个或多个硬件交换机中的相应一个提供提示字段,所述提示字段包括关于响应于接收到数据分组而由所述一个或多个硬件交换机中的所述相应一个采取的行动的信息。

在示例21中,示例19-20中的任何一个的主题可以可选地包括,检测针对所述一个或多个硬件交换机的能力信息;以及至少部分地基于针对所述一个或多个硬件交换机的能力信息而分发所述多个分组串流。

在示例22中,示例19-21中的任何一个的主题可以可选地包括,基于预计要由相应分组串流使用的中央处理单元(CPU)周期的数目而检测所述多个分组串流中的哪些是简单的分组串流,以生成一组简单的分组串流;以及在所述一个或多个硬件交换机之间分发该组简单的分组串流。

以上的详细描述包括对附图的参考,附图形成详细描述的部分。附图通过图示的方式示出可以实践的具体实施例。这些实施例在本文中还称为“示例”。这样的示例可以包括除了所示出或描述的那些元件之外的元件。然而,还设想到的是包括所示出或描述的元件的示例。而且,还设想到的是使用关于特定示例(或其一个或多个方面)或关于本文所示出或描述的其它示例(或其一个或多个方面)所示出或描述的那些元件(或其一个或多个方面)的任何组合或置换的示例。

在本文档中提到的公开物、专利和专利文档通过引用以其整体并入本文,就像通过引用单独并入一样。在本文档与通过引用这样并入的那些文档之间的不一致使用的情况下,所并入的(一个或多个)参考文献中的使用补充本文档的使用;对于不可调和的不一致,本文档中的使用进行支配。

在本文档中,使用术语“一”或“一个”,如在专利文档中常见的,以包括一个或多于一个,其独立于“至少一个”或“一个或多个”的任何其它实例或使用。在本文档中,术语“或”用于指代非排他性的或,使得“A或B”包括“A但非B”、“B但非A”和“A和B”,除非另行指示。在随附权利要求中,术语“包含”和“在其中”被用作相应术语“包括”和“其中”的简明英语等同物。而且,在后面的权利要求中,术语“包含”和“包括”是开放式的,也就是说,包括除了在权利要求中的这样的术语之后列出的那些之外的元件的系统、设备、制品或过程仍旧被视为落在该权利要求的范围内。而且,在后面的权利要求中,术语“第一”、“第二”和“第三”等仅仅用作标记,并且不意图暗示针对其对象的数字次序。

以上描述意图是说明性的,而非限制性的。例如,以上描述的示例(或其一个或多个方面)可以与其他示例组合地使用。其它实施例可以诸如由一个本领域普通技术人员在仔细研究了以上描述后使用。摘要允许读者快速查明技术公开的本质,并且以以下理解来提交:其将不用于解释或限制权利要求的范围或含义。而且,在以上具体实施方式中,各种特征可以成组在一起以流线化本公开。然而,权利要求可以不阐述本文所公开的特征,因为实施例可以包括所述特征的子集。另外,实施例可以包括比在特定示例中公开的那些特征更少的特征。因此,后面的权利要求由此并入到具体实施方式中,其中权利要求独立作为分离的实施例。本文所公开的实施例的范围要参考随附权利要求连同这样的权利要求被授予的等同物的完整范围来确定。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1