一种FPGA结合TCAM实现智能网卡的方法技术

技术编号:32752887 阅读:10 留言:0更新日期:2022-03-23 18:48
本发明专利技术公开了一种FPGA结合TCAM实现智能网卡的方法,以OpenFlow流表卸载为基础,直接取缔Megaflow流表和Microflow流表,从而很大程度上减少了流表项的个数,并且利用TCAM存储OpenFlow表以及对应的执行动作,把这部分工作从FPGA剥离出来,从而解决了OVS全卸载的智能网卡的传统设计的缺陷。网卡的传统设计的缺陷。网卡的传统设计的缺陷。

【技术实现步骤摘要】
一种FPGA结合TCAM实现智能网卡的方法


[0001]本专利技术属于智能网卡
,更具体地,涉及一种FPGA结合TCAM实现智能网卡的方法。

技术介绍

[0002]SDN是网络信息化时代进化的一个阶段产物。OVS是SDN领域其中的重要的应用。网络运营商可借助OVS实现私有云,公有云的网络通路。OVS不仅支持各种网络协议,还提供了丰富的网络功能,灵活度高,可移植性强。但由于OVS是由软件层面实现的,且依赖Linux内核,导致性能低下。随着虚拟机数量的增加,每个虚机对网络的特性和性能都有不同的要求,需要把软件实现的网络特性卸载到底层硬件,优化数据流通路以提高网络通信性能,因此智能网卡的概念随之诞生。智能网卡不仅要满足普通网卡的功能也要满足对SDN定义的网络特性的支持。如何设计智能网卡的系统结构是最核心的问题。
[0003]业界提出支持网络特性卸载的智能网卡主要有两种,半卸载和全卸载。全卸载的智能网卡的瓶颈在于,第一对网络特性支持的程度,第二在大量数据集中快速命中规则以加速网络通信的速度。因此提出用FPGA结合TCAM的方式,以解决全卸载智能网卡面临的第二个问题。目前业界提出了用多级cache的存储方式实现流表,即Megaflow表和Microflow表,以对流表项进行快速匹配和处理。它的瓶颈不言而喻,第一是流表的容量,第二是对流表的hash设计,第三是流表老化,流表更新频繁的问题。从系统架构上来说,结构几乎一致,如图1所示,由软件层的OpenFlow控制器管理OVSDB Server以及通过OVS-vswitchd下发流表项,OVS-vswitchd通过PCIe下发流表项到底层硬件。通过硬件加速路径和慢速数据路径,实现数据通路。硬件加速路径,即为 FPGA的硬件引擎已经知道一条数据流的流控动作,让这条数据流按照既定的动作执行下去,不需要和OVSDB或者更高的OpenFlow控制器交互确定动作是否在流表中存在。慢速路径,即为数据流在硬件加速路径上,FPGA的硬件引擎对这条数据流未知,则该数据流会通过系统调用,送到OVS的ofproto层去匹配相应的规则,若无相应的匹配项,则已连接的OpenFlow的控制器将识别这条数据流,并取得对未知数据流的处理结果送给OVS,软件层会下发优化后的流表项到硬件引擎,使得在数据路径上的相似的数据包执行后续相同的流动作。
[0004]从数据包流向的角度看,传统的全卸载网卡的结构如图2所示,数据包首先经过头解析器,再经过分类器对数据包分类,从而根据分类结果,由RTL逻辑生成的搜索数据到指定的Microflow流表里,进行流表项精确匹配,若匹配中,则按Microflow流表里的流表项对应的动作执行;若匹配未中,则到指定的Megaflow流表里,进行通配,若匹配中,则按Megaflow流表里的流表项指定的动作执行,并将翻译后的精确流表项和指定动作下发到Microflow流表里,若匹配不中,则进行系统调用,穿过内核到用户层,把这条流送给OVS软件层处理,通过软件层的数据头解析器,流分类器,访问OpenFlow流表,若匹配中,则更新Megaflow流表和Microflow流表以及其对应的动作,若匹配不中,则上报给OpenFlow的控制器,由控制器向OVS下发流表项。这种设计的弊端在于,对未知流来说,相关性越高,命中率
越高,流表更新频次低,相反地,相关性越低,命中率越低,会导致流表项的迅速增多,流表项老化速度快,系统调用以及流表更新频繁,会在不同程度上造成网络通信质量下降,卸载能力降低。虽然可以优化Megaflow流表和Microflow流表的设计结构以缓解流表更新频繁的问题,但始终治标不治本。
[0005]本专利技术提出设计方案以尝试解决多级cache流表设计带来的流表更新频繁,卸载能力低下的问题,新的设计将把流表匹配的工作从FPGA里剥离出来,交给TCAM处理,从而替代了存储流表项的多级cache存储结构,不但简化了硬件设计,而且大量减少了流表项的数量,加速了流匹配的速度。

技术实现思路

[0006]本专利技术的目的是提出一种FPGA结合TCAM实现智能网卡的方法,该方法以OpenFlow流表卸载为基础,直接取缔Megaflow流表和Microflow流表,从很大程度上减少了流表项的个数,并且利用TCAM存储OpenFlow表以及对应的执行动作,把这部分工作从FPGA剥离出来,从而解决了上述OVS全卸载的智能网卡的传统设计的缺陷。
[0007]为实现上述专利技术目的,本专利技术提出的技术方案如下:一种FPGA结合TCAM实现智能网卡的方法,所述方法包括:步骤一,主机应用程序在TCAM上创建多个卸载的OpenFlow流表,为OpenFlow控制器实现操作流表的接口,一旦流表项进入TCAM,FPGA能够访问所述流表项;步骤二,当接收到数据流时,数据流进入快速通路,即数据流通过头解析器,再经过分类器对所述数据流中的数据包进行分类,RTL逻辑将使用适当的数据包解析方法生成相应的数据包流,所述数据包流作为搜索数据进入TCAM,在所述卸载的OpenFlow流表进行匹配搜索后,得到所述数据包流的关联信息,所述关联信息为处理所述数据包流的后续动作,然后执行所述动作;步骤三,如果在所述卸载的OpenFlow流表进行匹配搜索后,没有得到所述数据包流的关联信息,则判定所述数据流为未知数据流,进入慢通路,所述未知数据流被反馈到所述OpenFlow控制器,由所述OpenFlow控制器决定对所述未知数据流的处理结果,并通过vswitchd把生成的流表项下发给TCAM,后续类似的数据流即可快速通过。
[0008]进一步地,用软件实现OpenFlow控制器操作OpenFlow流表的接口。
[0009]进一步地,所述数据包流在所述卸载的OpenFlow流表进行匹配搜索的过程为:所述数据包流与一个或多个所述卸载的OpenFlow流表进行匹配,最后从TCAM输出匹配到的所述关联信息。
[0010]本专利技术利用FPGA结合TCAM的方式完成OVS全卸载的智能网卡设计方案,利用TCAM的独有特性实现卸载的OpenFlow表,完全消除Megaflow流表和Microflow流表,减少了大量流表项,把流表处理的工作全权交给TCAM,从FPGA设计里剥离出来,简化了网卡系统设计,加速了流表项的搜索。
附图说明
[0011]图1为现有技术的智能网卡数据通路示意图;图2为现有技术的智能网卡网络数据包流控示意图;
图3为根据本专利技术的智能网卡网络数据包流控示意图;图4为根据本专利技术的智能网卡生成的数据流在TCAM运行示意图;图5为根据本专利技术的智能网卡设计总览示意图。
具体实施方式
[0012]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互结合。
[0013]图3为根据本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种FPGA结合TCAM实现智能网卡的方法,其特征在于所述方法包括:A.主机应用程序在TCAM上创建多个卸载的OpenFlow流表,为OpenFlow控制器实现操作流表的接口,一旦流表项进入TCAM,FPGA就能够访问所述流表项;B.当接收到数据流时,数据流进入快速通路,即数据流通过头解析器,再经过分类器对所述数据流中的数据包进行分类,RTL逻辑将使用适当的数据包解析方法生成相应的数据包流,所述数据包流作为搜索数据进入TCAM,在所述卸载的OpenFlow流表进行通配搜索后,得到所述数据包流的关联信息,所述关联信息为处理所述数据包流的后续动作,然后执行所述动作;C.如果在所述卸载的OpenFlow流表进行通配搜索后,没有得到所述数据...

【专利技术属性】
技术研发人员:王娜张远超卢笙陈盈安
申请(专利权)人:芯启源南京半导体科技有限公司
类型:发明
国别省市:

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

1