Операционная система ЗОСРВ «Нейтрино» > Руководство разработчика > Основные принципы системной разработки > Разработка драйверов и драйверные библиотеки > Драйверные библиотеки > Библиотеки разработки сетевых драйверов (devnp-*) > API NIC > nic_config_t



nic_config_t

Сведения о структуре nic_config_t

Прототип:

#include <hw/nicinfo.h>
typedef struct _nic_config {
_Uint32t revision;
_Uint32t flags;
_Int32t power_mode;
_Uint32t tx_csum_active;
_Uint32t rx_csum_active;
_Uint32t mtu;
_Uint32t mru;
_Uint32t verbose;
_Int32t lan;
_Uint8t permanent_address[8];
_Uint8t current_address[8];
_Uint32t mac_length;
_Uint32t connector;
_Int32t phy_addr;
_Uint32t media;
_Int32t media_rate;
_Int32t duplex;
_Uint32t bus_type;
_Uint32t vendor_id;
_Uint32t device_id;
_Uint32t device_index;
_Uint32t device_revision;
_Uint32t serial_number;
_Uint32t num_mem_windows;
_Uint32t num_io_windows;
_Uint32t num_irqs;
_Uint32t num_dma_channels;
_Uint64t mem_window_base[8];
_Uint64t mem_window_size[8];
_Uint64t io_window_base[8];
_Uint64t io_window_size[8];
_Uint64t rom_base;
_Uint64t rom_size;
_Uint32t irq[8];
_Uint32t dma_channel[8];
_Uint8t device_description[64];
_Uint8t uptype[16];
_Int32t iftype;
_Int32t priority;
_Uint32t rsvd[32];
} nic_config_t;

Библиотека:

libnetdrvr

Описание:

Структура nic_config_t содержит информацию о конфигурации устройства и хранит данные, полученные из строки опций драйвера.

Структура включает следующие поля:

revision
Должен быть установлен в значение NIC_CONFIG_REVISION.
flags
Допустимые значения определяются перечислением nic_flags_t в файле <hw/nicinfo.h>. На данный момент определены следующие флаги:
NIC_FLAG_POWER_MANAGEMENT
Включена поддержка управления питанием.
NIC_FLAG_MULTICAST
Включен прием мультикастовых пакетов.
NIC_FLAG_PROMISCUOUS
Устройство находится в режиме promiscuous.
NIC_FLAG_BROADCAST
Устройство может принимать широковещательные пакеты.
NIC_FLAG_WIRELESS
Устройство поддерживает беспроводной режим.
NIC_FLAG_LINK_DOWN
Связь отключена, в данный момент пакеты не могут передаваться или приниматься.
power_mode
Текущий режим питания, смотрите подробнее в <sys/pm.h>
tx_csum_active
Включен ли подсчёт чексуммы TX пакетов. На данный момент определены следующие флаги:
IFCAP_CSUM_IPv4
Включён подсчёт IPv4 header чексуммы.
IFCAP_CSUM_TCPv4
Включён подсчёт IPv4/TCP чексуммы.
IFCAP_CSUM_UDPv4
Включён подсчёт IPv4/UDP чексуммы.
IFCAP_CSUM_TCPv6
Включён ли подсчёт IPv6/TCP чексуммы.
IFCAP_CSUM_UDPv6
Включён ли подсчёт IPv6/UDP чексуммы.
rx_csum_active
Включен ли подсчёт чексуммы RX пакетов. На данный момент определены следующие флаги:
IFCAP_CSUM_IPv4
Включён подсчёт IPv4 header чексуммы.
IFCAP_CSUM_TCPv4
Включён подсчёт IPv4/TCP чексуммы.
IFCAP_CSUM_UDPv4
Включён подсчёт IPv4/UDP чексуммы.
IFCAP_CSUM_TCPv6
Включён ли подсчёт IPv6/TCP чексуммы.
IFCAP_CSUM_UDPv6
Включён ли подсчёт IPv6/UDP чексуммы.
mtu
Максимальный размер пакета, который устройство может принять для передачи (включая заголовок Ethernet).
mru
Максимальный размер пакета, который устройство может успешно принять из сети (включая заголовок Ethernet).
verbose
Текущий уровень подробности. Чем выше уровень, тем больше отладочной информации драйвер будет выводить в системный логгер.
lan
Номер экземпляра (LAN) интерфейса.
permanent_address[8]
Уникальный адрес станции (MAC-адрес), присвоенный производителем устройства (обычно считывается из EEPROM драйвером).
current_address[8]
Адрес станции (MAC-адрес), который устройство в настоящее время использует. Обычно это тот же адрес, что и у устройства, но может отличаться.
mac_length
Длина MAC-адреса устройства в байтах. Для Ethernet устройства это значение равно 6.
connector
Тип физического разъема, используемого для подключения устройства к сети. Может быть одним из значений перечисления nic_connector_types, определенного в <hw/nicinfo.h>.
phy_addr
Адрес, используемый для связи с PHY-устройством с целью доступа к его внутренним регистрами.
media
Указывает тип носителя, через который устройство работает. Может быть одним из значений перечисления nic_media_types, определенного в <hw/nicinfo.h>.
media_rate
Текущая скорость передачи по носителю в Kбит/с. Если скорость неизвестна, следует установить значение в -1.
duplex
Текущий режим дуплекса. Значение 0 — полудуплекс, 1 — полный дуплекс. Если режим дуплекса неизвестен, установите значение в -1.
bus_type
Тип шины, через которую устройство подключено к хост-системе. Описано в <netdrvr/support.h> и <drvr/common.h>
vendor_id
PCI Vendor ID для PCI-устройства, присвоенный производителем и читаемый из конфигурационного пространства PCI.
device_id
PCI Device ID для PCI-устройства, присвоенный производителем и читаемый из конфигурационного пространства PCI.
device_index
Для PCI-устройства — уникальный идентификатор конкретного экземпляра устройства, в сочетании с vendor_id и device_id.
device_revision
Ревизия устройства для PCI-устройства, читаемая из конфигурационного пространства PCI.
serial_number
Серийный номер устройства, который зависит от драйвера.
num_mem_windows
Количество окон памяти, используемых для доступа к устройству.
num_io_windows
Количество окон ввода-вывода, используемых для доступа к устройству.
num_irqs
Количество векторных номеров прерываний, к которым драйвер привязан для получения событий прерывания от устройства.
num_dma_channels
Количество каналов DMA, используемых для передачи данных между устройством и памятью.
mem_window_base[8]
Массив, содержащий физические базовые адреса окон памяти устройства.
mem_window_size[8]
Массив, содержащий размеры окон памяти устройства в байтах.
io_window_base[8]
Массив, содержащий базовые адреса окон ввода-вывода устройства.
io_window_size[8]
Массив, содержащий размеры окон ввода-вывода устройства в байтах.
rom_base
Если у устройства есть память ROM, отображенная в память, это поле содержит физический адрес ROM.
rom_size
Если у устройства есть память ROM, отображенная в память, это поле указывает размер ROM в байтах.
irq[8]
Массив, содержащий номера векторов прерываний, к которым драйвер привязан для получения событий прерывания от устройства.
dma_channel[8]
Массив, содержащий каналы DMA, через которые передаются данные между устройством и памятью.
device_description[64]
Строка, заканчивающаяся на NULL, которая описывает устройство. Она должна содержать информацию о модели устройства.
uptype[16]
Строка, заканчивающаяся на NULL, которая описывает тип интерфейса устройства.
iftype
Тип интерфейса, соответствующий одному из типов из <net/if_types.h>. Для Ethernet устройства должно быть установлено значение IFT_ETHER.
priority
Указывает приоритет, с которым будет работать поток обработки событий драйвера. Рекомендуемое значение по умолчанию — 21.

Классификация:

ЗОСРВ «Нейтрино»

Тематические ссылки:

nicinfo




Предыдущий раздел: Библиотека разработки сетевых драйверов