CN101888332B - 用于提供快速重新路由的方法和转发数据单元 - Google Patents

用于提供快速重新路由的方法和转发数据单元 Download PDF

Info

Publication number
CN101888332B
CN101888332B CN201010178191.2A CN201010178191A CN101888332B CN 101888332 B CN101888332 B CN 101888332B CN 201010178191 A CN201010178191 A CN 201010178191A CN 101888332 B CN101888332 B CN 101888332B
Authority
CN
China
Prior art keywords
port
fdu
grouping
recipient
mlt
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.)
Active
Application number
CN201010178191.2A
Other languages
English (en)
Other versions
CN101888332A (zh
Inventor
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.)
Avaya Technology LLC
Original Assignee
Avaya Technology LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Avaya Technology LLC filed Critical Avaya Technology LLC
Publication of CN101888332A publication Critical patent/CN101888332A/zh
Application granted granted Critical
Publication of CN101888332B publication Critical patent/CN101888332B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/557Error correction, e.g. fault recovery or fault tolerance
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

本发明涉及用于提供快速重新路由的方法和转发数据单元。给出了用于提供网络元件内的多播分组到与多链路中继线路相关联的可用端口的快速重新路由的方法、装置和计算机程序产品。由网络元件的数据平面内的转发数据单元(FDU)接收分组,并且确定分组是多播分组。将分组转发到具有与多播分组的至少一个接收方相关联的至少一个端口的所有外出FDU。由每个外出FDU在同步的本地端口状态数据库内执行查找,以便发现每个接收方的处于UP状态的端口。当端口处于UP状态时将分组从该端口转发到接收方,并且当端口处于DOWN状态时丢弃分组。

Description

用于提供快速重新路由的方法和转发数据单元
与相关申请的交叉引用
本申请要求提交于2009年5月13日的美国临时专利申请No.61/178,011的优先权,通过引用将其完整结合在此。本申请还涉及与本申请同日提交的代理卷号为AVA10-17、题目为“用于保持网络元件的转发平面内的端口状态表的方法和装置”的申请。通过引用将上面指出的每个申请的教导和公开完整结合在此。
背景技术
数据通信网络可以包括各种计算机、服务器、节点、路由器、交换机、集线器和代理服务器,以及被连接为并且被配置为彼此传递数据的其它设备。此处这些设备被称为“网络元件”,并且可以在网络上提供各种网络资源。通过在网络上通过通信链路在网络元件之间传递协议数据单元(诸如,分组、信元、帧或段),通过数据通信网络传递数据。特定协议的数据单元可被多个网络元件处理,并且当它在网络上在它的源和它的目的地之间传播时跨越多个通信链路。诸如计算机、电话、蜂窝电话、个人数字助理和其它类型的消费电子设备的主机连接到通信网络,并且通过通信网络传输/接收数据,并且因此,是由通信网络提供的通信服务的用户。
网络元件通常被实现为具有控制网络元件的操作的控制平面以及处理流过网络的通信量的数据平面。数据平面通常具有线卡集合,所述线卡具有连接到网络上的链路的端口。数据被在特定端口处接收、被在数据平面内交换,并且被在一个或多个其它端口处输出到网络的其它链路上。为了能够迅速地处理数据,通常以硬件实现数据平面,从而使用硬件查找等执行关于如何处理数据的所有决策。
端口可能出于许多原因而失效,包括线卡故障、连接到端口的链路的故障(例如,线路中断)、远端线卡故障等。术语多链路中继线路(trunk)(MLT)、链路聚合组(LAG)和逻辑端口是同义词,并且这些术语被互换地使用。类似地,网络元件内的内部转发数据路径可能失效,这可能导致一个端口或一组端口表现出失效,或者沿着到端口的外部对等端点的逻辑/虚拟连接可能存在某些其它故障。存在端口可能失效的多种原因。
在端口失效的情况下,去往该端口的通信量应当被转向为从替换端口流出,以便能够通过网络恢复连接。为了最小化对该网络元件所处理的通信量的影响,例如,为了最小化停机时间(down time)和分组丢失,通信量重新路由越快发生越好。优选地,能够使得通信量在10毫秒(ms)内失效恢复到替换端口是有利的。优选地,在LAG或MLT的情况下,通信量应当散布在其余端口上,而不是从失效端口全部移到特定的指定替换端口,以便防止指定的替换端口的通信量过载。
发明内容
诸如上面解释的那些常规机制具有各种缺点。一个这种缺点是常规网络元件从故障中恢复所花费的时间的数量。恢复花费的时间的数量越长,性能延迟(包括更多的丢弃分组)以及其它端口克服失效端口的加载越长。
本发明的实施例显著地克服了这些缺点,并且提供了提供网络元件内的多播分组到与多链路中继线路相关联的可用端口的快速重新路由的机制和技术。在一个特定实施例中,该方法包括由网络元件的数据平面内的FDU接收分组,并且确定该分组是多播分组。该方法还包括将分组转发到具有与所述多播分组的至少一个接收方相关联的至少一个端口的所有外出FDU。附加地,该方法包括由每个外出FDU在同步的本地端口状态数据库内执行查找,以便发现每个接收方的处于UP状态的端口。
其它实施例包括其上具有计算机可读代码的计算机可读介质,所述计算机可读代码用于提供网络元件内的多播分组到与多链路中继线路相关联的可用端口的快速重新路由。所述计算机可读介质包括用于由网络元件的数据平面内的FDU接收分组,并且确定该分组是多播分组的指令。该计算机可读介质还包括用于将分组转发到具有与所述多播分组的至少一个接收方相关联的至少一个端口的所有外出FDU的指令。附加地,该计算机可读介质包括用于由每个外出FDU在同步的本地端口状态数据库内执行查找,以便发现每个接收方的处于UP状态的端口的指令。
其它实施例包括一种计算机化设备,其配置为处理此处作为本发明的实施例所公开的所有方法操作。在这些实施例中,该计算机化设备包括存储器系统、处理器、连接这些组件的互连机制中的通信接口。所述存储器系统被编码有一种处理,该处理如此处所解释的提供网络元件内的多播分组到与多链路中继线路相关联的可用端口的快速重新路由,当被在处理器上实施时(例如,当执行时),该处理在所述计算机化设备内按照此处的解释操作,以便执行此处作为本发明的实施例所解释的所有方法实施例和操作。因此,执行或被编程为执行此处解释的处理的任意计算机化设备是本发明的实施例。
此处公开的本发明的其它布置包括执行上面概述和下面详细公开的方法实施例的步骤和操作的软件程序。更具体地,计算机程序产品是具有计算机可读介质的实施例,所述计算机可读介质包括编码在其上的计算机程序逻辑,当被在计算机化设备内执行时,提供相关联的操作,用于提供此处解释的网络元件内的多播分组到与多链路中继线路相关联的可用端口的快速重新路由。当被在具有计算系统的至少一个处理器上执行时,所述计算机程序逻辑使得所述处理器执行此处作为本发明的实施例指出的操作(例如,方法)。本发明的这些布置通常被作为布置或编码在计算机可读介质上的软件、代码和/或其它数据结构提供,所述计算机可读介质诸如是光学介质(例如,CD-ROM)、软盘或硬盘或其它介质,诸如一个或多个ROM或RAM或PROM芯片内的固件或微代码,或作为专用集成电路(ASIC),或作为一个或多个模块中的可下载的软件映像、共享库等。软件或固件或其它这些配置可被安装在计算机化设备上,以便使得计算机化设备内的一个或多个处理器执行此处作为本发明的实施例解释的技术。在计算机化设备的集合中,诸如,在一组数据通信设备或其它实体内操作的软件处理也可以提供本发明的系统。本发明的系统可被分布在若干(数个)数据通信设备上的许多软件处理内,或所有处理可以在一组少数的专用计算机上或单独在一个计算机上运行。
应当理解,本发明的实施例可被严格地表达(实施)为,诸如,数据通信设备内的软件程序、软件和硬件、或是仅为硬件和/或电路。如此处解释的,本发明的特征可被用于数据通信设备和/或用于这种设备的软件系统,所述设备诸如是由新泽西州林克罗夫特市的Avaya公司制造的设备。
注意,本公开中讨论的每个不同特征、技术、配置等可被独立地或组合地执行。因此,本发明可被以许多不同方式表达。
还要注意,此处的概述部分未指出本公开或所提出的发明的每个实施例和/或增加的新颖方面。而是,该概述仅提供对不同实施例和相对于常规技术的相应新颖点的初步讨论。对于本发明的附加细节、元素(element)和/或可能的设想(改变),读者需要参考下面进一步讨论的本发明的具体实施方式部分和相应附图。
附图说明
如附图中所示,从下面对本发明的优选实施例的更具体的描述中,将明了上面的内容,其中类似的参考字符在所有不同视图中指示相同部分。这些图不必是成比例的,而是重点在于示出本发明的原理。
图1是示出了组织节点集群的第一个例子的功能方框图;
图2是示出了组织节点集群的另一个例子的功能方框图;
图3是示出了组织节点集群的另一个例子的功能方框图;
图4是示出了组织节点集群的另一个例子的功能方框图;
图5是示出了组织节点集群的另一个例子的功能方框图;
图6是示出了组织节点集群的另一个例子的功能方框图;
图7是示例通信网络的功能方框图;
图8是示例网络元件的功能方框图;
图9是可用于诸如图8的网络元件的网络元件的示例线卡的功能方框图;
图10是可用于诸如图9的线卡的线卡的示例端口数据库的功能方框图;
图11是示例网络元件集群的功能方框图,示出了节点集群内的数据路径组件之间的端口状态信息流动;
图12示出了根据本发明的实施例操作的网络元件的示例计算机系统体系结构;
图13提供了网络元件内的多播分组到与多链路中继线路相关联的可用端口的快速重新路由;
图14提供了网络元件内的多播分组到与多链路中继线路相关联的本地FDU的可用MLT组的快速重新路由;
图15提供了网络元件内的多播分组到与多链路中继线路相关联的远程FDU的可用MLT组的快速重新路由。
具体实施方式
网络元件处理数据的方式随时间而发展。例如,两个或多个物理链路可以在一组网络元件之间延伸,并且被总地用作MLT或LAG。图1示出了由多个链路24a-d连接的两个网络元件(网络元件1和网络元件2)的例子,多个链路24a-d被组成一组,从而形成多链路中继线路22。具体地,MLT22中的每个链路24a-d可被任意一个网络元件用于向另一个网络元件转发数据。因此,如果网络元件1具有要被发送到网络元件2的数据(例如,帧/分组),网络元件1可以从MLT22中选择一个链路24a-d,并且在该链路上向网络元件2传输分组。
图2示出了可以互连网络元件的另一种示例方式。具体地,在这个例子中,网络元件1和网络元件2被以交换机间中继线路(IST)26互连,IST26可以是单个链路或它自己可以是多链路中继线路。当多链路中继线路的链路被物理地连接到两个不同的网络元件时,MLT被称为分离的多链路中继线路(SMLT)。每个网络元件1和2可以具有连接到网络元件3的一个或多个链路,这些链路被组成一组从而形成SMLT23。因此,如果网络元件1具有要被发送到网络元件3的数据(例如,帧/分组),网络元件1可以选择连接它的SMLT链路之一,或可以在与交换机间中继线路26相关联的链路之一上传输分组,以便使得网络元件2能够在其与SMLT相关联的链路之一上将数据转发到网络元件3。
图3示出了另一个例子,其中网络元件1不具有连接到SMLT23的任何链路,但是被IST25和26连接到具有被连接到与SMLT相关联的链路的端口的两个其它网络元件(网络元件2和网络元件3)。在这种情况下,如果网络元件1具有要被发送到SMLT的数据,它将选择IST链路之一(注意,每个IST链路自身可以是SMLT),并且将数据转发到另一个网络元件2或3。IST可以是物理的并且在两个网络元件之间直接延伸,或可以是逻辑的并且通过一个或多个中间网络元件在隧道上延伸。
图4示出了另一个例子,其中网络元件1也参与到SMLT23内。在这种情况下,如果网络元件1具有要被发送的数据,它可以在其与SMLT23相关联的链路之一上转发数据,或可以在与IST25或26中的一个相关联的链路之一上转换数据,以便使得能够在SMLT23上转发数据。
图5和6示出了在正方形SMLT布置中互连网络元件的另一种方式。在图5所示的布置中,4个网络元件在正方形布置中通过IST25-28互连,并且在图6中,4个网络元件在网状布置中通过IST25-28互连。IST可以是物理的并且在两个网络元件之间直接延伸,或可以是逻辑的并且通过一个或多个中间网络元件在隧道上延伸。
虽然示出了可以互连网络设备的几种示例方式,还存在互连网络元件集群的其它方法,并且这组示例的互连体系结构不旨在是无遗漏的。因此,这些例子仅旨在提供互连网络元件的少数方法的代表性例子。一组网络元件在此处被称为集群。
图7示出了示例的通信网络10,其中订户12连接到边缘交换机14。边缘交换机14连接到核心交换机16,核心交换机16通过网络在链路18上转发数据。这些交换机中的每一个可以是物理的路由交换机(rouswitchter)或可以是被连接在一起以便作为集群操作的多个设备。每个链路18可以是MLT,或在路由器/交换机被实现为多个网络设备的情况下,可以是SMLT。从网络路由的角度出发,分组可有多种方式穿过网络。例如,在图7中,边缘交换机A能够通过核心交换机C和D将分组传输到边缘交换机B,或可替换地,可以能够通过核心交换机E和F传输分组。可以使用网络层路由协议确定用于传输分组的路径。
如上所述,取决于互连网络元件的方式,网络元件可以有许多方法转发帧/分组,以便使得帧/分组能够到达其目的地。如此处使用的,术语“集群”用于指示在网络级提供节点级弹跳的一个或多个节点。因此,在图1中,网络元件1是一个集群;在图2中,网络元件1和2是一个集群,并且在图3和4中,网络元件1、2和3是一个集群,并且在图5和6中,网络元件1-4是一个集群。如上所述,可以有组织集群中的节点的其它方式。
集群节点之间的逻辑连接此处被称为交换机间中继线路(IST)。IST可以是从一个网络元件延伸到集群中的相邻网络元件的物理链路,或可以是逻辑链路,该逻辑链路是穿过集群内的一个或多个中间网络元件的隧道。从非IST端口接收分组的节点被称为本地节点。对于接收到的分组来说,集群内的所有其它节点被称为远程节点。
两个或多个链路可以组成一组,以便形成多链路中继线路(MLT)。给每个MLT分配一个MLT组ID(MLT-ID),它是集群内的全局值,并且在集群节点中是唯一的。其所有端口成员仅在一个节点上的MLT被称为常规MLT组。其端口成员在两个或多个节点上的MLT组被称为分离的MLT或SMLT组。
当逻辑端口被实现为MLT或SMLT时,实际上存在能够将分组转发到其在网络上的下一跳的多个物理端口。因此,如果MLT/SMLT的端口之一失效,使得分组被转发到其余端口之一,从而分组可以穿过网络而不是被丢弃是有利的。类似地,不是为MLT/SMLT中的每个端口指定主端口和后备端口,在MLT/SMLT的其余端口上负载共享分组,从而分组可被分布在处于UP的其余端口上是有利的。根据一个实施例,这个处理被以硬件实现,从而快速通路(数据平面)可以自动适应单个和多个端口失效,并且自动地以公平的方式在其余端口上重定向分组通信量。
图8示出了可被用作图1-6中任意一个所示的任意网络元件的示例网络元件20的功能方框图。在图8所示的例子中,网络元件包括控制平面31和数据平面32。控制平面具有一个或多个CPU34,并且一般地运行控制处理,诸如路由处理、管理处理等。控制平面对数据平面编程,以便指示数据平面如何在网络上转发数据。
可以使用许多不同的体系结构构造数据平面32,并且图8所示的例子仅是一个这种体系结构的一个例子。在图8所示的例子中,数据平面包括多个线卡36,每个线卡实现连接到网络中的链路的多个物理端口。线卡在这个实施例中被以交换机结构40互连,虽然在其它实施例中,线卡可以直接互连,并且以分布式方式执行交换功能。
如图9所示,每个线卡36包括物理地连接到网络上的链路的多个端口38。线卡还包括处理从附接端口接收的分组的一个或多个功能单元42。如此处使用的,处理在进入和外出两个方向上来自附接端口的分组的功能单元被称为转发数据路径单元或FDU42。线卡还可以包括CPU44,CPU44与控制平面交互,以便使得控制平面能够将指令编程到FDU42内,并且可选择地编程到线卡上的其它组件内,从而FDU42在网络上正确地处理数据。CPU44还周期地检查FDU42和线卡中的其它组件的状态,以便检测何时出现故障。
每个FDU42保持端口状态数据库46。这个端口状态数据库46保持物理链路状态和其本地以及所有远程端口的连接状态。如图10所示,端口状态数据库46包括两个表-本地端口数据表48和远程端口数据表50。本地端口数据表48保持属于本地节点的端口状态,并且远程端口数据表50保持属于集群中的远程端口的端口状态。在MLT组的情况下,FDU将本地节点上的MLT端口成员保持在本地表内,并且将所有其它远程节点上的端口成员保持在远程表内。
当FDU接收到分组时,需要寻找MLT(或SMLT)内的处于UP的端口,以便将分组转发到其在网络上的目的地。如上所述,在MLT上的所有端口都为本地的情况下,FDU必须确定本地端口中的哪一些处于UP状态,从而不会试图在处于DOWN的端口上转发分组。类似地,当与MLT相关联的端口不全是本地(例如,SMLT)时,FDU必须选择与SMLT相关联的分离的物理网络元件上的并且具有UP状态的端口。
根据一个实施例,每个FDU保持它用于保持集群内的每个端口的状态的端口状态数据库46。该数据库保持物理链路状态和其本地以及所有远程端口的连接状态。该数据库包括两个表-即,本地表48和远程表50。本地表保持属于本地节点上的所有FDU的端口状态,并且远程表保持集群内的所有远程节点上的所有端口的端口状态。在MLT组的情况下,FDU在本地表内保持本地节点上的MLT端口成员的状态,并且在远程表内保持所有其它远程节点上的MLT端口成员的状态。本地表还保持所有IST端口的状态。当接收到分组时,FDU使用端口状态数据库确定处于UP的用于该分组的端口,并且将分组转发到该端口以便输出到网络上。
由于端口状态数据库46被FDU42用于确定转发决策,保持更新端口状态表是重要的,从而它包含关于每个端口的状态的当前信息。由于每个线卡具有一个或多个FDU,需要每个FDU(在每个线卡内)与本地网络元件内的所有其它线卡内的FDU以及集群内的其它网络元件内的所有其它FDU同步。
在一个实施例中,每个线卡保持心跳计时器。每次一个特定的心跳计时器超时,心跳引擎54产生一个心跳分组,并且将该心跳分组发送到该线卡上的本地FDU42。心跳分组携带有线卡上的所有端口的本地物理链路状态,以便将线卡上的端口的状态通知给本地FDU。该分组指出全局端口ID(GPID)和网络元件ID。FDU使用这个状态更新其本地端口状态数据库。FDU还将该分组转发到本地节点内的所有其它FDU以及集群内的其它节点上的所有其它FDU。每个FDU使用该分组携带的端口状态更新其端口状态数据库。
除了保持与收集/报告其自己的端口状态信息相关联的计时器之外,每个线卡/FDU还保持与本地节点内的所有其它FDU以及集群内的其它节点上的所有其它FDU相关联的一组计时器。每个FDU期望从每个其它本地和远程FDU接收周期心跳分组。因此,为每个FDU(为本地网络元件上的每个FDU和集群内的每个远程网络元件上的每个FDU)保持本地接收计时器。如果相应的接收计时器超时,则检测到FDU故障(本地或远程)。在在接收计时器超时之前未接收到心跳分组的情况下,与该FDU相关联的每个端口将被设置为DOWN,从而不向与该FDU相关联的端口发送分组,直到它恢复为止。
心跳分组允许FDU彼此传递状态信息,并且允许每个FDU了解数据平面内的所有端口的状态。如下所述,这允许数据平面自动地针对端口故障进行调整,从而数据可被重定向到处于UP的端口并且远离处于DOWN的端口。所有这些在没有控制平面的干预的情况下发生,并且因此不将特定端口/线卡的故障通知给控制平面。为了使得控制平面能够得知数据平面故障,管理/控制处理器44周期地向其本地FDU42注入心跳分组或从其本地FDU42提取心跳分组。每个注入的心跳分组完整地循环通过目标FDU和相关联的端口,并且然后被提取回到处理器。管理心跳分组穿过进入和外出数据路径两者内的所有功能块。每次控制处理器注入这种属性的管理心跳分组,它开始相应的接收计时器。如果接收计时器超时,则控制处理器检测到线卡故障。处理器使用这种信息设置将被传递到控制平面30的系统警报。因此,控制平面可以得知数据平面故障。然而,由于数据平面具有自我复原机制以便适应端口故障并且从而重定向通信量,重定向通信量不需要涉及控制平面,并且因此将故障通知控制平面对于通过网络元件的通信量的恢复不是至关重要的。
每个FDU还使用心跳分组确定其端口的状态,在一个实施例中,每个FDU为配置在逻辑/虚拟连接内的每个附接端口保持一对计时器。这些计时器之一用于产生将被在所述连接上发送的心跳分组。另一个计时器(接收计时器)用于检测连接故障。如果来自该连接的其它端点的心跳分组未被及时接收,该计时器超时。FDU以心跳分组的到达和接收计时器超时更新其端口状态表。
每个线卡上的每个FDU保持其自己的端口状态表46。这个表保持物理链路状态和其本地端口以及集群内的所有FDU的所有远程端口的连接状态。FDU使用接收到的心跳分组和计时器超时消息(由于连接超时或远程FDU故障)更新该表。该表被划分为两个部分:属于本地节点的端口状态和属于远程节点的端口状态。该端口状态表还保持MLT和SMLT组信息。转发逻辑使用该端口状态表执行下面更详细解释的快速重新路由。
图11示出了4个节点的集群内的端口状态分组的分发,其中黑色箭头表示端口状态分组到集群内的所有FDU的流动。如这个图中所示,产生包含与特定FDU相关联的每个端口的状态的分组1。以左上网络元件的左上线卡内的参考数字1示出这个分组。这个分组将被传递到FDU,从而FDU可以更新其端口状态数据库,以便反映其端口的当前状态。然后该分组将被传递到本地节点内的每个其它FDU(箭头2)。在一个实施例中,这可被通过使得交换机结构将该分组广播到本地节点内的所有其它FDU实现。该分组还被转发到集群内的其它节点(箭头3),从而端口状态可被分发(箭头4)到与集群内的每个节点相关联的每个FDU。当FDU接收到包含端口状态信息的分组时,它使用该信息更新其自己的端口状态数据库。这使得能够同步所有FDU的端口状态数据库。
集群中可以存在若干网络元件,一个网络元件中的多个FDU和由每个FDU支持的多个端口。为了使得每个端口能够保持追踪哪个FDU已提供了状态分组,并且将特定端口状态分组与特定FDU相关联,可以实现编号方案。优选地,在集群范围内唯一地实现编号方案,从而可以唯一地标识集群内的每个FDU。在一个实施例中,端口状态分组携带关于其每个端口的信息。该分组将指出源节点ID和全局端口ID(GPID)。全局端口ID是使得可以在端口数据库内唯一地标识端口的全局唯一标识符(节点内全局唯一的)。
前面的消息描述FDU如何交换消息以便使得能够在数据路径内的端口之间同步端口状态。在操作中,这种端口状态信息将使得FDU能够为特定的数据分组选择可用端口,并且确信所选择的端口处于UP。当端口成为DOWN时,集群中的FDU停止选择这些端口,而是选择与下行(down)端口相关联的MLT/SMLT内的替换端口,以便用于处理该分组。因此,数据路径能够自动地适应端口故障、线卡故障等,以便将分组重新路由到可用的替换端口而不涉及控制平面。因此,可以在网络元件内和在网络元件的集群之间迅速地进行少于10ms的分组重新路由。
当FDU接收到数据分组时,它将读取端口ID、MLT-ID和散列函数,并且将这些值传递到端口状态数据库。端口状态数据库将首先搜索与MLT-ID相关联的并且处于UP的本地端口,并且然后搜索与该MLT相关联并且处于UP的远程端口。在一个实施例中,端口状态表被设计为卸载来自该FDU的端口选择处理。在这个实施例中,FDU将对端口的请求传递到端口状态表,并且端口状态表智能地实现该请求,以便返回保证处于UP的作为MLT/SMLT的一部分的端口,并且相对于远程端口优先使用本地端口。另外,在端口在远程节点上的情况下,端口状态表检查以便寻找处于UP的IST端口,FDU可以在该端口上将分组转发到远程节点,从而远程节点可以在远程节点上转发分组。因此,端口状态表不仅确定是否存在可用的远程端口,而且还确定是否存在可用的IST端口,FDU可以使用该IST端口将分组传递到远程节点,以便在远程端口上进行转发。
图10示出了可用于卸载来自FDU的端口选择的实施例。在图10的实施例中,端口数据库包括数据库控制逻辑56,数据库控制逻辑56配置为从FDU接收端口选择请求,并且如果存在一个可用端口,返回可用端口。端口数据库可能需要对本地和远程端口表进行多个数据库访问操作/调用,以便确定将响应端口选择请求返回哪个端口。数据库控制逻辑,可选择地在FDU的控制下,控制这个处理的执行,以便自动执行选择端口的处理。
数据库控制逻辑可被以硬件实现,并且在也被以硬件实现的本地和远程表内执行数据访问。当端口失效时,该端口的状态(UP/DOWN)将被反映在端口状态表内。当FDB查找返回作为MLT/SMLT组的一部分的一个目的地时,FDU将通过数据库控制逻辑向端口状态表内执行端口访问操作。因此,不是由FDU从FDB(以控制面平面更新,并且因此,相对慢)确定端口,FDU使用FDB确定接收方,并且然后使用以硬件实现的端口数据库单独确定用于到达该接收方的端口。这使得能够基于端口的当前状态和MLT组ID动态地确定端口,从而可以为分组从相关联的(MLT)端口组中选择可用端口。这使得网络设备能够适应多个故障(多个端口/链路故障),并且通过将分组从下行端口重新路由到MLT内的保证处于UP的端口快速地进行适应调整。由于端口故障通知跨越集群内的多个网络设备,FDU可以将分组转发到不同节点上的另一个端口,从而可以用类似的方式执行网络设备内和之间的端口选择。这使得不仅能够从仅具有本地端口的MLT内进行端口选择,而且使得能够在实现在集群内的不同节点上的端口之间执行端口选择,从而可以动态地执行SMLT内的端口选择。另外,由于节点能够从与MLT/SMLT相关联的所有其它端口中进行选择,来自下行端口的通信量可被散布/分布在MLT/SMLT的其余端口上,而不是被完全转移到特定的替换端口。类似地,可以适应多个端口故障和端口故障组合,而不中断节点集群中的分组转发,这是由于当接收到分组时,端口状态数据库能够查找处于UP的任何可用端口,并且返回任何可用端口的值以便由FDU使用。
图12是示出了计算机系统(FDU)110的示例体系结构的方框图,计算机系统(FDU)110执行、运行、解释、操作或实施快速重新路由操作应用140-1和适用于解释此处公开的示例配置的快速重新路由操作处理140-2。如这个例子中所示,计算机系统110包括互连机制111,诸如连接存储器系统112、处理器113、输入/输出接口114和通信接口115的数据总线或其它电路。通信接口115使得计算机系统110能够与网络(未示出)上的其它设备(即,其它计算机)通信。
存储器系统112是任意类型的计算机可读介质,并且在这个例子中,被编码有此处解释的快速重新路由操作应用140-1。快速重新路由操作应用140-1可被表达(实施)为软件代码,诸如支持根据此处描述的不同实施例的处理功能的数据和/或逻辑指令(例如,存储在存储器内或另一计算机可读介质诸如可移动盘上的代码)。在计算机系统110的操作过程中,处理器113通过互连111访问存储器系统112,以便启动、运行、执行、解释或实施快速重新路由操作应用140-1的逻辑指令。以这种方式执行快速重新路由操作应用140-1产生快速重新路由操作处理140-2中的处理功能。换言之,快速重新路由操作处理140-2表示运行时在计算机化设备110内的处理器113之内或之上执行或实施的快速重新路由操作应用140-1的一个或多个部分或运行时实例(或整个快速重新路由操作应用140-1)。
注意,此处公开的示例配置包括快速重新路由操作应用140-1自身(即,为非执行或非运行逻辑指令和/或数据的形式)。快速重新路由操作应用140-1可被存储在计算机可读介质(诸如软盘)、硬盘、电子的、磁的、光学的或其它计算机可读介质上。快速重新路由操作应用140-1还可被存储在存储器系统112内,诸如在固件、只读存储器(ROM)内,或在这个例子中,作为可执行代码存储在,例如,随机访问存储器(RAM)内。除了这些实施例,还应当注意,此处的其它实施例包括快速重新路由操作应用140-1作为快速重新路由操作处理140-2在处理器113中的执行。本领域的技术人员应当理解,计算机系统110可以包括其它处理和/或软件和硬件组件,诸如这个例子中未示出的操作系统。
在操作过程中,计算机系统100的处理器113通过互连111访问存储器系统112,以便启动、运行、实施、解释或执行快速重新路由操作应用140-1的逻辑指令。执行快速重新路由操作应用140-1产生快速重新路由操作处理140-2中的处理功能。换言之,快速重新路由操作处理140-2表示计算机系统100内的处理器113之内或之上执行的快速重新路由操作应用140-1的一个或多个部分(或整个应用)。
应当注意,除了快速重新路由操作处理140-2之外,此处的实施例包括快速重新路由操作应用140-1自身(即,非执行或非运行逻辑指令和/或数据)。快速重新路由操作应用140-1可被存储在计算机可读介质,诸如软盘、硬盘或光学介质上。快速重新路由操作应用140-1还可被存储在存储器类型的系统内,诸如在固件、只读存储器(ROM)内,或在这个例子中,作为可执行代码存储在存储器系统112内(例如,在随机访问存储器或RAM内)。
除了这些实施例,还应当注意,此处的其它实施例包括快速重新路由操作应用140-1作为快速重新路由操作处理140-2在处理器113中的执行。本领域的技术人员应当理解,计算机系统100可以包括其它处理和/或软件和硬件组件,诸如控制与计算机系统100相关联的硬件资源的分配和使用的操作系统。
现在参考图13,示出了用于执行网络元件内的多播分组到与多链路中继线路相关联的可用端口的快速重新路由的方法200的特定实施例的流程图。方法200以处理块202开始,处理块202公开了以网络元件的数据平面内的所述FDU接收分组。
处理块204说明确定分组是多播分组。多播(和广播)这样操作,其中分组需要被节点复制,从而可以向多个不同的接收方发出分组的多个拷贝。当FDU接收到多播分组时,它从FDB得到多播组ID。使用多播,由于网络元件可能需要将分组转发到多个接收方,进入FDU不执行端口选择,而是仅仅将分组转发到交换机结构。
处理块206说明将分组转发到具有与所述多播分组的至少一个接收方相关联的至少一个端口的所有外出FDU。交换机结构使用多播组ID,以便使得分组拷贝在多播时到达支持与至少一个接收方相关联的至少一个端口的所有FDU。在线卡被直接连接的实施例中,FDU将分组的拷贝转发到支持与至少一个接收方相关联的至少一个端口的每个其它线卡。在这个例子中,如处理块208所示,做出接收方端口是独立端口的确定。如果特定接收方是独立端口,交换机结构将分组的拷贝转发到支持该独立端口的FDU。
处理块210公开了由每个外出FDU在同步的本地端口状态数据库中执行查找,以便寻找每个接收方的处于UP状态的端口。然后,FDU访问数据库控制逻辑,以便确定该独立端口处于UP还是DOWN。处理块212说明当所述端口处于UP状态时将所述分组从所述端口转发到接收方,并且当所述端口处于DOWN状态时,丢弃所述分组。
现在参考图14,示出了用于执行网络元件内的多播分组到与多链路中继线路相关联的本地FDU的可用MLT组的快速重新路由的方法250的特定实施例的流程图。方法250以处理块252开始,处理块252公开了以网络元件的数据平面内的所述FDU接收分组。
处理块254说明确定分组是多播分组。当FDU接收到多播分组时,它从FDB得到多播组ID。使用多播,由于网络元件可能需要将分组转发到多个接收方,所以进入FDU不执行端口选择,而是仅仅将分组转发到交换机结构。
处理块256说明将分组转发到具有与所述多播分组的至少一个接收方相关联的至少一个端口的所有外出FDU。交换机结构使用多播组ID,以便使得分组拷贝在多播时到达支持与至少一个接收方相关联的至少一个端口的所有FDU。在线卡被直接连接的实施例中,FDU将分组的拷贝转发到支持与至少一个接收方相关联的至少一个端口的每个其它线卡。在这个例子中,如处理块258所示,做出接收方端口是独立端口的确定。在这个例子中,如处理块258所示,做出接收方端口是本地FDU的MLT组的确定。
处理块260公开了由每个外出FDU在同步的本地端口状态数据库中执行查找,以便寻找每个接收方的处于UP状态的端口。在能够通过MLT组到达接收方的情况下,交换机结构将分组的拷贝转发到与作为该MLT组的一部分的端口相关联的每个FDU。在接收方是SMLT组的一部分的情况下,交换机结构还将分组拷贝复制到与到支持远程端口的远程节点的IST相关联的每个FDU。在给定的FDU支持与特定接收方相关联的多于一个端口,或支持与多于一个接收方相关联的多于一个端口的情况下,仅将一个分组拷贝转发到该FDU。仅有一个拷贝被在IST上发送,并且远程节点将为每个端口成员形成拷贝。如处理块262进一步所示,使用MLT标识符(ID)和散列值在所述本地端口状态数据库内执行所述查找。接收到复制分组拷贝的每个本地FDU通过向端口数据库传递该分组中的所选择的字段的散列和MLT-ID访问端口表。端口数据库使用MLT ID和该散列值查找处于UP的本地端口成员。每个本地FDU使用相同的MLT-ID、散列值和同步的端口数据库执行这个相同的处理。因此,每个端口数据库将返回相同的本地端口ID(如果可以获得本地端口ID,即,处于UP)。支持所选择的端口的任意FDU将从所选择的端口传输该分组。不支持所选择的端口的任意FDU将丢弃该分组。如果没有可获得的本地端口,所有本地FDU丢弃该分组。换言之,由于在交换机结构的外出点执行选择端口的处理,在MLT跨越多个线卡和节点的情况下,该处理将被为与到所述接收方的MLT/SMLT相关联的一个或多个端口服务的每个FDU并行地执行。还可以由用于与广播或多播相关联的每个接收方的FDU/FDU集合执行该处理。
每个FDU(与特定接收方相关联)将基于该分组头部中所选择的字段创建散列函数,并且将该散列函数和MLT-ID传递到其本地端口数据库。由于每个FDU具有同步的端口数据库,并且将相同请求(散列函数和MLT-ID)传递到其本地端口数据库,每个端口数据库将返回用于向接收方转发分组的一致的输出端口。
处理块264说明将所述分组从处于UP状态的所述端口转发出去,并且所有远程FDU丢弃所述分组。当FDU从其本地端口数据库接收到响应时,它确定它支持所选择的端口还是另一个FDU支持所选择的端口。除了支持所选择的端口的FDU之外的所有FDU将丢弃该分组,从而可以将该分组的单个拷贝转发到接收方。
现在参考图15,示出了用于提供网络元件内的多播分组到与多链路中继线路相关联的远程FDU的可用MLT组的快速重新路由的方法300的特定实施例的流程图。方法300以处理块302开始,处理块302说明以网络元件的数据平面内的所述FDU接收分组。
处理块304公开了确定分组是多播分组。当FDU接收到多播分组时,它从FDB得到多播组ID。使用多播,由于网络元件可能需要将分组转发到多个接收方,所以进入FDU不执行端口选择,而是仅仅将分组转发到交换机结构。
处理块306说明将分组转发到具有与所述多播分组的至少一个接收方相关联的至少一个端口的所有外出FDU。交换机结构使用多播组ID,以便使得分组拷贝在多播时到达支持与至少一个接收方相关联的至少一个端口的所有FDU。在线卡被直接连接的实施例中,FDU将分组的拷贝转发到支持与至少一个接收方相关联的至少一个端口的每个其它线卡。在这个例子中,如处理块308所示,做出接收方端口是远程FDU的MLT组的确定。在SMLT上下文中,如果与特定接收方相关联的一个或多个端口在远程节点上,分组的拷贝将被转发到IST上的该远程节点。当远程节点上的适当的FDU接收到该分组时,它检查其端口数据库,以便确定是否需要在与该SMLT相关联的链路之一上转发该分组的拷贝。
处理块310公开了由每个外出FDU在同步的本地端口状态数据库中执行查找,以便寻找每个接收方的处于UP状态的端口。如处理块312进一步所示,使用MLT标识符(ID)和散列值在所述远程端口状态数据库内执行所述查找。为了这样做,每个远程FDU首先进行检查以便查看起始节点上是否有与该SMLT相关联的任意端口处于UP。
处理块314说明检查远程端口表,以便确定起始网络元件上是否有任意MLT端口处于UP状态。处理块316说明当起始网络元件上的一个MLT端口处于UP状态时,那么所述远程FDU丢弃所述分组。注意,对此而言,优选地该分组将被从首先接收到该分组的本地节点上的端口传出。因此,如果首先接收到该分组的本地节点上的一个或多个SMLT端口处于UP,远程节点可以安全地丢弃该分组。
处理块318公开当起始节点上的所有MLT端口都处于DOWN时,那么选择一个远程端口传输所述分组,并且所有其它远程端口丢弃所述分组。如果首先接收到该分组的本地节点上的所有SMLT端口都处于DOWN,远程节点上的每个FDU将查询其端口数据库,以便选择用于传输该分组的远程SMLT端口。远程FDU具有同步的端口数据库,并且使用相同的散列值/MLT-ID查询其端口数据库,从而每个FDU从其端口数据库接收到相同的端口ID。负责所选择端口的一个FDU输出该分组,从而不论SMLT的可用链路的数目如何,仅有该分组的一个拷贝被发送到接收方。
借助于上述方法和装置,执行网络元件内的多播分组到与多链路中继线路相关联的可用端口的快速重新路由。
与处理器(多个)集成在一起的设备(多个)或计算机系统可以包括,例如,个人计算机(多个)、工作站(多个)(例如,Sun、HP)、个人数字助理(多个)(PDA(多个))、手持设备(多个),诸如蜂窝电话(多个)、膝上计算机(多个)、手持计算机(多个)或能够与处理器(多个)集成在一起的可以按照此处的规定操作的另一设备(多个)。因此,此处提供的设备不是无遗漏的,并且被提供用于说明而不是作为限制。
可以理解,涉及到的“微处理器”和“处理器”或“微处理器”包括可以在独立和/或分布式环境(多个)中通信的一个或多个微处理器,并且因此被配置为通过有线或无线通信与其它处理器通信,其中这种一个或多个处理器可被配置为在可以是类似设备或不同设备的以一个或多个处理器控制的设备上操作。因此,对这些术语“微处理器”或“处理器”的使用可被理解为包括中央处理单元、算数逻辑单元、专用集成电路(IC)和/或任务引擎,提供这些例子用于说明而不是作为限制。
另外,除非另外指明,涉及的存储器可以包括一个或多个处理器可读和可访问的存储器元件和/或组件,它们可以在以处理器控制的设备之内,在以处理器控制的设备之外,或可被使用各种通信协议通过有线或无线网络访问,并且除非另外指明,可被安排为包括外部和内部存储器设备的组合,其中基于应用,这些存储器可以是邻近的和/或分开的。因此,可以理解所涉及的数据库包括一个或多个存储器联合体,其中这些涉及可以包括商业上可获得的数据库产品(例如,SQL、Informix、Oracle)并且还有私有数据库,并且还可以包括用于关联存储器的其它结构,诸如链接、队列、图、树,提供这些结构用于说明而不是作为限制。
除非另外规定,所涉及的网络可以包括一个或多个内联网和/或互联网以及虚拟网络。根据上述内容,此处涉及的微处理器指令或微处理器可执行指令可被理解为包括可编程硬件。
除非另外说明,对单词“大体上(基本上)”的使用可被认为包括精确的关系、状态、布置、取向和/或其它特性,以及如本领域的技术人员所理解的对它们的偏离,所述偏离的程度以不会本质上影响公开的方法和系统为准。
在本发明的整个公开中,对修饰名词的冠词(“a”或“an”)的使用可被理解为是出于方便而使用的,并且除非特别指出,包括一个或多于一个所修饰的名词。
除非此处另外规定,被描述为和/或在图中被描绘为与其它元件、组件、模块和/或其部分通信、相关联和/或基于其它元件、组件、模块和/或其部分的元件、组件、模块和/或其部分可被理解为以直接和/或间接的方式与其它元件、组件、模块和/或其部分通信、相关联和/或基于其它元件、组件、模块和/或其部分。
虽然已经以特定实施例描述了方法和系统,所述方法和系统不限于此。显然根据上述教导可以明了许多修改和变形。本领域的技术人员可以做出对此处描述和说明的细节、材料和部件布置的许多附加改动。
已经描述了本发明的优选实施例,本领域的普通技术人员现在将会明了可以使用结合有这些概念的其它实施例。另外,被包括为本发明的一部分的软件可被实施在包括计算机可用介质的计算机程序产品内。例如,这种计算机可用介质可以包括其上存储有计算机可读程序代码的可读存储器设备、诸如硬盘驱动器、CD-ROM、DVD-ROM或计算机盘。计算机可读介质还可以包括其上以数字或模拟信号承载有程序代码的光学的、有线的或无线的通信链路。因此,本发明不应被局限于描述的实施例,而是仅由所附权利要求书的精神和范围限制。

Claims (4)

1.一种用于提供网络元件内的多播分组到与多链路中继线路MLT相关联的可用端口的快速重新路由的方法,该方法包括以下步骤:
由网络元件的数据平面内的转发数据单元FDU接收分组;
确定所述分组是多播分组;
将所述分组转发到具有与所述多播分组的至少一个接收方相关联的至少一个端口的所有外出FDU;
其中,当接收方端口是独立端口时,该方法进一步包括以下步骤:
由每个外出FDU在同步的本地端口状态数据库中执行查找,以便寻找每个接收方的处于UP状态的端口;
当所述端口处于UP状态时将所述分组从所述端口转发到接收方,并且当所述端口处于DOWN状态时丢弃所述分组;
其中,当接收方端口是本地FDU的MLT组时,该方法进一步包括以下步骤:
由每个外出FDU使用MLT标识符和散列值在同步的本地端口状态数据库中执行查找,以便寻找每个接收方的处于UP状态的端口;
将所述分组从处于UP状态的所述端口转发出去,并且所有远程FDU丢弃所述分组;
其中,当接收方端口是远程FDU的MLT组时,该方法进一步包括以下步骤:
由每个外出FDU使用MLT标识符和散列值在同步的远程端口状态数据库中执行查找,以便寻找每个接收方的处于UP状态的端口;
检查远程端口表,以便确定起始网络元件上是否有任意MLT端口处于UP状态;
当起始网络元件上的一个MLT端口处于UP状态时,所述远程FDU丢弃所述分组;
当起始节点上的所有MLT端口都处于DOWN时,选择一个远程端口传输所述分组,并且所有其它远程端口丢弃所述分组。
2.如权利要求1所述的方法,还包括当所述接收方端口是本地FDU的MLT组时,则从本地端口状态表中定位处于UP状态的本地端口成员。
3.一种用于提供网络元件内的多播分组到与多链路中继线路MLT相关联的可用端口的快速重新路由的设备,该设备包括以下装置:
由网络元件的数据平面内的转发数据单元FDU接收分组的装置;
确定所述分组是多播分组的装置;
将所述分组转发到具有与所述多播分组的至少一个接收方相关联的至少一个端口的所有外出FDU的装置;
其中,当接收方端口是独立端口时,该设备进一步包括以下装置:
由每个外出FDU在同步的本地端口状态数据库中执行查找,以便寻找每个接收方的处于UP状态的端口的装置;
当所述端口处于UP状态时将所述分组从所述端口转发到接收方,并且当所述端口处于DOWN状态时丢弃所述分组的装置;
其中,当接收方端口是本地FDU的MLT组时,该设备进一步包括以下装置:
由每个外出FDU使用MLT标识符和散列值在同步的本地端口状态数据库中执行查找,以便寻找每个接收方的处于UP状态的端口的装置;
将所述分组从处于UP状态的所述端口转发出去,并且所有远程FDU丢弃所述分组的装置;
其中,当接收方端口是远程FDU的MLT组时,该设备进一步包括以下装置:
由每个外出FDU使用MLT标识符和散列值在同步的远程端口状态数据库中执行查找,以便寻找每个接收方的处于UP状态的端口的装置;
检查远程端口表,以便确定起始网络元件上是否有任意MLT端口处于UP状态的装置;
当起始网络元件上的一个MLT端口处于UP状态时,所述远程FDU丢弃所述分组的装置;
当起始节点上的所有MLT端口都处于DOWN时,选择一个远程端口传输所述分组,并且所有其它远程端口丢弃所述分组的装置。
4.如权利要求3所述的设备,还包括当所述接收方端口是本地FDU的MLT组时,从本地端口状态表中定位处于UP状态的本地端口成员的装置。
CN201010178191.2A 2009-05-13 2010-05-13 用于提供快速重新路由的方法和转发数据单元 Active CN101888332B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17801109P 2009-05-13 2009-05-13
US61/178,011 2009-05-13
US12/772,504 2010-05-03
US12/772,504 US8351431B2 (en) 2009-05-13 2010-05-03 Method and apparatus for providing fast reroute of a multicast packet within a network element to an available port associated with a multi-link trunk

Publications (2)

Publication Number Publication Date
CN101888332A CN101888332A (zh) 2010-11-17
CN101888332B true CN101888332B (zh) 2015-08-12

Family

ID=42663673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010178191.2A Active CN101888332B (zh) 2009-05-13 2010-05-13 用于提供快速重新路由的方法和转发数据单元

Country Status (3)

Country Link
US (1) US8351431B2 (zh)
EP (1) EP2252012A1 (zh)
CN (1) CN101888332B (zh)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9716672B2 (en) 2010-05-28 2017-07-25 Brocade Communications Systems, Inc. Distributed configuration management for virtual cluster switching
US9270486B2 (en) 2010-06-07 2016-02-23 Brocade Communications Systems, Inc. Name services for virtual cluster switching
US8867552B2 (en) 2010-05-03 2014-10-21 Brocade Communications Systems, Inc. Virtual cluster switching
US9769016B2 (en) 2010-06-07 2017-09-19 Brocade Communications Systems, Inc. Advanced link tracking for virtual cluster switching
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
US9807031B2 (en) 2010-07-16 2017-10-31 Brocade Communications Systems, Inc. System and method for network configuration
US8634417B2 (en) * 2011-06-02 2014-01-21 Avaya Inc. Method and apparatus providing selective flow redistribution across Multi Link Trunk/Link Aggregation Group (MLT/LAG) after port member failure and recovery
US8868731B1 (en) * 2011-06-06 2014-10-21 Cisco Technology, Inc. Technique for false positives prevention in high availability network
US9736085B2 (en) 2011-08-29 2017-08-15 Brocade Communications Systems, Inc. End-to end lossless Ethernet in Ethernet fabric
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
US8995272B2 (en) 2012-01-26 2015-03-31 Brocade Communication Systems, Inc. Link aggregation in software-defined networks
EP2814213A4 (en) * 2012-02-10 2015-09-09 Nec Corp CONTROL DEVICE, COMMUNICATION SYSTEM, COMMUNICATION PROCESS AND PROGRAM
US9742693B2 (en) 2012-02-27 2017-08-22 Brocade Communications Systems, Inc. Dynamic service insertion in a fabric switch
US8913620B2 (en) 2012-03-14 2014-12-16 International Business Machines Corporation Multicast traffic generation using hierarchical replication mechanisms for distributed switches
US8811406B2 (en) * 2012-03-14 2014-08-19 International Business Machines Corporation Delivering multicast frames to aggregated link trunks in a distributed switch
US8897301B2 (en) 2012-03-14 2014-11-25 International Business Machines Corporation Multicast bandwidth multiplication for a unified distributed switch
US8953619B2 (en) 2012-03-14 2015-02-10 International Business Machines Corporation Dynamic optimization of a multicast tree hierarchy for a distributed switch
US9154416B2 (en) 2012-03-22 2015-10-06 Brocade Communications Systems, Inc. Overlay tunnel in a fabric switch
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
US9401872B2 (en) 2012-11-16 2016-07-26 Brocade Communications Systems, Inc. Virtual link aggregations across multiple fabric switches
US9825807B2 (en) * 2012-11-30 2017-11-21 Cisco Technology, Inc. Determining multicast root nodes in a telecommunications network
US9548926B2 (en) 2013-01-11 2017-01-17 Brocade Communications Systems, Inc. Multicast traffic load balancing over virtual link aggregation
US9350680B2 (en) 2013-01-11 2016-05-24 Brocade Communications Systems, Inc. Protection switching over a virtual link aggregation
US9413691B2 (en) 2013-01-11 2016-08-09 Brocade Communications Systems, Inc. MAC address synchronization in a fabric switch
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
US9699001B2 (en) 2013-06-10 2017-07-04 Brocade Communications Systems, Inc. Scalable and segregated network virtualization
US9565028B2 (en) * 2013-06-10 2017-02-07 Brocade Communications Systems, Inc. Ingress switch multicast distribution in a fabric switch
JP6156737B2 (ja) * 2013-08-19 2017-07-05 APRESIA Systems株式会社 ネットワーク中継システムおよびスイッチ装置
US9806949B2 (en) 2013-09-06 2017-10-31 Brocade Communications Systems, Inc. Transparent interconnection of Ethernet fabric switches
US10225090B2 (en) 2013-09-17 2019-03-05 Cisco Technology, Inc. Bit indexed explicit replication using multiprotocol label switching
US10218524B2 (en) 2013-09-17 2019-02-26 Cisco Technology, Inc. Bit indexed explicit replication for layer 2 networking
US9806897B2 (en) 2013-09-17 2017-10-31 Cisco Technology, Inc. Bit indexed explicit replication forwarding optimization
US10461946B2 (en) 2013-09-17 2019-10-29 Cisco Technology, Inc. Overlay signaling for bit indexed explicit replication
US9716657B1 (en) * 2013-09-27 2017-07-25 Google Inc. TCP connection resiliency in multipath networks
US9912612B2 (en) 2013-10-28 2018-03-06 Brocade Communications Systems LLC Extended ethernet fabric switches
US9548873B2 (en) 2014-02-10 2017-01-17 Brocade Communications Systems, Inc. Virtual extensible LAN tunnel keepalives
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
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
US10616108B2 (en) 2014-07-29 2020-04-07 Avago Technologies International Sales Pte. Limited Scalable MAC address virtualization
US9807007B2 (en) 2014-08-11 2017-10-31 Brocade Communications Systems, Inc. Progressive MAC address learning
US9699029B2 (en) 2014-10-10 2017-07-04 Brocade Communications Systems, Inc. Distributed configuration management in a switch group
US9626255B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Online restoration of a switch snapshot
US9628407B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Multiple software versions in a switch group
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
CN104506336A (zh) * 2015-01-22 2015-04-08 盛科网络(苏州)有限公司 交换机芯片组播/广播时节约Down端口带宽的方法及装置
US9807005B2 (en) 2015-03-17 2017-10-31 Brocade Communications Systems, Inc. Multi-fabric manager
US10038592B2 (en) 2015-03-17 2018-07-31 Brocade Communications Systems LLC Identifier assignment to a new switch in a switch group
US10579406B2 (en) 2015-04-08 2020-03-03 Avago Technologies International Sales Pte. Limited Dynamic orchestration of overlay tunnels
US10439929B2 (en) 2015-07-31 2019-10-08 Avago Technologies International Sales Pte. Limited Graceful recovery of a multicast-enabled switch
US10171303B2 (en) 2015-09-16 2019-01-01 Avago Technologies International Sales Pte. Limited IP-based interconnection of switches with a logical chassis
US9912614B2 (en) 2015-12-07 2018-03-06 Brocade Communications Systems LLC Interconnection of switches based on hierarchical overlay tunneling
US10581711B2 (en) 2016-01-28 2020-03-03 Oracle International Corporation System and method for policing network traffic flows using a ternary content addressable memory in a high performance computing environment
US10333894B2 (en) * 2016-01-28 2019-06-25 Oracle International Corporation System and method for supporting flexible forwarding domain boundaries in a high performance computing environment
US10355972B2 (en) 2016-01-28 2019-07-16 Oracle International Corporation System and method for supporting flexible P_Key mapping in a high performance computing environment
US10630816B2 (en) 2016-01-28 2020-04-21 Oracle International Corporation System and method for supporting shared multicast local identifiers (MILD) ranges in a high performance computing environment
US10659340B2 (en) 2016-01-28 2020-05-19 Oracle International Corporation System and method for supporting VM migration between subnets in a high performance computing environment
US10616118B2 (en) 2016-01-28 2020-04-07 Oracle International Corporation System and method for supporting aggressive credit waiting in a high performance computing environment
US10348847B2 (en) 2016-01-28 2019-07-09 Oracle International Corporation System and method for supporting proxy based multicast forwarding in a high performance computing environment
US10348649B2 (en) 2016-01-28 2019-07-09 Oracle International Corporation System and method for supporting partitioned switch forwarding tables in a high performance computing environment
US10536334B2 (en) 2016-01-28 2020-01-14 Oracle International Corporation System and method for supporting subnet number aliasing in a high performance computing environment
US10666611B2 (en) 2016-01-28 2020-05-26 Oracle International Corporation System and method for supporting multiple concurrent SL to VL mappings in a high performance computing environment
US10057119B2 (en) 2016-08-23 2018-08-21 Oracle International Corporation System and method for supporting fast hybrid reconfiguration in a high performance computing environment
US10630743B2 (en) 2016-09-23 2020-04-21 Cisco Technology, Inc. Unicast media replication fabric using bit indexed explicit replication
US10237090B2 (en) 2016-10-28 2019-03-19 Avago Technologies International Sales Pte. Limited Rule-based network identifier mapping
US10637675B2 (en) 2016-11-09 2020-04-28 Cisco Technology, Inc. Area-specific broadcasting using bit indexed explicit replication
US10164794B2 (en) 2017-04-28 2018-12-25 Cisco Technology, Inc. Bridging of non-capable subnetworks in bit indexed explicit replication
CN109302344B (zh) * 2018-10-30 2021-06-29 新华三技术有限公司 一种报文转发方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1425233A (zh) * 1999-12-22 2003-06-18 英特尔公司 用于网络设备的开放性体系结构中的专有数据转发的方法和装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185214B1 (en) * 1997-09-11 2001-02-06 3Com Corporation Use of code vectors for frame forwarding in a bridge/router
EP1181791B1 (en) * 1999-05-24 2009-12-02 Broadcom Corporation Apparatus for distributing a load across a trunk group
US6731599B1 (en) * 1999-07-01 2004-05-04 Nortel Networks Limited Automatic load sharing-trunking
US7076594B2 (en) * 2000-12-22 2006-07-11 Cisco Technology, Inc. Apparatus and method for preventing one way connectivity loops in a computer network
JP3967141B2 (ja) * 2002-01-28 2007-08-29 富士通株式会社 フレーム中継システムおよびフレーム中継装置
US7606927B2 (en) * 2003-08-27 2009-10-20 Bbn Technologies Corp Systems and methods for forwarding data units in a communications network
US7719958B1 (en) * 2004-09-29 2010-05-18 Avaya, Inc. Method and apparatus for enabling multicast over split multilink trunking
JP4428184B2 (ja) * 2004-10-04 2010-03-10 株式会社日立製作所 検索テーブル高速切替方式およびパケット転送装置
US20060274647A1 (en) 2005-06-02 2006-12-07 Broadcom Corporation Dynamic port failover
EP1943782B1 (en) * 2005-10-05 2012-03-28 Nortel Networks Limited Provider link state bridging
JP4923908B2 (ja) * 2006-09-21 2012-04-25 富士通株式会社 パケット転送装置およびパケット転送方法
US7710963B1 (en) * 2007-04-05 2010-05-04 Juniper Networks, Inc. Binary trees for multicast traffic
US7826348B2 (en) * 2007-04-26 2010-11-02 Cisco Technology, Inc. Multicast fast reroute
KR100994127B1 (ko) * 2008-08-28 2010-11-15 한국전자통신연구원 이더넷 스위치의 성능 향상을 위한 패킷 처리 방법
US8102848B1 (en) * 2008-11-19 2012-01-24 Force10 Networks, Inc. Multicast high availability enhancements for faster convergence
US8165122B2 (en) * 2009-05-26 2012-04-24 Alcatel Lucent System and method for converting unicast client requests into multicast client requests

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1425233A (zh) * 1999-12-22 2003-06-18 英特尔公司 用于网络设备的开放性体系结构中的专有数据转发的方法和装置

Also Published As

Publication number Publication date
US8351431B2 (en) 2013-01-08
EP2252012A1 (en) 2010-11-17
CN101888332A (zh) 2010-11-17
US20100290464A1 (en) 2010-11-18

Similar Documents

Publication Publication Date Title
CN101888332B (zh) 用于提供快速重新路由的方法和转发数据单元
CN101888330B (zh) 用于提供分组的快速重新路由的方法和装置
CN101888333B (zh) 用于在网络元件的转发平面内保持端口状态表的方法和装置
CN101888331B (zh) 用于提供单播分组的快速重新路由的方法和装置
CN101888307B (zh) 用于本地实现端口选择的方法和装置
CN1914867B (zh) 虚拟网络设备中的接口束
CN100449521C (zh) 网络拓扑的恢复机制
CN104025513A (zh) 数据中心网络中的控制层级
CN102364900B (zh) 一种irf系统中基于frr的数据传输方法和设备
CN103795570B (zh) 环形拓扑的堆叠交换机系统的单播报文恢复方法及装置
CN105959217A (zh) 一种sdn移动自组网的数据处理方法及装置
EP3213441B1 (en) Redundancy for port extender chains
WO2014180332A1 (zh) 通用路由方法及系统
CN101945050B (zh) 一种基于胖树结构的动态容错方法和系统
CN105915467A (zh) 一种面向软件定义的数据中心网络流量均衡方法及装置
CN103621020B (zh) 电信系统中的中间网络节点
US9866428B2 (en) Fabric switchover for systems with control plane and fabric plane on same board
CN101986727B (zh) 网络按需距离矢量多播路由协议的多路径改进方法和装置
CN105515979A (zh) 开放式最短路径优先ospf跨网均衡转发方法及系统
CN106789623B (zh) 基于ospf协议的链路通信保障方法和系统
WO2017105816A1 (en) Adaptive fabric multicast schemes
CN115226044A (zh) 一种nfv网络中的多播路由方法及系统

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