用于分组分类的方法和设备的制作方法

文档序号:7792942阅读:186来源:国知局
用于分组分类的方法和设备的制作方法
【专利摘要】一方面,本发明通过以压缩形式表示分组分类规则数据库来减少基于规则的分组分类所需的低等待时间存储器的量。对诸如包括多个ACE的ACL数据库的分组处理规则数据库进行预处理以获得对应的规则指纹。这些规则指纹比规则小得多,并且易于以有限的量容纳在一般对于分类引擎可用的芯片上或其它低等待时间存储器中。然后,可以将规则数据库存储在芯片外或其它较高等待时间存储器中,因为初始匹配操作只涉及对象分组的分组密钥和指纹数据库。只有当在分组密钥与指纹数据库中的条目之间找到初步匹配时,才存取规则数据库以进行完整分组分类。因此,本发明还有利地将对规则数据库的存取减至最少。
【专利说明】用于分组分类的方法和设备

【技术领域】
[0001] 一般来说,本发明涉及数据网络,具体来说,涉及数据网络中的分组分类。

【背景技术】
[0002] 存取控制列表(ACL)是用于过滤IP业务的常用方法。ACL包括称为存取控制条目 (ACE)的规则的列表。在一个示例情形中,ACE按照源地址和目的地址的函数将流入分组映 射到流出端口,并指示应当允许(路由)还是拒绝(丢弃)给定的流入分组。当然,ACL也可以 用于其它目的,包括网络地址转译(NAT)处理、基于策略的路由等。
[0003] 随着IP网络(例如,在最新电信网络中实现的IP网络)的"智能性"的增加,越来 越需要更精密的分组分类、安全过滤、策略路由、分组重定向以进行服务链处理、OpenFlow 处理交换等。"OpenFlow"是对网络路由器、交换机和接入点中的转发表提供远程控制并且 因此允许动态控制网络行为、策略等的开放接口。
[0004] 可以想象,ACL中所需的ACE的数量会是相当大的。ACL包括多于一千个ACE (例 如,多达四千个或更多个ACE)并不罕见。而且,对于不同活动以及对于不同协议族,可存在 不同ACL,例如,数据平面中的每个ACL "绑定点"对应于不同的协议族类型,如IPv4、IPv6、 虚拟LAN (VLAN)、多协议标签交换(MPLS)等。跨越在网络交换机或路由器中所实现的所有 ACL的规则的总数会相当大,例如超过十万。
[0005] 基于ACL的搜索类型包括最长前缀匹配(LPM)(例如,用于源IP - IPv4/IPv6、目 的IP - IPv4/IPv6的LPM)、用于协议或标志的精确匹配搜索以及用于TCP/UDP源端口和目 的端口的范围匹配。在这方面,三重CAM (TCAM)是基于经过交换机或路由器的分组设计用 于快速表查找的内容可寻址存储器(CAM)的专门类型。但是,一般存在决定可用于快速搜 索大型ACL和/或大量ACL的TCAM的量的显著的功率、成本和空间约束。
[0006] 其它方法包括诸如改进型递归流分类(MRFC)的算术解决方案。但是,特有地,基 于MRFC的解决方案需要许多外部存储器存取,这是因为MRFC处理中所需的大量存储器通 常不适合用作路由引擎的数字处理器的芯片上存储器。另一个问题是,MRFC似乎也不能对 更广泛的分组"密钥"行得通,更广泛的分组"密钥"正随着IPv6使用的增加而变得越来越 普及。


【发明内容】

[0007] -方面,本发明通过以压缩形式表示分组分类规则数据库来减少基于规则的分组 分类所需的低等待时间存储器的量。对诸如包括多个ACE的ACL数据库的分组处理规则数 据库进行预处理以获得对应的规则指纹。这些规则指纹比规则小得多,并且易于以有限的 量容纳在一般对于分类引擎可用的芯片上或其它低等待时间存储器中。而规则数据库可以 存储在芯片外或其它较高等待时间存储器中,因为初始匹配操作只涉及对象分组的分组密 钥和指纹数据库。只有当在分组密钥与指纹数据库中的条目之间找到初步匹配时,才存取 规则数据库以进行完整分组分类。因此,本发明还有利地将对规则数据库的存取减至最少。
[0008] 在一个实施例中,一种在网络节点中的分组分类的方法包括:获得对应于由网络 节点所接收的数据分组的分组密钥;以及通过将分组密钥的"特征位"与指纹数据库中的规 则指纹进行比较来标识是分组密钥的可能匹配的一个或多个分组处理规则。指纹数据库用 作包括分组处理规则的集合的规则数据库的压缩表示。规则指纹包括与分组处理规则中作 为区分它们的规则或子集的搜索切割点操作的位位置对应的"切割点位"。因此,任何给定 分组密钥的特征位是占据对应于切割点位的位位置的位。
[0009] 该方法还包括:从规则数据库获取所标识的一个或多个分组处理规则;将分组密 钥与所获取的一个或多个规则进行比较;以及取决于分组密钥是否与所获取的一个或多个 规则中的任何规则匹配来指示规则命中或未命中。当然,如果没有从指纹数据库为分组密 钥标识任何可能匹配的规则,那么指示规则未命中。这种处理有利地允许处理引擎只有在 它首先从指纹数据库确定存在一个或多个可能匹配的规则之后才对整个分组处理规则数 据库进行存取。
[0010] 这种布置有利地在配置成基于分组分类在分组网络中路由或交换分组的网络节 点中实现。在一个示例实施例中,网络节点包括一个或多个通信接口,其配置成接收输入分 组以进行路由或交换处理,并依据根据由网络节点所执行的分组分类处理关于输入分组所 做的交换或路由决定而发送输出分组。
[0011] 为了支持分组分类处理,网络节点包括一个或多个处理电路,其基于配置成执行 以下动作而配置成执行所述分组分类处理:获得对应于由网络节点所接收的数据分组的分 组密钥;以及通过将分组密钥的特征位与用作包括分组处理规则的集合的规则数据库的压 缩表示的指纹数据库中的规则指纹进行比较来标识是分组密钥的可能匹配的一个或多个 分组处理规则。
[0012] 规则指纹在其存储器"占用"方面比规则本身小得多,它们包括与分组处理规则中 作为区分它们的各个规则或子集的搜索切割点操作的位位置对应的切割点位。此外,如之 前所解释,分组密钥的特征位占据对应于切割点位的位位置。因此,通过将特征位与切割点 位进行比较,例如通过按照特征位值的函数遍历表示切割点位的搜索结构,这一个或多个 处理电路可以确定是否存在是分组密钥的可能匹配的任何分组处理规则,而无需存取规则 数据库。
[0013] 假设标识了一个或多个可能匹配,那么可以视为是"分类引擎"的这一个或多个处 理电路还配置成从规则数据库获取所标识的一个或多个分组处理规则,将分组密钥与所获 取的一个或多个规则进行比较,并取决于分组密钥是否与所获取的一个或多个规则中的任 何规则匹配来指示规则命中或未命中。在这方面,将明白,指纹数据库处理还可导致确定规 则数据库中没有一个分组处理规则是分组密钥的可能匹配。即,指纹数据库处理可导致没 有标识任何可能匹配的规则。在这种情况下,有利地,这一个或多个处理电路避免存取规则 数据库,而是返回"未命中"指示,由此可以触发分组丢弃或其它基于"未命中"的处理。
[0014] 当然,本发明不限于以上特征和优点。实际上,在阅读以下详细描述和查看附图 后,本领域技术人员将认识到额外的特征和优点。

【专利附图】

【附图说明】
[0015] 图1是具有至少一个节点的分组数据网络的一个实施例的局部框图,这至少一个 节点配置成结合分组处理规则的规则数据库利用规则指纹的指纹数据库来执行分组分类。
[0016] 图2是分组、分组密钥与规则数据库中的规则之间的映射的一个实施例的图。
[0017] 图3是存取控制列表(ACL)数据结构的已知示例的图。
[0018] 图4是图1中所介绍的这至少一个节点的一个实施例的框图,它示出利用第一存 储器中的指纹数据库与第二存储器中的对应规则数据库的示例功能电路细节。
[0019] 图5是来自分组的特征位的示例图,这些特征位可以是例如在本文中用于搜索指 纹数据库以便标识对应规则数据库中的可能匹配的分组处理规则的特征位。
[0020] 图6是为分组处理规则的集合确定的切割点位的示例图,切割点位可以是例如用 于形成对应于规则的规则指纹的切割点位。
[0021] 图7是如在图1中所介绍的这至少一个节点的一个示例中所实现的功能处理电路 和相关联的数据库结构的另一框图。
[0022] 图8是基于使用对应于分组处理规则的规则数据库的规则指纹的指纹数据库进 行分组分类处理的方法的一个实施例的逻辑流程图。
[0023] 图9是表示规则指纹的指纹数据库的搜索结构40的一个实施例的局部框图,搜索 结构可以是例如在指纹数据库处理的一个或多个实施例中遍历以便标识给定分组密钥的 可能匹配的分组处理规则的搜索结构。
[0024] 图10和图11是提供图9的示例搜索结构的进一步细节的框图。
[0025] 图12-16是表示或者以其它方式包含规则指纹的指纹数据库的搜索结构的进一 步示例实施例。

【具体实施方式】
[0026] 图1是包括一个或多个网络节点12和14的分组数据网络10的局部框图。至少 节点12是根据本文所呈现的分组分类教导进行配置的,包括有利地使用指纹数据库,这将 在以下论述中举例详述。当然,也可以是类似地配置节点14中的一个或多个节点。作为非 限制性示例,网络10是例如用于在根据第三代合作伙伴计划(3GPP)协议标准配置的移动 通信网络中递送互联网协议(IP)多媒体服务的IP多媒体子系统(MS)。
[0027] 参考图2,节点12、14接收流入分组16。已知,每个流入分组16包括分组密钥18, 分组密钥18可以例如嵌入在其报头信息中,或者通过节点12、14从分组报头为分组16导 出分组密钥18。节点12、14根据分组处理规则22 (例如,规则22-1、22-2、"·、22-Λ〇的规 则数据库20处理每个流入分组16。实际上,可能存在对应于不同协议类型和/或不同分组 处理功能(例如,服务质量过滤等)的多个规则数据库20,每个这样的数据库20包含分组处 理规则22的集合。但是,为了易于论述,参考一个规则数据库20,要理解,本文所描述的处 理直接延伸到多个规则数据库20和/或延伸到其中可以将所示的规则数据库20理解为是 多个规则数据库20的超集或集成的情况。
[0028] 此外,图3示出存取控制列表(ACL)的一个已知示例,ACL是由称为存取控制条目 (ACE)的规则组成的一种规则数据库类型,但是如本文所使用的规则数据库20可以用有利 的方式加以构造。对于在其上接收流入分组16的一个或多个节点接口激活ACL,并且ACL 基于流入分组16的源和/或目的IP地址将流入分组16映射到流出(目的)端口。因此,取 决于流入分组16的源/目的IP地址激活不同ACE,并且根据匹配到分组16的特定ACE,流 入分组16变成对应的流出分组16 (或被丢弃)。
[0029] 至少节点12偏离常规方法,常规方法基于将流入分组16的分组密钥18与规则数 据库20进行直接比较以标识任何匹配的分组处理规则22来执行上述分组分类处理。而节 点12却是利用基于"指纹"的方法,该方法大大减少了执行高速分组分类所需的低等待时 间存储器的量。在这方面,图4呈现了节点12的示例布置。
[0030] 在图4中示出的示例实施例中,网络节点12配置成基于分组分类在分组网络10 中路由或交换分组16。示例节点12包括一个或多个通信接口 30、一个或多个处理电路32、 用于存储规则指纹38的指纹数据库36和/或表示或以其它方式包含指纹数据库36的对 应搜索结构40的第一存储器34 (它可以是一个或多个存储器装置或电路)。这一个或多个 处理电路32包括到第二存储器44 (它可以是一个或多个存储器装置或电路)的直接或间接 链路42,第二存储器44用于存储规则数据库20,规则数据库20同样包含分组处理规则22 的一个(或多个)集合。
[0031] 参考图5,给定流入分组16的分组密钥18包括多个"特征位"50。更详细地,每个 分组密钥18将理解为包含占据从最高有效位(MSB)位置到最低有效位(LSB)位置排序的 相应位位置的一族位。如本文稍后将详细解释,如图6中所介绍,根据本文的教导处理分组 处理规则22,以便找到区分分组处理规则22中的各个分组处理规则、或至少区分规则数据 库20中的分组处理规则22的子集的"切割点位"52。对应地,每个分组密钥18中的特征 位50是占据与分组处理规则22的切割点位52的位位置对应的位位置的那些位。
[0032] 记着这些示例细节,节点12配置成接收输入分组16以便进行路由或交换处理,并 依据根据由网络节点12所执行的分组分类处理关于输入分组16所做的交换或路由决定而 发送(对应的)输出分组16。这里,将明白,节点12所做的交换或路由决定确定如何以及何 时将流入分组16映射到节点12的特定端口以作为流出分组16。当然,这些决定还涵盖分 组丢弃,其中不将给定流入分组16作为流出分组16从节点12发送,而是将其丢弃,因为其 分组密钥18没有与在节点12处所定义的任何分组处理规则22匹配。
[0033] 节点12包括一个或多个处理电路32,这一个或多个处理电路32基于配置成获得 对应于由网络节点12所接收的数据分组16的分组密钥18而配置成执行分组分类处理。分 组密钥18可以包含在分组报头信息中,或者可以通过这一个或多个处理电路32或通过节 点12中的另一个处理电路来从分组报头信息中导出分组密钥18。不管如何,这一个或多个 处理电路32结合指纹数据库36利用分组密钥18来标识是分组密钥18的可能匹配的一个 或多个分组处理规则22。
[0034] 可能匹配的分组处理规则22的标识是通过将分组密钥18的特征位50与用作规 则数据库20的压缩表示的指纹数据库36中的规则指纹38进行比较来进行的。当然,规则 数据库20包括用于控制流入分组16的分类和处理的实际分组处理规则22。规则指纹38 小于分组处理规则22,因为它们包含对应于分组处理规则22中作为区分它们的各个规则 22或子集的搜索切割点操作的位位置的切割点位52。
[0035] 如上所述,分组密钥18的特征位50占据对应于切割点位52的位位置,并且这允 许这一个或多个处理电路32仅仅通过存取指纹数据库36或等效地评估实施或以其它方式 表示指纹数据库36的搜索结构40来确定规则数据库20中的任何分组处理规则22是否是 给定分组密钥18的可能匹配。例如,搜索结构40包括对应于切割点位52的节点,并按照 所评估的分组密钥18中的特征位50的二进制值的函数遍历搜索结构40。
[0036] 假设这种处理导致标识是分组密钥18的可能匹配的一个或多个分组处理规则 22,那么这一个或多个处理电路32配置成从规则数据库20获取所标识的一个或多个分组 处理规则22,并将分组密钥18与所获取的一个或多个规则22进行比较。对应地,这一个或 多个处理电路32配置成取决于分组密钥18是否与所获取的这一个或多个规则22中的任 何规则匹配来指示规则命中或未命中。将明白,该指示促使对讨论中的分组16运用处理一 例如,在规则命中的情况下,节点12内的分组处理电路根据匹配的分组处理规则22处理分 组16,并且在规则未命中的情况下,分组处理电路丢弃分组16或采取其它基于未命中的措 施。
[0037] 记着上文,将明白,在至少一个实施例中,这一个或多个处理电路32配置成基于 根据与给定接收分组16的分组密钥18匹配的获取的分组规则22处理给定接收分组16而 将给定接收分组16分类以便作为对应的输出分组16进行交换或路由。在相同或在其它实 施例中,这一个或多个处理电路32包括数字处理电路,该数字处理电路配置成执行可能与 分组密钥18匹配的一个或多个分组处理规则22的标识,并执行所获取的一个或多个规则 22与分组密钥18的比较。数字处理电路可以包括一个或多个微处理器或其它固定或可编 程处理电路。在至少一个实施例中,这一个或多个处理电路32包括基于微处理器的电路, 该电路根据本文的教导至少部分地基于存储在第一存储器34、第二存储器44、或对于这一 个或多个处理电路32可存取的另一存储器或计算机可读介质中的计算机程序指令的执行 而进行配置。
[0038] 在至少一个实施例中,第一存储器34是芯片上存储器、或能够支持讨论中的高速 路由处理的另一类型的低等待时间存储器。在一个示例实施例中,第一存储器34位于包括 这一个或多个处理电路32的数字处理电路的内部,或者第一存储器34以其它方式对于数 字处理电路可以第一等待时间存取。相反地,第二存储器44位于数字处理电路的外部,或 者以其它方式对于数字处理电路可以与第一等待时间相比较高的第二等待时间存取。数字 处理电路配置成从第二存储器44获取所标识的一个或多个分组处理规则22,但是在处理 给定分组密钥18期间可以有利地避免这样做,除非指纹数据库处理首先指示,在规则数据 库20中存在是分组密钥18的可能匹配的至少一个分组处理规则22。
[0039] 图7示出与图4中所介绍的节点体系结构一致的示例布置。这里,节点12包括分 组处理引擎60和可选的硬件逻辑或数据平面代码62。实际规则数据库20存储在第二存储 器44中,第二存储器44可以是低成本外部存储器,例如DDR3 (第三代双倍数据速率同步动 态随机存取存储器)。这里,将了解,分组处理引擎60表示之前公开的这一个或多个处理电 路32的实现,并且分组处理引擎60可以包括作为芯片上存储器或如RLDRAM (缩短等待时 间动态随机存取存储器)的另一类型的低等待时间存储器的第一存储器34。这里,以第一 存储器34必须快速以支持指纹数据库处理(搜索可能匹配的规则22)、而第二存储器44可 能较为缓慢的相对意义来定义术语"低"和"高"的使用,第二存储器44之所以可以较为缓 慢是因为,与它的事务的数量变得低得多,因为利用指纹数据库36进行对于可能匹配的搜 索,并且只是为了检索可能匹配的规则22才需要存取规则数据库20。
[0040] 注意,图7指示,第一存储器34提供搜索结构存储,以便导航搜索结构40,从而预 测可能匹配的规则22。在这方面,分组处理引擎60或更一般地是之前所介绍的这一个(或 多个)处理电路32配置成按照指纹数据库36的切割点位52的函数定义搜索结构40并按 照分组密钥18的特征位50的函数遍历搜索结构40,以便标识是分组密钥18的可能匹配的 这一个或多个分组处理规则22。
[0041] 在一个或多个实施例中,这一个或多个处理电路32配置成将单个分组处理规则 22标识为分组密钥18的唯一的可能匹配,或者标识规则数据库20中表示分组密钥18的可 能匹配的分组处理规则22的子集或范围。在任一情况下,在分组分类处理的有利配置中, 这一个或多个处理电路32不会为了给定分组密钥18的分类处理存取第二存储器44,除非 指纹数据库处理指示在规则数据库20中存在至少一个可能匹配的分组处理规则22。
[0042] 在至少一个实施例中,指纹数据库36配置成在分组密钥18与规则数据库20中的 相应的各个规则22之间提供精确匹配。这里,这一个或多个处理电路32基于配置成执行 以下动作而配置成预处理规则数据库20以便随后在现场分组分类处理中使用:在逻辑上 按照二进制顺序将规则数据库20中的分组处理规则22排序;获得通过对按照所述二进制 顺序采取的分组处理规则22的配对运用异或("X0R")操作而产生的最高有效位(MSB)的位 位置,其中这些位位置是切割点位52。
[0043] 对应地,在一个或多个实施例中,这一个或多个分组处理电路32另外配置成基于 根据按照降序或升序顺序采取的切割点位52对分组处理规则22的集合进行划分和进一步 细分而形成与切割点位52的列表相对应的搜索结构40。在至少一个这样的布置中,指纹数 据库处理允许从规则数据库20标识单个可能匹配的规则22,并且这一个或多个处理电路 32配置成从规则数据库20检索这单个标识的规则22,以便与正在分类的分组16的分组密 钥18进行比较匹配。
[0044] 在一个或多个实施例中,指纹数据库36或等效地指纹数据库36的搜索结构表示 配置成提供分组密钥18与规则数据库20中的各个规则22的相应范围之间的范围匹配。这 种布置基于将这一个或多个处理电路32配置成基于以下动作预处理规则数据库20以获得 指纹数据库36 :将分组处理规则22按序排到非重叠范围中;生成对应于每个非重叠范围的 下端的规则指纹38 ;以及形成对应于规则指纹38的搜索结构40。对应地,这一个或多个处 理电路32基于配置成从非重叠范围中的相应非重叠范围检索多个规则22而配置成从规则 数据库20中获取所标识的一个或多个分组处理规则22,以便对于分组密钥18进行所检索 的多个规则22中的各个规则的比较匹配。
[0045] 在一个或多个其它实施例中,指纹数据库36基于具有重叠前缀的规则22的范围。 这一个或多个处理电路32配置成:预处理规则数据库20以便结合对应于与重叠前缀相关 联的这一个或多个规则22的索引值来存储规则22,并标识是给定分组密钥18的可能匹配 的这一个或多个分组处理规则22。具体来说,这里,这一个或多个处理电路32配置成执行 最长前缀匹配,并通过对包含规则数据库20的第二存储器44进行一次存取来检索所标识 的一个或多个分组处理规则22,从而检索与最长前缀匹配相关联的规则22以及对应于与 重叠前缀相关联的这一个或多个规则22的这一个或多个索引值。
[0046] 此外,在其中指纹数据库36基于具有重叠前缀的规则22的范围的至少一个实施 例中,这一个或多个处理电路32配置成将对应于与重叠前缀相关联的这一个或多个规则 22的那些索引值存储在表示指纹数据库36的搜索结构40中。关于这点,这一个或多个处 理电路32配置成通过关于搜索结构40执行最长前缀匹配来标识是给定分组密钥18的可 能匹配的这一个或多个分组处理规则22,包括:响应于在搜索结构40中遍历超过存在可能 匹配的规则的子节点,利用索引值来从子节点回溯到表示可能匹配的规则22的对应母节 点。
[0047] 此外,在至少一个实施例中,这一个或多个处理电路32在一个或多个实施例中配 置成将对应于与重叠规则前缀相关联的这一个或多个规则22的那些索引值存储在表示指 纹数据库36的搜索结构40中。这一个或多个处理电路32通过以下方法来标识是分组密 钥18的可能匹配的这一个或多个分组处理规则22 :关于搜索结构40执行最长前缀匹配, 以便标识将从规则数据库20获取以关于分组密钥18进行比较匹配的规则22的范围。
[0048] 记着以上分组分类处理配置,图8示出在节点12处实现的分组分类处理的方法 800的一个实施例。将了解,给定流入分组16的"现场"处理包括处理它的分组密钥18以 便进行分类处理,它不包括方框802中所介绍的处理,而是包括方框804-812 (偶数)。方框 802中的"预处理"操作应理解为是在按需基础上执行,例如响应于新规则数据库20的增加 和/或响应于现有规则数据库20的修改而执行。
[0049] 预处理操作包括基于根据之前所描述的教导(即,切割点位确定等)处理规则数据 库20的分组处理规则22而生成构成指纹数据库36的规则指纹38。此外,在一个或多个实 施例中,预处理包括:以排序方式存储规则22以反映指纹数据库36的组织,和/或存储反 映之前所描述的规则22的重叠范围的索引值。
[0050] 在任一情况下,在现场路由/交换操作期间关于任何给定分组密钥18的专利分类 方法800包括获得(方框804)对应于由节点12所接收的数据分组16-流入分组的分组密 钥18。方法800还包括通过将分组密钥18的特征位50与指纹数据库36中的规则指纹38 进行比较来标识(方框806)是分组密钥18的可能匹配的一个或多个分组处理规则22。如 上所述,指纹数据库36在预处理(方框802)期间获得,并且它用作规则数据库20的压缩表 示。具体来说,规则指纹38包括与分组处理规则22中作为区分它们的规则或子集的搜索 切割点操作的位位置对应的切割点位52,其中分组密钥18的特征位50占据对应于切割点 位52的位位置。
[0051] 方法800继续从规则数据库20获取(方框808)所标识的一个或多个分组处理规 则22,然后将分组密钥18与所获取的一个或多个规则22进行比较(方框810)。对应地,方 框800包括取决于分组密钥18是否与所获取的一个或多个规则22中的任何规则匹配来指 示(方框812)规则命中或未命中。
[0052] 因此,将明白,预处理用于确定将用作构成指纹数据库36的规则指纹38的切割点 位52,并且切割点位52将需要比原始规则数据库20小得多的空间。这种布置允许实际分 组处理规则22驻留在低成本外部存储器中。当然,这种允许并不是意味着,强制将规则数 据库20存储在分组处理引擎60的外部,或本发明在这类情形中不适用。实际上,也可以是, 一些设计允许指纹数据库36和规则数据库20均位于芯片上或甚至在相同存储器中。
[0053] 甚至在这类情况下,通过指纹数据库处理以确定是否存在给定分组密钥18的任 何可能匹配的规则22而获得的效率是显著的,因为这种处理只需要涉及小得多的指纹位 串的处理(与处理整个长度的分组处理规则22的备选方案相比)。一种示例情形是多核"高 接触"分组处理。一般来说,指纹数据库36的使用提供缓存友好的查找处理,并且甚至可以 更广泛地理解为优化查找过程以实现更好的性能。
[0054] 但是,如本文中所认识,有利的是至少将指纹数据库36存储在芯片上存储器或其 它低等待时间存储器中。可以在搜索结构40中布置或以其它方式表示指纹数据库36,搜索 结构40可以是二元树、N元树、直接索引结构等。这种使用指纹数据库36来进行初始可能 匹配搜索的方法将对潜在较大的规则数据库20 (具有其潜在较长字长度的规则22)执行高 速搜索的难题转换为小得多的指纹数据库36的可管理的高性能结构化搜索,以便预测任 何实际规则22是否是任何给定分组密钥18的可能匹配。
[0055] -旦从指纹数据库处理标识这一个或多个可能匹配的规则22,便从实际规则存储 引进所标识的这一个或多个规则22,并且这是唯一一次分组处理引擎60需要存取外部或 高等待时间存储器(如DDR3)以进行现场分组分类。如果所获取的这一个或多个规则22中 有任何一个规则与分组密钥18匹配,那么分组处理引擎60断言规则命中,否则它断言未命 中。
[0056] 在这种布置的许多优点中,有这些项:在存在任何存取实际规则数据库20的需要 之前,生成并最初搜索压缩搜索结构40 ;查找成本与规则数据库20中的规则22的宽度(按 位)无关;压缩搜索结构40形式的指纹数据库36具有比规则数据库20小得多的存储器占 用,并且比整个规则数据库20更容易符合芯片上或其它(相对而言)稀有的低等待时间存储 器;以及在一个或多个实施例中,基于指纹的分组分类的方法只需要一次存取外部或高等 待时间存储器(用于获取标识为给定分组密钥18的可能匹配的规则22)。
[0057] 例如,预期,384个位的密钥宽度足以覆盖IPv6 ACL,并且在本文的教导下,对于对 应的指纹数据库36,可以在芯片上存储器的小于3兆位中容纳64K个规则。在28nm硅工艺 中的该存储器量小于2平方毫米管芯面积,即使假设百分之二十的实现开销。表示指纹数 据库36的搜索结构40可以利用二元搜索算法、树形搜索算法和/或直接索引算法来有效 地搜索。在至少一个实施例中,搜索基于本文稍后将详述的优化LPM查找。大体上,本文教 导的基于指纹的方法具有直接适用于精确匹配搜索、范围匹配搜索、基于LPM的查找等的 优点。
[0058] 这里,应注意,指纹处理不会导致假否定。即,如果指纹处理指示规则22中没有一 个规则是分组密钥18的可能匹配,那么在不出错的情况下,可以断言未命中。另一方面,如 果指纹处理指示规则22中有一个或多个规则是分组密钥18的可能匹配,那么结果可以是, 所获取的规则22中没有一个规则是分组密钥18的实际匹配。因此,指纹处理可能生成假 肯定,但是这种可能性不会降低通过使用指纹处理以确定是否应当从规则数据库20获取 任何一个或多个规则22以便对于分组密钥18进行比较而获得的效率。
[0059] 在一种方法中,规则22包括用作规则数据库20的ACL中的ACE。在一个或多个实 施例中,预处理包括: -在不同字段中分解ACL规则(一些字段可以组合): 〇一些字段用于LPM匹配 〇一些字段用于精确匹配 〇一些字段用于范围匹配 -处理引擎60创建叉积以便找到最终解答,就像MRFC中所做的那样。
[0060] 在与ERICSSON SMART EDGE路由器中的MRFC相关的示例中,这种预处理可以包 括: -取ACL的所有字段并确定它们的叉积; -尝试进行查找操作。
[0061] 在精确匹配查找示例中,令"R1"表示第一分组处理规则22-1,"R2"表示规则 22-2,依此类推。此外,对于规则R1-R8的示例集合,假设规则位模式如下(LSB在最右边): R1- 00000000 00000000 00000000 00000000 R2- 00100000 00101000 00000000 00000000 R3- 00101000 00101100 00000000 00000000 R4- 01001000 00101101 11001100 01010100 R5- 01100000 00101110 11001100 00110010 R6- 01110000 00110110 00011001 00110011 R7- 10000000 11000000 00011010 00000000 R8- 10010000 11110000 00000000 00000000 规则R1-R8按升序顺序排序。排序不需要是物理的,例如,排序可以在逻辑上进行,而 不一定在实际存储中将规则重新排序。
[0062] 然后,对按照其连续顺序所取的规则22的每个配对采取逻辑X0R。该操作标识这 两个规则之间的最高有效区分位的位位置,并且X0R处理包括将所标识的位位置记录为切 割点位52。参见R1-R8的以下示例: X0R_BIT1=在(R1 XOR R2)中所设置的最高有效位的位位置=29 X0R_BIT2=在(R2 XOR R3)中所设置的最高有效位的位位置=27 X0R_BIT3=在(R3 XOR R4)中所设置的最高有效位的位位置=30 X0R_BIT4=在(R4 XOR R5)中所设置的最高有效位的位位置=29 X0R_BIT5=在(R5 XOR R6)中所设置的最高有效位的位位置=28 X0R_BIT6=在(R6 XOR R7)中所设置的最高有效位的位位置=31 X0R_BIT7=在(R7 XOR R8)中所设置的最高有效位的位位置=28 以上处理得到表示上文示为R1-R8的规则22的示例集合的指纹38的X0R位列表。在 该示例中,X0R位列表是X〇R_BIT_LIST= {29,27,30,29,28,31,28},并且它用作指纹数据库 36。因此,在该示例中,实际规则R1-R8可以理解为是构成规则数据库20的实际分组处理 规则22的集合,并且切割点位52的X0R列表可以理解为是构成指纹数据库36的规则指纹 38 〇
[0063] 有利地,包括以上X0R位列表的成员的规则指纹38可以只利用五个位来编码。即, 利用5位规则指纹38来表示32位规则22。即使规则22是例如IPv6地址掩码,仍可将指 纹38编码为7位值。因此,与规则数据库20相比,用于指纹导出的基于X0R的切割点位方 法得到指纹数据库36的显著压缩。
[0064] 在构造等效于由 X0R_BIT_LIST= {xor_bitl=29,xor_bit2=27,xor_bit 3=3〇, xor_bit4=29, xor_bit5=28, xor_bit6=31, xor_bit7=28}所表不的指纹数据库 36 的表不 的搜索结构的示例方法中,处理如此开始: -找到X0R列表中的最大数字,并利用该数字作为第一切割点一这里,最大数字=31, 并且它用作搜索树结构中的第一切割点; -以上第一切割点的使用得到具有低于31的切割点节点的以下条目的树的左边: {29,27,30,29,28}; -相应地,树的右边具有条目:{28}。
[0065] 图9中示出对应的示例搜索结构40,其中可见例如对应于xor_bit6=31的节点 70-1。现在,取决于该切割点位52的1或0二进制值,搜索将在所示树结构中对于对应于 xor_bit7=28的节点70的右侧子集合向右往下进行,或者对于对应于xor_bitl=29、xor_ bit2=27、xor_bit3=30、xor_bit4=29和xor_bit5=28的节点70的左侧子集合向左往下进 行。
[0066] 为了选择搜索结构40中的子节点70的切割点,选择每个节点70的左边和右边的 最大X0R位,并利用这作为切割点。图10示出根据该方法的搜索结构40的进一步发展。图 11示出通过增加进一步子节点70而获得的最终搜索结构40。
[0067] 所得搜索结构40用作指纹数据库36的压缩版本以便准备存储在第一存储器34 中。基于按照所评估的分组密钥18的特征位50的二进制值的函数在搜索结构40中从母 节点70遍历到子节点70,分组处理引擎60标识可能匹配的规则22。在这种指纹数据库处 理的一个示例中,假设利用如下分组密钥18呈现分组处理引擎60 :分组密钥=01001000 00101101 11001100 01010100。
[0068] 按照X0R列表-{29,27,30,29,28,31,28},分组处理引擎60从分组密钥18 提取以下位:BIT_29=0, BIT_27=1,BIT_30=1,BIT_29=0, BIT_28=0, BIT_31=0, BIT_28=0。分 组处理引擎60在如图11所示的搜索结构40中从根节点70-1开始。如果分组密钥18的 位31是1,那么来自根节点70的处理将向右往下进行,并且如果分组密钥18的位31是0, 那么来自根节点70的处理将向左往下进行。因此,分组密钥18的位31是将在遍历搜索结 构40中使用的分组密钥18的第一特征位50。
[0069] 在该示例中,分组密钥18的位31是0,所以分组处理引擎60在搜索结构40中向 左往下遍历至子节点70-3,子节点70-3指示应当审查分组密钥18的位30。因此,分组密 钥18的位30表示将在遍历搜索结构40中使用的它的下一个特征位50。由于分组密钥18 的位30是1,所以分组处理引擎60向下遍历到右边,从而到达子节点70-4,它对应于X0R_ BIT4。
[0070] 此时,应注意,分组处理引擎60记住在遍历搜索结构40期间所访问的每个节点 70,从而在支持查找处理中提供到上一个(或多个)节点70的退回。
[0071] 继续该示例和节点70-4,分组处理引擎60评估分组处理密钥18的位29是将审查 的下一个特征位50。由于位29是0,并且也因为节点70-4没有左子节点,所以节点70-4 是继续到左边的最终节点。该算法要求,当搜索到达终止节点时,目标规则的对应位(在搜 索结构40中的节点70上指定)必须是1 ;否则需要在搜索结构上回溯。回溯可以潜在地追 溯到搜索结构中的多个级,直到满足所述要求。现在,搜索回溯到节点70-3。在审查目标规 则的第30个位(它是1)之后,指纹处理算法预测节点70-3 (规则R4)是唯一的可能匹配。
[0072] 因此,分组处理引擎60从第二存储器44获取R4,并将它与分组密钥18进行比较, 从而基于该比较断言规则命中。
[0073] 现在,考虑"范围匹配"问题的示例解决方案,其中利用给定分组密钥18的指 纹数据库处理来标识规则数据库20中包括一个或多个可能匹配的规则22的分组处理 规则22的子集。考虑IPv4地址作为一个示例。诸如192. 168. 1. 0/32的地址要求精确 匹配。将前缀长度变为较小值(如28),那么192. 168. 1. 0/28表示从192. 168. 1. 0/32到 192. 168. 1. 255/32的范围。考虑若干个地址或地址范围(它们可能不能在像这样的真实世 界中使用):〇·〇·〇· 80/32,[0·0·0· 80 -0·0·0· 84],[0·0·0· 82 -0·0·0· 86],[0·0·0· ΙΟ. 0.3. 255], [0.0. 0.1 - 0.0. 255. 255]。 这里为 了简化标记, 通过并置到单个数字中来转 化这些四个八位组的地址。例如,0. 0. 255. 255是0x00. 00. FF. FF,并且OxOOOOFFFF是十 进制数65535。这些示例范围可编写为数字对[80,80]、[80,84]、[82,90]、[1,1023]、 [1-65535],并且在一个或多个实施例中,分组处理引擎60配置成确保这些范围不具有任 何局部重叠。例如,在就在上文示出的范围集合中,在[80,84]和[82,90]之间存在局部 重叠,但是两者都没有完全包含在另一个中。
[0074] 在该示例情形中,分组处理引擎60配置成通过创建不具有重叠范围的等效范围 集合来消除规则范围中的局部重叠。对于该示例情形,这种处理将规则数据库20中的规 则 22 的逻辑范围创建为[1,79]、[80,80]、[81,81]、[82,84]、[85,90]、[91,1023]、 [1024,65535]。这些是非重叠范围。其中,在该处理之前,一些范围被原始范围中的多个范 围包含。例如,原始[1,1023]和[1,65535]包含[1,79]。该信息存储在这些经过处理 的范围的旁边,以使得当预测匹配是[1,79]时,可以检索原始[1,1023]和[1,65535]。 在需要排序的情况下,分组处理引擎60配置成在每个范围的下端的基础上将这些非重叠 范围排序。刚刚上述范围就已经按该顺序排序。
[0075] 保留在第二存储器44中的规则数据库20的对应排列为例如: -Rl- 1, 79 -R2- 80, 80 -R3- 81, 81 -R4- 82, 84 -R5- 85, 90 -R6- 91, 1023 -R7- 1024, 65535 作为该预处理的一部分,分组处理引擎60基于以下关联创建对应的规则指纹38 : -R0- 0 (这里插入零虚拟规则以在指纹处理中包含R1) -Rl- 1 -R2- 80 -R3- 81 -R4- 82 -R5- 85 -R6- 91 -R7- 1024 在生成规则指纹38之后,分组处理引擎60形成对应的搜索结构40,例如如图9-11的 示例中所示。在搜索结构40基于非重叠范围的情况下,分组处理引擎60预测可能匹配的 规则22所在的范围,并且分组处理引擎60获取该范围的对应规则22以便对照示例分组密 钥18进行比较。
[0076] -个或多个其它实施例基于LPM查找。在一个示例情形中,利用0来延伸前缀。只 需考虑一个前缀被另一个前缀覆盖(前者具有比后者短的前缀长度)的情形。注意,较短前 缀将具有比较长前缀小的数值,并且可以利用该属性一即,如果分组处理引擎60预测较长 前缀为可能匹配的规则22,那么它可以获取被该较长前缀所覆盖的所有规则22,以使得所 有这些规则22都可用于对照所评估的分组密钥18进行比较匹配。
[0077] 在IPv4地址的示例情形中:

【权利要求】
1. 一种在网络节点(12)中的分组分类的方法(800),包括: 获得对应于由所述网络节点(12)所接收的数据分组(16)的分组密钥(18); 通过将所述分组密钥(18)的特征位(50)与用作包括分组处理规则(22)的集合的规则 数据库(20 )的压缩表示的指纹数据库(36 )中的规则指纹(38 )进行比较来标识(806 )是所 述分组密钥(18)的可能匹配的一个或多个分组处理规则(22),所述规则指纹(38)包括与 所述分组处理规则(22)中作为区分它们的所述规则或子集的搜索切割点操作的位位置对 应的切割点位(52),并且其中所述分组密钥(18)的所述特征位(50)占据对应于所述切割 点位(52)的位位置; 从所述规则数据库获取(808)所述标识的一个或多个分组处理规则(22); 将所述分组密钥(18)与所述获取的一个或多个规则(22)进行比较(810);以及 取决于所述分组密钥(18)是否与所述获取的一个或多个规则(22)中的任何规则匹配 来指示(812)规则命中或未命中。
2. 如权利要求1所述的方法(800),还包括:在内部或其它低等待时间存储器(34)中 存取所述指纹数据库(36);以及在外部或其它高等待时间存储器(44)中存取所述规则数据 库(20 ),其中术语"低等待时间"和"高等待时间"是相对于彼此而言的。
3. 如权利要求2所述的方法(800),其中标识(806)是所述分组密钥(18)的可能匹配 的所述一个或多个分组处理规则(22 )包括数字处理器(32 )评估保留在所述内部或低等待 时间存储器(34)中的所述指纹数据库(36),并且其中获取(808)所述标识的一个或多个规 则(22)包括所述数字处理器(32)从保留在所述外部或高等待时间存储器(44)中的所述规 则数据库(20 )直接或间接地检索所述标识的一个或多个规则(22 )。
4. 如前述任一权利要求所述的方法(800),还包括:按照所述指纹数据库(36)的所述 切割点位(52)的函数定义搜索结构(40),并按照所述分组密钥(18)的所述特征位(50)的 函数遍历所述搜索结构(40),以便标识是所述分组密钥(18)的可能匹配的所述一个或多 个分组处理规则(22)。
5. 如权利要求4所述的方法(800),还包括将所述搜索结构(40)作为二元树、N元树 或作为直接索引结构来实现。
6. 如前述任一权利要求所述的方法(800),其中标识(806)是所述分组密钥(18)的可 能匹配的所述一个或多个分组处理规则(22)包括:将单个分组处理规则(22)标识为所述 分组密钥(18)的唯一可能匹配,或者标识所述规则数据库(20)中表示所述分组密钥(18) 的可能匹配的所述分组处理规则(22)的子集或范围。
7. 如前述任一权利要求所述的方法(800),还包括:出于将给定分组(16)分类的目 的,只为了检索所述标识的一个或多个分组处理规则(22)而存取所述规则数据库(20)。
8. 如前述任一权利要求所述的方法(800),其中所述指纹数据库(36)基于所述方法 (800)提供分组密钥(18)与所述规则数据库(20)中的相应的各个规则(22)之间的精确匹 配,所述方法(800 )包括通过以下步骤预处理(802 )所述规则数据库(20 )以获得所述指纹 数据库(36): 在逻辑上按照二进制顺序将所述规则数据库(20)中的所述分组处理规则(22)排序; 获得通过对按照所述二进制顺序采取的所述分组处理规则(22)的配对运用异或操作 而产生的最高有效位的位位置,其中这些位位置是所述切割点位(52);以及 基于根据按照降序或升序顺序采取的所述切割点位(52)对所述分组处理规则(22)的 集合进行划分和进一步细分,形成对应于所述切割点位(52)的列表的搜索结构(40),所述 搜索结构(40 )包含所述指纹数据库(36 )。
9. 如权利要求8所述的方法(800),其中从所述规则数据库(20)获取(808)所述标识 的一个或多个分组处理规则(22 )包括从所述规则数据库(20 )检索单个规则(22 )以便对于 所述分组密钥(18)进行比较匹配。
10. 如权利要求1-7中任一权利要求所述的方法(800),其中所述指纹数据库(36)基 于所述方法(800)提供分组密钥(18)与所述规则数据库(20)中的各个规则(22)的相应范 围之间的范围匹配,所述方法(800)包括通过以下步骤预处理(802)所述规则数据库(20) 以获得所述指纹数据库(36): 将所述分组处理规则(22)按序排到非重叠范围中,其中所述非重叠范围的下端在逻辑 上按照升序顺序排列; 通过在逻辑上对每个非重叠范围的下端执行异或操作来生成规则指纹(38 );以及 形成对应于所述规则指纹(38)的搜索结构(40),其中所述搜索结构中的每个节点对 应于所述非重叠范围之一。
11. 如权利要求10所述的方法(800),其中从所述规则数据库(20)获取所述标识的 一个或多个分组处理规则(22)包括从所述非重叠范围中的相应非重叠范围检索多个规则 (22),以便对于所述分组密钥(18)进行所述检索的多个规则(22)的各个规则的比较匹配。
12. 如权利要求1-7中任一权利要求所述的方法(800),其中所述指纹数据库(36)基 于具有重叠前缀的规则(22)的范围,并且其中所述方法(800)还包括预处理(802)所述规 则数据库(20)以便结合对应于与所述重叠前缀相关联的所述一个或多个规则(22)的索引 值存储规则(22),并且其中标识是所述分组密钥(18)的可能匹配的所述一个或多个分组 处理规则(22)包括执行最长前缀匹配,并且其中检索所述标识的一个或多个分组处理规则 (22)包括对包含所述规则数据库(20)的存储器(44)进行一次存取,以便检索与所述最长 前缀匹配相关联的所述规则(22)以及对应于与所述重叠前缀相关联的所述一个或多个规 则(22)的所述一个或多个索引值。
13. 如权利要求1-7中任一权利要求所述的方法(800),其中所述指纹数据库(36)基 于具有重叠前缀的规则(22)的范围,并且其中所述方法(800)还包括将对应于与所述重叠 前缀相关联的所述一个或多个规则(22)的那些索引值存储在表示所述指纹数据库(36)的 搜索结构(40)中,并且其中标识是所述分组密钥(18)的可能匹配的所述一个或多个分组 处理规则(22)包括关于所述搜索结构(40)执行最长前缀匹配,这包括响应于在所述搜索 结构(40)中遍历超过存在可能的匹配规则(22)的子节点(70),利用所述索引值来从所述 子节点(70)回溯到表示可能匹配的规则(22)的对应母节点(70)。
14. 如权利要求1-7中任一权利要求所述的方法(800),其中所述指纹数据库(36)基 于具有重叠前缀的规则(22)的范围,并且其中所述方法(800)还包括将对应于与所述重叠 前缀相关联的所述一个或多个规则(22)的那些索引值存储在表示所述指纹数据库(36)的 搜索结构(40)中,并且其中标识是所述分组密钥(18)的可能匹配的所述一个或多个分组 处理规则(22)包括关于所述搜索结构(40)执行最长前缀匹配,以标识将从所述规则数据 库(20)获取以便关于所述分组密钥(18)进行比较匹配的规则(22)的范围。
15. -种网络节点(12),配置成基于分组分类在分组网络(10)中路由或交换分组 (16),所述网络节点(12)包括: 一个或多个通信接口(30),配置成接收输入分组(16)以进行路由或交换处理,并根据 依据由所述网络节点(12)所执行的分组分类处理关于所述流入分组(16)所做的交换或路 由决定而发送输出分组(16);以及 一个或多个处理电路(32),基于配置成执行以下动作而配置成执行所述分组分类处 理: 获得对应于由所述网络节点(12)所接收的数据分组(16)的分组密钥(18); 通过将所述分组密钥(18)的特征位(50)与用作包括分组处理规则(22)的集合的规则 数据库(20 )的压缩表示的指纹数据库(36 )中的规则指纹(38 )进行比较来标识是所述分组 密钥(18)的可能匹配的一个或多个分组处理规则(22),所述规则指纹(38)包括与所述分 组处理规则(22)中作为区分它们的各个规则(22)或子集操作的搜索切割点操作的位位置 对应的切割点位(52),并且其中所述分组密钥(18)的所述特征位(50)占据对应于所述切 割点位(52)的位位置; 从所述规则数据库(20)获取所述标识的一个或多个分组处理规则(22); 将所述分组密钥(18)与所述获取的一个或多个规则(22)进行比较;以及 取决于所述分组密钥(18)是否与所述获取的一个或多个规则(22)中的任何规则匹配 来指示规则命中或未命中。
16. 如权利要求15所述的网络节点(12),其中所述一个或多个处理电路(32)配置成 基于根据与给定接收分组(16)的分组密钥(18)匹配的所述获取的分组规则(22)处理所述 给定接收分组(16)来对所述给定接收分组(16)进行分类以作为对应的输出分组(16)进行 交换或路由。
17. 如权利要求15或16所述的网络节点(12),其中所述网络节点(12)包括数字处理 电路(32),其配置成执行可能与所述分组密钥(18)匹配的所述一个或多个分组处理规则 (22)的所述标识,并执行所述获取的一个或多个规则(22)与所述分组密钥(18)的所述比 较,并且其中所述网络节点(12)还包括 : 用于存储所述指纹数据库(36)的第一存储器(34),所述第一存储器(34)位于所述数 字处理电路(32)的内部或者以其它方式对于所述数字处理电路(32)可以第一等待时间进 行存取;以及 用于存储所述规则数据库(20)的第二存储器(44),所述第二存储器(44)位于所述数 字处理电路(32 )的外部或者以其它方式对于所述数字处理电路(32 )可以与所述第一等待 时间相比较高的所述第二等待时间进行存取。
18. 如权利要求17所述的网络节点(12),其中所述数字处理电路(32)配置成从所述 第二存储器(44)获取所述标识的一个或多个分组处理规则(22)。
19. 如权利要求15-18中任一权利要求所述的网络节点(12),其中所述一个或多个处 理电路(32)配置成按照所述指纹数据库(36)的所述切割点位(52)的函数定义搜索结构 (40),并按照所述分组密钥(18)的所述特征位(50)的函数遍历所述搜索结构(40),以便标 识是所述分组密钥(18)的可能匹配的所述一个或多个分组处理规则(22)。
20. 如权利要求15-19中任一权利要求所述的网络节点(12),其中所述一个或多个处 理电路(32)基于配置成执行以下动作而配置成标识是所述分组密钥(18)的可能匹配的所 述一个或多个分组处理规则(22):将单个分组处理规则(22)标识为所述分组密钥(18)的 唯一可能匹配,或者标识所述规则数据库(20)中表示所述分组密钥(18)的可能匹配的所 述分组处理规则(22)的子集或范围。
21. 如权利要求15-20中任一权利要求所述的网络节点(12),其特征进一步在于,出 于对给定接收分组(16)进行分类的目的,所述一个或多个处理电路(32)配置成只为了检 索所述标识的一个或多个分组处理规则(22 )而存取所述规则数据库(20 )。
22. 如权利要求15-21中任一权利要求所述的网络节点(12),其中所述指纹数据库 (36 )配置成基于所述一个或多个处理电路(32 )提供分组密钥(18 )与所述规则数据库(20 ) 中的相应的各个规则(22)之间的精确匹配,所述一个或多个处理电路(32)基于配置成执 行以下步骤而配置成预处理用于随后在分组分类处理中使用的所述规则数据库(20)以获 得所述指纹数据库(36) : 在逻辑上按照二进制顺序将所述规则数据库(20)中的所述分组处理规则(22)排序; 获得通过对按照所述二进制顺序采取的所述分组处理规则(22)的配对运用异或操作 而产生的最高有效位的位位置,其中这些位位置是所述切割点位(52);以及 基于根据按照降序或升序顺序采取的所述切割点位(52)对所述分组处理规则(22)的 集合进行划分和进一步细分,形成对应于所述切割点位(52)的列表的搜索结构(40)。
23. 如权利要求22所述的网络节点(12),其中所述一个或多个处理电路(32)基于配 置成从所述规则数据库(20 )检索单个规则(22 )而配置成从所述规则数据库(20 )获取所述 标识的一个或多个分组处理规则(22),以便对于所述分组密钥(18)进行比较匹配。
24. 如权利要求15-21中任一权利要求所述的网络节点(12),其中所述指纹数据库 (36)配置成基于所述一个或多个处理电路(32)提供分组密钥(18)与所述规则数据库(20) 中的各个规则(22)的相应范围之间的范围匹配,所述一个或多个处理电路(32)基于配置 成执行以下步骤而配置成预处理所述规则数据库(20)以获得所述指纹数据库(36): 将所述分组处理规则(22)按序排到非重叠范围中; 生成对应于每个非重叠范围的下端的规则指纹(38);以及 形成对应于所述规则指纹(38)的搜索结构(40)。
25. 如权利要求24所述的网络节点(12),其中所述一个或多个处理电路(32)基于配 置成从所述非重叠范围中的相应非重叠范围检索多个规则(22)而配置成从所述规则数据 库(20)获取所述标识的一个或多个分组处理规则(22),以便对于所述分组密钥(18)进行 所述检索的多个规则(22 )中的各个规则的比较匹配。
26. 如权利要求15-21中任一权利要求所述的网络节点(12),其中所述指纹数据库 (36)基于具有重叠前缀的规则(22)的范围,并且其中所述一个或多个处理电路(32)配置 成:预处理所述规则数据库(20)以便结合对应于与所述重叠前缀相关联的所述一个或多 个规则(22)的索引值存储规则(22);并基于配置成执行最长前缀匹配而标识是所述分组密 钥(18)的可能匹配的所述一个或多个分组处理规则(22);并通过对包含所述规则数据库 (20 )的存储器(44)进行一次存取以检索与所述最长前缀匹配相关联的所述规则(22 )以及 对应于与所述重叠前缀相关联的所述一个或多个规则(22)的所述一个或多个索引值来检 索所述标识的一个或多个分组处理规则(22)。
27. 如权利要求15-21中任一权利要求所述的网络节点(12),其中所述指纹数据库 (36)基于具有重叠前缀的规则(22)的范围,并且其中所述一个或多个处理电路(32)配置 成:将对应于与所述重叠前缀相关联的所述一个或多个规则(22)的那些索引值存储在表 示所述指纹数据库(36)的搜索结构(40)中;并通过关于所述搜索结构(40)执行最长前缀 匹配来标识是所述分组密钥(18)的可能匹配的所述一个或多个分组处理规则(22),这包 括响应于在所述搜索结构(40)中遍历超过存在可能的匹配规则(22)的子节点(60),利用 所述索引值来从所述子节点(60)回溯到表示可能匹配的规则(22)的对应母节点(60)。
28. 如权利要求15-21中任一权利要求所述的网络节点(12),所述指纹数据库(36)基 于具有重叠前缀的规则(22)的范围,并且其中所述一个或多个处理电路(32)配置成将对 应于与所述重叠前缀相关联的所述一个或多个规则(22)的那些索引值存储在表示所述指 纹数据库(36)的搜索结构(40)中,并且其中标识是所述分组密钥(18)的可能匹配的所述 一个或多个分组处理规则(22)包括关于所述搜索结构(40)执行最长前缀匹配,以标识将 从所述规则数据库(20)获取以便关于所述分组密钥(18)进行比较匹配的规则(22)的范 围。
【文档编号】H04L29/06GK104303482SQ201380024104
【公开日】2015年1月21日 申请日期:2013年5月2日 优先权日:2012年5月8日
【发明者】P.阿南德, R.拉克什米肯桑, 陈孙登, 许宁 申请人:瑞典爱立信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1