LINUX.ORG.RU

Тестирование ethernet интерфейса


0

0

Для определенного продукта необходимо написать API конфигурации, диагностики и тестирования ethrnet интерфейсов. Все работает кроме тестирования. При попытке выполнить следующий код: ... fd = socket(AF_INET, SOCK_DGRAM, 0); if (fd < 0) { perror("error:506.234"); return; } ... drvinfo.cmd = ETHTOOL_GDRVINFO; ifr->ifr_data = (caddr_t)&drvinfo; err = ioctl(fd, SIOCETHTOOL, ifr); if (err < 0) { perror("error:506.238"); return; } ... memset (test->data, 0, drvinfo.testinfo_len * sizeof(u64)); test->cmd = ETHTOOL_TEST; test->len = drvinfo.testinfo_len; test->flags = ETH_TEST_FL_OFFLINE; ifr->ifr_data = (caddr_t)test; err = ioctl(fd, SIOCETHTOOL, ifr); if (err < 0) { perror("error:506.240"); free (test); return; } ... Получаю: error:506.240: Operation not supported Попытался ethtool -t eth0 : Cannot test: Operation not supported Понимаю что проблема в драйвере (видимо). Но люди отвечающие за конфигурацию макета ничего менять не хотят (и не станут). Возможно ли решить проблему не меняя драйвер? Возможно есть альтернативный вариант тестирования? Os: Linux Montavista (kernel 2.4.20). Заранее с уважением

anonymous

Сори. Так лучше.
Для определенного продукта необходимо написать API конфигурации, диагностики и тестирования ethrnet интерфейсов. Все работает кроме тестирования.
При попытке выполнить следующий код:
...
fd = socket(AF_INET, SOCK_DGRAM, 0);
if (fd < 0)
{
perror("error:506.234");
return;
}
...
drvinfo.cmd = ETHTOOL_GDRVINFO;
ifr->ifr_data = (caddr_t)&drvinfo;
err = ioctl(fd, SIOCETHTOOL, ifr);
if (err < 0) {
perror("error:506.238");
return;
}
...
memset (test->data, 0, drvinfo.testinfo_len * sizeof(u64));
test->cmd = ETHTOOL_TEST;
test->len = drvinfo.testinfo_len;
test->flags = ETH_TEST_FL_OFFLINE;
ifr->ifr_data = (caddr_t)test;
err = ioctl(fd, SIOCETHTOOL, ifr);
if (err < 0) {
perror("error:506.240");
free (test);
return;
}
...
Получаю: error:506.240: Operation not supported
Попытался ethtool -t eth0 : Cannot test: Operation not supported
Понимаю что проблема в драйвере (видимо). Но люди отвечающие за конфигурацию макета ничего менять не хотят (и не станут). Возможно ли решить проблему не меняя драйвер? Возможно есть альтернативный вариант тестирования? Os: Linux Montavista (kernel 2.4.20).
Заранее с уважением

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.