CN111130886A - 网口切换方法、装置、板卡和网口切换系统 - Google Patents

网口切换方法、装置、板卡和网口切换系统 Download PDF

Info

Publication number
CN111130886A
CN111130886A CN201911364000.9A CN201911364000A CN111130886A CN 111130886 A CN111130886 A CN 111130886A CN 201911364000 A CN201911364000 A CN 201911364000A CN 111130886 A CN111130886 A CN 111130886A
Authority
CN
China
Prior art keywords
board card
state
network port
standby
switching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911364000.9A
Other languages
English (en)
Inventor
邹远鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Comba Network Systems Co Ltd
Original Assignee
Comba Telecom Systems China Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Comba Telecom Systems China Ltd filed Critical Comba Telecom Systems China Ltd
Priority to CN201911364000.9A priority Critical patent/CN111130886A/zh
Publication of CN111130886A publication Critical patent/CN111130886A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及一种网口切换方法、装置、板卡和网口切换系统。其中,从主用板卡角度实施的网口切换方法,包括步骤:根据当前运行状态,判断是否需由主用状态切换为备用状态;若判断的结果为是,则采用板间通信向任一备用板卡发送切换准备消息,并将自身工作状态变更为备用状态、以关闭网口报文收发;其中,各备用板卡为通过网口连接至外部网络的板卡;切换准备消息用于指示备用板卡将自身工作状态切换为主用状态、以启动网口报文收发。本申请对切换实时性要求比较高的设备具有明显的效果,可以广泛应用于多板卡备份切换的设备需求中,以及应用在支持硬件备份的通信设备等产品应用中。

Description

网口切换方法、装置、板卡和网口切换系统
技术领域
本申请涉及切换控制技术领域,特别是涉及一种网口切换方法、装置、板卡和网口切换系统。
背景技术
目前大型服务器上基本都支持高可用性备份切换功能,即某个板卡或服务器在运行异常时能自动切换到备用的板卡或服务器上继续工作。对于某些云存储的服务器,可能对切换的实时性并没有太多的限制,但是在通信、汽车电子等领域可能对切换的实时性有较高的要求。
设备的切换其中一个需要考虑的关键因素就是网口切换,因为是主备系统,因此对设备外的拓扑来说,只能感知到一个系统,并不知道其是否存在主备。常规的网口切换方式就是通断网口MII(Media Independent Interface,媒体独立接口)链路,即当该设备为主设备时,打通主设备网口的MII链路;当设备为备用设备时,关断设备网口的MII链路。
在实现过程中,发明人发现传统技术中至少存在如下问题:传统切换方式会引起MII链路重新建链,重新协商;往往耗时是在几百毫秒,甚至秒级别。这样的切换时延对通信设备来说是致命的,几百毫秒级别的切换时延会导致业务断开,用户能直接感知,产生不良的影响。
发明内容
基于此,有必要针对上述技术问题,提供一种能够快速切换网口的网口切换方法、装置、板卡和网口切换系统。
为了实现上述目的,一方面,本发明实施例提供了一种从主用板卡角度实施的网口切换方法,包括步骤:
根据当前运行状态,判断是否需由主用状态切换为备用状态;
若判断的结果为是,则采用板间通信向任一备用板卡发送切换准备消息,并将自身工作状态变更为备用状态、以关闭网口报文收发;其中,各备用板卡为通过网口连接至外部网络的板卡;
切换准备消息用于指示备用板卡将自身工作状态切换为主用状态、以启动网口报文收发。
在其中一个实施例中,将自身工作状态变更为备用状态、以关闭网口报文收发的步骤包括:
将虚拟文件系统的值由1修改为0,确认自身工作状态由主用状态切换为备用状态;
将自身工作状态变更为备用状态、以关闭网口报文收发的步骤之后,包括步骤:
从网口或上层应用接收到报文时,丢弃报文,并回收资源;资源包括用于收发报文的缓冲区域。
在其中一个实施例中,板间通信包括Socket通信;
根据当前运行状态,判断是否需由主用状态切换为备用状态的步骤之前,还包括步骤:通过网口与外部网络建立连接。
在其中一个实施例中,根据当前运行状态,判断是否需由主用状态切换为备用状态的步骤,包括:
在当前运行状态为异常状态时,确认需由主用状态切换为备用状态;异常状态包括以下状态中的任意一种或任意组合:板卡温度异常、板卡电源异常和软件异常。
一方面,本发明实施例还提供了一种从备用板卡角度实施的网口切换方法,包括步骤:
在接收到主用板卡基于板间通信传输的切换准备消息时,将自身工作状态由备用状态切换为主用状态、以启动网口报文收发。
在其中一个实施例中,将自身工作状态由备用状态切换为主用状态、以启动网口报文收发的步骤包括:
将虚拟文件系统的值由0修改为1,确认自身工作状态由备用状态切换为主用状态。
在其中一个实施例中,将自身工作状态由备用状态切换为主用状态、以启动网口报文收发的步骤之前,包括步骤:
从网口或上层应用接收到报文时,丢弃报文,并回收资源;资源包括用于收发报文的缓冲区域。
一种从主用板卡角度实施的网口切换装置,包括:
判断模块,用于根据当前运行状态,判断是否需由主用状态切换为备用状态;
消息发送模块,用于若判断的结果为是,则采用板间通信向任一备用板卡发送切换准备消息;其中,各备用板卡为通过网口连接至外部网络的板卡;
状态切换模块,用于将自身工作状态变更为备用状态、以关闭网口报文收发;切换准备消息用于指示备用板卡将自身工作状态切换为主用状态、以启动网口报文收发。
一种从备用板卡角度实施的网口切换装置,包括:
消息接收模块,用于接收主用板卡基于板间通信传输的切换准备消息;
切换模块,用于将自身工作状态由备用状态切换为主用状态、以启动网口报文收发。
一种板卡,板卡通过网口连接至外部网络;板卡包括CPU;
CPU用于执行前述任一项从主用板卡角度实施的方法的步骤;或
CPU用于执行前述任一项从备用板卡角度实施的方法的步骤。
一种网口切换系统,包括主用板卡,以及通过网口连接至外部网络的各备用板卡;
主用板卡用于执行前述任一项从主用板卡角度实施的方法的步骤;
备用板卡用于执行前述任一项从备用板卡角度实施的方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现前述任一项方法的步骤。
上述技术方案中的一个技术方案具有如下优点和有益效果:
本申请改变主备板卡的收发报文处理方式:主用板卡和备用板卡的网口可同时连上外部网络,但备用板卡的网口不会有报文发出,也不会对网口过来的数据做任何响应;而主用板卡的网口正常收发报文;当发生主备板卡切换时,本申请能够从某一板卡的网口快速切换到另一板卡的网口,不会引起硬件链路的切换,进而避免了硬件重新协商的建链过程,且切换时间很短,可达到微秒级别,本申请对切换实时性要求比较高的设备具有明显的效果,可以广泛应用于多板卡备份切换的设备需求中,以及应用在支持硬件备份的通信设备等产品应用中。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为一个实施例中网口切换方法的应用环境图;
图2为一个实施例中从主用板卡角度实施的网口切换方法的流程示意图;
图3为一个实施例中板卡间交互示意图;
图4为一个实施例中从备用板卡角度实施的网口切换方法的流程示意图;
图5为一个实施例中从主用板卡角度实施的网口切换装置的结构框图;
图6为一个实施例中从备用板卡角度实施的网口切换装置的结构框图;
图7为一个实施例中主备板卡报文接收流程示意图;
图8为一个实施例中主备板卡报文发送流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请涉及多板卡备份切换,网口切换;具体涉及主备份板卡切换时,对网口进行的快速切换,保障业务不受影响的处理技术。为了解决一些对板卡备份切换有很高实时性要求的产品,在进行主备切换时能够不影响业务;本申请提供了在板卡切换过程中、能够快速切换网口的方案,切换时延可以达到微秒级别,对切换实时性有了很大提升。
具体的,本申请提供了在多个板卡做硬件备份的应用场景下,从异常板卡快速切换到正常板卡时所需要实现的网口切换,进一步的,可以应用于如图1所示的应用环境中。其中,各板卡可通过网口与外部网络进行通信。其中,板卡可以包含CPU(CentralProcessing Unit,中央处理器)及其他硬件设备,如网口PHY(Port Physical Layer,端口物理层)芯片等等;本申请所描述的软件流程等,均可运行在该CPU上;即在CPU上运行的软件,控制整个板卡的行为。
在一个实施例中,如图2所示,提供了一种网口切换方法,以该方法应用于图1中的板卡为例进行说明,具体地,该方法可应用于当前处于主用状态的板卡(即主用板卡),包括以下步骤:
步骤202,根据当前运行状态,判断是否需由主用状态切换为备用状态。
其中,当前运行状态可以指板卡在运行过程中的工作状态,例如,当设备运行起来之后,板卡可以监测自己当前的工作状态,例如板卡温度,或者板卡电源或者软件是否异常等情况。而主用状态、备用状态可以指板卡的工作模式;
在一个具体的实施例中,根据当前运行状态,判断是否需由主用状态切换为备用状态的步骤,包括:
在当前运行状态为异常状态时,确认需由主用状态切换为备用状态;异常状态包括以下状态中的任意一种或任意组合:板卡温度异常、板卡电源异常和软件异常。
具体地,当设备运行起来之后,主用板卡在识别到自己板卡温度过高,或者自己板卡电源不稳或者软件有异常的情况时,确认当前需要从主用状态切换为备用状态。
在一个具体的实施例中,根据当前运行状态,判断是否需由主用状态切换为备用状态的步骤之前,还包括步骤:通过网口与外部网络建立连接。
具体而言,本申请提出允许主用板卡和备用板卡的网口同时连上外部网络;当所有板卡都连接到外部网络时,也即所有板卡的网口都已经跟外部网络建立好连接;板卡通过网口连接到外部网络,而所有的网口都有一个Link状态,Link上就代表网线两端建立好物理连接了。
步骤204,若判断的结果为是,则采用板间通信向任一备用板卡发送切换准备消息;切换准备消息用于指示备用板卡将自身工作状态切换为主用状态、以启动网口报文收发;其中,各备用板卡为通过网口连接至外部网络的板卡;
具体而言,当主用板卡检测到自身有问题,需要切换为备用板卡时,通过内部通信(例如,板间通信)通知任一备用板卡准备切换(即向备用板卡传输切换准备消息);而备用板卡在收到主用板卡的切换准备消息之后,则直接将自身的工作状态设置为主用状态;整个切换的过程完全是卡内部的操作,可以在微秒级别内就完成切换,极大的加速网口切换的过程。
在一个具体的实施例中,板间通信可以包括Socket通信;
具体地,本申请中内部通信可以通过TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联协议)Socket通信,Socket通信是网络通信的通用连接方式;两个板卡建立Socket连接之后就能在两端收发数据;这个内部通信就是用来两个板卡之间做交互,比如板卡1检测到温度过高,认为异常,可以通过这个通信方式发数据给板卡2,告诉它板卡1遇到的问题。
需要说明的是,本申请不仅适用于1个主用板卡与1个备用板卡,也适用于1个主用板卡对N个备用板卡,实现过程一致,只是任意时刻只有一个板卡为主,其余为备。
进一步的,针对切换准备消息用于指示备用板卡将自身工作状态切换为主用状态、以启动网口报文收发,启动网口报文收发功能也即打开网口报文处理;具体而言,本申请中的板卡在工作于备用模式(即自身工作状态为备用状态)时,就可以称之为备用板卡。而板卡在工作于主用模式(即自身工作状态为主用状态)时,就可以称之为主用板卡。本申请允许多个板卡的硬件链路直接建好连接,然后让所有板卡默认工作在备用状态(即备用模式)下,在该模式下,板卡CPU针对从网口接收到的数据,以及上层业务需要发往网口的数据做特殊处理,不经过物理网口,这样实现在硬件链路建链完成的情况下,外部拓扑设备无法感知备用板卡的存在。当需要发生板卡切换时,作为主用的板卡将允许对外收发报文,而作为备用的板卡依旧不能对外通信。
在实现过程中,于一个具体的示例,本申请提出针对网卡驱动处理做一些改动,当板卡工作在备用模式时,板卡CPU将收发的报文直接丢弃,并回收相关的硬件资源;当板卡工作在主用模式时,板卡CPU正常收发网口的报文。从而大大减少了在板卡切换过程中,网口需要重新建链的时间,缩短整个板卡切换的时间。
步骤206,将自身工作状态变更为备用状态、以关闭网口报文收发。
具体而言,如图3所示的板卡间交互示意,当主用板卡检测到自身有问题,需要切换为备用板卡时,则通过内部通信(例如,板间通信)通知任一备用板卡准备切换(即向任一板卡传输切换准备消息),然后将自身的状态设置为备用状态。而备用板卡在收到主用板卡的切换准备消息之后,则直接将自身的工作状态设置为主用状态。其中,关闭网口报文收发也即关闭自身网口报文处理。
在一个具体的实施例中,将自身工作状态变更为备用状态、以关闭网口报文收发的步骤之后,包括步骤:
从网口或上层应用接收到报文时,丢弃报文,并回收资源;资源包括用于收发报文的缓冲区域。
具体地,基于上述各板卡与外部网络建立好的连接,本申请进一步提出首先需要对板卡的默认状态进行统一设置,所有板卡默认工作状态都是备用状态,工作在备用状态下的板卡在网卡驱动接收到报文时,需要将报文丢弃,并回收资源,使得报文不会传递到上层处理;而上层想发往外部网络的报文也需要在网卡驱动截取,并丢弃报文。这样实现的效果就是备用板卡的网口跟外部网络已经建立好连接,但是没有实际报文交互,因此外部网络并不知道该网口对应的板卡信息。其中,本申请中的回收资源可以指回收skb buffer,而skb buffer是Linux内核(参见后文说明)用来收发网络报文所申请的缓冲区,也即用于收发报文的缓冲区域。
在一个具体的实施例中,将自身工作状态变更为备用状态、以关闭网口报文收发的步骤包括:
将虚拟文件系统的值由1修改为0,确认自身工作状态由主用状态切换为备用状态;
具体而言,本申请中的虚拟文件系统可以指在Linux内核下创建的Sysfs文件,也即本申请中的Sysfs是Linux内核中设计的一种虚拟的基于内存的文件系统;其中,Linux内核是运行于板卡CPU上的操作系统,主程序是运行在操作系统之上的;同时,本申请中的主用板卡和备用板卡都是运行Linux操作系统的,均具备该配置。
在一个具体的示例中,本申请提出首先在Linux内核下创建一个Sysfs文件,用来指示当前板卡是主用板卡(1)还是备用板卡(0),默认值是0;因此默认状态下,kernel(实时操作系统,也即上面描述的Linux内核)的网络接收驱动会从网口接收报文,然后将收到的报文内存直接释放掉,以实现丢包的目的;kernel的网络发送驱动会从上层接收数据报文,然后将内存释放掉,不发出真正的网卡,以实现发送方向的丢包。
进一步的,当某一张板卡根据当前运行状态判定需要变更为主用板卡时,该板卡运行的主程序设置Sysfs的值为1,通知kernel变更为主用状态;后续kernel的网络接收驱动将会从网口接收报文,并按照正常的处理流程将报文传递给上层应用;kernel的网络发送驱动则从上层应用接收报文,然后发送到网口出去,实现正常链路的通信。
需要说明的是,本申请提出的当某一张板卡根据当前运行状态判定需要变更为主用板卡的具体过程,可以采用如下方式实现:每个板卡插在机器上时,肯定都是插在不同的卡槽上的,每个卡槽都有唯一的ID;常用的方法是在机器上电的时候,ID靠前的为主,其余为备。比如在设计硬件时,给每个卡槽的ID设计为0开始计数;那每个板卡运行起来后都判断自己插在哪个卡槽上,插在卡槽0上的板卡就设置为主用板卡,其余板卡看到自己所在的槽位ID不是0,就设置为备用板卡;这是在设备上电时的情况。
当设备运行起来之后,主用板卡可能会识别到自己板卡温度过高,或者自己板卡电源不稳或者软件有异常的情况,就可以通过前文所说的内部通信告诉其它板卡“主用板卡有异常了,准备切换为备用板卡”;而备用板卡收到这个消息之后就可以从备用板卡切换为主板卡。
为了解决多个板卡做硬件备份的应用场景下,从异常板卡快速切换到正常板卡时所需要实现的网口切换,上述从主用板卡角度实施的网口切换方法中,通过改变主备板卡的收发报文处理方式,当发生主备板卡切换时能够从某一板卡的网口快速切换到另一板卡的网口,而且切换时间很短,可以达到微秒级别,可以广泛应用于多板卡备份切换的设备需求中。同时,本申请不会引起硬件链路的切换,因此避免了硬件重新协商的建链过程。
具体的,本申请通过修改板卡内部对报文的处理流程,在进行板卡切换时,能快速切换网口;本申请允许主用板卡和备用板卡的网口同时连上外部网络,但是在板卡内部出流程中做特殊处理,使得备用板卡的网口不会有报文发出,也不会对网口过来的数据做任何响应;而主用板卡的网口正常收发报文;大大减少了在板卡切换过程中,网口需要重新建链的时间,缩短整个板卡切换的时间。
在一个实施例中,如图4所示,提供了一种网口切换方法,以该方法应用于图1中的板卡为例进行说明,具体地,该方法可应用于当前处于备用状态的板卡(即备用板卡),包括以下步骤:
步骤S402,接收到主用板卡基于板间通信传输的切换准备消息;
步骤S404,将自身工作状态由备用状态切换为主用状态、以启动网口报文收发。
具体而言,备用板卡在接收到主用板卡基于板间通信传输的切换准备消息时,将自身工作状态由备用状态切换为主用状态,进而启动网口报文的正常收发。使得整个切换的过程完全是卡内部的操作,可以在微秒级别内就完成切换,极大的加速网口切换的过程。
在一个具体实施例中,将自身工作状态由备用状态切换为主用状态、以启动网口报文收发的步骤包括:
将虚拟文件系统的值由0修改为1,确认自身工作状态由备用状态切换为主用状态。
在一个具体实施例中,将自身工作状态由备用状态切换为主用状态、以启动网口报文收发的步骤之前,包括步骤:
从网口或上层应用接收到报文时,丢弃报文,并回收资源;资源包括用于收发报文的缓冲区域。
需要说明的是,备用板卡中上述步骤的具体实现过程可以参阅前文中对主用板卡的描述,此处不再赘述;本申请中主用板卡和备用板卡的配置一致,仅仅是根据当前工作状态的不同而予以命名的区分。
常规的硬件链路切换会引起MII链路重协商,建链时间可能达到几百毫秒或者几秒;而本申请能快速切换板卡的网口,切换都等待链路稳定的时间可以达到微秒级别;可以应用于对切换实时性有较高要求的产品系统中。其中,本申请允许多个板卡的硬件链路直接建好连接,然后让所有板卡默认工作在备用状态模式下,在该模式下,CPU针对从网口接收到的数据,以及上层业务需要发往网口的数据做特殊处理,不经过物理网口,这样实现在硬件链路建链完成的情况下,外部拓扑设备无法感知备用板卡的存在。当需要发生板卡切换时,作为主用的板卡将允许对外收发报文,而作为备用的板卡依旧不能对外通信。
在实现过程中,本申请提出对网卡驱动处理做一些改动,当工作在备用模式时,CPU将收发的报文直接丢弃,并回收相关的硬件资源;当工作在主用模式时,CPU正常收发网口的报文。
本申请可以在板卡切换时,快速切换网口,减少了切换在网口切换阶段的消耗时间,保障整个切换过程的实时性,对切换实时性要求比较高的设备具有明显的效果,可以广泛应用在支持硬件备份的通信设备等产品应用中。
应该理解的是,虽然图2、图4、图7和图8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图4、图7和图8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种从主用板卡角度实施的网口切换装置,包括:
判断模块510,用于根据当前运行状态,判断是否需由主用状态切换为备用状态;
消息发送模块520,用于若判断的结果为是,则采用板间通信向任一备用板卡发送切换准备消息;其中,各备用板卡为通过网口连接至外部网络的板卡;
状态切换模块530,用于将自身工作状态变更为备用状态、以关闭网口报文收发;切换准备消息用于指示备用板卡将自身工作状态切换为主用状态、以启动网口报文收发。
关于从主用板卡角度实施的网口切换装置的具体限定可以参见上文中对于从主用板卡角度实施的网口切换方法的限定,在此不再赘述。上述从主用板卡角度实施的网口切换装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图6所示,提供了一种从备用板卡角度实施的网口切换装置,包括:
消息接收模块610,用于接收主用板卡基于板间通信传输的切换准备消息;
切换模块620,用于将自身工作状态由备用状态切换为主用状态、以启动网口报文收发。
关于从备用板卡角度实施的网口切换装置的具体限定可以参见上文中对于从备用板卡角度实施的网口切换方法的限定,在此不再赘述。上述从备用板卡角度实施的网口切换装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种板卡,板卡通过网口连接至外部网络;板卡包括CPU;
CPU用于执行前述任一项从主用板卡角度实施的方法的步骤;或
CPU用于执行前述任一项从备用板卡角度实施的方法的步骤。
具体而言,如图7所示的主备板卡报文接收流程,以及图8所示的主备板卡报文发送流程;下面结合一个具体示例予以说明:
本申请通过修改板卡内部对报文的处理流程,在进行板卡切换时,能快速切换网口;本申请允许主用和备用板卡的网口同时连上外部网络,但是在板卡内部出流程中做特殊处理,使得备用板卡的网口不会有报文发出,也不会对网口过来的数据做任何响应;而主用板卡的网口正常收发报文;大大减少了在板卡切换过程中,网口需要重新建链的时间,缩短整个板卡切换的时间。
当所有板卡都连接到外部网络时,所有板卡的网口都已经跟外部网络建立好连接;因此首先需要对板卡的默认状态进行统一设置,所有板卡默认工作状态都是备用状态,工作在备用状态下的板卡在网卡驱动接收到报文时,需要将报文丢弃,并回收资源,使得报文不会传递到上层处理;而上层想发往外部网络的报文也需要在网卡驱动截取,并丢弃报文。这样实现的效果就是备用板卡的网口跟外部网络已经建立好连接,但是没有实际报文交互,因此外部网络并不知道该网口对应的板卡信息。
首先需要在Linux内核下创建一个Sysfs文件,用来指示当前板卡是主用板卡(1)还是备用板卡(0),默认值是0;因此默认状态下,kernel的网络接收驱动会从网口接收报文,然后将收到的报文内存直接释放掉,以实现丢包的目的;kernel的网络发送驱动会从上层接收数据报文,然后将内存释放掉,不发出真正的网卡,以实现发送方向的丢包。当某一张卡根据当前运行状态判定需要变更为主用板卡时,该板卡运行的主程序设置Sysfs的值为1,通知kernel变更为主用板卡状态;后续kernel的网络接收驱动将会从网口接收报文,并按照正常的处理流程将报文传递给上层应用;kernel的网络发送驱动则从上层应用接收报文,然后发送到网口出去,实现正常链路的通信。
例如,默认是卡1是主用板卡,卡2是备用板卡;在后续运行过程中,卡1和卡2的网口都已经建立好物理连接,只是在备用卡的内部将收到的报文丢弃,来避免备用卡对外通信影响链路的场景。当卡1检测到自身有问题,需要切换为备用卡时,通过内部通信通知卡2准备切换,然后将自身的状态设置为备用板卡;而卡2在收到卡1的切换准备消息之后,则直接将卡2的状态设置为主用板卡;整个切换的过程完全是卡内部的操作,可以在微秒级别内就完成切换,极大的加速网口切换的过程。
以上,本申请实现了在主备用板卡切换时能在微秒级别内快速切换主备网口,缩短整个切换流程的耗时;可以广泛应用于需要做主备切换的通信设备或其他需要用到网络的设备中。
在一个实施例中,如图1所示,提供了一种网口切换系统,包括主用板卡,以及通过网口连接至外部网络的各备用板卡;
主用板卡用于执行前述任一项从主用板卡角度实施的方法的步骤;
备用板卡用于执行前述任一项从备用板卡角度实施的方法的步骤。
其中,如图1所示,本申请不仅适用于1个主用板卡与1个备用板卡,也适用于1个主用板卡对N个备用板卡,实现过程一致,只是任意时刻只有一个板卡为主,其余为备。
本申请改变主备板卡的收发报文处理方式:主用板卡和备用板卡的网口可同时连上外部网络,但备用板卡的网口不会有报文发出,也不会对网口过来的数据做任何响应;而主用板卡的网口正常收发报文;当发生主备板卡切换时,本申请能够从某一板卡的网口快速切换到另一板卡的网口,不会引起硬件链路的切换,进而避免了硬件重新协商的建链过程,且切换时间很短,可达到微秒级别,本申请对切换实时性要求比较高的设备具有明显的效果,可以广泛应用于多板卡备份切换的设备需求中,以及应用在支持硬件备份的通信设备等产品应用中。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现前述任一项方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线式动态随机存储器(Rambus DRAM,简称RDRAM)、以及接口动态随机存储器(DRDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种网口切换方法,其特征在于,所述方法应用于主用板卡;所述方法包括步骤:
根据当前运行状态,判断是否需由主用状态切换为备用状态;
若所述判断的结果为是,则采用板间通信向任一备用板卡发送切换准备消息,并将自身工作状态变更为备用状态、以关闭网口报文收发;其中,各所述备用板卡为通过网口连接至外部网络的板卡;
所述切换准备消息用于指示所述备用板卡将自身工作状态切换为主用状态、以启动网口报文收发。
2.根据权利要求1所述的网口切换方法,其特征在于,将自身工作状态变更为备用状态、以关闭网口报文收发的步骤包括:
将虚拟文件系统的值由1修改为0,确认自身工作状态由主用状态切换为备用状态;
将自身工作状态变更为备用状态、以关闭网口报文收发的步骤之后,包括步骤:
从网口或上层应用接收到报文时,丢弃所述报文,并回收资源;所述资源包括用于收发报文的缓冲区域。
3.根据权利要求1所述的网口切换方法,其特征在于,所述板间通信包括Socket通信;
根据当前运行状态,判断是否需由主用状态切换为备用状态的步骤之前,还包括步骤:通过网口与所述外部网络建立连接。
4.根据权利要求1所述的网口切换方法,其特征在于,根据当前运行状态,判断是否需由主用状态切换为备用状态的步骤,包括:
在所述当前运行状态为异常状态时,确认需由主用状态切换为备用状态;所述异常状态包括以下状态中的任意一种或任意组合:板卡温度异常、板卡电源异常和软件异常。
5.一种网口切换方法,其特征在于,所述方法应用于通过网口连接至外部网络的备用板卡;所述方法包括步骤:
在接收到主用板卡基于板间通信传输的切换准备消息时,将自身工作状态由备用状态切换为主用状态、以启动网口报文收发。
6.根据权利要求5所述的网口切换方法,其特征在于,将自身工作状态由备用状态切换为主用状态、以启动网口报文收发的步骤包括:
将虚拟文件系统的值由0修改为1,确认自身工作状态由备用状态切换为主用状态。
7.根据权利要求5所述的网口切换方法,其特征在于,将自身工作状态由备用状态切换为主用状态、以启动网口报文收发的步骤之前,包括步骤:
从网口或上层应用接收到报文时,丢弃所述报文,并回收资源;所述资源包括用于收发报文的缓冲区域。
8.一种网口切换装置,其特征在于,所述装置应用于主用板卡,包括:
判断模块,用于根据当前运行状态,判断是否需由主用状态切换为备用状态;
消息发送模块,用于若所述判断的结果为是,则采用板间通信向任一备用板卡发送切换准备消息;其中,各所述备用板卡为通过网口连接至外部网络的板卡;
状态切换模块,用于将自身工作状态变更为备用状态、以关闭网口报文收发;所述切换准备消息用于指示所述备用板卡将自身工作状态切换为主用状态、以启动网口报文收发。
9.一种网口切换装置,其特征在于,所述装置应用于通过网口连接至外部网络的备用板卡,包括:
消息接收模块,用于接收主用板卡基于板间通信传输的切换准备消息;
切换模块,用于将自身工作状态由备用状态切换为主用状态、以启动网口报文收发。
10.一种板卡,其特征在于,所述板卡通过网口连接至外部网络;所述板卡包括CPU;
所述CPU用于执行权利要求1至4任一项所述方法的步骤;或
所述CPU用于执行权利要求5至7任一项所述方法的步骤。
11.一种网口切换系统,其特征在于,所述系统包括主用板卡,以及通过网口连接至外部网络的各备用板卡;
所述主用板卡用于执行权利要求1至4任一项所述方法的步骤;
所述备用板卡用于执行权利要求5至7任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
CN201911364000.9A 2019-12-26 2019-12-26 网口切换方法、装置、板卡和网口切换系统 Pending CN111130886A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911364000.9A CN111130886A (zh) 2019-12-26 2019-12-26 网口切换方法、装置、板卡和网口切换系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911364000.9A CN111130886A (zh) 2019-12-26 2019-12-26 网口切换方法、装置、板卡和网口切换系统

Publications (1)

Publication Number Publication Date
CN111130886A true CN111130886A (zh) 2020-05-08

Family

ID=70502824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911364000.9A Pending CN111130886A (zh) 2019-12-26 2019-12-26 网口切换方法、装置、板卡和网口切换系统

Country Status (1)

Country Link
CN (1) CN111130886A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416444A (zh) * 2020-11-17 2021-02-26 济南浪潮高新科技投资发展有限公司 一种板卡切换控制方法、装置、设备及介质
CN112948180A (zh) * 2021-02-28 2021-06-11 海南宝通实业公司 一种基于主控管理的板级热备方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1545268A (zh) * 2003-11-27 2004-11-10 中兴通讯股份有限公司 一种以太网接口节点备份的方法及系统
US20070030826A1 (en) * 2005-08-03 2007-02-08 Toshiba America Research, Inc. Seamless network interface selection, handoff and management in multi-IP network interface mobile devices
CN101123603A (zh) * 2007-07-05 2008-02-13 中兴通讯股份有限公司 可配置的以太网接口备份系统及方法
CN108804260A (zh) * 2017-04-28 2018-11-13 大唐移动通信设备有限公司 一种srio系统倒换的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1545268A (zh) * 2003-11-27 2004-11-10 中兴通讯股份有限公司 一种以太网接口节点备份的方法及系统
US20070030826A1 (en) * 2005-08-03 2007-02-08 Toshiba America Research, Inc. Seamless network interface selection, handoff and management in multi-IP network interface mobile devices
CN101123603A (zh) * 2007-07-05 2008-02-13 中兴通讯股份有限公司 可配置的以太网接口备份系统及方法
CN108804260A (zh) * 2017-04-28 2018-11-13 大唐移动通信设备有限公司 一种srio系统倒换的方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416444A (zh) * 2020-11-17 2021-02-26 济南浪潮高新科技投资发展有限公司 一种板卡切换控制方法、装置、设备及介质
CN112416444B (zh) * 2020-11-17 2023-07-07 山东浪潮科学研究院有限公司 一种板卡切换控制方法、装置、设备及介质
CN112948180A (zh) * 2021-02-28 2021-06-11 海南宝通实业公司 一种基于主控管理的板级热备方法
CN112948180B (zh) * 2021-02-28 2024-03-22 海南宝通实业公司 一种基于主控管理的板级热备方法

Similar Documents

Publication Publication Date Title
CN107544841B (zh) 虚拟机热迁移方法和系统
CN106817264B (zh) 一种链路故障检测的方法、装置和系统
CN102957623B (zh) 一种边界网关协议邻居的维护方法和设备
EP3310119B1 (en) Method and apparatus for processing network connection
CN110324375B (zh) 一种信息备份方法及相关设备
CN111343019B (zh) 一种重连方法、装置和存储介质
CN106982133B (zh) 一种更改虚拟网卡配置信息的方法、设备及系统
CN111130886A (zh) 网口切换方法、装置、板卡和网口切换系统
US10581669B2 (en) Restoring control-plane connectivity with a network management entity
CN112929225B (zh) 会话异常处理方法、装置、计算机设备和存储介质
CN107948063B (zh) 一种建立聚合链路的方法和接入设备
CN107360012B (zh) 一种链路状态处理方法及网络节点设备
CN112367255B (zh) 一种bfd会话处理方法、装置、存储介质及路由设备
EP3197109A1 (en) Sdn architecture, sdn architecture-based message forwarding method
WO2017128185A1 (zh) 控制服务连接的方法和终端
CN112333013A (zh) 自适应组网方法、装置、路由器及存储介质
CN109286575B (zh) 报文优先级配置方法、装置及网络设备
CN106169982B (zh) 扩展端口的处理方法、装置及系统
CN107968718B (zh) 一种确认主备用状态的方法、装置和设备
CN108282346B (zh) 软件升级方法及装置
CN113692006B (zh) 通信管理方法、接入网单元及通信系统
US11095514B2 (en) System and method for propagating anima network objective changes
CN106301835B (zh) 一种bfd建链的方法及其装置、路由器
CN112398731B (zh) 一种处理报文的方法和第一网络设备
CN106992878B (zh) 一种组播检测的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 510663 Shenzhou Road 10, Guangzhou Science City, Guangzhou economic and Technological Development Zone, Guangzhou, Guangdong

Applicant after: Jingxin Network System Co.,Ltd.

Address before: 510663 Shenzhou Road 10, Guangzhou Science City, Guangzhou economic and Technological Development Zone, Guangzhou, Guangdong

Applicant before: Comba Telecom System (China) Ltd.

CB02 Change of applicant information