Какова цель поля net_device.uc_promisc? - PullRequest
0 голосов
/ 12 июля 2011

почему struct net_device имеет поле uc_promisc?Как используется это поле?

Спасибо всем!

Ответы [ 2 ]

2 голосов
/ 12 июля 2011

Когда устройство, которое не поддерживает фильтрацию одноадресной рассылки, должно прослушивать несколько адресов одноадресной рассылки, оно переводится в смешанный режим в соответствии с dev->uc_count и dev->uc_promisc. Проверьте функцию __dev_set_rx_mode().

Многие устройства реализуют ndo_set_rx_mode() и устанавливают свои одноадресные (и многоадресные) фильтры с помощью ndo_set_rx_mode(). Для устройств, которые не реализуют это, Linux переводит устройство в беспорядочный режим и отслеживает этот факт с помощью dev->uc_promisc.

Итак, есть несколько флагов для случайного режима:

  • dev->flags & IFF_PROMISC означает, что устройство находится в беспорядочном режиме.
  • dev->gflags & IFF_PROMISC означает, что пользователь запросил беспорядочный режим.
  • dev->uc_promisc означает, что включен неразборчивый режим (фактически, его счетчик ссылок увеличен) из-за необходимости прослушивать дополнительный адрес одноадресной рассылки в устройстве, которое не реализует ndo_set_rx_mode().
0 голосов
/ 12 июля 2011

Похоже, это может быть способ включения (или отслеживания включенного / выключенного состояния) случайного режима на устройстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...