URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6671
[ Назад ]

Исходное сообщение
"Работа SIOCETHTOOL"

Отправлено Lex Grant , 13-Авг-07 15:26 
Добрый день!
По мере надобности мне потребовалось использовать возможности утилиты ifplugstatus, а именно воспользоваться функцией interface_detect_beat_ethtool(fd,iface) файла interface.c, которая проверяет, поднят ли интерфейс сетевой платы.
Соответственно, там создается ioctl-запрос следующего вида (соответственно, привожу кусок):

if (ioctl(fd, SIOCETHTOOL, &ifr) == -1)
   {
   if(interface_do_message)
      daemon_log(LOG_ERR, "ETHTOOL_GLINK FAILED: %s", strerror(errno));
   return IFSTATUS_ERR
   }
Каким образом включается возможность использования параметра SIOCETHTOOL для ioctl-запроса? Что именно отвечает за его работу?

Буду очень благодарен за помощь.


Содержание

Сообщения в этом обсуждении
"Работа SIOCETHTOOL"
Отправлено vic , 13-Авг-07 16:50 
Наличие соответствующего драйвера, кажись он называется mii.


"Работа SIOCETHTOOL"
Отправлено Lex Grant , 13-Авг-07 17:07 
>Наличие соответствующего драйвера, кажись он называется mii.

А можно поподробнее? Различаются ли по написанию версии ifplugd (используют SIOCETHTOOL или нет)? Если этот драйвер установлен, возможность использования этой функции предоставляется автоматом?


"Работа SIOCETHTOOL"
Отправлено vic , 13-Авг-07 18:16 
>>Наличие соответствующего драйвера, кажись он называется mii.
>
>А можно поподробнее? Различаются ли по написанию версии ifplugd (используют SIOCETHTOOL или
>нет)? Если этот драйвер установлен, возможность использования этой функции предоставляется автоматом?
>

ioctl() это системный вызов, он всегда есть.
SIOCETHTOOL - константа по которой ядро определяет что делать.
Драйвер(модуль ядра) если не загружен, то функция вернет ошибку, так же ошибка будет если сетевая карта не поддерживает эту функциональность (или ее драйвер). Немного напутал, т.к. константа есть в linux/sockios.h т.е. она есть в ядре, но как я понимаю реализация этой функциональности все же в mii (имхо).


"Работа SIOCETHTOOL"
Отправлено Lex Grant , 15-Авг-07 15:40 
Все понял! Действительно - интерфейс mii, и действительно библиотека sockios.h. Спасибо!