CN1465014A - 使用tcam实现数据流的选择性路由 - Google Patents

使用tcam实现数据流的选择性路由 Download PDF

Info

Publication number
CN1465014A
CN1465014A CN02802453A CN02802453A CN1465014A CN 1465014 A CN1465014 A CN 1465014A CN 02802453 A CN02802453 A CN 02802453A CN 02802453 A CN02802453 A CN 02802453A CN 1465014 A CN1465014 A CN 1465014A
Authority
CN
China
Prior art keywords
index
subclauses
stream
tcam
clauses
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
CN02802453A
Other languages
English (en)
Other versions
CN1282104C (zh
Inventor
阿舒托什·梅特
阿图·马哈穆尼
维佳·昌德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of CN1465014A publication Critical patent/CN1465014A/zh
Application granted granted Critical
Publication of CN1282104C publication Critical patent/CN1282104C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • 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/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/627Queue scheduling characterised by scheduling criteria for service slots or service orders policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9036Common buffer combined with individual queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • H04L49/9073Early interruption upon arrival of a fraction of a packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM

Landscapes

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

Abstract

本发明涉及使用三态内容可寻址存储器(TCAM)(30)来支持多数据流的路由器的方法和系统,其中向TCAM(30)写入访问的数量经过了优化,以便提高数据更新和后续的数据查询的效率。为了能够容纳多个数据流,TCAM被分为至少两个分区,其中第一部分包含优先权较高的索引(32),第二部分包含优先权较低的索引。例如,可以把多协议标签交换(MPLS)流和IP-虚拟专用网络(VPN)(36)加入到第一个分区中,把基于策略的路由流加入到第二个分区中。在对来向数据包的字冠的后续TCAM查询中,MPLS或IP-VPN将包含任何匹配的基于策略的路由流,例如按照访问控制列表分类的路由流或业务管理器流。

Description

使用TCAM实现数据流的选择性路由
技术领域
本发明涉及网络通信,尤其涉及使用三态内容可寻址存储器(TCAM)实现多数据流的选择性路由,例如多协议标签交换(MPLS)、互联网协议(IP)虚拟专用网络(VPN)数据包和基于策略的路由数据包。
背景技术
网络提供商感兴趣的是提供集中化的网络服务以满足客户的需求。通过利用在IP服务质量(QoS)、多协议标签交换(MPLS)和服务转换技术(把非IP服务转换为IP服务)方面的最新成果,服务提供商可以把专用的IP基础设施改造为多服务网络基础设施,为运营分立的特定服务网络提供了另一种途径。
MPLS是一种遵从标准的技术,它用于加速网络业务流速,同时简化网络管理。MPLS包括为特定的数据包序列设置相应的路径,它根据每个数据包中包含的标签确定数据包,因此节省了路由器查询下一个节点地址所需的时间。MPLS被称作多协议是因为它与互联网协议(“IP”)、异步传输模式(“ATM”)以及各种帧中继网络协议协同工作。MPLS允许在标准开放系统互联(“OSI”)的第二层(交换层)上转发大多数数据包,而不是在第三层上转发数据包。除了具有业务的总体传送速度更快的优势外,MPLS还简化了网络服务质量(“QoS”)的管理。出于这些原因,随着网络开始承载更多的、不同种类的业务,该技术有望被迅速采用。
MPLS的实质是产生一种短的、固定长度的“标签”,这种标签作为IP信息包头部的一种缩写表述,而且,MPLS使用这种标签来转发关于信息包的决议结果。典型情况下,IP数据包通过一系列路由器从源地址路由到目的地,这些路由器接收IP数据包,读取源地址和/或目的地址,然后向由IP数据包中包含的目的地址指示的目的地址再次发送数据包,或者把数据包转发给另一个路由器,由该路由器转发IP数据包,直到IP数据包达到目的地址,这种转发方式称为逐段路由。IP数据包的头部包含IP源地址和/或目的地址的字段。路由协议(例如路由信息协议(“RIP”)和第一条开放最短路径(“OSPF”))使每台机器能够理解在数据包向其目的地址行进的过程中的下一台机器是哪一台。
在MPLS中,IP地址在进入到网络后遇到的第一个MPLS设备上被封装一个标签,MLPS边界路由器分析IP头部的内容,并选择用于打包数据包的适当的标签。与传统的IP路由不同的是,该路由器的分析可以不仅基于IP头部包含的目的地址。在网络中的所有后续节点上,路由器使用MPLS标签而不是IP头来为数据包确定转发决策。当带有标签的MPLS离开网络时,另一台边界路由器把标签去除。在MPLS术语中,数据包处理节点或路由器被称作标签交换路由器(LSR)。MPLS路由器通过以MPLS标签为基础制定交换决策来转发数据包。LSR可分为两个大类:MPLS边界路由器——它是一种高性能数据包分类器,它在网络边缘应用(和去除)必要的标签;核心LSR——这种路由器能够以极高的带宽处理带有标签的数据包。
在MPLS中,使用一种内容可寻址存储器(CAM)设备存储IP地址,从而利用了高效地使用IP寻址的传统路由方案。内容可寻址存储器(CAM)是一种存储设备,可以指令它把存储在其联合CAM数组中的数据与被比较数据的特定模式比较。整个CAM数组(或各个段)支持并行搜索,其中的数据同时与被比较数据比较。如果找到匹配的数据,那么CAM设备会插入一个匹配标记来指示匹配值。插入一个多匹配标记还可以指示多个匹配值。通常,CAM设备包含一个优先级编码器,该编码器把最高优先级的匹配位置翻译为一个匹配地址或CAM索引。CAM的快速并行搜索能力在许多应用中非常有用,包括在路由器和联网设备中的地址过滤和查找、在基于策略的路由器中的策略实施、用于加密/解密以及压缩/解压缩应用的模式识别、以及其它模式识别应用等。
二态CAM单元可以存储信息的两个状态:一个逻辑1状态和一个逻辑0状态。二态CAM单元通常包含一个RAM单元和一条比较电路。比较电路把被比较数据与RAM单元中存储的数据进行比较,当发现匹配值时,就把匹配行设置为与预先确定的状态。二态CAM单元的列可以由存储在一个或多个全局屏蔽寄存器中的掩码数据全局屏蔽。三态CAM单元是按位掩码的CAM单元,从而有效地存储信息的三个状态:逻辑1状态,逻辑0状态、以及与比较操作无关的状态。二态CAM单元通常包含第二个RAM单元,这个RAM单元为每个二态CAM单元存储局部掩码数据。局部掩码数据对被比较数据与存储在第一个RAM中的数据进行比较的结果进行屏蔽,使比较结果不影响匹配行。二态CAM单元为用户按条目确定比较中要屏蔽的位提供了更高的灵活性。
美国专利6,237,061中描述了一个系统,在该系统中,无类别域间路由(CIDR)地址被预先排序并装载到二态CAM中,这样,具有最长前缀的CAM条目位于最高数字地址或索引处。CIDR地址的前缀部分用于设置与每个CAM条目相关的屏蔽单元,这样,在比较操作中,只有每个CAM条目的未屏蔽前缀部分(可以对应网络ID字段)被与存储为CAM搜索关键字的来向目的地址比较。由于每个CAM条目按照相关的前缀值掩码,所以二态CAM只需要一次搜索操作就能定位具有最长前缀的CAM条目。
网络提供商提供的某些其它网络设备包含互联网协议(IP)虚拟专用网络(VPN),从而能够与分布在不同地域的各种客户地点互联。VPN通过网络基础设施共享实现了传输的秘密性和低成本高效率特点。美国专利6205448中描述了一种虚拟专用网络,该虚拟专用网络包含与共享MPLS网络连接的多台路由器,并且被配置为在整个共享MPLS网络中动态传送VPN信息。
在该专利中还描述了基于策略的路由服务,这些服务允许客户实现控制数据包在相应路径上传输的策略。在该专利中还包含了基于策略的路由的传统应用,包括:通过跨策略路由器的不同互联网连接为从不同用户组发起的路由流选择基于源地址的中继提供商;用于以服务类型为基础确定业务优先级的服务质量(QoS)控制方法;以及在低带宽、低成本的永久路径和高带宽、高成本的交换路径之间传送业务的节省成本方法等。
人们希望提供一种通过使用TCAM分类多种类型的数据业务和路由查找来实现快速搜索能力的方法和系统。
发明内容
本发明涉及使用三态内容可寻址存储器(TCAM)支持路由器中的多数据流的方法和系统,其中对TCAM的访问数量进行了优化,以提高更新数据和后续查找的效率。为了容纳多个数据流,TCAM被分为至少两个分区,其中的第一个部分包含优先级较高的索引,第二个部分包含优先级较低的索引。例如,可以向第一个分区加入多协议标签交换(MPLS)流和IP虚拟专用网络(VPN)流,在第二个分区中加入基于策略的路由流。在对来向数据包的预定义前缀的后续TCAM查找中,MPLS或IP-VPN流将包含匹配的基于策略的路由流,例如按照访问控制列表或业务管理器流分类的路由流。
对于MPLS和IP-VPN流,按连接索引(CIX)和目的IP地址(DA)分类的路由流和只按CIX分类的路由流被从TCAM的第一个分区的顶端加入,只按DA分类的路由流被从第一个分区的底端加入。这种方案的优点是,按CIX和DA分类的路由流以及只按CIX分类的路由流在较高索引处包含只按DA分类的路由流,而且,按CIX和DA分类的路由流以及只按CIX分类的路由流与只按DA分类的路由流分离开来,从而优化了增加新路由流时所需的交换数量。为了减少对TCAM的写访问次数,使用了具有与TCAM空间对应的条目的流索引空间。交换在索引空间中进行,并且只有发生改变的数据被写入TCAM中。
通过下面的附图和说明可以更详细地了解本发明。
附图说明
图1是按照本发明的原理实现的一个用于分类路由器中的路由流的系统体系结构的高级功能框图。
图2是按照本发明的原理实现的流分类器和流管理器的示意图。
图3是一个TCAM流条目的示意图。
图4A是用于存储按连接索引(CIX)分类的路由流的前缀树的示意图。
图4B是用于存储按目的地址(DA)分类的路由流的前缀树的示意图。
图5A是没有DA流时在加入路由流之前用于按CIX和DA分类的MPLS和IP-VPN路由流的流TCAM的数据组织方法的示意图。
图5B是没有DA流时在加入路由流后用于按CIX和DA分类的MPLS和IP-VPN路由流的流TCAM的数据组织方法的示意图。
图5C是有DA流时在加入路由流之前用于按CIX和DA分类的MPLS和IP-VPN路由流的流TCAM的数据组织方法的示意图。
图5D是有DA流时在加入路由流后用于按CIX和DA分类的MPLS和IP-VPN路由流的流TCAM的数据组织方法的示意图。
图6A是没有CIX、DA或CIX流时在加入路由流之前用于按DA分类的MPLS和IP-VPN路由流的流TCAM的数据组织方法的示意图。
图6B是没有CIX、DA或CIX流时在加入路由流之后用于按DA分类的MPLS和IP-VPN路由流的流TCAM的数据组织方法的示意图。
图6C是有CIX、DA或CIX流时在加入路由流之前用于按DA分类的MPLS和IP-VPN路由流的流TCAM的数据组织方法的示意图。
图6D是有CIX、DA或CIX流时在加入路由流之后用于按DA分类的MPLS和IP-VPN路由流的流TCAM的数据组织方法的示意图。
图7是用于基于策略的路由流的流TCAM的数据组织方法的示意图。
具体实施方式
现在我们详细描述本发明的一个较佳实例,该实例在附图中示出。在引用相同或相似部件的图纸和描述,我们将尽可能使用相同的引用号码。
请参考图1,图1中的高级功能框图显示了一种按照本发明的原理实现的用于在路由器10中分类路由流的系统体系结构。一个路由器是一组数据包,这些数据包遵守由其头部中的内容确定的规则或策略。例如,数据包的头部可以包含源IP地址、目的IP地址、源端口、目的端口、协议标识、服务类型(TOS)、连接索引(CIX)和其它内容。该体系结构包含三个主要元素:控制平面12、数据平面13、以及第2层接口14。各种元素之间的交互由相应元素之间的一系列箭头代表。可以在软件中实现的控制平面12由流管理器15、数据平面控制接口16、流核心控制17和IP、用户数据报协议(“UDP”)、以及传输控制协议(“TCP”)18构成。可以在硬件中实现的数据平面13由流分类器20、IP转发器21、以及标签转发器22构成。IP业务和IP控制业务23在流分类器20处接收。流分类器20与用于分类和路由IP业务和IP控制业务23的流管理器15和流核心控制17交互,并通过标签转发器22应用目的路由(对于MPLS流),或者通过IP转发器21应用目的路由(对于非MPLS流)。流核心控制17可以由软件模块构成,例如TEP、red管理器、标签管理器、路由监视器、路由管理器和FIB、以及IP路由数据库。虽然本发明最适合于AmberNetwork ASR2000和ASR2020设备,但是它也同样适合于具有相同能力和特性的其它路由器。在本文中必要时将引用AmberNetwork ASR2000和ASR2020技术手册的内容。
图2的原理图显示了流分类器20和流管理器15的一个实现例子。在本实例中,流分类器20由流二态内容可寻址存储器(TCAM)30构成。流TCAM30是一种硬件的存储器设备,TCAM中的所有条目以并行方式被与来向数据包头部字段比较,并且在一个时钟周期中选中第一个匹配的条目。一种比较合适的TCAM是加州圣何塞劳拉技术有限公司生产的产品,这种产品在美国专利6081440中进行了描述。每个流TCAM30由索引32寻址或索引。索引32可以是一个索引值,也可以是一个数字地址。索引32按从最低索引32a到最高索引32n方式排列,最低索引32a的优先级最高,最高索引32n的优先级最低。
图3显示了将存储在流TCAM30中的一个典型的TCAM流条目33。局部掩码34与每个TCAM流条目33关联,以便有效地在流TCAM30中存储逻辑0、逻辑1或“与流TCAM查找操作无关”标记。例如,如果局部掩码34的一个位是逻辑1,那么在后续的流TCAM查找操作中,TCAM流条目33中的相应位将被与来向数据包的相应位比较。相反,如果局部掩码34是逻辑0,那么在后续的流TCAM查找操作中,TCAM流条目33的相应位不与来向数据包的相应位比较。在本发明的其它实例中,掩码位的方案也可以相反,这样,如果掩码位是逻辑1,那么TCAM流条目的相应位将被屏蔽,如果掩码位是逻辑0,那么TCAM流条目的相应位将被比较。一个前缀可以与流TCAM条目33中的一个或多个域(例如目的IP地址)关联,以指示在流TCAM30中要匹配的包头部的目的IP地址的位数。在后续的流TCAM查找操作中,如果在未屏蔽的TCAM条目和预先确定的与来向包头部位对应的前缀匹配时,匹配的TCAM流条目33的索引以及存储在流TCAM30或相关的外部存储器(例如SRAM)中的路由数据将作为输出。
流管理器15用于为流TCAM30提供数据结构组织方案。请参考图2,流管理器15可以把索引32分为一个或多个逻辑分区。路由流按照其类型的相应优先级被分配到分区中。在本实例中,索引32被分配到分区36a中(该分区包含最低索引32a)和分区36b中(该分区包含最高索引32n)。FTCAM_Partition索引位于分区36a和分区36b之间。在图2中所示的实例中,MPLS和IP-VPN流被确定为具有最高优先级,并且被分配到分区36a中。基于策略的路由流可以包含按访问控制列表(ACL)流和业务管理器(TE)流划分的数据。因此,在对流TCAM30的后续查找中,被分配了较高优先级的MPLS流和IP-VPN流可以在被分配了较低优先级的ACL流和TE流之前找到,MPLS流或IP-VPN流可以包含在流TCAM30中的任何匹配的ACL流和TE流。
流索引空间38可以在流管理器15中维护,以便与流TCAM30的数据排列形式对应。所有的流交换操作都可以在流索引空间38中进行,只有被更改的条目会被写入到流TCAM30中。
在本发明的一个实例中,使用一个指针数组和前缀树把MPLS和IP-VPN流存储到流索引空间中,如图4A和4B所示。按照包头部的连接索引CIX和目的IP地址(DA)字段分类的路由流被存储在CIX前缀树(40)中。每个连接索引(CIX1-CIX16K)与前缀树40的节点41a-41n关联。可以执行基于目的IP地址的查找操作来查找存储在节点41a-4ln中的最长的匹配前缀。在流TCAM30的查找过程中,为了匹配正确的流,必须对路由流进行维护。在流索引空间38中使用一个gMaxCixDaFix变量指示按CIX和DA分类的路由流以及只按CIX分类的路由流的最大流TCAM索引。只按目的IP地址分类的路由流被存储在DA前缀树42中,每个DA与前缀树42的节点44关联。
在流索引空间38中使用gMinDaOnlyFix变量指示只按DA分类的路由流的最小流TCAM索引。
对于TCAM30的MPLS和IP-VPN流结构,可以在流管理器15中实现一个软件模块。表1中给出了一个典型的软件模块。
                         表1
typedef struct_flowlkuptabentry

    {

       FM_PR_TREE*pfTreePtr;

    } FM_FLOWLKUP_TABLE_ENTRY;

    typedef struct_lookuptable

    {

       FM_FLOWLKUP_TABLE_ENTRY flowLkupTable[FM_MAX_CIX];

    }FM_FLOWLKUP_TABLE;

    typedef struct_fmprtreenode

    {

       PR_NODE  prNode;  /*PR_NODE contains RB_NODE+

    prefix and mask */

       FM_FLOW   flowObject;

    }FM_PR_NODE;

    typedef struct_fmprefixtree

    {

       PR_TREE     prTree;/*root of prefix tree*/

    }FM_PR_TREE;
图5A-5D显示了用于MPLS和IP-VPN流的流TCAM30的数据结构的例子。为了在流TCAM30的查找过程中匹配正确的路由流,需要对路由流进行维护。分区36a被分为较低索引部分50a和较高索引部分50b。较低索引部分50a对应着较低索引或地址范围;较高索引部分50b对应着较高索引或地址范围。按包头部的连接索引(CIX)和目的IP地址(DA)字段分类路由流(称为CIX,DA)被分配到较低索引部分50a中。只按包头部的CIX分类的路由流也被分配到较低索引部分50a中。只按包头部的DA分类的路由流被分配到较高索引部分50b中。可以对每个流TCAM条目33应用局部掩码34,以便有效地存储特定类型的数据流(例如上述的CIX,DA流、CIX流和DA流),从而在流TCAM30的比较操作中使用这些数据流。例如,当DA的局部掩码位是0并且CIX的局部掩码位全是1时,可以出现CIX流。
在向TCAM30增加按CIX,DA或CIX分类的路由流时,将从较低索引部分50a的最低索引32a搜索TCAM30中的自由条目。自由条目被称为Fix。在增加分类为DA流的路由流时,从最高索引部分50b的最高索引32b搜索TCAM30中的自由条目。与最低索引部分50a的最大值对应的索引被定位gMaxCixDaFix;与最高索引部分50b的最小值对应的索引被定位gMinDaOnlyFix。采用这种方式,最大自由空间54在最低索引部分50a和最高索引部分50b之间实现,因此把CIX,DA流和CIX流组织在一起,把DA流组织在一起,同时把CIX、DA流和CIX流与DA流分离开来。在从TCAM30中删除按CIX,DA或CIX分类的路由流时,流空间38中对应的索引32处的条目被设置为无效。因此,在以后增加按CIX、DA或CIX分类的路由时,在从较低索引部分50a中的最低索引32a搜索自由条目时,无效的条目会被发现,此时增加的路由流会重用无效的条目空间。因此,只有当TCAM30的空间被占满时,才有必要交换DA流来插入CIX,DA或CIX流,或者交换CIX,DA或CIX流来插入DA流。
图5A-5B显示了在不存在DA流或自由TCAM条目且Fix在比gMinDaOnlyFix低的索引值处的DA流之上的CIX、DA流和CIX流的安排方式。GMaxCixDaFix索引条目被设置在紧随与Fix对应的索引之后。图5C-5D显示了存在DA流或自由TCAM条目并且Fix在DA流之间时的CIX,DA流和CIX流的安排情况。在本实例中,TCAM30几乎已满。从最低索引32a到gMaxCixDaFix和gMinDaOnlyFix索引之间没有自由条目。因此,gMaxCixDaFix和gMinDaOnlyFix索引是相邻索引。在gMinDaOnlyFix索引和最高索引32b之间有自由条目。例如,由于以前删除过DA流,因此自由条目可以出现在DA流空间中。为了使用自由条目Fix,对于按CIX,DA或CIX分类的路由流,在gMinDaOnlyFix处的DA流被移动到Fix,因此使gMinDaOnlyFix索引可用。在CIX,DA或CIX分类的路由流被写到gMinDaOnlyFix的当前索引处。GMaxCixDaFix索引被设置在为按CIX,DA或CIX分类的路由流写入的TCAM条目处,gMinDaOnlyFix条目被设置在紧随写入的TCAM条目之后。为了实现正确的归类排序,需要调整在最低索引32a和TCAM30中的gMaxCixDaOnly索引之间的其它CIX,DA和CIX路由流以及在GMinDaOnlyFix索引和最高索引32b之间的其它DA流。
在流管理器15可以实现一个软件模块来向TCAM30增加CIX,DA流和CIX流。指向当前流的指针被称为pflow。指向自由条目的指针被称为fix。TCAM流条目33由AdjustAndWriteCixDA(pflow,fix)函数(下下文中描述)写入到流TCAM30中,以便按照相同CIX中的其它DA的局部掩码34把向流TCAM30的写入调整在TCAM流条目处。表2中给出了一个典型的软件模块。
                        表21.开始insertCixDaFlow(pFlow)2.在TCAM分区的顶部开始,向下检索,发现第一种自由FTCAM条目,说′Fix′。
3.if((gMinDaOnlyFix==0)||(Fix<gMinDaOnlyFix))
  {/*No<DA>only flows are present*/
   /*Or<DA>only flows exist,but Fix is above them*/
   AdjustAndWriteCixDA(pFlow,Fix)/*take care of subsuming
  issues with other Das in same Cix,based on subnet masks*/

    Set gMaxCixDaFix

    Return
  }
  else
  {

    /*There are DA Only flows present*/

    /*Free flow is in between the<DA>only flows*/

    /*Get Flow currently at gMinDaOnlyFix*/

    pOtherFlow=GetFlowAtIndex(gMinDaOnlyFlow);

    AdjustAndWriteDA(pOtherFlow,Fix);

    /*Write Flow to be added at gMinDaOnlyFix*/

    AdjustAndWriteCixDA(pFlow,gMinDaOnlyFix);

    set gMaxCixDaFix

    set gMinDaOnlyFix

    Return
  }
4.结束insertCixDaFlow
在插入CIX,DA流、CIX流和DA流时,流TCAM30中的路由流被相应地调整,以保证TCAM30的排序顺序是:具有最长前缀的TCAM条目位于具有最高优先级的索引处(即,索引值最低或数值最小),具有最短前缀的TCAM条目位于具有最低优先级的索引处(即索引值最高或数值最大)。表3和表4分别显示了用于调整和写入DA流以及调整和写入Fix和DA流的软件模块,这些软件模块可以在流管理器15中实现,并且可用于表1中所示的软件模块。
                     表31开始AdjustAndWriteDA(pFlow)。2使用流中目的IP地址的掩码长度,首先确定前缀树42的短前缀数据流,如果短前缀点仅仅在前缀树42的<DA>中被发现,并且发现点的步长值小于pFlow的值,交换两个数据流的值,将第二个数据流的值写到流TCAM30,然后继续搜索包含被替换的数据流的本地路由器。3最后将最佳的流写到正确的位置,这样就没有必要在下面的程序中重写一次。4在这一点pFlow指向最短前缀流,这个最短前缀流的索引值必须遵循最大前缀匹配特性并且与插入流TCAM30的初始流相匹配。5在TCAM30中确定较长的前缀的流,从掩码长度32开始到当前的掩码长度,包含最大的流的值。6如果找到的流的流索引值大于当前流的流索引值,意思是指对于同一个目的来说较长前缀的流要比当前短前缀流到达的时间早,在TCAM中交换两个流并且确定两个流的索引值。将第2个流写到TCAM30中。7把最佳的流写到正确的位置,如果这个流是和第3步的流相同的话。TCAM30就不需要重写了。8结束AdjustAndWriteDA(pFlow)。
                        表41.开始adjustAndWriteCixDA(pFlow,Fix)2.使用流中的目的IP地址的掩码长度,第一次将较短前缀的流固定在前缀树40中。如果较短前缀节点被发现,被发现节点的索引比pFlow节点的索引低,交换这两个流并只写入第二种流到流TCAM30中。然后继续以被删除的流检索,以定位被包含的路由。3.将最后的流写入其正确的位置,将其记住,以便下次不再重写。4.在pFlow这一点是指向其索引必须调整,以适应LPM属性的最短前缀流,和必须插入流TCAM30中的与原始流匹配的流。5.将较长前缀的流固定于TCAM30中。从掩码长度32开始,向下通过掩码长度,发现包含最长流索引的流。
图6A-6B显示了当第一个自由TCAM条目“Fix”位于CIX,DA流和CIX流之后或者不存在CIX,DA流时的DA流的分配情况。GMinDaOnlyFix索引条目被设为在与Fix对应的索引处。图6C-6D显示了当第一个自由TCAM条目“Fix”位于CIX,DA或CIX流之间时DA流的分配情况。在本实例中,TCAM30几乎已满。从最高索引32b经过gMinDaOnlyFIx到gMaxCixDaFix没有自由条目。所以,gMaxCixDaFix和gMinDaOnlyFix索引是相邻的。在gMaxCixDaFix和最低索引32a之间有自由条目。例如,由于以前曾经删除过CIX,DA或CIX流,所以在CIX,DA和CIX流空间中有自由条目。为了使用自由条目“Fix”,对于只按照DA分类的路由流,在gMaxCixDaFix索引处的CIX,DA或CIX流被移动到Fix中,因此使gMaxCixDaFix索引可用。按DA分类的流被写到gMaxCixDaFix的当前索引处。gMinDaOnlyFix条目被设置为位于写入的TCAM条目上,而gMaxCixDaFix条目被设置为刚好位于写入的TCAM条目之前。为了实现正确的归类排序,需要调整在最高索引32b和gMinDaOnlyFix索引之间的其它DA流以及在gMaxCixDaFix和最低索引32a之间的其它CIX,DA和CIX流。
在流管理器15中可以实现一个软件模块用来向TCAM30增加DA流。表5中给出了一个典型的软件模块。
                           表51.开始insertDaOnlyFlow(pFlow).2.在TCAM分区的顶部开始,向下检索,发现第一种自由FTCAM条目,说′Fix′。如果失败了,(TCAM分区已满),回退-1.
3.if(Fix>gMaxCixDaFix)
  {/*Flow index is located after both<Cix,DA>and<Cix>only
flows in the TCAM*/

    /*OR gMaxCixDaFix=0,i.e.there are no<Cix,DA>flows yet*/

    AdjustAndWriteCixDA(pFlow,Fix)/*take care of subsuming

    issues with other DAs in same Cix,based on subnet masks*/

    Set gMaxCixDaFix

    Return
  }
  else
  {

    /*Fix lies in between<Cix,Da>flows*/

    /*Get flow currently at gMaxCixDaFix at flowIndex*/

    pOtherFlow=GetFlowAtIndex(gMaxCixDaFix);

    AdjustAndWriteCixDA(pOtherFlow,Fix)/*take care of

    subsuming issues with other DAs in same Cix,based on subnet

    masks */

    AdjustAndWriteDA(pFlow,gMaxCixOnlyFix)

    Set gMinDaOnlyFix

    Set gMaxCixDaFix

    Return
  }
4.结束insertDaOnlyFlow
如果某个接口发生故障,那么流管理器15的客户机负责删除TCAM30中的路由流。流管理器15提供了一个应用编程接口(API),以便根据应用句柄撤销路由。例如,如果一条IP电路发生故障,那么连接管理器会通知IP任务和VPN管理器接收这条告警。VPN管理器根据电路标识符从流TCAM30中撤销路由。
可以在流管理器15实现一个软件模块来删除TCAM30中的路由流。表6中给出了一个典型的软件模块。
                         表61.检查flowId在限度内。2.得到对应FlowId的流:pFlow=GetFlowAtIndex(flowId)3.发现正确树中的节点。如果pFlow有Cix,为该Cix检索前缀树40,也检索前缀树42。4.删除发现的节点,调整各个树并释放节点存储器。5.释放流空间索引条目。6.如果FlowId=gMaxCixDaFix或gMinDaOnlyFix,修改这些变量。如果在gMaxCixDaFix索引处的流被删除,减少gMaxCixDaFi直到它变到有效的<Cix,DA>或只按<Cix>分类的流的索引。如果在gMinDaOnlyFix索引处的流被删除,增加gMinDaOnlyFix直到它变到有效的只按<DA>分类的流的索引。7.释放流存储器,并使TCAM30中的流无效。
ACL流和业务管理器(TE)流由流管理器15按内部方式存储在与流TCAM对应的流索引空间中,如图7所示。ACL流和TE流严格按照命令行接口(CLI)定义的访问控制列表(ACL)排序。ACL通常用于网络接口,以便允许或拒绝特定类型的网络业务。与特定ACL流对应的所有信息包都允许通过,并且被指定网络路由。与ACL流不对应的所有信息包都将被拒绝通过,或者对其服务类型(TOS)应用策略或限制。全局访问列表用于所有接口。
ACL和TE流时始终保持它们被加入到TCAM30中的顺序。路由流被加到流TCAM30中的下一个可用索引条目中,从分区36b的前60个条目开始。分区36b被进一步分为62a部分和62b部分。
62a部分用于在接口上应用的ACL;62b部分用于全局ACL(只有当没有匹配的ACL时,才使用全局ACL)。可以使用GACL_PARTITION变量定义62a部分和62b部分的分区大小。gMaxACLFix变量为62a部分中的ACL和TE流定义了最大的流TCAM索引。gGlobalACLFix变量为62b部分中的全局ACL和TE流定义了最大的流TCAM索引。
基于策略的ACL和TE流被加到gMaxACLFix变量的位置,并且gMaxACLFix变量是递增的。如果gMaxACLFix增加到与GACL_PARTITION变量相等,那么62b部分就已满,在删除某些流之前,无法再增加ACL流。ACL流可以指定一定范围的源端口或目的端口,指定一定范围的源端口或目的端口的ACL流被映射为多个流,并且使用局部掩码34来涵盖该范围的某个部分。
因此,为了涵盖特定的范围,需要使用不同的掩码确定路由流的最佳数量。对于在TCAM中映射多个流的路由流,应用编程接口(API)可以产生一个带有指定的局部掩码34的对等流,并把它与其父流一起发送给流TCAM30,由流管理器15管理流TCAM30。全局ACL流被加在gGlobalACLFix变量上,然后gGlobalACLFix变量加1。如果gGlobalACLFix变量增加到与FM_MAX_FIX变量相等,那么在从TCAM30中删除某些流以前,无法再加入全局ACL流。
流管理器15包含负责从TCAM30中删除流的软件模块。对于删除单个路由流的情况,该路由流被从流索引空间38中删除,并且在TCAM30中被置为无效。第一个API66用于从TCAM30中删除一个路由流。如果某个路由流具有对等流,那么所有对等流都将被删除。流TCAM30中的其余路由流立即被紧凑处理,以填充空的流空间。也就是说,在被删除的流之后的所有路由流都将向前移动一个索引,并被写入到TCAM30中。同时,gMaxACLFix变量的值也相应调整。
对于删除多个流的情况,流列表中的所有流都将被删除,然后对剩余的流进行紧凑处理。第二个API67用于从TCAM30中删除多个流。第一个空的流空间首先由下一个可用的非空流填充,如此重复,直到所有流都被紧凑处理,使gMaxACLFix变量之前的所有空流空间都被填充。同时,gMaxACLFix变量的值也相应调整。
在上述描述中,我们看到,业界人员可以很容易地对本发明进行修改或者根据本发明实现其它实例。很容易理解的是,本文中给出的特定计算机示例代码可以采用各种语言以各种方式实现,从而适合于不同的硬件平台。
需要注意的是,上述的实例只是用来说明本发明的原理的一些例子。本领域的技术人员可以根据本发明的原理迅速设计出各种各样的变化,但凡是根据本发明的原理进行等价修改或变化而获得的其它实现都应属于本发明的范围。

Claims (67)

1.一种用于对路由器中的多个数据流进行分类的方法,包括下列步骤:
把一个三态内容可寻址存储器(TCAM)分为至少第一个分区和第二个分区;所述第一个分区包含具有其优先级范围从最低索引到分区索引的较高优先级范围的索引,所述第二个分区包含具有其优先级范围从最大索引到所述分区索引的较低优先级范围的索引;
按照预先确定的顺序把所述多个数据流中的第一种数据流的一个或多个第一种流TCAM条目装入所述的第一个分区;
按照预先确定的顺序把所述多个数据流中的第二种数据流的一个或多个第二种流TCAM条目装入所述的第二个分区;
为每个所述的第一种TCAM条目和所述的第二种TCAM条目设置相应掩码的位值,使所述各第一种TCAM条目和所述的第二种TCAM条目分别被所述的掩码屏蔽;
把包含来向数据包的预先确定的包头部信息的前缀与所述装入的一个或多个第一种TCAM条目和一个或多个第二种TCAM条目比较,使所述匹配的一个或多个第一种TCAM条目包含所述匹配的一个或多个第二种TCAM条目。
2.如权利要求1所述的方法,其特征在于,所述的第一种多个数据流是MPLS或IP-VPN流。
3.如权利要求1所述的方法,其特征在于,所述的第二种多个数据流是基于策略的路由流。
4.如权利要求3所述的方法,其特征在于,所述的基于策略的路由流是访问控制列表(ACL)流。
5.如权利要求3所述的方法,其特征在于,所述的基于策略的路由流是业务管理器流。
6.权利要求1所述的方法进一步包含下列步骤:
维护一个具有与所述TCAM对应条目的流索引空间;以及
在进行装入所述的一个或多个第一种TCAM条目的步骤前以及在进行装入所述的一个或多个第二种TCAM条目的步骤前,确定在所述流索引空间中的所述第一种TCAM条目的所述预先确定的顺序以及所述第二种TCAM条目的所述预先确定的顺序。
7.如权利要求2所述的方法,其特征在于,所述的MPLS或IP-VPN流按照连接索引(CIX)和目的地址(DA)分类、只按照CIX分类或者只按照DA分类。
8.如权利要求7所述的方法,其特征在于,所述的第一个分区被划分为第一部分和第二部分,所述第一部分包含具有较高优先级的索引,其优先级范围从所述的最低索引到gMaxCixDaFix索引,所述第二部分包含具有较低优先级的索引,其优先级范围从gMinDaOnlyFix索引到所述的分区索引,所述按照CIX和DA分类以及只按照CIX分类的数据流被分配到所述的第一部分中,所述只按照DA分类的数据流被分配到所述的第二部分中。
9.如权利要求8所述的方法,其特征在于,所述按照CIX和DA分类以及只按照CIX分类的数据流被装载到从所述gMaxCixDaFix索引开始的所述第一部分中,所述只按照DA分类的数据流被装载到从所述gMinDaOnlyFix索引开始的所述第二部分中。
10.如权利要求9所述的方法,其特征在于,所述第一个分区被划分为第一部分和第二部分,所述第一部分包含具有较高优先级的索引,其优先级范围从所述的最低索引到gMaxCixDaFix索引,所述第二部分包含具有较低优先级的索引,其优先级范围从gMinDaOnlyFix索引到所述的分区索引,所述的gMaxCixDaFix索引与所述的gMinDaOnlyFix索引相邻,且有一个自由条目位于所述第二部分中的所述gMinDaOnlyFix索引之下,该方法进一步包含下列步骤:
(a)把位于所述gMinDaOnlFix索引处只按DA分类的数据流移动到所述的自由条目上;
(b)在步骤(a)完成后,为所述的gMinDaOnlyFix索引分配一个按CIX和DA分类或只按CIX分类的数据流;
(c)把gMaxCixDaFix索引设置在为步骤(b)中所述的按CIX和DA分类或只按CIX分类的数据流分配的索引处;
(d)把gMinDaOnlyFix条目设置在为步骤(b)中所述的按CIX和DA分类或按CIX分类的数据流分配的索引后面。
11.权利要求10所述的方法还包括下列步骤:
为包含排序,对在所述最低索引和所述gMaxCixDaOnlyFix索引之间的按CIX和DA分类或只按CIX分类的所述一个或多个装入的数据流排序;
为包含排序对在所述gMinDaOnlyFix索引和所述分区索引之间的只按DA分类的所述一个或多个装入的数据流排序。
12.如权利要求9所述的方法,其特征在于,所述第一个分区被划分为第一部分和第二部分,所述第一部分包含具有较高优先级的索引,其优先级范围从所述的最低索引到gMaxCixDaFix索引,所述第二部分包含具有较低优先级的索引,其优先级范围从gMinDaOnlyFix索引到所述的分区索引,所述的gMaxCixDaFix索引与所述的gMinDaOnlyFix索引相邻,且有一个自由条目位于所述第二部分中的所述gMinDaOnlyFix索引之上,该方法进一步包含下列步骤:
(a)把在所述gMaxCixDaFix处按CIX和DA分类或只按CIX分类的数据流移动到所述自由条目上;
(b)在步骤(a)完成后,为所述的gMaxCixDaFix索引分配一个只按DA分类的数据流;
(c)把gMinDaOnlyFix索引设置在为步骤(b)中所述只按DA分类的数据流分配的索引处;以及
(d)立即把gMaxCixDaFix条目设置在为步骤(b)中所述只按DA分类的数据流分配的索引前面。
13.权利要求12所述的方法进一步包括下列步骤:
为包含排序对在所述分区索引和所述gMinDaOnlyFix索引之间的只按DA分类的所述一个或多个装入的数据流排序;
为包含排序对在所述gMaxCixDaFix索引和所述最低索引之间的按CIX和DA分类或只按CIX分类的所述一个或多个装入的数据流排序。
14.权利要求7所述的方法进一步包括下列步骤:
维护一个具有与所述TCAM对应的条目的流索引空间;把所述的按CIX和DA分类和只按CIX分类的数据流分配给一个CIX前缀树。
15.权利要求7所述的方法进一步包括下列步骤:
维护一个具有与所述TCAM对应的条目的流索引空间;把所述的只按DA分类的数据流分配给一个DA前缀树。
16.权利要求7所述的方法进一步包括下列步骤:
通过释放所述流索引空间中的相应所述条目并使相应的所述TCAM条目无效来删除所述TCAM中的数据流。
17.如权利要求1所述的方法,其特征在于,所述的第一个分区的所述预先确定的顺序在具有最高优先级的索引处有一个最长前缀的TCAM条目,在其后面的前缀值逐渐减小,在具有最低优先级的索引处的前缀最短。
18.如权利要求3所述的方法,其特征在于,所述第二个分区被划分为第一部分和第二部分,所述第一部分包含具有较高优先级的索引,其优先级范围从所述的第二个分区的最低索引到GACL分区索引,所述第二部分包含具有较低优先级的索引,其优先级范围从所述的GACL分区索引到所述的最高索引;所述ACL流被分配到所述第一部分中,全局访问列表流被分配到所述的第二部分中。
19.如权利要求18所述的方法,其特征在于,所述ACL流指定了一定范围的源端口和目的端口,所述方法进一步包括下列步骤:
把所述ACL流映射为所述TCAM中的多个流,每个流的掩码涵盖所述源端口或目的端口范围的一部分,以便最佳确定涵盖所述范围的所述部分的流数量。
20.权利要求18所述的方法进一步包括下列步骤:
维护具有与所述TCAM对应的条目的一个流索引空间。
21.权利要求20所述的方法进一步包括下列步骤:
通过释放所述流索引空间中的相应条目并且使相应的TCAM条目无效来删除所述TCAM中的数据流;
通过把每个剩余的TCAM条目向前移动一个索引,对所述TCAM中的数据流进行紧凑处理。
22.权利要求19所述的方法进一步包括:
维护具有与所述TCAM对应的条目的一个流索引空间。
23.权利要求22所述的方法进一步包括下列步骤:
通过释放所述流索引空间中的相应条目并且使TCAM条目中相应的条目无效来删除所述TCAM中的数据流;
通过把每个剩余的TCAM条目向前移动一个或多个索引,对所述TCAM中的数据流进行紧凑处理。
24.一种用于对路由器中的多个数据流分类的方法,包括下列步骤:
把一个三态内容可寻址存储器(TCAM)划分为至少第一个分区和第二个分区,所述第一个分区包含优先级较高的索引,其优先级范围从最低的索引到分区索引;所述第二个分区包含优先级较低的索引,其优先级范围从最高的索引到所述的分区索引;
按照预先确定的顺序把所述多个数据流中的第一种数据流的一个或多个第一种流TCAM条目装入所述的第一个分区;
按照预先确定的顺序把所述多个数据流中的第二种数据流的一个或多个第二种流TCAM条目装入所述的第二个分区;
为每个所述的第一种TCAM条目和所述的第二种TCAM条目设置相应掩码的位值,使所述的第一种TCAM条目和所述的第二种TCAM条目分别被所述的掩码屏蔽;
把包含来向数据包的预先确定的包头部信息的前缀与所述装入的一个或多个第一种TCAM条目和一个或多个第二种TCAM条目比较,使所述匹配的一个或多个第一种TCAM条目包含所述匹配的一个或多个第二种TCAM条目;
所述第一种多个数据流是MPLS或IP-VPN流,所述第二种多个数据流是基于策略的路由流。
25.一种用于对路由器中的多个数据流分类的方法,包括下列步骤:
把一个三态内容可寻址存储器(TCAM)划分为至少第一个分区和第二个分区,所述第一个分区包含优先级较高的索引,其优先级范围从最低的索引到分区索引;所述第二个分区包含优先级较低的索引,其优先级范围从最高的索引到所述的分区索引;
按照预先确定的顺序把所述多个数据流中的第一种数据流的一个或多个第一种流TCAM条目装入所述的第一个分区;
按照预先确定的顺序把所述多个数据流中的第二种数据流的一个或多个第二种流TCAM条目装入所述的第二个分区;
为每个所述的第一种TCAM条目和所述的第二种TCAM条目设置相应掩码的位值,使所述的第一种TCAM条目和所述的第二种TCAM条目分别被所述的掩码屏蔽;
把包含来向数据包的预先确定的包头部信息的前缀与所述装入的一个或多个第一种TCAM条目和一个或多个第二种TCAM条目比较,使所述匹配的一个或多个第一种TCAM条目包含所述匹配的一个或多个第二种TCAM条目;
维护具有与所述TCAM对应的条目的一个流索引空间;
在进行装入所述的一个或多个第一种TCAM条目的步骤前,确定在所述流索引空间中的所述第一种TCAM条目的所述预先确定的顺序以及所述第二种TCAM条目的所述预先确定的顺序。
26.一种用于对路由器中的多个数据流分类的系统,包括:
一个用于把一个三态内容可寻址存储器(TCAM)划分为至少第一个分区和第二个分区的仪器,所述第一个分区包含优先级较高的索引,其优先级范围从最低的索引到分区索引;所述第二个分区包含优先级较低的索引,其优先级范围从最高的索引到所述的分区索引;
一个用于按照预先确定的顺序把所述多个数据流中的第一种数据流的一个或多个第一种流TCAM条目装入所述的第一个分区的仪器;
一个用于按照预先确定的顺序把所述多个数据流中的第二种数据流的一个或多个第二种流TCAM条目装入所述的第二个分区的仪器;
一个用于为每个所述的第一种TCAM条目和所述的第二种TCAM条目设置相应掩码的位值的仪器,使所述的第一种TCAM条目和所述的第二种TCAM条目分别被所述的掩码屏蔽;以及
一个用于把包含来向数据包的预先确定的包头部信息的前缀与预先确定的所述装入的一个或多个第一种TCAM条目和一个或多个第二种TCAM条目比较的仪器,
所述匹配的一个或多个第一种TCAM条目包含所述匹配的一个或多个第二种TCAM条目。
27.如权利要求26所述的系统,其特征在于,所述第一种多个数据流是MPLS或IP-VPN流。
28.如权利要求26所述的系统,其特征在于,所述第二种多个数据流是基于策略的路由流。
29.如权利要求28所述的系统,其特征在于,所述基于策略的路由流是访问控制列表(ACL)流。
30.如权利要求28所述的系统,其特征在于,所述基于策略的路由流是业务管理器流。
31.权利要求26所述的系统进一步包括:
一个用于维护具有与所述TCAM对应的条目的流索引空间的仪器;
一个用于确定在所述流索引空间中的所述第一种TCAM条目的所述预先确定的顺序以及所述第二种TCAM条目的所述预先确定的顺序的仪器。
32.如权利要求26所述的系统,其特征在于,所述MPLS或IP-VPN流按连接索引(CIX)和目的地址(DA)、只按CIX或者只按DA分类。
33.如权利要求32所述的系统,其特征在于,所述第一个分区被划分为第一部分和第二部分,所述第一部分包含优先级较高的索引,其优先级范围从所述最低索引到gMaxCixDaFix索引;所述第二部分包含优先级较低的索引,其索引范围从gMinDaOnlyFix索引到所述的分区索引;按CIX和DA分类及只按CIX分类的所述流被分配到所述的第一部分中,只按DA分类的所述流被分配到所述第二部分中。
34.如权利要求33所述的系统,其特征在于,所述按CIX和DA分类及只按CIX分类的流被装入到从所述gMaxCixDaFix索引开始的第一部分中,所述只按DA分类的流被装入到从所述gMinDaOnlyFix索引开始的第二部分中。
35.权利要求32所述的系统进一步包括:
一个用于维护具有与所述TCAM对应的条目的流索引空间并把所述按CIX及只按CIX分类的流分配到CIX前缀树中的仪器。
36.如权利要求32所述的系统,其特征在于,所述第一个分区被划分为第一部分和第二部分,所述第一部分包含优先级较高的索引,其索引范围从所述的最低索引到gMaxCixDaFix索引;所述第二部分包含优先级较低的索引,其索引范围从gMinDaOnlyFix索引到所述的分区索引;所述gMaxCixDaFix索引与所述gMinDaOnlyFix索引相邻,自由条目在所述第二部分的所述gMinDaOnlyFix索引下,所述系统进一步包括:
一个用于把在所述gMinDaOnlyFix索引处只按DA分类的流移动到所述自由条目上的仪器;
一个用于把按CIX和DA分类或只按CIX分类的流分配给所述gMinDaOnlyFix索引的仪器;
一个用于把gMaxCixDaFix索引设置在为所述按CIX和DA分类及只按CIX分类的流分配的索引的仪器;
一个用于把gMinDaOnlyFix索引立即设置在为所述按CIX和DA分类及只按CIX分类的流分配的索引之后的仪器。
37.权利要求36所述的系统进一步包括:
一个为包含排序对在所述最低索引和所述gMaxCixDaOnlyFix索引之间的按CIX和DA分类或只按CIX分类的所述一个或多个装入的流进行排序的仪器;
一个为包含排序对在所述gMinDaOnlyFix索引和所述分区索引之间的只按DA分类的所述一个或多个装入的流进行排序的仪器。
38.如权利要求32所述的系统,其特征在于,所述第一个分区被划分为第一部分和第二部分,所述第一部分包含优先级较高的索引,其优先级范围从所述的最低索引到gMaxCixDaFix索引;所述的第二部分包含优先级较低的索引,其优先级范围从gMinDaOnlyFix索引到所述分区索引,所述gMaxCixDaFix索引与所述gMinDaOnlyFix索引相邻,自由条目在所述第二部分的所述gMinDaOnlyFix索引之上,所述系统进一步包括:
一个用于把在所述gMaxCixDaFix处按CIX和DA分类或只按CIX分类的流移动到所述自由条目上的仪器;
一个用于把只按DA分类的流分配给所述gMaxCixFix索引的仪器;
一个用于把gMinDaOnlyFix索引设置在分配给所述只按DA分类的流的索引处的仪器;
一个用于把gMaxCixDaFix条目设置在分配给所述只按DA分类的流的索引之前的仪器。
39.如权利要求38所述的系统,其特征在于,所述第一个分区被划分为第一部分和第二部分,所述第一部分包含优先级较高的索引,其优先级范围从所述的最低索引到gMaxCixDaFix索引;所述第二部分包含优先级较低的索引,其优先级范围从gMinDaOnlyFix索引到所述的分区索引;所述gMaxCixDaFix索引与所述gMinDaOnlyFix索引相邻,自由条目在所述第二部分的所述gMinDaOnlyFix索引之上,所述系统进一步包括:
一个用于把在所述gMaxCixDaFix处按CIX和DA分类及只按CIX分类的流移动到所述自由条目上的仪器;
一个用于把只按DA分类的流分配给所述gMaxCixFix索引的仪器;
一个用于把gMinDaOnlyFix索引设置在分配给所述只按DA分类的流的索引处的仪器;以及
一个用于把gMaxCixDaFix条目立即设置在分配给所述只按DA分类的流的索引之前的仪器。
40.权利要求32所述的系统进一步包括:
一个用于维护具有与所述TCAM对应的条目的流索引空间的仪器;
一个用于把所述只按DA分类的流分配到DA前缀树中的仪器。
41.权利要求40所述的系统进一步包括:
一个通过释放所述流索引空间中的相应条目并且使相应的TCAM条目无效来删除所述TCAM中的流的仪器。
42.如权利要求26所述的系统,其特征在于,所述的第一个分区的所述预先确定的顺序在最高优先级的索引处有一个最长前缀的TCAM条目,在其后面的前缀值逐渐减小,在最低优先级的索引处的前缀最短。
43.如权利要求28所述的系统,其特征在于,所述第二个分区被划分为第一部分和第二部分,所述第一部分包含具有较高优先级的索引,其优先级范围从所述的第二部分的最低索引到GACL分区索引;所述第二部分包含具有较低优先级的索引,其优先级范围从所述的GACL分区索引到所述的最高索引;所述ACL流被分配到所述第一部分中,全局访问列表流被分配到所述的第二部分中。
44.如权利要求43所述的系统,其特征在于,所述ACL流指定一定范围的源端口或目的端口,所述系统进一步包括:
一个把所述ACL流映射为所述TCAM中的多个流的仪器,每个流的掩码涵盖所述源端口或目的端口范围的一部分。
45.权利要求43所述的系统进一步包括:
一个用于维护具有与所述TCAM对应的条目的流索引空间的仪器。
46.权利要求45所述的系统进一步包括:
一个通过释放所述流索引空间中的相应条目并且使相应的TCAM条目无效来删除所述TCAM中的流的仪器;
一个通过把每个剩余的TCAM条目向前移动一个或多个索引来对所述TCAM中的流进行紧凑处理的仪器。
47.权利要求44所述的系统进一步包括:
一个用于维护具有与所述TCAM对应的条目的流索引空间的仪器。
48.权利要求47所述的系统进一步包括:
一个通过释放所述流索引空间中的相应条目并且使TCAM条目中相应的条目无效来删除所述TCAM中的多个流的仪器;
一个通过把每个剩余的TCAM条目向前移动一个或多个索引来对所述TCAM中的流进行紧凑处理的仪器。
49.一种用于对路由器中的多个数据流分类的系统,包括:
一个用于把一个三态内容可寻址存储器(TCAM)划分为至少第一个分区和第二个分区的仪器,所述第一个分区包含优先级较高的索引,其优先级范围从最低的索引到分区索引,所述第二个分区包含优先级较低的索引,其优先级范围从最高的索引到所述的分区索引;按照预先确定的顺序把所述多个数据流中的第一种数据流的一个或多个第一种流TCAM条目装入所述的第一个分区;
一个用于按照预先确定的顺序把所述多个数据流中的第二种数据流的一个或多个第二种TCAM条目装入所述的第二个分区的仪器;
一个用于为每个所述的第一种TCAM条目和所述的第二种TCAM条目设置相应掩码的位值的仪器,使所述的第一种TCAM条目和所述的第二种TCAM条目的位分别被所述的掩码屏蔽;
一个用于把包含来向数据包的预先确定的包头部信息的前缀与所述装入的一个或多个第一种TCAM条目和一个或多个第二种TCAM条目比较的仪器,使得所述匹配的一个或多个第一种TCAM条目包含所述匹配的一个或多个第二种TCAM条目;
所述的第一种多个数据流是MPLS或IP-VPN流,所述第二种多个数据流是基于策略的路由流。
50.一种用于对路由器中的多个数据流分类的系统,包括:
一个用于把一个三态内容可寻址存储器(TCAM)划分为至少第一个分区和第二个分区的仪器,所述第一个分区包含优先级较高的索引,其优先级范围从最低的索引到分区索引;所述第二个分区包含优先级较低的索引,其优先级范围从最高的索引到所述的分区索引;
一个用于按照预先确定的顺序把所述多个数据流中的第一种数据流的一个或多个第一种流TCAM条目装入所述的第一个分区的仪器;
一个用于按照预先确定的顺序把所述多个数据流中的第二种数据流的一个或多个第二种流TCAM条目装入所述的第二个分区的仪器;
一个用于为每个所述的第一种TCAM条目和所述的第二种TCAM条目设置相应掩码的位值的仪器,使所述的第一种TCAM条目和所述的第二种TCAM条目的位分别被所述的掩码屏蔽;
一个用于把包含来向数据包的预先确定的包头部信息的前缀与所述装入的一个或多个第一种TCAM条目和一个或多个第二种TCAM条目比较的仪器,使得所述匹配的一个或多个第一种TCAM条目包含所述匹配的一个或多个第二种TCAM条目;
一个用于维护具有与所述TCAM对应的条目的流索引空间的仪器;以及
一个用于在进行装入所述的一个或多个第一种TCAM条目的步骤前确定在所述流索引空间中的所述第一种TCAM条目的所述预先确定的顺序以及所述第二种TCAM条目的所述预先确定的顺序的仪器。
51.一种用于对路由系统中多个数据流分类的装置,包括;
一个三态内容可寻址内存(TCAM);
一种用于把所述TCAM划分为至少第一个分区和第二个分区的分区算法,所述第一个分区包含优先级较高的索引,其优先级范围从最低的索引到分区索引;所述第二个分区包含优先级较低的索引,其优先级范围从最高的索引到所述的分区索引;
一种用于选择相应的掩码值来构造所述第一种数据流的一个或多个第一种流TCAM条目和一个或多个第二种流TCAM条目并把所述相应掩码值装入所述第二个分区的装载算法;
一种用于实现把包含来向数据包的预先确定的包头部信息的前缀与所述装入的一个或多个第一种流TCAM条目和一个或多个第二种TCAM条目相比较的搜索算法,所述的第二种TCAM条目按照预先确定的顺序被装入到第一个分区中,使匹配的一个或多个第一种TCAM条目包含匹配的一个或多个第二种TCAM条目。
52.如权利要求51所述的装置,其特征在于,所述第一种多个数据流是MPLS或IP-VPN流。
53.如权利要求51所述的装置,其特征在于,所述第二种多个数据流是基于策略的路由流。
54.如权利要求51所述的装置,其特征在于,所述分区算法和所述装载算法在具有与所述TCAM对应的条目的流索引空间中实现,所述第一种TCAM条目的预先确定的顺序和所述第二种TCAM条目的预先确定的顺序在所述流索引空间中体现。
55.如权利要求52所述的装置,其特征在于,所述MPLS或IP-VPN流按连接索引(CIX)和目的地址(DA)分类、只按CIX分类或者只按DA分类。
56.如权利要求55所述的装置,其特征在于,所述第一个分区被划分为第一部分和第二部分;所述第一部分包含优先级较高的索引,其优先级范围从最低的索引到gMaxCixDaFix索引;所述第二个分区包含优先级较低的索引,其优先级范围从gMinDaOnlyFix索引到所述的分区索引;所述按CIX和DA分类及只按CIX分类的流被分配到所述第一部分中,所述只按DA分类的流被分配到所述第二部分中。
57.如权利要求56所述的装置,其特征在于,所述按CIX和DA分类及只按CIX分类的流被装入到从所述TCAM的起点开始并在gMaxCixDaFix结束的所述第一部分中,所述只按照DA分类的数据流被装载到从所述gMinDaOnlyFix索引开始的所述第二部分中。
58.权利要求52所述的装置进一步包括:
一个用于维护具有与所述TCAM对应的条目的流索引空间的仪器;
一个用于把所述按CIX分类的流分配到CIX前缀树中的仪器。
59.权利要求52所述的装置进一步包括:
一个用于维护具有与所述TCAM对应的条目的流索引空间的仪器;
一个用于把所述只按DA分类的流分配到DA前缀树中的仪器。
60.权利要求59所述的装置包括:
一个通过释放所述流索引空间中的相应条目并且使相应的TCAM条目无效来删除所述TCAM中的流的仪器。
61.如权利要求52所述的装置,其特征在于,所述的第一个分区的所述预先确定的顺序在最高优先级的索引处有一个最长前缀的TCAM条目,在其后面的前缀值逐渐减小,在最低优先级的索引处的前缀最短。
62.如权利要求53所述的装置,其特征在于,所述第二个分区被划分为第一部分和第二部分,所述第一部分包含具有较高优先级的索引,其优先级范围从所述的第二个分区的最低索引到GACL分区索引;所述第二部分包含具有较低优先级的索引,其优先级范围从所述的GACL分区索引到所述第二个分区的最高索引;所述ACL流被分配到所述第一部分中,全局访问列表流被分配到所述的第二部分中。
63.如权利要求62所述的装置,其特征在于,所述ACL流指定了一定范围的源端口和目的端口,所述装置进一步包括:
一个把所述ACL流映射为所述TCAM中的多个流的仪器,每个流的掩码涵盖所述源端口或目的端口范围的一部分。
64.如权利要求62所述的装置,进一步包括:
一个用于维护具有与所述TCAM对应的条目的流索引空间的仪器。
65.如权利要求64所述的装置,进一步包括:
一个通过释放所述流索引空间中的相应条目并且使相应的TCAM条目无效来删除所述TCAM中的一个流的仪器;
一个通过把每个剩余的TCAM条目向前移动一个索引来对所述数据流进行紧凑处理的仪器。
66.如权利要求62所述的装置,进一步包括:
一个用于维护具有与所述TCAM对应的条目的流索引空间的仪器。
67.权利要求62所述的装置进一步包括:
一个通过释放所述流索引空间中的相应条目并且使相应的TCAM条目无效来删除所述TCAM中的多个流的仪器;
一个通过把每个剩余的TCAM条目向前移动一个或多个索引来对所述数据流进行紧凑处理的仪器。
CNB028024532A 2001-07-20 2002-07-03 使用tcam对数据流进行选择性路由的方法、系统和装置 Expired - Fee Related CN1282104C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/909,739 US7028098B2 (en) 2001-07-20 2001-07-20 Selective routing of data flows using a TCAM
US09/909,739 2001-07-20

Publications (2)

Publication Number Publication Date
CN1465014A true CN1465014A (zh) 2003-12-31
CN1282104C CN1282104C (zh) 2006-10-25

Family

ID=25427747

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028024532A Expired - Fee Related CN1282104C (zh) 2001-07-20 2002-07-03 使用tcam对数据流进行选择性路由的方法、系统和装置

Country Status (6)

Country Link
US (1) US7028098B2 (zh)
EP (1) EP1352334A4 (zh)
JP (1) JP3800546B2 (zh)
CN (1) CN1282104C (zh)
CA (1) CA2422439A1 (zh)
WO (1) WO2003012672A2 (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005112350A1 (fr) * 2004-05-14 2005-11-24 Huawei Technologies Co., Ltd. Procede de gestion de chemin dans un reseau prive virtuel utilisant le protocole ipv6
CN1327674C (zh) * 2005-02-25 2007-07-18 清华大学 核心路由器上支持访问控制列表功能的双栈兼容路由查找器
CN100396015C (zh) * 2006-03-29 2008-06-18 华为技术有限公司 一种tcam路由表管理方法和系统
CN100426786C (zh) * 2004-08-18 2008-10-15 华为技术有限公司 基于访问控制列表的网络访问控制方法
CN100450100C (zh) * 2006-08-29 2009-01-07 华为技术有限公司 一种路由方法和路由设备
CN100571202C (zh) * 2006-01-27 2009-12-16 华为技术有限公司 一种自带路由信息的数据的传送方法及传送系统
CN101035061B (zh) * 2006-03-09 2010-05-12 中兴通讯股份有限公司 实现三重内容可寻址存储器范围匹配的分段编码扩展方法
CN101820383A (zh) * 2010-01-27 2010-09-01 中兴通讯股份有限公司 限制交换机远程访问的方法及装置
CN1767496B (zh) * 2004-10-28 2010-10-13 阿尔卡特公司 智能选择性的基于流的数据路径结构
CN101222434B (zh) * 2008-01-31 2011-04-20 福建星网锐捷网络有限公司 存储策略控制列表、策略搜索方法和三态寻址存储器
CN102122270A (zh) * 2011-02-23 2011-07-13 华为技术有限公司 在存储器中查找数据的方法和装置以及存储器
CN101710873B (zh) * 2009-12-08 2012-05-23 中兴通讯股份有限公司 配置数据管理的方法和装置
CN101322341B (zh) * 2005-11-30 2012-06-20 思科技术公司 提供边界网关协议转发信息库的优先级区分式递归解析的方法和装置
CN105474181A (zh) * 2013-08-31 2016-04-06 英派尔科技开发有限公司 内容可寻址存储器设备
WO2016101439A1 (zh) * 2014-12-26 2016-06-30 中兴通讯股份有限公司 三态内容寻址存储器tcam空间的处理方法及装置
CN113434673A (zh) * 2021-06-24 2021-09-24 北京房江湖科技有限公司 数据处理方法和计算机可读存储介质、电子设备

Families Citing this family (131)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934795B2 (en) * 1999-09-23 2005-08-23 Netlogic Microsystems, Inc. Content addressable memory with programmable word width and programmable priority
US6944709B2 (en) * 1999-09-23 2005-09-13 Netlogic Microsystems, Inc. Content addressable memory with block-programmable mask write mode, word width and priority
US6912576B1 (en) * 2000-05-04 2005-06-28 Broadcom Corporation System and method of processing data flow in multi-channel, multi-service environment by dynamically allocating a socket
CN1180582C (zh) * 2001-06-21 2004-12-15 华为技术有限公司 多标签协议交换虚拟私有网配置管理系统及其划分方法
US7418536B2 (en) * 2001-07-30 2008-08-26 Cisco Technology, Inc. Processor having systolic array pipeline for processing data packets
US7382787B1 (en) 2001-07-30 2008-06-03 Cisco Technology, Inc. Packet routing and switching device
US20030033467A1 (en) * 2001-08-08 2003-02-13 Satoshi Yoshizawa Method and apparatus for resource allocation in network router and switch
US7636937B1 (en) * 2002-01-11 2009-12-22 Cisco Technology, Inc. Method and apparatus for comparing access control lists for configuring a security policy on a network
JP3936883B2 (ja) * 2002-04-08 2007-06-27 株式会社日立製作所 フロー検出装置およびフロー検出機能を備えたパケット転送装置
US7710991B1 (en) 2002-06-20 2010-05-04 Cisco Technology, Inc. Scalable packet routing and switching device and method
US7450438B1 (en) 2002-06-20 2008-11-11 Cisco Technology, Inc. Crossbar apparatus for a forwarding table memory in a router
US7525904B1 (en) 2002-06-20 2009-04-28 Cisco Technology, Inc. Redundant packet routing and switching device and method
US7536476B1 (en) * 2002-12-20 2009-05-19 Cisco Technology, Inc. Method for performing tree based ACL lookups
US7467227B1 (en) * 2002-12-31 2008-12-16 At&T Corp. System using policy filter decision to map data traffic to virtual networks for forwarding the traffic in a regional access network
US6996664B2 (en) * 2003-01-22 2006-02-07 Micron Technology, Inc. Ternary content addressable memory with enhanced priority matching
US7496035B1 (en) * 2003-01-31 2009-02-24 Cisco Technology, Inc. Methods and apparatus for defining flow types and instances thereof such as for identifying packets corresponding to instances of the flow types
JPWO2004105310A1 (ja) * 2003-05-19 2006-07-20 富士通株式会社 暗号化装置、暗号化方法および暗号化プログラム
US7516487B1 (en) 2003-05-21 2009-04-07 Foundry Networks, Inc. System and method for source IP anti-spoofing security
US7523485B1 (en) * 2003-05-21 2009-04-21 Foundry Networks, Inc. System and method for source IP anti-spoofing security
US20040255154A1 (en) * 2003-06-11 2004-12-16 Foundry Networks, Inc. Multiple tiered network security system, method and apparatus
US7876772B2 (en) 2003-08-01 2011-01-25 Foundry Networks, Llc System, method and apparatus for providing multiple access modes in a data communications network
US7735114B2 (en) * 2003-09-04 2010-06-08 Foundry Networks, Inc. Multiple tiered network security system, method and apparatus using dynamic user policy assignment
US7774833B1 (en) * 2003-09-23 2010-08-10 Foundry Networks, Inc. System and method for protecting CPU against remote access attacks
US7509674B2 (en) * 2003-10-07 2009-03-24 Alcatel Lucent Access control listing mechanism for routers
US20050102428A1 (en) * 2003-11-12 2005-05-12 Heintze Nevin C. Memory management for ternary CAMs and the like
US8528071B1 (en) 2003-12-05 2013-09-03 Foundry Networks, Llc System and method for flexible authentication in a data communications network
US20060007926A1 (en) * 2003-12-19 2006-01-12 Zur Uri E System and method for providing pooling or dynamic allocation of connection context data
US7359381B2 (en) * 2004-01-30 2008-04-15 Hewlett-Packard Development Company, L.P. Parallel hardware arrangement for correlating an external transport address pair with a local endpoint association
US20060006248A1 (en) 2004-07-06 2006-01-12 Chin-Chiang Wu Floating rotatable fountain decoration
US7411910B1 (en) * 2004-07-06 2008-08-12 Juniper Networks, Inc. Systems and methods for automatic provisioning of data flows
US20060050645A1 (en) * 2004-09-03 2006-03-09 Chappell Christopher L Packet validity checking in switched fabric networks
US7889712B2 (en) 2004-12-23 2011-02-15 Cisco Technology, Inc. Methods and apparatus for providing loop free routing tables
USRE48433E1 (en) 2005-01-27 2021-02-09 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
US8422667B2 (en) 2005-01-27 2013-04-16 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
US9148409B2 (en) 2005-06-30 2015-09-29 The Chamberlain Group, Inc. Method and apparatus to facilitate message transmission and reception using different transmission characteristics
US20070006294A1 (en) * 2005-06-30 2007-01-04 Hunter G K Secure flow control for a data flow in a computer and data flow in a computer network
US7869442B1 (en) * 2005-09-30 2011-01-11 Nortel Networks Limited Method and apparatus for specifying IP termination in a network element
US7643496B1 (en) 2005-09-30 2010-01-05 Nortel Networks Limited Application specified steering policy implementation
US7832009B2 (en) * 2005-12-28 2010-11-09 Foundry Networks, Llc Techniques for preventing attacks on computer systems and networks
US7760668B1 (en) * 2006-06-20 2010-07-20 Force 10 Networks, Inc. Self-reconfiguring spanning tree
KR100745693B1 (ko) * 2006-09-29 2007-08-03 한국전자통신연구원 Tcam 테이블 관리 방법
US20080175241A1 (en) * 2007-01-18 2008-07-24 Ut Starcom, Incorporated System and method for obtaining packet forwarding information
WO2008097710A2 (en) * 2007-02-02 2008-08-14 Tarari, Inc. Systems and methods for processing access control lists (acls) in network switches using regular expression matching logic
US7706375B2 (en) * 2007-02-06 2010-04-27 Alcatel Lucent System and method of fast adaptive TCAM sorting for IP longest prefix matching
US8059532B2 (en) * 2007-06-21 2011-11-15 Packeteer, Inc. Data and control plane architecture including server-side triggered flow policy mechanism
US7813277B2 (en) * 2007-06-29 2010-10-12 Packeteer, Inc. Lockless bandwidth management for multiprocessor networking devices
US8279885B2 (en) * 2007-09-25 2012-10-02 Packeteer, Inc. Lockless processing of command operations in multiprocessor systems
WO2008121690A2 (en) * 2007-03-30 2008-10-09 Packeteer, Inc. Data and control plane architecture for network application traffic management device
US8111707B2 (en) * 2007-12-20 2012-02-07 Packeteer, Inc. Compression mechanisms for control plane—data plane processing architectures
US9419867B2 (en) * 2007-03-30 2016-08-16 Blue Coat Systems, Inc. Data and control plane architecture for network application traffic management device
CN101090355B (zh) * 2007-07-24 2010-09-22 杭州华三通信技术有限公司 虚拟专用网隧道的标签交换路径建立方法、系统和设备
US8089961B2 (en) * 2007-12-07 2012-01-03 University Of Florida Research Foundation, Inc. Low power ternary content-addressable memory (TCAMs) for very large forwarding tables
US8205040B1 (en) * 2008-01-29 2012-06-19 Juniper Networks, Inc. Storing content in a ternary content addressable memory
US8581695B2 (en) 2009-05-27 2013-11-12 Grant B. Carlson Channel-switching remote controlled barrier opening system
US8345688B2 (en) 2010-02-23 2013-01-01 Google Inc. System and method for managing flow of packets
EP2562970B1 (en) * 2010-04-19 2015-01-07 Nec Corporation Switch, and flow table control method
US8874876B2 (en) 2011-03-22 2014-10-28 Texas Instruments Incorporated Method and apparatus for packet switching
US9736065B2 (en) 2011-06-24 2017-08-15 Cisco Technology, Inc. Level of hierarchy in MST for traffic localization and load balancing
CN102291301B (zh) * 2011-08-10 2015-06-10 杭州迪普科技有限公司 一种报文特征的匹配方法及装置
US8908698B2 (en) 2012-01-13 2014-12-09 Cisco Technology, Inc. System and method for managing site-to-site VPNs of a cloud managed network
KR101357342B1 (ko) * 2012-03-15 2014-02-04 엘에스산전 주식회사 하드웨어 프로토콜 스택
US8775726B2 (en) 2012-07-27 2014-07-08 International Business Machine Corporation TCAM extended search function
WO2014031114A1 (en) * 2012-08-22 2014-02-27 Empire Technology Development Llc Partitioning sorted data sets
US9306840B2 (en) * 2012-09-26 2016-04-05 Alcatel Lucent Securing software defined networks via flow deflection
US10367914B2 (en) 2016-01-12 2019-07-30 Cisco Technology, Inc. Attaching service level agreements to application containers and enabling service assurance
CN103812959B (zh) * 2012-11-15 2017-05-31 中国电信股份有限公司 集中管理ip地址的方法与系统
US9135997B2 (en) * 2013-01-18 2015-09-15 Fujitsu Limited System and method for filtering addresses
US9043439B2 (en) 2013-03-14 2015-05-26 Cisco Technology, Inc. Method for streaming packet captures from network access devices to a cloud server over HTTP
GB2516837B (en) 2013-07-31 2015-12-09 Ip Access Ltd Network elements, wireless communication system and methods therefor
JP6268943B2 (ja) 2013-11-06 2018-01-31 富士通株式会社 情報処理システム,スイッチ装置及び情報処理システムの制御方法
CN104954271B (zh) * 2014-03-26 2018-11-30 国际商业机器公司 Sdn网络中的数据包处理方法和装置
US10122605B2 (en) 2014-07-09 2018-11-06 Cisco Technology, Inc Annotation of network activity through different phases of execution
US9825878B2 (en) 2014-09-26 2017-11-21 Cisco Technology, Inc. Distributed application framework for prioritizing network traffic using application priority awareness
CN105743678A (zh) * 2014-12-11 2016-07-06 中兴通讯股份有限公司 管理三态内容寻址存储器tcam表空间的方法及装置
US10050862B2 (en) 2015-02-09 2018-08-14 Cisco Technology, Inc. Distributed application framework that uses network and application awareness for placing data
US10708342B2 (en) 2015-02-27 2020-07-07 Cisco Technology, Inc. Dynamic troubleshooting workspaces for cloud and network management systems
US9825865B1 (en) 2015-03-25 2017-11-21 Cisco Technology, Inc. Statistical operations associated with network traffic forwarding
US10382534B1 (en) * 2015-04-04 2019-08-13 Cisco Technology, Inc. Selective load balancing of network traffic
US9853903B1 (en) * 2015-04-23 2017-12-26 Cisco Technology, Inc. Simultaneous redirecting and load balancing
US10476982B2 (en) 2015-05-15 2019-11-12 Cisco Technology, Inc. Multi-datacenter message queue
US10034201B2 (en) 2015-07-09 2018-07-24 Cisco Technology, Inc. Stateless load-balancing across multiple tunnels
JP6582723B2 (ja) 2015-08-19 2019-10-02 富士通株式会社 ネットワークシステム、スイッチ装置、及びネットワークシステム制御方法
US10193809B1 (en) 2015-09-30 2019-01-29 Cisco Technology, Inc. Load balancing methods based on transport layer port numbers for a network switch
US11005682B2 (en) 2015-10-06 2021-05-11 Cisco Technology, Inc. Policy-driven switch overlay bypass in a hybrid cloud network environment
US10462136B2 (en) 2015-10-13 2019-10-29 Cisco Technology, Inc. Hybrid cloud security groups
US10523657B2 (en) 2015-11-16 2019-12-31 Cisco Technology, Inc. Endpoint privacy preservation with cloud conferencing
US10205677B2 (en) 2015-11-24 2019-02-12 Cisco Technology, Inc. Cloud resource placement optimization and migration execution in federated clouds
US10084703B2 (en) 2015-12-04 2018-09-25 Cisco Technology, Inc. Infrastructure-exclusive service forwarding
US10129177B2 (en) 2016-05-23 2018-11-13 Cisco Technology, Inc. Inter-cloud broker for hybrid cloud networks
US10659283B2 (en) 2016-07-08 2020-05-19 Cisco Technology, Inc. Reducing ARP/ND flooding in cloud environment
US10432532B2 (en) 2016-07-12 2019-10-01 Cisco Technology, Inc. Dynamically pinning micro-service to uplink port
US10263898B2 (en) 2016-07-20 2019-04-16 Cisco Technology, Inc. System and method for implementing universal cloud classification (UCC) as a service (UCCaaS)
US10382597B2 (en) 2016-07-20 2019-08-13 Cisco Technology, Inc. System and method for transport-layer level identification and isolation of container traffic
US10142346B2 (en) 2016-07-28 2018-11-27 Cisco Technology, Inc. Extension of a private cloud end-point group to a public cloud
US10567344B2 (en) 2016-08-23 2020-02-18 Cisco Technology, Inc. Automatic firewall configuration based on aggregated cloud managed information
US10523592B2 (en) 2016-10-10 2019-12-31 Cisco Technology, Inc. Orchestration system for migrating user data and services based on user information
US11044162B2 (en) 2016-12-06 2021-06-22 Cisco Technology, Inc. Orchestration of cloud and fog interactions
US10848432B2 (en) 2016-12-18 2020-11-24 Cisco Technology, Inc. Switch fabric based load balancing
US10326817B2 (en) 2016-12-20 2019-06-18 Cisco Technology, Inc. System and method for quality-aware recording in large scale collaborate clouds
US10334029B2 (en) 2017-01-10 2019-06-25 Cisco Technology, Inc. Forming neighborhood groups from disperse cloud providers
US10552191B2 (en) 2017-01-26 2020-02-04 Cisco Technology, Inc. Distributed hybrid cloud orchestration model
US10320683B2 (en) 2017-01-30 2019-06-11 Cisco Technology, Inc. Reliable load-balancer using segment routing and real-time application monitoring
US10671571B2 (en) 2017-01-31 2020-06-02 Cisco Technology, Inc. Fast network performance in containerized environments for network function virtualization
JP6446494B2 (ja) * 2017-03-23 2018-12-26 エヌ・ティ・ティ・コミュニケーションズ株式会社 エッジノード装置、リソース制御方法、及びプログラム
US11005731B2 (en) 2017-04-05 2021-05-11 Cisco Technology, Inc. Estimating model parameters for automatic deployment of scalable micro services
US10439877B2 (en) 2017-06-26 2019-10-08 Cisco Technology, Inc. Systems and methods for enabling wide area multicast domain name system
US10382274B2 (en) 2017-06-26 2019-08-13 Cisco Technology, Inc. System and method for wide area zero-configuration network auto configuration
US10892940B2 (en) 2017-07-21 2021-01-12 Cisco Technology, Inc. Scalable statistics and analytics mechanisms in cloud networking
US10425288B2 (en) 2017-07-21 2019-09-24 Cisco Technology, Inc. Container telemetry in data center environments with blade servers and switches
US10601693B2 (en) 2017-07-24 2020-03-24 Cisco Technology, Inc. System and method for providing scalable flow monitoring in a data center fabric
US10541866B2 (en) 2017-07-25 2020-01-21 Cisco Technology, Inc. Detecting and resolving multicast traffic performance issues
US10965598B1 (en) 2017-10-04 2021-03-30 Cisco Technology, Inc. Load balancing in a service chain
US10965596B2 (en) 2017-10-04 2021-03-30 Cisco Technology, Inc. Hybrid services insertion
US11082312B2 (en) 2017-10-04 2021-08-03 Cisco Technology, Inc. Service chaining segmentation analytics
EP3707864A4 (en) 2017-11-06 2021-08-18 Pensando Systems Inc. NETWORK SYSTEM WITH MATCH PROCESSING UNIT FOR TABLE-BASED ACTIONS
US11481362B2 (en) 2017-11-13 2022-10-25 Cisco Technology, Inc. Using persistent memory to enable restartability of bulk load transactions in cloud databases
US10652743B2 (en) 2017-12-21 2020-05-12 The Chamberlain Group, Inc. Security system for a moveable barrier operator
US10705882B2 (en) 2017-12-21 2020-07-07 Cisco Technology, Inc. System and method for resource placement across clouds for data intensive workloads
US11595474B2 (en) 2017-12-28 2023-02-28 Cisco Technology, Inc. Accelerating data replication using multicast and non-volatile memory enabled nodes
US11263158B2 (en) 2018-02-22 2022-03-01 Pensando Systems Inc. Programmable computer IO device interface
US10511534B2 (en) 2018-04-06 2019-12-17 Cisco Technology, Inc. Stateless distributed load-balancing
US10728361B2 (en) 2018-05-29 2020-07-28 Cisco Technology, Inc. System for association of customer information across subscribers
US10904322B2 (en) 2018-06-15 2021-01-26 Cisco Technology, Inc. Systems and methods for scaling down cloud-based servers handling secure connections
US10764266B2 (en) 2018-06-19 2020-09-01 Cisco Technology, Inc. Distributed authentication and authorization for rapid scaling of containerized services
US11019083B2 (en) 2018-06-20 2021-05-25 Cisco Technology, Inc. System for coordinating distributed website analysis
US11074773B1 (en) 2018-06-27 2021-07-27 The Chamberlain Group, Inc. Network-based control of movable barrier operators for autonomous vehicles
US10819571B2 (en) 2018-06-29 2020-10-27 Cisco Technology, Inc. Network traffic optimization using in-situ notification system
US10904342B2 (en) 2018-07-30 2021-01-26 Cisco Technology, Inc. Container networking using communication tunnels
CA3107457A1 (en) 2018-08-01 2020-02-06 The Chamberlain Group, Inc. Movable barrier operator and transmitter pairing over a network
US10997810B2 (en) 2019-05-16 2021-05-04 The Chamberlain Group, Inc. In-vehicle transmitter training
CN113656329B (zh) * 2021-08-09 2024-02-02 国家计算机网络与信息安全管理中心 一种基于tcam的掩码规则插入方法、电子设备和存储介质

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU4661793A (en) * 1992-07-02 1994-01-31 Wellfleet Communications Data packet processing method and apparatus
US5386413A (en) * 1993-03-19 1995-01-31 Bell Communications Research, Inc. Fast multilevel hierarchical routing table lookup using content addressable memory
WO1994022253A1 (en) * 1993-03-20 1994-09-29 International Business Machines Corporation Method and apparatus for extracting connection information from protocol headers
FR2741466B1 (fr) * 1995-11-22 1998-01-16 Matra Mhs Dispositif de filtrage de messages incidents dans un controleur de noeud de reseau informatique
US5841874A (en) * 1996-08-13 1998-11-24 Motorola, Inc. Ternary CAM memory architecture and methodology
GB2316572B (en) * 1996-08-14 2000-12-20 Fujitsu Ltd Multicasting in switching apparatus
US6148000A (en) * 1996-10-02 2000-11-14 International Business Machines Corporation Merging of data cells at network nodes
US5920886A (en) * 1997-03-14 1999-07-06 Music Semiconductor Corporation Accelerated hierarchical address filtering and translation using binary and ternary CAMs
US6173333B1 (en) * 1997-07-18 2001-01-09 Interprophet Corporation TCP/IP network accelerator system and method which identifies classes of packet traffic for predictable protocols
US6266706B1 (en) * 1997-09-15 2001-07-24 Effnet Group Ab Fast routing lookup system using complete prefix tree, bit vector, and pointers in a routing table for determining where to route IP datagrams
US6061712A (en) * 1998-01-07 2000-05-09 Lucent Technologies, Inc. Method for IP routing table look-up
US6052683A (en) * 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks
US6272131B1 (en) * 1998-06-11 2001-08-07 Synchrodyne Networks, Inc. Integrated data packet network using a common time reference
US5991300A (en) * 1998-09-08 1999-11-23 Cisco Technology, Inc. Technique for efficiently performing optional TTL propagation during label imposition
US6081440A (en) * 1998-11-05 2000-06-27 Lara Technology, Inc. Ternary content addressable memory (CAM) having fast insertion and deletion of data values
US6205488B1 (en) * 1998-11-13 2001-03-20 Nortel Networks Limited Internet protocol virtual private network realization using multi-protocol label switching tunnels
US6237061B1 (en) * 1999-01-05 2001-05-22 Netlogic Microsystems, Inc. Method for longest prefix matching in a content addressable memory
US6044005A (en) * 1999-02-03 2000-03-28 Sibercore Technologies Incorporated Content addressable memory storage device
US6295532B1 (en) * 1999-03-02 2001-09-25 Nms Communications Corporation Apparatus and method for classifying information received by a communications system
US6278995B1 (en) * 1999-03-02 2001-08-21 Nms Communications Corporation Apparatus and method for providing a binary range tree search
US6137707A (en) * 1999-03-26 2000-10-24 Netlogic Microsystems Method and apparatus for simultaneously performing a plurality of compare operations in content addressable memory device
US6763425B1 (en) * 2000-06-08 2004-07-13 Netlogic Microsystems, Inc. Method and apparatus for address translation in a partitioned content addressable memory device
US6687785B1 (en) * 2000-06-08 2004-02-03 Netlogic Microsystems, Inc. Method and apparatus for re-assigning priority in a partitioned content addressable memory device
US6324087B1 (en) * 2000-06-08 2001-11-27 Netlogic Microsystems, Inc. Method and apparatus for partitioning a content addressable memory device
US6154384A (en) * 1999-11-12 2000-11-28 Netlogic Microsystems, Inc. Ternary content addressable memory cell
US6594704B1 (en) * 1999-12-15 2003-07-15 Quarry Technologies Method of managing and using multiple virtual private networks in a router with a single routing table
US6502163B1 (en) * 1999-12-17 2002-12-31 Lara Technology, Inc. Method and apparatus for ordering entries in a ternary content addressable memory
US6718326B2 (en) * 2000-08-17 2004-04-06 Nippon Telegraph And Telephone Corporation Packet classification search device and method
US6516383B1 (en) * 2001-05-30 2003-02-04 Cisco Technology, Inc. Techniques for efficient location of free entries for TCAM inserts

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005112350A1 (fr) * 2004-05-14 2005-11-24 Huawei Technologies Co., Ltd. Procede de gestion de chemin dans un reseau prive virtuel utilisant le protocole ipv6
CN100426786C (zh) * 2004-08-18 2008-10-15 华为技术有限公司 基于访问控制列表的网络访问控制方法
CN1767496B (zh) * 2004-10-28 2010-10-13 阿尔卡特公司 智能选择性的基于流的数据路径结构
CN1327674C (zh) * 2005-02-25 2007-07-18 清华大学 核心路由器上支持访问控制列表功能的双栈兼容路由查找器
CN101322341B (zh) * 2005-11-30 2012-06-20 思科技术公司 提供边界网关协议转发信息库的优先级区分式递归解析的方法和装置
CN100571202C (zh) * 2006-01-27 2009-12-16 华为技术有限公司 一种自带路由信息的数据的传送方法及传送系统
CN101035061B (zh) * 2006-03-09 2010-05-12 中兴通讯股份有限公司 实现三重内容可寻址存储器范围匹配的分段编码扩展方法
CN100396015C (zh) * 2006-03-29 2008-06-18 华为技术有限公司 一种tcam路由表管理方法和系统
CN100450100C (zh) * 2006-08-29 2009-01-07 华为技术有限公司 一种路由方法和路由设备
CN101222434B (zh) * 2008-01-31 2011-04-20 福建星网锐捷网络有限公司 存储策略控制列表、策略搜索方法和三态寻址存储器
CN101710873B (zh) * 2009-12-08 2012-05-23 中兴通讯股份有限公司 配置数据管理的方法和装置
CN101820383A (zh) * 2010-01-27 2010-09-01 中兴通讯股份有限公司 限制交换机远程访问的方法及装置
CN101820383B (zh) * 2010-01-27 2014-12-10 中兴通讯股份有限公司 限制交换机远程访问的方法及装置
CN102122270A (zh) * 2011-02-23 2011-07-13 华为技术有限公司 在存储器中查找数据的方法和装置以及存储器
CN102122270B (zh) * 2011-02-23 2013-08-07 华为技术有限公司 在存储器中查找数据的方法和装置以及存储器
CN105474181A (zh) * 2013-08-31 2016-04-06 英派尔科技开发有限公司 内容可寻址存储器设备
CN105474181B (zh) * 2013-08-31 2018-12-11 英派尔科技开发有限公司 内容可寻址存储器设备
WO2016101439A1 (zh) * 2014-12-26 2016-06-30 中兴通讯股份有限公司 三态内容寻址存储器tcam空间的处理方法及装置
CN105791455A (zh) * 2014-12-26 2016-07-20 中兴通讯股份有限公司 三态内容寻址存储器tcam空间的处理方法及装置
CN105791455B (zh) * 2014-12-26 2020-04-07 中兴通讯股份有限公司 三态内容寻址存储器tcam空间的处理方法及装置
CN113434673A (zh) * 2021-06-24 2021-09-24 北京房江湖科技有限公司 数据处理方法和计算机可读存储介质、电子设备
CN113434673B (zh) * 2021-06-24 2024-01-19 贝壳找房(北京)科技有限公司 数据处理方法和计算机可读存储介质、电子设备

Also Published As

Publication number Publication date
WO2003012672A3 (en) 2003-04-17
US20030056001A1 (en) 2003-03-20
EP1352334A2 (en) 2003-10-15
WO2003012672A2 (en) 2003-02-13
CA2422439A1 (en) 2003-02-13
EP1352334A4 (en) 2007-01-03
CN1282104C (zh) 2006-10-25
JP3800546B2 (ja) 2006-07-26
JP2004522383A (ja) 2004-07-22
US7028098B2 (en) 2006-04-11

Similar Documents

Publication Publication Date Title
CN1465014A (zh) 使用tcam实现数据流的选择性路由
Taylor Survey and taxonomy of packet classification techniques
US7408932B2 (en) Method and apparatus for two-stage packet classification using most specific filter matching and transport level sharing
CA2363963C (en) Network router search engine using compressed tree forwarding table
KR100333250B1 (ko) 패킷 중계 장치
CN100428225C (zh) 执行路由查找和管理路由选择/转发表的装置和方法
Lakshman et al. High-speed policy-based packet forwarding using efficient multi-dimensional range matching
US7706302B2 (en) Optimization of routing forwarding database in a network processor
US7525958B2 (en) Apparatus and method for two-stage packet classification using most specific filter matching and transport level sharing
US8335780B2 (en) Scalable high speed relational processor for databases and networks
US20040028046A1 (en) Logarithmic time range-based multifield-correlation packet classification
US6449256B1 (en) Fast level four switching using crossproducting
US20040243563A1 (en) Method and system for classifying binary strings
US9112767B2 (en) Method and an accumulator scoreboard for out-of-order rule response handling
CN102970150A (zh) 用于数据中心的可扩展组播转发方法和设备
CN101009656A (zh) 路由系统及其管理规则条目的方法
CN1433190A (zh) 用于交换节点的分类和标记规则
CN101035060A (zh) 一种三重内容可寻址存储器报文分类的统一处理方法
US11327974B2 (en) Field variability based TCAM splitting
JP2004266837A (ja) フィールドレベルツリーを用いたパケット分類装置及び方法
CN109754021B (zh) 基于范围元组搜索的在线包分类方法
US20050114393A1 (en) Dynamic forwarding method using binary search
US7512122B1 (en) Identifying QoS flows using indices
Ahmed et al. PCIU: an efficient packet classification algorithm with an incremental update capability
Macián et al. An evaluation of the key design criteria to achieve high update rates in packet classifiers

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: texas

Patentee after: Nokia Oyj

Address before: American California

Patentee before: Nokia Oyj

ASS Succession or assignment of patent right

Owner name: NOKIA OY

Free format text: FORMER OWNER: NOKIA OYJ

Effective date: 20140718

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20140718

Address after: Espoo, Finland

Patentee after: Nokia Oyj

Address before: texas

Patentee before: Nokia Oyj

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160111

Address after: Espoo, Finland

Patentee after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Patentee before: Nokia Oyj

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

Granted publication date: 20061025

Termination date: 20190703