CN103873291B - 用于配置软件定义的网络的方法和设备 - Google Patents
用于配置软件定义的网络的方法和设备 Download PDFInfo
- Publication number
- CN103873291B CN103873291B CN201310655694.8A CN201310655694A CN103873291B CN 103873291 B CN103873291 B CN 103873291B CN 201310655694 A CN201310655694 A CN 201310655694A CN 103873291 B CN103873291 B CN 103873291B
- Authority
- CN
- China
- Prior art keywords
- configurator
- look
- data frame
- network
- entry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及用于配置软件定义的网络的方法和设备。提供了一种用于配置软件定义的网络“SDN”的网络单元的方法。该网络单元保存至少一个查找表,该至少一个查找表定义要与管理第一数据帧相结合地执行的动作。该方法包括:i)从软件定义的网络的控制器接收(301)第二数据帧,ii)从第二数据帧读取(302)配置程序,该配置程序包括一个或多个计算机可执行指令,该一个或多个计算机可执行指令定义要与管理第一数据帧相结合地执行的至少一个动作,以及,iii)将配置程序与至少一个查找表相关联(303),使得借助于至少一个查找表配置程序可调用以与管理第一数据帧相结合地执行。配置程序而不是仅仅配置参数的使用增加了在网络单元中实现不同的功能的自由度。
Description
技术领域
本发明总体上涉及软件定义的网络“SDN”。更具体地,本发明涉及一种用于配置软件定义的网络的一个或多个网络单元的方法和计算机程序。而且,本发明涉及软件定义的网络的网络单元。
背景技术
软件定义的联网是正在出现的用于数据传送网络的架构。在软件定义的网络“SDN”中,将控制平面与数据平面分离,使得在能够与网络单元分离的一个或多个控制器中实现控制平面,并且在网络单元中实现数据平面。网络单元能够例如是因特网协议“IP”路由器、多协议标签交换“MPLS”节点、分组光学交换机和/或因特网交换机。每一个网络单元可以由单个设备或多个设备的组合构成。通常,软件定义的联网允许交换和/或路由策略的迅速实验和优化以及对于先前封闭和专有的网络单元的内部结构的外部访问。
基于因特网协议“IP”的网络初始是基于自主系统“AS”的构想被建立的。该构想允许网络通过连接的结点来扩展和延伸,该连接的结点基于部分需要知道的信息来向合理的下一站转发分组。AS原理很像传统的邮局服务那样工作,其中,在给定城市中的邮政工人不必为了给手上的信件选择合理的下一站而知道在另一个城市中的所有街道的所有居住者。用于联网的此手段简单,并且已经证明有弹性和可扩展。然而,此手段具有几个缺点。就分组传递服务而言,它不允许指定的目的地或具有家庭邮箱的居住者移动而不改变它们的身份。作为它们附接到的网络接口的目的地的拓扑位置支配与分组传递服务相关的它们的身份。另外,仅使用基本的AS原理,难以指定其他质量,诸如逻辑编组、访问控制、服务质量、中间网络处理,或指定与形成流的分组的序列相关的方面。
使用邮政服务的类比,软件定义的联网对于任何给定的街道位置工作,使得来自所有居住者的信件首先将会被在软件定义的网络的边缘上的网络单元聚合。该网络单元被配置以使用全局查找机制来检查信件目的地的每一个的当前位置。基于全局查找和其他全局定义和全局测量的考虑,诸如访问控制或远程位置安装条件,所述网络单元将一个或多个原始信件置于地址去往其中目的地当前所位于的每一个街道位置的另一个信封。它然后使用通常的邮政服务,该通常的邮政服务象传统因特网协议“IP”那样工作以使这些外部信封到达远程位置。这基于现有和可扩展的逐站转发业务来完成。然后远程网络单元打开该外部信件,并且原始信封被向目的地传递。应当注意,上面提供的在软件定义的联网和邮政服务之间的类比是简化,并且它仅给出了关于由软件定义的联网提供的多种多样的可能性的有限视点。
然而,软件定义的联网不是没有挑战。某些挑战涉及配置网络单元使得它们能够执行期望的任务。在许多情况下,根据开放流(OpenFlow)规范的协议被用于从软件定义的网络的控制器向软件定义的网络的网络单元传送配置数据。开放流规范由开放式网络基金会“ONF”管理。支持开放流规范的网络单元被适配以保持一个或多个查找表,即,一个或多个流表和组表,它们定义了当管理例如转发或修改数据帧时要执行的动作。该动作的多样性取决于查找表结构的灵活性和能够与查找表的条目相关并且响应于数据帧的相关部分匹配相关条目的情况而能够执行的一组预定的动作。例如,与开放流相结合,用于增加新的动作的需要已经导致开放流规范的增加的复杂性,并且根据推论,导致支持开放流规范的网络单元的增加的复杂性。因此,仍然存在对于用于配置软件定义的网络的网络单元的技术方案的需要。
发明内容
下面提供了简化的总述,以便提供各个发明实施例的一些方面的基本理解。该总述不是本发明的广泛概述。它既不意欲识别本发明的关键或重要元件,也不意欲描述本发明的范围。下面的总述仅以简化的形式来提供本发明的一些构想作为对于本发明的示例性实施例的更详细的描述的前序。
根据本发明,提供了一种用于配置软件定义的网络的一个或多个网络单元的新的方法,其中,所述网络单元的每一个保存(maintain)至少一个查找表,所述至少一个查找表定义要与管理第一数据帧相结合地执行的动作。根据本发明的方法包括:
-在网络单元处,从软件定义的网络的控制器接收一个或多个第二数据帧,
-从所述一个或多个第二数据帧读取配置程序,所述配置程序包括一个或多个计算机可执行指令,所述一个或多个计算机可执行指令定义要与管理所述第一数据帧相结合地执行的至少一个动作,以及
-将所述配置程序与所述至少一个查找表相关联,使得借助于所述至少一个查找表所述配置程序可调用以与管理所述第一数据帧相结合地被执行。
所述配置程序能够被与所述一个或多个查找表相关联,例如使得所述查找表的一个或多个条目包括用以执行所述配置程序的命令。又如,所述指配程序能够被与所述一个或多个查找表相关联,使得所述查找表的所述条目中的第一条目包括用于以所述配置程序的一个或多个输入参数的一个或多个第一值来执行所述配置程序的命令并且所述查找表的所述条目中的第二条目包括用于以所述配置程序的所述一个或多个输入参数的一个或多个第二值来执行所述配置程序的指令。对于第三示例,所述配置程序能够被与所述至少一个查找表相关联,使得查找表表示在从所述查找表执行查找之前执行所述配置程序的命令,并且由所述配置程序返回的输出数据能够被用作至少一部分查找键,所述查找键确定所述查找表的哪个条目是所述查找的结果。对于第四示例,所述配置程序能够被与所述一个或多个查找表相关联,使得所述查找表的条目中的第一条目包括用于向被建立以用于管理一个或多个数据帧的动态动作列表添加用以执行所述配置程序的命令以及还可能所述配置程序的输入参数的命令。因为不必根据由用于配置网络单元的例如开放流的协议定义的预定的动作集合来限制网络单元的功能,所以配置程序而不是仅仅配置参数的使用增加了配置软件定义的网络的灵活性。
所述配置程序能够在网络单元处以通过用于实现数据平面的装置不可执行的形式,例如以人可读的源代码的形式,在网络单元处接收。在此情况下,将所述配置程序与所述至少一个查找表相关联包括:将所述配置程序编译为能够被用于实现所述接收平面的所述装置可执行的程序代码。
根据本发明,还提供了一种用于软件定义的网络的新的网络单元:根据本发明的网络单元包括:
-数据传送接口,用于接收数据和用于发送数据,
-控制处理器部分,用于保存定义要与管理第一数据帧相结合地执行的动作的至少一个查找表,以及
-网络处理器部分,用于根据所述至少一个查找表来管理所述第一数据帧,
其中:
-所述控制处理器部分被适配以从一个或多个第二数据帧读取配置程序,所述配置程序包括定义要与管理所述第一数据帧相结合地执行的至少一个动作的一个或多个计算机可执行指令,
-所述控制处理器部分被适配以将所述配置程序与所述至少一个查找表相关联,使得借助于所述至少一个查找表所述配置程序可调用以与管理所述第一数据帧相结合地被执行,并且
-所述网络处理器部分被适配以响应于以下情况来执行由所述配置程序定义的所述至少一个动作:所述管理所述第一数据帧包括用以执行所述配置程序的命令。
根据本发明,还提供了一种新的软件定义的网络,所述软件定义的网络包括根据本发明的一个或多个网络单元和用于向所述一个或多个网络单元发送包含上述配置程序的一个或多个数据帧的控制器。
根据本发明,还提供了一种用于配置软件定义的网络的网络单元的新的计算机程序,所述网络单元保存定义要与管理第一数据帧相结合地执行的动作的至少一个查找表。根据本发明的计算机程序包括计算机可执行指令,用于控制所述网络单元的可编程控制处理器部分以:
-从自所述软件定义的网络的控制器接收的一个或多个第二数据帧读取配置程序,所述配置程序包括一个或多个计算机可执行指令,所述一个或多个计算机可执行指令定义要与管理所述第一数据帧相结合地被执行的至少一个动作,以及
-将所述配置程序与所述至少一个查找表相关联,使得借助于所述至少一个查找表所述配置程序可调用以与管理所述第一数据帧相结合地执行。
根据本发明,也提供了一种新的计算机程序产品。该计算机程序产品包括使用根据本发明的计算机程序编码的非易失性计算机可读介质,例如,致密盘“CD”。
在伴随的从属权利要求中描述了本发明的多个示例性和非限制性实施例。
通过结合附图阅读的特定示例性实施例的下面的说明,将会最佳地明白关于构造和操作的方法两者的本发明的各种示例性和非限制性实施例及其另外的目的和优点。
动词“包括”和“包含”在本文中被用作即不排除也不要求也未描述的特征的存在的开放式限定。在从属权利要求中描述的特征相互自由地可组合,除非另外明确地说明。
附图说明
下面参考附图更详细地描述本发明的示例性和非限制性实施例及其优点,在附图中:
图1示出根据本发明的一个示例性实施例的软件定义的网络的示意图示,
图2示出根据本发明的一个示例性实施例的网络单元的示意图示,并且
图3示出用于配置软件定义的网络的网络单元的、根据本发明的一个示例性实施例的方法的流程图。
具体实施方式
图1示出根据本发明的一个示例性实施例的软件定义的网络“SDN”100的示意图示。软件定义的网络包括网络单元101、102、103和104以及控制器105。示例性的软件定义的网络的网络单元101-104如在图1中所示以数据传送链路相互连接。而且,示例性的软件定义的网络“SDN”100可以包括在图1中未示出的其他网络单元。网络单元可以例如是IP(因特网协议)路由器、多协议标签交换“MPLS”节点、分组光学交换机和/或以太网交换机。每一个网络单元可以由单个设备或多个设备的组合构成。在图1中所示的示例性情况中,终端装置107被连接到控制器105,并且网络单元102作为到可以例如是全球因特网的外部网络106的网关。控制器105包括用于从终端装置107和/或从以数据传送链路连接到控制器的数据传送接口的一个或多个其他装置接收数据的数据传送接口。
网络单元101-104的每一个包括:控制处理器部分,其用于保存至少一个查找表,该查找表定义要与管理数据帧相结合地执行的动作;以及,网络处理器部分,其用于根据至少一个查找表来管理数据帧。至少一个查找表可以例如但是不必然地包括根据开放流规范的一个或多个连续的流表和组表。在其中使用开放流的示例性情况下,在网络单元中的每一个流表包含一组流条目。每一个流条目可以由匹配字段、计数器和一组要向匹配的数据帧应用的动作构成。匹配通常在第一流表处开始,并且可以继续到另外的流表。流条目通常被布置为优先级顺序,并且在每一个表格中的第一匹配条目是在被使用的那个。如果发现了匹配的流条目,则执行与该特定流条目相关联的一个或多个动作。如果在流表中未找到匹配,则可以通过在所考虑的网络单元和控制器105之间的开放流信道来向控制器105转发数据帧,该数据帧可以被丢弃,或者,该数据帧可以继续到下一个流表或组表。与每一个流条目相关联的动作可以例如包括数据帧转发、数据帧修改、组表处理和流水线处理。流水线处理动作允许数据帧被发送到随后的流表以进一步处理,并且允许以元数据的形式的信息在流表之间被传送。当与匹配流条目相关联的一个或多个动作未指定下一个表时,表流水线处理停止。在这一点处,通常修改和转发在考虑下的数据帧。组表处理动作允许数据帧被发送到组表以用于进一步的处理,并且允许以元数据形式的信息被传送到组表。该组表包含组条目,其中,每一个组条目可以包含要引导被定义为属于特定组的数据帧的动作的列表。
控制器105被配置以向网络单元101-104的每一个发送包括一个或多个配置程序的配置数据,每一个配置程序包括一个或多个计算机可执行指令,该一个或多个计算机可执行指令定义在所考虑的网络单元中要与管理数据帧相结合地执行的动作或一系列动作。而且,除了上述一个或多个配置程序之外,配置数据可以包括用于根据由用于配置网络单元的例如开放流的协议定义的动作的集合来配置网络单元的数据项目。
网络单元101-104的每一个的控制处理器部分被适配以将每一个配置程序与一个或多个查找表相关联,使得配置程序借助于该至少一个查找表能够被调用以与管理第一数据帧相结合地被执行。网络单元101-104的每一个的网络处理器部分被适配以响应于以下情况而执行由配置程序定义的至少一个动作:管理特定数据帧包括用以执行配置程序的命令。由配置程序定义的动作或一系列动作可以包括例如:从数据帧读取数据,修改数据帧,选择网络单元的一个或多个外出端口并且将数据帧及其可能的复制品向选择的一个或多个外出端口转发,选择由网络单元保存的查找表之一并且执行从选择的查找表的查找,执行算术运算,将操作分支,执行逻辑操作,读取与数据帧相关联的元数据,写入与数据帧相关联的元数据,修改与数据帧相关联的元数据,丢弃数据帧,和/或复制数据帧。因为不必根据由用于配置网络单元的例如开放流的协议定义的动作的预定集合来限制网络单元101-104的功能,所以配置程序而不是仅配置参数的使用增加了配置软件定义的网络100的灵活性。
在根据本发明的一个示例性实施例的软件定义的网络“SDN”中,配置程序能够被以不能被网络单元的网络处理器部分执行的形式从控制器105向所考虑的网络单元传递。配置程序例如能够被以人可读的源代码的形式来传递。在该情况下,控制处理器部分有益地被适配以将配置程序编译为能够被网络处理器部分执行的程序代码,即,目标代码。在示例性的软件定义的网络“SDN”中,两个或更多的网络单元101-104可以具有相互不同的网络处理部分。在该情况下,这些网络单元可能使用不同的编译器来编译从控制器105接收的配置程序。因此,配置程序能够被以相同的形式向所有的网络单元101-104发送,但是,每一个网络单元有益地具有适当的编译器部件,以用于将配置程序转换为能够被所考虑的网络单元的网络处理器部分执行的形式。
图2示出根据本发明的一个示例性实施例的网络单元201的示意图示。网络单元能够例如是因特网协议“IP”路由器、多协议标签交换“MPLS”交换机、分组光学交换机和/或以太网交换机。网络单元包括数据传送接口210,用于接收数据并且用于发送数据。数据传送接口210包括进入端口214和215与外出端口216和217,用于经由数据传送链路来连接到数据传送网络220。网络单元201包括处理系统211,该处理系统211包括控制处理器部分213和网络处理器部分212。控制处理器部分213被适配以保存至少一个查找表,该查找表用于定义要与管理第一数据帧相结合地执行的动作,并且网络处理器部分212被适配以根据至少一个查找表来管理第一数据帧。控制处理器部分213被适配以从一个或多个第二数据帧读取配置程序,该配置程序包括一个或多个计算机可执行指令,该一个或多个计算机可执行指令用于定义要与管理第一数据帧相结合地执行的至少一个动作。控制处理器部分213被适配以将配置程序与至少一个查找表相关联,使得配置程序借助于至少一个查找表能够被调用以与管理第一数据帧相结合地被执行。网络处理器部分212被适配以响应于以下情况来执行由配置程序定义的至少一个动作:所述管理第一数据帧包括用以执行配置程序的命令。由配置程序定义的该一个或多个动作可以例如包括如下的一个或多个:从第一数据帧读取数据,修改第一数据帧,选择数据传送接口210的外出端口之一并且将第一数据帧向选择的外出端口转发,选择由网络单元保存的查找表之一并且执行从选择的查找表的查找,执行算术运算,将操作分支,执行逻辑操作,读取与第一数据帧相关联的元数据,写入与第一数据帧相关联的元数据,修改与第一数据帧相关联的元数据,丢弃第一数据帧,复制第一数据帧。
在根据本发明的一个示例性实施例的网络单元中,控制处理器部分213被适配以将配置程序编译为能够被网络处理器部分212执行的程序代码。
在根据本发明的一个示例性实施例的网络单元中,控制处理器部分213被适配以将配置程序与至少一个查找表相关联,使得查找表的至少一个条目包括用以执行配置程序的命令。
在根据本发明的一个示例性实施例的网络单元中,控制处理器部分213被适配以将配置程序与至少一个查找表相关联,使得查找表的条目中的第一条目包括用于以配置程序的一个或多个输入参数的一个或多个第一值来执行配置程序的命令,并且查找表的条目中的第二条目包括用于以配置程序的一个或多个输入参数的一个或多个第二值来执行配置程序的命令。
在根据本发明的一个示例性实施例的网络单元中,控制处理器部分213被适配以将配置程序与至少一个查找表相关联,使得查找表表示用于在执行从查找表的查找之前执行配置程序的命令,即,向查找表发送数据帧和/或其相关联的元数据或指针使得在查找之前运行配置程序作为预备操作。网络处理器部分212能够被适配以使用由配置程序返回的输出数据来作为用于从查找表的查找的至少一部分查找键,其中,查找键确定查找表的哪个条目是查找的结果。当由配置程序返回的输出数据仅表示查找键的一部分时,查找键的另一个部分可以例如是使用用于配置网络单元的、例如开放流的已知协议定义的键。
在根据本发明的一个示例性实施例的网络单元中,网络处理器部分212被适配以建立用于管理第一数据帧的动作列表,并且随后执行在动作列表上列出的动作。在该情况下,可以首先执行与管理一个或多个数据帧相关的至少一部分查找,并且在所述查找后可以执行由所述查找确定的至少一部分动作。然而,有可能某些动作包括其结果继而控制另外的动作的查找。控制处理器部分213被适配以将配置程序与至少一个查找表相关联,使得查找表的条目中的第一条目包括用于向上述的动作列表添加用以执行配置程序的命令的命令。控制处理器部分能够被适配以将配置程序与至少一个查找表相关联,使得查找表的条目中的第一条目进一步包括用于向动作列表添加配置程序的一个或多个输入参数的一个或多个第一值的命令。该查找表的另一个条目或另一个查找表的条目可以包括用于向动作列表添加用于以配置程序的一个或多个输入参数的一个或多个第二值来执行配置程序的命令的命令。
在图2中所示的网络单元的处理系统211可以使用一个或多个处理器电路来实现,每一个处理器电路可以是:具有适当的软件的可编程处理器电路;专用硬件处理器,诸如例如专用集成电路“ASIC”;或者,可配置的硬件处理器,诸如例如现场可编程门阵列“FPGA”。
图3示出用于配置软件定义的网络的网络单元的、根据本发明的一个示例性实施例的方法的流程图,所述网络单元保存至少一个查找表,所述至少一个查找表定义要与管理第一数据帧相结合地执行的动作,所述方法包括如下的动作:
-动作301:在所述网络单元处,从所述软件定义的网络的控制器接收一个或多个第二数据帧,
-动作302:从所述一个或多个第二数据帧读取配置程序,所述配置程序包括一个或多个计算机可执行指令,所述一个或多个计算机可执行指令定义要与管理所述第一数据帧相结合地执行的至少一个动作,以及
-动作303:将所述配置程序与所述至少一个查找表相关联,使得所述配置程序借助于所述至少一个查找表能够被调用以与管理所述第一数据帧相结合地被执行。
由所述配置程序定义的所述一个或多个动作可以例如包括如下的一个或多个:从所述第一数据帧读取数据,修改所述第一数据帧,选择所述网络元件的外出端口之一并且将所述第一数据帧向所述选择的外出端口转发,选择由所述网络元件保存的查找表之一并且执行从所述选择的查找表的查找,执行算术运算,将操作分支,执行逻辑操作,读取与所述第一数据帧相关联的元数据,写入与所述第一数据帧相关联的元数据,修改与所述第一数据帧相关联的元数据,丢弃所述第一数据帧,复制所述第一数据帧。
在根据本发明的一个示例性实施例的方法中,将所述配置程序与所述至少一个查找表相关联包括:将所述配置程序编译为可由所述网络处理器部分执行的程序代码。
在根据本发明的一个示例性实施例的方法中,所述配置程序与所述至少一个查找表相关联,使得所述查找表的至少一个条目包括用以执行所述配置程序的命令。
在根据本发明的一个示例性实施例的方法中,所述配置程序与所述至少一个查找表相关联,使得所述查找表的条目中的第一条目包括用于以所述配置程序的一个或多个输入参数的一个或多个第一值来执行所述配置程序的命令,并且所述查找表的所述条目中的第二条目包括用于以所述配置程序的所述一个或多个输入参数的一个或多个第二值来执行所述配置程序的指令。
在根据本发明的一个示例性实施例的方法中,所述配置程序与所述至少一个查找表相关联,使得所述查找表表示用于在从所述查找表执行查找之前执行所述配置程序的命令。
在根据本发明的一个示例性实施例的方法中,所述配置程序与所述至少一个查找表相关联,使得由所述配置程序返回的输出数据能够用作用于从所述查找表的所述查找的至少一部分查找键,所述查找键用于确定所述查找表的哪个条目是所述查找的结果。
在根据本发明的一个示例性实施例的方法中,所述配置程序与所述至少一个查找表相关联,使得所述查找表的条目中的第一条目包括用于向被建立来用于管理所述第一数据帧的动作列表添加用以执行所述配置程序的命令的命令。
在根据本发明的一个示例性实施例的方法中,所述配置程序与所述至少一个查找表相关联,使得所述查找表的所述条目中的所述第一条目进一步包括用于向所述动作列表添加所述配置程序的一个或多个输入参数的一个或多个第一值的命令。这个查找表的另一个条目或另一个查找表的条目可以包括用于向所述动作列表添加用于以所述一个或多个输入的一个或多个第二值来执行所述配置程序的命令的命令。
用于配置软件定义的网络的网络单元的、根据本发明的一个示例性实施例的一种计算机程序包括计算机可执行指令,该计算机可执行指令用于控制可编程处理器来执行根据本发明的上述示例性实施例中的任何一个的方法。
根据本发明的一个示例性实施例的一种计算机程序包括用于配置软件定义的网络的网络单元的软件模块,所述网络单元保存至少一个查找表,所述至少一个查找表定义要与管理第一数据帧相结合地执行的动作。所述软件模块包括计算机可执行指令,该计算机可执行指令用于控制网络单元的可编程控制处理器部分以:
-从自所述软件定义的网络的控制器接收的一个或多个第二数据帧读取配置程序,所述配置程序包括一个或多个计算机可执行指令,所述一个或多个计算机可执行指令定义要与管理所述第一数据帧相结合地执行的至少一个动作,并且
-将所述配置程序与所述至少一个查找表相关联,使得所述配置程序借助于所述至少一个查找表能够被调用以与管理所述第一数据帧相结合地被执行。
在根据本发明的一个示例性实施例的计算机程序中,所述软件模块包括计算机可执行指令,所述计算机可执行指令用于控制所述网络单元的所述可编程控制处理器部分以将所述配置程序编译为通过所述网络单元可执行以实现所述软件定义的网络的数据平面的程序代码。
所述软件模块能够例如是使用适当的编程语言并且使用适合于所述编程语言和所述可编程处理器的编译器实现的子例程或功能。
根据本发明的一个示例性实施例的一种计算机程序产品包括使用根据本发明的一个示例性实施例的计算机程序编码的、例如致密盘(“CD”)的计算机可读介质。
根据本发明的一个示例性实施例的一种信号被编码以承载定义根据本发明的一个示例性实施例的计算机程序的信息。
在如上给出的说明中提供的具体示例不应当被解释为限制所附的权利要求的范围和/或适用性。
Claims (20)
1.一种用于软件定义的网络的网络单元(101、201),所述网络单元包括:
-数据传送接口(210),用于接收数据和用于发送数据,
-控制处理器部分(213),用于保存定义要与管理第一数据帧相结合地执行的第一动作的至少一个查找表,所述第一动作中的每一个属于由用于配置所述网络单元的协议定义的预定义动作集合,以及
-网络处理器部分(212),用于根据所述至少一个查找表来管理所述第一数据帧,
其特征在于:
-所述控制处理器部分被适配以从一个或多个第二数据帧读取配置程序,所述配置程序包括定义要与管理所述第一数据帧相结合地执行的至少一个第二动作的一个或多个计算机可执行指令,
-所述控制处理器部分被适配以将所述配置程序与所述至少一个查找表相关联,使得借助于所述至少一个查找表所述配置程序可调用以与管理所述第一数据帧相结合地执行,所述配置程序向所述网络单元提供不根据所述预定义动作集合受限制的功能,并且
-所述网络处理器部分被适配以响应于以下情况来执行由所述配置程序定义的所述至少一个第二动作:所述管理所述第一数据帧包括用以执行所述配置程序的命令。
2.根据权利要求1所述的网络单元,其中,所述控制处理器部分被适配以将所述配置程序编译为可由所述网络处理器部分执行的程序代码。
3.根据权利要求1或2所述的网络单元,其中,所述控制处理器部分被适配以将所述配置程序与所述至少一个查找表相关联,使得所述查找表的至少一个条目包括用以执行所述配置程序的命令。
4.根据权利要求1或2所述的网络单元,其中,所述控制处理器部分被适配以将所述配置程序与所述至少一个查找表相关联,使得所述查找表的条目中的第一条目包括用于以所述配置程序的一个或多个输入参数的一个或多个第一值来执行所述配置程序的命令,并且所述查找表的所述条目中的第二条目包括用于以所述配置程序的所述一个或多个输入参数的一个或多个第二值来执行所述配置程序的指令。
5.根据权利要求1或2所述的网络单元,其中,所述控制处理器部分被适配以将所述配置程序与所述至少一个查找表相关联,使得所述查找表表示用于在从所述查找表执行查找之前执行所述配置程序的命令。
6.根据权利要求5所述的网络单元,其中,所述网络处理器部分被适配以使用由所述配置程序返回的输出数据作为用于从所述查找表进行的所述查找的至少一部分查找键,所述查找键确定所述查找表的哪个条目是所述查找的结果。
7.根据权利要求1或2所述的网络单元,其中,所述网络处理器部分被适配以建立用于管理所述第一数据帧的动作列表,并且随后执行在所述动作列表中列出的动作,并且所述控制处理器部分被适配以将所述配置程序与所述至少一个查找表相关联,使得所述查找表的条目中的第一条目包括用于向所述动作列表添加用以执行所述配置程序的命令的命令。
8.根据权利要求7所述的网络单元,其中,所述控制处理器部分被适配以将所述配置程序与所述至少一个查找表相关联,使得所述查找表的所述条目中的所述第一条目进一步包括用于向所述动作列表添加所述配置程序的一个或多个输入参数的一个或多个第一值的命令。
9.根据权利要求1或2所述的网络单元,其中,由所述配置程序定义的所述至少一个动作包括如下的至少一个:从所述第一数据帧读取数据,修改所述第一数据帧,选择所述数据传送接口的外出端口之一并且将所述第一数据帧向所选择的外出端口转发,选择由所述网络单元保存的查找表之一并且执行从所选择的查找表的查找,执行算术运算,将操作分支,执行逻辑操作,读取与所述第一数据帧相关联的元数据,写入与所述第一数据帧相关联的元数据,修改与所述第一数据帧相关联的元数据,丢弃所述第一数据帧,复制所述第一数据帧。
10.根据权利要求1或2所述的网络单元,其中,所述网络单元是如下的至少一个:因特网协议“IP”路由器、多协议标签交换“MPLS”交换机、以太网交换机、分组光学交换机。
11.一种用于配置软件定义的网络的网络单元的方法,所述网络单元保存至少一个查找表,所述至少一个查找表定义要与管理第一数据帧相结合地执行的第一动作,所述第一动作中的每一个属于由用于配置所述网络单元的协议定义的预定义动作集合,所述方法包括:
-在所述网络单元处,从所述软件定义的网络的控制器接收(301)一个或多个第二数据帧,
其特征在于所述方法进一步包括:
-从所述一个或多个第二数据帧读取(302)配置程序,所述配置程序包括一个或多个计算机可执行指令,所述一个或多个计算机可执行指令定义要与管理所述第一数据帧相结合地执行的至少一个第二动作,以及
-将所述配置程序与所述至少一个查找表相关联(303),使得借助于所述至少一个查找表所述配置程序可调用以与管理所述第一数据帧相结合地被执行,所述配置程序向所述网络单元提供不根据所述预定义动作集合受限制的功能,并且执行所述配置程序包括执行通过所述配置程序定义的所述至少一个第二动作。
12.根据权利要求11所述的方法,其中,所述将所述配置程序与所述至少一个查找表相关联包括:将所述配置程序编译为可由所述网络处理器部分执行的程序代码。
13.根据权利要求11或12所述的方法,其中,所述配置程序被与所述至少一个查找表相关联,使得所述查找表的至少一个条目包括用以执行所述配置程序的命令。
14.根据权利要求11或12所述的方法,其中,所述配置程序被与所述至少一个查找表相关联,使得所述查找表的条目中的第一条目包括用于以所述配置程序的一个或多个输入参数的一个或多个第一值来执行所述配置程序的命令,并且所述查找表的所述条目中的第二条目包括用于以所述配置程序的所述一个或多个输入参数的一个或多个第二值来执行所述配置程序的指令。
15.根据权利要求11或12所述的方法,其中,所述配置程序被与所述至少一个查找表相关联,使得所述查找表表示用于在从所述查找表执行查找之前执行所述配置程序的命令。
16.根据权利要求15所述的方法,其中,所述配置程序被与所述至少一个查找表相关联,使得由所述配置程序返回的输出数据可用作用于从所述查找表的所述查找的至少一部分查找键,所述查找键确定所述查找表的哪个条目是所述查找的结果。
17.根据权利要求11或12所述的方法,其中,所述配置程序被与所述至少一个查找表相关联,使得所述查找表的条目中的第一条目包括用于向被建立用于管理所述第一数据帧的动作列表添加用以执行所述配置程序的命令的命令。
18.根据权利要求17所述的方法,其中,所述配置程序被与所述至少一个查找表相关联,使得所述查找表的所述条目中的所述第一条目进一步包括用于向所述动作列表添加所述配置程序的一个或多个输入参数的一个或多个第一值的命令。
19.根据权利要求11或12所述的方法,其中,由所述配置程序定义的所述至少一个动作包括如下的至少一个:从所述第一数据帧读取数据,修改所述第一数据帧,选择所述网络单元的外出端口之一并且将所述第一数据帧向所选择的外出端口转发,选择由所述网络元件保存的查找表之一并且执行从所选择的查找表的查找,执行算术运算,将操作分支,执行逻辑操作,读取与所述第一数据帧相关联的元数据,写入与所述第一数据帧相关联的元数据,修改与所述第一数据帧相关联的元数据,丢弃所述第一数据帧,复制所述第一数据帧。
20.一种软件定义的网络(100),包括:
-一个或多个网络单元(101-104),所述一个或多个网络单元(101-104)的每一个包括:数据传送接口,用于接收数据和用于发送数据;控制处理器部分,用于保存至少一个查找表,所述至少一个查找表定义要与管理第一数据帧相结合地执行的第一动作;以及网络处理器部分,用于根据所述至少一个查找表来管理所述第一数据帧,所述第一动作中的每一个属于由用于配置所述网络单元的协议定义的预定义动作集合,以及
-控制器(105),用于向所述一个或多个网络单元发送一个或多个第二数据帧,所述一个或多个第二数据帧包含配置程序,所述配置程序包括一个或多个计算机可执行指令,所述一个或多个计算机可执行指令定义要与管理所述第一数据帧相结合地执行的至少一个第二动作,
其特征在于:
-所述一个或多个网络单元的每一个的所述控制处理器部分被适配以从所述一个或多个第二数据帧读取所述配置程序,
-所述一个或多个网络单元的每一个的所述控制处理器部分被适配以将所述配置程序与所述至少一个查找表相关联,使得借助于所述至少一个查找表所述配置程序可调用以与管理所述第一数据帧相结合地被执行,所述配置程序向所述网络单元提供不根据所述预定义动作集合受限制的功能,并且执行所述配置程序包括执行通过所述配置程序定义的所述至少一个第二动作,并且
-所述一个或多个网络单元的每一个的所述网络处理器部分被适配以响应于以下情况来执行由所述配置程序定义的所述至少一个第二动作:所述管理所述第一数据帧包括用以执行所述配置程序的命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FI20126275 | 2012-12-07 | ||
FI20126275A FI20126275L (fi) | 2012-12-07 | 2012-12-07 | Menetelmä ja laitteisto ohjelmallisesti määriteltävän verkon konfiguroimiseksi |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103873291A CN103873291A (zh) | 2014-06-18 |
CN103873291B true CN103873291B (zh) | 2019-03-05 |
Family
ID=49709536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310655694.8A Active CN103873291B (zh) | 2012-12-07 | 2013-12-06 | 用于配置软件定义的网络的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9544186B2 (zh) |
EP (1) | EP2741209A3 (zh) |
CN (1) | CN103873291B (zh) |
FI (1) | FI20126275L (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9559950B2 (en) * | 2014-03-31 | 2017-01-31 | Tigera, Inc. | Data center networks |
US9813258B2 (en) | 2014-03-31 | 2017-11-07 | Tigera, Inc. | Data center networks |
US9344364B2 (en) | 2014-03-31 | 2016-05-17 | Metaswitch Networks Ltd. | Data center networks |
US10644950B2 (en) | 2014-09-25 | 2020-05-05 | At&T Intellectual Property I, L.P. | Dynamic policy based software defined network mechanism |
US9798810B2 (en) | 2014-09-30 | 2017-10-24 | At&T Intellectual Property I, L.P. | Methods and apparatus to track changes to a network topology |
CN104486218B (zh) * | 2014-12-16 | 2017-12-22 | 上海斐讯数据通信技术有限公司 | 一种基于sdn的mpls网络控制系统及方法 |
US11140088B2 (en) * | 2015-02-24 | 2021-10-05 | Coriant Oy | Network element and a controller for a data transfer network |
CN104702536B (zh) * | 2015-03-26 | 2017-11-28 | 清华大学 | 用于无线通信中OpenFlow交换机的报文处理方法 |
US10649747B2 (en) * | 2015-10-07 | 2020-05-12 | Andreas Voellmy | Compilation and runtime methods for executing algorithmic packet processing programs on multi-table packet forwarding elements |
US11429410B2 (en) * | 2017-05-09 | 2022-08-30 | Vmware, Inc. | Tag based firewall implementation in software defined networks |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5495521A (en) * | 1993-11-12 | 1996-02-27 | At&T Corp. | Method and means for preventing fraudulent use of telephone network |
CN1405998A (zh) * | 2001-09-14 | 2003-03-26 | 瑞昱半导体股份有限公司 | 光纤信号界面电路 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6651102B2 (en) | 1995-12-20 | 2003-11-18 | Nb Networks | Systems and methods for general purpose data modification |
CA2521814A1 (en) | 2003-04-07 | 2004-10-28 | Synematics, Inc. | System and method for providing scalable management on commodity routers |
EP2193630B1 (en) * | 2007-09-26 | 2015-08-26 | Nicira, Inc. | Network operating system for managing and securing networks |
EP2408155A4 (en) | 2009-03-09 | 2015-01-28 | Nec Corp | OPENFLOW COMMUNICATION SYSTEM AND OPENFLOW COMMUNICATION METHOD |
WO2011074559A1 (ja) | 2009-12-17 | 2011-06-23 | 日本電気株式会社 | ネットワークシステム、ネットワーク制御装置、及び制御方法 |
US9525647B2 (en) * | 2010-07-06 | 2016-12-20 | Nicira, Inc. | Network control apparatus and method for creating and modifying logical switching elements |
CN103098427B (zh) | 2010-09-08 | 2015-10-21 | 日本电气株式会社 | 交换系统、交换控制系统和存储介质 |
JP5987841B2 (ja) * | 2011-06-02 | 2016-09-07 | 日本電気株式会社 | 通信システム、制御装置、転送ノード、通信システムの制御方法およびプログラム |
WO2013031175A1 (en) * | 2011-08-29 | 2013-03-07 | Nec Corporation | Communication system, control device, node, node control method, and program |
WO2013069190A1 (en) * | 2011-11-09 | 2013-05-16 | Nec Corporation | Mobile communication terminal, communication method, communication system, and control apparatus |
US8711860B2 (en) * | 2011-12-22 | 2014-04-29 | Telefonaktiebolaget L M Ericsson (Publ) | Controller for flexible and extensible flow processing in software-defined networks |
-
2012
- 2012-12-07 FI FI20126275A patent/FI20126275L/fi not_active Application Discontinuation
-
2013
- 2013-11-29 EP EP13195065.1A patent/EP2741209A3/en not_active Ceased
- 2013-12-02 US US14/093,730 patent/US9544186B2/en active Active
- 2013-12-06 CN CN201310655694.8A patent/CN103873291B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5495521A (en) * | 1993-11-12 | 1996-02-27 | At&T Corp. | Method and means for preventing fraudulent use of telephone network |
CN1405998A (zh) * | 2001-09-14 | 2003-03-26 | 瑞昱半导体股份有限公司 | 光纤信号界面电路 |
Non-Patent Citations (1)
Title |
---|
A complier and run-time system for network programing languages;Christopher Monsanto,Nate Foster,Rob Harrison,David Walker;《PLDI09:PROCEEDINGS OF THE 2009 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION》;20120125;217-230 * |
Also Published As
Publication number | Publication date |
---|---|
US9544186B2 (en) | 2017-01-10 |
EP2741209A2 (en) | 2014-06-11 |
US20140160984A1 (en) | 2014-06-12 |
EP2741209A3 (en) | 2016-08-24 |
CN103873291A (zh) | 2014-06-18 |
FI20126275L (fi) | 2014-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103873291B (zh) | 用于配置软件定义的网络的方法和设备 | |
CN105406992B (zh) | 一种面向sdn的业务需求转化和部署方法 | |
CN104917699B (zh) | 软件定义网络的网络元件 | |
CN103780425B (zh) | 用于配置软件定义网络的方法和控制器设备 | |
CN108475244A (zh) | 加速网络分组处理 | |
CN105812340B (zh) | 一种虚拟网络访问外网的方法和装置 | |
CN104012052A (zh) | 用于软件定义网络中的流管理的系统和方法 | |
US9385939B2 (en) | Method and a controller system for configuring a software-defined network | |
CN103348630A (zh) | 用于在组播网络中控制选择的方法 | |
WO2017215378A1 (zh) | 软件定义网络、节点、路径计算方法、装置及存储介质 | |
CN104125149B (zh) | 优化软件定义的网络的网络元件的配置系统的方法和设备 | |
CN105099916B (zh) | 开放流路由交换设备及其对数据报文的处理方法 | |
KR20160122226A (ko) | 통신 시스템, 제어 장치, 통신 제어 방법 및 프로그램 | |
CN104796281B (zh) | 网络元件和用于管理网络元件的控制器 | |
US9130818B2 (en) | Unified systems of network tool optimizers and related methods | |
CN104221338A (zh) | 控制装置、通信系统、节点控制方法和程序 | |
EP2753034B1 (en) | A method and a device for defining implementation of a look-up table for a network element of a software-defined network | |
CN114422453B (zh) | 一种在线规划时间敏感流的方法、装置及存储介质 | |
CN107210975A (zh) | 软件定义网络的网元 | |
CN106416131A (zh) | 网元和管理该网元的控制器 | |
CN103916322B (zh) | 定义软件定义网络的网络元件的查找系统的方法和设备 | |
JP2005038251A (ja) | 分散制御システム、分散制御システム用ソフトウェア設計支援システム | |
CN107534567A (zh) | 用于对软件定义网络的控制平面进行配置的配置系统 | |
Chen et al. | An efficient flow table consistent update scheme for software defined network | |
Selezniov et al. | ANALYSIS OF OPENFLOW PROTOCOL |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |