【技术实现步骤摘要】
将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地址)、Ds ...
【技术保护点】
【技术特征摘要】
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)软件,其中,所述软件...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。