一种硬件组播出接口表项的下发方法和NP线卡板与流程

文档序号:14252910阅读:245来源:国知局
一种硬件组播出接口表项的下发方法和NP线卡板与流程

本申请涉及通信技术领域,尤其涉及一种硬件组播出接口表项的下发方法和np线卡板。



背景技术:

组播作为一种与单播和广播并列的通信方式,能够有效地解决单点发送、多点接收的问题,从而实现了网络中点到多点的高效数据传送,能够节约大量网络带宽、降低网络负载。

为了提高转发性能,市场上的网络产品可以采用高性能网络处理器作为转发引擎,实现报文的硬件转发。产品组播特性可以通过np(networkprocessors,网络处理器)线卡板的np芯片、fap(fabricaccessprocessors,网片访问处理器)芯片以及fe(fabricelement,网板交换芯片)配合实现。其中,np芯片负责报文转发,fap芯片负责板内组播报文复制,fe芯片负责板间组播报文复制,np线卡板的驱动则负责板内硬件组播出接口表项的下发。关于硬件组播出接口表项的下发方式,从出接口类型角度可划分为以下两种:

1)如果硬件组播出接口表项的出接口是物理口,则该硬件组播出接口表项会被下发到该物理口所在的np芯片以及该np芯片对应的fap芯片中;

2)如果硬件组播出接口表项的出接口是全局口,则该硬件组播出接口表项会被下发到整机所有np线卡板的所有np芯片以及fap芯片中。



技术实现要素:

有鉴于此,本申请提供一种硬件组播出接口表项的下发方法和np线卡板,用于当组播出接口存在全局口时,减少np芯片与fap芯片之间无用的带宽浪费,提高fap芯片的复制性能以及np芯片的转发性能。

具体地,本申请是通过如下技术方案实现的:

本申请第一方面,提供了一种硬件组播出接口表项的下发方法,所述方法应用于np线卡板,所述方法包括:

当全局口加入组播组时,确定本板内是否存在与所述全局口关联的物理口;

若存在,则向所述物理口所在的np芯片以及该np芯片对应的网片访问处理器fap芯片下发硬件组播出接口表项;

若不存在,则不向本板内的np芯片和fap芯片下发硬件组播出接口表项。

本申请第二方面,提供了一种np线卡板,所述np线卡板具有实现上述方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块或单元。

一种可能的实现方式中,所述np线卡板包括:

物理口确定单元,用于当全局口加入组播组时,确定本板内是否存在与所述全局口关联的物理口;

表项处理单元,用于若存在与所述全局口关联的物理口,则向所述物理口所在的np芯片以及该np芯片对应的网片访问处理器fap芯片下发硬件组播出接口表项;若不存在,则不向本板内的np芯片和fap芯片下发硬件组播出接口表项。

另一种可能的实现方式中,所述np线卡板包括存储器、总线系统和处理器,所述存储器和所述处理器通过所述总线系统相连;其中

所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述第一方面的任意一种方法。

本申请第三方面,提供了一种通信设备,包括fe板和至少一如第一方面所述np线卡板,所述fe板与所述np线卡板连接。

本申请的技术方案按照全局口关联的实际物理口所在的芯片下发硬件组播出接口,这样fap芯片在进行板内组播报文复制时,只向与全局口关联的实际物理口所在的np芯片复制报文,如此减少了fap芯片复制报文的份数,减少了fap芯片和np芯片上的丢包率,以及减少了fap芯片与np芯片之间的带宽浪费。

附图说明

图1是现有技术中基于np线卡板的组播转发示意图;

图2是本申请实施例提供的方法流程图;

图3.1是本申请实施例提供的链表示意图;

图3.2是本申请实施例提供的全局口成员增加后的链表示意图;

图3.3是本申请实施例提供的全局口成员删除后的链表示意图;

图3.4是本申请实施例提供的全局口退出部分组播组后的链表示意图;

图3.5是本申请实施例提供的全局口退出所有组播组后的链表示意图;

图4是本申请实施例提供的基于np线卡板的组播转发示意图;

图5是本申请实施例提供的一种np线卡板的功能模块框图;

图6是本申请实施例提供的一种np线卡板的硬件结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

硬件组播出接口表项的出接口可以是物理口,也可以是全局口;这里的全局口即逻辑口,包括至少一个成员口,全局口包括的成员口可以是物理口,也可以是另一个全局口。下面通过图1,说明现有技术中当组播出接口为全局口时,如何实现组播报文在np线卡板中的硬件转发。

参见图1,全局口route-aggregation(聚合口)1包括的实际物理口在np线卡板1的np7芯片上,当该全局口加入组播组成为组播出接口时,现有实现流程如下:

1)当该全局口加入组播组时,主控板(图1中未画出,可以为独立于各np线卡板的一块板)为该全局口在预留的cud资源中申请cud(copy_unique_data,组播报文的组播复制索引),然后通过软件信息结构体将申请结果(即该全局口作为该组播组的出接口时在各np线卡板的各np芯片内被分配到的cud)下发给各np线卡板。

对于np芯片来说,cud可以作为np芯片的硬件组播出接口表项的key(即匹配项),用来查询出接口信息,进行硬件转发;对于fap芯片来说,cud可以与np芯片标识号和mid(multicastid,组播id)结合,用于指导板内组播报文的复制转发。由于cud与硬件组播出接口表项相对应,因此cud资源便可以认为是一种硬件资源。

现有技术中,一般会提前预留一部分cud资源作为全局口的cud资源,例如可以预留[0,n]作为全局口的cud资源,即整机所有np芯片的0-n范围内的cud资源都预留给全局口使用,物理口不能使用。这样做的目的是为了保证全局口作为某个组播组的出接口时在各np芯片内被分配到的cud可以是同一个值,从而便于主控板下发cud的申请结果。

2)各np线卡板通过上述软件信息结构体获取cud,基于该cud生成硬件组播出接口表项下发到本板的所有np芯片和fap芯片中。

图1中,np线卡板0的fap0-fap1和np0-np3芯片,np线卡板1的fap2-fap3芯片和np4-np7芯片上都会收到与上述全局口相关的硬件组播出接口表项。以图1的np线卡板1举例,假设全局口加入的组播组的组播id为mid_1,主控板为该全局口在所有np芯片上申请的cud均为cud_1,则np线卡板1下发给np4-np7、fa2-fap3的硬件组播出接口表项可以参见表1所示。

表1

3)np线卡板根据硬件组播出接口表项等转发表项对报文进行复制转发。

图1中,报文从np线卡板0的np0芯片进入,在np0芯片中通过组播组信息查硬件组播表项,如果命中硬件组播表项,则携带命中的硬件组播表项内记录的mid信息走硬件转发,上送fap0芯片(见图1中的箭头1)。fap0芯片直接将报文上送fe芯片(见图1中的箭头2)。fe芯片对报文作板间广播(见图1中的箭头3),fap0-fap3芯片都会收到广播过来的报文。由于与全局口相关的硬件组播出接口表项是全局下发,因此fap0-fap3芯片会向各自相连的np芯片分别复制一份报文(见图1中的箭头4),复制时携带预先申请的cud。np0-np7芯片收到报文后,根据报文携带的cud查硬件组播出接口表项,发现出接口为全局口,则进一步判断本芯片内是否有实际物理口(例如当全局口为聚合口时,可以通过查聚合口表项来确认),如果是则将报文从查到的实际物理口发出(见图1中的箭头5),如果否则将报文丢弃。

由上述过程可以看到,当组播出接口是全局口时,与该全局口相关的硬件组播出接口表项会下发到所有np线卡板的np芯片以及fap芯片中,从而fe芯片板间复制的报文会通过所有fap芯片进行板内复制,然后发送给所有的np芯片;但由于并不是所有np芯片上都有全局口包括的实际物理口,不存在实际物理口的np芯片会将fap芯片复制过来的报文丢弃;这些多余复制的报文浪费了np芯片以及fap芯片的性能,以及浪费了np芯片与fap芯片之间的带宽,整机的np线卡板数越多,np线卡板上np芯片越多,浪费就会越大。并且,fap芯片向np芯片复制报文时,一方面由于硬件限制,当复制报文的份数较多时,会出现丢包的情况;另一方面由于fap芯片的复制能力比较强,复制的报文会线速突发给np芯片,当复制份数较多时,np芯片的性能受限,也会出现丢包。

本申请通过改进np线卡板中的硬件组播出接口表项的下发方式来解决上述问题,在本方案中,按照全局口关联的实际物理口所在的芯片下发硬件组播出接口表项,以减少fap芯片复制报文的份数,进而减少np芯片与fap芯片之间的带宽浪费,提高转发性能以及硬件资源的利用率。

下面结合说明书附图和各实施例对本申请技术方案进行说明。

参见图2,在一个实施方案中,当任一全局口加入任一组播组成为该组播组的出接口时,各np线卡板在运行过程中执行如下步骤:

步骤201:当全局口加入组播组时,np线卡板确定本板内是否存在与该全局口关联的物理口。

可选的,在某个全局口加入组播组时,np线卡板可以获取保存的全局口与物理口的对应关系和物理口与所属np线卡板的对应关系,然后根据这两个对应关系确认本板内是否存在与该全局口关联的物理口。

步骤202:若存在,则np线卡板向上述确定出的物理口所在的np芯片以及该np芯片对应的fap芯片下发硬件组播出接口表项。

步骤203:若不存在,则np线卡板不向本板内的np芯片和fap芯片下发硬件组播出接口表项。

在执行步骤202之前,np线卡板需要为加入组播组的全局口在本板的np芯片内申请与该组播组对应的cud,后续步骤202中便基于申请的cud生成待下发给np芯片以及fap芯片的硬件组播出接口表项。本申请中,一个全局口和一个组播组id(标识)唯一对应一组cud,即,对应不同组播组的同一全局口,分配到的cud是不同的;同一组播组的不同全局口,分配到的cud也是不同的。

现有技术中,全局口的cud由主控板统一在预留的cud资源中分配。这种cud分配方式有以下缺陷:第一,当没有全局口时,预留的cud资源处于空闲状态但又不能被物理口所使用,浪费了硬件资源;第二,当全局口比较多时,预留的这部分cud资源可能不够用。

鉴于此,以下提供一种新的cud分配方案,本方案中,全局口的cud由各np线卡板从实时的空闲cud资源中分配,即不再为全局口预留cud资源,物理口和全局口共享所有的cud资源,当有全局口加入组播组时,np线卡板再实时地为加入组播组的全局口在本板的np芯片内申请与该组播组对应的空闲cud,这样可以节约cud资源,避免硬件资源的浪费。这里提供两种具体的cud分配方式。

第一种分配方式是,当全局口加入组播组时,为该全局口在本板的所有np芯片内分别申请一个空闲cud。这种分配方式为全局口在每个np芯片内分别预占了一个cud,预占cud表示预留一条硬件表项资源,如此可以避免新的成员口加入该全局口时申请不到cud的情况。

第二种分配方式是,当全局口加入组播组时,为该全局口在本板的与该全局口关联的物理口所在的np芯片内分别申请一个空闲cud。如果本板内不存在与该全局口关联的物理口,那么这块np线卡板便不需要为该全局口申请cud。这种分配方式真正做到了cud资源的即用即分,对硬件资源的利用做到了最大化。

需要注意的是,无论采取上述哪一种cud分配方式,同一全局口在每个np芯片内分配到的cud在该np芯片内是唯一的,但同一全局口在不同np芯片内分配到的cud可以相同,也可以不相同。

基于申请的cud,np线卡板便可以生成待下发给np芯片以及fap芯片的硬件组播出接口表项。与现有技术相比,本申请改变了硬件组播出接口表项的下发数量,但没有改变硬件组播出接口表项的内容。

具体来说,下发给np芯片的硬件组播出接口表项的key(匹配项,也可称为关键字)是为全局口在该np芯片内申请的与全局口加入的组播组对应的cud,value(匹配结果,也可称为结果区)用于指示出接口为该全局口;下发给fap芯片的硬件组播出接口表项的key是全局口加入的组播组的组播id,value用于指示fap芯片向该fap芯片下的与该全局口关联的物理口所在的np芯片复制报文,以及复制报文时携带为该全局口在该np芯片内申请的与该组播组对应的cud。

这里以图1举例,按照本申请的技术方案,由于全局口只在np7芯片上具有实际物理口,因此只需np线卡板1向np7芯片和fap3芯片下发硬件组播出接口表项即可,下发的硬件组播出接口表项可以参考表1中的第4行和第8行。

np线卡板为全局口在本板的np芯片内申请cud之后,可以保存以下信息:该全局口所加入的组播组的mid,该全局口本次在np芯片内申请到的cud,该全局口在本板内的实际物理口所在的np芯片标识号;为便于描述,以下将这些信息统称为全局口信息。应当可以理解的是,全局口信息还可以包括:该全局口在本板内的实际物理口所在的np芯片对应的fap芯片标识号、该全局口所在np线卡板的标识号。各标识号可以是数字,也可以是由数字组成的序列号,还可以是由数字、字母、符号组成的字符串,本申请实施例不做特别限定。

作为一种实施方式,np线卡板可以采用链表来保存上述全局口信息。本申请中的链表可以将全局口作为索引,链表的每个节点记录了该全局口在本板内的实际物理口所在的np芯片标识号、该全局口加入的组播组的mid,以及该全局口作为不同组播组出接口时在np芯片内分配到的cud等信息。当全局口包括的物理口发生变化或全局口退出某个组播组时,np线卡板可以更新相关的全局口信息;当全局口退出所有的组播组时,np线卡板可以摘除链表中该全局口对应的节点。下面举例说明。

假设有全局口1和全局口2加入了组播组;假设全局口1在np线卡板1的np7芯片上具有实际物理口,针对组播组mid1,全局口1在np7芯片内分配到的cud为1,针对组播组mid2,全局口1在np7芯片内分配到的cud为2,那么np线卡板1上用于保存全局口信息的链表可以如图3.1所示。

若针对全局口1的成员口,增加np线卡板1的np4芯片的实际物理口,针对组播组mid1,全局口1在np4芯片内分配到的cud为3,针对组播组mid2,全局口1在np4芯片内分配到的cud为2,那么np线卡板1上用于保存全局口信息的链表可以如图3.2所示。

若针对图3.2所示全局口1的成员口,np7芯片上的实际物理口退出全局口1,那么np线卡板1上用于保存全局口信息的链表可以如图3.3所示。

若针对图3.3所示全局口1,全局口1退出了组播组mid1,那么np线卡板1上用于保存全局口信息的链表可以如图3.4所示。

若针对图3.4所示全局口1,全局口1又退出了组播组mid2,此时全局口1退出了所有的组播组,那么np线卡板1上用于保存全局口信息的链表可以如图3.5所示。

本申请还可以采用位图来保存全局口在本板内拥有的物理口的信息。所谓位图,即用一个位(bit)来标记某个数据的某种状态。针对每个全局口,np线卡板可以根据本板包括的np芯片的数量n,定义长度为n的字符串(或数组),使用字符串(或数组)的每一个bit位代表一个np芯片,并规定当bit位为1时,表示该bit位代表的np芯片上有实际物理口,当bit位为0时,表示该bit位代表的np芯片上没有实际物理口。

仍以图1举例,图1中np线卡板0和np线卡板1中各包含4个np芯片,全局口只在np7芯片上具有实际物理口,假设用字符串的低位代表标识号在前的np芯片,用字符串的高位代表标识号在后的np芯片,则np线卡板0可以通过0000这一位图表示本板内没有该全局口的实际物理口,np线卡板1可以通过1000表示本板内有该全局口的实际物理口且该实际物理口在本板的np7芯片上。

当某个全局口首次成为组播组的出接口时,np线卡板可以根据本板内与该全局口关联的物理口所在的np芯片计算位图;当该全局口再次成为其他组播组的出接口时,np线卡板便可以根据之前创建的位图直接确定出本板内与该全局口关联的物理口所在的np芯片。

需要注意的是,全局口包括的成员口并不是一成不变的,有可能会添加新的成员口或是删除已有的成员口。针对成员口添加事件和成员口退出事件,np线卡板可以作出如下响应:

1)当接收到针对某个全局口的成员口添加事件时,np线卡板可以判断新增的成员口在本板内是否有对应的物理口。如果没有,则不作处理;如果有,则基于为该全局口在该新增的成员口所在的np芯片内申请的与该全局口加入的组播组对应的cud,生成硬件组播出接口表项,并将生成的硬件组播出接口表项下发给该新增的成员口所在的np芯片以及该np芯片对应的fap芯片。

其中,如果np线卡板采用的是上述第一种cud分配方式,即在全局口加入组播组时便预先为该全局口在本板的每个np芯片内分别申请了一个空闲cud,那么这里便是基于为该全局口预先在该新增的成员口所在的np芯片内申请的cud,生成硬件组播出接口表项;如果np线卡板采用的是上述第二种cud分配方式,即在全局口加入组播组时只在与该全局口关联的物理口所在的np芯片内申请了cud,那么这里在判断出新增的成员口在本板内存在对应的物理口时,需要实时地为该全局口在该新增的成员口所在的np芯片内申请与该全局口加入的组播组对应的cud,然后基于实时申请的cud生成硬件组播出接口表项。

2)当接收到针对某个全局口的成员口退出事件时,np线卡板可以判断退出的成员口在本板内是否有对应的物理口。如果没有,则不作处理;如果有,则确定之前为该全局口在该退出的成员口所在的np芯片内申请的与该全局口加入的组播组对应的cud,并指示该退出的成员口所在的np芯片删除以确定出的cud为key的硬件组播出接口表项,以及指示与该np芯片对应的fap芯片删除value中包括确定出的cud和该退出的成员口所在的np芯片的芯片标识号的硬件组播出接口表项。

作为一种实施方式,如果np线卡板采用的是上述第二种cud分配方式,那么这里在指示np芯片和fap芯片删除相关硬件组播出接口表项之后,还可以实时释放该全局口在该退出的成员口所在的np芯片内申请到的与该全局口加入的组播组对应的cud。如果np线卡板采用的是上述第一种cud分配方式,则要等到该全局口退出组播组时,再释放为该全局口在本板的np芯片内申请的与该退出的组播组对应的cud。

具体地,当全局口退出某个组播组时,np线卡板可以执行以下步骤:当全局口退出组播组时,释放为该全局口在本板的np芯片内申请的与该组播组对应的cud,并指示np芯片删除以该np芯片释放的cud为key的硬件组播出接口表项,以及指示与该np芯片对应的fap芯片删除value中包括该np芯片的芯片标识号和该np芯片释放的cud的硬件组播出接口表项。这样可以在全局口退出时不再占用针对该全局口分配的cud资源,使针对该全局口分配的cud资源再次作为空闲cud资源,供后续使用,节约了cud资源,避免了硬件资源的浪费。

通过以上描述可以看出,本申请中,当组播出接口存在全局口时,按照全局口关联的实际物理口所在的芯片下发硬件组播出接口,这样fap芯片在进行板内组播报文复制时,只向与全局口关联的实际物理口所在的np芯片复制报文,如此减少了fap芯片复制报文的份数,减少了fap芯片和np芯片上的丢包率,以及减少了fap芯片与np芯片之间的带宽浪费。此外,本申请中全局口的cud由np线卡板基于np芯片从实时的空闲cud资源中选择,不再为全局口预留cud资源,这样可以节约cud资源,避免了硬件资源的浪费。

本申请实施例还能够针对全局口成员的变化(新增或删除),更新并向正确对应的np芯片和fap芯片下发硬件组播出接口表项,能够实现报文的正确转发。

本申请实施例还可以在全局口退出时不再占用针对该全局口分配的cud资源,使针对该全局口分配的cud资源再次作为空闲cud资源,供后续使用,节约了cud资源,避免了硬件资源的浪费。

为了使本领域技术人员更加清楚和明白,以下结合图4来描述本申请的技术方案。

参见图4,全局口route-aggregation1包括的实际物理口在np线卡板1的np7芯片上,该实际物理口的名称为ten-gigabitethernet1/0/1。

情况一:当该全局口route-aggregation1加入组播组(s,g)成为组播出接口时,实现流程如下:

np线卡板0上:

s11,如果该全局口route-aggregation1是首次作为组播出接口,则根据本板内与该全局口关联的物理口所在的np芯片计算位图并保存。route-aggregation1的成员口ten-gigabitethernet1/0/1是物理口但不在本板上,所以np线卡板0将route-aggregation1的位图记录为0000。

如果该全局口route-aggregation1不是首次加入组播组,则该全局口的位图已经存在,直接执行s12。

s12,np线卡板0为该全局口在本板的每个np芯片内申请与组播组(s,g)对应的cud,申请结果可能如下:

组播组(s,g):np0(cud_1),np1(cud_1),np2(cud_5),np3(cud_10)。

s13,获取s11中保存的位图,位图为0000,表明不需要下发硬件组播出接口表项。

np线卡板1上:

s21,如果该全局口route-aggregation1是首次作为组播出接口,则根据本板内与该全局口关联的物理口所在的np芯片计算位图并保存。route-aggregation1的成员口ten-gigabitethernet1/0/1是物理口且在本板的np7芯片上,所以np线卡板1将route-aggregation1的位图记录为1000。

如果该全局口route-aggregation1不是首次加入组播组,则该全局口的位图已经存在,直接执行s22。

s22,np线卡板1为该全局口在本板的每个np芯片内申请与组播组(s,g)对应的cud,申请结果可能如下:

组播组(s,g):np4(cud_9),np5(cud_11),np6(cud_8),np7(cud_5)。

s23,获取s21中保存的位图,位图为1000,1000表示np7需要下发硬件组播出接口表项,从而获取s22中为np7预占的cud_5,生成硬件组播出接口表项下发到np7芯片和fap3芯片。假设该全局口route-aggregation1加入的组播组的组播id为mid_1,则下发的硬件组播出接口表项可以参考下表2。

表2

图4中,报文从np线卡板0的np0芯片进入,在np0芯片中通过组播组信息查硬件组播表项,如果命中硬件组播表项,则携带命中的硬件组播表项内记录的mid信息走硬件转发,上送fap0芯片(见图4中的箭头1)。fap0芯片直接将报文上送fe芯片(见图4中的箭头2)。fe芯片对报文作板间广播(见图4中的箭头3),fap0-fap3芯片都会收到广播过来的报文。由于与全局口相关的硬件组播出接口表项只下发到了fap3芯片,因此只有fap3芯片会向其相连的np7芯片复制一份报文(见图4中的箭头4),复制时携带预先申请的cud。np7芯片收到报文后,根据报文携带的cud查硬件组播出接口表项和聚合口表项,将报文从ten-gigabitethernet1/0/1发出(见图4中的箭头5)。

情况二:当该全局口route-aggregation1新增成员口ten-gigabitethernet1/0/5时,ten-gigabitethernet1/0/5在np线卡板1的np4芯片上,实现流程如下:

np线卡板0上:

s31,响应成员口添加事件,解析出新增成员口为ten-gigabitethernet1/0/5。

s32,确定该新增成员口是物理口但不在本板上,直接返回。

np线卡板1上:

s41,响应成员口添加事件,解析出新增成员口为ten-gigabitethernet1/0/5。

s42,确定该新增成员口是物理口且在本板的np4芯片上,从而将s21中保存的位图由1000更新为1001,位图中代表np4芯片的bit位由0变为了1。

s43,该全局口的位图发生变化后,找到所有引用该全局口route-aggregation1的组播组,获取为此全局口在本板的np芯片内预占的与各组播组对应的cud,生成硬件组播出接口表项下发到np4芯片和fap2芯片。

情况二:当该全局口route-aggregation1有成员口ten-gigabitethernet1/0/1离开时,ten-gigabitethernet1/0/1在np线卡板1的np7芯片上,实现流程如下:

np线卡板0上:

s51,响应成员口退出事件,解析出退出的成员口为ten-gigabitethernet1/0/1。

s52,确定该退出的成员口是物理口但不在本板上,直接返回。

np线卡板1上:

s61,响应成员口退出事件,解析出退出的成员口为ten-gigabitethernet1/0/1。

s62,确定该退出的成员口是物理口且在本板的np7芯片上,从而将s42中更新的位图由1001再次更新为0001,位图中代表np7芯片的bit位由1变为了0。

s63,该全局口的位图发生变化后,找到所有引用该全局口route-aggregation1的组播组,获取为此全局口在本板的np芯片内预占的与各组播组对应的cud,然后指示np7芯片和fap3芯片删除与获取到的cud相关的硬件出接口表项。

本申请实施例还提供了一种报文转发方法,应用于包括fe板和至少一np线卡板的通信设备,所述fe板与所述np线卡板连接,所述np线卡板执行如前文所述的硬件组播出接口表项的下发方法。在一具体的示例中,结合图4及前文描述,可知本申请实施例提供的报文转发方法能够按照全局口关联的实际物理口所在的芯片下发硬件组播出接口表项,以减少fap芯片复制报文的份数,进而减少np芯片与fap芯片之间的带宽浪费,提高转发性能以及硬件资源的利用率。

以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述。

参见图5,该图为本申请实施例提供的一种np线卡板的功能模块框图,可以包括:

物理口确定单元501,用于当全局口加入组播组时,确定本板内是否存在与所述全局口关联的物理口。

表项处理单元502,用于若存在与所述全局口关联的物理口,则向所述物理口所在的np芯片以及该np芯片对应的网片访问处理器fap芯片下发硬件组播出接口表项;若不存在,则不向本板内的np芯片和fap芯片下发硬件组播出接口表项。

在其中一种实施方式中,所述装置还可以包括:

cud申请单元,用于为所述全局口在本板的np芯片内申请与所述组播组对应的cud。

所述表项处理单元502,还用于基于申请的cud生成待下发给所述物理口所在的np芯片以及该np芯片对应的fap芯片的硬件组播出接口表项。

一种情况下,所述cud申请单元,具体用于为所述全局口在本板的所有np芯片内分别申请一个空闲cud。

相应的,所述物理口确定单元501,还用于当接收到针对所述全局口的成员口添加事件时,判断新增的成员口在本板内是否有对应的物理口。

所述表项处理单元502,还用于在所述物理口确定单元501确定新增的成员口在本板内没有对应的物理口时,不作处理;在所述物理口确定单元501确定新增的成员口在本板内有对应的物理口时,基于为所述全局口预先在所述新增的成员口所在的np芯片内申请的与所述组播组对应的cud生成硬件组播出接口表项,并将生成的硬件组播出接口表项下发给所述新增的成员口所在的np芯片以及该np芯片对应的fap芯片。

另一种情况下,所述cud申请单元,具体用于为所述全局口在本板的与所述全局口关联的物理口所在的np芯片内分别申请一个空闲cud。

相应的,所述物理口确定单元501,还用于当接收到针对所述全局口的成员口添加事件时,判断新增的成员口在本板内是否有对应的物理口。

所述表项处理单元502,还用于在所述物理口确定单元501确定新增的成员口在本板内没有对应的物理口时,不作处理;在所述物理口确定单元501确定新增的成员口在本板内没有对应的物理口时,为所述全局口在所述新增的成员口所在的np芯片内申请与所述组播组对应的cud,基于申请的cud生成硬件组播出接口表项,并将生成的硬件组播出接口表项下发给所述新增的成员口所在的np芯片以及该np芯片对应的fap芯片。

在其中一种实施方式中,下发给np芯片的硬件组播出接口表项的匹配项是为所述全局口在该np芯片内申请的与所述组播组对应的cud,匹配结果用于指示出接口为所述全局口;下发给fap芯片的硬件组播出接口表项的匹配项是所述组播组的组播id,匹配结果用于指示fap芯片向该fap芯片下的与所述全局口关联的物理口所在的np芯片复制报文,以及复制报文时携带为所述全局口在该np芯片内申请的与所述组播组对应的cud。

在其中一种实施方式中,所述物理口确定单元501,还用于当接收到针对所述全局口的成员口退出事件时,判断退出的成员口在本板内是否有对应的物理口。

所述表项处理单元502,还用于在所述物理口确定单元501确定退出的成员口在本板内没有对应的物理口时,不作处理;在所述物理口确定单元501确定退出的成员口在本板内有对应的物理口时,确定为所述全局口在所述退出的成员口所在的np芯片内申请的与所述组播组对应的cud,并指示所述退出的成员口所在的np芯片删除以确定出的cud为匹配项的硬件组播出接口表项,以及指示与该np芯片对应的fap芯片删除匹配结果中包括确定出的cud和所述退出的成员口所在的np芯片的芯片标识号的硬件组播出接口表项。

在其中一种实施方式中,所述表项处理单元502,还用于当所述全局口退出所述组播组时,释放为所述全局口在本板的np芯片内申请的与所述组播组对应的cud,并指示np芯片删除以该np芯片释放的cud为匹配项的硬件组播出接口表项,以及指示与该np芯片对应的fap芯片删除匹配结果中包括该np芯片的芯片标识号和该np芯片释放的cud的硬件组播出接口表项。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

参见图6,本申请还提供一种np线卡板,包括存储器601、总线系统602和处理器603,所述存储器601和所述处理器603通过所述总线系统602相连。

所述存储器601中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上文描述的硬件组播出接口表项的下发方法。

本申请实施例还提供了一种通信设备,包括fe板和至少一如前文所述np线卡板,所述fe板与所述np线卡板连接。在一具体的示例中,结合图4及前文描述,可知本申请实施例提供的通信设备能够按照全局口关联的实际物理口所在的芯片下发硬件组播出接口表项,以减少fap芯片复制报文的份数,进而减少np芯片与fap芯片之间的带宽浪费,提高转发性能以及硬件资源的利用率。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1