VBVNBilling Wiki Демо-биллинг ↗

Профили OLT и SNMP walk

Профиль OLT — это «карта», по которой биллинг понимает, какие OID читать и как их разбирать. Благодаря профилям один и тот же движок работает с разными вендорами.

Профили OLT: встроенные профили Eltex, BDCOM и Generic, OID и парсеры.
Профили OLT: встроенные профили Eltex, BDCOM и Generic, OID и парсеры.

Что есть в профиле

ПолеЧто означает
НазваниеНапример, Eltex LTE-8X или BDCOM GP3600-16B.
ПарсерКак разбирать OID: eltex_lte, eltex_ltp, bdcom_gpon, generic.
State OIDТаблица состояний ONU.
MAC table OIDТаблица MAC, если она отдельная.
OffsetsГде в OID находится состояние и MAC.
Signal fieldНомер поля с уровнем сигнала.
Signal divisorДелитель: например, 10, если сигнал в 0.1 dBm.
status_mapКоды статусов → понятные названия.
field_mapНомера полей: status, signal, port, onu_id.
type_mapКоды моделей ONU → названия.

Как добавить новый вендор

  1. Добавьте OLT и укажите SNMP community.
  2. Откройте «Профили OLT» и создайте профиль.
  3. Выберите парсер (для простого MAC-индекса — generic).
  4. Заполните State OID и MAC table OID.
  5. Заполните offsets и field_map.
  6. Заполните status_map и online_codes.
  7. Сохраните профиль и привяжите его к OLT.
  8. Нажмите «Синхронизировать ONU» и проверьте результат.
Важно. Если структура OID нестандартная, одного generic-парсера может не хватить. Тогда нужен отдельный парсер в коде.

SNMP walk

В разделе OLT есть инструмент SNMP walk. Он показывает «сырые» OID и значения. Это нужно, чтобы найти таблицы ONU и MAC на новом оборудовании.

  1. Откройте OLT.
  2. В блоке SNMP walk выберите OLT.
  3. Введите OID, например 1.3.6.1.4.1.
  4. Нажмите Walk.
  5. Ищите строки с MAC, статусом и сигналом.
  6. Перенесите найденные OID и offsets в профиль.
Осторожно. SNMP walk может вернуть много строк. Начните с enterprise-ветки вендора и сужайте поиск.

BDCOM GP3600-16B

Профиль BDCOM уже создан как заготовка. Пока OLT offline, OID не заполнены. Когда OLT появится в сети, снимите SNMP walk, заполните State OID/MAC OID/offsets/field_map и проверьте синхронизацию.