CN100555986C - 交换环境用的组合流水线式包分类和地址搜索方法及设备 - Google Patents

交换环境用的组合流水线式包分类和地址搜索方法及设备 Download PDF

Info

Publication number
CN100555986C
CN100555986C CNB2005100807261A CN200510080726A CN100555986C CN 100555986 C CN100555986 C CN 100555986C CN B2005100807261 A CNB2005100807261 A CN B2005100807261A CN 200510080726 A CN200510080726 A CN 200510080726A CN 100555986 C CN100555986 C CN 100555986C
Authority
CN
China
Prior art keywords
bag
picture format
packet
header
field value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005100807261A
Other languages
English (en)
Other versions
CN1716911A (zh
Inventor
易正修
张荣峰
C·巴瑞克
林长华
J·达
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.)
Conexant Systems LLC
Original Assignee
Conexant Systems 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 Conexant Systems LLC filed Critical Conexant Systems LLC
Publication of CN1716911A publication Critical patent/CN1716911A/zh
Application granted granted Critical
Publication of CN100555986C publication Critical patent/CN100555986C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3063Pipelined operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • 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
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching

Abstract

本发明公开了一种具有流水线式包处理基础结构的分组交换节点,以处理经由与所述分组交换节点关联的输入端口接收的包。该设备执行的方法包括:确定已接收包的包帧型;有选择地提取专指包帧型的包头字段值,所提取得包头字段值包括包寻址信息;把将对包执行的初步动作归于包;根据已提取包寻址信息搜索由分组交换节点追踪的分组交换信息;制订用于包的初步交换响应;把包分类成多个包流之一;根据初步动作、包被分类成的包流和对应于输入端口的默认端口动作之一修改初步交换响应;根据初步动作、包流和默认端口动作之一修改包头;根据交换响应处理包。本发明优点得自于:启用短截不适当包处理剩余部分的流水线式包处理;对已知帧型快速进行的灵活帧型确定,以灵活支持延缓特定实施废弃的新帧型;由后续阶段成功精选的处理动作的早期确定;组合式层2和层3网络寻址搜索引擎,该引擎工作于降低网络地址表存储需求的短比特长度被索引的层2和层3网络地址,该引擎需要网络地址表访问的降低的数据传递带宽,大的外部散列主网络地址表,和小的内部辅网络地址表;交换响应的早期确定;以及基于包分类的交换响应和包头修改。

Description

交换环境用的组合流水线式包分类和地址搜索方法及设备
技术领域
本发明涉及分组交换通信,特别是涉及组合流水线式搜索和分类方法及设备。
背景技术
在分组交换通信领域中,参与通信网的源网络节点与目的地网络节点之间传递的内容被分段用于包传送。包具有包括包头和内容净荷的结构。源网络节点与目的地网络节点间路径中的通信网节点(比如,但不限于交换网路节点)根据包头中指定的信息接收、存储、检查、处理和转发每个包。该操作模式被称作非确定性存储和转发分组交换。
交换网络节点是多端口网络节点。处理经由输入端口接收的每个存储包包括确定至少一个转发存储包的输出端口。经由至少一个已确定输出端口连接实际转发的至少一个输出端口的确定被称作分组交换。普通交换网络节点的重要特征,以及在通信网络核心中利用的交换网络节点的要求是,输出带宽准许、以正在进行的入线速度/入网速度执行的存储和转发交换的包。尽管这种要求似乎是合理的,但是这种要求实际上是难于实现的,尽管本领域中新近有了大量进展,不过其原因也是新近出现了大量进展。
分组交换通信的历史和发展是非常不同的,包括:在诸如有线、无线、光物理传送等的物理层1上多个技术的使用;在数据链路层2上多种封装技术的使用,包括以太网技术;在网络层3上多种传输协议的使用,包括网际协议(IP)、互联网控制消息协议(ICMP)等。IP-over-Ethernet技术享有最宽配置。
例如,标准IP/以太网提供了非确定性尽力而为包传输。非确定性特征提供绕过已失败的通信网基础结构的包自动重选路由,然而尽力而为特征不提供源网络节点与目的地网络节点之间成功(甚至不过早)包传输的保证。传输控制协议(TCP)还被用来识别丢失的包,以提供请求对其重传的手段。及时包传输是通过业务/服务区别解决的,并且是在源网络节点与目的地网络节点之间的中间通信网上经过优先包处理提供的。
解决所有上述的以网线/线路速度提供持续分组交换的问题是困难的。尽管与此相关的理论进展提供了可以构建这种交换网络节点的保证,但是实际实施却陷入高开发、实施和确认成本的困境,并且还遇到各种实施的复杂性。由于本领域的快速发展,不但交换网络节点需要在处理多协议最小长度的包时以线路/网线速度操作,而且还希望适应性措施能够考虑将来技术发展而延缓装备废弃。
在现有技术中,名为“具有快速过滤处理器的网络交换基础结构”的美国专利申请公开US2002/54604A1(发明人:Kadambi等人;公开日:2002年5月9日)披露了过滤经由输入端口接收的包的方法和设备。决定是否丢弃包的最终包处理被称作包过滤。尽管Kadambi等人教导在单芯片上实施交换网络节点功能,其中交换节点功能被模块化以用于独立开发,但是所述的实施是复杂和麻烦的,因为对每个端口实施的过滤需要复杂的三通道仲裁组,以供端口模块之间的内部通信。包过滤本身不交换包,而是仅仅提供减少不需要的包处理的手段。经过进一步针对包过滤重点的包过滤还可以解决某些安全方面的问题。尽管基于端口的过滤能够很好地提供以线路/网线速度的包过滤,但是仅仅过滤不能解决交换网络节点上包处理的其它上述问题。
名为“高速MAC地址搜索引擎”的美国专利US 6,697,873B1(2004年2月24日发给Yik等人(某些人在这里被叫做发明人),该专利并入本申请以作参考)披露了在诸如交换网络节点的通信网络节点中存储和搜索网络节点地址的设备和方法。该设备包括用于存储和搜索媒体接入控制(MAC)地址的两个MAC地址表。主MAC地址表存储指定对应于MAC地址的压缩值的记录,每个记录被存储在使用作为索引的散列MAC地址值引用的存储位置上。为了解决散列到相同索引并由此散列到主MAC地址表的相同位置的多个MAC地址可能造成的搜索冲撞问题,主MAC地址表中的每个记录还被链接到辅MAC地址表中存储的记录的一条对应链。辅MAC地址表中的记录指定全部MAC地址。交换网络节点上的MAC地址存储器在减少交换包所需的处理方面的要点是:MAC地址表中的记录还包括为类似寻址的包预先确定输出端口。从MAC地址表中快速检索MAC地址记录是实现快速分组交换的要点。Yik等人描述的实施提供了实施MAC地址查找的成本与MAC地址搜索的速度之间的平衡。
名为“高速MAC地址搜索引擎”的美国专利申请10/750,445(2003年12月31日由Barrak等人提交(其中某些人在本文被称作发明人),并且并入本申请以资参考)披露了在诸如交换网络节点的通信网络节点中存储和搜索网络节点地址的改进的设备和方法。该设备包括用于存储和搜索MAC地址的两个媒体接入控制(MAC)地址表。位于分组交换处理器之外的主MAC表存储指定对应于MAC地址的压缩值的记录,一个以上的记录被存储在使用作为索引的散列MAC地址值引用的存储位置上。主MAC地址表的外部存储能够断开隔板存储器的使用,该隔板存储器提供使交换处理器与外部存储器之间数据传输开销保持平衡的充足存储。为了解决散列到相同索引的多MAC地址可能造成的搜索碰撞,主MAC地址表中的每个记录还链接辅MAC地址表中存储的记录的对应链。辅MAC地址表中的记录具体指定最小化辅MAC地址表存储需求的压缩MAC地址,因为辅MAC地址表与分组交换处理器一起被实施在同一微芯片板上。
尽管针对改进交换性能的上述发展已经取得了巨大进步,但是仍然需要解决进一步改善交换性能,特别是支持更高端口密度的上述问题。
发明内容
根据本发明的一个方面,提供了一种灵活的报头分析技术方案,其中并行使用三个报头分析引擎,以根据全线/网速的入局包的特定包头位组合的检查确定各种帧型。利用三个报头分析引擎提供了灵活性:硬件引擎提供用于标准公知帧型的快速帧型标识,可配置的判决树分析引擎确定经过连续帧型消除处理的帧型,可配置的模板匹配引擎执行比特模板比较。
根据本发明的另一方面,在确保最小和快速处理的帧型确定之后,从包头中提取包头字段值。一个用户可配置字段提取器被利用。对于每个帧型可以指定已提取的字段的偏移。对于某些帧型,可以在流水线中的早期阶段确定包处理动作。
根据本发明的再一个方面,通过把层2源和目的地MAC地址、层3源和目的地IP地址映射到搜索地址表中使用的内部索引,来降低实施成本。组合式L2和L3搜索引擎利用基于散列的搜索方案把已提取的网络寻址字段值映射到具有短比特长度的索引中。
根据本发明的又一方面,最终动作被归于已分类的包,包括但不限于:虚拟局域网标识符(VLAN ID)插入,VLAN再映射,服务类型(ToS)再映射,服务质量(QoS)实施,过滤,转发和报头修改。
根据本发明的一个方面,提供了具有流水线式包处理基础结构的分组交换节点。该分组交换节点包括:确定经由分组交换节点的输入端口接收的包的包帧型的装置;选择地提取专用于包帧型的包头字段值的装置,所提取的包头字段值包括包寻址信息;把待执行的关于包的初步动作归于该包的装置;根据已提取的包寻址信息搜索由分组交换节点追踪的分组交换信息的装置;制定用于包的初步交换响应的装置。包分类器把包分类成多个包流的一个。交换响应修改器根据初步动作、包被分类成的包流、以及对应于输入端口的默认端口动作之一,修改初步交换响应。包头修改器根据初步动作、包流和默认端口动作之一修改包头。分组交换节点还包括根据交换响应处理包的装置。
根据本发明的另一方面,提供了一种在分组交换节点经由输入端口接收的处理包的方法。已接收的包的包帧型被确定。专用于包帧型的包头字段值被选择提取,已提取的包头字段值包括包寻址信息。关于包的待执行的初步动作被归于该包。根据已提取得包寻址信息搜索分组交换节点所追踪的分组交换信息。制订初步交换响应。包被分类成多个包流中的一个。初步交换响应根据初步动作、包被分类成的包流以及对应于输入端口的默认端口动作之一来修改。包头根据初步动作、包流和默认端口动作之一来修改。包根据交换响应来处理。
根据本发明的再一方面,提供了一种具有流水线式包处理基础结构的分组交换节点,用于处理经由多个分组交换节点源端口接收的包。分组交换节点包括一个包头字段值提取器,用于根据一个接收包的源端口和预先确定的包帧型,从由每个包传送的多个包头字段值中选择地提取包头字段值。分组交换节点还包括把匹配类型归于包的装置,匹配类型根据已提取的包头字段值预分类包,但不考虑包帧的格式。分组交换节点还包括搜索装置,用于根据已提取的包头字段值、匹配类型、制订包的初步交换响应的源端口,搜索分组交换节点追踪的分组交换信息、分组路由信息和协议虚拟局域连网信息之一。包分类器根据源端口标识符、初步交换响应、已提取包头字段值和匹配类型之一,把包分类成多个包处理流之一。
根据本发明的又一方面,提供了一种处理经由分组交换节点的多个源端口接收的包的方法,所述分组交换节点具有流水线式包处理基础结构。根据接收包的源端口和预先确定的包帧型之一,从每个包传送的多个包头字段值中选择地提取包头字段值。根据已提取的包头字段值预分类该包,而不考虑包帧的格式,并且将匹配类型归于该包。根据已提取的包头字段值、匹配类型和制订包的初步交换响应的源端口之一,搜索分组交换节点追踪的分组交换信息、分组路由信息和协议虚拟局域连网信息。并且根据源端口标识符、初步交换响应、已提取报头字段值和匹配类型之一将包分类成多个包处理流之一。
本发明的优点得自于:能够短截(short-cutting)包处理流水线的剩余部分的流水线式包处理;对已知帧型快速进行的灵活的帧型确定,对延缓特定实施的废弃的新帧型灵活提供支持;由后续阶段依次精选的处理动作的早期确定;组合式层2和层3网络寻址搜索引擎,该引擎工作于降低网络地址表存储需求的短比特长度索引的层2和层3网络地址,需要网络地址表访问的降低的数据传送带宽,使大量的散列表项存储在外部主网络地址表中,以及使较大量的表项存储在内部辅网络地址表中;交换响应的早期确定;基于包分类的交换响应和包头修改。
附图说明
下面的结合附图的示范实施例的详细说明将会使本发明的特点和优点变得更加清楚。
图1是显示根据本发明示范实施例实施分组交换环境的组合流水线式搜索和分类引擎的元件的示意图;
图2是显示根据本发明示范实施例的连续帧型消除概念的示意图;
图3是显示根据本发明示范实施例的判决树分析引擎的示范元件的示意图;
图4是显示根据本发明示范实施例的连续帧型消除处理的循环步骤的流程图;
图5是显示根据本发明示范实施例的示范实施的示范优先权的示意图,其中该优先权与示范包处理流水线中阶段5所执行的动作相一致;
图6显示了本发明示范实施例的示范包处理流水线的阶段5的示范实施例的细节;
图7显示了本发明示范实施例的测量和计算模块实施的进一步细节。
请注意,在附图中相同特征具有相同标记。
具体实施方式
根据本发明示范实施例,提供了一种组合流水线式包分类和地址搜索引擎,该引擎能够支持区别服务,比如过滤、计费和服务质量供应。
根据本发明示范实施例,包分类器的功能之一是把包分类成包流,这通常是通过检查多个包头字段值进行的。包分类器使用的规则指定检查哪些字段值以及什么值是期望的。符合相同规则的包被分类为属于实施本发明的设备之内的相同包流。在处理这样的包中,执行相同的包处理动作,动作通常包括交换包。
根据本发明的示范实施例,利用图1所示的分段流水线基础结构100将包分类以及层2和层3网络地址搜索集成在一起。
根据本发明的示范实施例,在包头字段提取之前,由阶段1执行包帧型确定。在处理包之前确定包帧使得从包头提取字段值的处理降低到最小需要。三个包帧型确定引擎被并行使用来标识所接收包的帧型。根据本发明的示范实施例的示范实施,可以辨别至少256个包帧型,但是本发明不限于此。包帧型确定引擎检查每个接收包的每个包头102的部分,并且包括:
硬件帧型确定引擎104提供用于包帧格式的非常快速的包帧型标识,所述包帧格式通常是以广泛接受的标准指定的,这些标准比如是互联网工程任务组(IETE)公布的IEEE 802x标准,该标准在此引用作为参考。在硬件设计和制造期间,优化硬件引擎104的操作,但本发明不限于此。硬件引擎104通常被实施为一个芯片上的硬件逻辑电路,它可以提供某些运行时间定制。广泛的运行时间定制有利于非常快的包帧型确定,以及有利于界限预定的包帧型确定延迟。大多数包业务包括标准包(但本发明不限于此),典型地可以用最小延迟和最小处理开销来标识至少112个包帧型。
根据一个示范实施,硬件引擎104确定标准包帧型,例如VLAN标签的以太网II封装TCP/IP包的帧型,其格式如下表所示:
B7                                                 B0
硬件帧型确定引擎104识别VLAN标签的以太网II封装的TCP/IP包,该识别是通过匹配以下的指定偏移(位置)报头字段值实现的:
第12字节的值=0x81;
第13字节的值=0x00;
第16字节的值=0x08;
第17字节的值=0x00;和
第27字节的值=0x11。
一旦发现包字段值匹配预定组合,相应的帧型值就与该包相关联。
标准能够改变或者被废弃,如下所述,解决潜在的未到期废弃的一种方式是把从可配置帧型确定引擎106/108经过硬件引擎104输出的帧型区分优先次序。
解决潜在的未到期废弃的另一种方式是,通过停用硬件引擎104的相应硬件逻辑部分来避免匹配旧标准帧型。在这种方式中,处理开销被降低到最小需要。然而,如果不出现冲突,则通常希望反向兼容性,并且如果旧标准帧型标识干扰预期操作,则可以仅仅停用硬件引擎104的硬件逻辑部分。
连续帧型消除处理由判决树分析引擎106执行。最适合于经由连续帧型消除辨别的帧型间的关系是“type-of”(类型)关系。正如本领域已知的那样,层3数据报(原始包)被封装在层2数据报中。作为一个简单实例,判决树分析引擎106辨别具有不同层3报头格式但具有相同层2报头格式的包帧型。因此在字段中定制判决树分析引擎106的操作中,在重新指定类型关系时提供了某些灵活性。示范实施除了支持硬件引擎104检测的帧型之外,还可以支持超过128个帧型,但本发明不限于此。
根据示范实施例的示范实施,帧型间的类型关系被示范地指定为判决树的节点202。图2示意地显示了示范二进制判决树200。通过应用测试的特定序列、判决树200中节点202之间的关系指定的序列标识每个预定包格式。节点202的实际实施包括判决表210中的记录212,每个记录212与判决表行索引相关联,并且包括:帧型标识位组合的包头偏移,帧型标识测试位组合和跳跃指令。帧型标识测试位组合可以包括:比特掩码、二进制值和比较二进制值,用于确定对应于至少一个包头字段的包头字段值比特是否等于一个期望值,是否服从已指定的无用比特。跳跃指令包括确定连续帧型消除处理是否已经完成的说明符;如果未完成,则将判决表行索引跳到下一个,确定位组合匹配测试是肯定的还是否定的。根据本发明示范实施例的示范实施,以下的记录212说明代表每个记录212中拥有的示范信息:
  字段名   说明
  比较字   指定包头信息比较的2字节的位置
  比较值   比较值
  掩码   相应的2字节的比特掩码
  跳到肯定匹配测试结果/帧型上的索引   用于匹配或帧型值的JUMP地址A)当匹配比特的结尾=0时,如果比较是匹配的,则跳到指定地址B)当匹配比特的结尾=0时,指示帧型值
  匹配结束   指示比较结束。如果该比特是逻辑高,则用于匹配的下一个跳跃地址字段中存储的值是帧型
  跳到否定匹配测试结果上的索引   当比较不导致匹配比特结尾=0时的匹配时,用于不匹配或帧型值的跳跃地址跳跃到指定地址,
  不匹配结束   指示比较结束
在重新用于帧型确定记录212的结尾的帧型说明的跳跃指令字段的情况下,通过重新使用多目的的记录字段实现存储空间效率。
在与硬件引擎104比较时,尽管判决树分析引擎106在标识包帧型中可以不提供预定的处理延迟,但是类型关系说明仅仅需要最小帧型定义存储,并且在实施判决树分析引擎106的交换设备制造之后提供对标准发展/修改的附加/修改的标准帧格式的支持。
判决树分析引擎106可能花费较长时间周期来标识接收的包的帧型。只要判决树引擎106可以标识接收的包的帧型,就可以利用单个判决树分析引擎106,假定首先接收包头,同时接收最小长度包净荷。最小长度以太网包,报头和净荷是64字节与考虑前置码的20字节的帧间间隙。为了确保线路/网线速度的分组处理,判决树200必需被压缩以使较少数量判决树结点202被协商确定帧型,或者可以使用多个判决树分析引擎106。依赖实施标识帧型的判决树分析引擎106的预期使用,对于以平均包到达速率完成帧型确定是充分的。
根据本发明示范实施例的示范实施,判决树分析引擎106微码逻辑可以每个时钟执行一次测试(202/204/212/214)。
根据本发明示范实施例的示范实施,判决树分析引擎106包括判决树分析器206和判决表210的微码实施。
依据该实施,源端口标识符112被提供给流水线100的第一阶段,并且帧型确定引擎104、106和108的任何一个可以提供根据源端口说明单独确定的帧型说明114。在经由特定端口接收的包帧型被认为先验时,可以利用基于源端口标识符的帧型确定。
根据本发明示范实施例的示范实施,判决树分析引擎106还实施基于端口的帧型确定。判决表210还包括对应于实施判决树分析引擎106的交换设备输入端口的行214。根据本发明示范实施例的示范实施,第一N个判决表记录214被用来实现判决树节点204(多个起点),其中N对应于实现判决树分析引擎106的交换系统输入端口的数量。有利的是,对应于接收到的包的输入端口的源端口标识符112可以直接用作检索判决表记录214的索引,而不需要中间处理。本发明不限于这种实施,每个输入端口标识符112可以以一对一或者多对一为基础映射到判决表行索引上。
一旦源端口标识符112(和报头102)可用于流水线的阶段1,判决树分析器206就首先检索相应的判决表记录214,然后判决树分析器206应用这里指定的测试。有利的是,借助代表分离的输入端口细节、连续帧型消除处理的起点的每个判决树节点204,至少一个判决树记录214可以用单独基于源端口标识符112提供早期帧型确定的字段值来配置。只有当特定帧型应当描述相应输入端口上的接收的包时,判决树记录204才可以被用户配置以指定帧型。对于干线端口以及特别提供对非标准包帧格式的快速帧型确定,上述优点是显而易见的。
当具有多个帧格式类型的包应当经由输入端口被接收时加速连续帧型消除处理中的进一步增强,可以经过指定指向判决树200不同子树的跳跃指令中提供的灵活性来实现。一个这样的示范实施例包括:在供应同时发生的数据和语音服务的收敛应用中,在通信网边缘上利用的交换节点,其中在交换设备的传输/供应商侧,在不同端口接收数据和语音(一个似乎非常合理的实施)。关于IP语音(VoIP)方案,通过直接跳跃到经由任一干线端口接收的包的判决树200的相同子树,标识沿下行链路方向传输并经由VoIP干线端口接收的包的IP包头以及确定帧型可以不被预先执行(pre-empted)。分析子树也许仍然被要求来确定VoIP包是否为普通以太网分组或者具有VLAN报头的以太网包。至于沿上行链路方向经过通信网节点的包,通常经由与客户关联的相同分布侧输入端口接收数据和语音包,然而数据和语音包可以经由例如被不同业务类型(TOS)包头字段值说明标识的分离“虚拟连接”来传输。尽管没有能力单独根据输入端口标识符112实现早期判决,但考虑到相应判决树记录214可以是用户编码以详细说明帧型确定处理首先经由到判决树200的特别子树的特定跳跃,考虑服务类型确定,因此可以进一步明白在指定判决树200中提供的灵活性。
图4示出了判决树分析器206的示范循环操作(300),判决树分析器206从判决表210中检索一个记录212(步骤312),并且从记录212字段中指定的具有偏移(和比特长度)的包头中检索包头比特值(步骤314)。已检索的二进制值与历经比特掩码中指定的无用比特的预期二进制值相匹配(步骤316)。依据步骤316匹配的结果,“匹配”或者“不匹配”记录212字段被考虑。根据是否已经到达匹配结束318,提供帧型输出,并且对于另一个接收的包重新开始处理300,或者用跳跃指令来在步骤312检索判决表210中的下一个记录212。
根据本发明示范实施例,由于已提取的包头可以与历经/或不历经比特掩码的任一指定的比较值比较,因此本发明的示范实施例的示范实施提供了能够使比特值范围匹配的三重匹配性能。
根据本发明示范实施例,如果多报头字段具有短比特长度并且彼此比较接近,则判决树200的节点202可以使测试在多个包头字段上同时被执行。
模板匹配引擎108被用来支持具有在硬件引擎104中未预先编码的包帧型的包处理,或者支持经由判决树200表达为可辨别包帧型的类型的包处理。模板匹配引擎108在指定用于匹配接收的包头的组合的包头格式模板中提供完全的灵活性。示范实施可以除了对硬件引擎104和判决树分析引擎106检测的帧型提供支持外,还对至少16个用户指定帧型提供支持。
根据本发明示范实施例的示范实施,模板匹配引擎108利用三重内容可寻址存储器(TCAM)。名为“可配置三重内容可寻址存储器”的普通转让美国专利申请10/403,110中公开了本领域的三重内容可寻址存储器的示范性使用(RayChin Lu于2003年3月31提交申请,该申请在此引用以资参考)。包头模板包括掩码和位组合,两者都是用户可配置的,以提供对任何帧格式的支持。如上所述,多个帧型是能够被标识的,因为模板匹配服从掩码比特。模板可以被安排成使得第一模板匹配将作为相关的一个。因此模板匹配引擎108在指定待匹配的包头格式组合中提供全灵活性。模板匹配引擎108还有助于延缓所实施的通信网节点的废弃。
由于三个帧型确定引擎104、106和108并行操作,因此多个帧型输出被提供给帧型输出选择器110,在处理经过流水线100的每个包中,选择器110选择待使用的帧型说明114。通常,可配置引擎的帧型说明输出被给予对最小可配置引擎输出的优先权。模板匹配引擎108的帧型输出通常被给予对判决树分析引擎106的帧型输出的更高优先级,并且判决树分析引擎106的帧型输出被给予对硬件引擎104的帧型输出的更高优先级。
所有树帧型确定引擎能够不辨别接收的包的帧型,这也许是因为例如传输的新标准包、支持已经被禁止/中断地旧标准包类型、或者传输的畸形包。依据流水线100的预期操作,不能确定帧型的包不经过流水线100作任何进一步处理,并且(本发明不限于)被丢弃、改道或者被发送给管理处理器,如果这样,则降低流水线100剩余部分对这种接收包的不必要处理的暴露。根据本发明示范实施例的示范实施,帧型不能够确定的接收的包被归于为不匹配帧型保留的帧型标识符(例如十六进制值0xFF)。
参见图1,流水线100的阶段2设有源端口标识符112、包头102和归因的帧型114。
包头字段值提取器120被用来根据提取表124的帧型索引记录122中指定的提取指令,从提取包头102中提取包头字段值。对于每个帧型114,对应记录122指定启动字段值提取的相关包头字段偏移。包头格式字段关联性是经由一组有效帧格式比特指定的。如上所述(但本发明不限于此),根据示范实施,可以在至少256个帧型之间辨别流水线100的阶段1,因此提取表124可以包括至少256个相应记录122表项。
以下是示范帧型搜索信息提取记录122的表示:
Figure C20051008072600191
仅仅设置报头字段值提取器120,参考帧型索引记录122以提取对应于始于相应偏移地每个有效帧格式比特集的包头字段值。以下是如果相应特定帧型114有效,则从接收包头提取的字段值的示范列表如下:
-目的地MAC(6字节);
-源MAC(6字节);
-DSAP(1字节);
-SSAP(1字节);
-以太网类型(2字节);
-VLAN ID(12比特);
-802.1p优先权(3比特);
-TOS(1字节);
-TTL(1字节);
-协议ID(1字节);
-IP CHKSUM(2字节);
-SPC_IP(4字节);
-SRC L4端口(2字节);
-目的地L4端口(2字节);
-UDP/TCP CHKSUM(2字节);
-用户定义/TCP标记(1字节)。
显而易见,提取表124中的记录122仅仅指定每个帧型的有效字段,并且对于每个有效字段仅仅指定偏移。然而,包头字段的上述列表还显示括号中的字段长度。记录122中的有效字段的字段长度说明的内含物交由设计选择处理:指定记录122中的字段长度需要存储空间,作为选择,包头字段提取器120可以作出关于包头字段长度的假设。
根据本发明示范实施例的另一个示范实施,包头提取器120不从包头字段中物理提取字段值,以只是随后再次将其存储到与包头102分离的寄存器中。由于包头102保持对流水线100的所有阶段有效,因此包头字段提取器120根据帧型114或Mtype126把“指针模板”关联到每个接收包,并且向流水线100的后续阶段提供包头、指针模板和Mtype三元组。由于模板和/或后续阶段处理需要检查包头字段值,因此模板和/或处理参考与每个处理的包关联的指针模板,以直接检查包头字段值。示范的指针模板包括指向包头102开头的存储器地址指针,以及相应提取记录122中指定的有效偏移值。这种实施的益处包括空间节省,因为包头信息仅仅存储一次。
根据本发明示范实施例,每个记录122还指定用于包分类的匹配类型126(Mtype)。帧型说明114涉及用于提取包头值目的地包格式,而匹配类型说明126用于包分类。多个帧型114可以被映射到单个匹配类型126。
根据本发明示范实施例,每个记录122还指定是否对于特定帧型执行默认包处理动作128:
00:使用默认端口动作:(默认);
01:转发到CPU;
10:过滤器:丢弃包;和
11:(无效/保留)。
根据本发明示范实施例的示范实施,以每个入口端口为基础,在寄存器中指定默认端口动作128。示范默认端口动作128包括:
00:使用L2/L3搜索结果:(默认);
01:转发到CPU;
10:过滤器:丢弃包;和
11:(无效/保留)。
已提取的字段130值加之匹配类型126和初步动作128被提供给用于L2和L3搜索的流水线100的阶段3。流水线100的后续阶段可以修改初步动作。
阶段3包括执行不同搜索任务的三个搜索引擎:L2搜索,协议VLAN搜索,L3搜索。
L2搜索引擎132利用了2004年2月24日转让给Yik等人(其中的某些人在此称为发明人)的名为“高速MAC地址搜索引擎”普通转让美国专利US 6,697,873B1所述的散列搜索算法,该专利’873在此引用以资参考。总之L2搜索引擎132提供以下功能:
源MAC ADDR学习:已提取源MAC ADDR 130自己、或者MAC ADDR和VLAN ID组合(130)被用作经由“873美国专利”公开的散列方案执行L2交换数据库的L2交换表中查找的密钥:
-如果查找不能标识相应表项,则在L2交换表中创建L2交换数据库表项(还向管理处理器报告已学习的MAC ADDR);和
-如果查找标识相应表项,则更新与表项关联的老化比特;
根据已提取的目的地MAC ADDR 130或者目的地MAC ADDR和VLAN ID组合(130)(用作经由“873美国专利”公开的散列方案执行L2交换数据库的L2交换表中查找的密钥)执行目的地端口搜索:
-如果查找不标识相应表项,则已接收包被洪泛到所有端口。如果接收的包具有关联的VLAN ID,则洪泛被限制到与相同VLAN域关联的端口,与相同VLAN域关联的端口经由VLAN表被指定。
-如果查找成功,则包仅仅被发送给正确端口。如果包具有关联的VLAN ID,则相关端口是与相同VLAN域关联的一个。
L2交换数据库包括具有以下示范格式的表项:
  名称   说明
  T标记   时间标记用来控制表项老化。如果时间标记未在预定时间周期内更新,则可以消除该表项。
  地址   1.对于L2帧-MAC ADDR2.对于L3多播帧-IP ADDR和VLAN ID
  端口号/多播组   对于单播包,字段指示关联的端口号或MAC ADDR的中继端口。(中继端口是对应于多个物理端口的逻辑端口)对于L2多播和IP多播包,字段指示包归属的多播组ID。根据该组ID,搜索引擎执行多播组表中的查找,以获得目的地出口端口的组。
  类型   表项状态:000-无效001-动态MAC表项数据结构010-IP多播数据结构011-静态MAC数据结构100-L2多播101-具有源和目的地过滤的静态MAC数据结构110-具有源过滤的静态数据结构111-具有目的地过滤的静态MAC数据结构
  优先权   优先权
  丢弃比特   丢弃多播包
L2搜索引擎132从L2交换数据库中检索/导出交换信息,交换信息(本发明不限于此)包括:出口端口位映射,归于接收包的VLAN ID,指定VLAN ID特定处理动作(插入,置换,消除,忽略等)的位映射,传输优先权,丢落优先权,多播或单播转发说明等。交换信息将在定制用于处理接收包的包处理响应中利用。
对于多播包,L2搜索引擎132需要获得对应于组ID的出口端口说明,这是经由以下示范性31比特表项在具有指定组成员的示范性组ID索引表项的多播组表中执行查找获得的:
  31   30-28   27-00
  管理处理器端口   保留   端口00-27的端口位映射
多播组表可以包括至少256个表项,但不发明不限于此。
源和目的地MAC ADDR由L2搜索引擎132映射到相应的源MAC_IDX和目的地MAC_IDX的说明符,该说明符将在阶段4由包分类引擎142使用。
根据本发明示范实施例,阶段3还包括L3搜索引擎134。L2搜索引擎132和L3搜索引擎134并行操作。通过使用作为密钥的已提取的目的地IP地址在L3交换数据库中查找下一跳路由器信息,L3搜索引擎134执行层3搜索操作。L3交换数据库包括L3IP交换表和范围匹配表。在L3交换数据库查找期间,检索的信息被用于把已提取的源IPADDR和目的地IP ADDR映射到一个索引值,该索引值将被供给阶段4以供分类器142使用。
L3交换数据库查找被执行以确定关于接收的包的路由信息。L3交换数据库查找包括执行两个搜索:以获得精确匹配并确定范围匹配。
Barrak等人(其中的某些人在此称之为发明人)于2003年12月31提交的名为“高速MAC地址搜索引擎”的普通转让美国专利申请10/750,455公开了一种精确匹配搜索,该申请在此引用以资参考。总之,在执行L3搜索中,目的地IP ADDR被散列到散列索引。散列索引用来引用L3交换数据库中的表项。
每个L3交换数据库表项包括以下示范信息:
Figure C20051008072600231
在搜索L3交换数据库中,将IP ADDR与相应索引表项中存储的IPADDR进行比较。
如果发现IP ADDR匹配,则L3搜索完成,并执行以下动作:
-获得相应下一跳路由信息;
-引供L3计数器索引以更新阶段5上的L3传输计数器;
-L3交换数据库表项的老化比特被更新,指示近期使用的表项;和
-已匹配的表项被用作阶段4上的包分类的IP_IDX。
如果未发现IP ADDR匹配,则可能意味着多个IP ADDR被散列到同一散列索引中。L3交换数据库表项随后将具有指向表项列表的第一表项的有效指针。分析列表以发现匹配。
如果列表不包含IP ADDR的匹配,则提供关于精确匹配失败的指示。如果发现精确匹配失败则考虑L3范围搜索的结果。
L3范围搜索模仿最长前缀匹配方案。L3交换数据库的IP范围匹配表的表项包括IP ADDR说明,以及与IP ADDR范围关联的IP掩码。IP掩码指定用于比较的IP范围(通常是IP子网):
Figure C20051008072600241
交换数据块的IP范围匹配表可以包括64个表项,需要时可以根据应用使用更多的表项,但本发明不限于此。
将已提取得目的地IP ADDR的比特与L3交换数据库表项中存储的IP ADDR的比特进行比较,并且将结果进行IP掩码。掩码指定相关比特,并且如果相关比特匹配,则范围匹配是肯定的。
如果L3范围匹配被发现,则对于L3精确匹配应用执行相同动作。如果表项未被匹配,则L3范围匹配被说成已经失败。
如果L3精确匹配和L3范围匹配是成功的,则精确匹配则得到超过L3范围匹配的优先权。如果匹配未被发现,则被路由的包通常被转发到管理处理器用于进一步处理。
在上述说明中,说明目的地IP搜索,以解析L3被路由的包的交换响应。根据本发明示范实施例,对于包括被路由的分组和桥接包的所有IP包,L3搜索引擎134还尝试搜索用于源IP ADDR的L3交换数据库,以把32比特IP地址映射到通常具有较少比特(比如12或14比特)的IP_IDX中。IP ADDR到相应IP_IDX的映射被用来减少分类阶段4的实施成本。
根据本发明示范实施例,提供一个将VLAN标记与包的PROTOCOL说明相关联的选项。PROTOCOL由Ethertype的值或者包头的DSAP/SSAP字段标识。协议VLAN搜索引擎136以确定Ethertype-II的Ethernet和SNAP接收的包,或者其它逻辑链路控制(LLC)包的DSAP/SSAP。根据本发明的示范实施例,至少16个可配置的Ethertype或DSAP/SSAP可以分别与VLAN ID关联。协议VLAN搜索引擎136对已提取的包头字段值执行操作,包括将已提取字段值与已知组合匹配:
-如果没有发现用于接收的包的匹配(意味着包没有VLAN标记/联系),则不采取行动。根据示范实施例,当未发现匹配时,可以分配默认VLAN ID:
-如果发现匹配,则接收的包被归为对应于从关联匹配表项中导出的说明的VLAN IDX;
-在查询VLAN表以确定出局(outgoing)VLAN标记中,将索引和端口ID 112用作查找密钥;和
-匹配时替换VLAN ID(标记)。
示范协议VLAN表包括:
Figure C20051008072600261
请注意,以每个入口端口为基础提供VLAN IDX和VLAN映射。因此,可以为不同端口上的相同协议分配不同VLAN ID。
根据本发明示范性实施例,L2和L3搜索引擎132和134组合提供来自支持制订至少接收的包的初步交换响应140的匹配交换数据库表项中交换信息。阶段4处理完成后可用的信息支持基于以下各项的交换响应的定制:入口端口ID,已提取得包头信息,从L2交换数据库提取的交换信息,从L3交换数据库提取的交换信息,从协议VLAN表导出的信息。交换响应中指定的示范性信息包括:
  字段   字段说明
  原始的源端口   接收的包的出口端口
  传输优先权   包的传输优先权,用于查询和调度
  丢弃优先权   包的丢弃优先权,用于查询前的WRED
  VLAN   标记控制,包括用户优先权比特,CFI比特和VLAN ID
  用户优先权比特   指示L3搜索引擎134应当输出描述符中存储的优先权比特,不输出包检查或搜索的结果
  VLAN tag in   指示接收的包包含VLAN标记报头
  多播   指示接收的包是多播包
  重新计算CRC   如果报头已经被修改,则指示是否为该传输前的包重新计算CRC
  置换源MAC   指示是否为该传输前的包(用于L3被路由的包)置换源MAC地址
  VLAN tag out比特   指示必需发送VLAN标记包的出口端口
  目的地端口位映射   指示必需发送的包的端口
  包长度   存储的包的长度,包括报头、数据和CRC。但不包括包说明符长度
交换响应中的信息用来指示处理阶段5之后的接收的包的转发引擎(在别处描述)如何处理该包。
根据本发明示范实施例,通过使多个已提取的包字段服从分类规则,阶段4把包分类成包流。分类规则可以被实施为测试值和关联的测试掩码。
回忆阶段2从接收的包的报头中提取多个字段值,并且为不同帧格式类型114提取不同字段值。根据本发明示范实施例的示范实施,包分类规则匹配不同包帧格式类型的不同字段/字段值。分类规则表144中详细说明了分类规则,规则表的字段可以有依赖于关联每个规则的Mtype126的不同含义。例如,如果Mtype=1对应于以太网-II/IP/TCP包,并且Mtype=2对应于以太网-II IP/ICMP包;那么可以根据以下字段执行Mtype=1的包分类:Mtype=1,源端口ID(112),源MAC ADDR,目的地MAC ADDR,源IP ADDR,目的地IP ADDR,TCP源端口,TCp目的端口;可以根据以下字段执行Mtype=2的包分类:Mtype=2,源端口ID(112),源MAC ADDR,目的地MAC ADDR,源IP ADDR,目的地IPADDR,ICMP码,ICMP类型。根据本发明示范实施例的示范实施,尽管分类规则表项字段可以有不同含义,例如,TCP源端口对ICMP码,但是不会造成混乱,因为对照分类规则的测试受限于相应的Mtype值。
以下是分类规则表表项146的格式的示范:
  匹配字段   说明
  Mtype   (参见某些预定义匹配类型的附表)
  出口端口   出口端口:物理端口或中继端口
  目的地MAC索引   L2搜索引擎132映射/MAC表项号
  源MAC索引   L2搜索引擎132映射/MAC表项号
  VLAN ID   VLAN ID
  以太网类型/DSAP+SSAP   以太网-II和SNAP包的以太网类型,或LLC包的DSAP/SSAP
  源-IPv4   L3搜索引擎134映射:精确匹配或范围匹配
  目的地IPv4   L3搜索引擎134映射:精确匹配或范围匹配
  协议ID   IP协议字段
  源-L4   源UDP/TCP端口
  目的地-L4   目的地UDP/TCP端口
  TCP-标记/用户Def   TCP标记或用户定义字段
  量级   如果多个规则匹配,则选择具有最高量级的规则
在操作中,通过将已提取字段值与服从相应测试掩码的分类规则中指定的预期测试值进行比较,包分类器142对照分类规则测试与关联包的Mtype126相关联的分类规则中指定的已提取包头字段值的至少一个子集。根据本发明的示范实施例的示范实施,当发现分类规则匹配时,分类规则表144中的分类规则表项146被用作包流ID。
根据本发明示范实施例,量级与每个分类规则相关联。当多个规则被匹配时,与包分类器142相关联的流ID选择器148根据具有最高量级的分类规则对接收的包分类。如果具有相同量级的多个表项146是匹配的,则在确定主题包的流ID中选择具有最高分类规则表索引的最高表项。
根据本发明示范实施例,就可能的程度而言,早在得到包的交换响应140的阶段2,就将初步动作128与接收的包相关联。例如,初步动作128可以基于阶段2的入口端口,然后在阶段3根据L2搜索引擎132从L2交换数据库导出的交换信息以及根据L3搜索引擎从L3交换数据库导出的交换信息,修改初步动作。
L3路由功能是经由L3搜索引擎134提供的。然而,在包分类器142中,经由IP范围匹配提供给予L3路由选择的灵活性。所以,包分类器142扩展了IP范围匹配的能力。
根据本发明示范实施例的示范实施,在L3路由IP范围匹配中利用Mtype说明126,以便根据匹配字段的不同含义辨别规则。解决该情况的一种方式是为每个新Mtype分配Mtype+4。这是当L3搜索引擎134不能在其L3交换数据库中发现路由并且决定利用包分类器142执行L3搜索功能时,L3搜索引擎134把4加到Mtype值,并且将其与目的地IP ADDR一起提供给包分类器142。根据示范实施例,包分类器142可以利用全目的地IP ADDR匹配基于替代使用IP索引的新Mtype的规则。
根据本发明示范实施例,在流水线100的阶段5执行动作128。关于接收的包的所有动作128可以被分类成:默认端口动作,帧型动作,L2/L3动作,分配给接收的包处理流水线100的不同阶段上接收的包的流动作。交换响应还可以与接收的包相关联。执行动作128服从图5的500所示的优先规则。
流动作被给予最高优先。如果包分类器142成功分类阶段4上接收的包,则流ID被归于包(502)。流ID被用来在动作表154中查找流动作。一旦从动作表154中检索到适当流动作和相应的流动作参数,则对包和/或包头执行504流动作。
如果流动作与接收的包已经相关联,则给予帧型动作优先地位,如果有效帧型动作128已与阶段2上接收的包相关联,则从提取表124的记录122中导出上述内容。与接收的包关联的帧型动作在步骤512中确定。帧型动作128包括在步骤514把接收的包转发到CPU,并且在步骤516丢弃接收的包。
如果“00”的帧型动作码与接收的包相关联,则把优先地位给予基于包被接收的源端口(根据SPortID 112)的默认端口动作。在步骤522中确定的与接收的包相关联的有效端口动作码包括在步骤524把接收的包转发到CPU,并在步骤526丢弃接收包。根据实施,默认端口动作可以被归于接收的包,或者可以在至少一个默认端口动作寄存器中根据每个端口来指定。
如果“00”的默认端口动作码与接收的包相关联,则在步骤532根据L2/L3搜索结果动作128处理包。
图6显示了流水线100的阶段5的示范性结构的细节。在查找动作表154以确定将对包执行的动作中,利用对应于包的流ID 150和初步动作128。初步交换响应140也许包括提供给交换响应修改器156的目的地端口ID说明152。交换响应修改器156根据从动作表154指定的信息中导出的指令进行操作,以把最后交换响应140提供给帧引擎162。包头102被提供给包头修改器。包头修改器158根据从动作表154指定的信息中导出的信息修改包头102。一旦修改包头102,包重新装配模块164就定制经由输出端口发送的新包,新包包括包净荷以及已修改的包头102。
流动作表154的每个表项包括以下示范信息:
-指定将对包/包头执行什么动作的动作码;
-用来启动包头VLAN ID置换的置换VLAN ID ENABLE说明;
-当VLAN ID置换被启用时使用的VLAN ID说明;
-具有基于动作码的多个含义的转发INDX/DEST BIT MAP字段:
i.目的地端口比特映射指示,
ii.当动作包括再映射IP和MAC报头时,表示到IP和MAC信息的转发索引,
iii.当动作包括心跳方向时的心跳字段指示,
-允许XP再映射说明指定传输优先权和丢弃优先权置换,
-XP字段指定新的传输优先权;
-DP字段指定新的丢弃优先权;
-Snoop_Enable指定转发到窥探端口的包;
-Snoop_Port_ID指定窥探端口;
-Remap_TOS/DSCP_Enable说明符指定IP报头中的TOS/DSCP字段置换;
-TOS/DSCP字段指定待置换的TOS/DSCP值;
-802.1p Remap_Enable说明符指定包头中的802.1p(VLAN优先权)字段置换;
-802.1p字段指定在置换802.1p字段值中待使用的VLAN优先权值;
-Merering_Enable说明符用来启用用于流的测量功能;
-Counting_Enable说明符用来启用用于流的计数功能;和
-Metering/Counter_Index说明符指示测量计或计数器ID。
以下是六个专用流动作的示范细节:
L2/L3转发(动作码000)把目的地位映射作为参数,并改写流水线100的阶段3上提供的初步交换响应140中指定的目的地端口位映射。以与根据L2/L3搜索结果修改包的相同方式(如下所述)修改包头。
到CPU端口的转发(动作码001)改变目的地位映射,以指定包转发到CPU端口。
过滤包(动作码010)可以把更新过滤计数器的指令视为参数,该过滤计数器实施丢弃包的计数。修改初步交换响应140,以设置过滤比特开启(on)。包被丢弃。
心跳检测(动作码011):如果收到心跳包,则把对话ID、类型和模式发送给待处理的故障转移(失败转移)模块(故障转移模块的操作在别处说明)。修改初步交换响应140,以设置故障转移包比特开启(on),它指示包是心跳包。其它修改包括置换目的地端口映射说明,以及包被转发到用于其它处理的故障转移模块(未示出)。
流动作MAC ADDR再映射,IP ADDR再映射以及L3再映射共享图6所示的同一数据库,该数据库被实施为ADDR再映射表166,但是该数据库在下文中被分别称为MAC ADDR再映射数据库166,IP ADDR再映射数据库166,和L3再映射数据库166。ADDR再映射表166中的表项包括目的地IP ADDR说明,目的地位映射,VLAN“tagout”位映射说明(参见上述的T端口矢量),VLAN ID说明,以及目的地MAC ADDR。
MAC ADDR再映射(动作码100)把指向故障转移数据流(参见下文)的索引视为参数,并且定义故障转移的三个FLOV比特启用MAC和IP再映射。FLOVF-E,故障转移功能启用比特由CPU设置以开启失败功能。当故障转移模块检测到对话失败时,设置FLOVE-H,硬件启用比特(如别处所述)。当CPU检测到对话失败时,CPU设置FLOVE-S,软件启用比特。故障转移/再映射ON是指,FLOV-E=1和(FLOVE-H或FLOVE-S)=1,如果故障转移/再映射为OFF,则不修改初步交换响应140。然而如果故障转移/再映射为ON,则索引用来执行MAC再映射数据库166中的查找,以检索信息,比如:置换目的地位映射,置换VLAN ID和VLAN优先权以及置换出局VLAN标记位映射,构成再映射表。对初步交换响应140的修改包括:置换目的地位映射,置换VLAN ID,置换VLAN优先权,置换VLAN“togout”位映射(参见上述的T端口矢量),并且重新计算CRC。对包头的修改包括置换目的地MAC ADDR。
至于故障转移模块170提供的故障转移功能,如果入局包与需要地址再映射的流ID 150相关联,以及如果已经检测并记录用于流ID 150的失败,与如果没有失败相比较,则包将被不同地转发,包括把包转发到不同目的地地址。FLOV比特用来标识是否已经存在失败。如果没有,则正常转发。一旦失败,流动作表154的相应行中存储的索引被用作指针,以指向含有待使用的替代转发信息的再映射表166的一行。
IP ADDR再映射(动作码101)把故障转移数据流和上述的三个失败比特视为参数。如果故障转移/再映射是ON,则索引用来执行IP再映射数据库166中的查找,以检索信息如:目的地位映射,下一跳目的地MAC ADDR,VLAN ID/TAG,出局VLAN标记位映射,以及目的地IP地址,该信息用于修改初步交换响应140和包头102。根据包类型,存在4种修改包头102和初步交换响应140的不同方案,下表概述了这些方案:
  方案   包头字段修改   初步交换响应修改
  如果包是IP桥接包(不   置换目的地MAC ADDR   置换目的地位映射
  是被路由的包)并且不是UDP或TCP包(置换目的地IP ADDR)   置换目的地IP ADDR置换IP校验和   置换VLAN ID置换VLAN“tagout”比特设置/重新计算CRC
  如果包是IP桥接包,并且是UDP或TCP包(置换目的地IP ADDR和重新计算TCP/UDP校验和)   置换目的地MAC ADDR置换目的地IP ADDR重新计算IP校验和重新计算UDP/TCP校验和   置换目的地位映射置换VLAN ID置换VLAN“tagout”比特设置/重新计算CRC
  如果包是IP被路由的包并且不是UDP或TCP包(执行路由功能并置换目的地IP ADDR)   置换目的地MAC ADDR将TTL递减1置换目的地IP ADDR重新计算IP校验和   置换目的地位映射置换VLAN ID置换VLAN“tagout”比特设置/置换CRC置换源MAC ADDR
  如果包是IP被路由的UDP或TCP包(执行路由功能,置换目的地IP ADDR和重新计算TCP/UDP校验和)   置换目的地MAC ADDR将TTL递减1置换目的地IP校验和重新计算IP校验和重新计算UDP/TCP校验和   置换目的地位映射置换VLAN ID置换VLAN“tagout”比特设置/重新计算CRC比特置换源MAC ADDR
其中IP被路由的包涉及服从L3路由器的包。通常,L3路由,流动作表154中指定的索引可以被用来指向提供L3路由中的路由表的表项。
L3路由(动作码110)把路由表项视为参数。索引用来从再映射表166中提取目的地位映射、目的地MAC ADDR、下一跳目的地MAC ADDR以及VLAN信息。修改初步交换响应140包括:置换目的地位映射,置换VLAN ID,置换VLAN优先权,置换VLAN“tagout”位映射,以及重新计算CRC。修改包头包括:用下一跳MAC ADDR置换目的地MAC ADDR,将TTL递减1,更新IP校验和。
以下动作可以彼此共存,并且可以与上述流动作共存。
XP和丢弃优先权(DP)置换:CPU为每个流重新定义XP和DP。如果XP_置换被设置为1,则修改初步交换响应140以置换XP和DP值。
窥探:修改初步交换响应140,增加窥探端口以作为一个输出端口,即通过开启对应于目的地位映射中窥探端口的比特,转发包的一个输出端口。窥探还确保在转发包中设置多播比特。
TOS/COS重新映射:基于已提供的TOS/DSCP值,通过置换TOS/DSCP值修改包头102。CRC和IP校验和必需被重新计算,因为包头102被修改。
802.1p重新映射:如果用新的VLAN标记修改初步交换响应140,则重新映射802.1p字段。CRC也必需被重新计算。
802.1Q VLAN ID置换:用802.1Q VLAN ID值置换初步交换响应的802.1Q VLAN ID。CRC也必须被重新计算。
参见图7,可以独立地激活和去激活速率测量和包计数。
速率测量:测量索引被提供给测量模块168。测量模块168根据测量索引追踪业务流。如果业务流超过指定的峰速率,则测量模块168报告红色状态。如果业务流低于指定的平均速度,则测量模块168报告绿色状态。在其它方面,报告状态是黄色的。初步交换响应140是根据测量模块168报告的颜色说明修改的。如果颜色是红的(“10”),则过滤比特被设置,这有效地掩码待丢弃的包。如果颜色是黄色(“01”),则设置丢弃优先,导致根据优先规则丢弃包。如果颜色是绿色(“00”),则不作出对初步交换响应的相应修改。
计数:为测量模块168设置测量索引还可以启用计数。如果流状态不是红色的,则递增对应于已发送的包和已发送字节数量的计数器。如果流状态是红色的,则递增丢弃计数器。
流测量和计数单元168的详细功能包括:
根据本发明示范实施例的示范实施,是IETF标准的两速率三颜色标志方案(trTCM)用来测量基于每个流的业务。根据本发明示范实施例,分别根据流峰值速率(PIR)、最大峰值脉冲串大小、保证信息速率(CIR)(平均速率)和最大平均脉冲串大小,使用两个漏桶实施该方案。
对于需要流测量的每个包,流测量模块168使用测量索引更新相应的流漏桶计数器。测量模块返回以下的流的绿色、黄色和红色状态:
红色:如果业务流超过PIR,
黄色:如果业务流超过CIR但是与PIR一致,
绿色:如果业务流与CIR一致。
测量索引已索引的表的表项中持有每个流计算器,每个表项具有:接收的包计数器,接收的字节计数器,发送的或红色包计数器,发送的或红色计数器,包丢弃计数器。“发送的”计数器用于计数基于L3动作处理的L3交换包,而“红色”计数器用于根据已确定的流ID 150处理的已分类的包。
如上所述,可以根据对应于L3搜索结果的动作处理与流ID 150相关联的包。在此情况下,L3搜索引擎向流测量和计数模块158提供源计数器索引和目的地计数器索引。测量和计数模块158使用源索引更新相应的接收计数器,同时使用目的地索引更新发送计数器。如果过滤比特和交换响应150被设置,则更新丢弃计数器,而不是更新发送计数器。
回忆L3搜索引擎134未发现L3交换数据中的源IP地址,因此将不能够提供源计数器IDX。根据本发明示范实施例,对于这样的包,源端口被用作更新L3默认源端口计数器的索引。
当包被分类成包流时,执行流计数器更新,流动作还需要通过设置计数器比特的计数器更新。测量和计数器模块168使用流计数器索引更新相关联的RX计数器。
测量和计数器模块168还保持对入口速率测量的红色(丢弃)包数量的跟踪。如果颜色是红色,则测量和计数模块168还更新包丢弃计数器(与上述的实现空间效率的发送计数器共享相同字段)。
回忆流动作码000类似于用于被路由的包的L3动作。以下处理需要作用于这种包。包头102需要被修改成:用下一跳路由器的MAC地址置换目的地MAC ADDR,它是L3搜索引擎136导出的目的地MAC ADDR,如果包分类器142将该包与流ID 150相关联,则可以用从MAC ADDR再映射表166导出的目的地MAC ADDR进行改写。TTL被递减1,IP_CHKSUM被更新。修改初步交换响应150包括设置L2 CRC重新计算标记并改写VLAN ID说明。请注意,由L3搜索引擎134执行以下L3动作:如果TTL>1,则丢弃包,并且把置换源MAC ADDR比特设置在初步交换响应140。
根据本发明示范实施例,提供了一种灵活报头分析方案,其中三个报头分析引擎被并行使用以根据全线速入局包的检查被指定的包头位组合,确定各种帧型。利用三个报头分析引擎提供了以下灵活性:硬件引擎提供用于标准已知帧型的快速帧型标识,判决树分析引擎,以及可配置模板匹配引擎。
根据本发明示范实施例,在确保最小和快速预处理的帧型确定之后,从包头中提取包头字段值。利用了一个用户可配置的字段提取器,由此可以对于每个帧型指定至少一个字段的偏移。对于某些包类型,在流水线的早期阶段可以确定包处理动作。
根据本发明示范实施例,通过把层2源和目的地MAC地址以及层3源和目的地IP地址映射成搜索地址表中使用的内部索引,降低了实施成本。组合式L2和L3搜索引擎利用基于散列的搜索方案,来把已提取的网络寻址字段值映射成具有短比特长度的索引。
根据本发明示范实施例,动作归于已分类的包,这些动作包括但不限于:虚拟局域网ID标识符(VLAN ID)插入,VLAN重新映射,服务类型(TOS)重新映射,服务质量(QoS)实施,过滤,转发以及报头修改。
应当理解,数据库、表、列表、表项、字段和寄存器的每一个的大小安排已经关联存储器存储空间需求。数据库、表、列表、表项、字段和寄存器的大小交由设计选择处理,这涉及选择考虑了与提供所需存储空间相关联的成本。
上述实施例仅仅是示范,本领域熟练技术人员将会明白,在不背离本发明精神条件下,可以对上述实施例作出各种变化。本发明的范围仅由所附权利要求定义。

Claims (21)

1、一种具有流水线式包处理基础结构的分组交换节点,用于处理经由多个分组交换节点源端口接收的包,所述分组交换节点包括:
a.一个包头字段值提取器,用于根据接收包的源端口和预先确定的包帧型之一,从由每个包传送的多个包头字段值中选择地提取包头字段值;
b.将匹配类型归于包的装置,用匹配类型根据已提取的包头字段值预分类包,而不考虑包帧格式;
c.搜索装置,用于根据已提取的包头字段值、匹配类型及制订包的初步交换响应的源端口之一,搜索分组交换节点追踪的分组交换信息、分组路由信息和协议虚拟局域连网信息之一;
d.包分类器,用于根据源端口标识符、初步交换响应、已提取的包头字段值和匹配类型之一,将包分类成多个包处理流之一;
e.根据初步动作、包被分类成的包流、以及对应于输入端口的默认端口动作之一修改初步交换响应的交换响应修改器;
f.根据交换响应处理包的装置。
2、根据权利要求1所述的分组交换节点,还包括用于确定每个接收的包的包帧型的装置,所述帧型根据包帧的格式预分类所述包。
3、根据权利要求2所述的分组交换节点,其中所述用于确定包帧型的装置包括以下至少一个:
a.硬件帧型标识引擎,具有用于检查包头比特值的硬件逻辑和用于辨别标准化包头位组合的硬件逻辑;
b.连续帧型消除引擎,具有用于有条件地使包头字段值依次服从多个规则的硬件逻辑;
c.模板匹配帧型标识引擎,包括用于比较包头范围的多个包头模板。
4、根据权利要求3所述的分组交换节点,其中所述连续帧型消除引擎包括以下至少一个:
a.每个源端口的判决树分析引擎;和
b.每个源端口的判决表,每个判决表具有多个判决表记录,每个判决树记录指定帧型标识位组合的包头偏移、帧型标识测试位组合、和指定后续判决表记录的判决表行索引的跳跃指令及帧型标识符之一。
5、根据权利要求3所述的分组交换节点,还包括帧型选择器,用于当硬件帧型标识引擎、连续帧型消除引擎以及模板匹配帧型标识引擎中的至少两个引擎标识不同帧型时,选择帧型。
6、根据权利要求1所述的分组交换节点,其中所述包头字段值提取器还包括具有多个帧型被索引的提取表记录的提取查找表,每个记录指定包头字段偏移。
7、根据权利要求6所述的分组交换节点,其中用于将匹配类型归于包的装置包括用于每个提取表记录的匹配类型说明符。
8、根据权利要求7所述的分组交换节点,其中所述包头字段值提取器还包括将初步动作归于将相对所述包执行的装置,每个提取表记录还包括初步动作说明符。
9、根据权利要求1所述的分组交换节点,其中所述包头字段值提取器还包括将初步动作归于将相对所述包执行的装置。
10、根据权利要求1所述的分组交换节点,其中用于搜索分组交换信息、分组路由信息和协议虚拟局域连网信息之一的装置包括:
a.与交换信息数据库相互配合的层2搜索引擎;
b.与路由信息数据库相互配合的层3搜索引擎;
c.与虚拟局域连网表相互配合的虚拟局域连网搜索引擎。
11、根据权利要求1所述的分组交换节点,其中所述包分类器还包括具有分类规则表项的分类规则表,每个分类规则表项具有匹配类型特定格式,每个分类规则表项指定处理流标识符,以在表项中指定的条件满足的情况下有条件地与包关联,每个分类规则表项可选择的指定一个指定规则表项优先的规则量级。
12、根据权利要求1所述的分组交换节点,还包括:
a.根据源端口、帧型和处理流分类之一确定将采取的动作的装置;和
b.根据动作选择地修改包头的包头修改器。
13、一种处理经由多个分组交换节点源端口接收的包的方法,所述分组交换节点具有流水线式包处理基础结构,所述方法包括:
a.根据接收包的源端口和预先确定的包帧型之一,从由每个包传送的多个包头字段值中选择地提取包头字段值;
b.根据被提取的包头字段值,而不考虑包帧的格式,来预分类包,并且把匹配类型归于该包;
c.根据被提取的包头字段值、匹配类型、制订包的初步交换响应的源端口之一,搜索分组交换节点追踪的分组交换信息、分组路由信息和协议虚拟局域连网信息之一;
d.根据源端口标识符、初步交换响应、已提取的包头字段值和匹配类型之一,将包分类成多个包处理流之一;
e.根据初步动作、包被分类成的包流、以及对应于输入端口的默认端口动作之一修改初步交换响应;
f.根据交换响应处理包。
14、根据权利要求13所述的方法,还包括根据包帧的格式预分类每个已接收的包并把帧型归于包的在步骤a之前的在前步骤。
15、根据权利要求14所述的方法,还包括由下列至少一个步骤确定包帧型:
g.检查包头比特值并辨别标准化包头位组合;
h.有条件地使包头字段值依次服从多个规则;并
i.将包头范围与包头模板进行比较。
16、根据权利要求15所述的方法,其中有条件地使包头字段值依次服从多个规则,所述方法还包括:
j.使基于判决表中存储的多个判决表记录中的判决表记录中指定的包头偏移从包头提取的包头字段值,服从判决表记录中指定的帧型标识测试位组合;
k.如果未达到最后的帧型确定,则从多个判决表记录中有选择地选择后续判决表记录,否则归于判决表记录中指定的帧型标识符。
17、根据权利要求15所述的方法,还包括:当检查包头比特值和辨别标准化包头位组合、有条件地使包头字段值依次服从多个规则、以及将包头范围与包头模板比较中的至少两个产生不同帧型时,选择帧型。
18、根据权利要求13所述的方法,其中在从每个包传送的包头字段值中有选择地提取包头字段值之后,该方法还包括将关于包的待执行的初步动作归于该包执行。
19、根据权利要求13所述的方法,其中搜索分组交换节点追踪的分组交换信息、分组路由信息和协议虚拟局域连网信息之一,所述方法依次包括:
g.查询交换信息数据库;
h.查询路由信息数据库;和
i.查询虚拟域连网表。
20、根据权利要求13所述的方法,其中把包分类成多个包处理流之一,所述方法还包括根据多个分类规则表项之一中指定的条件,把处理流标识符有条件地归于所述包。
21、根据权利要求13所述的方法,还包括:
g.在步骤e之前根据源端口、帧型和处理流分类之一确定将采取的动作;和
h.在步骤f之前根据动作选择地修改包头。
CNB2005100807261A 2004-06-30 2005-06-30 交换环境用的组合流水线式包分类和地址搜索方法及设备 Expired - Fee Related CN100555986C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/881,226 US7760719B2 (en) 2004-06-30 2004-06-30 Combined pipelined classification and address search method and apparatus for switching environments
US10/881,226 2004-06-30

Publications (2)

Publication Number Publication Date
CN1716911A CN1716911A (zh) 2006-01-04
CN100555986C true CN100555986C (zh) 2009-10-28

Family

ID=35511636

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB2005100807261A Expired - Fee Related CN100555986C (zh) 2004-06-30 2005-06-30 交换环境用的组合流水线式包分类和地址搜索方法及设备
CN200510080731.2A Expired - Fee Related CN1716912B (zh) 2004-06-30 2005-06-30 提供分组交换通信网络中快速端到端失效转移的方法与设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN200510080731.2A Expired - Fee Related CN1716912B (zh) 2004-06-30 2005-06-30 提供分组交换通信网络中快速端到端失效转移的方法与设备

Country Status (6)

Country Link
US (1) US7760719B2 (zh)
JP (1) JP2006020317A (zh)
KR (1) KR100697568B1 (zh)
CN (2) CN100555986C (zh)
DE (1) DE102005029396B4 (zh)
FR (1) FR2874296B1 (zh)

Families Citing this family (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7724740B1 (en) * 2002-08-27 2010-05-25 3Com Corporation Computer system and network interface supporting class of service queues
US7921323B2 (en) * 2004-05-11 2011-04-05 L-3 Communications Integrated Systems, L.P. Reconfigurable communications infrastructure for ASIC networks
US7444454B2 (en) * 2004-05-11 2008-10-28 L-3 Communications Integrated Systems L.P. Systems and methods for interconnection of multiple FPGA devices
US7492763B1 (en) * 2004-07-16 2009-02-17 Applied Micro Circuits Corporation User-specified key creation from attributes independent of encapsulation type
US7720031B1 (en) * 2004-10-15 2010-05-18 Cisco Technology, Inc. Methods and devices to support mobility of a client across VLANs and subnets, while preserving the client's assigned IP address
US8000324B2 (en) * 2004-11-30 2011-08-16 Broadcom Corporation Pipeline architecture of a network device
US8065712B1 (en) 2005-02-16 2011-11-22 Cisco Technology, Inc. Methods and devices for qualifying a client machine to access a network
US7606231B2 (en) 2005-02-18 2009-10-20 Broadcom Corporation Pipeline architecture for a network device
US7941150B2 (en) 2005-05-19 2011-05-10 Nortel Networks Limited Method and system for allocating media access control layer resources in a wireless communication environment
US7843927B1 (en) * 2006-12-22 2010-11-30 Extreme Networks, Inc. Methods, systems, and computer program products for routing packets at a multi-mode layer 3 packet forwarding device
JP4583312B2 (ja) * 2006-01-30 2010-11-17 富士通株式会社 通信状況判定方法、通信状況判定システム及び判定装置
CN101421751A (zh) * 2006-02-21 2009-04-29 克瑞利斯有限责任公司 用于在通信网络中进行交易监控的方法和系统
US7809009B2 (en) * 2006-02-21 2010-10-05 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US7825777B1 (en) 2006-03-08 2010-11-02 Integrated Device Technology, Inc. Packet processors having comparators therein that determine non-strict inequalities between applied operands
US7298636B1 (en) 2006-03-08 2007-11-20 Integrated Device Technology, Inc. Packet processors having multi-functional range match cells therein
US7668107B2 (en) * 2006-03-22 2010-02-23 Marvell Israel (M.I.S.L.) Ltd. Hardware implementation of network testing and performance monitoring in a network device
KR100776115B1 (ko) 2006-03-22 2007-11-15 기장근 부정 및 시작 플래그를 가지는 터너리 컨텐트 어드레스어블 메모리
JP4776412B2 (ja) 2006-03-23 2011-09-21 エヌ・ティ・ティ・コミュニケーションズ株式会社 パケット転送装置、パケット転送方法、及びプログラム
US7733907B2 (en) 2006-04-07 2010-06-08 Microsoft Corporation Combined header processing for network packets
US8379644B1 (en) * 2006-06-30 2013-02-19 Marvell International Ltd. System and method of processing management frames
GB2443005A (en) * 2006-07-19 2008-04-23 Chronicle Solutions Analysing network traffic by decoding a wide variety of protocols (or object types) of each packet
US7852843B2 (en) * 2006-07-21 2010-12-14 Cortina Systems, Inc. Apparatus and method for layer-2 to layer-7 search engine for high speed network application
US7808995B2 (en) * 2006-11-16 2010-10-05 L-3 Communications Integrated Systems L.P. Methods and systems for relaying data packets
JP5080589B2 (ja) * 2006-12-06 2012-11-21 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 拡張vlanクラシフィケーション
US20100085891A1 (en) * 2006-12-19 2010-04-08 Andreas Kind Apparatus and method for analysing a network
US7796594B2 (en) * 2007-02-14 2010-09-14 Marvell Semiconductor, Inc. Logical bridging system and method
CN100531097C (zh) * 2007-02-16 2009-08-19 华为技术有限公司 一种桥接的方法及装置
WO2008123496A1 (ja) * 2007-03-30 2008-10-16 Sony Corporation 情報処理装置および方法
US7920560B2 (en) * 2007-06-12 2011-04-05 Hewlett-Packard Development Company, L.P. Method for detecting topology of computer systems
US7773595B2 (en) * 2007-09-14 2010-08-10 Agate Logic, Inc. System and method for parsing frames
US8391293B2 (en) * 2008-01-31 2013-03-05 Cisco Technology, Inc. Transporting X.25-over-ISDN through IP, using CUGS/protocol translation
US8279867B2 (en) * 2008-03-02 2012-10-02 Jeffrey Alan Carley Method and apparatus for reducing flood traffic in switches
US8335780B2 (en) * 2008-03-11 2012-12-18 James Madison Kelley Scalable high speed relational processor for databases and networks
JP2009239401A (ja) * 2008-03-26 2009-10-15 Alaxala Networks Corp パケット転送装置
CN101577662B (zh) 2008-05-05 2012-04-04 华为技术有限公司 一种基于树形数据结构的最长前缀匹配方法和装置
US8102865B2 (en) * 2008-05-16 2012-01-24 Microsoft Corporation Group based allocation of network bandwidth
JP5161683B2 (ja) * 2008-07-22 2013-03-13 キヤノン株式会社 情報処理装置、その制御方法、及びコンピュータプログラム
JP5161682B2 (ja) * 2008-07-22 2013-03-13 キヤノン株式会社 映像処理装置、その制御方法、コンピュータプログラム、及び映像処理システム
US8290934B2 (en) * 2008-08-06 2012-10-16 Fujitsu Limited Method and system for processing access control lists using a hashing scheme
CN101656659B (zh) * 2008-08-19 2012-05-23 中兴通讯股份有限公司 一种混合业务流的缓存处理方法、存储转发方法及装置
JP5407712B2 (ja) * 2009-09-30 2014-02-05 富士通株式会社 通信装置および通信制御方法
US8571031B2 (en) * 2009-10-07 2013-10-29 Intel Corporation Configurable frame processing pipeline in a packet switch
EP3447979B8 (en) * 2009-11-02 2020-08-05 Marvell Asia Pte, Ltd. Switching system and method based on virtual interfaces
NO332162B1 (no) * 2009-12-21 2012-07-09 Cisco Systems Int Sarl Anordning og fremgangsmate for a filtrere mediapakker
US8368423B2 (en) * 2009-12-23 2013-02-05 L-3 Communications Integrated Systems, L.P. Heterogeneous computer architecture based on partial reconfiguration
US8397054B2 (en) * 2009-12-23 2013-03-12 L-3 Communications Integrated Systems L.P. Multi-phased computational reconfiguration
US8331373B2 (en) 2010-03-15 2012-12-11 Extreme Networks, Inc. Methods, systems, and computer readable media for automatically selecting between internet protocol switching modes on a per-module basis in a packet forwarding device
US8788543B2 (en) * 2010-05-13 2014-07-22 International Business Machines Corporation Scalable, concurrent resizing of hash tables
FR2960371B1 (fr) * 2010-05-20 2012-06-22 Thales Sa Procede et dispositif d'analyse de donnees interceptees sur un reseau ip pour la surveillance de l'activite des utilisateurs d'un site web
US8964742B1 (en) 2010-07-28 2015-02-24 Marvell Israel (M.I.S.L) Ltd. Linked list profiling and updating
CN102377581A (zh) * 2010-08-09 2012-03-14 高通创锐讯通讯科技(上海)有限公司 一种多域流分类流水线的实现方法
EP2630774A1 (en) 2010-10-22 2013-08-28 Telefonaktiebolaget L M Ericsson (PUBL) Differentiated handling of network traffic using network address translation
US8312066B2 (en) * 2010-11-30 2012-11-13 Telefonaktiebolaget L M Ericsson (Publ) Hash collision resolution with key compression in a MAC forwarding data structure
US9118576B2 (en) 2011-01-06 2015-08-25 Marvell Israel (M.I.S.L) Ltd. Network device with a programmable core
CA2825393C (en) 2011-01-28 2019-03-12 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
US9161080B2 (en) * 2011-01-28 2015-10-13 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
KR101760333B1 (ko) * 2011-03-02 2017-07-21 삼성전자주식회사 다중 사용자 다중 안테나 전송에서 그룹 아이디 관리를 위한 타겟 단말 및 액세스 포인트의 통신 방법
US9001828B2 (en) 2011-03-21 2015-04-07 Marvell World Trade Ltd. Method and apparatus for pre-classifying packets
CN102769884A (zh) * 2011-05-03 2012-11-07 中国移动通信集团公司 基于udp的永远在线业务传输心跳数据包的方法及设备
US8935389B2 (en) * 2011-05-17 2015-01-13 Guavus, Inc. Method and system for collecting and managing network data
US9716592B1 (en) * 2011-06-10 2017-07-25 Google Inc. Traffic distribution over multiple paths in a network while maintaining flow affinity
US8472452B2 (en) * 2011-08-02 2013-06-25 Cavium, Inc. Lookup cluster complex
US9729431B1 (en) 2011-08-16 2017-08-08 Marvell International Ltd. Using standard fields to carry meta-information
US9183102B2 (en) * 2011-09-30 2015-11-10 Alcatel Lucent Hardware consumption architecture
US8724455B2 (en) * 2012-01-20 2014-05-13 International Business Machines Corporation Distributed control of a fail-to-wire switch for a network communication link
US9203780B2 (en) * 2012-01-27 2015-12-01 Microsoft Technology Licensing, Llc Techniques to distribute messages using communication pipelines
US9154413B2 (en) * 2012-06-21 2015-10-06 Breakingpoint Systems, Inc. High-speed CLD-based pipeline architecture
US8942258B2 (en) * 2012-09-14 2015-01-27 International Business Machines Corporation Segmentation and reassembly of network packets for switched fabric networks
US8923299B2 (en) * 2012-09-14 2014-12-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Segmentation and reassembly of network packets
CN104125093B (zh) * 2013-04-29 2018-07-10 阿瓦亚公司 分布式网络中的通信故障转移
CN104219160B (zh) * 2013-05-31 2018-08-14 华为技术有限公司 生成输入参数的方法及设备
US20140369363A1 (en) * 2013-06-18 2014-12-18 Xpliant, Inc. Apparatus and Method for Uniquely Enumerating Paths in a Parse Tree
US9363178B2 (en) * 2013-12-18 2016-06-07 Telefonaktiebolaget L M Ericsson (Publ) Method, apparatus, and system for supporting flexible lookup keys in software-defined networks
US9544402B2 (en) * 2013-12-31 2017-01-10 Cavium, Inc. Multi-rule approach to encoding a group of rules
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
US9667446B2 (en) 2014-01-08 2017-05-30 Cavium, Inc. Condition code approach for comparing rule and packet data that are provided in portions
US9825913B2 (en) * 2014-06-04 2017-11-21 Nicira, Inc. Use of stateless marking to speed up stateful firewall rule processing
US9516145B2 (en) * 2014-06-19 2016-12-06 Cavium, Inc. Method of extracting data from packets and an apparatus thereof
CN104135434B (zh) * 2014-08-04 2017-09-22 新华三技术有限公司 以太网虚拟化互联网络中的路径切换方法和装置
WO2016049802A1 (en) * 2014-09-29 2016-04-07 Hewlett-Packard Development Company, L.P. Adaptive split and compression
US9838337B1 (en) * 2014-09-30 2017-12-05 Juniper Networks, Inc. Automatic virtual local area network (VLAN) provisioning in data center switches
US9961170B2 (en) * 2014-11-25 2018-05-01 Qualcomm Incorporated Ethertype packet discrimination data type
CN105791145B (zh) * 2014-12-18 2019-10-25 南京中兴新软件有限责任公司 基于等价多路径ecmp的报文传输方法及装置
US10015048B2 (en) 2014-12-27 2018-07-03 Intel Corporation Programmable protocol parser for NIC classification and queue assignments
US9912615B2 (en) * 2015-02-05 2018-03-06 Verizon Patent And Licensing Inc. Dynamic removal of MAC table entries based on a MAC table fullness level
US10153972B2 (en) 2015-02-13 2018-12-11 Nxp Usa, Inc. Method and apparatus for coding a user defined constant into a key composition rule using variable length command
US9729680B2 (en) 2015-04-23 2017-08-08 Nxp Usa, Inc. Methods and systems to embed valid-field (VF) bits in classification keys for network packet frames
CN104917705A (zh) * 2015-06-18 2015-09-16 国家电网公司 一种智能变电站过程层交换机的网络报文管理方法
US9826071B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Configuring a switch for extracting packet header fields
US9825862B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Packet header field extraction
US9912774B2 (en) 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
US10911579B1 (en) * 2016-03-01 2021-02-02 Amazon Technologies, Inc. Generating programmatically defined fields of metadata for network packets
CN107181637B (zh) 2016-03-11 2021-01-29 华为技术有限公司 一种心跳信息发送方法、装置及心跳发送节点
TWI615007B (zh) * 2016-05-12 2018-02-11 遠傳電信股份有限公司 基於gtp-u協定的封包篩選切片系統及其使用方法
CN105857218A (zh) * 2016-06-14 2016-08-17 京东方科技集团股份有限公司 一种车载显示系统
JP2018011210A (ja) * 2016-07-14 2018-01-18 三菱電機株式会社 中継装置及び中継方法
US10194007B2 (en) * 2016-08-11 2019-01-29 Calix, Inc. Concurrent optical network terminal simulation
US10554494B1 (en) 2017-01-04 2020-02-04 Juniper Networks, Inc. Automatic ICCP provisioning and VLAN provisioning on an inter-chassis link in a MC-LAG
US10419366B1 (en) 2017-01-31 2019-09-17 Barefoot Networks, Inc. Mechanism for communicating to remote control plane from forwarding element
CN113206801A (zh) * 2017-03-13 2021-08-03 华为技术有限公司 处理分组的方法和网络设备
US10757028B1 (en) 2017-04-23 2020-08-25 Barefoot Networks, Inc. Configurable forwarding element deparser
US10826840B1 (en) 2017-07-23 2020-11-03 Barefoot Networks, Inc. Multiple copies of stateful tables
US10771387B1 (en) 2017-09-28 2020-09-08 Barefoot Networks, Inc. Multiple packet data container types for a processing pipeline
US11159440B2 (en) * 2017-11-22 2021-10-26 Marvell Israel (M.I.S.L) Ltd. Hybrid packet memory for buffering packets in network devices
US10785189B2 (en) * 2018-03-01 2020-09-22 Schweitzer Engineering Laboratories, Inc. Selective port mirroring and in-band transport of network communications for inspection
TWI685231B (zh) * 2019-04-23 2020-02-11 國立中央大學 封包分類方法
GB2588811B (en) * 2019-11-08 2022-07-06 Vodafone Ip Licensing Ltd Methods and systems for exchanging periodic data in a mobile telecommunications network
CN111277602B (zh) * 2020-01-23 2023-07-11 奇安信科技集团股份有限公司 网络数据包的识别处理方法、装置、电子设备及存储介质
US11829793B2 (en) 2020-09-28 2023-11-28 Vmware, Inc. Unified management of virtual machines and bare metal computers
JP2022107316A (ja) 2021-01-08 2022-07-21 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
WO2022269786A1 (ja) * 2021-06-23 2022-12-29 日本電信電話株式会社 通信データ識別装置およびその方法
US11757777B2 (en) * 2021-09-23 2023-09-12 Hewlett Packard Enterprise Development Lp Assigning security group tag for infrastructure traffic and preserving security group tag in snooped packets in dynamic segmentation
WO2023112174A1 (ja) * 2021-12-14 2023-06-22 日本電信電話株式会社 データ処理装置、データ処理方法、及び、プログラム
CN114710434B (zh) * 2022-03-11 2023-08-25 深圳市风云实业有限公司 一种基于OpenFlow交换机的多级流表构建方法
US11928062B2 (en) 2022-06-21 2024-03-12 VMware LLC Accelerating data message classification with smart NICs
US11899594B2 (en) 2022-06-21 2024-02-13 VMware LLC Maintenance of data message classification cache on smart NIC

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0273746A (ja) 1988-09-09 1990-03-13 Nec Corp パケツト伝送方式
JPH08163242A (ja) 1994-12-08 1996-06-21 Hitachi Ltd Lapd手順における異常検出方法
JP3406136B2 (ja) 1995-11-09 2003-05-12 株式会社日立コミュニケーションテクノロジー デジタル回線切替装置
JPH09198334A (ja) 1996-01-16 1997-07-31 Hitachi Inf Technol:Kk データ伝送システムの障害管理方法
US5748905A (en) * 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
US6229787B1 (en) * 1996-09-11 2001-05-08 Nortel Networks Limited Mechanism to achieve very fast failover in ATM backbone networks using multi-homed circuits
WO2000003256A1 (en) * 1998-07-08 2000-01-20 Broadcom Corporation Network switch utilizing packet based per head-of-line blocking prevention
US6370666B1 (en) * 1998-12-02 2002-04-09 Agere Systems Guardian Corp. Tuning scheme for error-corrected broadcast programs
US6594268B1 (en) 1999-03-11 2003-07-15 Lucent Technologies Inc. Adaptive routing system and method for QOS packet networks
US6697873B1 (en) * 1999-12-20 2004-02-24 Zarlink Semiconductor V.N., Inc. High speed MAC address search engine
JP4294821B2 (ja) 2000-01-26 2009-07-15 株式会社日立製作所 ネットワーク中継装置
JP2001251351A (ja) 2000-03-02 2001-09-14 Nec Corp パケット交換機における入力パケット処理方式
JP2001297016A (ja) 2000-04-12 2001-10-26 Nec Corp 命令実行システム
US7075926B2 (en) * 2000-05-24 2006-07-11 Alcatel Internetworking, Inc. (Pe) Programmable packet processor with flow resolution logic
US6763479B1 (en) 2000-06-02 2004-07-13 Sun Microsystems, Inc. High availability networking with alternate pathing failover
US7107359B1 (en) * 2000-10-30 2006-09-12 Intel Corporation Host-fabric adapter having hardware assist architecture and method of connecting a host system to a channel-based switched fabric in a data network
US7131125B2 (en) * 2000-12-22 2006-10-31 Nortel Networks Limited Method and system for sharing a computer resource between instruction threads of a multi-threaded process
US20020116521A1 (en) 2001-02-22 2002-08-22 Denis Paul Soft multi-contract rate policing
US7146478B2 (en) * 2001-03-19 2006-12-05 International Business Machines Corporation Cache entry selection method and apparatus
JP3715541B2 (ja) 2001-03-28 2005-11-09 アンリツ株式会社 Atm接続装置
US20020186683A1 (en) * 2001-04-02 2002-12-12 Alan Buck Firewall gateway for voice over internet telephony communications
US6963566B1 (en) * 2001-05-10 2005-11-08 Advanced Micro Devices, Inc. Multiple address lookup engines running in parallel in a switch for a packet-switched network
US7031314B2 (en) * 2001-05-16 2006-04-18 Bytemobile, Inc. Systems and methods for providing differentiated services within a network communication system
JP2003008581A (ja) 2001-06-26 2003-01-10 Yokogawa Electric Corp 通信制御装置
US7042841B2 (en) * 2001-07-16 2006-05-09 International Business Machines Corporation Controlling network congestion using a biased packet discard policy for congestion control and encoded session packets: methods, systems, and program products
US7209996B2 (en) 2001-10-22 2007-04-24 Sun Microsystems, Inc. Multi-core multi-thread processor
US7647422B2 (en) * 2001-11-06 2010-01-12 Enterasys Networks, Inc. VPN failure recovery
US7457297B2 (en) * 2001-11-16 2008-11-25 Enterasys Networks, Inc. Methods and apparatus for differentiated services over a packet-based network
JP2003188905A (ja) 2001-12-20 2003-07-04 Nec Commun Syst Ltd サーバ/クライアントシステムにおけるtcp/ip通信の多重化方式および方法
JP3914072B2 (ja) 2002-03-19 2007-05-16 株式会社山武 ネットワーク障害監視方法、通信システムおよび回線切替装置
JP2003298660A (ja) 2002-03-29 2003-10-17 Hitachi Communication Technologies Ltd VoIPゲートウエイ装置およびVoIP通信状態の検出方法
JP2003338835A (ja) * 2002-05-20 2003-11-28 Fujitsu Ltd パケットスイッチ及び方法
US7450507B2 (en) * 2002-06-05 2008-11-11 Lucent Technologies Inc. Hierarchal rate-limiting at a network node that utilizes an infinity rate-limit check
WO2003104943A2 (en) * 2002-06-11 2003-12-18 Ashish A Pandya High performance ip processor for tcp/ip, rdma and ip storage applications
US7408957B2 (en) * 2002-06-13 2008-08-05 International Business Machines Corporation Selective header field dispatch in a network processing system
US6993039B2 (en) * 2002-07-22 2006-01-31 Utstarcom, Inc. System and method for GRE heartbeats
US7292589B2 (en) * 2002-08-13 2007-11-06 Narendra Kumar Dhara Flow based dynamic load balancing for cost effective switching systems
US7835265B2 (en) 2002-10-31 2010-11-16 Conexant Systems, Inc. High availability Ethernet backplane architecture
US7260066B2 (en) 2002-10-31 2007-08-21 Conexant Systems, Inc. Apparatus for link failure detection on high availability Ethernet backplane
KR100462480B1 (ko) * 2002-12-17 2004-12-17 한국전자통신연구원 튜플 공간 검색 기반의 ip 패킷 분류장치 및 분류방법
US20050125557A1 (en) 2003-12-08 2005-06-09 Dell Products L.P. Transaction transfer during a failover of a cluster controller
KR100576005B1 (ko) 2004-01-05 2006-05-02 삼성전자주식회사 고가용성 라우터 이중화 방법 및 장치

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Gigabit Ethernet Switches Using a Shared Buffer Architecture. Michael V.Lau.IEEE Communication Magazine,Vol.41 No.12. 2003
Gigabit Ethernet Switches Using a Shared Buffer Architecture. Michael V.Lau.IEEE Communication Magazine,Vol.41 No.12. 2003 *

Also Published As

Publication number Publication date
US7760719B2 (en) 2010-07-20
FR2874296B1 (fr) 2008-11-28
DE102005029396A1 (de) 2006-01-26
KR20060048742A (ko) 2006-05-18
CN1716911A (zh) 2006-01-04
CN1716912A (zh) 2006-01-04
US20060002386A1 (en) 2006-01-05
FR2874296A1 (fr) 2006-02-17
CN1716912B (zh) 2014-06-11
JP2006020317A (ja) 2006-01-19
DE102005029396B4 (de) 2013-10-17
KR100697568B1 (ko) 2007-03-22

Similar Documents

Publication Publication Date Title
CN100555986C (zh) 交换环境用的组合流水线式包分类和地址搜索方法及设备
US10616001B2 (en) Flexible processor of a port extender device
USRE49172E1 (en) System and method for adapting a packet processing pipeline
CN101247308B (zh) 基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法
CN103999431B (zh) 软件定义的网络中灵活的并且可扩展的流处理系统
CN1874313B (zh) 处理数据包的方法和网络设备
CN103477593B (zh) 网络系统、交换机和连接终端检测方法
CN104348716B (zh) 一种报文处理方法及设备
CN102694721B (zh) 用于网络中的分组交换的方法
US8774177B2 (en) Classifying traffic at a network node using multiple on-chip memory arrays
CN101421991B (zh) 针对拒绝服务攻击的硬件过滤支持
US20030007489A1 (en) Data extraction system for packet analysis
US20130182710A1 (en) Methods, apparatus and articles of manufacture to manipulate packet routing
US20120281714A1 (en) Packet processing accelerator and method thereof
US20070150614A1 (en) Method and apparatus for implementing filter rules in a network element
US20080095149A1 (en) Flexible packet field processor
CN105830406A (zh) 用于支持软件定义网络中的灵活查找关键字的方法、设备和系统
CN108632098A (zh) 流分类器、业务路由触发器、报文处理的方法和系统
WO2016128834A1 (en) Method and system for identifying an outgoing interface using openflow protocol
JP2002314571A (ja) スイッチングノードのための分類およびタグ付け規則
WO2016128833A1 (en) Method and system for identifying an incoming interface using openflow protocol
US11700202B2 (en) Port extender with local switching
CN106453091B (zh) 路由器转发平面的等价路由管理方法和装置
CN105515995B (zh) 报文处理方法及装置
US20110249676A1 (en) Method and System for Forwarding and Switching Traffic in a Network Element

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: CONEXANT SYSTEMS, INC.

Free format text: FORMER OWNER: ZARLINK SEMICONDUCTOR INC.

Effective date: 20070831

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

Effective date of registration: 20070831

Address after: American California

Applicant after: Conexant Systems Inc.

Address before: Ontario, Canada

Applicant before: Zulink Semiconductors Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091028

Termination date: 20150630

EXPY Termination of patent right or utility model