CN103858392A - 包分类规则的增量更新 - Google Patents

包分类规则的增量更新 Download PDF

Info

Publication number
CN103858392A
CN103858392A CN201280048291.0A CN201280048291A CN103858392A CN 103858392 A CN103858392 A CN 103858392A CN 201280048291 A CN201280048291 A CN 201280048291A CN 103858392 A CN103858392 A CN 103858392A
Authority
CN
China
Prior art keywords
rule
bucket
new
tree
regular
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.)
Granted
Application number
CN201280048291.0A
Other languages
English (en)
Other versions
CN103858392B (zh
Inventor
R·戈亚尔
K·A·布里斯
S·L·比拉
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.)
Kaiwei International Co
Marvell Asia Pte Ltd
Original Assignee
Cavium 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 Cavium LLC filed Critical Cavium LLC
Publication of CN103858392A publication Critical patent/CN103858392A/zh
Application granted granted Critical
Publication of CN103858392B publication Critical patent/CN103858392B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/027Frames
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1075Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • 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/39Credit based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/02Protocol performance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7452Multiple parallel or consecutive lookup operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/30Systems integrating technologies related to power network operation and communication or information technologies for improving the carbon footprint of the management of residential or tertiary loads, i.e. smart grids as climate change mitigation technology in the buildings sector, including also the last stages of power distribution and the control, monitoring or operating management systems at local level
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

提供了一种系统、装置和方法,用于从为包分类的主动搜索过程的角度在一个更新中增加、删除和修改规则。当搜索处理器搜索与从所接收包生成的密钥相匹配的一个或多个规则时,存在对增加、删除、或修改规则的需要。通过从用于包分类的主动搜索过程的角度在一个更新中增加、删除和修改规则,可以维持主动搜索过程的性能和功能性,从而防止包损耗并保持通过量。

Description

包分类规则的增量更新
相关申请的交叉引用
本申请要求2011年8月2日提交的美国临时申请No.61/514,344的权益;2011年8月2日提交的美国临时申请No.61/514,382的权益;2011年8月2日提交的美国临时申请No.61/514,379的权益;2011年8月2日提交的美国临时申请No.61/514,400的权益;2011年8月2日提交的美国临时申请No.61/514,406的权益;2011年8月2日提交的美国临时申请No.61/514,407的权益;2011年8月2日提交的美国临时申请No.61/514,438的权益;2011年8月2日提交的美国临时申请No.61/514,447的权益;2011年8月2日提交的美国临时申请No.61/514,450的权益;2011年8月2日提交的美国临时申请No.61/514,459的权益;和2011年8月2日提交的美国临时申请No.61/514,463的权益。
上述申请的全部教导通过参考合并于此。
背景技术
该开放系统互连(OSI)参考模型定义了七个网络协议层(L1-L7),其用于在传输介质上通信。上层(L4-L7)代表端到端通信,并且下层(L1-L3)代表本地通信。
网络应用感知系统需要处理、过滤并切换L3到L7网络协议层的范围,例如,诸如超文本传送协议(HTTP)和简单邮件传送协议(SMTP)的L7网络协议层和诸如传输控制协议(TCP)的L4网络协议层。除了处理网络协议层之外,该网络应用感知系统需要同时保护访问这些协议通过L4-L7网络协议层有基于访问和内容的安全性,包括防火墙、虚拟专用网络(VPN)、安全套接层(SSL)、侵入检测系统(IDS)、Internet协议安全(IPSec)、防病毒(AV)和在线速下的抗Spam功能性。
提高现在网络世界中网络操作的效率和安全仍旧是网络用户的终极目标。访问控制、流量工程、侵入检测、和许多其他网络服务需要基于包报头的多个域的包的辨别,这被称作包分类。
因特网路由器将包分类,以实现许多高级因特网服务,诸如路由选择、速度限制,防火墙中的访问控制、虚拟带宽分配、基于策略的路由选择、服务分化、负载平衡、流量塑性和流量计费。这些服务需要路由器将进入包分为不同流,然后取决于这些分类执行适当动作。
使用一组过滤器或规则的分类器指定该流或类别。例如,防火墙中的每个规则都可能指定一组来源和目的地址,并且将相应否认或许可动作与其关联。替代地,该规则可能基于包报头的几个域,其包括OSI模型的层2、3、4和5,其中包括地址和协议信息。
在一些类型的专有硬件上,访问控制表(ACL)指下述规则,这些规则被应用于在主机或层3装置上可利用的端口数或网络守护进程名称,其每个都具有一列允许使用服务的主机和/或网络。独立服务器以及路由器都能够具有网络ACL。ACL能够被配置为控制入站和出站流量。
发明内容
根据一个实施例,装置可以包括存储器,其被配置为存储规则编译数据结构(RCDS)。该规则编译数据结构(RCDS)可以表示一组用于包分类的规则。该装置还可以包括被耦合到存储器的处理器。该处理器可以被配置为接收用于RCDS的增量更新,执行规则编译数据结构(RCDS)的主动搜索以将所接收的包分类,并且从正在执行的主动搜索的角度原子地更新规则编译数据结构(RCDS)。该装置还可以包括接口。该接口可以被配置为接收变化列表;该变化列表可以包括增量更新。处理器可以是搜索处理器。该规则编译数据结构(RCDS)可以包括编译规则组,并且更新规则编译数据结构(RCDS)可以包括编译规则组和一个或多个应用的增量更新。更新的规则编译数据结构(RCDS)实现了与更新的RCDS的编译之前的版本相同的性能。
根据一个实施例,装置可以包括存储器和被耦合到存储器的处理器。该处理器可以被配置为包括增量更新模块。该增量更新模块可以被配置为接收增加、删除、或修改规则的操作,并且在存储器中建立变化列表。可以建立变化列表,以在原子级上从利用RCDS的主动搜索过程的角度更新规则编译数据结构(RCDS)。该装置还可以包括接口,并且增量更新模块可以进一步被配置为在接口上传递变化列表。该装置还可以包括被耦合到存储器的编译器模块。该编译器模块可以被配置为接收规则组,并且将该规则组编译为二元树。该编译器模块可以进一步被配置为将二元树存储在存储器中,并且在接口上传递二元树。
根据一个实施例,非瞬时计算机可读介质已经将其上的指令序列编码,这些指令序列在由处理器运行时,使处理器接收用于规则编译数据结构(RCDS)的增量更新。该规则编译数据结构(RCDS)可以代表用于包分类的规则组。该规则编译数据结构(RCDS)可以通过主动搜索过程被利用用于包分类。该处理器可以基于所接收的增量更新原子地更新该规则编译数据结构(RCDS)。可以从利用规则编译数据结构(RCDS)的主动搜索过程的角度原子地更新该规则编译数据结构(RCDS)。
根据一个实施例,一种方法可以接收用于规则编译数据结构(RCDS)的增量更新。该规则编译数据结构(RCDS)可以表示用于包分类的规则组。该规则编译数据结构(RCDS)可以通过主动搜索过程被利用用于包分类,并且从利用RCDS的主动搜索过程的角度,基于所接收的增量更新而原子地更新。
该方法可以将规则编译数据结构(RCDS)的状态约束至于先前状态和后来状态。先前状态可以是在接收用于RCDS的增量更新之前规则编译数据结构(RCDS)的状态,后来状态可以是在已经完成对规则编译数据结构(RCDS)的一系列一个或多个修改之后该规则编译数据结构(RCDS)的状态。可以基于所接收的增量更新,已经完成该系列一个或多个修改。基于对正被搜索的规则编译数据结构(RCDS)执行一个更新,一系列一个或多个修改可以对主动搜索过程可见。
该方法还可以包括:基于增量更新为增加规则操作而原子地将新规则增加到规则编译数据结构(RCDS)、基于增量更新是删除规则操作而原子地从规则编译数据结构(RCDS)删除规则、并且基于增量更新是修改规则操作而原子地修改规则编译数据结构(RCDS)中的规则。修改规则包括下列至少一项。修改规则的优先级或修改规则的至少一个字段。
该方法还可以包括基于与该规则和一个或多个规则的当前优先级排序不一致的规则的优先级变化,识别优先级适配冲突。该方法可以基于未识别的优先级适配冲突而原子地修改该规则的优先级,并且基于识别的出冲突而原子地修改规则的优先级或另一个规则的优先级。
该方法还可以包括确定是否需要增加或删除一个或多个规则,并且增加或删除该一个或多个规则。添加或删除该一个或多个规则是原子的。
该方法还可以包括基于增量更新为指定规则的删除操作而原子地使规则编译数据结构(RCDS)中的指定规则无效。该主动搜索过程跳过无效的指定规则。
该方法还可以包括将规则编译数据结构(RCDS)表示为规则组的树。该树可以是包括一个或多个节点和一个或多个叶片的二进制数据结构。该方法可以包括将一个或多个节点的至少一个表示为母节点并且将母节点链接到一个或多个子点。该一个或多个子点可以是节点或叶片。将母节点链接到一个或多个子点可以包括将母节点指向兄弟列表。该兄弟列表可以包括开一个或多个子点。该方法可以将树的节点链接到树的一个或多个节点或一个或多个叶片。该方法可以将树的叶片链接到一个或多个桶。每个桶都可以代表规则组的子组。每个桶都包括一个或多个对应于规则组的子组的桶条目。该桶条目可以通过提高或降低规则优先级而排序。该方法还可以包括将规则组存储在规则表中。该规则表内的规则可以有序或无序。
该规则编译数据结构(RCDS)可以是性能树。该方法还可以包括维持内务管理树。该内务管理树可以是性能树的增强表示。该内务管理树可以包括在树的每个节点处的规则列表和规则的字段范围。原子地更新该性能树可以包括利用内务管理树,以便基于对正被搜索的性能树的一个更新,使对性能树的一系列一个或多个修改对主动搜索过程可见。
该方法还可以包括建立变化列表,其指定对性能树的一个或多个修改。
该增量更新可以是增加、删除、或修改操作,并且该方法还可以包括为内务管理树中的每个规则都包括规则的覆盖列表。可以建立变化列表,其基于覆盖列表为一个或多个规则指定增加、删除、或修改。该方法可以包括基于所确定的变化列表更新覆盖列表。
该方法还可以包括在每个叶片中维持到一个或多个桶的桶和桶规则计数器的指针。该桶规则计数器可以跟踪桶中包括的规则的数目。该桶规则计数器可以基于规则被增加到桶的而递增。该桶规则计数器可以基于从桶删除规则而递减。
该方法可以包括在每个节点跟踪增量更新的总数。该方法可以在给定节点确定由给定节点代表的规则数目与为给定节点跟踪的增量更新的总数的比率。基于比率大于给定阈值,该方法可以通过重新编译子树来适当调整性能树。
该方法可以包括原子地将新的规则增加到树。该方法可以将树的叶片分为一个或多个新的节点,并且将规则增加到与一个或多个新的节点的一个或多个叶片关联的桶。
每个桶都可以是数据结构,并且一个或多个桶条目可以是规则、到规则的索引、到规则的指针、到规则组的指针、或到另一个桶的指针。
该方法还可以包括原子地将新的规则增加到树,并且从一个或多个桶中识别目标桶以包括新的规则。该方法可以基于确定了目标桶中新的规则空间适配和优先级符合,而将新的规则附加到目标桶的结尾。将新的规则附加到目标桶的结尾花费一个更新。
空间适配可以基于目标桶中规则的当前数目小于用于目标桶的规则的最大数目。
优先级适配可以基于与新的规则关联的优先级与目标桶中的当前规则的优先级排序一致。
该方法还可以包括原子地将新的规则增加到树,从一个或多个桶中识别包括新的规则的目标桶,并且基于确定了与新的规则关联的优先级与目标桶中的规则的优先级不一致而建立新桶。该主动搜索过程不受所建立的新桶影响。该方法还可以包括,在新桶中包括目标桶的规则组、在新桶中包括新的规则、和基于提高或降低优先级顺序来调整规则组和新的规则的顺序。该方法可以更新树中的叶片的链接。该叶片可以与从一个或多个桶中的目标桶链接。该链接更新可以包括将叶片指向新桶。该链接更新花费一个更新。
该方法还可以包括通过从一个或多个桶中识别包括新的规则的目标桶将新的规则增加到树、建立新桶(其中主动搜索过程不受所建立的新桶影响)、在新桶中包括新的规则、并且更新目标桶的桶条目以指向新桶。该桶条目更新花费一个更新。
该方法还可以包括通过从一个或多个桶中识别包括新的规则的目标桶以原子地将新的规则增加到树、并且基于为新的规则确定目标桶中空间不足而建立子树。目标桶中空间不足可以基于用于目标桶的规则组的最大数目而确定。该子树可以包括一个或多个新的叶片或新的节点。该主动搜索过程不受所建立的子树影响。该方法还可以包括将新的规则增加到子树的一个或多个桶、将目标桶的一个或多个规则增加到子树的一个或多个桶、并且通过更新树中的叶片的链接以将子树链接到树。该叶片可以与从一个或多个桶中的目标桶链接。该链接更新可以包括将叶片指向子树,将叶片转换为节点。该链接更新花费一个更新。
该方法还可以包括原子地将新的叶片或新的节点增加到树中的母节点,其中树中的母节点链接到当前兄弟列表。当前兄弟列表可以包括一个或多个叶片或一个或多个节点。该方法还可以包括建立新的兄弟列表。主动搜索过程不受所建立的新的兄弟列表影响。该方法还可以包括将新的叶片或新的节点增加到新的兄弟列表。该新的兄弟列表可以包括当前兄弟列表。该方法还可以包括通过更新母体的链接以将母节点指向新的兄弟列表,来包括新的兄弟列表。该链接更新花费一个更新。
该方法还可以包括保留存储空间的碎片整理部分。存储空间的碎片整理部分可以是指派的碎片整理区域。该碎片整理区域可以是在该存储空间的指派区域保留的存储空间的毗连部分。该方法还可以包括识别RCDS的死区。该死区可以是由至少一个未涉及的叶片、节点、桶、或兄弟列表占据的存储空间的部分。该方法还可以包括通过恢复死区对规则编译数据结构(RCDS)进行碎片整理。主动搜索过程不受所恢复的死区的影响,原子地将规则编译数据结构(RCDS)碎片整理。该方法还包括恢复死区,其包括将存储器的所使用部分重新定位。所使用的部分包括邻近被识别为所指派的碎片整理区域的死区定位的一个或多个节点或叶片。该方法还可以包括将新的兄弟列表移动到所恢复的存储空间。所恢复的存储空间可以包括被识别的死区和重新定位的存储器的所使用部分。该方法还可以包括将重新定位的存储器的所使用部分移动到碎片整理区域,从碎片整理区域出来到为RCDS保留的存储空间的结尾部分。
该方法还可以包括原子地从树删除指定规则,其中桶的桶条目包括指定规则。该方法可以包括通过叶片桶指针将桶链接到叶片,并且使指定规则在桶条目中无效。该方法还可以包括如果桶中全部桶条目均无效,那么通过将叶片桶指针设定为空来更新该链接。使指定规则无效并将叶片桶指针更新为空来花费一个更新。如果叶片桶指针为空,那么主动搜索过程跳过桶。
该方法还可以包括原子地从树删除指定规则,其中桶的桶条目包括指向指定规则的规则指针。该方法可以包括通过叶片桶指针将桶链接到叶片。该方法还可以包括将规则指针设定为空,并且如果桶中全部规则指针均为空,那么通过将叶片桶指针设定为空来更新该链接。将规则指针设定为空并且将叶片桶指针设定为空来花费一个更新。主动搜索过程跳过空的叶片桶指针并且跳过空的规则指针。
该方法还可以包括原子地从树删除指定规则,其中桶的桶条目包括指向包括指定规则的一组一个或多个规则的规则块指针。该方法可以包括通过叶片桶指针将桶链接到叶片、使得指定规则无效、并且如果该组一个或多个规则中的全部规则无效,那么将规则块指针设定为空。该方法还可以包括如果桶中全部桶条目均无效,那么通过将叶片桶指针设定为空来更新该链接。使指定规则无效、将规则块指针设定为空、并且将叶片桶指针设定为空来花费一个更新。主动搜索过程跳过空的叶片桶指针,空的规则块指针、和无效规则。
该方法还可以包括基于从该树删除指定规则原子地增加一个或多个规则。该方法可以包括从一个或多个桶中识别包括新的规则的目标桶。该方法还可以包括基于确定用于新的规则的目标桶中空间不足而建立子树。目标桶中空间不足可以基于为目标桶设定的规则的最大数目来确定。该子树可以包括一个或多个新的叶片或新的节点。该主动搜索过程不受所创建的子树影响。该方法还可以包括将新的规则增加到子树的一个或多个桶、将目标桶的一个或多个规则增加到子树的一个或多个桶、并且通过更新树中的叶片的链接以将子树链接到树。该叶片可以与从一个或多个桶中的目标桶链接。该链接更新可以包括将叶片指向子树,将叶片转换为节点。该链接更新花费一个更新。
该方法还可以包括基于从该树删除指定规则而原子地增加一个或多个规则。该方法还可以包括从一个或多个桶中识别包括新的规则的目标桶,并且基于确定目标桶中新的规则空间适配和优先级适配,将新的规则附加给目标桶的结尾。将新的规则附加给目标桶的结尾花费一个更新。
根据一个实施例,该增量更新是增加规则操作、删除规则操作、或修改规则操作。基于所接收的增量更新来更新规则编译数据结构(RCDS)还可以包括原子地将一个或多个规则增加到RCDS、从RCDS删除一个或多个规则、修改一个或多个规则、或其任何组合。
附图说明
如附图中所说明的,从本发明的实例实施例的下列更特别的描述中前述事项将变得显而易见,在附图中遍及不同视图相同附图标记指代相同部件。附图不需要按比例绘制,而是将重点放在说明本发明的实施例上。
图1是包括网络元件的典型的网络拓扑的方框图,该网络元件可以采用本文中所公开的技术。
图2A说明了原子地更新规则编译数据结构(RCDS)的系统的一个实施例,该系统包括控制面装置和数据数据面装置。
图2B是说明将规则载入存储器结构的编译器模块的实例实施例的方框图。
图3示出搜索处理器的一个实施例的架构。
图4是说明搜索区块或搜索群的实例实施例的方框图。
图5A是用于为按照一个实施例的规则编译数据结构(RCDS)的增量更新的方法的一个实施例的流程图。
图5B是用于表示规则编译数据结构(RCDS)的方法的一个实施例的流程图。
图6A说明了用于按照一个实施例的规则编译数据结构(RCDS)的原子更新的方法的流程图。
图6B说明了由图表表示的规则。
图6C示出了由切割规则空间得到的树的实施例。
图6D示出了规则字段改变的实施例。
图6E示出了由切割规则空间得到的树的实施例。
图6F示出了规则字段改变的实施例。
图6G示出了由切割规则空间得到的树的实施例。
图6H说明了按照一个实施例用于修改规则的方法的流程图。
图7是按照一个实施例增加可以适合桶的规则的流程图。
图8A是按照一个实施例的一个或多个修改的所述系列的流程图。
图8B说明了按照一个实施例的叶片指向桶的树。
图8C示出了根据一个实施例增加优先级比另一个规则更高的规则,可以建立新桶。
图9A是建立子树的方法的实施例的流程图。
图9B说明了树的节点和叶片的实施例。
图9C说明了根据一个实施例的新的子树的创造。
图10A是用于将新的叶片或新的节点原子地增加到树中的亲代节点的方法的一个实施例的流程图。
图10B说明了根据一个实施例的亲代节点及其子点。
图10C说明了将叶片/节点增加到树,按照一个实施例创建增加了叶片/节点的新的兄弟列表。
图11A是根据一个实施例的碎片整理过程的流程图。
图11B说明了具有三级的树的一个实施例。
图11C说明了按照一个实施例增加规则。
图12A是说明了按照一个实施例删除规则的流程图。
图12B示出了按照一个实施例具有规则的规则表。
图13示出了按照一个实施例指向桶和规则计数器的叶片。
图14A说明了用于删除规则的实施例。
图14B示出按照一个实施例合并两个桶,其包括建立一个桶。
图15是说明按照一个实施例用于从所述树原子地删除具体规则的方法的流程图。
图16是按照用于从树原子地删除具体规则的方法的另一个实施例的流程图。
图17是按照用于从树原子地删除具体规则的方法的还另一个实施例的流程图。
图18是按照一个实施例用于树的适当调整的方法的流程图。
图19A说明了用于增加规则的按照另一个实施例的增量更新。
图19B说明了用于将叶片分为节点和多个叶片的根据另一个实施例的增量更新。
图19C说明了用于将桶增加到节点的按照另一个实施例的增量更新。
图19D说明了用于重新编辑子树的按照另一个实施例的增量更新。
图19E说明了用于删除规则的按照另一个实施例的增量更新。
图19F说明了用于改变规则的按照另一个实施例的增量更新。
图19G说明了用于碎片整理的按照另一个实施例的增量更新。
图20是计算机的方框图,其中可以实施本文中所公开的各种实施例。
具体实施方式
接着是本发明的实例实施例的描述。
本文中所引用的全部专利、公开申请和参考文献的教导全部内容通过参考合并。
由于在网络装置中执行的网络应用的数目增加,网络应用的复杂性增加。包分类广泛被用于各种应用,诸如服务感知路由、阻止入侵和流量成形。要求包分类解决方法能够处理在边缘、访问和核心装置上的按指数增加的流量。
图1是包括网络元件的典型的网络拓扑的方框图100,该网络元件可以采用本文中所公开的技术。该网络拓扑包括因特网核心102,其包括多个核心路由器104a-h。多个核心路由器104a-h的每个都连接到多个核心路由器104a-h的至少一个其他路由器。在因特网核心102边缘上的核心路由器104a-h(例如,核心路由器104b-e和104h)与至少一个边缘路由器106a-f耦合。每个边缘路由器106a-f被耦合到至少一个访问路由器108a-e。
该核心路由器104a-h可以被配置为在因特网核心102或因特网主干中工作。该核心路由器104a-h可以被配置为支持因特网核心102的多路电信接口,并且可以进一步被配置为以每个多路电信协议的最大速度运送包。
该边缘路由器106a可以置于因特网核心102的边缘处。边缘路由器106a-f可以将因特网核心102外侧的访问路由器108a-e和因特网核心102中的核心路由器104a-h桥接。边缘路由器106a-f可以被配置为采用桥接协议将包从访问路由器108a-e运送到核心路由器104a-h,反之亦然。
访问路由器108a-e可以是由最终用户(诸如家庭用户或办公室)使用的路由器,以连接到边缘路由器106a-f的一个,该边缘路由器可以通过连接到核心路由器104a-h的一个进而连接到因特网核心102。以这种方式,该边缘路由器106a-f可以经由边缘路由器106a-f和互连的核心路由器104a-h连接到任何其他边缘路由器106a-f。
本文中所述的处理器可以存在于任何核心路由器104a-h、边缘路由器106a-f和访问路由器108a-e中。在这些路由器的每个内的本文中所述的搜索处理器可以被配置为基于规则组来分析(例如,分类)因特网协议(IP)包,并将IP包沿着适当网络通路运送。包分类必须是智能的,以没有显著的性能损失而处理多种类型的规则组。此外,诸如多核心处理器的新的技术提供了前所未有的计算能力,以及高度集成的资源。因此,包分类解决方法必须非常适合于高级硬件和软件技术。
现有的包分类方法用存储器换取时间。尽管该权衡已经不断改进,但是合理的存储器的量所花费的时间仍将通常很差。因为现有方法的问题,出售商使用三进制可按内容寻址的存储器(TCAM),其使用爆破并行硬件同时对着全部规则复查包。TCAM优于现有方法的主要优点是速度和决定论(TCAM为全部数据库工作)。
TCAM是用作完全相关联存储器的硬件装置。TCAM单元存储三个值:0、1、或“X”,其代表不关心位,并且作为使TCAM能够匹配包含通配符(诸如kleen星)的规则的每单元掩码。在工作中,能够将整个包报头呈现给TCAM,以确定其匹配那个条目(规则)。然而,TCAM的复杂性已经只允许消耗大量电力的小的刚性的相对缓慢的执行方式。因此,继续存在对在专业化数据结构上工作的有效方法的需要。
当前方法仍处于数学分析和/或软件模拟(基于观测的解决方法)的阶段中。提出的数学解决方法已经被报告为具有优秀的时间/特别的复杂性。然而,这种类型的方法还未发现在现实的网络装置中有任何执行,因为数学解决方法通常增加特殊条件,以简化问题和/或省略可能隐蔽明确的最坏情况边界的大的恒定因子。提出的基于观测的解决方法采用在规则中观测到的统计特征值,从而为现实应用实现有效解决方法。然而,这些方法通常只对指定类型的规则组有效。因为用于差异应用的包分类规则具有多种特征,所以很少有基于观测的方法能够完全利用不同类型规则组中的冗余,而在各种条件下获得稳定的性能。
可以使用包分类器执行包分类,其也被称作策略数据库、流分类器、或简单地分类器。分类器是许多规则或策略的集合。所接收的包被与规则相匹配,其确定与所匹配的包进行的动作。一般的包分类基于包的报头的多个字段需要路由器将包分类。分类器的每个规则都指定了按照对包报头的“F”个字段的标准包可以属于的分类,并且分类器的每个规则都将标识符(例如,分类ID)与每个分类关联。例如,流分类器中的每个规则都是流说明,其中每个流都在单独的分类中。这个标识符唯一地指定与每个规则关联的动作。每个规则都具有“F”个字段。规则R的第i个字段(被称作R[i])是对包报头的第i个字段的正规表达式。如果对于每个i包P匹配特定规则R,P的报头的第i个领域满足正规表达式R[i]。
由规则指定的分类可以重叠。例如,一个包可以匹配几个规则。在这个情形中,当几个规则重叠时,该规则在分类器中出现的顺序确定规则相对优先级。换句话说,匹配多重规则的包属于由规则中在分类器中首先出现的规则的标识符(分类ID)标识。
本文中所公开的方法可以采用决策树,其被用于将所接收的包与规则相匹配。决策树是决策支持工具,其使用决策的树状图表或模型和其可能的后果,包括随机事件结果、资源成本和实用性。决策树通常被用于操作研究,具体地用于决策分析,以帮助识别很可能达到目标的战略。决策树的另一用途是作为用于计算条件概率的描述性装置。
如本文中所述,诸如搜索处理器的处理器可以使用决策树选择将所接收的包与分类器表中的规则匹配,以确定怎样处理接收的包。在运行时间前,可以离线编辑规则并且下载到搜索处理器中。在运行时间期间,包流过搜索处理器。该搜索处理器可以从包生成密钥,搜索匹配密钥的一个或多个规则,并且返回找到或未找到的匹配的结果。在搜索处理器搜索匹配密钥的一个或多个规则(例如,搜索处理器运行主动搜索过程)的同时,可能存在增加、删除、修改规则的需要——存在增量更新的需要。按照如本文中所公开的技术,该搜索处理器可以增加、删除或改变规则,而在性能(例如,每单位时间搜索多少包)和功能性上不影响搜索处理器搜索匹配密钥的一个或多个规则的能力。
图2A说明了包括控制面装置224和数据面装置226的系统200,该系统200从利用规则编译数据结构(RCDS)214的主动搜索过程212的角度更新了规则编译数据结构(RCDS)214。
控制面装置224可以包括控制面处理器202,其可以包括编译器模块216、增量更新模块210,并可以被耦合到控制面存储器208。该控制面存储器208可以包括二元树218、内务管理树220、和变化列表222。该编译器模块216可以被配置为接收规则文件230,并且被配置为将所接收的规则文件编译为决策树,诸如二元树218(例如,二元数据结构)。
图2B是说明将规则载入存储器结构的编译器模块216的实例实施例的方框图。该编译器模块216接收规则组230。该编译器生成编译规则的二元格式(218)。编译规则的二元格式(218)包括树282、桶284和规则286。该树282包括节点288a-d、叶片节点290a-b和根节点292。树282的每个叶片节点290a-b指向一组桶284的一个。
各桶是数据结构,其可以包括一个或多个桶条目。桶条目可以是规则、到规则的索引、指向规则的指针、指向规则组的指针、或指向另一个桶的指针。桶可以包括条目,其包括上述任何组合。例如,桶可以具有作为指向规则的指针的一个条目和作为指向规则组的指针的一个条目等等。
每个桶都可以包括桶条目,其可以含有规则或块指针296。该规则286可以包括规则294的块。(规则的)块294能够为连续组的规则、或者遍及存储器分散的一组规则,这些规则由多个指针组织或者通过重新收集分散的块294(例如,使用散列函数)。
该二元树218可以通过接口232被下载到数据面装置206。该接口232可以是快速外围部件互连(PCIe)接口、智能接口控制器(I2C)接口、或本领域技术人员可以已知的任何其他适当接口。
该数据面装置可以包括包处理模块234,其包括被耦合到数据面存储器236的数据面处理器204。该包处理模块可以被耦合到分类器模块206,分类器模块206也可以包括在数据面一起226中。该分类器模块206可以包括搜索处理器238,其可以被耦合到搜索处理器存储器240。该数据面处理器204可以由接口耦合到搜索处理器238,该接口诸如因特雷根接口、或本领域技术人员可以已知的任何其他适当接口。
该二元树218可以在接口242上被下载到分类器模块206,并且被存储为规则编译数据结构(RCDS)214,其可以被包括在搜索处理器存储器214中。替代地,该二元树218可以在接口244上被下载到搜索处理器238,并且被存储为规则编译数据结构(RCDS)214。该接口244可以是智能接口控制器(I2C)接口、或本领域技术人员可以已知的任何其他适当接口。
增量更新模块210可以接收规则或规则操作,用于为规则编译数据结构(RCDS)增加、删除或修改规则。该增量更新模块210可以使用二元树218和内务管理树220以建立变化列表222,用于原子地更新规则编译数据结构214。该内务管理树220可以是规则编译数据结构(RCDS)214包括树的附加信息的增大表示,以便为树确定一个或多个更新。
该内务管理树220可以包括并维持用于树中的每个规则的信息,诸如覆盖列表。覆盖列表可以包括由规则覆盖或者因为较高优先级规则不被增加到树的规则组。被覆盖的规则是“无用”规则,因为其不匹配。通过为每个规则维持覆盖列表,该增量更新模块210可以确定什么时候增加或删除规则。例如,如果规则将被删除,那么增量更新模块210可以确定增加先前未增加的一个或多个规则,因为其被现在删除的规则所覆盖。如果该覆盖规则被删除,那么先前的“无用”规则现在可能是有用的,因为存在其被匹配上的可能性。覆盖列表是可以被包括并维持在内务管理树中的规则信息的一个实例,也可以包括其他规则信息,以便帮助增量更新确定树更新。
该变化列表可以指定一个或多个命令用于原子地更新在搜索处理器存储器240中存储的规则编译数据结构(RCDS)214。另一方面,可能的是因为编译器模块216还未编译二元树218而未存储规则编译数据结构(RCDS)214。在这种情形中,增量更新模块210可以建立变化列表222,其建立规则编译数据结构(RCDS)214。该变化列表222可以在接口232上被传递到数据面装置206,然后在接口242上被传递到搜索处理器238。替代地,该变化列表222可以在接口244上被传递到搜索处理器238。该规则编译数据结构214可以由主动搜索过程212用于将所接收的包246分类。
该包处理模块234可以被配置为传输包252并接收包246。该数据面处理器204可以将查找要求248发送到搜索处理器238,并且从搜索处理器238接收结果250。该搜索处理器238可以被配置为通过利用规则编译数据结构(RCDS)214找到匹配包的一个或多个规则(匹配规则)。例如,包可以被分解为部分,诸如报头、负荷量、和尾部。包的报头(或包报头)可以进一步被分解为字段。。该搜索处理器238可以被配置为找到匹配所接收的包的一个或多个部分的一个或多个规则。
该查找要求248可以包括包报头和组标识符(GID)。该GID可以为整体定义/描述表(GDT)中的条目提供索引。每个GDT条目可以包括n个表标识符(TID)、包报头索引(PHIDX)和密钥格式表索引(KFTIDX)。每个TID可以为树位置表(TLT)中的条目提供索引。每个TLT条目可识别查找引擎(例如,搜索处理器),以寻找一个或多个匹配规则。以这种方式,每个TID可以指定谁将寻找一个或多个匹配规则和在哪寻找一个或多个匹配规则。
每个表标识符(TID)也可以为树访问表(TAT)中的条目提供索引。TAT可以被用于这样的背景中,其中在超级群中聚集在一起的许多查找引擎寻找一个或多个匹配规则。每个TAT条目可以在存储器中提供被称作规则表或树的许多规则(或指向规则的指针)的集合的初始地址。术语规则表或规则树(或简单地表或树)遍及本公开可互换使用。TID识别其中寻找一个或多个匹配规则的那个规则集合或规则组,诸如规则编译数据结构214,。
该包报头索引(PHIDX)可以为包报头表(PHT)中的条目提供索引。PHT中的每个条目可以描述怎样从包报头中提取n个数目的密钥。该密钥格式表索引(KFTIDX)可以为密钥格式表(KFT)中的条目提供索引。KFT中的每个条目可以提供指令,用于从n个数目的密钥的每个提取一个或多个字段(例如,包报头的部分),这些字段是从包报头提取的。
每个所提取的字段与每个TID一起可以用于寻找规则子组,所有这些都是从查找要求导出的。每个子组包括可以有可能匹配每个所提取字段的规则。每个子组的每个规则可以对着所提取字段比较。匹配的规则可以在答复(例如,查找答复)中提供作为结果250。
如上所述该查找要求及其列举阶段被提供以仅仅为了展示概念。这些概念可以以许多方式实施。例如,按照本发明的实例实施例,这些概念可以由搜索处理器实施,诸如搜索处理器212。
图3示出了实例搜索处理器300的架构,其被提供以用来找到与用于包分类的包的一个或多个部分匹配的一个或多个规则,这可以被称作“规则处理”。除了其他部件外,该处理器包括接口302(例如因特雷肯LA接口),以从主机(例如,数据面处理器204)接收请求并且将答复发送给主机;查找前端(LUF)304a-b,以处理、计划、并命令请求和答复;查找引擎(LUE)306a-h,以寻找规则、给定请求,其匹配用于包分类的匹配密钥;存储器沃克聚合器MWA308和存储器区块控制器(MBC)310a-b,以协调位于处理器外部的存储器(未示出)的读取和写出;和桶后处理器(BPP)312a-b,以寻找规则,这些规则被存储在位于处理器外部的存储器(未示出)中,这些规则匹配用于包分类的密钥。
如图3所示,LUE与片上存储器314a-h相关联。在图3中也示出,多个LUE306a-h和其关联的片上存储器314a-h与横杆装置316一起组织为超级群SC0318。该实例搜索处理器可以具有超过一个这种超级群(例如,SC0318和SC1320)。
图4是说明搜索区块或搜索群410的实例实施例的方框图400。为了突出实例搜索处理器的工作,参考图2A,搜索群410包括片上存储器(OCM)408、树径引擎(TWE)404、桶径引擎(BWE)414和多个规则匹配引擎(RME)420a-c。OCM408将规则编译数据结构(RCDS)存储为树数据结构,桶存储数据结构和块和/或规则数据结构。在本文中,术语树和规则编译数据结构(RCDS)可互换使用。该树数据结构可以包括该桶存储数据结构和块和/或规则数据结构。
该搜索群410在TWE404从LUF304a-b(图3)接收密钥402。TWE404发出并接收到OCM408的多个树输入/输出(I/O)通路406。基于密钥402,该TWE404使树从根节点行走到可能的叶片节点。如果TWE404未发现适当的叶片节点,那么TWE404发出非匹配412(例如,非匹配)。然后,如果TWE404发现适当的叶片节点,那么叶片节点能够指示指向桶的指针410。TWE404为BWE414提供指向桶的指针410。BWE414通过将I/O通路416发出到OCM408访问OCM408。该桶I/O通路416为BWE414取回指向块的至少一个指针418。BWE414将指向块的指针418提供到多个RME420a-c的一个。选定的RME420a-c的一个也接收密钥402。多个RME420a-c的每个都被配置为使用指向块的指针418从OCM中的块下载适当规则以分析密钥402,来发出规则和/或块I/O通路424给OCM408。然后,RME420a-c使用从OCM408访问的规则来分析密钥,并且对应于密钥是否由OCM408中存储的树和桶指示的匹配规则或块,来发出答复或非匹配422a-c。
已经提供搜索处理器的综述及其查找请求的执行方式(参考图1),现在描述用于规则编译数据结构(RCDS)214的增量更新的实施例。如上所述,该搜索处理器应该增加、删除或改变规则,并且按照性能(例如,每单位时间搜索多少包)和功能性两者,不影响搜索处理器搜索一个或多个匹配密钥的规则。
图5A是按照一个实施例的方法500的流程图,其开始(502)并可以为规则编译数据结构(RCDS)接收增量更新。该规则编译数据结构(RCDS)可以表示用于包分类的规则组。从主动搜索过程利用规则编译数据结构(RCDS)(506)和结尾(508)的角度,该规则编译数据结构(RCDS)可以通过主动搜索过程利用而用于包分类,并且基于所接收的增量更新而原子地更新。
图5B是按照一个实施例表示规则编译数据结构(RCDS)的方法520的流程图。该规则编译数据结构(RCDS)可以被表示为规则组的树,该树可以是包括一个或多个节点和一个或多个叶片的二元数据结构(524)。一个或多个节点的至少一个可以被表示为母节点,并且被链接到一个或多个子点,该一个或多个子点可以是节点或叶片(526)。该母节点可以通过将母节点指向包括一个或多个子点的兄弟列表,而被链接到一个或多个子点。该树的节点可以被链接到该树的一个或多个节点和一个或多个叶片(528)。该树的叶片可以被链接到一个或多个桶,每个桶都可以表示规则组的子组,每个桶都可以包括对应于规则组的子组的一个或多个桶条目。该桶条目可以通过提高或降低规则优先级来排序。存储规则组可以被存储在规则表中,规则表内的规则是有序或无序的(532)并且该方法结束(534)。
关于功能性,在搜索处理器执行搜索的同时,搜索处理器应该发现在增加、删除或者修改规则“之前”或“之后”的规则(或规则表)的状态。该搜索处理器不应该发现规则的状态处于将在增加、删除或修改规则“之前”和“之后”之间的一些中间状态。例如,情形不应为,在搜索时,搜索处理器发现有规则在某些时间因为规则更新而匹配密钥。如上所述,在不影响功能性或性能的情况下规则的添加、删除或修改被认为是“原子”更新、或“原子地”更新。
执行原子更新(或原子地更新)的挑战是任何规则的增加、删除或修改可以进行超过一个更新而完成。一些规则不能在单个更新中增加、删除或修改(例如,通过简单地改变规则中的比特,规则不能被增加、删除或修改)。
图6A说明了按照一个实施例用于原子更新(600)的方法的流程图。该方法开始(602)。该规则编译数据结构(RCDS)的原子更新可以包括将规则编译数据结构(RCDS)的状态限制于先前状态和后来状态。先前状态为接收用于规则编译数据结构(RCDS)的增量更新之前该规则编译数据结构(RCDS)的状态(604)。该规则编译数据结构(RCDS)可以由主动搜索过程利用(606),并且可以接收增量更新(608)。可以基于所接收的增量更新,完成该系列一个或多个修改(610)。可以预先形成规则编译数据结构(RCDS)的一个更新(612)。后来状态为已经完成(614)对规则编译数据结构(RCDS)的一系列一个或多个修改之后该规则编译数据结构(RCDS)的状态。可以对正在搜索的主动搜索过程而言可见的(基于对正在搜索的规则编译数据结构(RCDS)执行一个更新)做出一系列的一个或多个修改。该方法可以结束(618)。
根据本文中所公开的技术,从搜索处理器执行主动搜索的角度,增加、删除和修改规则似乎花费一个更新。该规则编译数据结构(RCDS)、或规则的树或树,代表规则组。该树是具有节点和叶片的二元数据结构。树的每个叶片指向规则的子组,被称作规则的桶、或桶。每个桶代表规则的子组。每个桶都是数据结构(例如,阵列),其含有规则、指向规则的指针、指向规则的块的指针、或其任何组合,这些可以被存储在规则表中。桶内的规则(或指向规则的指针)按优先级排序(例如,以优先级提高或降低)。规则表是含有规则的数据结构(例如,阵列)。该规则表内的规则可以有序或无序。
除了其他内容以外,规则具有优先级和一个或多个字段。以这种方式,修改规则包括修改优先级和/或一个或多个字段。为了描述修改规则的优先级,根据一个实施例提供下列实例。
网络路由器可以维持被称作为“白列表”中的规则,用于允许来自特定网络的流量。这白列表也可以包括用于从全部网络放下流量的规则,被称作“默认路由器”或“默认规则”。该规则可以按优先级排序,以便该路由器首先对着最高优先级规则比较流量,并且如果没有发现匹配,那么接着对着次高级优先级规则比较流量。该路由器可以继续比较、沿规则列表向下进行,直到发现匹配或者直到路由器到达最低优先级规则,在这个情形中,流量放下在该省缺路径中。
这白列表可以妥协,并且路由器可以允许冒犯流量。与经历每个规则发现允许冒犯流量(其可以是费时的)的规则相反,路由器的操作人员或管理人员可以通过将默认路径的优先级从最低变为最高优先级,而“重新按优先级排序”该规则。给定默认路径最高优先级停止了包括冒犯流量的全部流量。
根据一个实施例,修改规则的优先级包括确定改变规则的优先级是否与另一个规则的优先级冲突或重叠。使用上面的白列表实例,假定最高的优先级规则具有0的优先级并且不存在高于0的优先级。如果默认路径的优先级被改变为0,那么存在冲突。在有冲突优先级的情形,如前所述,删除规则,然后如上所述增加规则。在没有冲突优先级的情形中(例如,最高优先级规则具有1的优先级,并且默认路径的优先级被转换为0),该规则的优先级被修改,而不删除和增加规则。为了描述修改规则的字段,根据一个实施例提供下列实例。
图6B说明了具有“n”个字段的规则,“n”个字段能够由“n”维图表表示,其中每个字段由维表示。例如,图6B将两个规则R1和R2示为方框。在图6B的实例说明中,每个规则具有两个字段X和Y,这些在图6B中表示为维X和维Y。沿着维X的边代表用于字段X的值(或前缀)的范围。例如,如图6B中所示,沿着维X表示R2的方框的边表示15-30的范围的字段X。同样,沿着维Y的边代表用于字段Y的值(或前缀)的范围。例如,如图6B中所示,沿着维Y表示R2的方框的边表示20-40的范围的字段Y。图6B如所示,其图表可以通过用“切割线”“切割”含有R1和R2的规则空间而被表示为树,其具有节点和叶片。
图6C示出了由切割规则空间得到的树,所述规则空间包括如图6B中所示的R1和R2。该树具有根节点(RN)、节点(N)、和叶片(L1、L2和L3)。N指向表示规则R1和R2的叶片。叶片L1指向含有规则R1的桶;叶片L2指向含有规则R1和R2的桶;和叶片L3指向不含有规则的桶。
图6D为该规则R2示出了从15-30变化到10-30的字段X的范围。
图6E示出了通过与图6B的相同的切割线切割规则空间得到的树,所述规则空间包括R1和“修改的”规则R2。如图6C和9e示出,修改规则R2的字段X需要将规则R2增加到由叶片L1指向的桶并增加到由叶片L3指向的桶。如上所述,通过本文中所公开的技术,该规则可以被增加到桶。
图6F为该规则R2示出了从20-40变化到30-40的字段Y的范围。
图6G示出了用与图6B的相同的切割线切割规则空间得到的树,所述规则空间包括R1和“修改的”规则R2。如图6C和6E示出,修改规则R2的字段Y需要从由叶片L2指向的桶删除规则R2。如上所述,通过本文中所公开的技术,该规则可以从桶删除。
图6H说明了按照一个实施例用于修改规则的方法630的流程图。该方法通过接收用于规则编译数据结构(RCDS)的增量更新开始(632)。如果增量更新是增加规则操作(636),那么根据本文中所示的实施例,新的规则可以原子地增加到规则编译数据结构(RCDS)(638),并且方法结束(662)。如果增量更新是删除规则操作(640),那么根据本文中所示的实施例,新的规则可以原子地从规则编译数据结构(RCDS)删除(638),并且方法结束(662)。可以进行检查,以确定增量更新是否是改变规则操作(644)。修改规则可以包括下列至少一项:修改规则的优先级或修改规则的至少一个字段。
如果该规则将被修改,可以进行检查,以确定增量更新是否将被修改(646)。如果优先级将被修改,那么可以进行检查,以基于与该规则和一个或多个规则的当前优先级排序不一致的规则的优先级变化,识别优先级适配冲突(648)。如果没有识别该优先级适配冲突,那么规则的优先级可以原子地修改(658),并且方法结束(662)。如果识别出该优先级适配冲突,那么规则的优先级和另一个规则的优先级可以原子地修改(656),并且方法结束(662)。如果该优先级没有修改,那么可以进行检查,以确定规则的至少一个字段是否将被修改(650)。如果没有,该方法结束(662)。如果至少一个字段将被修改,那么可以进行确定,用于识别需要被增加或删除的一个或多个规则(652)。在一些情形中,修改规则的字段可以涉及修改字段而未增加或删除规则。可以进行检查,以确定另一个字段是否正在被修改(654),并且迭代以识别需要被增加或删除的一个或多个规则(652)。如果没有更多字段将被修改,那么所确定的一个或多个规则可以被增加或删除,或者增加或删除所确定的一个或多个规则是原子的(660),并且该方法结束(662)。
规则可以被增加到桶,直到达到上限。将能够被增加到桶的规则的数目封顶避免了将树的二元搜索制成桶的线性搜索。当达到上限时,能够这样说,桶中不存在能增加规则的“空间”。当将规则增加到按照空间和优先级两者“适合”的桶时,该规则仅被简单地增加到桶的末尾。该规则及其优先级被附加到规则表。规则可以包括它的优先级。
通过包括规则优先级,其可以不需要在存储器中慢慢移动(移动)规则,以便实现具体的优先级顺序。根据一个实施例,相反,规则的优先级可以被更新。规则优先级可以被分配在区块中。孔(例如,优先级差)可以存在与桶的规则之间。可以基于确定存在的孔来确定优先级适配。如果规则的更优先级适配在优先级孔中,那么其他规则可以不需要将其优先级调整。另外,如果该规则没有争夺匹配,那么桶中包括的规则(经由如本文中所公开的指针直接或间接地)可以具有相同优先级。即使规则的优先级正被修改为与桶中另一个规则相同,也可以确定优先级适配。
图7是增加可以适合桶的规则的流程图700。该方法开始(702),并且从一个或多个桶中识别包括新的规则的目标桶(704)。进行检查以确定是否存在空间适配(706)。空间可以基于用于桶中可以包括的桶条目的数目的可调整阈值。如果存在空间适配,那么进行检查以确定是否存在优先级适配(708)。如果存在空间适配和优先级适配,那么该新的规则可以被附加到目标桶的结尾。将新的规则附加给目标桶的结尾算花费一个更新(710)。如果不存在空间适配或优先级适配,那么可以确定一系列的一个或多个修改(712),并且方法结束(714)。
例如,根据一个实施例,当将规则增加到不适合优先级法则(例如,将规则增加到桶的结尾导致不正确的优先权顺序)的桶时,建立“新的”桶。该新桶可以包括来自“旧的”桶的规则和以正确优先级顺序增加的新的规则。从树(叶片)到旧的桶的链接可以用从树到新桶的新的链接替换。在一个更新中完成建立到新桶的这个新的链接(其为增加新桶的一个部分),以免影响性能或正在树上执行的任何主动搜索。
图8A是如果将规则增加到桶不适合优先级法则,那么按照一个实施例确定一个或多个修改的系列的流程图。该方法开始(800)开始(802),并且从一个或多个桶中识别包括新的规则的目标桶(804)。可以针对新的规则是否适合优先级法则进行检查(816)。如果新的规则不适合,那么可以基于确定与新的规则关联的优先级与目标桶中的规则的优先级排序不一致,建立新桶(806)。该主动搜索过程不受所创建的新桶影响。目标桶的规则组可以被包括在新桶中(808)。可以基于提高或降低优先级顺序来调整该规则组和新的规则的顺序(810)。树中的叶片的链接可以被更新以将叶片指向新桶,该链接修改算花费一个更新(812),并且方法结束(814)。
图8B说明了叶片822指向826桶824的树820。该(旧的)桶包括(按照优先级降低顺序的)规则R1、R5和R7。
图8C示出了根据一个实施例为了增加优先级比另一个规则R7834更高的规则R2832,建立新桶836。该新桶836包括按照优先级降低顺序的规则R1、R2、R5和R7。在一个更新中,使叶片指向838新桶836,而不是旧的桶824。
当在桶中不存在增加规则的空间时,根据一个实施例,建立子树,该规则被增加到子树的桶,并且树的叶片被更新为指向子树。
图9A是建立子树并且原子地将新的规则增加到该树的方法的实施例的流程图(900)。该方法开始(902),并且从一个或多个桶中识别包括新的规则的目标桶(904)。针对用于新的规则的桶中的空间适配进行检查(906)。目标桶中空间不足可以基于为目标桶设定的可调节的最大规则数目来确定。.如果存在空间,该方法结束(916),并且可以根据本文中所公开的其他实施例增加规则。如果不存在空间适配,可以基于确定用于新的规则的目标桶中空间不足来建立子树,该子树可以包括一个或多个节点和叶片(908)。该主动搜索过程不受所创建的子树影响。该新的规则可以被增加到子树的一个或多个桶(910)。目标桶的一个或多个规则可以被增加到子树的一个或多个桶(912)。该子树可以通过更新将树的叶片指向子树的链接被链接到树(914)。例如,通过将叶片指向子树,可以更新具有到一个或多个桶中的目标桶的链接的叶片,因此将叶片转换为节点。该链接更新花费一个更新,并且该新的规则可以被原子地增加到树。
图9B说明了树的节点和叶片。母节点950指向包括节点和叶片的兄弟列表952(例如,子点的列表)。叶片954(未示出)指向956具有八个规则的桶958。在一个实施例中,每个桶的规则的数目被限制为八。不存在将另一个规则(例如,第9个规则)增加到桶的空间。根据一个实施例,建立子树。
图9C说明了根据一个实施例建立新的子树960。通过将叶片指向964可以包括叶片和节点的新的兄弟列表966,叶片954可以被转换为节点。该规则可以被增加到子树960的一个或多个桶962a-b(例如,使用如本文中所公开的增加规则机制的一个)。
建立子树可以花费比一个更新更多的时间,但是其不影响搜索的性能和功能性。尽管正在建立子树,但是子树和树彼此分开并且不同。因此,该树可以仍旧被搜索,而未搜索子树。一旦建立子树,该叶片就被更新为指向子树,而不是桶,使叶片为树的节点。更新叶片(其为增加新的子树的一个部分)花费一个更新并且为原子的。因为该树在更新后包括子树,所以树的搜索包括增加的规则。
如早前描述的,树表示规则组。当将规则的新的“区域”增加到该设定(例如,切割规则)时,叶片被增加到树,或者在一些情形中,节点被增加到树。根据一个实施例,将叶片/节点增加给树包括建立节点和叶片的兄弟列表,其包括叶片/节点正被增加以及随后将母节点更新为指向兄弟列表。
图10A是用于将新的叶片或新的节点原子地增加到树中的亲代节点的方法的一个实施例的流程图(1000)。树中的母节点被链接到当前兄弟列表;该当前兄弟列表可以包括一个或多个叶片或一个或多个节点(1004)。如果没有进行确定以将新的叶片或新的节点增加到母体,那么该方法结束(1014)。如果进行确定以增加新的叶片或新的节点并且主动搜索过程不受所建立的新的兄弟列表的影响,那么可以建立新的兄弟列表(1008)。新的叶片或新的节点可以被增加到新的兄弟列表,该新的兄弟列表可以包括当前兄弟列表(1010)。通过更新将母节点指向新的兄弟列表的母体的链接,该新的兄弟列表可以被包括在树中(1012)。该链接更新花费一个更新,并且该方法结束(1014)。
图10B说明了母节点1050和它的子点,其为由节点1050指向1060的兄弟列表1052中布置的节点和叶片。叶片指向规则的桶1064a-c(未示出)。根据一个实施例,为了增加叶片/节点到树,能够建立具有所增加的叶片/节点的新的兄弟列表。
图10C说明了为了将叶片/节点增加到树,按照一个实施例创建具有增加的叶片/节点的新的兄弟列表。例如,一旦建立新的兄弟列表1054,该母节点1050就被更新为指向1058新的兄弟列表,而不是指向1060旧的兄弟列表1052。新叶片1066被包括在新的兄弟列表1054中。该新的叶片1066指向规则的新桶1064d(未示出)。将该母节点1050更新为指向1058到新的兄弟列表1054花费一个更新,并且为原子的。
当首先建立规则的树(节点和叶片)和规则的桶时,这些在存储器中为毗邻的,例如其占据存储布局,在一个存储器地址开始并且在另一个存储器地址结束。随着时间过去,如上所述,增加和删除规则导致不再参考的“旧的”叶片和“旧的”桶。这在不使用的存储器的存储布局中建立“孔”或“孔洞”。该存储布局因此说是片断的。为了恢复存储布局中的这些孔或孔洞,使用整理碎片或整理碎片机理。像如上所述的增量更新机制,从搜索处理器执行主动搜索的角度,该碎片整理机构是原子的,并且看起来花费一个更新。
图11A是根据一个实施例的碎片整理过程的流程图(1100)。根据一个实施例,碎片整理可以包括为碎片整理过程保留存储器的一些部分(例如,整理碎片区域或指派区域)。通过保留存储空间的碎片整理部分,该方法开始(1102),存储空间的碎片整理部分可以是指派的碎片整理区域,其为在存储空间的指派区域处保留的存储空间的连续部分(1104)。可以识别规则编译数据结构(RCDS)的死区(1106)。该死区可以是由至少一个未涉及的叶片、节点、桶、或兄弟列表占据的存储空间的部分。恢复该死区可以包括重新定位存储器的所使用部分,该所使用部分包括邻近被识别为指派碎片整理区域的死区定位的一个或多个节点或叶片(1110)。
新的兄弟列表可以被移动到恢复的存储空间(1112)。所恢复的存储空间可以包括被识别的死区和重新定位的存储器的所使用部分。存储器的所使用部分可以被从碎片整理区域中被重新定位到为规则编译数据结构(RCDS)保留的存储空间的结尾部分(1114),并且方法结束(1116)。可以通过恢复死区对规则编译数据结构(RCDS)进行碎片整理,主动搜索过程不受所恢复的死区的影响,因为规则编译数据结构(RCDS)被原子地碎片整理。
图11B说明了具有三级1152a-c的树1150,每级都包括一个或多个节点1154a-f。每个节点占据存储器的单元。在树1152a的级一,存在一个节点1154a,根节点,其占据存储器的一个单元。该母节点指向1160包括四个节点(1154b)的兄弟列表1160。在树的级二,存在四个节点(1154b),为根节点的子节点,其占据存储器的四个单元。在树的级三,存在八个节点(1154c-f),根节点的孙节点,其占据存储器的八个单元。
图11C说明了在树的级二处增加规则(1152b),根据一个实施例其包括建立六个节点的新的兄弟列表,其占据存储器的六个单元。该新的兄弟列表1170不能在由树的“旧的”级二(1152b)占据的存储空间中建立,因为没有足够的空间,需要存储器的六个单元,但是仅刻得到存储器的四个单元(连续存储器)有效。
存储空间1158示出连续的存储单元1154a'-f',其对应于节点1154a-f。存储空间1156a和1156b被分派新的兄弟列表1170,并且更新节点1154a链接,以便其不再指向1157旧的兄弟列表1154b,而是改为指向1174位于存储单元1156a-b中的新的兄弟列表1170。该链接更新花费一个更新,并且是原子的。由树的“旧的”级二占据的存储空间1154b'现在未用,并且示出为“死区”的实例。
为了恢复该死区(例如,在这个实例中四个存储单元),可以通过在存储器中将死区之后的一个或多个节点死区移动到死区1154b',作出用于新的兄弟列表(六个存储单元)的空间(即,在树1152c的级三的两个节点,其占据两个存储单元1154c'-d')。通过将存储单元复制到不同的位置并更新节点链接来移动节点。为移动的每个节点更新节点链接花费一个更新,并且是原子的。然后,可以通过将存储单元1154e'-f'复制到1154c'-d',然后在一个更新中原子地更新相应链接,来移动节点1154e和1154f。通过将1156a和1156b复制到指派碎片整理区域1172,例如通过将1156a和1156b复制到1156a'和1156b',该新的兄弟列表1170可以被移动。从1154a到新的兄弟列表1170的链接然后可以在一个更新中更新,并且是原子的。通过将1156a'和1156b'复制到存储单元1154e'-f和需要的1156a的两个节点部分,可以再次移动现在位于碎片整理的新的兄弟列表1170。通过将节点1154a链接更新为指向重新定位的新的兄弟列表1170,可以移动新的兄弟列表。因此,现在恢复了该死区并且以毗连的方式利用存储器。可选地,被移动到整理碎片区域的一个或多个节点可以被移动出整理碎片区域,到由树占据的存储布局的结尾。
根据一个实施例,删除规则可以包括使规则表中的规则无效。
图12A是说明了按照一个实施例删除规则的流程图(1200)。该方法开始(1210),并且确定规则将被删除(1212)。如果未删除规则,那么方法结束(1220)。如果该规则正被删除,那么作出确定以使该规则无效(1214)。如果该规则没有无效,那么方法结束(1220)。基于增量更新为指定规则的删除操作,原子地删除规则编译数据结构(RCDS)中的指定规则。通过将对应于规则的有效位设定为无效,该规则在一个更新中被无效。主动搜索过程跳过无效的指定规则(1218),并且该方法结束(1220)。
图12B示出了具有规则R1、R2、R3和R4的规则表1202。有效位1204可以与每个规则关联。将给定规则的有效位(例如,R1)设定为(I)NVALID1206将规则识别为无效规则。当规则匹配引擎(RME)对着密钥(或其他数据)比较规则时,该RME跳过无效规则,并且有效地删除该规则。
树的叶片可以包括指向规则的桶(bPTR)的指针和桶中的规则数目(nRule)的计数器。桶中的规则数目的计数器可以被包括并维持在内务管理树220中。
图13示出了具有到桶的指针bPtr1304的叶片1302和规则计数器nRule1306。当删除(无效)来自桶的规则时,该nRule计数器1306可以递减。当该nRule计数器1306到达零时,叶片被认为具有零规则。bPtr1304可以被设定为空。
当树径引擎(TWE)行走树时,该TWE跳过桶指针被设定为空(例如,叶片指向具有零规则的桶)的叶片。通过跳过叶片,由叶片指向的桶(与叶片关联的桶)未被通过到桶行走引擎(BWE)而用于处理,并且可以通过将桶指针设定为空,删除该桶。
图14A说明了用于删除规则的实施例。图14A说明了当删除规则时,规则的两个或多个桶可以被合并为新桶。图14A示出母节点和它的子点、叶片L1和L2和节点N1和N2。子点被组织为在由母体1402指向1406的兄弟列表1404。叶片L1和L2的每个都指向5个规则(未示出)的桶1408a-b(B1和B2)。从每个桶删除规则,在每个桶中留下四个规则。
图14B示出,根据一个实施例,为了合并两个桶,包括用八个剩余规则建立桶B’1408c并且建立指向新桶B’1408c的新的叶片L'1410。建立包括L’的新的兄弟列表1412。该母节点1402被更新为指向1414新的兄弟列表(L’、N1、N2)1412,而不是旧的兄弟列表(L1、L2、N1、N2)1404。更新母节点花费一个更新(其为合并桶的一个部分),并且为原子的。如后面更详细描述的,合并桶可以使一个或多个子树被重新编译。
图15是说明用于原子地从树删除指定规则的方法的流程图,其中桶的桶条目包括指定规则(1500)。该方法开始(1502),并且该桶通过叶片桶指针链接到叶片(1504)。该桶包括为指定规则的桶条目(1506)。进行检查,用于删除指定规则(1508),如果规则未被删除,那么方法结束(1516)。如果该指定规则将被删除,那么桶条目中的指定规则可以被无效(1510)。然后,可以进行检查,以确定是否桶中的全部桶条目均无效(1512)。如果该桶含有至少一个有效条目,那么方法结束(1516)。如果桶中的全部桶条目都无效,那么通过将叶片桶指针设定为空,可以更新到桶的链接(1514)。使指定规则无效并将叶片桶指针更新为空来花费一个更新。此外,如果叶片桶指针为空,那么主动搜索过程可以跳过桶。
图16是按照用于原子地从树删除指定规则的方法的另一个实施例的流程图,其中桶的桶条目包括指向指定规则的规则指针(1600)。该方法开始(1602),并且该桶通过叶片桶指针链接到叶片(1604)。该桶包括为指向指定规则的规则指针的桶条目(1606)。进行检查,用于删除指定规则(1608),如果规则未被删除,那么方法结束(1616)。如果该指定规则要被删除,那么该规则指针被设定为空(1610)。可以进行检查,以确定是否桶中的全部桶条目均无效(1612)。如果该桶含有至少一个有效条目,那么方法结束(1616)。如果桶中的全部桶条目都无效,那么通过将叶片桶指针设定为空,可以更新到桶的链接(1614)。将规则指针设定为空并且将叶片桶指针设定为空花费一个更新,其中主动搜索过程跳过空叶片桶指针并且跳过空规则指针。
图17是按照用于原子地从树删除指定规则的方法的还另一个实施例的流程图,其中桶的桶条目包括指向包括指定规则的一组一个或多个规则的规则块指针(1700)。该方法开始(1702),并且该桶通过叶片桶指针链接到叶片(1704)。该桶包括桶条目,其为指向包括指定规则的一组规则的规则块指针(1706)。进行检查,用于删除指定规则(1708)。如果该规则未被删除,那么方法结束(1720)。如果该指定规则要被删除,那么桶条目中的指定规则可以被无效(1710)。可以进行检查,以确定是否该组中的全部规则均无效(1712)。如果不是,该方法结束(1720)。如果该组中全部规则均无效,那么规则块指针可以被设定为空(1714)。可以进行检查,以确定是否桶中的全部桶条目均无效(1716)。如果该桶含有至少一个有效条目,那么方法结束(1720)。如果桶中的全部桶条目都无效,那么通过将叶片桶指针设定为空,可以更新到桶的链接(1718),并且该方法结束(1720)。使指定规则无效、将规则块指针设定为空、并且将叶片桶指针设定为空来花费一个更新。主动搜索过程跳过空叶片桶指针、空的规则块指针、无效(例如,被无效的)规则。
如上所述,在增加、删除和修改规则、节点时,可以增加、删除、分开或合并树的节点、叶片和/或桶。与当第一次编译该树时的该树相比,该树可以变为在深度和存储的意义上小于理想的。例如,树可以表示100个规则。100个规则的树可以被分为4个叶片/节点和平均结果,每个叶片/节点25个规则。如本文中实施例所述,可以删除规则,并且可以合并两个或多个桶。合并可以将叶片/节点的数目从4减少到3,并且结果平均,每叶片/节点33个规则。可以形成一个或多个子树。为了在深度和存储的意义上“改进”该树,在增量更新后,可以重新编译树的部分或子树。
根据一个实施例,重新编译子树被称为“树的适配调整”,其包括用在树的每个节点处的计数器进行的对更新数目的跟踪。例如,该内务管理树220可以包括保持该更新计数器。对于给定节点,可以从为给定节点跟踪的更新数目和由给定节点表示的规则数目确定比率。当用于给定节点的这个比率大于一值(例如可以由反馈机制预先配置或动态配置)时,可以重新编译给定节点的子树。
图18是按照一个实施例用于树的适配调整的方法的流程图(1800)。该方法开始(1802)。可以在每个节点跟踪增量更新的总数(1804)。可以确定由给定节点代表的规则数目与为给定节点跟踪的增量更新的总数的比率(1806)。可以进行检查,以确定比率是否大于阈值。如果该比率是小于或等于该阈值,那么方法结束(1816)。如果该比率大于该阈值,那么可以通过重新编译子树来调整(1810)。可以进行确定,以便为给定节点调整阈值(1812),并且可以调整阈值(1814),并且该树可以由比率和(经调整)阈值的另一个检查迭代地调整。如果该比率是小于或等于该阈值,那么方法结束(1816)。
图19A说明了用于增加规则的按照另一个实施例的增量更新(1900)。
图19B说明了用于将叶片分为节点和多个叶片的根据另一个实施例的增量更新(1902)。
图19C说明了用于将桶增加到节点的按照另一个实施例的增量更新(1904)。
图19D说明了用于重新编译子树的按照另一个实施例的增量更新(1906)。
图19E说明了用于删除规则的按照另一个实施例的增量更新(1908)。
图19F说明了用于修改规则的按照另一个实施例的增量更新(1910)。
图19G说明了用于碎片整理的按照另一个实施例的增量更新(1912)。
图20是计算机2000的内部结构的方框图,其中可以实施本发明的各种实施例。计算机2000包括系统总线2479,其中总线是一组用于在计算机或处理系统的部件之间数据传送的硬件线。总线2479本质上是共用管路,其连接计算机系统的不同元件(例如,处理器、存储磁盘、存储器、输入/输出端口、网络端口等),使得信息能够在元件之间传送。I/O装置接口2482连到系统总线2479,I/O设备接口2482用于将各种输入输出装置(例如,键盘、鼠标、显示器、打印机、话筒等)连接到计算机2400。网络接口2486允许计算机2400连接到各种其他连到网络的装置。存储器2490为计算机软件指令2492a和数据2494a提供易失性存储。存储磁盘2495为计算机软件指令2492b和数据2494b提供非易失性存储。中央处理单元2484也连到系统总线2479,并且保证计算机指令的运行。
该处理器例行程序2492a-b和数据2494a-b是计算机程序产品,其包括计算机可读介质(例如,可移去存储介质,诸如一个或多个DVD-ROM、CD-ROM、磁盘、磁带等),其为本发明的系统的实施例提供至少一份软件指令。计算机程序产品2492a-b可以由本领域中众所周知的任何适当的软件安装程序安装。在另一个实施例中,至少一部分软件指令也可以通过线缆、通信和/或无线连接下载。
进一步,本发明的实施例可以以各种计算机架构来实施。图20的通用计算机是用于说明的目的,而非本文公开的任何技术的限制。
尽管本发明已经特别参考其实例实施例示出并描述,但是本领域技术人员将理解,在这里可以进行各种形式和细节的变化,而不偏离由附加权利要求涵盖的本发明的保护范围。
实施例可以在硬件、处理器、软件、固件或上述任何组合中执行。实施例也可以被执行为非瞬时机器可读介质上存储的指令,其可以被读取并由一个或多个程序运行。非瞬时机器可读介质可以包括用于以由机器(例如,计算装置)可读的格式存储或传输的信息的任何机构。例如,非瞬时机器可读介质可以包括只读存储器(ROM);随机访问存储器(RAM);磁盘存储介质;光存储介质;闪速存储器装置等。进一步,固件、软件、例行程序、或指令在本文中可以被描述为运行某些动作。然而,应该理解,这些描述仅仅是为了方便起见,并且这些动作实际上由计算装置、处理器、控制器、或运行固件、软件、例行程序、指令等的其他装置引起。
如本领域技术人员将理解,本文中所公开的技术可以涵盖为系统、方法或计算机程序产品。因此,本文中所公开的技术可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等等)或结合软件和硬件方面的实施例的形式,这些可以在本文中全部大体上被称作“单元”、“模块”或“系统”。
应该理解,方框图可以包括被不同布置或不同表示的更多或更少的元件。应该理解,实施方式可以规定区块和流程图以及说明本文中所公开方法运行的区块和流程图的数目。

Claims (65)

1.一种方法,包括:
为规则编译数据结构(RCDS)接收增量更新,所述规则编译数据结构(RCDS)表示用于包分类的规则组,所述规则编译数据结构(RCDS)通过主动搜索过程被用于包分类;和
基于所述接收的增量更新,原子地更新所述规则编译数据结构(RCDS),所述规则编译数据结构(RCDS)从利用所述RCDS的所述主动搜索过程的角度被原子地更新。
2.根据权利要求1所述的方法,其中原子地更新所述规则编译数据结构(RCDS)包括:
将所述规则编译数据结构(RCDS)的状态约束为先前状态和过后状态,所述先前状态是在接收用于所述RCDS的增量更新之前所述规则编译数据结构(RCDS)的状态,所述过后状态是在已经完成对所述规则编译数据结构(RCDS)的一系列一个或多个修改之后所述规则编译数据结构(RCDS)的状态,所述一系列一个或多个修改已经基于所述接收的增量更新而完成,所述一系列一个或多个修改基于对正被搜索的所述规则编译数据结构(RCDS)实行一个更新而对所述主动搜索过程可见。
3.根据权利要求1所述的方法,其中基于所述接收的增量更新来更新所述规则编译数据结构(RCDS)包括:
基于所述增量更新为增加规则操作,原子地将新的规则增加到所述规则编译数据结构(RCDS);
基于所述递增更新为删除规则操作,原子地从所述规则编译数据结构(RCDS)删除规则;
基于所述增量更新为修改规则操作,原子地修改所述规则编译数据结构(RCDS)中的规则,其中修改所述规则包括下列至少一项:修改所述规则的优先级或修改所述规则的至少一个字段。
4.根据权利要求3所述的方法,其中修改所述规则的优先级包括:
基于所述规则的优先级的改变与所述规则和一个或多个其他规则的当前优先级排序不一致,识别优先级适配冲突;
基于未识别所述优先级适配冲突,原子地修改所述规则的优先级;和
基于识别出所述冲突,原子地修改所述规则的优先级和另一个规则的优先级。
5.根据权利要求3所述的方法,其中修改所述规则的至少一个字段包括:
确定是否需要增加或删除一个或多个规则;和
增加或删除所述一个或多个规则,其中增加或删除所述一个或多个规则是原子的。
6.根据权利要求1所述的方法,进一步包括:
基于所述增量更新是指定所述规则的删除操作,原子地使所述规则编译数据结构(RCDS)中的所述指定的规则无效,其中所述主动搜索过程跳过所述无效的指定规则。
7.根据权利要求1所述的方法,进一步包括:
将所述规则编译数据结构(RCDS)表示为所述规则组的树,所述树是包括一个或多个节点和一个或多个叶片的二进制数据结构;
将所述一个或多个节点的至少一个表示为母节点,并且将所述母节点链接到一个或多个子点,所述一个或多个子点为节点或叶片,其中将所述母节点链接到所述一个或多个子点包括将所述母节点指向兄弟列表,所述兄弟列表包括所述一个或多个子点;
将所述树的节点链接到所述树的一个或多个节点和一个或多个叶片;和
将所述树的叶片链接到一个或多个桶,每个桶表示所述规则组的子组,每个桶都包括对应于所述规则组的子组的一个或多个桶条目,通过提高或降低规则优先级将桶条目排序;和
将所述规则组储存在规则表中,所述规则表内部的所述规则有序或无序。
8.根据权利要求7所述的方法,其中所述规则编译数据结构(RCDS)是性能树,所述方法进一步包括:
维持内务管理树,所述内务管理树是所述性能树的增强表示,所述内务管理树包括在所述树的每个节点处的所述规则的列表和所述规则的字段范围,其中原子地更新所述性能树还包括利用所述内务管理树,以便基于对正被搜索的所述性能树的一个更新,而进行对所述主动搜索过程可见的、所述性能树的一系列一个或多个修改。
9.根据权利要求8所述的方法,进一步包括:
建立指定所述性能树的所述一个或多个修改的变化列表。
10.根据权利要求8所述的方法,其中所述增量更新是增加、删除或修改操作,权利要求8所述的方法还包括:
包括用于所述内务管理树中的每个规则的规则覆盖列表;
基于所述覆盖列表,建立指定用于增加、删除或修改的一个或多个规则的变化列表;和
基于确定的变化列表,更新所述覆盖列表。
11.根据权利要求8所述的方法,进一步包括:
在每个叶片中维持到所述一个或多个桶中的桶的指针和桶规则计数器,所述桶规则计数器跟踪所述桶中包括的规则的数目,基于规则被增加给所述桶使所述桶规则计数器递增,并且基于从所述桶删除规则使所述桶规则计数器递减。
12.根据权利要求8所述的方法,进一步包括:
在每个节点处跟踪增量更新的总数;
确定在给定节点处的由所述给定节点表示的规则的数目与为所述给定节点跟踪的所述增量更新的总数的比率;和
基于所述比率大于给定阈值,通过重新编译子树,来适配地调整所述性能树。
13.根据权利要求7所述的方法,其中所述增量更新包括原子地将新的规则增加到所述树,所述方法进一步包括:
将所述树的叶片分为一个或多个新的节点,并且将所述规则增加到与所述一个或多个新的节点的一个或多个叶片相关联的桶。
14.根据权利要求7所述的方法,其中每个桶是数据结构,并且所述一个或多个桶条目是规则、到规则的索引、到规则的指针、到规则组的指针、或到另一个桶的指针。
15.根据权利要求7所述的方法,其中所述增量更新包括原子地将新的规则增加到所述树,所述方法进一步包括:
从所述一个或多个桶中识别用于包括所述新的规则的目标桶;和
基于确定所述目标桶中所述新的规则空间适配和优先级适配,将所述新的规则附加到所述目标桶的结尾,其中将所述新的规则附加到所述目标桶的结尾花费一个更新。
16.根据权利要求15所述的方法,其中所述空间适配基于:在所述目标桶中的当前的规则数目小于用于所述目标桶的最大规则数目。
17.根据权利要求15所述的方法,其中所述优先级适配基于:与所述新的规则相关联的所述优先级与所述目标桶中的当前规则的优先级排序一致。
18.根据权利要求7所述的方法,其中所述增量更新包括原子地将新的规则增加到所述树,所述方法进一步包括:
从所述一个或多个桶中识别用于包括所述新的规则的目标桶;
基于确定与所述新的规则相关联的优先级与所述目标桶中的规则的优先级排序不一致,建立新桶,所述主动搜索过程不受所述建立的新桶影响;
在所述新桶中包括所述目标桶的所述规则组;
在所述新桶中包括所述新的规则;
基于提高或降低优先级顺序,调整所述规则组和所述新的规则的顺序;和
更新所述树中的叶片的链接,所述叶片具有到所述一个或多个桶中的目标桶的链接,其中所述链接更新包括将所述叶片指向所述新桶,其中所述链接更新花费一个更新。
19.根据权利要求7所述的方法,其中所述增量更新包括原子地将新的规则增加到所述树,所述方法进一步包括:
从所述一个或多个桶中识别用于包括所述新的规则的目标桶;
建立新桶,所述主动搜索过程不受所述建立的新桶影响;
在所述新桶中包括所述新的规则;和
更新所述目标桶的桶条目以指向所述新桶,其中所述更新的桶条目花费一个更新。
20.根据权利要求7所述的方法,其中所述增量更新包括原子地将新的规则增加到所述树,所述方法进一步包括:
从所述一个或多个桶中识别用于包括所述新的规则的目标桶;
基于确定在所述目标桶中对于所述新的规则的空间不足而建立子树,所述目标桶中的空间不足是基于为所述目标桶设定的最大规则数目确定的,所述子树包括一个或多个新的叶片或新的节点,所述主动搜索过程不受所述建立的子树影响;
将所述新的规则增加到所述子树的一个或多个桶;
将所述目标桶的一个或多个规则增加到所述子树的一个或多个桶;和
通过更新所述树中的叶片的链接,将所述子树链接到所述树,所述叶片具有到所述一个或多个桶中的所述目标桶的链接,其中所述链接更新包括将所述叶片指向所述子树,将所述叶片转换为节点,其中所述链接更新花费一个更新。
21.根据权利要求7所述的方法,其中所述增量更新包括将新的叶片或新的节点原子地增加到所述树中的母节点,其中所述树中的母节点被链接到当前兄弟列表,所述当前兄弟列表包括一个或多个叶片或一个或多个节点,所述方法进一步包括:
建立新的兄弟列表,所述主动搜索过程不受所述建立的新的兄弟列表影响;
将所述新的叶片或所述新的节点增加到所述新的兄弟列表,所述新的兄弟列表包括所述当前兄弟列表;和
通过更新所述母体的链接以将所述母节点指向所述新的兄弟列表,而在所述树中包括所述新的兄弟列表,其中所述链接更新花费一个更新。
22.根据权利要求7所述的方法,进一步包括:
保留所述存储空间的碎片整理部分,所述存储空间的碎片整理部分是指派的碎片整理区域,所述碎片整理区域是在所述存储空间的指派区域处保留的所述存储空间的毗连部分;
识别所述RCDS的死区,所述死区是所述存储空间中由至少一个未引用的叶片、节点、桶、或兄弟列表所占据的部分;和
通过恢复所述死区,对所述规则编译数据结构(RCDS)进行碎片整理,所述主动搜索过程不受所述恢复的死区影响,所述规则编译数据结构(RCDS)被原子地碎片整理。
23.根据权利要求22所述的方法,其中恢复所述死区包括:
重新定位存储器的使用部分,所述使用部分包括位于被识别为所述指派的碎片整理区域的所述死区附近的一个或多个节点或叶片;和
将新的兄弟列表移动到恢复的存储空间,所述恢复的存储空间包括所述识别的死区和重新定位的所述存储器的使用部分。
24.根据权利要求23所述的方法,进一步包括:
将所述重新定位到所述碎片整理区域的所述存储器的使用部分移出所述碎片整理区域,到为所述RCDS保留的所述存储空间的结尾部分。
25.根据权利要求7所述的方法,其中所述增量更新包括原子地从所述树删除指定规则,其中桶的桶条目包括所述指定规则,所述方法进一步包括:
通过叶片桶指针将所述桶链接到叶片;
使所述桶条目中的所述指定规则无效;和
如果所述桶中的所有桶条目均被无效,那么通过将所述叶片桶指针设定为空,来更新所述链接,其中使所述指定规则无效并且更新所述叶片桶指针为空花费一个更新,其中如果所述叶片桶指针为空,那么所述主动搜索过程跳过桶。
26.根据权利要求7所述的方法,其中所述增量更新包括原子地从所述树删除指定规则,其中桶的桶条目包括指向所述指定规则的规则指针,所述方法进一步包括:
通过叶片桶指针将所述桶链接到叶片;
将所述规则指针设定为空;和
如果所述桶中的所有规则指针均为空,那么通过将所述叶片桶指针设定为空,来更新所述链接,其中将所述规则指针设定为空并且将所述叶片桶指针设定为空花费一个更新,其中所述主动搜索过程跳过空的叶片桶指针并且跳过空的规则指针。
27.根据权利要求7所述的方法,其中所述增量更新包括原子地从所述树删除指定规则,其中桶的桶条目包括指向包括所述指定规则的一个或多个规则的组的规则块指针,所述方法进一步包括:
通过叶片桶指针将所述桶链接到叶片;
使所述指定规则无效;
如果所述一个或多个规则的组中的所有规则无效,那么将所述规则块指针设定为空;和
如果所述桶中的全部桶条目均被无效,那么通过将所述叶片桶指针设定为空,来更新所述链接,其中使所述指定规则无效、将所述规则块指针设定为空、并且将所述叶片桶指针设定为空花费一个更新,其中所述主动搜索过程跳过空的叶片桶指针、空的规则块指针、被无效的规则。
28.根据权利要求7所述的方法,其中所述增量更新包括基于从所述树删除指定规则而原子地增加一个或多个规则,所述方法进一步包括:
从所述一个或多个桶中识别用于包括所述新的规则的目标桶;
基于确定所述目标桶中对于所述新的规则的空间不足而建立子树,所述目标桶中的空间不足是基于为所述目标桶设定的最大规则数目确定的,所述子树包括一个或多个新的叶片或新的节点,所述主动搜索过程不受所述建立的子树的影响;
将所述新的规则增加到所述子树的一个或多个桶;
将所述目标桶的一个或多个规则增加到所述子树的一个或多个桶;和
通过更新所述树中的叶片的链接,将所述子树链接到所述树,所述叶片具有到所述一个或多个桶中的所述目标桶的链接,其中所述链接更新包括将所述叶片指向所述子树,将所述叶片转换为节点,其中所述链接更新花费一个更新。
29.根据权利要求7所述的方法,其中所述增量更新包括基于从所述树删除指定规则而原子地增加一个或多个规则,所述方法进一步包括:
从所述一个或多个桶中识别用于包括所述新的规则的目标桶;和
基于确定所述目标桶中所述新的规则空间适配和优先级适配,将所述新的规则附加到所述目标桶的结尾,其中将所述新的规则附加到所述目标桶的结尾花费一个更新。
30.根据权利要求1所述的方法,其中所述增量更新为增加规则操作、删除规则操作、或修改规则操作,并且进一步地,其中基于所述接收的增量更新来更新所述规则编译数据结构(RCDS)进一步包括:
原子地将一个或多个规则增加到所述RCDS、从所述RCDS删除一个或多个规则、修改一个或多个规则、或上述任何组合。
31.一种装置,包括:
存储器,被配置为储存规则编译数据结构(RCDS),所述规则编译数据结构(RCDS)表示用于包分类的规则组;和
处理器,被耦合到所述存储器,所述处理器被配置为:
接收用于所述RCDS的增量更新;
执行所述规则编译数据结构(RCDS)的主动搜索,以将所接收的包分类;和
基于用于所述RCDS的增量更新,从执行所述主动搜索的角度,原子地更新所述规则编译数据结构(RCDS)。
32.根据权利要求31所述的装置,进一步包括接口,其中变化列表包括所述增量更新并且所述接口被配置为接收所述变化列表。
33.根据权利要求31所述的装置,其中所述处理器是搜索处理器。
34.根据权利要求31所述的装置,其中所述规则编译数据结构(RCDS)包括编译规则组,并且更新的规则编译数据结构(RCDS)包括所述编译规则组和一个或多个被应用的增量更新,其中所述更新的规则编译数据结构(RCDS)实现与所述更新的RCDS被编译之前的版本相同的性能。
35.根据权利要求31所述的装置,其中所述处理器进一步被配置为:
将所述规则编译数据结构(RCDS)的状态约束为先前状态和过后状态,所述先前状态是在接收用于所述RCDS的增量更新之前所述规则编译数据结构(RCDS)的状态,所述过后状态是在已经完成对所述规则编译数据结构(RCDS)的一系列一个或多个修改之后所述规则编译数据结构(RCDS)的状态,所述一系列一个或多个修改已经基于所述接收的增量更新而完成,所述一系列一个或多个修改基于对正被搜索的所述规则编译数据结构(RCDS)执行一个更新而对所述主动搜索过程可见。
36.根据权利要求31所述的装置,其中所述处理器进一步被配置为:
基于所述增量更新为增加规则操作,原子地将新的规则增加到所述规则编译数据结构(RCDS);
基于所述增量更新为删除规则操作,原子地从所述规则编译数据结构(RCDS)删除规则;
基于所述增量更新为修改规则操作,原子地修改所述规则编译数据结构(RCDS)中的规则,其中修改所述规则包括下列至少一项:修改所述规则的优先级或修改所述规则的至少一个字段。
37.根据权利要求36所述的装置,其中优先级适配冲突基于所述规则的优先级的变化与所述规则和一个或多个其他规则的当前优先顺序不一致,其中所述处理器进一步被配置为:
基于未识别所述优先级适配冲突,原子地修改所述规则的优先级;和
基于识别出所述冲突,原子地修改所述规则的优先级和另一个规则的优先级。
38.根据权利要求36所述的装置,其中所述处理器进一步被配置为:
增加或删除所述一个或多个规则,其中增加或删除所述一个或多个规则是原子的。
39.根据权利要求31所述的装置,其中所述处理器进一步被配置为:
基于所述增量更新是指定规则的删除操作,原子地使所述规则编译数据结构(RCDS)中的所述指定规则无效,其中所述主动搜索过程跳过所述无效的指定规则。
40.根据权利要求31所述的装置,其中所述处理器进一步被配置为:
将所述规则编译数据结构(RCDS)表示为所述规则组的树,所述树是包括一个或多个节点和一个或多个叶片的二进制数据结构;
将所述一个或多个节点的至少一个表示为母节点,并且将所述母节点链接到一个或多个子点,所述一个或多个子点为节点或叶片,其中将所述母节点链接到所述一个或多个子点包括将所述母节点指向兄弟列表,所述兄弟列表包括所述一个或多个子点;
将所述树的节点链接到所述树的一个或多个节点和一个或多个叶片;和
将所述树的叶片链接到一个或多个桶,每个桶表示所述规则组的子组,每个桶都包括对应于所述规则组的子组的一个或多个桶条目,通过提高或降低规则优先级将桶条目排序;和
将所述规则组储存在规则表中,所述规则表内的所述规则有序或无序。
41.根据权利要求40所述的装置,其中所述增量更新包括原子地将新的规则增加到所述树,其中所述处理器进一步被配置为:
将所述树的叶片分为一个或多个新的节点,并且将所述规则增加到与所述一个或多个新的节点的一个或多个叶片相关联的桶。
42.根据权利要求40所述的装置,其中每个桶是数据结构,并且所述一个或多个桶条目是规则、到规则的索引、到规则的指针、到规则组的指针、或到另一个桶的指针。
43.根据权利要求40所述的装置,其中所述增量更新包括原子地将新的规则增加到所述树,其中所述处理器进一步被配置为:
基于确定所述目标桶中所述新的规则的空间适配和优先级适配,将所述新的规则附加到所述目标桶的结尾,其中将所述新的规则附加到所述目标桶的结尾花费一个更新。
44.根据权利要求43所述的装置,其中所述空间适配基于在所述目标桶中的当前的规则数目小于用于所述目标桶的最大规则数目。
45.根据权利要求43所述的装置,其中所述优先级适配基于与所述新的规则关联的所述优先级与所述目标桶中的当前规则的优先级排序一致。
46.根据权利要求40所述的装置,其中所述增量更新包括原子地将新的规则增加到所述树,其中所述处理器进一步被配置为:
基于确定与所述新的规则关联的优先级与目标桶中的规则的优先级排序不一致,而建立新桶,所述主动搜索过程不受所述建立的新桶的影响;
在所述新桶中包括所述目标桶的所述规则组;
在所述新桶中包括所述新的规则;
基于提高或降低优先级顺序,调整所述规则组和所述新的规则的顺序;和
更新所述树中的叶片的链接,所述叶片具有到所述一个或多个桶中的目标桶的链接,其中所述链接更新包括将所述叶片指向所述新桶,其中所述链接更新花费一个更新。
47.根据权利要求40所述的装置,其中所述增量更新包括原子地将新的规则增加到所述树,其中所述处理器进一步被配置为:
建立新桶,所述主动搜索过程不受所述建立的新桶的影响;
在所述新桶中包括所述新的规则;和
更新目标桶的桶条目以指向所述新桶,其中所述更新的桶条目花费一个更新。
48.根据权利要求40所述的装置,其中所述增量更新包括原子地将新的规则增加到所述树,其中所述处理器进一步被配置为:
基于确定所述目标桶中对于所述新的规则的空间不足而建立子树,所述目标桶中的空间不足是基于为所述目标桶设定的最大规则数目确定的,所述子树包括一个或多个新的叶片或新的节点,所述主动搜索过程不受所述建立的子树的影响;
将所述新的规则增加到所述子树的一个或多个桶;
将所述目标桶的一个或多个规则增加到所述子树的一个或多个桶;和
通过更新所述树中的叶片的链接,将所述子树链接到所述树,所述叶片具有到所述一个或多个桶中的所述目标桶的链接,其中所述链接更新包括将所述叶片指向所述子树,将所述叶片转换为节点,其中所述链接更新花费一个更新。
49.根据权利要求40所述的装置,其中所述增量更新包括将新的叶片或新的节点原子地增加到所述树中的母节点,其中所述树中的母节点被链接到当前兄弟列表,所述当前兄弟列表包括一个或多个叶片或一个或多个节点,其中所述处理器进一步被配置为:
建立新的兄弟列表,所述主动搜索过程不受所述建立的新的兄弟列表的影响;
将所述新的叶片或所述新的节点增加到所述新的兄弟列表,所述新的兄弟列表包括所述当前兄弟列表;和
通过更新所述母体的链接以将所述母节点指向所述新的兄弟列表,而在所述树中包括所述新的兄弟列表,其中所述链接更新花费一个更新。
50.根据权利要求40所述的装置,其中所述处理器进一步被配置为:
保留所述存储空间的碎片整理部分,所述存储空间的碎片整理部分是指派的碎片整理区域,所述碎片整理区域是在所述存储空间的指派区域处保留的所述存储空间的毗连部分;和
通过恢复所述死区,对所述规则编译数据结构(RCDS)进行碎片整理,所述主动搜索过程不受所述恢复的死区的影响,所述规则编译数据结构(RCDS)被原子地碎片整理。
51.根据权利要求50所述的装置,其中所述处理器进一步被配置为:
重新定位存储器的使用部分,所述使用部分包括位于被识别为所述指派的碎片整理区域的所述死区附近的一个或多个节点或叶片;和
将新的兄弟列表移动到恢复的存储空间,所述恢复的存储空间包括所述识别的死区和重新定位的所述存储器的使用部分。
52.根据权利要求51所述的装置,其中所述处理器进一步被配置为:
将所述重新定位到所述碎片整理区域的所述存储器的使用部分移出所述碎片整理区域,到为所述RCDS保留的所述存储空间的结尾部分。
53.根据权利要求40所述的装置,其中所述增量更新包括原子地从所述树删除指定规则,其中桶的桶条目包括所述指定规则,其中所述处理器进一步被配置为:
通过叶片桶指针将所述桶链接到叶片;
使所述桶条目中的所述指定规则无效;和
如果所述桶中的全部桶条目均被无效,那么通过将所述叶片桶指针设定为空,来更新所述链接,其中使所述指定规则无效并且更新所述叶片桶指针为空花费一个更新,其中如果所述叶片桶指针为空,那么所述主动搜索过程跳过桶。
54.根据权利要求40所述的装置,其中所述增量更新包括原子地从所述树删除指定规则,其中桶的桶条目包括指向所述指定规则的规则指针,其中所述处理器进一步被配置为:
通过叶片桶指针将所述桶链接到叶片;
将所述规则指针设定为空;和
如果所述桶中的全部规则指针均为空,那么通过将所述叶片桶指针设定为空,来更新所述链接,其中将所述规则指针设定为空并且将所述叶片桶指针设定为空花费一个更新,其中所述主动搜索过程跳过空叶片桶指针并且跳过空规则指针。
55.根据权利要求40所述的装置,其中所述增量更新包括原子地从所述树删除指定规则,其中桶的桶条目包括指向包括所述指定规则的一个或多个规则的组的规则块指针,其中所述处理器进一步被配置为:
通过叶片桶指针将所述桶链接到叶片;
使所述指定规则无效;
如果所述一个或多个规则的组中的全部规则被无效,那么将所述规则块指针设定为空;和
如果所述桶中的全部桶条目均被无效,那么通过将所述叶片桶指针设定为空,来更新所述链接,其中使所述指定规则无效、将所述规则块指针设定为空、并且将所述叶片桶指针设定为空花费一个更新,其中所述主动搜索过程跳过空叶片桶指针、空规则块指针、被无效的规则。
56.根据权利要求40所述的装置,其中所述增量更新包括基于从所述树删除指定规则,原子地增加一个或多个规则,其中所述处理器进一步被配置为:
基于确定所述目标桶中对于所述新的规则的空间不足而建立子树,所述目标桶中的空间不足是基于为所述目标桶设定的最大规则数目确定的,所述子树包括一个或多个新的叶片或新的节点,所述主动搜索过程不受所述建立的子树的影响;
将所述新的规则增加到所述子树的一个或多个桶;
将所述目标桶的一个或多个规则增加到所述子树的一个或多个桶;和
通过更新所述树中的叶片的链接,将所述子树链接到所述树,所述叶片具有到所述一个或多个桶中的所述目标桶的链接,其中所述链接更新包括将所述叶片指向所述子树,将所述叶片转换为节点,其中所述链接更新花费一个更新。
57.根据权利要求40所述的装置,其中所述增量更新包括基于从所述树删除指定规则,原子地增加一个或多个规则,其中所述处理器进一步被配置为:
基于确定所述目标桶中所述新的规则的空间适配和优先级适配,将所述新的规则附加到所述目标桶的结尾,其中将所述新的规则附加到所述目标桶的结尾花费一个更新。
58.一种装置,包括:
存储器;
处理器,耦合到所述存储器,所述处理器被配置为包括增量更新模块,所述增量更新模块被配置为:
接收增加、删除、或修改规则操作;和
在所述存储器中建立变化列表,从利用所述RCDS的主动搜索过程的角度,所述变化列表被建立以原子地更新规则编译数据结构(RCDS)。
59.根据权利要求58所述的装置,进一步包括:
接口,其中所述增量更新模块被配置为在所述接口上传递所述变化列表:
编译器模块,耦合到所述存储器,所述编译器模块被配置为接收规则组并将所述规则组编辑为二元树,并且被配置为将所述二元树存储在所述存储器中,并且被配置为将所述二元树在所述接口上传递,其中所述二元树将所述一个或多个节点的至少一个表示为母节点,并且将所述母节点链接到一个或多个子点,所述一个或多个子点为节点或叶片,其中将所述母节点链接到所述一个或多个子点包括将所述母节点指向兄弟列表,所述兄弟列表包括所述一个或多个子点,进一步地,其中所述二元树将所述树的节点链接到所述树的一个或多个节点和一个或多个叶片;和
将所述树的叶片链接到一个或多个桶。
60.根据权利要求59所述的装置,其中所述规则编译数据结构(RCDS)是性能树,所述处理器进一步被配置为:
维持内务管理树,所述内务管理树是所述性能树的增强表示,所述内务管理树包括在所述树的每个节点处的所述规则的字段范围和所述规则的列表,其中原子地更新所述性能树还包括利用所述内务管理树,以便基于对正被搜索的所述性能树的一个更新,而进行所述主动搜索过程可见的对所述性能树的一系列一个或多个修改。
61.根据权利要求59所述的装置,其中所述处理器进一步被配置为:
建立指定对所述性能树的所述一个或多个修改的变化列表。
62.根据权利要求59所述的装置,其中所述增量更新是增加、删除或修改操作,并且进一步地,其中所述处理器被进一步配置为:
包括用于所述内务管理树中的每个规则的规则覆盖列表;
基于所述覆盖列表,建立指定用于增加、删除或修改的一个或多个规则的变化列表;和
基于确定的变化列表,更新所述覆盖列表。
63.根据权利要求59所述的装置,所述处理器被进一步配置为:
在每个叶片中维持到所述一个或多个桶中的桶的指针和桶规则计数器,所述桶规则计数器跟踪所述桶中包括的规则的数目,基于规则被增加给所述桶使所述桶规则计数器递增,并且基于从所述桶删除规则使所述桶规则计数器递减。
64.根据权利要求59所述的装置,所述处理器被进一步配置为:
在每个节点处跟踪增量更新的总数;
确定在给定节点处的由所述给定节点表示的规则的数目与为所述给定节点跟踪的所述增量更新的总数的比率;和
基于所述比率大于给定阈值,通过重新编译子树来适配地调整所述性能树。
65.一种非瞬态计算机可读介质,其上编码有指令序列,所述指令序列在被处理器执行时,使所述处理器:
为规则编译数据结构(RCDS)接收增量更新,所述规则编译数据结构(RCDS)表示用于包分类的规则组,所述规则编译数据结构(RCDS)通过主动搜索过程被用于包分类;和
基于所述接收的增量更新原子地更新所述规则编译数据结构(RCDS),所述规则编译数据结构(RCDS)从利用所述RCDS的所述主动搜索过程的角度被原子地更新。
CN201280048291.0A 2011-08-02 2012-08-02 用于更新规则编译数据结构的方法和装置 Active CN103858392B (zh)

Applications Claiming Priority (23)

Application Number Priority Date Filing Date Title
US201161514447P 2011-08-02 2011-08-02
US201161514379P 2011-08-02 2011-08-02
US201161514459P 2011-08-02 2011-08-02
US201161514400P 2011-08-02 2011-08-02
US201161514406P 2011-08-02 2011-08-02
US201161514407P 2011-08-02 2011-08-02
US201161514438P 2011-08-02 2011-08-02
US201161514344P 2011-08-02 2011-08-02
US201161514463P 2011-08-02 2011-08-02
US201161514382P 2011-08-02 2011-08-02
US201161514450P 2011-08-02 2011-08-02
US61/514,450 2011-08-02
US61/514,438 2011-08-02
US61/514,400 2011-08-02
US61/514,407 2011-08-02
US61/514,463 2011-08-02
US61/514,447 2011-08-02
US61/514,459 2011-08-02
US61/514,406 2011-08-02
US61/514,379 2011-08-02
US61/514,382 2011-08-02
US61/514,344 2011-08-02
PCT/US2012/049406 WO2013020002A1 (en) 2011-08-02 2012-08-02 Incremental update of rules for packet classification

Publications (2)

Publication Number Publication Date
CN103858392A true CN103858392A (zh) 2014-06-11
CN103858392B CN103858392B (zh) 2018-12-14

Family

ID=46642652

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201280048291.0A Active CN103858392B (zh) 2011-08-02 2012-08-02 用于更新规则编译数据结构的方法和装置
CN201280048417.4A Expired - Fee Related CN103858386B (zh) 2011-08-02 2012-08-02 用于通过优化的决策树执行包分类的方法和装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201280048417.4A Expired - Fee Related CN103858386B (zh) 2011-08-02 2012-08-02 用于通过优化的决策树执行包分类的方法和装置

Country Status (5)

Country Link
US (27) US8954700B2 (zh)
JP (1) JP5657840B2 (zh)
KR (2) KR101476113B1 (zh)
CN (2) CN103858392B (zh)
WO (5) WO2013019981A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019241926A1 (zh) * 2018-06-20 2019-12-26 华为技术有限公司 访问控制列表的管理方法及装置
CN110622156A (zh) * 2017-05-12 2019-12-27 华为技术有限公司 用于查询大图的增量图计算
CN112948103A (zh) * 2019-12-10 2021-06-11 腾讯科技(深圳)有限公司 资源配置方法、装置、存储介质及电子设备
CN113709099A (zh) * 2021-07-12 2021-11-26 新华三大数据技术有限公司 混合云防火墙规则下发方法、装置、设备及存储介质

Families Citing this family (159)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954700B2 (en) 2011-08-02 2015-02-10 Cavium, Inc. Method and apparatus for managing processing thread migration between clusters within a processor
US9183244B2 (en) 2011-08-02 2015-11-10 Cavium, Inc. Rule modification in decision trees
US10229139B2 (en) 2011-08-02 2019-03-12 Cavium, Llc Incremental update heuristics
US8923306B2 (en) 2011-08-02 2014-12-30 Cavium, Inc. Phased bucket pre-fetch in a network processor
US9208438B2 (en) 2011-08-02 2015-12-08 Cavium, Inc. Duplication in decision trees
US9159420B1 (en) * 2011-08-16 2015-10-13 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for content addressable memory parallel lookup
US9767058B2 (en) 2011-11-17 2017-09-19 Futurewei Technologies, Inc. Method and apparatus for scalable low latency solid state drive interface
US20130135816A1 (en) * 2011-11-17 2013-05-30 Futurewei Technologies, Inc. Method and Apparatus for Scalable Low Latency Solid State Drive Interface
US9049200B2 (en) * 2012-07-27 2015-06-02 Cisco Technology, Inc. System and method for improving hardware utilization for a bidirectional access controls list in a low latency high-throughput network
US9143449B2 (en) * 2012-07-31 2015-09-22 Cisco Technology, Inc. Methods and apparatuses for improving database search performance
US9100366B2 (en) * 2012-09-13 2015-08-04 Cisco Technology, Inc. Early policy evaluation of multiphase attributes in high-performance firewalls
US20140089619A1 (en) * 2012-09-27 2014-03-27 Infinera Corporation Object replication framework for a distributed computing environment
US9307059B2 (en) * 2012-11-09 2016-04-05 Sap Se Retry mechanism for data loading from on-premise datasource to cloud
US9185057B2 (en) * 2012-12-05 2015-11-10 The Intellisis Corporation Smart memory
US9536016B2 (en) * 2013-01-16 2017-01-03 Google Inc. On-disk multimap
WO2014117353A1 (en) * 2013-01-31 2014-08-07 Hewlett-Packard Development Company, L.P. Incremental update of a shape graph
US9424366B1 (en) * 2013-02-11 2016-08-23 Marvell International Ltd. Reducing power consumption in ternary content addressable memory (TCAM)
US9578061B2 (en) 2013-03-13 2017-02-21 FireMon, LLC System and method for modeling a networking device policy
US9270704B2 (en) * 2013-03-13 2016-02-23 FireMon, LLC Modeling network devices for behavior analysis
US10083200B2 (en) 2013-03-14 2018-09-25 Cavium, Inc. Batch incremental update
KR101752583B1 (ko) 2013-03-14 2017-07-11 마이크론 테크놀로지, 인크. 트레이닝, 데이터 조직, 및/또는 섀도잉을 포함하는 메모리 시스템들 및 방법들
US9112767B2 (en) 2013-03-15 2015-08-18 Cavium, Inc. Method and an accumulator scoreboard for out-of-order rule response handling
US9195939B1 (en) 2013-03-15 2015-11-24 Cavium, Inc. Scope in decision trees
US9531647B1 (en) 2013-03-15 2016-12-27 Cavium, Inc. Multi-host processing
JP6976682B2 (ja) * 2013-03-15 2021-12-08 ビデリ、インコーポレイテッドVideri Inc. デジタル・アートを表示、配信、鑑賞および制御し、画像形成するためのシステムおよび方法
US9595003B1 (en) 2013-03-15 2017-03-14 Cavium, Inc. Compiler with mask nodes
US9130819B2 (en) 2013-03-15 2015-09-08 Cavium, Inc. Method and apparatus for scheduling rule matching in a processor
US9276846B2 (en) 2013-03-15 2016-03-01 Cavium, Inc. Packet extraction optimization in a network processor
US9430511B2 (en) * 2013-03-15 2016-08-30 Cavium, Inc. Merging independent writes, separating dependent and independent writes, and error roll back
KR20140131781A (ko) * 2013-05-06 2014-11-14 삼성전자주식회사 메모리 제어 장치 및 방법
US10862731B1 (en) * 2013-06-27 2020-12-08 EMC IP Holding Company LLC Utilizing demonstration data based on dynamically determining feature availability
US9286217B2 (en) * 2013-08-26 2016-03-15 Qualcomm Incorporated Systems and methods for memory utilization for object detection
US9356818B2 (en) * 2013-10-30 2016-05-31 Telefonaktiebolaget Lm Ericsson (Publ) Method and computing device for packet classification
US9674086B2 (en) * 2013-11-05 2017-06-06 Cisco Technology, Inc. Work conserving schedular based on ranking
US9620213B2 (en) * 2013-12-27 2017-04-11 Cavium, Inc. Method and system for reconfigurable parallel lookups using multiple shared memories
US9379963B2 (en) 2013-12-30 2016-06-28 Cavium, Inc. Apparatus and method of generating lookups and making decisions for packet modifying and forwarding in a software-defined network engine
US9825884B2 (en) 2013-12-30 2017-11-21 Cavium, Inc. Protocol independent programmable switch (PIPS) software defined data center networks
US9275336B2 (en) 2013-12-31 2016-03-01 Cavium, Inc. Method and system for skipping over group(s) of rules based on skip group rule
US9544402B2 (en) 2013-12-31 2017-01-10 Cavium, Inc. Multi-rule approach to encoding a group of rules
US9667446B2 (en) 2014-01-08 2017-05-30 Cavium, Inc. Condition code approach for comparing rule and packet data that are provided in portions
CN103763197B (zh) * 2014-01-27 2017-04-12 杭州华三通信技术有限公司 一种流表项冲突检测装置和方法
WO2015165104A1 (zh) 2014-04-30 2015-11-05 华为技术有限公司 查找装置及方法
US9497119B2 (en) * 2014-05-22 2016-11-15 International Business Machines Corporation Supporting access control list rules that apply to TCP segments belonging to ‘established’ connection
US9485257B2 (en) 2014-05-22 2016-11-01 International Business Machines Corporation Atomically updating ternary content addressable memory-based access control lists
US9749328B2 (en) 2014-05-22 2017-08-29 International Business Machines Corporation Access control list-based port mirroring techniques
US9722931B2 (en) 2014-06-05 2017-08-01 International Business Machines Corporation Unified framework for isolating multicast and broadcast frames to a traffic class separate from a traffic class used for unicast frames
US9344373B2 (en) * 2014-06-13 2016-05-17 International Business Machines Corporation Packet I/O support for a logical switch router architecture
KR101535813B1 (ko) * 2014-10-17 2015-07-10 한국과학기술정보연구원 복합 이벤트 처리를 위한 이벤트 구성 규칙의 동적 업데이트를 위한 시스템 및 방법
US11218410B2 (en) 2014-11-10 2022-01-04 Marvell Asia Pte, Ltd. Hybrid wildcard match table
US11943142B2 (en) 2014-11-10 2024-03-26 Marvell Asia Pte, LTD Hybrid wildcard match table
US10116564B2 (en) * 2014-11-10 2018-10-30 Cavium, Inc. Hybrid wildcard match table
US9485179B2 (en) * 2014-11-13 2016-11-01 Cavium, Inc. Apparatus and method for scalable and flexible table search in a network switch
US9692727B2 (en) 2014-12-02 2017-06-27 Nicira, Inc. Context-aware distributed firewall
US9552327B2 (en) 2015-01-29 2017-01-24 Knuedge Incorporated Memory controller for a network on a chip device
US10061531B2 (en) 2015-01-29 2018-08-28 Knuedge Incorporated Uniform system wide addressing for a computing system
KR102328071B1 (ko) * 2015-02-04 2021-11-18 한국전자통신연구원 광전송망의 트래픽을 처리하는 방법 및 장치
JP6598188B2 (ja) * 2015-02-27 2019-10-30 株式会社エヴリカ 情報処理装置、方法およびプログラム
US20170288968A1 (en) * 2015-03-23 2017-10-05 Hewlett Packard Enterprise Development Lp Compiling network policies
JP6767361B2 (ja) * 2015-03-27 2020-10-14 古河電気工業株式会社 電磁シールド管、電磁シールド構造
US20160321285A1 (en) * 2015-05-02 2016-11-03 Mohammad Faraz RASHID Method for organizing and distributing data
US20160335298A1 (en) * 2015-05-12 2016-11-17 Extreme Networks, Inc. Methods, systems, and non-transitory computer readable media for generating a tree structure with nodal comparison fields and cut values for rapid tree traversal and reduced numbers of full comparisons at leaf nodes
US10075998B2 (en) * 2015-05-14 2018-09-11 Intel IP Corporation Wireless device, method, and computer readable media for signaling a resource allocation in a high efficiency wireless local-area network
US10115463B1 (en) * 2015-06-25 2018-10-30 Xilinx, Inc. Verification of a RAM-based TCAM
US20170017567A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Implementing Distributed-Linked Lists For Network Devices
US20170017419A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Enabling High Read Rates To Data Element Lists
US20170017414A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Implementing Hierarchical Distributed-Linked Lists For Network Devices
US20170017420A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Enabling High Read Rates To Data Element Lists
US10423330B2 (en) * 2015-07-29 2019-09-24 International Business Machines Corporation Data collection in a multi-threaded processor
US9984144B2 (en) 2015-08-17 2018-05-29 Mellanox Technologies Tlv Ltd. Efficient lookup of TCAM-like rules in RAM
US10496680B2 (en) 2015-08-17 2019-12-03 Mellanox Technologies Tlv Ltd. High-performance bloom filter array
US10049126B2 (en) 2015-09-06 2018-08-14 Mellanox Technologies Tlv Ltd. Cuckoo hashing with selectable hash
US10451094B2 (en) * 2015-09-28 2019-10-22 Kubota Corporation Hydraulic system of work machine
CN105426352A (zh) * 2015-11-24 2016-03-23 国家电网公司 模板文档自动生成方法
US10554572B1 (en) * 2016-02-19 2020-02-04 Innovium, Inc. Scalable ingress arbitration for merging control and payload
US10027583B2 (en) 2016-03-22 2018-07-17 Knuedge Incorporated Chained packet sequences in a network on a chip architecture
US9892057B2 (en) 2016-03-31 2018-02-13 Mellanox Technologies Tlv Ltd. Single double cuckoo hash
US10346049B2 (en) 2016-04-29 2019-07-09 Friday Harbor Llc Distributed contiguous reads in a network on a chip architecture
CN106209626B (zh) * 2016-07-26 2019-12-06 新华三技术有限公司 自适应下发路由方法以及装置
WO2018025258A1 (en) * 2016-07-31 2018-02-08 Fenror7 Ltd Method and system for detecting movement of malware and other potential threats
US10068034B2 (en) 2016-09-07 2018-09-04 Mellanox Technologies Tlv Ltd. Efficient matching of TCAM rules using hash tables in RAM
US10204060B2 (en) 2016-09-13 2019-02-12 International Business Machines Corporation Determining memory access categories to use to assign tasks to processor cores to execute
US10169248B2 (en) 2016-09-13 2019-01-01 International Business Machines Corporation Determining cores to assign to cache hostile tasks
US10209900B2 (en) 2016-09-19 2019-02-19 Fungible, Inc. Buffer allocation and memory management using mapping table
US10303375B2 (en) 2016-09-19 2019-05-28 Fungible, Inc. Buffer allocation and memory management
US10454786B2 (en) * 2016-09-26 2019-10-22 Amazon Technologies, Inc. Multi-party updates to distributed systems
US10489424B2 (en) 2016-09-26 2019-11-26 Amazon Technologies, Inc. Different hierarchies of resource data objects for managing system resources
US10193862B2 (en) 2016-11-29 2019-01-29 Vmware, Inc. Security policy analysis based on detecting new network port connections
US10404594B2 (en) 2016-12-13 2019-09-03 Oracle International Corporation System and method for providing partitions of classification resources in a network device
US10341242B2 (en) * 2016-12-13 2019-07-02 Oracle International Corporation System and method for providing a programmable packet classification framework for use in a network device
CN106844041B (zh) * 2016-12-29 2020-06-16 华为技术有限公司 内存管理的方法及内存管理系统
US10084855B2 (en) * 2017-01-23 2018-09-25 Akamai Technologies, Inc. Pixel-based load balancing
US10257090B2 (en) * 2017-02-21 2019-04-09 Futurewei Technologies, Inc. Packet classification using multi-dimensional splitting
US10491521B2 (en) 2017-03-26 2019-11-26 Mellanox Technologies Tlv Ltd. Field checking based caching of ACL lookups to ease ACL lookup search
CN110710172A (zh) 2017-03-29 2020-01-17 芬基波尔有限责任公司 在接入节点组内多路复用分组喷射的无阻塞的任意到任意数据中心网络
WO2018183526A1 (en) 2017-03-29 2018-10-04 Fungible, Inc. Non-blocking, full-mesh data center network having optical permutors
WO2018183542A1 (en) 2017-03-29 2018-10-04 Fungible, Inc. Non-blocking any-to-any data center network with packet spraying over multiple alternate data paths
CN117971715A (zh) 2017-04-10 2024-05-03 微软技术许可有限责任公司 多处理器系统中的中继一致存储器管理
US10713089B2 (en) * 2017-05-20 2020-07-14 Cavium International Method and apparatus for load balancing of jobs scheduled for processing
US10725825B2 (en) 2017-07-10 2020-07-28 Fungible, Inc. Data processing unit for stream processing
WO2019014265A1 (en) 2017-07-10 2019-01-17 Fungible, Inc. DATA PROCESSING UNIT FOR CALCULATION NODES AND STORAGE NODES
US10476794B2 (en) 2017-07-30 2019-11-12 Mellanox Technologies Tlv Ltd. Efficient caching of TCAM rules in RAM
CN107450495B (zh) * 2017-08-25 2019-10-29 艾普工华科技(武汉)有限公司 一种基于消息规则引擎的柔性在制品管理业务模型系统
CN108632235B (zh) 2017-08-31 2020-07-07 新华三技术有限公司 一种网包分类决策树建立方法及装置
CN107797973A (zh) * 2017-09-27 2018-03-13 西安交通大学 一种面向硬件实现的gbdt分类模型压缩方法
WO2019068013A1 (en) 2017-09-29 2019-04-04 Fungible, Inc. FABRIC CONTROL PROTOCOL FOR DATA CENTER NETWORKS WITH PACKAGING OF PACKETS ON MULTIPLE ALTERNATIVE DATA PATHWAYS
US10965586B2 (en) 2017-09-29 2021-03-30 Fungible, Inc. Resilient network communication using selective multipath packet flow spraying
WO2019104090A1 (en) 2017-11-21 2019-05-31 Fungible, Inc. Work unit stack data structures in multiple core processor system for stream data processing
WO2019152063A1 (en) 2018-02-02 2019-08-08 Fungible, Inc. Efficient work unit processing in a multicore system
US10791092B2 (en) * 2018-02-14 2020-09-29 Nicira, Inc. Firewall rules with expression matching
WO2019178264A1 (en) 2018-03-14 2019-09-19 Fungible, Inc. Flexible processing of network packets
TWI664527B (zh) * 2018-03-20 2019-07-01 慧榮科技股份有限公司 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置
CN108595370A (zh) * 2018-03-30 2018-09-28 新华三信息安全技术有限公司 一种多核处理器及报文处理方法
US11876684B1 (en) * 2018-05-22 2024-01-16 Amazon Technologies, Inc. Controlled cross-cell migration of data in cell-based distributed computing architecture
US11218574B2 (en) 2018-06-08 2022-01-04 Fungible, Inc. Directed graph traversal using content-addressable memory
CN108984618B (zh) * 2018-06-13 2021-02-02 深圳市商汤科技有限公司 数据处理方法和装置、电子设备和计算机可读存储介质
US10798200B2 (en) * 2018-06-22 2020-10-06 Vmware, Inc. Payload matching via single pass transformation of HTTP payload
US11483313B2 (en) * 2018-06-28 2022-10-25 Intel Corporation Technologies for updating an access control list table without causing disruption
US10581759B1 (en) 2018-07-12 2020-03-03 Innovium, Inc. Sharing packet processing resources
CN108959636B (zh) * 2018-07-25 2020-11-03 京东数字科技控股有限公司 数据处理方法、装置、系统、计算机可读介质
US11327974B2 (en) 2018-08-02 2022-05-10 Mellanox Technologies, Ltd. Field variability based TCAM splitting
CN109032952B (zh) * 2018-08-09 2021-11-23 中国建设银行股份有限公司 一种基于规则的智能外呼服务模拟方法及系统
US11003715B2 (en) 2018-09-17 2021-05-11 Mellanox Technologies, Ltd. Equipment and method for hash table resizing
FR3086825A1 (fr) * 2018-09-28 2020-04-03 Orange Procedes de protection d'un domaine client contre une attaque informatique, nœud client, serveur et programmes d'ordinateur correspondants.
CN111049746B (zh) * 2018-10-12 2022-04-22 华为技术有限公司 一种路由表项生成方法、字典树生成方法和装置
US10958770B2 (en) 2018-10-15 2021-03-23 Fungible, Inc. Realization of a programmable forwarding pipeline through packet header summaries in a data processing unit
US10708373B2 (en) * 2018-11-09 2020-07-07 Oath Inc. Decentralized method and system for accurately determining a level of activity of a client device
CN109542601B (zh) * 2018-11-20 2020-12-29 杭州迪普科技股份有限公司 策略编译方法、装置、电子设备及计算机存储介质
US10929175B2 (en) 2018-11-21 2021-02-23 Fungible, Inc. Service chaining hardware accelerators within a data stream processing integrated circuit
WO2020107484A1 (zh) * 2018-11-30 2020-06-04 华为技术有限公司 一种acl的规则分类方法、查找方法和装置
CN109766439A (zh) * 2018-12-15 2019-05-17 内蒙航天动力机械测试所 统计查询软件的无限树状分类定义与指派方法
GB2579849B (en) 2018-12-18 2021-08-25 Advanced Risc Mach Ltd Integrity tree for memory integrity checking
EP3703341A1 (en) * 2019-02-28 2020-09-02 Rohde & Schwarz GmbH & Co. KG System for analyzing and interpreting at least one data stream as well as method of automatic configuration of a system
CN109885408B (zh) * 2019-03-13 2022-05-03 四川长虹电器股份有限公司 基于Android系统的轻量级浏览器资源优化方法
US11531915B2 (en) * 2019-03-20 2022-12-20 Oracle International Corporation Method for generating rulesets using tree-based models for black-box machine learning explainability
WO2020197720A1 (en) 2019-03-27 2020-10-01 Fungible, Inc. Low latency packet switch architecture
CN111817978B (zh) * 2019-04-12 2022-10-04 华为技术有限公司 一种流分类方法及装置
US11032371B2 (en) * 2019-05-29 2021-06-08 Red Hat, Inc. Data migration using read function triggers
US10931638B1 (en) * 2019-07-31 2021-02-23 Capital One Services, Llc Automated firewall feedback from network traffic analysis
US10979358B2 (en) * 2019-08-20 2021-04-13 SMART lOPS, INC. Low-latency data packet distributor
US10944675B1 (en) 2019-09-04 2021-03-09 Mellanox Technologies Tlv Ltd. TCAM with multi region lookups and a single logical lookup
US11579802B2 (en) 2019-10-04 2023-02-14 Fungible, Inc. Pipeline using match-action blocks
US11330032B2 (en) * 2019-10-15 2022-05-10 Vmware, Inc. Method and system for content proxying between formats
CN110995748A (zh) * 2019-12-17 2020-04-10 杭州安恒信息技术股份有限公司 一种防暴力破解方法、装置、设备、介质
US11128694B2 (en) * 2020-01-09 2021-09-21 Cisco Technology, Inc. Optimized internet access in a multi-site software-defined network fabric
US11539622B2 (en) 2020-05-04 2022-12-27 Mellanox Technologies, Ltd. Dynamically-optimized hash-based packet classifier
US11782895B2 (en) 2020-09-07 2023-10-10 Mellanox Technologies, Ltd. Cuckoo hashing including accessing hash tables using affinity table
CN112311698B (zh) * 2020-09-28 2021-08-24 清华大学无锡应用技术研究院 处理网络数据包的方法、装置及存储介质
KR20220045480A (ko) * 2020-10-05 2022-04-12 삼성전자주식회사 인-메모리 프로세싱을 수행하는 메모리 디바이스
CN112350947B (zh) * 2020-10-23 2022-07-29 杭州迪普信息技术有限公司 一种报文匹配决策树的更新方法及装置
US11593309B2 (en) 2020-11-05 2023-02-28 International Business Machines Corporation Reliable delivery of event notifications from a distributed file system
CN113114584B (zh) * 2021-03-01 2023-02-28 杭州迪普科技股份有限公司 一种网络设备的保护方法及装置
US11734005B2 (en) 2021-07-04 2023-08-22 Mellanox Technologies, Ltd. Processor with split read
US11677663B2 (en) * 2021-08-12 2023-06-13 Schweitzer Engineering Laboratories, Inc. Software-defined network statistics extension
US11917042B2 (en) 2021-08-15 2024-02-27 Mellanox Technologies, Ltd. Optimizing header-based action selection
CN113741821B (zh) * 2021-11-01 2022-03-01 中科声龙科技发展(北京)有限公司 基于分类的数据存取方法、系统、介质及程序
US11929837B2 (en) 2022-02-23 2024-03-12 Mellanox Technologies, Ltd. Rule compilation schemes for fast packet classification
US11968285B2 (en) 2022-02-24 2024-04-23 Mellanox Technologies, Ltd. Efficient memory utilization for cartesian products of rules
US11847461B2 (en) * 2022-05-19 2023-12-19 Mellanox Technologies, Ltd. Out-of-order input / output write
US11882002B2 (en) 2022-06-22 2024-01-23 Schweitzer Engineering Laboratories, Inc. Offline test mode SDN validation

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6778530B1 (en) * 1999-11-08 2004-08-17 Juniper Networks, Inc. Method and apparatus for multiple field matching in network device
US7023807B2 (en) * 1998-01-23 2006-04-04 Timothy Scott Michels Network switching device with pipelined search engines
US20080310440A1 (en) * 2007-06-13 2008-12-18 Jyshyang Chen Network interface system with filtering function
CN101351784A (zh) * 2005-12-30 2009-01-21 阿西式·A·潘迪亚 运行时自适应搜索处理器
US7522581B2 (en) * 2006-08-01 2009-04-21 International Business Machines Corporation Overload protection for SIP servers
US7548944B2 (en) * 2003-07-15 2009-06-16 Intel Corporation Statistics collection framework for a network processor
CN101501637A (zh) * 2005-03-25 2009-08-05 索尼株式会社 模块化镜像下载系统

Family Cites Families (240)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US441022A (en) 1890-11-18 Method of baling cotton
US4965825A (en) 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
JPS6289149A (ja) * 1985-10-15 1987-04-23 Agency Of Ind Science & Technol 多ポ−トメモリシステム
CA2066724C (en) 1989-09-01 2000-12-05 Helge Knudsen Operating system and data base
WO1991003791A1 (en) 1989-09-01 1991-03-21 Amdahl Corporation Operating system and data base
AT392555B (de) 1989-10-24 1991-04-25 Alcatel Austria Ag Verfahren zum uebertragen von binaerinformationen in einem optischen uebertragungsnetzwerk sowie optisches uebertragungsnetzwerk
US5214653A (en) 1990-10-22 1993-05-25 Harris Corporation Fault finder expert system
WO1994001828A1 (en) 1992-07-02 1994-01-20 Wellfleet Communications Data packet processing method and apparatus
US5634025A (en) * 1993-12-09 1997-05-27 International Business Machines Corporation Method and system for efficiently fetching variable-width instructions in a data processing system having multiple prefetch units
US5742843A (en) 1994-07-20 1998-04-21 Fujitsu Limited Control system for access between processing elements in a parallel computer
US5727167A (en) 1995-04-14 1998-03-10 International Business Machines Corporation Thresholding support in performance monitoring
US5995511A (en) 1996-04-05 1999-11-30 Fore Systems, Inc. Digital network including mechanism for grouping virtual message transfer paths having similar transfer service rates to facilitate efficient scheduling of transfers thereover
US5893911A (en) * 1996-04-17 1999-04-13 Neon Software, Inc. Method for defining and applying rules for message distribution for transaction processing in a distributed application
US7613926B2 (en) 1997-11-06 2009-11-03 Finjan Software, Ltd Method and system for protecting a computer and a network from hostile downloadables
US5893142A (en) 1996-11-14 1999-04-06 Motorola Inc. Data processing system having a cache and method therefor
US6233575B1 (en) 1997-06-24 2001-05-15 International Business Machines Corporation Multilevel taxonomy based on features derived from training documents classification using fisher values as discrimination values
JP3436871B2 (ja) * 1997-10-23 2003-08-18 株式会社東芝 通信資源管理方法及びノード装置
JP3027845B2 (ja) 1997-11-21 2000-04-04 オムロン株式会社 プログラム制御装置および方法
US6341130B1 (en) 1998-02-09 2002-01-22 Lucent Technologies, Inc. Packet classification method and apparatus employing two fields
US6658002B1 (en) 1998-06-30 2003-12-02 Cisco Technology, Inc. Logical operation unit for packet processing
US6212184B1 (en) * 1998-07-15 2001-04-03 Washington University Fast scaleable methods and devices for layer four switching
US6519636B2 (en) 1998-10-28 2003-02-11 International Business Machines Corporation Efficient classification, manipulation, and control of network transmissions by associating network flows with rule based functions
US6567408B1 (en) 1999-02-01 2003-05-20 Redback Networks Inc. Methods and apparatus for packet classification with multi-level data structure
US6297768B1 (en) * 1999-02-25 2001-10-02 Lunareye, Inc. Triggerable remote controller
JP3692820B2 (ja) 1999-03-10 2005-09-07 株式会社デンソー 自動車用制御装置
US6510509B1 (en) * 1999-03-29 2003-01-21 Pmc-Sierra Us, Inc. Method and apparatus for high-speed network rule processing
US6701432B1 (en) 1999-04-01 2004-03-02 Netscreen Technologies, Inc. Firewall including local bus
US6298340B1 (en) 1999-05-14 2001-10-02 International Business Machines Corporation System and method and computer program for filtering using tree structure
US6587466B1 (en) 1999-05-27 2003-07-01 International Business Machines Corporation Search tree for policy based packet classification in communication networks
GB2355084B (en) 1999-07-21 2004-04-28 Element 14 Ltd Setting condition values in a computer
US6636480B1 (en) * 1999-09-08 2003-10-21 Riverstone Networks, Inc. Method and system for controlling data flow through a multiport switch
US7110407B1 (en) 1999-09-23 2006-09-19 Netlogic Microsystems, Inc. Method and apparatus for performing priority encoding in a segmented classification system using enable signals
US6775281B1 (en) 1999-09-30 2004-08-10 Mosaid Technologies, Inc. Method and apparatus for a four-way hash table
US6467019B1 (en) 1999-11-08 2002-10-15 Juniper Networks, Inc. Method for memory management in ternary content addressable memories (CAMs)
GB9930849D0 (en) * 1999-12-24 2000-02-16 Koninkl Philips Electronics Nv Data communications
US6539394B1 (en) 2000-01-04 2003-03-25 International Business Machines Corporation Method and system for performing interval-based testing of filter rules
US7039641B2 (en) 2000-02-24 2006-05-02 Lucent Technologies Inc. Modular packet classification
US6473763B1 (en) 2000-03-31 2002-10-29 International Business Machines Corporation System, method and computer program for filtering multi-action rule set
US7215637B1 (en) 2000-04-17 2007-05-08 Juniper Networks, Inc. Systems and methods for processing packets
US7032031B2 (en) 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
US20070192863A1 (en) 2005-07-01 2007-08-16 Harsh Kapoor Systems and methods for processing data flows
US9800608B2 (en) * 2000-09-25 2017-10-24 Symantec Corporation Processing data flows with a data flow processor
US20110238855A1 (en) 2000-09-25 2011-09-29 Yevgeny Korsunsky Processing data flows with a data flow processor
US8010469B2 (en) 2000-09-25 2011-08-30 Crossbeam Systems, Inc. Systems and methods for processing data flows
KR100699470B1 (ko) * 2000-09-27 2007-03-26 삼성전자주식회사 멀티레이어 패킷 처리 장치
EP1344355B8 (en) * 2000-11-21 2009-04-22 TR Technology Foundation LLC Methods and apparatus for switching atm, tdm, and packet data through a single communications switch
CA2326851A1 (en) 2000-11-24 2002-05-24 Redback Networks Systems Canada Inc. Policy change characterization method and apparatus
US6868414B2 (en) 2001-01-03 2005-03-15 International Business Machines Corporation Technique for serializing data structure updates and retrievals without requiring searchers to use locks
JP2004524617A (ja) * 2001-02-14 2004-08-12 クリアスピード・テクノロジー・リミテッド クロック分配システム
US6754626B2 (en) * 2001-03-01 2004-06-22 International Business Machines Corporation Creating a hierarchical tree of language models for a dialog system based on prompt and dialog context
JP2002290447A (ja) * 2001-03-27 2002-10-04 Mitsubishi Electric Corp アドレス検索方法、アドレス検索回路、およびアドレス検索プログラム
US6735600B1 (en) * 2001-03-30 2004-05-11 Lsi Logic Corporation Editing protocol for flexible search engines
US6904057B2 (en) 2001-05-04 2005-06-07 Slt Logic Llc Method and apparatus for providing multi-protocol, multi-stage, real-time frame classification
US6757768B1 (en) * 2001-05-17 2004-06-29 Cisco Technology, Inc. Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
US7133409B1 (en) 2001-07-19 2006-11-07 Richard Willardson Programmable packet filtering in a prioritized chain
US7027988B1 (en) 2001-07-20 2006-04-11 At&T Corp. System and method of ε removal of weighted automata and transducers
US7116663B2 (en) 2001-07-20 2006-10-03 Pmc-Sierra Ltd. Multi-field classification using enhanced masked matching
US7209962B2 (en) 2001-07-30 2007-04-24 International Business Machines Corporation System and method for IP packet filtering based on non-IP packet traffic attributes
US7046848B1 (en) 2001-08-22 2006-05-16 Olcott Peter L Method and system for recognizing machine generated character glyphs and icons in graphic images
EP1320006A1 (en) 2001-12-12 2003-06-18 Canal+ Technologies Société Anonyme Processing data
US7403999B2 (en) 2001-12-28 2008-07-22 International Business Machines Corporation Classification support system and method for fragmented IP packets
US7225188B1 (en) 2002-02-13 2007-05-29 Cisco Technology, Inc. System and method for performing regular expression matching with high parallelism
US7719980B2 (en) 2002-02-19 2010-05-18 Broadcom Corporation Method and apparatus for flexible frame processing and classification engine
US8135772B2 (en) * 2002-05-01 2012-03-13 Oracle International Corporation Single servlets for B2B message routing
US7251698B2 (en) 2002-05-28 2007-07-31 Newisys, Inc. Address space management in systems having multiple multi-processor clusters
US7327727B2 (en) 2002-06-04 2008-02-05 Lucent Technologies Inc. Atomic lookup rule set transition
US7079542B2 (en) 2002-07-02 2006-07-18 Samsung Electronics Co., Ltd. Internet protocol address look-up method
AU2003256391A1 (en) 2002-07-03 2004-01-23 University Of Florida Dynamic ip router tables using highest-priority matching
WO2004013777A1 (en) 2002-08-05 2004-02-12 Fish Robert System and method of parallel pattern matching
US7277425B1 (en) 2002-10-21 2007-10-02 Force10 Networks, Inc. High-speed router switching architecture
GB0226289D0 (en) 2002-11-11 2002-12-18 Orange Personal Comm Serv Ltd Telecommunications
GB2395395B (en) * 2002-11-15 2004-11-10 3Com Corp Classification search scheme and rules engine for network unit
US7536476B1 (en) 2002-12-20 2009-05-19 Cisco Technology, Inc. Method for performing tree based ACL lookups
US7546234B1 (en) 2003-01-08 2009-06-09 Xambala, Inc. Semantic processing engine
WO2004072797A2 (en) 2003-02-07 2004-08-26 Safenet, Inc. System and method for determining the start of a match of a regular expression
CA2521576A1 (en) 2003-02-28 2004-09-16 Lockheed Martin Corporation Hardware accelerator state table compiler
SE0300894D0 (sv) * 2003-03-28 2003-03-28 Saab Ab Metod att fastställa regler för en anordning som är avsedd att kunna användas för att generera beslutstöd
US7571156B1 (en) 2003-03-28 2009-08-04 Netlogic Microsystems, Inc. Network device, storage medium and methods for incrementally updating a forwarding database
US7466687B2 (en) 2003-04-28 2008-12-16 International Business Machines Corporation Packet classification using modified range labels
US7093231B2 (en) 2003-05-06 2006-08-15 David H. Alderson Grammer for regular expressions
US7415472B2 (en) 2003-05-13 2008-08-19 Cisco Technology, Inc. Comparison tree data structures of particular use in performing lookup operations
WO2004107404A2 (en) 2003-05-23 2004-12-09 Sensory Networks, Inc. Apparatus and method for large hardware finite state machine with embedded equivalence classes
US7382777B2 (en) 2003-06-17 2008-06-03 International Business Machines Corporation Method for implementing actions based on packet classification and lookup results
US7386626B2 (en) 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US7388840B2 (en) * 2003-06-30 2008-06-17 Intel Corporation Methods and apparatuses for route management on a networking control plane
US7299227B2 (en) 2003-09-09 2007-11-20 Stmicroelectronics, Inc. Method and system for providing cascaded trie-based network packet search engines
US7870161B2 (en) 2003-11-07 2011-01-11 Qiang Wang Fast signature scan
US7873992B1 (en) 2003-12-04 2011-01-18 Avaya Inc. Dynamic system of autonomous parsers for interpreting arbitrary telecommunication equipment streams
US20060026138A1 (en) 2004-01-09 2006-02-02 Gavin Robertson Real-time indexes
US7706353B2 (en) 2004-01-21 2010-04-27 Alcatel-Lucent Usa Inc. Congestion control in connection-oriented packet-switching networks
US7392349B1 (en) * 2004-01-27 2008-06-24 Netlogic Microsystems, Inc. Table management within a policy-based routing system
US7370361B2 (en) 2004-02-06 2008-05-06 Trend Micro Incorporated System and method for securing computers against computer virus
US7441022B1 (en) 2004-03-12 2008-10-21 Sun Microsystems, Inc. Resolving conflicts between network service rule sets for network data traffic in a system where rule patterns with longer prefixes match before rule patterns with shorter prefixes
US7586851B2 (en) 2004-04-26 2009-09-08 Cisco Technology, Inc. Programmable packet parsing processor
US7366728B2 (en) 2004-04-27 2008-04-29 International Business Machines Corporation System for compressing a search tree structure used in rule classification
US7685637B2 (en) 2004-06-14 2010-03-23 Lionic Corporation System security approaches using sub-expression automata
JP4392294B2 (ja) 2004-06-15 2009-12-24 株式会社日立製作所 通信統計収集装置
JP4855655B2 (ja) * 2004-06-15 2012-01-18 株式会社ソニー・コンピュータエンタテインメント 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム
US7760719B2 (en) * 2004-06-30 2010-07-20 Conexant Systems, Inc. Combined pipelined classification and address search method and apparatus for switching environments
EP1766929B1 (en) * 2004-07-09 2011-04-20 Panasonic Corporation Network mobility management method and corresponding apparatusses
US7478426B2 (en) * 2004-07-20 2009-01-13 International Busines Machines Corporation Multi-field classification dynamic rule updates
US7711893B1 (en) 2004-07-22 2010-05-04 Netlogic Microsystems, Inc. Range code compression method and apparatus for ternary content addressable memory (CAM) devices
US7464218B2 (en) 2004-08-31 2008-12-09 Seagate Technology Llc Method for improving data throughput for a data storage device
US8301788B2 (en) 2004-09-10 2012-10-30 Cavium, Inc. Deterministic finite automata (DFA) instruction
US8560475B2 (en) 2004-09-10 2013-10-15 Cavium, Inc. Content search mechanism that uses a deterministic finite automata (DFA) graph, a DFA state machine, and a walker process
US7594081B2 (en) 2004-09-10 2009-09-22 Cavium Networks, Inc. Direct access to low-latency memory
US8392590B2 (en) 2004-09-10 2013-03-05 Cavium, Inc. Deterministic finite automata (DFA) processing
WO2006029508A1 (en) 2004-09-13 2006-03-23 Solace Systems Inc. Highly scalable subscription matching for a content routing network
US7260558B1 (en) 2004-10-25 2007-08-21 Hi/Fn, Inc. Simultaneously searching for a plurality of patterns definable by complex expressions, and efficiently generating data for such searching
US7356663B2 (en) 2004-11-08 2008-04-08 Intruguard Devices, Inc. Layered memory architecture for deterministic finite automaton based string matching useful in network intrusion detection and prevention systems and apparatuses
US7478424B2 (en) 2004-11-30 2009-01-13 Cymtec Systems, Inc. Propagation protection within a network
JP4535130B2 (ja) 2004-12-09 2010-09-01 三菱電機株式会社 文字列照合装置および文字列照合プログラム
JP4140910B2 (ja) * 2004-12-28 2008-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション データ処理装置、データ管理装置、データ処理方法、データ管理方法、データ処理プログラム、データ管理プログラム、及び情報システム
US20060155915A1 (en) 2004-12-30 2006-07-13 Pereira Jose P Database query processor
US7350040B2 (en) 2005-03-03 2008-03-25 Microsoft Corporation Method and system for securing metadata to detect unauthorized access
US7710988B1 (en) 2005-03-11 2010-05-04 Xambala Corporation Method and system for non-deterministic finite automaton filtering
US7668160B2 (en) 2005-03-31 2010-02-23 Intel Corporation Methods for performing packet classification
JP2006285808A (ja) * 2005-04-04 2006-10-19 Hitachi Ltd ストレージシステム
US20060288024A1 (en) 2005-04-28 2006-12-21 Freescale Semiconductor Incorporated Compressed representations of tries
US7958507B2 (en) * 2005-06-16 2011-06-07 Hewlett-Packard Development Company, L.P. Job scheduling system and method
US7784094B2 (en) 2005-06-30 2010-08-24 Intel Corporation Stateful packet content matching mechanisms
US7979368B2 (en) 2005-07-01 2011-07-12 Crossbeam Systems, Inc. Systems and methods for processing data flows
US20080229415A1 (en) 2005-07-01 2008-09-18 Harsh Kapoor Systems and methods for processing data flows
US7869411B2 (en) * 2005-11-21 2011-01-11 Broadcom Corporation Compact packet operation device and method
US7702629B2 (en) 2005-12-02 2010-04-20 Exegy Incorporated Method and device for high performance regular expression pattern matching
US20070168377A1 (en) 2005-12-29 2007-07-19 Arabella Software Ltd. Method and apparatus for classifying Internet Protocol data packets
US20070168548A1 (en) * 2006-01-19 2007-07-19 International Business Machines Corporation Method and system for performing multi-cluster application-specific routing
US8978154B2 (en) 2006-02-15 2015-03-10 Samsung Electronics Co., Ltd. Method and apparatus for importing content having plurality of parts
US20070226362A1 (en) 2006-03-21 2007-09-27 At&T Corp. Monitoring regular expressions on out-of-order streams
US7844422B2 (en) * 2006-05-30 2010-11-30 International Business Machines Corporation Method and system for changing a description for a state transition function of a state machine engine
US20080097959A1 (en) 2006-06-14 2008-04-24 Nec Laboratories America, Inc. Scalable xml filtering with bottom up path matching and encoded path joins
US20080071783A1 (en) 2006-07-03 2008-03-20 Benjamin Langmead System, Apparatus, And Methods For Pattern Matching
EP2074767A2 (en) 2006-08-02 2009-07-01 University Of Florida Research Foundation, Inc. Succinct representation of static packet classifiers
US20080034427A1 (en) 2006-08-02 2008-02-07 Nec Laboratories America, Inc. Fast and scalable process for regular expression search
GB2441351B (en) 2006-09-01 2010-12-08 3Com Corp Positionally dependent pattern checking in character strings using deterministic finite automata
US7932349B2 (en) 2006-09-18 2011-04-26 Hercules Incorporated Membrane separation process for removing residuals polyamine-epihalohydrin resins
US8024691B2 (en) 2006-09-28 2011-09-20 Mcgill University Automata unit, a tool for designing checker circuitry and a method of manufacturing hardware circuitry incorporating checker circuitry
GB2443240B (en) 2006-10-27 2009-05-06 3Com Corp Signature checking using deterministic finite state machines
SE531947C2 (sv) 2006-11-03 2009-09-15 Oricane Ab Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk
US7657497B2 (en) 2006-11-07 2010-02-02 Ebay Inc. Online fraud prevention using genetic algorithm solution
US7899977B2 (en) 2006-12-08 2011-03-01 Pandya Ashish A Programmable intelligent search memory
WO2008073824A1 (en) 2006-12-08 2008-06-19 Pandya Ashish A Dynamic programmable intelligent search memory
US8156507B2 (en) 2006-12-08 2012-04-10 Microsoft Corporation User mode file system serialization and reliability
US7860849B1 (en) 2007-01-18 2010-12-28 Netlogic Microsystems, Inc. Optimizing search trees by increasing success size parameter
US7962434B2 (en) 2007-02-15 2011-06-14 Wisconsin Alumni Research Foundation Extended finite state automata and systems and methods for recognizing patterns in a data stream using extended finite state automata
FR2914081A1 (fr) 2007-03-23 2008-09-26 Advestigo Sa Procede de protection de documents numeriques contre des utilisations non autorisees.
WO2008129635A1 (ja) 2007-04-12 2008-10-30 Fujitsu Limited 性能障害要因分析プログラムおよび性能障害要因分析装置
US7961489B2 (en) 2007-04-23 2011-06-14 Marvell Israel (MISL)Ltd. Comparing data representations to stored patterns
US7854002B2 (en) 2007-04-30 2010-12-14 Microsoft Corporation Pattern matching for spyware detection
US7788206B2 (en) 2007-04-30 2010-08-31 Lsi Corporation State machine compression using multi-character state transition instructions
US20080291916A1 (en) 2007-05-22 2008-11-27 Bo Xiong Systems and methods for dynamic quality of service
US8341723B2 (en) 2007-06-28 2012-12-25 Microsoft Corporation Filtering kernel-mode network communications
US8219508B2 (en) 2007-07-06 2012-07-10 Lsi Corporation Systems and methods for compressing state machine instructions using a two access indexing scheme
JP4967876B2 (ja) * 2007-07-18 2012-07-04 日本電気株式会社 ネットワーク、ネットワーク装置及びそれらに用いる伝送経路冗長化方法
US8024802B1 (en) 2007-07-31 2011-09-20 Hewlett-Packard Development Company, L.P. Methods and systems for using state ranges for processing regular expressions in intrusion-prevention systems
US8520978B2 (en) 2007-10-31 2013-08-27 Mckesson Technologies Inc. Methods, computer program products, apparatuses, and systems for facilitating viewing and manipulation of an image on a client device
US8819217B2 (en) 2007-11-01 2014-08-26 Cavium, Inc. Intelligent graph walking
US8086609B2 (en) 2007-11-01 2011-12-27 Cavium, Inc. Graph caching
US20090125470A1 (en) 2007-11-09 2009-05-14 Juniper Networks, Inc. System and Method for Managing Access Control Lists
KR100920518B1 (ko) 2007-11-27 2009-10-09 한국전자통신연구원 패킷 분류 장치 및 방법
US7949683B2 (en) 2007-11-27 2011-05-24 Cavium Networks, Inc. Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph
US8180803B2 (en) 2007-11-27 2012-05-15 Cavium, Inc. Deterministic finite automata (DFA) graph compression
TWI363532B (en) 2008-01-21 2012-05-01 Univ Nat Taiwan Method and system for packet classificiation with reduced memory space and enhanced access speed
US7904942B2 (en) * 2008-02-22 2011-03-08 Inventec Corporation Method of updating intrusion detection rules through link data packet
US8474043B2 (en) * 2008-04-17 2013-06-25 Sourcefire, Inc. Speed and memory optimization of intrusion detection system (IDS) and intrusion prevention system (IPS) rule processing
SE532426C2 (sv) 2008-05-26 2010-01-19 Oricane Ab Metod för datapaketklassificering i ett datakommunikationsnät
US8051085B1 (en) 2008-07-18 2011-11-01 Netlogic Microsystems, Inc. Determining regular expression match lengths
US8554800B2 (en) 2008-07-30 2013-10-08 Portool Ltd. System, methods and applications for structured document indexing
US20100037056A1 (en) 2008-08-07 2010-02-11 Follis Benjamin D Method to support privacy preserving secure data management in archival systems
US8352391B1 (en) 2008-08-20 2013-01-08 Juniper Networks, Inc. Fast update filter
US8218493B2 (en) 2008-09-08 2012-07-10 Wisconsin Alumni Research Foundation System and method for interference mitigation in wireless networks
US8176085B2 (en) 2008-09-30 2012-05-08 Microsoft Corporation Modular forest automata
US8447120B2 (en) 2008-10-04 2013-05-21 Microsoft Corporation Incremental feature indexing for scalable location recognition
US7872993B2 (en) * 2008-10-30 2011-01-18 Alcatel Lucent Method and system for classifying data packets
US8473523B2 (en) 2008-10-31 2013-06-25 Cavium, Inc. Deterministic finite automata graph traversal with nodal bit mapping
US8683590B2 (en) 2008-10-31 2014-03-25 Alcatel Lucent Method and apparatus for pattern matching for intrusion detection/prevention systems
US9154380B2 (en) 2008-12-11 2015-10-06 International Business Machines Corporation Rules based fetching of operating platform status
TWI482083B (zh) 2008-12-15 2015-04-21 Univ Nat Taiwan 二階段式正規表示式比對處理方法及系統
TWI383618B (zh) 2008-12-22 2013-01-21 Univ Nat Taiwan 管線架構型正規表示式樣式比對處理電路
US8111697B1 (en) 2008-12-31 2012-02-07 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US8171539B2 (en) 2009-01-07 2012-05-01 Symbol Technologies, Inc. Methods and apparatus for implementing a search tree
US20100192225A1 (en) 2009-01-28 2010-07-29 Juniper Networks, Inc. Efficient application identification with network devices
WO2010094593A1 (de) * 2009-02-18 2010-08-26 OCé PRINTING SYSTEMS GMBH Verfahren zum automatischen steuern der reihenfolge von bearbeitungsaufträgen zur bearbeitung von materialgebinden
US8218553B2 (en) 2009-02-25 2012-07-10 Juniper Networks, Inc. Load balancing network traffic on a label switched path using resource reservation protocol with traffic engineering
KR101034389B1 (ko) 2009-04-22 2011-05-16 (주) 시스메이트 패킷 내 시그니처 위치에 따른 시그니처 검색 방법
US7990893B1 (en) 2009-05-19 2011-08-02 Juniper Networks, Inc. Fast prefix-based network route filtering
US8259726B2 (en) 2009-05-28 2012-09-04 Force10 Networks, Inc. Method and apparatus for forwarding table reduction
US20110016154A1 (en) 2009-07-17 2011-01-20 Rajan Goyal Profile-based and dictionary based graph caching
JP2012133405A (ja) 2009-07-24 2012-07-12 Hitachi Ltd ストレージ装置及びそのデータ転送制御方法
US8462786B2 (en) 2009-08-17 2013-06-11 Board Of Trustees Of Michigan State University Efficient TCAM-based packet classification using multiple lookups and classifier semantics
US8276142B2 (en) 2009-10-09 2012-09-25 Intel Corporation Hardware support for thread scheduling on multi-core processors
US8566344B2 (en) 2009-10-17 2013-10-22 Polytechnic Institute Of New York University Determining whether an input string matches at least one regular expression using lookahead finite automata based regular expression detection
US8631043B2 (en) 2009-12-09 2014-01-14 Alcatel Lucent Method and apparatus for generating a shape graph from a binary trie
EP2517420B1 (en) 2009-12-22 2014-03-19 Cuneyt F. Bazlamacci Systolic array architecture for fast ip lookup
US8291258B2 (en) 2010-01-08 2012-10-16 Juniper Networks, Inc. High availability for network security devices
US9031895B2 (en) 2010-01-13 2015-05-12 Ab Initio Technology Llc Matching metadata sources using rules for characterizing matches
US8458354B2 (en) 2010-01-27 2013-06-04 Interdisciplinary Center Herzliya Multi-pattern matching in compressed communication traffic
US8522199B2 (en) 2010-02-26 2013-08-27 Mcafee, Inc. System, method, and computer program product for applying a regular expression to content based on required strings of the regular expression
US8477611B2 (en) 2010-03-03 2013-07-02 Ewha University Industry Collaboration Foundation Method and apparatus for packet classification using bloom filter
CN101794271B (zh) * 2010-03-31 2012-05-23 华为技术有限公司 多核内存一致性的实现方法和装置
WO2011130604A1 (en) 2010-04-16 2011-10-20 Massachusetts Institute Of Technology Execution migration
CN101853301A (zh) 2010-05-25 2010-10-06 华为技术有限公司 正则表达式匹配的方法和系统
US20130070753A1 (en) 2010-05-26 2013-03-21 University Of Florida Research Foundation, Inc. Consistent updates for packet classification devices
JP5319626B2 (ja) * 2010-08-18 2013-10-16 日本電信電話株式会社 ノード、パケット転送方法および通信ネットワーク
US8543528B2 (en) 2010-09-23 2013-09-24 International Business Machines Corporation Exploitation of transition rule sharing based on short state tags to improve the storage efficiency
CN102075511B (zh) 2010-11-01 2014-05-14 北京神州绿盟信息安全科技股份有限公司 一种数据匹配设备和方法以及网络入侵检测设备和方法
US8799188B2 (en) 2011-02-08 2014-08-05 International Business Machines Corporation Algorithm engine for use in a pattern matching accelerator
US8856203B1 (en) 2011-02-08 2014-10-07 Pmc-Sierra Us, Inc. System and method for algorithmic TCAM packet classification
US9471532B2 (en) 2011-02-11 2016-10-18 Microsoft Technology Licensing, Llc Remote core operations in a multi-core computer
EP2490134A1 (en) 2011-02-18 2012-08-22 Amadeus S.A.S. Method, system and computer program to provide fares detection from rules attributes
US9398033B2 (en) 2011-02-25 2016-07-19 Cavium, Inc. Regular expression processing automaton
US20120221494A1 (en) 2011-02-25 2012-08-30 International Business Machines Corporation Regular expression pattern matching using keyword graphs
US8869087B2 (en) 2011-05-06 2014-10-21 Xcelemor, Inc. Computing system with data and control planes and method of operation thereof
US9858051B2 (en) 2011-06-24 2018-01-02 Cavium, Inc. Regex compiler
US8990259B2 (en) 2011-06-24 2015-03-24 Cavium, Inc. Anchored patterns
US8800021B1 (en) 2011-06-29 2014-08-05 Juniper Networks, Inc. Hardware implementation of complex firewalls using chaining technique
US8516241B2 (en) * 2011-07-12 2013-08-20 Cisco Technology, Inc. Zone-based firewall policy model for a virtualized data center
US9183244B2 (en) 2011-08-02 2015-11-10 Cavium, Inc. Rule modification in decision trees
US8923306B2 (en) 2011-08-02 2014-12-30 Cavium, Inc. Phased bucket pre-fetch in a network processor
US9208438B2 (en) 2011-08-02 2015-12-08 Cavium, Inc. Duplication in decision trees
US8954700B2 (en) 2011-08-02 2015-02-10 Cavium, Inc. Method and apparatus for managing processing thread migration between clusters within a processor
US10229139B2 (en) 2011-08-02 2019-03-12 Cavium, Llc Incremental update heuristics
US9203805B2 (en) 2011-11-23 2015-12-01 Cavium, Inc. Reverse NFA generation and processing
US9307009B2 (en) 2012-02-15 2016-04-05 Mobilespan Inc. Presenting execution of a remote application in a mobile device native format
US9575806B2 (en) * 2012-06-29 2017-02-21 Intel Corporation Monitoring accesses of a thread to multiple memory controllers and selecting a thread processor for the thread based on the monitoring
US9712510B2 (en) 2012-07-06 2017-07-18 Box, Inc. Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform
US9065780B2 (en) 2012-09-18 2015-06-23 Cisco Technology, Inc. Low latency networking device using header prediction
US9177253B2 (en) 2013-01-31 2015-11-03 Intel Corporation System and method for DFA-NFA splitting
US20140229386A1 (en) 2013-02-13 2014-08-14 Mistral Mobile Secure mobile payments
US10083200B2 (en) 2013-03-14 2018-09-25 Cavium, Inc. Batch incremental update
US9430511B2 (en) 2013-03-15 2016-08-30 Cavium, Inc. Merging independent writes, separating dependent and independent writes, and error roll back
US9276846B2 (en) 2013-03-15 2016-03-01 Cavium, Inc. Packet extraction optimization in a network processor
US9537771B2 (en) 2013-04-04 2017-01-03 Marvell Israel (M.I.S.L) Ltd. Exact match hash lookup databases in network switch devices
US9563399B2 (en) 2013-08-30 2017-02-07 Cavium, Inc. Generating a non-deterministic finite automata (NFA) graph for regular expression patterns with advanced features
US9426165B2 (en) 2013-08-30 2016-08-23 Cavium, Inc. Method and apparatus for compilation of finite automata
US9419943B2 (en) 2013-12-30 2016-08-16 Cavium, Inc. Method and apparatus for processing of finite automata
US9544402B2 (en) 2013-12-31 2017-01-10 Cavium, Inc. Multi-rule approach to encoding a group of rules
US9667446B2 (en) 2014-01-08 2017-05-30 Cavium, Inc. Condition code approach for comparing rule and packet data that are provided in portions
US9904630B2 (en) 2014-01-31 2018-02-27 Cavium, Inc. Finite automata processing based on a top of stack (TOS) memory
US9602532B2 (en) 2014-01-31 2017-03-21 Cavium, Inc. Method and apparatus for optimizing finite automata processing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7023807B2 (en) * 1998-01-23 2006-04-04 Timothy Scott Michels Network switching device with pipelined search engines
US6778530B1 (en) * 1999-11-08 2004-08-17 Juniper Networks, Inc. Method and apparatus for multiple field matching in network device
US7548944B2 (en) * 2003-07-15 2009-06-16 Intel Corporation Statistics collection framework for a network processor
CN101501637A (zh) * 2005-03-25 2009-08-05 索尼株式会社 模块化镜像下载系统
CN101351784A (zh) * 2005-12-30 2009-01-21 阿西式·A·潘迪亚 运行时自适应搜索处理器
US7522581B2 (en) * 2006-08-01 2009-04-21 International Business Machines Corporation Overload protection for SIP servers
US20080310440A1 (en) * 2007-06-13 2008-12-18 Jyshyang Chen Network interface system with filtering function

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DELORES M.ETTER: "《工程问题C语言求解》", 31 May 2005, 清华大学出版社 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110622156A (zh) * 2017-05-12 2019-12-27 华为技术有限公司 用于查询大图的增量图计算
CN110622156B (zh) * 2017-05-12 2022-05-31 华为技术有限公司 用于查询大图的增量图计算方法及设备
WO2019241926A1 (zh) * 2018-06-20 2019-12-26 华为技术有限公司 访问控制列表的管理方法及装置
CN111819552A (zh) * 2018-06-20 2020-10-23 华为技术有限公司 访问控制列表的管理方法及装置
CN112948103A (zh) * 2019-12-10 2021-06-11 腾讯科技(深圳)有限公司 资源配置方法、装置、存储介质及电子设备
CN112948103B (zh) * 2019-12-10 2023-10-27 腾讯科技(深圳)有限公司 资源配置方法、装置、存储介质及电子设备
CN113709099A (zh) * 2021-07-12 2021-11-26 新华三大数据技术有限公司 混合云防火墙规则下发方法、装置、设备及存储介质
CN113709099B (zh) * 2021-07-12 2023-11-07 新华三大数据技术有限公司 混合云防火墙规则下发方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2013019981A1 (en) 2013-02-07
US20130036285A1 (en) 2013-02-07
US20150195200A1 (en) 2015-07-09
US8966152B2 (en) 2015-02-24
US8606959B2 (en) 2013-12-10
US9031075B2 (en) 2015-05-12
US9614762B2 (en) 2017-04-04
US20130036152A1 (en) 2013-02-07
KR101476113B1 (ko) 2014-12-23
US20150117461A1 (en) 2015-04-30
US20150143060A1 (en) 2015-05-21
US20140119378A1 (en) 2014-05-01
US9344366B2 (en) 2016-05-17
US9596222B2 (en) 2017-03-14
US9525630B2 (en) 2016-12-20
WO2013020002A1 (en) 2013-02-07
US20130036284A1 (en) 2013-02-07
US20130039366A1 (en) 2013-02-14
KR101476114B1 (ko) 2014-12-23
US8719331B2 (en) 2014-05-06
US20130058332A1 (en) 2013-03-07
US20130036151A1 (en) 2013-02-07
US9137340B2 (en) 2015-09-15
US20130034100A1 (en) 2013-02-07
US20130036274A1 (en) 2013-02-07
US20140215478A1 (en) 2014-07-31
KR20140053272A (ko) 2014-05-07
JP5657840B2 (ja) 2015-01-21
US9729527B2 (en) 2017-08-08
US20130036471A1 (en) 2013-02-07
US9065860B2 (en) 2015-06-23
KR20140053266A (ko) 2014-05-07
US20130036185A1 (en) 2013-02-07
US20130085978A1 (en) 2013-04-04
US20130250948A1 (en) 2013-09-26
US9866540B2 (en) 2018-01-09
CN103858392B (zh) 2018-12-14
US10277510B2 (en) 2019-04-30
WO2013020001A9 (en) 2013-03-28
US8937954B2 (en) 2015-01-20
JP2014524688A (ja) 2014-09-22
US20130036288A1 (en) 2013-02-07
US8472452B2 (en) 2013-06-25
US8995449B2 (en) 2015-03-31
WO2013019996A1 (en) 2013-02-07
US9531690B2 (en) 2016-12-27
US20160248739A1 (en) 2016-08-25
US8937952B2 (en) 2015-01-20
US20130036102A1 (en) 2013-02-07
WO2013020001A1 (en) 2013-02-07
US20130036477A1 (en) 2013-02-07
US20130036083A1 (en) 2013-02-07
US8954700B2 (en) 2015-02-10
US20130067173A1 (en) 2013-03-14
US9391892B2 (en) 2016-07-12
US20150121395A1 (en) 2015-04-30
US20130034106A1 (en) 2013-02-07
US8934488B2 (en) 2015-01-13
CN103858386B (zh) 2017-08-25
WO2013020003A1 (en) 2013-02-07
US20130060727A1 (en) 2013-03-07
US8711861B2 (en) 2014-04-29
US9319316B2 (en) 2016-04-19
US9225643B2 (en) 2015-12-29
US9497117B2 (en) 2016-11-15
CN103858386A (zh) 2014-06-11
US20140188973A1 (en) 2014-07-03
US9191321B2 (en) 2015-11-17

Similar Documents

Publication Publication Date Title
CN103858392A (zh) 包分类规则的增量更新
US10229139B2 (en) Incremental update heuristics
US9183244B2 (en) Rule modification in decision trees
US10083200B2 (en) Batch incremental update
US10460250B2 (en) Scope in decision trees
US8087061B2 (en) Resource-reordered remediation of malware threats
Clímaco et al. Multicriteria path and tree problems: discussion on exact algorithms and applications
CN108881207B (zh) 基于安全服务链的网络安全服务实现方法
Pierre et al. Assigning cells to switches in cellular mobile networks using taboo search
CN106105115A (zh) 网络环境中由服务节点始发的服务链
US20120188249A1 (en) Distributed graph system and method
CN104050041A (zh) 用于在处理器中调度规则匹配的调度方法和装置
Ferone et al. Shortest paths on dynamic graphs: a survey
Bnaya et al. Repeated-task Canadian traveler problem
Liu et al. Ambiguous decision trees for mining concept-drifting data streams
Torralba et al. Faster stackelberg planning via symbolic search and information sharing
Li et al. Processing-while-transmitting: cost-minimized transmission in SDN-based STINs
Mukherjee et al. A multi-objective antlion optimizer for the ring tree problem with secondary sub-depots
US8316151B1 (en) Maintaining spatial ordering in firewall filters
Sanders et al. Think locally, act globally: Perfectly balanced graph partitioning
Suebchua et al. History-enhanced focused website segment crawler
Akkanen et al. Case study of the evolution of routing algorithms in a network planning tool
Ma et al. Graph pattern matching for dynamic team formation
Sureshkumar et al. Hybrid firefly bat algorithm (HFBA)–based network security policy enforcement for PSA
US7447668B2 (en) Match network construction

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1197955

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Cavium, Inc.

Address before: California, USA

Applicant before: Cavium, Inc.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200423

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

Effective date of registration: 20200423

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: California, USA

Patentee before: Cavium, Inc.