CN100594699C - 用于进行业务量生成的方法和装置 - Google Patents
用于进行业务量生成的方法和装置 Download PDFInfo
- Publication number
- CN100594699C CN100594699C CN200510132972A CN200510132972A CN100594699C CN 100594699 C CN100594699 C CN 100594699C CN 200510132972 A CN200510132972 A CN 200510132972A CN 200510132972 A CN200510132972 A CN 200510132972A CN 100594699 C CN100594699 C CN 100594699C
- Authority
- CN
- China
- Prior art keywords
- protocol data
- pdu
- switch
- priority
- team
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5628—Testing
Abstract
公开了一种数据通信网络中的交换机,用于除了标准的交换和路由选择操作之外还进行业务量生成。该交换机利用在常规交换机缓冲器中保持的固定数量的测试包,以产生一个或多个传输到受测路由器(RUT)的无限包流。该交换装置使包在优先级队列中入队,使包从优先级队列中出队,将出队的包传输到RUT,以及使出队的包的副本重新入队到它们从其中出队过的优先级队列中。入队的包和指向包的关联指针被组织到链表中。通过将每个出队的包的副本重写到链表的尾部并且更新指针,该交换机生成了可重复的测试包流。优先级缓冲器在没有重写操作的情况下还可被用于常规的出口业务量。
Description
技术领域
本发明涉及用于传输包以询问网络装置以及基于返回的包来评价其性能的技术。本发明尤其涉及这样的系统及方法,其用于利用交换机或路由器来生成和传输测试包到受测设备,同时将常规包传输到经过该系统可到达的其他节点。
背景技术
业务量生成器在数据通信网络中被用来将伪业务量传输到“受测装置”,一般是路由器或交换机。如果连接业务量生成器和受测装置以便形成一个或多个传输回路,则业务量生成器可从受测装置回收伪业务量,用于监视该装置的能力的目的,以模拟实际消息命令下恰当地分类、缓冲和转发数据业务量。然而,在现有技术中,部分是由于对于越来越高速度的处理器和存储器的需求,业务量生成器是具有高的每端口成本的专用装置,这例如是因为业务量生成器必须能够实现与受测路由器和交换机相同的传输速率。因此就有了在保持现代路由器和交换机的传输速率的同时降低业务量生成器的每端口成本的需要。
发明内容
本发明在一些实施例中的特征表现为这样的系统及方法,其能够使网络交换机或路由器除了标准的交换和路由选择操作之外且优选为与这些操作同时地进行业务量生成和监视。本发明使得网络切换装置配置于网络中,以便以减少的成本和更大的便利来探查和评价受测路由器(RUT)。一些实施例中的交换装置包括第一组至少一个优先级队列以及队列管理器。该队列管理器适于使包在优先级队列的每一个中入队、使包从该优先级队列中出队、以及使出队的包重新入队到它们从其中出队过的优先级队列中。优先级队列优选地是先入先出(FIFO)存储器,适于保持多个包以及与这些包的每一个相关联的指针。令这些指针指向队列中的后续包。因此队列的每一个是具有包在其中入队的尾部和包从其中出队的头部的链表。当优先级队列适于对指定用来探查RUT的测试包进行缓冲时,每个出队的包的副本在同一优先级队列的尾部处被重写,链表得以更新。同一类型的优先级缓冲器还可用来对常规的出口业务量进行缓冲和出队,只有出队的包被传输到RUT而不是重新入队。通过重复使测试包重新入队的过程,该交换装置能够利用在常规交换机缓冲器中保持的固定数量的测试包,来将无限的包流指引到RUT。
附图说明
本发明在附图的各图中通过实例和非限制性地来说明,在附图中:
图1是按照本发明第一实施例用于执行业务量生成和监视的网络的功能框图;
图2是按照本发明第一实施例适于进行业务量生成(TG)和监视操作的多层交换机的功能框图;
图3是按照本发明第一实施例用于缓冲常规包和测试包二者的队列管理器的功能框图;
图4是按照本发明第一实施例的链接列表的示意图,其包括用于以连续的循环输出测试包的多个链接列表(LL)指针;
图5是按照本发明第一实施例用于在多层交换机中实现业务量生成的入队控制器和出队控制器的功能框图;
图6是按照本发明第二实施例适于进行业务量生成和监视(TCM)操作的企业交换机的功能框图;
图7是按照本发明第二实施例用于进行业务量生成和监视(TGM)操作的TGM启动交换模块的功能框图;
图8是按照本发明第二实施例的方法的流程图,入队控制器通过该方法来缓冲针对给定优先级队列的测试包;以及
图9是按照本发明第二实施例的方法的流程图,出队控制器通过该方法来释放针对缓冲器的给定优先级队列的测试包。
具体实施方式
图1中图示了用于执行业务量生成和监视的网络的功能框图。该网络包括第一节点100,用于将一个或多个测试包传输到第二节点101,用于评价第二节点101的能力的目的,以便恰当地处理网络业务量。在优选实施例中,第一节点100是多层交换机,适于以测试包来询问第二节点101,然后在它们返回到第一节点100时评价该测试包。在此称为受测设备(EUT)的正在受到询问的第二节点一般在测试包被发送回到第一交换机100之前接收、分类和缓冲这些测试包。多层交换机100和EUT 101可以是可操作地耦接于例如在局域网(LAN)、广域网(WAN)、城域网(MAN)或因特网中具体化的数据通信网的多个节点以及其他可寻址实体中的两个。
多层交换机100优选地包括业务量生成器150,其适于产生一个或多个仿真包流,这些包流然后经由网络段170例如网络线缆从一个或多个本地端口102传输到EUT 101的端口。一旦收悉,EUT 101的网络处理器103一般进行用以将测试包传输到EUT 101的适当端口105所必需的切换和路由决策。如果业务量生成器150生成开放式系统互连(OSI)参考模型的第3层即网络层的包,这些包去往EUT 101的端口105之一,同时将这些包传输到EUT 101的不同端口105,则EUT通常对这些包进行分类、缓冲以及然后传输回到多层交换机100,它们在这里由业务量监视器160评价。交换机100然后可比较由业务量生成器150传输的测试包,以确定EUT 101是否表现得与适用协议和设计规范相一致。
按照优选实施例,与专用的业务量生成器/监视器相比较,多层交换机可适于作为具有显著减少的每端口成本的业务量生成器。特别地,单机交换机或企业交换机可适于一体化合并业务量生成器150和业务量监视器,由此利用交换机的高速处理资源,从而对于交换性能的破坏性影响(如果有的话)最小。
图2中示出了适于进行业务量生成(TG)和监视操作的多层交换机的功能框图。优选实施例的交换机100包括一个或多个网络接口模块(NIM)204、一个或多个交换控制器206、管理模块220、业务量生成器150和业务量监视器160,它们都协作用以经由外部端口102的每一个来接收入口数据业务量和发送出口数据业务量。出于此实施例的目的,从另一网络节点进入交换机100中的数据在此称为入口数据,其包括入口协议数据单元(PDU)。相对照地,内部传播到外部端口102用于传输到另一网络节点的数据被称为出口数据,其包括出口PDU。多个外部端口102的每一个是适于接收入口数据和发送出口数据的双工端口。
MM 204优选地包括一个或多个适于经由网络通信链路107来交换PDU例如以太网帧的物理层接口和介质访问控制(MAC)接口。借助于一个或多个入口数据总线205A将入口PDU从多个NIM 204运送到交换控制器206。类似地,经由一个或多个出口数据总线205B将出口PDU从交换控制器206传输到多个NIM 204。
管理模块220一般包括用于保持和实施业务量策略的策略管理器224。策略管理器224实施的策略优选地部分基于从源学习操作中导出的第2层和/或第3层寻址信息、从其他路由选择装置接收的路由信息、以及利用例如简单网络管理协议(SNMP)报文226经由配置管理器222由网络管理员上传的过滤规则。令从源学习、其他网络节点和管理员导出的业务量策略可用于路由选择引擎230并且由转发表254统一地代表。
除了业务量策略之外,管理模块还可用来将业务量生成和监视(TGM)指令传输到业务量生成器150以及传输来自业务量监视器160的TGM。
交换机100优选地包括至少一个交换控制器206,其能够但不限于进行如开放式系统互连(OSI)参考模型中定义的第2层(数据链路层)和第3层(网络层)交换操作。用于可操作地将外部端口102耦接至有线和/或无线通信链路的可能的第2层协议集包括Institute of Electrical andElectronics Engineers(IEEE)802.3和IEEE 802.11标准,而可能的第3层协议集包括Internet Engineering Task Force(IETF)Request forComment(RFC)791中定义的Internet Protocol(IP)第4版和IETF RFC1883中定义的IP第6版。
交换控制器206优选地包括路由选择引擎230、转发表254、队列管理器240以及业务量生成器150和业务量监视器160。路由选择引擎230又包括分类器232,其从数据总线205A接收入口PDU,检查PDU的一个或多个字段,利用内容可寻址存储器233将PDU分类成多个流中的一个,以及从高速存储器中保持的转发表254取回转发信息。从转发表254取回的转发信息优选地包括但不限于流标识符,该流标识符用来指定例如对于预备出口的特定PDU所必需的那些转发操作。
转发处理器234接收与转发信息相关联的入口PDU,以及在传输到适当的一个或多个出口端口之前执行一个或多个转发操作。例如,这些转发操作优选地包括但不限于用于重新封装数据的报头变换、用于将一个或多个VLAN标签附加到PDU的VLAN标签压入、用于从PDU去除一个或多个VLAN标签的VLAN标签弹出、用于保留网络资源的服务质量(QoS)、用于监视客户业务量的计费和账务、多协议标记切换(MPLS)管理、用于选择性地过滤PDU的认证、访问控制、包括地址解析协议(ARP)控制的高层学习、用于针对业务量分析来再产生和重定向PDU的端口镜像、源学习、用于确定向PDU分配交换机资源时依据的相对优先权的服务分类(CoS)、以及用于监管和业务量形成的色彩标记。
在转发处理器234之后,PDU被传递并存储于队列管理器240中,直至带宽可用来传输PDU到适当的出口端口。具体来说,出口PDU被缓冲于缓冲器242中多个优先级队列的一个或多个中,直至它们经由输出数据总线205B由调度器244传输到外部端口102。
按照优选实施例,TGM启动的交换机100还包括业务量生成器150和业务量监视器160。业务量生成器150适于仿真业务量流以评价另一网络节点的包处理操作。具体来说,优选实施例中的业务量生成器150适于生成与一个或多个不同流相关联的一个或多个测试PDU,这里称为TG-PDU。在优选实施例中,TG-PDU按照网络管理员提供的标准由业务量生成器150生成。TG-PDU流一般以特定的源地址和目标地址为特征,尽管TG-PDU可能浸染有在EUT 101处受测的一个或多个其他的包属性。TG-PDU例如可具有源和目标地址、协议类型、包括802.1Q标签的一个或多个VLAN标签、包括802.1p优先级的优先级和服务质量(QoS)标志符的任何组合。
TG-PDU优选地具有与来自路由选择引擎230的常规交换PDU相同的交换机内格式。在优选实施例中,传输到队列管理器240的常规PDU以及由此得到的TG-PDU包括在交换机100内部使用的包描述符,用以在处理实体之间传送处理指令。包描述符优选地例如包括队列标识符(QID),其用以指定待缓冲相关联的PDU或TG-PDU的缓冲器242的一个或多个优先级队列。包描述符还可包括TG标记,队列管理器240利用其将真正的业务量流与仿真的业务量流区分开。
虽然业务量生成器150还可动态地实时生成TG-PDU,但是一些实施例中的业务量生成器150适于将一个或多个预生成的TG-PDU序列存储到业务量生成器数据库(TGDB)252中。保持于TGDB252中的预生成的TG-PDU序列,也称为TG流,然后根据需要被取回并传输到队列管理器240。具体来说,TG-PDU258被注入到来自路由选择引擎230的数据流238以及作为输入提供到队列管理器240的出口包和测试包的汇合中。一旦收悉,队列管理器240在服务于常规入口包流的其他优先级队列之中的专用优先级队列(也称为虚拟输出队列(VOQ))中缓冲TG-PDU。TG-PDU入队于其中的每个VOQ的出口端口,并且最大传输速率优选地在与每个虚拟输出队列相关联的QoS特征文件中被说明。因此交换机100适于在进行TGM操作的同时进行标准的业务量转发操作,而不干扰经过交换机100传播的常规PDU。
在一些实施例中,交换机100还包括业务量监视器160,其适于检查传输到EUT 101和从EUT 101返回的TG-PDU。通过将传输到EUT101的TG-PDU与返回的TG-PDU做比较,业务量监视器160导出并编辑足以用来评价EUT 101性能度量的统计。性能度量优选地包括从EUT101接收的TG-PDU的数量、由EUT 101恰当地修改过的TG-PDU的数量、以及未由EUT 101恰当地修改过的那些TG-PDU所具有的问题性质。
图3中图示了用于缓冲常规PDU和测试PDU二者的队列管理器的功能框图。包括来自路由选择引擎230的常规PDU和来自业务量生成器150的TG-PDU的汇合PDU310被传输到缓冲器242,这些包在多个优先级队列302之一中被入队。在优选实施例中,每个PDU310与包含QID的包描述符一起被传输,该QID指定该PDU将被缓冲到的特定优先级队列302。例如,取代包描述符,与PDU相关联的QID可经由分离的信令通道传送到缓冲器242。
每个单独的优先级队列302适于保持多个PDU,这些PDU随后由调度器244朝着指定的出口端口102传输。调度器244优选地按照各种时分复用算法中的一种来使PDU从多个优先级队列302中出队,上述算法被用来有效地利用交换结构带宽,同时优化将带宽的少量部分分配给队列302时的公平度。严格优先级、加权公平排队(WFQ)和轮询是本领域的普通技术人员所公知的若干排队方案,本发明可利用它们来实施。对于调度器244,可将TG-PDU与来自路由选择引擎230的常规PDU区分开,因此按照缓冲它们的队列的优先级和传输速率来传输。
在优选实施例中,多个优先级队列302根据出口端口和服务类别来组织。优先级队列302的第一组304例如与交换机100的单独外部端口102相关联,包括与四个不同服务类别相关联的四个优先级队列302。例如,单独的优先级队列302可以是先入先出(FIFO)缓冲器,或者是随机存取存储器(RAM)中保持的队列,其中它们通过队列管理软件来服务。
在优选实施例中,选择用来缓冲测试PDU的缓冲器242内的多个优先级队列中的每个队列302仅存储TG-PDU。然而,剩余的优先级队列302继续缓冲来自路由选择引擎230的常规PDU,包括寻址到经过交换机100可到达的其他节点的第2层帧和第3层包。选择用来缓冲非测试PDU的优先级队列在此称为常规优先级队列,而用于TG-PDU的优先级队列在此称为TG优先级队列。与常规PDU相关联的或者用于TG-PDU的优先级队列302的数量是随着出口端口、与每个优先级队列相关联的优先级、TG-PDU流的数量、TG-PDU的帧格式和长度、以及TG优先级队列的传输速率而可编程地变化着的。
常规优先级队列和TG优先级队列二者借助于指向缓冲器中的存储器单元的队列指针而入队到缓冲器242和从该缓冲器出队。这些指针被分配用来临时存储PDU,以及稍后在新数据被接收时被重新分配。在缓冲之前将指针分配给PDU是由入队控制器320管理的,这些指针在PDU出队之后的捕获或返回是由出队控制器322管理的。入队控制器320将指针分配给传输到队列管理器240的每个PDU,相关联的PDU在由队列指针指示的存储器地址处被存储于缓冲器242中。如下更为具体描述的,优选实施例中的入队控制器320还适于生成链表,其用于以连续的循环输出每个TG优先级队列。
如图4中所示,链表400包括多个元素,每个元素包括TG包栏410中描绘的TG-PDU和关联链表(LL)指针栏420中描绘的关联LL指针。链表400的每个元素被保持于缓冲存储器中,其开始于地址栏430中描绘的存储器地址处。一般来说,给定元素的LL指针420具有该链表中的下一元素的存储器地址430的值。例如,头部LL指针“POINTER_0422”指向开始于第二存储器地址“ADDR_1 432”处的第二TG-PDU“PACKET_1 412”。因此链表400是节点链,其每个后续节点是先前节点的子节点。然而,按照优选实施例,最后元素的最后的LL指针“POINTER_N 424”具有与链表400中的第一元素相关联的第一存储器地址“ADDR_0 434”的值,因此指向头部TG-PDU“PACKET_0”。
图5中图示了用于在多层交换机中实现业务量生成的入队控制器和出队控制器的功能框图。入队控制器320和出队控制器322被图示为与单个优先级队列502相互协作,该队列是缓冲器242的多个优先级队列302之一。该优先级队列502包括多个存储器单元,PDU被存储到它们中和从它们取回。指针指向每个PDU,每个指针由队列管理器240跟踪。
在优选实施例中,队列控制器320包括指针分配模块510和自由指针模块512。如果优先级队列502配置为TG优先级队列,则入队控制器320还包括与优先级队列502相关联的链表400。指针分配模块510适于在相应的优先级队列502中接收PDU 530和使它们入队,PDU530包括常规PDU和TG-PDU。指针分配模块510包括写指针540,其指向所接收的PDU 530被写到的缓冲器存储器地址。写指针540被设为等于优先级队列502中可用的缓冲器存储器单元的地址。下一缓冲器存储器单元的地址是从维护指针的记录的自由指针模块512取回的,这些指针指向在PDU被调度器244释放时变得可用的存储器单元。
如果优先级队列502是TG优先级队列且PDU 512是TG-PDU,则入队控制器320利用来自业务量生成器150的TG-PDU来构造链表400。在这样做时,指向TG-PDU 502E的指针被分配给用于链表400中的先前元素的LL指针,即与TG-PDU 502D相关联的LL指针。如果TG-PDU502E是正在由业务量生成器150下载到优先级队列502的一连串PDU502A-502D的末尾,则令用于末尾TG-PDU 502E的指针字段420指向与第一PDU 502A相关联的存储器地址,由此以闭合循环的形式来完成链表400的组装。
优选实施例中的出队控制器322包括TG模式多路复用器516、指针丢弃518和LL指针(LLP)读取器520。出队控制器生成指向优先级队列502的读指针542,在带宽变得可用时从该队列读出PDU并释放该PDU到调度器244。在优选实施例中,从中读取PDU的优先级队列502通过由调度器244提供的VOQ标识符来标识。当PDU被释放时,出队控制器322基于优先级队列的类型来确定是否丢弃该指针。具体来说,TG模式多路复用器516根据队列502是常规优先级队列还是TG优先级队列来进行不同的响应。在常规优先级队列的情况下,新释放的PDU502A的指针534被返回到指针丢弃518。在TG优先级队列的情况下,新释放的PDU 502A的指针534经由LLP读取器520被重新排队到同一指针队列的尾部。
例如,如果PDU502A被释放到调度器244,则与PDU 502A相关联的指针534由出队控制器322捕获。如果PDU 502A是常规PDU,则TG模式多路复用器516将指针传递到指针丢弃模块518。指针丢弃模块518适于接收和临时存储新释放的指针,从而它们可返回到由入队控制器320维护的可用指针列表。具体来说,新释放的指针被返回到由自由指针模块510维护的可用指针列表,到来的PDU在它们指向的存储器地址处被存储于缓冲器242中。
如果队列502是TG优先级队列,则LLP读取器520顺序地从链表400取回LL指针以服务于优先级队列502。在一个实施例中,多路复用器516将读指针534的值传递到LLP读取器520,该读取器利用当前LL指针来查询链表400以取回下一LL指针。也就是,用于TG-PDU502A的LL指针被用来从链表400取回指向TG-PDU 502B的LL指针。LLP读取器520不将指针返回到入队控制器320或指针丢弃518,由此防止了TG-PDU 502A在缓冲器242中被重写。
当带宽可用并且从调度器接收到与链表相关联的VOQ标识符时,出队控制器322取回并分派下一包TG-PDU 502B到调度器244。对于特定的链表,每个TG-PDU以相似的方式来释放,直至末尾的TG-PDU502E被取回,这时LLP读取器520取回了指向链表400的第一TG-pDU502A的LL指针。以此方式,将TG优先级队列502中保持的TG-PDU502A-502E作为测试流持续地提供到EUT 101,只要队列管理器240被启动。
尽管链表400在图5中被示意性地图示为与优先级队列502相分开和相远离,但是本领域的普通技术人员将理解,链表400可集成到优先级队列502。也就是,链表400的LL指针420可在缓冲器242中与PDU数据相连续地来存储。以此方式,指向下一TG-PDU的LL指针可与正传输到调度器244的当前TG-PDU同时或并发地从缓冲器242取回。
调度器244按照优先级方案和可用带宽来使缓冲器242的每个常规优先级队列的多个PDU以及一个或多个TG优先级队列的多个测试包出队。优选实施例中的交换机100适于支持与2048一样多的优先级队列,包括常规优先级队列和TG优先级队列二者,它们的每一个可选择性地指引到交换机100的多个外部端口的任一个。
图6中图示了适于进行业务量生成和监视(TGM)操作的企业交换机的功能框图。企业交换机600优选地包括多个交换机模块610-613,有时称它们为刀片(blade),其设置于背板652内的插槽中。交换模块610-613的每一个包括一个或多个外部端口102,每个外部端口经由通信链路(未示出)可操作地耦接于数据通信网中的另一节点。在企业交换机600之内,一个或多个端口102的每一个经由交换结构650可操作地耦接于每一其他交换模块610-613的端口102。
交换模块610-613优选地包括至少一个交换控制器606,其能够但不限于至少进行开放式系统互连(OSI)网络模型中定义的第2层(数据链路层)和第3层(网络层)的交换操作。
出于此实施例的目的,朝着结构650从外部端口102流入交换模块610-613的PDU在此被称为入口PDU。入口PDU传播时经过的交换模块被称为入口交换模块。相对照地,从结构650离开流向外部端口102的PDU被称为出口PDU。出口PDU传播时经过的交换模块被称为出口交换模块。出于不同流的目的,优选实施例的多个交换模块的每一个都可用作为入口交换模块和出口交换模块二者。
企业交换机600还包括中央命令处理器(CMM)660,用于管理和协调各种系统资源,包括上面具体讨论过的TGM统计。尽管本领域的技术人员将理解,由CMM进行的功能可通过并入背板652中的一个或多个实体和/或分离的管理模块来执行,但是在优选实施例中,CMM 660在多个交换模块610-613之一中被具体实现。
图7中图示了用于进行业务量生成和监视(TGM)操作的TGM启动交换模块的功能框图。与交换模块610-613相一致,优选实施例的交换模块700包括一个或多个网络接口模块(NIM)204、一个或多个交换控制器706、管理模块220和结构接口模块708。与第一实施例类似,每个NIM 204可操作地耦接于一个或多个外部端口102,用于接收入口数据业务量和发送出口数据业务量的目的。将入口PDU借助于一个或多个内部高速串行数据总线705运送到交换控制器706。与第一实施例类似,交换控制器706优选地对入口PDU分类、进行对于入口处的执行而分配的任何必需的转发操作、以及使PDU入队直至带宽可用以经由交换结构650将PDU传输到适当的一个或多个出口刀片。
关于出口操作,交换模块700还适于经由结构接口模块708从交换结构650接收出口PDU,并且使那些PDU在缓冲器742中入队。交换模块700的交换控制器706在出口处可在PDU之前进行一个或多个附加的转发操作,以及在传输到恰当的NIM204和相应的出口端口102之前缓冲出口PDU。
与上述第一实施例中一样,管理模块220优选地包括策略管理器224,用于保持和实施由网络管理员经由配置管理器222上传到交换模块700的业务量策略。第二实施例中的配置管理器222适于将测试PDU标准从CMM 660传输到业务量生成器250以及将由业务量监视器760编辑的TG统计返回到可对EUT 101的性能进行评价的CMM 660。
第二优选实施例的交换控制器706适于利用如OSI网络参考模型中定义的与第2层至第7层相关联的PDU属性,来进行第2层交换操作和第3层路由选择操作。交换控制器706优选地包括路由选择引擎730、转发表254、队列管理器740以及业务量生成器250和业务量监视器760。与第一实施例一样,路由选择引擎730包括将PDU分类成多个流之一的分类器232以及转发处理器234,该转发处理器用来执行将PDU传输到交换模块610-613的恰当外部端口所必需的一个或多个转发操作。
除了上述入口处理之外,路由选择引擎730还处理从交换机结构650接收的出口业务量。具体来说,路由选择引擎730还包括出口处理器736,用于将从交换结构650接收的出口PDU传输到NIM 204之中的指定出口端口102。
在由转发处理器234接收之后,入口PDU然后从转发处理器234传递到队列管理器740,在这里它们将在经由结构接口模块708由调度器244传输到交换结构650之前被临时缓冲742。与第一实施例类似,队列管理器740包括缓冲器742,适于产生一个或多个链表400,链表用来经由调度器244在出口端口的方向上重复地发送测试包。队列管理器740与第一实施例的队列管理器240的不同在于,它还可缓冲从交换结构650接收的出口业务量并选择路由到本地出口端口。
与第一实施例中一样,TGM启动的交换模块700还包括业务量生成器250和TGDB252,用于在企业交换机600以及其他网络节点之内仿真业务量流以及测试交换和路由选择操作。交换模块700还包括业务量监视器760,用于编辑TG统计,CMM 660利用该TG统计来确定EUT101是否能够恰当地进行交换和路由选择操作。
本领域的技术人员将理解,由于企业交换机中的处理的分布式特性,交换模块700以及企业交换机600的其他交换模块610-613的业务量生成器250和业务量监视器260可经过CMM 660来协调。具体来说,根据网络拓扑,由模块700的业务量生成器250产生的测试包可被传输到EUT 101以及在不同交换模块的端口上被收回。同样地,分析公共流的业务量生成器和监视器可在不同刀片之间被划分。因此CMM 660负责指示一个交换模块的业务量生成器250生成至少一个TG-PDU流,以及负责分析从一个或多个交换模块610-613的每一个的业务量监视器收集的TG统计,其中已修改的测试PDU可从上述交换模块被接收到。
图8中示出了方法,入队控制器通过该方法来缓冲用于给定优先级队列的测试包。一旦在入队控制器320处从业务量生成器150收悉了PDU(步骤802),则指针分配模块510在从自由指针模块取回的指针所给定的可用存储器位置处使PDU在缓冲器242中入队(步骤804)。如果缓冲的PDU是常规PDU,即非TG-PDU,则PDU类型查询(步骤806)被回答是否定的,入队控制器320对于下一PDU重复这些接收(步骤802)和入队(步骤804)的步骤。
如果缓冲的PDU是TG-PDU,则PDU类型查询(步骤806)被回答是肯定的,入队控制器320继续构造与特定优先级队列502相关联的链表。在构建链表的过程中,入队控制器320使TG-PDU与链表中的在先条目相关联(步骤808)。具体来说,先前条目的LL指针被分配有当前TG-PDU所入队到的缓冲器存储器地址(步骤804),由此使得链表中的先前节点指向当前节点。除非PDU是链表最后的TG-PDU,否则入队控制器320继续接收下一PDU(步骤802)并使下一PDU入队(步骤804)。如果入队的PDU(步骤804)是链表最后的TG-PDU,则最后的TG-PDU确定步骤(步骤810)被回答是肯定的,入队控制器320通过将用于最后的TG-PDU的LL指针设置为等于链表中的第一PDU的缓冲器存储器地址,来使TG-PDU与链表中的第一节点相关联(步骤812)。
如果优先级队列是常规优先级队列,则接收和使PDU入队的过程被不确定地重复,只要PDU是以充分的速率来出队的。然而,在TG优先级队列的情况下,链表的构造是在对于特定的TG优先级队列从业务量生成器150收悉所有TG-PDU之时被终止的,然后继而是测试包到EUT 101的重复传输。
图9中示出了方法,出队控制器通过该方法来释放用于缓冲器的给定优先级队列的测试包。如果给定优先级队列502是TG优先级队列,则优先级队列类型查询(步骤902)被回答是肯定的,出队控制器322继续从缓冲器242释放TG-PDU。在稳定的状态下,控制器322取出与先前出队的TG-PDU相关的LL指针(步骤904),其被用来使当前TG-PDU从缓冲器242出队(步骤906)。在将TG-PDU释放到调度器244的过程中(步骤908),出队控制器322通过将下一LL指针取回前进到下一TG-PDU(步骤904)。释放的TG-PDU的LL指针被有效地返回到从其中选择出它的同一队列的尾部。由于链表中的最后条目包括指向链表的头部处的TG-PDU的指针,所以TG-PDU以连续的循环从链表中重复地取回,测试数据流到EUT 101,只要启动TG优先级队列。
如果给定的优先级队列是常规优先级队列,则优先级队列类型查询(步骤902)被回答是否定的,出队控制器322继续从缓冲器242释放PDU。例如,控制器322通过查阅读指针列表或者简单地递增先前指针,来取回指向下一PDU(步骤910)。然后,令读指针所指示的缓冲器存储器地址处的PDU出队(步骤912)并释放到调度器244(步骤914)。与TG优先级队列相对照,与释放的PDU相关联的指针被返回到入队控制器320的自由指针列表512,从而新PDU可被写到相关联的存储器单元(步骤916)。
尽管上述使TG优先级队列出队的方法采用了无限循环形式的预定链表,其中最后的LL指针被指引到链表的第一元素,但是一些实施例中的入队控制器包括先入先出(FIFO)存储器,其中缓冲有TG-PDU和LL指针。除了缓冲器的最后元素之外,每个元素包括指向后续TG-PDU的LL指针。然而,尾部处的LL指针临时未定义,并不指向TG优先级队列的头部。当队列头部处的第一TG-PDU出队时,出队控制器同时地重新请求TG优先级队列的尾部处的第一TG-PDU。在该过程中,现在是FIFO的新尾部的原始头部TG-PDU被链接到在先元素,即FIFO的原始尾部。出队控制器重复这些使得TG-PDU出队、使得它们在FIFO的尾部处重新入队、以及将重新入队的TG-PDU链接到在先LL指针的步骤。以此方式,TGM启动的交换机或交换模块适于重复地使整个TG优先级队列出队并且表现得好似无限循环。正如本领域的普通技术人员将理解的,通过在任何时候将PDU的源从出队的PDU变为出口PDU,FIFO存储器可从TG优先级队列转换为常规优先级队列,反之亦然。
尽管上面的描述包含了许多规范,但是它们不应当理解为限制本发明的范围,而是仅提供本发明的一些当前优选实施例的说明。
因此,本发明已经通过实例并且非限制性地加以揭示,应当参照所附权利要求书来确定本发明的范围。
Claims (11)
1.一种在包括受测设备的网络之内的数据通信交换装置中进行业务量生成的方法,包括:
接收第一多个协议数据单元,所述协议数据单元寻址到经过所述交换装置可到达的一个或多个目标节点;
预备所述第一多个协议数据单元用于转发到一个或多个目标节点;
在业务量生成器处生成第二多个测试协议数据单元;
使所述第一多个协议数据单元和第二多个测试协议数据单元在多个优先级队列中入队;
使所述第二多个测试协议数据单元与链表相关联;以及
使所述第二多个测试协议数据单元从所述多个优先级队列中出队。
2.根据权利要求1的进行业务量生成的方法,其中所述第二多个测试协议数据单元与至少一个链表相关联,利用所述至少一个链表使所述第二多个测试协议数据单元从所述多个优先级队列中出队。
3.根据权利要求2的进行业务量生成的方法,其中所述第一多个协议数据单元与指向所述多个优先级队列的第一组指针相关联,所述第二多个测试协议数据单元与指向所述多个优先级队列的第二组指针相关联。
4.根据权利要求3的进行业务量生成的方法,其中所述使所述第二多个测试协议数据单元从所述优先级队列中出队的步骤包括步骤:
释放所述第二多个测试协议数据单元之一用于传输到所述受测设备;以及
取回指向待释放的下一测试协议数据单元的链表指针,其中所述链表指针是利用所述链表从所述第二组指针中选择的。
5.根据权利要求3的进行业务量生成的方法,其中所述方法还包括步骤:
使所述第一多个协议数据单元从所述多个优先级队列中出队;以及
使所述第一多个协议数据单元与所述第一组指针去关联。
6.一种用于在包括受测设备的数据通信网络中进行业务量生成的数据通信交换装置,所述交换装置包括:
业务量生成器,用于生成第二多个测试协议数据单元;
第一组至少一个优先级队列;以及
队列管理器,适于:
使第一多个协议数据单元和第二多个测试协议数据单元在所述至少一个优先级队列中入队;
选择性地使所述第二多个测试协议数据单元与至少一个链表相关联;
使用所述至少一个链表,使所述第二多个测试协议数据单元从所述至少一个优先级队列中重复地出队。
7.根据权利要求6的交换装置,其中所述至少一个优先级队列的每一个包括链表,每个链表包括多个指针,每个指针与所述多个入队的协议数据单元之一相关联。
8.根据权利要求6的交换装置,其中所述至少一个优先级队列是先入先出存储器。
9.根据权利要求6的交换装置,其中所述交换装置是多层交换机,适于按照开放式系统互连参考模型的第1层和第2层来进行交换和路由选择操作。
10.根据权利要求9的交换装置,其中所述交换装置还包括用于缓冲一个或多个出口协议数据单元的第二组至少一个优先级队列。
11.根据权利要求6的交换装置,还包括:
调度器,适于使所述第一多个协议数据单元和所述第二多个测试协议数据单元从所述至少一个优先级队列中出队,其中所述调度器使用从包括严格优先级、轮询和加权公平排队的群组中选择的带宽分配方案来使所述第一多个协议数据单元和所述第二多个测试协议数据单元出队。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/027,873 US7751421B2 (en) | 2004-12-29 | 2004-12-29 | Traffic generator and monitor |
US11/027,873 | 2004-12-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1798103A CN1798103A (zh) | 2006-07-05 |
CN100594699C true CN100594699C (zh) | 2010-03-17 |
Family
ID=35709351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510132972A Expired - Fee Related CN100594699C (zh) | 2004-12-29 | 2005-12-29 | 用于进行业务量生成的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7751421B2 (zh) |
EP (1) | EP1677454B1 (zh) |
CN (1) | CN100594699C (zh) |
AT (1) | ATE394847T1 (zh) |
DE (1) | DE602005006516D1 (zh) |
WO (1) | WO2006071537A1 (zh) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI253566B (en) * | 2004-12-23 | 2006-04-21 | Accton Technology Corp | Setting method to increase the throughput |
US7606147B2 (en) * | 2005-04-13 | 2009-10-20 | Zeugma Systems Inc. | Application aware traffic shaping service node positioned between the access and core networks |
US7719966B2 (en) * | 2005-04-13 | 2010-05-18 | Zeugma Systems Inc. | Network element architecture for deep packet inspection |
JP4672448B2 (ja) * | 2005-06-09 | 2011-04-20 | 富士通株式会社 | 全二重・半二重不整合検出方法及び,この方法を適用する全二重・半二重不整合検出装置 |
US7606234B2 (en) * | 2005-06-14 | 2009-10-20 | Microsoft Corporation | Multi-stream acknowledgement scheduling |
US7719995B2 (en) * | 2005-09-09 | 2010-05-18 | Zeugma Systems Inc. | Application driven fast unicast flow replication |
US7733891B2 (en) * | 2005-09-12 | 2010-06-08 | Zeugma Systems Inc. | Methods and apparatus to support dynamic allocation of traffic management resources in a network element |
US7508764B2 (en) * | 2005-09-12 | 2009-03-24 | Zeugma Systems Inc. | Packet flow bifurcation and analysis |
US7843832B2 (en) * | 2005-12-08 | 2010-11-30 | Electronics And Telecommunications Research Institute | Dynamic bandwidth allocation apparatus and method |
US20070211640A1 (en) * | 2006-03-10 | 2007-09-13 | Mcdata Corporation | Switch testing in a communications network |
US7961612B2 (en) * | 2006-12-04 | 2011-06-14 | International Business Machines Corporation | Limiting transmission rate of data |
US7773510B2 (en) * | 2007-05-25 | 2010-08-10 | Zeugma Systems Inc. | Application routing in a distributed compute environment |
US20080298230A1 (en) * | 2007-05-30 | 2008-12-04 | Luft Siegfried J | Scheduling of workloads in a distributed compute environment |
US7706291B2 (en) * | 2007-08-01 | 2010-04-27 | Zeugma Systems Inc. | Monitoring quality of experience on a per subscriber, per session basis |
US8374102B2 (en) * | 2007-10-02 | 2013-02-12 | Tellabs Communications Canada, Ltd. | Intelligent collection and management of flow statistics |
EP2313992A4 (en) * | 2008-08-15 | 2014-09-17 | Unwired Planet Internat Ltd | RELATIVE TIME DISTRIBUTION FOR NETWORK CODING |
US8239567B1 (en) * | 2008-09-09 | 2012-08-07 | Marvell International Ltd. | Filtering superfluous data fragments on a computer network |
US20100110906A1 (en) * | 2008-10-30 | 2010-05-06 | Corrigent Systems Ltd | Efficient full mesh load testing of network elements |
CN101729420B (zh) * | 2009-12-15 | 2012-11-14 | 杭州迪普科技有限公司 | 一种数据处理方法及装置 |
US8477619B2 (en) * | 2010-09-10 | 2013-07-02 | Fujitsu Limited | Method and system for distributed virtual traffic management |
CN101986749B (zh) * | 2010-11-02 | 2014-04-30 | 中兴通讯股份有限公司 | WiMAX中基于媒体包的下行调度方法及装置 |
KR20120064576A (ko) * | 2010-12-09 | 2012-06-19 | 한국전자통신연구원 | 비대칭 스토리지 시스템에서 연속적인 읽기/쓰기를 제공하기 위한 장치 및 그 방법 |
US8520534B2 (en) * | 2011-03-03 | 2013-08-27 | Alcatel Lucent | In-service throughput testing in distributed router/switch architectures |
WO2012133290A1 (ja) * | 2011-03-31 | 2012-10-04 | 日本電気株式会社 | コンピュータシステム、及び通信方法 |
TW201244420A (en) * | 2011-04-19 | 2012-11-01 | Askey Computer Corp | Testing system |
JP5843397B2 (ja) * | 2012-07-20 | 2016-01-13 | 富士通テレコムネットワークス株式会社 | 通信装置 |
US9374320B2 (en) * | 2012-07-27 | 2016-06-21 | Cisco Technology, Inc. | Investigating the integrity of forwarding paths within a packet switching device |
JP5725567B2 (ja) * | 2012-10-30 | 2015-05-27 | Necプラットフォームズ株式会社 | 通信装置及びポート検査方法 |
US20140133305A1 (en) * | 2012-11-15 | 2014-05-15 | Fujitsu Network Communications, Inc. | Test Packet Injection System |
US20150029871A1 (en) * | 2013-07-24 | 2015-01-29 | Cisco Technology, Inc. | Service level agreement validation via service traffic sample-and-replay |
CN103746884B (zh) * | 2014-01-15 | 2017-07-14 | 加弘科技咨询(上海)有限公司 | 一种利用交换机进行流量测试的方法及系统 |
CN104158769B (zh) * | 2014-09-04 | 2017-03-29 | 北京邮电大学 | 基于硬件的交换系统公平性轮转输出的调度方法 |
US10250464B2 (en) * | 2014-10-15 | 2019-04-02 | Accedian Networks Inc. | Area efficient traffic generator |
US10621075B2 (en) * | 2014-12-30 | 2020-04-14 | Spirent Communications, Inc. | Performance testing of a network segment between test appliances |
JP6514017B2 (ja) * | 2015-04-16 | 2019-05-15 | Necプラットフォームズ株式会社 | ネットワーク監視装置、方法およびプログラム |
US10153962B2 (en) | 2016-06-20 | 2018-12-11 | Mellanox Technologies Tlv Ltd. | Generating high-speed test traffic in a network switch |
US10958616B2 (en) | 2016-07-12 | 2021-03-23 | Keysight Technologies Singapore (Sales) Pte. Ltd. | Methods, systems, and computer readable media for network test configuration using virtual local area network (VLAN) scanning |
US10623296B2 (en) | 2016-11-28 | 2020-04-14 | Mellanox Technologies Tlv Ltd. | Network switch operating as packet generator |
US11300936B2 (en) * | 2019-03-26 | 2022-04-12 | Lenovo (Singapore) Pte. Ltd. | Extracting EtherCAT datagrams from an EtherCAT frame |
US10938706B1 (en) * | 2019-09-18 | 2021-03-02 | Cisco Technology, Inc. | Systems and methods for providing traffic generation on network devices |
US11063858B2 (en) * | 2019-11-27 | 2021-07-13 | Charter Communications Operating, Llc | Systems and methods for testing a router device |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2892180B2 (ja) | 1991-04-30 | 1999-05-17 | 富士通株式会社 | Atmクロスコネクト装置の監視方式 |
ES2164061T3 (es) * | 1993-04-29 | 2002-02-16 | Cit Alcatel | Generador de trafico. |
DE4442532A1 (de) * | 1994-11-30 | 1996-06-05 | Sel Alcatel Ag | Verfahren zur Erzeugung eines Zufallselements sowie Verfahren zur Verkehrsmischung, Zufallselement-Generator und Systemkomponente damit |
JP2814993B2 (ja) * | 1996-06-28 | 1998-10-27 | 日本電気株式会社 | Atmセル導通試験方式 |
US5889779A (en) * | 1996-12-02 | 1999-03-30 | Rockwell Science Center | Scheduler utilizing dynamic schedule table |
JPH1168849A (ja) * | 1997-08-12 | 1999-03-09 | Kokusai Denshin Denwa Co Ltd <Kdd> | トラヒックジェネレータおよびトラヒック生成関数決定方法 |
US6157955A (en) * | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
US6424659B2 (en) * | 1998-07-17 | 2002-07-23 | Network Equipment Technologies, Inc. | Multi-layer switching apparatus and method |
JP2002101128A (ja) * | 2000-09-26 | 2002-04-05 | Kddi Corp | トラヒック生成装置 |
US6988177B2 (en) * | 2000-10-03 | 2006-01-17 | Broadcom Corporation | Switch memory management using a linked list structure |
US6775804B1 (en) * | 2000-11-28 | 2004-08-10 | Nortel Networks Limited | Determining integrity of a packet |
US7760737B2 (en) * | 2000-11-30 | 2010-07-20 | Audiocodes, Inc. | Method for reordering and reassembling data packets in a network |
US7023840B2 (en) * | 2001-02-17 | 2006-04-04 | Alcatel | Multiserver scheduling system and method for a fast switching element |
US6950405B2 (en) * | 2001-07-16 | 2005-09-27 | Agilent Technologies, Inc. | Traffic stream generator having a non-consecutive addressing mechanism |
US7269179B2 (en) * | 2001-12-18 | 2007-09-11 | Intel Corporation | Control mechanisms for enqueue and dequeue operations in a pipelined network processor |
US6754795B2 (en) * | 2001-12-21 | 2004-06-22 | Agere Systems Inc. | Methods and apparatus for forming linked list queue using chunk-based structure |
US7035273B1 (en) * | 2002-02-06 | 2006-04-25 | Marvell International Ltd. | Quality of service queueing system for a network switch |
JP3896879B2 (ja) * | 2002-03-22 | 2007-03-22 | 日本電気株式会社 | トラヒック監視システム |
TWI245518B (en) * | 2002-11-15 | 2005-12-11 | Hon Hai Prec Ind Co Ltd | Traffic generator switch |
US6693578B1 (en) * | 2003-03-18 | 2004-02-17 | Beltronics Usa, Inc. | Mixer optimization for active radar warning receiver |
US20040252711A1 (en) * | 2003-06-11 | 2004-12-16 | David Romano | Protocol data unit queues |
US7555579B2 (en) * | 2004-05-21 | 2009-06-30 | Nortel Networks Limited | Implementing FIFOs in shared memory using linked lists and interleaved linked lists |
US7583664B2 (en) * | 2004-12-28 | 2009-09-01 | Michael Ho | Techniques for transmitting and receiving traffic over advanced switching compatible switch fabrics |
-
2004
- 2004-12-29 US US11/027,873 patent/US7751421B2/en not_active Expired - Fee Related
-
2005
- 2005-12-14 WO PCT/US2005/045299 patent/WO2006071537A1/en active Application Filing
- 2005-12-19 AT AT05027717T patent/ATE394847T1/de not_active IP Right Cessation
- 2005-12-19 DE DE602005006516T patent/DE602005006516D1/de active Active
- 2005-12-19 EP EP05027717A patent/EP1677454B1/en not_active Not-in-force
- 2005-12-29 CN CN200510132972A patent/CN100594699C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
ATE394847T1 (de) | 2008-05-15 |
US7751421B2 (en) | 2010-07-06 |
EP1677454A1 (en) | 2006-07-05 |
WO2006071537A1 (en) | 2006-07-06 |
DE602005006516D1 (de) | 2008-06-19 |
US20060140128A1 (en) | 2006-06-29 |
EP1677454B1 (en) | 2008-05-07 |
CN1798103A (zh) | 2006-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100594699C (zh) | 用于进行业务量生成的方法和装置 | |
CN109743340B (zh) | 报文处理的方法和网络装置 | |
US8520529B2 (en) | Reordering network traffic | |
KR100823785B1 (ko) | 시스템 패브릭에서의 개방 루프 정체 제어를 위한 방법,장치, 제품 및 시스템 | |
US8576713B2 (en) | Traffic generator with priority flow control | |
US7433307B2 (en) | Flow control in a network environment | |
CN108833299B (zh) | 一种基于可重构交换芯片架构的大规模网络数据处理方法 | |
US6683885B1 (en) | Network relaying apparatus and network relaying method | |
US9088520B2 (en) | Network impairment unit for concurrent delay and packet queue impairments | |
US20160255019A1 (en) | Methods and apparatus related to a distributed switch fabric | |
US8964553B2 (en) | Network impairment unit with bandwidth-constrained packet duplication | |
CN103916326B (zh) | 用于数据中心的系统、方法以及设备 | |
CA2379594A1 (en) | Label distribution protocol supporting multiple classes of service in a multi protocol label switching (mpls) network, methods and mpls network using thereof | |
CN102769565A (zh) | 基于流持续时间的用于网络中路径选择的方法和装置 | |
CN101729402A (zh) | 流相容的动态负荷平衡 | |
CN106161275A (zh) | 针对服务质量的预测出口分组分类 | |
EP1766876A4 (en) | TECHNOLOGY FOR TRANSFERRING DATA VIA A PACKAGED NETWORK | |
CN108667898A (zh) | 使用外出镜像提供网元中的缓冲器内容的快照 | |
CN113660140A (zh) | 基于数据控制平面混合感知的服务功能链故障检测方法 | |
US7646779B2 (en) | Hierarchical packet scheduler using hole-filling and multiple packet buffering | |
Laassiri et al. | Evaluation of the QoS parameters in different SDN architecture using Omnet 4.6++ | |
JP3830937B2 (ja) | 高速パケット網のためのパケットスケジューリングシステム及び方法 | |
Li | System architecture and hardware implementations for a reconfigurable MPLS router | |
Chen et al. | An efficient flow table consistent update scheme for software defined network | |
JP2002305542A (ja) | 光ルータにおけるデータチャネルスケジューラの統一連想メモリ |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100317 Termination date: 20181229 |
|
CF01 | Termination of patent right due to non-payment of annual fee |