/network/peer - команды управления настройками транспортного протокола
В текущем разделе описываются команды настройки и просмотра транспортных протоколов.
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]