Готовый перевод 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

Настройки

Готово:

100.00% КП = 1.0