Менеджер сети
 | Существует несколько вариантов сетевого менеджера: 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
Предыдущий раздел: Сервисы