[i] Особенности работы Linux драйвера для К1923КХ02GI
Обновление таблицы MAC-адресов
Linux драйвер для К1923КХ02GI реализует "обучение" коммутатора для пересылки поступающих пакетов, а именно, драйвер анализирует пакеты с неизвестным MAC-адресом, принятые по PCI-E от К1923КХ02GI, и создаёт запись в таблице MAC-адресов коммутатора (К1923КХ02GI). Сама микросхема отправляет хосту (ПК) лишь те пакеты, MAC-адрес источника которых не указан в её таблице MAC-адресов (обработка по медленному маршруту). Если принимаемые пакеты содержат уже известные MAC-адреса, то пересылка пакетов осуществляется без участия хоста, и такие пакеты НЕ передаются по PCI-E (обработка по быстрому маршруту). Постоянному захвату (пересылки пакета на хост) подвержены специальные пакеты, к которым относятся, например, BPDU (Bridge Protocol Data Unit) пакеты (они необходимы для построения дерева сети в STP протоколе). В таких пакетах MAC-адрес назначения обычно имеет значение 01: 80: C2: 00: 00: 00 или 01: 00: 0C: CC: CC: CD, и они всегда отправляются на анализ хосту.Коммутация пакетов через PCI-e
Для подключения хоста к микросхеме К1923КХ02GI используется интерфейс PCI-e, который может использоваться и для управления микросхемой, и для коммутации пакетов. Для микросхемы К1923КХ02GI интерфейс PCI-e также представляет собой ещё один порт (№17), который может полноценно использоваться при ретрансляции пакетов. Для хоста микросхема К1923КХ02GI представляет собой несколько сетевых логический устройств: fp0 и fp_phy0-fp_phy15, при этом устройство fp0 может использоваться как обычная сетевая карта. Чтобы задать хосту IP-адрес 192.168.1.100 с маской подсети 255.255.255.0, в терминале необходимо выполнить следующую команду:
$sudo ifconfig fp0 192.168.1.100/24
Логические устройства fp_phy0 - fp_phy15
С помощью логических устройств fp_phy0 - fp_phy15 можно просматривать текущую настройку порта (линк, скорость, дуплекс), например:$ethtool fp_phyX
Х - номер порта минус 1 (порт 1 - fp_phy0). Eсли к порту не подключено внешнее устройство (ПК), то информация о скорости/дуплексе не отображается.
Возможно также самостоятельно установить режим работы порта, например:
$ethtool -s fp_phyX speed 100 duplex half autoneg on
Данная команда устанавливает режим работы порта 100 Мбит/с, полудуплекс, автосогласование включено.
Чтобы проверить корректность применённых настроек, необходимо открыть журнал ядра:
$dmesg -w
после чего изменить настройку порта, при этом в журнале ядра должна появиться запись о изменении режима работы EMAC.
Данные логические устройства также собирают информацию об ошибках и статистику принятых/переданных пакетов с конкретного порта, например:
$ethtool -S fp_phyX
Х - номер порта минус 1 (порт 1 - fp_phy0).
Сохранить статью в PDF