首页 / 专利库 / 电信 / 收发信机 / 交换机错包修复方法、装置、交换机及存储介质

交换机错包修复方法、装置、交换机及存储介质

阅读:935发布:2024-02-26

专利汇可以提供交换机错包修复方法、装置、交换机及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 实施例 公开了一种交换机错包修复方法、装置、交换机及存储介质,该方法包括:在交换机启动过程中,交换芯片初始化完成后,进行交换芯片端口配置,以使所述交换芯片与FPGA在交换机启动过程中能够通信;根据所述FPGA发送的检测报文,确定所述交换芯片上出现错包的端口;配置所述FPGA,使得所述FPGA在交换机启动完毕后向出现错包的端口发送报文时,在所述报文末尾添加预设字节的数据;在配置恢复阶段之前取消所述交换芯片端口配置。本发明实施例在交换机启动完毕后,FPGA向交换芯片发送报文时,能保证交换芯片接收完整报文,修复了交换芯片收包丢字节的错包情况,恢复交换机正常收发报文的能 力 ,使交换机工作更加稳定。,下面是交换机错包修复方法、装置、交换机及存储介质专利的具体信息内容。

1.一种交换机错包修复方法,其特征在于,包括:
在交换机启动过程中,交换芯片初始化完成后,进行交换芯片端口配置,以使所述交换芯片与FPGA在交换机启动过程中能够通信;
根据所述FPGA发送的检测报文,确定所述交换芯片上出现错包的端口;
配置所述FPGA,使得所述FPGA在交换机启动完毕后向出现错包的端口发送报文时,在所述报文末尾添加预设字节的数据;
在配置恢复阶段之前取消所述交换芯片端口配置。
2.根据权利要求1所述的方法,其特征在于,进行交换芯片端口配置,包括:
将所述交换芯片的所有端口加入端口隔离组,以实现端口隔离;
使能所述交换芯片上与所述FPGA相连的端口处于连接状态。
3.根据权利要求1所述的方法,其特征在于,根据所述FPGA发送的检测报文,确定所述交换芯片上出现错包的端口,包括:
控制所述FPGA按照第一发包机制向所述交换芯片发送第一检测报文,根据所述交换芯片接收的所述第一检测报文确定所述交换芯片上出现错包的端口,其中,所述第一发包机制包括所述第一检测报文所包含的报文个数及相应的报文长度;或者,控制所述交换芯片按照第二发包机制向所述FPGA发送第二检测报文并接收所述FPGA返回的所述第二检测报文,根据所述交换芯片接收的所述第二检测报文确定所述交换芯片上出现错包的端口,其中,所述第二发包机制包括所述第二检测报文所包含的报文个数及相应的报文长度。
4.根据权利要求3所述的方法,其特征在于,根据所述交换芯片接收的第一检测报文或第二检测报文确定所述交换芯片上出现错包的端口,包括:
根据所述交换芯片接收的第一检测报文或第二检测报文,获取所述交换芯片各端口的收包统计信息;
根据所述各端口的收包统计信息确定所述交换芯片上各端口的错包率;
将错包率达到预设阈值的端口,确定为出现错包的端口。
5.根据权利要求1所述的方法,其特征在于,配置所述FPGA,包括:
配置所述FPGA的寄存器,并存储配置信息,其中,所述配置信息用于控制所述FPGA在交换机启动完毕后向出现错包的端口发送报文时,获取所述报文中的校验数据,并在所述报文末尾添加所述校验数据。
6.根据权利要求1所述的方法,其特征在于,在配置恢复阶段之前取消所述交换芯片端口配置,包括:
在配置恢复阶段之前,取消所述交换芯片与所述FPGA相连端口的强制连接,并取消所述交换芯片上所有端口的端口隔离。
7.一种交换机错包修复装置,其特征在于,包括:
端口配置模,用于在交换机启动过程中,交换芯片初始化完成后,进行交换芯片端口配置,以使所述交换芯片与FPGA在交换机启动过程中能够通信;
错包端口确定模块,用于根据所述FPGA发送的检测报文,确定所述交换芯片上出现错包的端口;
FPGA配置模块,用于配置所述FPGA,使得所述FPGA在交换机启动完毕后的通信过程中向出现错包的端口发送报文时,在所述报文的最后添加预设字节的数据;
端口配置取消模块,用于在配置恢复阶段之前取消所述交换芯片端口配置。
8.根据权利要求7所述的装置,其特征在于,所述端口配置模块包括:
端口隔离单元,用于将所述交换芯片的所有端口加入端口隔离组,以实现端口隔离;
端口使能连接单元,用于使能所述交换芯片上与所述FPGA相连的端口处于连接状态。
9.一种交换机,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的交换机错包修复方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的交换机错包修复方法。

说明书全文

交换机错包修复方法、装置、交换机及存储介质

技术领域

[0001] 本发明实施例涉及通信技术,尤其涉及一种交换机错包修复方法、装置、交换机及存储介质。

背景技术

[0002] 交换机收发包端口的结构示意图如图1所示,在加入FPGA(Field Programmable Gate Array,现场可编程阵列)处理模后,交换芯片(Switch)发送报文,该报文依次通过FPGA处理模块、PHY(Physical Layer,物理层)芯片和网口传输到相应的设备,完成报文发送(TX);其他设备发来的报文依次经过网口、PHY芯片和FPGA处理模块,传输到交换芯片,完成报文接收(RX)。其中,FPGA处理模块用于对收到的报文进行处理,例如增加一些字段以实现延时累加功能。
[0003] 如图2所示,交换芯片发送报文时,报文数据从交换芯片的MAC(Media Access Control,媒体访问控制)层出来后,会经过PCS层(Physical Coding Sublayer,物理编码子层)和SGMII接口(Serial Gigabit Media Independent Interface,串行千兆介质无关接口),进入PMA(Physical Media Attachment,物理媒介适配)层进行数/模转换处理,PMA层会把四个SGMII接口的四个SGMII信号混合成一个QSGMII(Quad SGMII,四倍SGMII)数据信号,然后与FPGA的QSGMII接口进行通信,FPGA把QSGMII数据信号解析成四个SGMII信号,然后再传入自己的PCS层和MAC层。其中,PMA层集成了串并转换器Serdes,主要用于串行化和解串,PCS层主要包括线路编码和CRC校验编码。
[0004] 交换芯片接收报文时,处理过程与发送报文相反。报文数据从FPGA的MAC层出来后,经过PCS层和SGMII接口,进入PMA层进行数/模转换处理,PMA层会把四个SGMII接口的四个SGMII信号混合成一个QSGMII数据信号,然后交换芯片的QSGMII接口进行接收处理,交换芯片会把接收的QSGMII数据信号解析为四个SGMII信号,然后传递给自己的PCS层和MAC层进行处理。
[0005] 由于交换芯片和FPGA不是同一个厂家,QSGMII在适配后进行收发包通信时往往会出现一些问题,导致交换芯片和FPGA之间通信出现错包,例如,交换芯片接收的每个报文的最后一个或多个字节丢失,造成该端口所有收到的包都是错包。

发明内容

[0006] 本发明提供一种交换机错包修复方法、装置、交换机及存储介质,以修复交换芯片与其相连的FPGA不属于同一厂家导致的交换芯片收包丢字节的错包情况,使得交换机工作更加稳定。
[0007] 第一方面,本发明实施例提供了一种交换机错包修复方法,包括:
[0008] 在交换机启动过程中,交换芯片初始化完成后,进行交换芯片端口配置,以使所述交换芯片与FPGA在交换机启动过程中能够通信;
[0009] 根据所述FPGA发送的检测报文,确定所述交换芯片上出现错包的端口;
[0010] 配置所述FPGA,使得所述FPGA在交换机启动完毕后向出现错包的端口发送报文时,在所述报文末尾添加预设字节的数据;
[0011] 在配置恢复阶段之前取消所述交换芯片端口配置。
[0012] 可选的,进行交换芯片端口配置,包括:
[0013] 将所述交换芯片的所有端口加入端口隔离组,以实现端口隔离;
[0014] 使能所述交换芯片上与所述FPGA相连的端口处于连接状态。
[0015] 可选的,根据所述FPGA发送的检测报文,确定所述交换芯片上出现错包的端口,包括:
[0016] 控制所述FPGA按照第一发包机制向所述交换芯片发送第一检测报文,根据所述交换芯片接收的所述第一检测报文确定所述交换芯片上出现错包的端口,其中,所述第一发包机制包括所述第一检测报文所包含的报文个数及相应的报文长度;或者,[0017] 控制所述交换芯片按照第二发包机制向所述FPGA发送第二检测报文并接收所述FPGA返回的所述第二检测报文,根据所述交换芯片接收的所述第二检测报文确定所述交换芯片上出现错包的端口,其中,所述第二发包机制包括所述第二检测报文所包含的报文个数及相应的报文长度。
[0018] 可选的,根据所述交换芯片接收的第一检测报文或第二检测报文确定所述交换芯片上出现错包的端口,包括:
[0019] 根据所述交换芯片接收的第一检测报文或第二检测报文,获取所述交换芯片各端口的收包统计信息;
[0020] 根据所述各端口的收包统计信息确定所述交换芯片上各端口的错包率;
[0021] 将错包率达到预设阈值的端口,确定为出现错包的端口。
[0022] 可选的,配置所述FPGA,包括:
[0023] 配置所述FPGA的寄存器,并存储配置信息,其中,所述配置信息用于控制所述FPGA在交换机启动完毕后向出现错包的端口发送报文时,获取所述报文中的校验数据,并在所述报文末尾添加所述校验数据。
[0024] 可选的,在配置恢复阶段之前取消所述交换芯片端口配置,包括:
[0025] 在配置恢复阶段之前,取消所述交换芯片与所述FPGA相连端口的强制连接,并取消所述交换芯片上所有端口的端口隔离。
[0026] 第二方面,本发明实施例还提供了一种交换机错包修复装置,包括:
[0027] 端口配置模块,用于在交换机启动过程中,交换芯片初始化完成后,进行交换芯片端口配置,以使所述交换芯片与FPGA在交换机启动过程中能够通信;
[0028] 错包端口确定模块,用于根据所述FPGA发送的检测报文,确定所述交换芯片上出现错包的端口;
[0029] FPGA配置模块,用于配置所述FPGA,使得所述FPGA在交换机启动完毕后的通信过程中向出现错包的端口发送报文时,在所述报文的最后添加预设字节的数据;
[0030] 端口配置取消模块,用于在配置恢复阶段之前取消所述交换芯片端口配置。
[0031] 可选的,所述端口配置模块包括:
[0032] 端口隔离单元,用于将所述交换芯片的所有端口加入端口隔离组,以实现端口隔离;
[0033] 端口使能连接单元,用于使能所述交换芯片上与所述FPGA相连的端口处于连接状态。
[0034] 第三方面,本发明实施例还提供了一种交换机,包括:
[0035] 一个或多个处理器;
[0036] 存储器,用于存储一个或多个程序,
[0037] 当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的交换机错包修复方法。
[0038] 第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的交换机错包修复方法。
[0039] 本发明实施例在交换芯片初始化完成后,进行交换芯片端口配置,以使交换芯片与FPGA在交换机启动过程中能够通信;利用FPGA发送的检测报文确定交换芯片上出现错包的端口;配置FPGA,使得FPGA在交换机启动完毕后向出现错包的端口发送报文时,在该报文末尾添加预设字节的数据;在配置恢复阶段之前取消交换芯片端口配置。由此,在交换机启动完毕后,FPGA向交换芯片发送报文时,能够保证交换芯片接收完整报文,修复了交换芯片收包丢字节的错包情况,恢复交换机正常收发报文的能,使得交换机工作更加稳定。附图说明
[0040] 图1是现有技术的交换机收发包端口的结构示意图;
[0041] 图2是现有技术的交换芯片与FPGA的报文传输示意图;
[0042] 图3是本发明实施例一提供的交换机错包修复方法的流程图
[0043] 图4是本发明实施例二提供的交换机错包修复方法的流程图;
[0044] 图5是本发明实施例三提供的交换机错包修复装置的结构示意图;
[0045] 图6是本发明实施例四提供的交换机的结构示意图。

具体实施方式

[0046] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0047] 本发明实施例提供的交换机错包修复方案,在交换机启动过程中执行。交换机启动过程包括:引导阶段、加载启动阶段和配置恢复阶段。
[0048] 其中,引导阶段主要是将交换机的操作系统内核装入内存并启动该交换机,通常可以通过位于交换机内存中的启动引导程序的特殊代码(即boot引导文件)来完成,具体完成如下操作:定位操作系统内核代码在外存的具体位置、按照要求正确将操作系统内核装入内存、以及运行操作系统内核。具体的,在接收到启动指令时,从交换机指定存储位置读取boot引导文件并执行,通过运行该boot引导文件对交换机进行自检,将操作系统内核装入内存从而引导启动该交换机。
[0049] 加载启动阶段主要是对交换机中各个器件的功能信息、支持的协议信息以及内部的硬件模块结构等进行初始化,例如对硬件(如交换机中的内存、交换芯片和PHY芯片)、电路逻辑等的初始化,以及对内核数据结构的初始化,如MAC地址表、接口参数等。具体可以通过交换机flash中存储的配置信息对应执行初始化操作。
[0050] 配置恢复阶段主要是根据交换机内存中存储的配置信息进行配置恢复操作,以便在交换机启动完毕后的正常工作中实现对应的配置功能。交换机的配置信息包括:出厂配置的端口基本属性信息及端口地址信息,端口之间的交换关系,默认执行的功能协议,各个端口对应的虚拟局域网(Virtual Local Area Network,VLAN)信息,以及用户根据自身需求后续添加设置的信息等。配置恢复操作是指根据各个配置信息,对相应的交换机中保存的各个端口的硬件关系表和/或属性记录表进行相应的修改,从而实现配置信息的配置恢复。交换机配置恢复时,通过运行配置信息即可执行对应的功能。
[0051] 本发明实施例提供的交换机错包修复方案,具体在交换机启动过程中的交换芯片初始化完成后且在配置恢复阶段之前执行,以免用于修复错包的相关配置对配置恢复阶段的端口相关信息的配置恢复操作产生影响。
[0052] 实施例一
[0053] 图3是本发明实施例一提供的交换机错包修复方法的流程图,本实施例可适用于交换机中交换芯片错包修复的情况,特别是由于交换芯片与FPGA不属于同一厂家导致的交换芯片错包情况。该方法可以由交换机错包修复装置来执行,该装置可以通过软件和/或硬件实现,该装置可集成在交换机中,例如,集成在交换机的中央处理器(Central Processing Unit,CPU)。如图3所示,该方法具体包括如下步骤:
[0054] S310,在交换机启动过程中,交换芯片初始化完成后,进行交换芯片端口配置,以使所述交换芯片与FPGA在交换机启动过程中能够通信。
[0055] 本实施例涉及交换芯片与FPGA的通信,因此需要在交换芯片初始化完成后,才进行相关的配置、检测及修复。在交换机未启动完毕时,不希望交换机上的端口进行报文的转发,因此需要对交换芯片的端口进行相应的配置。交换芯片端口配置包括:端口隔离和端口使能连接。
[0056] 端口隔离是为了在交换机未启动完成时,避免端口进行报文转发,例如,若不隔离端口,其他端口将某端口收到的报文进行转发,会对相应的设备或系统产生影响。具体的,可以通过端口隔离组实现端口隔离,也就是将交换芯片的所有端口加入到端口隔离组中,组内的各端口相互隔离。
[0057] 端口使能连接是为了将交换芯片上与FPGA相连的端口设置为连接状态(link up),使得二者能够通过处于连接状态的端口进行通信。在交换机启动过程中,各端口默认处于阻塞状态(link down),端口在阻塞状态下无法转发报文,因此,在端口配置时需要将端口使能连接,也就是使能交换芯片上与FPGA相连的端口处于连接状态。
[0058] S320,根据所述FPGA发送的检测报文,确定所述交换芯片上出现错包的端口。
[0059] 其中,检测报文用于检测交换芯片与FPGA进行通信时,交换芯片上的哪些端口会出现收错包的情况,例如,交换芯片所收到的报文的最后一个或多个字节丢失。
[0060] S330,配置所述FPGA,使得所述FPGA在交换机启动完毕后向出现错包的端口发送报文时,在所述报文末尾添加预设字节的数据。
[0061] 其中,配置FPGA的目的在于,使FPGA在后续与交换芯片的通信过程中,针对交换芯片上出现错包的端口,采取一些措施,以保证交换芯片能够接收到完整的正常的报文,避免收包丢字节的情况。
[0062] 可选的,预设字节的数据可以是报文中携带的校验数据,配置FPGA包括:配置FPGA的寄存器,并存储配置信息,其中,所述配置信息用于控制所述FPGA在交换机启动完毕后向出现错包的端口发送报文时,获取所述报文中的校验数据,并在所述报文末尾添加所述校验数据。
[0063] 为了提高接收端接收到正确数据的概率,可以在传输的报文中加入校验数据,校验可以使用循环冗余校验(Cyclic Redundancy Check,CRC)、奇偶校验等方式。对于固定的校验方式,其校验数据所占用的字节是固定的,即上述预设字节,例如,CRC校验数据占4个字节,在对于CRC校验方式,可以在报文末尾添加4个字节的校验数据。FPGA接收到报文以后,需要对报文进行处理后,再发送给交换芯片,在处理报文的过程中,FPGA可以获取报文中携带的校验数据,进而可以在发送处理后的报文给交换芯片时,在该报文末尾添加相应的校验数据。由此,交换芯片通过错包端口接收到的报文即使存在丢失CRC校验数据的问题,由于在报文末尾添加了重复的校验数据,因此仍可以保证交换芯片接收到完整的报文。
[0064] 对于交换芯片上未出现错包的端口,无需对FPGA进行相应配置,FPGA向交换芯片上的非错包端口正常发送报文即可。
[0065] S340,在配置恢复阶段之前取消所述交换芯片端口配置。
[0066] 其中,与交换芯片端口配置相对应,取消交换芯片端口配置包括:取消端口隔离和取消端口使能连接。具体的,取消交换芯片与FPGA相连端口的强制连接,即设置交换芯片与FPGA相连端口的状态为阻塞状态;取消交换芯片上所有端口的端口隔离,即从端口隔离组中删除交换芯片的所有端口。在配置恢复阶段之前,取消上述交换芯片端口配置,以避免上述交换芯片端口配置影响交换机启动过程中的端口相关信息的配置恢复。
[0067] 取消交换芯片端口配置后,可以继续执行交换机启动过程中的配置恢复阶段,当交换机启动完毕后,交换机可以正常工作。
[0068] 本实施例的技术方案,在交换芯片初始化完成后,进行交换芯片端口配置,以使交换芯片与FPGA在交换机启动过程中能够通信;利用FPGA发送的检测报文确定交换芯片上出现错包的端口;配置FPGA,使得FPGA在交换机启动完毕后向出现错包的端口发送报文时,在该报文末尾添加预设字节的数据;在配置恢复阶段之前取消交换芯片端口配置。由此,在交换机启动完毕后,FPGA向交换芯片发送报文时,能够保证交换芯片接收完整报文,修复了交换芯片收包丢字节的错包情况,恢复交换机正常收发报文的能力,使得交换机工作更加稳定。
[0069] 需要说明的是,每次启动交换机时,均可以执行本发明实施例所述的交换机错包修复方法,以保证交换机在这次启动以后能够正常收发报文。
[0070] 实施例二
[0071] 本实施例在上述实施例的基础上,对确定交换芯片上出现错包的端口进行了优化。与上述实施例相同或相应的术语解释,本实施例不再赘述。
[0072] 可选的,S320包括:控制所述FPGA按照第一发包机制向所述交换芯片发送第一检测报文,根据所述交换芯片接收的所述第一检测报文确定所述交换芯片上出现错包的端口,其中,所述第一发包机制包括所述第一检测报文所包含的报文个数及相应的报文长度;或者,控制所述交换芯片按照第二发包机制向所述FPGA发送第二检测报文并接收所述FPGA返回的所述第二检测报文,根据所述交换芯片接收的所述第二检测报文确定所述交换芯片上出现错包的端口,其中,所述第二发包机制包括所述第二检测报文所包含的报文个数及相应的报文长度。
[0073] 进一步的,根据所述交换芯片接收的第一检测报文或第二检测报文确定所述交换芯片上出现错包的端口,包括:根据所述交换芯片接收的第一检测报文或第二检测报文,获取所述交换芯片各端口的收包统计信息;根据所述各端口的收包统计信息确定所述交换芯片上各端口的错包率;将错包率达到预设阈值的端口,确定为出现错包的端口。
[0074] 图4是本发明实施例二提供的交换机错包修复方法的流程图,如图4所示,该方法具体包括:
[0075] S410,交换芯片初始化完成。
[0076] S420,将交换芯片的所有端口相互隔离。
[0077] S430,使能交换芯片上与FPGA相连的端口处于连接状态(link up)。
[0078] S441,使能FPGA发包,即,控制FPGA按照第一发包机制向交换芯片发送第一检测报文。
[0079] S442,设置FPGA或PHY环回,使能交换芯片发包,即,控制交换芯片按照第二发包机制向FPGA发送第二检测报文并接收FPGA返回的第二检测报文。
[0080] 其中,步骤S441与步骤S442是并列关系,可以任选其一执行。
[0081] 第一发包机制是预先在FPGA中设置好的信息,包括:报文长度和报文个数,具体的,第一发包机制规定了第一检测报文所包含的报文个数及相应的报文长度。第二发包机制是预先在交换芯片中设置好的信息,包括:报文长度和报文个数,具体的,第二发包机制规定了第二检测报文所包含的报文个数及相应的报文长度。当然,检测报文所包含的报文个数也可以通过发送时长的度来限定。例如,发送3000个长度为40字节的报文;又如,发送长度为40字节的报文,发送时长持续50ms后停止报文的发送。检测报文中所包含的各报文的报文长度可以相同,也可以不同。本实施例对检测报文的具体内容不作限制和要求,只要能够通过检测报文确定交换芯片上出现错包的端口即可。
[0082] 在步骤S442中,由交换芯片发出并返回到交换芯片的检测报文,可以是从FPGA直接返回的,也可以是经由PHY后从FPGA返回的,对于后一种情况,需要预先对PHY进行设置,使PHY对所接收的报文进行环回处理。
[0083] S450,根据交换芯片接收的检测报文,获取交换芯片各端口的收包统计信息。
[0084] S460,根据收包统计信息判断交换芯片上是否有出现错包的端口。如果是,执行S470,如果否,执行S480。
[0085] 具体的,可以根据各端口的收包统计信息确定交换芯片上各端口的错包率;将错包率达到预设阈值的端口,确定为出现错包的端口。其中,交换芯片自身具有错误报文的统计功能,根据收包统计信息可以确定交换芯片上各端口的错包率。预设阈值可以根据用户实际需求自行设置,例如,设置为20%,错包率达到20%即认为该端口是出现错包的端口。
[0086] S470,配置FPGA,使得FPGA在交换机启动完毕后向出现错包的端口发送报文时,在该报文末尾添加预设字节的数据。
[0087] S480,在配置恢复阶段之前,取消交换芯片与FPGA相连端口的强制连接。
[0088] S490,在配置恢复阶段之前,取消交换芯片所有端口的隔离。
[0089] 本实施例的技术方案,提供两种方式,使得交换芯片接收来自于FPGA的检测报文,根据检测报文的接收情况确定交换芯片上出现错包的端口,进而可以针对错包端口进行FPGA的配置,以在交换机启动完毕后,FPGA向交换芯片发送报文时,能够保证交换芯片接收完整报文,修复了交换芯片收包丢字节的错包情况,恢复交换机正常收发报文的能力,使得交换机工作更加稳定。
[0090] 实施例三
[0091] 图5是本发明实施例三提供的交换机错包修复装置的结构示意图,如图5所示,该装置包括:
[0092] 端口配置模块510,用于在交换机启动过程中,交换芯片初始化完成后,进行交换芯片端口配置,以使所述交换芯片与FPGA在交换机启动过程中能够通信;
[0093] 错包端口确定模块520,用于根据所述FPGA发送的检测报文,确定所述交换芯片上出现错包的端口;
[0094] FPGA配置模块530,用于配置所述FPGA,使得所述FPGA在交换机启动完毕后的通信过程中向出现错包的端口发送报文时,在所述报文的最后添加预设字节的数据;
[0095] 端口配置取消模块540,用于在配置恢复阶段之前取消所述交换芯片端口配置。
[0096] 可选的,所述端口配置模块510包括:
[0097] 端口隔离单元,用于将所述交换芯片的所有端口加入端口隔离组,以实现端口隔离;
[0098] 端口使能连接单元,用于使能所述交换芯片上与所述FPGA相连的端口处于连接状态。
[0099] 可选的,所述错包端口确定模块520包括:
[0100] 第一控制单元,用于控制所述FPGA按照第一发包机制向所述交换芯片发送第一检测报文,其中,所述第一发包机制包括所述第一检测报文所包含的报文个数及相应的报文长度;
[0101] 第一错包端口确定单元,用于根据所述交换芯片接收的所述第一检测报文确定所述交换芯片上出现错包的端口;
[0102] 或者,
[0103] 第二控制单元,用于控制所述交换芯片按照第二发包机制向所述FPGA发送第二检测报文并接收所述FPGA返回的所述第二检测报文,其中,所述第二发包机制包括所述第二检测报文所包含的报文个数及相应的报文长度;
[0104] 第二错包端口确定单元,用于根据所述交换芯片接收的所述第二检测报文确定所述交换芯片上出现错包的端口。
[0105] 可选的,所述第一错包端口确定单元具体用于:根据所述交换芯片接收的第一检测报文,获取所述交换芯片各端口的收包统计信息;根据所述各端口的收包统计信息确定所述交换芯片上各端口的错包率;将错包率达到预设阈值的端口,确定为出现错包的端口。
[0106] 可选的,所述第二错包端口确定单元具体用于:根据所述交换芯片接收的第二检测报文,获取所述交换芯片各端口的收包统计信息;根据所述各端口的收包统计信息确定所述交换芯片上各端口的错包率;将错包率达到预设阈值的端口,确定为出现错包的端口。
[0107] 可选的,所述FPGA配置模块530具体用于:配置所述FPGA的寄存器,并存储配置信息,其中,所述配置信息用于控制所述FPGA在交换机启动完毕后向出现错包的端口发送报文时,获取所述报文中的校验数据,并在所述报文末尾添加所述校验数据。
[0108] 可选的,所述端口配置取消模块540包括:
[0109] 端口连接取消单元,用于在配置恢复阶段之前,取消所述交换芯片与所述FPGA相连端口的强制连接;
[0110] 端口隔离取消单元,用于在配置恢复阶段之前,取消所述交换芯片上所有端口的端口隔离。
[0111] 本发明实施例所提供的交换机错包修复装置可执行本发明任意实施例所提供的交换机错包修复方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的交换机错包修复方法。
[0112] 实施例四
[0113] 本发明实施例四提供了一种交换机,包括:
[0114] 一个或多个处理器;
[0115] 存储器,用于存储一个或多个程序,
[0116] 当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的交换机错包修复方法。
[0117] 图6是本发明实施例四提供的交换机的结构示意图。图6示出了适于用来实现本发明实施方式的示例性交换机12的框图。图6显示的交换机12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0118] 如图6所示,交换机12的组件可以包括但不限于:一个或者多个处理器或者处理单元16(图6中以一个处理单元为例),存储器24,交换芯片14,FPGA处理模块18,PHY芯片20和对外端口22。
[0119] 存储器24作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的交换机错包修复方法对应的程序指令/模块(例如,交换机错包修复装置中的端口配置模块510、错包端口确定模块520、FPGA配置模块530和端口配置取消模块540)。处理单元16通过运行存储在存储器24中的软件程序、指令以及模块,从而执行交换机的各种功能应用以及数据处理,即实现上述的交换机错包修复方法。
[0120] 存储器24可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器24可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器24可进一步包括相对于处理单元16远程设置的存储器,这些远程存储器可以通过网络连接至交换机。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0121] 交换机12也可以与一个或多个外部设备(例如网关设备、交换机等)通信。这种通信可以通过对外端口22进行。在交换机启动过程中,处理单元16通过运行存储在存储器24中的软件程序、指令以及模块,实现上述的交换机错包修复方法之后,在交换机正常工作的过程中,交换芯片14发送报文,该报文依次通过FPGA处理模块18、PHY芯片20和对外端口22传输到相应的设备,完成报文发送;其他设备发来的报文依次经过对外端口22、PHY芯片20和FPGA处理模块18,FPGA处理模块18在该报文末尾添加预设字节的数据,例如4字节的CRC校验数据,传输到交换芯片14,完成报文接收。
[0122] 实施例五
[0123] 本发明实施例五还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的交换机错包修复方法。
[0124] 本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0125] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0126] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0127] 可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)域连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0128] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈