CN1770745A - 使用设备向量能够路由多播数据分组的集成电路 - Google Patents

使用设备向量能够路由多播数据分组的集成电路 Download PDF

Info

Publication number
CN1770745A
CN1770745A CN200510128359.8A CN200510128359A CN1770745A CN 1770745 A CN1770745 A CN 1770745A CN 200510128359 A CN200510128359 A CN 200510128359A CN 1770745 A CN1770745 A CN 1770745A
Authority
CN
China
Prior art keywords
port
vector
device vector
master device
external equipment
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.)
Pending
Application number
CN200510128359.8A
Other languages
English (en)
Inventor
M·纳瓦达
H·拉斯托吉
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1770745A publication Critical patent/CN1770745A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast

Landscapes

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

Abstract

根据一个实施例的方法可以包括使用至少一个端口与至少一个外部设备通信。该方法还可以包括把多播数据分组和主设备向量存储在存储器中。该方法还可以包括:从存储器中出列主设备向量,至少部分地基于主设备向量产生至少一个附加设备向量,并且经由至少一个端口把该多播数据分组和至少一个附加设备向量发送到至少一个外部设备。当然,如果不偏离此实施例,许多备选、变化和修改是可能的。

Description

使用设备向量能够路由多播数据分组的集成电路
技术领域
本公开内容涉及一种使用设备向量能够路由多播数据分组的集成电路。
背景技术
在传统网络布置中,交换机用来允许其它交换机和耦合到该交换机的计算机节点之间的通信与数据交换。交换机可以有多个端口,每个端口耦合到一个交换机或者更多的计算机节点。到达分组经由路由机制被路由到一个或多个端口。多个交换机可以被堆栈在一起从而为另外的计算机节点提供另外的网络连接性。在一些情况下,一个或多个分组可以被指定给多个端口,包括通过一个或多个交换机的端口。在传统数据存储布置中,为多个端口所指定的分组的每个实例在存储器中必须被复制并且被传送到指定端口。传统网络布置不能有效处理为多个端口指定的分组。并且,在传统网络布置中,对于数据分组的每个复制的路由信息必须被存储在存储器中,这可能会消耗大量的存储器资源。不消耗存储器资源,则传统网络布置不能对多个端口指定的分组提供路由信息。
发明内容
根据本发明,提供了一种设备,包括:能够使用至少一个端口与至少一个外部设备通信的集成电路(IC),所述IC还能够接收多播数据分组并把所述多播数据分组和主设备向量存储在存储器中,所述IC还能够从存储器中出列所述主设备向量,至少部分地基于主设备向量产生至少一个附加设备向量,并且经由至少一个所述端口把所述多播数据分组和至少一个所述附加设备向量发送到至少一个所述外部设备。
本发明还提供了一种方法,包括:使用至少一个端口与至少一个外部设备通信;把多播数据分组和主设备向量存储在存储器中;从存储器中出列所述主设备向量;至少部分地基于主设备向量产生至少一个附加设备向量;和经由至少一个所述端口把所述多播数据分组和至少一个所述附加设备向量发送到至少一个所述外部设备。
本发明还提供了一种产品,包括:存储介质,在其上具有存储的指令,当所述指令被机器执行时导致如下操作:使用至少一个端口与至少一个外部设备通信;把多播数据分组和主设备向量存储在存储器中;从存储器中出列所述主设备向量;至少部分地基于主设备向量产生至少一个附加设备向量;和经由至少一个所述端口把所述多播数据分组和至少一个所述附加设备向量发送到至少一个所述外部设备。
本发明最后提供了一种系统,包括:能够使用多个端口与至少一个外部设备通信的交换机,所述交换机包括集成电路(IC),所述IC能够接收多播数据分组并把所述多播数据分组和主设备向量存储在存储器中,所述IC还能够从存储器中出列所述主设备向量,至少部分地基于主设备向量产生至少一个附加设备向量,并且经由至少一个所述端口把所述数据分组和至少一个所述附加设备向量发送到至少一个所述外部设备。
附图说明
随着下面详细描述进行并且参考附图,所要求主题的实施例的特征和优点将变得明显,在附图中相同的标记表示相同的部分,并且其中:
图1是说明一个系统实施例的图表;
图2是说明一个堆栈式交换机系统中的多个交换机的图表;
图3是说明根据一个实施例的示范性设备到达能力表的图表;
图4A是说明图1系统的集成电路的示范性操作的图表;
图4B是说明图1系统的集成电路的图表;
图5是说明图4集成电路的示范性操作和示范性电路的图表;和
图6是示出根据实施例的示范性操作的流程图。
虽然参考说明性实施例进行下列详细描述,但是许多备选、修改和变化对于本领域技术人员来说将是显而易见的。因此,意图是所要求的主题应当广义地来看,并且只是像所附权利要求中阐述的那样被定义。
具体实施方式
图1说明所要求主题的一个系统实施例100。系统100通常可以包括交换机102A,它可以能够与指定为102B、102C、102D...102N的一个或多个外部设备通信。如在本文任一实施例中使用的,一个″设备″或者″多个设备″可以单独地或者以组合形式包括例如交换机、路由器和/或计算机节点元件。在开始时应该注意,如下的详细描述将参考交换机102A继续进行,可以假设如果设备102B、102C、102D...102N每一个都包括与交换机102A通信的一个或多个交换机,那么这些设备可以按照与交换机102A类似的方式运转。交换机102A也可以能够与一个或多个网络节点元件、例如计算机节点元件(未示出)通信。如在本文任一实施例中使用的,术语″交换机″(例如交换机102A)可以被定义为这样一种设备:即它能够从一个或多个设备中接收一个或多个数据分组和/或把一个或多个数据分组发送到一个或多个设备。
交换机102A可以包括外壳,外壳包含集成电路104、存储器130、设备可达性表格(DRAT)140和多个端口0、1、2、...、N,随后将更完全地提供其细节。如在本文任一实施例中使用的,″集成电路″是指半导体设备和/或微电子设备,诸如半导体集成电路芯片之类的。存储器130可以包括下列存储器类型中的一个或多个:半导体固件存储器、可编程存储器、非易失性存储器、只读存储器、电可编程存储器、随机存取存储器、闪速存储器、磁盘存储器和/或光盘存储器。附加地或者可选地,存储器130可以包括其它和/或以后开发的计算机可读存储器类型。机器可读固件程序指令可存储在存储器130中。这些指令可以由集成电路104访问和执行。当由集成电路104执行时,这些指令可以导致集成电路104执行本文所述的由集成电路执行的操作。
系统100可以包括分组交换网络。使用选定的分组交换网络通信协议,交换机102A可以能够与一个或多个设备102B、102C、102D...102N通信。一种示范性通信协议可以包括以太网通信协议,它可以能够许可使用传输控制协议/网际协议(TCP/IP)的通信。以太网协议可以遵守由电气和电子工程师协会(IEEE)发布的、标题为″IEEE 802.3标准″于2002年3月发布的以太网标准和/或此标准以后的版本或者与之一致。可选地或者附加地,使用X.25通信协议,交换机102A可以能够与一个或多个设备102B、102C、102D...102N通信。X.25通信协议可以遵守由国际电信联盟-电信标准化部门(ITU-T)发布的标准或者与之一致。可选地或者附加地,使用帧中继通信协议,交换机102A可以能够与一个或多个设备102B、102C、102D...102N通信。帧中继通信协议可以遵守由国际电报电话咨询委员会(CCITT)和/或美国国家标准协会(ANSI)公布的标准或者与之一致。可选地或者附加地,使用异步传输模式(ATM)通信协议,交换机102A可以能够与一个或多个设备102B、102C、102D...102N通信。ATM通信协议可以遵守由ATM论坛2001年8月发布的标题为″ATM-MPLS网络互通1.0″的ATM标准和/或此标准以后的版本或者与之一致。当然,在本文同样可设想不同的和/或之后开发的通信协议。
端口0、1、2、...、N每一个都可以包括客户端口和/或堆栈式端口。端口可以包括能够把一个设备耦合到另一设备的物理接口。如在本文使用的,堆栈式端口可以被定义为用于把交换机耦合到另一交换机的端口。客户端口可以被定义为用于把交换机耦合到网络节点元件(即,除了交换机之外的设备)的端口。在一个实施例中,IC 104可以能够把一个或多个数据分组路由到耦合到堆栈式端口的另一交换机和/或耦合到客户端口的另一设备。如在本文任一实施例中使用的,″数据分组″可以包括符号序列。
在详细描述交换机102A和IC 104的细节之前,在下面提供对堆栈式交换机以及在堆栈式交换机之间传送数据分组的简要概述。如所述,交换机102A经由一个或多个堆栈式端口可以能够与其它交换机通信。多个交换机可以在交换机堆栈中耦合在一起。图2是说明示范性交换机堆栈200的图表。堆栈200可以包含多个设备102A、102B、102C、102D、102E以及102F,并且堆栈200可以表示一个完整的交换机堆栈式布置或者它的一个示范性子集。在图2中为了清楚已省略了交换机102A的细节(图1中所示)。堆栈200中的每一个设备直接或者经由其它交换机可以能够与其它交换机通信。
交换机的堆栈(例如图2中描述的堆栈200)可用来把多个网络节点元件集合在一起,以便允许例如统一管理交换机和增加可用网络节点元件的数目。经由耦合到交换机之一的客户端口的计算机,交换机的集合(堆栈的成员)可以被统一地管理。图2中描述的交换机的集合可以作为单个大型交换机来操作。应该理解,在开始时,可以形成堆栈200的特定拓扑结构来提供冗余要求和/或特定网络环境的带宽要求,因此,本公开内容应该被解释为涵盖交换机堆栈的任意拓扑结构。
堆栈200中的每个设备也可以能够与一个或多个其它设备、例如计算机节点元件(未示出)通信。例如,在交换机102A的端口2上描述的″到达分组″可以由计算机节点元件产生。可选地或者附加地,图2中描述的″到达分组″可以由堆栈200中未描述的另一交换机发送。″到达分组″可以包括多播数据分组。如在本文任一实施例中使用的,″多播数据分组″例如可以包括要复制并转发到堆栈200中的多个设备之中的一个以上设备的数据分组。
举例来说,交换机102A的端口2上的″到达分组″可以包括多播数据分组。交换机102A可以能够复制多播数据分组并将多播数据分组的拷贝经由一个或多个端口转发到堆栈200中的一个或多个交换机来路由多播数据分组。如图2中说明的,多播数据分组的一个拷贝可以经由端口4发送给设备102D并且经由端口5和/或6发送给设备102B。设备102B可以包括″中间级设备″,中间级设备可以被定义为两个或更多设备之间的设备。设备102D也可以能够把在端口2上接收到的分组路由到设备102F(经由端口1)。设备102F可以能够经由端口5路由标记为″出发分组″的分组。离开设备102F的出发分组目的地可能为计算机节点和/或另一交换机。类似地,设备102B也可以能够经由端口5和/或7把分组的一个拷贝路由到设备102E。设备102E可以能够经由端口4路由标记为″出发分组″的分组。离开设备102C的出发分组目的地可能为计算机节点和/或另一交换机。当然,前述的说明只是作为实例提供,并且意图是本公开内容的交换机102A可以能够将数据分组路由到堆栈中的一个设备或者所有设备。
为了确定适当的端口来路由数据分组,交换机102A可以包括设备可达性表格(DRAT)140。图3描述了可以包括在交换机102A中的一个示范性DRAT 140(标记为″设备3的DRAT″,与图2中所示的示范性堆栈200相应)。DRAT通常可以包含一个或多个条目,以确定包括在交换机中的多个端口之中的哪一个或者哪些端口应该用于到达堆栈中的目标交换机。DRAT 140的第一列302可以包含一个或多个设备编号,例如,设备编号0一直到8。如根据DRAT 140所使用的″设备″可以包含交换机堆栈中的期望的目标设备。多个路线304在DRAT 140中可以被定义。例如,DRAT 140可以包含路线0、路线1、路线2、...、路线11。每个路线可以为目标设备指定端口。例如,行306描述了每一个路线(路线0-路线11)指定端口4到达目标设备1。行308描述了路线0-路线5指定端口5到达目标设备2以及路线6-路线11指定端口6到达目标设备2。每个路线(路线0-路线11)指定的一个或多个端口可以表示端口的随机选择。或者,可以基于例如端口的带宽指示端口。因此,例如在目标设备5的那行中,端口4由路线0-路线9提供,端口5由路线10提供,端口6由路线11提供。这可以反映例如这样一种情况:即,其中设备3的端口4拥有比端口5或者6更宽的带宽。如果随机数在一个封闭的可用随机数集上是均匀分布的,则任意或者所有端口的业务均匀性是可以以带宽考虑为基础的,这可用来在一个多负载平衡的布置中分发业务量。DRAT 140中的行数可以表示堆栈中的设备数目。在这个实例中,设备0、设备6与设备7对交换机3可能是不能到达的或者不可用的,因此与这些交换机对应的这些行可能具有零个条目。在操作中,通过产生随机数来选择包括在DRAT 140中的路线,IC 104可以选择一个或多个端口用于转发数据分组。
DRAT 140可以存储在诸如存储器130或其它存储器(未示出)之类的存储器中。包括在交换机102A中的IC 104可以能够确定使用交换机102A的堆栈中的设备的数目和/或可用性,并且也可以能够确定包括在交换机102A中的一个或多个端口的可用性和/或性能。IC 104可以能够更新和/或创建DRAT 140来反映堆栈和/或交换机端口中的当前情况。可选地或者附加地,耦合到交换机102A的计算机节点元件可以能够探测交换机102A和/或使用交换机102A的堆栈中的一个或多个设备,并且可以确定更新和/或创建DRAT 140的信息。计算机节点元件可以对堆栈中的所有成员或者其子集拥有管理控制,并且可以能够更新和/或创建与堆栈中的其它交换机相关的DRAT。
图4A是说明图1系统的集成电路104的示范性操作400的图表。再次参考图1和2,包括在交换机102A中的集成电路104通常可以能够从包括在交换机102A中的一个或多个端口中接收一个或多个分组,和/或把一个或多个数据分组发送给包括在交换机102A中的一个或多个端口。在本文的至少一个实施例中,集成电路104可以能够产生一个或多个设备向量,该设备向量可用来把一个或多个多播分组路由到交换机堆栈200中的一个或多个交换机。或者,集成电路104可以能够接收一个或多个设备向量(例如,来自堆栈200中的其它交换机中),该设备向量可用来把一个或多个多播分组路由到交换机堆栈200中的一个或多个交换机。如本文使用的,″设备向量″可以被定义为表示要为之复制多播分组的至少一个设备的符号的超集。在一个示范性实施例中,主设备向量412可以包含位序列,每个位表示给定堆栈中的相应的交换机。主设备向量412可以指定将要接收多播分组410的复制的一个或多个目标设备并且可以表示可能与多播分组410的每个复制相关的所有设备向量的超集。主设备向量412可能来源于另一设备,比如集成电路104外部的另一交换机。或者,集成电路104可以包括设备向量发生器电路(未示出),它可以能够产生设备向量412来把多播数据分组410路由到一个或多个目标设备。基于已识别的端口编号和主设备向量412,集成电路104可以能够产生至少一个附加设备向量,并且可以能够直接将该附加设备向量和多播分组410发送到已识别的端口。
图4A中描述的操作通常可以针对如图2所示的交换机堆栈200中的交换机102A的操作。对于图4A的操作,假定交换机102A接收多播分组410,并且多播信息规定了到交换机堆栈200中的设备2、5和8的分组的复制。
集成电路104可以产生或者可以从另一源接收形式为0000_0001_0010_0100的主设备向量412。在这个实例中,主设备向量412中的每个位可以表示交换机堆栈200中的一个设备。最低有效位可以表示交换机0,并且最高有效位可以表示交换机15。因此,在这个实例中,交换机堆栈中可能有16个交换机,并且交换机2、5和8已经被选择用来接收分组410的复制。集成电路104(或者其它电路,未示出)可以能够产生随机数414。在这个实例中,随机数416可以包括对应于DRAT 140中定义的路线编号的整数。因此,随机数414例如可以是从0到11的整数。
基于随机数414,集成电路104可以能够产生对应于DRAT 140中的路线的端口编号。例如,等于5的随机数414对应于DRAT 140中的路线5。集成电路104可以为主设备向量412中表示的每个交换机选择与DRAT140中的路线5对应的端口。在这个实例中,随机数414是5并且设备向量412的位2(413)被设置,因此集成电路104可以选择端口5(430)(对应于路线5)。同样地,因为设备向量412的位5(414)和8(415)被设置,所以集成电路104可以选择端口4(420)来到达交换机5和交换机8。在本实施例中,对于给定的设备向量412,同一随机数414可以用于集成电路104的所有操作。
在这个实例中,可以为端口4(420)产生附加设备向量。设备向量412的位5(414)和8(415)可以被设置(即,等于1),选择设备5和8来接收分组410的复制。集成电路104可以产生形式为0000_0001_0010_0000的新设备向量422(即,位5和8被设置),指示多播分组可以经由端口4(420)向目标为设备5和8发送。多播分组410和新设备向量422可以经由端口4(420)直接地或者通过包括在交换机堆栈中的一个或多个中间级设备发送给设备5和8。如果使用一个或多个中间级交换机,则每个交换机可以包括类似的电路并且按照与本文参考交换机102A描述的类似方式来操作,以便把多播分组路由到至少一个最终目的地。
也可以为端口5(430)产生附加设备向量。设备向量412的位2(413)可以被设置,选择设备2来接收分组410的复制。集成电路104可以产生形式为0000_0000_0000_0100的新设备向量432,表示多播分组可以经由端口5(430)向目标为设备2发送。多播分组410和新设备向量432可以经由端口5(430)直接地或者通过包括在交换机堆栈中的一个或多个中间级设备发送给设备2。如果使用一个或多个中间级交换机,则每个交换机可以包括类似的电路并且按照与本文参考交换机102A描述的类似方式来操作,以便把多播分组路由到至少一个最终目的地。
图4B是更详细地示出图1和2中的交换机102A的示范性集成电路104的图表450。集成电路(IC)104通常可以能够从一个或多个端口(包括在交换机102A中)接收一个或多个数据分组和/或把一个或多个数据分组发送给一个或多个端口(包括在交换机102A中)。IC 104还可以能够接收多播数据分组并把该多播数据分组和主设备向量412存储在存储器中。当端口可用来发送数据时,IC 104也可以能够把主设备向量412和多播数据分组从存储器中出列,至少部分地基于主设备向量产生至少一个附加设备向量,并经由该端口把数据分组和附加设备向量发送到一个或多个外部设备。在一个示范性实施例中,使用出列处理电路(将在下面描述),IC 104可以能够产生一个或多个设备向量,出列处理电路可用来在后存储处理阶段产生一个或多个设备向量,即不需要在存储器中存储附加设备向量。
IC 104可以接收多播数据分组410和主设备向量412。主设备向量412可以指定将要接收多播数据分组410的复制的一个或多个目标设备。主设备向量412可以表示可能与多播数据分组410的每个复制相关的所有设备向量的超集。设备向量412可能来源于另一设备,比如IC 104外部的另一交换机。或者,IC 104可以包括设备向量发生器电路(未示出),它可以能够产生主设备向量412以便把多播数据分组410路由到一个或多个目标设备。主设备向量412和多播数据分组410可以在存储器130中分别排队在存储单元142和144。
再一次简要地参考图1,多播数据分组的每个复制可以经由多个端口0、1、2、...、N被路由到一个和多个目标设备。在任何端口上出发的多播数据分组可以包括相关的设备向量,以便把给定端口上的多播数据分组适当地路由到一个或多个目标设备。再一次参考图4,IC 104可以包括端口队列414A、414B、414C...414N,它们与包括在交换机102A中的每个端口0、1、2...N相关。虽然端口队列存储器可以包括在IC 104中,但是本文同样可假设端口队列存储器可以共同地或者单独地包括在存储器130的图中未示出的其它存储单元处。
IC 104可以包括能够处理主设备向量412的队列处理电路402,以便至少部分地确定用来把多播数据分组410转发给另一设备的至少一个端口。队列处理电路402也可以能够把主设备向量412和相关的多播数据分组410排队在存储器中。如在本文任一实施例中使用的,″电路″可包括例如单独或者以任意组合形式的硬连线电路、可编程电路、状态机电路和/或存储可编程电路执行的指令的固件。队列处理电路402可以能够处理主设备向量412,以便在多个设备之中确定哪一个或者哪些设备由主设备向量412指定,以便转发多播数据分组410。对于给定的设备,队列处理电路可以能够读取DRAT 140,以便确定哪一个端口(或哪些端口)可用来到达一个或多个设备。一旦确定端口,则队列处理电路402可以能够把指针写入一个或多个端口队列中。例如,队列处理电路402可以确定端口2和端口N可用来到达一个或多个特定的设备。队列处理电路402可以把指针406写在端口2的队列(414C)中并且把指针408写在端口N的队列(414N)中。指针406和408可以指向存储器130中可以存储设备向量412的单元142。
出列处理电路404可以能够确定端口是否可用来发送数据。如果端口可用,则出列处理电路404可以能够为端口414A、414B、414C、...414N读取端口队列存储器并在其中发现指针。出列处理电路404可以分别从由端口队列存储器中的一个或多个指针指向的存储器130中的单元、例如单元142和144中读取主设备向量412和数据分组410。基于读取端口队列存储器时所识别的端口编号以及主设备向量412,出列处理电路404可以能够产生至少一个新设备向量422。出列处理电路404可以能够直接地发送新设备向量422和多播数据分组410到所识别的端口,即,不必在存储器130中存储新设备向量422。
图5更详细地说明图4A和4B的IC 104的示范性操作以及示范性电路500。图5的操作继续了图4A和4B的实例(并且因此可以对这些图继续进行参考),并且通常针对堆栈200中的交换机102A的操作。对于图5中的电路和它的操作,假定交换机102A接收多播数据分组并且该多播信息规定了到交换机堆栈200中的设备2、5和8的数据分组的复制(例如,通过包括这样规定的设备向量)。
IC 104可以产生或者可以从另一源接收形式为0000_0001_0010_0100的主设备向量412。在这个实例中,设备向量412中的每一位可以表示堆栈(比如交换机堆栈200)中的一个设备。最低有效位可以表示交换机0,并且最高有效位可以表示交换机15。因此在这个实例中,交换机堆栈中可能有16个交换机。主设备向量 可以排队(例如存储)在存储器130中。IC 104(或者其它电路,未示出)可以能够产生随机数414。在这个实例中,随机数可以包括与在DRAT 140中定义的路线编号对应的整数。因此,随机数414例如可以是从0到11的整数。随机数414也可以存储在存储器130中。
队列处理电路402可以包括主设备向量转发引擎(PDVFE)电路517和队列引擎电路412。主设备向量412和随机数414可以用作PDVFE电路517的输入。PDVFE 517可以能够并行处理主设备向量412的每个位,以便以如下所述的方式产生多个中间级端口向量。
PDVFE 517可以包括用于主设备向量412中的每个位的端口编号发生器电路504A、...504C、...504F、...504I、...。图5只描述了用于位0、2、5和8的端口编号发生器电路,可是,应该理解,PDVFE 517可以包括用于设备向量412中的每个位的类似电路。端口编号发生器电路可以能够读取DRAT 140中的相应行。因此,例如,可以对应于设备向量412中的位2、又可以对应于堆栈中的交换机2的端口编号发生器电路504C可以能够至少部分地读取DRAT 140中对应于交换机2的那行数据。基于随机数512,端口编号发生器电路可以能够产生对应于DRAT 140中的路线的端口编号。例如,假定随机数是5,则这个数对应于DRAT 140中的路线5。端口编号发生器电路可以为设备向量412中表示的每个交换机选择与DRAT中的路线5对应的端口。
因此,端口编号发生器电路504A可以能够读取DRAT 140中对应于交换机0的那行。因为在这个实例中,交换机0对于交换机102A(交换机3)可能是不能到达或不可用的,所以那行可能包括空条目。因此,端口编号发生器电路504A可以产生空值端口编号。同时,因为在这个实例中设备向量412的位0未被设置(即,位0=0),所以端口编号发生器电路504A可以产生空值或者0值。端口编号电路504C可以能够读取DRAT中对应于交换机2的那行。在这个实例中,随机数414是5并且设备向量412的位2被设置,因此端口编号发生器电路504C可以选择端口5(对应于路线5)。同样地,端口编号发生器504F可以选择端口4,并且端口编号发生器电路504I可以选择端口4。在本实施例中,对于给定的设备向量511,同一随机数512可以用于PDVFE 517的所有操作。
基于可能为设备向量412中的每个位所产生的端口编号,端口向量电路502A、...502C、...、502F、...、502I、...的端口编号可以能够产生多个中间级端口向量。端口向量可以包括位序列,每个位表示包括在交换机102A中的端口。因此,例如,如果交换机102A包括26个端口,则每个中间级端口向量可以是26位长。在这个实例中,因为端口编号发生器电路504A产生空或者0端口编号,所以端口向量电路502A的端口编号可以产生没有设置位的中间级端口向量。因为端口编号发生器电路504C产生端口编号4,所以端口向量电路502C的端口编号可以产生形式为...0_0001_0000的中间级端口向量,其中最低有效位表示交换机102A的端口0,端口4包含设置位(即,位4=1)。类似地,并且继续这个实例,端口向量电路502F的端口编号可以产生形式为...0_0001_0000的中间级端口向量。同样地,因为端口编号发生器电路504I产生端口编号5,所以端口向量电路502I的端口编号可以产生形式为...0_0010_0000的中间级端口向量,指示端口5包含设置位。
可以由端口向量电路的每一个端口编号产生的每一个中间级端口向量可以被组合以产生端口向量515。在一个实施例中,中间级端口向量可以″或″在一起以产生单个端口向量515。为此,DVFE电路512可以包括″或″电路507C、..、507F、...、507I、...,它们可以能够对两个或两个以上端口向量进行″或″运算,产生单个端口向量515。如可以由或电路执行的或运算的结果可以产生形式为...0_0011_0000的端口向量515,指示端口4和5可用来传送多播数据分组到堆栈中的其它交换机。
队列引擎电路408可以能够接收端口向量515并产生一个或多个指针。在这个实例中,指针可以放置在端口4的端口队列存储器(406E)中和端口5的端口队列存储器(406F)中,对应于包括在示范性端口向量515中的设置位。队列406E和406F中的指针可以指向存储器130中保存设备向量412的位置。
出列处理电路404可以包括辅助设备向量转发引擎(SDVFE)电路516和出列引擎电路412。设备向量511、随机数512和端口编号可以用作SDVFE电路516的输入。SDVFE 516可以能够并行处理设备向量412的每个位,以便以如下所述的方式产生新设备向量。出列引擎电路518可以能够发现交换机102A中的多个端口之中的一个或多个端口是否可用来发送多播数据分组。如果端口可用,则出列电路518可以能够读取那个端口的端口队列存储器,读取包括在端口存储器中的指针,并且把端口编号、多播数据分组、随机数512和设备向量511出列到SDVFE电路516。
SDVFE 516可以包括用于设备向量511中的每个位的端口编号发生器电路508A、...508C、...、508F、...508I、...。包括在PDVFE 517中的端口编号发生器电路508A、...508C、...、508F、...508I、...可以以类似于包括在SDVFE 516中的端口编号发生器电路508A、...508C、...、508F、...508I、...的方式运转。图5只描述了用于位0、2、5和8的端口编号发生器电路,可是,应该理解,SDVFE 516可以包括用于设备向量511中的每个位的类似电路。端口编号发生器电路可以能够读取DRAT 140中的相应一行。因此,例如,可以对应于设备向量412中的位2、又可以对应于堆栈中的交换机2的端口编号发生器电路508C可以能够至少部分地读取DRAT 140中对应于交换机2的那行数据。基于随机数414,端口编号发生器电路可以能够产生对应于DRAT 140中的路线的端口编号。例如,仍然假定随机数414是5,则这个数对应于DRAT 140中的路线5。端口编号发生器电路508A、...508C、...、508F、...508I、...可以为设备向量412中表示的每个交换机选择与DRAT中的路线5对应的端口。
因此,端口编号发生器电路508A可以能够读取DRAT 140中对应于交换机0的那行。因为在这个实例中,交换机0对于交换机102A(交换机3)可能是不能到达或不可用的,所以那行可能包括空条目。因此,端口编号发生器电路508A可以产生空值端口编号。同时,因为在这个实例中设备向量412的位0未被设置(即,位0=0),所以端口编号发生器电路508A可以产生空值或者0值。端口编号电路508C可以能够读取DRAT中对应于交换机2的那行。在这个实例中,随机数414是5并且设备向量412的位2被设置,因此端口编号发生器电路508C可以选择端口5(对应于路线5)。同样地,端口编号发生器508F可以选择端口4,并且端口编号发生器电路504I可以选择端口4。在本实施例中,对于给定的主设备向量412,同一随机数414可以用于SDVFE 516的所有操作。
基于可以被出列电路518确定的端口编号520和端口编号发生器电路508A、...508C、...、508F、...508I、...、产生的并且可以为设备向量412中的每个位产生的端口编号,设备向量位设置逻辑电路510A、...、510C、...、510F、...、510I、...可以能够产生多个中间级设备向量。设备向量位设置逻辑电路510A、...、510C、...、510F、...、510I、...可以能够确定端口编号520和每个相应的端口编号发生器电路508A、...508C、...、508F、...508I、...产生的端口编号之间的等同性。当这些两个编号之间存在匹配时,设备向量位设置逻辑电路510A、...、510C、...、510F、...、510I、...可以在其中产生的中间级设备向量中设置相应位。首先采用可以为端口4产生的新设备向量,对于位5和8,端口编号发生器电路508F和508I每一个都产生端口编号4(在上面以实例的方式描述的)。因为在这个实例中,端口编号520是4(即,为端口4产生新设备向量),所以设备向量位设置逻辑电路510F和510I可以分别产生设置了位5和8(即,位5=1,位8=1)的各自的中间级设备向量。在这个实例中,剩余的端口编号发生器电路产生的端口编号和端口编号520之间不存在其它匹配,因此,剩余设备向量位设置逻辑电路中产生的设备中间级向量可以包括所有的未设置位(即,全0)。
可以由每一个设备向量位设置逻辑电路510A、...、510C、...、510F、...、510I、...产生的每一个中间级设备向量可以被组合以产生新设备向量。在一个实施例中,中间级设备向量可以″或″在一起,以产生单个新设备向量524。为此,DVFE电路516可以包括或电路513A...513C、...513F、...、513I、...,它们可以能够对两个或两个以上中间级设备向量进行或运算,从而为端口4产生单个设备向量524。正如可以由或电路执行的或运算的结果可以产生形式为0000_001_0010_0000的新设备向量524,指示多播数据分组经由端口4向目标为设备5和8发送。多播数据分组(它可以排队在端口4的端口队列存储器中)和新设备向量524可以经由端口4直接地或者通过包括在交换机堆栈中的一个或多个中间级设备发送给设备5和8。如果使用一个或多个中间级交换机,则每个交换机可以包括类似的电路并且按照与本文参考交换机102A描述的类似方式来操作,以便把多播分组路由到至少一个最终目的地。
现在采用可以为端口5产生的新设备向量522,对于位2,端口编号发生器电路508C产生端口编号5(在上面以实例的方式描述的)。因为在这个实例中,端口编号520是5(即,为端口5产生新设备向量),所以设备向量位设置电路510C可以产生设置了位2(即,位2=1)的中间级设备向量。在这个实例中,剩余的端口编号发生器电路产生的端口编号和端口编号520之间不存在其它匹配,因此,剩余设备向量位设置逻辑电路中产生的设备中间级向量可以包括所有的未设置位(即,全0)。
正如象端口4的实例那样,可以由每一个设备向量位设置逻辑电路510A、...、510C、...、510F、...、510I、...产生的每一个设备向量可以被组合以产生新设备向量。在一个实施例中,中间级设备向量可以或在一起,以产生单个新设备向量522。正如可以由或电路执行的或运算的结果可以产生形式为0000_0000_0000_0100的新设备向量522,指示多播数据分组经由端口5向目标为设备2发送。多播数据分组(它可排队在端口5的队列存储器中)和新设备向量522可以经由端口5直接地或者通过包括在交换机堆栈中的一个或多个中间级设备发送到设备2。如果使用一个或多个中间级交换机,则每个交换机可以包括类似的电路并且按照与本文参考交换机102A描述的类似方式来操作,以便把多播分组路由到至少一个最终目的地。
图6说明根据一个实施例可以执行的示范性操作600。这些操作可以包括使用至少一个端口602与至少一个外部设备通信。这些操作还可以包括将多播数据分组和主设备向量存储在存储器604中。多播数据分组可以包括要发向多个位置、例如到和/或通过交换机堆栈的多个位置的数据分组。可以与多播数据分组一起接收主设备向量,或者可以基于包括在多播数据分组中的路由信息来产生主设备向量。这些操作还可以包括从存储器606中出列主设备向量。这些操作还可以至少部分地基于主设备向量608产生至少一个附加设备向量。这些操作还可以包含经由至少一个端口610把附加设备向量和多播数据分组发送到至少一个外部设备。
因此,总起来说,一个设备实施例可以包括能够使用至少一个端口与至少一个外部设备通信的集成电路(IC)。IC也可以能够接收多播数据分组并把该多播数据分组和主设备向量存储在存储器中。IC还可以能够从存储器中出列主设备向量,至少部分地基于主设备向量产生至少一个附加设备向量,并且经由至少一个端口把该多播数据分组和至少一个附加设备向量发送到至少一个外部设备。
至少一个系统实施例可以包括能够使用多个端口与一个或多个外部交换机通信的交换机。该交换机可以包括能够使用至少一个端口与至少一个外部设备通信的集成电路(IC)。该IC还可以能够接收多播数据分组并把该多播数据分组和主设备向量存储在存储器中。IC还可以能够从存储器中出列主设备向量,至少部分地基于主设备向量产生至少一个附加设备向量,并且经由至少一个端口把该多播数据分组和至少一个附加设备向量发送到至少一个外部设备。
这些实施例的集成电路可以能够以并行方式处理设备向量,这可用来提高设备的速度和数据吞吐量。例如,如果设备向量包括位序列,则序列中的每个位可以被同时处理。并且,在出列处理阶段,基于主设备向量,这些实施例的集成电路可以能够产生附加设备向量(例如图5中的实例522和524)。附加设备向量可以在产生之后直接转发给设备堆栈中的一个或多个设备,而不需要插入附加设备向量的存储器写操作。因此,可以减少或消除至少一个新设备向量的存储器存储空间,因为可以压缩新设备向量直到在出列处理电路中产生新设备向量并将其转发到一个或多个装置为止。这可以提供例如附加设备向量的运行时产生而不需要附加存储器并且不需要附加存储器操作。
如果多播数据分组至少部分地被预定到耦合到交换机102A的端口的设备(例如计算机节点),则IC 104可以能够发送多播数据分组到那个设备而不必为那个复制产生附加设备向量。
本文已使用的术语和表达是用作描述术语而非限制术语,并且在这类术语和表达的使用中,不打算排除所示出的和所描述的特征(或者其一些部分)的任何等价物,并且要意识到在权利要求范围内各种修改都是可能的。因此,权利要求要涵盖所有这些等价物。

Claims (42)

1.一种设备,包括:
能够使用至少一个端口与至少一个外部设备通信的集成电路(IC),所述IC还能够接收多播数据分组并把所述多播数据分组和主设备向量存储在存储器中,所述IC还能够从存储器中出列所述主设备向量,至少部分地基于主设备向量产生至少一个附加设备向量,并且经由至少一个所述端口把所述多播数据分组和至少一个所述附加设备向量发送到至少一个所述外部设备。
2.如权利要求1所述的设备,其中:
所述IC包括队列处理电路,所述队列处理电路能够读取设备可达性表格并产生端口向量,所述设备可达性表格包括至少一个数据条目,所述数据条目指示对于给定的所述外部设备在多个所述端口之中哪一个所述端口由所述IC用来把所述多播数据分组转发到所述至少一个外部设备,所述端口向量指示用来把所述多播数据分组转发到至少一个所述外部设备的至少一个所述端口。
3.如权利要求2所述的设备,其中:
所述主设备向量包括位序列,其中每个位表示相应的所述外部设备,所述队列处理电路包括能产生多个中间级端口向量的设备向量转发引擎电路,一个所述中间级端口向量对应所述设备向量中的每个位,所述设备向量转发引擎电路还能够组合所述多个中间级端口向量以产生所述端口向量。
4.如权利要求3所述的设备,其中:
所述端口向量包括位序列,其中每个位表示用来把所述多播数据分组转发到所述至少一个所述外部设备的相应的所述端口,所述队列处理电路还包括端口队列电路引擎,所述端口队列电路引擎能够把指针写到与至少一个所述端口相关的至少一个端口队列中,所述指针指向所述存储器中的所述主设备向量。
5.如权利要求3所述的设备,其中:
所述设备向量转发引擎电路能够同时处理所述主设备向量中的每个所述位。
6.如权利要求1所述的设备,其中:
所述IC包括出列处理电路,所述出列处理电路能够读取设备可达性表格,所述设备可达性表格包括至少一个数据条目,所述数据条目指示对于给定的所述外部设备在多个所述端口之中哪一个端口由所述IC使用,从而标识把所述多播数据分组发送到所述至少一个外部设备的所述端口,基于在所述设备可达性表格中识别的端口编号和所述主设备向量,所述出列处理电路还能够产生所述附加设备向量。
7.如权利要求6所述的设备,其中:
所述出列处理电路包括能够读取存储在与至少一个所述端口相关的至少一个端口队列中的至少一个指针的端口出列引擎电路,所述指针指向所述存储器中的所述主设备向量,所述出列处理电路还能够从所述存储器中出列所述主设备向量,所述出列电路还能够确定在所述多个端口队列之中哪一个端口队列存储所述指针。
8.如权利要求6所述的设备,其中:
所述主设备向量包括位序列,其中每个位表示相应的所述外部设备,所述出列处理电路包括能产生多个中间级设备向量的设备向量转发引擎电路,一个所述中间级设备向量对应所述主设备向量中的每个位,所述设备向量转发引擎电路还能够组合所述多个中间级设备向量以产生至少一个所述附加设备向量。
9.如权利要求8所述的设备,其中:
所述设备向量转发引擎电路能够同时处理所述主设备向量中的每个所述位。
10.如权利要求1所述的设备,其中:
所述IC还能够把至少一个所述附加设备向量和所述多播数据分组直接转发到至少一个所述外部设备。
11.一种方法,包括:
使用至少一个端口与至少一个外部设备通信;
把多播数据分组和主设备向量存储在存储器中;
从存储器中出列所述主设备向量;
至少部分地基于主设备向量产生至少一个附加设备向量;和
经由至少一个所述端口把所述多播数据分组和至少一个所述附加设备向量发送到至少一个所述外部设备。
12.如权利要求11所述的方法,还包括:
读取设备可达性表格并产生端口向量,所述设备可达性表格包括一个或多个数据条目,所述数据条目指示对于给定的所述外部设备在多个所述端口之中哪一个所述端口用来把所述多播数据分组转发到所述至少一个外部设备,所述端口向量指示用来把所述多播数据分组转发到所述至少一个外部设备的至少一个所述端口。
13.如权利要求12所述的方法,其中:
所述主设备向量包括位序列,其中每个位表示相应的所述外部设备,所述方法还包括:
产生多个中间级端口向量,一个所述中间级端口向量对应所述主设备向量中的每个位;
组合所述多个中间级端口向量以产生所述端口向量。
14.如权利要求13所述的方法,其中:
所述端口向量包括位序列,其中每个位表示用来把所述多播数据分组转发到所述至少一个所述外部设备的相应的所述端口,所述方法还包括:
基于所述端口向量,把指向所述存储器中的所述主设备向量的指针写到与至少一个所述端口相关的至少一个端口队列中。
15.如权利要求13所述的方法,还包括:
同时处理所述主设备向量中的每个所述位。
16.如权利要求14所述的方法,还包括:
确定在所述多个端口队列之中哪一个端口队列存储所述指针。
17.如权利要求11所述的方法,其中:
所述主设备向量包括位序列,其中每个位表示相应的所述外部设备,所述方法还包括:
产生多个中间级设备向量,一个所述中间级设备向量对应所述主设备向量中的每个位,并且组合所述多个中间级设备向量以产生至少一个所述附加设备向量。
18.如权利要求11所述的方法,还包括:
使用由所述主设备向量确定的所述端口,把所述第二设备向量和所述多播数据分组直接转发到至少一个所述外部设备。
19.一种产品,包括:
存储介质,在其上具有存储的指令,当所述指令被机器执行时导致如下操作:
使用至少一个端口与至少一个外部设备通信;
把多播数据分组和主设备向量存储在存储器中;
从存储器中出列所述主设备向量;
至少部分地基于主设备向量产生至少一个附加设备向量;和
经由至少一个所述端口把所述多播数据分组和至少一个所述附加设备向量发送到至少一个所述外部设备。
20.如权利要求19所述的产品,其中当所述指令被所述机器执行时导致如下附加的操作:
读取设备可达性表格并产生端口向量,所述设备可达性表格包括一个或多个数据条目,所述数据条目指示对于给定的所述外部设备在多个所述端口之中哪一个所述端口用来把所述多播数据分组转发到所述至少一个外部设备,所述端口向量指示用来把所述多播数据分组转发到所述至少一个外部设备的至少一个所述端口。
21.如权利要求20所述的产品,其中:
所述主设备向量包括位序列,其中每个位表示相应的所述外部设备,其中当所述指令被所述机器执行时导致如下附加的操作:
产生多个中间级端口向量,一个所述中间级端口向量对应所述主设备向量中的每个位;和
组合所述多个中间级端口向量以产生所述端口向量。
22.如权利要求21所述的产品,其中:
所述端口向量包括位序列,其中每个位表示用来把所述多播数据分组转发到所述至少一个所述外部设备的相应的所述端口,其中当所述指令被所述机器执行时导致如下附加的操作:
基于所述端口向量,把指向所述存储器中的所述主设备向量的指针写到与至少一个所述端口相关的至少一个端口队列中。
23.如权利要求21所述的产品,其中:
当所述指令被所述机器执行时导致如下附加的操作:
同时处理所述主设备向量中的每个所述位。
24.如权利要求22所述的产品,其中当所述指令被所述机器执行时导致如下附加的操作:
确定在所述多个端口队列之中哪一个端口队列存储所述指针。
25.如权利要求19所述的产品,其中:
所述主设备向量包括位序列,其中每个位表示相应的所述外部设备,其中当所述指令被所述机器执行时导致如下附加的操作:
产生多个中间级设备向量,所述中间级设备向量对应所述主设备向量中的每个位,并且组合所述多个中间级设备向量以产生至少一个所述附加设备向量。
26.如权利要求19所述的产品,其中当所述指令被所述机器执行时导致如下附加的操作:
使用由所述主设备向量确定的所述端口,把至少一个所述附加的第二设备向量和所述多播数据分组直接转发到至少一个所述外部设备。
27.一种系统,包括:
能够使用多个端口与至少一个外部设备通信的交换机,所述交换机包括集成电路(IC),所述IC能够接收多播数据分组并把所述多播数据分组和主设备向量存储在存储器中,所述IC还能够从存储器中出列所述主设备向量,至少部分地基于主设备向量产生至少一个附加设备向量,并且经由至少一个所述端口把所述数据分组和至少一个所述附加设备向量发送到至少一个所述外部设备。
28.如权利要求27所述的系统,其中:
所述交换机包括设备可达性表格,所述设备可达性表格包括至少一个数据条目,所述数据条目指示对于给定的所述外部设备在多个所述端口之中哪一个所述端口由所述IC用来把所述多播数据分组转发到所述至少一个外部设备,所述IC包括队列处理电路,所述队列处理电路能够读取所述设备可达性表格并产生端口向量,所述端口向量指示用来把所述多播数据分组转发到所述至少一个外部设备的至少一个所述端口。
29.如权利要求28所述的系统,其中:
所述主设备向量包括位序列,其中每个位表示相应的所述外部设备,所述队列处理电路包括能产生多个中间级端口向量的设备向量转发引擎电路,一个所述中间级端口向量对应所述主设备向量中的每个位,所述设备向量转发引擎电路还能够组合所述多个中间级端口向量以产生所述端口向量。
30.如权利要求29所述的系统,其中:
所述端口向量包括位序列,其中每个位表示用来把所述多播数据分组转发到所述至少一个所述外部设备的相应的所述端口,所述预存储处理电路还包括端口队列电路,所述端口队列电路能够把指向所述存储器中的所述第一设备向量的指针写到与至少一个所述端口相关的至少一个端口队列中。
31.如权利要求29所述的系统,其中:
所述设备向量转发引擎电路能够同时处理所述主设备向量中的每个所述位。
32.如权利要求27所述的系统,其中:
所述IC包括出列处理电路,所述出列处理电路能够读取设备可达性表格,所述设备可达性表格包括至少一个数据条目,所述数据条目指示对于给定的所述外部设备在多个所述端口之中哪一个端口由所述IC使用,从而标识把所述多播数据分组发送到所述至少一个外部设备的所述端口,基于所述设备可达性表格中识别的端口编号和所述主设备向量,所述出列处理电路还能够产生所述附加设备向量。
33.如权利要求32所述的系统,其中:
所述出列处理电路包括能够读取存储在与至少一个所述端口相关的至少一个端口队列中的至少一个指针的端口出列引擎电路,所述指针指向所述存储器中的所述第一设备向量,所述出列处理电路还能够从所述存储器中出列所述主设备向量,所述端口出列电路还能够确定在所述多个端口队列之中哪一个端口队列存储所述指针。
34.如权利要求32所述的系统,其中:
所述主设备向量包括位序列,其中每个位表示相应的所述外部设备,所述出列处理电路包括能产生多个中间级设备向量的设备向量转发引擎电路,一个所述中间级设备向量对应所述主设备向量中的每个位,所述设备向量转发引擎电路还能够组合所述多个中间级设备向量以产生所述至少一个附加设备向量。
35.如权利要求34所述的系统,其中:
所述设备向量转发引擎电路能够同时处理所述主设备向量中的每个所述位。
36.如权利要求32所述的系统,其中:
所述IC还能够将至少一个所述附加设备向量和所述多播数据分组直接转发到至少一个所述外部设备。
37.如权利要求27所述的系统,其中:从由另一交换机和计算机节点组成的组中选择所述至少一个外部设备。
38.如权利要求27所述的系统,其中:
所述至少一个外部设备包括第二交换机,并且其中所述交换机和所述第二交换机一起耦合在交换机堆栈中。
39.如权利要求1所述的设备,其中:
所述IC还能够基于随机数在所述多个端口之中选择至少一个端口,所述随机数表示在所述多个端口之中的给定端口的可用带宽的带宽分布。
40.如权利要求11所述的方法,还包括:
基于随机数在所述多个端口之中选择至少一个端口,所述随机数表示在所述多个端口之中的给定端口的可用带宽的带宽分布。
41.如权利要求19所述的产品,其中当所述指令被所述机器执行时导致如下附加的操作:
基于随机数在所述多个端口之中选择至少一个端口,所述随机数表示在所述多个端口之中的给定端口的可用带宽的带宽分布。
42.如权利要求27所述的系统,其中:
所述IC还能够基于随机数在所述多个端口之中选择至少一个端口,所述随机数表示在所述多个端口之中的给定端口的可用带宽的带宽分布。
CN200510128359.8A 2004-09-29 2005-09-28 使用设备向量能够路由多播数据分组的集成电路 Pending CN1770745A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/953,083 US7489683B2 (en) 2004-09-29 2004-09-29 Integrated circuit capable of routing multicast data packets using device vectors
US10/953083 2004-09-29

Publications (1)

Publication Number Publication Date
CN1770745A true CN1770745A (zh) 2006-05-10

Family

ID=35695641

Family Applications (2)

Application Number Title Priority Date Filing Date
CN200510128359.8A Pending CN1770745A (zh) 2004-09-29 2005-09-28 使用设备向量能够路由多播数据分组的集成电路
CN200580033137.6A Expired - Fee Related CN101032119B (zh) 2004-09-29 2005-09-29 能够使用设备向量路由多播数据分组的方法和装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN200580033137.6A Expired - Fee Related CN101032119B (zh) 2004-09-29 2005-09-29 能够使用设备向量路由多播数据分组的方法和装置

Country Status (4)

Country Link
US (1) US7489683B2 (zh)
EP (1) EP1794928A1 (zh)
CN (2) CN1770745A (zh)
WO (1) WO2006039620A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7684390B2 (en) 2004-12-30 2010-03-23 Intel Corporation Integrated circuit capable of transmitting probe packets across a stack of switches
CN101032119B (zh) * 2004-09-29 2012-12-12 英特尔公司 能够使用设备向量路由多播数据分组的方法和装置
CN106027426A (zh) * 2015-03-30 2016-10-12 凯为公司 防止欠载的分组存储器系统、方法和设备
US11874780B2 (en) 2015-03-30 2024-01-16 Marvel Asia PTE., LTD. Packet processing system, method and device utilizing a port client chain

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003292B2 (en) 2006-07-06 2015-04-07 LiveAction, Inc. System and method for network topology and flow visualization
US9282057B2 (en) 2009-05-11 2016-03-08 Brocade Communication Systems, Inc. Flexible stacking port
US9559897B2 (en) 2012-12-21 2017-01-31 Brocade Communications Systems, Inc. Device ID assignment in a system of devices
US9148387B2 (en) 2013-05-10 2015-09-29 Brocade Communications Systems, Inc. Hardware hash table virtualization in multi-packet processor networking systems
US9313102B2 (en) 2013-05-20 2016-04-12 Brocade Communications Systems, Inc. Configuration validation in a mixed node topology
US9853889B2 (en) 2013-05-20 2017-12-26 Brocade Communications Systems, Inc. Broadcast and multicast traffic reduction in stacking systems
US10284499B2 (en) 2013-08-22 2019-05-07 Arris Enterprises Llc Dedicated control path architecture for systems of devices
US9185049B2 (en) 2013-10-31 2015-11-10 Brocade Communications Systems, Inc. Techniques for simplifying stacking trunk creation and management
US9577932B2 (en) 2014-02-12 2017-02-21 Brocade Communications Systems, Inc. Techniques for managing ternary content-addressable memory (TCAM) resources in heterogeneous systems
US9692695B2 (en) 2014-03-27 2017-06-27 Brocade Communications Systems, Inc. Techniques for aggregating hardware routing resources in a multi-packet processor networking system
US9692652B2 (en) 2014-04-03 2017-06-27 Brocade Communications Systems, Inc. Framework for reliably communicating port information in a system of devices
US10091059B2 (en) 2014-12-16 2018-10-02 Arris Enterprises Llc Handling connections between network devices that support multiple port communication modes
US20170126542A1 (en) * 2015-10-28 2017-05-04 Futurewei Technologies, Inc. ICN Based Distributed Resource Directory for IoT Resource Discovery and Routing

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321813A (en) * 1991-05-01 1994-06-14 Teradata Corporation Reconfigurable, fault tolerant, multistage interconnect network and protocol
JPH07273781A (ja) * 1994-04-04 1995-10-20 Furukawa Electric Co Ltd:The 多重伝送装置
US6216167B1 (en) * 1997-10-31 2001-04-10 Nortel Networks Limited Efficient path based forwarding and multicast forwarding
US6049542A (en) * 1997-12-31 2000-04-11 Samsung Electronics Co., Ltd. Scalable multistage interconnection network architecture and method for performing in-service upgrade thereof
US5999531A (en) * 1998-04-17 1999-12-07 Cabletron Systems, Inc. Method and system for identifying ports and forwarding packets in a multiport switch
US6353612B1 (en) * 1998-06-19 2002-03-05 Brocade Communications Systems, Inc. Probing device
US6603772B1 (en) * 1999-03-31 2003-08-05 Cisco Technology, Inc. Multicast routing with multicast virtual output queues and shortest queue first allocation
US6778547B1 (en) * 1999-05-21 2004-08-17 Advanced Micro Devices, Inc. Method and apparatus for improving throughput of a rules checker logic
US6813268B1 (en) * 1999-05-21 2004-11-02 Broadcom Corporation Stacked network switch configuration
US6460088B1 (en) * 1999-05-21 2002-10-01 Advanced Micro Devices, Inc. Method and apparatus for port vector determination at egress
US7027437B1 (en) * 1999-05-21 2006-04-11 Advanced Micro Devices, Inc. Network switch multiple-port sniffing
US6717914B1 (en) * 1999-05-27 2004-04-06 3Com Corporation System for probing switched virtual circuits in a connection oriented network
WO2001015393A1 (en) 1999-08-20 2001-03-01 Broadcom Corporation Cluster switching architecture
US6643294B1 (en) * 1999-12-09 2003-11-04 Verizon Laboratories Inc. Distributed control merged buffer ATM switch
US6366563B1 (en) * 1999-12-22 2002-04-02 Mci Worldcom, Inc. Method, computer program product, and apparatus for collecting service level agreement statistics in a communication network
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
US6870844B2 (en) * 2001-03-06 2005-03-22 Pluris, Inc. Apparatus and methods for efficient multicasting of data packets
EP1259026A1 (en) 2001-05-15 2002-11-20 Motorola, Inc. Method and device for managing mobile nodes
AU2002323364A1 (en) * 2001-08-24 2003-03-10 Peribit Networks, Inc. Dynamic multi-point meshed overlay network
US7167471B2 (en) * 2001-08-28 2007-01-23 International Business Machines Corporation Network processor with single interface supporting tree search engine and CAM
US7058053B1 (en) * 2001-10-12 2006-06-06 Avago Technologies General Ip Pte. Ltd. Method and system to process a multicast request pertaining to a packet received at an interconnect device
US20030174725A1 (en) * 2002-03-15 2003-09-18 Broadcom Corporation IP multicast packet replication process and apparatus therefore
CN1146192C (zh) * 2002-04-17 2004-04-14 华为技术有限公司 以太网交换芯片输出队列管理调度方法和装置
US7277426B2 (en) * 2002-05-24 2007-10-02 Mosaid Technologies, Inc. Method and apparatus for reordering entries in a multi probe lookup
US7336660B2 (en) * 2002-05-31 2008-02-26 Cisco Technology, Inc. Method and apparatus for processing packets based on information extracted from the packets and context indications such as but not limited to input interface characteristics
US7237262B2 (en) * 2002-07-09 2007-06-26 Itt Manufacturing Enterprises, Inc. System and method for anti-replay processing of a data packet
US7307996B2 (en) * 2002-07-30 2007-12-11 Brocade Communications Systems, Inc. Infiniband router having an internal subnet architecture
US7440470B2 (en) * 2003-02-07 2008-10-21 Fujitsu Limited Multicasting in a high-speed switching environment
US20050141502A1 (en) * 2003-12-30 2005-06-30 Alok Kumar Method and apparatus to provide multicast support on a network device
US7912940B2 (en) * 2004-07-30 2011-03-22 Microsoft Corporation Network system role determination
US7489683B2 (en) 2004-09-29 2009-02-10 Intel Corporation Integrated circuit capable of routing multicast data packets using device vectors
US7684390B2 (en) * 2004-12-30 2010-03-23 Intel Corporation Integrated circuit capable of transmitting probe packets across a stack of switches

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101032119B (zh) * 2004-09-29 2012-12-12 英特尔公司 能够使用设备向量路由多播数据分组的方法和装置
US7684390B2 (en) 2004-12-30 2010-03-23 Intel Corporation Integrated circuit capable of transmitting probe packets across a stack of switches
CN106027426A (zh) * 2015-03-30 2016-10-12 凯为公司 防止欠载的分组存储器系统、方法和设备
CN106027426B (zh) * 2015-03-30 2020-07-07 马维尔亚洲私人有限公司 防止欠载的分组存储器系统、方法和设备
US11874780B2 (en) 2015-03-30 2024-01-16 Marvel Asia PTE., LTD. Packet processing system, method and device utilizing a port client chain

Also Published As

Publication number Publication date
EP1794928A1 (en) 2007-06-13
CN101032119A (zh) 2007-09-05
WO2006039620A1 (en) 2006-04-13
US7489683B2 (en) 2009-02-10
US20060072571A1 (en) 2006-04-06
CN101032119B (zh) 2012-12-12

Similar Documents

Publication Publication Date Title
CN1770745A (zh) 使用设备向量能够路由多播数据分组的集成电路
US8005092B2 (en) Two-dimensional pipelined scheduling technique
US7023797B2 (en) Flexible aggregation of output links
Scheideler Universal routing strategies for interconnection networks
EP0848891B1 (en) Switching device, method and apparatus
CN108768866B (zh) 组播报文跨卡转发方法、装置、网络设备及可读存储介质
KR19990087752A (ko) 효율적인 출력 요구 패킷 스위치와 방법
US7054950B2 (en) Network thread scheduling
CN102185772B (zh) 数据中心网络系统的路由方法
WO2006114285A1 (en) Multicast/broadcast extension to a point-to-point unicast-only packet switch system
WO2009155253A1 (en) Cascaded memory tables for searching
AU2003218229B2 (en) Packet scheduling mechanism
US9628439B2 (en) Systems and methods for managing network address information
TW201246845A (en) Method and apparatus for routing in a single tier switched network
Zhang et al. Space‐memory‐memory Clos‐network switches with in‐sequence service
US6931014B2 (en) Method for generating and transmitting a train packet in an ATM switch system
CN109768976A (zh) 用于灵活以太网的发送与接收oam信息的方法、及装置
CN115695339A (zh) 减少多播复制序列中的偏差的系统及方法
JP3575538B2 (ja) 移動通信システムのルーチング処理方法及び無線基地局制御装置
TWI225346B (en) Crossbar switch controller and method of optimizing the same
CN117221230A (zh) 一种数据传输方法以及相关设备
To Non-blocking and distributed routing principles in ATM packet switching networks
Yoon A study of high performance packet switches for internetworking of integrated services local networks
Chan et al. Fault tolerance in Clos–Knockout multicast ATM switch
Lam Concentrators in large-scale packet switching

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication