CN102474449A - 基于虚拟接口的交换装置和方法 - Google Patents

基于虚拟接口的交换装置和方法 Download PDF

Info

Publication number
CN102474449A
CN102474449A CN2010800255814A CN201080025581A CN102474449A CN 102474449 A CN102474449 A CN 102474449A CN 2010800255814 A CN2010800255814 A CN 2010800255814A CN 201080025581 A CN201080025581 A CN 201080025581A CN 102474449 A CN102474449 A CN 102474449A
Authority
CN
China
Prior art keywords
port
virtual
physical
grouping
packet
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
CN2010800255814A
Other languages
English (en)
Other versions
CN102474449B (zh
Inventor
U·萨夫莱
D·梅尔曼
T·达涅尔
N·比沙拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kaiwei International Co
Marvell International Ltd
Marvell Asia Pte Ltd
Original Assignee
Mawier International Trade Co Ltd
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 Mawier International Trade Co Ltd filed Critical Mawier International Trade Co Ltd
Publication of CN102474449A publication Critical patent/CN102474449A/zh
Application granted granted Critical
Publication of CN102474449B publication Critical patent/CN102474449B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications

Landscapes

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

Abstract

一种网络设备包括多个物理端口以及耦合到该多个物理端口的分组处理流水线。该分组处理流水线被配置为向经由其中一个物理端口接收的分组分配多个虚拟端口中的一个虚拟端口,其中,该多个虚拟端口的数量大于该多个物理端口的数量,并且其中,对于该物理端口中的至少一些中的每一个,若干个虚拟端口对应于一个物理端口。该分组处理流水线还被配置为基于所分配的虚拟端口,向该分组分配多个虚拟域中的一个虚拟域,并且基于i)所分配的虚拟端口,ii)所分配的虚拟域,以及iii)该分组的头部字段中的一项或多项来处理该分组,包括确定该分组将要被转发到的零个、一个或多个物理端口。

Description

基于虚拟接口的交换装置和方法
相关申请的交叉引用
本申请要求2009年11月2日递交的、标题为“ePORT,eVLANand L2MLL ARCHITECTURE FOR L2VPN SUPPORT”的美国临时专利申请No.61/257,406的权益,通过参考的方式将该申请的全部公开内容并入本申请。
技术领域
本发明一般而言涉及通信网络,更具体而言涉及网络交换设备。
背景技术
此处所提供的背景技术说明是为了对本公开的背景进行一般性说明。当前署名的发明人的某些工作(在此背景技术部分中作出描述的工作)以及说明书中未以其他方式描述为申请时的现有技术的内容,无论是以明确还是隐含的方式均不被视为相对于本公开的现有技术。
一些网络应用需要大量的端口之间的交换。例如,典型的数据中心包括大量的服务器以及用于将该服务器可通信地耦合到外部网络连接(例如骨干网链路)的交换机。作为另一个示例,大容量网站服务器系统(服务器群)可以包括大量的网络服务器以及用于将该网络服务器可通信地耦合到骨干网链路的交换机。
在这样的应用中,利用能够在大量的端口之间进行交换的交换系统,使得能够将来自骨干网线路的业务路由到大量的服务器,并且反之亦然。这样的交换系统可以包括大量的交换机并且每个交换机能够在数个端口之间进行交换。
利用网桥设备,通常通过诸如IEEE 802.1Q标准或例如由国际工程任务组(IETF)所颁布的其他标准之类的各种标准来定义操作特性。在一些实例中,运营商第二层VPN(L2VPN)技术可以在第二层或第三层基础架构网络上实现逻辑网桥,此类技术的示例包括VPLS、MAC-in-MAC以及某些新兴的无线局域网(WLAN)标准。
发明内容
在一个实施方式中,一种网络设备包括多个物理端口以及耦合到该多个物理端口的分组处理流水线。该分组处理流水线被配置为向经由该物理端口中的一个物理端口接收的分组分配多个虚拟端口中的一个虚拟端口,其中,该多个虚拟端口的数量大于该多个物理端口的数量,并且其中,对于该物理端口中的至少一些中的每一个,若干个虚拟端口对应于一个物理端口。该分组处理流水线还被配置为基于所分配的虚拟端口,向该分组分配多个虚拟域中的一个虚拟域,并且基于i)所分配的虚拟端口,ii)所分配的虚拟域,以及iii)该分组的头部字段中的一项或多项来处理该分组,包括确定该分组将要被转发到的零个、一个或多个物理端口。
在另一个实施方式中,一种分组处理方法包括:经由源物理端口从多个物理端口接收分组并且向经由该物理端口中的一个物理端口接收的分组分配多个虚拟端口中的一个虚拟端口,其中,该多个虚拟端口的数量大于该多个物理端口的数量,并且其中,对于该物理端口中至少一些中的每一个,若干个虚拟端口对应于一个物理端口。该方法还包括基于所分配的虚拟端口,向该分组分配多个虚拟域中的一个虚拟域,并且基于i)所分配的虚拟端口,ii)所分配的虚拟域,以及iii)该分组的头部字段中的一项或多项,利用分组处理流水线来处理该分组,包括确定该分组将要被转发到的零个、一个或多个物理端口。
在另一个实施方式中,一种网络设备包括多个物理端口以及耦合到该多个物理端口的分组处理流水线,该分组处理流水线包括多个流水线单元。该多个流水线单元包括:被配置为向经由该物理端口中的一个物理端口接收的分组分配多个虚拟端口中的一个虚拟端口的单元,其中,该多个虚拟端口的数量大于该多个物理端口的数量,并且其中,对于该物理端口中的至少一些中的每一个,若干个虚拟端口对应于一个物理端口。该多个流水线单元还包括被配置为基于所分配的虚拟端口,向该分组分配多个虚拟域中的一个虚拟域的一个或多个单元,以及一个或多个下游单元,被配置为基于所分配的虚拟端口、所分配的虚拟域以及该分组的头部的字段中的一项或多项来处理该分组。被配置为处理该分组的该一个或多个下游单元包括用于确定该分组将要被转发到的零个、一个或多个目标虚拟端口的一个或多个转发引擎,以及被配置为将该分组将要被转发到的一个或多个目标虚拟端口映射到一个或多个物理端口的一个或多个单元。
在另一个实施方式中,一种网络设备包括多个物理端口以及耦合到该多个物理端口的分组处理流水线。该分组处理流水线被配置为向经由该物理端口中的一个物理端口接收的分组分配多个虚拟端口中的一个虚拟端口,其中,该多个虚拟端口的数量大于该多个物理端口的数量,并且其中,对于该物理端口中的至少一些中的每一个,若干个虚拟端口对应于一个物理端口。该分组处理流水线还被配置为基于所分配的虚拟端口,向该分组分配多个虚拟域中的一个虚拟域,其中,该虚拟域对应于该多个虚拟端口的子集。并且,该分组处理流水线被配置为基于所分配的虚拟域来确定该分组将要被转发到的虚拟端口集合或者物理端口集合的指示符,并且确定该指示符是对应于虚拟端口还是物理端口。该分组处理流水线被配置为如果该指示符对应于虚拟端口,则在该分组处理流水线中的第一流水线单元处将该分组复制给该虚拟端口集合,并且如果该指示符对应于虚拟端口,则将该虚拟端口集合映射到一个或多个物理端口。此外,该分组处理流水线被配置为如果该指示符对应于物理端口,则在该分组处理流水线中的第二流水线单元处将该分组复制给该物理端口集合,并且经由一个或多个物理端口发送该分组。
在另一个实施方式中,一种分组处理方法包括:经由源物理端口从多个物理端口接收分组,并且向经由该物理端口中的一个物理端口接收的分组分配多个虚拟端口中的一个虚拟端口,其中,该多个虚拟端口的数量大于该多个物理端口的数量,并且其中,对于该物理端口中的至少一些中的每一个,若干个虚拟端口对应于一个物理端口。另外,该方法包括基于所分配的虚拟端口,向该分组分配多个虚拟域中的一个虚拟域,其中,该虚拟域对应于该多个虚拟端口的子集,并且,基于所分配的虚拟域来确定该分组将要被转发到的虚拟端口集合或者物理端口集合的指示符。该方法还包括确定该指示符是对应于虚拟端口还是物理端口,并且,如果该指示符对应于虚拟端口,则在该分组处理流水线中的第一流水线单元处将该分组复制给该虚拟端口集合;如果该指示符对应于虚拟端口,则将该虚拟端口集合映射到一个或多个物理端口。此外,该方法还包括如果该指示符对应于物理端口,则在该分组处理流水线中的第二流水线单元处将该分组复制给该物理端口集合,并且经由一个或多个物理端口发送该分组。
附图说明
图1是根据本公开的一个实施方式的示例性网络设备的功能图;
图2是根据一个实施方式,利用图1的网络设备的网络的方框图;
图3是根据本公开的另一个实施方式的示例性网络设备的图;
图4是根据本公开的一个实施方式,用于在交换机的分组处理流水线中处理分组的示例性方法的流程图;
图5是根据本公开的一个实施方式,用于向分组分配扩展端口(eport)的示例性方法的流程图;
图6是根据本公开的一个实施方式,用于基于扩展端口向分组分配属性的示例性方法的流程图;
图7是根据本公开的一个实施方式,用于将扩展端口映射到物理接口的示例性方法的流程图;
图8是根据本公开的一个实施方式,用于执行分组的第二层复制的示例性方法的方框图;
图9是根据一个实施方式,利用图1的网络设备的另一个网络的方框图。
具体实施方式
图1是根据本公开的一个实施方式,被配置为处理并且转发数据单元(即分组)的示例性网络设备10的功能图。在一些实施方式和/或实现中,网络设备10作为运营商边缘(PE)设备进行操作,并且网络设备10在本文中有时称为“PE设备10”。网络设备包括多个物理端口12和分组处理器14。分组处理器14处理经由物理端口12进入的分组,包括:做出转发判决(即经由物理端口12外发),确定是否应该捕获分组或者将其镜像到另一个处理器(未显示)以便进一步的分析,确定是否应该丢弃分组,诸如此类。
网络设备10包括M个物理端口12并且其被配置为利用高达N个扩展端口16(eport),其中N>M。在一个实施方式中,扩展端口不是物理实体,而仅仅是逻辑分配。因此,扩展端口在本文中有时称为“虚拟端口”。
在一个实施方式中,网络设备10被配置为使得一些物理端口12对应于一个且唯一一个扩展端口16,而其他物理端口12中的每个物理端口12对应于多于一个扩展端口16。例如,线条18指示物理端口12-1对应于扩展端口16-1,而线条20指示物理端口12-2对应于扩展端口16的组22。类似地,线条24指示物理端口12-3对应于扩展端口16-2,而线条26指示物理端口12-4对应于扩展端口16的组28。
映射器32将扩展端口16与物理端口12对应。例如,映射器将物理端口12映射到扩展端口16,并且反之亦然。例如,如图1中所示的,映射器32将物理端口12-1映射到扩展端口16-1,并且反之亦然。类似地,映射器32将物理端口12-2映射到扩展端口16的组22,并且反之亦然。同样如图1中所示的,映射器32将物理端口12-3映射到扩展端口16-2,并且反之亦然。类似地,映射器32将物理端口12-4映射到扩展端口16的组28,并且反之亦然。
映射器32向进入分组分配扩展端口16。因此,例如,映射器32将单个物理端口12-2上进入的业务分配给组22中的不同扩展端口16。在一个实施方式中,映射器32利用分组中的信息来确定应该将分组分配给哪个扩展端口16,该信息例如包括隧道封装信息、虚拟局域网(VLAN)标识符、服务质量(QoS)指示符等在内的头部信息。例如,映射器32将单个物理端口12-2上进入的、但是对应于不同的隧道接口的业务分配给组22中的不同扩展端口16。作为另一个示例,映射器32将单个物理端口12-2上进入的、但是具有不同的QoS要求的业务分配给组22中的不同扩展端口16。在一个实施方式中,映射器32被配置为通过将扩展端口16的指示包括在与进入分组相关联的分组描述符中来向该进入分组分配扩展端口16。在一个实施方式中,映射器32包括到该进入分组的源扩展端口标识符,以指示分配给该进入分组的扩展端口16。
类似地,映射器32向经由扩展端口16外发的业务分配物理端口12。例如,映射器32将经由扩展端口16的组28外发的业务分配给相同的物理端口12-4。作为另一个示例,映射器32将经由扩展端口16-2外发的业务分配给物理端口12-3。在一个实施方式中,映射器32被配置为通过将物理端口12的指示包括在与外发分组相关联的分组描述符中来向该外发分组分配物理端口12。在一个实施方式中,映射器32将外发物理端口标识符包括在与该外发分组相对应的分组描述符中,以指示分配给该外发分组的物理端口12。在另一个实施方式中,映射器32将外发分组引导到与分配给该外发分组的物理端口12相关联的发送队列存储器。在一个实施方式中,该发送队列存储器存储将要经由相关联的物理端口12发送的分组。
由分组处理器14处理已被分配了源扩展端口的进入分组(由箭头40指示)。在一个实施方式中,分组处理器14通常确定应该将进入分组40转发到哪个或哪些扩展端口16(外发端口),并且随后向该分组分配所确定的外发扩展端口16。更一般而言,分组处理器14执行分组转发和/或桥接功能并且确定应该将分组转发到哪个/哪些扩展端口。在一个实施方式中,分组处理器14将指示分配给该分组的外发扩展端口16的外发扩展端口指示符或者一组外发扩展端口16的指示符包括在分组描述符中。然后由映射器32将已被分配了外发扩展端口的外发分组(由箭头44指示)映射到物理端口12。
在一个实施方式中,网络设备10被配置为将分组与虚拟域(在本文中又被称为“扩展虚拟局域网”或“eVLAN”)相关联。eVLAN与典型的VLAN类似,但是对应于扩展端口而不是物理端口。在一个实施方式中,网络设备10被配置为处理的eVLAN的数量比电气电子工程师协会(IEEE)802.11Q标准中所规定的12比特的VLAN标识符所能够表示的VLAN的最大数量更多。
在一个实施方式中,eVLAN对应于一组扩展端口16。例如在一个实施方式中,扩展端口16的组22是eVLAN。类似地,扩展端口16的组28是另一个eVLAN。在图1中,由虚线方框指示eVLAN。eVLAN可以包括与其他eVLAN相对应的扩展端口。例如,图1示出了包括多个eVLAN(如eVLAN 28、eVLAN 52和eVLAN 54)的eVLAN 50。另外,eVLAN可以包括另一个eVLAN的扩展端口的子集。例如,图1示出了eVLAN 54,eVLAN 54包括eVLAN 52的扩展端口16的子集。
eVLAN分配单元60向分组分配eVLAN。例如,eVLAN分配单元60基于由映射器32向进入分组40分配的源扩展端口16、进入分组40的头部中的信息等中的一项或多项,向进入分组40分配eVLAN。作为另一个示例,在一些情况中,eVLAN分配单元60基于由分组处理器向外发分组44分配的外发扩展端口16、外发分组44的头部中的信息等中的一项或多项,向外发分组44分配eVLAN。在一个实施方式中,eVLAN分配单元60通过将eVLAN指示符包括在与分组相对应的分组描述符中,来向该分组分配eVLAN。
属性分配单元66基于向分组分配的扩展端口和/或向分组分配的eVLAN来向该分组分配一个或多个属性。属性由分组处理器14在处理分组时利用,并且属性指示分组处理器14应该怎样处理分组。根据各种实施方式,由属性分配单元66分配的属性的示例包括:1)是否要转发分组;2)是否要捕获、镜像分组等;3)是否要获知媒体访问控制(MAC)源地址/进入扩展端口;4)是否要实现生成树协议;5)当分组的源地址对于网络设备10未知时要采取的动作;6)对于分组是否能够进行第三层组播和/或广播镜像;7)是否应该执行计量以及应该执行什么类型的计量(例如由于拥塞而丢弃分组或者当特定流中的分组速率超过阈值时丢弃分组);8)是否应该做出测量以及应该做出什么类型的测量(例如增加与特定流相对应的计数器、计数分组中的字节等等);9)是否应该执行采样以及应该如何执行采样;10)是否应该应用时间戳;等等。
虽然在图1中为了清楚起见,将映射器32、eVLAN分配单元60和属性分配单元66显示为在分组处理器14的外部,但是在一些实施方式中,映射器32、eVLAN分配单元60和属性分配单元66中的一个或多个是分组处理器14的元件。另外,在一些实施方式中,映射器32、eVLAN分配单元60和属性分配单元66中的一个或多个中的每一个是用于在分组处理的不同阶段向分组分配数据的分布式单元。例如在一个实施方式中,分组处理器14包括处理流水线,并且映射器32、eVLAN分配单元60和属性分配单元66中的一个或多个中的每一个分布在该处理流水线的不同阶段上并且在流水线的不同阶段向分组分配数据。
为了说明网络设备10的操作,参考图2描述了一种示例性情况。图2是根据一个实施方式,利用网络设备10的示例性网络70的方框图。在图2的实施方式中,网络设备10是运营商边缘设备(PE)或者是PE的组成部分。网络70包括具有其他PE 74的多协议标记交换(MPLS)核心网72。PE 10和PE 74经由虚拟专用LAN服务(VPLS)链接。PE 10经由多租用单元交换机(MTU)78可通信地耦合到多个客户网络76。
在图2中所示的示例性情况中,PE 10经由MPLS核心网72接收分组80。映射器32向分组80分配与MPLS核心网72相对应的扩展端口16(图2中未显示)。eVLAN分配单元60向分组80分配eVLAN 28(即图1中所示的扩展端口16的组28)。eVLAN 28包括分别与客户网络76A、76B和76C相对应的扩展端口16A、16B和16C,并且还包括与MPLS核心网72相对应的扩展端口。
在图2中所示的示例性情况中,分组处理器14不认识分组10的目的地地址(DA)并且因此判决应该将分组80洪泛(flood)到eVLAN 28。分组处理器14为扩展端口16A、16B和16C复制分组80,但是过滤掉与MPLS核心网72相对应的扩展端口,使得分组80不被发送回到MPLS核心网72。
属性分配单元66向与扩展端口16A、16B和16C相对应的分组副本分配不同的属性。例如,属性分配单元66向扩展端口16A的分组副本分配如下属性以生成分组84A,该属性指示要使用伪线(PW)仿真边缘到边缘(PWE3)控制字把该分组隧道封装在MPLS伪线(PW)标记1中。作为另一个示例,属性分配单元66向扩展端口16B的分组副本分配如下属性以生成分组84B,该属性指示:i)应该从该分组中去除两个VLAN标签;ii)应该向该分组添加新VLAN标签;以及iii)该分组要被隧道封装到MPLS PW标记2中。作为又一个示例,属性分配单元66向扩展端口16C的分组副本分配如下属性以生成分组84C,该属性指示:i)应该向该分组添加附加VLAN标签;ii)该分组要被隧道封装到MPLS PW标记3中。分组处理器14利用分配的属性来适当地处理分组副本并且生成分组84A、84B和84C。
映射器32将扩展端口16A、16B和16C中的每一个映射到单个物理端口12-4。因此,经由单个物理端口12-4向MTU 78发送三个不同的分组84A、84B和84C(全都对应于接收的分组80)。
图3是根据一个实施方式被配置为处理并且转发数据单元(即分组)的示例性网络设备100的方框图。网络设备100是图1的网络设备10的一个示例性实现。网络设备100被配置为在处理和转发分组时利用扩展端口和eVLAN。网络设备100被配置为处理比网络设备100的物理端口的数量更多的扩展端口。在一些实施方式和情况中,将单个物理端口上进入的业务分配给不同的扩展端口。例如,在同一物理端口上进入但是与不同的隧道接口相对应的业务被分配给不同的扩展端口。参考图2,例如在一个示例性情况中,经由单个物理端口12-4从MTU接收的业务包括来自三个不同客户网络76的分组,并且与不同客户网络76相对应的分组被不同地隧道封装。作为另一个示例,在同一物理端口上进入但是与不同的服务质量(QoS)要求相对应的业务被分配给不同的扩展端口。
网络设备100被配置为处理的eVLAN的数量比与电气电子工程师协会(IEEE)802.11Q标准中所规定的12比特的VLAN标识符相对应的VLAN的数量更多。
在一个实施方式中,在包括多个互联的交换机的交换机系统(未显示)中利用网络设备100。在该实施方式中,网络设备100经由一些物理端口108、116耦合到该交换机系统中的其他交换机。网络设备100包括耦合到一个或多个进入物理端口108并且耦合到一个或多个外发物理端口116的分组处理流水线102。在一个实施方式中,该分组处理流水线包括耦合到外发部分112的进入部分104。
在一个实施方式中,将包括网络设备100在内的多个交换机实现在多个单独的集成电路(IC)上。在一些其他实施方式中,将网络设备100和该多个交换机中的一个或多个其他交换机实现在单个IC上。在一个这种实施方式中,网络设备100经由一个或多个对应的级联端口耦合到该多个交换机中的一个或多个其他交换机。
在一些实施方式中,进入物理端口108和外发物理端口116耦合到多个不同的网络以及该交换系统中的其他交换机。例如在各种实施方式中,进入物理端口108和外发物理端口116耦合到运营商网络、一个或多个客户网络和/或该交换系统中的一个或多个其他交换机。为了清楚起见,仅示出一个进入物理端口和一个外发物理端口。在一个实施方式中,分组处理流水线耦合到多个物理端口并且被配置为在该多个物理端口之间转发分组。
在一个实施方式中,进入物理端口108和外发物理端口116向其他设备(如网桥)、该交换系统中的其他交换机、末端点等提供多个双向点对点通信链路。
在一个实施方式中,分组处理流水线102通常从进入物理端口108向适当的外发物理端口116传送数据分组。在一些实施方式中,至少一些物理端口是输入/输出端口,并且至少一些进入物理端口108和外发物理端口116对应于相同的物理端口。
如图3中所示,进入部分104和外发部分112中的每一个包括多个串行耦合的处理单元。通常,流水线的每个单元可选择地处理分组或与该分组相对应的分组描述符,并且随后向流水线中的下一个单元传递该分组或分组描述符。在一个实施方式中,分组描述符包括来自该分组的一些信息,例如该分组的一些或全部头部信息。在一些实施方式中,分组描述符还包括其他信息,例如指示该分组被存储在与网络设备100相关联的存储器中的哪里的指示符。为了说明简单起见,在下文中使用术语“分组”来指代分组本身或者与该分组相关联的分组描述符。流水线102中的每个单元可以处理或不处理特定分组。例如在一些实例中,一个单元仅仅将分组传递流水线102中的下一个单元。在一个实施方式中,进入部分104的最后一个单元经由交换接口(fabric interface)218向外发部分112的第一个单元传递分组。
在一个实施方式中,进入部分104和外发部分112的每个单元或至少一些单元包括对应的存储器,或者以其他方式与对应的存储器相关联。在一个实施方式中,将由单元接收的分组存储在与该单元相关联的存储器中。
根据一个实施方式,进入部分104向进入分组分配扩展端口。至少在一些情况中,进入部分104还向进入分组分配eVLAN。进入部分104还基于该扩展端口和/或eVLAN,向该分组分配属性。在一些实施方式和情况中,随着该分组被进入部分104处理,重新分配扩展端口和/或eVLAN。在一些实施方式和情况中,外发部分112还基于该扩展端口和/或eVLAN,向分组分配属性。流水线112的单元利用所分配的属性来确定例如要如何处理该分组。例如在一个实施方式中,根据基于扩展端口和/或eVLAN(即当扩展端口的数量超过网络设备100的物理端口的数量时,基于扩展端口;并且/或者当可能的eVLAN的数量超过电气电子工程师协会(IEEE)802.11Q标准中所规定的12比特的VLAN标识符所能够表示的VLAN的最大数量时,基于用于指示一组扩展端口的eVLAN)所分配的属性来确定是否转发、捕获或镜像分组。作为另一个示例,在一个实施方式中,根据基于扩展端口和/或eVLAN所分配的属性来获知分组的源地址或者禁止获知该源地址。
在一个实施方式中,分组处理流水线102包括至少部分地分布在多个处理单元之间的映射单元117。映射单元117通常将物理端口映射到扩展端口,反之亦然,并且与参考图1所讨论的映射单元32类似地操作。在一个实施方式中,分组处理流水线102还包括至少部分地分布在多个处理单元之间的eVLAN分配单元118。在其他实施方式中,eVLAN分配单元118不是分布在多个处理单元之间,而是实现在单个处理单元中。eVLAN分配单元118通常向eVLAN分配分组,并且与参考图1所讨论的eVLAN分配单元60类似地操作。另外,在一个实施方式中,分组处理流水线102包括至少部分地分布在多个处理单元之间的属性分配单元119。在其他实施方式中,属性分配单元119不是分布在多个处理单元之间,而是实现在单个处理单元中。属性分配单元119通常基于分配给分组的扩展端口和/或eVLAN来向分组分配属性,其中该属性指示分组处理流水线102应该如何处理该分组。属性分配单元119与参考图1所讨论的属性分配单元66类似地操作。
在图3的示例中,进入部分104包括耦合到进入物理端口108的端口媒体访问控制(MAC)接收器单元120。端口MAC接收器单元120通常实现媒体访问控制功能。端口MAC接收器单元120通常还将进入部分104与网络设备100的特定物理接入端口对接(即如果网络设备100包括多个物理进入端口,那么物理设备100包括多个各自的端口MAC接收器单元120)。在另一个实施方式中,一个端口MAC接收器单元120将进入部分104与网络设备100的多个物理进入端口(出于清楚起见而未显示)对接。
头部解码单元122耦合到端口MAC接收器单元120并且通常解码经由进入物理端口108接收的每个分组的头部。这可以包括解析或者识别该头部的不同段以供进入流水线104中的后续单元使用并且可选地供外发流水线112中的单元使用。在网络设备100是交换系统中的多个交换机中的一个交换机的实施方式中,至少一些分组可以将分布式交换架构(DSA)标签包括在分组的头部中。DSA标签包括被交换系统用于通过该交换系统来转发分组的信息。由交换系统中的源交换机设备将DSA标签包括在分组的头部中,并且在分组从该交换系统外发之前或者在该分组从该交换系统外发时,由该交换系统中的目标交换机设备从该分组中去除该DSA标签。在一个实施方式中,DSA标签包括以下一项或多项的指示:i)源设备(即交换系统中的源交换机设备),ii)目标设备(即交换系统中的目标交换机设备),iii)物理源端口,iv)物理目标端口等等。在一个实施方式中,DSA标签另外或者可选择地包括以下一项或多项的指示:i)源扩展端口,ii)目标扩展端口,iii)eVLAN,iv)用于指示应该向其复制该分组的扩展端口的列表的索引和/或v)用于指示应该向其复制该分组的物理端口的列表的索引(在本文中分别被称为eVIDX和VIDX),等等。如下文将更详细地描述的,当例如要广播、组播、洪泛的分组等时,网络设备100的复制单元利用VIDX来确定要创建分组的多少副本,并且确定该副本应该被传递到哪个物理端口。类似地,当分组例如将要被广播、组播、洪泛等时,网络设备100的复制单元利用eVIDX来确定要创建分组的多少副本,并且确定该副本应该被传递到哪个扩展端口。
在一个实施方式中,VIDX是到用于指示分组将要被复制到的物理端口的VIDX表格的索引。在一个实施方式中,VIDX表格中的每个条目包括到分组将要被复制到的物理端口的列表的指针。类似地,在一个实施方式中,eVIDX是到用于指示分组将要被复制到的扩展端口的复制表格的索引。在一个实施方式中,复制表格中的每个条目包括到分组将要被复制到的扩展端口的列表的指针。在另一个实施方式中,并且如接下来所更详细地描述的,取决于eVIDX的值,eVIDX是到VIDX表格的索引或者到复制表格的索引。
在一些实施方式中,将eVIDX和VIDX的使用结合。例如在一个实施方式中,eVIDX复制表格中的扩展端口条目指示VIDX。在另一个实施方式中,将与eVIDX复制表格中的条目相对应的扩展端口映射到VIDX。在这两个实施方式中,向由eVIDX所指示的扩展端口和由VIDX所指示的物理端口都复制该分组。
MAC2ME和TTI分类单元124耦合到头部解码单元122。MAC2ME和TTI分类单元124通常执行多个功能。首先,MAC2ME和TTI分类单元124向每个分组分配源扩展端口。在一个实施方式中,分配源扩展端口包括将源扩展端口指示符包括到该分组的分组描述符中。在一些实施方式中,MAC2ME和TTI分类单元124向分组重新分配不同的源扩展端口。下面将更详细地描述源扩展端口的分配和重新分配。在一个实施方式中,扩展端口是20比特的值,其指示物理端口或虚拟端口。在其他实施方式中,由不同的合适数量的比特来表示扩展端口。在网络设备100是交换系统中的多个交换机中的一个交换机的一个实施方式中,该扩展端口对于网络设备100是唯一的但是对于该系统中的其他交换机不是唯一的。在一些实施方式和情况中,一个或多个扩展端口对于系统中的一个或多个其他交换机是唯一的。
第二,MAC2ME和TTI分类单元124向至少一些分组分配eVLAN。在一个实施方式中,分配eVLAN包括将eVLAN指示符包括在该分组的分组描述符中。在该分组已经包括VLAN标识符(VID)(如IEEE 802.1Q VID)的至少一些实例中,基于该分组中的VID来分配eVLAN。在一些实例中,当分组不包括VID时,MAC2ME和TTI分类单元124分配eVLAN。在一个实施方式中并且在一些情况中,基于分组头部中的MAC源地址以及可选择地基于其他信息来分配eVLAN。下文将更详细地描述eVLAN的分配。在一个实施方式中,eVLAN是16比特的值。
在其他实施方式中,由不同的合适数量的比特来表示eVLAN。
eVLAN的分配基于一个或多个因素。例如在一个实施方式中,如果分组包括具有VID的DSA标签,那么eVLAN的分配基于该DSA标签中的VID。在一些实施方式中,eVLAN的分配基于源物理端口和/或源扩展端口。在一个实施方式中并且至少在一些情况中,如果分组包括VID(例如IEEE 802.1Q VID),那么eVLAN的分配基于该VID。在一个实施方式中,在至少一些情况中,即使分组包括VID(例如IEEE 802.1Q VID),eVLAN的分配也不基于VID。在一些实施方式中,eVLAN的分配基于隧道接口。
第三,MAC2ME和TTI分类单元124通常执行两个查找功能。在第一查找功能(MAC2ME查找)中,标识意图发往MAC地址的分组、由网络设备100识别的VLAN对。在一个或多个后续功能或流水线单元中可以使用该标识。第二查找功能(隧道终止和接口分配(TTI)查找)用于隧道终止标识和接口分配、重新分配扩展端口(如上所述)和/或根据第二层或第三层头部字段分配eVLAN(如上所述)。
在一个实施方式中,TTI查找包括使用正在被处理的分组的头部的字段和其他信息(如MAC2ME查找的结果)作为查找关键字来从一个或多个表格获取数据。在一个实施方式中,该表格数据包括将要采取的动作的指示。在一个实施方式中,在一些情况中,TTI查找指示该分组与一个或多个TTI动作相关联,例如向该分组重新分配扩展端口、分配eVLAN、分配服务质量(QoS)参数、分配外发端口等等
在一个实施方式中,MAC2ME和TTI分类单元124包括TRILL引擎126,TRILL引擎126被配置为根据2009年5月的因特网工程任务组(IETF)征求意见稿(RFC)556中所述的多链接半透明互联(TRILL)协议进行操作。在一个实施方式中并且在一些情况中,TRILL引擎126向分组重新分配不同的扩展端口。
MAC2ME和TTI分类单元124利用在一个或多个存储器组件(如TCAM)中所维护的一个或多个表格、数据库和/或其他数据储库。在一个实施方式中,查阅该一个或多个表格、数据库等以标识与进入分组的格式和结构匹配或非常接近的表格条目或数据库记录。在一个实施方式中,所标识的表格条目或数据库记录包括用于从独立的存储器(例如静态随机访问存储器(SDRAM))获取动作条目的索引;另外,获取关于根据该信息来如何处理该分组的指示。在其他实施方式中,不利用如上所述的独立的存储器。而是基于以上参考构造关键字所述的一些或全部信息,访问单个表格以获取关于分组的必要的或希望的信息。在另一个实施方式中,在一些实现中将上述数据储库和独立的存储器集成到具有不同的逻辑存储区域的单个块(例如表格)中。
如上所述,在一个实施方式中,MAC2ME和TTI分类单元124响应于TTI查找,向至少一些分组分配外发扩展端口。另一方面,在一些实施方式中,MAC2ME和TTI分类单元124不响应于TTI查找向至少一些分组分配外发扩展端口。在一个实施方式中,分配外发扩展端口包括将外发扩展端口标识符包括到该分组的分组描述符中。在一个实施方式中,MAC2ME和TTI分类单元124响应于TTI查找,向至少一些分组分配eVIDX。另一方面,在一些实施方式中,MAC2ME和TTI分类单元124不响应于TTI查找向至少一些分组分配eVIDX。在一个实施方式中,分配eVIDX包括将eVIDX标识符包括到该分组的分组描述符中。
在一个实施方式中,MAC2ME和TTI分类单元124包括映射单元117的一部分,并且映射单元117实现源扩展端口的分配。并且在一个实施方式中,MAC2ME和TTI分类单元124包括eVLAN分配单元118的一部分,并且eVLAN分配单元118实现eVLAN的分配和重新分配。另外,在一个实施方式中,MAC2ME和TTI分类单元124包括属性分配单元119的一部分,并且属性分配单元119基于扩展端口和/或eVLAN实现属性分配。
进入策略引擎128耦合到MAC2ME和TTI分类单元124。进入策略引擎128通常执行流分类。流对应于相关联的一系列分组,并且可以用多种不同的方式来定义流。流的一个示例是由媒体访问控制(MAC)头部中的MAC源地址或特定MAC目的地地址定义的。换句话说,在一个示例中,具有特定MAC源地址的全部分组对应于特定的流。流的另一个示例是由MAC源地址/目的地地址对定义的。换句话说,在一个示例中,具有特定MAC源地址和MAC目的地地址两者的全部分组对应于特定的流。另外,在一些实施方式中,可以组合来自不同的协议层的字段以定义流。例如,进入策略引擎128将流标识符(ID)附着到分组上或以其他方式与分组相关联,以指示该分组属于哪个流。在至少一些情况和实现中,在从网络设备100外发之前或在从网络设备100外发时从分组中去除流ID。例如在一个实施方式中,如果网络设备100是包括其他类似的网络设备(未显示)的交换系统的组成部分,并且如果分组正在离开该交换系统,那么在从网络设备100外发之前或在从网络设备100外发时从分组中去除流ID。另一方面,在一个实施方式中,如果网络设备100是包括其他类似的网络设备(未显示)的交换系统的组成部分,并且如果分组正在被转发到该交换系统中的另一个网络设备,那么在从网络设备100外发之前或在从网络设备100外发时将流ID包括在该分组的DSA标签中。在一些实例中,根据一个实施方式,进入策略引擎128向分组分配eVLAN。
在一个实施方式中,进入策略引擎128包括或者耦合到TCAM或其他合适的存储器。进入策略引擎128通常使用正在被处理的分组的头部的字段以及其他信息(如源扩展端口)作为到该TCAM的关键字。TCAM中的条目指示特定的规则或将要执行的一个或多个动作的集合(例如关于流测量、eVLAN分配、外发扩展端口分配等等)。在一些情况中,由进入策略引擎128下游的处理单元执行至少一些要执行的动作。因此,在一些情况中,进入策略引擎128向分组分配属性以向下游处理单元指示要如何处理该分组。在一个实施方式中,分配属性包括将属性指示符包括在该分组的分组描述符中。在一个实施方式中,进入策略引擎128还包括或被耦合到一个或多个其他存储器,如SRAM或其他合适的存储器。在该实施方式中,TCAM 128中的条目间接地指示规则或要执行的一个或多个动作的集合,并且利用诸如SRAM的一个或多个附加存储器组件来确定规则或要执行的动作。例如,TCAM中的条目可以指向或以其他方式对应于SRAM中的特定位置,该特定位置包括指示特定规则或要执行的一个或多个动作的集合的信息。在一个实施方式中,进入策略引擎128利用MAC2ME和TTI分类单元124的MAC2ME查找的结果。例如在一个实施方式中,MAC2ME查找的结果用作对TCAM查找的关键字的一部分。
在其他实施方式中,进入策略引擎128不利用TCAM。例如在其他实施方式中利用哈希(hashing)技术或用于分类多字段参数的任意其他合适的技术。因此,在一些实施方式中,省略了进入策略引擎128的TCAM。
在一个实施方式中,进入策略引擎128包括eVLAN分配单元118的一部分,并且eVLAN分配单元118实现eVLAN的分配和重新分配。另外,在一个实施方式中,进入策略引擎128包括属性分配单元119的一部分,并且属性分配单元119基于以下一项或多项实现属性分配:i)源扩展端口,ii)eVLAN,由进入策略引擎128执行的查找等等。
网桥引擎130耦合到进入策略引擎128。网桥引擎130包括或耦合到转发数据库(未显示),该转发数据库包括MAC目的地地址和具有该MAC目的地地址的分组应该被转发到的对应的外发扩展端口的指示。在一个实施方式中,转发数据库包括MAC目的地地址的表格和对应的外发扩展端口的指示。在一个实施方式中,转发数据库更通常地包括MAC源地址和MAC目的地地址两者,并且提供MAC地址到扩展端口和其他参数的绑定,例如以下一项或多项:用于指示是否要由进入部分104将分组镜像到进入分析器(未显示)以便进一步处理的标志位、用于指示是否要由外发部分112将分组镜像到外发分析器(未显示)以便进一步处理的标志位、用于用户定义的功能的用户定义比特等等。这些绑定主要用于转发判决,但是也用于其他目的,例如用于将分组镜像到分析器以便进一步分析、用于用户定义的功能或应用等等。在一些实施方式中并且至少在一些情况中,网桥引擎130执行MAC源地址查找和MAC目的地地址查找。
在一个实施方式中,网桥引擎130通常使用第二层信息来确定应该在哪个或哪些扩展端口上转发分组。在一些实例中,通过检查分组的MAC目的地地址并且使用转发数据库确定该目的地地址对应于哪个网络段,来确定是否应该转发分组以及应该将分组转发到哪儿。并且,在其他实施方式和/或情况中也利用其他信息。例如在一些实施方式和/或情况中,利用eVLAN信息。例如在一些实施方式中,网桥引擎130能够使用eVLAN信息来确定第二层组播或广播分组的扩展端口目的地。在一些实施方式中,网桥引擎130还维护转发数据库。例如在一个实施方式中,网桥引擎130通过记录与进入分组相对应的扩展端口并且将该扩展端口与该分组的源MAC地址相关联,来获知与进入分组的源MAC地址相对应的扩展端口。在一个实施方式中,在另一个示例中,网桥引擎130通过记录与进入分组相对应的eVLAN并且将该扩展端口与该分组的eVLAN相关联,来获知与进入分组的eVLAN相对应的扩展端口。
总体而言,转发数据库将对做出转发判决有用的多个变量相关联。转发数据库包括基于例如eVLAN、扩展端口和MAC地址的条目,例如在桥接操作中基于MAC地址和eVLAN的查找操作是有用的。在一个实施方式中,网桥引擎130还使用由MAC2ME和TTI分类单元124提供的信息来进行转发判决。因此,转发数据库记录或者表格条目包括与目的地MAC地址、扩展端口、eVLAN等等中的一个或多个相关联的字段。
在一个实施方式中,当要洪泛分组时(例如当在转发数据库中不存在与目的地MAC地址的匹配时)或者当分组是组播或广播分组时,网桥引擎130确定该分组将要被转发到的一个或多个扩展端口的集合。将所确定的一个或多个扩展端口的集合的指示符(在本文中称为“eVIDX”)包括在与该分组相关联的分组描述符中或者附着到与该分组相关联的分组描述符上,或者将所确定的一个或多个扩展端口的集合的指示符附着在由流水线102的后续单元使用的分组上。在一个实施方式中,eVIDX用于索引第二层复制表格,其中该第二层复制表格中的每个条目包括指向扩展端口的链接列表的指针。在一些实施方式中,eVIDX是16比特的索引。在一个实施方式中,如果eVIDX小于4K,那么将该eVIDX认为是物理端口列表的指示符。在该实施方式中,如果eVIDX大于或等于4K,那么将该eVIDX认为是扩展端口列表的指示符。
在一个实施方式中,网桥引擎130维护第二层复制表格。
在一个实施方式中,网桥引擎130包括eVLAN分配单元118的一部分,并且eVLAN分配单元118实现进入eVLAN和/或eVIDX的分配。另外,在一个实施方式中,网桥引擎130包括属性分配单元119的一部分,并且属性分配单元119基于以下之中的一项或多项实现属性的分配:i)源扩展端口,ii)eVLAN,由网桥引擎130执行的转发数据库查找等。在各种实施方式中,由网桥引擎130分配的属性的示例包括:使其能够陷于处理器/中央处理单元(CPU)/分析器(未显示)预先定义的控制协议分组;使其能够获知新地址;当获知新地址时触发处理器/CPU/分析器(未显示)通知;当分组具有未知的或未注册的地址时指示将要采取的动作;诸如此类。
路由器引擎132耦合到网桥引擎130。在一些实施方式和/或情况中,如果接收的分组不是意图发往网络设备100所连接的网络,那么执行基于因特网协议(IP)地址的路由。路由器引擎132包括或者被耦合到路由信息数据库(未显示),路由信息数据库包括与应该将IP分组转发到哪里相对应的信息。路由器引擎132通常确定应该将接收的IP分组路由到哪里,这包括确定应该将分组转发到哪个进入扩展端口。确定应该将接收的IP分组路由到哪里包括检查该分组的IP目的地地址以及存储在路由信息数据库中的路由信息。路由器引擎132还维护路由信息数据库。另外,在一些实施方式中,路由器引擎132确定IP组播分组的目的地。在一个实施方式中,路由器引擎132利用第三层复制表格,其中在第三层复制表格中的每个条目是扩展端口的链接列表。在一个实施方式中,路由器引擎132向组播分组分配eVLAN和/或eVIDX,以指示该分组将要被复制到哪个扩展端口。
在一个实施方式中,路由器引擎132包括eVLAN分配单元118的一部分,并且eVLAN分配单元118实现eVLAN和/或eVIDX的分配。另外,在一个实施方式中,路由器引擎132包括属性分配单元119的一部分,并且属性分配单元119基于以下之中的一项或多项实现属性的分配:i)源扩展端口,ii)eVLAN,由路由器引擎132执行的路由信息数据库查找等等。在各种实施方式中,由路由器引擎132分配的属性的示例包括:允许/禁止因特网协议版本4(IPv4)单播分组的路由;允许/禁止IPv4组播分组的路由;允许/禁止因特网协议版本6(IPv6)单播分组的路由;允许/禁止IPv6组播分组的路由;是否执行源IP地址-源MAC地址检查(SIP-SA检查)(一种安全检查,其检查分组的源IP地址和源MAC地址在路由信息数据库中是否关联);诸如此类。
进入策略器引擎134耦合到路由器引擎132。根据一个实施方式,进入策略器引擎134通常执行速率限制并且进行流业务测量并且存储不同流的流测量信息。在一些实施方式中,进入策略器引擎134对不同流采取不同的动作。在一个实施方式中,进入策略器引擎134在确定应该采取什么动作时,利用来自进入策略引擎128的流分类信息。根据一个实施方式,进入策略器引擎134包括用于进行流业务测量的多个计数器。根据一个实施方式,进入策略器引擎134对分组进行采样。另外,根据一个实施方式,进入策略器引擎134将时间戳应用于分组或者与分组相关联的描述符。
第三层复制器单元136耦合到进入策略器引擎134。当第三层复制器单元136接收到要被发送给多个目的地的第三层路由分组时,第三层复制器单元136创建该分组的一个或多个副本以便转发到由路由器引擎132确定的一个或多个扩展端口的集合。在一个实施方式中,第三层复制器单元136利用第三层复制表格。
第二层复制器单元138耦合到第三层复制器单元136。当第二层复制器单元138接收到要被发送给多个目的地的第二层桥接分组时,第二层复制器单元138创建该分组的一个或多个副本,以便转发到由网桥引擎130确定的一个或多个扩展端口的集合。在一个实施方式中,第二层复制器单元138利用第二层复制表格来确定将该分组引导到哪个扩展端口。在一个实施方式中,第二层复制器单元138包括复制引擎以执行分组复制。在一个实施方式中,第二层复制表格包括用于指示外发扩展端口是否与运营商边缘设备相关联的属性。根据一个实施方式和/或情况,如果外发扩展端口和进入扩展端口两者对应于运营商边缘设备,那么第二层复制器单元138执行过滤,使得该分组不被转发到下游边缘设备(例如将该分组丢弃)。作为可替换的选择,如果进入扩展端口与运营商边缘设备相关联但是外发扩展端口在第二层复制表格中未被标记为对应于运营商边缘设备,那么根据属性或分组描述符中所保持的其他信息来转发该分组。下文将更详细地描述根据一个实施方式的第二层复制器单元138的操作。
在eVIDX是16比特的索引的一个实施方式中,如果eVIDX小于4K,那么第二层复制器单元138不执行复制。如下所述,改为接下来在流水线102中执行第二层复制。
预外发引擎140耦合到第二层复制器单元。预外发引擎140将进入部分104中的之前的单元的判决合并成单个判决,并且相应地更新该分组的描述符。
在一个实施方式中,外发部分112耦合到预外发引擎140。在一个实施方式中并且在一些情况中,当分组的目标设备是网络设备100时,预外发引擎140确定与该分组将要被转发到的一个或多个目标扩展端口相对应的一个或多个物理目标。物理目标可以是物理端口/设备对、主干、隧道起始、物理端口列表等等。在一个实施方式中,预外发引擎140包括映射单元117的一部分,并且映射单元117实现与分组将要被转发到的每个目标扩展端口相对应的一个或多个物理目标的确定。在扩展端口要被映射到多个物理端口的一个实施方式和至少一些情况中,该扩展端口被映射到用于指示该多个物理端口的VIDX。
在一个实施方式中,外发过滤单元142耦合到预外发引擎140。外发过滤单元142利用扩展端口和/或eVLAN来执行外发过滤。
在一些情况中,要被洪泛的分组或组播或广播分组不经由其进入的同一扩展端口外发。因此,例如外发过滤单元142从将要用来发送分组的多个外发扩展端口中过滤该进入扩展端口。
外发第二层组播复制器单元(第二层桥接MC复制器)144耦合到外发过滤单元142。在一些情况中,第二层组播复制器单元144复制分组,所述分组例如是从另一个交换机设备接收的并且要被洪泛的分组或者是被组播或广播的分组。在一个实施方式中,经由eVIDX指示多目标目的地。如果分组是多目标的(即广播、组播或未知的单播),那么对eVIDX组的每个外发扩展端口成员复制该分组。
在eVIDX是16比特的索引的一个实施方式中,如果eVIDX大于或等于4K,那么第二层组播复制器单元144不执行复制。而是在另一个交换机设备中或者在第二层复制器单元138中执行第二层复制。在该实施方式中,如果eVIDX小于4K,那么将该eVIDX解释为是物理端口列表的指示符,并且第二层组播复制器单元144执行到该列表所指示的物理端口的复制。
第二层组播复制器单元144向多个发送队列中的至少一个发送队列提供单播业务。对于第二层复制分组,第二层组播复制器单元144根据该eVIDX向物理端口复制分组,该eVIDX指示该物理端口(如下文所述的)。在一个实施方式中,第二层组播复制器单元144还向与另一个交换机设备(即级联端口)相对应的发送队列提供该分组的副本。在一个实施方式中,在至少一些情况中,向与该级联端口相对应的发送队列指定特定本地目标端口指示符(例如号码,如24),并且因此第二层组播复制器单元144向该级联端口提供该分组的副本。例如,如果第一交换机设备判决向第二交换机设备发送分组(例如因为数据帧是组播数据帧),那么第一交换机设备仅仅向指定的级联端口发送该数据帧。在该实施方式中,在交换机设备之间转发组播分组,并且与该链条中的最后一个发送队列相对应的发送队列终止所中继的副本,以防止形成环路。在另一个实施方式中,向与其他交换机设备相对应的发送队列指定特定物理全局目标端口指示符。
在一个实施方式中,第二层组播复制器单元144包括属性分配单元119的一部分,并且例如在一个实施方式中属性分配单元119基于以下之中的一项或多项实现属性的分配:i)目标扩展端口,ii)eVLAN等等。在另一个实施方式中,第二层组播复制器单元144不包括属性分配单元119的一部分并且不涉及属性分配。
第二层组播复制器单元144向发送排队和端口速率成形单元(发送排队单元)146提供分组。发送排队单元146通常将与例如不同类别的流和/或不同物理端口相对应的多个队列中的分组进行排队。发送排队单元146通常还执行速率成形。在一个实施方式中,在如下文将更详细地讨论的一些情况中,第二层组播复制器单元144利用eVIDX作为到VIDX表格的索引,以确定该分组将要被复制到的物理端口集合。如果向分组分配了VIDX,那么第二层组播复制器单元144利用该VIDX作为到VIDX表格的索引,以确定该分组将要被复制到的物理端口集合。
在一个实施方式中,发送排队单元146包括属性分配单元119的一部分,并且属性分配单元119基于以下之中的一项或多项实现属性的分配:i)目标物理端口,ii)目标扩展端口,iii)eVLAN等等。基于目标扩展端口所分配的属性的示例包括:是否允许外发过滤;是否允许生成树协议过滤;是否允许单播本地交换过滤;是否允许组播本地交换过滤;VLAN标签状态(即用于指示将哪个(些)VLAN标签包括在外发分组中的指示,并且如果有多个VLAN标签的话则还有这些标签的次序);诸如此类。在一个实施方式中,是否允许外发过滤是基于目标扩展端口和/或目标物理端口所分配的属性的示例。在一个实施方式中,VLAN标签状态是基于目标扩展端口和/或eVLAN所分配的属性。
调度单元148耦合到发送排队单元146。头部变更单元150耦合到调度单元148。在一些情况中,进入分组在该分组头部中具有VLAN字段和MAC字段,并且在一些情况中,有必要修改VLAN字段(例如取决于与MAC DA相关联的VLAN)或者向不同的VLAN中的目的地设备组播该分组。注意,分组头部的修改可以发生在进入运营商网络时或者在从运营商网络外发时。头部变更单元150可以保持用于允许适当地操作分组头部以助于该组播操作的信息。在一些实现中,头部变更单元150独立地或者与外发部分112的其他单元合作地操作分组头部。在一些实施方式中,头部变更单元150使得能够控制对客户网络或其他子网实现赋予标签。为了支持该功能,头部变更单元150中嵌入有或包括用于将分组属性信息、eVLAN、VID、MAC地址和客户VLAN标签偏好进行关联的查找表、数据库或其他合适的数据结构。另外,在一些情况中,头部变更单元150指向隧道起始条目,该隧道起始条目提供关于分组所需的外部头部的信息;就这点而言,隧道起始条目定义用于通过运营商网络发送分组的隧道。
外发策略引擎154耦合到头部变更单元150。外发策略引擎154通常执行流分类。当分组属于已识别的流时,外发策略引擎154将该分组与该流相关联。例如在一个实施方式中,外发策略引擎154将流标识符(ID)附着到分组上,以指示该分组属于哪个流。在至少一些情况或实现中,在从网络设备100外发之前或从网络设备100外发时从分组中去除流ID。例如在一个实施方式中,如果网络设备100是包括其他类似的网络设备(未显示)的交换系统的组成部分,并且如果分组正在离开该交换系统,那么在从网络设备100外发之前或从网络设备100外发时从分组中去除流ID。另一方面,在一个实施方式中,如果网络设备100是包括其他类似的网络设备(未显示)的交换系统的组成部分,并且如果分组正在被转发到该交换系统中的另一个网络设备,那么在从网络设备100外发之前或从网络设备100外发时将流ID包括在该分组的DSA标签中。
外发策略器引擎156耦合到外发策略引擎154。在一个实施方式中,外发策略器引擎156通常执行速率限制并且进行流业务测量。
端口MAC发送单元158耦合到外发策略器引擎156。端口MAC发送单元158通常实现媒体访问控制功能并且将分组转发给适当的外发物理端口116。
基于源扩展端口和eVLAN来分配由进入部分104分配的属性(即进入属性)。在网络设备100是交换系统中的多个交换机中的一个交换机的实施方式中,进入属性仅被流水线102利用并且不被其他交换机利用。在另一个实施方式中,一个或多个进入属性还被其他交换机利用。例如,如果源扩展端口是全局扩展端口(即该端口对于多个交换机是唯一的),那么一个或多个进入属性被该交换系统中的一个或多个其他交换机利用。
基于源扩展端口所分配的进入属性被称为进入扩展端口属性。在一个实施方式中,基于进入扩展端口属性表格来分配进入扩展端口属性。例如,进入扩展端口属性表格提供与不同的源扩展端口相对应的属性,并且源扩展端口提供到进入扩展端口属性表格的索引。在一个实施方式中,进入扩展端口属性表格分布在进入部分104的不同单元之间。在一个实施方式中,进入扩展端口属性表格包含在属性分配单元119中,属性分配单元119本身至少部分地分布在进入部分104的不同单元之间。
基于eVLAN所分配的进入属性被称为进入eVLAN属性。在一个实施方式中,基于进入eVLAN属性表格来分配进入eVLAN属性。例如,进入eVLAN属性表格提供与不同的eVLAN相对应的属性,并且eVLAN提供到进入eVLAN属性表格的索引。在一个实施方式中,将进入eVLAN属性表格包括在属性分配单元119中。
基于目标扩展端口和eVLAN来分配由外发部分112分配的属性(即外发属性)。在网络设备100是交换系统中的多个交换机中的一个交换机的实施方式中,外发属性仅被流水线102利用和/或被交换系统中的其他交换机利用。
基于目标扩展端口所分配的外发属性被称为外发扩展端口属性。在一个实施方式中,基于外发扩展端口属性表格来分配外发扩展端口属性。例如,外发扩展端口属性表格提供与不同的目标扩展端口相对应的属性,并且目标扩展端口提供到外发扩展端口属性表格的索引。在一个实施方式中,将外发扩展端口属性表格包括在属性分配单元119中。
在一个实施方式中,将仅与外发物理端口相关的外发属性存储在独立的外发物理端口属性表格中。例如,外发物理端口属性表格提供与不同的目标物理端口相对应的属性,并且目标物理端口提供到外发物理端口属性表格的索引。
在另一个实施方式中,将仅与外发物理端口相关的外发属性存储在独立的外发扩展端口属性表格中。
基于eVLAN所分配的外发属性被称为外发eVLAN属性。在一个实施方式中,基于外发eVLAN属性表格来分配外发eVLAN属性。例如,外发eVLAN属性表格提供与不同的eVLAN相对应的属性,并且eVLAN提供到外发eVLAN属性表格的索引。在一个实施方式中,将外发eVLAN属性表格包括在属性分配单元119中。
根据一个实施方式,将结合由网络设备100处理的分组来描述网络设备100的操作。经由其中一个进入物理端口108接收分组,并且由端口MAC接收单元120和头部解码单元122处理该分组。
MAC2ME和TTI分类单元124分配(由映射单元117执行)源扩展端口作为接收该分组的物理端口108。另外,MAC2ME和TTI分类单元124基于所分配的扩展端口,向分组分配(由属性分配单元119执行)一个或多个进入扩展端口属性。在一个实施方式中,分配一个或多个进入扩展端口属性包括使用所分配的扩展端口在进入扩展端口属性表格中执行查找。
如果分组是TRILL分组,那么TRILL引擎126处理该分组。在一个实施方式中,由TRILL引擎126进行的TRILL分组的处理包括重新分配(由映射单元117执行)该分组的源扩展端口。在一个实施方式中,在重新分配该分组的源扩展端口之后,该扩展端口对应于虚拟端口。
另外,MAC2ME和TTI分类单元124执行TTI查找。在至少一些情况中,TTI查找指示将要重新分配扩展端口,并且MAC2ME和TTI分类单元124重新分配该扩展端口(由映射单元117执行)。
在一个实施方式中,如果重新分配了扩展端口,那么MAC2ME和TTI分类单元124基于新的扩展端口向该分组分配一个或多个进入扩展端口属性(由属性分配单元119执行)。在一个实施方式中,分配一个或多个进入扩展端口属性包括使用新的扩展端口在进入扩展端口属性表格中执行查找。
在至少一些情况中,MAC2ME和TTI分类单元124向分组分配eVLAN(由eVLAN分配单元118执行)。例如在一个实施方式中,如果DSA标签或分组包括VID,那么MAC2ME和TTI分类单元124基于VID来分配eVLAN(由eVLAN分配单元118执行)。仅作为一个示例,MAC2ME和TTI分类单元124将eVLAN设置为VID(由eVLAN分配单元118执行)。在一个实施方式中,如果分组是TRILL分组,那么至少在一些情况中TRILL引擎126分配eVLAN(由eVLAN分配单元118执行)。在另一个实施方式中,TRILL引擎126不分配eVLAN。在一个实施方式中,TTI查找指示至少在一些情况中要分配eVLAN,并且MAC2ME和TTI分类单元124根据该TII查找来分配eVLAN(由eVLAN分配单元118执行)。
在一个实施方式中,进入策略引擎128将流标识符附着到分组上或者以其他方式与分组相关联,以指示该分组所属于的流。进入策略引擎128利用扩展端口和/或eVLAN来确定流标识符和/或采取其他动作。在一些实施方式中,将基于扩展端口所确定的流标识符和/或其他动作认为是基于扩展端口和/或eVLAN的进入属性。在一些情况中,根据一个实施方式,进入策略引擎128向分组分配eVLAN。在一个实施方式中,进入策略引擎128基于扩展端口确定eVLAN。在一些实施方式中,由进入策略引擎128向分组分配基于eVLAN的进入属性。例如在一些实施方式中,进入策略引擎128基于eVLAN分配以下属性之中的一个或多个:当该分组的源地址对于网络设备100未知时将要采取的动作;是否允许第三层组播和/或广播镜像;是否应该由进入策略器引擎134执行以及执行哪种类型的基于eVLAN的镜像;诸如此类。
网桥引擎130进行转发判决(例如分配目标扩展端口、eVLAN和/或eVIDX)并且基于扩展端口和/或eVLAN分配进入属性。例如在一些情况中,网桥引擎130分配分组将要被转发到的目标扩展端口,并且基于该扩展端口分配用于指示是否要将该分组镜像到进入分析器(未显示)的属性。作为另一个示例,在一些情况中,网桥引擎130向分组分配eVIDX以指示应该基于eVLAN将该分组转发到的扩展端口的列表。
根据一个实施方式,进入策略器引擎134执行速率限制,进行流业务测量,并且存储与该分组相对应的流的流测量信息。在一些实施方式中,进入扩展端口属性和/或进入eVLAN属性指示应该进行哪种测量,是否应该执行采样以及应该如何执行采样,是否应用时间戳,诸如此类。
如果要向多个扩展端口发送该分组,那么第二层复制器单元138创建该分组的一个或多个副本,以便转发到由网桥引擎130确定的一个或多个扩展端口的集合。在一个实施方式中,第二层复制器单元138利用eVIDX作为到第二层复制表格的索引,以确定该分组将要被发送到的扩展端口。另外,第二层复制器单元138的副本复制该分组。在一个实施方式中,第二层复制表格中的条目可以是VIDX的指示符,另外由第二层组播复制器单元144复制该分组。
预外发引擎140确定与该分组将要被转发到的一个或多个目标扩展端口相对应的一个或多个物理目标。物理目标可以是物理端口/设备对、中继线、隧道接口等等。在一个实施方式中,映射单元117确定该一个或多个物理目标。
外发过滤单元142、第二层组播复制器单元144、发送排队单元146和调度单元148利用外发扩展端口属性和外发eVLAN属性来处理分组,包括:执行外发过滤;扩展端口或eVLAN镜像;基于扩展端口的外发生成树协议等等。在一个实施方式中,在发送排队单元146中实现外发扩展端口属性表格。由目标扩展端口索引外发扩展端口属性表格。在一个实施方式中,在如下将更详细地描述的一些情况中,第二层组播复制器单元144利用eVIDX作为到VIDX表格的索引,以确定该分组将要被复制到的物理端口的集合。如果向分组分配了VIDX,那么第二层组播复制器单元144利用该VIDX作为到VIDX表格的索引,以确定该分组将要被复制到的物理端口的集合。
如果该分组要将VID添加到头部中,那么头部变更单元150将eVLAN转换成VID并且将该VID添加到头部中。如果要修改包括在分组中的现有VID,那么头部变更单元150修改该VID。在一个实施方式中,头部变更单元150实现包括仅与物理端口相关的属性的外发物理端口属性表格。在该实施方式中,头部变更单元150使用该分组的物理外发端口号码来索引该外发物理端口属性表格。
图4是在交换机的分组处理流水线中用于处理分组的示例性方法200的流程图。在一个实施方式中,由图3的网络设备100实现方法200,并且为了便于说明,相对于图3来描述方法200。然而,在其他实施方式中,由与网络设备100的分组处理流水线不同的其他合适的分组处理流水线来实现方法200。
在方框204,向进入分组分配进入扩展端口。在一个实施方式中,该进入扩展端口是与网络设备100的物理端口或者与交换系统中的其他交换机的物理端口分离的虚拟进入接口。例如,可以将经由同一物理端口接收的不同分组分配给不同的扩展端口。在各种实施方式和情况中,进入扩展端口的分配基于以下各项之中的一项或多项:接收到该分组的物理端口、与该分组相对应的隧道、与该分组相对应的TRILL链路、该分组的DSA标签、与该分组相关联的QoS参数、该分组所属于的流等等。作为一个示例,基于以下各项之中的一项或多项,将经由同一物理端口接收的不同分组分配给不同的源扩展端口:i)分组是否被隧道化,ii)分组的隧道接口,iii)分组的QoS要求,等等。在一个实施方式中,MAC2ME和TTI分类单元124/映射单元117向分组分配进入扩展端口。更一般性而言,分组处理流水线的分类引擎向分组分配进入扩展端口。在一些实施方式中,分类引擎还作为或者包括隧道终止和接口分配引擎。
在方框208,向进入分组分配eVLAN。在一个实施方式中,eVLAN是与网络设备100的物理端口和/或与IEEE 802.1Q VLAN分离的虚拟域。例如在至少一些情况中,eVLAN对应于一个或多个扩展端口,该一个或多个扩展端口本身是与物理端口分离的。作为一个示例,可以将经由同一物理端口接收的不同的分组分配给不同的eVLAN。作为另一个示例,可以存在比IEEE 802.1Q VLAN的最大数量更多的eVLAN。在各种实施方式和情况中,eVLAN的分配基于以下各项中的一项或多项:接收到该分组的物理端口、在方框204处分配的扩展端口、与该分组相对应的隧道、与该分组相对应的TRILL链路、该分组的VID、该分组的DSA标签中的VLAN或eVLAN标识符、与该分组相关联的QoS参数、该分组所属于的流等等。在一个实施方式中,eVLAN分配单元118分配eVLAN。由于eVLAN分配单元118分布在流水线102的不同的单元之间,所以流水线102的不同的单元在不同的情况中分配eVLAN。例如在一些情况中,MAC2ME和TTI分类单元124向分组分配eVLAN。例如,如果分组是隧道终止的分组、TRILL分组,或者如果该分组包括具有VLAN或eVLAN标识符的DSA标签,那么MAC2ME和TTI分类单元124在一个实施方式中分配eVLAN。如果该eVLAN是基于所分配的扩展端口来分配的,那么MAC2ME和TTI分类单元124在一个实施方式中分配eVLAN。在一个实施方式中,如果eVLAN是基于QoS参数或者与该分组相关联的流来分配的,那么进入策略引擎128分配eVLAN。更一般性而言,在一个实施方式中,分组处理流水线的一个或多个合适的分类引擎根据不同的情况向分组分配eVLAN。在一些实施方式中,该分类引擎中的第一分类引擎还可以作为或者包括隧道终止和接口分配引擎,并且该分类引擎中的第二分类引擎还可以作为或者包括流分类引擎。
在方框212,基于分别在方框204和208处分配的扩展端口和eVLAN,向分组分配进入属性。在一个实施方式中,使用进入扩展端口属性表格并且使用所分配的进口扩展端口索引该表格,来分配进入属性的第一集合。在一个实施方式中,属性分配单元119分配进入属性。由于属性分配单元119分布在流水线102的不同的单元之间,所以流水线102的不同单元在不同的情况中分配进入属性。在一个实施方式中,进入扩展端口属性表格分布在多个进入流水线单元之间。例如在网络设备100中,进入扩展端口属性表格分布在包括MAC2ME和TTI分类单元124、进入策略引擎128、网桥引擎130以及路由器引擎132的进入部分104的多个单元之间。在一个实施方式中,使用进入eVLAN属性表格并且使用所分配的eVLAN索引该表格,来分配进入属性的第二集合。在一个实施方式中,属性分配单元119分配进入eVLAN属性。在一个实施方式中,进入eVLAN属性表格分布在多个进入流水线单元之间。
在方框216,根据分别与方框204、208和212相对应的进入扩展端口、eVLAN和进入属性,在流水线的进入部分中处理分组。在一些实施方式中,利用进入属性来进行隧道终止和/或TRILL查找。在一些实施方式中,进入属性指示要如何处理该分组。例如根据各种实施方式,进入属性指示以下各项之中的一项或多项:1)是否要捕获、镜像分组;2)是否要计量分组以及如何计量;3)是否要对分组打时间戳以及如何打时间戳;诸如此类。在一些实施方式中,利用进入属性进行桥接功能。例如,根据各种实施方式,进入属性指示以下各项之中的一项或多项:1)是否要转发分组;2)是否要获知进入扩展端口;3)是否要实现生成树协议;诸如此类。类似地,在一些实施方式中,进入属性用于路由功能。
在一个实施方式中,在至少一些情况中方框216包括向分组分配外发扩展端口或eVIDX(方框218)。在一个实施方式中并且在各种情况中,由eVLAN分配单元118和/或i)MAC2ME和TTI分类单元124,ii)进入策略引擎128,iii)网桥引擎130以及iv)路由器引擎132中的一个或多个来实现该方框。
在方框220,将与该分组相对应的每个外发扩展端口映射到对应的一个或多个物理外发端口。在一些实施方式中,由映射单元117和/或预外发引擎140实现方框220。
在方框224,基于分别在方框220和208处分配的外发扩展端口和eVLAN,向分组分配外发属性。在一个实施方式中,使用外发扩展端口属性表格并且使用所分配的进口扩展端口索引该表格,来分配外发属性的第一集合。在一个实施方式中,外发扩展端口属性表格分布在多个外发流水线单元之间。例如在网络设备100中,外发扩展端口属性表格分布在外发部分112的包括外发过滤单元142和发送排队单元146在内的多个单元之间。在一个实施方式中,使用外发eVLAN属性表格并且使用所分配的eVLAN索引该表格,来分配外发属性的第二集合。在一个实施方式中,外发eVLAN属性表格分布在多个外发流水线单元之间。
在方框228,根据分别与方框218、208和224相对应的外发扩展端口、eVLAN和外发属性,在流水线的外发部分中处理分组。在一些实施方式中,利用外发扩展端口、eVLAN和/或外发属性来进行以下各项之中的一项或多项:外发过滤、执行生成树协议、头部变更、镜像、外发策略控制和策略决定等等。在一些实施方式中,外发属性指示要如何处理该分组。例如根据各种实施方式,外发属性指示以下各项之中的一项或多项:1)是否要捕获、镜像分组;2)是否要计量分组以及如何计量;3)是否要对分组打时间戳以及如何打时间戳;诸如此类。
图5是用于向分组分配进入扩展端口的示例性方法300的流程图。由图3的网络设备100实现方法300。例如在一个实施方式中,由映射单元117和/或MAC2ME和TTI分类单元124实现方法300。但是,在其他实施方式中,可以由与网络设备100的分组处理流水线不同的其他合适的分组处理流水线来实现方法300。例如在其他实施方式中,由一个或多个合适的分类引擎和/或映射单元来实现方法300。
在方框304,进行进入扩展端口的默认分配。在一个实施方式中,将进入扩展端口设置为与接收到该分组的物理进入端口的标识符相对应的值。在其他实施方式中,利用其他合适的默认分配。在一个实施方式中,默认分配是可配置的。
在方框308,确定该分组是否标记有DSA标签。如果确定该分组标记有DSA标签,那么流程前进到方框312。在方框312,将进入扩展端口设置为该DSA标签中指示的进入扩展端口。并且该流程结束。
如果在方框308处确定该分组未标记有DSA标签,那么流程前进到方框316。在方框316,确定该分组是否是TRILL分组。例如在一个实施方式中,TRILL引擎126确定该分组是否是TRILL分组。在一个实施方式中,确定该分组是否是TRILL分组包括基于方框304处的默认进入扩展端口分配进行TRILL查找。如果确定该分组是TRILL分组,那么流程前进到方框320。在方框320,如TRILL动作所规定的那样来设置进入扩展端口。例如在一个实施方式中,TRILL动作规定进入扩展端口。
如果在方框316处确定该分组不是TRILL分组,那么流程前进到方框324。在方框324,确定是否存在TTI查找匹配。在一个实施方式中,该TTI查找基于方框304处的默认进入扩展端口分配和/或其它标准,例如以下各项之中的一项或多项:i)所分配的进入属性,ii)eVLAN,iii)分组的头部中的字段等等。如果确定存在TTI匹配,那么流程前进到方框320。在一个实施方式中,在方框320,如与该TTI匹配相对应的TTI动作所规定的那样来设置进入扩展端口。例如在一个实施方式中,TTI动作规定进入扩展端口。在其它实施方式中,在一些情况中不是如TTI动作所规定的那样在方框320处设置进入扩展端口。而是,即使当存在TTI匹配并且当TTI动作指示重新分配进入扩展端口时,在一些情况中也不重新分配进入扩展端口。
在其它实施方式中,修改方法300的流程。例如在一些实施方式中,在方框312之后,流程前进到方框316。然后,在方框320和/或328处,在一些情况中重新分配扩展端口。例如在一些情况中,如果分组被用DSA标签标记(方框308)并且如果存在TTI匹配(方框324),那么在方框328重新分配扩展端口。另一方面,在分组被用DSA标签标记(方框308)并且当存在TTI匹配(方框324)的其它情况中,在方框328不重新分配扩展端口,而是,该扩展端口分配仍然如方框312处所分配的那样。类似地,在一些实施方式中,在方框320之后,流程前进到方框324。然后,在方框328处,在一些情况中重新分配扩展端口。例如在一些情况中,如果分组被用DSA标签标记(方框308)并且如果存在TTI匹配(方框324),那么在方框328重新分配扩展端口。另一方面,在分组被用DSA标记(方框308)并且当存在TTI匹配(方框324)的其它情况中,在方框328不重新分配扩展端口,而是,该扩展端口分配仍然如方框312或方框320处所分配的那样。
在该流程在方框320之后前进到方框324的一些实施方式中,在一些情况中重新分配扩展端口。作为一个示例,在一些情况中,如果存在TRILL匹配(方框316)并且在方框320处重新分配了扩展端口,并且如果还存在TTI匹配(方框324),那么在方框328重新分配扩展端口。另一方面,在存在TRILL匹配(方框316)并且当存在TTI匹配(方框324)的其它情况中,在方框328处不重新分配扩展端口,而是,该扩展端口分配仍然如方框320处所分配的那样。
作为另一个示例,在一个实施方式中,在方框308、316和324之后执行默认进入扩展端口分配(方框304)。在其它实施方式中,方框308、316和324的次序是不同的。例如在一个实施方式中,确定分组是否是TRILL分组(方框316)发生在确定分组是否被用DSA标签来标记(方框308)之前。类似地,在一个实施方式中,确定是否存在TTI查找匹配(方框324)发生在确定分组是否被用DSA标签来标记(方框308)之前。类似地,在一个实施方式中,确定分组是否是TRILL分组(方框316)发生在确定是否存在TTI查找匹配(方框324)之后。
图6是用于向分组分配进入扩展端口的示例性方法350的流程图。由图3的网络设备100实现方法350。例如在一个实施方式中,由MAC2ME和TTI分类单元124实现方法350。但是,在其他实施方式中,可以由与网络设备100的分组处理流水线不同的其他合适的分组处理流水线来实现方法350。例如在其他实施方式中,由一个或多个合适的分类引擎来实现方法350。
方法350与图5的方法300相似,并且不讨论附图标号相同的方框。
在方框354,基于在方框304处的默认进入扩展端口分配,分配一个或多个进入属性。
在方框358,基于以下各项之中的一项或多项执行TRILL查找:i)在方框354处分配的一个或多个进入属性,ii)在方框304处的默认进入扩展端口分配,iii)分配的进入属性,iv)eVLAN,v)分组的头部中的字段等等。在一个实施方式中,在至少一些情况中基于在方框354处分配的一个或多个进入属性以及在方框304处的默认进入扩展端口分配,执行TRILL查找。
在方框362,基于以下各项之中的一项或多项执行TTI查找:i)在方框354处分配的一个或多个进入属性,ii)在方框304处的默认进入扩展端口分配,iii)分配的进入属性,iv)eVLAN,v)分组的头部中的字段等等。在一个实施方式中,在至少一些情况中基于在方框354处分配的一个或多个进入属性以及在方框304处的默认进入扩展端口分配,执行TTI查找。
在方框366,基于方框312、320或328处的进入扩展端口分配,重新分配在方框354处分配的一个或多个进入属性。
在网络设备100或者被配置来实现图4的方法200、图5的方法300和/或图6的方法350的其他网络设备并且该网络设备是交换系统中的多个交换机中的一个交换机的一些实施方式中,可以相对于多个交换机全局唯一地指定一些扩展端口(在本文被称为“全局扩展端口”)。为了易于说明,将相对于图3的网络设备100来描述全局扩展端口。在其他实施方式中,其他类型的交换机(例如被配置来实现图4的方法200、图5的方法300和/或图6的方法350的交换机)实现全局扩展端口。例如可以与链路汇聚组一起并且在下文讨论的其他实现中利用全局扩展端口。
在一个实施方式中,将全局扩展端口预留为一个扩展端口值范围。在该实施方式中,网络设备100可以识别出DSA标签中的扩展端口(例如被另一个交换机分配给分组的扩展端口)是全局扩展端口。在一个实施方式中,该范围是可配置的,以例如允许不同数量的全局扩展端口。在另一个实施方式中,DSA标签中的标志位和/或分组描述符用于指示全局扩展端口。使用全局扩展端口,流水线104被配置为当其将以其他方式比较扩展端口/设备标识符对(例如通过网桥获知、源过滤等等)时,忽略与全局扩展端口相关联的设备标识符。
全局扩展端口可能有用的另一个实例是具有等价多径(ECMP),在ECMP中多个扩展端口导向共同的目的地。例如在一些实施方式中,主ECMP扩展端口被指定为全局扩展端口,而次ECMP扩展端口被指定为非全局唯一的扩展端口。与主ECMP扩展端口相关联的次ECMP扩展端口在本文被称为“ECMP扩展端口块”。向要被转发到ECMP扩展端口块中的目标的分组分配主ECMP扩展端口作为目标扩展端口。类似地,向经由该ECMP扩展端口块中的任意扩展端口进入的分组分配主ECMP扩展端口作为源扩展端口。
图7是根据一个实施方式用于将目标扩展端口映射到物理接口(例如物理端口、隧道、隧道起始等等)的示例性方法400的流程图。在一些情况中,作为单播转发判决的结果而确定目标扩展端口。在其他情况中,作为组播或广播转发判决的结果或者作为洪泛判决的结果而确定目标扩展端口。例如在一个实施方式中,由eVIDX指示扩展端口。换句话说,在一个实施方式中,对于由eVIDX指示的每个扩展端口,使用方法400将该扩展端口映射到物理接口。在该方法被实现在交换系统的多个交换机之间的网络设备中的一个实施方式中,响应于用于指示该目标是扩展端口并且该目标设备是本地设备的转发判决来实现该方法。
由图3的网络设备100实现方法400。例如在一个实施方式中,由预外发引擎140实现方法400。但是,在其他实施方式中,可以由与网络设备100的分组处理流水线不同的其他合适的分组处理流水线来实现方法400。例如在其他实施方式中,由分组处理流水线的用于将扩展端口映射到物理接口的单元来实现方法400。
在方框404,确定扩展端口是否是主ECMP扩展端口。在一个实施方式中,确定扩展端口是否是主ECMP扩展端口包括由扩展端口索引ECMP扩展端口表格。如果该扩展端口不是主ECMP扩展端口,那么ECMP扩展端口表格返回合适的指示符,例如NULL指针。另一方面。如果该扩展端口是主ECMP扩展端口,那么ECMP扩展端口表格返回指向扩展端口查找转换表格(LTT)条目的指针。在一个实施方式中,当用主ECMP扩展端口来索引LTT时,该LTT返回的条目包括ECMP使能比特(主要指示该LTT条目有效)、到由该主ECMP扩展端口所表示的ECMP扩展端口块的索引,以及该块的大小的指示(例如在该ECMP扩展端口块中的次扩展端口的数量的指示符)。因此,在一个实施方式中,确定扩展端口是否是主ECMP端口包括由扩展端口索引ECMP扩展端口表格并且确定该ECMP扩展端口表格是否返回适当的指示符,如NULL指针。
如果确定扩展端口是主ECMP扩展端口,那么流程前进到方框408。在方框408,选择对应的ECMP扩展端口块中的次ECMP扩展端口。在一个实施方式中,如上所述,ECMP扩展端口表格返回指向扩展端口LTT条目的指针。扩展端口LTT条目规定ECMP扩展端口块属性的集合,该集合包括指向与该次扩展端口相对应的ECMP扩展端口条目块的指针,以及该ECMP扩展端口块中的次扩展端口的数量的指示符。在一个实施方式中,使用哈希索引来访问该ECMP扩展端口条目块。在一个实施方式中,基于不同的情况利用两个不同的哈希索引中的一个。例如在一个实施方式中,第一哈希索引对应于ECMP选择而第二哈希索引对应于链路汇聚组选择。在一个实施方式中,到该ECMP扩展端口条目块的哈希索引返回目标设备/扩展端口。
流程从方框408前进到方框412。另外,如果在方框404处确定该扩展端口不是主ECMP扩展端口,那么流程前进到方框412。在方框412,将扩展端口映射到物理目标。在一个实施方式中,外发扩展端口表格将扩展端口映射到物理目标。
在交换系统包括多个交换机设备的实施方式中,由源设备实现方框404和408,而由目标设备实现方框412。例如在一个实施方式中,源设备确定目标扩展端口/目标设备对,并且在DSA标签中指示该目标扩展端口/目标设备对。源设备然后将分组转发到目标设备。该目标设备然后将扩展端口映射到物理目标。
再次参考图3,在一个实施方式中,第二层复制器单元138利用eVIDX作为到第二层复制表格的索引,以确定该分组将要被转发到的扩展端口。如上所述,eVIDX用于索引到第二层复制表格,其中第二层复制表格中的每个条目包括指向扩展端口链接列表的指针。在一个实施方式中,每个条目还包括用于确定是否以及如何掩蔽链接列表条目的掩蔽简介。在一些实施方式中,如果eVIDX小于4K或者一些其他适当的值,那么第二层复制器单元138不执行复制。而是,eVIDX被看作是物理端口列表的指示符。在一个实施方式中,当eVIDX小于4K时,第二层组播复制器单元144使用eVIDX作为到VIDX表格的索引。该VIDX表格中的每个条目包括指向该分组将要被复制到的物理端口的列表的指针,并且发送排队单元146创建该分组的副本并且将该副本添加到与由该链接列表所指示的物理端口相对应的发送队列中
图8是根据一个实施方式用于执行第二层复制的示例性方法500的流程图。为了便于说明,在一个实施方式中,用流水线102(图3)来实现并且相对于图3来讨论方法500。在其他实施方式中,在网络设备的另一个合适的分组处理流水线中实现类似的方法。方法500利用eVIDX,eVIDX用于索引第二层复制器单元138的第二层复制表格或者第二层组播复制器单元144的VIDX表格。
在方框504,确定eVIDX的值是否小于阈值,其中,eVIDX的值是否小于阈值指示eVIDX是对应于扩展端口列表还是物理端口列表。在一个实施方式中,eVIDX是16比特的数字并且阈值是4K。在其他实施方式中,eVIDX包括不同数量的比特并且/或者该阈值是其他合适的值。如果确定eVIDX的值不小于该阈值,那么这指示eVIDX对应于扩展端口列表并且流程前进到方框508。
在方框508,eVIDX用于创建到第二层复制表格的索引。在阈值是4K的一个实施方式中,通过从eVIDX减去4K来创建该索引。
在方框512,由第二层复制器单元138使用在方框508处创建的索引来执行第二层复制。在一个实施方式中,所索引的第二层复制表格提供指向扩展端口链接列表的指针。第二层复制器单元138的复制引擎复制该分组,以便转发到由该链接列表所指示的扩展端口。
另一方面,如果在方框504处确定eVIDX的值小于阈值(例如在一个实施方式中,小于4K),这指示eVIDX对应于物理端口列表并且流程前进到方框516。在方框516,eVIDX用于索引VIDX表格,以确定该分组将要被复制到的物理端口,并且由第二层组播复制器单元144执行第二层复制。在一个实施方式中,第二层组播复制器单元144的索引的VIDX表格提供指向物理端口列表的指针。第二层组播复制器单元144的复制引擎复制该分组,以便转发到由该列表所指示的物理端口。在利用级联端口的一个实施方式中,该物理端口列表的条目可以对应于转发到级联端口。在一个实施方式中,级联端口是用于将分组转发到交换系统中的相邻交换机设备的端口。在其他实施方式中,不同的级联端口可以对应于该物理端口列表中的不同条目。
在一个实施方式中并且在一些情况中,所索引的第二层复制表格提供指向外发接口的链接列表的指针,其中,外发接口可以是扩展端口或具有比该阈值更小的值(例如小于4K)的eVIDX。在该实施方式中,如果在该链接列表中其中一个外发接口是具有比阈值更小的值的eVIDX,那么第二层复制器单元138复制该分组并且向该分组分配eVIDX。然后,如相对于方框516所述的那样将该分组复制到物理端口列表。
在一个实施方式中,第二层复制表格中的条目可以对应于VIDX。在该实施方式中,当第二层复制表格中的条目对应于VIDX时,第二层组播复制器单元144还将该分组复制到由该VIDX指示的物理端口集合。换句话说,第二层复制器单元138和第二层组播复制器单元144都执行复制。在另一个实施方式中,由预外发引擎140将第二层复制表格中的扩展端口条目映射到VIDX。在该情况中,第二层组播复制器单元144还将该分组复制到由该VIDX指示的物理端口集合。换句话说,第二层复制器单元138和第二层组播复制器单元144都执行复制。
图9是根据一个实施方式利用网络设备10的示例性网络600的方框图。在图9的实施方式中,网络设备10是运营商边缘设备(PE)或者是PE的组成部分。网络600包括可通信地耦合到PE 10的其他PE 604、608、612。PE 10还可通信地耦合到多个客户网络620、624、628。
在图9中所示的示例性情况中,PE 10经由物理端口644从客户网络620接收分组640(分组A)。映射器32向分组640分配与物理端口644相对应的扩展端口648。eVLAN分配单元60向分组640分配eVLAN 652。eVLAN 652包括扩展端口648以及分别与PE608、客户网络624和PE 604相对应的扩展端口656、658和660。
在图9的示例性情况中,分组处理器14不认识分组10的目的地地址(DA)并且因此判决应该将该分组640洪泛到eVLAN 652。例如,分组处理器14向分组640分配与eVLAN 652相对应的eVIDX。分组处理器14为扩展端口656、658和660复制分组640,但是过滤掉扩展端口648,使得分组640不被发送回到客户网络620。虽然图9中仅示出了与物理端口的数量相等数量的扩展端口,但是PE 10包括比物理端口的数量更大数量的扩展端口。
属性分配单元66向与扩展端口656、658和660相对应的分组副本分配不同的属性。例如,属性分配单元66向扩展端口658的分组副本分配的属性指示该分组将要被隧道终止,然后将该分组隧道封装到MPLS PW标记1中以生成分组670。作为另一个示例,属性分配单元66向扩展端口656的分组副本分配的属性指示该分组将要被隧道终止,应该从该分组中去除VLAN标签,并且要用PWE3控制字将该分组隧道封装到MPLS PW标记2中以生成分组674。作为又一个示例,属性分配单元66向扩展端口660的分组副本分配的属性指示该分组将要被隧道终止,应该向该分组添加附加VLAN标签,并且将该分组隧道封装到MPLS PW标记3中以生成分组678。分组处理器14利用所分配的属性来恰当地处理分组副本并且生成分组670、674和678。
映射器32将扩展端口656、658和660映射到各自的物理端口。
注意,可以使用硬件、运行固件指令的处理器、运行软件指令的处理器或它们的任意结合来实现附图中的每个方框。当至少部分地使用运行软件指令的处理器来实现方框时,可以将该软件存储在任意计算机可读存储器中(例如磁盘、光盘或其它存储介质)、存储在计算机、处理器、硬盘驱动器、光盘驱动器、磁带驱动器等等的RAM或ROM或闪存中。类似地,可以经由任意已知的或希望的传递方法来向用户或系统传递该软件指令,包括例如在计算机可读盘片或者其它可传输计算机存储机制上或者经由通信介质。当用硬件来实现时,该硬件可以包括一个或多个离散的组件、集成电路、专用集成电路(ASIC)等等。参考图3,根据一个实施方式,将流水线102实现在单个集成电路(IC)上。在其它实施方式中,将流水线102实现在多个IC上。例如,在一个实施方式中,将进入部分104实现在第一IC上并且将外发部分实现在第二IC上。
虽然参考仅仅意图用于说明而非限制本发明的具体示例描述了本发明,但是对于本领域的熟练技术人员而言,在不脱离本发明的精神和范围的前提下显然可以对本文公开的实施方式做出修改、添加和/或删减。

Claims (35)

1.一种网络设备,包括:
多个物理端口;
耦合到所述多个物理端口的分组处理流水线,其中,所述分组处理流水线被配置为:
向经由所述物理端口中的一个物理端口接收的分组分配多个虚拟端口中的一个虚拟端口,其中,所述多个虚拟端口的数量大于所述多个物理端口的数量,并且其中,对于所述物理端口中的至少一些中的每一个,若干个虚拟端口对应于一个物理端口,
基于所分配的虚拟端口,向所述分组分配多个虚拟域中的一个虚拟域,并且
基于i)所分配的虚拟端口,ii)所分配的虚拟域,以及iii)所述分组的头部字段中的一项或多项来处理所述分组,包括确定所述分组将要被转发到的零个、一个或多个物理端口。
2.如权利要求1所述的网络设备,其中,所述分组处理流水线被配置为:
基于所分配的虚拟端口和所分配的虚拟域,向所述分组分配属性,并且
基于所分配的属性处理所述分组。
3.如权利要求2所述的网络设备,其中,所分配的虚拟端口是第二虚拟端口,并且所分配的属性是第二属性,并且其中,所述分组处理流水线被配置为通过以下步骤来分配所述第二虚拟端口:
向所述分组分配第一虚拟端口,
基于所分配的第一虚拟端口向所述分组分配第一属性,并且
基于所分配的第一属性向所述分组分配所述第二虚拟端口。
4.如权利要求1所述的网络设备,其中,所分配的虚拟端口是第二虚拟端口,并且其中,所述分组处理流水线被配置为通过以下步骤来分配所述第二虚拟端口:
基于所述分组所进入的物理端口向所述分组分配第一虚拟端口,
确定应该向所述分组分配不同的虚拟端口,并且
响应于确定应该向所述分组分配不同的虚拟端口,向所述分组分配所述第二虚拟端口。
5.如权利要求4所述的网络设备,其中,所述分组处理流水线被配置为:基于所述分组是否标记有包括虚拟端口标识符的标签,来确定应该向所述分组分配不同的虚拟端口。
6.如权利要求4所述的网络设备,其中,所述分组处理流水线被配置为:基于是否应该隧道终止该分组,来确定应该向所述分组分配不同的虚拟端口。
7.如权利要求4所述的网络设备,其中,所述分组处理流水线被配置为:基于所述分组是否对应于多链接透明互联(TRILL)协议,来确定应该向所述分组分配不同的虚拟端口。
8.如权利要求43所述的网络设备,其中,所述分组处理流水线被配置为:基于所述分组的头部的一个或多个字段,来确定应该向所述分组分配不同的虚拟端口。
9.如权利要求1所述的网络设备,其中,所述分组处理流水线被配置为通过以下步骤确定所述分组将要被转发到的零个、一个或多个物理接口:
确定所述分组将要被转发到的零个、一个或多个目标虚拟端口,并且
对于所确定的每个目标虚拟端口,将所述虚拟端口映射到物理接口。
10.如权利要求1所述的网络设备,其中,所述分组处理流水线被配置为通过以下步骤确定所述分组将要被转发到的零个、一个或多个物理接口:
确定所述分组将要被转发到的主等价多径(ECMP)虚拟端口,
确定与所述主ECMP虚拟端口相对应的次ECMP虚拟端口,并且
将所述次ECMP虚拟端口映射到物理接口。
11.如权利要求1所述的网络设备,其中,所述分组处理流水线被配置为:
确定所述分组将要被转发到的多个虚拟端口或者多个物理端口的指示符,
确定所述指示符是对应于虚拟端口还是物理端口,
如果所述指示符对应于虚拟端口,则在所述分组处理流水线中的第一流水线单元处复制所述分组,并且
如果所述指示符对应于物理端口,则在所述分组处理流水线中的第二流水线单元处复制所述分组。
12.一种分组处理方法,包括:
经由源物理端口从多个物理端口接收分组;
向经由所述物理端口中的一个物理端口接收的分组分配多个虚拟端口中的一个虚拟端口,其中,所述多个虚拟端口的数量大于所述多个物理端口的数量,并且其中,对于所述物理端口中的至少一些中的每一个,若干个虚拟端口对应于一个物理端口,
基于所分配的虚拟端口,向所述分组分配多个虚拟域中的一个虚拟域,
基于i)所分配的虚拟端口,ii)所分配的虚拟域,以及iii)所述分组的头部字段中的一项或多项,利用分组处理流水线来处理所述分组,包括确定所述分组将要被转发到的零个、一个或多个物理端口。
13.如权利要求12所述的方法,还包括:
基于所分配的虚拟端口和所分配的虚拟域,向所述分组分配属性;
其中,利用所述分组处理流水线处理所述分组还基于所分配的属性。
14.如权利要求13所述的方法,其中,所分配的虚拟端口是第二虚拟端口,并且所分配的属性是第二属性,并且其中,分配所述第二虚拟端口包括:
向所述分组分配第一虚拟端口,
基于所分配的第一虚拟端口向所述分组分配第一属性,并且
基于所分配的第一属性向所述分组分配所述第二虚拟端口。
15.如权利要求12所述的方法,其中,所分配的虚拟端口是第二虚拟端口,并且其中,分配所述第二虚拟端口包括:
向所述分组分配第一虚拟端口;
确定应该向所述分组分配不同的虚拟端口;并且
响应于确定应该向所述分组分配不同的虚拟端口,向所述分组分配所述第二虚拟端口。
16.如权利要求15所述的方法,其中,基于所述分组是否标记有包括虚拟端口标识符的标签,来确定应该向所述分组分配不同的虚拟端口。
17.如权利要求15所述的方法,其中,基于是否应该隧道终止该分组,来确定应该向所述分组分配不同的虚拟端口。
18.如权利要求15所述的方法,其中,基于所述分组是否对应于多链接透明互联(TRILL)协议,来确定应该向所述分组分配不同的虚拟端口。
19.如权利要求15所述的方法,其中,基于所述分组的头部的一个或多个字段,来确定应该向所述分组分配不同的虚拟端口。
20.如权利要求12所述的方法,其中,所述分组处理流水线被配置为通过以下步骤确定所述分组将要被转发到的零个、一个或多个物理端口:
确定所述分组将要被转发到的零个、一个或多个目标虚拟端口,并且
对于所确定的每个目标虚拟端口,将所述虚拟端口映射到物理端口。
21.如权利要求12所述的方法,其中,确定所述分组将要被转发到的零个、一个或多个物理端口包括:
确定所述分组将要被转发到的主等价多径(ECMP)虚拟端口;
确定与所述主ECMP虚拟端口相对应的次ECMP虚拟端口;并且
将所述次ECMP虚拟端口映射到物理端口。
22.如权利要求12所述的方法,还包括:
确定所述分组将要被转发到的多个虚拟端口或者多个物理端口的指示符;
确定所述指示符是对应于虚拟端口还是物理端口;
如果所述指示符对应于虚拟端口,则使用所述分组处理流水线中的第一流水线单元复制所述分组;并且
如果所述指示符对应于物理端口,则使用所述分组处理流水线中的第二流水线单元复制所述分组。
23.一种网络设备,包括:
多个物理端口;
耦合到所述多个物理端口的分组处理流水线,所述分组处理流水线包括多个流水线单元,所述多个流水线单元包括:
被配置为向经由所述物理端口中的一个物理端口接收的分组分配多个虚拟端口中的一个虚拟端口的单元,其中,所述多个虚拟端口的数量大于所述多个物理端口的数量,并且其中,对于所述物理端口中的至少一些中的每一个,若干个虚拟端口对应于一个物理端口;
被配置为基于所分配的虚拟端口,向所述分组分配多个虚拟域中的一个虚拟域的一个或多个单元;
一个或多个下游单元,被配置为基于所分配的虚拟端口、所分配的虚拟域以及所述分组的头部的字段中的一项或多项来处理所述分组,所述一个或多个下游单元包括:
用于确定所述分组将要被转发到的零个、一个或多个目标虚拟端口的一个或多个转发引擎;以及
被配置为将所述分组将要被转发到的一个或多个目标虚拟端口映射到一个或多个物理端口的一个或多个单元。
24.如权利要求23所述的网络设备,还包括:
被配置为基于所分配的虚拟端口和所分配的虚拟域来向所述分组分配属性的一个或多个单元;
其中,被配置为处理所述分组的所述一个或多个下游单元被配置为还基于所分配的属性来处理所述分组。
25.如权利要求23所述的网络设备,其中,所分配的虚拟端口是第二虚拟端口,并且其中,被配置为分配虚拟端口的单元被配置为:
向所述分组分配第一虚拟端口,
确定应该向所述分组分配不同的虚拟端口,并且
响应于确定应该向所述分组分配不同的虚拟端口,向所述分组分配所述第二虚拟端口。
26.一种网络设备,包括:
多个物理端口;
耦合到所述多个物理端口的分组处理流水线,其中,所述分组处理流水线被配置为:
向经由所述物理端口中的一个物理端口接收的分组分配多个虚拟端口中的一个虚拟端口,其中,所述多个虚拟端口的数量大于所述多个物理端口的数量,并且其中,对于所述物理端口中的至少一些中的每一个,若干个虚拟端口对应于一个物理端口,
基于所分配的虚拟端口,向所述分组分配多个虚拟域中的一个虚拟域,其中,所述虚拟域对应于所述多个虚拟端口的子集,
基于所分配的虚拟域来确定所述分组将要被转发到的虚拟端口集合或者物理端口集合的指示符,
确定所述指示符是对应于虚拟端口还是物理端口,
如果所述指示符对应于虚拟端口,则在所述分组处理流水线中的第一流水线单元处将所述分组复制给所述虚拟端口集合,
如果所述指示符对应于虚拟端口,则将所述虚拟端口集合映射到一个或多个物理端口,
如果所述指示符对应于物理端口,则在所述分组处理流水线中的第二流水线单元处将所述分组复制给所述物理端口集合,并且
经由一个或多个物理端口发送所述分组。
27.如权利要求26所述的网络设备,其中,所述分组处理流水线被配置为:
如果所述指示符对应于虚拟端口,则利用所述指示符来索引第一表格,以确定所述虚拟端口集合,并且
如果所述指示符对应于物理端口,则利用所述指示符来索引第二表格,以确定所述物理端口集合。
28.如权利要求26所述的网络设备,其中,所述分组处理流水线被配置为:基于将所述指示符的值与阈值进行比较,来确定所述指示符是对应于虚拟端口还是物理端口。
29.如权利要求26所述的网络设备,其中,所述虚拟端口集合的指示符包括在如下列表中,该列表还包括到一个物理端口组的索引的指示符,其中,所述分组处理流水线被配置为:
如果所述指示符对应于虚拟端口,则在所述分组处理流水线中的所述第二流水线单元处将所述分组复制给所述物理端口组。
30.如权利要求26所述的网络设备,其中,所述分组处理流水线被配置为:
将所述虚拟端口集合中的一个虚拟端口映射到到一个物理端口组的索引,并且
在所述分组处理流水线中的所述第二流水线单元处将所述分组复制给所述物理端口组。
31.一种分组处理方法,包括:
经由源物理端口从多个物理端口接收分组;
向经由所述物理端口中的一个物理端口接收的分组分配多个虚拟端口中的一个虚拟端口,其中,所述多个虚拟端口的数量大于所述多个物理端口的数量,并且其中,对于所述物理端口中的至少一些中的每一个,若干个虚拟端口对应于一个物理端口;
基于所分配的虚拟端口,向所述分组分配多个虚拟域中的一个虚拟域,其中,所述虚拟域对应于所述多个虚拟端口的子集;
基于所分配的虚拟域来确定所述分组将要被转发到的虚拟端口集合或者物理端口集合的指示符;
确定所述指示符是对应于虚拟端口还是物理端口;
如果所述指示符对应于虚拟端口,则在所述分组处理流水线中的第一流水线单元处将所述分组复制给所述虚拟端口集合;
如果所述指示符对应于虚拟端口,则将所述虚拟端口集合映射到一个或多个物理端口;
如果所述指示符对应于物理端口,则在所述分组处理流水线中的第二流水线单元处将所述分组复制给所述物理端口集合;并且
经由一个或多个物理端口发送所述分组。
32.如权利要求31所述的方法,还包括:
如果所述指示符对应于虚拟端口,则利用所述指示符来索引第一表格,以确定所述虚拟端口集合;并且
如果所述指示符对应于物理端口,则利用所述指示符来索引第二表格,以确定所述物理端口集合。
33.如权利要求31所述的方法,其中,确定所述指示符是对应于虚拟端口还是物理端口包括:将所述指示符的值与阈值进行比较。
34.如权利要求31所述的方法,其中,所述虚拟端口集合的指示符包括在如下列表中,该列表还包括到一个物理端口组的索引的指示符,其中,所述方法还包括:
如果所述指示符对应于虚拟端口,则在所述分组处理流水线中的所述第二流水线单元处将所述分组复制给所述物理端口组。
35.如权利要求31所述的方法,还包括:
将所述虚拟端口集合中的一个虚拟端口映射到到一个物理端口组的索引,并且
在所述分组处理流水线中的所述第二流水线单元处将所述分组复制给所述物理端口组。
CN201080025581.4A 2009-11-02 2010-11-02 基于虚拟接口的交换装置和方法 Active CN102474449B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US25740609P 2009-11-02 2009-11-02
US61/257,406 2009-11-02
PCT/US2010/055115 WO2011053973A1 (en) 2009-11-02 2010-11-02 Switching apparatus and method based on virtual interfaces

Publications (2)

Publication Number Publication Date
CN102474449A true CN102474449A (zh) 2012-05-23
CN102474449B CN102474449B (zh) 2016-05-04

Family

ID=43479240

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080025581.4A Active CN102474449B (zh) 2009-11-02 2010-11-02 基于虚拟接口的交换装置和方法

Country Status (4)

Country Link
US (2) US8625594B2 (zh)
EP (2) EP2497234B1 (zh)
CN (1) CN102474449B (zh)
WO (1) WO2011053973A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104852869A (zh) * 2014-02-14 2015-08-19 杭州华三通信技术有限公司 一种端口聚合方法及装置
CN105493029A (zh) * 2013-08-29 2016-04-13 株式会社Kt 数据包输出控制方法及使用该方法的网络装置
CN107995119A (zh) * 2017-12-11 2018-05-04 浙江亿邦通信科技股份有限公司 基于端口模型的三层及以上网络设备stp的实现方法及系统
CN108173699A (zh) * 2018-01-26 2018-06-15 武汉光迅科技股份有限公司 一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法
CN108347392A (zh) * 2018-03-20 2018-07-31 深圳市风云实业有限公司 业务报文跨板处理方法、装置及系统
CN109450819A (zh) * 2018-10-25 2019-03-08 锐捷网络股份有限公司 一种广播报文的转发方法及系统
CN110798541A (zh) * 2019-10-31 2020-02-14 新华三大数据技术有限公司 接口共享、报文转发方法、装置、电子设备及存储介质
CN111181857A (zh) * 2018-11-09 2020-05-19 深圳市中兴微电子技术有限公司 一种报文处理方法及装置、存储介质、光网络终端
CN114900456A (zh) * 2022-05-17 2022-08-12 苏州雄立科技有限公司 一种mac地址管理装置及方法

Families Citing this family (202)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407364B2 (en) 2007-10-25 2013-03-26 Cisco Technology, Inc. Apparatus and method for providing a congestion measurement in a network
US9237100B1 (en) 2008-08-06 2016-01-12 Marvell Israel (M.I.S.L.) Ltd. Hash computation for network switches
US8665886B2 (en) 2009-03-26 2014-03-04 Brocade Communications Systems, Inc. Redundant host connection in a routed network
KR101460848B1 (ko) 2009-04-01 2014-11-20 니시라, 인크. 가상 스위치를 구현 및 관리하는 방법 및 장치
US8369335B2 (en) 2010-03-24 2013-02-05 Brocade Communications Systems, Inc. Method and system for extending routing domain to non-routing end stations
US8611352B2 (en) 2010-04-20 2013-12-17 Marvell World Trade Ltd. System and method for adapting a packet processing pipeline
US8989186B2 (en) 2010-06-08 2015-03-24 Brocade Communication Systems, Inc. Virtual port grouping for virtual cluster switching
US9769016B2 (en) 2010-06-07 2017-09-19 Brocade Communications Systems, Inc. Advanced link tracking for virtual cluster switching
US9270486B2 (en) 2010-06-07 2016-02-23 Brocade Communications Systems, Inc. Name services for virtual cluster switching
US9461840B2 (en) 2010-06-02 2016-10-04 Brocade Communications Systems, Inc. Port profile management for virtual cluster switching
US9716672B2 (en) 2010-05-28 2017-07-25 Brocade Communications Systems, Inc. Distributed configuration management for virtual cluster switching
US8625616B2 (en) 2010-05-11 2014-01-07 Brocade Communications Systems, Inc. Converged network extension
US9231890B2 (en) 2010-06-08 2016-01-05 Brocade Communications Systems, Inc. Traffic management for virtual cluster switching
US8867552B2 (en) 2010-05-03 2014-10-21 Brocade Communications Systems, Inc. Virtual cluster switching
US9001824B2 (en) * 2010-05-18 2015-04-07 Brocade Communication Systems, Inc. Fabric formation for virtual cluster switching
US8885488B2 (en) 2010-06-02 2014-11-11 Brocade Communication Systems, Inc. Reachability detection in trill networks
US8634308B2 (en) 2010-06-02 2014-01-21 Brocade Communications Systems, Inc. Path detection in trill networks
US8687636B1 (en) 2010-06-02 2014-04-01 Marvell Israel (M.I.S.L) Ltd. Extended policy control list keys having backwards compatibility
US8804733B1 (en) 2010-06-02 2014-08-12 Marvell International Ltd. Centralized packet processor for a network
US8446914B2 (en) 2010-06-08 2013-05-21 Brocade Communications Systems, Inc. Method and system for link aggregation across multiple switches
US9628293B2 (en) 2010-06-08 2017-04-18 Brocade Communications Systems, Inc. Network layer multicasting in trill networks
US9806906B2 (en) 2010-06-08 2017-10-31 Brocade Communications Systems, Inc. Flooding packets on a per-virtual-network basis
US20110299533A1 (en) * 2010-06-08 2011-12-08 Brocade Communications Systems, Inc. Internal virtual network identifier and internal policy identifier
US9246703B2 (en) 2010-06-08 2016-01-26 Brocade Communications Systems, Inc. Remote port mirroring
US9608833B2 (en) 2010-06-08 2017-03-28 Brocade Communications Systems, Inc. Supporting multiple multicast trees in trill networks
US10033650B2 (en) * 2010-06-08 2018-07-24 Brocade Communication Systems Llc Preserving quality of service across trill networks
US8842679B2 (en) 2010-07-06 2014-09-23 Nicira, Inc. Control system that elects a master controller instance for switching elements
US9680750B2 (en) 2010-07-06 2017-06-13 Nicira, Inc. Use of tunnels to hide network addresses
US9807031B2 (en) 2010-07-16 2017-10-31 Brocade Communications Systems, Inc. System and method for network configuration
US8964742B1 (en) * 2010-07-28 2015-02-24 Marvell Israel (M.I.S.L) Ltd. Linked list profiling and updating
US20120099591A1 (en) * 2010-10-26 2012-04-26 Dell Products, Lp System and Method for Scalable Flow Aware Network Architecture for Openflow Based Network Virtualization
US8660005B2 (en) 2010-11-30 2014-02-25 Marvell Israel (M.I.S.L) Ltd. Load balancing hash computation for network switches
US9319276B2 (en) * 2010-12-21 2016-04-19 Cisco Technology, Inc. Client modeling in a forwarding plane
US20120163164A1 (en) * 2010-12-27 2012-06-28 Brocade Communications Systems, Inc. Method and system for remote load balancing in high-availability networks
JP5888338B2 (ja) * 2010-12-27 2016-03-22 日本電気株式会社 通信システムおよび通信方法
CN103004158B (zh) 2011-01-06 2016-12-28 马维尔以色列(M.I.S.L)有限公司 具有可编程内核的网络设备
US9270572B2 (en) 2011-05-02 2016-02-23 Brocade Communications Systems Inc. Layer-3 support in TRILL networks
US9401861B2 (en) 2011-06-28 2016-07-26 Brocade Communications Systems, Inc. Scalable MAC address distribution in an Ethernet fabric switch
US9407533B2 (en) 2011-06-28 2016-08-02 Brocade Communications Systems, Inc. Multicast in a trill network
US8948056B2 (en) 2011-06-28 2015-02-03 Brocade Communication Systems, Inc. Spanning-tree based loop detection for an ethernet fabric switch
US8879549B2 (en) 2011-06-28 2014-11-04 Brocade Communications Systems, Inc. Clearing forwarding entries dynamically and ensuring consistency of tables across ethernet fabric switch
US9007958B2 (en) 2011-06-29 2015-04-14 Brocade Communication Systems, Inc. External loop detection for an ethernet fabric switch
US8885641B2 (en) 2011-06-30 2014-11-11 Brocade Communication Systems, Inc. Efficient trill forwarding
US9729431B1 (en) 2011-08-16 2017-08-08 Marvell International Ltd. Using standard fields to carry meta-information
US8958298B2 (en) 2011-08-17 2015-02-17 Nicira, Inc. Centralized logical L3 routing
US10091028B2 (en) 2011-08-17 2018-10-02 Nicira, Inc. Hierarchical controller clusters for interconnecting two or more logical datapath sets
US9736085B2 (en) 2011-08-29 2017-08-15 Brocade Communications Systems, Inc. End-to end lossless Ethernet in Ethernet fabric
US20130070761A1 (en) * 2011-09-20 2013-03-21 International Business Machines Corporation Systems and methods for controlling a network switch
US8804572B2 (en) 2011-10-25 2014-08-12 International Business Machines Corporation Distributed switch systems in a trill network
US9699117B2 (en) 2011-11-08 2017-07-04 Brocade Communications Systems, Inc. Integrated fibre channel support in an ethernet fabric switch
US9450870B2 (en) 2011-11-10 2016-09-20 Brocade Communications Systems, Inc. System and method for flow management in software-defined networks
WO2013074827A1 (en) 2011-11-15 2013-05-23 Nicira, Inc. Architecture of networks with middleboxes
US9171030B1 (en) 2012-01-09 2015-10-27 Marvell Israel (M.I.S.L.) Ltd. Exact match lookup in network switch devices
US8995272B2 (en) 2012-01-26 2015-03-31 Brocade Communication Systems, Inc. Link aggregation in software-defined networks
US9742693B2 (en) 2012-02-27 2017-08-22 Brocade Communications Systems, Inc. Dynamic service insertion in a fabric switch
US9614774B2 (en) * 2012-03-14 2017-04-04 Telefonaktiebolaget Lm Ericsson (Publ) Method for providing a QoS prioritized data traffic
US8873552B2 (en) * 2012-03-19 2014-10-28 International Business Machines Corporation Unregistered multicast (MC) packet forwarding to multicast router ports
US9154416B2 (en) 2012-03-22 2015-10-06 Brocade Communications Systems, Inc. Overlay tunnel in a fabric switch
US9025597B2 (en) 2012-03-22 2015-05-05 Cisco Technology, Inc. Methods and apparatus for providing one-arm node clustering using a port channel
US9374301B2 (en) 2012-05-18 2016-06-21 Brocade Communications Systems, Inc. Network feedback in software-defined networks
US10277464B2 (en) 2012-05-22 2019-04-30 Arris Enterprises Llc Client auto-configuration in a multi-switch link aggregation
EP2853066B1 (en) 2012-05-23 2017-02-22 Brocade Communications Systems, Inc. Layer-3 overlay gateways
CN103490967B (zh) * 2012-06-13 2018-04-27 中兴通讯股份有限公司 别名、多链路透明互连trill报文处理方法及装置
US20140044129A1 (en) * 2012-08-10 2014-02-13 Duane Edward MENTZE Multicast packet forwarding in a network
US9602430B2 (en) 2012-08-21 2017-03-21 Brocade Communications Systems, Inc. Global VLANs for fabric switches
US20140086237A1 (en) * 2012-09-26 2014-03-27 Avaya, Inc. Method for Virtual Multicast Group IDs
US9401872B2 (en) 2012-11-16 2016-07-26 Brocade Communications Systems, Inc. Virtual link aggregations across multiple fabric switches
CN103825794B (zh) * 2012-11-19 2017-07-14 华为技术有限公司 多链路透明互联数据帧发送方法及装置
US9350680B2 (en) 2013-01-11 2016-05-24 Brocade Communications Systems, Inc. Protection switching over a virtual link aggregation
US9548926B2 (en) 2013-01-11 2017-01-17 Brocade Communications Systems, Inc. Multicast traffic load balancing over virtual link aggregation
US9413691B2 (en) 2013-01-11 2016-08-09 Brocade Communications Systems, Inc. MAC address synchronization in a fabric switch
US9565113B2 (en) 2013-01-15 2017-02-07 Brocade Communications Systems, Inc. Adaptive link aggregation and virtual link aggregation
US9356884B2 (en) * 2013-01-17 2016-05-31 Cisco Technology, Inc. MSDC scaling through on-demand path update
CN104009926B (zh) 2013-02-26 2017-04-12 杭州华三通信技术有限公司 Evi网络中的组播方法及边缘设备ed
US9819637B2 (en) 2013-02-27 2017-11-14 Marvell World Trade Ltd. Efficient longest prefix matching techniques for network devices
US9565099B2 (en) 2013-03-01 2017-02-07 Brocade Communications Systems, Inc. Spanning tree in fabric switches
US9401818B2 (en) 2013-03-15 2016-07-26 Brocade Communications Systems, Inc. Scalable gateways for a fabric switch
US9537771B2 (en) 2013-04-04 2017-01-03 Marvell Israel (M.I.S.L) Ltd. Exact match hash lookup databases in network switch devices
US9565028B2 (en) 2013-06-10 2017-02-07 Brocade Communications Systems, Inc. Ingress switch multicast distribution in a fabric switch
US9699001B2 (en) 2013-06-10 2017-07-04 Brocade Communications Systems, Inc. Scalable and segregated network virtualization
US10348626B1 (en) * 2013-06-18 2019-07-09 Marvell Israel (M.I.S.L) Ltd. Efficient processing of linked lists using delta encoding
US9571386B2 (en) 2013-07-08 2017-02-14 Nicira, Inc. Hybrid packet processing
US9407580B2 (en) 2013-07-12 2016-08-02 Nicira, Inc. Maintaining data stored with a packet
US9197529B2 (en) 2013-07-12 2015-11-24 Nicira, Inc. Tracing network packets through logical and physical networks
US9282019B2 (en) 2013-07-12 2016-03-08 Nicira, Inc. Tracing logical network packets through physical network
US9641455B2 (en) 2013-07-18 2017-05-02 International Business Machines Corporation Mechanism for terminating relay operations in a distributed switch with cascaded configuration
US9952885B2 (en) 2013-08-14 2018-04-24 Nicira, Inc. Generation of configuration files for a DHCP module executing within a virtualized container
US9887960B2 (en) 2013-08-14 2018-02-06 Nicira, Inc. Providing services for logical networks
US9577845B2 (en) 2013-09-04 2017-02-21 Nicira, Inc. Multiple active L3 gateways for logical networks
US9503371B2 (en) 2013-09-04 2016-11-22 Nicira, Inc. High availability L3 gateways for logical networks
US9806949B2 (en) 2013-09-06 2017-10-31 Brocade Communications Systems, Inc. Transparent interconnection of Ethernet fabric switches
US9602398B2 (en) 2013-09-15 2017-03-21 Nicira, Inc. Dynamically generating flows with wildcard fields
US9674087B2 (en) 2013-09-15 2017-06-06 Nicira, Inc. Performing a multi-stage lookup to classify packets
US10063458B2 (en) 2013-10-13 2018-08-28 Nicira, Inc. Asymmetric connection with external networks
US9977685B2 (en) 2013-10-13 2018-05-22 Nicira, Inc. Configuration of logical router
US9344336B2 (en) * 2013-10-15 2016-05-17 Dell Products L.P. System and method for managing virtual link state
US9912612B2 (en) 2013-10-28 2018-03-06 Brocade Communications Systems LLC Extended ethernet fabric switches
US9967199B2 (en) 2013-12-09 2018-05-08 Nicira, Inc. Inspecting operations of a machine to detect elephant flows
US20150163133A1 (en) * 2013-12-09 2015-06-11 Donald B. Grosser Load sharing of mpls pseudo-wires
US9548924B2 (en) 2013-12-09 2017-01-17 Nicira, Inc. Detecting an elephant flow based on the size of a packet
US9569368B2 (en) 2013-12-13 2017-02-14 Nicira, Inc. Installing and managing flows in a flow table cache
US9996467B2 (en) 2013-12-13 2018-06-12 Nicira, Inc. Dynamically adjusting the number of flows allowed in a flow table cache
CN104869010B (zh) 2013-12-13 2021-06-18 马维尔以色列(M.I.S.L.)有限公司 保护切换
US9894144B2 (en) * 2014-01-09 2018-02-13 International Business Machines Corporation Application level mirroring in distributed overlay virtual networks
US9548873B2 (en) 2014-02-10 2017-01-17 Brocade Communications Systems, Inc. Virtual extensible LAN tunnel keepalives
US9571400B1 (en) 2014-02-25 2017-02-14 Google Inc. Weighted load balancing in a multistage network using hierarchical ECMP
US9906592B1 (en) 2014-03-13 2018-02-27 Marvell Israel (M.I.S.L.) Ltd. Resilient hash computation for load balancing in network switches
US9590901B2 (en) 2014-03-14 2017-03-07 Nicira, Inc. Route advertisement by managed gateways
US9225597B2 (en) 2014-03-14 2015-12-29 Nicira, Inc. Managed gateways peering with external router to attract ingress packets
US9419855B2 (en) 2014-03-14 2016-08-16 Nicira, Inc. Static routes for logical routers
US10581758B2 (en) 2014-03-19 2020-03-03 Avago Technologies International Sales Pte. Limited Distributed hot standby links for vLAG
US10476698B2 (en) 2014-03-20 2019-11-12 Avago Technologies International Sales Pte. Limited Redundent virtual link aggregation group
US9647883B2 (en) 2014-03-21 2017-05-09 Nicria, Inc. Multiple levels of logical routers
US9893988B2 (en) 2014-03-27 2018-02-13 Nicira, Inc. Address resolution using multiple designated instances of a logical router
US9413644B2 (en) 2014-03-27 2016-08-09 Nicira, Inc. Ingress ECMP in virtual distributed routing environment
US9985896B2 (en) 2014-03-31 2018-05-29 Nicira, Inc. Caching of service decisions
US9385954B2 (en) 2014-03-31 2016-07-05 Nicira, Inc. Hashing techniques for use in a network environment
US10193806B2 (en) 2014-03-31 2019-01-29 Nicira, Inc. Performing a finishing operation to improve the quality of a resulting hash
US10063473B2 (en) 2014-04-30 2018-08-28 Brocade Communications Systems LLC Method and system for facilitating switch virtualization in a network of interconnected switches
US9800471B2 (en) 2014-05-13 2017-10-24 Brocade Communications Systems, Inc. Network extension groups of global VLANs in a fabric switch
US10587516B1 (en) 2014-07-15 2020-03-10 Marvell Israel (M.I.S.L) Ltd. Hash lookup table entry management in a network device
EP3172877B1 (en) 2014-07-25 2019-07-10 Telefonaktiebolaget LM Ericsson (publ) Packet processing in an openflow switch
US10616108B2 (en) 2014-07-29 2020-04-07 Avago Technologies International Sales Pte. Limited Scalable MAC address virtualization
US9544219B2 (en) 2014-07-31 2017-01-10 Brocade Communications Systems, Inc. Global VLAN services
US9807007B2 (en) 2014-08-11 2017-10-31 Brocade Communications Systems, Inc. Progressive MAC address learning
GB2529698B (en) * 2014-08-29 2021-05-26 Metaswitch Networks Ltd Packet recording
US10511458B2 (en) 2014-09-30 2019-12-17 Nicira, Inc. Virtual distributed bridging
US10020960B2 (en) 2014-09-30 2018-07-10 Nicira, Inc. Virtual distributed bridging
US9768980B2 (en) 2014-09-30 2017-09-19 Nicira, Inc. Virtual distributed bridging
US11178051B2 (en) 2014-09-30 2021-11-16 Vmware, Inc. Packet key parser for flow-based forwarding elements
US10291550B2 (en) * 2014-09-30 2019-05-14 Arris Enterprises Llc Bridging based upon media access control address
US10250443B2 (en) 2014-09-30 2019-04-02 Nicira, Inc. Using physical location to modify behavior of a distributed virtual network element
US9524173B2 (en) 2014-10-09 2016-12-20 Brocade Communications Systems, Inc. Fast reboot for a switch
US10469342B2 (en) 2014-10-10 2019-11-05 Nicira, Inc. Logical network traffic analysis
US9699029B2 (en) 2014-10-10 2017-07-04 Brocade Communications Systems, Inc. Distributed configuration management in a switch group
US9628407B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Multiple software versions in a switch group
US9626255B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Online restoration of a switch snapshot
US9942097B2 (en) 2015-01-05 2018-04-10 Brocade Communications Systems LLC Power management in a network of interconnected switches
US10003552B2 (en) 2015-01-05 2018-06-19 Brocade Communications Systems, Llc. Distributed bidirectional forwarding detection protocol (D-BFD) for cluster of interconnected switches
US10129180B2 (en) 2015-01-30 2018-11-13 Nicira, Inc. Transit logical switch within logical router
CN105991428B (zh) * 2015-03-05 2020-11-10 中兴通讯股份有限公司 交换机路由冲突的处理方法及装置
EP3266166B1 (en) 2015-03-06 2021-11-17 Marvell World Trade Ltd. Method and apparatus for load balancing in network switches
US10038592B2 (en) 2015-03-17 2018-07-31 Brocade Communications Systems LLC Identifier assignment to a new switch in a switch group
US9807005B2 (en) 2015-03-17 2017-10-31 Brocade Communications Systems, Inc. Multi-fabric manager
US10038628B2 (en) 2015-04-04 2018-07-31 Nicira, Inc. Route server mode for dynamic routing between logical and physical networks
US10579406B2 (en) 2015-04-08 2020-03-03 Avago Technologies International Sales Pte. Limited Dynamic orchestration of overlay tunnels
US10348625B2 (en) 2015-06-30 2019-07-09 Nicira, Inc. Sharing common L2 segment in a virtual distributed router environment
US10439929B2 (en) 2015-07-31 2019-10-08 Avago Technologies International Sales Pte. Limited Graceful recovery of a multicast-enabled switch
US10129142B2 (en) 2015-08-11 2018-11-13 Nicira, Inc. Route configuration for logical router
US10075363B2 (en) 2015-08-31 2018-09-11 Nicira, Inc. Authorization for advertised routes among logical routers
US10171303B2 (en) 2015-09-16 2019-01-01 Avago Technologies International Sales Pte. Limited IP-based interconnection of switches with a logical chassis
US10095535B2 (en) 2015-10-31 2018-10-09 Nicira, Inc. Static route types for logical routers
US9912614B2 (en) 2015-12-07 2018-03-06 Brocade Communications Systems LLC Interconnection of switches based on hierarchical overlay tunneling
US10091023B2 (en) * 2015-12-21 2018-10-02 Ciena Corporation Systems and methods to detect and recover from a loop in an Ethernet ring protected network
US10003677B2 (en) * 2016-01-31 2018-06-19 Nxp Usa, Inc. Network application verification at a network processor
US10904150B1 (en) 2016-02-02 2021-01-26 Marvell Israel (M.I.S.L) Ltd. Distributed dynamic load balancing in network systems
US10333849B2 (en) 2016-04-28 2019-06-25 Nicira, Inc. Automatic configuration of logical routers on edge nodes
US10841273B2 (en) 2016-04-29 2020-11-17 Nicira, Inc. Implementing logical DHCP servers in logical networks
US10484515B2 (en) 2016-04-29 2019-11-19 Nicira, Inc. Implementing logical metadata proxy servers in logical networks
US10091161B2 (en) 2016-04-30 2018-10-02 Nicira, Inc. Assignment of router ID for logical routers
US10708200B2 (en) 2016-05-18 2020-07-07 Marvell Israel (M.I.S.L) Ltd. Traffic management in a network switching system with remote physical ports
US10560320B2 (en) 2016-06-29 2020-02-11 Nicira, Inc. Ranking of gateways in cluster
US10153973B2 (en) 2016-06-29 2018-12-11 Nicira, Inc. Installation of routing tables for logical router in route server mode
US10454758B2 (en) 2016-08-31 2019-10-22 Nicira, Inc. Edge node cluster network redundancy and fast convergence using an underlay anycast VTEP IP
US10243857B1 (en) 2016-09-09 2019-03-26 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for multipath group updates
US10341236B2 (en) 2016-09-30 2019-07-02 Nicira, Inc. Anycast edge service gateways
US10237090B2 (en) 2016-10-28 2019-03-19 Avago Technologies International Sales Pte. Limited Rule-based network identifier mapping
US10742746B2 (en) 2016-12-21 2020-08-11 Nicira, Inc. Bypassing a load balancer in a return path of network traffic
US10237123B2 (en) 2016-12-21 2019-03-19 Nicira, Inc. Dynamic recovery from a split-brain failure in edge nodes
US10212071B2 (en) 2016-12-21 2019-02-19 Nicira, Inc. Bypassing a load balancer in a return path of network traffic
US10616045B2 (en) 2016-12-22 2020-04-07 Nicira, Inc. Migration of centralized routing components of logical router
CN110741610B (zh) 2017-01-09 2021-11-12 马维尔亚洲私人有限公司 具有本地交换的端口扩展器
US10616111B1 (en) * 2017-01-18 2020-04-07 Arista Networks, Inc. Consistent hashing for packets across multi-stage lookups
US10812391B1 (en) 2017-01-27 2020-10-20 Marvell Israel (M.I.S.L) Ltd. Methods and apparatus for load balancing in a network
US10200306B2 (en) 2017-03-07 2019-02-05 Nicira, Inc. Visualization of packet tracing operation results
US10686833B2 (en) * 2017-03-31 2020-06-16 Samsung Electronics Co., Ltd. System and method of detecting and countering denial-of-service (DoS) attacks on an NVMe-of-based computer storage array
US10608887B2 (en) 2017-10-06 2020-03-31 Nicira, Inc. Using packet tracing tool to automatically execute packet capture operations
US10511459B2 (en) 2017-11-14 2019-12-17 Nicira, Inc. Selection of managed forwarding element for bridge spanning multiple datacenters
US10374827B2 (en) 2017-11-14 2019-08-06 Nicira, Inc. Identifier that maps to different networks at different datacenters
US11025549B2 (en) * 2018-01-30 2021-06-01 Marvell Israel (M.I.S.L) Ltd. Systems and methods for stateful packet processing
US10931560B2 (en) 2018-11-23 2021-02-23 Vmware, Inc. Using route type to determine routing protocol behavior
US10797998B2 (en) 2018-12-05 2020-10-06 Vmware, Inc. Route server for distributed routers using hierarchical routing protocol
US10938788B2 (en) 2018-12-12 2021-03-02 Vmware, Inc. Static routes for policy-based VPN
US11159343B2 (en) 2019-08-30 2021-10-26 Vmware, Inc. Configuring traffic optimization using distributed edge services
US11411857B2 (en) * 2019-11-25 2022-08-09 Cisco Technology, Inc. Multicast performance routing and policy control in software defined wide area networks
US11283699B2 (en) 2020-01-17 2022-03-22 Vmware, Inc. Practical overlay network latency measurement in datacenter
US11470038B1 (en) 2020-05-19 2022-10-11 Marvell Asia Pte Ltd. Line side multiplexers with protection switching
US11616755B2 (en) 2020-07-16 2023-03-28 Vmware, Inc. Facilitating distributed SNAT service
US11606294B2 (en) 2020-07-16 2023-03-14 Vmware, Inc. Host computer configured to facilitate distributed SNAT service
US11611613B2 (en) 2020-07-24 2023-03-21 Vmware, Inc. Policy-based forwarding to a load balancer of a load balancing cluster
US11902050B2 (en) 2020-07-28 2024-02-13 VMware LLC Method for providing distributed gateway service at host computer
US11451413B2 (en) 2020-07-28 2022-09-20 Vmware, Inc. Method for advertising availability of distributed gateway service and machines at host computer
US11196628B1 (en) 2020-07-29 2021-12-07 Vmware, Inc. Monitoring container clusters
US11558426B2 (en) 2020-07-29 2023-01-17 Vmware, Inc. Connection tracking for container cluster
US11570090B2 (en) 2020-07-29 2023-01-31 Vmware, Inc. Flow tracing operation in container cluster
US11736436B2 (en) 2020-12-31 2023-08-22 Vmware, Inc. Identifying routes with indirect addressing in a datacenter
US11336533B1 (en) 2021-01-08 2022-05-17 Vmware, Inc. Network visualization of correlations between logical elements and associated physical elements
US20230006928A1 (en) * 2021-07-02 2023-01-05 Arista Networks, Inc. Systems and methods for network packet translation
US11687210B2 (en) 2021-07-05 2023-06-27 Vmware, Inc. Criteria-based expansion of group nodes in a network topology visualization
US11711278B2 (en) 2021-07-24 2023-07-25 Vmware, Inc. Visualization of flow trace operation across multiple sites
US11706109B2 (en) 2021-09-17 2023-07-18 Vmware, Inc. Performance of traffic monitoring actions
US11979314B2 (en) 2021-12-09 2024-05-07 Marvell Israel (M.I.S.L) Ltd. Hierarchical path selection in a communication network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060230185A1 (en) * 2005-04-07 2006-10-12 Errickson Richard K System and method for providing multiple virtual host channel adapters using virtual switches
US20090083445A1 (en) * 2007-09-24 2009-03-26 Ganga Ilango S Method and system for virtual port communications
US20090157846A1 (en) * 2007-12-13 2009-06-18 Hitachi, Ltd. Storage system comprising function for migrating virtual communication port added to physical communication port
CN101523926A (zh) * 2006-08-02 2009-09-02 诺基亚西门子通信有限责任两合公司 聚合交换机、操作聚合交换机的方法和相对应的计算机程序产品

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10173677A (ja) * 1996-12-16 1998-06-26 Toshiba Corp パケット通信における物理ポートの流量制御方法及びその装置
WO2001025951A1 (en) * 1999-10-05 2001-04-12 Ejasent Inc. Virtual endpoint
WO2002061525A2 (en) * 2000-11-02 2002-08-08 Pirus Networks Tcp/udp acceleration
US6985956B2 (en) * 2000-11-02 2006-01-10 Sun Microsystems, Inc. Switching system
US20030196076A1 (en) 2001-07-02 2003-10-16 Globespan Virata Incorporated Communications system using rings architecture
US7310348B2 (en) 2001-09-19 2007-12-18 Bay Microsystems, Inc. Network processor architecture
US7212526B2 (en) * 2002-01-18 2007-05-01 Hitachi, Ltd. Method and apparatus for composing virtual links in a label switched network
US20050232303A1 (en) * 2002-04-26 2005-10-20 Koen Deforche Efficient packet processing pipeline device and method
US20040252722A1 (en) 2003-06-13 2004-12-16 Samsung Electronics Co., Ltd. Apparatus and method for implementing VLAN bridging and a VPN in a distributed architecture router
US7467191B1 (en) * 2003-09-26 2008-12-16 Network Appliance, Inc. System and method for failover using virtual ports in clustered systems
US7760719B2 (en) 2004-06-30 2010-07-20 Conexant Systems, Inc. Combined pipelined classification and address search method and apparatus for switching environments
US8320255B2 (en) * 2005-02-02 2012-11-27 Cisco Technology, Inc. Inter-domain path computation technique
US8234361B2 (en) * 2006-01-13 2012-07-31 Fortinet, Inc. Computerized system and method for handling network traffic
US8082363B2 (en) * 2006-05-12 2011-12-20 Hewlett-Packard Development Company, L.P. Multiplexed communication between host computer and smartphone used as wireless modem
US7574202B1 (en) 2006-07-21 2009-08-11 Airsurf Wireless Inc. System and methods for a secure and segregated computer network
US20080159277A1 (en) * 2006-12-15 2008-07-03 Brocade Communications Systems, Inc. Ethernet over fibre channel
US7813337B2 (en) * 2007-01-19 2010-10-12 Broadcom Corporation Network packet processing using multi-stage classification
US7796594B2 (en) 2007-02-14 2010-09-14 Marvell Semiconductor, Inc. Logical bridging system and method
US7929431B2 (en) * 2007-03-19 2011-04-19 Honeywell International Inc. Port rate smoothing in an avionics network
JP4862743B2 (ja) * 2007-05-17 2012-01-25 日本電気株式会社 ノード、通信方法およびノード用プログラム
US8121032B2 (en) * 2008-05-30 2012-02-21 Cisco Technology, Inc. Efficient convergence of grouped VPN prefixes
US8238340B2 (en) 2009-03-06 2012-08-07 Futurewei Technologies, Inc. Transport multiplexer—mechanisms to force ethernet traffic from one domain to be switched in a different (external) domain
US8181123B2 (en) * 2009-05-01 2012-05-15 Microsoft Corporation Managing virtual port associations to users in a gesture-based computing environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060230185A1 (en) * 2005-04-07 2006-10-12 Errickson Richard K System and method for providing multiple virtual host channel adapters using virtual switches
CN101523926A (zh) * 2006-08-02 2009-09-02 诺基亚西门子通信有限责任两合公司 聚合交换机、操作聚合交换机的方法和相对应的计算机程序产品
US20090083445A1 (en) * 2007-09-24 2009-03-26 Ganga Ilango S Method and system for virtual port communications
US20090157846A1 (en) * 2007-12-13 2009-06-18 Hitachi, Ltd. Storage system comprising function for migrating virtual communication port added to physical communication port

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105493029B (zh) * 2013-08-29 2019-01-01 株式会社Kt 数据包输出控制方法及使用该方法的网络装置
CN105493029A (zh) * 2013-08-29 2016-04-13 株式会社Kt 数据包输出控制方法及使用该方法的网络装置
CN104852869A (zh) * 2014-02-14 2015-08-19 杭州华三通信技术有限公司 一种端口聚合方法及装置
CN104852869B (zh) * 2014-02-14 2018-07-24 新华三技术有限公司 一种端口聚合方法及装置
CN107995119A (zh) * 2017-12-11 2018-05-04 浙江亿邦通信科技股份有限公司 基于端口模型的三层及以上网络设备stp的实现方法及系统
CN107995119B (zh) * 2017-12-11 2020-12-18 浙江亿邦通信科技有限公司 基于端口模型的三层及以上网络设备stp的实现方法及系统
CN108173699B (zh) * 2018-01-26 2021-04-02 武汉光迅科技股份有限公司 一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法
CN108173699A (zh) * 2018-01-26 2018-06-15 武汉光迅科技股份有限公司 一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法
CN108347392A (zh) * 2018-03-20 2018-07-31 深圳市风云实业有限公司 业务报文跨板处理方法、装置及系统
CN109450819A (zh) * 2018-10-25 2019-03-08 锐捷网络股份有限公司 一种广播报文的转发方法及系统
CN111181857A (zh) * 2018-11-09 2020-05-19 深圳市中兴微电子技术有限公司 一种报文处理方法及装置、存储介质、光网络终端
CN111181857B (zh) * 2018-11-09 2020-12-29 深圳市中兴微电子技术有限公司 一种报文处理方法及装置、存储介质、光网络终端
CN110798541A (zh) * 2019-10-31 2020-02-14 新华三大数据技术有限公司 接口共享、报文转发方法、装置、电子设备及存储介质
CN110798541B (zh) * 2019-10-31 2022-09-09 新华三大数据技术有限公司 接口共享、报文转发方法、装置、电子设备及存储介质
CN114900456A (zh) * 2022-05-17 2022-08-12 苏州雄立科技有限公司 一种mac地址管理装置及方法
CN114900456B (zh) * 2022-05-17 2023-10-31 苏州雄立科技有限公司 一种mac地址管理装置及方法

Also Published As

Publication number Publication date
US9065775B2 (en) 2015-06-23
EP3447979B1 (en) 2020-06-10
US20140119370A1 (en) 2014-05-01
EP3447979A1 (en) 2019-02-27
CN102474449B (zh) 2016-05-04
EP2497234B1 (en) 2018-09-19
US8625594B2 (en) 2014-01-07
US20110134925A1 (en) 2011-06-09
EP3447979B8 (en) 2020-08-05
WO2011053973A1 (en) 2011-05-05
EP2497234A1 (en) 2012-09-12

Similar Documents

Publication Publication Date Title
CN102474449A (zh) 基于虚拟接口的交换装置和方法
US11804987B2 (en) Flow generation from second level controller to first level controller to managed switching element
CN102238083B (zh) 用于适配分组处理流水线的系统和方法
CN112119616B (zh) 涉及原位操作实施及管理(ioam) 的分组复制方法、装置及计算机可读存储介质
CN101848129B (zh) 网络系统、核心交换器、边缘交换器、数据中继方法
CN104854819B (zh) 用于vlan接口路由的方法和设备
US8675522B2 (en) Conveying the VLAN/L2 VSN/bridging-domain of the incoming interface (IIF) when transporting multicast traffic over a shortest path bridged (SPB) network
CN108696440A (zh) 多重归宿evpn网络中的多播负载均衡
EP2849397A1 (en) Communication system, control device, communication method, and program
CN107040463A (zh) 用于避免由于非对称mac获悉的流量泛洪的系统
US20060245438A1 (en) Metro ethernet network with scaled broadcast and service instance domains
US10601702B1 (en) Flexible packet replication and filtering for multicast/broadcast
US20100232435A1 (en) Logically partitioned networking devices
CN103152283B (zh) 一种聚合链路负载分担的方法和设备
CN103532857B (zh) 一种数据转发的方法及装置
CN104579895B (zh) 通过虚拟专用网传送组播消息的方法和装置

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200429

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

Effective date of registration: 20200429

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Patentee before: Marvell International Ltd.

Effective date of registration: 20200429

Address after: Hamilton, Bermuda

Patentee after: Marvell International Ltd.

Address before: Babado J San Mega Le

Patentee before: MARVELL WORLD TRADE Ltd.