定义和控制网络处理器设备的总体行为的方法转让专利

申请号 : CN01807866.4

文献号 : CN1422473B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : C·巴索A·M·盖洛M·黑德斯S·哈里哈兰S·拉奥S·K·罗弗

申请人 : 国际商业机器公司

摘要 :

用于控制在为通信网络服务的网络处理环境中实施的网络处理器设备的总体行为的系统和方法。该方法包含的步骤有:接收包含一或多个控制函数的引导控制帧,该控制函数用设备控制参数数据配置网络处理器内的各个功能设备;向要配置的网络处理器中的功能设备转发接收控制帧中一或多个控制函数;执行控制帧中指定的控制函数。本发明实现了一种新颖的控制帧数据结构和通信基础设施,其中根据执行的控制函数和设备控制参数数据可以控制分布式网络处理环境中工作的任何网络处理器设备。

权利要求 :

1.一种用于控制在为通信网络服务的网络节点中实施的网络处理器的总体行为的系统,所述系统包括:所述网络节点包括一个控制点通用处理器,用于自己直接产生引导控制帧,所述控制点通用处理器与所述网络处理器相连,并控制所述网络处理器,其中,所述网络处理器执行分组分类、队列/策略管理以及数据分组转发;

位于所述网络处理器上的接口设备,用于接收包含一或多个控制函数的引导控制帧,所述控制函数还被包含于所述控制帧中的设备控制参数数据,用于配置所述网络处理器内的各个功能设备;

用于将所接收的控制帧中的所述一个或多个控制函数和控制参数数据转发给要被配置的所述网络处理器中的功能设备的装置;以及在所述功能设备中实现的、用于执行控制帧中指定的控制函数的处理装置,其中根据所述执行的控制函数和设备控制参数数据控制所述设备。

2.如权利要求1所述的系统,其特征在于,还包括用于分析接收帧并根据所述帧确定所述控制帧将被传送到的哪个设备的处理机构。

3.如权利要求1所述的系统,其特征在于,所述转发装置包含一或多个数据原动器接口,所述数据原动器接口从控制点子系统接收以所述网络处理器为目的地的控制帧,并且向所述控制点子系统回送由被控制的设备生成的应答帧。

4.如前面权利要求中任何一个所述的系统,其特征在于,所述网络处理器包含均能够处理帧的入口侧和出口侧,所述转发装置包含在所述入口侧和出口侧之间转发帧的高速链路。

5.如权利要求1所述的系统,其特征在于,所述网络处理器设备包括产生内部给所述网络处理器的引导控制帧的控制处理器,所述转发装置向在所述网络处理器内的所述被配置设备转发所述控制帧。

6.如权利要求4所述的系统,其特征在于,所述网络处理器包括从所述网络处理器内的所述出口侧向所述入口侧转发帧的回环数据原动器接口。

7.如权利要求4所述的系统,其特征在于,所述网络处理环境包含至少两个网络处理器,在第一网络处理器上接收控制帧,并且该控制帧包含用于控制另一个网络处理器上的设备的指示控制函数和设备参数数据,所述转发装置包括将所述控制帧从所述第一网络处理器传送到所述其它网络处理器的装置。

8.如权利要求7所述的系统,其特征在于,从所述第一网络处理器向所述其它网络处理器传送所述控制帧的所述装置包括高速数据链路。

9.如权利要求3所述的系统,其特征在于,还包括用于在应答帧将被返回到所述控制点子系统时学习在所述网络环境中的所述控制点子系统的位置的机构。

10.如权利要求1所述的系统,其特征在于,所述引导控制帧的数据结构包含:指示在所述网络处理环境内的所述网络处理器的目标位置的数据,所述目标位置包含所述网络处理器的地址位置;

包含所述网络处理器设备内工作的目标功能设备的数据;以及

包含用于配置所述目标网络处理器内工作的所述目标功能设备的控制函数和相关控制参数的数据,其中接收所述控制帧的第一网络处理器向所述目标网络处理器转发所述控制帧,从而该控制函数和相关的控制参数能够被转发到该功能设备,来用所述控制函数和相关控制参数配置其中的所述功能设备。

11.如权利要求10所述的系统,其特征在于,所述数据结构还包括:

用于指示当在配置功能设备期间发生错误时是否需要建立应答控制帧的数据;以及用于指示所述帧是请求控制帧还是应答控制帧的数据。

12.如权利要求10或11所述的系统,其特征在于,所述数据结构还包括用于指示所述控制帧的目的地是所述网络处理器的入口侧还是出口侧的数据。

13.如权利要求11所述的系统,其特征在于,所述网络处理环境包括生成所述控制帧的控制点系统,所述控制帧还包括用于指示应答帧将被发送到的源设备的数据。

14.如权利要求13所述的系统,其特征在于,所述控制帧还包括用于指示由所述控制帧配置的功能设备是否学习发出所述控制帧的所述控制点系统的地址位置的数据。

15.如权利要求13或14所述的系统,其特征在于,用于配置所述目标功能设备的所述控制函数和相关控制参数是用户可配置的。

16.一种用于控制网络节点中实施的网络处理器的总体行为的方法,所述网络节点包括一个控制点通用处理器,用于自己直接产生引导控制帧,所述控制点通用处理器与所述网络处理器相连,并控制所述网络处理器,其中,所述网络处理器执行分组分类、队列/策略管理以及数据分组转发,所述网络节点为通信网络服务,所述方法包括:利用所述控制点通用处理器控制所述网络处理器,所述网络处理器形成分组分类、队列/策略管理以及数据分组转发;

由控制点通用处理器产生引导控制帧;

接收包含一或多个控制函数的引导控制帧,所述控制函数用也被包含于所述控制帧中的设备控制参数数据配置所述网络处理器内的各种功能设备;

向要配置的所述网络处理器中的功能设备转发接收控制帧中所述一或多个控制函数和控制参数数据;以及执行控制帧中指定的控制函数从而配置所述设备,其中根据所述执行的控制函数和设备控制参数数据控制所述网络处理器。

17.如权利要求16所述的方法,其特征在于,还包括分析接收帧并根据所述帧确定所述控制帧将被传送到哪个功能设备的步骤。

18.如权利要求16所述的方法,其特征在于,所述网络处理器设备实现一或多个数据原动器接口,所述接收步骤包括通过数据原动器接口从控制点子系统接收以所述网络处理器为目的。

说明书 :

技术领域

本发明涉及网络处理器设备,更具体地说是涉及用于定义和控制网络处理器的总体行为的改进方法。

背景技术

在今天的网络世界中,带宽是关键资源。网络传输量在互联网和其它新兴应用的驱动下迅速增长,对网络基础设施的容量形成很大的压力。为了适应此变化,人们正在寻找更好的技术和方法以支持和应对流量增长和语音与数据的汇集。
今天网络传输量的惊人增长可以归因于互联网的流行,远程信息访问需求的增长,和新兴应用。随着电子商务的爆炸式增长,互联网在网络干线上有时会产生无法承受的负载。这也是导致数据传输量首次超过语音传输量的最重要原因。包含电子邮件,数据库访问和文件传输的远程访问应用不断增长的需求对网络产生了进一步的压力。
语音和数据的汇集对定义明天的网络环境起很大的作用。当前,网际协议(IP)网络上的数据传输在某些国家是免费的。由于语音通信自然地会沿这条最低成本的路径进行,所以语音不可避免地会和数据汇集起来。在这个不断改变的市场中,诸如IP语音(VoIP),ATM语音(VoATM)和帧中继语音(VoFR)的技术是降低成本的可选方案。然而,为能够使向这些技术的移植可行,业界必须保证语音的服务质量(QoS)并确定如何对数据线上传递的语音进行计费。1996年的美国电信反调节法案(The United StatesTelecommunications Deregulation Act of 1996)使这种环境更加复杂。该立法加强了选择的语音协议,ATM,和选择的数据协议,IP,之间的共生关系。
随着新产品和功能的出现,集成传统系统也是各个组织的关键问题。为了保护其在现有设备和软件上的投资,各个组织需要允许其在不中断现有运营的情况下迁移到新技术上的解决方案。
消除网络瓶颈仍然是服务提供商最优先考虑的问题。路由器经常是这种瓶颈的根源。然而,网络阻塞通常被误诊断为带宽问题,并且通过寻找更高带宽的解决方案来解决。
今天,厂商逐渐认识到这个问题。他们转向使用网络处理器来更有效地技术管理带宽资源并按照线路速度提供通常在路由器和网络应用服务器中出现的高级数据服务。这种服务包括负载均衡,QoS,网关,防火墙,安全和Web高速缓存。
对于远程访问应用,性能、按需带宽、安全和认证的优先级最高。对于QoS和服务等级(CoS)的集成,综合语音处理和更加成熟的安全解决方案的需求也会左右未来远程访问网络交换机的设计。此外,远程访问还必须适应不断增加的物理介质的数量,例如ISDN,T1,E1,OC-3至OC-48,有线电缆,和xDSL调制解调器。
业界专家将网络处理器(这里也称作“NP”)定义成能够完成一或多个以下功能的可编程通信集成电路:
分组分类--根据诸如地址或协议的已知特征标识分组;
分组修改--修改分组以便符合IP、ATM或其它协议(例如为IP更新分组头部中的生存时间字段);
队列/策略管理--反映具体应用的分组排队、出队列和分组调度的设计策略;以及
分组转发-通过交换机结构发送和接收数据,并且向适当地址转发或传递分组。
尽管这种定义精确描述了早期NP的基本特征,但是NP的全部潜力和效益尚有待挖掘。通过允许在硬件中执行以前通过软件完成的网络任务,网络处理器可以提高带宽并解决大量应用中的延迟问题。另外,NP可以通过诸如并行分布处理和流水线处理的体系结构改进速度。这种能力可以实现有效的搜索引擎,提高吞吐量和提供复杂任务的快速执行。
期待网络处理器成为网络的基础网络构造模块,就象CPU对于PC那样。NP提供的典型能力是实时处理,安全,存储和转发,交换结构接口,以及IP分组处理和学习能力。NP以ISO第2至5层为目标,并且被用设计来优化网络特定的任务。
处理器型NP合并多个通用处理器和专用逻辑。供应商正转向这种设计,以便提供可以及时和低成本地适应变化的可伸缩、灵活的解决方案。处理器型NP允许在较低的集成层次进行分布式处理,提供更高的吞吐量,灵活性和控制。可编程特性允许在不需要新ASIC设计的情况下方便地迁移到新协议和技术。
本发明在于,与基于网络处理器的设备的设计和实现相当的定义和控制NP总体行为的数据结构和方法。
1998年2月3日授权的美国专利5175246公开了一种系统,该系统在按照时分多址模式工作的站点中动态分配帧内的处理时间。该系统包括一组N个独立的可配置处理资源,所述N个处理资源分别与帧中的N个时间窗口相关联,其中N是大于1的预定整数。N个可配置处理资源可以被用来产生N个相应的已配置处理资源,各个所述已配置处理资源被事先配置好的相应特定处理操作激活。N个先前配置好的可配置处理资源中的每一个被激活,使得在帧处理期间能够完成相应的特定处理操作。

发明内容

因此,本发明提供用于控制在服务通信网络的网络节点中实施的网络处理器的总体行为的系统,所述系统包括:所述网络节点包括一个用于产生引导控制帧的控制点通用处理器,所述控制点通用处理器与所述网络处理器相连,并控制所述网络处理器,其中,所述网络处理器执行分组分类、队列/策略管理以及数据分组转发;位于所述网络处理器中的接口设备,用于接收包含一或多个控制函数的引导控制帧,所述控制函数还被包含于所述控制帧中的设备控制参数数据,用于配置所述网络处理器内的各个功能设备;向要配置的所述网络处理器中的功能设备转发接收控制帧中一或多个所述控制函数和控制参数数据的装置;和在所述功能设备中实现的用于执行控制帧中指定的控制函数的处理装置,其中根据所述执行的控制函数和设备控制参数数据控制所述设备。
根据一个优选实施例,提供了一种系统和方法,所述系统和方法提供使作为网络环境中控制点处理器(Control PointProcessor,CP)的通用处理器(General Purpose Processor,GPP)能够定义和控制网络处理器(NP)的总体行为的功能。
此外,最好提供一种提供这样的功能的方法,所述功能使作为网络环境中控制点处理器(CP)的通用处理器(GPP)能够定义和控制网络处理器(NP)的总体行为,以便向NP中运行的帧转发应用程序提供支持功能。
根据一个优选实施例,实现一种新颖的控制帧数据结构和通信基础设施,其中根据执行的控制函数和设备控制参数数据可以控制分布式网络处理环境中工作的任何网络处理器设备。网络处理器设备中专门用于控制的功能单元最好包含硬件引导帧处理器(Guided Frame Handler,GFH)设备和由硬件引导表处理器(Guided Table Handler,GTH)设备控制的帧转发应用程序。
该系统和方法最好能够处理典型NP系统中的各种可能帧流中的控制帧(引导帧流),这些可能帧流包括网络处理环境中初级板卡(blade)上的引导帧流;次级板卡上的引导帧流;和多板卡上的引导帧流,这样会更加有利。
根据本发明的另一方面,本发明为将被传送到网络处理环境中实现的网络处理器设备的控制帧,提供一种数据结构,该数据结构用于控制所述网络处理器的总体行为,所述数据结构包含:指示在所述网络处理环境内的所述网络处理器的目标位置的数据,所述目标位置包含所述网络处理器的地址位置;包含所述网络处理器设备内工作的目标功能设备的数据;以及包含用于配置所述目标网络处理器内工作的所述目标功能设备的控制函数和相关控制参数的数据,其中接收所述控制帧的第一网络处理器向所述目标网络处理器转发所述控制帧,从而该控制函数和相关的控制参数能够被转发到该功能设备,来利用所述控制函数和相关控制参数配置其中的所述功能设备。
根据本发明的再另一个方面,本发明提供一种用于控制网络节点中实施的网络处理器的总体行为的方法,所述网络节点包括一个控制点通用处理器,所述控制点通用处理器与所述网络处理器相连,并控制所述网络处理器,其中,所述网络处理器执行分组分类、队列/策略管理以及数据分组转发,所述网络节点为通信网络服务,所述方法包括的步骤有:
利用所述控制点通用处理器控制所述网络处理器,所述网络处理器形成分组分类、队列/策略管理以及数据分组转发;
由控制点通用处理器产生引导控制帧;
接收包含一或多个控制函数的引导控制帧,所述控制函数利用也被包含于所述控制帧中的设备控制参数数据配置所述网络处理器内的各个功能设备;
向要配置的所述网络处理器中的功能设备转发来自接收控制帧的一或多个所述控制函数和控制参数数据;以及
执行控制帧中指定的用于配置所述设备的控制函数,其中根据所述被执行的控制函数和设备控制参数数据控制所述网络处理器。

附图说明

现在仅以举例的方式参照以下例子描述本发明的实施例:
图1图解了实现一或多个网络处理器设备的示例网络处理环境。
图2是根据本发明的一个实施例,图解图1中所示网络处理器设备的引导帧处理器组成部分的方块图。
图3是根据本发明的一个实施例,图解图1中所示网络处理器设备的引导表格处理器组成部分的方块图。
图4(a)和4(b)图解了示例性的消息传送情景,其中描述了单独板卡上的CP和GFH(图4(a))之间,以及单独板卡上的GDH和GFH(图4(b))之间的引导帧流。
图5(a)和5(b)图解了示例性的消息传送情景,其中描述了次级板卡上的CP和GFH(图5(a))之间,以及次级板卡上的GDH和GFH(图5(b))之间的引导帧流。
图6(b)和6(b)图解了示例性的消息传送情景,其中描述了单独板卡上的CP和GTH(图6(b))之间,以及次级板卡上的CP和GTH(图6(b))之间的引导帧流。
图7(a)和7(b)图解了示例性的消息传送情景,其中描述了单独板卡上的CLP和GTH(图7(a))之间,以及次级板卡上的CLP和GTH(图7(b))之间的引导帧流。
图8是描述根据本发明的一个实施例的GFH中的引导帧处理的流程图310。
图9是描述根据本发明一个实施例的一个引导帧的引导帧处理的流程图350。
图10是描述根据本发明一个实施例的引导帧内的引导命令处理的流程图400。
图11是描述根据本发明一个实施例的引导帧处理的流程图450,其中引导帧不是被单点传送(unicast)并且不以当前板卡为目的地。
图12详细描述了根据本发明一个实施例的一个引导帧内包含的帧控制信息。

具体实施方式

图1描述了实现一或多个用于服务网络(未示出)的网络处理器(“NP”)接口设备15a,b的示例性网络处理环境10。在共同拥有、共同未授权的美国专利申请09/384,691(1999年8月27日提交,标题为“网络处理器复合处理结构和方法”)中描述了网络处理器接口设备15a,b的优选结构和操作,该申请的一套副本被包含于本申请文件中。
参照图1描述的示例性NP环境10,在初级板卡(primaryblade,即印制电路板元件)20a上提供一个NP接口设备15a,在次级板卡(secondary blade)20b上提供第二NP接口设备15b。可以理解,在分布式网络结构中可以扩充该系统,使之包含许多板卡(初级和次极)和CP子系统。控制点子系统(“CP”)50包含被连接到NP环境结构的系统处理器52。CP上的系统处理器最好通过发出在这里被称作“引导帧”的系统控制帧向NP设备提供初始化和配置服务。CP 50可以位于三个位置中的任何一个上:在接口设备芯片中;在装配有芯片的板卡上(如图1所示);或在板卡外部。如果在板卡外部,CP可以是远程的;即,CP被放置在其它地方并且通过连接接口设备和CP 50的网络进行通信。CP的组成部分通常包括处理器52,存储器单元(高速缓存,快闪存储器和SDRAM),存储器控制器,PCI总线,以及底板与L1网络介质的连接器。
如在此将更详细描述的那样,在优选实施例中,引导帧是包含以下信息的可变字结构:1)帧控制信息,包括指示帧针对哪个板卡,以及应当把帧发送到帧内哪个功能块的数据;2)相关器(correlator)信息,如果发生错误或异常,或者如果帧处理成功,用于在帧中指示向何处发送应答帧;3)引导命令,包含控制或管理板卡内的功能单元的控制操作数,例如用数据填写存储器位置;和4)指示帧结束的结束定界符命令。下面会参照图12更详细地讨论所有这些内容。
如图1所示,各个NP设备包含具有两个功能子组件的嵌入式处理器复合结构(EPC,embedded procassor complex)16:入口(上侧)子系统26a,用于通过网络协议特定的数据原动器接口(DM,data mover interface)24a,b接收/处理来自NP系统10支持的外部网络的数据;和出口(下侧)子系统26b,用于通过网络协议特定的数据原动器接口(DM)24c,d向NP系统10支持的网络发送出站数据。所有从相同NP设备内的入口传递到出口的帧均经过数据定位同步链路(DASL)接口45a-45d,在共同未授权的美国专利申请09/330,968(1999年6月11日提交,标题为“数据通信的高速并行/串行链路”)中详细描述了所述数据定位同步链路(DASL)接口,本申请文件含有该专利申请的一个副本。可以理解,可以实现其它支持高数据流速率的等价接口/链路。对于需要从出口侧26b内部回送到入口侧26a上的处理器的帧,可以通过数据原动器回环(DM_W,data mover wrap)25进行传送。
通常,NP设备的入口子组件26a包括嵌入式引导帧处理器单元18(GFH,Guided Frame Handler)和一或多个通用数据处理器(GDH,General Data Hardler)处理单元17a,每个通用数据处理器单元17a对接收的帧进行分类并且查找出向哪里转发该帧。NP设备的出口子组件26b也包括嵌入式引导帧处理器单元18a(GFH),一或多个分类器/查找处理器17b和引导表格处理器单元19(GTH,Guided Table Handler),每个所述分类器/查找处理器17b如果需要,在发送帧之前完成所有出站修改或查找。在NP处理器设备中,通过这里被称作引导数据处理器(GDH)的特殊分类器/查找处理器处理所有接收的数据传输,并且如以下更详细的描述,通过引导帧处理器(GFH)18处理被用来管理NP系统10的控制信息。在帧转发过程中,引导表格处理器(GTH)19实现转发表。
具体参照图1和共同未授权的美国专利申请09/384,691,NP设备上接收的一般的分组或帧的流如下所述:在数据原动器接口(DM)24a,24b上接收来自网络,例如以太网MAC的帧,其中将这些帧识别成普通数据帧或从控制处理器(CP)系统50接收的系统控制帧(引导帧)。引导帧通常首先排队进入嵌入式处理器复合结构(EPC),该嵌入式处理器复合结构包括多个微微处理器(picoprocessor),例如协议处理器,所述微微处理器执行能够查看接收的帧头并且决定对帧进行哪些处理(转发,修改,过滤等等)的逻辑(微微码,picocode)。EPC可以访问若干查找表,而分类硬件提供协助以允许微微处理器符合网络处理器的高带宽要求。分类硬件协助设备被提供用于根据众所周知的帧格式对帧进行分类。嵌入式复合处理结构(EPC)提供并控制NP设备芯片的可编程特性,并且除其它组成部分(例如存储器,分配器,DM接口)之外还包含一或多个同时执行公共指令存储器中存储的微微码的处理单元。每个处理单元最好包含CLP处理单元核心,所述CLP处理单元核心例如可以包括3阶段流水线,通用寄存器和ALU。在操作中,分类硬件协助设备的分类结果在帧分配期间被传递到一或多个处理单元。一个被称作通用数据处理器(GDH)的处理单元包括一个完整的CLP处理单元和五个协处理器,并且主要用于帧传递。至少两个N协议处理器是专用的;一个用于处理引导帧-引导帧处理器GFH 18,另一个用于建立控制存储器中的查找数据-引导表格处理器GTH 19。
在优选实施例中,所有被分类成引导帧的帧在接收帧的板卡上的GFH的入口队列中排队。图2描述了引导帧处理器GFH单元18的一般功能设置。在上述共同所有、共同未授权的美国专利申请09/384,691中可以找到有关GFH体系结构的详细描述。GFH 18最好是执行多个软件组件的一个硬件设备,包括负责完成引导帧分析和路由功能的引导帧处理器181;和负责解释引导帧中的引导“命令”并且保证此命令被处理的引导命令处理器182。引导帧处理器181接收和处理引导帧,并且负责验证引导请求帧和确定GFH是否能够处理接收的帧。它还确定发送方所需的确认(如果有)的类型。引导帧处理器181还浏览请求帧,直到找到首先要处理的引导命令,并且接着将控制切换到引导命令处理器182。在执行完命令时,控制被返回到引导帧处理器181。否则,引导命令处理器处理帧的各个引导命令,直到引导命令处理器返回出错信息或遇到结束定界符命令。此时,认为完成了帧处理。
引导命令处理器负责处理嵌入在引导请求帧中的引导命令。引导帧处理器参照请求帧中找到命令的位置调用该命令。引导命令处理器分析命令标识符以确定其是否能够处理命令。如果不支持该指定命令,则向帧分析器返回一个错误。否则,按照这里描述的方式,将控制传递到图2中示出的模块185的适当功能模块,该功能模块实际支持该命令。
图3描述了GTH单元19的功能设置。在上述共同所有、共同未授权的美国专利申请09/384,691中可以找到有关GTH体系结构的详细描述,当NP分配器发现GTH空闲并且GTH队列中有引导请求帧时,该GTH被分配。GTH的功能与GFH类似,即入向帧被引导帧处理器191验证,并且控制被传递到处理命令的引导命令处理器192。如图3所示,GTH中的服务模块195执行与GFH中的功能模块不同的操作。然而应当理解,引导帧的实际目的是管理和控制图2和3示出的各操作模块。
下面详细描述控制和管理NP设备行为的示例性GFH消息流。在图4(a)和4(b)图解的第一个例子中,描述了示例性的情景200,其中包括初级板卡20a上的CP子系统50和引导帧处理器(GFH)18之间的消息流。
在图4(a)图解的例子情景200中,引导“请求”帧包含以初级板卡的入口GFH为目的地的嵌入引导命令。GFH按以下方式处理引导请求:在第一步骤中,CP 50产生引导帧并且引导帧被发送到初级板卡20。在这种情景中,假设该帧包含指示需要应答的位(比特)。帧被初级板卡20a上的入口GFH接收,并且被分析。分析结果表明帧的目的地就是自己。因此,嵌入引导命令被入口GFH处理,具体地是被引导命令处理器执行。假设处理成功,则结果被存储在帧中,并且修改帧控制信息以指示该帧现在是“应答”帧。接着,该帧被以对应初级板卡的目标板卡地址,排队到入口队列(未示出)中,并且该帧通过DASL接口45a,b被发送到初级板卡20a的出口GFH。接着,出口GFH 18a分析该帧,发现该帧是应答帧并且将其排在一个适当的出口队列(未示出)中。这使得允许通过DM接口,例如DM 24a,发送该帧,而该DM 24a接口通过接口连接到CP 50,其中CP 50最终接收到应答帧。
在图4(a)描述的情景的可选情景200中,引导“请求”帧包含以初级板卡的出口GFH为目的地的嵌入引导命令。在这种情况中,CP 50产生引导帧,并且引导帧被发送到初级板卡,并且假设该帧包含指示需要应答的位。帧被初级板卡上的入口GFH接收,并且被分析。在这种情况下,分析结果表明帧的目的地是出口GFH。因此,该帧被排队到入口队列中并且以初级板卡为目标板卡,并且通过DASL接口45a,b将该帧发送到初级板卡20a的出口GFH。出口GFH接着分析该帧并且确定其目的地就是自己。因此,出口GFH处理该帧并且建立应答帧。在建立应答帧之后,应答帧被排队到适当的出口队列中,而该出口队列接着使得该应答帧被通过DM接口发送到与CP相连的接口。
在图4(b)图解的示例性情景210中,通过通用数据处理器(GDH)在内部产生引导“请求”帧,并且该引导“请求”帧包含以初级板卡上的入口GFH 18为目的地的嵌入引导命令。GFH按以下方式处理引导请求:在第一步骤,初级板卡上的入口GDH建立以相同板卡上的入口GFH为目的地的引导帧,并且该引导帧被排队到入口GFH队列中。该帧被入口GFH接收,并且在帧处理期间确定其目的地就是本地。因此,入口GFH处理该帧。假设在处理期间没有出错,则在处理之后,由于没有指示需要应答帧的位,所以该帧被排队到入口丢弃队列中。如果出错,并且帧头中的位指示需要“否定确认”(Negative Acknowledgment),则建立否定确认帧并且该否定确认帧被排队到入口队列中,以便分配到出口GFH 18a。一旦出口GFH接收该应答帧,它就检查帧头,了解到该帧是应答帧,因此将该帧排队到适当的出口队列中以便分配到CP 50,在此该否定确认帧被接收。
在图4(b)描述的情景210的第一替代情景中,引导“请求”帧被通用数据处理器(GDH)在内部生成,并且包含以初级板卡上的出口GFH 18a为目的地的嵌入引导命令。在这个情景中,初级板卡上的入口GDH 20建立以出口GFH为目的地的引导帧。优选地有两个可以建立这种帧的位置:1)在入口数据存储器(IngressData Store)上;或2)在出口数据存储器(Egress Data Store)上。如果在入口数据存储器上建立该帧,入口GDH将该帧排队到入口GFH队列中。入口GFH接收和分析该帧。由于该帧指示其目的地为出口GFH,入口GFH将该帧排队到以初级板卡为目标板卡的入口队列中,并且该帧通过DASL接口45c,d被发送到初级板卡的出口GFH 18a。可选地,GDH可以直接将该帧排队到以初级板卡为目标板卡的入口队列中。然而如果在出口数据存储器上建立该帧,则入口GDH将该帧排队到出口GFH队列中,使得该帧可以被出口GFH接收和处理。假设没有出错,则该帧在处理之后被排队到出口丢弃队列中。如果出错,并且帧头包含指示需要“否定确认”的位,则否定确认帧被创建并且被排队到适当的出口接口队列,以便最终通过DM接口被CP 50接收。
在图4(b)描述的情景210的第二替代情景中,引导“请求”帧被初级板卡上的出口GDH 20a在内部生成,并且包含以初级板卡上的出口GFH 18a为目的地的嵌入引导命令。在这个情景中,初级板卡上的出口GDH 20a使用出口数据存储器建立以初级板卡上的出口GFH为目的地的引导请求帧。因而出口GDH将该帧排队到出口GFH队列中,其中该帧被出口GFH接收和处理。假设处理成功,则该帧被排队到出口丢弃队列中。然而,如果出错,并且帧头指示需要否定确认,则否定确认帧被建立并且被排队到适当的出口接口队列,以便最终通过DM接口被CP 50接收。
在图4(b)描述的情景210的第三替代情景中,引导“请求”帧被初级板卡上的出口GDH 20a在内部生成,并且包含以初级板卡上的入口GFH 18为目的地的嵌入引导命令。在这个情景中,初级板卡上的出口GDH在出口数据存储器或入口数据存储器位置建立以入口GFH为目的地的引导帧。如果在出口数据存储器上建立该帧,则出口GDH将该帧排队到回环DM队列(Wrap DMQueue)25中,该回环DM队列25使得该帧到达入口GFH。否则,如果在入口数据存储器上建立该帧,则出口GDH将该帧排队到入口GFH队列中,以便该帧到达入口GFH并且被入口GFH接收和处理。假设没有出错,则该帧在处理之后被排队到入口丢弃队列中。如果出错并且该帧指示需要否定确认,则否定确认帧被建立并且被排队到入口队列中以初级板卡为目标板卡,以便被出口GFH接收并分析。由于该帧表明其为应答帧,出口GFH将该帧排队到适当的出口目标端口队列中,以便最终通过DM接口被CP 50接收。
在图5(a)和5(b)图解的第二个例子中,描述了一个示例性的情景,其中包含次级板卡上的CP子系统50和引导帧处理器(GFH)18之间的消息流。
在图5(a)图解的示例情景220中,引导″请求″帧包含以次级板卡20b的出口GFH为目的地的嵌入引导命令。GFH按以下方式处理引导请求:在第一步骤中,引导帧被CP 50生成并且被发送到初级板卡。在这个例子情景中,假设帧控制信息包含指示该帧以次级板卡上的出口GFH为目的地和指示需要应答的位。该帧被初级板卡20a上的入口GFH 18接收,并且被分析。分析结果表明该帧的目的地是次级板卡20b上的出口GFH 18c。因而该帧被排队到入口队列中并具有适当设置的目标板卡地址,使得该帧可以被分配到目标板卡上的出口GFH。在接收该帧时,出口GFH18c分析该帧,并且确定该帧的目的地就是自己。出口GFH处理该请求帧并且建立一个应答帧。出口GFH接着通过将该应答排队到回环队列DM25中,向相同板卡上的入口GFH 18b组件发送应答。入口GFH帧18b实现分析操作并且确定该帧是一个应答帧。因而,该帧被通过在将目标板卡地址设置成初级板卡18a的地址后将该帧排队到入口队列中,路由到CP 50。因而该帧通过DASL接口45c被初级板卡上的出口GFH 18a接收并分析。由于帧控制信息表明其为一个应答帧,出口GFH 18a将该帧排队到适当的出口接口队列中。这使得该帧被通过DM接口,例如DM 24a发送,而该DM接口通过一个端口连接到CP 50,该CP 50最终接收到应答帧。
在涉及图5(a)描述的示例性情景220的替代情景中,引导“请求”帧包含以入口GFH 18b为目的地的嵌入引导命令。在这种情景中,引导帧被CP 50生成并且首先被发送到初级板卡。假设帧控制信息包含指示该帧以次级板卡上的入口GFH 18b为目的地和指示需要一个应答的位。因而,该帧被初级板卡上的入口GFH 18接收并且被分析,从而确定该帧以次级板卡上的入口GFH为目的地。相应地,该帧被排队到入口队列中并具有适当设置的目标板卡地址,从而该帧可以被分配到目标板卡上的出口GFH。出口GFH分析该帧,确定该帧的目的地是其自身的入口组件,并且据此将该帧排队到回环队列DM25中,从而该帧可以被入口GFH18b接收。入口GFH 18b接着处理该请求帧并且建立一个应答帧。该应答帧被通过在将目标板卡地址设置成初级板卡的地址之后排队到入口队列中的方式,传送回到CP 50,其中初级板卡上的出口GFH 18a通过DASL接口45b接收该帧。该帧被在初级板卡上的出口GFH 18a中分析,并且确定该帧为一个应答帧。据此,出口GFH将该帧排队到适当的出口接口队列中。这使得该帧被通过DM接口,例如DM 24a发送,而该DM接口通过一个端口连接到CP 50,该CP 50最终接收到该应答帧。
在图5(b)图解的示例情景240中,引导“请求”帧被次级板卡20b上的GDH生成,并且包含以次级板卡20b上的入口18b或出口GFH 18c为目的地的嵌入引导命令。在这个示例情景240中,流与图4(b)的示例性情景中针对类似初级板卡描述的流相同。唯一的差异在于出错时由GFH生成的否定确认消息走的路径。即,在入口GFH处理请求帧的情况下,否定确认帧被排队到入口队列中,指定初级板卡20a为目标板卡。在出口GFH的情况下,该消息通过DM_W接口25被封在次级板卡上的入口GFH内。通过将该帧排队到入口队列中以初级板卡为目标板卡,入口GFH将该帧传送到初级板卡的出口GFH。当初级板卡的出口GFH接收该帧时,它分析该帧并且确定该帧为一个应答帧。据此,出口GFH将该帧排队到适当的出口目标接口队列中。这使得该帧能够被通过DM接口,例如DM 24a发送,该DM接口通过一个端口连接到CP 50,而该CP 50最终接收到应答帧。
现在将参照图6(a)和6(b)描述包含初级和次级板卡上的CP子系统50和引导表格处理器(GTH)19之间的多板卡消息流的示例性情景。与此示例情景相关的消息流是针对初级和次级板卡描述的消息流的组合。当帧被初级板卡18上的入口GFH 18从CP接收时,该帧被分析。分析结果表明该帧的目的地是多个板卡上的GTH。因此,通过将该帧排队到入口队列中并以目标板卡组为目的地,该帧被转发到所有的目标板卡。当该帧被各个目标板卡上的出口GFH接收时,对该帧所进行的处理与前面描述的相同。应当注意,多应答帧会被发送到与最初视为目标的板卡的数量相对应的CP。对于通过GDH生成引导帧并且该引导帧以初级和次级板卡上的GTH为目的地的相关示例性情景,实际情况类似于前面在从未有应答被回送到发起GDH的条件下描述的情况。如果指定“否定确认”,则在出错的情况下,一或多个否定确认帧会被发送到CP。
因而,在图6(a)图解的第三示例性情景260中,引导“请求”帧被CP 50生成并且包含以初级板卡20a上的GTH 19为目的地的嵌入引导命令。在这个示例情景中,假设帧控制信息包含指示该帧以次级板卡的出口上的GTH为目的地的位和指示需要应答的位。在操作中,该帧被初级板卡上的入口GFH 18接收并且被分析。分析结果表明该帧的目的地是初级板卡20a上的GTH 19。因而该帧被排队到入口队列中并以初级板卡为目标板卡地址。这使得该帧通过DASL接口45a,b到达初级板卡的出口GFH 18a。出口GFH 18a分析该帧,发现该帧的目的地是GTH,并且将该帧排队到出口GTH队列中,以便将该帧分配到初级板卡上的GTH。GTH分析该接收的帧。分析结果表明需要应答,并且请求的源是CP。正如后面会参照图12更详细地描述的那样,该帧的“相关器”字段表明该帧的源是CP 50。GTH处理该请求帧并且建立一个应答帧。GTH 19接着通过把该帧排队到适当的出口接口队列,将该应答帧回送到CP 50。这使得该帧能够被通过DM接口,例如DM 24a发送,该DM接口通过一个端口连接到CP 50,而该CP 50最终接收到该应答帧。
在图6(b)描述的替代情景280中,引导“请求”帧被CP 50生成并且包含以次级板卡20b上的GTH 19为目的地的嵌入引导命令。因而在该情景中,假设该帧包含指示该帧以次级板卡上的GTH为目的地的位和指示需要应答的位。根据前面描述的帧流,引导帧首先被初级板卡上的入口GFH接收并且被分析。分析结果表明该帧的目的地是次级板卡20b上的GTH。因而该帧被排队到入口队列中并具有适当设置的目标板卡地址,以便该帧被分配到目标板卡20b上的出口GFH 18c。出口GFH分析该帧,发现该帧的目的地是GTH,所以将该帧排队到出口GTH队列中。这使得该帧被GTH接收,而该GTH分析该接收的帧。分析结果表明需要应答,并且根据该帧控制信息的“相关器”字段(图12)确定该帧的源为CP 50。GTH接着处理该请求帧,建立一个应答帧,并且通过DM_W接口25向次级板卡上的入口GFH 18b发送该应答。入口GFH接着执行分析操作并且确定该帧为一个应答帧。因而,通过在将目标板卡地址设置成初级板卡20a的地址之后将该帧排队到入口队列中,该帧被传送到CP 50。该帧通过DASL接口45b被初级板卡20a上的出口GFH接收并被分析。由于该帧表明其为一个应答帧,出口GFH将该帧排队到适当的出口接口队列中。这使得该帧能够被通过DM接口,例如DM 24a发送,该DM接口通过一个端口连接到CP 50,而该CP 50最终接收到应答帧。
现在参照图7(a)和7(b)描述包含初级和次级板卡上的GDH17a和GTH 19之间的消息流的示例性情景。
这样,在图7(a)图解的第四示例性情景290中,引导“请求”帧被出口GDH 17a生成并且包含以相同(初级)板卡上的GTH19为目的地的嵌入引导命令。通过将该帧排队到入口队列中,该帧首先被路由到初级板卡20a上的出口GFH,以便通过DASL接口45a,b被分配到出口GFH 18a并且被出口GFH 18a接收。出口GFH 18a分析该帧,发现它的目的地是GTH 19,并因此将该帧排队到出口GTH队列中。这使得GTH接收该帧。GTH接着分析该帧,并且根据该帧控制信息的相关器字段确定该帧的发起方为GDH。GTH接着处理该帧,并且在处理之后通过把该帧排队到出口丢弃队列中,丢弃该帧。结果,没有应答被发送到GDH。
在图7(b)描述的替代情景300中,引导“请求”帧被GDH 17b生成并且包含以次级板卡20b上的GTH 19为目的地的嵌入引导命令。在这种情景中,帧流与对初级板卡描述的相同,唯一的差别是在出错时GTH 19生成的否定确认消息所走的路径。该消息通过DM_W接口25被回送在次级板卡上的入口GFH 18b。通过将该帧排队到入口队列中,入口GFH将该帧路由到初级板卡的出口GFH 18a,最终将该帧传递到CP 50。
图12描述了引导帧的帧控制信息60的格式。如图12所示,帧控制信息60包含双字结构,其中每个字61a,61b均有四(4)个字节。
在第一个字61a中包含第一个数据字节63,该字节是标识该帧为一个控制帧的数值,例如0CH。第二个字节65包含用于提供以下各种处理/路由指示的标志位:第一个应答/请求(resp/req)标志70指示该帧是请求帧还是应答帧;第二个确认/不确认(ack/noack)标志71,指示是始终回答源设备,例如CP,还是从不回答;第三个使用/学习(use/learn)标志72,用于指示板卡是否学习帧的来源(帧的源地址和端口),还是在该帧中明确提供源地址信息;第四个否定/全部(neg/all)标志73,与ack/noack标志71结合操作用于指示是否仅当在处理该帧时发生错误的情况下提供应答(设为neg),还是源设备始终期望返回应答无论处理是否出错;第五个入口/出口(ingress/egress)标志74,用于指示该帧以板卡的哪一侧,即入口或出口侧,为目的地;第六个GTH/GFH标志,指示板卡中哪个微微处理器将处理该标志;和第七个独立/链接(ind/chnd)标志76,该标志是独立/链接命令处理指示符,用于指示目标预处理器是否即使在出错的情况下也继续处理引导帧命令,还是在出错时停止处理。下一个字段66是一个16位字段,包含该帧将被发送到的目标板卡的地址。应当理解,可以包含单点传送或者也可以包含多点传送(mutticast)地址。即,作为帧处理的一部分,引导帧处理器会将目标板卡字段66的板卡地址与作为初始化的一部分被编程到板卡中的地址进行比较。如果地址匹配,则认为该帧仅针对该板卡。如果地址不匹配,则认为其目标是系统中的另一个板卡或多个其它板卡(即该地址是单点传送或多点传送地址),结果,该帧会被传递到具有确定该帧的目标板卡的智能的交换机结构(未示出)。
在帧控制信息60的第二个字61b中,至少包含指示发起该引导帧的源端口的第一数据字节67。在描述的情景中,该源端口例如可以包含数据原动器(DM)接口端口。两个附加的数据字节68包含原始帧的源板卡地址。应当理解,建立这些帧的方式取决于use/learn标志72。例如,如果“learn”标志72没有置位,则板卡不会填写源端口和源板卡地址字段。因而,板卡处理负责学习帧的来源。通常,内部生成(例如通过GDH)的引导帧不会需要应答帧,即ack/noack字段71被设置成noack。因而,这些字段不会被置位。然而,如果将以未经请求的应答帧的形式向CP报告异常/错误,NP会被配置用来了解CP的源板卡和端口。
对于引导帧的其它组成,所提供的相关器信息的范围可以是2-5个字节(未示出)的任意字节,并且提供唯一标识符,使得例如在应答帧被返回到CP时,可以将相关器信息与引导请求帧的初始命令关联。由于在处理具有许多嵌入命令的单独引导帧的过程中会向请求方CP返回多个应答帧并且每个应答均需要被关联,所以这种方式更加有利。
对于引导帧的剩余组成,提供了一或多个命令字段,所述命令字段包含被用来配置和控制NP网络环境中的NP设备的指令或操作。每个命令字段最好包含至少三(3)个子字段:1)标识将被执行的命令的类型的命令控制字;2)指示将在其上操作命令的NP设备内的地址位置的地址字段;和3)包括命令类型相关的数据的变长操作数字段。例如,命令类型可以包含设置寄存器,或用数据填充存储器位置,并且地址信息子字段会提供将填充操作数数据的寄存器/存储器位置的地址。应当理解,存在许多可以被用来控制和配置分别在图2和3的GFH和GTH结构中示出的功能模块的命令类型。唯一的帧结束定界符是引导帧中的剩余字,用于指示没有更多的命令并且引导帧处理将要终止。
下面将要说明,图8-11中的流程图实现了前面参照附图描述的引导帧消息流情景。
图8是描述GFH中的引导帧处理的流程图310。如图8所示,在步骤312,GFH接收入向引导帧。如图9所述,在步骤314,该帧被GFH的引导帧处理器处理,其中分析帧控制信息以确定其是否是一个有效帧,即是否包含引导帧标识符。在步骤316,判断其是否是一个有效帧并且如果不是有效帧,即不是引导控制帧的情况下,在步骤318丢弃该帧,并且处理器会在步骤320返回到空闲状态。如果在步骤316确定该帧是一个有效引导帧,则在步骤322判断接收的帧是应答帧还是请求帧。如果确定该帧是一个应答帧,则在步骤324用GFH的引导帧处理器处理该帧,并且根据图9描述的引导帧处理器流程继续处理。否则如果接收的引导帧是一个请求帧,则在步骤326确定目标板卡地址。接着在步骤328判断目标板卡是不是接收该帧的当前板卡。如果该帧中的目标板卡不是当前板卡,则根据图11中描述的替代处理流程在步骤330处理该帧。否则,如果接收的引导帧的目的地是当前板卡,则在步骤333确定上(入口)/下(出口)标志位74(图12)在第一帧控制字中是否被设置成指示在板卡的出口或入口侧处理该帧。如果指定在出口侧处理该帧,则在步骤336进一步确定该帧是来自板卡的出口侧还是入口侧。类似地,在步骤338,如果指定在入口侧处理该帧,则进一步确定该帧是来自板卡的出口侧还是入口侧。如果在步骤336确定该帧的目的地是出口侧并且是从出口侧发起的,则在步骤340根据图10描述的引导命令处理器流程处理该帧。类似地,在步骤338,如果该帧的目的地是入口侧并且是从入口侧发起的,则在步骤342根据图10描述的引导命令处理器流处理该帧。如果该帧的目的地是与接收该帧的一侧相反的另一侧,则如步骤345所示,将该帧传送到正确的一侧。
图9是描述引导帧的引导帧处理的流程图350。如图9所示,在步骤352,从GFH接收入向引导“应答”帧。在步骤354确定ack/noack标志位71(图12)在第一帧控制字中是否被设置成指示发送应答或是丢弃应答。如果不需要确认,则在步骤356丢弃该帧,并且处理器在步骤358返回到空闲状态。如果在步骤354确定要发送应答帧,则在步骤360确定neg/all标志位73(图12)是否在第一帧控制字中被设置成指示始终发送应答还是仅当出错时发送应答。如果始终发送应答,则在步骤362确定CP位于本地还是远程。如果CP在本地,则在步骤365将应答帧分配给本地CP。如果在步骤360确定仅当出错时发送应答,则在步骤366确定在处理期间是否实际发生错误。如果是这样的话,则处理前进到步骤362来把帧分配到CP,不管是远程CP还是本地。如果在步骤366确定没有发生错误,则会在步骤368丢弃该帧,并且处理器在步骤370返回到空闲状态。返回到步骤362,如果应答帧将被设置的CP是远程CP,则在步骤373判断上(入口)/下(出口)标志位74(图12)是否在第一帧控制字中被设置成指示处理该帧的位置。如果确定该帧是在入口侧,则在步骤375将该应答帧转发到DM接口,以便分配给CP。否则,如果确定该帧是在出口侧,则在步骤378通过DM_W(回环)接口将应答帧回送到入口侧,并且入口GFH在步骤380根据图8描述的入向环路流程处理该帧。
图10是描述引导帧内的命令的引导命令处理的流程图400。如图10所示,在步骤402,首先确定GFH/GTH标志位75(图12)是否在第一帧控制字中被设置成指示将处理引导命令的位置。在步骤404,如果标志位75指示GFH处理,则在步骤406通过检索下一个来自引导帧的命令来继续GFH处理。接着在步骤408确定是否遇到指示引导帧处理结束的帧结束定界符。如果遇到帧结束定界符,则在步骤410将控制返回到引导帧处理器,以便根据图9描述的引导帧处理器流程进行处理。如果在步骤408确定没有遇到帧结束定界符,则在步骤415,用根据当前引导命令操作数的所需参数装载要配置的微微处理器寄存器。在步骤418调用GFH函数(例如通过过程调用应用编程接口)以进行设置配置,并且在步骤420函数将控制返回到GFH引导命令处理器,以便在步骤406处理来自该帧的下一个命令。回到步骤404,如果确定标志位75指示GTH处理,则在步骤409通过检索下一个来自引导帧的命令来继续GTH处理。接着在步骤411确定是否遇到指示引导帧处理结束的帧结束定界符。如果遇到帧结束定界符,则在步骤413将控制返回到引导帧处理器,以便根据图9描述的引导帧处理器流程进行处理。如果在步骤411没有遇到帧结束定界符,则在步骤416将用根据当前引导命令操作数的所需参数输入要配置的微微处理器寄存器。在步骤419调用GTH函数以进行设置配置,并且在步骤422,函数将控制返回到GTH引导命令处理器,以便在步骤409处理来自该帧的下一个命令。
如上针对图8的步骤330所述,如果在初级板卡上接收的请求帧的目的地是次级板卡或多个其它板卡,则处理过程在步骤452按照图11描述的替代处理流程450继续执行。具体地,图11是描述引导帧处理450的流程图,其中引导帧不是单点传送并且不以当前板卡为目的地。因而图11中描述的处理涉及被按以下分类的帧:1)以另一个板卡为目的地的单点传送帧;2)以其它板卡而不是当前板卡为目的地的多点传送帧;和3)以包含当前板卡的其它板卡为目的地的多点传送帧。如图11所示,在步骤454确定当前帧适用于三个类别中的哪个类别。如果确定该帧属于类别1)和2),即该帧是以另一个板卡为目的地的单点传送帧或以另一个板卡而不是当前板卡为目的地的多点传送帧,则处理执行到步骤456,在那里该帧被转发到网络处理器交换结构以便被分配到其出口侧的目标板卡。接着,如步骤458所示,每个板卡的出GFH根据图8中描述的入向环路流程处理该帧。如果在步骤454,确定该帧属于类别3),即该帧是以包含当前板卡的其它板卡为目的地的多点传送帧,则处理执行到步骤460,在那里该帧被转发到网络处理器交换结构以便被分配到目的板卡,包含其出口侧上和当前板卡的出口侧。接着,如步骤462所示,每个板卡的出口GFH根据图9中描述的入向环路流程处理该帧。