CN101888307B - 用于本地实现端口选择的方法和装置 - Google Patents

用于本地实现端口选择的方法和装置 Download PDF

Info

Publication number
CN101888307B
CN101888307B CN201010178183.8A CN201010178183A CN101888307B CN 101888307 B CN101888307 B CN 101888307B CN 201010178183 A CN201010178183 A CN 201010178183A CN 101888307 B CN101888307 B CN 101888307B
Authority
CN
China
Prior art keywords
port
fdu
network element
mlt
grouping
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
CN201010178183.8A
Other languages
English (en)
Other versions
CN101888307A (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 CN101888307A publication Critical patent/CN101888307A/zh
Application granted granted Critical
Publication of CN101888307B publication Critical patent/CN101888307B/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
    • 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/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请求之后执行端口选择处理,以便识别与多链路中继线路(MLT)相关联的处于UP状态的可用端口,以便能够在出现端口故障时进行与该MLT相关联的端口之间的快速重新路由。该处理将识别出的端口返回给FDU,以便由FDU用于转发分组。

Description

用于本地实现端口选择的方法和装置
与相关申请的交叉引用
本申请要求2009年5月13日提交的美国临时专利申请No.61/178,018的益处。本申请还涉及与本申请同日提交的代理卷号为AVA10-17、题目为“Method And Apparatus For Maintaining PortState Tables In A Forwarding Plane Of A Network Element(用于维护网络元件的转发平面内的端口状态表的方法和装置)”的申请。通过引用将上面指出的每个申请的教导和公开完整结合在此。
背景技术
数据通信网络可以包括各种计算机、服务器、节点、路由器、交换机、集线器和代理服务器,以及被耦接和配置为彼此传递数据的其它设备。此处这些设备被称为“网络元件”,并且可以在网络上提供各种网络资源。通过在网络上的通信链路在网络元件之间传递协议数据单元(诸如,分组、信元、帧或段),通过数据通信网络传递数据。特定的协议数据单元可被多个网络元件处理,并且当它在网络上在它的源和它的目的地之间传播时跨越多个通信链路。诸如计算机、电话、蜂窝电话、个人数字助理(PDA)和其它类型的消费电子产品的主机连接到通信网络,并且通过通信网络传输/接收数据,并且因此,是由通信网络提供的通信服务的用户。
网络元件通常被实现为具有控制网络元件的操作的控制平面(control plane)以及处理流过网络的通信量的数据平面(data plane)。数据平面通常具有线卡集合,所述线卡具有连接到网络上的链路的端口。数据在特定端口处被接收、在数据平面内被交换,并且在一个或多个其它端口处被输出到网络的其它链路上。为了能够迅速地处理数据,通常以硬件实现数据平面,从而使用硬件查找等执行关于如何处理数据的所有判决。
端口可能出于许多原因而失效,包括线卡故障、连接到端口的链路的故障(例如,线路中断)、远端线卡故障等。术语多链路中继线路(或称“多链路聚合主干”)(multi-link trunk,MLT)、链路聚合组(Link Aggregation Group,LAG)和逻辑端口是同义词,并且这些术语被互换地使用。类似地,网络元件内的内部转发数据路径可能失效,这可能导致一个端口或一组端口表现出失效,或者沿着到端口的外部对等端点的逻辑/虚拟连接可能存在某些其它故障。存在端口可能失效的多种原因。
在端口失效的情况下,去往该端口的通信量应当被转向为从替换端口流出,以便能够通过网络恢复连接性。为了最小化对该网络元件所处理的通信量的影响,例如,为了最小化停机时间(down-time)和分组丢失,通信量重新路由越快发生越好。优选地,能够使得通信量在10毫秒(ms)内失效恢复到替换端口是有利的。优选地,在LAG或MLT的情况下,通信量应当散布在其余端口上,而不是从失效端口全部移到特定的指定替换端口,以便防止指定的替换端口的通信量过载。
发明内容
诸如上面解释的常规机制具有各种缺点。一个这种缺点是常规网络元件从故障中恢复所花费的时间量。恢复花费的时间量越长,性能延迟(包括更多的丢弃分组)以及其它端口克服失效端口的加载越长。当前的解决方案不提供有效地检测端口故障并且分发端口状态,以便使得能够在分组/信元/帧转发过程中进行快速重新路由的全面的方法。这些解决方案通常过多地使用管理和/或控制平面软件以便处理一个故障子集。其方法导致较长的网络停机时间(down time)和较多的分组丢失。
本发明的实施例显著地克服了这些缺点,并且提供了提供端口选择处理的机制和技术。在一个用于提供端口选择处理的方法的特定实施例中,该方法包括由网络元件的转发平面内的每个转发数据单元(FDU)维护各自的端口状态数据库,每个端口状态数据库包含所述网络元件内的所有端口的端口状态的同步视图。该方法还包括每个端口状态数据库在被其相关联的FDU请求之后独立地执行端口选择处理,以便识别与多链路中继线路(MLT)相关联的处于UP状态的可用端口,以便能够在出现端口故障时进行与该MLT相关联的端口之间的快速重新路由,并且将识别出的端口返回给所述FDU,以便由所述FDU用于转发分组。
其它实施例包括其上具有用于提供端口选择处理的计算机可读代码的计算机可读介质。所述计算机可读介质包括用于由网络元件的转发平面内的每个转发数据单元(FDU)维护各自的端口状态数据库的指令,每个端口状态数据库包含所述网络元件内的所有端口的端口状态的同步视图。所述计算机可读介质还包括用于由每个端口状态数据库在被其相关联的FDU请求之后独立地执行端口选择处理,以便识别与多链路中继线路(MLT)相关联的处于UP状态的可用端口,以便能够在出现端口故障时进行与该MLT相关联的端口之间的快速重新路由,并且将识别出的端口返回给所述FDU,以便由所述FDU用于转发分组的指令。
其它实施例包括一种计算机化设备(此处也被称为网络元件),其配置为处理此处作为本发明的实施例所公开的所有方法操作。在这些实施例中,该计算机化设备包括存储器系统、处理器、连接这些组件的互连机制中的通信接口。所述存储器系统被编码有一种提供此处解释的端口选择的处理,当在处理器上被实施时(例如,当执行时),该处理在所述计算机化设备内按照此处的解释操作,以便执行此处作为本发明的实施例所解释的所有方法实施例和操作。因此,执行或被编程为执行此处解释的处理的任意计算机化设备是本发明的实施例。
此处公开的本发明实施例的其它布置包括执行上面概述和下面详细公开的方法实施例的步骤和操作的软件程序。更具体地,计算机程序产品是一个具有计算机可读介质的实施例,所述计算机可读介质包括编码在其上的计算机程序逻辑,当在计算机化设备内被执行时,提供相关联的操作,用于按照此处的解释提供端口选择。当在具有计算系统的至少一个处理器上被执行时,所述计算机程序逻辑使得所述处理器执行此处作为本发明的实施例指出的操作(例如,方法)。本发明的这些布置通常被作为布置或编码在计算机可读介质上的软件、代码和/或其它数据结构提供,所述计算机可读介质诸如是光学介质(例如,CD-ROM)、软盘或硬盘或其它介质,诸如一个或多个ROM或RAM或PROM芯片内的固件或微代码,或作为专用集成电路(ASIC),或作为一个或多个模块中的可下载的软件映像、共享库等。软件或固件或其它这些配置可被安装在计算机化设备上,以便使得计算机化设备内的一个或多个处理器执行此处作为本发明的实施例解释的技术。在计算机化设备的集合中,诸如,在一组数据通信设备或其它实体内操作的软件处理也可以提供本发明的系统。本发明的系统可分布在若干数据通信设备上的许多软件处理内,或所有处理可以在一组少数的专用计算机上或单独在一个计算机上运行。
应当理解,本发明的实施例可被严格地表达为,诸如,数据通信设备内的软件程序、软件和硬件、或是仅为硬件和/或电路。如此处解释的本发明的特征可被用于数据通信设备和/或用于这种设备的软件系统,所述设备诸如是由新泽西州林克罗夫特市的Avaya公司制造的设备。
注意,本公开中讨论的每个不同特征、技术、配置等可被独立地或组合地执行。因此,本发明可被以许多不同方式表达。
还要注意,此处的概述部分未指出本公开或所提出的发明的每个实施例和/或增加的新颖方面。而是,该概述仅提供对不同实施例和相对于常规技术的相应新颖点的初步讨论。对于本发明的附加细节、元素和/或可能的设想(改变),读者需要参考下面进一步讨论的本公开的具体实施方式部分和相应附图。
附图说明
如附图中所示,从下面对本发明的优选实施例的更具体的描述中,将明了上面的内容,其中类似的附图标记在所有不同视图中指示相同部分。这些图不必是成比例的,而是重点在于示出本发明的原理。
图1是示出了组织节点集群的第一个例子的功能方框图;
图2是示出了组织节点集群的另一个例子的功能方框图;
图3是示出了组织节点集群的另一个例子的功能方框图;
图4是示出了组织节点集群的另一个例子的功能方框图;
图5是示出了组织节点集群的另一个例子的功能方框图;
图6是示出了组织节点集群的另一个例子的功能方框图;
图7是示例通信网络的功能方框图;
图8是示例网络元件的功能方框图;
图9是可用于诸如图8的网络元件的网络元件的示例线卡的功能方框图;
图10是可用于诸如图9的线卡的线卡的示例端口数据库的功能方框图;
图11是示例网络元件集群的功能方框图,示出了节点集群内的数据路径组件之间的端口状态信息流;
图12示出了根据本发明的实施例提供端口选择的示例计算机系统体系结构;和
图13A和13B包括根据本发明的实施例的用于提供端口选择的方法的流程图。
具体实施方式
网络元件处理数据的方式随时间而发展。例如,两个或更多个物理链路可以在一组网络元件之间延伸,并且被总地用作MLT或LAG。图1示出了由多个链路24a-d连接的两个网络元件(网络元件1和网络元件2)的例子,多个链路24a-d被分组,从而形成多链路中继线路22。具体地,MLT22中的每个链路24a-d可被任意一个网络元件用于向另一个网络元件转发数据。因此,如果网络元件1具有要发送到网络元件2的数据(例如,帧/分组),网络元件1可以从MLT22中选择链路24a-d中的一个,并且在该链路上向网络元件2传输分组。
图2示出了可以互连网络元件的另一种示例方式。具体地,在这个例子中,网络元件1和网络元件2被交换机间中继线路(Inter-SwitchTrunk,IST)26互连,IST26可以是单个链路或它自己可以是多链路中继线路。当多链路中继线路的链路被物理地连接到两个不同的网络元件时,MLT被称为分离的多链路中继线路(Split Multi-Link Trunk,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-30互连。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。线卡还可以包括管理/控制处理器(MCP)44,MCP44与控制平面交互,以便使得控制平面能够将指令编程到FDU42内,并且可选择地编程到线卡上的其它组件内,从而FDU42在网络上正确地处理数据。MCP 44还周期地检查FDU42和线卡中的其它组件的状态,以便检测何时出现故障。
现在参考图10,每个FDU42维护端口状态数据库46。这个端口状态数据库46维护物理链路状态和其本地和所有远程端口的连接状态。端口状态数据库46包括两个表-本地端口数据表48和远程端口数据表50。本地端口数据表48维护属于本地节点的端口状态,并且远程端口数据表50维护属于集群中的远程端口的端口状态。在MLT组的情况下,FDU将本地节点上的MLT端口成员保持在本地表内,并且将所有其它远程节点上的端口成员保持在远程表内。
当FDU接收到分组时,需要寻找MLT(或SMLT)内的处于UP的端口,以便将分组转发到其在网络上的目的地。端口或者处于UP(上行)状态或者处于DOWN(下行)状态。如上所述,在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 port)相关联的MLT/SMLT内的替换端口,以便用于处理该分组。因此,数据路径能够自动地适应端口故障、线卡故障等,以便将分组重新路由到可用的替换端口而不涉及控制平面。因此,可以在网络元件内和在网络元件的集群之间迅速地进行少于10ms的分组重新路由。
数据库控制逻辑可以硬件实现,并且在也以硬件实现的本地和远程表内执行数据访问。当端口失效时,该端口的状态(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。如这个例子中所示,FDU110包括互连机制111,诸如耦接存储器系统112、处理器113、输入/输出接口114和通信接口115的数据总线或其它电路。通信接口115使得FDU110能够与网络(未示出)上的其它设备(即,其它计算机)通信。
存储器系统112是任意类型的计算机可读介质,并且在这个例子中,被编码有此处解释的端口选择操作应用140-1。端口选择操作应用140-1可被表达为软件代码,诸如支持根据此处描述的不同实施例的处理功能的数据和/或逻辑指令(例如,存储在存储器内或另一计算机可读介质诸如可移动盘上的代码)。在FDU110的操作过程中,处理器113通过互连111访问存储器系统112,以便启动、运行、执行、解释或以其他方式实施端口选择操作应用140-1的逻辑指令。以这种方式执行端口选择操作应用140-1产生端口选择操作处理140-2中的处理功能。换言之,端口选择操作处理140-2表示运行时在FDU110内的处理器113之内或之上执行或实施的端口选择操作应用140-1的一个或多个部分或运行时实例(或整个端口选择操作应用140-1)。
注意,此处公开的示例配置包括端口选择操作应用140-1自身(即,为非执行或非运行逻辑指令和/或数据的形式)。端口选择操作应用140-1可被存储在计算机可读介质(诸如软盘)、硬盘、电子的、磁的、光学的或其它计算机可读介质上。端口选择操作应用140-1还可被存储在存储器系统112内,诸如在固件、只读存储器(ROM)内,或在这个例子中,作为可执行代码存储在,例如,随机存取存储器(RAM)内。除了这些实施例,还应当注意,此处的其它实施例包括端口选择操作应用140-1作为端口选择操作处理140-2在处理器113中的执行。本领域的技术人员应当理解,FDU110可以包括其它处理和/或软件和硬件组件,诸如这个例子中未示出的操作系统。
在操作过程中,FDU110的处理器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中的执行。本领域的技术人员应当理解,FDU110可以包括其它处理和/或软件和硬件组件,诸如控制与FDU110相关联的硬件资源的分配和使用的操作系统。
图13A和13B给出了当前公开的方法的特定实施例的流程图。此处矩形元素代表“处理块”,并且表示计算机软件指令或指令组。可替换地,处理块表示由功能等同电路,诸如,数字信号处理器电路或专用集成电路(ASIC)执行的步骤。这些流程图未给出任何特定编程语言的语法。而是这些流程图示出了本领域的技术人员构造电路或生产计算机软件以便执行根据本发明的所需处理所需要的功能信息。应当注意,未示出许多例程程序元素,诸如循环和变量的初始化以及对临时变量的使用。本领域的普通技术人员将会明了,除非此处另外指出,所描述的特定步骤序列仅是说明性的,并且可被改变而不脱离本发明的精神。因此,除非另外说明,下面描述的步骤不带有顺序含义,当可能时,这些步骤可被以任何方便的或所希望的顺序执行。
现在参考图13A和13B,示出了通过网络元件的转发平面所维护的同步端口状态数据库本地实现端口选择的方法200的特定实施例。方法200以处理块202开始,处理块202公开了由网络元件的转发平面内的每个转发数据单元(FDU)维护各自的端口状态数据库,每个端口状态数据库包含所述网络元件内的所有端口的端口状态的同步视图。
处理块204说明每个端口状态数据库在被其相关联的FDU请求之后独立地执行端口选择处理,以便识别与多链路中继线路(MLT)相关联的处于UP状态的可用端口,以便能够在出现端口故障时进行与该MLT相关联的端口之间的快速重新路由,并且将识别出的端口返回给所述FDU,以便由所述FDU用于转发分组。
处理块206说明当与该MLT相关联的端口不都是本地的时,FDU选择与分离的多链路中继线路(SMLT)相关联的不同物理网络元件上且具有UP状态的端口。
处理块208公开了维护各个端口状态数据库和执行端口选择处理自动地适应端口故障,并且将分组重新路由到可用的替换端口,而不涉及控制平面。
处理以处理块210继续,处理块210说明FDU接收数据分组,并且读取端口ID、MLT-ID和一个散列函数,并且将这些值传递到端口状态数据库。处理块212说明在端口状态数据库中搜索与该MLT-ID相关联的并且处于UP状态的本地端口。处理块214公开了当端口在远程节点上时,进行检查以便寻找处于UP状态的交换机间中继线路(IST)端口。处理块216说明FDU在该IST上将分组转发到远程节点,其中该远程节点将在所述远程端口上转发分组。
处理块218说明基于轮流机制选择IST。这样做是为了防止反复地选择相同的IST,并且被用于取代散列函数。
处理以处理块220继续,处理块220公开了将来自下行端口的通信量分布在MLT/SMLT的其余端口上。处理块222说明当接收到分组时,使用端口状态数据库确定由所述FDU使用的处于UP状态的可用端口,从而在出现多个端口故障时完成不中断的分组转发。
借助于用于执行端口选择的上述方法和装置,在出现端口故障的情况下,与花费几秒的常规技术相比,可以在少于10毫秒的时间内执行重新路由。失效端口的预期通信量以不中断其它分组流的方式被重新分布在多个端口上,从而不会有分组重新请求或分组丢失。
与一个或多个处理器集成在一起的一个或多个设备或计算机系统可以包括,例如,一个或多个个人计算机、一个或多个工作站(例如,Sun、HP)、一个或多个个人数字助理(PDA)、一个或多个手持设备,诸如一个或多个蜂窝电话、一个或多个膝上计算机、一个或多个手持计算机或能够与一个或多个处理器集成在一起的可以按照此处的规定操作的一个或多个另一设备。因此,此处提供的设备不是无遗漏的,并且被提供用于说明而不是作为限制。
可以理解,对“微处理器”和“处理器”的引用或“微处理器”和“处理器”包括可以在一个或多个独立和/或分布式环境中通信的一个或多个微处理器,并且因此被配置为通过有线或无线通信与其它处理器通信,其中这种一个或多个处理器可被配置为在可以是类似设备或不同设备的一个或多个处理器控制的设备上操作。因此,对这些术语“微处理器”或“处理器”的使用可被理解为包括中央处理单元、算数逻辑单元、专用集成电路(IC)和/或任务引擎,提供这些例子用于说明而不是作为限制。
另外,除非另外指明,对存储器的引用可以包括一个或多个处理器可读和可访问的存储器元件和/或组件,它们可以在以处理器控制的设备之内,在以处理器控制的设备之外,和/或可使用各种通信协议通过有线或无线网络被访问,并且除非另外指明,可被安排为包括外部和内部存储器设备的组合,其中基于应用,这些存储器可以是邻近的和/或分开的。因此,可以理解对数据库的引用包括一个或多个存储器联合体,其中这些引用可以包括商业上可获得的数据库产品(例如,SQL、Informix、Oracle)并且还有私有数据库,并且还可以包括用于关联存储器的其它结构,诸如链接、队列、图、树,提供这些结构用于说明而不是作为限制。
除非另外规定,对网络的引用可以包括一个或多个内联网和/或互联网以及虚拟网络。根据上述内容,此处对微处理器指令或微处理器可执行指令的引用可被理解为包括可编程硬件。
除非另外说明,对单词“大体上”的使用可被认为包括精确的关系、状态、布置、取向和/或其它特性,以及如本领域的技术人员所理解的对它们的偏离,所述偏离的程度以不会本质上影响公开的方法和系统为准。
在本发明的整个公开中,对修饰名词的冠词(“一个”)的使用可被理解为是出于方便而使用的,并且除非特别指出,包括一个或多于一个所修饰的名词。
除非此处另外规定,被描述为和/或以其他方式在图中被描绘为与其它元件、组件、模块和/或其部分通信、相关联和/或基于其它元件、组件、模块和/或其部分的元件、组件、模块和/或其部分可被理解为以直接和/或间接的方式与其它元件、组件、模块和/或其部分通信、相关联和/或基于其它元件、组件、模块和/或其部分。
虽然已经以特定实施例描述了方法和系统,所述方法和系统不限于此。显然根据上述教导可以明了许多修改和变形。本领域的技术人员可以做出对此处描述和说明的细节、材料和部件布置的许多附加改动。
已经描述了本发明的优选实施例,本领域的普通技术人员现在将会明了可以使用结合有这些概念的其它实施例。另外,被包括为本发明的一部分的软件可被包含在包括计算机可用介质的计算机程序产品内。例如,这种计算机可用介质可以包括其上存储有计算机可读程序代码段的可读存储器设备、诸如硬盘驱动器、CD-ROM、DVD-ROM或计算机盘。计算机可读介质还可以包括其上以数字或模拟信号承载有程序代码段的光学的、有线的或无线的通信链路。因此,本发明不应被局限于描述的实施例,而是仅由所附权利要求书的精神和范围限制。

Claims (10)

1.一种用于通过网络元件的转发平面所维护的同步端口状态数据库本地实现端口选择的方法,所述方法包括以下步骤:
由所述网络元件的转发平面内的每个转发数据单元(FDU)维护各自的端口状态数据库,每个端口状态数据库包含所述网络元件内的所有端口的端口状态的同步视图;和
每个端口状态数据库在被其相关联的FDU请求之后独立地执行端口选择处理,以便识别与多链路中继线路(MLT)相关联的处于上行状态的可用端口,以便能够在出现端口故障时进行与该MLT相关联的端口之间的快速重新路由,并且将识别出的端口返回给所述FDU,以便由所述FDU用于转发分组,
其中,使用包含端口的本地物理链路状态的心跳分组,并相应地更新所述端口状态;
其中,心跳分组允许FDU彼此传递状态信息并且允许每个FDU了解数据平面内的所有端口的状态,以允许数据平面自动地针对端口故障进行调整,从而数据可在没有控制平面干预的情况下被重定向到处于上行状态的端口并且远离处于下行状态的端口。
2.如权利要求1所述的方法,其中当与所述MLT相关联的端口全都不是本地的时,所述FDU选择与分离的多链路中继线路(SMLT)相关联的不同物理网络元件上且处于上行状态的端口。
3.如权利要求1所述的方法,其中所述维护各自的端口状态数据库以及所述执行端口选择处理自动地适应端口故障,并且将分组重新路由到可用的替换端口,而不涉及控制平面。
4.如权利要求1所述的方法,还包括所述FDU接收数据分组,并且读取端口ID、MLT-ID和散列函数,并且将这些值传递到所述端口状态数据库。
5.如权利要求4所述的方法,还包括在所述端口状态数据库中搜索与所述MLT-ID相关联的并且处于上行状态的本地端口。
6.如权利要求5所述的方法,还包括当所述端口在远程节点上时,进行检查以便寻找处于上行状态的交换机间中继线路(IST)端口。
7.如权利要求6所述的方法,还包括由所述FDU在所述IST上将分组转发到远程节点,其中所述远程节点将在所述远程端口上转发分组。
8.如权利要求1所述的方法,还包括将来自下行端口的通信量分布在MLT/SMLT的其余端口上。
9.如权利要求1所述的方法,其中当收到分组时,使用所述端口状态数据库确定由所述FDU使用的处于上行状态的可用端口,从而在出现多个端口故障时完成不中断的分组转发。
10.一种网络元件,包括:
存储器;
处理器;
通信接口;
耦接所述存储器、处理器和通信接口的互连机制;和
其中,所述存储器被编码有通过网络元件的转发平面所维护的同步端口状态数据库提供端口选择的应用,当在处理器上被执行时,该应用提供了用于处理信息的处理,所述处理使得所述网络元件执行如下操作:
由所述网络元件的转发平面内的每个转发数据单元(FDU)维护各自的端口状态数据库,每个端口状态数据库包含所述网络元件内的所有端口的端口状态的同步视图;和
每个端口状态数据库在被其相关联的FDU请求之后独立地执行端口选择处理,以便识别与多链路中继线路(MLT)相关联的处于上行状态的可用端口,以便能够在出现端口故障时进行与该MLT相关联的端口之间的快速重新路由,并且将识别出的端口返回给所述FDU,以便由所述FDU用于转发分组,
其中,使用包含端口的本地物理链路状态的心跳分组,并相应地更新所述端口状态;
其中,心跳分组允许FDU彼此传递状态信息并且允许每个FDU了解数据平面内的所有端口的状态,以允许数据平面自动地针对端口故障进行调整,从而数据可在没有控制平面干预的情况下被重定向到处于上行状态的端口并且远离处于下行状态的端口。
CN201010178183.8A 2009-05-13 2010-05-13 用于本地实现端口选择的方法和装置 Active CN101888307B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17801809P 2009-05-13 2009-05-13
US61/178,018 2009-05-13
US12/772,441 US8477791B2 (en) 2009-05-13 2010-05-03 Method and apparatus for locally implementing port selection via synchronized port state databases maintained by the forwarding plane of a network element
US12/772,441 2010-05-03

Publications (2)

Publication Number Publication Date
CN101888307A CN101888307A (zh) 2010-11-17
CN101888307B true CN101888307B (zh) 2015-09-09

Family

ID=42557436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010178183.8A Active CN101888307B (zh) 2009-05-13 2010-05-13 用于本地实现端口选择的方法和装置

Country Status (3)

Country Link
US (1) US8477791B2 (zh)
EP (1) EP2252016B1 (zh)
CN (1) CN101888307B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102195881B (zh) * 2011-04-25 2016-12-07 南京中兴软件有限责任公司 一种端口信息更新的方法、装置及系统
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
US9825807B2 (en) * 2012-11-30 2017-11-21 Cisco Technology, Inc. Determining multicast root nodes in a telecommunications network
CN103067151B (zh) * 2013-02-04 2016-04-13 恒为科技(上海)股份有限公司 一种保持被串接链路两端状态同步的装置及其方法
JP6156737B2 (ja) * 2013-08-19 2017-07-05 APRESIA Systems株式会社 ネットワーク中継システムおよびスイッチ装置
CN105049248A (zh) * 2015-07-09 2015-11-11 北京宇航系统工程研究所 一种sdh设备的网络状态快速检测方法
CN105530291A (zh) * 2015-11-30 2016-04-27 深圳市元征软件开发有限公司 诊断设备状态获取方法、装置和系统
CN107276859B (zh) * 2017-08-21 2019-10-25 武汉斗鱼网络科技有限公司 保持长连接的方法及装置
CN111010319B (zh) * 2019-12-20 2021-11-16 锐捷网络股份有限公司 基于vsf的链路检测方法及装置
CN113852547B (zh) * 2021-09-10 2023-07-25 锐捷网络股份有限公司 一种报文转发方法、装置、线卡及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032194A (en) * 1997-12-24 2000-02-29 Cisco Technology, Inc. Method and apparatus for rapidly reconfiguring computer networks
WO2000072531A1 (en) * 1999-05-24 2000-11-30 Broadcom Corporation Apparatus and method for distributing a load across a trunk group
CN101252532A (zh) * 2008-03-18 2008-08-27 华为技术有限公司 以太网链路聚合端口配置的方法和设备
CN101094157B (zh) * 2007-08-20 2011-09-21 中兴通讯股份有限公司 利用链路聚合实现网络互连的方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978379A (en) * 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US6687247B1 (en) * 1999-10-27 2004-02-03 Cisco Technology, Inc. Architecture for high speed class of service enabled linecard
US6977932B1 (en) * 2002-01-16 2005-12-20 Caspian Networks, Inc. System and method for network tunneling utilizing micro-flow state information
CA2428977C (en) * 2002-05-16 2010-08-10 Tundra Semiconductor Corporation Buffer management in packet switched fabric devices
US7525904B1 (en) * 2002-06-20 2009-04-28 Cisco Technology, Inc. Redundant packet routing and switching device and method
US7660316B2 (en) * 2002-07-02 2010-02-09 Emulex Design & Manufacturing Corporation Methods and apparatus for device access fairness in fibre channel arbitrated loop systems
GB2406742B (en) 2003-10-03 2006-03-22 3Com Corp Switching fabrics and control protocols for them
US20050289326A1 (en) * 2004-06-26 2005-12-29 Hong Kong University Of Science & Technology Packet processor with mild programmability

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032194A (en) * 1997-12-24 2000-02-29 Cisco Technology, Inc. Method and apparatus for rapidly reconfiguring computer networks
WO2000072531A1 (en) * 1999-05-24 2000-11-30 Broadcom Corporation Apparatus and method for distributing a load across a trunk group
CN101094157B (zh) * 2007-08-20 2011-09-21 中兴通讯股份有限公司 利用链路聚合实现网络互连的方法
CN101252532A (zh) * 2008-03-18 2008-08-27 华为技术有限公司 以太网链路聚合端口配置的方法和设备

Also Published As

Publication number Publication date
US8477791B2 (en) 2013-07-02
US20100290335A1 (en) 2010-11-18
CN101888307A (zh) 2010-11-17
EP2252016A1 (en) 2010-11-17
EP2252016B1 (en) 2018-11-21

Similar Documents

Publication Publication Date Title
CN101888333B (zh) 用于在网络元件的转发平面内保持端口状态表的方法和装置
CN101888330B (zh) 用于提供分组的快速重新路由的方法和装置
CN101888332B (zh) 用于提供快速重新路由的方法和转发数据单元
CN101888307B (zh) 用于本地实现端口选择的方法和装置
CN101888331B (zh) 用于提供单播分组的快速重新路由的方法和装置
CN102415054B (zh) 节点装置和通信方法
CN104011687B (zh) 用于网络环境中的服务器的无中断管理的系统和方法
CN1914867B (zh) 虚拟网络设备中的接口束
CN104247344B (zh) 用于拆分式体系结构中快速故障转移的控制器安排
CN101778003B (zh) 防止设备故障影响通信的系统和方法
CN104025513B (zh) 用于数据中心网络中的控制层级的装置和方法
US20070053283A1 (en) Correlation and consolidation of link events to facilitate updating of status of source-destination routes in a multi-path network
US20110016243A1 (en) Method and device of load-sharing in irf stack
CN105959217A (zh) 一种sdn移动自组网的数据处理方法及装置
CN103036787B (zh) 一种网络路由收敛处理方法和装置
CN103795570B (zh) 环形拓扑的堆叠交换机系统的单播报文恢复方法及装置
EP3213441B1 (en) Redundancy for port extender chains
CN105915467A (zh) 一种面向软件定义的数据中心网络流量均衡方法及装置
CN101945050B (zh) 一种基于胖树结构的动态容错方法和系统
CN101986727B (zh) 网络按需距离矢量多播路由协议的多路径改进方法和装置
US9866428B2 (en) Fabric switchover for systems with control plane and fabric plane on same board
CN103200092B (zh) 一种基于虚拟网络设备的路由进程管理方法和设备
WO2013166978A1 (zh) 多处理器系统的节点路由方法、控制器及多处理器系统
CN101510883B (zh) 一种sip消息传输的方法
CN102239669A (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