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

文档序号:9474190阅读:来源:国知局
配前缀之前所有1的总 数量(位图中为" 1"的位置上有前缀),计算结果为n,则与该最长前缀匹配的RE Index为 RE index of P〈n>〇
[0151] 通过以上描述可以看出,本发明的上述实施例中引入了前缀集合,一个前缀节点 中可包含Μ个前缀集合,Μ > 1。其中,第i前缀节点对应第一步长的第一 MBT子树,所述第 i前缀节点中的第j前缀集合对应第二MBT子树,所述第二MBT子树是基于第二步长对所述 第一MBT子树划分得到的,所述第二步长小于所述第一步长;所述第j前缀集合中包括所述 第二MBT子树的关联前缀、第一位置信息,所述第一位置信息用于按序指示所述第二MBT子 树中的各个前缀在所述第二MBT子树中的位置。这样,一个第一步长的MBT子树对应的前 缀节点的数据结构,就可以通过该子树内的第二步长MBT子树对应的一个或多个前缀集合 来描述。由于一个前缀集合对应的第二MBT子树小于所述第一 MBT子树,因此用于描述前 缀在第二MBT子树上的位置信息的比特数量,少于用于描述前缀在第一 MBT子树上的位置 信息的比特数量,并且考虑到前缀分布较为稀松,因此采用本发明实施例提供的前缀节点 的数据结构与传统MBT算法相比可以提高编码,减少存储空间的开销。
[0152] (三)配置流程
[0153] 基于前述查找装置,图10示出了配置流程。如图所示,配置流程可包括:
[0154] 步骤101 :获得待配置的前缀信息,所述前缀中包括至少一个地址前缀以及所述 地址前缀所对应的下一跳;
[0155] 步骤102 :在所配置的N个前缀节点中查找关联前缀与所述待配置的地址前缀最 长匹配的前缀节点。该过程可以并行执行。其中,一个prefix节点的数据结构同前所述,在 此不再赘述。
[0156] 步骤103 :针对查找到的前缀节点执行以下操作:
[0157] 根据前缀节点中前缀集合的总数量和每个前缀集合中的关联前缀的长度,确定每 个前缀集合的存储位置、每个前缀集合中的关联前缀和第一位置信息的存储位置;
[0158] 根据每个前缀集合中的关联前缀和第一位置信息的存储位置,获取每个前缀集合 中的关联前缀和第一位置信息;
[0159] 在所有前缀集合中查找关联前缀与所述待配置的地址前缀最长匹配的前缀集 合;
[0160] 步骤104 :在前缀节点中配置所述待配置的地址前缀所对应的下一跳,并更新与 所述待配置的地址前缀最长匹配的前缀集合中的第一位置信息。
[0161] 上述流程中,步骤102~103的实现过程与图9的步骤92~93的实现过程类似。
[0162] 通常路由表允许人工配置或更新,或者可根据相关协议进行更新。比如,可通过人 工方式配置静态路由或者根据边界网关协议(Border Gateway Protocol,简称BGP)等路由 选择协议动态更新,包括增加新的路由表项或者删除已有的路由表项。在步骤101中,可根 据接收到的路由更新命令确定出需要增加或删除的前缀,以便进行配置更新。
[0163] 如前所述,在前缀节点的数据结构中,所有前缀集合可按照关联前缀的长度进行 排列。这种情况下,在步骤103中,可按照查找顺序,用前缀集合中的关联前缀与所述待配 置的前缀进行匹配,并当查找到第一个关联前缀与所述待配置的前缀匹配的前缀集合时, 将查找到的前缀集合确定为所述待配置的前缀最长匹配的前缀集合。
[0164] 如前所述,一个前缀节点的数据结构中的第二数据域还可包括本前缀节点内所有 前缀的下一跳,所述第二数据域中各个前缀所对应的下一跳的顺序,与所述第一数据域中 各个前缀集合中的第一位置信息所指示的前缀位置的顺序,相同或相反。这种情况下,在步 骤103中可在查找到待匹配的前缀归属的前缀集合后,按照规定的顺序添加该前缀的下一 跳。
[0165] 如前所述,一个前缀节点中可包含第一指示信息,用于指示该前缀节点中的前缀 集合所对应的第二MBT子树中包含唯一一个前缀,这种情况下,前缀集合中的第一位置信 息为节点位置编号;或者,一个前缀节点中可包含第二指示信息,用于指示该前缀节点中的 前缀集合所对应的第二MBT子树中包含至少2个前缀,这种情况下,前缀集合中的所述第一 位置信息为位图。
[0166] 相应地,若所述待配置的前缀是前缀集合中唯一的前缀,则还在该前级集合的头 部信息中设置所述第一指示信息,使所述第一指示信息的取值用于指示对应的前缀集合中 的第一位置信息是节点位置编号。
[0167] 在本发明实施例的上述配置流程中,若在步骤102中未查找到与待配置的前缀最 长匹配的前缀节点,则为该待配置的前缀创建对应的前缀节点,并按照前述数据结构在新 创建的前缀节点中添加相应信息。若在步骤103中未查找到与待配置的前缀匹配的前缀集 合,则为该待配置的前缀创建对应的前缀集合,并按照前述数据结构在新创建的前缀集合 以及对应的前缀节点中添加相应信息。
[0168] 通过以上描述可以看出,本发明的上述实施例中引入了前缀集合,一个前缀节点 中可包含Μ个前缀集合,Μ > 1。其中,第i前缀节点对应第一步长的第一 MBT子树,所述第 i前缀节点中的第j前缀集合对应第二MBT子树,所述第二MBT子树是基于第二步长对所述 第一MBT子树划分得到的,所述第二步长小于所述第一步长;所述第j前缀集合中包括所述 第二MBT子树的关联前缀、第一位置信息,所述第一位置信息用于按序指示所述第二MBT子 树中的各个前缀在所述第二MBT子树中的位置。这样,一个第一步长的MBT子树对应的前 缀节点的数据结构,就可以通过该子树内的第二步长MBT子树对应的一个或多个前缀集合 来描述。由于一个前缀集合对应的第二MBT子树小于所述第一 MBT子树,因此用于描述前 缀在第二MBT子树上的位置信息的比特数量,少于用于描述前缀在第一 MBT子树上的位置 信息的比特数量,并且考虑到前缀分布较为稀松,因此采用本发明实施例提供的前缀节点 的数据结构与传统MBT算法相比可以提高编码,减少存储空间的开销。
[0169] 综上所述,本发明实施例通过将一个prefix节点中的前缀用MBT进行组织和分类, 把前缀划分成多个PCL。每个PCL中的前缀有相同的关联前缀,一个PCL中包含的前缀在相 应第二MBT子树上的位置可以用位图或者在节点位置编号来表示。这样,在一个前缀节点 中,通过先列出每个PCL的头部信息,然后再列出所有PCL的关联前缀,最后再列出表示前 缀的位图或者节点位置编号,从而对PCL进行编码。在对一个前缀节点进行逻辑解析时,通 过该前缀节点中包含的PCL个数字段以及各个PCL header字段可以确定各PCL的存储位置 和长度。
[0170] 通过这样编码,prefix节点中可以保存任意长度的前缀。对于比较稀疏的IPv4VPN 和IPv6路由,本发明实施例提供的方案可以大大提高编码效率,节省内存占用。通过把PCL header集中放在前缀节点的开始部分,可以降低逻辑解析的难度,实现对多个PCL的并行 解析,减少节点处理的延迟。通过把较长的PCL放在较短PCL的前面,可以使逻辑解析使用 的资源更省。
[0171] 本发明实施例提供的prefix节点的数据结构和编码方式,通过把任意长度的前缀 放在同一个prefix节点中,可以使MBT的深度更小,从而大大提高MBT算法的效率,进而减 少查找的延迟。
[0172] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程 图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一 流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算 机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理 器,使得通过该计算机或其他可编程数据处理设备的处理器执行的指令可实现流程图中的 一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0173] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特 定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指 令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或 多个方框中指定的功能。
[0174] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计 算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或 其他可编程设备上执行的指令提供用于实现在流程图的一个流程或多个流程和/或方框 图的一个方框或多个方框中指定的功能的步骤。
[0175] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造 性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优 选实施例以及落入本发明范围的所有变更和修改。
【主权项】
1. 一种查找装置,其特征在于,包括:存储单元; 所述存储单元中配置有N个前缀节点,N> 1,每个前缀节点包括第一数据域,所述第一 数据域中包括M个前缀集合,MS1,其中: 第i前缀节点对应第一步长的第一MBT子树,所述第i前缀节点中的第j前缀集合对 应第二MBT子树,所述第二MBT子树是基于第二步长对所述第一MBT子树划分得到的,所述 第二步长小于所述第一步长;其中,I<i<N,I<j<M; 所述第j前缀集合中包括所述第二MBT子树的关联前缀、第一位置信息,所述第一位置 信息用于按序指示所述第二MBT子树中的各个前缀在所述第二MBT子树中的位置。2. 如权利要求1所述的查找装置,其特征在于,所述第i前缀节点中还包括第二数据 域,所述第二数据域中包括所述第一MBT子树中所有前缀各自所对应的下一跳。3. 如权利要求2所述的查找装置,其特征在于,所述第二数据域设置于所述第一数据 域之后; 所述第二数据域中各个前缀所对应的下一跳的顺序,与所述第一数据域中各个前缀集 合中的第一位置信息所指示的前缀位置的顺序,相同或相反。4. 如权利要求1至3中任一项所述的查找装置,其特征在于,所述第i前缀节点中还包 括第三数据域,所述第三数据域中包括所述第i前缀节点中的所有前缀集合的数量、所述 第i前缀节点中的所有前缀集合中的每个前缀集合的头部信息,其中,第j前缀集合的头部 信息中包含所述第二MBT子树的关联前缀的长度。5. 如权利要求4所述的查找装置,其特征在于,所述第三数据域设置于所述第一数据 域之前; 所述第三数据域中各个前缀集合的头部信息的顺序,与所述第一数据域中各个前缀集 合的顺序,相同或相反。6. 如权利要求1至5中任一项所述的查找装置,其特征在于,所述第一数据域中的所述 M个前缀集合按照查找顺序包括第1至第M前缀集合,所述M个前缀集合中,第j前缀集合 中存储的关
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1