[发明专利]一种基于TCAM实现多命中的方法在审
| 申请号: | 201911106419.4 | 申请日: | 2019-11-13 |
| 公开(公告)号: | CN110851672A | 公开(公告)日: | 2020-02-28 |
| 发明(设计)人: | 贾朋朋;刘凤新;陈伟峰;李灵侠 | 申请(专利权)人: | 天津光电通信技术有限公司 |
| 主分类号: | G06F16/903 | 分类号: | G06F16/903 |
| 代理公司: | 天津中环专利商标代理有限公司 12105 | 代理人: | 李美英 |
| 地址: | 300220*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 tcam 实现 命中 方法 | ||
1.一种基于TCAM实现多命中的方法,该方法控制TCAM的逻辑在基于FPGA的硬件平台上实现,其特征在于,步骤如下:
1)、收到的数据包pkg分别送到key_extract模块与pkg_filter模块,其中,key_extract模块负责从数据包中提取待搜索的key,通常该key为数据包中的IP五元组;pkg_filter模块会将收到的数据包进行缓存,因为此时还未对当前包进行搜索,并不知道如何对当前包进行处理,即是否舍弃;
2)、key_extract模块将从数据包中提取的key送至TCAM,TCAM会将此key与在数据库database中事先存储的规则rule进行对比,如果key值与rule值相等,则表明当前待搜索的数据包中有关心的信息存在,从而TCAM返回命中的结果;
TCAM中的uda字段,是用户可自定义的字段,与每一条规则一一对应,即当TCAM返回命中结果的同时,会将事先定义好的uda字段一并返回,其核心就在于此,通过利用TCAM中用户可自定义的uda字段,来告知FPGA内部逻辑在当前包命中后该如何去做;
3)、规定uda字段中包含两个字,一个字为rule_id表示规则的ID号,一个字为multi_match表示当前包实则命中了多条规则;pkg_filter模块接收TCAM返回的响应结果,并根据响应结果决定如何对先前缓存的数据包进行处理,如若TCAM返回未命中的结果,pkg_filter模块会将缓存的数据包丢掉;如若TCAM返回了命中的结果,pkg_filter会根据uda字段中的multi_match字将包复制多份,即产生多个命中结果;复制多份的原则是,multi_match字中的每个位表示有另外一条规则也会命中,故pkg_filter模块根据multi_match中的各个比特位是否为1决定rule_id加多少,比如,TCAM返回的uda={rule_id=255,multi_match =’b0000_0000_1111_1111},那么pkg_filter在读到multi_match中最低8个位为1时,便会将命中的包复制8份,并分别赋以255+0、255+1、255+2、255+3、255+4、255+5、255+6、255+7的不同ID号给新复制的8个包,用以标识有8条不同的规则实则都命中了当前包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津光电通信技术有限公司,未经天津光电通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911106419.4/1.html,转载请声明来源钻瓜专利网。





