用于实现交换线卡与逻辑线卡互通的方法及报文转发设备的制作方法

文档序号:8001803阅读:273来源:国知局
用于实现交换线卡与逻辑线卡互通的方法及报文转发设备的制作方法
【专利摘要】本发明公开了一种用于实现交换线卡与逻辑线卡互通的方法及报文转发设备。本发明在需要从交换线卡向逻辑线卡转发报文时,由交换线卡按照其上行转发流程为报文封装伪二层头,且伪二层头中携带有逻辑线卡的邻接表索引和出接口表索引;相应地,逻辑线卡能够从报文的伪二层头中获得邻接表索引和出接口表索引,然后即可按照其下行流程重新为报文封装真实的二层头、并从对应的出接口发出。另外,本发明在需要从逻辑线卡向交换线卡转发报文时,可以由易于扩展的逻辑线卡执行交换线卡的上行转发流程;相应地,交换线卡在接收到来自逻辑线卡的报文后即可直接执行其下行流程。从而,交换线卡与逻辑线卡的互通就无需借助CPU的中转,从而能够提高转发性能。
【专利说明】用于实现交换线卡与逻辑线卡互通的方法及报文转发设备

【技术领域】
[0001]本发明涉及报文转发技术,特别涉及一种用于实现交换线卡与逻辑线卡互通的方法及报文转发设备。

【背景技术】
[0002]报文转发设备中通常包括背板、以及插接于背板的主控板和转发线卡(或称为网板)。
[0003]其中,转发线卡可以采用交换芯片为转发核心,也可以采用逻辑芯片为转发核心。采用交换芯片为转发核心的转发线卡称为交换线卡,采用逻辑芯片为转发核心的转发线卡称为逻辑线卡。
[0004]在实际部署报文转发设备中的转发线卡时,考虑到交换线卡所具有的大容量接入的优点、以及逻辑线卡所具有的业务接口类型丰富的优点,通常会同时部署交换线卡和逻辑线卡。
[0005]但由于交换芯片采用预先固化的转发流程进行转发,而逻辑芯片采用自定义的转发流程进行转发,因此,转发流程截然不同的交换线卡与逻辑线卡无法直接通过背板互通。
[0006]为此,现有技术根据交换线卡和逻辑线卡的CPU进行中转、以使交换线卡与逻辑线卡能够借助于CPU的中转而通过背板实现互通。
[0007]请参见图1,交换线卡中的CPU不会在交换芯片的FIB (Forwarding Informat1nBase,转发信息库)表中配置对应逻辑线卡的FIB表项,逻辑线卡中的CPU也不会在逻辑芯片的FIB表中配置对应交换线卡的FIB表项,因此:
[0008]当交换线卡中的交换芯片接收到的报文应当从逻辑线卡转出时,交换芯片会查询不到对应的FIB表项、会将报文上报至交换线卡的CPU,再由CPU对报文重新处理、以使报文符合逻辑线卡的转发流程后再从交换芯片通过背板向逻辑线卡转发;
[0009]同理,当逻辑线卡中的逻辑芯片接收到的报文应当从交换线卡转出时,逻辑芯片也会查询不到对应的FIB表项、并会将报文上报至逻辑线卡的CPU,再由CPU对报文重新处理、以使报文符合交换线卡的转发流程后再从逻辑芯片通过背板向交换线卡转发。
[0010]然而,通过CPU中转的方式虽然能够实现交换线卡与逻辑线卡的互通,但由于CPU的处理能力是有限的,因此,CPU的能力就有可能成为交换线卡与逻辑线卡互通的性能瓶颈,而且还浪费了交换芯片与逻辑芯片的高性能硬件优势、无法实现高性能的转发。


【发明内容】

[0011]有鉴于此,本发明提供了一种用于实现交换线卡与逻辑线卡互通的方法及报文转发设备。
[0012]本发明提供的一种用于实现交换线卡与逻辑线卡互通的方法,该方法包括:
[0013]步骤al、当交换线卡的交换芯片从本板的外部接口接收到报文时,该交换芯片在自身的FIB表中查询对应的FIB表项;
[0014]步骤a2、当交换线卡的交换芯片查询到对应的FIB表项时,该交换芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;其中,若下行转发线卡为逻辑线卡,则交换线卡的交换芯片查询到的邻接表项和出接口表项分别为伪邻接表项和伪出接口表项,且伪邻接表项中包含有下行的逻辑线卡所需的邻接表索引和出接口索引、伪出接口表项中包含有专用于交换线卡向逻辑线卡转发报文的通用VLANID和通用源MAC ;
[0015]步骤a3、该交换芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行的转发线卡转发;其中,若下行的转发线卡为逻辑线卡,则根据伪邻接表项和伪出接口表项对报文封装的以太二层头为携带有下行的逻辑线卡所需的邻接表索引和出接口索引、以及通用VLAN ID和通用源MAC的伪二层头;
[0016]步骤bl、当逻辑线卡的逻辑芯片从背板到报文时,该逻辑芯片根据报文的跨板转发头识别上行的转发线卡的类型、并去除报文的跨板转发头;
[0017]步骤b2、当逻辑线卡的逻辑芯片识别出报文来自上行的交换线卡时,该逻辑芯片根据报文的伪二层头中携带的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并去除报文的伪二层头;
[0018]步骤b3、该逻辑芯片根据查询到的邻接表项和出接口表项为去除跨板转发头和伪二层头的报文重新封装相应接口类型的二层头、并将封装后的报文从本板对应的外部接口发出。
[0019]伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索引和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC,被分别封装在伪二层头的VLAN ID字段和源MAC字段中。
[0020]专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC分别为保留VLAN资源中的VLAN ID和源MAC。
[0021]该方法进一步包括:
[0022]步骤a4、当交换线卡的交换芯片在未查询到对应的FIB表项时,该交换芯片将报文上报至本板的CPU ;
[0023]若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并背板向下行转发线卡的CPU转发;
[0024]若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
[0025]跨板转发头中携带有用于指示上行的转发线卡所在槽位的源模块号,逻辑芯片在从背板收到报文时依据跨板转发头中携带的源模块号识别上行的转发线卡的类型。
[0026]该方法进一步包括:
[0027]步骤Cl、当逻辑线卡的逻辑芯片从本板的外部接口接收到报文时,该逻辑芯片在自身的FIB表中查询对应的FIB表项;
[0028]步骤c2、当逻辑线卡的逻辑芯片查询到对应的FIB表项时,该逻辑芯片识别下行的转发线卡的类型;
[0029]步骤c3、当逻辑线卡的逻辑芯片识别出下行的转发线卡为交换线卡时,该逻辑芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;
[0030]步骤c4、该逻辑芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行转发线卡转发;
[0031]步骤dl、当交换线卡的交换芯片从背板接收到报文时,该交换芯片去除报文的跨板转发头、并将带有以太二层头的报文从本板对应的外部接口发出。
[0032]逻辑芯片在查询到对应的FIB表项时依据FIB表项查询下行的转发线卡所在槽位的模块号、并依据逻辑线卡中的CPU预先配置的模块号与线卡类型的对应关系来识别下行的转发线卡的类型,以及,跨板转发头中携带有下行的转发线卡所在槽位的模块号。
[0033]该方法进一步包括:
[0034]步骤c5、当逻辑线卡的逻辑芯片未查询到对应的FIB表项时,该逻辑芯片将报文上报至本板的CPU ;
[0035]若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;
[0036]若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
[0037]本发明提供的一种报文转发设备,包括背板、以及插接于背板的转发线卡,转发线卡包括具有交换芯片的交换线卡和具有逻辑芯片的逻辑线卡,其中:
[0038]交换线卡具有交换芯片,用于在从本板的外部接口接收到报文时,在自身的FIB表中查询对应的FIB表项;在查询到对应的FIB表项时,根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项,其中,若下行转发线卡为逻辑线卡,则交换线卡的交换芯片查询到的邻接表项和出接口表项分别为伪邻接表项和伪出接口表项,且伪邻接表项中包含有下行的逻辑线卡所需的邻接表索引和出接口索引、伪出接口表项中包含有专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC ;以及,根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行的转发线卡转发,其中,若下行的转发线卡为逻辑线卡,则根据伪邻接表项和伪出接口表项对报文封装的以太二层头为携带有下行的逻辑线卡所需的邻接表索引和出接口索引、以及通用VLAN ID和通用源MAC的伪二层头;
[0039]逻辑线卡的逻辑芯片,用于在从背板到报文时,根据报文的跨板转发头识别上行的转发线卡的类型、并去除报文的跨板转发头;在识别出报文来自上行的交换线卡时,根据报文的伪二层头中携带的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并去除报文的伪二层头;以及,根据查询到的邻接表项和出接口表项为去除跨板转发头和伪二层头的报文重新封装相应接口类型的二层头、并将封装后的报文从本板对应的外部接口发出。
[0040]伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索引和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC,被分别封装在伪二层头的VLAN ID字段和源MAC字段中。
[0041]专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC分别为保留VLAN资源中的VLAN ID和源MAC。
[0042]交换线卡的交换芯片进一步用于在未查询到对应的FIB表项时,将报文上报至本板的CPU ;
[0043]若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;
[0044]若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
[0045]跨板转发头中携带有用于指示上行的转发线卡所在槽位的源模块号,逻辑芯片在从背板收到报文时依据跨板转发头中携带的源模块号识别上行的转发线卡的类型。
[0046]逻辑线卡的逻辑芯片进一步用于在从本板的外部接口接收到报文时,在自身的FIB表中查询对应的FIB表项;在查询到对应的FIB表项时,识别下行的转发线卡的类型;在识别出下行的转发线卡为交换线卡时,根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;以及,根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行转发线卡转发;
[0047]交换线卡的交换芯片进一步用于在从背板接收到报文时,去除报文的跨板转发头、并将带有以太二层头的报文从本板对应的外部接口发出。
[0048]逻辑芯片在查询到对应的FIB表项时依据FIB表项查询下行的转发线卡所在槽位的模块号、并依据逻辑线卡中的CPU预先配置的模块号与线卡类型的对应关系来识别下行的转发线卡的类型,以及,跨板转发头中携带有下行的转发线卡所在槽位的模块号。
[0049]逻辑线卡的逻辑芯片进一步用于在未查询到对应的FIB表项时,将报文上报至本板的CPU ;
[0050]若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;
[0051]若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
[0052]由此可见,本发明在需要从交换线卡向逻辑线卡转发报文时,由交换线卡仍按照其上行转发流程为报文封装二层头,但不同之处在于其封装的二层头是伪二层头、而不是真实二层头,并且,伪二层头中还携带有逻辑线卡的邻接表索引和出接口表索引;相应地,逻辑线卡在接收到来自交换线卡的报文后,能够从报文的伪二层头中获得邻接表索引和出接口表索引,然后即可按照其下行流程重新为报文封装真实的二层头、并从对应的出接口发出。从而,交换线卡向逻辑线卡转发报文就无需借助CPU的中转,从而能够提高转发性倉泛。
[0053]另外,本发明在需要从逻辑线卡向交换线卡转发报文时,可以由易于实现自定义扩展的逻辑线卡执行交换线卡的上行转发流程;相应地,交换线卡在接收到来自逻辑线卡的报文后,即可直接执行其下行流程。从而,逻辑线卡向交换线卡转发报文也无需借助CPU的中转,从而能够提高转发性能。

【专利附图】

【附图说明】
[0054]图1为现有技术中根据CPU实现交换线卡与逻辑线卡互通的转发路径示意图;
[0055]图2为上下行转发线卡均为交换线卡的转发流程示意图;
[0056]图3为上下行转发线卡均为逻辑线卡的转发流程示意图;
[0057]图4为本发明实施例中上下行转发线卡分别为交换线卡和逻辑线卡的转发流程示意图;
[0058]图5为如图4所示转发流程中由上行的交换线卡封装的报文格式示意图;
[0059]图6为本发明实施例中上下行转发线卡分别为逻辑线卡和交换线卡的转发流程示意图;
[0060]图7a和图7b为本发明实施例中用于实现交换线卡与逻辑线卡互通的方法的示例性流程示意图;
[0061]图8a和图8b为本发明实施例中的报文转发设备的示意图。

【具体实施方式】
[0062]为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
[0063]在本实施例中,交换线卡与逻辑线卡的互通无需借助CPU中转,为此,就需要使交换线卡与逻辑线卡截然不同的转发流程能够实现上行与下行的相互衔接。其中,上行是指从报文接收侧(即入接口)向背板转发的方向,下行是指从背板向报文发出侧(即出接口)转发的方向。
[0064]首先,对上行和下行转发线卡同为交换线卡、以及上行和下行转发线卡同为逻辑线卡的转发流程进行说明。
[0065]图2为上下行转发线卡均为交换线卡的转发流程示意图。如图2所示,当在交换线卡之间转发报文时:
[0066]S211、上行交换线卡的交换芯片从本板的外部接口接收报文。
[0067]S212、上行交换线卡的交换芯片在自身的FIB表中查询对应的FIB (ForwardInformat1n Base,转发信息库)表项,其中:
[0068]若能够查询到对应的FIB表项,则继续后续流程。
[0069]若没有查询到对应的FIB表项(可能是由于交换芯片的FIB表规格不足而导致本板CPU未在交换芯片的FIB表中配置对应的FIB表项、也可能是由于没有相应的路由而根本不存在对应的FIB表项、还有可能是其他原因),则将报文上送至本板的CPU,此后:
[0070]若本板的CPU能够在其维护的逻辑FIB表中查询到对应的FIB表项(有可能是由于交换芯片的FIB表规格不足而导致本板CPU未在交换芯片的FIB表中配置对应的FIB表项),则由本板的CPU按照现有方式对报文进行处理并通过背板向下行转发线卡(在本流程中为下行交换线卡)的CPU转发;但若本板的CPU中也不存在对应的FIB表项(有可能是由于没有相应的路由而根本不存在对应的FIB表项),则丢弃该报文。
[0071]S213、上行交换线卡的交换芯片从查询到的FIB表项中获取对应的邻接表索引和出接口索引。
[0072]S214、上行交换线卡的交换芯片根据获取的邻接表索引和出接口索引在自身的邻接表、以及例如VLAN (Virtual LocalArea Network)虚接口表等任一种出接口表中分别查询对应的邻接表项和出接口表项。
[0073]S215、上行交换线卡的交换芯片根据查询到的邻接表项和出接口表项对报文封装例如HIGIG头等任一种跨板转发头、以及以太二层头,并将封装有跨板转发头和以太二层头的报文向背板转发,其中:
[0074]跨板转发头中携带有表示本板所在槽位的SMOD(Source Module,源模块号)、表示下行转发线卡所在槽位的DMOD (Destinat1n Module,目的模块号)、以及用于指示报文在下行转发线卡对应的出接口的DPORT (Destinat1n PORT,目的接口),DMOD和DPORT均根据邻接表项确定;
[0075]以太二层头中包含 DMAC (Destinat1n Media Access Control,目的 MAC)、SMAC(Source Media Access Control,源 MAC)、以及 VLAN ID (Virtual LocalArea NetworkIdentify,虚拟局域网标识),DMAC根据邻接表项确定、SMAC和VLAN ID根据出接口表项确定。
[0076]此后,依据报文的跨板转发头中携带的DM0D,背板能够将报文转发至下行交换线卡。
[0077]S221、下行交换线卡的交换芯片从背板接收到来自上行交换线卡的报文,从报文的跨板转发头中获取DPORT、并去除报文的跨板转发头。
[0078]S222、由于跨板转发头中携带的DPORT能够指示报文在本板对应的出接口,因此,下行交换线卡的交换芯片依据获取的DPORT所指示的出接口,将带有以太二层头的报文从本板对应的外部接口发出。
[0079]由于交换芯片所实现的二层封装通常仅限于单一的以太网封装(封装的二层头长度为18字节),因此,当按照如图2所示的转发流程在交换线卡之间转发报文时,报文的二层封装在上行交换线卡的交换芯片完成、上行交换线卡的交换芯片在跨板转发头中携带用于指示报文在下行转发线卡对应的出接口的DPORT,而下行交换线卡的交换芯片则不需要负责报文的二层封装、且只需依据跨板转发头中的DPORT转发报文。
[0080]图3为上下行转发线卡均为逻辑线卡的转发流程示意图。如图3所示,当在逻辑线卡之间转发报文时:
[0081]S311、上行逻辑线卡的逻辑芯片从本板的外部接口接收报文。
[0082]S312、上行逻辑线卡的逻辑芯片在自身的FIB表中查询对应的FIB表项,其中:
[0083]若能够查询到对应的FIB表项,则继续后续流程。
[0084]若没有查询到对应的FIB表项(可能是由于逻辑芯片的FIB表规格不足而导致本板未在逻辑芯片配置对应的FIB表项、也可能是由于没有相应的路由而根本不存在对应的FIB表项、还有可能是其他原因),则将报文上送至本板的CPU,此后:
[0085]若本板的CPU能够在其维护的逻辑FIB表中查询到对应的FIB表项(可能是由于逻辑芯片的FIB表规格不足而导致本板未在逻辑芯片配置对应的FIB表项),则由本板的(PU按照现有方式对报文进行处理并背板向下行转发线卡(在本流程中为下行逻辑线卡)的CPU转发;但若本板的CPU中也不存在对应的FIB表项(有可能是由于没有相应的路由而根本不存在对应的FIB表项),则丢弃该报文。
[0086]S313、上行逻辑线卡的逻辑芯片从查询到的FIB表项中获取邻接表索引和出接口索引,并识别下行转发线卡是逻辑线卡还是交换线卡,其中:
[0087]上行逻辑线卡的CPU可以预先在逻辑芯片配置出接口索引与DMOD的对应关系、并配置各DMOD所对应的交换线卡类型,相应地,逻辑芯片在查询到对应的FIB表项之后能够依据出接口索引与DMOD的对应关系识别出获取的出接口索引所对应的DM0D、并依据DMOD与线卡类型的对应关系来识别下行的转发线卡的类型。
[0088]S314、当上行逻辑线卡的逻辑芯片识别出下行转发线卡为逻辑线卡时,由于邻接表项和出接口表项的查询、以及以太二层头的封装应当由下行逻辑线卡来完成,因此,上行逻辑线卡的逻辑芯片为报文封装(例如HIGIG头)跨板转发头、以及报文控制块,并将带有跨板转发头和报文控制块的报文向背板转发,其中:
[0089]跨板转发头中携带有表示本板所在槽位的SM0D、表示下行转发线卡所在槽位的DMOD, DMOD可以由CPU在逻辑芯片配置的出接口索引与DMOD的对应关系确定;
[0090]报文控制块中则包含由上行逻辑线卡的逻辑芯片获取到的邻接表索引和出接口索引。
[0091]此后,依据报文的跨板转发头中的DM0D,背板能够将报文转发至下行逻辑线卡。
[0092]S321、下行逻辑线卡的逻辑芯片从背板接收到来自上行逻辑线卡的报文,并依据报文的跨板转发头中的SMOD识别出报文的上行转发线卡的类型。其中,在本流程中,识别出的下行转发线卡为逻辑线卡,因而,下行逻辑线卡的逻辑芯片在去除报文的跨板转发头后,从报文的报文控制块中获取邻接表索引和出接口索引。
[0093]S322、下行逻辑线卡的逻辑芯片根据获取的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询得到对应的邻接表项和出接口表项。
[0094]S323、下行逻辑线卡的逻辑芯片根据查询到的邻接表项和出接口表项对报文封装相应接口类型(相应接口类型可以是预先确定的)的二层头。
[0095]S324、下行逻辑线卡的逻辑芯片依据查询到的邻接表项中的DMAC所指示的出接口,将封装有相应接口类型的二层头的报文从本板对应外部接口发出。
[0096]由于逻辑线卡所能够提供的接口类型非常丰富,除了能够提供以太网接口之外,还能够提供POS (Packet over S0NET/SDH,光同步数字传输网承载数据包)接口、三层聚合接口、HDLC (High-Level Data Link Control,高级数据链路控制)捆绑接口、隧道接口等广域网常用的各种类型接口,因此,当按照如图3所示的转发流程在逻辑线卡之间转发报文时,对报文的二层封装可以由出接口所在的下行逻辑线卡的逻辑芯片来完成、并由下行逻辑线卡的逻辑芯片自行查找出接口,当然,用于进行二层封装的邻接表索引和出接口索引可以由上行逻辑线卡的逻辑芯片提供。
[0097]下面,再对于上行和下行转发线卡分别为交换线卡和逻辑线卡、以及上行和下行转发线卡分别为逻辑线卡和交换线卡的转发流程进行说明。
[0098]1、交换线卡位于上行、逻辑线卡位于下行的情况:
[0099]考虑到交换芯片的转发流程是固化不可变的,因此,对于上行交换线卡的交换芯片,本实施例仍保留其封装跨板转发头和以太二层头的流程
[0100]但是,下行逻辑线卡需要由上行转发线卡为其提供邻接表索引和出接口索引、并封装二层头,并且,下行逻辑线卡所封装的二层头并不限于以太二层头。
[0101]由此,就会存在由上行交换线卡的交换芯片向下行逻辑线卡提供邻接表索引和出接口索引的需求、并出现二层头的重复封装。
[0102]为了满足上行交换线卡的交换芯片向下行逻辑线卡提供邻接表索引和出接口索引的需求、并避免二层头的重复封装,在本实施例中,上行交换线卡的交换芯片封装以太二层头时所使用的邻接表项和出接口表项并不是真正用于以太封装的表项,而是由上行交换芯片的CPU分别在上行交换线卡的交换芯片的邻接表和出接口表中配置的虚假的伪邻接表项和伪出接口表项。
[0103]其中,伪邻接表项中包含下行逻辑线卡所需的邻接表索引和出接口索引,而伪出接口表项中包含专用于上行交换线卡向下行逻辑线卡转发报文的通用VLAN ID和通用源MAC,该通用VLAN ID和通用源MAC也可以被认为是虚假的VLAN ID和虚假的源MAC、并可以由保留VLAN资源中的VLAN ID和源MAC来实现。
[0104]相应地,当报文从上行交换线卡向下行逻辑线卡转发时,上行交换线卡的交换芯片根据伪邻接表项和伪出接口表项封装得到以太二层头,此时,该二层头的格式虽然仍是以太二层头的格式,但根据伪邻接表项和伪出接口表项所封装的二层头并不是用于转发的真正以太二层头,而是携带有下行逻辑线卡所需的邻接表索引和出接口索引的伪二层头。
[0105]其中,伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索引和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC,被分别封装在伪二层头的VLAN ID字段和源MAC字段中。
[0106]实际应用中,伪邻接表项和伪出接口表项的创建与配置方式与真实的邻接表项和出接口表项相同。
[0107]此外,下行逻辑线卡的逻辑芯片通过识别跨板转发头中的SMOD (Source Module,源模块号)能够判断出发出该报文的上行转发线卡是逻辑线卡还是交换线卡。
[0108]若判断出上行转发线卡是逻辑线卡,则下行逻辑线卡的逻辑芯片仍按照如图3所示流程中的S321从报文控制块中获取其需要的邻接表索引和出接口索引;
[0109]但若判断出报文是从交换线卡转发而来,则下行逻辑线卡的逻辑芯片从报文的以太二层头、也就是伪二层头中获取其需要的邻接表索引和出接口索引,从而根据获取的邻接表索引和出接口索引查找到真正用于封装的邻接表项和出接口表项,并将伪二层头去除后根据在本板查找到的邻接表项和出接口表项对对报文重新进行相应接口类型的二层封装。
[0110]这样,根据报文的伪二层头即可满足上行交换线卡的交换芯片向下行逻辑线卡提供邻接表索引和出接口索引的需求,并同时避免二层头的重复封装。
[0111]2、逻辑线卡位于上行、交换线卡位于下行的情况:
[0112]首先,上行逻辑线卡的逻辑芯片中需要具有下行交换线卡的邻接表项和出接口表项。实际应用中,上行逻辑线卡中用于实现二层封装的邻接表项和出接口表项,可以由上行逻辑线卡的CPU通过与下行交换线卡的CPU同步得到。
[0113]那么,当上行逻辑线卡的逻辑芯片按照如图3所示流程中的S313判断出下行转发线卡为交换线卡时,上行逻辑线卡的逻辑芯片会按照与如图2所示流程中的S214?S215相同的方式,在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并对报文进行以太二层封装。
[0114]下面,结合具体转发流程对本实施例进行详细说明。
[0115]图4为本发明实施例中上下行转发线卡分别为交换线卡和逻辑线卡的转发流程示意图。如图4所示,当位于上行的交换线卡与位于下行的逻辑线卡互通时:
[0116]S411 (与S211相同)、上行交换线卡的交换芯片从本板的外部接口接收报文;
[0117]S412 (与S212相同)、上行交换线卡的交换芯片在自身的FIB表中查询对应的FIB表项,其中:
[0118]若能够查询到对应的FIB表项,则继续后续流程。
[0119]若没有查询到对应的FIB表项(可能是由于交换芯片的FIB表规格不足而导致本板CPU未在交换芯片的FIB表中配置对应的FIB表项、也可能是由于没有相应的路由而根本不存在对应的FIB表项、还有可能是其他原因),则将报文上送至本板的CPU,此后:
[0120]若本板的CPU能够在其维护的逻辑FIB表中查询到对应的FIB表项(有可能是由于交换芯片的FIB表规格不足而导致本板CPU未在交换芯片的FIB表中配置对应的FIB表项),则由本板的CPU按照现有方式对报文进行处理并通过背板向下行转发线卡(在本流程中为下行逻辑线卡)的CPU转发;但若本板的CPU中也不存在对应的FIB表项(有可能是由于没有相应的路由而根本不存在对应的FIB表项),则丢弃该报文。
[0121]S413 (与S213相同)、上行交换线卡的交换芯片从查询到的FIB表项中获取对应的邻接表索引和出接口索引。
[0122]S414、上行交换线卡的交换芯片根据获取的邻接表索引和出接口索引在自身的邻接表、以及例如VLAN虚接口表等出接口表中分别查询对应的邻接表项和出接口表项。
[0123]其中,由于本流程中的下行转发线卡为逻辑线卡,因此,上行交换线卡的交换芯片查询到的邻接表项和出接口表项必然是伪邻接表项和伪出接口表项,而不是如S214中那样查询到真实的邻接表项和出接口表项。
[0124]S415、上行交换线卡的交换芯片根据查询到的伪邻接表项和伪出接口表项对报文封装(例如HIGIG头)跨板转发头、以及伪二层头,并将封装有跨板转发头和伪二层头的报文向背板转发。
[0125]请在参见图4的同时再结合图5,以跨板转发头为HIGIG头为例,HIGIG头中包括DMOD字段、DPORT字段、以及例如SMOD等其他字段;
[0126]其中,DMOD字段中携带有表示下行转发线卡所在槽位的DMOD、该DMOD是根据伪邻接表项确定的,DPORT字段则可以为空、也可以携带用于功能扩展的其他信息,SMOD字段中携带有表示本板所在槽位的SMOD ;
[0127]请在参见图4的同时再结合图5,以出接口表项为VLAN虚接口表项为例,与真实的以太二层头具有相同格式的伪二层头中仍包括DMAC字段、SMAC字段、VLAN ID字段、以及其他字段;
[0128]其中,伪二层头中的DMAC字段中并不用于携带真实的DMAC、而是用于携带下行逻辑线卡所需的邻接表索引和出接口索引,相应地,伪邻接表项中原本应当包含的DMAC实际上就被下行逻辑线卡所需的邻接表索引和出接口索引所替代;SMAC字段和VLANID字段也不用于携带真实的SMAC和VLAN ID、而是用于携带专用于上行交换线卡向下行逻辑线卡转发报文的保留VLAN资源中的SMAC和VLAN ID,S卩,保留VLAN资源的SMAC和VLAN ID作为通用SMAC和通用VLAN ID填写在所有从交换线卡向逻辑线卡转发的报文的SMAC字段和VLAN ID字段中,相应地,伪出接口表项可以选用保留的VLAN虚接口表项4095来实现。
[0129]此后,依据报文的跨板转发头中携带的DM0D,背板能够将报文转发至下行逻辑线卡。
[0130]S421、下行逻辑线卡的逻辑芯片从背板接收到来自上行逻辑线卡的报文,并依据报文的跨板转发头中的SMOD识别出报文的上行转发线卡的类型。其中,在本流程中,识别出的下行转发线卡为逻辑线卡,因而,在去除跨板转发头之后,从报文的以太二层头、即伪二层头中(即伪二层头的DMAC字段中)获取邻接表索引和出接口索引,然后再去除伪二层头。
[0131]S422 (与S322相同)、下行逻辑线卡的逻辑芯片根据获取的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询得到对应的邻接表项和出接口表项。
[0132]S423 (与S323相同)、下行逻辑线卡的逻辑芯片根据查询到的邻接表项和出接口表项,按照相应的接口类型的二层头对报文重新进行二层封装。
[0133]S424 (与S324相同)、下行逻辑线卡的逻辑芯片依据查询到的邻接表项中的DMAC所指示的出接口,将封装有相应接口类型的二层头的报文从本板对应外部接口发出。
[0134]如上可见,虽然上行交换线卡的交换芯片仍会对报文进行以太二层网封装,但当位于上行的交换线卡与位于下行的逻辑线卡互通时,上行的交换线卡对报文的以太二层封装的作用并不是真正用于转发的以太二层头、而是为报文封装伪二层头,并通过伪二层头向下行逻辑线卡传递其所需的邻接表索引和出接口索引,因而使得下行逻辑线卡能够依据所传递的邻接表索引和出接口索引对报文实现正确的二层封装。
[0135]图6为本发明实施例中上下行转发线卡分别为逻辑线卡和交换线卡的转发流程示意图。如图6所示,当位于上行的逻辑卡与位于下行的交换线卡互通时:
[0136]S611 (与S311相同)、上行逻辑线卡的逻辑芯片从本板的外部接口接收报文。
[0137]S612 (与S312相同)、上行逻辑线卡的逻辑芯片在自身的FIB表中查询对应的FIB表项,其中:
[0138]若能够查询到对应的FIB表项,则继续后续流程。
[0139]若没有查询到对应的FIB表项(可能是由于逻辑芯片的FIB表规格不足而导致本板未在逻辑芯片配置对应的FIB表项、也可能是由于没有相应的路由而根本不存在对应的FIB表项、还有可能是其他原因),则将报文上送至本板的CPU,此后:
[0140]若本板的CPU能够在其维护的逻辑FIB表中查询到对应的FIB表项(可能是由于逻辑芯片的FIB表规格不足而导致本板未在逻辑芯片配置对应的FIB表项),则由本板的(PU按照现有方式对报文进行处理并背板向下行转发线卡(在本流程中为下行交换线卡)的CPU转发;但若本板的CPU中也不存在对应的FIB表项(有可能是由于没有相应的路由而根本不存在对应的FIB表项),则丢弃该报文。
[0141]S613 (与S313相同)、上行逻辑线卡的逻辑芯片从查询到的FIB表项中获取邻接表索引和出接口索引,并识别下行转发线卡是逻辑线卡还是交换线卡,其中:
[0142]上行逻辑线卡的CPU可以预先在逻辑芯片配置出接口索引与DMOD的对应关系、并配置各DMOD所对应的交换线卡类型,相应地,逻辑芯片在查询到对应的FIB表项之后能够依据出接口索引与DMOD的对应关系识别出获取的出接口索引所对应的DM0D、并依据DMOD与线卡类型的对应关系来识别下行的转发线卡的类型。
[0143]S614(类似于S214)、当上行逻辑线卡的逻辑芯片识别出下行转发线卡为交换线卡时,上行逻辑线卡的逻辑芯片根据查询到的邻接表索引和出接口索引,在自身的邻接表和出接口表中查询得到用于进行以太二层封装的的邻接表项和出接口表项。
[0144]S615(类似于S215)、上行逻辑线卡的逻辑芯片根据查询到的邻接表项和出接口表项对报文封装(例如HIGIG头)跨板转发头、以及以太二层头,并将封装有跨板转发头和以太二层头的报文向背板转发,其中:
[0145]跨板转发头中携带有表示本板所在槽位的SM0D、表示下行转发线卡所在槽位的DMOD,以及用于指示报文在下行转发线卡对应的出接口的DP0RT,DM0D和DPORT均根据邻接表项确定;
[0146]以太二层头中包含DMAC、SMAC,以及VLAN ID, DMAC根据邻接表项确定、SMAC和VLAN ID根据出接口表项确定。
[0147]此后,依据报文的跨板转发头中携带的DM0D,背板能够将报文转发至下行交换线卡;
[0148]S621 (与S221相同)、下行交换线卡的交换芯片从背板接收到来自上行交换线卡的报文,从报文的跨板转发头中获取DPORT、并去除报文的跨板转发头。
[0149]S622 (与S222相同)、由于跨板转发头中携带的DPORT能够指示报文在本板对应的出接口,因此,下行交换线卡的交换芯片依据获取的DPORT所指示的出接口,将带有以太二层头的报文从本板对应的外部接口发出。
[0150]如上可见,上行逻辑线卡的逻辑芯片能够按照上行交换线卡的封装流程为报文封装以太二层头,因而使得下行交换线卡能够按照原有流程继续实现报文的转发。
[0151]以上是对本实施例实现交换线卡与逻辑线卡互通的详细说明。基于该原理,本实施例提供了一种用于实现交换线卡与逻辑线卡互通的方法。
[0152]图7a和图7b为本发明实施例中用于实现交换线卡与逻辑线卡互通的方法的示例性流程示意图。
[0153]如图7a所示,该方法包括用于上行的交换线卡与下行的逻辑线卡互通的如下步骤:
[0154]步骤711、当交换线卡的交换芯片从本板的外部接口接收到报文时,该交换芯片在自身的FIB表中查询对应的FIB表项。
[0155]步骤712、当交换线卡的交换芯片查询到对应的FIB表项时,该交换芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项。
[0156]其中,若下行转发线卡为逻辑线卡,则交换线卡的交换芯片查询到的邻接表项和出接口表项分别为伪邻接表项和伪出接口表项,其中,伪邻接表项中包含有下行的逻辑线卡所需的邻接表索引和出接口索引、伪出接口表项中包含有专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC。
[0157]步骤713、该交换芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行的转发线卡转发。
[0158]其中,若下行的转发线卡为逻辑线卡,则根据伪邻接表项和伪出接口表项对报文封装的以太二层头为携带有下行的逻辑线卡所需的邻接表索引和出接口索引、以及通用VLAN ID和通用源MAC的伪二层头。
[0159]例如,伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索引和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC (例如保留VLAN资源中的VLAN ID和源MAC),被分别封装在伪二层头的VLAN ID字段和源MAC字段中。
[0160]步骤714、当逻辑线卡的逻辑芯片从背板到报文时,该逻辑芯片根据报文的跨板转发头识别上行的转发线卡的类型、并去除报文的跨板转发头。
[0161]例如,跨板转发头中可以携带有用于指示上行的转发线卡所在槽位的源模块号,相应地,逻辑芯片在从背板到报文时即可依据跨板转发头中携带的源模块号识别上行的转发线卡的类型。
[0162]步骤715、当逻辑线卡的逻辑芯片识别出报文来自上行的交换线卡时,该逻辑芯片根据报文的伪二层头中携带的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并去除报文的伪二层头。
[0163]步骤716、该逻辑芯片根据查询到的邻接表项和出接口表项为去除跨板转发头和伪二层头的报文重新封装相应接口类型的二层头、并将封装后的报文从本板对应的外部接口发出。
[0164]至此,上行的交换线卡与下行的逻辑线卡的一次互通流程结束。
[0165]另需要说明的是:
[0166]当交换线卡的交换芯片在通过步骤711未查询到对应的FIB表项时,该交换芯片不会执行步骤712?716,而是将报文上报至本板的CPU ;其中,若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
[0167]当下行的逻辑线卡的逻辑芯片从背板到报文、并通过步骤714识别出报文来自上行的逻辑线卡时,逻辑线卡的逻辑芯片不会执行步骤715?716,而是像现有方式那样从报文的报文控制块中获取邻接表索引和出接口索引,并依据从报文控制块中获取的邻接表索引和出接口索引在本板查询对应的邻接表项和出接口表项、以及根据在本板查询到的邻接表项和出接口表项封装以太二层头,再将封装后的报文从本板对应的外部接口发出。
[0168]如图7b所示,该方法还可以包括用于上行的逻辑线卡与下行的交换线卡互通的如下步骤:
[0169]步骤721、当逻辑线卡的逻辑芯片从本板的外部接口接收到报文时,该逻辑芯片在自身的FIB表中查询对应的FIB表项。
[0170]步骤722、当逻辑线卡的逻辑芯片查询到对应的FIB表项时,该逻辑芯片根据对应的FIB表项识别下行的转发线卡的类型。
[0171]例如,逻辑芯片在查询到对应的FIB表项时依据FIB表项查询下行的转发线卡所在槽位的模块号、并依据逻辑线卡中的CPU预先配置的模块号与线卡类型的对应关系来识别下行的转发线卡的类型,相应地,由上行的逻辑线卡的逻辑芯片所封装的跨板转发头中携带有下行的转发线卡所在槽位的模块号;
[0172]步骤723、当逻辑线卡的逻辑芯片识别出下行的转发线卡为交换线卡时,该逻辑芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项。
[0173]步骤724、该逻辑芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行转发线卡转发。
[0174]步骤725、当交换线卡的交换芯片从背板接收到报文时,该交换芯片去除报文的跨板转发头、并将带有以太二层头的报文从本板对应的外部接口发出。
[0175]至此,上行的逻辑线卡与下行的交换线卡的一次互通流程结束。
[0176]另需要说明的是:
[0177]当逻辑线卡的逻辑芯片通过步骤721未查询到对应的FIB表项时,该逻辑芯片将报文上报至本板的CPU ;其中,若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
[0178]以上是对本实施例中用于实现交换线卡与逻辑线卡互通的方法的详细说明。除了该方法之外,本实施例还提供了一种报文转发设备,请先参见图8a和图Sb,该报文转发设备包括背板、以及插接于背板的转发线卡,转发线卡包括具有交换芯片的交换线卡和具有逻辑芯片的逻辑线卡。
[0179]请先参见图8a:
[0180]交换线卡具有交换芯片,用于在从本板的外部接口接收到报文时,在自身的FIB表中查询对应的FIB表项;在查询到对应的FIB表项时,根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项,其中,若下行转发线卡为逻辑线卡,则交换线卡的交换芯片查询到的邻接表项和出接口表项分别为伪邻接表项和伪出接口表项,且伪邻接表项中包含有下行的逻辑线卡所需的邻接表索引和出接口索引、伪出接口表项中包含有专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC (例如保留VLAN资源中的VLAN ID和源MAC);以及,在查询到对应的邻接表项和出接口表项时,根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行的转发线卡转发,其中,若下行的转发线卡为逻辑线卡,则根据伪邻接表项和伪出接口表项对报文封装的以太二层头为携带有下行的逻辑线卡所需的邻接表索引和出接口索引、以及通用VLAN ID和通用源MAC的伪二层头。
[0181]实际应用中,伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索引和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC,被分别封装在伪二层头的VLAN ID字段和源MAC字段中。
[0182]逻辑线卡的逻辑芯片,用于在从背板到报文时,根据报文的跨板转发头识别上行的转发线卡的类型、并去除报文的跨板转发头;在识别出报文来自上行的交换线卡时,根据报文的伪二层头中携带的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并去除报文的伪二层头,根据查询到的邻接表项和出接口表项为去除跨板转发头和伪二层头的报文重新封装相应接口类型的二层头、并将封装后的报文从本板对应的外部接口发出。
[0183]实际应用中,跨板转发头中携带有用于指示上行的转发线卡所在槽位的源模块号,逻辑芯片在从背板到报文时依据跨板转发头中携带的源模块号识别上行的转发线卡的类型。
[0184]可选地,交换线卡的交换芯片可以进一步用于在未查询到对应的FIB表项时,将报文上报至本板的CPU ;其中,若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
[0185]请再参见图8b:
[0186]逻辑线卡的逻辑芯片进一步用于在从本板的外部接口接收到报文时,在自身的FIB表中查询对应的FIB表项;在查询到对应的FIB表项时,根据对应的FIB表项识别下行的转发线卡的类型;在识别出下行的转发线卡为交换线卡时,根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;以及,在查询到对应的邻接表项和出接口表项时,根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行转发线卡转发。
[0187]实际应用中,逻辑芯片在查询到对应的FIB表项时依据FIB表项查询下行的转发线卡所在槽位的模块号、并依据逻辑线卡中的CPU预先配置的模块号与线卡类型的对应关系来识别下行的转发线卡的类型,以及,跨板转发头中携带有下行的转发线卡所在槽位的模块号。
[0188]交换线卡的交换芯片进一步用于在从背板接收到报文时,去除报文的跨板转发头、并将带有以太二层头的报文从本板对应的外部接口发出。
[0189]另外,逻辑线卡的逻辑芯片可以进一步用于在未查询到对应的FIB表项时,将报文上报至本板的CPU ;其中,若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
[0190]在具体实现本实施例时,交换线卡和逻辑线卡的上述功能也可以通过计算机程序来实现。为此,本实施例进一步提供了一种用于实现交换线卡与逻辑线卡互通的装置,且该装置可以应用在报文转发设备中。
[0191]该装置包括用于上行的交换线卡与下行的逻辑线卡互通的如下模块:
[0192]上行交换FIB查询模块,当交换线卡的交换芯片从本板的外部接口接收到报文时,触发该交换芯片在自身的FIB表中查询对应的FIB表项;
[0193]上行交换本板查询模块,当交换线卡的交换芯片查询到对应的FIB表项时,触发该交换芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;
[0194]其中,若下行转发线卡为逻辑线卡,则交换线卡的交换芯片查询到的邻接表项和出接口表项分别为伪邻接表项和伪出接口表项,且伪邻接表项中包含有下行的逻辑线卡所需的邻接表索引和出接口索引、伪出接口表项中包含有专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC ;
[0195]上行交换本板封装模块,触发该交换芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行的转发线卡转发;
[0196]其中,若下行的转发线卡为逻辑线卡,则根据伪邻接表项和伪出接口表项对报文封装的以太二层头为携带有下行的逻辑线卡所需的邻接表索引和出接口索引、以及通用VLAN ID和通用源MAC的伪二层头;
[0197]例如,伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索引和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC (例如保留VLAN资源中的VLAN ID和源MAC),被分别封装在伪二层头的VLAN ID字段和源MAC字段中;
[0198]下行逻辑类型识别模块,当逻辑线卡的逻辑芯片从背板到报文时,触发该逻辑芯片根据报文的跨板转发头识别上行的转发线卡的类型、并去除报文的跨板转发头;
[0199]例如,跨板转发头中可以携带有用于指示上行的转发线卡所在槽位的源模块号,相应地,逻辑芯片在从背板到报文时即可依据跨板转发头中携带的源模块号识别上行的转发线卡的类型;
[0200]下行逻辑本板查询模块,当逻辑线卡的逻辑芯片识别出报文来自上行的交换线卡时,触发该逻辑芯片根据报文的伪二层头中携带的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并去除报文的伪二层头;
[0201]下行逻辑本板封装模块,触发该逻辑芯片根据查询到的邻接表项和出接口表项为去除跨板转发头和伪二层头的报文重新封装相应接口类型的二层头、并将封装后的报文从本板对应的外部接口发出。
[0202]可选地,该装置可以进一步包括:
[0203]上行交换CPU上报模块,当交换线卡的交换芯片在未查询到对应的FIB表项时,该交换芯片将报文上报至本板的CPU ;
[0204]若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;
[0205]若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
[0206]可选地,该装置还可以进一步包括:
[0207]上行逻辑FIB查询模块,当逻辑线卡的逻辑芯片从本板的外部接口接收到报文时,触发该逻辑芯片在自身的FIB表中查询对应的FIB表项;
[0208]上行逻辑类型识别模块,当逻辑线卡的逻辑芯片查询到对应的FIB表项时,触发该逻辑芯片识别下行的转发线卡的类型;
[0209]例如,逻辑芯片在查询到对应的FIB表项时依据FIB表项查询下行的转发线卡所在槽位的模块号、并依据逻辑线卡中的CPU预先配置的模块号与线卡类型的对应关系来识别下行的转发线卡的类型,相应地,由上行的逻辑线卡的逻辑芯片所封装的跨板转发头中携带有下行的转发线卡所在槽位的模块号;
[0210]上行逻辑本板查询模块,当逻辑线卡的逻辑芯片识别出下行的转发线卡为交换线卡时,触发该逻辑芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;
[0211]上行逻辑本板封装模块,触发该逻辑芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行转发线卡转发;
[0212]下行交换本板转发模块,当交换线卡的交换芯片从背板接收到报文时,触发该交换芯片去除报文的跨板转发头、并将带有以太二层头的报文从本板对应的外部接口发出。
[0213]实际应用中,逻辑线卡中的逻辑芯片在识别出下行的转发线卡为交换线卡时查询得到的邻接表项和出接口表项,可以是由逻辑线卡的CPU从交换线卡的CPU同步得到,其中,该同步的执行是以本板的流量触发、或该逻辑线卡所在报文转发设备中的主控板的配置触发为触发条件。
[0214]可选地,该装置还可以进一步包括:
[0215]上行逻辑CPU上报模块,当逻辑线卡的逻辑芯片未查询到对应的FIB表项时,触发该逻辑芯片将报文上报至本板的CPU ;
[0216]若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;
[0217]若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
[0218]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种用于实现交换线卡与逻辑线卡互通的方法,其特征在于,该方法包括: 步骤al、当交换线卡的交换芯片从本板的外部接口接收到报文时,该交换芯片在自身的FIB表中查询对应的FIB表项; 步骤a2、当交换线卡的交换芯片查询到对应的FIB表项时,该交换芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;其中,若下行转发线卡为逻辑线卡,则交换线卡的交换芯片查询到的邻接表项和出接口表项分别为伪邻接表项和伪出接口表项,且伪邻接表项中包含有下行的逻辑线卡所需的邻接表索引和出接口索引、伪出接口表项中包含有专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC; 步骤a3、该交换芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行的转发线卡转发;其中,若下行的转发线卡为逻辑线卡,则根据伪邻接表项和伪出接口表项对报文封装的以太二层头为携带有下行的逻辑线卡所需的邻接表索引和出接口索引、以及通用VLAN ID和通用源MAC的伪二层头; 步骤bl、当逻辑线卡的逻辑芯片从背板到报文时,该逻辑芯片根据报文的跨板转发头识别上行的转发线卡的类型、并去除报文的跨板转发头; 步骤b2、当逻辑线卡的逻辑芯片识别出报文来自上行的交换线卡时,该逻辑芯片根据报文的伪二层头中携带的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并去除报文的伪二层头; 步骤b3、该逻辑芯片根据查询到的邻接表项和出接口表项为去除跨板转发头和伪二层头的报文重新封装相应接口类型的二层头、并将封装后的报文从本板对应的外部接口发出。
2.根据权利要求1所述的方法,其特征在于,伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索弓丨和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC,被分别封装在伪二层头的VLAN ID字段和源MAC字段中。
3.根据权利要求2所述的方法,其特征在于,专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC分别为保留VLAN资源中的VLAN ID和源MAC。
4.根据权利要求1所述的方法,其特征在于,该方法进一步包括: 步骤a4、当交换线卡的交换芯片在未查询到对应的FIB表项时,该交换芯片将报文上报至本板的CPU ; 若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发; 若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
5.根据权利要求1所述的方法,其特征在于,跨板转发头中携带有用于指示上行的转发线卡所在槽位的源模块号,逻辑芯片在从背板收到报文时依据跨板转发头中携带的源模块号识别上行的转发线卡的类型。
6.根据权利要求1所述的方法,其特征在于,该方法进一步包括: 步骤Cl、当逻辑线卡的逻辑芯片从本板的外部接口接收到报文时,该逻辑芯片在自身的FIB表中查询对应的FIB表项; 步骤c2、当逻辑线卡的逻辑芯片查询到对应的FIB表项时,该逻辑芯片识别下行的转发线卡的类型; 步骤c3、当逻辑线卡的逻辑芯片识别出下行的转发线卡为交换线卡时,该逻辑芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项; 步骤c4、该逻辑芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行转发线卡转发; 步骤dl、当交换线卡的交换芯片从背板接收到报文时,该交换芯片去除报文的跨板转发头、并将带有以太二层头的报文从本板对应的外部接口发出。
7.根据权利要求6所述的方法,其特征在于,逻辑芯片在查询到对应的FIB表项时依据FIB表项查询下行的转发线卡所在槽位的模块号、并依据逻辑线卡中的CPU预先配置的模块号与线卡类型的对应关系来识别下行的转发线卡的类型,以及,跨板转发头中携带有下行的转发线卡所在槽位的模块号。
8.根据权利要求6所述的方法,其特征在于,该方法进一步包括: 步骤c5、当逻辑线卡的逻辑芯片未查询到对应的FIB表项时,该逻辑芯片将报文上报至本板的CPU ; 若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发; 若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
9.一种报文转发设备,其特征在于,包括背板、以及插接于背板的转发线卡,转发线卡包括具有交换芯片的交换线卡和具有逻辑芯片的逻辑线卡,其中: 交换线卡具有交换芯片,用于在从本板的外部接口接收到报文时,在自身的FIB表中查询对应的FIB表项;在查询到对应的FIB表项时,根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项,其中,若下行转发线卡为逻辑线卡,则交换线卡的交换芯片查询到的邻接表项和出接口表项分别为伪邻接表项和伪出接口表项,且伪邻接表项中包含有下行的逻辑线卡所需的邻接表索引和出接口索引、伪出接口表项中包含有专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC ;以及,根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行的转发线卡转发,其中,若下行的转发线卡为逻辑线卡,则根据伪邻接表项和伪出接口表项对报文封装的以太二层头为携带有下行的逻辑线卡所需的邻接表索引和出接口索引、以及通用VLAN ID和通用源MAC的伪二层头; 逻辑线卡的逻辑芯片,用于在从背板到报文时,根据报文的跨板转发头识别上行的转发线卡的类型、并去除报文的跨板转发头;在识别出报文来自上行的交换线卡时,根据报文的伪二层头中携带的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并去除报文的伪二层头;以及,根据查询到的邻接表项和出接口表项为去除跨板转发头和伪二层头的报文重新封装相应接口类型的二层头、并将封装后的报文从本板对应的外部接口发出。
10.根据权利要求9所述的报文转发设备,其特征在于,伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索引和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC,被分别封装在伪二层头的VLAN ID字段和源MAC字段中。
11.根据权利要求10所述的报文转发设备,其特征在于,专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC分别为保留VLAN资源中的VLAN ID和源MAC。
12.根据权利要求9所述的报文转发设备,其特征在于, 交换线卡的交换芯片进一步用于在未查询到对应的FIB表项时,将报文上报至本板的CPU ; 若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发; 若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
13.根据权利要求9所述的报文转发设备,其特征在于,跨板转发头中携带有用于指示上行的转发线卡所在槽位的源模块号,逻辑芯片在从背板收到报文时依据跨板转发头中携带的源模块号识别上行的转发线卡的类型。
14.根据权利要求9所述的报文转发设备,其特征在于, 逻辑线卡的逻辑芯片进一步用于在从本板的外部接口接收到报文时,在自身的FIB表中查询对应的FIB表项;在查询到对应的FIB表项时,识别下行的转发线卡的类型;在识别出下行的转发线卡为交换线卡时,根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;以及,根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行转发线卡转发; 交换线卡的交换芯片进一步用于在从背板接收到报文时,去除报文的跨板转发头、并将带有以太二层头的报文从本板对应的外部接口发出。
15.根据权利要求14所述的报文转发设备,其特征在于,逻辑芯片在查询到对应的FIB表项时依据FIB表项查询下行的转发线卡所在槽位的模块号、并依据逻辑线卡中的CPU预先配置的模块号与线卡类型的对应关系来识别下行的转发线卡的类型,以及,跨板转发头中携带有下行的转发线卡所在槽位的模块号。
16.根据权利要求15所述的报文转发设备,其特征在于, 逻辑线卡的逻辑芯片进一步用于在未查询到对应的FIB表项时,将报文上报至本板的CPU ; 若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发; 若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
【文档编号】H04L12/46GK104283817SQ201310278404
【公开日】2015年1月14日 申请日期:2013年7月3日 优先权日:2013年7月3日
【发明者】孟丹, 赵云峰 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1