Выбрать главу

Поле flags может включать следующие флаги:

BOARD_PRESENT Устанавливается драйвером после успешной инициализации адаптера
BOARD_DISABLED Устанавливается драйвером при неудачной инициализации адаптера. Этот флаг также может быть установлен, если драйвер определит нарушения в функционировании адаптера
TX_BUSY Указывает на отсутствие ресурсов, например отсутствие необходимых буферов для передачи кадра
TX_QUEUED Указывает на наличие кадров, ожидающих передачи

Для каждого подключенного пользователя услуг, или, другими словами, для каждой активной SAP драйвер создает структуру данных DL_sap_t, описывающую тип и характеристики точки доступа. Приведем описание некоторых полей этой структуры:

state Состояние SAP. Возможные состояния определены интерфейсом DLPI. Исходное состояние точки доступа DL_UNBOUND
sap_addr Уникальный адрес (идентификатор) SAP
flags Флаги, определяющие дополнительные характеристики SAP
read_q Указатель на очередь чтения потока, связанного с SAP
write_q Указатель на очередь записи потока, связанного с SAP
mac_type Тип используемого протокола доступа и формат используемого кадра. Возможные значения включают:
DL_CMACD IEEE 802.3
DL_ETHER Ethernet 2.0
DL_TPB IEEE 802.4
DL_TPR IEEE 802.5
DL_HDLC ISO HDLC
DL_FDDI FDDI
service_mode Режим передачи данных. В локальных сетях обычно используется режим без установления связи без подтверждения DL_CLDLS
provider_style Тип поставщика услуг: DL_STYLE1 или DL_STYLE2
bd Указатель на структуру DL_bdconfig_t, связанную с сетевым адаптером
next_sap Указатель на следующую точку доступа в списке активных SAP
max_spdu Максимальный размер данных, которые могут быть переданы в кадре
min_spdu Минимальный размер данных, которые могут быть переданы в кадре

Дополнительные характеристики SAP хранятся в поле flags, которое может включать следующие флаги:

RAWCSMACD Указывает, что через SAP передаются только кадры формата IEEE 802.3
SNAPCSMACD Указывает, что через SAP передаются кадры формата LLC SNAP
PROMISCUOUS Указывает, что SAP работает в режиме отсутствия фильтрации кадров (promiscuous mode), при котором SAP получает копии всех кадров независимо от адреса точки доступа, которой они предназначаются. Данный режим применяется, например, при создании приложений мониторинга уровня канала данных
PRIVILEGED Указывает, что управление точкой доступа требует привилегий суперпользователя

Кроме того, драйвер хранит и обновляет статистическую информацию о сетевом интерфейсе, представляющую собой набор счетчиков, связанных с работой адаптера, и ассоциированных с ним точек доступа. Пользователь может получить интересующую его статистику с помощью соответствующей команды ioctl(2). Приведем в качестве примера описание некоторых из этих счетчиков:

ifInOctets Общее число октетов, полученных адаптером
ifOutOctets Общее число октетов, переданных адаптером
ifOutUcastPkts Число переданных однонаправленных (unicast) пакетов
ifOutNUcastPkts Число переданных групповых (multicast) и широковещательных (broadcast) пакетов
ifInDiscards Число полученных, но отброшенных правильных пакетов
ifInUcastPkts Число полученных однонаправленных (unicast) пакетов
ifInNUcastPkts Число полученных групповых (multicast) и широковещательных (broadcast) пакетов
ifInErrors Число пакетов, полученных с ошибкой
ifUnknownProtos Число полученных пакетов, которые были отброшены из-за неправильной SAP адресата
ifOutQlen Число пакетов, находящихся в очереди на передачу
ifOutErrors Число пакетов, переданных с ошибкой
etherCollisions Число коллизий