SetDomainShaper, SetDomainShaperAutoCreated - Установить ограничения для указанного домена и SSID, привязанных к нему
Общая информация
-
Команда служит для установки ограничений по трафику на домен (группу ТД и SSID, привязанных к домену) и все входящие.
При выдаче данных по запросу ESR из Eltex.PCRF ограничения по трафику могут быть получены как из текущего домена, где присутствует ТД, так и из родительского домена. Это позволяет настраивать ограничения на целый регион или населенный пункт.
Если для домена установлены свои ограничения, то обращений за информацией к родительскому домену не будет. -
Для установки ограничений на SSID внутри домена все SSID должны быть предварительно привязаны к данному домену через систему EMS или NBI.
Привязка SSID к домену: SetSSIDByDomain.
Просмотр списка SSID, привязанных к домену: GetSsidLinkListByDomain. -
Одновременно с этим данные используются для поднятия нужных VLAN на ESR при инициализации канала. Потому команда может использоваться без указания ограничений, с указанием только нужных привязок SSID.
-
Команда SetDomainShaper актуальна, начиная с версии 1.5
-
Команда SetDomainShaperAutoCreated актуальна с версии 1.8. Имеет идентичное API. Отличается тем, что используется в EMS для автоматического создания профиля шейпера при осуществлении привязки SSID к домену. В этом случае в профиль сохраняется признак auto_created = true. Для удаления автоматически созданных профилей может быть использована команда ClearAutoCreatedDomainShaper
Условия валидации профиля шейпера
-
Значения peakUp/peakDown должны быть больше или равны значениям averageUp/averageDown.
-
Значения peakUp/peakDown не могут назначаться при пустых значениях averageUp/averageDown.
-
Значения peakUp/peakDown можно задать безлимитными (отсутствие ограничения) при любых значениях averageUp/averageDown.
Отсутствие ограничения задается значениями 0 или null. -
Значения всех ограничений по трафику лежат в диапазоне [64..10 000000], Kbps.
-
Значения peakUp/peakDown, заданные в SSID, не должны превышать значения peakUp/peakDown, заданные в домене.
-
Сумма значений averageUp/averageDown, заданных в SSID, не должна превышать значения averageUp/averageDown, заданные в домене. Для SSID с безлимитным значением (отсутствие ограничения) значение считается за минимальное, т.е. 64Kbps.
Входные параметры
| Параметр | Значение | Формат значения | Расшифровка формата | Ссылка |
|---|---|---|---|---|
profile |
Профиль ограничений NbiDomainShaperProfile |
Выходные параметры
| Параметр | Значение | Формат значения |
|---|---|---|
code |
Код ответа |
Целое неотрицательное число. |
detail |
Пояснение к ответу |
Текст английскими буквами с пробелами и спецсимволами. |
Примеры команд и кодов
| Код | Описание ошибки |
|---|---|
0 |
Успешно (ограничения и на группу ТД и на SSID) |
Запрос
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nbi="http://nbi.radius.eltex.org"
xmlns:xsd="http://shaper.pcrf.response.object.nbi.radius.eltex.org/xsd">
<soapenv:Header/>
<soapenv:Body>
<nbi:SetDomainShaper>
<nbi:profile>
<xsd:averageDown>5000</xsd:averageDown>
<xsd:averageUp>3000</xsd:averageUp>
<xsd:domain>mike.root</xsd:domain>
<xsd:peakDown>10000</xsd:peakDown>
<xsd:peakUp>6000</xsd:peakUp>
<!--Zero or more repetitions:-->
<xsd:ssid>
<xsd:averageDown>500</xsd:averageDown>
<xsd:averageUp>300</xsd:averageUp>
<xsd:domain>root</xsd:domain>
<xsd:name>SSID223</xsd:name>
<xsd:peakDown>1000</xsd:peakDown>
<xsd:peakUp>600</xsd:peakUp>
</xsd:ssid>
<xsd:ssid>
<xsd:averageDown>600</xsd:averageDown>
<xsd:averageUp>400</xsd:averageUp>
<xsd:domain>root</xsd:domain>
<xsd:name>SSID226</xsd:name>
<xsd:peakDown>1200</xsd:peakDown>
<xsd:peakUp>800</xsd:peakUp>
</xsd:ssid>
</nbi:profile>
</nbi:SetDomainShaper>
</soapenv:Body>
</soapenv:Envelope>
Ответ
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:SetDomainShaperResponse
xmlns:ns="http://nbi.radius.eltex.org">
<ns:return>
<ax21:code>0</ax21:code>
<ax21:detail/>
</ns:return>
</ns:SetDomainShaperResponse>
</soapenv:Body>
</soapenv:Envelope>
| Код | Описание ошибки |
|---|---|
0 |
Успешно (ограничения только на группу ТД без привязок SSID) |
Запрос
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nbi="http://nbi.radius.eltex.org"
xmlns:xsd="http://shaper.pcrf.response.object.nbi.radius.eltex.org/xsd">
<soapenv:Header/>
<soapenv:Body>
<nbi:SetDomainShaper>
<nbi:profile>
<xsd:averageDown>5000</xsd:averageDown>
<xsd:averageUp>3000</xsd:averageUp>
<xsd:domain>mike.root</xsd:domain>
<xsd:peakDown>10000</xsd:peakDown>
<xsd:peakUp>6000</xsd:peakUp>
<!--Zero or more repetitions:-->
</nbi:profile>
</nbi:SetDomainShaper>
</soapenv:Body>
</soapenv:Envelope>
Ответ
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:SetDomainShaperResponse
xmlns:ns="http://nbi.radius.eltex.org">
<ns:return>
<ax21:code>0</ax21:code>
<ax21:detail/>
</ns:return>
</ns:SetDomainShaperResponse>
</soapenv:Body>
</soapenv:Envelope>
| Код | Описание ошибки |
|---|---|
0 |
Успешно (указаны только имя и домен SSID) |
Запрос
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nbi="http://nbi.radius.eltex.org"
xmlns:xsd="http://shaper.pcrf.response.object.nbi.radius.eltex.org/xsd">
<soapenv:Header/>
<soapenv:Body>
<nbi:SetDomainShaper>
<nbi:profile>
<xsd:averageDown>5000</xsd:averageDown>
<xsd:averageUp>3000</xsd:averageUp>
<xsd:domain>root</xsd:domain>
<xsd:peakDown>10000</xsd:peakDown>
<xsd:peakUp>6000</xsd:peakUp>
<!--Zero or more repetitions:-->
<xsd:ssid>
<xsd:averageDown></xsd:averageDown>
<xsd:averageUp></xsd:averageUp>
<xsd:domain>root</xsd:domain>
<xsd:name>SSID2</xsd:name>
<xsd:peakDown></xsd:peakDown>
<xsd:peakUp></xsd:peakUp>
</xsd:ssid>
</nbi:profile>
</nbi:SetDomainShaper>
</soapenv:Body>
</soapenv:Envelope>
Ответ
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:SetDomainShaperResponse
xmlns:ns="http://nbi.radius.eltex.org">
<ns:return>
<ax21:code>0</ax21:code>
<ax21:detail/>
</ns:return>
</ns:SetDomainShaperResponse>
</soapenv:Body>
</soapenv:Envelope>
| Код | Описание ошибки |
|---|---|
62 |
Домен не найден |
Запрос
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nbi="http://nbi.radius.eltex.org"
xmlns:xsd="http://shaper.pcrf.response.object.nbi.radius.eltex.org/xsd">
<soapenv:Header/>
<soapenv:Body>
<nbi:SetDomainShaper>
<nbi:profile>
<xsd:averageDown>5000</xsd:averageDown>
<xsd:averageUp>3000</xsd:averageUp>
<xsd:domain>mik.root</xsd:domain>
<xsd:peakDown>10000</xsd:peakDown>
<xsd:peakUp>6000</xsd:peakUp>
<!--Zero or more repetitions:-->
</nbi:profile>
</nbi:SetDomainShaper>
</soapenv:Body>
</soapenv:Envelope>
Ответ
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:SetDomainShaperResponse
xmlns:ns="http://nbi.radius.eltex.org">
<ns:return>
<ax21:code>62</ax21:code>
<ax21:detail>Such domain 'mik.root' is not registered in ELTEX_EMS.DOMAINS</ax21:detail>
</ns:return>
</ns:SetDomainShaperResponse>
</soapenv:Body>
</soapenv:Envelope>
| Код | Описание ошибки |
|---|---|
10 |
Нет прав на управление в указанном домене |
Запрос
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nbi="http://nbi.radius.eltex.org"
xmlns:xsd="http://shaper.pcrf.response.object.nbi.radius.eltex.org/xsd">
<soapenv:Header/>
<soapenv:Body>
<nbi:SetDomainShaper>
<nbi:profile>
<xsd:averageDown>5000</xsd:averageDown>
<xsd:averageUp>3000</xsd:averageUp>
<xsd:domain>mike.root</xsd:domain>
<xsd:peakDown>10000</xsd:peakDown>
<xsd:peakUp>6000</xsd:peakUp>
<!--Zero or more repetitions:-->
</nbi:profile>
</nbi:SetDomainShaper>
</soapenv:Body>
</soapenv:Envelope>
Ответ
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:SetDomainShaperResponse
xmlns:ns="http://nbi.radius.eltex.org">
<ns:return>
<ax21:code>10</ax21:code>
<ax21:detail>Role have no rights on domain 'mike.root'</ax21:detail>
</ns:return>
</ns:SetDomainShaperResponse>
</soapenv:Body>
</soapenv:Envelope>
| Код | Описание ошибки |
|---|---|
8 |
Некорректное значение домена |
Запрос
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nbi="http://nbi.radius.eltex.org"
xmlns:xsd="http://shaper.pcrf.response.object.nbi.radius.eltex.org/xsd">
<soapenv:Header/>
<soapenv:Body>
<nbi:SetDomainShaper>
<nbi:profile>
<xsd:averageDown>5000</xsd:averageDown>
<xsd:averageUp>3000</xsd:averageUp>
<xsd:domain></xsd:domain>
<xsd:peakDown>10000</xsd:peakDown>
<xsd:peakUp>6000</xsd:peakUp>
<!--Zero or more repetitions:-->
</nbi:profile>
</nbi:SetDomainShaper>
</soapenv:Body>
</soapenv:Envelope>
Ответ
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:SetDomainShaperResponse
xmlns:ns="http://nbi.radius.eltex.org">
<ns:return>
<ax21:code>8</ax21:code>
<ax21:detail>Domain '' does not conform to the rules FQDN</ax21:detail>
</ns:return>
</ns:SetDomainShaperResponse>
</soapenv:Body>
</soapenv:Envelope>
| Код | Описание ошибки |
|---|---|
280 |
В файле конфигурации /etc/eltex-radius-nbi/radius_nbi_config.txt отключена MongoDB См. пример в GetDomainShaper |
| Код | Описание ошибки |
|---|---|
999 |
Нет доступа до MongoDB Идет под индексом системной ошибки. Отдельного кода не имеет. См. пример в GetDomainShaper |
| Код | Описание ошибки |
|---|---|
302 |
Peak ограничение меньше average |
Запрос
<soapenv:Envelope>
<soapenv:Header/>
<soapenv:Body>
<nbi:SetDomainShaper>
<nbi:profile>
<xsd:averageDown>700</xsd:averageDown>
<xsd:averageUp>100</xsd:averageUp>
<xsd:domain>empty.mike.root</xsd:domain>
<xsd:peakDown>600</xsd:peakDown>
<xsd:peakUp>100</xsd:peakUp>
<xsd:ssid>
<xsd:averageDown>500</xsd:averageDown>
<xsd:averageUp>100</xsd:averageUp>
<xsd:domain>TEST_TEST.root</xsd:domain>
<xsd:name>testetste</xsd:name>
<xsd:peakDown>100</xsd:peakDown>
<xsd:peakUp>100</xsd:peakUp>
</xsd:ssid>
</nbi:profile>
</nbi:SetDomainShaper>
</soapenv:Body>
</soapenv:Envelope>
Ответ
<soapenv:Envelope>
<soapenv:Body>
<ns:SetDomainShaperResponse>
<ax21:code>302</ax21:code>
<ax21:detail>Value of 'peakDown' can't be less than 'averageDown'</ax21:detail>
</ns:return>
</ns:SetDomainShaperResponse>
</soapenv:Body>undefined</soapenv:Envelope>
| Код | Описание ошибки |
|---|---|
303 |
Peak ограничение не может быть назначено если average не назначено |
Запрос
<soapenv:Envelope>
<soapenv:Header/>
<soapenv:Body>
<nbi:SetDomainShaper>
<nbi:profile>
<xsd:averageDown>0</xsd:averageDown>
<xsd:averageUp>0</xsd:averageUp>
<xsd:domain>empty.mike.root</xsd:domain>
<xsd:peakDown>0</xsd:peakDown>
<xsd:peakUp>100</xsd:peakUp>
<xsd:ssid>
<xsd:averageDown>500</xsd:averageDown>
<xsd:averageUp>100</xsd:averageUp>
<xsd:domain>TEST_TEST.root</xsd:domain>
<xsd:name>testetste</xsd:name>
<xsd:peakDown>100</xsd:peakDown>
<xsd:peakUp>100</xsd:peakUp>
</xsd:ssid>
</nbi:profile>
</nbi:SetDomainShaper>
</soapenv:Body>
</soapenv:Envelope>
Ответ
<soapenv:Envelope>
<soapenv:Body>
<ns:SetDomainShaperResponse>
<ax21:code>303</ax21:code>
<ax21:detail>Value of 'peakUp' can't be assigned when 'averageUp' not assigned</ax21:detail>
</ns:return>
</ns:SetDomainShaperResponse>
</soapenv:Body>undefined</soapenv:Envelope>
Пример использования
| 1.1. Создать SSID0 |
|---|
Используется CreateSSID. SSID обязательно должны иметь разные VLAN, так как именно по ним ESR будет устанавливать ограничения. |
Запрос
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nbi="http://nbi.radius.eltex.org"
xmlns:xsd="http://response.object.nbi.radius.eltex.org/xsd">
<soapenv:Header/>
<soapenv:Body>
<nbi:CreateSSID>
<nbi:name>SSID0</nbi:name>
<nbi:domain>mike.root</nbi:domain>
<nbi:descr>SSID 0</nbi:descr>
<nbi:params>
<xsd:name>Radio</xsd:name>
<xsd:value>ALL</xsd:value>
</nbi:params>
<nbi:params>
<xsd:name>Security_Type</xsd:name>
<xsd:value>0</xsd:value>
</nbi:params>
<nbi:params>
<xsd:name>Vlan_ID</xsd:name>
<xsd:value>11</xsd:value>
</nbi:params>
<nbi:params>
<xsd:name>VAP_Status</xsd:name>
<xsd:value>up</xsd:value>
</nbi:params>
</nbi:CreateSSID>
</soapenv:Body>
</soapenv:Envelope>
| 1.2. Создать SSID1 |
|---|
Запрос
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nbi="http://nbi.radius.eltex.org"
xmlns:xsd="http://response.object.nbi.radius.eltex.org/xsd">
<soapenv:Header/>
<soapenv:Body>
<nbi:CreateSSID>
<nbi:name>SSID1</nbi:name>
<nbi:domain>mike.root</nbi:domain>
<nbi:descr>SSID 1</nbi:descr>
<nbi:params>
<xsd:name>Radio</xsd:name>
<xsd:value>ALL</xsd:value>
</nbi:params>
<nbi:params>
<xsd:name>Security_Type</xsd:name>
<xsd:value>0</xsd:value>
</nbi:params>
<nbi:params>
<xsd:name>Vlan_ID</xsd:name>
<xsd:value>12</xsd:value>
</nbi:params>
<nbi:params>
<xsd:name>VAP_Status</xsd:name>
<xsd:value>up</xsd:value>
</nbi:params>
</nbi:CreateSSID>
</soapenv:Body>
</soapenv:Envelope>
| 2.1. Добавить привязку SSID0 к домену |
|---|
Используется SetSSIDByDomain |
Запрос
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nbi="http://nbi.radius.eltex.org">
<soapenv:Header/>
<soapenv:Body>
<nbi:SetSSIDByDomain>
<nbi:nasDomain>mike.root</nbi:nasDomain>
<nbi:ssidName>SSID0</nbi:ssidName>
<nbi:ssidDomain>mike.root</nbi:ssidDomain>
</nbi:SetSSIDByDomain>
</soapenv:Body>
</soapenv:Envelope>
| 2.2. Добавить привязку SSID1 к домену |
|---|
Запрос
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nbi="http://nbi.radius.eltex.org">
<soapenv:Header/>
<soapenv:Body>
<nbi:SetSSIDByDomain>
<nbi:nasDomain>mike.root</nbi:nasDomain>
<nbi:ssidName>SSID1</nbi:ssidName>
<nbi:ssidDomain>mike.root</nbi:ssidDomain>
</nbi:SetSSIDByDomain>
</soapenv:Body>
</soapenv:Envelope>
| 3. Проверить, чтоб привязки установлены |
|---|
Используется GetSsidLinkListByDomain Во внешней системе управления эта команда должна использоваться для получения списка SSID для установки ограничений в домене |
Запрос
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nbi="http://nbi.radius.eltex.org">
<soapenv:Header/>
<soapenv:Body>
<nbi:GetSsidLinkListByDomain>
<nbi:nodeDomain>mike.root</nbi:nodeDomain>
</nbi:GetSsidLinkListByDomain>
</soapenv:Body>
</soapenv:Envelope>
Ответ
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:GetSsidLinkListByDomainResponse
xmlns:ns="http://nbi.radius.eltex.org">
<ns:return>
<ax21:code>0</ax21:code>
<ax21:detail/>
<ax21:response xsi:type="ax21:NbiNameDomainArray">
<ax21:item xsi:type="ax21:NbiNameDomain">
<ax21:domain>mike.root</ax21:domain>
<ax21:name>SSID0</ax21:name>
</ax21:item>
<ax21:item xsi:type="ax21:NbiNameDomain">
<ax21:domain>mike.root</ax21:domain>
<ax21:name>SSID1</ax21:name>
</ax21:item>
</ax21:response>
</ns:return>
</ns:GetSsidLinkListByDomainResponse>
</soapenv:Body>
</soapenv:Envelope>
| 4. Добавить ограничения на домен и SSID в нем |
|---|
Используется SetDomainShaper |
Запрос
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nbi="http://nbi.radius.eltex.org"
xmlns:xsd="http://shaper.pcrf.response.object.nbi.radius.eltex.org/xsd">
<soapenv:Header/>
<soapenv:Body>
<nbi:SetDomainShaper>
<nbi:profile>
<xsd:averageDown>1000</xsd:averageDown>
<xsd:averageUp>200</xsd:averageUp>
<xsd:domain>mike.root</xsd:domain>
<xsd:peakDown>5000</xsd:peakDown>
<xsd:peakUp>1000</xsd:peakUp>
<!--Zero or more repetitions:-->
<xsd:ssid>
<xsd:averageDown>500</xsd:averageDown>
<xsd:averageUp>100</xsd:averageUp>
<xsd:domain>mike.root</xsd:domain>
<xsd:name>SSID0</xsd:name>
<xsd:peakDown>5000</xsd:peakDown>
<xsd:peakUp>1000</xsd:peakUp>
</xsd:ssid>
<xsd:ssid>
<xsd:averageDown>400</xsd:averageDown>
<xsd:averageUp>80</xsd:averageUp>
<xsd:domain>mike.root</xsd:domain>
<xsd:name>SSID1</xsd:name>
<xsd:peakDown>5000</xsd:peakDown>
<xsd:peakUp>1000</xsd:peakUp>
</xsd:ssid>
</nbi:profile>
</nbi:SetDomainShaper>
</soapenv:Body>
</soapenv:Envelope>
| 5. Просмотр установленных ограничений |
|---|
Используется GetDomainShaper |
Запрос
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nbi="http://nbi.radius.eltex.org">
<soapenv:Header/>
<soapenv:Body>
<nbi:GetDomainShaper>
<nbi:apDomain>mike.root</nbi:apDomain>
</nbi:GetDomainShaper>
</soapenv:Body>
</soapenv:Envelope>
Ответ
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:GetDomainShaperResponse
xmlns:ns="http://nbi.radius.eltex.org">
<ns:return>
<ax21:code>0</ax21:code>
<ax21:detail/>
<ax29:profile xsi:type="ax29:NbiDomainShaperProfile">
<ax29:averageDown>1000</ax29:averageDown>
<ax29:averageUp>200</ax29:averageUp>
<ax29:domain>mike.root</ax29:domain>
<ax29:peakDown>5000</ax29:peakDown>
<ax29:peakUp>1000</ax29:peakUp>
<ax29:ssid xsi:type="ax29:NbiSsidShaperProfile">
<ax29:averageDown>500</ax29:averageDown>
<ax29:averageUp>100</ax29:averageUp>
<ax29:domain>mike.root</ax29:domain>
<ax29:name>SSID0</ax29:name>
<ax29:peakDown>5000</ax29:peakDown>
<ax29:peakUp>1000</ax29:peakUp>
</ax29:ssid>
<ax29:ssid xsi:type="ax29:NbiSsidShaperProfile">
<ax29:averageDown>400</ax29:averageDown>
<ax29:averageUp>80</ax29:averageUp>
<ax29:domain>mike.root</ax29:domain>
<ax29:name>SSID1</ax29:name>
<ax29:peakDown>5000</ax29:peakDown>
<ax29:peakUp>1000</ax29:peakUp>
</ax29:ssid>
</ax29:profile>
</ns:return>
</ns:GetDomainShaperResponse>
</soapenv:Body>
</soapenv:Envelope>
| 6. Дальнейшая обработка |
|---|
Дальнейшая установка ограничений на ESR выполняется при участии Eltex.EMS и Eltex.PCRF в момент включения (появления в сети) точки доступа |
См. также
Вернуться к списку команд
Версия 1.21-2274
Дата публикации 03-12-2021 11:20:22