通用双冗余网卡切换的方法的制作技术

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本技术涉及一种通用双冗余网卡切换的方法,涉及双冗余网卡技术领域。该方法在VxWorks 操作系统的驱动层和MUX层之间增加一层虚拟网卡设备层,它负责管理多块物理网卡。当检测到网卡故障时,由虚拟网卡设备层负责切换到另一块网卡上。这种方法适用于VxWorks 操作系统下所有类型的网卡设备的切换,本技术提出的方法适用于所有类型的网卡,易于实现,具有通用性强,可靠性高,双冗余网卡切换时间短等优点,大大满足短事务、强实时系统的要求,最大限度地保证了嵌入式系统网络的安全性、可用性和可靠性。

技术要求

1.一种通用双冗余网卡切换的方法,其特征在于,该方法在VxWorks操作系统下通过MUX 接口装载并启动虚拟网卡驱动程序来实现。

2.如权利要求1所述的方法,其特征在于,该方法在VxWorks操作系统的驱动层和MUX层之间增加一层虚拟网卡设备层,该虚拟网卡设备层用于管理多块物理网卡,当检测到网卡故障时,由虚拟网卡设备层负责切换到另一块网卡上。

3.如权利要求2所述的方法,其特征在于,该方法包括以下步骤:

(1)在VxWorks操作系统的驱动层和MUX层之间增加一个虚拟网卡,即bond设备,并通过调用muxDevLoad函数装载bond设备的驱动程序bondEndLoad,从而实现在MUX层与驱动层之间实现一层虚拟网卡设备层;

(2)利用驱动程序bondEndLoad完成虚拟网卡设备层所管理的两个物理网卡的初始化、END_OBJ结构的初始化和底层驱动所需资源的分配;

(3)利用虚拟网卡设备层实现网卡链路检测和网卡切换。

4.如权利要求3所述的方法,其特征在于,步骤(2)中,驱动程序bondEndLoad功能的具体实现过程为:

检查初始的资源字串的合法性,并从所述资源字串中解析出网卡的类型和网卡的编号;

调用endObjInit函数创建发送处理时使用的互斥信号量,初始化相关协议列表,检查和控制网卡名称的长度,设置网卡编号和bond设备操作函数列表,清除多播地址信息;

调用muxBind函数向VxWorks操作系统注册对应的协议类型,将协议类型与bond设备的网络接口绑定,开始执行关闭处理函数、重启处理函数和出错处理函数;

调用muxIoctl函数为虚拟网卡设备层所管理的两个物理网卡设置相同的MAC地址;

调用mib2Init函数初始化MIB2接口单元;

调用endObjFlagSet函数设置网卡就绪标志位;

调用muxIoctl函数读取bond设备标志,若bond设备标志置位,则进行网卡切换操作。

5.如权利要求4所述的方法,其特征在于,步骤(3)中利用虚拟网卡设备层实现网卡链路检测具体为:在VxWorks操作系统的网络协议栈中,当驱动程序bondEndLoad给网络协议层传送数据时,如果有错误发生,则调用出错处理函数进行处理,在出错处理函数中得到当前网卡的连接状态LINKUP或者LINKDOWN,如果当前网卡的连接状态为LINKDOWN,则认为在网卡设备工作过程中检测到网卡链路故障,进行网卡切换操作。

6.如权利要求5所述的方法,其特征在于,步骤(3)中利用虚拟网卡设备层实现网卡切换的操作具体为:若当前工作的网卡的连接状态为LINKDOWN,则检查另一块网卡的连接状态是否正常,若另一块网卡的连接状态为LINKDOWN,表明两块网卡均故障,则结束;若另一块网卡的连接状态为LINKUP,则设置当前的活动网卡为另一块网卡,并调用muxLinkUpNotify函数通知MUX层当前网卡的连接状态并重新启动网络传输。

7.如权利要求4所述的方法,其特征在于,所述两个网卡之间用两个Hub互连。

8.如权利要求4所述的方法,其特征在于,所述两个网卡之间用两个交换机互连。

技术说明书

一种通用双冗余网卡切换的方法

技术领域

本技术涉及双冗余网卡技术领域,具体涉及一种通用双冗余网卡切换的方法。

背景技术

为了提高嵌入式系统网络通讯的健壮性和可靠性,通常在系统内部采用双网卡结构,它们之间用两个Hub或交换机互连。在网络通讯的过程中,当其中一块网卡故障、网线损坏、Hub或交换机故障时,整个网络仍然能正常通讯。

目前在VxWorks操作系统下实现双冗余网卡切换的方法有很多种,有的在应用层创建任务,在任务中通过查询网卡寄存器状态进行网卡切换,这种方法的缺点是网卡切换时间过长,而且网卡寄存器状态发生跳变容易导致误切换;有的在网卡驱动层通过查询网卡寄存器状态进行网卡切换,这种方法提高了网卡切换的时间,但是需要修改每种类型网卡的驱动程序,不是一种通用的实现双冗余网卡切换的方法。

为了解决上述双机冗余网卡切换中存在的不足,提高VxWorks操作系统下嵌入式系统设备网络通讯的可靠运行,需要提出一种通用双冗余网卡切换的方法。

技术内容

(一)要解决的技术问题

本技术要解决的技术问题是:如何实现一种通用双冗余网卡切换的方法,有效地保证嵌入式系统稳定、可靠、有效和持续运行。

(二)技术方案

为了解决上述技术问题,本技术提供了一种通用双冗余网卡切换的方法,该方法在VxWorks操作系统下通过MUX接口装载并启动虚拟网卡驱动程序来实现。

优选地,该方法在VxWorks操作系统的驱动层和MUX层之间增加一层虚拟网卡设备层,该虚拟网卡设备层用于管理多块物理网卡,当检测到网卡故障时,由虚拟网卡设备层负责切换到另一块网卡上。

优选地,该方法包括以下步骤:

(1)在VxWorks操作系统的驱动层和MUX层之间增加一个虚拟网卡,即bond设备,并通过调用muxDevLoad函数装载bond设备的驱动程序bondEndLoad,从而实现在MUX层与驱动层之间实现一层虚拟网卡设备层;

(2)利用驱动程序bondEndLoad完成虚拟网卡设备层所管理的两个物理网卡的初始化、END_OBJ结构的初始化和底层驱动所需资源的分配;

(3)利用虚拟网卡设备层实现网卡链路检测和网卡切换。

相关文档
最新文档