[发明专利]一种通用双冗余网卡切换的方法在审
申请号: | 201910910818.X | 申请日: | 2019-09-25 |
公开(公告)号: | CN110690994A | 公开(公告)日: | 2020-01-14 |
发明(设计)人: | 赵昶宇;辛文增 | 申请(专利权)人: | 天津津航计算技术研究所 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;G06F9/4401 |
代理公司: | 11011 中国兵器工业集团公司专利中心 | 代理人: | 王雪芬 |
地址: | 300308 天津*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 双冗余网卡 虚拟网卡设备 网卡 嵌入式系统 强实时系统 可用性 通用性强 网卡故障 网卡设备 物理网卡 驱动层 多块 通用 检测 事务 网络 保证 管理 | ||
本发明涉及一种通用双冗余网卡切换的方法,涉及双冗余网卡技术领域。该方法在VxWorks操作系统的驱动层和MUX层之间增加一层虚拟网卡设备层,它负责管理多块物理网卡。当检测到网卡故障时,由虚拟网卡设备层负责切换到另一块网卡上。这种方法适用于VxWorks操作系统下所有类型的网卡设备的切换,本发明提出的方法适用于所有类型的网卡,易于实现,具有通用性强,可靠性高,双冗余网卡切换时间短等优点,大大满足短事务、强实时系统的要求,最大限度地保证了嵌入式系统网络的安全性、可用性和可靠性。
技术领域
本发明涉及双冗余网卡技术领域,具体涉及一种通用双冗余网卡切换的方法。
背景技术
为了提高嵌入式系统网络通讯的健壮性和可靠性,通常在系统内部采用双网卡结构,它们之间用两个Hub或交换机互连。在网络通讯的过程中,当其中一块网卡故障、网线损坏、Hub或交换机故障时,整个网络仍然能正常通讯。
目前在VxWorks操作系统下实现双冗余网卡切换的方法有很多种,有的在应用层创建任务,在任务中通过查询网卡寄存器状态进行网卡切换,这种方法的缺点是网卡切换时间过长,而且网卡寄存器状态发生跳变容易导致误切换;有的在网卡驱动层通过查询网卡寄存器状态进行网卡切换,这种方法提高了网卡切换的时间,但是需要修改每种类型网卡的驱动程序,不是一种通用的实现双冗余网卡切换的方法。
为了解决上述双机冗余网卡切换中存在的不足,提高VxWorks操作系统下嵌入式系统设备网络通讯的可靠运行,需要提出一种通用双冗余网卡切换的方法。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何实现一种通用双冗余网卡切换的方法,有效地保证嵌入式系统稳定、可靠、有效和持续运行。
(二)技术方案
为了解决上述技术问题,本发明提供了一种通用双冗余网卡切换的方法,该方法在VxWorks操作系统下通过MUX接口装载并启动虚拟网卡驱动程序来实现。
优选地,该方法在VxWorks操作系统的驱动层和MUX层之间增加一层虚拟网卡设备层,该虚拟网卡设备层用于管理多块物理网卡,当检测到网卡故障时,由虚拟网卡设备层负责切换到另一块网卡上。
优选地,该方法包括以下步骤:
(1)在VxWorks操作系统的驱动层和MUX层之间增加一个虚拟网卡,即bond设备,并通过调用muxDevLoad函数装载bond设备的驱动程序bondEndLoad,从而实现在MUX层与驱动层之间实现一层虚拟网卡设备层;
(2)利用驱动程序bondEndLoad完成虚拟网卡设备层所管理的两个物理网卡的初始化、END_OBJ结构的初始化和底层驱动所需资源的分配;
(3)利用虚拟网卡设备层实现网卡链路检测和网卡切换。
优选地,步骤(2)中,驱动程序bondEndLoad功能的具体实现过程为:
检查初始的资源字串的合法性,并从所述资源字串中解析出网卡的类型和网卡的编号;
调用endObjInit函数创建发送处理时使用的互斥信号量,初始化相关协议列表,检查和控制网卡名称的长度,设置网卡编号和bond设备操作函数列表,清除多播地址信息;
调用muxBind函数向VxWorks操作系统注册对应的协议类型,将协议类型与bond设备的网络接口绑定,开始执行关闭处理函数、重启处理函数和出错处理函数;
调用muxIoctl函数为虚拟网卡设备层所管理的两个物理网卡设置相同的MAC地址;
调用mib2Init函数初始化MIB2接口单元;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津津航计算技术研究所,未经天津津航计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910910818.X/2.html,转载请声明来源钻瓜专利网。