Готовый перевод Linux Device Drivers 3 / Драйверы устройств Линукс (третье издание): 17.9. Changes in Link State
17.9. Изменение состояния связи
Сетевые соединения, по определению, служат для связи локальной
системы с внешним миром. Поэтому она находятся под влиянием внешних
событий. Сетевая подсистема должна знать, когда есть соединение, а
когда нет. Драйверу предоставляются функции, которые уведомляют
систему об этом.
Большинство сетевых технологий использует для определения
состояния физического соединения – сигнал carrier (несущая).
Определение присутствия сигнала carrier в передающей среде,
реализовано аппаратно. Например, адаптер Ethernet отслеживает сигнал
carrier в кабели. Если пользователь отключает кабель, сигнал пропадает,
и соединение отключается. По умолчанию, сетевые устройства считают,
что сигнал carrier присутствует. Для изменения этого состояния драйвер
может использовать функции:
void netif_carrier_off(struct net_device *dev);
void netif_carrier_on(struct net_device *dev);
Если ваш драйвер обнаружил отсутствие carrier на устройстве, он
должен вызвать функцию netif_carrier_off, для информирования ядра.
Когда carrier снова появляется, вызывается netif_carrier_on. Так же
netif_carrier_off вызывается при важном изменении конфигурации
(таком как например, изменение типа среды), после окончания
изменений снова проверяется наличие carrier, и работа возобновляется.
Имеется еще одна функция:
int netif_carrier_ok(struct net_device *dev);
Используется для проверки текущего состояния carrier.
Внимание! Этот перевод, возможно, ещё не готов.
Его статус: перевод редактируется
Переведено на Нотабеноиде
http://notabenoid.org/book/11832/38390
Переводчики: hardorsoft
Настройки
Готово:
