一种查找装置、查找方法和配置方法_2

文档序号:9474190阅读:来源:国知局
总数量和每个前缀集合中的关联前缀的长度,确定每 个前缀集合的存储位置、每个前缀集合中的关联前缀和第一位置信息的存储位置;
[0045] 根据每个前缀集合中的关联前缀和第一位置信息的存储位置,获取每个前缀集合 中的关联前缀和第一位置信息;
[0046] 在所有前缀集合中查找关联前缀与所述查找关键字最长匹配的前缀集合;
[0047] 根据查找到的前缀集合中的第一位置信息,确定与所述查找关键字最长匹配的前 缀;
[0048] 根据与所述查找关键字最长匹配的前缀获得下一跳,得到所述查找关键字的查找 结果。
[0049] 结合第二方面,在第二方面的第一种可能的实现方式中,所述第i前缀节点中还 包括第二数据域,所述第二数据域中包括所述第一 MBT子树中所有前缀各自所对应的下一 跳。
[0050] 结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式 中,所述第二数据域设置于所述第一数据域之后;
[0051] 所述第二数据域中各个前缀所对应的下一跳的顺序,与所述第一数据域中各个前 缀集合中的第一位置信息所指示的前缀位置的顺序,相同或相反。
[0052] 结合第二方面、第二方面的第一种至第二种可能的实现方式中的一种,在第二方 面的第三种可能的实现方式中,所述第i前缀节点中还包括第三数据域,所述第三数据域 中包括所述第i前缀节点中的所有前缀集合的数量、所述第i前缀节点中的所有前缀集合 中的每个前缀集合的头部信息,其中,第j前缀集合的头部信息中包含所述第二MBT子树的 关联肖U缀的长度。
[0053] 结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式 中,所述第三数据域设置于所述第一数据域之前;
[0054] 所述第三数据域中各个前缀集合的头部信息的顺序,与所述第一数据域中各个前 缀集合的顺序,相同或相反。
[0055] 结合第二方面、第二方面的第一种至第四种可能的实现方式中的一种,在第二方 面的第五种可能的实现方式中,所述第一数据域中的所述Μ个前缀集合按照查找顺序包括 第1至第Μ前缀集合,所述Μ个前缀集合中,第j前缀集合中存储的关联前缀的长度,不小 于第j+Ι前缀集合中存储的关联前缀的长度,1 < j < M。
[0056] 结合第二方面、第二方面的第一种至第五种可能的实现方式中的一种,在第二方 面的第六种可能的实现方式中,
[0057] 所述第i前缀节点中包含第一指示信息,用于指示所述第j前缀集合所对应的第 二MBT子树中包含唯--个前缀,所述第j前缀集合中的第一位置信息为所述唯--个前 缀在所述第二MBT子树中的节点位置编号,所述第一位置信息的长度等于所述第二步长; 或者
[0058] 所述第i前缀节点中包含第二指示信息,用于指示所述第j前缀集合所对应的第 二MBT子树中包含至少2个前缀,所述第j前缀集合中的所述第一位置信息为位图,用于指 示所述第二MBT子树中的所述至少2个前缀在该第二MBT子树中的位置,所述第一指示信 息的长度为2stnde-l,stride为所述第二步长。
[0059] 第三方面,提供一种配置方法,包括:
[0060] 获得待配置的前缀信息,所述前缀中包括至少一个地址前缀以及所述地址前缀所 对应的下一跳;
[0061] 在所配置的N个前缀节点中查找关联前缀与所述待配置的地址前缀最长匹配的 前缀节点;其中,N3 1,每个前缀节点包括第一数据域,所述第一数据域中包括Μ个前缀集 合,Μ > 1,其中:第i前缀节点对应第一步长的第一 ΜΒΤ子树,所述第i前缀节点中的第j 前缀集合对应第二MBT子树,所述第二MBT子树是基于第二步长对所述第一 MBT子树划分 得到的,所述第二步长小于所述第一步长,1 < i < N,1 < j < M,所述第j前缀集合中包括 所述第二MBT子树的关联前缀、第一位置信息,所述第一位置信息用于按序指示所述第二 MBT子树中的各个前缀在所述第二MBT子树中的位置;
[0062] 针对查找到的前缀节点执行以下操作:
[0063] 根据前缀节点中前缀集合的总数量和每个前缀集合中的关联前缀的长度,确定每 个前缀集合的存储位置、每个前缀集合中的关联前缀和第一位置信息的存储位置;
[0064] 根据每个前缀集合中的关联前缀和第一位置信息的存储位置,获取每个前缀集合 中的关联前缀和第一位置信息;
[0065] 在所有前缀集合中查找关联前缀与所述待配置的地址前缀最长匹配的前缀集 合;
[0066] 在前缀节点中配置所述待配置的地址前缀所对应的下一跳,并更新与所述待配置 的地址前缀最长匹配的前缀集合中的第一位置信息。
[0067] 结合第三方面,在第三方面的第一种可能的实现方式中,所述第i前缀节点中还 包括第二数据域,所述第二数据域中包括所述第一 MBT子树中所有前缀各自所对应的下一 跳。
[0068] 结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式 中,所述第二数据域设置于所述第一数据域之后;
[0069] 所述第二数据域中各个前缀所对应的下一跳的顺序,与所述第一数据域中各个前 缀集合中的第一位置信息所指示的前缀位置的顺序,相同或相反。
[0070] 结合第三方面、第三方面的第一种至第二种可能的实现方式中的一种,在第三方 面的第三种可能的实现方式中,所述第i前缀节点中还包括第三数据域,所述第三数据域 中包括所述第i前缀节点中的所有前缀集合的数量、所述第i前缀节点中的所有前缀集合 中的每个前缀集合的头部信息,其中,第j前缀集合的头部信息中包含所述第二MBT子树的 关联肖U缀的长度。
[0071] 结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式 中,所述第三数据域设置于所述第一数据域之前;
[0072] 所述第三数据域中各个前缀集合的头部信息的顺序,与所述第一数据域中各个前 缀集合的顺序,相同或相反。
[0073] 结合第三方面、第三方面的第一种至第四种可能的实现方式中的一种,在第三方 面的第五种可能的实现方式中,所述第一数据域中的所述Μ个前缀集合按照查找顺序包括 第1至第Μ前缀集合,所述Μ个前缀集合中,第j前缀集合中存储的关联前缀的长度,不小 于第j+Ι前缀集合中存储的关联前缀的长度,1 < j < Μ ;
[0074] 所述在所有前缀集合中查找关联前缀与所述待配置的地址前缀最长匹配的前缀 集合,包括:
[0075] 按照查找顺序,用前缀集合中的关联前缀与所述待配置的前缀进行匹配,并当查 找到第一个关联前缀与所述待配置的前缀匹配的前缀集合时,将查找到的前缀集合确定为 所述待配置的前缀最长匹配的前缀集合。
[0076] 结合第三方面、第三方面的第一种至第五种可能的实现方式中的一种,在第三方 面的第六种可能的实现方式中,
[0077] 所述第i前缀节点中包含第一指示信息,用于指示所述第j前缀集合所对应的第 二MBT子树中包含唯--个前缀,所述第j前缀集合中的第一位置信息为所述唯--个前 缀在所述第二MBT子树中的节点位置编号,所述第一位置信息的长度等于所述第二步长; 或者
[0078] 所述第i前缀节点中包含第二指示信息,用于指示所述第j前缀集合所对应的第 二MBT子树中包含至少2个前缀,所述第j前缀集合中的所述第一位置信息为位图,用于指 示所述第二MBT子树中的所述至少2个前缀在该第二MBT子树中的位置,所述第一指示信 息的长度为2stnde-l,stride为所述第二步长。
[0079] 本发明的上述实施例中引入了前缀集合,一个前缀节点中可包含Μ个前缀集合, Μ > 1。其中,第i前缀节点对应第一步长的第一 ΜΒΤ子树,所述第i前缀节点中的第j前 缀集合对应第二MBT子树,所述第二MBT子树是基于第二步长对所述第一 MBT子树划分得 到的,所述第二步长小于所述第一步长;所述第j前缀集合中包括所述第二MBT子树的关联 前缀、第一位置信息,所述第一位置信息用于按序指示所述第二MBT子树中的各个前缀在 所述第二MBT子树中的位置。这样,一个第一步长的MBT子树对应的前缀节点的数据结构, 就可以通过该子树内的第二步长MBT子树对应的一个或多个前缀集合来描述。由于一个 前缀集合对应的第二MBT子树小于所述第一 MBT子树,因此用于描述前缀在第二MBT子树 上的位置信息的比特数量,少于用于描述前缀在第一 MBT子树上的位置信息的比特数量, 并且考虑到前缀分布较为稀松,因此采用本发明实施例提供的前缀节点的数据结构与传统 MBT算法相比可以提高编码,减少存储空间的开销。
【附图说明】
[0080] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本 领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其 他的附图。
[0081] 图1为【背景技术】中的单位Trie树的示意图;
[0082] 图2为【背景技术】中的MBT树的示意图;
[0083] 图3a、图3b、图3c、图3d分别为本发明实施例提供的查找装置的结构示意图;
[0084] 图4为本发明实施例中的PCL的数据结构示意图;
[0085] 图5、图6分别为本发明实施例中的prefix节点的数据结构;
[0086] 图7为本发明实施例中的MBT子树划分示意图;
[0087] 图8为基于图7所示的MBT子树的prefix节点的数据结构示意图;
[0088] 图9为本发明实施例提供的查找流程示意图;
[0089] 图10为本发明实施例提供的配置流程示意图。
【具体实施方式】
[0090] 针对现有查找算法存在的缺陷,本发明实施例提供了一种查找装置、查找方法和 配置方法,通过高效的编码方式对prefix节点的数据结构进行编码,提高了 prefix节点的编 码效率,从而减少存储空间的开销。
[0091] 为了更清楚地理解本发明,下面从以下几个方面对本发明进行详细说明:(一)查 找装置的结构以及prefix节点的数据结构、(二)查找流程、(三)配置流程。
[0092] (一)查找装置的结构以及prefix节点的数据结构
[0093] 本发明实施例提供的查找装置可以是位于路由器或交换机等用于实现报文转发 的网络设备中的装置,例如查找模块,处理器,或硬件实现的查找引擎;或者也可以是路由 器或交换机等用于实现报文转发的网络设备。
[0094] 本发明实施例提供的查找装置中存储有前缀p
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1