一种路由转发表地址查找引擎装置的制作方法

文档序号:6623869阅读:206来源:国知局

专利名称::一种路由转发表地址查找引擎装置的制作方法
技术领域
:本发明涉及数据通信领域,尤其涉及一种路由转发表地址查找引擎装置。
背景技术
:以太网交换机的二层交换(以太网交换)采用硬件转发,为减少以太网包广播带来的网络传输开销,MAC地址表的生成多采用MAC地址学习机制。多数支持三层交换的以太网交换机都根据路由表生成一个路由转发表,将路由转发表交给各个线路接口卡,线路接口卡利用路由转发表来转发分组。为了适应Internet发展对支持三层交换的以太网交换机性能的要求,支持三层交换的以太网交换机需要采用高速的路由转发表查找机制。为了实现路由转发,需要查找路由转发表、默认路由表、路由转发接口表,完成下面的功能根据目的IP地址对路由转发表进行检索,如果找到了匹配,则取出对应条目包含的下一跳MAC地址、输出端口号以进行转发;如果不匹配,而且系统中没有设置默认路由表,则将数据包送往CPU;如果系统中设置了默认路由表,则将目的IP地址和默认路由表的子网掩码进行逻辑与,并检查是否与IP地址匹配,如果有多个匹配,则选取具有最长子网掩码位的条目作为匹配项。如果在该匹配项中设置了CPU位,则传输数据包的一份拷贝到CPU以进行地址解析,没有匹配的送给CPU进行处理;重新计算数据包的IP校验,改变目的MAC地址为下一跳MAC地址,源MAC地址为对应的层三接口MAC地址;检查该包的输出端口是否需要标签。通过查找路由转发接口表,获得VLANID,再查找VTABLE获得标签规则,即获得该包的输出端口是否需要标签。关于路由转发表查找算法,目前常用的查表法有线性查表法(linearlookup)、二元树查表法(Binarytreelookup)及杂凑函数查表法(Hashingfunctionlookup)等,其中线性查表法是将存取地址同地址表的内容从头到尾一个一个比较,因没有效率已经很少使用;二元树查表法则是依据二分法逐步缩小查询范围来查表,因此效果比线性查表法好但是仍然无法达到以太网交换控制器的要求。另一种查表法为杂凑函数查表法(HASH算法),将其目的IP地址排序在一个大小固定的表格中,我们以一个数学函数h来代表目的地址,x在表中的地址(address),因此h(x)代表x在表中的地址,这个地址称之为x杂凑地址。用来存储目的IP地址表的存储器地址假设是连续的,这些存储器地址称之为杂凑表(hashtable)。而杂凑表被分为b个桶(buckets)ht,...,ht[b-1],每个桶中有s个纪录容量。因此我们称每个桶中有s个槽,每个槽刚好可以包含一个记录,通常,而每个桶中只含有一个记录,杂凑函数h(x)用来表示对目的IP地址x的转换。h(x)把一组可能的目的IP地址对应到整数0到b-1中。现有技术采用二分查找算法,路由转发表地址查找引擎装置中各模块的连接及功能如图3所示。采用二分查找算法,路由转发查表引擎的转发决策过程划分为3级流水线结构。第一级流水查询一个路由转发表的索引表,对于2K个条目深的路由转发表,该索引表含32个条目,指向2048条目的路由转发表的32个分界点;第二级流水线是根据查询路由转发表的索引表的查找结果进一步查找路由转发表,查找结束获得转发端口;该级流水线同时启动默认路由表的查找,查找成功获得转发端口;第三级流水线是根据查询路由转发表的结果查询路由转发接口表,根据查找结果进一步查找VTABLE表,确定该包的输出端口是否需要标签,最后获得转发决策送往出口规则模块。对路由转发表的检索,若采用二分查找算法可使用如下做法对2K条目深的路由转发表的检索采取二分查找算法进行,查找一次最坏情况下需要11次查找。系统需要同时对源IP地址和目的IP地址进行查找,即每个需要进行层三转发的包在最坏情况下需要对路由转发表进行22次查找。但系统中只有一个路由转发表,且每个数据包最多只能有14个左右的时钟周期进行检索,显然不能满足系统的需要。在此建立一个对路由转发表的索引表,32比特宽,32条目深,将路由转发表分成32个相等的空间,每个空间可以放置64个条目。该索引表的条目分别对应路由转发表的第64、128、192、...、2048条目,存放所对应路由转发表条目的IP地址值。对该索引表的检索也采用二分查找算法,最坏需要5次查找。通过对该索引表的检索缩小了对路由转发表的检索空间,控制在64个条目以内,最坏只需要6次查找。由于路由转发表和索引表是不同的表,在此可以进行流水线的查找,即完成一次路由转发表的检索最坏只需要6次查找。一个路由转发转发包在最坏情况下只需要对路由转发表进行12次查找,满足系统的需要。采用二分查找算法,路由转发表按IP地址的升序排列,搜索关键字是目的IP地址,CPU对路由转发表维护所耗费的时间比较长,增加或删除一个条目需要更新整张表。
发明内容本发明的目的是为了克服现有技术中使用二分查找算法查找引擎装置处理速度比较慢的缺点,而提出了一种路由转发表地址查找引擎装置。为了实现上述发明目的,本发明提出的一种路由转发表查找引擎装置包括状态机模块、源IP地址路由转发搜索引擎模块、目的IP地址路由转发表搜索引擎模块、默认路由表搜索引擎模块、路由转发表维护模块、默认路由表维护模块、路由转发接口表搜索引擎模块、路由转发接口表维护模块。状态机模块分别启动源IP地址路由转发表搜索引擎模块、目的IP地址路由转发表搜索引擎模块、默认路由表搜索引擎模块进行路由转发表搜索以获得转发信息。路由转发表维护模块、默认路由表维护模块、路由转发接口表维护模块分别对各自转发表进行维护。本发明所描述的路由转发表地址查找引擎装置,该装置采用并行流水线结构,采用HASH算法,用基于11比特的CRC算法进行路由转发表查找,路由转发地址表地址为SA,14比特位宽。基于11比特的CRC算法查表过程输入是IP[31:0],CRC生成式采用CRC-11:X11+X5+1HASH_RESULT[9:0]=CRC11[9:0],WhenIPtablesize=2K,HASH_RESULT[12:10]={IP[23:11],IP[10]};WhenIPtablesize=6K,HASH_RESULT[12:10]={IP[23:11],IP[10]}%3;WhenIPtablesize=8K,HASH_RESULT[12:10]={IP[23:11],IP[10]}%4;WhenIPtablesize=10K,HASH_RESULT[12:10]={IP[23:11],IP[10]}%5;WhenIPtablesize=14K,HASH_RESULT[12:10]={IP[23:11],IP[10]}%7;SA[13:1]=HASH_RESULT[12:0]采用HASH算法,路由转发查表引擎的转发决策过程划分为2级流水线结构第一级流水线是查询路由转发表,查找结束获得转发端口号;该级流水线同时启动默认路由表的查找,查找成功获得转发端口号;第二级流水线是根据查询路由转发表的结果查询路由转发接口表,以获取路由器MAC地址和VLANID。本发明所述的装置采用了并行流水线结构,采用HASH算法,与现有技术相比该只需要两级流水线,至多在19个时钟周期(125MHz系统时钟)内完成一个路由转发数据包的转发决策,查找速度块,而且可同时支持2K、6K、8K、10K、14K条目的路由转发地址表查表,同时还能节省一些硬件成本,以进行快速路由转发表查找,从而节省系统总体成本。图1采用二分查找算法的路由转发表查找引擎原理框图;图2采用HASH算法的路由转发表查找引擎原理框图;图3采用二分查找算法的路由转发表查找引擎实现框图;图4采用HASH算法的路由转发表查找引擎实现框图。具体实施例方式从图1可以清楚看出现有技术实现的装置的主要结构和数据流向,其采用三级流水线的结构,处理速度比较慢。下面介绍一款支持IP包转发的千兆位以太网交换芯片,其包括以下路由转发交换表路由转发表2K个表项深。对于目的地跨越VLAN边界、需要穿过路由器接口的数据包,用于得到其下一跳的MAC地址。默认路由表最大16个表项深。任何时候,如果没有在路由转发表中找到目的IP地址的匹配,则数据包被发往默认IP路由器。该表由默认路由器表项构成,每个表项对应一个IP子网(IPsubnet)。该表的格式与路由转发表类似,只不过该表还包含IP子网掩码(netmask)信息。如果有多个表项与一数据包匹配,则具有最大子网长度(SUBNET_LEN)值的表项起作用(最长前缀匹配)。由于对该表的查找不需要完全匹配,而是一种最长前缀的匹配,所以它又被称作LPMTABLE(longestprefixmatchtable)。路由转发接口表32个表项深,主要用来根据路由转发接口编号获取路由器MAC地址和VLANID。路由转发接口编号被当作该表的索引。从图2可以清楚看出本发明所述的装置的主要结构和数据流向,其采用二级流水线的结构,处理速度比较快。下面详细分析如下各个模块的具体实现方法,如图4所示。状态机模块分别用控制信号schr_13s_en、schr_13d_en、schr_defip_en启动源IP地址路由转发表搜索引擎模块、目的IP地址路由转发表搜索引擎模块、默认路由表搜索引擎模块,源IP地址路由转发表搜索引擎模块采用基于11比特的CRC算法实现HASH算法,用源IP地址schr_13s_ip路由转发表进行检索,从路由转发表维护模块读出数据13s_rd_data,如果找到了匹配,则对该条目打上标志。路由转发表维护模块用来对路由转发表进行增加、删除等维护操作。目的IP地址路由转发表搜索引擎模块采用基于11比特的CRC算法实现HASH算法,该模块用目的IP地址对路由转发表进行检索,从路由转发表维护模块读出数据13d_rd_data,如果找到了匹配,则取出对应条目包含的下一跳MAC地址、输出端口号以进行转发;如果不匹配,则默认路由表搜索引擎模块从默认路由表维护模块读出数据defip_rd_data,将目的IP地址和默认路由表的子网掩码进行逻辑与,并检查是否与IP地址匹配,如果有多个匹配,则选取具有最长子网掩码位的条目作为匹配项。默认路由表搜索维护模块用来对默认路由表进行增加、删除等维护操作。状态机模块改变目的MAC地址为下一跳MAC地址,源MAC地址为对应的层三接口MAC地址;检查该包的输出端口是否需要标签。状态机模块用控制信号schr_intf_en启动路由转发接口表搜索引擎模块,路由转发接口表搜索引擎模块根据路由转发接口编号检索路由转发接口表,从路由转发接口表维护模块读出数据intf_rd_data,获得VLANID,再查找VTABLE获得Tagrule,即获得该包的输出端口是否需要标签。路由转发接口表维护模块用来对路由转发接口表进行增加、删除等维护操作。通过上面的分析可以看出,本发明所述装置采用并行流水线结构,同时支持2K、6K、8K、10K、14K条目的路由转发地址。权利要求1.一种路由转发表地址查找引擎装置,其特征在于,包括本发明提出的一种路由转发表查找引擎装置包括状态机模块、源IP地址路由转发搜索引擎模块、目的IP地址路由转发表搜索引擎模块、默认路由表搜索引擎模块、路由转发表维护模块、默认路由表维护模块状态机模块、路由转发接口表搜索引擎模块、路由转发接口表维护模块;状态机模块分别启动源IP地址路由转发表搜索引擎模块、目的IP地址路由转发表搜索引擎模块、默认路由表搜索引擎模块进行路由转发表搜索以获得转发信息;路由转发表维护模块、默认路由表维护模块、路由转发接口表维护模块分别对各自转发表进行维护。2.根据权利要求1所述的装置,其特征在于,所述源IP地址路由转发表搜索引擎模块和目的IP地址路由转发表搜索引擎模块采用基于11比特的CRC算法实现HASH算法。3.根据权利要求1所述的装置,其特征在于,支持2K、6K、8K、10K、14K条目的路由转发地址表查表。全文摘要本发明公开一种路由转发表地址查找引擎装置,包括状态机模块、源IP地址路由转发搜索引擎模块、目的IP地址路由转发表搜索引擎模块、默认路由表搜索引擎模块、路由转发表维护模块、默认路由表维护模块状态机模块、路由转发接口表搜索引擎模块、路由转发接口表维护模块。该装置采用并行流水线结构,第一级流水线是查询路由转发表,查找结束获得转发端口号;该级流水线同时启动默认路由表的查找,查找成功获得转发端口号;第二级流水线是根据查询路由转发表的结果查询路由转发接口表,以获取路由器MAC地址和VLANID。采用本发明所述装置,不但节省硬件成本,而且能进行快速路由转发表查找,从而节省系统总体成本。文档编号G06F17/30GK1885820SQ20051007755公开日2006年12月27日申请日期2005年6月21日优先权日2005年6月21日发明者王锦山申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1