一种交换机路由表的管理方法

文档序号:6573936阅读:187来源:国知局

专利名称::一种交换机路由表的管理方法
技术领域
:本发明涉及计算机网络通信领域,具体涉及三层交换机的一种高效的路由表管理方法。
背景技术
:在三层以太网交换机的运维过程中,对交换机的路由表表项的查找、删除、插入是非常频繁的,提高交换机路由表管理的效率对保证交换机的性能起着非常重要的作用。目前对路由表的管理一般是采用TCAM(TernaryContentAddressMemory)作为存储介质来提高路由表的管理效率。这种方法虽然通过提高存储介质性能而提高了路由表的管理效率,但由于每次操作需要逐条在TCAM表中去查找,所以开销很大、成本较高。
发明内容为了解决现有的采用TCAM作为存储介质来提高路由表管理效率的方法开销大、成本高的问题,本发明提供了一种交换机路由表的管理方法。本发明的管理方法按以下步骤进行A、在软件层上建立散列表,该散列表记录有每条路由表项索引;B、通过查找上述散列表,获得所需路由表项索引;C、根据查找到的路由表项索引在硬件路由表中进行查找,根据查找结果进行相应地删除或插入。上述A步骤中所述的散列表包括一个哈希表,以目的IP和掩码为钥匙依据哈希算法所获得的数值作为该条路由条目在哈希表的下标,该下标对应的哈希表中的内容为该目的IP和掩码所对应的路由条目在硬件TCAM路由表中所对应的表项索引。上述A步骤中所述的散列表还包括一个哈希冲突表,用于记录由于目的IP和掩码依据哈希算法所获得的数值发生相同情况而导致冲突的路由表项;发生冲突时,以已经存入哈希表中的路由条目在硬件TCAM路由表中所对应的表项索引作为与该路由条目发生冲突的冲突路由条目在哈希冲突表中的下标,该下标对应的哈希冲突表中的内容为所述冲突路由条目在硬件TCAM路由表中所对应的表项索引。发明效果本发明通过在软件上维护一个记录每条路由表项索引(index)的哈希(Hash)表,在查找、插入、删除路由表项时先通过查软件上的哈希表来获取对应的TCAM表里路由表项的索引(index),找到对应表项,避免每次都是逐条去读硬件路由表项。本发明通过减少硬件路由表项的读写次数来而提高系统性能、降低成本。最好的情况是能一次根据哈希表找到到对应路由条目的索引,那么就只需要进行一次读硬件路由表项的操作;只有在最坏情况下才需要逐条去读硬件表项。本发明通过软硬件的配合来加快硬件TCAM路由表的插入、删除及查找的速度,提高了路由表的管理效率。图1是本发明的散列表与TCAM表的对应关系示意图;图2是具体实施方式中本发明管理方法的B步骤中查找过程的流程图;图3是具体实施方式中本发明管理方法的C步骤中删除或插入路由表项的过程流程图。具体实施例方式以下将详细描述本发明的各较佳实施例。本发明的交换机路由表的管理方法按以下步骤实施A、在软件层上建立散列表,该散列表记录有每条路由表项索引;B、通过查找上述散列表,获得所需路由表项索引;C、根据查找到的路由表项索引在硬件路由表中进行查找,根据查找结果进行相应地删除或插入。上述A步骤中所述的散列表包括一个哈希表,以目的IP和掩码为钥匙依据哈希(Hash)算法所获得的数值作为该条路由条目在哈希表的下标,该下标对应的哈希表中的内容为该目的IP和掩码所对应的路由条目在硬件TCAM路由表中所对应的表项索引。以下举例说明如何建立上述哈希表以目的IP和掩码为Hash算法的钥匙(key)定义Hash算法。如图1所示,如果路由条目a的IP地址和掩码所对应的TCAM表里的内容为“Index2”,而由Hash算法根据该IP地址和掩码所Hash出来的数值为“value1”,那么,该路由条目a在哈希表中的索引下标设为“value1”,对应的在哈希表里第“value1”条表项的内容被填入“Index2”。上述A步骤中所述的散列表还包括一个哈希冲突表,用于记录由于目的IP和掩码依据哈希算法所获得的数值发生相同情况而导致冲突的路由表项;发生冲突时,以已经存入哈希表中的路由条目在硬件TCAM路由表中所对应的表项索引作为与该路由条目发生冲突的冲突路由条目在哈希冲突表中的下标,该下标对应的哈希冲突表中的内容为所述冲突路由条目在硬件TCAM路由表中所对应的表项索引。以下举例说明如何建立上述哈希冲突表同样地,以目的IP和掩码为Hash算法的钥匙(key)定义Hash算法。如图1所示,如果路由条目b所对应的IP地址和掩码所Hash出来的数值与上述路由条目a的Hash数值相同,即也为“value1”,而路由条目b的IP地址和掩码所对应的TCAM表里的内容为“Index4”,那么,“Index2”(即,路由条目a的IP地址和掩码所对应的TCAM表里的内容)被设为路由条目b在哈希冲突表中的索引下标,对应的在哈希冲突表里第“Index2”条表项的内容被填入“Index4”。在哈希冲突表中,由于没有出现上述冲突会有一些空余,那么,以该路由条目在硬件TCAM路由表中所对应的表项索引作为哈希冲突表的下标,该下标对应的哈希冲突表中的内容被填入表示无效状态的无效值。根据图1举例说明此点,如果没有发生与上述路由条目b对应的IP地址和掩码所Hash出来的数值相同的情况,那么,以“Index4”(即,路由条目b的IP地址和掩码所对应的TCAM表里的内容)作为哈希冲突表的索引下标的话,在哈希冲突表里第“Index4”条表项的内容被填入无效值“fff”。上述哈希表和哈希冲突表都由类型为整形的数组构成,且哈希表和哈希冲突表的表项大小均为TCAM路由表表项数目的大小。对上述哈希(Hash)表和哈希(Hash)冲突表的管理用以下结构体概括typedefstruct_tcam_lpm_hash_s{intentry_count;/*Numberentriesinhashtable*/uint16*table;/*Hashtablewith16bitindex*/uint16*link_table;/*Tohandlecollisions*/}_soc_cam_lpm_hash_t;其中的entry_count记录hash表的表项总数,table为hash表的起始地址,link_table为hash冲突表的起始地址。如图2所示,给出了一种本发明管理方法的B步骤中查找过程的优选方法,具体过程如下B1、以目的IP和掩码为钥匙依据哈希算法获得哈希数值,以该哈希数值为下标查找哈希表里的对应表项,读出其中存放的该目的IP和掩码所对应的路由条目在硬件TCAM路由表中所对应的表项索引;B2、判断该表项索引是否无效;若该表项索引无效,则表明所要寻找的路由条目不存在;若该表项索引有效,则执行步骤B3;B3、根据步骤B1读出的表项索引去读硬件TCAM路由表;B4、将步骤B3读到的硬件表项里的内容与所需查找的路由表项相比较,看是否一致;如果步骤B4的判断结果为是,则表明找到对应表项;如果步骤B4的判断结果为否,则表明存在由于目的IP和掩码依据哈希算法所获得的数值发生相同情况而导致冲突的问题,需要进一步在Hash冲突表里查找,执行步骤B5;B5、以依据步骤B1在哈希表里读出的表项索引作为下标去索引哈希冲突表;B6、判断哈希冲突表里的内容是否为无效值;若步骤B6的判断结果为是,则表明所要寻找的路由条目不存在;若步骤B6的判断结果为否,则执行步骤B7;B7、以步骤B5所读出的哈希冲突表的内容作为索引去读硬件TCAM路由表;B8、将步骤B7所读得的内容与所需查找的路由表项相比较,看是否一致;如果步骤B8的判断结果为是,则表明找到对应表项;如果步骤B8的判断结果为否,则继续以依据步骤B1在哈希表里读出的表项索引作为下标逐条往后去索引哈希冲突表,并重复至步骤B6,直到找到哈希冲突表里的对应表项的内容为无效值时,即证明不存在所要寻找的路由条目时停止。上述B2步骤进行判断时采用通用做法,将表项索引中的某位数值作判断无效或有效的基准,例如,定义表项索引中的某位数值为“1”表示有效、“0”表示无效,那么在进行B2步骤判断时,只要看表项索引中此位数值为“1”或“0”即可。如图3所示,给出了一种本发明管理方法的C步骤中删除或插入路由表项过程的优选方法,具体过程如下若根据B步骤查找后表明该路由条目不存在,则在维护哈希表时,以该目的IP和掩码为钥匙依据哈希算法所获得到的哈希数值作为该路由条目在哈希表中的索引下标,并将该路由条目在硬件TCAM表中的索引填入哈希表,同时也更新哈希冲突表中的相关内容C1步,前述相关内容的更新即以该目的IP和掩码所对应的硬件TCAM路由表中表项索引作为与该路由条目发生冲突的冲突路由条目在哈希冲突表中的下标,该下标对应的哈希冲突表中的内容为与该目的IP和掩码所对应的路由条目相冲突的路由条目在硬件TCAM路由表中所对应的表项索引;若根据B步骤查找后表明该路由条目存在,则在维护哈希表时,直接覆盖相应路由表项目即可C2步。根据B步骤的查找过程可以参见图2所示的流程,例如,图2中通过步骤B2和B6进行判断确定路由条目不存在时,可以参照图3所示的C1步骤的方法对路由表项进行删除或插入;图2中通过步骤B4和B8进行判断确定路由条目存在时,可以参照图3所示的C2步骤的方法对路由表项进行删除或插入。应当理解的是,上述各具体步骤的举例说明较为具体,并不能因此而认为是对本发明的专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。权利要求1.一种交换机路由表的管理方法,其特征在于,所述方法采用如下步骤A、在软件层上建立散列表,该散列表记录有每条路由表项索引;B、通过查找上述散列表,获得所需路由表项索引;C、根据查找到的路由表项索引在硬件路由表中进行查找,根据查找结果进行相应地删除或插入。2.根据权利要求1所述的一种交换机路由表的管理方法,其特征在于,A步骤中所述的散列表包括一个哈希表,以目的IP和掩码为钥匙依据哈希算法所获得的数值作为该条路由条目在哈希表的下标,该下标对应的哈希表中的内容为该目的IP和掩码所对应的路由条目在硬件TCAM路由表中所对应的表项索引。3.根据权利要求1或2所述的一种交换机路由表的管理方法,其特征在于,A步骤中所述的散列表还包括一个哈希冲突表,用于记录由于目的IP和掩码依据哈希算法所获得的数值发生相同情况而导致冲突的路由表项;发生冲突时,以已经存入哈希表中的路由条目在硬件TCAM路由表中所对应的表项索引作为与该路由条目发生冲突的冲突路由条目在哈希冲突表中的下标,该下标对应的哈希冲突表中的内容为所述冲突路由条目在硬件TCAM路由表中所对应的表项索引。4.根据权利要求2所述的一种交换机路由表的管理方法,其特征在于,所述哈希表由类型为整形的数组构成,且哈希表的表项大小为TCAM路由表表项数目的大小。5.根据权利要求3所述的一种交换机路由表的管理方法,其特征在于,没有发生所述冲突时,以该路由条目在硬件TCAM路由表中所对应的表项索引作为哈希冲突表的下标,该下标对应的哈希冲突表中的内容被填入无效值。6.根据权利要求3所述的一种交换机路由表的管理方法,其特征在于,所述哈希冲突表由类型为整形的数组构成,且哈希冲突表的表项大小为TCAM路由表表项数目的大小。7.根据权利要求5所述的一种交换机路由表的管理方法,其特征在于,所述管理方法的B步骤中查找过程按照以下步骤进行B1、以目的IP和掩码为钥匙依据哈希算法获得哈希数值,以该哈希数值为下标查找哈希表里的对应表项,读出其中存放的该目的IP和掩码所对应的路由条目在硬件TCAM路由表中所对应的表项索引;B2、判断该表项索引是否无效;若该表项索引无效,则表明所要寻找的路由条目不存在;若该表项索引有效,则执行步骤B3;B3、根据步骤B1读出的表项索引去读硬件TCAM路由表;B4、将步骤B3读到的硬件表项里的内容与所需查找的路由表项相比较,看是否一致;如果步骤B4的判断结果为是,则表明找到对应表项;如果步骤B4的判断结果为否,则执行步骤B5;B5、以依据步骤B1在哈希表里读出的表项索引作为下标去索引哈希冲突表;B6、判断哈希冲突表里的内容是否为无效值;若步骤B6的判断结果为是,则表明所要寻找的路由条目不存在;若步骤B6的判断结果为否,则执行步骤B7;B7、以步骤B5所读出的哈希冲突表的内容作为索引去读硬件TCAM路由表;B8、将步骤B7所读得的内容与所需查找的路由表项相比较,看是否一致;如果步骤B8的判断结果为是,则表明找到对应表项;如果步骤B8的判断结果为否,则继续以依据步骤B1在哈希表里读出的表项索引作为下标逐条往后去索引哈希冲突表,并重复至步骤B6,直到找到哈希冲突表里的对应表项的内容为无效值时,即证明不存在所要寻找的路由条目时停止。8.根据权利要求1或7所述的一种交换机路由表的管理方法,其特征在于,所述管理方法的C步骤中删除或插入路由表项的过程按以下步骤进行若根据B步骤查找后表明该路由条目不存在,则在维护哈希表时,以该目的IP和掩码为钥匙依据哈希算法所获得到的哈希数值作为该路由条目在哈希表中的索引下标,并将该路由条目在硬件TCAM表中的索引填入哈希表,同时也更新哈希冲突表中的相关内容;若根据B步骤查找后表明该路由条目存在,则在维护哈希表时,直接覆盖相应路由表项目即可。9.根据权利要求8所述的一种交换机路由表的管理方法,其特征在于,所述更新哈希冲突表中的相关内容的过程如下进行以该目的IP和掩码所对应的硬件TCAM路由表中表项索引作为与该路由条目发生冲突的冲突路由条目在哈希冲突表中的下标,该下标对应的哈希冲突表中的内容为与该目的IP和掩码所对应的路由条目相冲突的路由条目在硬件TCAM路由表中所对应的表项索引。全文摘要本发明公开了一种交换机路由表的管理方法,其过程为A、在软件层上建立散列表,该散列表记录有每条路由表项索引;B、通过查找上述散列表,获得所需路由表项索引;C、根据查找到的路由表项索引在硬件路由表中进行查找,根据查找结果进行相应地删除或插入。本发明通过在软件上维护一个记录每条路由表项索引的哈希表,在查找、插入、删除路由表项时先通过查软件上的哈希表来获取对应的TCAM表里路由表项的索引,找到对应表项,避免每次都是逐条去读硬件路由表项。本发明通过减少硬件路由表项的读写次数来提高系统性能、降低成本。文档编号G06F17/30GK101072178SQ20071007518公开日2007年11月14日申请日期2007年6月22日优先权日2007年6月22日发明者毕恒申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1