Менеджер сети
 | Существует несколько вариантов сетевого менеджера: io-pkt-v4, io-pkt-v4-hc, io-pkt-v6-hc, io-pkt-v4-ksz, io-pkt-v4-hc-ksz, io-pkt-v6-hc-ksz |
io-pkt-* [-d драйвер [опции_драйвера]] [-i экземпляр] [-p протокол [опции_протокола]] [-t потоки] [-v]
- -d драйвер [опции_драйвера]
- Запустить указанный драйвер devn-* или devnp-*:
- Значение аргумента драйвер можно указать без префикса "devn-" или "devnp-", или расширения ".so". Например, для запуска драйвера devnp-i82544.so можно указать -d i82544. Если драйвер задан таким образом, утилита io-pkt-* сначала осуществляет поиск варианта "devnp-". Если такой вариант не найден, утилита io-pkt-* загружает вариант "devn-" (драйвер предшествующего сетевого стека io-net) с помощью специальной прослойки, обеспечивающей совместимость ( devnp-shim.so).
- При необходимости загрузки определенного варианта драйвера следует указать полный путь к модулю (например,
/lib/dll/devnp-i82544.so).
Аргумент опции_драйвера представляет собой список опций драйвера, передаваемых ему стеком io-pkt-*.
 | Для разделения опций используется запятая (но не пробелы). В стеке выполняется обработка различных опций драйвера. Для получения дополнительной информации см. "Общие опции драйверов" далее. |
- -i экземпляр
- Номер экземпляра стека, используемый при выполнении нескольких экземпляров io-pkt-*. Менеджер io-pkt-* будет обслуживать запросы монтирования типа io-pkt
X, где X – это номер экземпляра. Пример:
io-pkt-ksz -i1 -ptcpip prefix=/alt
mount -Tio-pkt1 /lib/dll/devnp-i82544.so
- -p протокол [опции_протокола]
- Запускаемый протокол со списком опций.
 | Для разделения опций используется запятая (но не пробелы). |
Доступны следующие протоколы: - autoip
- Модуль: lsm-autoip.so
- qnet
- Модуль: lsm-qnet.so
- qnet-ksz
- Модуль: lsm-qnet-ksz.so
- tcpip
- Стек io-pkt-* включает в себя протокол TCP/IPv4. Этот протокол следует указывать только в том случае, если требуется обеспечить передачу ему дополнительных параметров (например, prefix=). Дополнительная информация по опциям приведена ниже.
- -S
- Не регистрировать обработчик
SIGSEGV для перевода аппаратных средств в пассивное состояние в случае нарушения сегментирования. При этом упрощается отладка, если невозможно получить данные обратной трассировки исходного кода, сгенерировавшего SIGSEGV, через обработчик сигналов.
- -s размер
- Размер стека прерываний каждого потока в байтах. Значение по умолчанию –
8192. - Опция -s поддерживается, начиная с
ЗОСРВ «Нейтрино» редакции 2024
- -t потоки
- Число создаваемых потоков обработки. По умолчанию для одного ЦП создается один поток. Эти потоки представляют собой потоки обработки пакетов, реализуемые на уровне 2, которые могут становиться потоком стека.
- -P приоритет
- Устанавливает приоритет основного потока io-pkt.
- -v
- При возникновении каких-либо ошибок во время загрузки драйверов и протоколов утилита io-pkt-* передает сообщения в системный журнал slogger. Если эта опция указана, то утилита io-pkt-* также отображает информацию об ошибках в консоли.
Если указан протокол -p tcpip, список в аргументе опции_протокола может состоять из одной или нескольких опций, разделенных запятыми без пробельных символов:
- auditksz=X
- Задаёт маску аудита событий:
-
1 – (по умолчанию) привилегированные соединения по протоколу TCP -
2 – непривилегированные соединения по протоколу TCP -
4 – привилегированные пакеты по протоколу UDP -
8 – непривилегированные пакеты по протоколу UDP
- 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
- Разрешить ретрансляцию пакетов IPv6 между интерфейсами. При установке этой опции автоматически устанавливается опция fastforward. По умолчанию выключена.
- ipsec
- Включить поддержку 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 на один поток для ускорения их извлечения при последующем выделении.
- pkt_typed_mem=X
- Выделение пакетных буферов из указанного типизированного объекта памяти объекта. Пример:
io-pkt -ptcpip pkt_typed_mem=ram/dma
- prefix=/путь
- Путь, добавляемый в начало стандартного пути
/dev/socket. Эту опцию целесообразно использовать при работе с несколькими стеками. Для обеспечения возможности обращения клиентов к определенному стеку следует использовать переменную среды SOCK. Пример:
io-pkt-ksz -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>.
- secopt=X
- Режим совместимости меток конфиденциальности:
- 2018 (по умолчанию) или gost
- При указании значения
2018 или gost включается режим совместимости с ГОСТ Р 58256-2018. - 2011 или kpda
- Режим совместимости с ЗОСРВ «Нейтрино» редакций 2011 и 2016 года.
- иное значение
- Любое другое значение – режим совместимости с ЗОСРВ «Нейтрино» редакций 2011 и 2016 года.
- secopt_uncut=X
- Задаёт номер категории (группы) ЗОСРВ «Нейтрино», кодируемой категорией 0. Категорией 0 кодируются также все группы меньше указанной в secopt_uncat. По умолчанию secopt_uncat=100.
- stacksize=X
- Размер стека каждого потока в байтах. Значение по умолчанию –
8192 для aarch64 и e2k и 4096 для остальных архитектур.
- threads_incr=X
- Если запас потоков израсходован, увеличивать их число на указанное значение до достижения значения threads_max. Значение по умолчанию –
25.
- threads_max=X
- Максимальное число потоков. Значение по умолчанию –
200.
- threads_min=X
- Минимальное число потоков. Значение по умолчанию –
15. Минимальное значение – 4.
ЗОСРВ «Нейтрино»
aarch64, arm, armv7, e2k, mips, ppc, x86
Защищённый менеджер io-pkt-* обеспечивает поддержку доменных сокетов Интернет, доменных сокетов Unix и динамически загружаемых сетевых модулей и предоставляет версию стека для IPv4 с полной поддержкой шифрования и Wi-Fi, с возможностью аппаратного ускорения криптографии (Fast IPsec) и с поддержкой защищённого режима для протоколов TCP и UDP.
Для запуска драйверов после запуска io-pkt-* можно использовать команду mount. При необходимости передачи драйверу опций перед именем разделяемой библиотеки следует указать опцию -o. Пример:
mount -T io-pkt -o mac=12345678 devnp-bge.so
 | - Команду umount можно использовать для размонтирования устаревших драйверов стека io-net, но не драйверов io-pkt-*. Для этих драйверов возможно использование команды ifconfig destroy для отсоединения драйвера от стека (если поддерживается драйвером).
- Если потоков для работы менеджера io-pkt-* недостаточно, то в slogger передается сообщение, и действия, требующие создания потока, блокируются до возникновения возможности создания потока.
- Если размер пакета TCP/IP меньше минимального размера пакета Ethernet, то пакет может быть заполнен не нулями, а случайными данными.
|
Общие опции драйверов:
Стек io-pkt-* обрабатывает опцию name=, что позволяет переопределить префикс интерфейса по умолчанию, используемый для сетевых драйверов. Пример:
io-pkt-ksz -di82544 name=en
Выполняется запуск драйвера devnp-i82544.so с соглашением по именованию в стиле io-net (enXX). Эта опция также позволяет присваивать имена интерфейсов в соответствии, например, с функциональным назначением:
io-pkt-ksz -di82544 pci=0,name=wan
 | Эта опция не поддерживается драйверами io-net. При попытке использования этой опции с драйвером "devn-" драйвер не загружается, и в журнал выводится ошибка "unknown option". |
Для обеспечения возможности определения конкретного устройства USB по данным, полученным в результате выполнения usb -v, в стеке обрабатываются следующие опции для всех драйверов USB, использующих библиотеку преобразования NetBSD в ЗОСРВ «Нейтрино»:
- did=идентификатор
- Идентификатор продукта устройства.
- vid=идентификатор
- Идентификатор вендора устройства.
- devno=адрес
- Адрес устройства, возвращаемый утилитой usb.
- busno=номер
- Хост-контроллер, возвращаемый утилитой usb.
Пример:
io-pkt-ksz -drum did=0x0020,vid=0x13b1,devno=1,busno=1
Запуск варианта io-pkt-* с драйвером devnp-bcm1250.so для интерфейса BCM91480A eth0:
io-pkt-ksz -d /lib/dll/devnp-bcm1250.so \
memrange=0x10064000,irq=0x80050024,mac=001122334455
ifconfig bcm0 10.184
Базовые подсистемы ЗОСРВ «Нейтрино», NetBSD
- В
ЗОСРВ «Нейтрино» редакции 2024 добавлено псевдоустройство laggr, реализующее функциональность агрегированного канала
devn-*, devnp-*, lsm-*, mount, umount, ifconfig
Предыдущий раздел: Сервисы