В текущем разделе описываются команды настройки и просмотра транспортных протоколов.

peer - описание/настройки транспортного протокола

Ниже описаны общие команды для настройки и просмотра транспортных протоколов.

declare

Команда используется для создания нового peer-а в системе ECSS-10.

Путь команды:

/network/peer/declare

Синтаксис:

declare <NAME> <PROTOCOL> <PROTOCOL_ARGS> <MODE> [<NODE_PARAMS_1> [ <NODE_PARAMS_2> [...]]]

Параметры:

<NAME> - имя peer-а, уникальное на уровне системы;
<PROTOCOL> - sctp | udp | tcp;
<PROTOCOL_ARGS> - для sctp протокола: <IN_STREAMS> <OUT_STREAMS>; для остальных протоколов параметры отсутствуют;
<IN_STREAMS> :: 1..65535 - желаемое количество входящих SCTP потоков;
<OUT_STREAMS> :: 1..65535 - желаемое количество исходящих SCTP потоков;
<MODE> - client | server. server - в этом случае на уровне системы подымается listen интерфейс, и мы ожидаем что сторонние системы будут подключаться к нам; client - в этом случае мы подключаемся к удаленной стороне;
<NODE_PARAMS_N> :: <NODE_N> <IP_1>[, <IP_2> [...]] <PORT>;

<NODE_N> - имя ноды, к которой привязан IPs/Port. Для режима mode = client так же возможно значение any;
<IP_N> - в случае mode = server IP адрес и порт на котором подымает listen интерфейс (для mode = server); в случае mode = client
IP адрес или имя хоста и порт, к которому в рамках данного peer-а будет транспорт с указанной ноды

Пример:

admin@mycelium1@ecss1:/$ network/peer/declare test_peer udp client * 192.168.1.21 5066              
Peer test_peer successfully created.

[exec at: 01.03.2021 23:04:20, exec time: 26ms, nodes: ds1@ecss1 v.3.14.7.620]

remove

Команда используется для удаление ранее созданного peer-а из системы ECSS-10.

Путь команды:

/network/peer/remove

Синтаксис:

remove <NAME>

Параметры:

<NAME> - имя peer-а

Пример:

admin@mycelium1@ecss1:/$ network/peer/remove test_peer              
Peer test_peer successfully removed.

[exec at: 01.03.2021 23:10:01, exec time: 25ms, nodes: ds1@ecss1 v.3.14.7.620]

info

Команда используется для просмотра информации о ранее созданном peer-е (всех peer-ов) в системе ECSS-10.

Путь команды:

/network/peer/info

Синтаксис:

info [--extended] [<NAME>]

Параметры:

<NAME> - имя peer-а;
--extended - показать расширенную информацию по peer-у (включая расширенные настройки).

Пример:

admin@mycelium1@ecss1:/$ network/peer/info --extended   
┌─────────────────────────┬────────┬─┬─────────────────────────┬────────────────────────────┬─────────────────────────────────────────────────────┬─────────────────────────────────────────────────────┐
│          Name           │Protocol│M│          Node           │          IP:Port           │                     Description                     │                       Options                       │
├─────────────────────────┼────────┼─┼─────────────────────────┼────────────────────────────┼─────────────────────────────────────────────────────┼─────────────────────────────────────────────────────┤
│test_peer                │udp     │C│core1@ecss1              │192.168.1.21:5066           │                                                     │max_down = 10s                                       │
│                         │        │ │mycelium1@ecss1          │192.168.1.21:5066           │                                                     │sndbuf = 32768                                       │
│                         │        │ │md1@ecss1                │192.168.1.21:5066           │                                                     │recbuf = 32768                                       │
│                         │        │ │sip1@ecss1               │192.168.1.21:5066           │                                                     │buffer = 32768                                       │
│                         │        │ │ds1@ecss1                │192.168.1.21:5066           │                                                     │                                                     │
└─────────────────────────┴────────┴─┴─────────────────────────┴────────────────────────────┴─────────────────────────────────────────────────────┴─────────────────────────────────────────────────────┘

Legend:
M - mode of peer:
  S - server;
  C - client.

[exec at: 01.03.2021 23:06:27, exec time: 21ms, nodes: ds1@ecss1 v.3.14.7.620]

set

Команда используется для изменения свойств для ранее созданного peer-а системы ECSS-10.

Путь команды:

/network/peer/set

Синтаксис:

set <NAME> <KEY> <VALUE>

Параметры:

<NAME> - имя peer-а;

<KEY> :: proto | mode | node-ip | description | max_down | <PROTOCOL_SPECIFIC_KEY>: 

proto :: sctp | udp | tcp - тип протокола;
mode :: client | server - режим работы;
node-ip :: * | <NODE_N> <IP_1>[, <IP_2> [...]] <PORT> - новый список IP-адресов для определенной ноды и порт;
max_down :: - время в секундах после закрытия сокета. По истечении этого времени соединение восстанавливается;;
description - описание данного peer-а;
<NODE> - имя ноды;
<PROTOCOL_SPECIFIC_KEY> - специфичные настройка для определенного протокола.

Для протокола STCP:
instreams :: 1..65535желаемое количество входящих потоков SCTP;
out stream :: 1..65535желаемое количество исходящих потоков SCTP;
sctp_autoclose :: - Определяет время в секундах, после которого незанятая ассоциация автоматически закрывается. 0 означает, что ассоциация никогда не закрывается автоматически;
sctp_disable_fragments :: - Выключение фрагментации SCTP пакетов.;
sctp_i_want_mapped_v4_addr :: Включает | отключает автоматическое сопоставление адресов IPv4 с адресами IPv6 (если семейство адресов сокетов AF_INET6);
sctp_maxseg :: Определяет максимальный размер фрагмента, если используется фрагментация сообщения. Если 0, размер порции ограничен только MTU;
sctp_nodelay :: Включает / выключает алгоритм объединения небольших пакетов в более крупные.;
sctp_rtoinfo :: Определяет параметры времени ожидания повторной передачи в миллисекундах:
min - Минимальный таймаут (>= 0);
max - Максимальный таймаут (>= 0);
sctp_peer_addr_params ::Определяет различные параметры адреса для ассоциации;
hbinterval - интервал Heartbeat сообщений в миллисекундах;
pathmaxrxt - Максимальное количество повторных передач до того, как этот адрес будет считаться недоступным;
pathmtu - Параметр MTU, если автоматическое обнаружение отключено;
sackdelay - Задержка , в миллисекундах, для SAC сообщений;

Флаги:
hb_enable - включить Heartbeat;
hb_disable - выключить Heartbeat;
hb_demand - Инициировать Heartbeat немедленно;
pmtud_enableВключает автоматическое обнаружение MTU размера;
pmtud_disable -  Выключает автоматическое обнаружение MTU размер;
sackdelay_enable - Включить SAC задержку;
sackdelay_disable - Выключить SAC задержку;

Для протоколов SCTP/UDP/TCP:
broadcast :: Включает / отключает разрешение на отправку широковещательных сообщений;
buffer :: Размер буфера пользовательского уровня, используемого драйвером;
dontroute ::Включает / отключает обход маршрутизации для исходящих сообщений;
high_msgq_watermark :: Размер очереди сообщений сокета. По умолчанию до 8 кБ;
keepalive - Включает / отключает периодическую передачу по подключенному разъему, когда никакие другие данные не передаются. По умолчанию false;
low_msgq_watermark :: Значение, при котором статус очереди сообщений устанавливается как активный. По умолчанию 4 кБ;
linger - Определяет время ожидания в секундах для сброса неотправленных данных, когда сокет закрыт;
nodelay - Небольшие объемы данных отправляются немедленно;
packet_size - Устанавливает максимально допустимую длину тела пакета;
priorityУстанавливает приоритет на платформах, где реализован данный функционал;
read_packetsУстанавливает максимальное количество пакетов UDP для чтения без вмешательства со стороны сокета, когда данные доступны. По умолчанию 5;
recbuf - Минимальный размер приемного буфера для использования в сокете;
reuseaddr - Разрешает или запрещает локальное повторное использование номеров портов. По умолчанию false;
sndbuf - Минимальный размер буфера отправки, используемый для сокета;
send_timeout - Указывает самое длительное время ожидания операции отправки, которая будет принята базовым стеком TCP. По умолчанию до бесконечности;
send_timeout_closeИспользуется вместе с send_timeout, чтобы указать, должен ли сокет автоматически закрываться, когда операция send возвращает {error, timeout}. По умолчанию false;
show_econnreset - Если для этой опции задано значение false, которое является значением по умолчанию, RST, полученный от однорангового узла TCP, рассматривается как нормальное закрытие;
tos - Устанавливает параметры IP-уровня IP_TOS на платформах, где это реализовано. Поведение и допустимый диапазон варьируются в зависимости от системы.;
tclass - Устанавливает параметры IP-уровня IPV6_TCLASS на платформах, где это реализовано. Поведение и допустимый диапазон варьируются в зависимости от системы.;
ttlВремя жить пакета;
recvtos - Если установлено значение true, активирует возврат полученного значения TOS на платформах, которые реализуют опцию протокола IPPROTO_IP IP_RECVTOS для сокета;
recvttlЕсли установлено значение true, активирует возврат полученного значения TTL на платформах, которые реализуют опцию протокола IPPROTO_IP IP_RECVTTL для сокета;
recvtclass - Если задано значение true, активирует возврат полученного значения TCLASS на платформах, реализующих опцию протокола IPPROTO_IPV6 IPV6_RECVTCLASS или IPV6_2292RECVTCLASS для сокета;

<VALUE> - новое значение свойства

Пример:

admin@mycelium1@ecss1:/$ network/peer/set test_peer priority 4            
Property priority for peer test_peer successfully changed.

[exec at: 01.03.2021 23:08:37, exec time: 25ms, nodes: ds1@ecss1 v.3.14.7.620]

clean

Команда используется для удаления/скидывания на дефолт свойств для ранее созданного peer-а системы ECSS-10.

Путь команды:

/network/peer/clean

Синтаксис:

clean <NAME> <KEY>

Параметры:

<NAME> - имя peer-а;
<KEY> :: proto | mode | node-ip <NODE> | description | max_down | <PROTOCOL_SPECIFIC_KEY>;
<NODE> - имя ноды;
<PROTOCOL_SPECIFIC_KEY> - специфичные настройка для определенного протокола. На текущей момент доступны значения: buffer | description | dontroute | heartbeat_interval | high_msgq_watermark | instreams | linger | low_msgq_watermark | mode | node-ip | outstreams | priority | proto | recbuf | recvtclass | recvtos | recvttl | reuseaddr | sctp | sctp_disable_fragments | sctp_i_want_mapped_v4_addr | sctp_maxseg | sctp_nodelay | sndbuf | tclass | tos | ttl

Пример:

admin@mycelium1@ecss1:/$ network/peer/clean test_peer priority        
Property priority for peer test_peer successfully cleaned.

[exec at: 01.03.2021 23:09:21, exec time: 35ms, nodes: ds1@ecss1 v.3.14.7.620]