Skip to content

SNMP

TS Analyzer supports SNMP v2c for integration with network management systems. Two interaction modes are available:

  • SNMP GET — poll the device for current values (error counts, stream state, system status)
  • SNMP TRAP — receive unsolicited notifications when ETSI TR 101 290 errors cross configured thresholds

Enabling SNMP

SNMP is disabled by default. Enable and configure it at http://{device-ip}/settings/snmp in the web interface, or via the API:

POST /api/snmp/settings
Authorization: Bearer <token>
Content-Type: application/json

{
  "enabled": true,
  "listen_addresses": ["0.0.0.0"],
  "trap_addresses": ["10.0.0.100:162"]
}

listen_addresses — IP addresses from which SNMP GET requests will be accepted. Use 0.0.0.0 to accept from any host.

trap_addresses — destination addresses for SNMP TRAPs in IP:port format. Multiple destinations are supported.

Downloading the MIB file

The MIB file can be downloaded from:

  • The SNMP settings panel in the web interface (document icon in the top-right corner)
  • The API: GET /api/snmp/mib (requires Bearer token)

The MIB module name is DVB-MGTR101290-MIB. Import it into your NMS before adding the device.

OID tree

The MIB is rooted at:

iso(1).org(3).dod(6).internet(1).private(4).enterprises(1).dvb(2696).mg(3).tr101290(2)

That is: 1.3.6.1.4.1.2696.3.2

Main branches

Branch OID suffix Contents
tr101290Objects .1 All measurement and test data
tr101290TS .1.5 Transport stream tests and measurements
tsTests .1.5.2 ETSI TR 101 290 test tables
tsTestsSummaryTable .1.5.2.2 Per-stream summary of all error states
tsTestsPIDTable .1.5.2.3 Per-PID test results
tsMeasurements .1.5.4 Measurement data (bitrate, etc.)
bitRate .1.5.4.2 Bitrate measurements per PID

Test state values

Each test object has a TestState that takes one of:

Value Meaning
pass(1) Error not currently active
fail(2) Error currently active
unknown(3) Test cannot be performed (e.g. stream absent)

Summary table (tsTestsSummaryTable)

Indexed by transport stream. Key objects per row:

Object Description
tsTestsSummaryIndex Table row index
tsTestsSummaryTSID Transport stream identifier
tsTestsSummaryState Combined state across all tests for this TS
tsTestsSummaryActiveTime Seconds the TS has been under test
tsTestsSummaryTestFailCount Total test failure count
tsTestsSummaryEnable Test enable bitmask

Per-PID test table (tsTestsPIDTable)

Indexed by (transport stream, PID):

Object Description
tsTestsPIDIndex Row index
tsTestsPIDValue PID value
tsTestsPIDState Pass/fail/unknown state for this PID
tsTestsPIDActiveTime Seconds the PID has been under test

Textual conventions

The MIB uses several textual conventions relevant for NMS configuration:

Enable — bitmask controlling whether a test runs and which traps it generates: - bit 0: testEnable — enables the test - bit 1: failTrapEnable — sends TRAP on failure - bit 2: unknownTrapEnable — sends TRAP when state becomes unknown

ActiveTime — monotonically increasing seconds counter. Use it to calculate errors-per-second: divide the error count by the active time.

Availability — indicates whether a test/measurement is available on this device:

Value Meaning
notAvailable(1) Feature not present
testAvailable(2) Can detect pass/fail
measurementAvailable(3) Can produce numeric measurements
measurementAndTestAvailable(4) Both available

SNMP TRAP configuration

TRAPs are generated based on the monitoring profile assigned to each input. For each error in the profile, you set:

  1. SNMP Trap checkbox — enables trap generation for this error
  2. Interval (s) — counting window
  3. Count — number of errors within the interval that triggers the trap

Configure these in Settings → Monitoring Profiles in the web interface.

TRAP notifications are sent to all addresses listed in trap_addresses. Each TRAP carries:

  • The OID of the test that failed
  • The transport stream index
  • The current test state
  • A timestamp

Configuring your NMS

Nagios / Icinga (with net-snmp)

# Install the MIB
cp DVB-MGTR101290-MIB.txt /usr/share/snmp/mibs/

# Test connectivity
snmpget -v2c -c public 172.16.112.1 \
  DVB-MGTR101290-MIB::tr101290Objects.0

# Poll transport stream test summary
snmpwalk -v2c -c public 172.16.112.1 \
  DVB-MGTR101290-MIB::tsTestsSummaryTable

Zabbix (SNMP item)

  1. Import the MIB into Zabbix: Administration → General → MIB Files.
  2. Add an SNMP item with OID DVB-MGTR101290-MIB::tsTestsSummaryState.1 (adjust index for your TS).
  3. Set SNMP community to public (or your configured community string).

See the Zabbix integration page for the ready-made template that uses HTTP API instead.

Prometheus (snmp_exporter)

Add the following to your snmp.yml generator config:

modules:
  ts_analyzer:
    walk:
      - 1.3.6.1.4.1.2696.3.2.1.5.2   # tsTests
      - 1.3.6.1.4.1.2696.3.2.1.5.4   # tsMeasurements
    version: 2
    auth:
      community: public

Then generate the config:

generator generate

Community string

The default SNMP community string is public. It cannot currently be changed via the API or web interface — contact Stream Labs support if your security policy requires a custom community string.