CN106416132B - 使用控制器处的交换机建模接口控制网络交换机的系统和方法 - Google Patents

使用控制器处的交换机建模接口控制网络交换机的系统和方法 Download PDF

Info

Publication number
CN106416132B
CN106416132B CN201580027330.2A CN201580027330A CN106416132B CN 106416132 B CN106416132 B CN 106416132B CN 201580027330 A CN201580027330 A CN 201580027330A CN 106416132 B CN106416132 B CN 106416132B
Authority
CN
China
Prior art keywords
switch
network
controller
modeling interface
network configuration
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.)
Expired - Fee Related
Application number
CN201580027330.2A
Other languages
English (en)
Other versions
CN106416132A (zh
Inventor
A·伍德萨姆
R·L·拉尼
R·W·谢尔伍德
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.)
Big Switch Networks LLC
Original Assignee
Big Switch Networks 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
Application filed by Big Switch Networks LLC filed Critical Big Switch Networks LLC
Publication of CN106416132A publication Critical patent/CN106416132A/zh
Application granted granted Critical
Publication of CN106416132B publication Critical patent/CN106416132B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • 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
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • 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
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/13Flow control; Congestion control in a LAN segment, e.g. ring or bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • 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/085Retrieval of network configuration; Tracking network configuration history

Landscapes

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

Abstract

一种用于软件限定的网络的控制器可以包括维护网络中的交换机的交换机模型的交换机建模接口。交换机建模接口可以从响应于网络事件的应用模块接收期望的网络配置。交换机建模接口可以比较期望的网络配置与由交换机模型代表的当前网络配置。交换机建模接口可以仅为期望的网络配置与由交换机模型标识的当前网络配置之间所识别的差异向交换机生成控制消息。可以基于从交换机取回的摘要值识别所述差异。交换机建模接口可以确定交换机是否成功地接收和处理了控制消息并且可以向提供了期望的网络配置的应用模块指示成功或失败。

Description

使用控制器处的交换机建模接口控制网络交换机的系统和 方法
本申请要求2014年6月3日提交的、美国专利申请14/295196的优先权,该专利申请通过引用整体结合于本文中。
技术领域
此涉及通信网络,并且更具体地,涉及具有由控制器控制的网络交换机的通信网络。
背景技术
基于分组的网络(诸如,连接到互联网的本地数据网络和因特网)包括网络交换机。网络交换机用于将分组从分组源转发到分组目的地。分组有时可以被称为帧。例如,数据在开放系统互联(OSI)模型的层2上作为帧(例如,以太网帧)转发,而数据在OSI模型的层3上作为分组(例如,互联网协议分组)转发。
将一个供应商的交换机配置为使用另一个供应商的装备可能是困难或不可能的。这是因为一个供应商的交换机装备相比于另一个供应商的交换机装备可以使用不同的操作系统和不同的控制过程集合。为了解决与控制不同类型的交换机平台相关联的挑战,跨平台协议已经被开发。这些协议允许其他方式不兼容的交换机的集中式控制。
跨平台控制器客户端可以被包括在网络中的交换机上。控制器客户端能够在网络路径上与对应的控制器服务器通信。因为控制器客户端能够实施在各种交换器硬件上,所以单个控制器控制可能以其他方式不兼容的交换器装备是有可能的。
确保交换机被成功地配置为控制器所预期的那样对于控制器是有挑战性的。考虑这样的场景,其中控制器向交换机提供数千个控制分组,但是该交换机处理能力不足以用由控制器提供控制分组的速率处理这些控制分组。作为另一个示例,交换机处的配置储存能力可能被填满,并且交换机在不覆写已存在的配置数据的情况下可能不能储存任何额外的配置数据。作为再另一个示例,新的交换机可以连接到网络或者已存在的交换机可能从网络断开,这可以导致网络的控制器的视图和网络的实际配置状态之间的不匹配。
发明内容
控制器可以控制具有耦合到交换机的终端主机的网络中的交换机。控制器可以包括交换机建模接口,该交换机建模接口维护网络中的交换机的交换机模型,并且在生成用于交换机的实施期望的网络配置的控制消息中使用该交换机模型。交换机建模接口可以从响应于网络事件(诸如,交换机的连接或断开或新的网络策略)的应用模块接收期望的网络配置。期望的网络配置可以包括表的集合和函数。交换机建模接口可以在表的集合上操作函数以产生期望的网络配置。例如,表的集合可以包括标识终端主机附接点的主机表和交换机间转发表。在这个场景中,交换机建模接口可以在主机表和交换机间转发表上操作函数以给交换机中的每一个产生交换机特定的转发表。
交换机建模接口可以比较期望的网络配置(例如,交换机特定的转发表)和由交换机模型表示的当前网络配置。交换机建模接口可以仅对于期望的网络配置和由交换机模型标识的当前网络配置之间所识别的差异向交换机生成控制消息。通过与控制消息一起发送同步请求消息(例如,屏蔽请求消息)并且等待同步回复消息(例如,屏蔽回复消息)、错误消息或交换机响应的失败(例如,计时器的过期),交换机模型接口可以确定控制消息是否被成功接收以及由交换机处理。交换机建模接口可以向提供了期望的网络配置的应用模块指示成功或者失败。
交换机建模接口可以通过与交换机通信而更新交换机模型。为了帮助减少网络控制路径上的流量负载,交换机可以被配置为维护摘要表。由交换机维护的摘要表可以包括多个条目(例如,桶),每个条目与各自的摘要值相关联。在交换机处接收的诸如转发表条目的交换机配置数据(例如,经由来自控制器的控制消息)可以由交换机散列并且基于散列值分配到选定的表条目。交换机可以计算每一个表条目的摘要值为分配到该表条目的散列值的异或。由交换机维护的摘要值可以由控制器取回并且与由控制器计算的用于期望的网络配置的摘要值相比较。基于比较,控制器处的交换机建模接口可以确定在实施期望的网络配置中哪个交换机配置数据应该被更新。
通过附图和随后的具体描述,本发明的进一步的特征、其本质和各种优势将更加清晰。
附图说明
图1是根据本发明的实施例的包括控制器和分组转发系统的说明性网络的示意图。
图2是根据本发明的实施例的可以通过网络连接通信的控制器服务器和控制器客户端的示意图。
图3是根据本发明的实施例的可以被分组处理系统使用的类型的说明性流表的示意图。
图4是根据本发明的实施例的可以由分组处理系统使用的类型的说明性流表的示意图,示出了可以基于流表的流表条目执行的分组交换的三个说明性类型。
图5是根据本发明的实施例的在分组处理系统中处理分组时涉及到的说明性步骤的流程图。
图6是根据本发明的实施例的具有可以由具有交换机建模接口的控制器控制的交换机的说明性网络的示意图。
图7是根据本发明的实施例的说明性交换机模型的示意图。
图8是根据本发明的实施例的示出终端主机的断开可以如何反映在交换机模型中的说明性交换机模型的示意图。
图9是根据本发明的实施例的可以储存在交换机模型中的说明性交换机状态信息的示意图。
图10是根据本发明的实施例的可以被储存在交换机模型中并且用于生成交换机特定的状态信息的说明性全局网络状态信息的示意图。
图11是根据本发明的实施例的可以被储存在交换机模型中并且被交换机建模接口使用以生成交换机特定的状态信息的说明性函数的示意图。
图12是根据本发明的实施例的可以由应用模块提供给交换机建模接口的期望的网络配置的说明性网络快照的示意图。
图13是根据本发明的实施例的包括表的集合和操作在表的集合上以产生交换机特定的状态信息的函数的说明性网络快照的示意图。
图14是根据本发明的实施例的可以由交换机建模接口执行以根据期望的网络快照和当前网络配置的区别生成交换机控制消息的说明性步骤的流程图。
图15是根据本发明的实施例的在使用交换机建模接口响应于网络事件而修改网络配置中可以由控制器执行的说明性步骤的流程图。
图16是根据本发明的实施例的可以由交换机执行以基于接收的交换机配置数据而维护摘要表的说明性步骤的流程图。
图17是根据本发明的实施例的可以由交换机基于交换机配置数据维护的说明性摘要表。
图18是根据本发明的实施例的在使用由交换机维护的摘要表以标识期望的网络配置与当前网络配置之间的区别中可以由控制器执行的说明性步骤的流程图。
具体实施方式
诸如互联网和耦合到互联网的本地网和区域网之类的网络依赖基于分组的交换机。这些交换机(在本文中有时被称为网络交换机、分组处理系统或分组转发系统)能够基于地址信息转发分组。以这种方式,由分组源传送的数据分组可以被传递到分组目的地。在网络方面,分组源和分组目的地有时候被称为终端主机。终端主机的示例为个人计算机、服务器和其他计算装备,诸如,使用有线或无线技术访问网络的便携式电子设备。
网络交换机在能力方面范围从相对小的以太网交换机和无线接入点到大的基于机架的系统,该系统包括若干线卡、冗余电源和监管器能力。对于网络来说包括来自若干供应商的装备不是不常见的。来自不同供应商的网络交换机能够互联以形成分组转发网络,但是由于它们操作系统和控制协议的不兼容,可能难以以集中式的方式管理。
能够通过将常见的跨平台控制模块(在本文中有时称为控制器客户端)结合到每一个网络交换机中来克服这些潜在的不兼容性。集中式跨平台控制器(诸如,控制器服务器或分布式控制器服务器)可以通过各个网络链路与控制器客户端中的每一个交互。跨平台控制器和对应的控制器客户端的使用允许潜在不同的网络交换机装备被集中地管理。
通过一个说明性配置(本文中有时称为示例),集中式控制通过一个或多个控制器服务器(诸如,图1的控制器服务器18)提供。控制器服务器18可以在单独的计算机、计算机的集群、分布在若干地点的计算机集合、嵌入在网络交换机内的硬件或其他合适的计算装备12上实施。控制器服务器18能够作为单个进程在单个计算机上运行或者能够为了冗余性而分布在多个主机上。分布式布置的使用可以帮助为网络10提供对抗意外的网络分割(例如,两个校园之间的网络链路中断的情形)的弹性。
在分布式控制器布置中,控制器节点可能使用控制器内协议交换信息。例如,如果新的终端主机连接到仅连接到第一控制器节点的网络硬件(例如,交换机),那么该第一控制器节点可以使用控制器内协议通知其他控制器节点新的终端主机的出现。如果期望,那么交换机或其他网络部件可以连接到若干控制器节点。有时在本文中,将单个控制器服务器用于控制相关联交换机的网络的布置描述为示例。
图1的控制器服务器18可以收集关于网络10拓扑的信息。例如,控制器服务器18可以通过网络发送链路层发现协议(LLDP)探测分组以发现网络10的拓扑。控制器服务器18可以使用关于网络拓扑的信息和关于网络装备能力的信息以确定分组流过网络的合适路径。一旦合适的路径已经被标识,控制器服务器18就可以将对应的设置数据发送到网络10中的硬件以确保分组如所期望的那样流过网络。诸如这些的网络配置操作可以在系统设置操作期间在后台连续地执行,或者响应于新发送的数据分组(即,对于其来说先前存在的路径还没有建立的分组)的出现而执行。
控制器服务器18可以用于实施网络配置规则20。规则20可以指定哪些服务对于各种网络实体是可用的。作为示例,规则20可以指定网络10中的哪些用户(或用户的类型)可以访问特定服务器。作为另一个示例,规则20可以包括标识网络流量和将在标识的网络流量上执行的服务的服务插入策略。例如,规则20可以在计算装备12的数据库中维护。
在各个网络交换机14处的控制器客户端30和控制器服务器18可以使用网络协议栈在网络链路16上通信。
每一个交换机(例如,每一个分组转发系统)14可以具有输入输出端口34(有时称为网络交换接口)。可以使用电缆将装备块连接到端口34。例如,终端主机(诸如,个人计算机、网页服务器和其他计算装备)可以插入到端口34中。端口34还可以用于将交换机14中的一个连接到其他交换机14。
分组处理电路系统32可以用于将来自端口34中的一个的分组转发到端口34中的另一个,并且可以用于对到来的分组执行其他合适的动作。分组处理电路32可以使用一个或多个集成电路(诸如专用高速交换机电路)实施并且可以用作硬件数据路径。如果期望,可以在实施软件数据路径中使用运行在控制单元24上的分组处理软件26。
控制单元24可以包括用于储存和运行控制软件的处理和存储器电路(例如,一个或多个微处理器,存储器芯片,和其他控制电路系统)。例如,控制单元24可以储存和运行诸如分组处理软件26的软件、可以储存流表28,以及可以用于支持控制器客户端30的操作。
控制器客户端30和控制器服务器18可以适用网络交换机协议,诸如OpenFlow协议(例如,参见OpenFlow交换机规范版本1.0.0,1.3.1,或OpenFlow协议的其他版本)。控制器客户端30中的一个或多个客户端还可以适用其他协议(例如,简单网络管理协议)。使用OpenFlow协议或其他合适的协议,控制器服务器18可以给控制器客户端30提供确定交换机14将如何处理来自输入输出端口34的到来分组的数据。
通过一种合适的布置,来自控制器服务器18的流表数据可以储存在诸如流表28的流表中。流表28的条目可以用于配置交换机14(例如,分组处理电路系统32和/或分组处理软件26的功能)。在典型的场景中,流表28用作用于流表条目的高速缓冲储存器,并且这些流表条目的对应版本嵌入在由分组处理电路系统32维护的设置中。然而,这仅仅是说明性的。流表28可以用作交换机14中流表条目的专有储存器,或者可以为了分组处理电路系统32内的流表储存资源而被省略。总之,流表条目可以使用任意合适的数据结构(例如,一个或多个表、列表等)储存。为了清楚,流表28的数据(不论在控制单元24中的数据库维护还是嵌入在分组处理电路系统32的配置中)在本文中被称为形成流表条目(例如,流表28中的行)。
储存确定交换机14将如何处理到来的分组的数据的流表28的示例仅仅是说明性的。如果期望,可以替换流表28使用任何分组转发决定引擎,或除了流表28之外还可以使用任何分组转发决定引擎,以协助分组转发系统14做出如何转发网络分组的决定。作为示例,分组转发决定引擎可以引导分组转发系统14基于网络分组的属性(例如,基于网络协议头)将网络分组转发到预定的端口。
可以给任何期望的交换机提供与控制器服务器通信并且由控制器服务器控制的控制器客户端。例如,交换机14可以使用运行控制软件并且省略分组处理电路系统32的通用处理平台实施。作为另一个示例,交换机14可以使用耦合到一个或多个高速交换集成电路(“交换机IC”)的控制电路系统实施。作为再另一个示例,交换机14可以实施为在具有若干线卡的基于机架的系统中的线卡,每一个线卡有其自己的分组处理电路系统。如果期望,可以在耦合到网络的其它计算装备上、在基于机架的系统中或另一个基于机架的系统中的一个或多个线卡上实施控制器处理器。
如图2所示,控制器服务器18和控制器客户端30可以使用网络协议栈(诸如,网络协议栈58和网络协议栈60)在网络路径66上通信。例如,栈58和60可以是Linux TCP/IP栈或者VxWorks操作系统中的TCP/IP栈(作为示例)。例如,路径66可以是支持交换机14与外部装备之间的网络连接的路径(例如,图1的网络路径16),或者可以是基于机架的系统中的骨干网路径。本文有时将路径66是诸如路径16的网络路径的布置作为示例描述。
控制协议栈56用作网络协议栈58和控制软件54之间的接口。控制协议栈62用作网络协议栈60和控制软件64之间的接口。在操作期间,当控制器服务器18与控制器客户端30通信时,控制协议栈56生成并且解析控制协议消息(例如,激活端口或将特定流表条目安装到流表28中的控制消息)。通过使用图2所示的类型的布置,网络连接在控制器服务器18和控制器客户端30之间的链路上形成。控制器服务器18和控制器客户端30能够使用互联网协议(IP)上传输控制协议(TCP)或用户数据报协议(UDP)网络连接进行通信。当在网络连接上在控制器服务器18和控制器客户端30之间通信时可以使用的控制协议的示例包括SNMP和OpenFlow协议栈版本1.0.0(作为示例)。
流表28包含具有若干字段(有时称为头字段)的流表条目(例如,表中的行)。已经由交换机14接收的分组中的字段可以与流表中的字段比较。每一个流表条目可以具有相关联的动作。当存在分组中的字段和流表条目中的字段之间的匹配时,该流表条目的对应动作可以被采取。
图3示出了说明性的流表。如图3所示,表28可以具有流表条目(行)68。每一个流表条目可以与头70、动作72和统计值74相关联。头70均可以包括若干头字段76。每一个流表条目中的动作指示当检测到分组中的字段与该流表条目的头中的对应字段之间匹配时交换机14将执行什么动作。交换机14可以维护在期望获得关于交换机14的性能的信息时可由控制器服务器18查询的流表28的统计值部分中的统计数据(计数器值)。
头70中的头字段(和每一个到来分组中的对应字段)可以包括以下字段:进入端口(即,交换器14中物理端口的标识,分组通过该端口接收),以太网源地址、以太网目的地地址、以太网类型、虚拟局域网(VLAN)标识(有时称为VLAN标签)、VLAN优先级、IP源地址、IP目的地地址、IP协议、IP服务类型(ToS)比特、传输源端口/互联网控制消息协议(ICMP)类型(有时称为源TCP端口)和传输目的地端口/ICMP码(有时称为目的地TCP端口)。如果期望,可以使用其他字段。例如,可以使用网络协议字段和协议端口字段。
每一个流表条目(流条目)与指示交换机如何处理匹配分组的零个或多个动作相关联。如果没有出现任何转发动作,包优选地被丢弃。当检测到分组字段与流表条目中的头字段之间的匹配时可以采取的动作可以包括以下动作:转发(例如,ALL(所有),用于将分组在不包括到来接口的所有接口上发送出去;CONTROLLER(控制器),用于将分组封装并发送到控制器服务器;LOCAL(本地),用于将分组发送到交换机的本地联网栈;TABLE(表),用于执行流表28中的动作;IN_PORT(入_端口),用于将分组发送出输入端口外;NORMAL(正常),用于使用例如传统层2VLAN和层3处理通过由交换机支持的缺省转发路径处理分组;以及FLOOD(泛洪),用于沿不包括到来接口的最小转发树泛洪分组。可以由交换机14采取的额外动作包括:通过附接到端口的队列转发分组的入队动作和丢弃动作(例如,丢弃匹配没有具体动作的流表条目的分组)。修改字段动作也可以由交换机14支持。可采用的修改字段动作的示例包括:设置VLAN ID、设置VLAN优先级、剥离VLAN头、修改VLAN标签、修改以太网源介质访问控制(MAC)地址、修改以太网目的地MAC地址、修改IPv4源地址、修改IPv4ToS比特、修改传输目的地端口。修改字段动作可以用于重新写入匹配流表条目的网络分组的部分。
图4是具有三个流表条目的说明性流表。条目包括有通配符(例如,“*”符号)的字段。当通配符出现在特定字段中时,不管到来的分组中的字段的具体值如何,所有到来的分组将被看做相对于该字段形成“匹配”。额外的字段可以匹配额外的分组信息(例如,网络分组的分组头信息)。
图4表的第一行的条目引导操作流表条目的交换机来执行以太网交换。具体地,具有匹配的以太网目的地地址的到来分组被转发到端口3。
图4表的第二行的条目示出可以如何配置交换机以执行互联网路由(即,分组基于他们的目的地IP地址转发)。
图4表的第三行包含示出可以如何配置交换机以执行防火墙的条目。当收到具有目的地IP端口值为80的分组时,该分组被丢弃(即,交换机被配置为用作屏蔽端口80流量的防火墙)。
图4示出的类型的流表条目可以在系统设置操作期间由控制器服务器18载入交换机14,或者可以响应于在控制器服务器18处来自诸如交换机14的交换机的分组的接收和处理从控制服务器18被实时提供给交换机14。在具有多个交换机14的网络中,可以为每一个交换机提供合适的流表条目以形成通过网络的路径。
图5中示出了可以由交换机14在处理在输入输出端口34上接收的分组中执行的说明性步骤。在步骤78,交换机14在其端口中的一个(例如,图1的输入输出端口34中的一个)上接收分组。
在步骤80,交换机14将接收的分组的字段与该交换机的流表28中的流表条目的字段比较以确定是否存在匹配。流表条目中的一些字段可以包含完整值(例如,完整地址)。其他字段可以包含通配符(即,以“不相关”通配符字符“*”标记的字段)。再其他的字段可以具有部分完整的条目(例如,部分通配符表示的部分地址)。一些字段可以使用范围(例如,通过将TCP端口号限制到1至4096之间的值)并且实际使用用于实施部分通配符的类型的范围。在进行接收的分组与流表条目之间的逐字段比较时,交换机14能够考虑流表条目中的每一个字段是否包含没有任何通配符的完整值、有通配符的部分值或通配符字符(即,完全通配符表示的字段)。
如果在步骤80的操作期间确定分组的字段与流表条目的对应字段之间不存在匹配,那么交换机14可以在链路16上将分组发送到控制器服务器18(步骤84)。
如果在步骤80的操作期间确定分组与流表条目之间存在匹配,那么交换机14可以执行与该流表条目相关联的动作并且可以更新该流表条目的统计值字段中的计数器值(步骤82)。处理然后可以回到步骤78,使得其他分组可以由交换机14处理,如线86所指示的。
图6是交换机可以由控制器18控制的说明性网络100的示意图。控制器18可以是控制器服务器或者跨若干计算装备实施的分布式控制器。如图6所示,网络100可以包括交换机SW1和SW2。控制器18可以经由控制路径66耦合到网络100的交换机。控制器18可以使用控制路径66控制交换机(例如,通过提供诸如图3的流表条目68的流表条目)。交换机可以包括耦合到终端主机或其它交换机的交换机端口。在图6的示例中,终端主机EH1和EH3耦合到交换机SW1的各个端口P1和P3,终端主机EH2和EH4耦合到交换机SW2的各个端口P1和P2,以及交换机SW1和SW2经由交换机SW1的端口P2和交换机SW2的端口P3而耦合。
控制器18可以包括控制网络中交换机的操作的一个或更多个应用模块102。例如,第一应用模块102可以将交换机组织为由交换机上的端口或终端主机的组形成的虚拟交换机。在这个场景中,第一应用模块可以在虚拟交换机级别实行网络政策和转发(例如,网络协议可以为虚拟交换机限定而不是为下面的交换机限定)中控制网络的下面的交换机SW1和SW2。作为另一个示例,第二应用模块102可以处理网络监视功能,诸如分析网络流量以生成网络流量报告。应用模块可以生成期望的(例如,整个网络的)网络配置并且向交换机建模接口104提供该网络配置。交换机建模接口104可以使用交换机模型108实施期望的网络配置并且可以向应用模块指示实施成功还是失败。
诸如模块102的模块可以在控制器18处实施为通用或应用特定的计算装备上的软件或专用硬件。例如,模块102可以实施为共享计算装备上的软件模块。作为另一个示例,模块102可以实施在分布式控制器布置中的不同计算装备上。
应用模块102可以基于在应用模块维护的或由控制器18的其他模块维护的网络拓扑信息控制交换机。然而,网络中可以有数百、数千或更多的交换机。确保发送到网络的交换机的控制信息由交换机成功地接收或执行对于应用模块102可能是有挑战性的。此外,控制器18处可以实施若干应用模块102并且若干应用模块102潜在地彼此冲突。考虑交换机没能实施从控制器18接收的流表条目的场景。在这个场景中,交换机的状态不能匹配期望的状态,并且由控制器提供的后续流表条目可能生成不期望的网络配置。
可以为控制器18提供处理与交换机的通信和交换机状态的维护的交换机建模接口模块104。交换机建模接口模块104可以帮助确保应用模块102与网络的交换机同步。交换机建模接口104可以实施代表网络中每一个交换机的模型108。例如,交换机模型MSW1可以代表交换机SW1,而交换机模型MSW2可以代表交换机SW2。交换机模型MSW1和MSW2可以维护关于各个交换机SW1和SW2的当前状态的信息。例如,交换机模型MSW1可以维护标识在交换机SW1实施的转发规则或策略的信息,而交换机模型MSW2可以标识交换机SW2的状态。
交换机模型108可以由控制模块106控制。在满足来自应用模块102的网络控制请求中,控制模块106可以控制交换机模型108并且向网络的交换机发出控制消息。交换机模型108可以实施为诸如表的集合的数据构造。图7是用于交换机SW1的说明性交换机模型(例如,图6的交换机模型MSW1)的示意图。如图7所示,交换机模型112包括关于对应交换机SW1的状态的信息。交换机状态可以包括终端主机附接点、转发规则或储存关于交换机SW1的状态的信息(例如,当前交换机配置)的其他表。
参考图6的示例性网络,用于交换机SW1的交换机模型112可以包括标识终端主机和哪个交换机端口耦合到所述终端主机的信息。终端主机EH1可以标识为附接到交换机SW1的端口P1,而终端主机EH3可以标识为连接到交换机SW1的端口P3。不是直接附接到交换机SW1的终端主机可以由那些终端主机可以通过其从交换机SW1到达的端口标识。例如,终端主机EH2和EH4可以被标识为耦合到交换机SW1的端口P2,因为从交换机SW1的端口P2转发的分组可以通过端口P2到达终端主机EH2和EH4。交换机模型112可以包括管理网络流量将如何由交换机SW1转发的转发规则。作为示例,转发规则可以储存为包括限定交换机SW1将如何为每一个终端主机转发网络分组的条目的表。转发规则可以在交换机模型中储存为每一交换机转发规则,或可以储存为经由在全局规则上操作的一个或多个函数转换为交换机特定规则的全局、网络范围规则(例如,表)。
交换机模型112可以包括关于对应交换机(例如,交换机SW1)的状态的任何信息。例如,交换机模型112可以包括具有限定链路聚合组的条目的链路聚合组(LAG)表。每一个链路聚合组可以被分配用作逻辑端口的一组交换机端口(例如,交换机的若干物理端口可以形成链路聚合组,网络流量通过该链路聚合组转发和接收)。
交换机建模接口104可以与交换机通信以监视网络的状态。例如,在监视网络的状态中,控制模块106可以向交换机发送控制消息和/或从交换机接收状态消息。控制模块106可以响应于来自交换机的更新的状态信息而更新交换机模型。图8是示出图7的交换机模型112可以如何响应于标识该终端主机EH1已经从交换机SW1断开的状态更新而更新的示意图。例如,交换机SW1可以在控制路径66上向控制模块104发送端口关闭消息。在这个场景中,端口关闭消息可以标识交换机SW1的端口P1断开,并且可以响应于交换机SW1处的电气传感器数据或响应于从控制器18发送到交换机SW1的控制消息而立即发送。
如图8所示,修改的交换机模型114不包括用于终端主机EH1的任何状态信息。换言之,控制模块104可以从任何附接点信息、转发规则或其他表移除终端主机EH1。
图9示出了包括可以提供给交换机的条目的说明性的转发表。在图9的示例中,转发表122和124是操作在以太网介质访问控制地址上的OSI层2(L2)转发表。转发表122和124可以用作流表或用作用于交换器SW1和SW2的流表的子集(例如,部分)。例如,在填充转发表122和124中,控制模块106可以向交换机SW1和SW2提供流表条目。转发表122可以被交换机SW1储存并且使用以确定如何转发网络分组。类似地,交换机SW2在转发网络分组中可以储存并且使用转发表124。
用于交换机SW1的L2转发表122的每一个条目可以由以太网地址和交换机SW1的端口标识,目的地为标识的以太网地址的网络流量应该转发到该端口。第一L2转发表条目可以引导交换机SW1将目的地为以太网地址MACEH1(即,终端主机EH1)的网络分组转发到交换机SW1的端口P1,因为终端主机EH1连接到交换机SW1的端口P1。类似地,L2转发表条目可以标识目的地为终端主机EH3的网络分组应该从端口P3发送(即,终端主机EH3附接到的端口)。对于诸如终端主机EH2和EH4的不是直接附接到交换机SW1的终端主机,可以提供引导交换机SW1沿至终端主机的网络路径(例如,端口P2)转发网络分组的L2转发表条目。类似地,用于交换机SW2的L2转发表124包括标识目的地为以太网地址MACEH1、MACEH2、MACEH3和MACEH4的网络分组应该分别转发到交换机SW2的端口P3、P1、P3和P2的条目。
可以由交换机建模接口储存转发表122和124的副本(例如,作为图7的交换机模型112中转发规则的一部分)。控制模块106可以维护本地副本以帮助应用模块102与网络的交换机之间的接合。例如,控制模块106可以使用本地副本模拟提供给交换机的控制消息的效果。作为向交换机提供控制消息的一部分,控制模块106可以额外的与交换机通信以验证交换机处的控制消息之后的状态与交换机模型108处的模拟状态匹配。
对于交换机建模接口104来说维护网络中的所有交换机处的状态的本地副本是有挑战性的。考虑网络包括数百个均具有若干转发表(例如,L2转发表、IP转发表等)的交换机的场景。在这个场景中,每一个交换机可以包括限定该交换机当前状态的成百上千个表条目(例如,转发表条目、地址解析表条目、链路聚合组表条目等)。由于有限的资源(诸如控制器处可用的存储器),交换机建模接口储存每一个交换机的每一个交换表条目可能是困难的或不可能的。
控制器处的交换机建模接口可以被配置为储存一个或多个交换机状态为全局数据构造和在全局数据上操作以产生交换机特定的状态信息的每一交换机函数。图10是示出图9的交换机特定的转发表中的交换机状态信息可以如何储存为包括主机表132和交换机间转发表136的全局数据构造的说明性示意图。
主机表132包括标识用于终端主机的附接点的主机表条目134。在图10的示例中,终端主机EH1的以太网地址MACEH1在第一主机表条目134中限定为附接到交换机SW1的端口P1。类似地,以太网地址MACEH2被标识为附接到交换机SW2的端口P1,以太网地址MACEH3被标识为附接到交换机SW1的端口P3,以及以太网地址MACEH4被标识为附接到交换机SW2的端口P2。主机表132不特定于任何特定交换机(例如,主机表132是全局表)。
交换机间转发表136包括标识网络的交换机之间的链路的交换机间转发表条目138。第一条目138可以标识将要转发到交换机SW2(例如,目的地交换机)的来自交换机SW1(例如,源交换机)的网络分组应该从源交换机SW1的端口P2转发。第二条目138可以标识将要转发到目的地交换机SW1的来自源交换机SW2的网络分组应该从交换机SW2的端口P3转发。
图10中交换机间转发链路基于流量方向标识的示例仅仅是说明性的。如果期望,交换机中的每一对可以由通过网络链路连接的交换机的端口所标识。例如,条目138可以标识第一交换机SW1、第二交换机SW2、以及第一交换机SW1的端口P2连接到第二交换机SW2的端口P3。因此,交换机间转发表136在本文有时可以称为交换机间链路表或交换机间连接表,因为表136标识网络的交换机之间的连接。
主机表132和交换机间转发表136代表网络的全局视图,因此帮助移除储存在控制器处的交换机状态信息的冗余。例如,图9的交换机特定的L2转发表122和124包含冗余信息,因为每个表包括标识从对应的交换机的角度来看终端主机在哪里连接的信息(即,表122标识终端主机相对于交换机SW1在哪里连接、而表124标识终端主机相对于交换机SW2在哪里连接)。在有许多(例如,数十个、数百个或者更多)交换机的网络中,图10的全局表可以提供由控制器储存的条目数量的大幅减少(例如,因为每一个终端主机的位置仅标识一次)。
可以给控制器处的交换机建模接口提供在一个或多个全局表上操作的函数以获得用于交换机模型的交换机特定的表。图11是L2转发表函数(FL2TABLE)142的说明性示意图,该函数接收包括输入交换机和输入地址的输入数据,并且在图10的主机表132和交换机间转发表136上操作以产生交换机特定的转发表,诸如图9的表122和124。
为了产生用于交换机的特定终端主机的交换机特定的转发表条目,交换机建模接口可以提供该终端主机的以太网地址并且标识该交换机作为用于函数FL2TABLE的输入地址和输入交换机。函数FL2TABLE可以引导交换机建模接口检查输入地址和输入交换机。如果主机表132的条目标识输入地址附接在输入交换机处,那么该输入交换机的对应端口可以从该条目取回并且返回为FL2TABLE的输出。如果用于输入地址的条目没有标识输入交换机,那么函数FL2TABLE可以引导交换机建模接口从与输入交换机和由主机表条目标识的交换机匹配的交换机间转发表条目返回端口。
考虑交换机建模接口提供交换机SW1和以太网地址MACEH1作为函数FL2TABLE的输入的场景。在这个场景中,函数FL2TABLE引导交换机建模接口以输入地址MACEH1取回主机表条目。取回的主机表条目标识交换机SW1和端口P1(参见图10),其匹配输入交换机并且因此可以返回端口P1作为函数FL2TABLE的输出。用于表122的交换机特定的L2转发表条目可以因此生成,标识以太网地址MACEH1为附接到交换机SW1的端口P1。
作为另一个示例,考虑交换机建模接口通过提供交换机SW1和以太网地址MACEH2作为函数FL2TABLE的输入而为交换机SW1和终端主机EH2生成L2转发表条目的场景。在这个场景中,如由函数FL2TABLE指示的那样,交换机建模接口可以在输入地址MACEH2处取回主机表条目。取回的主机表条目标识以太网地址MACEH2附接在交换机SW2的端口P1,其不匹配输入交换机SW1。作为响应,函数FL2TABLE可以指示交换机建模接口取回匹配交换机SW1和标识的交换机SW2的交换机间连接表条目。取回的条目138可以标识交换机SW1的端口P2连接到交换机SW2(参见,例如,图10的表136的第一条目)。交换机SW1的标识的端口P2可以返回为函数FL2TABLE的输出。从而可以生成用于表122的标识以太网地址MACEH2为耦合到交换机SW1的端口P2的交换机特定的L2转发表条目。
图10和图11中使用全局表帮助减少L2转发信息的存储空间的示例仅仅是说明性的。控制器18可以通过针对任何期望的交换机特定信息(诸如,地址解析协议表、链路聚合组表或在网络的单个交换机处维护的其他信息)的全局数据构造来配置。控制器18可以通过在输入和全局数据构造上操作以重建交换机特定信息的任意数量的函数来配置。
诸如图6的应用模块102的应用模块可以通过向交换机建模接口提供网络快照而指示对网络配置的期望的修改。交换机建模接口可以与交换机通信以实施期望的修改,同时使用交换机模型帮助确保正确性。图12是可以由应用模块提供给交换机建模接口的说明性网络快照。网络快照152可以包括期望的交换机状态的集合。在图12的示例中,快照152包括用于网络的交换机SW1和SW2的层2转发表L2TABLESW1和L2TABLESW2(例如,图9的表122和124)。这个示例仅仅是说明性的。快照152可以包括标识网络中交换机的期望状态的任何期望的交换机特定的信息。换言之,快照152可以限定将要实施的期望的网络配置。
应用模块可以被配置为除了交换机特定的状态信息之外还提供全局数据构造或替代交换机特定的状态信息而提供全局数据构造以帮助减少控制器处需要的储存量。如图13所示,网络快照162可以包括主机表和交换机间转发表(例如,图10的主机表132和交换机间转发表136)。网络快照162可以包括从全局数据结构生成交换机特定的状态信息的函数FL2TABLE(例如,图11的FL2TABLE 142)。
网络快照可以包括仅交换机特定的状态信息(例如,图12的快照152),仅全局状态信息,或交换机特定和全局状态信息的组合。包括在网络快照中的信息标识网络的期望状态,其可以由交换机建模接口处理以生成用于实施网络的期望状态的交换机控制消息。图14是说明性步骤的流程表200,这些步骤可以由交换机建模接口在基于网络快照实施对网络配置的期望改变中执行。
在步骤202期间,交换机建模接口可以接收指示将对网络配置做出的期望的改变(例如,期望的网络配置)的新的快照。例如,可以接收图12的快照152或图13的快照162。
在步骤204期间,交换机建模接口可以对网络中的每一个交换机执行步骤206的操作(例如,交换机建模接口可以选择交换机,为所选择的交换机执行步骤206的操作,选择另外的交换机,等等)。
在步骤206期间,交换机建模接口可以对接收的快照中的每一个表(例如,交换机特定或全局构造)执行步骤208-224的操作。
在步骤208期间,交换机建模接口可以确定所选交换机的状态是否是已知的(例如,在步骤204期间用于处理而选择的交换机)。例如,交换机建模接口可以储存标识每一个交换机模型108中的信息上次何时更新的信息。该信息可以在交换机模型中的表条目上或每个表上储存为时间戳。在这个场景中,交换机建模接口可以比较所选交换机相关联的时间戳和当前系统时间。如果时间的差异超过阈值,那么交换机建模接口可以确定所选交换机的当前状态应该更新。
响应于确定所选交换机的状态从交换机模型已知,在步骤210期间可以(例如,从对应的交换机模型108)取回当前交换机状态并且可以随后执行步骤214的操作。响应于确定所选交换机的状态不是已知的(例如,对应的交换机模型108没有储存最新信息),交换机建模接口可以与所选交换机通信以取回其当前交换机状态,用于在进行到步骤214之前更新对应的交换机模型。例如,交换机建模接口可以发送引导交换机响应所请求的交换机状态信息(例如,L2转发表,ARP表等)的控制消息。从交换机接收的交换机状态信息可以用于更新交换机模型108。
在步骤214期间,交换机建模接口可以计算当前交换机状态和在接收的网络快照中限定的新交换机状态之间的差异(Δ)。在使用在全局数据构造上操作的函数限定网络快照和/或交换机模型的场景中,交换机建模接口可以使用函数和全局数据构造为所选的交换机计算交换机特定的状态信息。可以直接比较来自交换机模型和来自接收的快照的交换机特定的状态信息。替代地,可以直接比较全局构造,在全局构造中标识的差异可以用于标识对应的交换机特定的状态信息中的差异。
在步骤216期间,交换机建模接口可以使用当前交换机状态和新交换机状态之间的任何已计算的差异生成实施期望的新交换机状态的交换机控制消息。例如,交换机建模接口可以通过来自期望的新交换机状态的L2转发表条目来生成引导所选交换机替换交换机处的一个或多个当前L2转发表条目的OpenFlow控制消息。
在步骤218期间,交换机建模接口可以随同步请求消息一起向交换机提供生成的交换机控制消息。同步请求消息可以引导交换机响应于控制消息的成功处理而提供同步回复消息。换言之,如果由交换机成功地实施了交换机控制消息的交换机状态修改,那么交换机必须在步骤220期间以在控制器的交换机建模接口处可以接收的同步回复消息进行响应。如果交换机控制消息没有在交换机处成功地处理,那么交换机可以提供错误消息或可以无法响应于同步请求。可以从交换机接收的错误消息可以标识在交换机发生的错误的类型。例如,错误消息可以标识交换机处的表已满以及交换机控制消息中提供的新条目不能储存。作为另一个示例,错误消息可以标识交换机不能够执行控制消息中指定的操作(例如,不支持的操作错误)。如果期望,控制模块可以维护计时器,该计时器在步骤218期间交换机控制消息发出时启动。计时器可以用代表时间段的值来配置,在该时间段内期望交换机提供响应(例如,同步回复或错误消息)。在这个场景中,控制模块可以响应于计时器的过期而标识错误。
图14中在生成时发出交换机控制消息的示例仅仅是说明性的。如果期望,步骤216期间生成的交换机控制消息可以积累并且成组发出。在这个场景中,同步请求可以针对交换机控制消息的每一组发出,并且任意同步回复消息可以确认对整个对应组的成功响应。
图15是可以在控制网络中的交换机中由具有交换机建模接口的控制器执行(例如,由图6的控制器18执行)的说明性步骤的流程图300。
在步骤302期间,控制器可以标识网络事件。网络事件可以基于从交换机或从诸如网络管理员的用户接收的信息而标识或检测。例如,终端主机的连接或断开可以从在控制路径上从交换机接收的消息而标识。作为另一个示例,用户可以提供标识新的期望的网络配置的新网络策略(例如,新转发表值、链路聚合组分配等)。
在步骤304期间,控制器处的应用模块(例如,图6的应用模块102)可以基于网络事件生成新网络快照。例如,可以响应于网络事件生成指示期望的网络配置的诸如图12的快照152或图13的快照162之类的网络快照。响应于终端主机断开,应用模块可以生成从网络配置中移除该终端主机的网络快照。响应于终端主机连接,应用模块可以生成向网络配置增加该终端主机的网络快照(例如,将终端主机加入到转发表,同时确保转发表条目满足现有的网络转发规则)。响应于新网络策略,应用模块可以生成将网络策略应用到现有网络配置的网络快照(例如,替换或修改诸如转发表条目的现有表条目)。
在步骤306期间,应用模块可以向交换机建模接口发送新网络快照。在随后的步骤308期间,交换机建模接口可以计算当前网络快照与新快照之间的差异(Δ)。当前网络快照可以储存在控制器处或者可以通过与交换机通信而生成。在步骤310期间,交换机建模接口可以对于网络中每一个交换机,使新快照和交换机处的当前状态相一致以实施新网络快照。例如,交换机建模接口可以在执行步骤308和310中执行图14的流程图200的步骤。在步骤312期间,交换机建模接口可以向应用模块通知实施新网络快照中的成功或失败。
对于交换机建模接口来说确定当前交换机状态与期望的新的网络快照之间的差异(Δ)可能是有挑战性的。例如,交换机处的状态可以包括成百上千个表条目。通过网络路径将这些表条目转移到控制器并计算差异Δ可能是消耗时间的。可以给网络中的交换机提供可以由控制器使用以帮助确定当前交换机状态和期望的网络快照之间的差异的散列能力。
图16是可以由交换机在从表条目生成可以帮助提高控制器处的交换机建模接口的性能的摘要标识符中执行的说明性步骤的流程图400。例如,流程图400的步骤可以由图1的交换机14的控制单元24处的电路系统执行。
在步骤402期间,交换机可以接收或以其他方式处理表条目,诸如转发表条目、链路聚合组表条目、地址解析协议表条目或至少部分限定交换机的配置的其他表条目。例如,表条目可以是由控制器提供的流表条目的一部分或者流表条目。
在步骤404期间,交换机可以计算用于表条目的散列值。可以使用任何期望的散列算法计算散列。例如,交换机可以在表条目的二进制数据上使用安全散列算法(SHA)以产生散列值。
交换机可以基于散列值维护用于组织表条目的桶(例如,零个或多个表条目的组)。在步骤406期间,交换机可以基于散列值的一部分将表条目分配到桶。例如,散列值的比特的前两个、三个、四个或者任意选定的N个可以用于确定将表条目分配到哪个桶。
在步骤408期间,交换机可以计算用于分配的桶的摘要值(例如,摘要标识符)。可以通过在分配的桶中的所有条目上计算每一比特逻辑异或(XOR)而计算摘要值。交换机可以储存用于分配的桶的摘要值,并且可以响应于来自控制器的请求,提供桶的摘要值。
图17是包括桶414的说明性摘要表412的示意图。摘要表412可以由交换机维护(例如,交换机处的储存器处)。桶414可以基于计算的散列值分配表条目(例如,在图16的流程图400的操作期间)。在图17的示例中,散列表条目基于用于该散列表条目的散列值的前两个比特而分配到桶414。与每一个桶相关联的散列值比特的数量可以对应于桶的数量。
每一个桶414可以包括零个或多个散列表条目和从散列表条目的每比特异或计算的摘要值(例如,所有散列表条目上的每一个比特位置的异或值被计算以产生摘要值,摘要值具有与每一个散列表条目的总比特数相同的总比特数)。桶0对应00的二进制值,并且可以被分配以“00”起始的散列表条目H1和H2。类似地,桶1(二进制01)可以分配以“01”起始的任何条目,桶2(二进制10)可以分配以“10”起始的条目H3,以及桶3(二进制11)可以分配以“11”起始的条目H4。
桶0的摘要可以是散列值H1和H2的异或。作为示例,散列值H1和H2可以是图9的表122的前两个L2转发表条目的散列值。当还没有表条目分配到桶1时,桶1(二进制值01)的摘要可以是0。当仅一个表条目分配到了桶H3和H4中的每一个时,桶H3和H4可以具有与对应的散列值H3和H4相同的摘要。
图17中从每一个桶414的散列表条目计算异或的示例仅仅是说明性的。如果期望,诸如另一个散列函数的任何逻辑函数可以在每一个桶414的条目上计算以产生用于该桶的摘要值。逻辑异或函数可以是希望的,因为散列表条目中任何一比特变化产生不同的摘要值。此外,可以通过计算当前摘要值与将增加或移除的散列值的异或,响应于散列表条目的增加或移除而更新摘要值(例如,不需要从桶中的所有散列表条目重新计算摘要值)。
由交换机维护的关于网络状态(例如,诸如转发表的表)的摘要值可以用于确定期望的网络配置的网络快照是否不同于现有网络配置。图18是可以由控制器处的交换机建模接口在标识期望的网络快照与现有网路配置之间的不同中使用交换机计算的摘要值执行的说明性步骤的流程图500。例如,流程图500的步骤可以在图14的步骤212和214期间或图15的步骤308期间执行。
在步骤502期间,交换机建模接口处的控制模块可以为期望的网络快照(例如,从应用模块接收的指示用于网络的交换机的期望网络配置的网络快照)计算一个或多个摘要值。类似于交换机计算它自己的摘要表的方式,控制模块可以为每一个交换机计算摘要值。例如,控制模块可以针对每一个交换机执行图16的步骤404-408,所述执行通过使用与该交换机相关联的网络快照中的表条目(例如,可以为网络中的每一个交换机计算单独的摘要表)。
在步骤504期间,控制模块可以选择交换机并且请求由所选交换机维护的摘要表(例如,在执行图16的流程图400的步骤中由交换机维护的摘要表)。
在步骤506期间,控制模块可以比较由控制器计算的摘要值与从交换机取回的摘要值以标识摘要值的不同。与从交换机取回的摘要值不匹配的所选交换机的计算的摘要表的桶可以被标识为需要更新。相反地,与取回的摘要值匹配的所选交换机的计算的摘要表的桶可以被标识为不需要更新。
在步骤508期间,控制模块可以与所选交换机通信以取回仅所选桶的表条目(例如,在计算分配到所选桶的散列值中使用的表条目)。控制模块可以比较取回的表条目和网络快照中的期望的表条目,并且向实施网络快照的期望的网络配置的所选交换机提供正确的表条目。
如图18所示的摘要值的使用以确定在实施期望的网络配置中需要做什么修改可以帮助减少网络中在控制器和交换机之间的控制路径上的流量总量,因为仅具有不匹配摘要值的桶的表条目被传输。通过仅传输与不匹配摘要值相关联的表条目,控制器处的储存资源(例如,存储器)可以更有效率地利用,因为在任何给定时间不需要在控制器处储存整个交换机状态。
根据实施例,一种使用控制器的方法,控制器控制具有终端主机的网络中的交换机,终端主机耦合到交换机,提供了所述方法,所述方法包括:通过控制器处的交换机建模接口,维护网络中的交换机的交换机模型;通过控制器处的交换机建模接口,接收交换机的网络的期望的网络配置;以及通过交换机建模接口,基于交换机模型生成用于交换机的控制消息以实施期望的网络配置。
根据另一个实施例,在交换机建模接口处接收的期望的网络配置包括表的集合和函数,所述方法包括:通过交换机建模接口,在表的集合上操作函数以标识期望的网络配置。
根据另一个实施例,表的集合包括标识终端主机附接点的主机表和交换机间转发表,以及在表的集合上操作函数以标识期望的网络配置包括:在主机表和交换机间转发表上操作函数以产生用于交换机的转发表。
根据另一个实施例,所述方法包括:通过控制器,标识网络事件;以及通过控制器,基于网络事件生成期望的网络配置。
根据另一个实施例,网络事件包括从由如下组成的组中选择的事件:终端主机的连接、终端主机的断开和新的网络政策。
根据另一个实施例,交换机模型标识网络配置,所述方法包括:通过交换机建模接口,标识期望的网络配置和由交换机模型标识的网络配置之间的差异,基于交换机模型生成用于交换机的控制消息以实施期望的网络配置包括:生成仅用于期望的网络配置和由交换机模型标识的网络配置之间所标识的差异的控制消息。
根据另一个实施例,所述方法包括:通过交换机建模接口,向交换机发送控制消息;以及通过交换机建模接口,确定在交换机处是否成功地实施了控制消息。
根据另一个实施例,控制器包括多个应用模块,所述多个应用模块通过与交换机建模接口通信来控制交换机,以及,基于网络事件生成期望的网络配置包括:通过所述多个应用模块中的给定应用模块,生成期望的网络配置;以及通过所述给定应用模块,向交换机建模接口提供期望的网络配置。
根据另一个实施例,所述方法包括:通过交换机建模接口,向所述给定应用模块提供标识在交换机处是否成功地实施了控制消息的信息。
根据另一个实施例,确定在交换机处是否成功地实施了控制消息包括:与控制消息一起向交换机提供同步请求消息;以及响应于从交换机接收到对应于同步请求消息的同步回复消息,确定在交换机处成功地实施了控制消息。
根据另一个实施例,确定在交换机处是否成功地实施了控制消息进一步包括:响应于从交换机接收到错误消息,确定在交换机处没有成功地实施控制消息。
根据另一个实施例,每一个交换机维护具有包括散列的交换机状态信息的条目的摘要表,摘要表的每一个条目包括从该条目的散列的交换机状态信息计算的摘要值,以及,标识期望的网络配置和由交换机模型标识的网络配置之间的差异包括:通过控制器,计算用于期望的网络配置的期望的摘要表集合;通过交换机建模接口,从交换机取回摘要表;以及比较由控制器计算的期望的摘要表和从交换机取回的摘要表。
根据一个实施例,一种操作网络交换机的方法被提供,所述方法包括:通过网络交换机,接收交换机配置数据;以及通过网络交换机,至少部分基于网络交换机处的已经存在的交换机配置数据和接收的交换机配置数据来计算摘要值。
根据另一个实施例,所述方法包括:通过网络交换机,维护具有多个桶的摘要表,每一个桶与各自的摘要值相关联;通过网络交换机,散列所接收的交换机配置数据;以及将散列的交换机配置数据分配到所述多个桶中的基于散列的交换机配置数据选定的桶,针对所述选定的桶储存所计算的摘要值。
根据另一个实施例,散列的交换机配置数据包括多个比特,以及,将散列的交换机配置数据分配到所述多个桶中的基于散列的交换机配置数据选定的桶包括:基于所述多个比特的子集选择桶。
根据另一个实施例,所述选定的桶包括先前散列的交换机配置数据,以及,至少部分基于网络交换机处的已经存在的交换机配置数据和接收的交换机配置数据来计算摘要值包括:基于所述选定的桶中的先前散列的交换机配置数据和散列的交换机配置数据来计算逻辑异或。
根据另一个实施例,交换机配置数据包括用于交换机的转发表。
根据另一个实施例,交换机通过网络控制路径与控制器通信,所述方法包括:响应于来自控制器的请求,向控制器发送表的摘要值。
根据另一个实施例,一种使用控制器的方法,控制器控制具有终端主机的网络中的交换机,终端主机耦合到交换机,所述方法被提供,所述方法包括:通过控制器,维护标识当前网络配置的信息,标识当前网络配置的信息包括表的集合和函数,所述函数在表的集合上操作以产生当前网络配置的至少一部分。
根据另一个实施例,表的集合包括标识用于所有终端主机的终端主机附接点的主机表和标识交换机之间的链路的交换机间转发表,所述方法包括:通过控制器,使用所述函数基于主机表和交换机间转发表为交换机中的给定交换机生成每一交换机转发表。
根据另一个实施例,所述方法包括:通过控制器,基于标识当前网络配置的信息生成用于交换机的控制消息以实施期望的网络配置。
以上所述内容仅是本发明的原理的说明性内容,并且本领域技术人员可以在不脱离本发明的范围和精神的情况下做出多种修改。

Claims (17)

1.一种使用控制器的方法,控制器控制具有终端主机的网络中的交换机,终端主机耦合到交换机,所述方法包括:
通过控制器处的交换机建模接口,维护网络中的交换机的交换机模型;
通过控制器处的交换机建模接口,接收交换机的网络的期望的网络配置;
通过交换机建模接口,基于交换机模型生成用于交换机的控制消息以实施期望的网络配置,其中在交换机建模接口处维护的交换机模型包括标识终端主机附接点的全局主机表以及全局交换机间转发表;
提供具有函数的交换机建模接口;
提供输入交换机和终端主机地址作为对所述函数的输入;以及
通过交换机建模接口,基于所述输入和所述函数,在全局主机表和全局交换机间转发表上进行操作以产生所述输入交换机的端口作为所述函数的输出,其中所述终端主机地址和所述端口用来形成用于输入交换机的转发表条目,其中所述转发表条目和另外的转发表条目形成与全局主机表和全局交换机间转发表分开的特定于交换机的用于输入交换机的转发表,以及其中转发表条目和另外的转发表条目能够用于配置所述输入交换机。
2.如权利要求1所述的方法,进一步包括:
通过控制器,标识网络事件;以及
通过控制器,基于网络事件生成期望的网络配置。
3.如权利要求2所述的方法,其中,网络事件包括从由如下组成的组中选择的事件:终端主机的连接、终端主机的断开和新的网络政策。
4.如权利要求2所述的方法,其中,交换机模型标识网络配置,所述方法进一步包括:
通过交换机建模接口,标识期望的网络配置和由交换机模型标识的网络配置之间的差异,其中,基于交换机模型生成用于交换机的控制消息以实施期望的网络配置包括:
仅针对期望的网络配置和由交换机模型标识的网络配置之间所标识的差异生成控制消息。
5.如权利要求4所述的方法,进一步包括:
通过交换机建模接口,向交换机发送控制消息;以及
通过交换机建模接口,确定在交换机处是否成功地实施了控制消息。
6.如权利要求5所述的方法,其中,控制器包括多个应用模块,所述多个应用模块通过与交换机建模接口通信来控制交换机,以及其中,基于网络事件生成期望的网络配置包括:
通过所述多个应用模块中的给定应用模块,生成期望的网络配置;以及
通过所述给定应用模块,向交换机建模接口提供期望的网络配置。
7.如权利要求6所述的方法,进一步包括:
通过交换机建模接口,向所述给定应用模块提供标识在交换机处是否成功地实施了控制消息的信息。
8.如权利要求5所述的方法,其中,确定在交换机处是否成功地实施了控制消息包括:
与控制消息一起向交换机提供同步请求消息;以及
响应于从交换机接收到对应于同步请求消息的同步回复消息,确定在交换机处成功地实施了控制消息。
9.如权利要求8所述的方法,其中,确定在交换机处是否成功地实施了控制消息进一步包括:
响应于从交换机接收到错误消息,确定在交换机处没有成功地实施控制消息。
10.如权利要求4所述的方法,其中,每一个交换机维护具有包括散列的交换机状态信息的条目的摘要表,其中,摘要表的每一个条目包括从该条目的散列的交换机状态信息计算的摘要值,以及其中,标识期望的网络配置和由交换机模型标识的网络配置之间的差异包括:
通过控制器,计算用于期望的网络配置的期望的摘要表集合;
通过交换机建模接口,从交换机取回摘要表;以及
比较由控制器计算的期望的摘要表和从交换机取回的摘要表。
11.一种操作与控制路径耦合的网络交换机的方法,包括:
通过网络交换机,维护具有多个桶的摘要表,其中每一个桶与各自的摘要值相关联;
响应于通过控制路径接收到的请求,通过网络交换机,输出摘要表中的所述多个桶的各自的摘要值;
在输出所述各自的摘要值之后,通过网络交换机,接收交换机配置数据,其中交换机配置数据仅与所述多个桶的一部分相关联;以及
通过网络交换机,更新所述多个桶的所述一部分以实施所接收的交换机配置数据,其中所述多个桶的所述一部分通过所接收的交换机配置数据与网络交换机处的已经存在的交换机配置数据之间的差异来确定。
12.如权利要求11所述的方法,进一步包括:
通过网络交换机,散列所接收的交换机配置数据;以及
将散列的交换机配置数据分配到所述多个桶中的基于散列的交换机配置数据选定的桶,其中,针对所述选定的桶储存所计算的摘要值。
13.如权利要求12所述的方法,其中,散列的交换机配置数据包括多个比特,以及其中,将散列的交换机配置数据分配到所述多个桶中的基于散列的交换机配置数据选定的桶包括:
基于所述多个比特的子集选择桶,其中,所述选定的桶包括先前散列的交换机配置数据,以及其中,更新所述多个桶的所述一部分以实施所接收的交换机配置数据包括:
基于所述选定的桶中的先前散列的交换机配置数据和散列的交换机配置数据来计算逻辑异或。
14.如权利要求11所述的方法,其中,交换机配置数据包括用于交换机的转发表。
15.如权利要求11所述的方法,其中,交换机通过控制路径与控制器通信,以及其中,输出摘要表中的所述多个桶的各自的摘要值包括:
向控制器输出摘要表中的所述多个桶的各自的摘要值。
16.一种使用控制器的方法,控制器控制具有终端主机的网络中的交换机,终端主机耦合到交换机,所述方法包括:
通过控制器,维护标识当前网络配置的信息,其中,标识当前网络配置的信息包括标识用于终端主机的终端主机附接点的全局主机表、标识交换机之间的链路的全局交换机间转发表、以及函数,所述函数能够用来产生定义当前网络配置的至少一部分的表的集合;
提供输入交换机和目的地信息作为对所述函数的输入;以及
通过控制器,基于所述输入、所述全局主机表以及所述全局交换机间转发表,使用所述函数产生所述输入交换机的端口作为所述函数的输出,其中所述目的地信息和所述输入交换机的端口形成用于输入交换机的转发表条目,其中所述转发表条目和另外的转发表条目形成用于输入交换机的每一交换机转发表,以及其中每一交换机转发表能够用于配置所述输入交换机。
17.如权利要求16所述的方法,进一步包括:
通过控制器,基于标识当前网络配置的信息生成用于交换机的控制消息以实施期望的网络配置。
CN201580027330.2A 2014-06-03 2015-05-14 使用控制器处的交换机建模接口控制网络交换机的系统和方法 Expired - Fee Related CN106416132B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/295,196 US9935831B1 (en) 2014-06-03 2014-06-03 Systems and methods for controlling network switches using a switch modeling interface at a controller
US14/295,196 2014-06-03
PCT/US2015/030874 WO2015187337A1 (en) 2014-06-03 2015-05-14 Systems and methods for controlling network switches using a switch modeling interface at a controller

Publications (2)

Publication Number Publication Date
CN106416132A CN106416132A (zh) 2017-02-15
CN106416132B true CN106416132B (zh) 2019-12-10

Family

ID=53434446

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580027330.2A Expired - Fee Related CN106416132B (zh) 2014-06-03 2015-05-14 使用控制器处的交换机建模接口控制网络交换机的系统和方法

Country Status (6)

Country Link
US (1) US9935831B1 (zh)
EP (1) EP3143726A1 (zh)
JP (1) JP6518697B2 (zh)
CN (1) CN106416132B (zh)
AU (1) AU2015271104B2 (zh)
WO (1) WO2015187337A1 (zh)

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9794379B2 (en) 2013-04-26 2017-10-17 Cisco Technology, Inc. High-efficiency service chaining with agentless service nodes
US9781004B2 (en) 2014-10-16 2017-10-03 Cisco Technology, Inc. Discovering and grouping application endpoints in a network environment
USRE48131E1 (en) 2014-12-11 2020-07-28 Cisco Technology, Inc. Metadata augmentation in a service function chain
US9660909B2 (en) 2014-12-11 2017-05-23 Cisco Technology, Inc. Network service header metadata for load balancing
US9942140B2 (en) * 2015-10-08 2018-04-10 Arista Networks, Inc. Dynamic forward information base prefix optimization
US10250488B2 (en) * 2016-03-01 2019-04-02 International Business Machines Corporation Link aggregation management with respect to a shared pool of configurable computing resources
US10187306B2 (en) 2016-03-24 2019-01-22 Cisco Technology, Inc. System and method for improved service chaining
US10931793B2 (en) 2016-04-26 2021-02-23 Cisco Technology, Inc. System and method for automated rendering of service chaining
CN107547293B (zh) * 2016-06-29 2020-09-08 新华三技术有限公司 一种流路径探测方法和装置
US10419550B2 (en) 2016-07-06 2019-09-17 Cisco Technology, Inc. Automatic service function validation in a virtual network environment
US10218616B2 (en) 2016-07-21 2019-02-26 Cisco Technology, Inc. Link selection for communication with a service function cluster
US10320664B2 (en) 2016-07-21 2019-06-11 Cisco Technology, Inc. Cloud overlay for operations administration and management
US10225270B2 (en) 2016-08-02 2019-03-05 Cisco Technology, Inc. Steering of cloned traffic in a service function chain
US10218593B2 (en) 2016-08-23 2019-02-26 Cisco Technology, Inc. Identifying sources of packet drops in a service function chain environment
US10848439B2 (en) * 2016-09-29 2020-11-24 Siemens Aktiengesellschaft Method for operating an industrial automation system communication network comprising a plurality of communication devices, and control unit
US10491513B2 (en) 2017-01-20 2019-11-26 Hewlett Packard Enterprise Development Lp Verifying packet tags in software defined networks
US10425287B2 (en) 2017-02-23 2019-09-24 Dell Products L.P. Systems and methods for network topology discovery
US10785118B2 (en) * 2017-02-23 2020-09-22 Dell Products L.P. Systems and methods for network topology validation
US10225187B2 (en) 2017-03-22 2019-03-05 Cisco Technology, Inc. System and method for providing a bit indexed service chain
US10257033B2 (en) 2017-04-12 2019-04-09 Cisco Technology, Inc. Virtualized network functions and service chaining in serverless computing infrastructure
US10884807B2 (en) 2017-04-12 2021-01-05 Cisco Technology, Inc. Serverless computing and task scheduling
US10333855B2 (en) 2017-04-19 2019-06-25 Cisco Technology, Inc. Latency reduction in service function paths
US10826788B2 (en) 2017-04-20 2020-11-03 Cisco Technology, Inc. Assurance of quality-of-service configurations in a network
US10623264B2 (en) 2017-04-20 2020-04-14 Cisco Technology, Inc. Policy assurance for service chaining
US10560328B2 (en) 2017-04-20 2020-02-11 Cisco Technology, Inc. Static network policy analysis for networks
US10554689B2 (en) 2017-04-28 2020-02-04 Cisco Technology, Inc. Secure communication session resumption in a service function chain
US10554483B2 (en) 2017-05-31 2020-02-04 Cisco Technology, Inc. Network policy analysis for networks
US10812318B2 (en) 2017-05-31 2020-10-20 Cisco Technology, Inc. Associating network policy objects with specific faults corresponding to fault localizations in large-scale network deployment
US20180351788A1 (en) 2017-05-31 2018-12-06 Cisco Technology, Inc. Fault localization in large-scale network policy deployment
US10623271B2 (en) 2017-05-31 2020-04-14 Cisco Technology, Inc. Intra-priority class ordering of rules corresponding to a model of network intents
US10693738B2 (en) 2017-05-31 2020-06-23 Cisco Technology, Inc. Generating device-level logical models for a network
US10439875B2 (en) 2017-05-31 2019-10-08 Cisco Technology, Inc. Identification of conflict rules in a network intent formal equivalence failure
US10581694B2 (en) 2017-05-31 2020-03-03 Cisco Technology, Inc. Generation of counter examples for network intent formal equivalence failures
US10505816B2 (en) 2017-05-31 2019-12-10 Cisco Technology, Inc. Semantic analysis to detect shadowing of rules in a model of network intents
US11469986B2 (en) 2017-06-16 2022-10-11 Cisco Technology, Inc. Controlled micro fault injection on a distributed appliance
US10498608B2 (en) 2017-06-16 2019-12-03 Cisco Technology, Inc. Topology explorer
US10547715B2 (en) 2017-06-16 2020-01-28 Cisco Technology, Inc. Event generation in response to network intent formal equivalence failures
US10574513B2 (en) 2017-06-16 2020-02-25 Cisco Technology, Inc. Handling controller and node failure scenarios during data collection
US10587621B2 (en) 2017-06-16 2020-03-10 Cisco Technology, Inc. System and method for migrating to and maintaining a white-list network security model
US10904101B2 (en) 2017-06-16 2021-01-26 Cisco Technology, Inc. Shim layer for extracting and prioritizing underlying rules for modeling network intents
US11645131B2 (en) 2017-06-16 2023-05-09 Cisco Technology, Inc. Distributed fault code aggregation across application centric dimensions
US10735275B2 (en) 2017-06-16 2020-08-04 Cisco Technology, Inc. Releasing and retaining resources for use in a NFV environment
US11150973B2 (en) 2017-06-16 2021-10-19 Cisco Technology, Inc. Self diagnosing distributed appliance
US10686669B2 (en) 2017-06-16 2020-06-16 Cisco Technology, Inc. Collecting network models and node information from a network
US10805160B2 (en) 2017-06-19 2020-10-13 Cisco Technology, Inc. Endpoint bridge domain subnet validation
US10348564B2 (en) 2017-06-19 2019-07-09 Cisco Technology, Inc. Validation of routing information base-forwarding information base equivalence in a network
US11343150B2 (en) 2017-06-19 2022-05-24 Cisco Technology, Inc. Validation of learned routes in a network
US10652102B2 (en) 2017-06-19 2020-05-12 Cisco Technology, Inc. Network node memory utilization analysis
US10560355B2 (en) 2017-06-19 2020-02-11 Cisco Technology, Inc. Static endpoint validation
US10554493B2 (en) 2017-06-19 2020-02-04 Cisco Technology, Inc. Identifying mismatches between a logical model and node implementation
US10673702B2 (en) 2017-06-19 2020-06-02 Cisco Technology, Inc. Validation of layer 3 using virtual routing forwarding containers in a network
US10411996B2 (en) 2017-06-19 2019-09-10 Cisco Technology, Inc. Validation of routing information in a network fabric
US10218572B2 (en) 2017-06-19 2019-02-26 Cisco Technology, Inc. Multiprotocol border gateway protocol routing validation
US10505817B2 (en) 2017-06-19 2019-12-10 Cisco Technology, Inc. Automatically determining an optimal amount of time for analyzing a distributed network environment
US10567229B2 (en) 2017-06-19 2020-02-18 Cisco Technology, Inc. Validating endpoint configurations between nodes
US10437641B2 (en) 2017-06-19 2019-10-08 Cisco Technology, Inc. On-demand processing pipeline interleaved with temporal processing pipeline
US10341184B2 (en) 2017-06-19 2019-07-02 Cisco Technology, Inc. Validation of layer 3 bridge domain subnets in in a network
US10567228B2 (en) 2017-06-19 2020-02-18 Cisco Technology, Inc. Validation of cross logical groups in a network
US10547509B2 (en) 2017-06-19 2020-01-28 Cisco Technology, Inc. Validation of a virtual port channel (VPC) endpoint in the network fabric
US10644946B2 (en) 2017-06-19 2020-05-05 Cisco Technology, Inc. Detection of overlapping subnets in a network
US10528444B2 (en) 2017-06-19 2020-01-07 Cisco Technology, Inc. Event generation in response to validation between logical level and hardware level
US10798187B2 (en) 2017-06-19 2020-10-06 Cisco Technology, Inc. Secure service chaining
US10333787B2 (en) 2017-06-19 2019-06-25 Cisco Technology, Inc. Validation of L3OUT configuration for communications outside a network
US10432467B2 (en) 2017-06-19 2019-10-01 Cisco Technology, Inc. Network validation between the logical level and the hardware level of a network
US10536337B2 (en) 2017-06-19 2020-01-14 Cisco Technology, Inc. Validation of layer 2 interface and VLAN in a networked environment
US10812336B2 (en) 2017-06-19 2020-10-20 Cisco Technology, Inc. Validation of bridge domain-L3out association for communication outside a network
US10700933B2 (en) 2017-06-19 2020-06-30 Cisco Technology, Inc. Validating tunnel endpoint addresses in a network fabric
US11283680B2 (en) 2017-06-19 2022-03-22 Cisco Technology, Inc. Identifying components for removal in a network configuration
US10623259B2 (en) 2017-06-19 2020-04-14 Cisco Technology, Inc. Validation of layer 1 interface in a network
US10397271B2 (en) 2017-07-11 2019-08-27 Cisco Technology, Inc. Distributed denial of service mitigation for web conferencing
US10673698B2 (en) 2017-07-21 2020-06-02 Cisco Technology, Inc. Service function chain optimization using live testing
US10797959B2 (en) * 2017-08-11 2020-10-06 Quanta Computer Inc. LLDP based rack management controller
US11063856B2 (en) 2017-08-24 2021-07-13 Cisco Technology, Inc. Virtual network function monitoring in a network function virtualization deployment
US10587484B2 (en) 2017-09-12 2020-03-10 Cisco Technology, Inc. Anomaly detection and reporting in a network assurance appliance
US10587456B2 (en) 2017-09-12 2020-03-10 Cisco Technology, Inc. Event clustering for a network assurance platform
US10554477B2 (en) 2017-09-13 2020-02-04 Cisco Technology, Inc. Network assurance event aggregator
US10791065B2 (en) 2017-09-19 2020-09-29 Cisco Technology, Inc. Systems and methods for providing container attributes as part of OAM techniques
US10333833B2 (en) 2017-09-25 2019-06-25 Cisco Technology, Inc. Endpoint path assurance
US11018981B2 (en) 2017-10-13 2021-05-25 Cisco Technology, Inc. System and method for replication container performance and policy validation using real time network traffic
US10541893B2 (en) 2017-10-25 2020-01-21 Cisco Technology, Inc. System and method for obtaining micro-service telemetry data
US11102053B2 (en) 2017-12-05 2021-08-24 Cisco Technology, Inc. Cross-domain assurance
US10873509B2 (en) 2018-01-17 2020-12-22 Cisco Technology, Inc. Check-pointing ACI network state and re-execution from a check-pointed state
US10572495B2 (en) 2018-02-06 2020-02-25 Cisco Technology Inc. Network assurance database version compatibility
US10666612B2 (en) 2018-06-06 2020-05-26 Cisco Technology, Inc. Service chains for inter-cloud traffic
US10812315B2 (en) 2018-06-07 2020-10-20 Cisco Technology, Inc. Cross-domain network assurance
US10911495B2 (en) 2018-06-27 2021-02-02 Cisco Technology, Inc. Assurance of security rules in a network
US10659298B1 (en) 2018-06-27 2020-05-19 Cisco Technology, Inc. Epoch comparison for network events
US11019027B2 (en) 2018-06-27 2021-05-25 Cisco Technology, Inc. Address translation for external network appliance
US11044273B2 (en) 2018-06-27 2021-06-22 Cisco Technology, Inc. Assurance of security rules in a network
US11218508B2 (en) 2018-06-27 2022-01-04 Cisco Technology, Inc. Assurance of security rules in a network
US10904070B2 (en) 2018-07-11 2021-01-26 Cisco Technology, Inc. Techniques and interfaces for troubleshooting datacenter networks
US10826770B2 (en) 2018-07-26 2020-11-03 Cisco Technology, Inc. Synthesis of models for networks using automated boolean learning
US10616072B1 (en) 2018-07-27 2020-04-07 Cisco Technology, Inc. Epoch data interface
CN109474467B (zh) * 2018-11-15 2022-02-01 上海携程商务有限公司 网络自动化管理方法、装置、存储介质及电子设备
US11610110B2 (en) 2018-12-05 2023-03-21 Bank Of America Corporation De-conflicting data labeling in real time deep learning systems
CN111327446B (zh) * 2018-12-17 2022-02-25 北京华为数字技术有限公司 配置数据处理方法、软件定义网络设备、系统及存储介质
US11012315B2 (en) 2019-05-29 2021-05-18 Cisco Technology, Inc. Retroactively detecting state change in a network fabric across times
US11582105B2 (en) * 2020-06-30 2023-02-14 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Telemetry-based network switch configuration validation
US20230049447A1 (en) * 2021-08-11 2023-02-16 Commscope Technologies Llc Systems and methods for fronthaul optimization using software defined networking
CN114710434B (zh) * 2022-03-11 2023-08-25 深圳市风云实业有限公司 一种基于OpenFlow交换机的多级流表构建方法

Family Cites Families (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832484A (en) * 1996-07-02 1998-11-03 Sybase, Inc. Database system with methods for parallel lock management
US5914938A (en) * 1996-11-19 1999-06-22 Bay Networks, Inc. MAC address table search unit
US6381633B2 (en) * 1997-05-09 2002-04-30 Carmel Connection, Inc. System and method for managing multimedia messaging platforms
US6034957A (en) * 1997-08-29 2000-03-07 Extreme Networks, Inc. Sliced comparison engine architecture and method for a LAN switch
US6363396B1 (en) * 1998-12-21 2002-03-26 Oracle Corporation Object hashing with incremental changes
US7643481B2 (en) * 1999-03-17 2010-01-05 Broadcom Corporation Network switch having a programmable counter
TW431094B (en) * 1999-07-16 2001-04-21 Via Tech Inc Memory access of Ethernet
US6775281B1 (en) * 1999-09-30 2004-08-10 Mosaid Technologies, Inc. Method and apparatus for a four-way hash table
US6690667B1 (en) * 1999-11-30 2004-02-10 Intel Corporation Switch with adaptive address lookup hashing scheme
US6665297B1 (en) * 1999-12-09 2003-12-16 Mayan Networks Corporation Network routing table
US7133403B1 (en) * 2000-05-05 2006-11-07 Fujitsu Limited Transport network and method
US6947963B1 (en) * 2000-06-28 2005-09-20 Pluris, Inc Methods and apparatus for synchronizing and propagating distributed routing databases
WO2002019624A2 (en) * 2000-08-31 2002-03-07 The Regents Of The University Of California Cluster-based aggregated switching technique (cast) for routing data packets and information objects in computer networks
CA2388938C (en) * 2001-06-08 2010-05-04 The Distributions Systems Research Institute Terminal-to-terminal communication connection control system for ip full service
US20030208572A1 (en) * 2001-08-31 2003-11-06 Shah Rajesh R. Mechanism for reporting topology changes to clients in a cluster
US7133365B2 (en) * 2001-11-02 2006-11-07 Internap Network Services Corporation System and method to provide routing control of information over networks
US7286528B1 (en) * 2001-12-12 2007-10-23 Marvell International Ltd. Multiple address databases in a switch without the need for extra memory
US7277426B2 (en) * 2002-05-24 2007-10-02 Mosaid Technologies, Inc. Method and apparatus for reordering entries in a multi probe lookup
US7284272B2 (en) * 2002-05-31 2007-10-16 Alcatel Canada Inc. Secret hashing for TCP SYN/FIN correspondence
US6915296B2 (en) * 2002-10-29 2005-07-05 Agere Systems Inc. Incremental reorganization for hash tables
US7443841B2 (en) * 2002-10-30 2008-10-28 Nortel Networks Limited Longest prefix matching (LPM) using a fixed comparison hash table
US7342931B2 (en) * 2002-11-11 2008-03-11 Lg Electronics Inc. Apparatus and method for routing an AAL5 PDU in a mobile communication system
KR100918733B1 (ko) * 2003-01-30 2009-09-24 삼성전자주식회사 포워딩정보를 동적으로 관리하는 분산구조라우터 및 그방법
US7426518B2 (en) * 2003-03-28 2008-09-16 Netlogic Microsystems, Inc. System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size
US7512123B1 (en) * 2003-07-16 2009-03-31 Cisco Technology, Inc. Fibre channel fabric and switches with flexible prefix addressing
US20050074003A1 (en) * 2003-10-02 2005-04-07 Ball David Alexander Distributed software architecture for implementing BGP
US7539131B2 (en) * 2003-11-26 2009-05-26 Redback Networks Inc. Nexthop fast rerouter for IP and MPLS
US7379952B2 (en) * 2004-01-30 2008-05-27 Oracle International Corporation Techniques for multiple window resource remastering among nodes of a cluster
US7355983B2 (en) * 2004-02-10 2008-04-08 Cisco Technology, Inc. Technique for graceful shutdown of a routing protocol in a network
US7376078B1 (en) * 2004-03-24 2008-05-20 Juniper Networks, Inc. Selective replay of a state information within a computing device
US7397766B2 (en) * 2004-03-31 2008-07-08 Lucent Technologies Inc. High-speed traffic measurement and analysis methodologies and protocols
US7386753B2 (en) * 2004-09-02 2008-06-10 International Business Machines Corporation Subscription-based management and distribution of member-specific state data in a distributed computing system
US8145642B2 (en) * 2004-11-30 2012-03-27 Oracle International Corporation Method and apparatus to support bitmap filtering in a parallel system
US7984180B2 (en) * 2005-10-20 2011-07-19 Solarflare Communications, Inc. Hashing algorithm for network receive filtering
US7653670B2 (en) * 2005-11-28 2010-01-26 Nec Laboratories America, Inc. Storage-efficient and collision-free hash-based packet processing architecture and method
US7756805B2 (en) * 2006-03-29 2010-07-13 Alcatel-Lucent Usa Inc. Method for distributed tracking of approximate join size and related summaries
US7508772B1 (en) * 2006-06-02 2009-03-24 Cisco Technology, Inc. Partial graceful restart for border gateway protocol (BGP)
US20070294319A1 (en) * 2006-06-08 2007-12-20 Emc Corporation Method and apparatus for processing a database replica
US20070288526A1 (en) * 2006-06-08 2007-12-13 Emc Corporation Method and apparatus for processing a database replica
US7940649B2 (en) * 2006-08-01 2011-05-10 Cisco Technology, Inc. Techniques for graceful restart in a multi-process operating system
US7756015B1 (en) * 2006-09-13 2010-07-13 Marvell Israel (M.I.S.L) Ltd. Fast failover recovery for stackable network switches
US7885268B2 (en) * 2006-11-10 2011-02-08 Broadcom Corporation Method and system for hash table based routing via table and prefix aggregation
EP2087667A4 (en) * 2006-11-27 2015-03-04 Ericsson Telefon Ab L M METHOD AND SYSTEM FOR PROVIDING A ROUTING ARCHITECTURE FOR OVERLAY NETWORKS
FR2914523B1 (fr) * 2007-03-30 2009-09-25 Thales Sa Procede et systeme de routage multipologie.
US7885294B2 (en) * 2007-08-23 2011-02-08 Cisco Technology, Inc. Signaling compression information using routing protocols
US8271500B2 (en) * 2007-09-11 2012-09-18 Microsoft Corporation Minimal perfect hash functions using double hashing
CN101232444B (zh) * 2008-01-22 2012-03-21 杭州华三通信技术有限公司 哈希冲突解决方法、装置及具有该装置的交换设备
US7886175B1 (en) * 2008-03-05 2011-02-08 Juniper Networks, Inc. Delaying one-shot signal objects
JP5074274B2 (ja) * 2008-04-16 2012-11-14 株式会社日立製作所 計算機システム及び通信経路の監視方法
US8204985B2 (en) * 2008-04-28 2012-06-19 Alcatel Lucent Probabilistic aggregation over distributed data streams
WO2010024931A1 (en) * 2008-08-29 2010-03-04 Brown University Cryptographic accumulators for authenticated hash tables
CN101729384B (zh) * 2008-10-15 2013-04-17 华为技术有限公司 一种标签交换方法、装置和系统
EP2383942A1 (en) * 2008-12-25 2011-11-02 Hitachi, Ltd. Communication system and communication controller
US7826369B2 (en) * 2009-02-20 2010-11-02 Cisco Technology, Inc. Subsets of the forward information base (FIB) distributed among line cards in a switching device
US8218561B2 (en) * 2009-04-27 2012-07-10 Cisco Technology, Inc. Flow redirection employing state information
WO2010141375A2 (en) * 2009-06-01 2010-12-09 Phatak Dhananjay S System, method, and apparata for secure communications using an electrical grid network
US8149713B2 (en) * 2009-09-29 2012-04-03 Cisco Technology, Inc. Forwarding of packets based on a filtered forwarding information base
US8270318B1 (en) * 2009-11-18 2012-09-18 Juniper Networks, Inc. Efficient switch-to-switch link discovery
US9882809B2 (en) * 2009-11-24 2018-01-30 Verizon Patent And Licensing Inc. Just-in time forwarding information base
US8638791B2 (en) * 2009-11-24 2014-01-28 Verizon Patent And Licensing Inc. Heterogeneous forwarding information bases in line cards
US20110134931A1 (en) * 2009-12-08 2011-06-09 Jacobus Van Der Merwe Virtual router migration
US8931088B2 (en) * 2010-03-26 2015-01-06 Alcatel Lucent Adaptive distinct counting for network-traffic monitoring and other applications
CN102405623B (zh) * 2010-04-08 2014-10-08 华为技术有限公司 路由表项的存储方法和装置
US20110249676A1 (en) * 2010-04-09 2011-10-13 Bijendra Singh Method and System for Forwarding and Switching Traffic in a Network Element
JP5299856B2 (ja) * 2010-04-19 2013-09-25 日本電気株式会社 スイッチ、及びフローテーブル制御方法
US8467403B2 (en) * 2010-04-29 2013-06-18 Cisco Technology, Inc. Coordinated updating of forwarding information bases in a multistage packet switching device
EP2421225A1 (en) * 2010-08-20 2012-02-22 Alcatel Lucent Processing method, proxy processing agent, system and method for filling a routing table of a DHT client node, router and dht client node
US8290919B1 (en) * 2010-08-27 2012-10-16 Disney Enterprises, Inc. System and method for distributing and accessing files in a distributed storage system
US20120163165A1 (en) * 2010-12-23 2012-06-28 Electronics And Telecommunications Research Institute Apparatus and method for packet transport service based on multi protocol label switching-transport profile (mpls-tp) network
US8397025B2 (en) * 2010-12-30 2013-03-12 Lsi Corporation Apparatus and method for determining a cache line in an N-way set associative cache using hash functions
US9401772B2 (en) 2011-01-28 2016-07-26 Nec Corporation Communication system, control device, forwarding node, communication control method, and program
US20120221708A1 (en) * 2011-02-25 2012-08-30 Cisco Technology, Inc. Distributed content popularity tracking for use in memory eviction
US8630294B1 (en) * 2011-05-11 2014-01-14 Juniper Networks, Inc. Dynamic bypass mechanism to alleviate bloom filter bank contention
US8812555B2 (en) * 2011-06-18 2014-08-19 Microsoft Corporation Dynamic lock-free hash tables
KR101269222B1 (ko) * 2011-06-24 2013-05-30 한국기초과학지원연구원 통신 장치, 허브 감지 방법 및 패킷 전송 방법
US8964563B2 (en) 2011-07-08 2015-02-24 Telefonaktiebolaget L M Ericsson (Publ) Controller driven OAM for OpenFlow
US8873409B2 (en) * 2011-08-30 2014-10-28 Cisco Technology, Inc. Installing and using a subset of routes for forwarding packets
CN103023773B (zh) * 2011-09-23 2015-05-27 华为技术有限公司 多拓扑网络中转发报文的方法、装置和系统
US8769224B1 (en) * 2011-09-30 2014-07-01 Emc Corporation Discovering new physical machines for physical to virtual conversion
US20130151535A1 (en) * 2011-12-09 2013-06-13 Canon Kabushiki Kaisha Distributed indexing of data
US8750099B2 (en) * 2011-12-16 2014-06-10 Cisco Technology, Inc. Method for providing border gateway protocol fast convergence on autonomous system border routers
US8521905B2 (en) 2011-12-22 2013-08-27 Telefonaktiebolaget L M Ericsson (Publ) System for flexible and extensible flow processing in software-defined networks
US9135123B1 (en) * 2011-12-28 2015-09-15 Emc Corporation Managing global data caches for file system
US9083710B1 (en) * 2012-01-03 2015-07-14 Google Inc. Server load balancing using minimally disruptive hash tables
US20130185430A1 (en) * 2012-01-18 2013-07-18 LineRate Systems, Inc. Multi-level hash tables for socket lookups
US20130182713A1 (en) * 2012-01-18 2013-07-18 LineRate Systems, Inc. State management using a large hash table
US20130226813A1 (en) * 2012-02-23 2013-08-29 Robert Matthew Voltz Cyberspace Identification Trust Authority (CITA) System and Method
US9049149B2 (en) * 2012-03-30 2015-06-02 Fujitsu Limited Minimal data loss load balancing on link aggregation groups
EP2645645A1 (en) * 2012-03-30 2013-10-02 British Telecommunications Public Limited Company Packet network routing
US8868926B2 (en) * 2012-04-06 2014-10-21 Exablox Corporation Cryptographic hash database
US9191139B1 (en) * 2012-06-12 2015-11-17 Google Inc. Systems and methods for reducing the computational resources for centralized control in a network
EP2680663B1 (en) * 2012-06-29 2015-11-18 BlackBerry Limited Managing multiple forwarding information bases
US9178806B2 (en) * 2012-07-31 2015-11-03 Alcatel Lucent High-speed content routing
US8958294B2 (en) * 2012-08-09 2015-02-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Assigning identifiers to mobile devices according to their data service requirements
US8854973B2 (en) * 2012-08-29 2014-10-07 International Business Machines Corporation Sliced routing table management with replication
US9215171B2 (en) * 2012-08-29 2015-12-15 International Business Machines Corporation Hashing-based routing table management
US8817796B2 (en) * 2012-08-29 2014-08-26 International Business Machines Corporation Cached routing table management
US9124527B2 (en) * 2012-08-29 2015-09-01 International Business Machines Corporation Sliced routing table management
US8792494B2 (en) * 2012-09-14 2014-07-29 International Business Machines Corporation Facilitating insertion of device MAC addresses into a forwarding database
KR101977575B1 (ko) * 2012-09-28 2019-05-13 삼성전자 주식회사 디렉토리 엔트리 조회 장치, 그 방법 및 디렉토리 엔트리 조회 프로그램이 기록된 기록 매체
US9245626B2 (en) * 2012-10-26 2016-01-26 Cisco Technology, Inc. System and method for packet classification and internet protocol lookup in a network environment
US9237066B2 (en) * 2012-11-16 2016-01-12 Dell Products, L.P. Packet switch modules for computer networks with efficient management of databases used in forwarding of network traffic
US9491087B1 (en) * 2012-11-28 2016-11-08 The Arizona Board Of Regents On Behalf Of The University Of Arizona Devices and methods for forwarding information base aggregation
US9036477B2 (en) * 2012-12-10 2015-05-19 Verizon Patent And Licensing Inc. Virtual private network to label switched path mapping
US9077702B2 (en) * 2013-01-30 2015-07-07 Palo Alto Networks, Inc. Flow ownership assignment in a distributed processor system
US8997223B2 (en) * 2013-01-30 2015-03-31 Palo Alto Networks, Inc. Event aggregation in a distributed processor system
US9240975B2 (en) * 2013-01-30 2016-01-19 Palo Alto Networks, Inc. Security device implementing network flow prediction
US8934490B2 (en) * 2013-01-31 2015-01-13 Telefonaktiebolaget L M Ericsson (Publ) Accelerated MAC address resolution for IPv6 traffic with IS-IS protocol
US9537771B2 (en) * 2013-04-04 2017-01-03 Marvell Israel (M.I.S.L) Ltd. Exact match hash lookup databases in network switch devices
US20140317256A1 (en) * 2013-04-17 2014-10-23 Cisco Technology, Inc. Loop and Outage Avoidance in Software Defined Network
US20140337375A1 (en) * 2013-05-07 2014-11-13 Exeray Inc. Data search and storage with hash table-based data structures
CN108063717A (zh) * 2013-05-31 2018-05-22 华为技术有限公司 信息为中心网络icn中转发报文的方法、装置及系统
US9384227B1 (en) * 2013-06-04 2016-07-05 Amazon Technologies, Inc. Database system providing skew metrics across a key space
US9264302B2 (en) * 2013-06-17 2016-02-16 Telefonaktiebolaget L M Ericsson (Publ) Methods and systems with enhanced robustness for multi-chassis link aggregation group
US9253086B2 (en) * 2013-07-09 2016-02-02 Telefonaktiebolaget L M Ericsson (Publ) Method and system of dynamic next-hop routing
US9891857B2 (en) * 2013-07-15 2018-02-13 International Business Machines Corporation Utilizing global digests caching in similarity based data deduplication
US20150019815A1 (en) * 2013-07-15 2015-01-15 International Business Machines Corporation Utilizing global digests caching in data deduplication of workloads
US9892048B2 (en) * 2013-07-15 2018-02-13 International Business Machines Corporation Tuning global digests caching in a data deduplication system
US9892127B2 (en) * 2013-07-15 2018-02-13 International Business Machines Corporation Global digests caching in a data deduplication system
US10296597B2 (en) * 2013-07-15 2019-05-21 International Business Machines Corporation Read ahead of digests in similarity based data deduplicaton
US9906436B2 (en) * 2013-08-05 2018-02-27 Futurewei Technologies, Inc. Scalable name-based centralized content routing
US20150113166A1 (en) * 2013-10-18 2015-04-23 Palo Alto Research Center Incorporated Method and apparatus for a named network within an autonomous system
US9397946B1 (en) * 2013-11-05 2016-07-19 Cisco Technology, Inc. Forwarding to clusters of service nodes
US9405643B2 (en) * 2013-11-26 2016-08-02 Dropbox, Inc. Multi-level lookup architecture to facilitate failure recovery
US9740759B1 (en) * 2014-01-24 2017-08-22 EMC IP Holding Company LLC Cloud migrator
US9225597B2 (en) * 2014-03-14 2015-12-29 Nicira, Inc. Managed gateways peering with external router to attract ingress packets
US9270636B2 (en) * 2014-04-07 2016-02-23 Oracle International Corporation Neighbor lookup operations in a network node
US9485115B2 (en) * 2014-04-23 2016-11-01 Cisco Technology, Inc. System and method for enabling conversational learning in a network environment
US20150324690A1 (en) * 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
US20150350077A1 (en) * 2014-05-30 2015-12-03 Brocade Communications Systems, Inc. Techniques For Transforming Legacy Networks Into SDN-Enabled Networks
US9825913B2 (en) * 2014-06-04 2017-11-21 Nicira, Inc. Use of stateless marking to speed up stateful firewall rule processing
US9860316B2 (en) * 2014-09-19 2018-01-02 Facebook, Inc. Routing network traffic based on social information
US20160241474A1 (en) * 2015-02-12 2016-08-18 Ren Wang Technologies for modular forwarding table scalability
US9559936B2 (en) * 2015-02-12 2017-01-31 Arista Networks, Inc. Method and system for initializing the border gateway protocol on network devices
US10021017B2 (en) * 2015-03-18 2018-07-10 Futurewei Technologies, Inc. X channel to zone in zone routing
US10630585B2 (en) * 2015-04-16 2020-04-21 Arista Networks, Inc. Method and system for withdrawing programmed routes in network devices
US10891264B2 (en) * 2015-04-30 2021-01-12 Vmware, Inc. Distributed, scalable key-value store
US9729427B2 (en) * 2015-05-08 2017-08-08 Arista Networks, Inc. Method and system for route hardware programming in network devices
US9787575B2 (en) * 2015-05-28 2017-10-10 Arista Networks, Inc. Method and system for programming equal-cost multi-path routes on network devices
KR20170006742A (ko) * 2015-07-09 2017-01-18 한국전자통신연구원 소프트웨어 라우터, 그 소프트웨어 라우터에서의 라우팅 테이블 검색 방법 및 라우팅 엔트리 갱신 방법
US9960999B2 (en) * 2015-08-10 2018-05-01 Futurewei Technologies, Inc. Balanced load execution with locally distributed forwarding information base in information centric networks
US20170090814A1 (en) * 2015-09-25 2017-03-30 Intel Corporation Efficient storage and retrieval for wearable-device data
US9760283B2 (en) * 2015-09-28 2017-09-12 Zscaler, Inc. Systems and methods for a memory model for sparsely updated statistics
US11100073B2 (en) * 2015-11-12 2021-08-24 Verizon Media Inc. Method and system for data assignment in a distributed system
WO2017096564A1 (zh) * 2015-12-09 2017-06-15 北京大学深圳研究生院 一种基于内容的集中式路由体系架构mccn
US10802737B2 (en) * 2016-02-01 2020-10-13 Cloudian Holdings, Inc. System and processes for dynamic object routing
US10412009B2 (en) * 2016-03-10 2019-09-10 Arista Networks, Inc. Next hop groups
US9973411B2 (en) * 2016-03-21 2018-05-15 Nicira, Inc. Synchronization of data and control planes of routers
US9960994B2 (en) * 2016-03-23 2018-05-01 Juniper Networks, Inc. Method, system, and apparatus for forwarding network traffic using minimal forwarding information bases
US10320675B2 (en) * 2016-05-04 2019-06-11 Cisco Technology, Inc. System and method for routing packets in a stateless content centric network

Also Published As

Publication number Publication date
AU2015271104B2 (en) 2018-05-17
US9935831B1 (en) 2018-04-03
CN106416132A (zh) 2017-02-15
WO2015187337A1 (en) 2015-12-10
JP2017516417A (ja) 2017-06-15
AU2015271104A1 (en) 2016-12-01
JP6518697B2 (ja) 2019-05-22
EP3143726A1 (en) 2017-03-22

Similar Documents

Publication Publication Date Title
CN106416132B (zh) 使用控制器处的交换机建模接口控制网络交换机的系统和方法
CN106605392B (zh) 用于使用控制器在网络上进行操作的系统和方法
US10270645B2 (en) Systems and methods for handling link aggregation failover with a controller
EP2748992B1 (en) Method for managing network hardware address requests with a controller
JP6302064B2 (ja) コントローラを用いてネットワークをテストするシステム及び方法
US8923296B2 (en) System and methods for managing network packet forwarding with a controller
US9654380B1 (en) Systems and methods for determining network topologies
JP5654142B2 (ja) ネットワーク・スイッチを構成するための方法
US9185056B2 (en) System and methods for controlling network traffic through virtual switches
US9130870B1 (en) Methods for determining network topologies
US8787388B1 (en) System and methods for forwarding packets through a network
US9008080B1 (en) Systems and methods for controlling switches to monitor network traffic
JP2017506025A (ja) ネットワークサービス挿入を実行するシステム及び方法
US9548900B1 (en) Systems and methods for forwarding network packets in a network using network domain topology information
US10291533B1 (en) Systems and methods for network traffic monitoring
EP3844911B1 (en) Systems and methods for generating network flow information
US9356838B1 (en) Systems and methods for determining network forwarding paths with a controller
US9264295B1 (en) Systems and methods for forwarding broadcast network packets with a controller

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20191210

Termination date: 20200514

CF01 Termination of patent right due to non-payment of annual fee