定义软件定义网络的网络元件的查找表实现的方法和设备的制作方法
【专利摘要】本发明涉及定义软件定义网络的网络元件的查找表实现的方法和设备。呈现了一种用于定义用于软件定义网络“SDN”的网络元件的查找表的实现的方法和设备。网络元件包括用于以两种或更多种相互替换方式实现查找表的硬件。该方法包括基于a)可用于实现查找表的硬件,b)关于一个或多个查找键的信息,和c)下列中的至少一个:查找表的条目的最大数目、连续查找之间的平均时间、查找表的连续修改之间的平均时间,选择(301)相互替换方式的最佳或至少适合的一个,以实现查找表。该方法使得能够以用最佳或至少合适方式利用网络元件的硬件资源的方式配置网络元件。
【专利说明】定义软件定义网络的网络元件的查找表实现的方法和设备
【技术领域】
[0001]本发明通常涉及软件定义网络“SND”。更具体而言,本发明涉及一种用于定义用于软件定义网络的网络元件的查找表的实现的方法、设备和计算机程序。此外,本发明涉及软件定义网络的网络元件。
【背景技术】
[0002]软件定义网络是用于数据传送网络的新兴架构。在软件定义网络“SND”中,控制平面与数据平面分离,使得在可以与网络元件分离的一个或多个控制器中实现控制平面,并且在网络元件中实现数据平面。网络元件可以是例如网际协议“IP”路由器、多协议标签交换“MPLS”节点、分组光交换机、和/或以太网交换机。每个网络元件可以由单一装置或多个装置的组合构成。典型的是,该软件定义网络允许交换和/或路由策略的快速试验和优化,以及对于先前为封闭并且专有的网络元件内部的外部访问。
[0003]基于网络的网际协议“IP”首先基于自主系统“AS”的概念建立。该概念允许网络基于局部须知信息通过将分组转发给合理的下一跳的连接接头来缩放和扩展。AS原理工作非常像传统邮局服务,其中给定城市的邮政工人不需要了解另一城市中所有街道的所有居住者,以便为手中的信件选择合理的下一跳。联网的该方法很简单,并且已经证明有弹性且可扩展。然而,该方法具有一些缺点。其不允许指定目的地或者具有家庭邮箱的住户在不改变它们身份的情形下移动如分组递送服务所涉及的那么远。作为它们附加到的网络接口的目的地拓扑位置,指令与分组递送服务相关的它们的身份。此外,仅使用基本AS原理,难以指定其他特质,诸如逻辑组、接入控制、服务质量、中间网络处理、或指定与形成流的分组序列相关的方面。
[0004]使用邮政服务的类比,软件定义网络针对任何所给街道位置工作,使得来自所有住户的所有信件在软件定义网络边缘上通过网络元件首先聚集。该网络元件被配置成使用全球查找机制来检查用于每一个信件目的地的当前位置。基于全球查找和基于其他全球定义和全球测量的考虑,诸如接入控制或远程位置负载状态,所述网络元件将一个或多个原始信件放置在地址为作为当前目的地的每个街道位置的额外信封内。其然后使用如传统的网际协议“IP”的正常邮政服务,以得到远程位置的这些外封装。这基于现有和可扩展的逐跳转发服务来完成。然后,所述外封装通过远程网络元件打开并且原始信封被递送到目的地。应该注意的是,在软件定义联网和邮政服务之间的上述类比是非常简化的,并且其仅给出关于由软件定义联网提供的通用可能性的限制观点。
[0005]然而,软件定义网络离不开挑战。一些挑战涉及配置网络元件,使得网络元件时常能够执行以上说明的任务并且使得网络元件的资源以充分最佳方式被利用。配置网络元件包括在网络元件能够作为软件定义网络的一部分操作的帮助下定义和实现一个或多个查找表。应该实现每个查找表,使得以充分有效方式利用网络元件的软件资源。
【发明内容】
[0006]下文呈现简化的
【发明内容】
,以便提供对各种本发明实施例的一些方面的基本理解。该概要不是本发明的广泛概述。它既不是旨在识别本发明的关键或重要元件,也不是描述本发明的范围。下文的
【发明内容】
仅以简化形式呈现本发明的一些概念,作为本发明的例示实施例的更加详细描述的前序。
[0007]根据本发明,提供了一种用于定义用于软件定义网络的网络元件的查找表的实现的新方法,其中网络元件包括用于以两种或更多种相互替换方式实现查找表的硬件。根据本发明的方法包括基于可用于实现查找表的硬件、一个或多个第一数据项、和一个或多个第二数据项来选择两种或更多种相互替换方式的最佳或至少合适的一种,以实现查找表,其中:
[0008]-一个或多个第一数据项提供关于查找表的一个或多个查找键的信息,以及
[0009]-一个或多个第二数据项指示下列中的至少一个:查找表的条目的最大数目、从查找表的连续查找之间的平均时间、查找表的连续修改之间的平均时间。
[0010]用于定义查找表的实现的上述方法使得能够以用最佳或至少适合方式利用网络元件的硬件资源的方式来配置网络元件。关于查找键的信息可以但不一定指示例如查找键的字段长度和/或查找的类型,诸如例如虚拟本地访问网络标识符“VLAN-1D”、多协议标签交换“MPLS”标签值、网际协议目的地地址“ IP DA”、网际协议源地址“ IP DA”、以及以太网媒体访问控制“MAC”地址。可以例如用比特或字节来表达字段长度。例如,实现方式的选择可以是使得查找键的这种短字段长度和连续查找(即,高查找频率)之间的较小平均时间,趋于促进基于内容存取存储器“CAM”技术的实现,而长字段长度和低查找频率趋于促使基于检索树“trie”算法和随机存取存储器“RAM”技术的实现。又例如,结合基于内容存取存储器技术的实现,查找表的“不考虑”键匹配比特位置的高相对部分可以被定义以促进三进制内容存取存储器“TCAM”技术,而“不考虑”键匹配比特位置的低相对部分可以被定义,以促进二进制内容存取存储器技术。又例如,实现方式的选择可以是使得一个或多个查找键的某些类型趋于促进特定实现。例如,可能存在用于例如VLAN-1D查找键的专用硬件。
[0011]根据本发明,也提供了一种用于定义用于软件定义网络的网络元件的查找表的实现的新设备,所述网络元件包括用于以两种或更多种相互替换方式实现查找表的硬件。根据本发明的设备包括处理系统,该处理系统适于:
[0012]-接收提供关于查找表的一个或多个查找键的信息的一个或多个第一数据项,
[0013]-接收一个或多个第二数据项,所述一个或多个第二数据项指示下列中的一个:查找表的条目的最大数目、从查找表的连续查找之间的平均时间、查找表的连续修改之间的平均时间,以及
[0014]-基于可用于实现查找表的硬件、一个或多个第一数据项、和一个或多个第二数据项来选择两种或更多种相互替换方式中的一种,以实现查找表。
[0015]根据本发明,也提供了一种用于软件定义网络的新网络元件。所述网络元件可以是例如网际协议“IP”路由器、多协议标签交换“MPLS”交换机、分组光交换机、和/或以太网交换机。网络元件可以由单一装置或多个装置的组合构成。此外,网络元件可以具有模块结构,使得其包括一个或多个行接口模块和诸如控制模块的一个或多个其他模块。根据本发明的网络元件包括:
[0016]-数据传送接口,所述数据传送接口用于接收数据和用于发射数据,接收到的数据指定要在网络元件中实现的查找表,
[0017]-用于以两种或更多种相互替换方式实现查找表的硬件,以及
[0018]-根据用于定义查找表的实现的本发明的设备。
[0019]根据本发明,也提供了一种新软件定义网络,该新软件定义网络包括根据本发明的一个或多个网络元件和用于配置一个或多个网络元件的控制器系统。应该注意的是,控制器系统或其一个或多个部件也可以用作一个或多个网络元件,所述一个或多个网络元件可以是例如网际协议“IP “路由器、多协议标签交换“MPLS”节点、分组光交换机、和/或以太网交换机。
[0020]根据本发明,也提供了一种用于定义用于软件定义网络的网络元件的查找表的实现的新计算机程序,网络元件包括用于以两种或更多种相互替换方式实现查找表的硬件。根据本发明的计算机程序包括计算机可执行指令,该计算机可执行指令用于控制可编程处理系统,以基于可用于实现查找表的硬件、一个或多个第一数据项、和一个或多个第二数据项来选择两种或更多种相互替换方式中的一种,以实现查找表,其中
[0021]-一个或多个第一数据项提供关于查找表的一个或多个查找键的信息,以及
[0022]-一个或多个第二数据项指示下列中的至少一个:查找表的条目的最大数目、从查找表的连续查找之间的平均时间、查找表的连续修改之间的平均时间。
[0023]根据本发明,也提供了一种新计算机程序产品。该计算机程序产品包括利用根据本发明的计算机程序编码的非易失性计算机可读介质,例如光盘“CD”。
[0024]在随附从属权利要求中描述了本发明的多个例示和非限制性实施例。
[0025]当结合附图阅读时,根据特定例示实施例的下文描述,将更好地理解关于构造和操作方法的本发明的各种例示和非限制性实施例和其额外的方面和优势。
[0026]动词“包含”和“包括”在该文档中用作开放性限定,其既不排除也不要求未叙述特征的存在。除非另有明确说明,在随附的从属权利要求中所叙述的这些特征可以互相自由组合。
【专利附图】
【附图说明】
[0027]下文将参考附图更加详细地解释本发明的例示和非限制性实施例和它们的优势,在附图中:
[0028]图1示出根据本发明的示例性实施例的软件定义网络的示意图,
[0029]图2示出根据本发明的示例性实施例的网络元件的示意图,以及
[0030]图3示出根据本发明的示例性实施例的用于配置软件定义网络的网络元件的方法的流程图。
【具体实施方式】
[0031]图1示出根据本发明的示例性实施例的软件定义网络“SDN” 100的示意图。软件定义网络包括网络元件101、102、103和104以及控制器系统105。该示例性软件定义网络的网络元件101-104与图1中示出的数据传送链路相互地互连。此外,示例性软件定义网络“SDN” 100可以包括在图1中未示出的其他网络元件。每个网络元件可以是例如网际协议“IP”路由器、多协议标签交换“MPLS1点、分组光交换机、和/或以太网交换机。每个网络元件可以由单一装置或多个装置的组合构成。控制器系统105也可以由单一装置或多个装置的组合构成。在图1中示出的示例性情形下,控制器系统105包括两个互连装置。终端设备107被连接到控制器系统105,并且网络元件102用作可以是例如全球互联网的外部网络106的网关。控制器系统105包括数据传送接口,该数据传送接口用于从终端设备107和/或从与该控制系统的数据传送接口的数据传送链路连接的一个或多个其他设备接收数据。应该注意的是,控制器系统105或其一个或多个部件也可以用作一个或多个网络元件,其可以是例如网际协议“IP”路由器、多协议标签交换“MPLS”节点、分组光交换机、和/或以太网交换机。
[0032]每个网络元件101-104包括控制处理器部和数据转发部,控制处理部用于维持包括定义与管理数据帧将连同执行的动作的至少一个查找系统表的查找系统,数据转发部用于根据查找系统来管理数据帧。查找系统的至少一个查找表可以但是不一定包括例如一个或多个连续流表和根据该OpenFlow规范的一组表。OpenFlow可以由开放联网基金会“0NF”管理。在使用OpenFlow的示例性情形下,网络元件中的每个流表包含一组流条目。每个流条目可以由匹配字段、计数器和被应用以与数据帧匹配的一组动作构成。匹配典型地在第一流表开始并且可以继续额外的流表。流条目可以被排列成优先级顺序,并且每个表中的第一匹配条目是正被使用的那个。如果发现匹配流条目,则与特定流条目相关联的一个或多个动作被执行。如果在流表中没有发现匹配,则可以将数据帧通过考虑的网络元件和控制器系统105之间的OpenFlow信道转发到控制器系统105,该数据帧可以被丢弃,或者该数据帧可以继续下一流表或者组表。与每个流条目相关联的动作可以包括例如数据帧转发、数据帧修正、组表处理和流水线处理。流水线处理动作允许将数据帧发送到后续流表以用于进一步处理,并且允许元数据形式的信息在流表之间通信。当与匹配流条目相关联的一个或多个动作不指定下一表时,表流水线处理停止。此时,考虑的数据帧通常被修正和转发。组表处理动作允许将数据帧发送到组表以用于进一步处理并且允许元数据的形式的信息被通信到该组表。该组表包含组条目,其中每个组条目可以包含针对被定义为属于特定组的数据帧的动作的列表。
[0033]控制器系统105适于将配置数据发送到网络元件101-104的每个,配置数据包括用于配置考虑的网络元件的数据项以根据例如用于配置网络元件的OpenFlow的协议所定义的动作的预定聚集来维持查找系统。此外,配置数据可以包括一个或多个配置程序,每个配置程序包括定义将结合考虑的网络元件中管理数据帧来执行动作或一连串动作的一个或多个计算机可执行指令。网络元件101-104的每个的控制处理器部可以适于将每个配置程序与查找系统的一个或多个查找表相关联,使得在查找系统的帮助下结合管理数据帧可调用(callable)执行该配置程序。网络元件101-104的每个的数据转发部可以适于,响应于其中管理特定数据帧包括执行配置程序的命令的情形,执行通过配置程序定义的动作或一系列动作。通过配置程序所定义的动作或一系列动作可以包括例如:从数据帧读取数据、修正数据帧、选择网络元件的一个或多个出端口和将数据帧和它的可能复制转发到选择的一个或多个出端口、选择查找系统的查找表之一并且从选择的查找表执行查找、执行算术运算、分支操作、执行逻辑运算、读取与数据帧相关联的元数据、写入与数据帧相关联的元数据、修正与数据帧相关联的元数据、丢弃数据帧、和/或复制数据帧。
[0034]网络元件101-104的至少一个包括用于以两种或更多种相互替换方式实现属于网络元件的查找系统的至少一个查找表的硬件。该硬件可以包括例如:网络元件的数据转发部、网络元件的一个或多个随机存取存储器“RAM”、网络元件的一个或多个二进制内容存取存储器“CAM”、网络元件的一个或多个三进制内容存取存储器“TCAM”、和/或网络元件的一个或多个存储器总线。网络元件适于基于a)可用于实现查找表的硬件,b)关于一个或多个查找键的信息,例如一个或多个查找键的一个字段长度或多个字段长度,以及c)下列中的至少一个:查找表的条目的最大数目、连续查找之间的平均时间、查找表的连续修改之间的平均时间,选择相互替换方式的最佳或至少适合的一个,以实现查找表。上述选择的目的是以最佳或至少合适的方式利用网络元件的硬件资源。例如,一个或多个查找键的一个短字段长度或多个短字段长度和连续查找(即高查找频率)之间的小平均时间趋于促进基于内容存取存储器技术的实现,而长字段长度和低查找频率趋于促进基于检索树“trie”算法和随机存取存储器“RAM”技术的实现。结合基于内容存取存储器技术的实现,查找表的“不考虑”键匹配比特位置的高相对部分趋于促进三进制内容存取存储器”TCAM “技术,而“不考虑”键匹配比特位置的低相对部分趋于促进二进制内容存取存储器技术。
[0035]上述网络元件可以适于计算例如一个或多个查找键的一个或多个字段长度的加权和,以及下列中的至少一个:查找表的条目的最大数目、连续查找之间的平均时间、和/或查找表的连续修改之间的平均时间。加权和中的加权优选为非负数。网络元件可以适于将加权和与第一阈值进行比较,以便在基于内容存取存储器技术的实现和基于检索树算法和随机存取存储器技术的实现之间进行选择。有利地,当加权和低于第一阈值时,选择基于内容存取存储器技术的实现,否则选择基于检索树算法和随机存取存储器技术的实现。此夕卜,网络元件可以适于,当第一选择已经导致基于内容存取存储器技术的实现时在二进制内容存取存储器技术和三进制内容存取存储器技术之间进行进一步选择。例如,网络元件可以适于将第二阈值与查找表的“不考虑”键匹配比特位置的数目和查找表的所有键匹配比特位置的数目之比进行比较,以便在二进制内容存取存储器技术和三进制内容存取存储器技术之间进行选择。有利地,当上述比超过第二阈值时,选择基于三进制内容存取存储器技术的实现,因为每个“不考虑”键匹配比特位置将需要二进制内容存取存储器中的两行,以便覆盖可允许的替换,即“不考虑”键匹配比特位置的“I”和“O”。另一方面,三进制内容存取存储器比二进制内容存取存储器更贵,因此如果较之所有键匹配比特位置的数目,“不考虑”键匹配比特位置的相对数目较小,则使用二进制内容存取存储器更有利。也可以在基于三进制内容存取存储器技术的实现和基于检索树算法和随机存取存储器技术的实现之间的选择中,使用“不考虑”键匹配比特位置的数目,使得“不考虑”键匹配比特位置的高相对数目趋于促进三进制内容存取存储器。
[0036]在通常情形下,上述网络元件的查找系统可以包括多于一个查找表。网络元件可以适于暂时连续地定义两种或更多种查找表的实现。网络元件可以适于在定义不是要实现的最后一个的每个查找表的实现之后,确定保持自由用于实现随后要实现的一个或多个查找表的硬件。此外,网络元件可以适于基于a)可用于实现该查找表的硬件,b)关于与该查找表相关的一个或多个查找键的信息,例如一个或多个查找键的一个字段长度或多个字段长度,以及c)下列中的至少一个:该查找表的条目的最大数目、从该查找表的连续查找之间的平均时间、该查找表的连续修改之间的平均时间,选择每个查找表的实现。例如,以上述方式可以定义查找系统的查找表的实现,使得以大小降序的顺序来处理查找表,即最大查找表的实现被定义为第一。也可以使用用于查找表的不同定义顺序来获得相互不同替换查找系统实现并且选择替换查找系统实现中的最有利的一个。当将不同查找系统实现彼此比较时,查找系统的特征可以是,例如当运行与考虑的查找系统相关的操作时资源消耗估计指示考虑的网络元件的至少一个组件的载荷因子。网络元件的至少一个组件可以包括例如网络元件的数据转发部、网络元件的控制处理器部、网络元件的一个或多个随机存取存储器“RAM”、网络元件的一个或多个二进制内容存取存储器“CAM”、网络元件的一个或多个三进制内容存取存储器“TCAM”、和/或网络元件的一个或多个存储器总线。
[0037]考虑的查找系统实现的每个查找表可以与查找表特定资源消耗估计相关联,查找表特定资源消耗估计可以包括例如,当运行考虑的查找表时指示网络元件的一个或多个组件的载荷因子的一个或多个数值。例如,当运行与利用内容存取存储器实现的第一示例性查找表相关的操作时,网络元件的数据转发部的载荷因子可以是例如处理容量的50%,网络元件的随机存取存储器“RAM”的载荷因子是零,网络元件的内容存取存储器的载荷因子可以是例如存储器容量的45%,并且存储器总线的载荷因子可以是例如它们的传送容量的45%。相应地,当运行与具有算法实现的第二示例性查找表的操作时,网络元件的数据转发部的载荷因子可以是例如46%,网络元件的随机存取存储器“RAM”的载荷因子可以是例如38%,网络元件的内容存取存储器的载荷因子是零,并且存储器总线的载荷因子可以是例如25%。因此,用于第一和第二示例性查找表的查找表特定资源消耗估计分别是下列矢量:[50%, O, 45%, 45%]和[46%,38%, O, 25%]。在该示例性情形下,由上述第一和第二示例性查找表组成的查找系统实现的资源消耗估计可以是[96%,38%, 45%, 70%]。如果这些数值的任何一个超过100%,则考虑的网络元件将不能够运行考虑的查找系统实现。在该情形下,应当为网络元件定义不同查找系统实现。用于选择不同查找系统实现中的一个的准则是,例如使得构成查找系统实现的资源消耗估计的数值的最大一个应尽可能的小,以便避免网络元件操作中的不利瓶颈。
[0038]考虑的网络元件可以适于将查找系统实现的资源消耗估计发送到控制器系统105,以便使得控制器系统105将软件定义网络100整体优化。例如,控制器系统105可以适于配置软件定义网络100的路由拓扑,使得当网络元件的查找系统实现的资源消耗估计表明网络元件的更低载荷比当查找系统实现的资源消耗估计表明网络元件的更高载荷,更多的数据通信负载被分配到考虑的网络元件。网络元件可以具有模块结构,使得其包括诸如入模块和出模块的一个或多个行接口模块和诸如控制模块和/或电源模块的一个或多个其他模块。在该情形下,可以存在每个网络元件多于一个资源消耗估计,并且每个资源消耗估计可以通过模块指示符提供,模块指示符表达通过资源消耗估计指示其载荷的模块。模块指示符可以表达独立模块或仅一种类型的模块,诸如入模块、出模块、或与网络元件的整个控制相关的模块。在例如一个或多个行接口模块存在超载风险而网络元件的其他部件仍在资源消耗具有优势的情形下,当软件定义网络100的路由拓扑最优化时,可以利用模块指示符。
[0039]图2示出根据本发明的示例性实施例的网络元件201的示意图示。网络元件可以是例如网际协议“IP”路由器、多协议标签交换“MPLS”交换机、分组光交换机、和/或以太网交换机。在该示例性情形下,网络原件是单一装置,但是如本文档中上文所述,网络元件也可以是多个装置的组合。网络元件包括用于接收数据和用于发射数据的数据传送接口211。数据传送接口 211包括入端口 214和215和出端口 216和217,以用于经由数据传送链路连接到数据传送网络220。网络元件201包括处理器系统210,处理器系统210包括控制处理器部213和数据转发部212。网络元件包括用于以两种或更多种相互替换方式实现查找表的硬件218,其中,查找表通过在网络元件接收到的数据指定。在该示例性情形下,硬件218包括数据转发部212、三进制内容存取存储器“TCAM” 221、二进制内容存取存储器“CAM” 222、以及随机存取存储器“RAM” 223。网络元件包括用于定义查找表的实现的设备209。设备包括用于基于a)可用于实现查找表的硬件,b)关于一个或多个查找键的信息,例如一个或多个查找键的一个字段长度或多个字段长度,和c)下列中的至少一个:查找表的条目的最大数目、连续查找之间的平均时间、查找表的连续修改之间的平均时间,选择相互替换方式的最佳或至少适合的一个,以实现查找表的装置。在图2中示出的示例性情形下,利用代表控制处理器部213或控制处理器部的部分的处理系统224,实现上述装置。控制处理器部213适于配置硬件218以实现查找表,并且数据转发部312适于根据查找表管理数据帧。[0040]在根据本发明的示例性实施例的网络元件中,设备209的处理系统224适于计算一个或多个查找键的一个或多个字段长度的加权和,以及下列中的至少一个:查找表的条目的最大数目、连续查找之间的平均时间、查找表的连续修改之间的平均时间。处理系统224适于将加权和与第一阈值进行比较,以便在基于内容存取存储器技术的实现和基于检索树算法和随机存取存储器技术的实现之间进行选择。
[0041]在根据本发明的示例性实施例的网络元件中,设备209的处理系统224适于将第二阈值与数据项进行比较,该数据项指示查找表的“不考虑”键匹配比特位置的数目和查找表的所有键匹配比特位置的数目之比,以便在基于二进制内容存取存储器技术的实现和基于三进制内容存取存储器技术的实现之间进行选择。
[0042]在根据本发明的示例性实施例的网络元件中,设备209的处理器系统224适于基于a)可用于实现另一查找表的硬件,b)关于一个或多个查找键的信息,例如与另一查找表相关的一个或多个查找键的一个字段长度或多个字段长度,以及c)下列中的至少一个--另一查找表的条目的最大数目、从另一查找表的连续查找之间的平均时间、另一查找表的连续修改之间的平均时间,确定用于在上文提及的查找表实现之后保持自由用于实现另一查找表的硬件,并且选择两种或更多种相互替换方式中的一种,以实现另一查找表。
[0043]图2中示出的网络元件的处理系统210可以利用一个或多个处理器电路来实现,每个处理器电路可以是设置有适当软件的可编程处理器电路、诸如例如专用集成电路“ASIC”的专用硬件处理器、或诸如例如现场可编程门阵列“FPGA”的可配置硬件处理器。
[0044]图3示出根据用于定义用于软件定义网络的网络元件的查找系统的实现的本发明的示例性实施例的方法的流程图,其中,网络元件包括用于以两种或更多种相互替换方式实现查找表的硬件。该方法包括动作301,基于可用于实现查找表的硬件、一个或多个第一数据项、和一个或多个第二数据项来选择两种或更多种相互替换方式的最佳或至少适合的一种,以实现查找表,其中:
[0045]-一个或多个第一数据项提供关于查找表的一个或多个查找键的信息,以及
[0046]-一个或多个第二数据项指示下列中的至少一个:查找表的条目的最大数目、从查找表的连续查找之间的平均时间、查找表的连续修改之间的平均时间。[0047]根据本发明的示例性实施例的方法包括:计算一个或多个第一数据项和一个或多个第二数据项的加权和,并且将加权和与第一阈值进行比较,以便在基于内容存取存储器技术的实现和基于检索树算法和随机存取存储器技术的实现之间进行选择。
[0048]根据本发明的示例性实施例的方法包括:将第二阈值与第三数据项进行比较,第三数据项指示查找表的“不考虑”键匹配比特位置的数目和查找表的所有键匹配比特位置的数目之比,以便在基于二进制内容存取存储器技术的实现和基于三进制内容存取存储器技术的实现之间进行选择。
[0049]根据本发明的示例性实施例的方法包括:基于可用于实现另一查找表的硬件以及与另一查找表相关并且指示作为一个或多个第一数据项和一个或多个第二数据项指示与上文提及的查找表相关的相对应信息的数据,确定用于在上文提及查找表实现之后保持自由用于实现另一查找表的硬件以及选择两种或更多种相互替换方式中的一种以实现另一查找表。
[0050]根据用于定义查找表的实现的本发明的示例性实施例的计算机程序包括计算机可执行指令,计算机可执行指令用于控制可编程处理系统执行根据本发明的上述示例性实施例的任何一个的方法。
[0051]根据本发明的示例性实施例的计算机程序包括用于定义用于软件定义网络的网络元件的查找系统的实现的软件模块,其中,网络元件包括用于以两种或更多种相互替换方式实现查找表的硬件。软件模块包括计算机可执行指令,所述计算机可执行指令用于控制可编程处理系统基于可用于实现查找表的硬件、一个或多个第一数据项、和一个或多个第二数据项来选择两种或更多种相互替换方式中的一种,以实现查找表,其中:
[0052]一个或多个第一数据项提供关于查找表的一个或多个查找键的信息,每个字段长度用比特表达,以及
[0053]一个或多个第二数据项指示下列中的至少一个:查找表的条目的最大数目、从查找表的连续查找之间的平均时间、查找表的连续修改之间的平均时间。
[0054]软件模块可以是例如利用适当的编程语言和利用适合于编程语言和可编程处理系统的编译器来实现的子例程或功能。
[0055]根据本发明的示例性实施例的计算机程序产品包括利用根据本发明示例性实施例的计算机程序编码的计算机可读介质,例如光盘(“CD”)。
[0056]根据本发明的示例性实施例的信号被编码成承载定义根据本发明的示例性实施例的计算机程序的信息。
[0057]上文给出的描述中提供的特定示例不应理解为限制随附权利要求的范围和/或适用性。
【权利要求】
1.一种用于定义用于软件定义网络的网络元件的第一查找表的实现的设备(209),所述网络元件包括用于以两种或更多种相互替换方式实现所述第一查找表的硬件(218),所述设备包括: -用于接收一个或多个第一数据项的装置,所述一个或多个第一数据项提供关于所述第一查找表的一个或多个查找键的信息,以及 -用于接收一个或多个第二数据项的装置,所述一个或多个第二数据项指示下列中的至少一个:所述第一查找表的条目的最大数目、从所述第一查找表的连续查找之间的平均时间、所述第一查找表的连续修改之间的平均时间, 其特征在于,所述设备进一步包括:用于基于可用于实现所述第一查找表的硬件、所述一个或多个第一数据项、和所述一个或多个第二数据项,选择所述两种或更多种相互替换方式中的一种,以实现所述第一查找表的装置。
2.根据权利要求1所述的设备,其中,所述设备包括:用于计算所述一个或多个第一数据项和所述一个或多个第二数据项的加权和并且用于将所述加权和与第一阈值进行比较,以便在基于内容存取存储器技术的实现和基于检索树算法和随机存取存储器技术的实现之间进行选择的装置。
3.根据权利要求1或2所述 的设备,其中,所述设备包括:用于比较第二阈值和第三数据项,以便在基于二进制内容存取存储器技术的实现和基于三进制内容存取存储器技术的实现之间进行选择的装置,所述第三数据项指示所述第一查找表的不考虑键匹配比特位置的数目与所述第一查找表的所有键匹配比特位置的数目的比。
4.根据权利要求1所述的设备,其中,所述设备包括:用于基于可用于实现第二查找表的硬件以及与所述第二查找表相关并且指示作为所述一个或多个第一数据项和所述一个或多个第二数据项指示与所述第一查找表相关的相对应信息的数据,确定在所述第一查找表的实现之后保持自由用于实现所述第二查找表的硬件以及用于选择所述两种或更多种相互替换方式中的一种以实现所述第二查找表的装置。
5.根据权利要求2所述的设备,其中,所述设备包括:用于基于可用于实现第二查找表的硬件以及与所述第二查找表相关并且指示作为所述一个或多个第一数据项和所述一个或多个第二数据项指示与所述第一查找表相关的相对应信息的数据,确定在所述第一查找表的实现之后保持自由用于实现所述第二查找表的硬件以及用于选择所述两种或更多种相互替换方式中的一种以实现所述第二查找表的装置。
6.根据权利要求3所述的设备,其中,所述设备包括:用于基于可用于实现第二查找表的硬件以及与所述第二查找表相关并且指示作为所述一个或多个第一数据项和所述一个或多个第二数据项指示与所述第一查找表相关的相对应信息的数据,确定在所述第一查找表的实现之后保持自由用于实现所述第二查找表的硬件以及用于选择所述两种或更多种相互替换方式中的一种以实现所述第二查找表的装置。
7.一种用于软件定义网络的网络元件(201),所述网络元件包括: -数据传送接口(211),所述数据传送接口(211)用于接收数据和用于发射数据,接收到的数据指定要在所述网络元件中实现的查找表, -硬件(218),所述硬件(218)用于以两种或更多种相互替换方式实现所述查找表,以及-用于定义所述查找表的实现的根据权利要求1-5中的任一项所述的设备(209)。
8.根据权利要求7所述的网络元件,其中,所述网络元件是下列中的至少一个:网际协议路由器、多协议标签切换交换机、分组光交换机、以太网交换机。
9.一种用于定义用于软件定义网络的网络元件的第一查找表的实现的方法,所述网络元件包括用于以两种或更多种相互替换方式实现所述第一查找表的硬件,其特征在于,所述方法包括基于可用于实现所述第一查找表的所述硬件、一个或多个第一数据项、和一个或多个第二数据项,选择(301)所述两种或更多种相互替换方式中的一种,以实现所述第一查找表,其中: -所述一个或多个第一数据项提供关于所述第一查找表的一个或多个查找键的信息,以及 -所述一个或多个第二数据项指示下列中的至少一个:所述第一查找表的条目的最大数目、从所述第一查找表的连续查找之间的平均时间、所述第一查找表的连续修改之间的平均时间。
10.根据权利要求9所述的方法,其中,所述方法包括:计算所述一个或多个第一数据项和所述第一或多个第二数据项的加权和;以及将所述加权和与第一阈值进行比较,以便在基于内容存取存储器技术的实现和基于检索树算法和随机存取存储器技术的实现之间进行选择。
11.根据权利要求9或10所述的方法,其中,所述方法包括:将第二阈值与第三数据项进行比较,以便在基于二进制内容存取存储器技术的实现和基于三进制内容存取存储器技术的实现之间进行选择,所述第三数据项指示所述第一查找表的不考虑键匹配比特位置的数目与所述第一查找表的所有键匹配比特位置的数目之比。
12.根据权利要求9所述的方法,其中,所述方法包括:基于可用于实现第二查找表的硬件以及与所述第二查找表相关并且指示作为所述一个或多个第一数据项和所述一个或多个第二数据项指示与所述第一查找表相关的相对应信息的数据,确定在所述第一查找表的实现之后保持自由用于实现所述第二查找表的硬件以及选择所述两种或更多种相互替换方式中的一种以实现所述第二查找表。
13.根据权利要求10所述的方法,其中,所述方法包括:基于可用于实现第二查找表的硬件以及与所述第二查找表相关并且指示作为所述一个或多个第一数据项和所述一个或多个第二数据项指示与所述第一查找表相关的相对应信息的数据,确定在所述第一查找表的实现之后保持自由用于实现所述第二查找表的硬件以及选择所述两种或更多种相互替换方式中的一种以实现所述第二查找表。
14.根据权利要求11所述的方法,其中,所述方法包括:基于可用于实现第二查找表的硬件以及与所述第二查找表相关并且指示作为所述一个或多个第一数据项和所述一个或多个第二数据项指示与所述第一查找表相关的相对应信息的数据,确定在所述第一查找表的实现之后保持自由用于实现所述第二查找表的硬件以及选择所述两种或更多种相互替换方式中的一种以实现所述第二查找表。
15.一种软件定义网络(100),包括: -控制器系统(105),所述控制器系统(105)用于将配置数据发射到一个或多个网络元件,以便配置所述一个或多个网络元件,所述配置数据指定要在所述一个或多个网络元件中实现的查找表,以及 -根据权利要求7或8所述的一个或多个网络元件(101-104)。
16.根据权利要求15所述的软件定义网络,其中,所述控制器系统被配置成将OpenFlow用作为 用于所述软件定义网络的控制平面的通信方法,以与所述软件定义网络的数据平面通信。
【文档编号】H04L12/741GK103916321SQ201310750368
【公开日】2014年7月9日 申请日期:2013年12月31日 优先权日:2013年1月4日
【发明者】维莱·哈利沃里, 茱哈马蒂·库西萨里 申请人:特拉博斯股份有限公司