io-pkt-v4, io-pkt-v4-hc, io-pkt-v6-hc

Менеджер сети

Синтаксис:

io-pkt-вариант [-d драйвер [опции_драйвера]] [-i экземпляр]

[-p протокол [опции_протокола]] [-t потоки] [-v]


где вариант принимает одно из следующих значений: v4, v4-hc или v6-hc.

Поддерживаемые платформы:

Neutrino

Опции:

-d драйвер [опции_драйвера]

Запустить указанный драйвер devn-* или devnp-*:
Аргумент опции_драйвера представляет собой список опций драйвера, передаваемых ему стеком io-pkt*.

Примечание. Для разделения опций используется запятая (но не пробелы).

В стеке выполняется обработка различных опций драйвера. Для получения дополнительной информации см. "Общие опции драйверов" далее.

-i экземпляр

Номер экземпляра стека, используемый при выполнении нескольких экземпляров io-pkt. Менеджер io-pkt будет обслуживать запросы монтирования типа io-pktX, где X – это номер экземпляра. Пример.

io-pkt-v4 -i1 -ptcpip prefix=/alt

mount -Tio-pkt1 /lib/dll/devnp-i82544.so

-p протокол [опции_протокола]


Запускаемый протокол со списком опций протокола.

Примечание. Для разделения опций используется запятая (но не пробелы).

Доступны следующие протоколы:

Протокол

Модуль

autoip

lsm-autoip.so

qnet

lsm-qnet.so

tcpip

Стек io-pkt* включает в себя протокол TCP/IP. Этот протокол следует указывать только в том случае, если требуется обеспечить передачу ему дополнительных параметров (например, prefix=). Дополнительная информация по опциям приведена ниже.

-S

Не регистрировать обработчик SIGSEGV для перевода аппаратных средств в пассивное состояние в случае нарушения сегментирования. При этом упрощается отладка, если невозможно получить данные обратной трассировки исходного кода, сгенерировавшего SIGSEGV, через обработчик сигналов.

-t потоки

Число создаваемых потоков обработки. По умолчанию для одного ЦП создается один поток. Эти потоки представляют собой потоки обработки пакетов, реализуемые на уровне 2, которые могут становиться потоком стека. Для получения дополнительной информации см. главу Overview ("Обзор") в «Руководстве системного программиста (администратора)» КПДА.10964-01 32, в разделе по организации базовой сети QNX Neutrino.

-v

При возникновении каких-либо ошибок во время загрузки драйверов и протоколов утилита io-pkt передает сообщения в системный журнал slogger. Если эта опция указана, то утилита io-pkt также отображает информацию об ошибках в консоли.

Если указан протокол -p tcpip, список в аргументе опции_протокола может состоять из одной или нескольких опций, разделенных запятыми без пробельных символов:

bigpage_strict

Если эта опция не указана и значение опции pagesize превышает значение sysconf(_SC_PAGESIZE), то оно используется только для пулов буфера mbuf и кластера. Если эта опция указана, то размер страницы используется для всех пулов.

cache=0

Деактивировать кэширование буферов пакетов. Используется только в целях отладки.

confstr_monitor

Осуществлять мониторинг изменений конфигурационных строк, в частности CS_HOSTNAME. По умолчанию утилита io-pkt получает имя хоста только один раз при запуске.

enmap

Отключить автоматическое отображение в стеке имен интерфейсов enXX в фактические имена интерфейсов. По умолчанию стек обеспечивает автоматическое отображение первого зарегистрированного интерфейса в en0 (при отсутствии реального интерфейса en0), второго интерфейса в en1 и т.д. для сохранения обратной совместимости со стилем командной строки io-net.

fastforward=X

Разрешить (1) или запретить (0) быструю ретрансляцию. Эту опцию целесообразно использовать для шлюзов. Эта опция включает и выключается опцией forward. Для установки только опции forward следует ввести forward,fastforward=0.

forward

Разрешить ретрансляцию пакетов IPv4 между интерфейсами. При установке этой опции автоматически устанавливается опция fastforward. По умолчанию выключена.

forward6

(только для io-pkt-v6-hc.) Включить ретрансляцию пакетов IPv6 между интерфейсами. По умолчанию выключено.

ipsec

(только для io-pkt-v4-hc и io-pkt-v6-hc.) Включить поддержку IPsec. По умолчанию выключено.

mbuf_cache=X

Поскольку после использования буферы mbuf освобождаются, то вместо возвращения их во внутренний пул для общего использования выполняется кэширование до X буферов mbuf на один поток для ускорения их извлечения при последующем выделении.

mclbytes=размер

Размер кластера mbuf. Кластер соответствует наибольшему объему непрерывной памяти, используемому для буфера mbuf. Если максимальный размер передаваемого блока данных превышает размер кластера, для передачи пакета используется несколько кластеров. По умолчанию размер кластера составляет 2 Кб (для соответствия стандартному пакету Ethernet размером 1500 байт).

С помощью определения размера кластера можно повысить производительность. Для получения дополнительной информации см. подраздел "Jumbo packets and hardware checksumming" ("Сверхдлинные пакеты и аппаратная обработка контрольных сумм") в разделе "Network Drivers" ("Сетевые драйверы") «Руководства системного программиста (администратора)» КПДА.10964-01 32, в разделе по организации базовой сети QNX Neutrino.

pagesize=X

Наименьший объем данных, выделяемый каждый раз для пулов внутренней памяти. Впоследствии этот объем делится на блоки различного размера в зависимости от пула.

pkt_cache=X

Поскольку после использования комбинации буфера mbuf и кластеры освобождаются, то вместо возвращения их во внутренний пул для общего использования выполняется кэширование до X кластеров и буферов mbuf на один поток для ускорения их извлечения при последующем выделении.

prefix=/путь

Путь, добавляемый в начало стандартного пути /dev/socket. Эту опцию целесообразно использовать при работе с несколькими стеками. Для обеспечения возможности обращения клиентов к определенному стеку следует использовать переменную среды SOCK. Пример.

# io-pkt -ptcpip prefix=/alt

# SOCK=/alt ifconfig -a

random

Использовать /dev/random в качестве источника случайных данных. По умолчанию утилита io-pkt использует встроенный генератор псевдослучайных чисел.

recv_ctxt=X

Размер приемного буфера в байтах. Значение по умолчанию – 65536. Минимальное значение – 2048.

reuseport_unicast

В случае использования параметра сокета SO_REUSEPORT полученные одноадресные пакеты UDP доставляются на все сокеты, связанные с портом. По умолчанию для всех сокетов обеспечивается доставка только широковещательных и многоадресных пакетов.

rx_prio=X
rx_pulse_prio=X

Приоритет для потоков, принимающих сообщения. Значение по умолчанию – 21. Предусмотрена возможность переопределения этого приоритета с помощью опции приоритета, зависящей от драйвера (если поддерживается драйвером).

somaxconn=X

Указать значение SOMAXCONN, определяющее максимальную длину очереди прослушивания, используемой для приема новых соединений TCP. Минимальное значение определяется в файле <sys/socket.h>.

stacksize=X

Размер стека каждого буфера в байтах. Значение по умолчанию – 4096.

threads_incr=X

Если запас потоков израсходован, увеличивать их число на указанное значение до достижения значения threads_max. Значение по умолчанию – 25.

threads_max=X

Максимальное число потоков. Значение по умолчанию – 200.

threads_min=X

Минимальное число потоков. Значение по умолчанию – 15. Минимальное значение – 4.

Описание:

Менеджер io-pkt обеспечивает поддержку доменных сокетов Интернет, доменных сокетов Unix и динамически загружаемых сетевых модулей. Предоставляются следующие варианты стека:

io-pkt-v4

Вариант для IPv4 со сниженным потреблением памяти, в котором не реализована поддержка следующих функций:

io-pkt-v4-hc

Версия стека для IPv4 с полной поддержкой шифрования и Wi-Fi и с возможностью аппаратного ускорения криптографии (Fast IPsec).

io-pkt-v6-hc

Версия стека для IPv6 (поддержка IPv4 реализована как часть IPv6) с полной поддержкой шифрования и Wi-Fi, а также с возможностью аппаратного ускорения криптографии.

Для запуска драйверов после запуска io-pkt* можно использовать команду mount. При необходимости передачи драйверу опций перед именем разделяемой библиотеки следует указать опцию -o. Пример.

mount -T io-pkt -o mac=12345678 devnp-bge.so

Примечание.
Общие опции драйверов

Стек io-pkt* обрабатывает общую опцию name= , что позволяет переопределить префикс интерфейса по умолчанию, используемый для сетевых драйверов. Пример.

io-pkt-v4 -di82544 name=en

Выполняется запуск драйвера devnp-i82544.so с соглашением по именованию в стиле io-net (enXX). Эта опция также позволяет присваивать имена интерфейсов в соответствии, например, с функциональным назначением:

io-pkt-v4 -di82544 pci=0,name=wan

Примечание. Эта опция не поддерживается драйверами io-net. При попытке использования этой опции с драйвером devn- драйвер не загружается, и в журнал выводится ошибка "unknown option".

Для обеспечения возможности определения конкретного устройства USB по данным, полученным в результате выполнения usb -v, в стеке обрабатываются следующие опции для всех драйверов USB, использующих библиотеку преобразования NetBSD в QNX:

did=идентификатор

Идентификатор продукта устройства.

vid=идентификатор

Идентификатор вендора устройства.

devno=адрес

Адрес устройства, возвращаемый утилитой usb.

busno=номер

Хост-контроллер, возвращаемый утилитой usb.

Пример.

io-pkt-v4-hc -drum did=0x0020,vid=0x13b1,devno=1,busno=1


Примеры:

Запуск варианта io-pkt для TCP/IP v4 с драйвером devnp-bcm1250.so для интерфейса BCM91480A eth0:

io-pkt-v4 -d /lib/dll/devnp-bcm1250.so \

memrange=0x10064000,irq=0x80050024,mac=001122334455

ifconfig bcm0 10.184