[发明专利]一种通用双冗余网卡切换的方法在审
申请号: | 201910910818.X | 申请日: | 2019-09-25 |
公开(公告)号: | CN110690994A | 公开(公告)日: | 2020-01-14 |
发明(设计)人: | 赵昶宇;辛文增 | 申请(专利权)人: | 天津津航计算技术研究所 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;G06F9/4401 |
代理公司: | 11011 中国兵器工业集团公司专利中心 | 代理人: | 王雪芬 |
地址: | 300308 天津*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 双冗余网卡 虚拟网卡设备 网卡 嵌入式系统 强实时系统 可用性 通用性强 网卡故障 网卡设备 物理网卡 驱动层 多块 通用 检测 事务 网络 保证 管理 | ||
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所述的方法,其特征在于,所述两个网卡之间用两个交换机互连。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津津航计算技术研究所,未经天津津航计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910910818.X/1.html,转载请声明来源钻瓜专利网。