lsm-qnet.so

Модуль прозрачной распределенной сети (собственная сеть QNX)

Синтаксис:

io-pkt ... -p qnet [опция[,опция]...]

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

Neutrino

Опции:

Примечание
.

auto_add=X

При запуске qnet встроенный в  io-pkt преобразователь Ethernet (en) рассылает собственные отображения во все интерфейсы. Эта опция определяет интервал времени в тактах (см. описание опции periodic_ticks), после которого встроенный в io-pkt преобразователь Ethernet  (en) выполняет передачу собственных отображений во все интерфейсы повторно. Это действие аналогично автоматическому заполнению каталога /net всеми связанными узлами.

Значение по умолчанию – 150 тактов, что соответствует 30 секундам. Значение 0 является специальным; если указано это значение, то процессы передачи останавливаются, и незатребованные передачи отклоняются. При этом в каталог /net вносятся только те узлы, которые специально открываются приложениями на локальном узле.

bind=enX

Указывает используемый интерфейс (например, bind=en0). По умолчанию используются все интерфейсы /dev/io-net/enX. Если указаны несколько опций bind, то в Qnet используются все указанные интерфейсы. Это наиболее быстрый способ переноса пакетов.

Примечание. Сочетание bind=en и resolve=dns является недопустимым.

bind=ip

Вместо использования неформатированных ("голубая книга" DIX) пакетов Ethernet включить в пакеты Qnet IP-заголовок по зарегистрированному номеру протокола. Рекомендуется в больших сетях, где невозможна коммутация второго уровня, но требуется маршрутизировать все пакеты.

При использовании опции bind=ip также необходимо указать опцию resolve=dns (указать преобразователь).  Преобразователь используется для отображения имени узла в IP-адресе. Преобразователь по умолчанию опцию bind=ip не использует.

conn_est_retries=X

Число повторных попыток установления соединения QoS перед отказом. Значение по умолчанию – 1.

conn_est_timeout=X

Число периодических тактов перед повторной передачей запроса на установление соединения QoS. Значение по умолчанию – 1.

conn_up_idle=X

Число периодических тактов до того, как QoS заключает, что соединение неактивно (без трафика), и требуется его опрос посредством тактового сообщения. Значение по умолчанию – 50 тактов (10 секунд).

conn_up_retries=X

Число оставшихся без ответа тактовых сообщений, после которого QoS заключает, что соединение не функционирует. Значение по умолчанию – 6.

do_crc=X

Активировать (1) или деактивировать (0) проверку пакетов до четвертого уровня (L4) циклическим избыточным кодом (CRC) на программном уровне . Значением по умолчанию является 0. Оптимальная производительность на надежном оборудовании обеспечивается при деактивации проверки циклическим избыточным кодом.

enforce_crc=число

При использовании этой опции вместе с do_crc принимаются только пакеты с действительным циклическим избыточным кодом. Применение этой опции целесообразно только в том случае, если для do_crc установлено значение 1. При определении для опции enforce_crc значения 1 пакеты без действительного циклического избыточного кода программного уровня, сгенерированной удаленным узлом (т.е. на котором выполняется do_crc=0), отклоняются, поскольку отсутствует информация о целостности содержимого пакета. Значение по умолчанию – 0, что позволяет обрабатывать пакеты, принятые без сгенерированного циклического избыточного кода программного уровня.

host=имя_хоста

Изменить имя хоста компьютера.

mapany=map_uid

Отобразить входящий идентификатор любого пользователя в map_uid, а идентификатор его группы в идентификатор группы map_uid.

maproot=map_uid

Если входящий идентификатор пользователя 0, отобразить его в map_uid, а идентификатор группы в идентификатор группы map_uid.

max_num_l4s=число

Указать число интерфейсов. Значение по умолчанию – 2, максимальное значение – 4.

max_tx_bufs=число

Число буферов передачи, зарезервированных Qnet перед дальнейшим выделением. Значение по умолчанию – 500. Если приложение отправляет большие сообщения, в целях повышения производительности это значение может быть увеличено. Если приложение, как правило, отправляет небольшие сообщения (небольшие сообщения составляют большую часть системного трафика), это значение может быть уменьшено в целях экономии памяти.

mount=каталог[:[.]домен]]*

Указать сетевой каталог. По умолчанию используется каталог /net. По умолчанию аргумент домен принимает значение домена имени хоста (при наличии) или каталога с заменой косых черт на точки и расположением элементов в обратном порядке. Например, для /net/outside/canada определен домен canada.outside.net. Первым смонтированным элементом является каталог по умолчанию и домен, через который разрешается локальное имя хоста.

mtu_en=число

Указать максимальный размер передаваемого блока данных (Maximum Transmission Unit; MTU) в пакете Qnet. Значение аргумента число должно быть больше 100, и все узлы в сети должны использовать одно значение. Значение по умолчанию – 1500.

no_ack=X

Создавать и ожидать (или не создавать и не ожидать) пакеты ACK. Эти пакеты обеспечивают доставку данных в сетях, в которых возможна потеря пакетов, например Ethernet. Возможные значения X:

0

Создавать и ожидать пакеты ACK (значение по умолчанию).

1

Не создавать и не ожидать пакеты ACK. Это значение следует указывать только в случаях, когда возможность потери пакетов полностью исключается.

Примечание
. Все хосты в сети должны быть сконфигурированы с одинаковым значением опции no_ack.

no_slog=X

При установке для этой опции ненулевого значения Qnet не записывает ошибки и события в журнал slogger. Эта опция используется для удаления событий, вызванных сетью с помехами, при поиске несетевых событий в выводе журнала sloginfo. По умолчанию Qnet записывает события в журнал slogger, что соответствует определению нулевого значения для опции no_slog.

periodic_ticks=X

Число активаций QoS/L4 в секундах для выполнения периодических задач по обслуживанию. Значение должно находиться в диапазоне от 1 до 1000; значение по умолчанию – 5, что соответствует 200 тактам в мсек.

Примечание. Изменение значения periodic_ticks влияет на временные параметры всех других опций, действие которых зависит от тактового таймера.

probe_no_l4_time=X

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

qos_per_pri=число
qos_tx_pri=число


Приоритет импульсов для потока периодической передачи QoS и потока передачи QoS.

Примечание. Изменять эти значения не рекомендуется. Опции qos_per_pri и qos_tx_pri предусмотрены для редких случаев, когда требуется изменить приоритет подсистем io-pkt.

qos_verbose=X

Уровень вывода расширенной информации по управлению подключениями посредством QoS. Значение по умолчанию – 0. Чем выше значение, тем выше уровень подробности выводимой информации. Эта опция используется в целях диагностики.

res_retries=X

Число повторных попыток, выполняемых преобразователем Ethernet во время предпринятого разрешения узла перед отказом. Значение по умолчанию – 2.

res_ticks=X

Число периодических тактов перед повторной передачей преобразователем запроса на разрешение узла. Значение по умолчанию – 1.

resolve=преобразователь[:параметр_преобразователя]


Добавить в список преобразователей для точек монтирования дополнительный преобразователь.

В менеджер сети встроены следующие значения аргумента преобразователь:
Аргумент хост.домен обозначает полное доменное имя Qnet (fully qualified domain name; FQDN). Аргумент адрес1 и дополнительный аргумент адрес2 определяют адреса интерфейсов для FQDN. Для bind=en используется формат адреса xx:xx:xx:xx:xx:xx (MAC-адрес).
В случае ввода других данных Qnet выполняет попытку загрузки nr-resolver.so. По умолчанию используется преобразователь имен en_ionet. По вопросам создания nr-resolver.so обращайтесь в службу поддержки QNX.

Примечание. Следующие сочетания не поддерживаются:

ret_drvr_rx_buf=X


Способ обработки полученных пакетов (rxd) четвертым уровнем (L4):

slow_mode=X

Число тактов, после которого не учитывается режим медленной передачи (т.е. с "узкими окнами") для узла. Значение по умолчанию – 1200, что соответствует 240 секундам или четырем минутам. Значение 0 является специальным. При выборе этого значения режим медленной передачи полностью деактивируется.

tx_retries=X

Число повторных попыток передачи Qnet перед отказом. Значение по умолчанию – 25.

tx_ticks=X

Число периодических тактов перед повторной передачей четвертым уровнем запроса на передачу. Значение по умолчанию – 1.

vtag=номер_тега

Qnet вставляет в пакет четырехбайтный тег vlan. Значение номер_тега должно быть больше нуля. Если указана эта опция, Qnet принимает только пакеты со значением тега, соответствующим значению номер_тега. Если используемый драйвер не поддерживает пакеты по 1518 байт, также необходимо использовать опцию Qnet mtu_en=1496.

Описание:

Менеджер lsm-qnet.so является упрощенной версией менеджера QNX, реализующего собственные функции организации сетей Neutrino, Transparent Distributed Processing (TDP; прозрачная распределенная обработка).

На уровне программного обеспечения QoS реализован протокол сессий "узел-узел" с обработкой выбора среды передачи.

Четвертый уровень представляет собой программный уровень, следующий за уровнем QoS, на котором реализуется четвертый транспортный уровень ISO для обеспечения надежной доставки данных без дублирования с использованием нижестоящего уровня драйвера.

Примечание. Выполнить утилиту umount в отношении Qnet невозможно, но можно создать модуль записи в буфер io- pkt с поддержкой демонтирования.

Если последовательно указаны две или более опций resolve=, то преобразователи вносятся в список вариантов поиска для каталога, указанного в последующих опциях mount=.

Список преобразователей завершается опцией mount=. Все опции resolve= после опции mount= переносятся в новый список, а не добавляются в предыдущий.

Пример. Следующая строка:

resolve=a,resolve=b,mount=x,mount=y,resolve=c,mount=z


указывает, что:
Примеры:

Существует два способа запуска Qnet: одновременно с утилитой io-pkt или после этого с помощью утилиты mount.

Одновременный запуск сетевого драйвера, Qnet и TCP/IP. Для Qnet при этом используется тип пакетов Ethernet по умолчанию ("голубая книга" DIX) без проверки циклическим избыточным кодом и 1024 дескриптора для обеспечения максимальной производительности:

io-pkt -d speedo transmit=1024,receive=1024 -p qnet -p tcpip

Запуск io-pkt, затем с помощью команды mount последовательный запуск драйвера и Qnet с применением актуальных имен файлов разделяемых библиотек:

io-pkt

mount -T io-pkt -o transmit=1024,receive=1024 devn-speedo.so

mount -T io-pkt lsm-qnet.so


Эти разделяемые библиотеки (с расширением .so) находятся в каталоге /lib/dll. Утилита mount автоматически осуществляет поиск этих библиотек в указанном каталоге. Утилите mount можно присвоить полное путевое имя.

В следующем примере представлен одновременный запуск всех компонентов с использованием инкапсуляции IP-пакетов вместо "голубой книги" DIX:

io-pkt -d speedo transmit=1024,receive=1024 -p qnet bind=ip,resolve=dns -p tcpip


Для получения дополнительной информации см. описание
mount и io-pkt.

Файлы:

/dev/io-net

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

/etc/system/config/useqnet

Если этот файл существует, в системе используются файлы запуска по умолчанию. При запуске системы выполняется команда io- pkt. Также выполняется автоматическая загрузка lsm-qnet.so. Для получения дополнительной информации см. главу Controlling How Neutrino Starts ("Запуск QNX Neutrino") «Руководства системного программиста (администратора)» КПДА.10964-01 32.

/proc/qnetstats


Запись, помещаемая Qnet в файловую систему /proc. При открытии и чтении этого файла код менеджера ресурсов Qnet отвечает путем передачи текущей статистики для Qnet.

Предупреждения:

В Qnet не реализована полная поддержка обмена информацией между компьютерами с прямым и обратным порядком байтов. Однако доступен обмен данными между машинами с разными типами процессоров (например, ARMLE и x86), для которых определен одинаковый порядок байтов. Если требуется сетевое взаимодействие посредством Qnet с применением разных порядков байтов, обратитесь к торговому представителю QNX.