一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种VxWorks下网卡MAC地址的操作方法与流程

2021-11-09 22:17:00 来源:中国专利 TAG:
一种vxworks下网卡mac地址的操作方法
技术领域
1.本发明涉及一种vxworks下网卡mac地址的操作方法,属于计算机技术领域。


背景技术:

2.通常情况下,对vxworks操作系统下网卡mac地址的操作主要包括读取mac地址和改写mac地址两种。由于网卡类型繁多,不同网卡的mac地址通常需要从指定的不同i/o地址中读取得到,即不同网卡读取mac地址的方法不统一。在一些特定的应用场合下,比如系统中存在双冗余网卡时,我们需要读出其中一块网卡的mac地址,并将另一块网卡的mac地址设置成和它相同的mac地址。


技术实现要素:

3.本发明解决的技术问题是:克服现有技术的不足,提供了一种vxworks下网卡mac地址的操作方法,实现对所有类型网卡的mac地址采用相同的方法读取和改写,并能通过配置脚本文件实现在vxworks操作系统启动后自动读取并设置各种网卡的mac地址。
4.本发明的技术解决方案是:一种vxworks下网卡mac地址的操作方法,包括如下步骤:
5.读取接插在安装vxworks操作系统设备上的不同类型网卡的mac地址;
6.根据需求通过vxworks操作系统修改网卡的mac地址。
7.进一步地,所述读取vxworks操作系统设备上的不同类型网卡的mac地址的方法为:通过调用vxworks操作系统中的muxioctl函数的eiocgaddr命令获取不同类型网卡的mac地址。
8.进一步地,所述通过vxworks操作系统修改网卡的mac地址的方法为:通过调用vxworks操作系统中的muxioctl函数的eiocsaddr命令设置或更改不同类型网卡的mac地址。
9.进一步地,所述根据需求通过vxworks操作系统修改网卡的mac地址,具体为:获取任一个网卡的mac地址后,将另一块网卡的mac地址设置成和它相同的mac地址。
10.进一步地,所述修改网卡的mac地址具体为:在vxworks操作系统中配置修改网卡mac地址的脚本和配置文件,在vxworks操作系统启动时进行加载并执行。
11.一种vxworks下网卡mac地址的操作系统,包括:
12.第一模块,读取接插在安装vxworks操作系统设备上的不同类型网卡的mac地址;
13.第二模块,根据需求通过vxworks操作系统修改网卡的mac地址。
14.进一步地,所述读取vxworks操作系统设备上的不同类型网卡的mac地址的方法为:通过调用vxworks操作系统中的muxioctl函数的eiocgaddr命令获取不同类型网卡的mac地址;
15.所述通过vxworks操作系统修改网卡的mac地址的方法为:通过调用vxworks操作系统中的muxioctl函数的eiocsaddr命令设置或更改不同类型网卡的mac地址。
16.进一步地,所述根据需求通过vxworks操作系统修改网卡的mac地址,具体为:获取任一个网卡的mac地址后,将另一块网卡的mac地址设置成和它相同的mac地址;
17.所述修改网卡的mac地址具体为:在vxworks操作系统中配置修改网卡mac地址的脚本和配置文件,在vxworks操作系统启动时进行加载并执行。
18.一种计算机可读存储介质,所述的计算机可读存储介质存储有计算机程序,所述的计算机程序被处理器执行时实现所述一种vxworks下网卡mac地址的操作方法的步骤。
19.一种vxworks下网卡mac地址的操作设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述的处理器执行所述的计算机程序时实现所述一种vxworks下网卡mac地址的操作方法的步骤。
20.本发明与现有技术相比的优点在于:
21.1、利用vxworks操作系统内核中的muxioctl接口函数,并调用该接口的eiocgaddr命令和eiocsaddr命令读取并改写网卡mac地址,具有很强的通用性,适用于所有类型网卡;
22.2、本发明的操作方法简单可靠,执行效率高;
23.3、通过设置/修改脚本和配置文件即可完成vxworks操作系统启动时网卡mac地址的自动设置,实现了mac地址设置/修改和程序代码的分离,极大的提高了系统的可维护性。
具体实施方式
24.为了更好的理解上述技术方案,下面通过具体实施例对本技术技术方案做详细的说明,应当理解本技术实施例以及实施例中的具体特征是对本技术技术方案的详细的说明,而不是对本技术技术方案的限定,在不冲突的情况下,本技术实施例以及实施例中的技术特征可以相互组合。
25.为了提高软件人员在vxworks操作系统下获取网卡mac地址的便捷性,实现对所有类型网卡的mac地址采用相同的方法读取和改写,本发明提出了一种vxworks下网卡mac地址的操作方法,包括如下步骤:
26.1、读取不同网卡的mac地址
27.vxworks操作系统中的muxioctl函数提供了一个通用的mux控制接口,通过该接口可以增加/删除组播地址,获取组播地址/地址链表等。通过调用该接口的eiocgaddr命令可以获取不同类型网卡的mac地址。
28.2、更改不同网卡的mac地址
29.vxworks操作系统中的muxioctl函数提供了一个通用的mux控制接口,通过该接口可以增加/删除组播地址,获取组播地址/地址链表等。通过调用该接口的eiocsaddr命令可以设置/更改不同类型网卡的mac地址。
30.3、在双冗余网卡中将两个网卡设置成相同的mac地址
31.可选的,为了提高双冗余网卡切换的时间,必须保证这两块网卡具有相同的mac地址和ip地址,对上层应用呈现“单网卡”特征。可选的,利用vxworks操作系统中muxioctl函数的eiocgaddr命令获取其中一个网卡的mac地址后,再利用eiocsaddr命令将另一块网卡的mac地址设置成和它相同的mac地址。
32.4、vxworks操作系统启动时自动设置网卡mac地址
33.可选的,为了使得程序具有更好的可维护性,将设置网卡mac地址的操作不在程序
代码中实现,而放在脚本和配置文件中。在vxworks操作系统启动时通过自动加载并执行脚本文件,设置系统中网卡的mac地址。一旦网卡类型变化,或者网卡mac地址变化,只需更改脚本和配置文件,无需更改程序代码。
34.在本技术实施例所提供的方案中,为了能够实现对所有类型网卡的mac地址采用相同的方法读取和改写,并能通过配置脚本文件实现在vxworks操作系统启动后自动读取并设置各种网卡的mac地址,本发明提出了一种vxworks下网卡mac地址的操作方法。所述方法的实施步骤如下:
35.s1:读取不同网卡的mac地址
36.vxworks操作系统中的muxioctl函数提供了一个通用的mux控制接口,通过该接口可以增加/删除组播地址,获取组播地址/地址链表等。首先获取该网卡的网卡类型和网卡编号,然后通过调用muxioctl接口的eiocgaddr命令可以获取不同类型网卡的mac地址。示例代码如下:
37.unsigned char*kkphyaddr;
38.muxioctl(muxdevacquire("fei",0),eiocgaddr,(caddr_t)kkphyaddr);
39.其中,fei是网卡类型,fei0接口的mac地址保存在kkphyaddr数组中,即fei0接口的mac地址为kkphyaddr[0]:kkphyaddr[1]:kkphyaddr[2]:kkphyaddr[3]:kkphyaddr[4]:kkphyaddr[5]。
[0040]
s2:更改不同网卡的mac地址
[0041]
vxworks操作系统中的muxioctl函数提供了一个通用的mux控制接口,通过该接口可以增加/删除组播地址,获取组播地址/地址链表等。首先获取该网卡的网卡类型和网卡编号,然后通过调用muxioctl接口的eiocsaddr命令可以设置/更改不同类型网卡的mac地址。示例代码如下:
[0042]
unsigned char kkphyaddr[10]={0x08,0x09,0x10,0x11,0x12,0x13};
[0043]
muxioctl(muxdevacquire("fei",0),eiocsaddr,(caddr_t)kkphyaddr);
[0044]
其中,fei是网卡类型,通过上述代码将fei0接口的mac地址更改为08:09:10:11:12:13。
[0045]
s3:在双冗余网卡中将两个网卡设置成相同的mac地址
[0046]
利用vxworks操作系统中muxioctl函数的eiocgaddr命令获取其中一个网卡的mac地址后,再利用eiocsaddr命令将另一块网卡的mac地址设置成和它相同的mac地址。示例代码如下:
[0047]
unsigned char*kkphyaddr;
[0048]
/*读取其中一块网卡fei0的mac地址*/
[0049]
muxioctl(muxdevacquire("fei",0),eiocgaddr,(caddr_t)kkphyaddr);
[0050]
/*设置另一块网卡fei1的mac地址和fei0的mac地址相同*/
[0051]
muxioctl(muxdevacquire("fei",1),eiocsaddr,(caddr_t)kkphyaddr);
[0052]
s4:vxworks操作系统启动时自动设置网卡mac地址
[0053]
在vxworks操作系统启动时通过自动加载并执行脚本文件,设置系统中网卡的mac地址。
[0054]
为了在进入vxworks操作系统后自动加载脚本文件,在vxworks操作系统镜像工程
的usrappinit.c文件中打开该脚本文件并执行脚本文件的命令。
[0055]
首先,在打开脚本前,需要在vxworks操作系统镜像组件(component configuration)中添加“include_startup_script”组件;
[0056]
然后,在硬盘盘符ata0a下的配置文件maccfg.dat中保存当前网卡的mac地址,格式为xx:xx:xx:xx:xx:xx;
[0057]
最后,调用vxworks操作系统的usrstartupscript函数执行脚本文件中的命令。
[0058]
该脚本文件的主要功能是实现设置任意网卡的mac地址,脚本文件的生成规则和步骤如下:
[0059]
读取并保存硬盘盘符ata0a下配置文件maccfg.dat的内容,获取当前网卡的mac地址;
[0060]
获取该网卡的网卡类型和网卡编号,然后通过调用muxioctl接口的eiocsaddr命令设置/更改不同类型网卡的mac地址;
[0061]
将上述两个步骤封装为一个函数a,函数a有两个参数,一个是网卡类型,另一个是网卡编号;
[0062]
将函数a编译生成一个可执行程序b,在执行脚本文件时,首先在vxworks操作系统中加载可执行程序b,然后调用函数a实现任意网卡的mac地址设置;
[0063]
若需修改网卡mac地址,只需修改maccfg.dat文件内容即可。若网卡类型和接口有变化,只需修改脚本文件中函数a的两个参数即可。
[0064]
基于与一种vxworks下网卡mac地址的操作方法相同的发明构思,本发明还提供一种vxworks下网卡mac地址的操作系统,包括:
[0065]
第一模块,读取接插在安装vxworks操作系统设备上的不同类型网卡的mac地址;
[0066]
第二模块,根据需求通过vxworks操作系统修改网卡的mac地址。
[0067]
进一步,在一种可能实现的方式中,所述读取vxworks操作系统设备上的不同类型网卡的mac地址的方法为:通过调用vxworks操作系统中的muxioctl函数的eiocgaddr命令获取不同类型网卡的mac地址;
[0068]
在一种可能实现的方式中,所述通过vxworks操作系统修改网卡的mac地址的方法为:通过调用vxworks操作系统中的muxioctl函数的eiocsaddr命令设置或更改不同类型网卡的mac地址。
[0069]
进一步,在一种可能实现的方式中,所述根据需求通过vxworks操作系统修改网卡的mac地址,具体为:获取任一个网卡的mac地址后,将另一块网卡的mac地址设置成和它相同的mac地址;
[0070]
可选的,在一种可能实现的方式中,所述修改网卡的mac地址具体为:在vxworks操作系统中配置修改网卡mac地址的脚本和配置文件,在vxworks操作系统启动时进行加载并执行。
[0071]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0072]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
[0073]
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献