当前位置: 首页 > 专利查询>英特尔公司专利>正文

将OPENVSWITCH兆流卸载扩展到硬件以解决硬件管线限制制造技术

技术编号:33371229 阅读:19 留言:0更新日期:2022-05-11 22:36
用于将OpenvSwitch(OVS)兆流卸载扩展到硬件以解决硬件管线限制的方法和装置。在计算平台上实现的方法下,在OVS软件中采用分组的微流字段的子集创建新的兆流连同掩码,该计算平台包括具有一个或多个端口的网络接口控制器(NIC)并运行包括OVS软件的软件和具有内核的Linux操作系统,所述内核包括TC

【技术实现步骤摘要】
将OPENVSWITCH兆流卸载扩展到硬件以解决硬件管线限制

技术介绍

[0001]OpenvSwitch(OVS)是用开源软件实现的生产质量多层虚拟交换机。OVS在软件中提供完整的切换功能,以及到NIC(网络接口卡/控制器)的硬件卸载解决方案。OVS被各种云软件提供商用作卸载裸机和虚拟解决方案,在该解决方案下,切换逻辑移至NIC以更好地使用核心和更好的系统性能。
[0002]OVS的当前实现支持使用Linux内核TC

flower机制的两种卸载。“TC

flower”是分组分类器,被实现为Linux内核中的模块以及内核TC子系统(包括TC数据路径)的一部分。(它被称为TC
‑“
flower”是因为TC

flow已经被占用了。)一种类型的卸载是“微流”卸载,它卸载用于对OVS表中支持的分组或流进行分类的所有字段。因此,对于每个丢失的或新的分组(例如,新的流中的第一分组),安装不同的流。第二卸载是“兆流(megaflow)”卸载,它仅卸载通配符或匹配丢失分组的字段的子集,因此支持更大数量的分组/流以匹配相同的兆流。OVS将这些卸载的流发送到内核TC

flower模块,该内核TC

flower模块创建新的兆流并将该新的兆流传递给NIC驱动程序以卸载到硬件。
[0003]微流包含可以被卸载的分组的所有字段,即使当值为0时。当丢失的分组进来时,它在所有字段上匹配。7元组微流的示例是:Src Mac(源MAC地址)、Dst Mac(目标MAC地址)、Eth(以太网)类型、Src IP(源互联网协议地址)、Dst IP(目标IP地址)、Src端口、Dst端口。
[0004]兆流包括在硬件中匹配的这些字段的子集。对于7元组微流,兆流将是一个或多个字段的组合:例如,Src IP/掩码、Dst IP/掩码。
[0005]这种实现方式存在一些问题。微流卸载创建了太多的流—类似类型的每个分组一个,即使仅简单的掩码就可以容纳许多分组。例如,IP地址掩码不会被卸载,并且具有相同子网和类型中的IP地址的所有分组都将卸载不同的流,从而耗尽硬件中的存储器。微流卸载可能会创建数百万个流,因此需要针对所有这些流分别地维护内务处理计数器和统计信息,从而导致性能降低和开销增加。对于使用TC

flower的微流卸载,每个丢失的分组都必须到达用户空间而不是内核,从而导致性能显著下降。此外,兆流允许卸载所有字段上的掩码,但需要硬件中基于TCAM的通配符匹配,这是昂贵的。
附图说明
[0006]当结合附图时,本专利技术的前述方面和许多伴随的优点将变得更容易理解,因为通过参考以下详细描述可以更好地理解它们,其中相同的附图标记在各个视图中表示相同的部分,除非另有说明:
[0007]图1是示出根据一个实施例的实现平台的概览的架构的示意图;
[0008]图1a是示出图1的增强架构的示意图,图1的增强架构包括由各种软件和硬件组件实现的扩展和新的功能;
[0009]图2是示出采用TC

flower模块的分组处理路径的控制平面视图的图;
[0010]图3是示出根据一个实施例的包括创建新的兆流的用于处理分组的操作和逻辑的流程图;
[0011]图4是示出根据一个实施例的用于实现流添加功能的操作和逻辑的流程图;
[0012]图5是示出根据一个实施例的用于实现流删除功能的操作和逻辑的流程图;
[0013]图6是示出根据一个实施例的用于实现用于接收分组功能的修改的数据路径流的操作和逻辑的流程图;以及
[0014]图7是可以用本文描述和图示的实施例的各方面来实现的平台或服务器系统的图。
具体实施方式
[0015]本文描述了用于将OpenvSwitch兆流卸载扩展到硬件以解决硬件管线限制的方法和装置的实施例。在以下描述中,阐述了许多具体细节以提供对本专利技术实施例的透彻理解。然而,相关领域的技术人员将认识到,本专利技术可以在没有一个或多个具体细节,或者用其它方法、组件、材料等的情况下来实践。在其它实例中,公知的结构、材料或操作未详细示出或描述以避免模糊本专利技术的各方面。
[0016]在整个说明书中对“一个实施例”或“实施例”的引用意味着结合实施例描述的特定特征、结构或特性包含于本专利技术的至少一个实施例中。因此,在本说明书各处出现的短语“在一个实施例中”或“在实施例中”不一定都指代相同的实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
[0017]为清楚起见,本文图中的各个组件也可以通过它们在图中的标签来表示,而不是通过特定的附图标记来表示。此外,涉及特定类型组件(与特定组件不同的)的附图标记可以显示为后跟“(typ)”表示“典型”的附图标记。应当理解,这些组件的配置将是可能存在但为了简单和清楚而未在附图中示出的类似组件或未用单独的附图标记进行标记的类似组件的典型。相反,“(typ)”不应被解释为表示组件、元件等通常用于其公开的功能、实现、目的等。
[0018]根据本文公开的实施例的各方面,提供了用于将OpenvSwitch兆流卸载扩展到硬件以解决硬件管线限制的解决方案。在一个方面,该解决方案的实施例通过在兆流卸载中提供灵活性来将流中卸载的字段的控制从OVS移动到NIC驱动程序。在这种模式下几乎没有变化,OVS可以将所有字段连同针对所有或所选字段的适用掩码发送到内核TC

flower模块。在一个实施例中,OVS还根据掩码计算字段并将字段的子集发送到TC

flower模块。Linux中的TC

flower模块适用于支持这种新的模式,包括用于计算和存储TC

flower模块中的字段的子集以实现新的兆流的功能。TC

flower模块还将所有字段连同掩码向下发送到NIC驱动程序。一旦NIC驱动程序接收到所有字段,它就可以决定如何向下分解流以使其更适合NIC硬件。
[0019]该解决方案提供优于现有TC

flower实现方式的若干优点。例如,代替受到OVS当前支持的两种兆流和微流卸载模式的限制,这两种模式都没有提供最佳卸载解决方案,NIC供应商可以使用该模型将字段的决策制订转移到它们的NIC驱动程序。在这种情况下,由于OVS和TC层将只保存兆流,因此存储器利用率和性能将得到提高。例如,统计信息和计数器(OVS中的重新的验证器线程)将仅针对兆流(以10K为单位)而不是数百万个微流运行。此外,随着TC层的一些变化,丢失的分组可以匹配TC

flower中的兆流,并且可以从内核卸载而不是上升到用户空间。
[0020]图1示出了根据一个实施例的架构100,架构100示出了实现平台的概览。架构100包括硬件层102,硬件层102包括智能NIC(又名SmartNIC)104和软件层106,软件层1本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在计算平台上实现的方法,所述计算平台包括网络接口控制器(NIC)并且运行包括OpenvSwitch(OVS)软件的软件,所述网络接口控制器具有一个或多个端口,所述方法包括:在所述OVS软件中采用分组的微流字段的子集来创建新的兆流连同掩码;以及在所述NIC上使用所述微流字段的至少一部分采用分组匹配方案创建新的硬件流。2.根据权利要求1所述的方法,其中,所述软件包括具有内核的Linux操作系统,所述内核包括业务分类(TC)

flower模块和NIC驱动程序,所述方法还包括:将所述微流字段和兆流掩码信息发送到所述TC

flower模块;在所述TC

flower模块处,根据所述微流字段和所述兆流掩码信息来计算针对所述兆流匹配所需的字段的子集,并且存储对应的匹配规则;以及将所述微流字段和所述兆流掩码信息从所述TC

flower模块发送到所述NIC驱动程序。3.根据权利要求1或2所述的方法,其中,所述NIC包括硬件管线,所述硬件管线被配置为执行对属于卸载到硬件的流的分组进行的分组处理,所述方法还包括在所述硬件管线中对所述新的硬件流进行编程。4.根据前述权利要求中的任一项所述的方法,其中,所述软件包括具有内核的Linux操作系统,所述内核包括NIC驱动程序,其中,所述NIC包括硬件管线,并且其中,所述NIC驱动程序采用所述微流字段的子集来实现新的兆流。5.根据前述权利要求中的任一项所述的方法,其中,所述软件包括具有内核的Linux操作系统,所述内核包括NIC驱动程序,所述方法还包括通过执行包括以下的操作来删除源自所述OVS软件的流:将针对兆流的流删除从所述OVS软件发送到所述NIC驱动程序;以及经由所述NIC驱动程序删除所述NIC上的与所述兆流相关联的所有硬件流。6.根据前述权利要求中的任一项所述的方法,其中,所述软件包括具有内核的Linux操作系统,所述内核包括NIC驱动程序,所述方法还包括通过执行包括以下的操作来删除源自所述NIC的硬件流:将硬件流删除从所述NIC发送到所述NIC驱动程序;以及在所述NIC驱动程序处,删除所述硬件流并且对到相关联的兆流的任何硬件流映射进行解引用。7.根据权利要求6所述的方法,其中,所述硬件管线包括硬件流表,并且对所述新的硬件流进行编程包括使用所述微流字段的至少一部分在所述硬件流表中创建新的硬件流表条目。8.根据权利要求7所述的方法,其中,所述硬件管线包括TCAM(三元内容可寻址存储器)或TCAM/WCM(通配符匹配)组件,并且其中,对所述新的硬件流进行编程包括在所述TCAM或TCAM/WCM组件中采用掩码来创建新的条目,所述掩码与未包含于所述微流字段中的用于所述新的硬件流表条目的部分中的至少一个字段相关联。9.根据权利要求1所述的方法,所述软件包括具有内核的Linux操作系统,所述内核包括业务分类(TC)

flower模块和NIC驱动程序,所述方法还包括:在所述NIC上的第一端口处接收第一分组;检测到所述第一分组不属于当前硬件流;
将所述分组从所述NIC转发到所述TC

flower模块;以及在所述TC

flower模块处,基于与所述兆流相关联的兆流规则使用软件将所述第一分组与兆流匹配,并且转发待处理的第一分组;以及扩展TC数据路径以经由在所述TC

flower模块上的到所述NIC驱动程序的接口将微流规则添加到所述NIC。10.根据权利要求9所述的方法,还包括:在所述NIC的第一端口处接收第二分组,所述第二分组与所述第一分组属于同一流;在所述NIC上匹配所述第二分组;以及在所述NIC上采用新的微流规则执行对所述分组的处理。11.一种计算平台,包括:耦合到存储器和网络接口控制器(NIC)和存储设备的处理器,网络接口控制器(NIC),其包括一个或多个端口,并且被配置为支持使用硬件管线对分组处理的硬件卸载,并且所述硬件管线包括硬件流表和TCAM(三元内容可寻址存储器);以及驻留在所述存储器和所述存储设备中的至少一个中的软件,所述软件包括多个软件组件,所述多个软件组件被配置为在所述处理器上执行,所述处理器包括具有内核的Linux操作系统,所述内核包括业务分类(TC)

flower模块和OpenvSwitch(OVS)软件,其中,所述软件...

【专利技术属性】
技术研发人员:N
申请(专利权)人:英特尔公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1