В этом разделе описаны команды управления bridge-интерфейсами.
Bridge-интерфейс - виртуальный транк, позволяющий соединять между собой две виртуальные АТС в рамках одного софтсвича (см. Бриджи).
<NODE> - имя ноды кластера Core.
declare
Данная команда предназначена для декларации bridge-интерфейса с заданным именем (BRIDGE_NAME) между двумя виртуальными АТС в рамках одного ECSS-10.
Если производится декларирование bridge-интерфейса с именем, которое уже задекларировано в системе, то будет выведено сообщение об ошибке и bridge не будет задекларирован.
Если была попытка задекларировать bridge-интерфейс с интерфейсами, уже присутствующими в системе, то на ввод команды будет выдано предупреждение об этом и bridge будет задекларирован.
Путь команды:
/bridge/declare
При создании бриджа пользователь может указать параметры system/bandwidth/in
, system/bandwidth/out
и system/bandwidth/total
(см. Бриджи). Необходимо как минимум указать параметр system/bandwith/total. Число параметров команды declare
фиксировано, но bandwidth указывается либо как число, либо как строка unbounded, либо как группа X/Y/Z, где X соответствует значению system/bandwidth/total, Y - system/bandwidth/in, Z - system/bandwidth/out. Формат параметра bandwidth для одного из транков в создаваемом бридже можно определить так:
Bandwidth -> Triple | X X -> положительное число | unbounded X_short -> положительное число | u Triple -> X_short/X_short/X_short
Приведём примеры корректных значений bandwidth, которые можно указать в команде создания бриджа.
В таблице ниже in, out, и total соответствуют системным ограничениям.
Пример | in | out | total |
200 | unbounded | unbounded | 200 |
unbounded | unbounded | unbounded | unbounded |
100/200/300 | 100 | 200 | 300 |
u/200/300 | unbounded | 200 | 300 |
u/u/u | unbounded | unbounded | unbounded |
Начиная с версии ECSS-10 3.11.0 параметр бриджей duplex (true|false) не используется. Вместо этого применяются системные ограничения транков.
Например создадим бридж со значением <Bandwindth> = 10/20/30. В домене A для связи с доменом Б создается служебный транк со значениями system/bandwith in/out/total соответственно 10/20/30, а в домене Б аналогичным образом создастся транк со значениями 20/10/30. Это эквивалентно созданию дуплексного бриджа.
Для имитации симплексного бриджа, создадим его со значением <Bandwidth> = 0/20/30. В домене A для связи с доменом Б создается служебный транк со значениями system/bandwith in/out/total соответственно 0/20/30, а в домене Б аналогичным образом создастся транк со значениями 20/0/30, что эквивалентно созданию симплексного бриджа из А в Б.
Чтобы изменить направление симплексного бриджа меняем в <Bandwidth> местами значения in и out. Например значение <Bandwith> из примера выше поменяется с 0/20/30 на 20/0/30 и бридж изменит направление.
Синтаксис:
declare <BRIDGE_NAME> <STRICT> <BANDWITH> <DOMAIN_A> <NP_A> <INTERFACE_A> <TRUNKGROUP_A> <ROUTING_CONTEXT_A> <DOMAIN_B> <NP_B> <INTERFACE_B> <TRUNKGROUP_B> <ROUTING_CONTEXT_B>
Параметры:
<BRIDGE_NAME> - уникальное в рамках ECSS-10 имя bridge-интерфейса (строка, без пробелов);
<STRICT> - режим проверки номеров, проходящих через бридж:
- true - проверка включена (при вызове из <DOMAIN_A> -> <DOMAIN_B> будет проверка, что номер абонента B существует в плане нумерации <NP_B> в домене B; при вызове из <DOMAIN_B> -> <DOMAIN_A> будет проверка, что номер абонента А существует в плане нумерации <NP_B> домена B);
- false - проверка выключена.
<BANDWITH> - количество вызовов, которое может использоваться текущим бриджем одновременно:
- Total - положительное целое число или 'unbouned';
- In/Out/Total - три положительных целых числа или символ "u", что означает unbouned.
<DOMAIN_A> / <DOMAIN_B> - имя первой/второй виртуальной АТС, с которой устанавливает соединение bridge;
<NP_A> / <NP_B> - план нумерации первой/второй виртуальной АТС, с которой устанавливает соединение bridge;
<INTERFACE_A> / <INTERFACE_B> - имя интерфейса первой/второй виртуальной АТС, через который будет осуществляться взаимодействие с bridge-интерфейсом;
<TRUNKGROUP_A> / <TRUNKGROUP_B> - идентификатор транк-группы для интерфейса первой/второй виртуальной АТС;
<ROUTING_CONTEXT_A> / <ROUTING_CONTEXT_B> - контекст маршрутизации по умолчанию для интерфейса первой/второй виртуальной АТС.
Пример:
admin@[mycelium1@ecss2]:/$ bridge/declare new_bridge true true 100 tc.domain nsk_city bridge:new_bridge tg:new_bridge def_context new_domain1.test city_np bridge:new_bridge2 tg:new_bridge2 def_context
change
Команда предназначена для изменения значения параметра bridge-интерфейса.
Путь команды:
/bridge/change
Синтаксис:
change <BRIDGE_NAME> <PROPERTY> <NewValue>
Параметры:
<BRIDGE_NAME> - имя bridge-интерфейса;
<PROPERTY> - название параметра, значение которого требуется изменить, принимает значения: name, strict, bandwidth, domain_a, np_a, iface_a, trunk_group_a, routing_contex_a, domain_b, np_b, iface_b, trunk_group_b, routing_conte x_b. Описание параметров приведено в разделе declare;
<NewValue> - новое значение параметра.
Пример:
Example 1: change test_bridge bandwidth 3/3/5 Example 2: change test_bridge routing_contex_a ctx_city_local Example 3: change test_bridge domain_a d.external ctx_city_local in this case we must set routing context at the same time.
cleanup
Команда предназначена для удаления всех ранее задекларированных bridge-интерфейсов в системе. При удалении bridge-интерфейсов удаляются интерфейсы, связанные с ними.
Путь команды:
/bridge/cleanup
Синтаксис:
cleanup
Параметры:
Команда не содержит аргументов.
Пример:
admin@[mycelium1@ecss1]:/$ bridge/cleanup Clean up filished successfully. [exec at: 10.08.2015 18:01:37, exec time: 76ms, nodes: core1@ecss2]
info
Команда предназначена для просмотра информации обо всех/определенном bridge-интерфейсах, задекларированных в системе. При выполнении команды без параметров на экран будет выведена информация о всех декларированных bridge системы.
Путь команды:
/bridge/info
Синтаксис:
info [<BRIDGE_NAME>]
Параметры:
<BRIDGE_NAME> - имя bridge-интерфейса, (опциональный параметр).
Пример:
admin@[mycelium1@ecss1]:/$ bridge/info ┌──────────┬──────┬─────────┬─────────┬─────────┬────────┬─────────┬───────────────────┬───────────────┬───────────────┬────────┬─────────┬─────────────┬─────────┬───────────────┐ │ Name │Strict│ In │ Out │ Total │Domain A│Numbering│ Iface A │ Trunk │ Context A │Domain B│Numbering│ Iface B │ Trunk │ Context B │ │ │ │ │ │ │ │ plan A │ │ group A │ │ │ plan B │ │ group B │ │ ├──────────┼──────┼─────────┼─────────┼─────────┼────────┼─────────┼───────────────────┼───────────────┼───────────────┼────────┼─────────┼─────────────┼─────────┼───────────────┤ │test_bandw│true │200 │200 │200 │pv.ssw2 │default │bridge:to_test_band│tg:to_test_band│default_routing│test_br1│default │bridge:to_pv2│tg:to_pv2│default_routing│ │br1_br2 │false │unbounded│unbounded│unbounded│test_br1│default │bridge:to_br2 │tg:to_br2 │default_routing│test_br2│default │bridge:to_br1│tg:to_br1│default_routing│ │test │false │256 │256 │256 │test_br1│default │bridge:to_pv │tg:to_pv │default_routing│pv.ssw2 │default │bridge:to_br │tg:to_br │default_routing│ │br2_br3 │false │unbounded│unbounded│10000 │test_br2│default │bridge:to_br3 │tg:to_br3 │default_routing│test_br3│default │bridge:to_br2│tg:to_br2│default_routing│ │test_12 │false │100 │100 │100 │DIMA │default │bridge:to_br1 │tg:to_br4 │Tau │Tm │default │bridge:to_br4│tg:to_br5│undefined │ └──────────┴──────┴─────────┴─────────┴─────────┴────────┴─────────┴───────────────────┴───────────────┴───────────────┴────────┴─────────┴─────────────┴─────────┴───────────────┘ Bridges in table: 5 admin@[mycelium1@ecss1]:/$ bridge/info test_bandw ┌──────────┬──────┬───┬───┬─────┬────────┬─────────┬───────────────────┬───────────────┬───────────────┬────────┬─────────┬─────────────┬─────────┬───────────────┐ │ Name │Strict│In │Out│Total│Domain A│Numbering│ Iface A │ Trunk │ Context A │Domain B│Numbering│ Iface B │ Trunk │ Context B │ │ │ │ │ │ │ │ plan A │ │ group A │ │ │ plan B │ │ group B │ │ ├──────────┼──────┼───┼───┼─────┼────────┼─────────┼───────────────────┼───────────────┼───────────────┼────────┼─────────┼─────────────┼─────────┼───────────────┤ │test_bandw│true │200│200│200 │pv.ssw2 │default │bridge:to_test_band│tg:to_test_band│default_routing│test_br1│default │bridge:to_pv2│tg:to_pv2│default_routing│ └──────────┴──────┴───┴───┴─────┴────────┴─────────┴───────────────────┴───────────────┴───────────────┴────────┴─────────┴─────────────┴─────────┴───────────────┘ Bridges in table: 1
remove
Команда предназначена для удаления ранее задекларированного bridge-интерфейса из системы. При удалении bridge-интерфейса удаляются интерфейсы, связанные с ним. Если bridge-интерфейс с данным именем не существует, то будет выдано сообщение об этом.
Путь команды:
/bridge/remove
Синтаксис:
remove <BRIDGE_NAME>
Параметры:
<BRIDGE_NAME> - имя bridge-интерфейса, который необходимо удалить из системы.
Пример:
admin@[mycelium1@ecss1]:/$ bridge/remove new_bridge Bridge "new_bridge" successfully removed. [exec at: 10.08.2015 18:00:28, exec time: 58ms, nodes: core1@ecss2]