[发明专利]一种基于TCAM的路由查找系统及其方法有效

专利信息
申请号: 201710310664.1 申请日: 2017-05-05
公开(公告)号: CN107222401B 公开(公告)日: 2020-07-24
发明(设计)人: 张建伟;马万里;苗延楠;吴国强;滕飞 申请(专利权)人: 大连理工大学
主分类号: H04L12/701 分类号: H04L12/701;H04L12/743;H04L12/751;G06F12/08
代理公司: 大连星海专利事务所有限公司 21208 代理人: 王树本
地址: 116024 辽*** 国省代码: 辽宁;21
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 tcam 路由 查找 系统 及其 方法
【权利要求书】:

1.一种基于TCAM的路由查找系统,包括容量为N个条目的TCAM模块1、容量为M个条目的TCAM模块2、具有N个输入端的编码器,具有M个输入端的优先级编码器,两输入选择器和两输入或门,所述TCAM模块1的N个输出端分别与编码器的N个输入端一一对应相连,所述TCAM模块2的M个输出端分别与优先级编码器的M个输入端一一对应相连,所述编码器的输出端与两输入选择器的“1”端相连,所述优先级编码器的输出端与两输入的选择器的“0”端相连,所述TCAM模块1输出的匹配标志1与两输入选择器的选择端相连,所述TCAM模块1输出的匹配标志1和TCAM模块2输出的匹配标志2分别与两输入或门相连,两输入选择器的输出端作为系统的匹配地址,两输入或门的输出端作为系统的匹配标志,所述N及M均为大于零的正整数,其特征在于,所述TCAM模块1中存放n1条第一层前缀,n1为大于零的正整数,存放的地址范围为[0,n1-1],前缀采用随机存放的方式,TCAM模块1的地址范围[n1,N-1]不存放前缀;在TCAM模块2的地址范围为[0,n2-1]的TCAM entry中存放n2条第二层前缀,TCAM模块2的地址范围为[n2,n2+ne1-1]放置ne1条未使用的TCAM entry,组成空闲空间1,ne1为大于零的正整数;在TCAM模块2的地址范围为[n2+ne1,n2+ne1+nO1-1]的TCAM entry中存放nO1条,长度为24~17的其他层的前缀,nO1为大于零的正整数,前缀按照前缀长度存放,前缀长度长的放在低地址,短的放在高地址;在TCAM模块2的地址范围为[n2+ne1+nO1,n2+ne1+nO1+ne2-1]的TCAMentry不存放前缀,组成空闲空间2,在TCAM模块2的地址范围为[n2+ne1+nO1+ne2,n2+ne1+nO1+ne2+nO2-1]的TCAM entry中存放nO2条长度为16~13的其它层前缀,前缀按照前缀长度存放,前缀长度长的放在低地址,短的放在高地址,TCAM模块2的地址范围为[n2+ne1+nO1+ne2+nO2,n2+ne1+nO1+ne2+nO2+ne3-1]的TCAM entry中不存放前缀,组成空闲空间3,TCAM模块2地址范围为[n2+ne1+nO1+ne2+nO2+ne3,M-1]的TCAM entry中存放M-(n2+ne1+nO1+ne2+nO2+ne3)条前缀长度为12~8的其他层前缀,前缀按照前缀长度存放,前缀长度长的放在低地址,短的放在高地址;如果前缀A和前缀B在同一分支上,也就是它们是互相重叠的前缀,并且前缀A的长度比前缀B的长度短,就称前缀A是前缀B的超集或者记作

2.根据权利要求1所述系统的一种基于TCAM的路由查找及更新方法,其特征在于,所述查找方法包括以下步骤:

步骤401、将待查找的目的IP同时送入TCAM模块1和TCAM模块2中,进行搜索;

步骤402、从编码器的输出端得到TCAM模块1的匹配地址,从优先级编码器的输出端得到TCAM模块2的匹配地址,从TCAM模块1的输出端得到匹配标志1,从TCAM模块2输出端得到匹配标志2;

步骤403、将TCAM模块1得到的匹配标志1送入选择器的选择端;

步骤404、将TCAM模块1得到的匹配地址的最高位前加标志位“1”,送入选择器“1”端,将TCAM模块2中得到的匹配地址的最高位前加“0”,送入选择器“0”端;

步骤405、从选择器输出端得到搜索的匹配结果,从或门输出端得到匹配标志;

所述更新方法包括插入和删除两部分,其中插入方法包括以下步骤:

步骤501、开始,准备好要插入的前缀;

步骤502、判断要插入的前缀是否应该插入到第一层前缀中,如果该前缀应该插入到第一层,则执行步骤503,否则执行步骤508;

步骤503、判断要插入的前缀在第一层前缀中是否存在超集P1,如果超集P1存在,则执行步骤504,如果不存在,则执行步骤511;

步骤504、判断前缀P1在第二层中是否存在超集P2,如果超集P2存在,则执行步骤506,如果不存在,则执行步骤505;

步骤505、将前缀P1插入到第二层前缀中;

步骤506、将前缀P2插入到其它前缀层中;

步骤507、将前缀P1移动到前缀P2在移动之前的位置;

步骤508、如果要插入的前缀应该插入到第二层,则执行步骤509,否则执行步骤511;

步骤509、判断被插入前缀在第二层是否存在超集P2,如果存在,则执行步骤510,如果不存在,则执行步骤511;

步骤510、将前缀P2插入到其它层;

步骤511、在相应的前缀层插入目标前缀;

步骤512、记录前缀数量和位置的变化;

步骤513、结束此次前缀插入操作;

所述删除方法包括以下步骤:

步骤601、开始删除过程,准备好被删除的前缀;

步骤602、判断被删除前缀是否位于第一层,如果被删除前缀位于第一层,则执行步骤603,否则执行步骤609;

步骤603、判断被删除前缀在第二层中是否有超集P2,如果超集P2存在,则执行步骤604,如果超集P2不存在,则执行步骤613;

步骤604、判断前缀P2在第一层前缀中有无与被删除前缀不同的子集,如果子集存在,则执行步骤613,如果不存在子集,则执行步骤605;

步骤605、将前缀P2移动到被删除的前缀的位置处;

步骤606、判断前缀P2在其它层前缀中是否有超集P3,如果超集P3存在,则执行步骤607,如果超集P3不存在,则执行步骤613;

步骤607、判断前缀P3在第二层前缀中是否存在与前缀P2不同的子集,如果存在,则执行步骤613,如果不存在,则执行步骤608;

步骤608、将前缀P3移动到前缀P2的位置;

步骤609、判断被删除前缀是否位于第二层中,如果位于第二层前缀中,则执行步骤610,否则执行步骤613;

步骤610、判断被删除前缀在其他层中是否存在超集P3,如果存在,则执行步骤611,如果不存在,则执行步骤613;

步骤611、判断前缀P3在第二层前缀中有无与被删除前缀不同的子集前缀,如果该子集存在,则执行步骤613,如果不存在,则执行步骤612;

步骤612、将前缀P3移动到被删除前缀的位置处;

步骤613、删除目标前缀;

步骤614、记录前缀位置和数量的变化;

步骤615、结束此次删除操作。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连理工大学,未经大连理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710310664.1/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top