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:
- SNMP Trap checkbox — enables trap generation for this error
- Interval (s) — counting window
- 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)
- Import the MIB into Zabbix: Administration → General → MIB Files.
- Add an SNMP item with OID
DVB-MGTR101290-MIB::tsTestsSummaryState.1(adjust index for your TS). - 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.