Изменение MAC-адреса приводит к остановке Telnet в VxWorks - PullRequest
0 голосов
/ 18 июня 2019

Мне нужно динамически изменить MAC-адрес в VxWorks 7.
MAC-адрес был правильно изменен.
После изменения MAC-адреса я не могу использовать telnet и пинговать до интерфейса.

Использование VxWorks 7, Arm, dcc.

// in usrAppInit()
struct ifreq ifr;
int s;
s = socket(AF_INET,SOCK_DGRAM,0);
memcpy(ifr.ifr_name,"eth0",5);
ifr.ifr_addr.sa_data[0] = 0x01;
ifr.ifr_addr.sa_data[1] = 0x02;
ifr.ifr_addr.sa_data[2] = 0x03;
ifr.ifr_addr.sa_data[3] = 0x04;
ifr.ifr_addr.sa_data[4] = 0x05;
ifr.ifr_addr.sa_data[5] = 0x06;
ifr.ifr_addr.sa_family = AF_INET;
ioctl(s, SIOCSIFLLADDR, &ifr); // eth0 mac address changed to 01:02:03:04:05:06
close(s);

После изменения MAC-адреса, «ping» и «telnet» не могут подключиться к этому интерфейсу с ПК.
Команда "arp" отображает новый MAC-адрес.

1 Ответ

0 голосов
/ 19 июня 2019

Вы можете использовать ifconfig для изменения MAC-адреса в вашем файле c.Например,

ipcom_run_cmd("ifconfig qfec0 lladdr 00:11:22:33:44:55");

Я проверил его, и он работал нормально.

...