CN105027505A - 在硬件抽象层中网络转发平面模型向目标实现的静态转化 - Google Patents

在硬件抽象层中网络转发平面模型向目标实现的静态转化 Download PDF

Info

Publication number
CN105027505A
CN105027505A CN201480010333.0A CN201480010333A CN105027505A CN 105027505 A CN105027505 A CN 105027505A CN 201480010333 A CN201480010333 A CN 201480010333A CN 105027505 A CN105027505 A CN 105027505A
Authority
CN
China
Prior art keywords
destination apparatus
mounted cast
network
mapping
primitive
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.)
Pending
Application number
CN201480010333.0A
Other languages
English (en)
Inventor
纳温德拉·亚达夫
丹尼尔·托德·科恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US13/775,994 external-priority patent/US20140241346A1/en
Priority claimed from US13/776,012 external-priority patent/US20140241347A1/en
Application filed by Google LLC filed Critical Google LLC
Publication of CN105027505A publication Critical patent/CN105027505A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种通信网络中的路由控制器,其可以负责生成限定网络的预期的转发行为的装置模型。可以使用网络基元的目标独立通用语言生成装置模型。控制器可将装置模型发送给目标装置。装置控制器可包括与模型的一个或多个部分相关联的一个或多个已知标识符。目标装置可以知道已知标识符与目标装置的能力之间的映射。在从控制器接收到装置模型时,目标装置可以检索已知映射,以静态地将装置模型转化为实现。装置模型的静态转化提供事先确定的映射的可重用性。不要求目标装置具有转化器,用于每次从控制器接收到装置模型时动态地转化装置模型。实施例示出了用于OpenFlow的硬件抽象层(HAL)。

Description

在硬件抽象层中网络转发平面模型向目标实现的静态转化
相关申请
本申请要求2013年2月25日提交的题为“STATIC TRANSLATIONOF NETWORK FORWARDING PLANE MODELS INTO TARGETIMPLEMENTATION IN THE HARDWARE ABSTRACTION LAYER”的美国专利申请No.13/776,012以及2013年2月25日提交的题为“TRANSLATING NETWORK FORWARDING PLANE MODELSINTO TARGET IMPLEMENTATION USING NETWORKPRIMITIVES”的美国专利申请No.13/775,994的优先权和权益,通过引用将二者全部内容合并于此。
背景技术
在通信网络中,诸如电话网络和数据网络,包括互联网,可以沿着从源装置到目的地装置的路径发送信息。源装置和目的地装置例如可以是个人计算机、服务器(诸如电子邮件服务器)、web服务器、或文件服务器,或者能够经由网络发送和/或接收信息的其他电子装置。
信息可以传递通过一个或多个转发装置,诸如路由器或者具有将信息转发给另一个装置的能力的其他电子装置。中间装置可以接收信息,并使用函数、算法、数据结构以及规则来确定在哪里以及怎样转发信息,使得信息朝向它预期的目的地移动。这些函数、算法、数据结构以及规则形成网络的“转发平面”。转发平面的函数、算法、数据结构以及规则可以通过网络中的一个或多个转发装置来实现和/或执行。
例如,转发装置可以在流入界面上接收分组,查找分组的目的地地址,并应用使得转发装置在特定路由表中查找目的地地址的规则。路由表可以提供“下一个目的地”的列表,其表示分组应当发送到的装置。用于特定分组的下一个目的地例如可以是最终目的地装置或者另一个中间转发装置。下一个目的地可通过路由表中存储的地址来识别。路由表中存储的下一个目的地可通过分组的最终目的地来索引——因此,通过查找分组的最终目的地(例如,通过分组的报头来识别),可以从路由表检索下一个目的地。然后,转发装置可以在流出界面上将分组转发给所识别的下一个目的地。
转发平面的某些方面会影响网络的效率。这些方面包括特定规则、算法、数据结构、以及所采用的函数、实现转发平面的方式、以及实现和/或执行转发平面的位置。
发明内容
通信网络中的路由控制器可以负责使用网络基元的通用语言为目标装置生成装置模型。这些目标装置可具有转发能力。示例性实施例允许目标装置基于网络的预期的行为来确定怎样转发传入的数据分组。这些目标装置可以基于目标装置的能力,将使用通用语言描述的期望的行为转化为实现。转化可以生成期望的行为与其实现之间的映射。
通用语言是用于限定网络意图(即,预期的转发行为)的目标独立描述。通用语言可以描述所请求的能力(例如,“在路由表中找到子网掩码的最长前缀匹配”),不需要指定怎样实现所请求的能力(例如,不需要指定用于进行最长前缀匹配的特定算法)。通用语言可以支持所指定的功能的多个实现(例如,用于找到最长前缀匹配的第一算法,以及用于找到最长前缀匹配的第二算法)。
根据示例性实施例,可以使用网络基元的目标独立通用语言来生成装置模型。网络基元是装置模型的构造块。网络基元可以被聚组以形成子模型,以在装置模型内产生模块化。网络基元和子模型可以被存储在库中。控制器可将装置模型发送给目标装置。在从控制器接收到装置模型时,目标装置可将装置模型转化为实现。
根据示例性实施例,装置模型可包括与模型的一个或多个部分相关联的一个或多个已知标识符。已知标识符与目标装置的能力之间的映射是已知的。已知映射例如可以被存储在已知映射的数据库中。在从控制器接收到具有已知标识符的装置模型时,目标装置可以检索并使用映射,以静态地将装置模型转化为实现。如果没有已知映射,那么目标装置的转化器必须动态地将装置模型中描述的意图转化为实现。因此,装置模型提供事先确定的映射的可重用性,并且不要求每次从控制器接收到装置模型时转化器动态地转化装置模型。
在某些实施例中,提供一种非暂时性电子装置可读存储介质。存储介质进一步保存指令,所述指令在被执行时使得一个或多个处理器接收以目标独立格式描述的装置模型。装置模型包括一个或多个网络基元。装置模型描述目标装置的预期的转发行为。存储介质还保存指令,所述指令在被执行时使得一个或多个处理器将装置模型转化为目标装置的一个或多个能力,该目标装置具有转发能力。转化包括将一个或多个网络基元映射到目标装置的一个或多个能力。存储介质进一步保存指令,所述指令在被执行时使得一个或多个处理器基于转化配置目标装置,并接收一个或多个输入分组。存储介质还保存指令,所述指令在被执行时使得一个或多个处理器基于配置将一个或多个输入分组转发给网络的一个或多个元件。
根据不同的实施例,提供一种非暂时性电子装置可读存储介质。存储介质进一步保存指令,所述指令在被执行时使得一个或多个处理器以目标独立格式生成装置模型。该装置模型包括一个或多个网络基元。该装置模型描述目标装置的预期的转发行为。存储介质还进一步保存指令,所述指令在被执行时使得一个或多个处理器将装置模型发送给网络中的目标装置用于实现,所述目标装置具有转发能力。
在某些实施例中,提供一种系统。系统包括路由控制器、目标装置和存储。该路由控制器生成以目标独立格式描述的装置模型。该装置模型包括一个或多个网络基元。该目标装置接收装置模型。该装置模型描述目标装置的预期的转发行为。该目标装置具有转发或交换能力。存储存储多个网络基元。装置模型使用从存储检索的一个或多个网络基元而生成。目标装置被配置为将装置模型中描述的预期的转发行为映射到目标装置的一个或多个能力的实现。
在某些实施例中,提供一种非暂时性电子装置可读存储介质。存储介质保存指令,所述指令在被执行时使得一个或多个处理器接收以目标独立格式描述的装置模型。装置模型描述目标装置的预期的转发行为。装置模型包括与装置模型的一个或多个部分相关联的一个或多个已知标识符。存储介质进一步保存指令,所述指令在被执行时使得一个或多个处理器检索映射,所述映射将装置模型的一个或多个已知标识符映射到具有转发或交换能力的目标装置的一个或多个能力的实现。存储介质进一步保存指令,所述指令在被执行时,使得一个或多个处理器通过使用所检索的映射将装置模型中描述的预期的转发行为静态地映射到目标装置的一个或多个能力的实现,配置目标装置。
根据不同的实施例,提供一种方法。所述方法涉及接收以目标独立格式描述的装置模型。装置模型描述目标装置的预期的转发行为。所述方法进一步涉及检索映射,所述映射将装置模型的一个或多个元件映射到具有转发或交换能力的目标装置的一个或多个能力的实现。所述方法还涉及通过使用所检索的映射将装置模型中描述的预期的转发行为静态地映射到目标装置的一个或多个能力的实现,配置目标装置。所述方法进一步涉及接收一个或多个输入分组以及基于所述配置将一个或多个输入分组转发给网络的一个或多个元件。
在某些实施例中,提供一种系统。所述系统包括路由控制器、目标装置和存储。路由控制器生成以目标独立格式描述的装置模型。目标装置接收装置模型。装置模型描述目标装置的预期的转发行为。目标装置具有转发或交换能力。存储存储一个或多个映射,所述映射将装置模型的一个或多个部分映射到目标装置的一个或多个能力的实现。目标装置被配置为从存储检索一个或多个映射,用于使用所检索的映射将装置模型中描述的预期的转发行为静态地映射到目标装置的一个或多个能力的实现。
附图说明
图1描绘根据示例性实施例的包括路由控制器和目标装置的示例性网络100。
图2描绘根据示例性实施例的示例性网络100的元件怎样交互的示例性方式。
图3描绘根据示例性实施例的通过控制器生成的示例性装置模型。
图4是根据示例性实施例的描述通过控制器进行的示例性步骤的流程图。
图5是根据示例性实施例的描述通过目标装置进行的示例性步骤的流程图。
图6描绘适合于与这里所述示例性实施例一起使用的示例性电子装置。
图7描绘根据示例性实施例进行的处理的示例性网络实现。
具体实施方式
如下更详细所述,示例性实施例允许软件定义网络的转发平面的抽象化。通常,设置转发表条目的抽象化损失很多关于应用开发者的意图的信息。因此,传统技术不能利用转发装置的所有特征,以递送可伸缩和有效的端到端实现。本申请目的在于将高层转发意图映射到转发装置的低层特征。
网络的路由控制器可以负责使用网络基元的通用语言生成装置模型。装置模型可以限定网络的意图,即,预期的转发行为。装置模型可包括与模型的一个或多个部分相关联的一个或多个标识符。
控制器可将装置模型发送给目标装置。基于目标装置的能力,目标装置将装置模型中描述的期望行为转化为实现。例如,目标装置可包括预定的硬件或软件逻辑,用于实现装置模型中限定的期望行为。因此,目标装置可以实现装置模型中限定的所请求的能力,不需要接收规定怎样实现所请求的能力的指令。如果装置模型中包括的标识符对于目标装置而言已知,即,目标装置事先接收和转化标识符,目标装置也将知道标识符与用于标识符的实现之间的映射。当从控制器接收装置模型时,目标装置可以检索和使用已知映射,静态地将装置模型转化为实现。如果没有已知映射,目标装置的转化器就必须动态地将装置模型转化为实现。因此,装置模型的静态转化提供事先确定的映射的可重用性,并且不需要在每次从路由控制器接收到装置模型时,转化器动态地转化装置模型。
图1描绘根据示例性实施例,包括路由控制器110和目标装置120的示例性网络100。控制器110可包括在硬件、软件或者其组合中实现的处理器、服务器或其他装置。除了其他可能之外,网络100可以是通信网络,诸如互联网、内联网、或电话网络。网络100可包括一个或多个光学、电子、或其他传递介质。
网络100的控制器110可以与目标装置120通信。控制器110可以直接或间接连接到目标装置120。应当理解,网络100仅用于说明的目的,并且适合于与这里所述的示例性实施例一起使用的网络可以具有其他元件或能力。例如,根据不同的实施例,控制器可以生成多个装置模型。
根据示例性实施例,目标装置120可具有转发功能,使得目标装置120能够在流入接口上接收传入信息,处理信息以确定信息的下一个目的地,以及在流出接口上将信息转发给下一个目的地。
控制器110可以使用通用语言生成装置模型112。装置模型112可以使用通用语言限定网络100的意图(例如,网络100内的预期的转发行为)。例如,装置模型112可以描述在一定条件下网络100的节点的期望行为,诸如在接收呼入分组时。
如同这里使用的,通用语言是可以通过所有接受者装置解释的目标独立语言。通用语言可以由称为“网络基元”的构造块形成。装置模型112可包括一个或多个网络基元114。网络基元114是要通过网络100的元件实现的功能的基本单元。网络基元114例如可以是要在网络100中使用的特定功能的描述。网络基元114可以描述网络100的元件意在进行什么动作,但是通常不包括对于要怎样执行这些动作的要求。因此,网络基元114可以描述期望的结果,而不提供为了实现结果的实现细节。实现细节可以留给实现网络基元114的特定装置,或者可以通过外部装置指定。可将装置模型112构造为一个或多个网络基元114的集合。在给定的装置模型中,相同的网络基元可以出现多次。
根据不同的实施例,网络基元可以在它们之间传递信息。网络基元可以为另一个网络基元产生要消费的信息。可以向基元之间交换的信息分配名称。被命名的信息可以称为句柄。命名信息允许通过符号的方式参考信息。此外,命名信息提高装置模型的可读性。还可将信息归类,即,可将一个或多个属性(诸如信息的大小)与信息相关联。
根据不同的实施例,与列队有关的网络基元114可以指定装置模型112的接受者装置是要实现平列队(flat queuing)、分等级列队、缓冲资源共享、动态缓冲区大小设置、尾部丢弃队列管理、加权尾部丢弃队列管理、或者队列高低水印。调度基元可以指定,调度应当是循环方式,如加权循环、低时延列队或严格优先级列队、加权公平列队、或者基于类别的加权公平列队。测量基元可以利用一速率双色(1R2C)IP分组标记、1R3C标记、或者2R3C标记。还可以利用多种其他网络基元。这些网络基元的实现的细节可以不指定,并留给实现基元的装置。
例如,网络基元可包括核心网络基元以及控制网络基元。核心网络基元可以描述数据路径功能的独立线程。例如,核心网络基元可以描述分组转发。核心基元可以用于建立用于网络元件的装置模型,所述网络元件包括但不限于交换机、路由器、负载均衡器、流装置。核心基元可以用于表示分片、重组、密码处理等等。控制网络基元可以描述管理性功能,例如独立线程之间的交互、事件处理、异常处理等等。
示例性核心网络基元可包括解析基元、表基元、逻辑基元、算术基元、分组复制基元、重写基元、测量基元、队列基元、调度器基元、丢弃基元、计数器基元、以及外部基元。下面讨论这些示例性核心基元中的一些。
解析基元可以限定约束以及从输入分组的分组报头字段提取的信息。根据不同的实施例,可以不一定需要解析基元描述对于非结构化的分组内容的深度分组检测。解析基元可包括解析报头顺序子基元,该解析报头顺序子基元可用于描述可接受的解析图。可将报头定义为来自输入分组的连续字节集合,从该输入分组可以提取一个或多个信息片段(字段),而不需要为了确定下一个报头而进行查找操作。解析报头顺序基元可以采用一个或多个参数。例如,报头顺序基元可以采用当前解析锚作为参数。当前解析锚可以确定在分组中应当在哪里开始解析。报头顺序基元还可以采用公知的报头名称/ID作为参数。该参数表示分配给报头的名称或ID。报头句柄ID参数可以表示分配给报头的句柄,以供在装置模型中参考。下一个解析锚参数表示在成功解析特定报头之后,指的是报头或子报头的有效载荷的位置的锚。报头顺序基元还可以采用报头解析状态句柄作为参数。参数限定指的是Boolean并捕捉解析状态的句柄。在报头呈现且有效的情况下将参数设置为TRUE。否则,将参数设置为FALSE。报头解析状态可以是可选的参数,并且如果模型作者没有兴趣查看解析状态,就可以跳过报头解析状态。
表基元包括表限定基元,该表限定基元可以提供关于数据存储(即表)的类型以及其他混合信息。类型信息以及与数据存储相关联的约束允许装置模型的消费者(例如,目标装置)证实转发平面例示满足要求。类型信息以及与数据存储相关联的约束还可以允许转发平面在实现数据存储时进行一次或多次优化。表限定基元可以采用一个或多个参数,诸如,指示表是否包括阵列、树、集合或列表的表类型。参数还可包括指示是否启用表共享的参数、表大小、表大小容差、表键限定列表、与每个键列表相关联的掩码、表结果限定以及表句柄(表ID/名称)。
表基元还可包括表操作子基元,该表操作子基元可以描述对于由表限定基元限定的数据存储采取的转发平面动作。表匹配子基元描述对于表的匹配或搜索操作。表插入子基元描述通过数据平面进行的数据存储插入操作。
逻辑基元可以允许装置模型表达简单的布尔逻辑或者在转发输入分组时使用的条件操作。逻辑运算符可以采用句柄作为输入并且可以利用逻辑运算的结果产生输出句柄。逻辑基元可以支持像整数比较那样的运算,包括大于运算、小于运算、等于运算、Boolean逻辑运算(比如与运算、或运算、非运算等等)。逻辑基元可以采用一个或多个参数,包括变为操作数的有序输入句柄。操作数的顺序和语义通过算术运算来限定。逻辑基元还可以采用输出句柄作为参数。输出句柄可以存储通过逻辑基元进行的运算的结果。
示例性控制网络基元可包括范围基元、事件操纵者基元、信号量基元、事件基元以及引发基元(raise primitive)。下面讨论这些示例性核心基元中的一些。
范围基元可以允许装置模型作者指示要在基元集合中进行的运算的顺序。例如,范围基元可以结合逻辑基元使用,以限定要进行的逻辑运算的顺序。
事件操纵者基元可将事件与合作性基元(表示某些限定的功能)的集合绑定。具有限定的功能的基元的集合可以给定“名称”。事件操纵者可将命名的事件与命名的基元的集合绑定。
信号量基元可以允许模型作者描述装置模型内的相互排斥、临界段等等。信号量基元可以允许一个以上的基元集合访问资源。信号量基元还可用于允许多个个别基元集合安全地访问共享资源的不同实例(如果可用的话)。
引发基元可用于引发异常。引发基元可用于限定在遭遇一定的异常情况时应当怎样进行处理。引发基元可具有两种模式:第一模式,其要求停止分组的处理以及采用例外,以及第二模式,其允许主要处理继续,并且也采用例外。
在某些实施例中,一个或多个网络基元114可以聚组在一起,形成子模型。子模型可以表示装置112内的期望功能。子模型促进给定装置模型内的模块化。如下更详细所述,可将多个子模型存储在子模型库中。控制器110可以从子模型库检索期望的子模型,并在装置模型中使用所检索的子模型。类似地,如果控制器110通过聚组一个或多个网络基元生成新的子模型,则控制器110可将新的子模型存储在子模型库中。本领域技术人员应当理解,装置模型中子模型的使用是可选的。不需要使用任何子模型就可以生成装置模型。但是,子模型促进模块化并允许装置模型的用户友好可视化。
通过控制器110生成的装置模型112可以指定网络110内所有的路由/转发功能。在某些实施例中,控制器110可以生成多个装置模型。例如,控制器110可以生成在某些环境下要使用的第一装置模型112,诸如在网络流量高或低的时期,或者在接收某些类型的分组时。控制器110可以生成由网络基元114’形成的第二装置模型112’,其中在其他情况下可以使用第二装置模型112’。通过修改装置模型112或112’,网络管理者可以使得网络100展现不同的网络转发行为。
控制器110可将所生成的装置模型112和/或112’发送给目标装置120。装置模型112和/或112’可以表示目标装置120需要的完整功能集合。如果可用的话,目标装置120可以在其已知的约束范围内,解释装置模型112和/或112’中包含的信息。在接收到装置模型112和/或112’时,目标装置120可将装置模型112和/或112’中描述的预期行为转化为实现。目标装置120可包括在其硬件抽象层(HAL)122处提供的转化器126。例如,基于目标装置120的专用集成电路(ASIC)124的能力,转化器126可将目标独立的装置模型112和/或112’转化为目标装置120上的实现。因此,可将高层的一般期望转发行为映射到低层的ASIC特征。
装置模型112和/或112’可包括与装置模型112和/或112’的一个或多个部分相关联的一个或多个标识符。目标装置120可以熟悉装置模型112和/或112’的标识符。例如,目标装置120可以事先接收一个或多个标识符,并将所述标识符转化为实现。因此,目标装置120可以知道一个或多个已知的标识符与目标装置上它们的实现之间的映射。例如,可将已知的映射存储在已知的映射的数据库中。如果目标装置120知道映射,则转化器126可以从数据库检索已知的映射,并静态地将装置模型112和/或112’转化为目标装置120上的实现。也就是说,不是动态地将所接收的装置模型112和/或112’的一个或多个部分转化为实现,而是目标装置120可以使用预先映射,静态地将装置模型112和/或112’转化为实现。
图2描绘根据示例性实施例,示例性网络100的元件可以怎样交互。网络200中设置的控制器202可以将至少一个装置模型204发送给目标装置250。装置模型204可包括一个或多个标识符。在接收到具有标识符202的装置模型时,目标装置250检查存储208,例如数据库,用于标识符与它们的实现之间的预定映射。如果目标装置250在所接收的装置模型204中发现用于标识符的预定映射,则目标装置250可以检索映射。目标装置250的转化器210可以使用从存储208检索的预定映射,静态地将标识符转化为实现。如果目标装置250没有在所接收的装置模型204中发现用于标识符的预定映射,则目标装置250的转化器210可以基于目标装置250的能力,动态地将标识符转化为实现。当完成转化时,将装置模型202中描述的预期行为传递给目标装置上的实现212。
图3描绘根据示例性实施例,通过控制器生成的示例性装置模型300。装置模型300被设置为统一建模语言(UML)活动图。应当理解,UML活动图是用于说明性的目的,并且可以使用其他图形和/或文本建模语言来设置装置模型300。装置模型300图示用于实施媒体访问控制(MAC)桥的网络行为的表现。装置模型300包括多个网络基元302-318。当装置模型300被发送给目标装置时,向目标装置的ASIC给予网络期望的特定行为,用于通过目标装置的有效实现。
根据不同的实施例,也可以使用文本代码(诸如伪代码)来表达装置模型300。下面提供表示装置模型300的一部分示例性伪代码。本领域技术人员应当理解,提供伪代码是为了示例性的目的,而不应视为限制。
{
primitive TABLEDEF(Name=“MACTable”/*Data Structure Name*/,
TableShared=TRUE,TableType=ExactMatch,
SearchKey={{/*Bridging Search Key*/(Vlan,12),(MACAddress,48)},
{/*Learning Search Key*/(PortID,8),(VlanID,12),(MACAddress,48)}},
TableResult={BridgingResult,LearningResult},
TableSize=MacTableSize);
...
primitive TABLEOPS_MATCH(MatchName=BridgeForwardingMatch,TABLE=”MACTable”,
consumes(VlanID,MACDestAddress),
SearchKeyMap={(Vlan:VlanID),(MACAddress:MACDestAddress)},
produces(outPortID,DropPacket),ResultMap={(BridgingResult.oPort:outPortID),
(BridgingResult.drop:DropPacket)});
...
primitive TABLEOPS_MATCH(MatchName=BridgeLearningMatch,TABLE=”MACTable”,
consumes(PortID,VlanID,MACSrcAddress),
SearchKeyMap={((PortID:PortID),(Vlan:VlanID),(MACAddress:MACSrcAddress)},
produces(LearningHit),ResultMap={(LearningResult.Hit:LearningHit)});
...
if(LearningHit==TRUE&&STPLearningEnabled==TRUE){/*Conditional Logic Primitive*/
...
/*Record Activity for the Src MAC address*/
primitive TABLEOPS_MODIFY(MatchName=UpdateMACActivity,TABLE=”MACTable”,
consumes(PortID,VlanID,MACSrcAddress,CurrentTimeStamp),
SearchKeyMap={(PortID:PortID),(Vlan:VlanID),(MACAddress:MACSrcAddress)},
produces(),ResultMap={(LearningResult.LastSeen:CurrentTimeStamp)});
...
}else if(LearningHit==FALSE&&STPLearningEnabled==TRUE){/*Logic*/
...
/*Learn the Src MAC address*/
primitive TABLEOPS_INSERT(MatchName=LearnMAC,TABLE=”MACTable”,
consumes(PortID,VlanID,MACSrcAddress,CurrentTimeStamp),
SearchKeyMap={(PortID:PortID),(Vlan:VlanID),(MACAddress:MACSrcAddress)},
produces(),ResultMap={(LearningResult.LastSeen:CurrentTimeStamp),
(BridgingResult.oPort:PortID),(BridgingResult.drop:FALSE)});
...
}
如上所述,伪代码可以具有用于装置模型300的网络基元的条目。例如,上面提供的一部分伪代码具有用于表定义网络基元306、tableops_match网络基元304、tableops_modify网络基元308、以及tableops_insert网络基元310的条目。
在接收到以图形格式或者以伪代码格式的装置模型300时,目标装置将装置模型300转化为实现。在MAC桥的实现中的示例性装置模型300的转化将允许耦接到网络中的目标装置的一个或多个终端站之间的通信。具体而言,在装置模型300中表示的预期的行为允许一个或多个终端站之间的互连,就像它们附接到单个局域网(LAN),即使这一个或多个终端站是附接到分离的LAN。
当控制器生成装置模型时,控制器可将装置模型发送给目标装置,用于实现。控制器可以发送以图形格式和/或以文本格式(诸如伪代码)的装置模型。图形格式和伪代码两者都包括以目标独立通用语言生成的一个或多个网络基元。下面讨论通过控制器和目标装置进行的步骤。
图4是描述根据示例性实施例,通过控制器进行的示例性步骤的流程图。控制器可以以目标独立格式生成装置模型(步骤402)。装置模型可以为目标装置描述预期的转发行为。预期的转发行为可以是开发者的意图的高层指示。控制器可将所生成的装置模型发送给目标装置,用于实现(步骤404)。
图5是描述根据示例性实施例,通过目标装置进行的示例性步骤的流程图。目标装置接收通过控制器生成的装置模型(步骤502)。可以以目标独立格式描述装置模型。装置模型可包括与装置模型的一个或多个部分相关联的一个或多个标识符。所述一个或多个标识符可以为目标装置已知。例如,目标装置可具有事先接收的一个或多个标识符。例如,目标装置可以从存储检索一个或多个已知标识符与目标装置上其实现之间的事先生成的映射(步骤504)。目标装置可以使用从存储检索的映射,静态地将装置模型转化为实现(步骤506)。可以基于转化来配置目标装置(步骤508)。当目标装置接收一个或多个输入分组时(步骤510),目标装置可以基于配置将所接收的输入分组转发给网络的一个或多个元件(步骤512)。
可将上述动作的一个或多个编码为可通过处理逻辑执行的计算机可执行指令。计算机可执行指令可以存储在一个或多个非暂时性计算机可读媒介中。上述动作的一个或多个可以在适当编程的电子装置中进行。图6描绘适合于与这里讨论的一个或多个动作一起使用的电子装置600的示例。
电子装置600可以采用许多形式,包括但不限于计算机、工作站、服务器、网络计算机、量子计算机、光学计算机、互联网应用、移动装置、寻呼机、平板电脑、智能传感器、专用处理装置等等。
电子装置600是说明性的,并且可以采用其他形式。例如,电子装置600的替代性实现可具有更少的组件、更多的组件、或者是与图6中的配置不同的配置中的组件。这里所述图6和/或其他图的组件可以使用基于硬件的逻辑、基于软件的逻辑、和/或作为基于硬件的逻辑与基于软件的逻辑的组合(例如,混合逻辑)的逻辑来实现;因此,图6和/或其他图中所图示的组件不限于特定类型的逻辑。
处理器602可包括基于硬件的逻辑或者基于硬件的逻辑与软件的组合,以代表电子装置600执行指令。处理器602可包括逻辑,所述逻辑可以解释、执行、和/或处理例如存储器604中包含的信息。信息可包括可以实现本发明一个或多个实施例的计算机可读指令和/或数据。处理器602可包括各种同构或异构的硬件。硬件例如可包括一个或多个处理器、微处理器、现场可编程门阵列(FPGA)、专用指令集处理器(ASIP)、专用集成电路(ASIC)、复杂可编程逻辑器件(CPLD)、图形处理单元(GPU)、或者可以解释、执行、操纵和/或处理信息的其他类型的处理逻辑的某些组合。处理器可包括单核或多核603。此外,处理器602可包括芯片上系统(SoC)或者封装内系统(SiP)。
电子装置600可包括一个或多个有形非暂时性计算机可读存储媒介,用于存储可以实现本发明一个或多个实施例的一个或多个计算机可读指令或软件。非暂时性计算机可读存储媒介例如可以是存储器604或存储618。存储器604可包括三元内容可寻址存储器(TCAM)和/或RAM,RAM可包括RAM装置,RAM装置可存储信息。RAM装置可以是易失性或者非易失性的,并且例如可包括一个或多个DRAM装置、闪存装置、SRAM装置、零电容RAM(ZRAM)装置、双晶体管RAM(TTRAM)装置、只读存储器(ROM)装置、铁电RAM(FeRAM)装置、磁阻RAM(MRAM)装置、相变存储器RAM(PRAM)装置、或者其他类型的RAM装置。
一个或多个计算装置600可包括虚拟机(VM)605,用于执行存储器604中载入的指令。虚拟机605可以设置为操纵多个处理器上运行的处理,使得处理可以显现为只使用一个计算资源而不是多个计算资源。在电子装置600中可以采用虚拟化,使得可以动态地共享电子装置中的基础结构和资源。多个VM 605可以驻留在单个计算装置600上。
可以在ASIC、FPGA或者某些其他装置中实现硬件加速器606。硬件加速器606可用于缩短电子装置600的一般处理时间。
电子装置600可包括网络接口608,以通过各种连接接口到局域网(LAN)、广域网(WAN)或互联网,各种连接包括但不限于标准电话线、LAN或WAN链路(例如,T1、T3、56kb、X.25)、宽带连接(例如,综合服务数字网络(ISDN)、帧中继、异步传送模式(ATM)、无线连接(例如,802.11)、高速互连(例如,InfiniBand、gigabit Ethernet、Myrinet))或者上述任何一个或全部的某些组合。网络接口608可包括内置网络适配器、网络接口卡、个人计算机存储卡国际协会(PCMCIA)、网络卡、卡总线网络适配器、无线网络适配器、通用串行总线(USB)网络适配器、调制解调器或者适合于将电子装置600接口到能够通信的任何类型的网络并进行这里所述操作的任何其他装置。
电子装置600可包括一个或多个输入装置610,诸如键盘、多点触摸界面、定点装置(例如,鼠标)、陀螺仪、加速计、触觉装置、感触装置、神经装置、麦克风、或者相机,其例如可用于接收来自用户的输入。注意,电子装置600可包括其他适当的I/O外设。
输入装置610可以允许用户提供在视觉显示装置614上登记的输入。在显示装置614上可以示出图形用户界面(GUI)616。
存储装置618也可以与计算机600相关联。存储装置618可以经由I/O总线访问处理器602。通过处理器602可以执行、解释、操控和/或处理信息。例如,存储装置618例如可包括诸如磁盘、光盘(例如,CD-ROM、DVD播放器)、随机存取存储器(RAM)盘、带式机、和/或闪存驱动器这样的存储装置。信息可以存储在存储装置中包含的一个或多个非瞬变有形计算机可读媒介上。该媒介例如可包括磁盘、光盘、磁带、和/或存储器装置(例如,闪存装置、静态RAM(SRAM)装置、动态RAM(DRAM)装置或其他存储器装置)。信息可包括数据和/或可以实现本发明一个或多个实施例的计算机可读指令。
存储装置618可以进一步存储应用624,并且电子装置600可以运行操作系统(OS)626。OS 626的示例可包括操作系统、Unix和Linux操作系统、用于Macintosh计算机的嵌入式操作系统(诸如Symbian OS)、实时操作系统、开放源操作系统、专有操作系统、用于移动电子装置的操作系统、或者能够在电子装置上运行并进行这里所述操作的其他操作系统。操作系统可以按照本机模式或仿真模式运行。
存储装置618可以进一步包括规则628,该规则628描述在通信网络中应当怎样转发消息。规则628可用于转发在电子装置628处接收的消息或信息。因此,电子装置600可以充当转发装置、交换机或路由器。
存储装置618可以存储实现数据库630。实现数据库630可以是数据结构,诸如表或矩阵,其存储标识符,该标识符识别通过电子装置630实现的预定功能。实现数据库可以进一步存储预定功能的实现细节。
存储装置618可以进一步包括用于实现通信协议640的逻辑。通信协议640可以是提供用于访问和修改电子装置600的转发平面的功能的接口的协议。示例性通信协议640包括但不限于OpenFlow协议(例如,参见McKeown,Nick et al.,“OpenFlow:Enabling Innovation in CampusNetworks,”ACM SIGCOMM Computer Communication Review Archive,vol.38issue 2,pp.69-74(2008年四月),通过引用将其内容合并于此)或者自定义通信协议。因此,电子装置600可以充当远程控制器,诸如关于图1所述的控制器110。
通信协议640可以允许定义和/或修改通过电子装置600实现的转发平面的细节。因此,通信协议640允许将通信网络建成可编程的。
通信协议640可以支持一个或多个装置模型642的使用以实现转发平面的功能。装置模型642可以表示要通过电子装置640实现的全部网络路由功能集合。例如,装置模型642可以限定转发平面的功能和性能。
装置模型642可包括一个或多个网络基元。网络基元是要通过电子装置600实现的功能的基本单元。网络基元例如可以是要在通信网络中使用的特定功能的描述。网络基元可以描述电子装置600意在进行什么动作,但是通常不包括对于要怎样执行这些动作的要求。因此,网络基元可以描述期望的结果,而不提供为了实现结果的实现细节。实现细节可以留给实现网络基元的特定装置,或者可以通过外部装置指定。
例如,与列队有关的网络基元可以指定,电子装置600(充当转发装置)是要实现水平列队、分等级列队、缓冲资源共享、动态缓冲区大小设置、尾部丢弃队列管理、加权尾部丢弃队列管理、或者队列高低水印。调度基元可以指定,调度应当是循环方式,如加权循环、低时延列队或严格优先级列队、加权公平列队、或者基于类别的加权公平列队。测量基元可以利用一速率双色(1R2C)IP分组标记、1R3C标记、或者2R3C标记。还可以利用多种其他网络基元。这些网络基元的实现的细节可以不指定,并留给实现基元的装置。
可将装置模型642构造为一个或多个网络基元的集合。例如,一个装置模型642可以指定,电子装置600要以循环调度来使用水平列队。
一个或多个装置模型642可以指定电子装置600的全部网络路由/转发功能。例如,在一定环境下可以使用第一装置模型642,诸如在网络流量高或低的时期,或者在接收某些类型的分组时,并且在其他环境下可以使用第二装置模型642。通过修改装置模型642,网络管理者可以使得电子装置600展现不同的网络转发行为。
通信协议640可以参考装置模型642,并使用通过实现数据库630限定的功能,实现通过装置模型642限定的功能。或者,通信协议640可以使用与通信协议640一起在本地存储或者从远处(诸如远程控制器)提供的默认或一般实现。
本发明的一个或多个实施例可以使用可以在一个或多个非暂时性有形计算机可读介质上具体实现的计算机可读指令和/或数据来实现。介质可以是但是不限于硬盘、压缩盘、数字通用盘、闪存卡、可编程只读存储器(PROM)、随机存取存储器(RAM)、只读存储器(ROM)、磁阻随机存取存储器(MRAM)、磁带、或其他计算机可读媒介。
图7描绘可以实现本发明一个或多个实施例的网络实现。系统700可包括计算装置600、网络712、服务提供者713、目标环境714、以及集群715。图7的实施例为示例性的,并且其他实施例可包括更多的装置、更少的装置、或者与图7的布置不同的布置中的装置。
网络712可将数据从源运输到目的地。网络712的实施例可以使用网络装置,诸如路由器、交换机、防火墙、和/或服务器(未示出)以及连接(例如,链路)来运输数据。数据可以指的是任何类型的机器可读信息,该机器可读信息实质上具有适合于在一个或多个网络中和/或与一个或多个装置(例如,计算装置600、服务提供者713等等)一起使用的任何格式。数据可包括数字信息或模拟信息。数据可进一步被分组和/或不分组。
网络712可以是使用有线导体和/或光纤的硬连线网络,和/或可以是使用自由空间光学、射频(RF)、和/或声学传输路径的无线网络。在一个实现中,网络712实质上可以是开放的公共网络,诸如互联网。在另一个实现中,网络712可以是更严格的网络,诸如企业虚拟网。网络712可包括互联网、内联网、局域网(LAN)、广域网(WAN)、城域网(MAN)、无线网络(例如,使用IEEE 802.11)、或者其他类型的网络。网络712可以使用中间件,诸如公共对象请求代理体系结构(CORBA)或者分布式组件对象模型(DCOM)。网络和/或在这里所述网络上操作的装置的实现例如不限于任何特定的数据类型、协议、和/或体系结构/配置。
服务提供者713可包括使得服务可用于另一个装置的装置。例如,服务提供者713可包括使用服务器和/或其他装置向目的地提供一个或多个服务的实体(例如,个体、企业、教育机构、政府机关等等)。服务可包括通过目的地执行的指令以进行操作(例如,优化操作)。或者,服务可包括代表目的地执行的指令,以代表目的地进行操作。
服务器714可包括通过网络712接收信息的装置。例如,服务器714可以是从计算机600接收用户输入的装置。
集群715可包括多个执行单元(UE)716,并且可代表计算机500和/或另一个装置(诸如服务提供者713或者服务器714)进行处理。例如,聚组715可以对于从计算机600接收的操作进行并行处理。聚组715可包括驻留在单个装置或芯片上或者驻留在多个装置或芯片上的UE716。
执行单元(UE)716可包括代表装置(诸如请求装置)进行操作的处理装置。UE可以是微处理器、现场可编程门阵列(FPGA)、和/或另一种类型的处理装置。UE 716可包括代码,诸如用于操作环境的代码。例如,UE可以运行关于并行处理活动的操作环境的一部分。服务提供者713可以操作集群715,并且可以在订阅的基础上向计算机500提供交互优化能力(例如,经由web服务)。
执行单元(UE)可以为应用724提供远程/分布式处理能力。执行的硬件单元可包括能进行和/或参与并行编程活动的装置(例如,硬件资源)。例如,执行的硬件单元可以响应于其已经接收到的请求和/或任务(例如,直接接收或者经由代理),进行和/或参与并行编程活动。执行的硬件单元可以使用一个或多个装置,实质上进行和/或参与任何类型的并行编程(例如,任务、数据、流处理等等)。例如,执行的硬件单元可包括单个处理装置,该单个处理装置包括多个核或多个处理器。执行的硬件单元也可以是可编程装置,诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)、或者其他可编程装置。可以以多种不同配置(或拓扑),诸如栅格、环形、星形、或其他配置,来布置执行的硬件单元中使用的装置。在进行处理操作时,执行的硬件单元可以支持一个或多个线程(或处理)。
执行的软件单元可包括能进行和/或参与一个或多个并行编程活动的软件资源(例如,技术计算环境)。执行的软件单元可以响应于程序和/或程序的一个或多个部分的接收,进行和/或参与一个或多个并行编程活动。执行的软件单元可以使用一个或多个执行的硬件单元,进行和/或参与不同类型的并行编程。在进行处理操作时,执行的软件单元可以支持一个或多个线程和/或处理。
术语“并行编程”可以理解为包括多种类型的并行编程,例如,任务并行编程、数据并行编程、以及流并行编程。并行编程可包括各种类型的处理,其可以跨越多个资源(例如,执行的软件单元、执行的硬件单元、处理器、微处理器、集群、实验室)分布并且可以同时进行。
例如,并行编程可包括任务并行编程,其中可以在多个执行的软件单元上同时处理多个任务。在任务并行编程中,可以独立于例如同时执行的其他任务而处理任务。
并行编程可包括数据并行编程,其中例如使用执行的软件单元将数据(例如,数据集合)解析为可以并行执行的多个部分。在数据并行编程中,在处理进行时,执行的软件单元和/或数据部分可以相互通信。
并行编程可包括流并行编程(有时候称为流水线并行编程)。流并行编程可以使用例如串行(例如,线)布置的多个执行的软件单元,其中第一执行的软件单元可以产生第一结果,该第一结果可以馈入第二执行的软件单元,给定第一结果以后,该第二执行的软件单元可以产生第二结果。流并行编程可包括在有向非循环图(DAG)或循环图中表达任务分配的状态。
其他并行编程技术可涉及任务、数据的某些组合和/或流并行编程技术单独或者与其他类型的处理技术一起形成混合并行编程技术。
以上描述可以提供本发明不同实施例的说明和描述,但是并非要成为穷尽性的或者将本发明限制于所公开的确切形式。根据以上教导,可以有修改和变化,或者可以从本发明的实践获取修改和变化。例如,虽然以上描述了一系列动作,但是在与本发明原理一致的其他实现中可以修改动作的顺序。此外,可以并行进行不相关的动作。
此外,使用除了附图所示以及说明书所述之外的一个或多个装置和/或配置,可以实现与本发明原理一致的一个或多个实现,而不脱离本发明的精神。取决于特定部署和/或应用,可以向附图的实现添加和/或从附图的实现删除一个或多个装置和/或组件。此外,一个或多个所公开的实现可以不限于硬件的特定组合。
此外,本发明的某些部分可以实现为可以进行一个或多个功能的逻辑。该逻辑可包括硬件,诸如硬连线的逻辑、专用集成电路、现场可编程门阵列、微处理器、软件、或者硬件与软件的组合。
在本发明的说明中使用的元件、动作或指令不应当视为对于本发明是关键性或本质性的,除非这样明确地描述。
此外,如同这里使用的,冠词“一”意在包括一个或多个项目。在只意在一个项目时,使用术语“单个”或类似的语言。此外,如同这里使用的,短语“基于”意在表示“至少部分地基于”,除非另有所指。此外,如同这里使用的,术语“用户”意在是宽泛地解释为例如包括电子装置(例如,工作站)或者电子装置的用户,除非另有所指。
本发明并非限于以上所公开的特定实施例,而是本发明包括落入后附权利要求书范围内的任何以及全部特定实施例及等同物。

Claims (38)

1.一种保存指令的非暂时性电子装置可读存储介质,所述指令在被执行时使得一个或多个处理器:
接收以目标独立格式描述的装置模型,其中所述装置模型:
包括一个或多个网络基元,以及
描述目标装置的预期的转发行为;
将所述装置模型转化为所述目标装置的一个或多个能力,所述目标装置具有转发能力,其中所述转化包括将所述一个或多个网络基元映射到所述目标装置的所述一个或多个能力;
基于所述转化来配置所述目标装置;
接收一个或多个输入分组;以及
基于所述配置将一个或多个输入分组转发给所述网络的一个或多个元件。
2.根据权利要求1所述的介质,其中,网络基元是用于所述装置模型的目标装置独立构造块。
3.根据权利要求1所述的介质,其中,所述装置模型包括通过将一个或多个网络基元聚组而形成的子模型,所述子模型限定功能。
4.根据权利要求3所述的介质,其中,所述子模型被存储在子模型库中。
5.根据权利要求4所述的介质,其中,附加子模型被添加到所述子模型库中。
6.根据权利要求1所述的介质,其中,所述装置模型包括第一网络基元的两个或更多个实例。
7.根据权利要求1所述的介质,所述一个或多个网络基元包括核心网络基元,所述核心网络基元描述数据路径功能的独立线程。
8.根据权利要求1所述的介质,其中,所述一个或多个网络基元包括控制基元,所述控制基元描述所述网络内的控制流程功能。
9.根据权利要求1所述的介质,进一步保存用于以下的一个或多个指令:
解析所接收的装置模型。
10.根据权利要求1所述的介质,其中,所述装置模型进一步包括与所述装置模型的一个或多个部分相关联的一个或多个已知标识符。
11.根据权利要求10所述的介质,其中,所述介质进一步存储指令,所述指令在被执行时使得一个或多个处理器:
检索将所述装置模型的所述一个或多个已知标识符映射到具有转发或交换能力的目标装置的一个或多个能力的实现的映射。
12.根据权利要求11所述的介质,其中,所述转化包括使用所检索的映射来将所述装置模型中描述的所述预期的转发行为静态地映射到所述目标装置的所述一个或多个能力的所述实现。
13.一种保存指令的非暂时性电子装置可读存储介质,所述指令在被执行时使得一个或多个处理器:
以目标独立格式生成装置模型,其中所述装置模型:
包括一个或多个网络基元,以及
描述目标装置的预期的转发行为;以及
将所述装置模型发送给网络中的所述目标装置用于实现,所述目标装置具有转发能力。
14.根据权利要求10所述的介质,其中,所述装置模型包括第一网络基元的两个或更多个实例。
15.一种系统,包括:
路由控制器,所述路由控制器用于生成以目标独立格式描述的装置模型,其中所述装置模型包括一个或多个网络基元;
目标装置,所述目标装置用于接收所述装置模型,其中:
所述装置模型描述所述目标装置的预期的转发行为,
所述目标装置具有转发或交换能力;以及
存储,所述存储用于存储多个网络基元,其中所述装置模型使用从所述存储检索的所述一个或多个网络基元来生成,
其中,所述目标装置被配置为将所述装置模型中描述的所述预期的转发行为映射到所述目标装置的所述一个或多个能力的实现。
16.根据权利要求15所述的系统,其中,所述目标装置被配置为:
接收一个或多个输入分组,以及
基于映射将所述一个或多个输入分组转发给所述网络的一个或多个元件。
17.根据权利要求15所述的系统,其中,所述装置模型包括通过将一个或多个网络基元聚组而形成的子模型,所述子模型限定功能。
18.一种保存指令的非暂时性电子装置可读存储介质,所述指令在被执行时使得一个或多个处理器:
接收以目标独立格式描述的装置模型,其中:
所述装置模型描述目标装置的预期的转发行为,以及
所述装置模型包括与所述装置模型的一个或多个部分相关联的一个或多个已知标识符;
检索将所述装置模型的所述一个或多个已知标识符映射到具有转发或交换能力的目标装置的一个或多个能力的实现的映射;以及
通过使用所检索的映射将所述装置模型中描述的所述预期的转发行为静态地映射到所述目标装置的所述一个或多个能力的所述实现来配置所述目标装置。
19.根据权利要求18所述的介质,其中,所述静态映射发生在所述目标装置中实现的硬件抽象层(HAL)中。
20.根据权利要求18所述的介质,其中,所述映射被用于所述目标装置上所述一个或多个标识符的后续实现。
21.根据权利要求18所述的介质,其中,所述映射被存储在存储装置处。
22.根据权利要求21所述的介质,其中,所述存储装置存储附加映射。
23.根据权利要求21所述的介质,其中,一个或多个映射能够被添加到所述存储装置。
24.根据权利要求18所述的介质,其中,所述映射在多个映射之中被检索。
25.根据权利要求18所述的介质,进一步存储用于以下的指令:
基于所述装置模型来确定用于在所述网络中转发一个或多个输入分组的转发方案。
26.根据权利要求18所述的介质,进一步存储用于以下的指令:
接收一个或多个输入分组;
基于所述映射将所述一个或多个输入分组转发给所述网络的一个或多个元件。
27.根据权利要求18所述的介质,其中,所述目标独立格式包括由一个或多个网络基元形成的通用语言。
28.一种方法,包括:
接收以目标独立格式描述的装置模型,其中所述装置模型描述目标装置的预期的转发行为;
检索映射,所述映射将所述装置模型的一个或多个元件映射到具有转发或交换能力的所述目标装置的一个或多个能力的实现;
通过使用所检索的映射将所述装置模型中描述的所述预期的转发行为静态地映射到所述目标装置的所述一个或多个能力的所述实现来配置所述目标装置;
接收一个或多个输入分组;以及
基于所述配置将所述一个或多个输入分组转发给所述网络的一个或多个元件。
29.根据权利要求28所述的方法,其中,所述静态映射发生在所述目标装置中实现的硬件抽象层(HAL)中。
30.根据权利要求28所述的方法,其中,所述映射被用于所述目标装置上所述装置模型的一个或多个部分的后续实现。
31.根据权利要求28所述的方法,其中,所述映射被存储在存储装置处。
32.根据权利要求31所述的方法,其中,一个或多个映射能够被添加到所述存储装置。
33.根据权利要求28所述的方法,其中,所述映射在多个映射之中被检索。
34.根据权利要求28所述的方法,进一步包括:
基于所述装置模型来确定用于在所述网络中转发所述一个或多个输入分组的转发方案。
35.根据权利要求28所述的方法,其中,所述目标独立格式包括由一个或多个网络基元形成的通用语言。
36.一种系统,包括:
路由控制器,所述路由控制器用于生成以目标独立格式描述的装置模型;
目标装置,所述目标装置用于接收所述装置模型,其中:
所述装置模型描述所述目标装置的预期的转发行为,
所述目标装置具有转发或交换能力;以及
存储,所述存储用于存储一个或多个映射,所述一个或多个映射将所述装置模型的一个或多个部分映射到所述目标装置的一个或多个能力的实现,
其中,所述目标装置被配置为从所述存储检索一个或多个映射,用于使用所检索的映射将所述装置模型中描述的所述预期的转发行为静态地映射到所述目标装置的所述一个或多个能力的所述实现。
37.根据权利要求36所述的系统,其中,所述装置模型包括与所述装置模型的所述一个或多个部分相关联的一个或多个已知标识符。
38.根据权利要求36所述的系统,其中,所述目标装置被配置为:
接收一个或多个输入分组,以及
基于所检索的映射将所述一个或多个输入分组转发给所述网络的一个或多个元件。
CN201480010333.0A 2013-02-25 2014-02-25 在硬件抽象层中网络转发平面模型向目标实现的静态转化 Pending CN105027505A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/775,994 2013-02-25
US13/775,994 US20140241346A1 (en) 2013-02-25 2013-02-25 Translating network forwarding plane models into target implementation using network primitives
US13/776,012 US20140241347A1 (en) 2013-02-25 2013-02-25 Static translation of network forwarding plane models into target implementation in the hardware abstraction layer
US13/776,012 2013-02-25
PCT/US2014/018421 WO2014131044A1 (en) 2013-02-25 2014-02-25 Static translation of network forwarding plane models into target implementation in the hardware abstraction layer

Publications (1)

Publication Number Publication Date
CN105027505A true CN105027505A (zh) 2015-11-04

Family

ID=50424696

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480010333.0A Pending CN105027505A (zh) 2013-02-25 2014-02-25 在硬件抽象层中网络转发平面模型向目标实现的静态转化

Country Status (3)

Country Link
EP (1) EP2959636A1 (zh)
CN (1) CN105027505A (zh)
WO (1) WO2014131044A1 (zh)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8711860B2 (en) * 2011-12-22 2014-04-29 Telefonaktiebolaget L M Ericsson (Publ) Controller for flexible and extensible flow processing in software-defined networks

Also Published As

Publication number Publication date
EP2959636A1 (en) 2015-12-30
WO2014131044A1 (en) 2014-08-28

Similar Documents

Publication Publication Date Title
CN109802852B (zh) 应用于网络靶场的网络仿真拓扑的构建方法及系统
CN109240821B (zh) 一种基于边缘计算的分布式跨域协同计算与服务系统及方法
CN102334112B (zh) 用于虚拟机网络的方法和系统
CN104038401A (zh) 用于分布式覆盖虚拟环境的互操作性
Lu et al. Hybnet: Network manager for a hybrid network infrastructure
CN103891209A (zh) 用于转换通用流的机箱控制器
CN104052644A (zh) 用于在虚拟联网系统中进行分组分发的方法和系统
CN109076028A (zh) 异构软件定义网络环境中的微分段
CN106487719A (zh) 经由分组中继使网络功能外部化的系统和方法
CN103763367A (zh) 一种云计算数据中心分布式虚拟网络设计方法及系统
CN104717156A (zh) 使用网络接口卡管理软件定义网络中的数据流的方法和系统
US20140241346A1 (en) Translating network forwarding plane models into target implementation using network primitives
CN114363021A (zh) 网络靶场系统、网络靶场系统的虚拟网络实现方法及装置
WO2014202026A1 (zh) 虚拟网络映射保护方法、系统及计算机存储介质
US11108687B1 (en) Scalable network function virtualization service
US20140241347A1 (en) Static translation of network forwarding plane models into target implementation in the hardware abstraction layer
US8976708B1 (en) Parameterized device models for openflow
CN108027739A (zh) 共享iot资源的异构分布式运行时代码
Ficco et al. An HLA‐based framework for simulation of large‐scale critical systems
US20230236909A1 (en) Service mesh architecture for integration with accelerator systems
Pantuza et al. Network management through graphs in software defined networks
CN105009080B (zh) 与具有转发功能的电子设备的网络转发平面有关的实现规范
Koldehofe et al. Tutorial: Event-based systems meet software-defined networking
US9426033B2 (en) Target mapping and implementation of abstract device model
US11108854B2 (en) Peer-to-peer network for internet of things resource allocation operation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20151104