发明名称 基于网络处理器的路由查找结果缓存方法
摘要 基于网络处理器的路由查找结果缓存方法属于计算机领域,其特征在于:在网络处理器的片上高速存储器中建立并维护一个路由查找结果缓存表,每个需要查找的目的IP地址被网络处理器接收后,先在该缓存表中通过哈希函数进行快速查找,若其结果已存在于该缓存表中,则直接返回路由查找结果,并对缓存表的表项按最近最少使用的原则进行顺序的调整,以期在后续查找中能尽快地得到结果;否则,才对保存在片外低速存储器中的路由表进行查找,其结果在返回给应用程序的同时,还要写回路由查找结果缓存表。本发明减少了由路由查找而引发的片外低速存储器的访问次数、以及对存储器带宽的占用。
申请公布号 CN1863169A 申请公布日期 2006.11.15
申请号 CN200610083701.1 申请日期 2006.06.02
申请人 清华大学 发明人 刘祯;刘斌
分类号 H04L12/56(2006.01);H04L29/06(2006.01) 主分类号 H04L12/56(2006.01)
代理机构 代理人
主权项 1.基于网络处理器的路由查找结果缓存方法,其特征在于,该方法在所述网络处理器中依次按照以下步骤执行:步骤0:初始化步骤0.1:在所述网络处理器的片上高速存储器内建立并维护一个路由查找结果缓存表,该路由查找结果缓存表以组为基本单位,每个组内含有若干表项,各组含有的表项数目相等,每个表项都与一个目的IP地址相对应;所述每个表项含有一个与目的IP地址对应的下一跳IP地址所在的端口号,即该目的IP地址的路由查找结果,用于表示表项是否有效的标志位,以及用于确定表项是否与接收到的目的IP地址匹配的标签信息D’;所述端口号的位宽由该网络处理器所支持的下一跳IP地址的个数决定;所述端口号、标志位以及标签信息在表项中的位置由编程人员自由设定,一旦设定后,在所有的表项中都是统一的;步骤0.2:在所述网络处理器的片外低速存储器内建立用于完成路由查找的数据结构,比如,一种实现方法是在所述片外低速存储器内为路由表建立一个trie树,当路由查找结果缓存表中没有任何表项匹配的时候,就使用该trie树,进行完整的路由查找,并返回查找的结果;步骤1:对所述网络处理器收到的目的IP地址进行哈希运算,得到要进行匹配操作的路由查找结果缓存表的组的索引号,也即该被索引组的第一个表项在片上高速存储器中的地址,一种可能的哈希运算是将所述目的IP地址中的低位部分字段不加变化地直接提取出来,作为索引号的一部分,然后对所述目的IP地址中的其他字段进行诸如异或等的操作后,将生成的结果作为索引号的其他部分;步骤2:读取所述被索引组中的第一个表项,将表项的内容保存入寄存器R;步骤3:检查所述寄存器R中的表项内容,确定该表项的标志位是否有效,如果无效,则执行步骤4,否则,跳转至步骤6;步骤4:检查所述被索引组内是否所有表项都已经检查完毕,如果不是,则执行步骤5,否则,跳转至步骤10;步骤5:读取所述被索引组中下一个未检查的表项,将表项的内容保存入寄存器R,跳转至步骤3;步骤6:根据所述目的IP地址,计算得到标签D,如果采用的是步骤1中所述的哈希函数,由于IP地址中有部分字段被直接提取并用作索引号的一部分,那么路由查找结果缓存表表项中的标签信息D’只需要保存IP地址中除该字段以外的部分,标签D也由所述目的IP地址中未被直接提取用作索引号的部分构成;步骤7:将步骤6中计算得到的标签D与所述寄存器R中所保存表项的标签信息D,进行比对,检查是否一致,如果一致,称该寄存器R中的表项为匹配表项,执行步骤8,否则,跳转至步骤4;步骤8:如果路由查找结果缓存表的每个组内只有一条表项,或者匹配表项是路由查找结果缓存表中该组的第一条表项,则组内表项顺序不需要调整,执行步骤14;否则,执行步骤9;步骤9:将路由查找结果缓存表中该组内该匹配表项之前的所有表项顺次向后移动一个位置,则该匹配表项所在的位置被原来位于该匹配表项之前的那个表项所覆盖,然后将该组内的第一条表项用该匹配表项的内容的取代,跳转至步骤14;步骤10:对片外低速存储器中保存的路由表进行完整的路由查找,得到查找的结果,即与下一跳IP地址对应的端口号;步骤11:如果路由查找结果缓存表的每个组内只有一条表项,跳转至步骤13;否则,执行步骤12;步骤12:将路由查找结果缓存表中该组内所有的表项顺次向后移动一个位置,删除最后一条表项;步骤13:将步骤10返回的路由查找结果作为新表项的端口号,将步骤6中计算得到的标签D作为新表项的标签信息D’,将该新表项的标志位设置为有效,然后将该新表项作为路由查找结果缓存表中被索引组内的第一条表项写回;步骤14:向应用程序返回路由查找结果。
地址 100084北京市100084-82信箱