基于FPGA的OpenFlow多维数据匹配查找方法技术

技术编号:19544706 阅读:40 留言:0更新日期:2018-11-24 20:46
本发明专利技术涉及基于FPGA的OpenFlow多维数据匹配查找方法。将匹配域关键字作为行地址,规则索引为列地址的二维数组结构,通过并行及流水化处理方式实现高效的匹配域分类查找方法及系统,其在可以实现高速查找的同时,支持动态高效数据更新,支持多域长字段的扩展,支持掩码匹配查找,可以满足将来匹配域再扩展的需求。基于FPGA硬件实现,在满足高效规则查找的同时也卸载了软件对规则更新处理的功能,弥补了软件处理效率低的问题以及TCAM器件无法高效更新的不足。

OpenFlow Multidimensional Data Matching Search Method Based on FPGA

The invention relates to an OpenFlow multidimensional data matching and searching method based on FPGA. The matching domain keywords are used as row addresses and the rule index is a two-dimensional array structure of column addresses. The efficient matching domain classification search method and system are realized by parallel and pipeline processing. It can achieve high-speed search, support dynamic and efficient data updating, support the expansion of multi-domain long fields and support mask. Matching lookup can satisfy the need of extending the matching domain in the future. Based on the hardware implementation of the FPGA, the function of rule updating is uninstalled while satisfying efficient rule searching, which makes up for the low efficiency of software processing and the insufficiency of TCAM device updating.

【技术实现步骤摘要】
基于FPGA的OpenFlow多维数据匹配查找方法
本专利技术涉及互联网数据报文分类查找,具体涉及报文的多数据域表项的分类查找方法。
技术介绍
随着网络链路处理速率的不断增长以及分类规则的不断复杂多样,报文的分类查找速率成为制约网络数据处理速率的瓶颈,此时软件实现已经无法满足高性能数据处理的需求,只能寻求硬件的解决方案,而三态内容寻址存储器(TernaryContentAddressableMemory-TCAM),虽然查找处理速率可以满足需求,但其具有存储面积大、价格高、功耗大及不支持高效的数据更新的缺点。然而FPGA支持结构可重构和数据并行处理的优点兼顾了软件的灵活性及硬件的高效性,基于FPGA实现报文分类查找算法成为了开发者研究的焦点。另外,近几年随着软件定义网络(SoftwareDefinedNetwork,SDN)的兴起,使得SDN的处理架构已经逐渐成为了企业级网络的新型处理架构。SDN的核心技术OpenFlow是通过将网络设备划分为基于软件的控制平面与基于硬件的数据平面,从而实现了网络流量的灵活控制。在OpenFlow中查找流表为其核心的功能之一,流表由很多个流表项组成,每个流表项为一条转发规则。进入网络设备的数据流通过查询流表来获得转发的控制信息。OpenFlow规范(V1.0、V1.1、V1.2、V1.3)规定流表项由匹配域、计数器和操作组成;其中匹配域为多元组(V1.0为12元组,V1.3扩展到了39元组),是流表项的标识;计数器用来计数流表项的统计数据;操作域用于标明与该流表项匹配的数据包应该执行的操作。OpenFlow处理过程中,通过将数据流与流表中的流表项匹配,从而决定转发的动作,其需要多域进行查找匹配,获得最优的匹配流表项。随着OpenFlow的流表项匹配域长度和维数的扩展以及网络设备对高速处理速率的要求不断提升,传统的查找算法已经无法满足对多维长字段的高速处理要求。
技术实现思路
针对OpenFlow规范要求及多维匹配域的特点,本专利技术特提出一种基于二维数组存储流表标识的OpenFlow查找分类方法,以克服OpenFlow复杂规则查表及更新效率低、扩展复杂的问题。本专利技术提出一种通过二维数组存储流表标识,其中将匹配域关键字作为行地址,规则索引为列地址的二维数组结构,通过并行及流水化处理方式实现高效的匹配域分类查找方法及系统,其在可以实现高速查找的同时,支持动态高效数据更新,支持多域长字段的扩展,支持掩码匹配查找,可以满足将来匹配域再扩展的需求。本专利技术是通过具体实现方案如下:将流表的匹配域根据具体情况进行切分(比如根据FPGA存储RAM块的大小进行切分),切分为多个字段,每个字段作为不同二维数组的地址,其中将匹配域关键字作为行地址,列地址为查找的匹配域的Action索引。插入时,针对匹配域及Action索引值将指定的二维数组域赋值为1,删除时根据Action索引值将表项状态寄存器(TSR)赋值为0;查找时,根据各匹配域查找的结果匹配索引值最高且二维数据域标识为1的结果进行输出。软件下发规则,具体为:软件使用与硬件协商好的规则优先配置地址,将匹配域、掩码以及规则索引下发给硬件(0号索引优先级最高);硬件根据匹配域的切分规则将匹配域及掩码域切分为多个不同的字段,硬件根据匹配域及掩码计算二组数组的更新地址,将不同的字段计算的更新地址作为不同二组数组域的行地址,索引值作为列地址并行对多个不同二组数组存储域进行更新插入;删除时,软件只需按与硬件协商的格式下发需删除规则的索引值即可。硬件会根据索引值更新表项的状态寄存器将其对应位置置为0;查找时,硬件将提取的匹配域关键字进行切分,将切分的多个不同关键字字段作为行地址并行查找各自对应的二维数组,获得对应行的所有列数据的一维数组,即对应的规则索引有效标识位;将各关键字段获得的列数据进行与操作,获得满足各关键字段的索引有效标识位;根据索引标识位查找优先级最高的索引标识位,从而得到最高优先级Action索引,将其输出。另外,本专利技术通过将OpenFlow的匹配域进行切分,结合FPGA并行处理的特点,并行的处理每个匹配字段,并在查找时采用流水化的处理方式以实现快速匹配的目的。本专利技术还可以根据用户要求动态扩展此分类查找方法,使其支持更多流表表项。专利技术提出了一种通过二维数组存储表项索引的方式,通过并行及流水线处理的方式实现了高效的规则索引查找功能。另外,本专利技术基于FPGA硬件实现,在满足高效规则查找的同时也卸载了软件对规则更新处理的功能,弥补了软件处理效率低的问题以及TCAM器件无法高效更新的不足。附图说明图1本专利技术基本处理结构图;图2流表匹配域存储结构图;图3匹配域长度扩展实现结构图;图4规则扩展结构图;图5TCAM_FieldX*Y*Z*40整体实现结构图;图6TCAM_FieldX*Y*40整体实现结构图;图7配置地址格式图。具体实施方式本专利技术的核心在于根据用户需求,将OpenFlow匹配域进行切分,使用二维数组的存储方式,并行的进行规则更新及查找匹配,并采用流水化的方式实现多条数据流的规则匹配查找,从而实现高效快速的分类查找的目的。另外,此系统支持灵活的匹配域及流表表项的扩展能力,可满足将来匹配域扩展及流表表项扩展的需求。本专利技术是基于FPGA每个内嵌RAM块可配置成256*40的双端口RAM进行的说明,具体说明如下:参照图1,图1为本专利技术基本处理结构图,由于RAM块为256*40因此切分的匹配域关键字(Key)为8位,查找模块以8位Key为查找地址对表项进行访问,得到40位的规则的索引标识位,优先级选择器则根据优先级输出最高优先级的规则索引。参照图2,图2为流表匹配域的存储结构图,其为256*40的RAM存储块,在此可视为256*40的二维数组,其中行地址256个,为匹配域关键字(Key)字段;列地址为40个,为规则索引字段(Index)。图2将8位的Key作为地址查找RAM(Key=0111_1111),查找出的结果为此关键字段命中的40条规则的索引标识位(Index_Bitmap)为01_0A00_0005,其中第0,2,25,27,32位为1,表示该key匹配了上述5条规则。在实现时,本专利技术将索引0位的规则定义为最高优先级,因此索引0的规则为索引输出的查找命中规则索引。参照图3,若匹配域为多域长字段域则可以扩展其实现结构,具体实现如下所述:301:将多域长字段的匹配域关键字根据需求进行切分,在此是以8位为单位进行切分,切分完的Key并行的送给不同的8*40的查找模块。302:8*40的查找模块根据输入的Key并行查找规则的Index_Bitmap。303、304、305:将不同的合并级别的Index_Bitmap进行与操作。306:根据最终得到的Index_Bitmap选择出优先级最高的Index,将其Index结果输出。在处理过程中301、302、303、304、305及306进行了流水化处理,因此在多个关键字顺序到达时,只有一个关键查找的索引延时会比较长(最终的延时由合并与的层次相关),其它均可在一个时钟周期后输出结果,因此保证了查找匹配的查找速率。参照图4,若扩展规则数目,则可以通过扩展TCAM_BlockX*40模块实现,将不同的本文档来自技高网
...

【技术保护点】
1.基于FPGA的OpenFlow多维数据匹配查找方法,将流表的匹配域进行切分,切分为多个字段,每个字段作为不同二维数组的地址,其中将匹配域关键字作为行地址,列地址为查找的匹配域的Action索引,其特征在于,插入时,针对匹配域及Action索引值将指定的二维数组域赋值为1,删除时根据Action索引值将表项状态寄存器TSR赋值为0;查找时,根据各匹配域查找的结果匹配索引值最高且二维数据域标识为1的结果进行输出,其中:软件下发规则具体为:软件使用与硬件协商好的规则优先配置地址,将匹配域、掩码以及规则索引下发给硬件,0号索引优先级最高;硬件根据匹配域的切分规则将匹配域及掩码域切分为多个不同的字段,硬件根据匹配域及掩码计算二组数组的更新地址,将不同的字段计算的更新地址作为不同二组数组域的行地址,索引值作为列地址并行对多个不同二组数组存储域进行更新插入;删除时,软件只需按与硬件协商的格式下发需删除规则的索引值即可,硬件根据索引值更新表项的状态寄存器将其对应位置置为0;查找时,硬件将提取的匹配域关键字进行切分,将切分的多个不同关键字字段作为行地址并行查找各自对应的二维数组,获得对应行的所有列数据的一维数组,即对应的规则索引有效标识位;将各关键字段获得的列数据进行与操作,获得满足各关键字段的索引有效标识位;根据索引标识位查找优先级最高的索引标识位,从而得到最高优先级Action索引,将其输出。...

【技术特征摘要】
1.基于FPGA的OpenFlow多维数据匹配查找方法,将流表的匹配域进行切分,切分为多个字段,每个字段作为不同二维数组的地址,其中将匹配域关键字作为行地址,列地址为查找的匹配域的Action索引,其特征在于,插入时,针对匹配域及Action索引值将指定的二维数组域赋值为1,删除时根据Action索引值将表项状态寄存器TSR赋值为0;查找时,根据各匹配域查找的结果匹配索引值最高且二维数据域标识为1的结果进行输出,其中:软件下发规则具体为:软件使用与硬件协商好的规则优先配置地址,将匹配域、掩码以及规则索引下发给硬件,0号索引优先级最高;硬件根据匹配域的切分规则将匹配域及掩码域切分为多个不同的字段...

【专利技术属性】
技术研发人员:张彦龙徐东来肖智鹏
申请(专利权)人:湖南新实网络科技有限公司
类型:发明
国别省市:湖南,43

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

1