网络设备和用于网络设备中的报文转发方法转让专利

申请号 : CN201510524605.5

文献号 : CN106487721B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵志宇

申请人 : 新华三技术有限公司

摘要 :

本发明公开了一种网络设备和用于网络设备中的报文转发方法。通过本发明,接口板的网络接口芯片从网络设备外部接收到的数据报文可以形成为通过第一I/O总线发送至第一转发板的第一上行数据报文流、以及通过第二I/O总线发送至第二转发板的第二上行数据报文流;因此,当第一转发板和第二转发板均能够实现正常转发时,可以同时存在分别通过第一I/O总线和第二I/O总线独立传输的第一下行数据报文流和第二下行数据报文流,并且,通过将第一下行数据报文流和第二下行数据报文流与网络接口芯片择一地导通。

权利要求 :

1.一种网络设备,其特征在于,包括:

第一转发板,该第一转发板具有连接第一PCI-E总线的第一PCI-E根复合体和驱动第一PCI-E根复合体的第一CPU;

第二转发板,该第二转发板具有连接第二PCI-E总线的第二PCI-E根复合体和驱动第二PCI-E根复合体的第二CPU;

接口板,该接口板具有逻辑装置和网络接口芯片,该逻辑装置通过第一PCI-E总线连接第一转发板、通过第二PCI-E总线连接第二转发板、以及通过网络接口总线连接网络接口芯片;

其中,该逻辑装置包括:

连接第一PCI-E总线的第一PCI-E端点;

连接第二PCI-E总线的第二PCI-E端点;

连接第一PCI-E端点的第一接收缓存队列和第一发送缓存队列;

连接第二PCI-E端点的第二接收缓存队列和第二发送缓存队列;

复制驱动器,用于利用第一接收缓存队列将网络接口芯片从网络设备的外部接收到的数据报文形成通过第一PCI-E总线发送至第一转发板的第一上行数据报文流、以及利用第二接收缓存队列将网络接口芯片从网络设备的外部接收到的数据报文形成通过第二PCI-E总线发送至第二转发板的第二上行数据报文流;

选择切换器,用于根据第一转发板和第二转发板的主备状态,使通过第一PCI-E总线接收的第一转发板处理后的第一下行数据报文流和通过第二PCI-E总线接收的第二转发板处理后的第二下行数据报文流通过网络接口总线与网络接口芯片择一地导通。

2.根据权利要求1所述的网络设备,其特征在于,逻辑装置进一步包括:

通过网络接口总线连接网络接口芯片的网络接口总线控制器;

复制驱动器将网络接口总线控制器分别连接第一接收缓存队列和第二接收缓存队列;

选择切换器将第一发送缓存队列和第二发送缓存队列择一地连接至网络接口总线控制器。

3.根据权利要求2所述的网络设备,其特征在于,该逻辑装置进一步包括:第一PCI-E端点、第一接收缓存队列以及第一发送缓存队列在网络设备上电启动时的PCI-E初始化过程中由第一CPU通过驱动第一PCI-E根复合体配置;

第二PCI-E端点、第二接收缓存队列以及第二发送缓存队列在网络设备上电启动时的PCI-E初始化过程中由第二CPU通过驱动第二PCI-E根复合体配置。

4.根据权利要求2所述的网络设备,其特征在于,该逻辑装置进一步包括:状态识别模块,用于通过第一CPU的控制管脚和第二CPU的控制管脚记录第一转发板和第二转发板的主备状态;

选择切换开关,用于根据状态识别模块记录的主备状态,当第一转发板为主用转发板时,将通过第一PCI-E总线接收的第一转发板处理后的第一下行数据报文流通过网络接口总线与网络接口芯片导通,当第二转发板为主用转发板时,将通过第二PCI-E总线接收的第二转发板处理后的第二下行数据报文流通过网络接口总线与网络接口芯片导通。

5.根据权利要求4所述的网络设备,其特征在于,该逻辑装置进一步包括:网络接口配置模块,用于在网络接口配置过程中,根据状态识别模块记录的主备状态,当第一转发板为主用转发板时,从第一PCI-E根复合体接收第一CPU对网络接口总线控制器和网络接口芯片的初始化配置;当第二转发板为主用转发板时,从第二PCI-E根复合体接收第二CPU对网络接口总线控制器和网络接口芯片的初始化配置。

6.根据权利要求4所述的网络设备,其特征在于,该逻辑装置进一步包括:板级配置模块,通过第一管理总线连接第一CPU、并通过第二管理总线连接第二CPU,用于在网络设备启动时,根据状态识别模块记录的主备状态,当第一转发板为主用转发板时,通过第一管理总线从第一CPU获取对接口板的初始化配置,当第一转发板为主用转发板时,通过第二管理总线从第二CPU获取对接口板的初始化配置。

7.一种用于网络设备中的报文转发方法,其特征在于,该网络设备包括具有网络接口芯片的接口板、通过第一PCI-E总线连接接口板的第一转发板、以及通过第二PCI-E总线连接接口板的第二转发板,其中:第一转发板具有连接第一PCI-E总线的第一PCI-E根复合体和驱动第一PCI-E根复合体的第一CPU;

第二转发板具有连接第二PCI-E总线的第二PCI-E根复合体和驱动第二PCI-E根复合体的第二CPU;

接口板具有连接第一PCI-E总线的第一PCI-E端点以及连接第二PCI-E总线的第二PCI-E端点、连接第一PCI-E端点的第一接收缓存队列和第一发送缓存队列、连接第二PCI-E端点的第二接收缓存队列和第二发送缓存队列;

并且,该报文转发方法包括应用在接口板的如下步骤:

将网络接口总线控制器从网络接口芯片接收到的数据报文复制、并分别填充至第一接收缓存队列和第二接收缓存队列;

利用第一接收缓存队列将网络接口芯片从网络设备的外部接收到的数据报文形成通过第一PCI-E总线发送至第一转发板的第一上行数据报文流、以及利用第二接收缓存队列将网络接口芯片从网络设备的外部接收到的数据报文形成通过第二PCI-E总线发送至第二转发板的第二上行数据报文流;

根据第一转发板和第二转发板的主备状态,将通过第一PCI-E总线接收的第一转发板处理后的第一下行数据报文流和通过第二PCI-E总线接收的第二转发板处理后的第二下行数据报文流通过网络接口总线与网络接口芯片择一地导通。

8.根据权利要求7所述的报文转发方法,其特征在于,接口板进一步具有通过网络接口总线连接网络接口芯片的网络接口总线控制器;

该报文转发方法还包括:将第一发送缓存队列和第二发送缓存队列择一地与网络接口总线控制器导通,以使第一下行数据报文流和第二下行数据报文流通过网络接口总线与网络接口芯片择一地导通。

9.根据权利要求8所述的报文转发方法,其特征在于,在网络设备上电启动后的PCI-E初始化过程中,该报文转发方法进一步包括:第一PCI-E端点、第一接收缓存队列以及第一发送缓存队列由第一CPU通过驱动第一PCI-E根复合体配置;

第二PCI-E端点、第二接收缓存队列以及第二发送缓存队列由第二CPU通过驱动第二PCI-E根复合体配置。

10.根据权利要求8所述的报文转发方法,其特征在于,该报文转发方法进一步包括:通过第一CPU的控制管脚和第二CPU的控制管脚识别第一转发板和第二转发板的主备状态,当第一转发板为主用转发板时,将通过第一PCI-E总线接收的第一转发板处理后的第一下行数据报文流通过网络接口总线与网络接口芯片导通,当第二转发板为主用转发板时,将通过第二PCI-E总线接收的第二转发板处理后的第二下行数据报文流通过网络接口总线与网络接口芯片导通。

11.根据权利要求10所述的报文转发方法,其特征在于,在网络接口配置过程中,该报文转发方法进一步包括:当第一转发板为主用转发板时,从第一PCI-E根复合体接收第一CPU对网络接口总线控制器和网络接口芯片的初始化配置;当第二转发板为主用转发板时,从第二PCI-E根复合体接收第二CPU对网络接口总线控制器和网络接口芯片的初始化配置。

12.根据权利要求10所述的报文转发方法,其特征在于,在网络设备启动时,该报文转发方法进一步包括:当第一转发板为主用转发板时,通过第一管理总线从第一CPU获取对接口板的初始化配置,当第一转发板为主用转发板时,通过第二管理总线从第二CPU获取对接口板的初始化配置。

说明书 :

网络设备和用于网络设备中的报文转发方法

技术领域

[0001] 本发明涉及一种网络设备和用于网络设备中的报文转发方法。

背景技术

[0002] 网络设备包括转发板和接口板,并且,为了提高转发的可靠性,转发板可以采用主备冗余的配备方式。
[0003] 当需要进行转发板的主备切换时,可以对转发板与接口板之间的I/O总线执行物理切换操作。即,接口板与降至备用状态的转发板之间的I/O总线的物理连接断开,接口板与晋升为主用状态的转发板之间建立新的I/O总线的物理连接。并且,晋升为主用状态的转发板还需要对新建立物理连接的I/O总线进行初始化配置。
[0004] 可见,由于对I/O总线的物理切换操作,网络设备会发生数据报文流的流量中断。并且,主备切换后对I/O总线进行的初始化配置会延长流量中断的时间。尤其是,若I/O总线选用PCI-E(Peripheral Component Interconnect Express,高速外设部件互连标准)总线,则主备切换后对I/O总线进行的初始化配置会大幅延长流量中断的时间。

发明内容

[0005] 有鉴于此,本发明的实施例提供了一种网络设备和用于网络设备中的报文转发方法。
[0006] 在一个实施例中,一种网络设备,包括:
[0007] 第一转发板;
[0008] 第二转发板;
[0009] 接口板,该接口板具有逻辑装置和网络接口芯片,该逻辑装置通过第一I/O总线连接第一转发板、通过第二I/O总线连接第二转发板、以及通过网络接口总线连接网络接口芯片;
[0010] 其中,该逻辑装置将网络接口芯片从网络设备的外部接收到的数据报文形成通过第一I/O总线发送至第一转发板的第一上行数据报文流、以及通过第二I/O总线发送至第二转发板的第二上行数据报文流;
[0011] 并且,该逻辑装置根据第一转发板和第二转发板的主备状态,将通过第一I/O总线接收的第一转发板处理后的第一下行数据报文流和通过第二I/O总线接收的第二转发板处理后的第二下行数据报文流通过网络接口总线与网络接口芯片择一地导通。
[0012] 可选地,第一I/O总线为第一PCI-E总线,第二I/O总线为第二PCI-E总线,第一转发板具有连接第一PCI-E总线的第一PCI-E根复合体和驱动第一PCI-E根复合体的第一CPU,第二转发板具有连接第二PCI-E总线的第二PCI-E根复合体和驱动第二PCI-E根复合体的第二CPU,并且,逻辑装置包括:连接第一PCI-E总线的第一PCI-E端点;连接第二PCI-E总线的第二PCI-E端点;连接第一PCI-E端点的第一接收缓存队列和第一发送缓存队列;连接第二PCI-E端点的第二接收缓存队列和第二发送缓存队列;通过网络接口总线连接网络接口芯片的网络接口总线控制器;将网络接口总线控制器分别连接第一接收缓存队列和第二接收缓存队列的复制驱动器,用于利用第一接收缓存队列形成第一上行数据报文流、利用第二接收缓存队列形成第二上行数据报文流;以及,将第一发送缓存队列和第二发送缓存队列择一地连接至网络接口总线控制器的选择切换器,用于使第一下行数据报文流和第二下行数据报文流通过网络接口总线与网络接口芯片择一地导通。
[0013] 可选地,该逻辑装置进一步包括:第一PCI-E端点、第一接收缓存队列以及第一发送缓存队列在网络设备上电启动后的PCI-E初始化过程中由第一CPU通过驱动第一PCI-E根复合体配置;第二PCI-E端点、第二接收缓存队列以及第二发送缓存队列在网络设备上电启动后的PCI-E初始化过程中由第二CPU通过驱动第二PCI-E根复合体配置。
[0014] 可选地,该逻辑装置进一步包括:
[0015] 第一PCI-E端点、第一接收缓存队列以及第一发送缓存队列在网络设备上电启动时的PCI-E初始化过程中由第一CPU通过驱动第一PCI-E根复合体配置;
[0016] 第二PCI-E端点、第二接收缓存队列以及第二发送缓存队列在网络设备上电启动时的PCI-E初始化过程中由第二CPU通过驱动第二PCI-E根复合体配置。
[0017] 可选地,该逻辑装置进一步包括:状态识别模块,用于通过第一CPU的控制管脚和第二CPU的控制管脚记录第一转发板和第二转发板的主备状态;选择切换开关,用于根据状态识别模块记录的主备状态,当第一转发板为主用转发板时,将通过第一I/O总线接收的第一转发板处理后的第一下行数据报文流通过网络接口总线与网络接口芯片导通,当第二转发板为主用转发板时,将通过第二I/O总线接收的第二转发板处理后的第二下行数据报文流通过网络接口总线与网络接口芯片导通。
[0018] 可选地,该逻辑装置进一步包括:网络接口配置模块,用于在网络接口配置过程中,根据状态识别模块记录的主备状态,当第一转发板为主用转发板时,从第一PCI-E根复合体接收第一CPU对网络接口总线控制器和网络接口芯片的初始化配置;当第二转发板为主用转发板时,从第二PCI-E根复合体接收第二CPU对网络接口总线控制器和网络接口芯片的初始化配置。
[0019] 可选地,该逻辑装置进一步包括:板级配置模块,通过第一管理总线连接第一CPU、并通过第二管理总线连接第二CPU,用于在网络设备启动时,根据状态识别模块记录的主备状态,当第一转发板为主用转发板时,通过第一管理总线从第一CPU获取对接口板的初始化配置,当第一转发板为主用转发板时,通过第二管理总线从第二CPU获取对接口板的初始化配置。
[0020] 在一个实施例中,一种用于网络设备中的报文转发方法,该网络设备包括具有网络接口芯片的接口板、通过第一I/O总线连接接口板的第一转发板、以及通过第二I/O总线连接接口板的第二转发板,并且,该报文转发方法包括应用在接口板的如下步骤:
[0021] 将网络接口芯片从网络设备的外部接收到的数据报文形成通过第一I/O总线发送至第一转发板的第一上行数据报文流、以及通过第二I/O总线发送至第二转发板的第二上行数据报文流;
[0022] 根据第一转发板和第二转发板的主备状态,将通过第一I/O总线接收的第一转发板处理后的第一下行数据报文流和通过第二I/O总线接收的第二转发板处理后的第二下行数据报文流通过网络接口总线与网络接口芯片择一地导通。
[0023] 可选地,第一I/O总线为第一PCI-E总线,第二I/O总线为第二PCI-E总线,第一转发板具有连接第一PCI-E总线的第一PCI-E根复合体和驱动第一PCI-E根复合体的第一CPU,第二转发板具有连接第二PCI-E总线的第二PCI-E根复合体和驱动第二PCI-E根复合体的第二CPU,接口板具有连接第一PCI-E总线的第一PCI-E端点、连接第二PCI-E总线的第二PCI-E端点、连接第一PCI-E端点的第一接收缓存队列和第一发送缓存队列、连接第二PCI-E端点的第二接收缓存队列和第二发送缓存队列、以及通过网络接口总线连接网络接口芯片的网络接口总线控制器;该报文转发方法将网络接口总线控制器从网络接口芯片接收到的数据报文复制、并分别填充至第一接收缓存队列和第二接收缓存队列,以利用第一接收缓存队列形成第一上行数据报文流、利用第二接收缓存队列形成第二上行数据报文流;并且,该报文转发方法还包括:将第一发送缓存队列和第二发送缓存队列择一地与网络接口总线控制器导通,以使第一下行数据报文流和第二下行数据报文流通过网络接口总线与网络接口芯片择一地导通。
[0024] 可选地,在网络设备上电启动后的PCI-E初始化过程中,该报文转发方法进一步包括:第一PCI-E端点、第一接收缓存队列以及第一发送缓存队列由第一CPU通过驱动第一PCI-E根复合体配置;第二PCI-E端点、第二接收缓存队列以及第二发送缓存队列由第二CPU通过驱动第二PCI-E根复合体配置。
[0025] 可选地,该报文转发方法进一步包括:通过第一CPU的控制管脚和第二CPU的控制管脚识别第一转发板和第二转发板的主备状态,当第一转发板为主用转发板时,将通过第一I/O总线接收的第一转发板处理后的第一下行数据报文流通过网络接口总线与网络接口芯片导通,当第二转发板为主用转发板时,将通过第二I/O总线接收的第二转发板处理后的第二下行数据报文流通过网络接口总线与网络接口芯片导通。
[0026] 可选地,在网络接口配置过程中,该报文转发方法进一步包括:当第一转发板为主用转发板时,从第一PCI-E根复合体接收第一CPU对网络接口总线控制器和网络接口芯片的初始化配置;当第二转发板为主用转发板时,从第二PCI-E根复合体接收第二CPU对网络接口总线控制器和网络接口芯片的初始化配置。
[0027] 可选地,在网络设备启动时,该报文转发方法进一步包括:当第一转发板为主用转发板时,通过第一管理总线从第一CPU获取对接口板的初始化配置,当第一转发板为主用转发板时,通过第二管理总线从第二CPU获取对接口板的初始化配置。
[0028] 通过上述的实施例,接口板的网络接口芯片从网络设备外部接收到的数据报文可以形成为通过第一I/O总线发送至第一转发板的第一上行数据报文流、以及通过第二I/O总线发送至第二转发板的第二上行数据报文流;因此,当第一转发板和第二转发板均能够实现正常转发时,可以同时存在分别通过第一I/O总线和第二I/O总线独立传输的第一下行数据报文流和第二下行数据报文流,并且,通过将第一下行数据报文流和第二下行数据报文流与网络接口芯片择一地导通,实现数据报文流的转发。可见,当转发板需要进行主备切换时,可以不需要对第一I/O总线和第二I/O总线中的任意一个执行物理切换操作,因此,上述实施例可以避免对I/O总线的物理切换操作及物理切换完成后的初始化过程,从而,上述实施例可以缩短主备切换导致的流量中断的时间。

附图说明

[0029] 图1为一个实施例中的网络设备的原理性示意图;
[0030] 图2a和图2b为如图1所示实施例的工作状态示意图;
[0031] 图3为一个实施例中基于PCI-E总线的网络设备的结构示意图;
[0032] 图4a和图4b为如图3所示实施例的工作状态示意图;
[0033] 图5为如图3所示的网络设备的扩展结构示意图;
[0034] 图6为一个实施例中用于网络设备中的报文转发方法的流程示意图;
[0035] 图7为一个实施例中的网络设备的初始化流程示意图。

具体实施方式

[0036] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
[0037] 如图1所示,在一个实施例中,网络设备10包括:
[0038] 第一转发板11;
[0039] 第二转发板12;
[0040] 接口板13,该接口板13具有逻辑装置131和网络接口芯片132,该逻辑装置131通过第一I/O总线21连接第一转发板11、通过第二I/O总线22连接第二转发板12、并通过网络接口总线23连接网络接口芯片132;
[0041] 其中,该逻辑装置131将网络接口芯片132从网络设备10的外部接收到的数据报文200a形成通过第一I/O总线21发送至第一转发板11的第一上行数据报文流211、以及通过第二I/O总线22发送至第二转发板12的第二上行数据报文流212;
[0042] 并且,该逻辑装置根据第一转发板11和第二转发板12的主备状态,将通过第一I/O总线21接收的第一转发板11处理后的第一下行数据报文流221和第二下行数据报文流222通过网络接口总线23与网络接口芯片132择一地导通,使网络接口芯片132可以在网络设备10的出方向上发出数据报文200b。
[0043] 其中,上述限定数据报文流方向的“上行”可以理解为从网络设备10的外部进入到网络设备10内部的方向(即,入方向),或者,也可以理解为从接口板13向第一转发板11和第二转发板12发送的方向;相应地,上述限定数据报文流方向的“下行”可以理解为从网络设备10的内部发出至网络设备10外部的方向(即,出方向),或者,也可以理解为从第一转发板11和第二转发板12向接口板13发送的方向。并且,“上行”和“下行”是用来限定相反的两个相对方向,而非表示绝对方向。
[0044] 上述的实施例所述的原理中,可以包括如图2a和图2b所示的两种状态:
[0045] 如图2a所示,当第一转发板11处于主用状态、第二转发板12处于备用状态时,逻辑装置131可以通过网络接口芯片132从网络设备10的外部接收到数据报文200a,形成通过第一I/O总线21发送至第一转发板11的第一上行数据报文流211和通过第二I/O总线22发送至第二转发板12的第二上行数据报文流212,并且,逻辑装置131从第一转发板11接收到的第一下行数据报文流221与网络接口芯片132导通,逻辑装置132从第二转发板12接收到的第二下行数据报文流222与网络接口芯片132断开,从而,网络接口芯片132向网络设备10的外部发出的数据报文200b为来自第一下行数据报文流221;
[0046] 如图2b所示,当第一转发板11处于备用状态、第二转发板12处于主用状态时,逻辑芯片131可以通过网络接口芯片132从网络设备10的外部接收到的数据报文200a,形成通过第一I/O总线21发送至第一转发板11的第一上行数据报文流211和通过第二I/O总线22发送至第二转发板12的第二上行数据报文流212,并且,逻辑装置131从第一转发板11接收到的第一下行数据报文流221与网络接口芯片132断开,逻辑装置131从第二转发板12接收到的第二下行数据报文流222与网络接口芯片132导通,从而,网络接口芯片132向网络设备10的外部发出的数据报文200b为来自第二下行数据报文流222。
[0047] 上述的图2a和图2b中,分别以备用状态的第二转发板22和备用状态的第一转发板21可以正常实现转发为例,因此,图2a中存在第二下行数据报文流222、图2b中存在第一下行数据报文流221。若图2a中的第二转发板22或图2b中的第一转发板21是由于自身的故障而切换成为备用状态的时,则图2a中的第二转发板22或图2b中的第一转发板21可能不具备在网络设备10的出方向上转发的能力,相应地,可能不存在图2a中的第二下行数据报文流
222或图2b中的第一下行数据报文流221。
[0048] 在上述的实施例中,接口板13通过相互独立的第一I/O总线21和第二I/O总线22分别连接第一转发板11和第二转发板12,并且,接口板13的网络接口芯片132在入方向上接收到的数据报文200a可以形成为通过第一I/O总线21发送至第一转发板11的第一上行数据报文流211、以及通过第二I/O总线22发送至第二转发板12的第二上行数据报文流212。
[0049] 从而,当分别处于主用状态和备用状态的第一转发板11和第二转发板12均能够实现正常转发时,可以同时存在分别通过第一I/O总线21和第二I/O总线22独立传输的第一下行数据报文流221和第二下行数据报文流222,从而,通过将第一下行数据报文流221和第二下行数据报文流222与网络接口芯片132择一地导通,即可实现下行数据报文流的转发。
[0050] 可见,当转发板需要主备切换时,可以不需要对第一I/O总线21和第二I/O总线22中的任意一个执行物理切换操作,因此,上述实施例可以避免对I/O总线的物理切换操作及物理切换完成后的初始化过程,从而,上述实施例可以缩短主备切换导致的流量中断的时间。
[0051] 另外,上述实施例中的第一转发板11和第二转发板12可以是至少具有转发功能的板体,并且,第一转发板11和/或第二转发板12还可以进一步集成控制、计算、存储等功能。即,上述的实施例将具有转发功能的板体称作转发板,并不意味着转发板的功能仅限于转发。
[0052] 当上述实施例中的第一I/O总线21和第二I/O总线22均选用PCI-E总线时,上述的流量中断时间的缩短程度可以更为明显。这是因为,PCI-E总线的一端会在转发板形成PCI-E RC(Root Complex,根复合体)、另一端会在接口板形成PCI-E Endpoint(端点),对PCI-E总线执行物理切换操作,会导致接口板的PCI-E Endpoint分别在不同转发板的PCI-E RC发生热拔出和热插入,并且,在晋升为主用状态的转发板执行的热插入过程,会导致流量中断达到10秒的量级,而如果避免对PCI-E总线的物理切换操作,则可以至少将流量中断降低至纳秒的量级。
[0053] 为了更好地理解上述实施例的方案基于PCI-E总线的应用,下面以第一I/O总线和第二I/O总线均选用PCI-E总线为例进行说明。
[0054] 如图3所示,在一个实施例中,网络设备30包括:
[0055] 第一转发板31,该第一转发板31具有连接第一PCI-E总线41的第一PCI-E RC 411、以及驱动第一PCI-E RC 411的第一CPU 310;其中,在图3中,第一PCI-E RC 411集成于第一转发板31的第一CPU 310,但可以理解的是,第一PCI-E RC 411也可以独立于第一CPU 310,并且,独立于第一CPU 310的第一PCI-E RC 411同样能够被第一CPU 310驱动;
[0056] 第二转发板32,该第二转发板32具有连接第二PCI-E总线42的第二PCI-E RC 421、以及驱动第二PCI-E RC 421的第二CPU 320;其中,在图3中,第二PCI-E RC 421集成于第二转发板32的第二CPU 320,但可以理解的是,第二PCI-E RC 421也可以独立于第二CPU 320,并且,独立于第二CPU 320的第二PCI-E RC 421同样能够被第二CPU 320驱动;
[0057] 接口板33,该接口板33具有逻辑装置331和网络接口芯片332,该逻辑装置331通过第一PCI-E总线41连接第一转发板31、并通过第二PCI-E总线42连接第二转发板32,并且,该逻辑装置331包括:
[0058] 连接第一PCI-E总线41的第一PCI-E Endpoint 412;
[0059] 连接第二PCI-E总线42的第二PCI-E Endpoint 422;
[0060] 连接第一PCI-E Endpoint 412的第一接收缓存队列413和第一发送缓存队列414;
[0061] 连接第二PCI-E Endpoint 422的第二接收缓存队列423和第二发送缓存队列424;
[0062] 通过网络接口总线43连接网络接口芯片332的网络接口总线控制器430;
[0063] 将网络接口总线控制器430分别连接第一接收缓存队列413和第二接收缓存队列423的复制驱动器440;
[0064] 将第一发送缓存队列414和第二发送缓存队424列择一地连接至网络接口总线控制器430的选择切换器450。
[0065] 请在参见图3的同时结合图4a,当第一转发板31处于主用状态、第二转发板32处于备用状态时:
[0066] 逻辑芯片331中的复制驱动器440将网络接口芯片332从网络设备30的外部接收到的数据报文400a复制、并存储至第一接收缓存队列413和第二接收缓存队列423中;
[0067] 第一PCI-E Endpoint 412读取第一接收缓存队列413、并通过第一PCI-E总线41向第一转发板31发送第一上行数据报文流811、以供第一CPU 310处理,第二PCI-E Endpoint 422读取第二接收缓存队列423、并通过第二PCI-E总线42向第二转发板32发送第二上行数据报文流812、以供第二CPU 320处理;
[0068] 第一PCI-E Endpoint 412还通过第一PCI-E总线41从第一转发板31接收经第一CPU 310处理后的第一下行数据报文流821、并填入第一发送缓存队列414,第二PCI-E Endpoint 412还通过第二PCI-E总线42从第二转发板32接收经第二CPU 320处理后的第二下行数据报文流822、并填入第二发送缓存队列424;
[0069] 并且,选择切换器450将第一发送缓存队列414连接至网络接口总线控制器430、并将第二发送缓存队424与网络接口总线控制器430断开,使缓存在第一发送缓存队列414中的第一下行数据报文流821可以被网络接口总线控制器430读取、并通过网络接口总线43向网络接口芯片332发送,从而,网络接口芯片332在网络设备40的出方向上发出的数据报文400b来自第一下行数据报文流821。
[0070] 请在参见图3的同时结合图4b,当第一转发板31处于备用状态、第二转发板32处于主用状态时:
[0071] 逻辑芯片331中的复制驱动器440将网络接口芯片332从网络设备30的外部接收到的数据报文400a复制、并存储至第一接收缓存队列413和第二接收缓存队列423中;
[0072] 第一PCI-E Endpoint 412读取第一接收缓存队列413、并通过第一PCI-E总线41向第一转发板31发送第一上行数据报文流811、以供第一CPU 310处理,第二PCI-E Endpoint 422读取第二接收缓存队列423、并通过第二PCI-E总线42向第二转发板32发送第二上行数据报文流812、以供第二CPU 320处理;
[0073] 第一PCI-E Endpoint 412还通过第一PCI-E总线41从第一转发板31接收经第一CPU 310处理后的第一下行数据报文流821、并填入第一发送缓存队列414,第二PCI-E Endpoint 412还通过第二PCI-E总线42从第二转发板32接收经第二CPU 320处理后的第二下行数据报文流822、并填入第二发送缓存队列424;
[0074] 并且,选择切换器450将第一发送缓存队列414与网络接口总线控制器430断开、并将第二发送缓存队424连接至网络接口总线控制器430,使缓存在第二发送缓存队列424中的第二下行数据报文流822可以被网络接口总线控制器430读取、并通过网络接口总线43向网络接口芯片332发送,从而,网络接口芯片332在网络设备40的出方向上发出的数据报文400b来自第二数据报文流420。
[0075] 在网络设备30上电启动时,主用转发板对接口板13通过板级初始化过程进行板级的初始化配置,例如板卡上电、解复位、板卡识别等。
[0076] 在板级初始化过程之后,进行PCI-E配置,包括第一PCI-E Endpoint 412、第二PCI-E Endpoint 422、第一接收缓存队列413和第一发送缓存队列414、第二接收缓存队列423和第二发送缓存队列424将被配置,可以是PCI-E协议的Endpoint Function(端点功能)配置,Endpoint Function配置可以通过板级初始化过程之后的PCI-E初始化过程实现。
[0077] 对于被第一PCI-E总线41独占的第一PCI-E Endpoint 412、以及第一接收缓存队列413和第一发送缓存队列414,可以由第一CPU 310通过驱动第一PCI-E总线41对端的第一PCI-E RC 411配置;例如,第一接收缓存队列413和第一发送缓存队列414可以映射在第一PCI-E Endpoint 412的预定空间内,第一PCI-E RC 411在第一CPU 310的驱动下配置第一PCI-E Endpoint 412,即可实现对第一PCI-E Endpoint 412、以及第一接收缓存队列413和第一发送缓存队列414的配置;
[0078] 对于被第二PCI-E总线42独占的第二PCI-E Endpoint 422、以及第二接收缓存队列423和第二发送缓存队列424,可以由第二CPU 320通过驱动第二PCI-E总线42对端的第二PCI-E RC 421配置;例如,第二接收缓存队列423和第二发送缓存队列424可以映射在第二PCI-E Endpoint 422的预定空间内,第二PCI-E RC 421在第二CPU 320的驱动下配置第二PCI-E Endpoint 422,即可实现对第二PCI-E Endpoint 422、以及第二接收缓存队列423和第二发送缓存队列424的配置;
[0079] 在PCI-E初始化配置过程之后,对网络接口总线控制器430和网络接口芯片332进行网络接口配置,网络接口配置可以包括例如自协商设置、双工或半双工配置、百兆或千兆配置等链路层配置。
[0080] 对于被第一PCI-E总线41和第二PCI-E总线42共用的网络接口总线控制器430和网络接口芯片332,可以由主用状态的转发板的PCI-E RC配置,即,若第一转发板31处于主用状态,则网络接口总线控制器430和网络接口芯片332可以由第一CPU 310通过驱动第一PCI-E RC 411配置,若第二转发板32处于主用状态,则网络接口总线控制器430和网络接口芯片332可以由第二CPU 320通过驱动第二PCI-E RC 421配置。
[0081] 另外,为了实现对第一转发板31和第二转发板32的主备状态识别、以及上述的板级初始化配置和网络接口配置,逻辑装置331可以进一步包括:
[0082] 状态识别模块510,连接第一转发板31的第一CPU 310的控制管脚511以及第二转发板32的第二CPU 320的控制管脚512,用于通过检测控制管脚511和512识别并记录第一转发板31和第二转发板32的主备状态,以供选择切换器450识别;
[0083] 板级配置模块520,通过第一管理总线521连接第一转发板31的第一CPU 310、通过第二管理总线522连接第二转发板32的第二CPU 320;并且,板级配置模块520可以通过状态识别模块510识别第一转发板31和第二转发板32的主备状态;在网络设备的上电启动时,若识别出第一转发板31处于主用状态,则板级配置模块通520过第一管理总线521从第一转发板31的第一CPU 310获取对接口板33的板级初始化配置,若识别出第二转发板32处于主用状态,则板级配置模块520通过第二管理总线522从第二转发板32的第二CPU 320获取对接口板33的板级初始化配置;
[0084] 网络接口配置模块530,可以通过状态识别模块510识别第一转发板31和第二转发板32的主备状态;若识别出第一转发板31处于主用状态,则网络接口配置模块530通过第一PCI-E Endpoint 412从第一PCI-E RC 411接收第一CPU 310对网络接口总线控制器430和网络接口芯片332的初始化配置,若识别出第二转发板32处于主用状态,则网络接口配置模块530通过第二PCI-E Endpoint 422从第二PCI-E RC 421接收第二CPU 320对网络接口总线控制器430和网络接口芯片332的初始化配置;以及,网络接口配置模块530在完成对网络接口总线控制器430的初始化配置后,驱动网络接口总线控制器430通过网络接口总线43配置网络接口芯片332。
[0085] 除了上述实施例中的网络设备,后续实施例还提供了一种用于网络设备中的报文转发方法。应用该报文转发方法的网络设备可以包括具有网络接口芯片的接口板、通过第一I/O总线连接接口板的第一转发板、以及通过第二I/O总线连接接口板的第二转发板。
[0086] 并且,如图6所示,该报文转发方法包括应用在接口板的如下步骤:
[0087] S61,将网络接口芯片从网络设备的外部接收到的数据报文形成通过第一I/O总线发送至第一转发板的第一上行数据报文流、以及通过第二I/O总线发送至第二转发板交互的第二上行数据报文流;
[0088] S62,根据第一转发板和第二转发板的主备状态,将通过第一I/O总线接收的第一转发板处理后的第一下行数据报文流和通过第二I/O总线接收的第二转发板处理后的第二下行数据报文流通过网络接口总线与网络接口芯片择一地导通。
[0089] 在应用该报文转发方法的网络设备中,若第一I/O总线为第一PCI-E总线、第二I/O总线为第二PCI-E总线,则:
[0090] 第一转发板可以具有连接第一PCI-E总线的第一PCI-E RC、以及驱动第一PCI-E RC的第一CPU;
[0091] 第二转发板可以具有连接第二PCI-E总线的第二PCI-E RC、以及驱动第二PCI-E RC的第二CPU;
[0092] 接口板具有连接第一PCI-E总线的第一PCI-E Endpoint和连接第二PCI-E总线的第二PCI-E Endpoint、连接第一PCI-E Endpoint的第一接收缓存队列和第一发送缓存队列、连接第二PCI-E Endpoint的第二接收缓存队列和第二发送缓存队列、以及通过网络接口总线连接网络接口芯片的网络接口总线控制器。
[0093] 相应地,该报文转发方法将网络接口总线控制器从网络接口芯片接收到的数据报文复制、并分别填充至第一接收缓存队列和第二接收缓存队列,以利用第一接收缓存队列形成第一上行数据报文流、利用第二接收缓存队列形成第二上行数据报文流;
[0094] 并且,该报文转发方法还可以将第一发送缓存队列和第二发送缓存队列择一地与网络接口总线控制器导通,以使第一下行数据报文流和第二下行数据报文流通过网络接口总线与网络接口芯片择一地导通。
[0095] 另外,上述实施例中的报文转发方法还可以实现网络设备的接口板的初始化过程,包括板级初始化配置、PCI-E初始化配置以及网络接口配置。
[0096] 如图7所示,以第一转发板在网络设备上电启动后的初始化过程中处于主用状态、第二转发板在网络设备上电起动后的初始化过程中处于备用状态为例,该初始化过程由第一转发板发起初始化流程、并包括:
[0097] S711,第一转发板对接口板进行板级初始化配置、并在板级初始化配置完成后通知第二转发板开始PCI-E初始化配置;
[0098] S712,第一转发板对接口板中的第一PCI-E Endpoint以及第一接收缓存队列和第一发送缓存队列进行PCI-E初始化配置,同时,第二转发板对接口板中的第二PCI-E Endpoint以及第二接收缓存队列和第二发送缓存队列进行PCI-E初始化配置;
[0099] S713,第一转发板对接口板的网络接口总线控制器和网络接口芯片进行网络接口配置。
[0100] 上述流程中由第一转发板和第二转发板执行的操作,可以理解为分别由第一CPU和第二CPU实现。同时,接口板可以通过第一转发板的第一CPU的控制管脚和第二转发板的第二CPU的控制管脚识别第一转发板和第二转发板的主备状态,
[0101] 为实现如图7所示的初始化过程中的板级初始化配置,该报文转发方法可以进一步从主用状态的第一或第二转发板的第一或第二PCI-E RC接收第一CPU或第二CPU对接口板的板级初始化配置。
[0102] 其中,接口板可以进一步通过第一管理总线连接第一转发板的第一CPU、进一步通过第二管理总线连接第二转发板的第二CPU,相应地,该报文转发方法进一步包括:
[0103] 若第一转发板处于主用状态,则通过第一管理总线从第一转发板的第一CPU获取对接口板的板级初始化配置;
[0104] 若第二转发板处于主用状态,则通过第二管理总线从第二转发板的第二CPU获取对接口板的板级初始化配置。
[0105] 对于如图7所示的PCI-E初始化配置可以包括:
[0106] 第一PCI-E Endpoint、第一接收缓存队列以及第一发送缓存队列可以由第一CPU通过驱动第一PCI-E RC配置;
[0107] 第二PCI-E Endpoint、第二接收缓存队列以及第二发送缓存队列可以由第二CPU通过驱动第二PCI-E RC配置;
[0108] 对于网络接口接口配置可以包括:当第一转发板为主用转发板时,从第一PCI-E根复合体接收第一CPU对网络接口总线控制器和网络接口芯片的初始化配置;当第二转发板为主用转发板时,从第二PCI-E根复合体接收第二CPU对网络接口总线控制器和网络接口芯片的初始化配置。
[0109] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。