CN115136557B - 用于跟踪协议和硬件资源状态转换的方法和系统 - Google Patents
用于跟踪协议和硬件资源状态转换的方法和系统 Download PDFInfo
- Publication number
- CN115136557B CN115136557B CN202180015639.5A CN202180015639A CN115136557B CN 115136557 B CN115136557 B CN 115136557B CN 202180015639 A CN202180015639 A CN 202180015639A CN 115136557 B CN115136557 B CN 115136557B
- Authority
- CN
- China
- Prior art keywords
- data plane
- network device
- protocol
- state transition
- host cpu
- 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
- 230000007704 transition Effects 0.000 title claims abstract description 508
- 238000000034 method Methods 0.000 title claims description 60
- 238000012544 monitoring process Methods 0.000 claims abstract description 10
- 239000004744 fabric Substances 0.000 claims description 25
- 230000008859 change Effects 0.000 claims description 12
- 238000007689 inspection Methods 0.000 claims description 12
- 230000002776 aggregation Effects 0.000 claims description 4
- 238000004220 aggregation Methods 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 abstract description 7
- 230000000875 corresponding effect Effects 0.000 description 38
- 238000012545 processing Methods 0.000 description 32
- 238000001914 filtration Methods 0.000 description 27
- 230000009471 action Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 17
- 230000007246 mechanism Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000011010 flushing procedure Methods 0.000 description 5
- 230000006855 networking Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- DWSYCUKCNSVBRA-UHFFFAOYSA-N 4-(5-methylsulfonyltetrazol-1-yl)phenol Chemical compound CS(=O)(=O)C1=NN=NN1C1=CC=C(C=C1)O DWSYCUKCNSVBRA-UHFFFAOYSA-N 0.000 description 2
- 101710167643 Serine/threonine protein phosphatase PstP Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- ABEXEQSGABRUHS-UHFFFAOYSA-N 16-methylheptadecyl 16-methylheptadecanoate Chemical compound CC(C)CCCCCCCCCCCCCCCOC(=O)CCCCCCCCCCCCCCC(C)C ABEXEQSGABRUHS-UHFFFAOYSA-N 0.000 description 1
- 241000764238 Isis Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000005417 image-selected in vivo spectroscopy Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012739 integrated shape imaging system Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
- H04L45/563—Software download or update
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/65—Re-configuration of fast packet switches
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开的实施例涉及一种协议状态转换和/或资源状态转换跟踪器,其被配置为在控制平面中的执行这种监视功能的主机处理器不可用或过载时,例如通过过滤器来监视某些协议状态转换/变化或主机硬件资源转换/变化。在一些实施例中,过滤器被主机处理器预先计算/计算并传输到协议状态转换和/或资源状态转换跟踪器。协议状态转换和/或资源状态转换跟踪器可以用于实现快速升级操作以及与控制平面相关组件的负载共享和/或负载平衡操作。
Description
相关申请的交叉引用
这是2020年1月21日提交的、题为“用于跟踪协议和硬件资源状态转换的方法和系统(Methods and Systems to Track Protocol and Hardware Resource StateTransitions)”、美国申请号为16/748,256的国际PCT专利申请,该专利申请通过引用以其整体并入本文。
技术领域
本公开的实施例涉及联网装备,尤其涉及跟踪和更新联网装备中的数据平面协议转换或硬件状态转换的硬件和软件架构和组件。
背景技术
现代联网设备(例如,交换机)被配置有数据平面(也被称为转发平面)、控制平面和管理平面。
数据或转发平面包括负责通过联网设备来转发分组的硬件和软件组件的合并,这些硬件和软件组件针对处理速度以及简洁性和规范性进行优化。数据平面依赖于路由和/或转发表,该表在数据平面的高速、通常定制的存储器中被维护。在大多数实现方式中,数据平面组件通常包括跨专用数据总线或交换结构的与专用集成电路(ASIC)和高速存储器接口的路由或网络处理器。
控制平面与数据平面一起工作并且主要负责填充和更新路由或转发表等。控制平面硬件组件通常针对可定制性、处理策略、处理异常进行优化,并且通常经由执行存储在本地存储器中的指令的(一个或多个)微处理器(通常称为主机处理器)来实现。
附图说明
通过参考以下描述并结合附图可以更好地理解本文的实施例,其中,相同的附图标记表示相同或功能相似的元件,其中:
图1A是根据说明性实施例的配置有协议状态转换和/或资源状态转换跟踪模块的示例性网络设备的图。
图1B是根据说明性实施例的配置有协议状态转换和/或资源状态转换跟踪模块的另一示例性网络设备的图。
图2A示出了根据说明性实施例的配置有协议状态转换和/或资源状态转换跟踪器模块的示例性网络设备。
图2B示出了根据另一说明性实施例的配置有协议状态转换和/或资源状态转换跟踪器模块的示例性网络设备。
图2C示出了根据另一说明性实施例的配置有协议状态转换和/或资源状态转换跟踪器模块的示例性网络设备。
图3示出了根据说明性实施例的配置有图2A、图2B或图2C的协议状态转换和/或资源状态转换跟踪器模块的示例性网络设备。
图4示出了根据说明性实施例的被配置为在软件升级操作期间执行对数据平面资源的更新的示例性网络设备(例如,相对于图3所述)。
图5A示出了根据说明性实施例的跟踪控制平面的协议状态和/或资源状态转换(例如,在控制平面的不可用、过载状态期间,或作为与主机CPU并行的正常操作过程)的示例性方法。
图5B示出了根据另一说明性实施例的跟踪控制平面的协议状态和/或资源状态转换(例如,在控制平面的不可用、过载状态期间,或作为与主机CPU并行的正常操作过程)的示例性方法。
图6示出了根据说明性实施例的在配置有示例性协议状态转换和/或资源状态转换跟踪器模块的网络设备中执行快速升级操作的方法的示例性时序图。
图7示出了根据说明性实施例的在配置有示例性协议状态转换和/或资源状态转换跟踪器模块的网络设备中执行快速升级操作的另一方法的示例性时序图。
图8示出了根据说明性实施例的在配置有示例性协议状态转换和/或资源状态转换跟踪器模块的网络设备中执行负载平衡和/或负载共享操作的方法的示例性时序图。
图9示出了根据说明性实施例的被配置为在协议状态转换和/或资源状态转换跟踪模块上执行的示例性协议状态转换过滤器以及与该过滤器的匹配实例相关联的对应动作序列。
图10示出了根据说明性实施例的被配置为在协议状态转换和/或资源状态转换跟踪模块上执行的示例性硬件资源状态转换过滤器以及与该过滤器的匹配实例相关联的对应动作序列。
图11示出了用于协议状态转换和/或资源状态转换跟踪器模块未被实现的交换网络设备的示例基线软件升级操作的时序图。
图12示出了根据说明性实施例的用于交换网络设备的示例快速软件升级操作的时序图,其中该网络设备配置有协议状态转换和/或资源状态转换跟踪器模块。
图13示出了根据另一说明性实施例的交换网络设备的另一示例快速软件升级操作的时序图,其中该网络设备配置有协议状态转换和/或资源状态转换跟踪器模块。
具体实施方式
概述
在独立权利要求中阐述了本公开的各方面,并且在从属权利要求中阐述了优选特征。一个方面的特征可以单独地或与其他方面结合地应用于任何方面。
在一个方面,本公开的实施例涉及一种协议状态转换和/或资源状态转换跟踪器,该协议状态转换和/或资源状态转换跟踪器被配置为在控制平面中的执行这种监视功能的主机处理器(本文也被称为“主机CPU”)不可用或过载时,例如通过过滤器来监视某些协议状态转换/变化或主机硬件资源转换/变化。在一些实施例中,过滤器在主机处理器不可用之前被主机处理器预先计算,并且当主机处理器不可用或过载时被传输到(例如,在数据平面组件中被执行的)协议状态转换和/或资源状态转换跟踪器。
随后,为给定的检测到的转换更新数据平面的适当的路由或转发表。在一些实施例中,示例性协议状态转换或资源状态转换跟踪器存储检测到的转换,以便稍后在主机处理器可用时被主机处理器更新。在其他实施例中,主机处理器将某些协议状态转换变化或主机硬件资源转换变化的跟踪和/或更新卸载到示例性协议状态转换或资源状态转换跟踪器,从而释放主机处理器的与此类协议状态转换变化或主机硬件资源转换变化相关的资源。
在一些实施例中,示例性协议状态转换和/或资源状态转换跟踪器用于在使主机处理器不可用的启动操作或软件升级操作期间监视某些协议状态转换变化或主机硬件资源变化。因此,示例性协议状态机或资源跟踪器可以充当主机处理器的代理服务器,以保持某些路由和转发表与网络的各种协议状态同步。因为为转发过程/应用创建数据平面资源(例如,MAC学习表、RIB表、ACL表等)的时间可能是大约几分钟,因此在主机处理器上执行的(一个或多个)操作系统或应用的升级和随后的主机处理器的启动以及此类数据平面资源的构建可能会在此时间段内中断网络操作。实际上,示例性协议状态转换和/或资源状态转换跟踪器可以促进交换网络设备的近-瞬时升级操作(例如,当与可用的快速升级技术协同操作时),同时提供比自身使用可用的快速升级技术更短的整体系统停机时间,以及在更新某些数据平面资源时通过充当主机处理器的代理服务器来提高系统资源利用率(例如,在负载共享操作或负载平衡操作中)和操作。如本文所用,“负载共享”是指将某些控制平面功能从主机处理器卸载到协议状态转换和/或资源状态转换跟踪器;因此,主机处理器上的负载被共享。并且,“负载平衡”是指协议状态转换和/或资源状态转换跟踪器在主机处理器过载时承担主机处理器的控制平面负载的一些部分。
关于快速升级,虽然升级可用于在主机CPU上执行的应用和操作系统,但由于网络中断,这种升级通常会推迟直到需要或计划进行更实质性的升级。为此,安全和错误修复可能会在给定的网络装备上持续更长时间。此外,在一些操作环境中,例如工厂自动化中的实时控制等,网络连接中断一分钟或更长时间可能导致整个操作线重置。将小升级期间的中断时间减少到几秒钟可以避免此类中断,因此可以增加执行升级的频率,从而提高整体系统的健康和安全性。
如本文所用,术语“数据平面处理器”(和“数据平面设备”)通常指作为数据平面的一部分在网络设备中参与分组的交换和/或路由的处理单元。数据平面处理器可以包括网络处理器(NPU)、路由处理器(RP)、交换ASIC(专用集成电路)、交换FPGA(现场可编程门阵列)、CPLD(复杂可编程逻辑器件)等。数据平面处理器是数据平面的一部分,该数据平面还包括可操作地耦合到数据平面处理器或者作为数据平面处理器的一部分的数据平面资源。数据平面资源的示例可以包括但不限于(一个或多个)MAC地址表、(一个或多个)FIB表、(一个或多个)RIB表、(一个或多个)ACL表以及任何其他表、寄存器内容、内容地址存储器(CAM)内容、三进制内容地址存储器(TCAM)内容、二进制内容可寻址存储器(BCAM)内容、以及被数据平面处理器维护或使用的存储器内容(例如,非持久性的、易失性的等)。
如本文所用,术语“主机处理器”可与术语“主机CPU”互换使用,并且通常是指例如具有RISC或CISC架构的微处理器或微控制器的核心,这些核心被配置为执行在网络设备中的操作系统的框架内的计算机指令。
在一个方面,提出了一种网络设备(例如,交换机),包括主机CPU,该主机CPU执行用于控制平面操作的指令,该控制平面操作管理和维护网络设备的交换结构的多个数据平面相关表(例如,L2 MAC表;MAC学习表;L3表;RIB、FIB等),这些指令在被主机CPU执行时,进一步计算多个过滤器以识别协议状态和/或资源状态转换;以及处理器单元或逻辑电路(即,非主机CPU组件,例如,NPU、RP、ASIC、交换FPGA的逻辑电路,或位于上述项中的核心,远程设备),这些处理器单元或逻辑电路被配置为接收被主机CPU计算的多个过滤器;以及通过多个过滤器来跟踪控制平面的协议状态和/或资源状态转换(例如,在控制平面的不可用、过载状态期间或作为与主机CPU并行的正常操作过程),其中跟踪的协议状态和/或资源被主机CPU或处理器单元或逻辑电路使用以更新多个数据平面相关表。
在一些实施例中,当主机CPU处于不可用或过载状态时,跟踪的协议状态和/或资源被处理器单元或逻辑电路使用,以更新数据平面。
在一些实施例中,当主机CPU从不可用或过载状态转换到可用状态时,跟踪的协议状态和/或资源被主机CPU使用,以更新检测到的协议状态和/或资源的数据平面。
在一些实施例中,跟踪的协议状态和/或资源被处理器单元或逻辑电路使用,以与主机CPU操作并行地更新数据平面。
在一些实施例中,网络设备包括数据平面设备(例如,NPU、交换ASIC),该数据平面设备使用所述多个数据平面相关表,以将在网络设备的网络端口处接收到的分组路由到网络设备的其他网络端口,其中处理器单元或逻辑电路被实现在数据平面设备中。
在一些实施例中,处理器单元或逻辑电路被实现在位于数据平面外部的远程设备中。
在一些实施例中,数据平面实现过滤器以在主机CPU的不可用状态期间监视接收到的分组中的特定协议状态转换和/或在主机CPU的不可用状态期间监视特定资源状态转换。
在一些实施例中,多个过滤器在主机CPU进入不可用或过载状态之前被主机CPU预先计算。
在一些实施例中,处理器单元或逻辑电路被实现在数据平面中的分组分类引擎、分组检查引擎、深度分组检查引擎、嵌入式微控制器和/或位于数据平面的组件内的ACLTCAM中。
在一些实施例中,处理器单元或逻辑电路执行用于一组协议的状态转换的多个过滤器。
在一些实施例中,多个过滤器包括第一过滤器,该第一过滤器被配置为识别LACPPDU(例如,LACP控制PDU),该LACP PDU指示出逻辑信道或信道内的一个或多个链路的协议状态或资源状态变化。
在一些实施例中,多个过滤器包括第二过滤器,该第二过滤器被配置为识别BPDU,该BPDU指示出生成树协议(例如,MSTP、RSTP)拓扑变化通知(TCN)消息。
在一些实施例中,多个过滤器包括第三过滤器,该第三过滤器被配置为识别对等网络设备(例如,LLDP/CDP DPU,和/或在BGP、OSPF、RIP、EIGRP和ISIS中的GIR相关消息)(例如,用于负载平衡或负载共享配置)的GIR(graceful insertion and removal,平滑插入和去除)操作。
在一些实施例中,主机CPU被配置为预先计算过滤器以在主机CPU的不可用状态期间监视接收到的分组中的特定协议或资源状态转换。
在一些实施例中,主机CPU被配置为预先计算更新后的数据平面条目以在过滤器被匹配时重新分配流量来更新数据平面。
在一些实施例中,处理器单元或逻辑电路被配置为:监视在接收到的控制分组中的特定的协议状态转换;以及当检测到特定的协议状态转换时,使用预先计算的数据平面条目来更新数据平面。
在一些实施例中,处理器单元或逻辑电路被配置为:识别接收到的LACP PDU(例如,LACP控制PDU),LACP PDU指示出对等网络设备的下行信道链路(例如,在参与者状态字段的地址1处的事件标志);以及更新与对等网络设备相关联的链路聚合信道被关闭的数据平面(例如,通过将状态值写入到与对等网络设备相关联的数据平面中的地址)。
在一些实施例中,处理器单元或逻辑电路被配置为:识别接收到的LACP PDU(例如,LACP控制PDU),LACP PDU指示出逻辑信道或信道内的一个或多个链路的状态变化;以及基于修改后的本地以太-信道(ether-channel)的预先计算的散列来更新与对等网络设备相关联的故障端口的禁用状态的数据平面,以基于一组活动链路在其他成员链路上重新分配流量。
在一些实施例中,处理器单元或逻辑电路被配置为:识别接收到的BPDU,该BPDU指示出生成树协议(例如,MSTP、RSTP)拓扑变化通知(TCN)消息;以及更新数据平面以将接收到TCN消息的端口移动到阻塞状态。
在另一方面,公开了一种方法,该方法包括:由主机CPU执行控制平面操作的步骤,该控制平面操作管理和维护网络设备的交换结构的多个数据平面相关表(例如,L2 MAC表;MAC学习表;L3表;RIB、FIB等);由主机CPU计算多个过滤器以识别与控制平面操作相关的协议状态和/或资源状态转换;由主机CPU向处理器单元或逻辑电路(即,非主机CPU组件,例如,NPU、RP、ASIC、交换FPGA的逻辑电路,或位于前述项中的核心,远程设备)发送多个被计算的过滤器;由处理器单元或逻辑电路接收多个被发送的过滤器;经由实现在数据平面组件或辅助处理单元中的多个接收到的过滤器来跟踪控制平面的协议状态和/或资源状态转换(例如,在控制平面的不可用、过载状态期间或作为与主机CPU并行的正常操作过程),其中由多个接收到的过滤器跟踪的跟踪协议状态和/或资源状态转换用于与更新相关的数据平面资源。
在另一方面,公开了一种非暂态计算机可读介质,其上存储有指令,其中,指令由包括处理器单元/逻辑电路的第一处理器执行以执行以下操作:从数据平面接口接收多个过滤器以识别与控制平面操作相关的协议状态和/或资源状态转换,其中,多个过滤器已被主机CPU或外部CPU预先计算,该主机CPU或外部CPU被配置为执行管理和维护网络设备的交换结构的多个数据平面相关表(例如,L2 MAC表;MAC学习表;L3表;RIB、FIB等)的控制平面操作;以及经由实现在数据平面组件或辅助处理单元中的多个接收到的过滤器来跟踪控制平面的协议状态和/或资源状态转换(例如,在控制平面的不可用、过载状态期间或作为与主机CPU并行的正常操作过程),其中,由主机CPU或处理器单元或逻辑电路基于跟踪的协议状态和/或资源来更新数据平面的多个数据平面相关表。
示例系统
图1A是根据说明性实施例的配置有协议状态转换和/或资源状态转换跟踪模块200(参见例如图2A、图2B、图2C)(也分别被称为协议状态机转换跟踪器和资源状态机转换跟踪器)的示例性网络设备100(如100a所示)的图。协议状态转换和/或资源状态转换跟踪模块200被配置为监视在网络设备的数据平面的路由和/或转发表中表示的协议状态的变化和/或网络设备的硬件资源状态的变化。
在图1A中,网络设备100a被配置为网络交换机并且示出为包括多个端口102,端口102通过总线结构106(示出为“交换结构”106)耦合到在路由或网络处理器104中实现的转发引擎。路由或网络处理器104可以用于执行路由协议,例如,通过维护路由信息和(一个或多个)转发表。路由或网络处理器104可以访问快速存储器108(例如,三进制内容可寻址存储器(TCAM)、CAM、SRAM、缓冲器等)和本地存储器110(例如,动态随机存取存储器(DRAM)、SRAM))。
路由或网络处理器104可以与主机处理器105(在本文中也被称为主机CPU并示出为“(一个或多个)主机处理器”105)通信。如上所述,主机CPU通常是指例如具有RISC或CISC架构的微处理器或微控制器的核心,这些核心被配置为执行在操作系统的框架内的通用计算机指令(即,应用、中间件)。此处,计算机指令通常是指通用指令,优选地,通用指令被准备为不特定地绑定到特定计算机架构。主机CPU 105具有总线互连132(例如,PCI或PCIe(PCI-express)总线),总线互连132用作到路由或网络处理器104和/或数据平面的其他组件的数据平面接口。PCIe可以指PCI-X、PCI-express 16x、PCI-express 1x等。其他总线互连的示例是AGP(加速图形端口)总线。在一些实施例中,主机CPU 105和路由/网络处理器104共同位于同一管理卡114上。在又一些实施例中,主机处理器105被用作路由或网络处理器104或其组件(例如,在片上网络(NoC)中)的替代物或与路由或网络处理器104或其组件集成在一起。总线互连132提供主机CPU 105和数据平面136之间的连接。
在图1A中,路由/网络处理器104被示出为通过交换结构106连接到内联卡112(示出为112a、112b、112c和112d)。交换结构可以体现为交叉交换机,其被配置为使多个串行信道端口接口互连以建立用于在交换机的线卡之间交换帧的点对点有线连接。
在图1A中,在一些实施例中,端口102被示出为位于多个内联卡112(示出为112a、112b、112c和112d)上,并且转发引擎(即,路由/网络处理器104)位于管理卡114上。每个内联卡112可以包括一个或多个ASIC 116、存储器和类似存储器的资源118(例如,CAM、寄存器、缓冲器和驱动器120)以将在内联卡112的一个端口处接收到的帧路由到另一个端口或者将帧路由到交换结构106以路由到网络交换机中的其他端口。可以实现其他配置和实现方式。如本文所用的“ASIC”可以指定制的专用集成电路以及诸如现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)之类的可配置的集成电路。
概括地说,当帧(也被称为分组)在线卡的端口102处被接收时,基于由位于线卡内的ASIC 116(或本地处理器)提供的转发决策,帧被通过线卡112的内部总线驱动到其他端口,或基于由转发引擎提供的转发决策,帧被通过交换结构106驱动到其他端口。这些帧被网络设备的数据平面(也被称为转发平面等)处理。在图1A中,数据平面136被示出为涉及用户流量的转发和路由的任何组件和相关资源。数据平面(例如,转发引擎)通过访问转发或路由表以查找帧的目的地MAC地址来提供转发决策。与控制平面(例如,那些相关的第2层和/或第3层控制协议,例如生成树协议(STP)、开放最短路径优先(OSPF)、多协议标签交换(MPLS)、互联网组管理协议(IGMP)、中间系统到中间系统(IS-IS)、边界网关协议(BGP)、PIM、增强型内部网关路由协议(EIGRP)、路由信息协议(RIP)、虚拟LAN(VLAN)、虚拟可扩展LAN(VxLAN)等)和管理平面(例如,与远程登陆协议(telnet)、命令行接口(CLI)、文件传输协议(FTP)、普通文件传输协议(TFTP)、系统日志(syslog)、安全外壳(SSH)、简单网络管理协议(SNMP)、超文本传输协议(HTTP)、HTTP安全(HTTPS)、访问控制列表(ACL)等相关联)相关联的帧也可以在端口处被接收,但通常被路由到ASIC或路由或网络处理器104以更新网络设备100(例如,100a、100b等)的控制和管理操作。
如图1A所示,网络设备100(例如,100a)可以包括附加卡122,附加卡122包括处理器124和存储器126以执行网络设备100(例如,100a)的其他控制或管理操作。在一些实施例中,附加卡122(以及管理卡114)可以在被实现在通用或专用计算设备环境、虚拟网络环境或配置中。附加卡122上的组件可以通过总线互连132或交换结构连接到其他组件。总线互连132还可以允许主机CPU 105通过主机CPU驱动器134连接到数据平面136。
可以使用被计算设备(例如,经由主机CPU)执行的计算机可执行指令,例如程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的进程、程序、对象、组件、数据结构等等。计算机可执行指令可以执行下面讨论的协议和/或资源状态转换跟踪器功能。
可以使用分布式计算环境,其中任务被通过通信网络或其他数据传输介质链接的远程处理设备执行。在分布式计算环境中,程序模块和其他数据可以位于包括存储器存储设备的本地和远程计算机存储介质两者中。
计算设备通常包括各种计算机可读介质。计算机可读介质可以是可被设备访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质两者。计算机可读介质可以用于存储用于下面讨论的协议和/或资源状态转换跟踪器功能的可执行指令。计算机存储介质包括以用于存储信息(例如,计算机可读指令、数据结构、程序模块、或其他数据)的任何方法或技术实现的易失性和非易失性以及可移动和不可移动介质。存储器、可移动存储装置和不可移动存储装置都是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、电可擦除编程只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能磁盘(DVD)或其他光存储装置、磁带、卡带、磁盘存储装置或其他磁性存储设备,或任何其他可以用于存储所需信息且可以被计算设备访问的介质。任何这样的计算机存储介质可以是计算设备的一部分。计算机可执行指令和计算机存储介质在本领域中是众所周知的,在此不再详细讨论。
计算设备可以包含允许该设备与其他设备进行通信的(一个或多个)通信连接。计算设备还可以具有(一个或多个)输入设备,例如键盘、鼠标、笔、语音输入设备、触摸输入设备等。还可以包括(一个或多个)输出设备,例如显示器、扬声器、打印机等。所有这些设备在本领域中是众所周知的,在此不再详细讨论。
即时协议状态转换和/或资源状态转换跟踪模块可以部署在各种网络设备中。图1B是根据说明性实施例的配置有协议状态转换和/或资源状态转换跟踪模块(例如,200)的另一网络设备100(示出为100b)的图。在图1B中,网络设备100b被配置为固定配置交换机。如图所示,交换组件(例如,116、118和120)、支持数据平面组件(例如,104、108、130)和控制平面组件(例如,105、110、134)被集成到一个或多个板中。由于支持数据平面组件的有限冗余,因此在这样的系统(例如,100b)中实现协议状态转换和/或资源状态转换跟踪模块可能对整个系统正常运行时间特别有益。
示例协议状态转换和/或资源状态转换跟踪器
图2A示出了根据说明性实施例的配置有协议状态转换和/或资源状态转换跟踪器模块200(示出为200a)的示例性网络设备100(示出为100c)。模块可以包括软件应用、固件、中间件、可配置硬件(IP)的预配置逻辑功能,或它们的组合。协议状态转换和/或资源状态转换跟踪器模块200可以在作为非主机CPU组件的处理器单元或逻辑电路(PULC)中实现,该非主机CPU组件包括例如网络处理单元(NPU)、路由处理器(RP)、ASIC、交换FPGA的逻辑电路或处理单元或位于前述项中的(一个或多个)处理核心,以及远程设备(例如,OpenFlow控制器)。
如图2A所示,控制平面(示出为主机处理器105)在协议状态转换和/或资源状态转换跟踪器模块200(示出为200a)中安装过滤规则204(示出为“过滤器/规则”204),当与过滤规则204一起操作时,该协议状态转换和/或资源状态转换跟踪器模块200被配置为针对过滤器204中定义的一组协议的某些控制平面状态转换消息(参见例如图6、图7、图8)进行匹配。过滤规则204具有一个或多个对应的动作指令或序列206(示出为“动作/规则”206),动作指令或序列206可以在过滤规则204中指定的过滤器匹配时被执行。动作指令/序列206可以安装在主机CPU、数据平面组件或辅助处理单元中,以在过滤器被匹配时执行相应的动作来更新数据平面。在一些实施例中,过滤规则204和/或对应的动作指令/序列206被主机处理器105预先计算。在一些实施例中,过滤规则204由主机处理器105预先计算,并且对应的动作指令/序列206随后在给定的过滤规则被匹配时被计算。在其他实施例中,过滤规则204和/或对应的动作指令/序列被远程控制器(例如,OpenFlow控制器(未示出;参见图3))计算并且被传输到网络设备100(例如,100a、100b、100c等)。
具体地,在一些实施例中,协议状态转换和/或资源状态转换跟踪器模块200(例如,200a、200b、200c)被配置为扫描协议控制平面消息中的一组字段,例如,以更新协议状态。在一些实施例中,跟踪器模块200(例如,200a、200b、200c)的协议状态转换方面被配置为扫描字段中的特定值,并在针对感兴趣的字段中的特定值的匹配被发现时进行标记。过滤逻辑可以单独实现在各种硬件块中或通过各种硬件块来实现,例如在ACL TCAM、分组分类引擎、深度分组检查引擎、分组解析器等中。
例如,对于接收到协议分组的某些硬件资源状态转换,过滤逻辑可以单独实现在各种硬件块中或通过各种硬件块来实现,例如在ACL TCAM、分组分类引擎、深度分组检查引擎、分组解析器等中。然而,对于某些没有相关联的数据分组/帧的硬件资源状态转换,嵌入式微控制器或其他逻辑电路可以用于实现协议状态转换和/或资源状态转换跟踪器模块200(例如,200a、200b、200c)的一部分以跟踪这样的硬件资源状态转换。
在一些实施例中,除了特定的协议消息之外,协议状态转换和/或资源状态转换跟踪器模块200还被配置为跟踪可能影响转发拓扑(例如,链路断开)的其他事件。在一些实施例中,当与过滤规则一起操作时,模块200的资源状态转换跟踪器方面被配置为针对过滤器中定义的一组硬件资源的某些资源状态转换信号或消息(未示出;参见图10)进行匹配。
实际上,一旦过滤规则204被配置在协议状态转换和/或资源状态转换跟踪器模块200(例如,200a、200b、200c)中,模块200就可以基于规则来跟踪/标记在数据平面组件无头(headless)运行(例如,没有主机CPU 105)时可能影响转发拓扑的事件和/或状态转换(例如,协议状态转换或资源状态转换)。跟踪的状态(一旦被识别和/或匹配)用于更新数据平面(例如,关闭邻接、阻塞端口、更新转发/路由表等)以最小化对网络的负面影响,并且在一些实施例中,当主机CPU不可用时允许网络设备保持运行。在控制平面完全或部分起作用之后,可以随后执行更精细的控制平面动作,例如重新协商、重新收敛等。在一些实施例中,在控制平面(例如,主机CPU)不可用(或过载)时,例如由协议状态转换和/或资源状态转换跟踪器模块200或与协议状态转换和/或资源状态转换跟踪器模块200一起操作的模块(例如,更新模块或辅助处理单元)使用跟踪的状态(一旦被识别和/或匹配)来更新数据平面。在其他实施例中,在控制平面(例如,在主机CPU的主要或辅助线程中)从不可用(或过载)状态转换到可用状态之后,由控制平面使用跟踪的状态来更新数据平面。
协议状态转换和/或资源状态转换跟踪模块200(例如,200a、200b、200c)可以部分或全部被实现在数据平面相关组件或外部设备组件中,数据平面相关组件或外部设备组件可以被配置和重新配置为实现过滤器(例如,该过滤器可以针对所需的值(规则)来匹配一组分组头部字段)。数据平面相关组件或外部设备组件可以是完全基于硬件的过滤(例如,可重新配置的逻辑和/或表),完全基于软件的过滤,或基于硬件和基于软件的过滤两者的组合。数据平面相关组件或外部设备组件的示例包括但不限于被全部或部分配置为分组分类引擎、深度分组检查引擎、分组解析器、ACL TCAM等的硬件或软件模块。在一些实施例中,协议状态转换和/或资源状态转换跟踪操作被实现在多个模块中。
协议状态转换和/或资源状态转换跟踪模块200(例如,200a、200b、200c)优选地被配置为独立于主机CPU操作。在一些实施例中,协议状态转换和/或资源状态转换跟踪模块被配置为在主机CPU不可用或过载时执行过滤器。在其他实施例中,例如,在协议状态转换和/或资源状态转换跟踪模块用于负载共享操作的情况下,协议状态转换和/或资源状态转换跟踪模块被配置为与主机CPU一起操作的协处理器或辅助处理单元等(例如,在控制平面中或在远程组件中)。
如图2A所示,在一些实施例中,网络设备100(例如,100c)被配置为与协议状态更新器208(示出为208a)一起操作,该协议状态更新器208在控制平面(例如,主机CPU 105)不可用时使用动作指令/序列206来执行对数据平面(示出为数据平面转发/路由表210)的更新。协议状态更新器208(例如,208a)可以是协议状态转换和/或资源状态转换跟踪模块200的一部分。在其他实施例中,协议状态更新器208(例如,208a)被实现在数据平面的其他组件中。协议状态更新器208(例如,208a)可以从被协议状态转换和/或资源状态转换跟踪模块200(例如,200a)维护和/或填充的表或数据库212(示出为“跟踪的转换”212a)中检索跟踪的状态转换。在其他实施例中,协议状态更新器208(例如,208a)从协议状态转换和/或资源状态转换跟踪器模块200接收与匹配的过滤器204相关联的跟踪的状态转换。
在一些实施例中,协议状态转换和/或资源状态转换跟踪模块200(例如,200a、200b、200c)被配置为执行用于协议状态转换的过滤规则和/或用于资源状态转换的过滤规则并在每次匹配时更新命中计数器。在一些实施例中,协议状态转换和/或资源状态转换跟踪模块200(例如,200a、200b、200c)被配置为更新命中标记(而不是命中计数器),该命中标记指示出给定过滤器的匹配。命中计数器或命中标记具有表或数据库212中的相关地址,例如协议状态更新器208(例如,208a、208c)可以扫描到该地址以采取动作。在一些实施例中,可以为用于一组过滤器的命中标记或命中计数器分配一组地址,过滤器(例如,TCAM和相关的逻辑)可以更新到该地址。为此,协议状态更新器208(例如,208a、208c)可以扫描表或数据库212中的一组值以识别是否存在更新器208(例如,208a、208c)可以进行的更新。当然,其他数据格式和信息可以存储为命中计数器或命中标记,或作为命中计数器或命中标记的补充。例如,在一些实施例中,命中计数器或命中标记可以连同针对对应的动作指令或序列的地址一起被更新。在一些实施例中,命中计数器或命中标记可以连同与给定过滤器相关联的优先级信息一起被更新。
在其他实施例中,协议状态转换和/或资源状态转换跟踪模块200被配置为执行用于协议状态转换的过滤规则和/或用于资源状态转换的过滤规则,并将匹配事件发送到协议状态更新器208的队列。然后,协议状态更新器208(例如,208a、208c)可以基于其队列中的匹配事件信息来对给定的匹配过滤器采取相关联的动作。
预先计算的过滤器(例如,204)可以被计算并被存储在例如数据平面组件的易失性或非易失性存储器中。例如,在主机CPU中的线程用于执行对数据平面资源的更新的实施例中,对应的动作指令/序列(例如,206)可以被存储在非易失性存储器中。在一些实施例中,动作指令/序列(例如,206)可以被存储在易失性存储器中,其中指令(例如,206)在数据平面组件或辅助处理单元上执行。
图2B示出了根据另一说明性实施例的配置有协议状态转换和/或资源状态转换跟踪器模块200(示出为200b)的示例性网络设备100(示出为100d)。在图2B中,用于协议转换状态和/或资源转换状态的过滤器204例如由主机CPU 105计算,并安装到例如关于图2B所讨论的协议状态转换和/或资源状态转换跟踪器模块200(例如,200b),并且协议状态转换和/或资源状态转换跟踪器模块200b被配置为执行过滤器以跟踪/标记在数据平面组件无头运行(例如,没有主机CPU 105)时可能影响转发拓扑的事件和/或状态转换(例如,协议状态转换或资源状态转换)并且存储跟踪的转换。由主机CPU 105计算给定过滤器204的对应的动作指令/序列206可以例如与过滤器204的计算同时进行。
在图2B中,协议状态转换和/或资源状态转换跟踪器模块200(例如,200b)被配置为匹配状态转换(例如,将分组头部字段的集合中的值匹配到预定义的过滤器规则),并且将任何确定的匹配存储在表或数据库212(示出为跟踪的转换212b)中。在一些实施例中,表或数据库212(例如,212b)是执行协议状态转换和/或资源状态转换跟踪器模块200的组件的一部分。例如,一旦主机CPU 105可用,表或数据库212(例如,212b)然后就可以被主机CPU105访问,以使用与给定的匹配过滤器相对应的适当的动作指令/序列206来执行对数据平面转发/路由表210的状态转换的更新。
图2C示出了根据另一说明性实施例的配置有协议状态转换和/或资源状态转换跟踪器模块200(示出为200c)的示例性网络设备100(示出为100e)。在图2C中,用于协议转换状态和/或资源转换状态的过滤器204例如由主机CPU 105计算,并安装到例如关于图2C所讨论的协议状态转换和/或资源状态转换跟踪器模块(例如,200c),并且协议状态转换和/或资源状态转换跟踪器模块(例如,200c)被配置为执行过滤器以跟踪/标记在数据平面组件无头运行(例如,没有主机CPU 105)时可能影响转发拓扑的事件和/或状态转换(例如,协议状态转换或资源状态转换)并且存储跟踪的转换。用于给定过滤器204的对应的动作指令/序列206可以例如由主机CPU 105来计算(与过滤器的计算同时进行),并且被安装到协议状态更新器(例如,208c)中。然后,协议状态转换和/或资源状态转换跟踪器模块(例如,200c)被配置为匹配状态转换(例如,将分组头部字段的集合中的值匹配到预定义的过滤器规则),并且将匹配/确定的状态转换(作为信号或消息)推送到协议状态更新器208(示出为208c)中。在一些实施例中,将匹配/确定的状态转换推送到协议状态更新器208(例如,208c)的队列中。匹配/确定的状态转换至少包括与过滤器相对应的过滤器标识符,对应的动作指令可以被识别和检索到该过滤器。然后,协议状态更新器208(例如,208c)根据给定的匹配过滤器的动作指令/序列206,来执行对数据平面转发/路由表210的状态转换的更新。
在一些实施例中,当主机CPU 105和/或控制平面不可用时,协议状态更新器208(例如,208c)执行更新。在其他实施例中,协议状态更新器208(例如,208c)被配置为与在主机CPU 105上执行控制平面操作并行地执行更新。
使用示例协议状态转换和/或资源状态转换跟踪器的快速升级应用
图3示出了根据说明性实施例的配置有图2A、图2B或图2C的协议状态转换和/或资源状态转换跟踪器模块200的示例性网络设备100(示出为300)。
在图3中,网络设备300包括协议状态转换和/或资源状态转换跟踪器模块200(示出为200d),该协议状态转换和/或资源状态转换跟踪器模块200被配置为与快速升级应用302一起操作,以便于在主机CPU不可用于快速升级操作(本文中也被称为快速软件升级(FSU)操作)时对协议状态或资源状态转换进行跟踪。协议状态转换和/或资源状态转换跟踪器模块200d的一个或多个实例可以被实现或实例化。
在软件升级操作期间,控制平面可以被禁用(用于升级),并且可以允许数据平面无头运行。由于升级过程的执行可能需要几分钟(约5分钟),因此数据平面可能以其中协议和资源状态变化在升级的持续时间期间不起作用的陈旧的转发拓扑来运行。根据条件的变化,可能会出现网络和/或安全问题(例如,生成树循环导致泛滥的流量风暴),因此软件升级操作经常在整个网络设备离线的情况下被执行。在一些实施例中,例如,在网络设备用于控制和自动化的情况下和/或在网络设备不具有冗余(例如,备用模块)的情况下,这可能会对给定的实时控制操作产生巨大的干扰。
传统上,交换和路由系统通常通过实现某种形式的冗余,例如,使用备份模块,来实现软件升级操作。例如,当先前活动的模块(例如,主机CPU)经历升级时,路由处理器可以切换到活动的角色,反之亦然。这种拓扑通常被称为服务中软件升级(In-ServiceSoftware Upgrade,ISSU)。对于缺少此类备份模块(通常部署在访问应用中)的非冗余、独立的交换系统(例如,如图1B以及图1A所示,其中未安装备用模块),软件升级过程在系统中只有一个主机CPU的情况下可能是干涉性的。
即时协议状态转换和/或资源状态转换跟踪器模块200(例如,200a-200e)有助于跟踪可以防止在升级的持续时间期间导致系统停机的条件变化。实际上,协议状态转换和/或资源状态转换跟踪器模块200(例如,200a-200e)可以与快速软件升级(FSU)应用结合使用以提供连续的数据平面更新服务,或当主机CPU不可用时跟踪协议状态变化或硬件资源变化以最小化对网络设备的数据转发服务的影响。在一些实施例中,即时协议状态转换和/或资源状态转换跟踪器模块200(例如,200a-200e)可以为网络设备提供具有最小中断(例如,小于一秒,通常为毫秒级的中断)的近乎连续的操作,以提高网络设备的整体正常运行时间。即时网络可以通过将数据平面和控制平面解耦并且实质上让数据平面独立于主机CPU/控制平面而继续运行(在本文中被称为并且通常被描述为“无头”)来做到这一点。在无头操作期间,数据平面通常以旧的转发状态(例如,MAC地址、IP路由)信息来运行,但是具有被即时协议状态转换和/或资源状态转换跟踪器模块200(例如,200a-200e)跟踪的更新。在一些实施例中,主机CPU(例如,105)可以被关闭(即,被禁用和/或不可用)、重新加载,以及使用新版本的软件升级来升级。
快速升级操作可以与(例如,如IEFT RFC 5187中描述的)平滑重启机制一起操作,该平滑重启机制旨在通过提前通知其对等方来减少软件升级的影响。平滑重启机制可以缓解针对第3层协议及其对应的状态机的快速升级问题。在与快速升级操作一起使用时,网络设备可以额外解决第2层更新,以防止或减少将分组转发到不正确的目的地、创建网络环路、延迟其他系统中的网络收敛和/或安全漏洞。
在一些实施例中,网络设备(例如,100)被配置为非冗余、固定配置的交换系统。在一些实施例中,网络设备(例如,100)被配置为冗余、固定配置的交换系统。在一些实施例中,网络设备(例如,100)被配置为非冗余、模块化交换系统。在一些实施例中,网络设备(例如,100)被配置为冗余、模块化配置的交换系统。在其他实施例中,网络设备可以是路由器或其他网络系统(例如,具有固定或模块化配置和/或具有冗余或非冗余数据平面支持组件)。
图5A示出了根据说明性实施例的跟踪控制平面的协议状态和/或资源状态转换(例如,在控制平面的不可用、过载状态期间,或作为与主机CPU并行的正常操作过程)的示例性方法。图5B示出了根据另一说明性实施例的跟踪控制平面的协议状态和/或资源状态转换(例如,在控制平面的不可用、过载状态期间,或作为与主机CPU并行的正常操作过程)的示例性方法。参考图5A或图5B(以及图3),当软件升级操作被启动时,控制平面确定(步骤502)一组过滤规则并在协议状态转换和/或资源状态转换跟踪器模块200d(例如,在数据平面中)中安装(步骤504)过滤规则。在一些实施例中,过滤规则可以从提供与远程控制器306(示出为“OpenFlow控制器”306a)的通信的网络接口获得或接收。在一些实施例中,控制平面确定(图5B的步骤502b)一组对应的动作指令/序列与过滤规则的计算同时进行。在其他实施例中(例如,图5B),一旦过滤器已经被安装和匹配,控制平面就确定对应的动作指令/序列。动作指令/序列可以存储在软件中,例如存储在非易失性存储器中以供主机CPU 105执行,或者存储在例如执行协议状态更新器(例如,208a、208c)的数据平面组件中。
在一些实施例中,过滤器204(例如,204a-204d)提供用于一组协议(例如,在本文中描述的那些协议)的状态转换消息的匹配。在一些实施例中,例如,当协议的状态更新通过该协议的消息中的一组字段来传送时,协议状态转换和/或资源状态转换跟踪器模块(例如,200d)被配置为在识别到匹配时寻找(步骤506),例如扫描,字段中的特定值和标记。即,扫描在接收到的协议消息的字段和标记中的值可以在分组检查引擎或TCAM块中自动地执行。
除了特定的协议消息之外,协议状态转换和/或资源状态转换跟踪器模块200还可以跟踪可能影响转发拓扑(例如,链路断开)的其他事件。过滤逻辑可以通过各种硬件块(例如,ACL TCAM)来实现。任何所需的资源在系统启动时被保留。
一旦规则被配置在协议状态转换和/或资源状态转换跟踪器模块200d(例如,在数据平面中)中,在系统(数据平面)无头运行时可能影响转发拓扑的事件就被标记。然后使用跟踪的信息对数据平面执行必要的更新(步骤508)(例如,关闭邻接、阻塞端口等)以最小化对网络的负面影响。在控制平面完全起作用之后,可以执行更精细的动作,例如重新协商、重新收敛等。
在软件升级过程期间,协议状态转换和/或资源状态转换跟踪器模块200d可以监视(例如,步骤506)可能影响转发拓扑的事件,并且在一些实施例中,应用控制平面相关的校正和/或更新(例如,步骤508)作为此类事件的结果。在一些实施例中,根据步骤508,协议状态转换和/或资源状态转换跟踪器模块200d可以执行交错数据平面更新,该交错数据平面更新可以在系统恢复时作为在主机CPU上运行的简单过程来执行(参见例如图12)。此外,协议状态转换和/或资源状态转换跟踪器模块200d可以实现在可用计算资源中,例如在数据平面中以促进更频繁的更新。可用资源的示例包括数据平面本身中的微控制器,例如,开关设备硬件中的某些ASIC上的微处理器核心。
如图3所示,协议状态转换和/或资源状态转换跟踪器模块(例如,200d)示出为耦合到数据平面接口304(例如,总线互连132),该数据平面接口304与执行快速升级应用302的主机CPU 105接口。主机CPU 105还执行管理和维护多个数据平面相关表(例如,L2 MAC表;MAC学习表;L3表;RIB、FIB等)的控制平面操作,这些表在图3中示出为网络设备100(例如,100a-100e)的资源210a-210d。快速升级操作302(例如,FSU)向主机CPU 105提供指令以预先计算过滤器204以将过滤器204安装在协议状态转换和/或资源状态转换跟踪器模块200d上(示出为“过滤器1”204a、“过滤器2”204b、“过滤器3”204c和“过滤器n”204d)。在协议状态转换和/或资源状态转换跟踪器模块(例如,200d)上执行的过滤器(例如,204a-204d)有助于在快速软件升级操作(例如,FSU)期间主机CPU 105不可用时跟踪协议状态转换和/或资源状态转换。
图4示出了根据说明性实施例的被配置为在软件升级操作期间执行对数据平面资源的更新的示例性网络设备100(示出为400)(例如,相对于图3所述)。在图4中,协议状态转换和/或资源状态转换跟踪器模块200(示出为“过滤器/分类引擎”200e)被配置为扫描接收到的协议控制平面消息中的字段的集合。过滤器204a-204d可以由(例如执行快速升级应用302(示出为“协议状态和/或硬件状态跟踪应用”)402的)主机CPU 105来生成并通过数据平面接口(示出为“写入过滤器”408)安装在过滤器/分类引擎200e中。数据平面接口304可以是通过转发应用和/或引擎404来提供对数据平面设备(例如,NPU、交换ASIC)和数据平面资源的访问的数据平面访问驱动器。在匹配时,协议状态转换和/或资源状态转换跟踪器模块200e在一些实施例中被配置为将匹配事件(410),例如作为命中计数器或命中标记,存储到表或数据库212(示出为212c)。随后,表或数据库(例如,212c)可以被例如由(执行与协议状态和/或硬件状态跟踪应用402相关联的指令的)主机CPU 105(示出为转发应用404)执行的控制平面来访问。转发应用404被配置为通过数据平面接口304对这样的资源(示出为“写入资源”410和“读取资源”412)执行读取和写入操作来管理和维护网络设备100(例如,400)的交换结构的多个数据平面相关表(例如,L2 MAC表;MAC学习表;L3表;RIB、FIB等)。
在其他实施例中,协议状态转换和/或资源状态转换跟踪器模块200e被配置为在确定匹配事件(例如,接收到的协议控制平面消息中的(一个或多个)匹配字段)时将命令(414)发送到更新代理406(例如,208a、208c),该更新代理406被配置为执行对目标路由或转发资源(示出为210a、210b、210c和/或210d)的更新。更新代理406可以包括一个队列(例如,FIFO),命令根据其被接收的顺序被处理到该队列。在一些实施例中,命令可以包括来自多个过滤器的匹配过滤器的标识符,对应的动作序列/指令可以被识别和/或检索到这些匹配过滤器。在图4中,更新代理406被配置为使用在与匹配过滤器相对应的动作指令中识别的数据平面资源的地址来写入(416)适当的数据平面资源210。
快速升级操作的示例操作方法
图6示出了根据说明性实施例的在配置有示例性协议状态转换和/或资源状态转换跟踪器模块200(示出为“转换状态跟踪器”602a)的网络设备中执行快速升级操作的方法的示例性时序图600。在图6中,在快速升级操作(例如,FSU)之前,在网络设备(例如,100)的端口102(示出为“(一个或多个)端口”102a)处接收到的数据平面和控制平面相关分组(示出为数据相关分组603a和控制平面相关分组603b)通过交换设备硬件和/或交换结构(示出为“ASIC/交换结构”604)(例如,对应于106、112、116等)被路由到该设备的适当端口(也示出为102a)。如图6所示,数据分组603a通过ASIC/交换结构(604)交换(序列606),ASIC/交换结构(604)可以访问(一个或多个)路由/转发表210a,并且控制平面相关分组603b(在序列614a中)指向(608)被主机CPU 105(示出为“主机CPU(转发应用)”105a))部分执行的控制平面,该主机CPU 105解析(610)控制平面相关分组603b以更新(612)适当的确定变化的(一个或多个)路由/转发表210a。
参考图6,在从快速升级应用302(示出为“状态跟踪应用”302a)接收到启动快速升级操作的命令(616)时,状态跟踪应用302a在一些实施例中被配置为向ASIC/交换结构(604)发送通知消息618,该通知消息618引导ASIC/交换结构(604)将随后接收到的控制平面相关分组(例如,630)中继到协议状态转换和/或资源状态转换跟踪器模块200(示出为“转换状态跟踪器”602a),例如,除了将其中继到数据平面接口304之外。状态跟踪应用302a还引导主机CPU 105a计算(620)一组过滤器204,然后过滤器204被安装(示出为622a和622b)到转换状态跟踪器602a上。过滤器204的示例在图9和图10中提供,这随后在本文中讨论。在一些实施例中,在步骤620中连同过滤器204的计算还计算对应的动作指令/序列206。
仍然参考图6,在转换状态跟踪器602a被配置有过滤器组204时,主机CPU和转发应用105a随后被禁用并且因此不可用于(示出为624)控制平面更新。
如图6所示,在转发应用105a的不可用时段(624)期间,数据分组626通过ASIC/交换结构(604)被交换(序列628),ASIC/交换结构(604)实质上相对于转发应用105a“无头”。然而,控制平面相关分组630(在序列632中)指向(634)转换状态跟踪器602a,该转换状态跟踪器602a例如使用在过滤器204中提供的(一个或多个)地址和(一个或多个)值来扫描(636)分组630的头部。在确定与过滤器匹配时,在一些实施例中,如图6所示,转换状态跟踪器602a被配置为使用与匹配的过滤器相对应的适当的动作指令/序列206,将更新引导(638)(例如,更新器(例如,208a、208c))到确定的变化的适当的(一个或多个)路由/转发表210a。随后,当网络设备600在没有主机CPU和/或转发应用105a的情况下无头运行时,可以基于更新后的控制平面协议状态信息(例如,在630中)来路由(在序列641中示出)随后接收到的(640)依赖于(一个或多个)路由/转发表210a的该部分的数据分组。
仍然参考图6,随后(在时段642中示出),一旦主机CPU和/或转发应用105a变得可用,状态跟踪应用302a就向转换状态跟踪器602a和ASIC/交换结构604发送(一个或多个)通知/命令(分别示出为644a和644b),以通知它们转发应用105a已经从不可用状态转换到可用状态。在一些实施例中,转换状态跟踪器602a被配置为禁用过滤/分类操作。在一些实施例中,转换状态跟踪器602a卸载过滤器204。在一些实施例中,转换状态跟踪器602a是未实例化的,并且与其相关联的硬件/软件资源被释放/变得可用。
随着转发应用105a现在可用,随后接收到的控制平面相关分组603c(在序列614b中)指向(646a)控制平面(105a),该控制平面(105a)解析(646b)控制平面相关分组以更新(646c)适当的确定变化的(一个或多个)路由/转发表210a。
图7示出了根据说明性实施例的在配置有示例性协议状态转换和/或资源状态转换跟踪器模块200(也示出为“转换状态跟踪器”702a)的网络设备中执行快速升级操作的另一方法的示例性时序图700。图7示出了相对于图6所述的类似操作(例如,606、614a、612、618等)。
然而,图7示出了被配置为将跟踪的协议状态转换(和/或硬件资源状态转换)存储(706)在表或数据库704中的转换状态跟踪器702a,而不是对数据平面资源执行更新的转换状态跟踪器702a。随后,一旦主机CPU 105a变得可用,主机CPU 105a可以访问(708)和更新(710)从数据库到适当数据平面资源的跟踪的协议状态转换(和/或硬件资源状态转换)。此类操作的示例相对于图12进行描述。另外,可以使用相对于图9和图10所述的过滤器的示例。在一些实施例中,主机CPU 105a可以使用过滤器204来计算对应的动作指令/序列206并将计算出的动作指令/序列存储在永久存储器中以供后续使用。在其他实施例中,主机CPU105a被配置为计算过滤器204并且仅针对升级后的给定匹配过滤器来执行对适当动作指令/序列206的计算(在图7中示出为642a)。
图11、图12和图13示出了根据说明性实施例的为某些类别的交换网络设备执行快速软件升级的操作1100、1200、1300的示例性方法。
具体地,图11示出了用于协议状态转换和/或资源状态转换跟踪器模块未被实现的交换网络设备的示例基线软件升级操作(1100)的时序图。图12和图13各自示出了根据说明性实施例的用于交换网络设备的类似于图11的示例快速软件升级操作(1200)的时序图,但是在图12和图13中,该网络设备被配置有协议状态转换和/或资源状态转换跟踪器模块。在图12中,协议状态转换和/或资源状态转换跟踪器模块200被配置用于与主机CPU中的辅助线程进行交错跟踪操作,其中协议状态转换和/或资源状态转换跟踪器模块200被实现在数据平面组件中,以在主机CPU的主线程不可用时监视协议状态转换,并在主线程不可用时将跟踪的转换提供给辅助线程以更新数据平面资源。可以对硬件资源转换执行类似的操作。此外,一旦主线程变得可用时,在主机CPU上执行操作系统的主线程可以执行对数据平面资源的更新。
在图13中,协议状态转换和/或资源状态转换跟踪器模块200被配置为在主机CPU不可用时监视协议和/或硬件资源状态转换,并在主机CPU不可用时将跟踪的转换提供给辅助处理单元(例如,片上系统)以更新数据平面资源。实际上,协议状态转换和/或资源状态转换跟踪器模块200可以在控制平面被禁用(即,以及数据平面无头操作)时跟踪状态变化,可以对控制平面执行一些更新机制。
基线快速软件升级
如上所述,图11示出了用于协议状态转换和/或资源状态转换跟踪器模块未被实现的交换网络设备的示例基线软件升级操作(1100)的时序图。在图11中,过程1100示出为从ASIC在正常操作中主动转发分组(1102)开始。在接收到例如用于快速升级的快速重新加载命令(示出为“快速重新加载”1104)时,软件升级操作1100启动。首先禁用对等相关操作(1106),例如,通过启动的平滑重启操作。平滑重启包含给定网络设备向对等节点发送消息,以通知该对等节点的相邻邻居和该对等节点网络设备正在进入维护/重启模式。在平滑重启期间,重启设备及其邻居可以继续转发分组而不会中断网络性能。
一旦准备就绪,升级设备的控制平面就被禁用(1108),因为作为协议状态转换或硬件状态转换结果的对数据平面的更新未被处理,并且在加载新的内核的情况下主机CPU被重启(1110)。如图11所示,控制平面完全或部分禁用一段时间(1112),因为在此时段期间控制平面不能处理任何控制平面流量,并且系统不知道链路状态或协议状态变化。在软件升级期间,主机CPU以不同的和新的内核/系统映像启动。一旦内核被加载,操作系统就被启动(1114)。在由思科技术公司(加利福尼亚州圣何塞)制造的网络设备中,操作系统可以包括Polaris、IOS XE、IOS XR和IOS Classic(在图11中示出为“ISO/POLARIS”)。其他操作系统可以以类似的方式重启。在操作系统启动之后,转发应用连同由操作系统执行的各种辅助服务被初始化(示出为1118到1120)。在一些实施例中,执行缓存和刷新操作以创建数据平面资源影子。缓存和刷新操作的示例在2019年8月15日提交的、题为“动态硬件资源影子(Dynamic Hardware Resource Shadowing)”、申请号16/542,183的美国专利申请中进行了描述,该专利申请通过引用并入本文。在一些实施例中,缓存和刷新操作调用一个或多个资源影子操作,这些资源影子操作实例化创建数据平面资源(例如,MAC表、FIB表、RIB表、ACL表)的影子副本的实例的影子服务代理,其中数据平面资源可以用于一旦控制平面转发应用被重新初始化后恢复控制平面转发应用。在一些实施例中,缓存和刷新操作中的缓存操作的执行(例如,从1116到1122)可能需要几分钟,而刷新操作(例如,在1122处开始)的执行只需要几秒钟。随后,主机CPU核心操作被重启(1124)(示出为“数据平面到控制平面路径已恢复”1124),并且用信号通知转发应用(1126)以继续(示出为“CPU绑定流量重启”1126)。
在一些实施例中,尽管未示出(例如,在不使用缓存和刷新操作的情况下),但是控制平面在被初始化时被配置为计算和重新填充(一个或多个)MAC表、(一个或多个)FIB表、(一个或多个)RIB表、(一个或多个)ACL表等。这样的过程可能需要几分钟。
使用交错跟踪操作的快速软件升级
如上所述,图12示出了用于快速软件升级操作(1200)的时序图,其中协议状态转换和/或资源状态转换跟踪器模块200被配置用于与在主机CPU上执行的辅助线程进行交错跟踪操作,其中协议状态转换和/或资源状态转换跟踪器模块200被实现在数据平面组件中,以在主机CPU上执行操作系统的主线程不可用时监视协议状态转换,并在一旦主机CPU的主线程不可用时就将跟踪的转换提供给主机CPU的辅助线程以更新数据平面资源。
如图12所示,过程1200示出为从ASIC在正常操作中主动转发分组(1102)(如图11所示)开始。当主机CPU用新的内核重启(1110)时,执行平滑操作1106并禁用(1108)由主机CPU 105对控制平面的更新。然而,图12示出了数据平面组件正在跟踪控制平面流量(示出为“DP跟踪SM更新”1210)的时段,而不是控制平面流量不能被跟踪的时段1112。为了促进这样的操作,在图12中,主机CPU 105被示出为在数据平面组件中执行的协议状态转换和/或资源状态转换跟踪器模块200中计算和安装过滤器204(示出为“配置数据平面以跟踪拓扑影响事件”1202)。用于计算和安装过滤器204的示例方法相对于图2A、图2B、图2C、图3、图4、图5A、图5B、图6、图7和图8来描述。如上所述,在一些实施例中,协议状态转换和/或资源状态转换跟踪模块200安装有过滤器并且在诸如TCAM、ACL、DPI引擎等之类的数据平面资源/组件中执行。为此,当在主机CPU上执行的操作系统正在启动并且不可用时,协议状态转换和/或资源状态转换跟踪器模块200可以在时段1210期间跟踪控制平面流量。
图12示出了在执行需要花费较长时间启动的操作系统的主线程正在启动的同时在主机CPU 105中执行的辅助线程。在图12中,当新的内核被加载时,作为与主线程分离的独立线程的辅助线程(或一组线程)也在主机CPU 105中执行。主线程和辅助线程两者的初始化被示出为“IOS/Polaris启动”1212。在一些实施例中,当辅助线程被执行时,数据平面驱动器的最小集合在1118期间被加载。为此,在数据平面组件中执行的协议状态转换和/或资源状态转换跟踪器模块200可以跟踪主机CPU及其相关联的控制平面操作何时不可操作的全部时间,同时可以(在完全操作系统操作之前)恢复最小控制平面操作以便以交错方式来服务在操作系统的主线程完全恢复之前的此类时段期间由协议状态转换和/或资源状态转换跟踪器模块200识别的状态转换更新。
在图12中,状态转换示出为在时间1204a、1204b、1204c和1204d被协议状态转换和/或资源状态转换跟踪器模块200识别。然而,一旦执行更新器的辅助线程在1118处被执行,就可以在1204b、1204c和1204d处执行对数据平面的实际更新。
实际上,当主机CPU 105的主线程不可用于执行这种跟踪时,交错跟踪方法有助于通过数据平面组件来跟踪协议状态转换。在图12的示例中,主机CPU 105在辅助线程中执行更新。如本文讨论的,当主机CPU可用或不可用时,可以使用其他机制来执行更新。例如,当操作系统完全恢复时,由协议状态转换和/或资源状态转换跟踪器模块200识别的状态转换更新可以被主线程(而不是辅助线程)更新。另外,在一些实施例中,由协议状态转换和/或资源状态转换跟踪器模块200识别的状态转换更新可以由(例如,后面相对于图13所述的)辅助处理单元来更新。
此外,图12呈现了在快速升级操作环境中的协议状态转换和/或资源状态转换跟踪模块200。实际上,类似的操作可以用于本文所讨论的负载共享和负载平衡。结合可以从所生成的影子副本中恢复数据平面资源的缓存和刷新操作,与图11所示的控制平面的不可用时间相比,数据平面和控制平面被完全恢复的时间(如1208所示)实际上显著减少。在一些实施例中,辅助线程可以提供例如对任何控制平面查询的“有效”响应,作为执行操作系统的主线程的代理。
使用片上系统的快速软件升级
如上所述,图13示出了用于图11的配置有协议状态转换和/或资源状态转换跟踪器模块200的交换网络设备的示例快速软件升级操作1300的时序图,该协议状态转换和/或资源状态转换跟踪器模块200被配置为在主机CPU不可用时监视协议和/或硬件资源状态转换,并在主机CPU不可用时将跟踪的转换提供给辅助处理单元(例如,片上系统)以更新数据平面资源。
如图13所示,类似于图12的描述,过程1300示出为从ASIC在正常操作中主动转发分组(1102)(如图11所示)开始。当主机CPU用新的内核重启(1110)时,执行平滑操作1106并禁用(1108)由主机CPU 105对控制平面的更新。然而,图13示出了数据平面组件(执行协议状态转换和/或资源状态转换跟踪器模块200)经由在协议状态转换和/或资源状态转换跟踪器模块200上执行的过滤器来跟踪控制平面流量(示出为“DP跟踪SM更新”1306a)并直接或间接地将所识别出的跟踪的转换提供给执行对适当数据平面资源的更新的辅助处理单元的时段,而不是具有控制平面流量不能被跟踪的时段1112。为了促进这样的操作,在图13中,主机CPU 105被示出为在数据平面组件中执行的协议状态转换和/或资源状态转换跟踪器模块200中计算和安装过滤器204(也示出为“配置数据平面以跟踪拓扑影响事件”1202)。以上相对于图12所述,用于计算和安装过滤器204的示例方法相对于图2A、图2B、图2C、图3、图4、图5A、图5B、图6、图7和图8来描述,并且协议状态转换和/或资源状态转换跟踪模块200可以安装有过滤器并且在诸如TCAM、ACL、DPI引擎等之类的数据平面资源/组件中执行。为此,当在主机CPU上执行的操作系统正在启动并且不可用时,协议状态转换和/或资源状态转换跟踪器模块200可以在时段1306期间跟踪控制平面流量。
图13示出了辅助处理单元(在图13中被称为“M3”),该辅助处理单元被编程有动作指令/序列,以在主机CPU和对应的操作系统正在启动时执行对数据平面资源的更新。在图13中,如上所述,在1202处,主机CPU 105示出为在数据平面组件中执行的协议状态转换和/或资源状态转换跟踪器模块200中计算和安装过滤器。然后,在1304处,协议状态转换和/或资源状态转换跟踪器模块200被示出为启用(示出为“SM跟踪开启”1304)。同时,或与之同时,辅助处理单元被启用1304。在此时间之后,由协议状态转换和/或资源状态转换跟踪器模块200来跟踪任何协议状态转换或资源硬件转换(示出为“DP跟踪SM更新”1306a),并且由辅助处理单元来执行对数据平面资源的对应更新(例如,210)(示出为“检查DP以查找SM转换-更新数据平面”1306b)。
为此,在数据平面组件中执行的协议状态转换和/或资源状态转换跟踪器模块200可以跟踪主机CPU及其相关联的控制平面操作何时不可操作的全部时间,同时辅助处理单元(M3)可以服务这种跟踪的转换。在数据平面组件不能跟踪状态转换(例如,某些硬件资源状态转换)的实施例中,嵌入式微控制器或逻辑电路可以用于实现协议状态转换和/或资源状态转换跟踪器模块以及协议和/或硬件资源状态更新器(例如,208c)。
在图12中,通过协议分组接收到的状态转换被示出为由在数据平面中执行的协议状态转换和/或资源状态转换跟踪器模块200来识别,而在图13中,不是通过协议分组接收到的硬件资源转换由辅助处理单元(M3)来更新。在图13所示的示例中,在转发应用在“转发引擎驱动器初始化完成”1120处被初始化之后,辅助处理单元在1308处被示出为重置。
实际上,当主机CPU可用或不可用时,可以使用其他机制来执行更新。例如,一旦主机CPU被完全恢复或部分恢复(例如,根据图12),由协议状态转换和/或资源状态转换跟踪器模块200识别的状态转换更新可由主机CPU来更新。此外,在一些实施例中,由协议状态转换和/或资源状态转换跟踪器模块200识别的协议或硬件资源状态转换更新可以由辅助处理单元来更新。
此外,图13呈现了在快速升级操作环境中的协议状态转换和/或资源状态转换跟踪模块200。实际上,类似的操作可以用于本文所讨论的负载共享和负载平衡。结合可以从所生成的影子副本中恢复数据平面资源的缓存和刷新操作,与图11所示的控制平面的不可用时间相比,数据平面和控制平面被完全恢复的时间实际上显著减少。在一些实施例中,辅助处理单元可以提供例如对任何控制平面查询的“有效”响应,作为在主机CPU 105上执行的应用的代理。
示例协议状态和硬件资源状态转换过滤器
图9示出了根据说明性实施例的被配置为在协议状态转换和/或资源状态转换跟踪模块200上执行的示例性协议状态转换过滤器204(示出为900)以及对应的动作指令/序列206(示出为901)。动作指令/序列901可以连同协议状态转换过滤器900被预先计算以在数据平面组件中执行。在其他实施例中,动作指令/序列901可以由在主机CPU中的辅助线程或在主机CPU(例如,相对于图12所述)和辅助处理单元(例如,相对于图13所述)中的主线程来执行。
图10示出了根据说明性实施例的被配置为在协议状态转换和/或资源状态转换跟踪模块200上执行的示例性硬件资源状态转换过滤器204(示出为1000)以及对应的动作指令/序列206(示出为1001)。
实际上,如本文所述的机制可以概括为用于在数据平面的无头操作期间需要进行协议状态跟踪和/或硬件资源跟踪的任何交换设备中。在一些实施例中,协议状态跟踪(例如,在FSU的环境中)可以包括LACP、CDP/LLDP(邻居变化)和RSTP。
LACP过滤器/规则示例。如图9所示,协议状态转换和/或资源状态转换跟踪模块200可以配置有规则204(示出为900),该规则204扫描以太-信道何时关闭。过滤器900可以包括用于协议状态转换和/或资源状态转换跟踪模块200的指令902以扫描用于参与者状态字段(actor-state field,902)的给定LACP协议数据单元(DPU)消息的头部、以及系统中用于识别给定接口的n元组(904)和LACP PDU内的LACP控制PDU(906)。
当对等节点关闭以太-信道链路时,LACP协议预计会发送一个带有“参与者状态”字段(伙伴的端口状态)的PDU以指示出该链路正在关闭。LACP PDU中的参与者状态字段为8位宽的。在图9中,协议状态转换和/或资源状态转换跟踪模块200在执行过滤器900时,可以将掩码“0x3c”,例如通过“AND”运算符,应用于参与者状态字段(如902所示),并且如果掩码中没有任何位(例如,位2、3、4和5)被设置,则结果操作指示出对应的以太-信道被关闭。协议状态转换和/或资源状态转换跟踪模块200可以将与匹配的过滤器相关联的命中标记或命中计数器存储在表或数据库中。如图9所示,协议状态转换和/或资源状态转换跟踪模块200被配置为将命中标记或命中计数器存储在如“事件标记”中的地址906a和906b所示的地址处。实际上,根据“事件标记”指定的地址指的是表或数据库中的位置,例如数据平面资源中的位置,该位置跟踪用于给定过滤器204(例如,900)的对应命中计数器/命中标记。
如图9所示,对应的动作指令/序列206包括掩码(例如,908a和908b)以将地址(例如,906a和906b)应用于表或数据库(例如,212)。如图9所示,更新器(例如,208c)将掩码(例如,908a、908b)应用于从事件标记的地址中读取的值。在图9所示的示例中,与端口“1”相关联的协议状态转换被示出为在“地址1”处的命中标记位0(“0x00001”),并且与端口“3”相关联的协议状态转换被示出为在“地址3”处的命中标记位0(“0x00001”)。为此,当更新器将掩码“0x0001”应用于从“事件-标记:地址1”中读取的值时,结果指示出过滤器是否已匹配任何传入的控制分组。如果与上述规则相对应的命中计数器为非零,则更新器(例如,208c)可以更新适当的数据平面资源以指示出接口被标记为关闭。如图9所示,当端口“1”被指示为关闭时,更新器(例如,208c)可以通过将相关<值>写入到<地址>来将以太-信道标记为关闭,如910a所示。并且,如图9所示,当端口“2”被指示为关闭时,更新器(例如,208c)可以将本地以太-通道的所有成员标记为关闭,并且可以预先计算散列,以基于一组活动链路在其他成员链路上重新分配流量,如910b所示。这种动作(例如,910a、910b)可以防止按照陈旧的邻接转发流量并有助于加速收敛。
RSTP过滤器/规则示例。如图10所示,协议状态转换和/或资源状态转换跟踪模块200可以配置有规则204(示出为1000),规则204扫描端口何时关闭(即,端口被禁用)。过滤器1000可以包括用于协议状态转换和/或资源状态转换跟踪模块200的指令1002以扫描接收到的快速生成树协议(RSTP)消息以寻找例如经由拓扑变化通知(TCN)消息提供的给定生成树中的变化、以及系统中用于识别给定接口的n元组(1004)、以及BPDU中的消息类型字段(例如,TCN-BPDU)和RSTP TCN消息中的控制标记字段(1006)。
在图10中,协议状态转换和/或资源状态转换跟踪模块200在执行过滤器1000时,可以确定BPDU中的消息类型字段是“TCN_BPDU”并且BPDU中的标记字段是“TC_FLAG”以识别RSTP TCN消息。为此,如果TCN更新在给定端口上已被接收,则执行对应的动作指令/序列206(例如,1001)的更新器(例如,208a、208c)可以更新数据平面资源以指示出端口被阻塞。如图10所示,协议状态转换和/或资源状态转换跟踪模块200可以将与匹配的过滤器相关联的命中标记或命中计数器存储在相对于图9所述的表或数据库中。如图10所示,协议状态转换和/或资源状态转换跟踪模块200被配置为将命中标记或命中计数器存储在如“命中-计数器”中的地址1006a、1006b和1006c所示的地址处。实际上,根据“命中-计数器”指定的地址指的是表或数据库中的位置,例如数据平面资源中的位置,该位置跟踪用于给定过滤器204的对应命中计数器/命中标记(例如,1000)。
如图10所示,对应的动作指令/序列206包括一组掩码(例如,1008a,1008b,1008c)以将各个地址(例如,1006a,1006b,1006c)应用于表或数据库(例如,212)。如图10所示,更新器(例如,208c)将掩码(例如,1008a、1008b、1008c)应用于从“命中计数器”的地址读取的值。在图10所示的示例中,与端口“1”(1005a)相关联的协议状态转换被示出为在“地址1”(1006a)处的命中标记位2“0x00010”(1008a);与端口“2”(1005b)相关联的协议状态转换被示出为在“地址2”(1006b)处的命中标记位2“0x00010”(1008b);与端口“3”(1005c)相关联的协议状态转换被示出为在“地址3”(1006c)处的命中标记位2“0x00010”(1008c)。为此,当更新器将掩码“0x00010”应用于从“命中-计数器:地址1”读取的值时,结果指示出过滤器是否已匹配任何传入的STP TCN消息。如果与上述规则相对应的命中-计数器为非零,则更新器(例如,208c)可以更新适当的数据平面资源以指示出端口被阻塞。如图10所示,当端口“1”、“2”和“3”指示为被阻塞时,更新器(例如,208c)可以通过将各自相关联的<值>分别写入到1010a、1010b和1010c所示的相应的地址,来将相应的端口标记为阻塞。这种的动作(例如,1010a、1010b、1010c)可以防止将流量转发到可能导致诸如环路或黑洞等之类的网络问题的阻塞端口。
使用示例协议状态转换和/或资源状态转换跟踪器的主机CPU负载平衡应用
返回参考图3,示例性网络设备100(例如,300)可以替代地或附加地配置有图2A、图2B或图2C的协议状态转换和/或资源状态转换跟踪器模块200,以根据说明性实施例用主机CPU来执行负载平衡操作。如本文所用,“负载平衡”是指协议状态转换和/或资源状态转换跟踪器模块200在主机CPU过载时执行对协议状态转换或资源状态转换的过滤和/或更新。
在负载平衡操作期间,控制平面可能会周期性地不可用。在一些实施例中,例如,当主机CPU的监视可用性被确定为低于特定阈值(例如,25%可用负载)时,负载共享应用308可以引导主机CPU 105计算一组过滤器204,然后该组过滤器204被安装在协议状态转换和/或资源状态转换跟踪器模块200(例如,200a-200e)上,以从主机CPU上卸载对某些协议状态转换和/或资源状态转换的这种监视。
在一些实施例中,网络设备可以是非冗余、独立的固定或模块化的交换系统。在其他实施例中,网络设备可以是路由器或其他联网系统。非冗余、独立的固定交换系统的示例在图1B中示出。模块化交换系统的示例在图1A中示出。
仍然参考图3(和图5A或图5B),当负载平衡操作被启动时,控制平面确定(步骤502)一组过滤规则并在协议状态转换和/或资源状态转换跟踪器模块200d(例如,在数据平面)中安装(步骤504)过滤规则。在一些实施例中,过滤规则可以从提供与远程控制器306(示出为“OpenFlow控制器”306a)的通信的网络接口获得或接收。对应的动作指令/序列206可以与过滤器204同时被计算或者可以根据需要被计算。
在一些实施例中,过滤器204(例如,204a-204d)提供用于一组协议(例如,在本文中描述的协议)的状态转换消息的匹配。在一些实施例中,例如,当协议的状态更新通过该协议的消息中的一组字段来传送时,协议状态转换和/或资源状态转换跟踪器模块200d被配置为在识别到匹配时寻找(步骤506),例如扫描,字段中的特定值和标记。除了特定的协议消息之外,协议状态转换和/或资源状态转换跟踪器模块200d还可以跟踪可能影响转发拓扑(例如,链路断开)的其他事件。过滤逻辑可以通过各种硬件块(例如,ACL TCAM)来实现。任何所需的资源在系统启动时被保留。
一旦规则被配置在协议状态转换和/或资源状态转换跟踪器模块200d(例如,在数据平面中)中,在系统(数据平面)处于过载状态时可能影响转发拓扑的事件就被标记。然后使用跟踪的信息来对数据平面执行必要的更新(步骤508)(例如,关闭邻接、阻塞端口等)以最小化对网络的负面影响。
如图3所示,协议状态转换和/或资源状态转换跟踪器模块200d被示出为耦合到数据平面接口304(例如,总线互连132),该数据平面接口304与执行负载平衡操作308的主机CPU 105接口。主机CPU 105还执行管理和维护多个数据平面相关表(例如,L2 MAC表;MAC学习表;L3表;RIB、FIB等)的控制平面操作,在图3中示出为网络设备100(例如,100a-100e)的资源210a-210d。负载平衡操作308向主机CPU 105提供预先计算过滤器204的指令以将过滤器204安装在协议状态转换和/或资源状态转换跟踪器模块200d(示出为“过滤器1”204a、“过滤器2”204b、“过滤器3”204c和“过滤器n”204d)。在协议状态转换和/或资源状态转换跟踪器模块200d上执行的过滤器204a-204d在主机CPU 105过载(例如,具有超过定义限制的负载水平)时有助于跟踪协议状态转换和/或资源状态转换。协议状态转换和/或资源状态转换可以被实现在本文讨论的数据平面组件或辅助处理单元中。更新器(例如,208c)可以被实现在主机CPU的辅助线程(例如,相对于图11所述)中或辅助处理单元(例如,相对于图12所述)中。
图4示出了根据说明性实施例的在(例如,相对于图3所述的)负载平衡操作期间被配置为执行对数据平面资源的更新的示例性网络设备100(示出为400)。可以执行更新器(例如,208c)的辅助线程和辅助处理单元的示例相对于图12和图13描述。
图8示出了根据说明性实施例的在配置有示例性协议状态转换和/或资源状态转换跟踪器模块200(示出为“转换状态跟踪器”802a)的网络设备中执行负载平衡操作的方法的示例性时序图800。图8示出了相对于图6所述的类似操作(例如,606、614a、612、618等)。
然而,在图8中,不是主机CPU 105变得不可用,而是转换状态跟踪器200(示出为802a)被配置为在主机CPU 105过载时与主机CPU 105并行操作。实际上,一旦负载平衡操作(示出为“状态跟踪应用”308a)被初始化(804),主机CPU 105就预先计算(806)过滤器204以将过滤器204安装(808)在转换状态跟踪器802a上。与过滤和监视(810)相关联的控制平面消息的处理由转换状态跟踪器802a来执行而不是由主机CPU 105a来执行。
使用示例协议状态转换和/或资源状态转换跟踪器的主机CPU负载共享应用
返回参考图3,示例性网络设备300可以替代地或附加地配置有图2A、图2B或图2C的协议状态转换和/或资源状态转换跟踪器模块200,以根据说明性实施例用主机CPU来执行负载共享操作。如本文所用,“负载共享”是指协议状态转换和/或资源状态转换跟踪器模块200执行对协议状态转换或资源状态转换的过滤和/或更新是与主机CPU执行的控制平面操作并行地进行的,而与主机CPU的可用性或加载状态无关。实际上,更新某些协议状态转换更新和/或某些硬件资源状态转换更新的功能已经完全卸载到协议状态转换和/或资源状态转换跟踪器模块200。
仍然参考图3(和图5A或图5B),当负载共享操作(示出为“主机CPU负载共享应用”310)被启动时,控制平面确定(步骤502)一组过滤规则并在协议状态转换和/或资源状态转换跟踪器模块(例如,200d)(例如,在数据平面)中安装(步骤504)过滤规则。在一些实施例中,过滤规则可以从提供与远程控制器306(示出为“OpenFlow控制器”306a)的通信的网络接口获得或接收。
在一些实施例中,过滤器204(例如,204a-204d)提供用于一组协议(例如,在本文中描述的协议)的状态转换消息的匹配。在一些实施例中,例如,当协议的状态更新通过在该协议的消息中的一组字段来传送时,协议状态转换和/或资源状态转换跟踪器模块200d被配置为在识别到匹配时寻找(步骤506),例如扫描,字段中的特定值和标记。除了特定的协议消息之外,协议状态转换和/或资源状态转换跟踪器模块(例如,200d)还可以跟踪可能影响转发拓扑(例如,链路断开)的其他事件。过滤逻辑可以通过各种硬件块(例如,ACLTCAM)来实现。任何所需的资源在系统启动时被保留。
一旦规则被配置在协议状态转换和/或资源状态转换跟踪器模块200d(例如,在数据平面中)中,与这种规则相关联的、可能影响转发拓扑的事件独立于主机CPU 105被协议状态转换和/或资源状态转换跟踪器模块(例如,200d)标记。然后使用跟踪的信息对数据平面执行必要的更新(步骤508)(例如,关闭邻接、阻塞端口等)以最小化对本文所述的网络的负面影响。图4示出了根据说明性实施例的在(例如,相对于图3所述的)负载平衡操作期间被配置为执行对数据平面资源的更新的示例性网络设备100(示出为400)。可以执行更新器(例如,208c)的辅助线程和辅助处理单元的示例相对于图12和图13描述。
图8示出了在配置有示例性协议状态转换和/或资源状态转换跟踪器模块(例如,200)的网络设备中执行负载共享操作的方法的示例时序图800。实际上,一旦负载共享操作(也示出为“状态跟踪应用”308a)被初始化(804),主机CPU 105就预先计算(806)过滤器204以将过滤器204安装(808)在转换状态跟踪器802a上。然后,主机CPU 105a可以忽略与过滤器相关联的控制平面相关消息并且这种监视(810)被转换状态跟踪器802来执行。
总之,本公开的实施例涉及一种协议状态转换和/或资源状态转换跟踪器,其被配置为在控制平面中的执行这种监视功能的主机处理器不可用或过载时,例如通过过滤器来监视某些协议状态转换/变化或主机硬件资源转换/变化。在一些实施例中,过滤器被主机处理器预先计算/计算并传输到协议状态转换和/或资源状态转换跟踪器。协议状态转换和/或资源状态转换跟踪器可以用于实现快速升级操作以及与控制平面相关组件的负载共享和/或负载平衡操作。
应当理解,本文描述的各种技术和模块,包括协议状态转换和/或资源状态转换跟踪器模块(例如,200)和/或协议状态更新器(例如,208),可以结合硬件组件或软件组件,或在适当的情况下,通过两者的组合来实现。可以使用的示例性硬件组件类型包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。当前公开的主题的方法和装置或其某些方面或部分,可以采用程序代码(即,指令)的形式,该程序代码体现在诸如软盘、CD-ROM、硬盘驱动器或任何其他机器可读存储介质之类的有形介质中,其中当程序代码被加载到机器(例如,计算机)中并被其执行时,该机器变成用于实践当前公开的主题的装置。
除了物理硬件之外,网络设备(例如,100)的实施例可以全部或部分地实现在虚拟化网络硬件中。
尽管示例性实现方式可以指在一个或多个独立计算机系统的环境中利用当前公开的主题的各个方面,但该主题不限于此,而是可以结合任何计算环境来实现,例如网络或分布式计算环境。更进一步,当前公开的主题的各个方面可以实现在多个处理芯片或设备中或跨多个处理芯片或设备来实现,并且可以类似地跨多个设备来实现存储。
虽然上面已经描述了本公开的各种实施例,但是应当理解,它们仅仅是作为示例来提供的而不是限制性的。对相关领域的技术人员来说显而易见的是,在不脱离本公开的精神和范围的情况下,可以对其中的形式和细节进行各种改变。因此,本公开的宽度和范围不应当被任何上面描述的示例性实施例限制,而应当仅仅根据所附利要求及其等同物来定义。
上述内容可以根据以下条款更好地理解:
条款1:一种执行快速升级或重启操作的方法,包括:
由网络设备的主机CPU预先计算或接收一个或多个过滤器,每个过滤器被配置为在主机CPU的不可用状态期间监视接收到的分组中的协议或资源状态转换;
由主机CPU向处理器单元或逻辑电路传输过滤器;
由处理器单元或逻辑电路使用过滤器来跟踪控制平面的给定协议状态和/或资源状态转换;以及
由主机CPU在主机CPU处于可用状态时基于跟踪来更新网络设备的交换结构的数据平面相关表。
条款2:根据条款1所述的方法,其中,主机CPU被指令配置为执行管理和维护多个数据平面相关表的控制平面操作。
条款3:根据条款1或2所述的方法,其中,处理器单元或逻辑电路被配置为:
识别接收到的LACP PDU,LACP PDU指示出对等网络设备的下行信道链路;以及
更新与对等网络设备相关联的链路聚合信道被关闭的数据平面。
条款4:根据条款1-3中任一项所述的方法,其中,处理器单元或逻辑电路被配置为:
监视(i)在至少一个接收到的控制分组中的特定协议状态转换和(ii)特定资源状态转换;以及
当检测到特定协议状态转换或特定资源状态转换时,使用预先计算的数据平面条目来更新数据平面。
条款5:根据条款1-4中任一项所述的方法,其中,主机CPU被配置为在主机CPU进入不可用或过载状态之前预先计算过滤器。
条款6:根据条款1-4中任一项所述的方法,其中,主机CPU被配置为通过网络接口来接收过滤器。
条款7:根据条款1-6中任一项所述的方法,其中,过滤器被配置为识别LACP PDU,LACP PDU指示出逻辑信道或信道内的一个或多个链路的协议状态或资源状态变化。
条款8:根据条款1-6中任一项所述的方法,其中,过滤器被配置为识别BPDU,BPDU指示出生成树协议拓扑变化通知(TCN)消息。
条款9:根据条款1-6中任一项所述的方法,其中,过滤器被配置为识别硬件资源转换变化。
条款10:根据条款1-9中任一项所述的方法,其中,处理器单元或逻辑电路被实现在数据平面中的分组分类引擎、分组检查引擎、深度分组检查引擎、嵌入式微控制器和/或位于数据平面的组件内的ACL TCAM中。
条款11:根据条款1-10中任一项所述的方法,其中,处理器单元或逻辑电路被实现在数据平面设备外部的设备中。
条款12:根据条款1-11中任一项所述的方法,其中,当主机CPU从不可用或过载状态转换到可用状态时,跟踪的协议状态和/或资源被主机CPU使用,以更新检测到的协议状态和/或资源的数据平面。
条款13:根据条款1-12中任一项所述的方法,还包括:
当主机CPU处于不可用状态时更新主机CPU。
条款14.一种执行快速升级或重启操作的系统,该系统包括:
处理器单元或逻辑电路,被配置有指令,用于执行以下操作:
接收被系统外部或本地的主机CPU计算的多个过滤器;以及
通过多个过滤器来跟踪控制平面的协议状态和/或资源状态转换;以及
输出跟踪的协议状态和/或资源状态转换以更新多个数据平面相关表。
条款15:根据条款14所述的系统,其中,主机CPU被指令配置为执行管理和维护多个数据平面相关表的控制平面操作。
条款16:根据条款14或15所述的系统,其中,处理器单元或逻辑电路被多个过滤器配置为执行以下操作:
识别接收的LACP PDU,LACP PDU指示出对等网络设备的下行信道链路;以及
更新与对等网络设备相关联的链路聚合信道被关闭的数据平面。
条款17:根据条款14-16中任一项所述的系统,其中,处理器单元或逻辑电路被多个过滤器配置为执行以下操作:
监视(i)在至少一个接收到的控制分组中的特定协议状态转换和(ii)特定资源状态转换;以及
当检测到特定协议状态转换或特定资源状态转换时,使用预先计算的数据平面条目来更新数据平面。
条款18:根据条款14-17中任一项所述的系统,其中,过滤器被配置为识别以下各项中的至少一项:
LACP PDU,LACP PDU指示出逻辑信道或信道内的一个或多个链路的协议状态或资源状态变化;
BPDU,BPDU指示出生成树协议拓扑变化通知(TCN)消息;以及
硬件资源转换变化。
条款19:根据条款14-18中任一项所述的系统,其中,处理器单元或逻辑电路被实现在数据平面中的分组分类引擎、分组检查引擎、深度分组检查引擎、嵌入式微控制器和/或位于数据平面的组件内的ACL TCAM中。
条款20:根据条款14-18中任一项所述的系统,其中,处理器单元或逻辑电路被实现在数据平面设备外部的设备中。
条款21:一种系统,包括:处理器单元或逻辑电路以及具有存储在其上的指令的存储器,其中,指令被处理器单元或逻辑电路执行,使得处理器单元或逻辑电路执行根据条款1-13所述的任何方法。
条款22:根据条款21所述的系统,还包括用于实施根据条款2至12中任一项所述的步骤的设备。
条款23:一种计算机程序、计算机程序产品或计算机可读介质,包括指令,该指令在被计算机执行时,使得计算机执行根据条款2至12中任一项所述的步骤。
Claims (22)
1. 一种网络设备,包括:
在所述网络设备的控制平面的主机CPU,执行用于管理和维护所述网络设备的交换结构的多个数据平面相关表的控制平面操作的指令,所述指令在由所述主机CPU执行时被布置为计算多个过滤器以识别协议状态和/或资源状态转换;以及
数据平面,所述数据平面使用所述多个数据平面相关表,以将在所述网络设备的网络端口处接收到的分组路由到所述网络设备的其他网络端口,
其中,所述数据平面包括处理器单元或逻辑电路,被配置为执行以下操作:
接收被所述主机CPU计算的所述多个过滤器;以及
通过所述多个过滤器来跟踪所述控制平面的协议状态和/或资源状态转换;
其中,跟踪的协议状态和/或资源状态转换被所述主机CPU或所述处理器单元或逻辑电路使用,以更新所述多个数据平面相关表。
2.根据权利要求1所述的网络设备,其中,当所述主机CPU处于不可用或过载状态时,所述跟踪的协议状态和/或资源状态转换被所述处理器单元或逻辑电路使用,以更新所述数据平面相关表。
3.根据权利要求1或2所述的网络设备,其中,当所述主机CPU从所述不可用或过载状态转换到可用状态时,所述跟踪的协议状态和/或资源状态转换被所述主机CPU使用,以更新检所述数据平面相关表。
4.根据权利要求1或2所述的网络设备,其中,所述跟踪的协议状态和/或资源状态转换被所述处理器单元或逻辑电路和所述主机CPU并行使用,以更新所述数据平面相关表。
5.根据权利要求1或2所述的网络设备,其中,所述数据平面实现过滤器,以在所述主机CPU的不可用状态期间监视接收到的分组中的特定协议状态转换和/或在所述主机CPU的不可用状态期间监视特定资源状态转换。
6.根据权利要求5所述的网络设备,其中,所述多个过滤器由所述主机CPU在所述主机CPU进入所述不可用或过载状态之前预先计算。
7. 根据权利要求6所述的网络设备,其中,所述处理器单元或逻辑电路被实现在数据平面中的分组分类引擎、分组检查引擎、深度分组检查引擎、嵌入式微控制器和/或位于所述数据平面的组件内的ACL TCAM中。
8.根据权利要求1或2所述的网络设备,其中,所述处理器单元或逻辑电路执行用于一组协议的状态转换的多个过滤器。
9. 根据权利要求8所述的网络设备,其中,所述多个过滤器包括第一过滤器,所述第一过滤器被配置为识别LACP PDU,所述LACP PDU指示出逻辑信道或所述信道内的一个或多个链路的协议状态或资源状态变化。
10.根据权利要求8所述的网络设备,其中,所述多个过滤器包括第二过滤器,所述第二过滤器被配置为识别BPDU,所述BPDU指示出生成树协议拓扑变化通知(TCN)消息。
11.根据权利要求8所述的网络设备,其中,所述多个过滤器包括第三过滤器,所述第三过滤器被配置为识别硬件资源转换变化。
12.根据权利要求8所述的网络设备,其中,所述多个过滤器包括第三过滤器,所述第三过滤器被配置为识别对等网络设备的平滑插入和去除操作。
13.根据权利要求1或2所述的网络设备,其中,所述主机CPU被配置为:
预先计算过滤器以在所述主机CPU的不可用状态期间监视接收到的分组中的特定协议或资源状态转换。
14.根据权利要求11或12所述的网络设备,其中,所述主机CPU被配置为:
预先计算更新后的数据平面条目以在所述过滤器被匹配时重新分配流量来更新所述数据平面相关表。
15. 根据权利要求1或2所述的网络设备,其中,所述处理器单元或逻辑电路被配置为:
监视(i)在至少一个接收到的控制分组中的特定协议状态转换和(ii)特定资源状态转换;以及
当检测到所述特定协议状态转换或所述特定资源状态转换时,使用预先计算的数据平面条目来更新所述数据平面。
16. 根据权利要求1或2所述的网络设备,其中,所述处理器单元或逻辑电路被配置为:
识别接收到的LACP PDU,所述LACP PDU指示出对等网络设备的下行信道链路;以及
更新与对等网络设备相关联的链路聚合信道被关闭的所述数据平面。
17.一种用于跟踪协议和硬件资源状态转换的方法,包括:
由网络设备的控制平面的主机CPU执行管理和维护网络设备的交换结构的多个数据平面相关表的控制平面操作;
由所述主机CPU计算多个过滤器以识别与所述控制平面操作相关联的协议状态和/或资源状态转换;以及
由所述主机CPU向处理器单元或逻辑电路传输多个被计算的过滤器,其中所述处理器单元或逻辑电路被布置在所述网络设备的数据平面中,所述数据平面被配置为使用所述多个数据平面相关表来将在所述网络设备的网络端口处接收的分组路由到所述网络设备的其他网络端口;
所述方法还包括由所述数据平面中的上述处理器单元或逻辑电路执行以下操作:
接收多个传输的过滤器;
经由多个接收到的过滤器来跟踪所述控制平面的协议状态和/或资源状态转换,其中,由所述多个接收到的过滤器跟踪的跟踪的协议状态和/或资源状态转换被使用以更新相关联的数据平面资源。
18.根据权利要求17所述的方法,还包括权利要求2至16中任一项所述的步骤。
19. 一种非暂态计算机可读介质,具有存储在其上的指令,其中,所述指令由包括被布置在网络设备的数据平面的处理器单元或逻辑电路的第一处理器执行以执行以下操作:
从数据平面接口接收多个过滤器以识别与控制平面操作相关联的协议状态和/或资源状态转换,其中,所述多个过滤器已被所述网络设备的控制平面的主机CPU预先计算,所述主机CPU被配置为执行管理和维护所述网络设备的交换结构的多个数据平面相关表的控制平面操作,并且其中,所述处理器单元或逻辑电路被配置为使用所述多个数据平面相关表来将在所述网络设备的网络端口处接收的分组路由到所述网络设备的其他网络端口;以及
经由多个接收到的过滤器来跟踪所述控制平面的协议状态和/或资源状态转换,其中,由所述主机CPU或所述处理器单元或逻辑电路基于跟踪的协议状态和/或资源状态转换来更新所述数据平面的多个数据平面相关表。
20.一种用于跟踪协议和硬件资源状态转换的装置,包括在所述装置的控制平面中的主机CPU和在所述装置的数据平面中的处理器单元或逻辑电路:
用于在所述主机CPU处执行管理和维护网络设备的交换结构的多个数据平面相关表的控制平面操作的设备;
用于在所述主机CPU处计算多个过滤器以识别与所述控制平面操作相关联的协议状态和/或资源状态转换的设备;以及
用于从所述主机CPU向所述处理器单元或逻辑电路传输多个被计算的过滤器的设备,其中,所述处理器单元或逻辑电路被配置为使用所述多个数据平面相关表来将在所述网络设备的网络端口处接收的分组路由到所述网络设备的其他网络端口;
用于由所述处理器单元或逻辑电路接收多个传输的过滤器的设备;
用于经由多个接收到的过滤器来跟踪所述控制平面的协议状态和/或资源状态转换的设备,其中,由所述多个接收到的过滤器跟踪的跟踪的协议状态和/或资源状态转换被使用以更新相关联的数据平面资源。
21.根据权利要求20的装置,还包括用于实现根据权利要求2至16中任一项所述的步骤的设备。
22.一种计算机可读介质包括指令,所述指令在被计算机执行时,使得所述计算机执行根据权利要求2至16中任一项所述的步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/748,256 US11272042B2 (en) | 2020-01-21 | 2020-01-21 | Methods and systems to track protocol and hardware resource state transitions |
US16/748,256 | 2020-01-21 | ||
PCT/US2021/014298 WO2021150671A1 (en) | 2020-01-21 | 2021-01-21 | Methods and systems to track protocol and hardware resource state transitions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115136557A CN115136557A (zh) | 2022-09-30 |
CN115136557B true CN115136557B (zh) | 2024-05-24 |
Family
ID=74626191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180015639.5A Active CN115136557B (zh) | 2020-01-21 | 2021-01-21 | 用于跟踪协议和硬件资源状态转换的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (3) | US11272042B2 (zh) |
EP (1) | EP4094410A1 (zh) |
CN (1) | CN115136557B (zh) |
WO (1) | WO2021150671A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3729764A4 (en) * | 2017-12-19 | 2021-07-14 | Telefonaktiebolaget LM Ericsson (publ) | MANAGEMENT PROCESS AND NODE IN A COMMUNICATION NETWORK, SUPPORT FOR THE MANAGEMENT OF NETWORK NODES BASED ON LLDP MESSAGES |
US11272042B2 (en) | 2020-01-21 | 2022-03-08 | Cisco Technology, Inc. | Methods and systems to track protocol and hardware resource state transitions |
AU2021283382A1 (en) * | 2020-06-05 | 2023-02-02 | Arris Enterprises Llc | Reset system for a remote physical device |
US11770291B2 (en) * | 2021-10-14 | 2023-09-26 | Arista Networks, Inc. | Determining readiness for switchover operations for network devices |
CN113923173B (zh) * | 2021-10-22 | 2023-12-15 | 深圳市风云实业有限公司 | 网络交换设备数据面快速启动恢复方法 |
US11900096B2 (en) | 2022-03-21 | 2024-02-13 | Juniper Networks, Inc. | Hitless upgrade of a network device |
US11928036B2 (en) * | 2022-03-30 | 2024-03-12 | Kioxia Corporation | Recovery from broken mode |
US20240039813A1 (en) * | 2022-07-27 | 2024-02-01 | Vmware, Inc. | Health analytics for easier health monitoring of a network |
US20240223492A1 (en) * | 2023-01-03 | 2024-07-04 | Nvidia Corporation | Offloading connection management for network resources |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1754353A (zh) * | 2003-02-28 | 2006-03-29 | 思科技术公司 | 用于ip多播的协议无关实现的方法和设备 |
CN1819581A (zh) * | 2004-11-01 | 2006-08-16 | 朗迅科技公司 | 软路由器协议故障恢复 |
EP1788752A1 (en) * | 2005-11-21 | 2007-05-23 | Alcatel Lucent | Network node with control plane processor overload protection |
CN103782572A (zh) * | 2011-07-07 | 2014-05-07 | 思科技术公司 | 用于提供基于消息和事件的视频服务控制平面的系统和方法 |
CN103947164A (zh) * | 2011-10-14 | 2014-07-23 | 谷歌公司 | 半集中式路由 |
CN104205055A (zh) * | 2012-03-29 | 2014-12-10 | 瑞典爱立信有限公司 | 通过openflow数据平面在云计算机中实现epc |
CN104518972A (zh) * | 2013-10-01 | 2015-04-15 | 瞻博网络公司 | 用于链路状态路由协议的动态区域过滤 |
CN106789658A (zh) * | 2016-12-29 | 2017-05-31 | 南京邮电大学 | 基于sdn控制器的卫星mpls网络流量均衡方法 |
CN107534578A (zh) * | 2015-04-04 | 2018-01-02 | Nicira股份有限公司 | 用于逻辑网络与物理网络之间的动态路由的路由服务器模式 |
CN109863735A (zh) * | 2016-08-01 | 2019-06-07 | 比格斯维琪网络公司 | 用于网络地址转换的系统和方法 |
US10516626B1 (en) * | 2016-03-16 | 2019-12-24 | Barefoot Networks, Inc. | Generating configuration data and API for programming a forwarding element |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7646759B2 (en) * | 2003-01-07 | 2010-01-12 | Intel Corporation | Apparatus and method for configuring data plane behavior on network forwarding elements |
US7447225B2 (en) * | 2004-07-23 | 2008-11-04 | Cisco Technology, Inc. | Multiple multicast forwarder prevention during NSF recovery of control failures in a router |
US8315157B2 (en) * | 2008-07-02 | 2012-11-20 | Cisco Technology, Inc. | Graceful removal and/or insertion of a network element |
US20150142988A1 (en) * | 2012-04-16 | 2015-05-21 | Telefonaktiebolaget L M Ericsson (Publ) | Protocol state based packet filter |
US9100329B1 (en) * | 2012-06-28 | 2015-08-04 | Juniper Networks, Inc. | Providing non-interrupt failover using a link aggregation mechanism |
US10601661B2 (en) * | 2015-06-22 | 2020-03-24 | Arista Networks, Inc. | Tracking state of components within a network element |
US10630564B2 (en) | 2017-03-28 | 2020-04-21 | Arista Networks, Inc. | System and method of handling a fault detection mechanism with link aggregation groups |
CN109429348B (zh) * | 2017-07-19 | 2022-03-29 | 华为技术有限公司 | 一种数据的处理方法、移动性管理设备和终端设备 |
US10409620B2 (en) * | 2018-01-25 | 2019-09-10 | Dell Products L.P. | Spanning tree protocol warm reboot system |
US11108830B2 (en) * | 2018-03-13 | 2021-08-31 | Avago Technologies International Sales Pte. Limited | System for coordinative security across multi-level networks |
US10984096B2 (en) * | 2018-03-28 | 2021-04-20 | Intel Corporation | Systems, methods, and apparatus for detecting control flow attacks |
US11272042B2 (en) * | 2020-01-21 | 2022-03-08 | Cisco Technology, Inc. | Methods and systems to track protocol and hardware resource state transitions |
-
2020
- 2020-01-21 US US16/748,256 patent/US11272042B2/en active Active
-
2021
- 2021-01-21 WO PCT/US2021/014298 patent/WO2021150671A1/en unknown
- 2021-01-21 US US17/153,987 patent/US11616863B2/en active Active
- 2021-01-21 EP EP21705766.0A patent/EP4094410A1/en active Pending
- 2021-01-21 CN CN202180015639.5A patent/CN115136557B/zh active Active
-
2022
- 2022-02-01 US US17/590,363 patent/US11765254B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1754353A (zh) * | 2003-02-28 | 2006-03-29 | 思科技术公司 | 用于ip多播的协议无关实现的方法和设备 |
CN1819581A (zh) * | 2004-11-01 | 2006-08-16 | 朗迅科技公司 | 软路由器协议故障恢复 |
EP1788752A1 (en) * | 2005-11-21 | 2007-05-23 | Alcatel Lucent | Network node with control plane processor overload protection |
CN103782572A (zh) * | 2011-07-07 | 2014-05-07 | 思科技术公司 | 用于提供基于消息和事件的视频服务控制平面的系统和方法 |
CN103947164A (zh) * | 2011-10-14 | 2014-07-23 | 谷歌公司 | 半集中式路由 |
CN104205055A (zh) * | 2012-03-29 | 2014-12-10 | 瑞典爱立信有限公司 | 通过openflow数据平面在云计算机中实现epc |
CN104518972A (zh) * | 2013-10-01 | 2015-04-15 | 瞻博网络公司 | 用于链路状态路由协议的动态区域过滤 |
CN107534578A (zh) * | 2015-04-04 | 2018-01-02 | Nicira股份有限公司 | 用于逻辑网络与物理网络之间的动态路由的路由服务器模式 |
US10516626B1 (en) * | 2016-03-16 | 2019-12-24 | Barefoot Networks, Inc. | Generating configuration data and API for programming a forwarding element |
CN109863735A (zh) * | 2016-08-01 | 2019-06-07 | 比格斯维琪网络公司 | 用于网络地址转换的系统和方法 |
CN106789658A (zh) * | 2016-12-29 | 2017-05-31 | 南京邮电大学 | 基于sdn控制器的卫星mpls网络流量均衡方法 |
Non-Patent Citations (1)
Title |
---|
跨域BGP/MPLS VPN在高性能路由器中的实现;任金秋;马海龙;汪斌强;;计算机工程;20090205(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20210227054A1 (en) | 2021-07-22 |
US20210227053A1 (en) | 2021-07-22 |
US11616863B2 (en) | 2023-03-28 |
CN115136557A (zh) | 2022-09-30 |
US20220159102A1 (en) | 2022-05-19 |
US11272042B2 (en) | 2022-03-08 |
US11765254B2 (en) | 2023-09-19 |
WO2021150671A1 (en) | 2021-07-29 |
EP4094410A1 (en) | 2022-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115136557B (zh) | 用于跟踪协议和硬件资源状态转换的方法和系统 | |
US10516600B2 (en) | Detecting and preventing network loops | |
CN107078951B (zh) | 从虚拟端口信道对等体故障恢复 | |
US11593144B2 (en) | Near-hitless upgrade or fast bootup with virtualized hardware | |
US20220121439A1 (en) | System and method of updating a network element | |
US7941837B1 (en) | Layer two firewall with active-active high availability support | |
US20170163473A1 (en) | Link aggregation split-brain detection and recovery | |
US9413614B1 (en) | Systems and methods for determining network topologies | |
US10284417B2 (en) | Method and system for sharing state between network elements | |
US9442742B2 (en) | Method and system for network device maintenance | |
US11882060B2 (en) | Near-hitless upgrade or fast bootup with mobile virtualized hardware | |
US20210109744A1 (en) | Software update on a network device forming a multi-chassis link aggregation group (mc-lag) | |
CN110035006B (zh) | 转发分组的方法、网络设备及计算机可读介质 | |
WO2015167597A1 (en) | Data plane to forward traffic based on communications from a software defined networking (sdn) controller during control plane failure | |
US9706016B2 (en) | Unconstrained supervisor switch upgrade | |
EP2030378A1 (en) | Uninterrupted network control message generation during local node outages | |
EP4304137A1 (en) | Spanning tree learning in a network device | |
CN112134794A (zh) | 一种流表备份方法及装置 | |
Cisco | Release Notes for Catalyst 6000 Family Multilayer Switch Module Cisco IOS Release 12.0(16)W5(21c) | |
Cisco | Release Notes for the Catalyst 8540 CSR Cisco IOS Release 12.0(13)W5(19c) | |
Cisco | Catalyst 8500 CSR Release Notes for Cisco IOS Release 12.0(16)W5(21a) | |
Cisco | Release Notes | |
Cisco | Configuring Redundancy | |
Cisco | Configuring Redundancy | |
Cisco | Configuring Redundancy |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |