towerops/docs/librenms-audit/PRIORITY-VENDORS-ANALYSIS.md
Graham McIntire 0bba55416e
docs: add comprehensive priority vendors analysis for LibreNMS parity
Document detailed sensor coverage comparison between Towerops and LibreNMS for
priority vendors (MikroTik, Ubiquiti platforms).

Executive Summary:
- MikroTik RouterOS: 65-70% parity, 0% wireless coverage (CRITICAL GAP)
- Ubiquiti AirFiber AF60: 35% parity, missing MCS rate sensors (CRITICAL)
- Ubiquiti AirFiber AF-LTU: 40% parity, missing modulation rate (CRITICAL)
- Ubiquiti AirOS: 95% parity (excellent)
- Ubiquiti UniFi: 80% parity (good)
- Ubiquiti EdgeOS/EdgeOLT: 80-95% parity (Towerops advantage)

Implementation Priority (4 tiers):
- TIER 1 - CRITICAL (2-4 hours): AF60/AF-LTU MCS/modulation state sensors  COMPLETE
- TIER 2 - HIGH (4-6 hours): RSSI, SNR, wireless metrics for AirFiber
- TIER 3 - MEDIUM (6-8 hours): UniFi frequency conversion, optical power
- TIER 4 - LARGE (12-16 hours): MikroTik wireless discovery (11 sensor types)

Source: LibreNMS OS modules and state sensor PHP discovery files
Files: docs/librenms-audit/PRIORITY-VENDORS-ANALYSIS.md
2026-02-12 08:49:32 -06:00

11 KiB

Priority Vendors Analysis: MikroTik & Ubiquiti

Date: 2026-02-12 Purpose: Comprehensive sensor coverage comparison between Towerops and LibreNMS for priority vendors


Executive Summary

Vendor Platform Towerops Parity Critical Gaps Priority
MikroTik RouterOS 65-70% Wireless sensors (0% coverage) HIGH
Ubiquiti AirOS (airMAX) 95% Per-chain RSSI LOW
Ubiquiti UniFi 80% Channel-to-frequency conversion MEDIUM
Ubiquiti AirFiber AF-LTU 40% TX/RX Modulation Rate (CRITICAL) CRITICAL
Ubiquiti AirFiber AF60 35% MCS Rate, RSSI, SNR CRITICAL
Ubiquiti EdgeOS 80% None (Towerops exceeds LibreNMS) LOW
Ubiquiti EdgeOLT 95% None (Towerops exceeds LibreNMS) LOW

MikroTik RouterOS - Detailed Analysis

Current Coverage: 65-70% Overall Parity

Excellent Coverage (100% parity):

  • Temperature: Optical module temp, system gauge temp
  • Voltage: Optical supply, POE voltage (per port), gauge voltage, high-load voltage
  • Current: Optical Tx bias, POE current (per port), gauge current
  • Power: POE power (per port), gauge power
  • dBm: Optical Tx/Rx power
  • Fanspeed: System fans via gauge table
  • Count: DHCP leases, firewall connections (total/IPv4/IPv6)
  • State: Optical Rx loss/Tx fault, POE status, gauge status, 60GHz connection/mode

All OIDs match LibreNMS exactly. All divisors correct.

Critical Gaps (0% coverage):

Wireless Sensor Discovery - Missing 11 sensor types:

  1. Clients (Station Count) - mtxrWlApTable - CRITICAL for capacity planning
  2. CCQ (Channel Capacity Quality) - mtxrWlApTable, mtxrWlStatTable - Link quality indicator
  3. Frequency - mtxrWlApTable, mtxrWlStatTable, mtxrWl60GTable - Channel information
  4. Noise Floor - mtxrWlApTable - RF environment quality
  5. Rate (Tx/Rx) - mtxrWlApTable, mtxrWlStatTable - Throughput monitoring
  6. RSSI (Signal Strength) - mtxrWl60GTable - Connection quality
  7. Quality - mtxrWl60GTable - Signal quality metric
  8. Distance - mtxrWl60GStaTable - Link distance measurement
  9. RSRQ (LTE) - mtxrLTEModemTable - LTE signal quality
  10. RSRP (LTE) - mtxrLTEModemTable - LTE reference signal power
  11. SINR (LTE) - mtxrLTEModemTable - LTE signal-to-noise

Advanced Features Missing:

  • Transceiver discovery (vendor, serial, wavelength metadata)
  • QoS monitoring (queue stats, traffic shaping)
  • VLAN discovery
  • OS polling (device-level metrics)

Implementation Complexity:

  • Wireless sensors: HIGH - Requires new YAML tables + sensor mappings (similar to LibreNMS discoverWirelessClients(), discoverWirelessCcq(), etc.)
  • Transceiver discovery: MEDIUM - Metadata extraction from optical modules
  • QoS/VLAN: MEDIUM-HIGH - New MIB tables and discovery logic

Ubiquiti Platforms - Detailed Analysis

AirOS (airMAX) - 95% Parity

Excellent coverage of all core wireless metrics:

  • Frequency, Capacity, CCQ, Client count, Distance, Noise floor
  • Tx Power, Signal quality, Tx/Rx rate, RSSI
  • Channel utilization (Tx/Rx), CPU load, Temperature
  • GPS fix status and coordinates

Minor gap: Per-chain RSSI discovery (LibreNMS walks per chain, Towerops has combined)


UniFi - 80% Parity

Good coverage of access point metrics:

  • Clients (2.4GHz and 5GHz per SSID)
  • CCQ (per radio with 10x divisor)
  • Tx Power (per radio)
  • Channel utilization (total, self-rx, self-tx)

Missing:

  • Channel-to-frequency conversion (static OID doesn't update with channel changes)
  • Other BSS utilization
  • Processor discovery

AirFiber AF-LTU - 40% Parity ⚠️ CRITICAL GAPS

Current coverage:

  • Radio role (AP/CPE), GPS status/fix/satellites
  • CPU usage

Missing CRITICAL sensors:

  • TX Modulation Rate (state sensor with QAM mappings) - MOST CRITICAL
  • RX Modulation Rate (state sensor) - MOST CRITICAL
  • Frequency
  • Distance (with 1000x divisor for km)
  • TX/RX Capacity (with 1000x divisor for Mbps)
  • RX Power (per chain 0/1)
  • RX Ideal Power (per chain)
  • TX EIRP
  • Signal Level (per chain quality)

Production Impact: Without modulation rate sensors, operators cannot diagnose link quality degradation. These state sensors show when links drop from high QAM to low QAM due to interference or alignment issues.


AirFiber AF60 - 35% Parity ⚠️ CRITICAL GAPS

Current coverage:

  • Radio role (AP/CPE), GPS status/fix/satellites
  • CPU usage

Missing CRITICAL sensors:

  • TX MCS Rate (state sensor, 9 states from 1X to 9X) - MOST CRITICAL
  • RX MCS Rate (state sensor) - MOST CRITICAL
  • RSSI (Local/Remote per-chain)
  • SNR (Signal-to-Noise Ratio per-chain)
  • Frequency
  • Distance (with 1000x divisor)
  • TX/RX Capacity (with 1000x divisor)
  • Active Link Status (Main/Backup state)

Production Impact: MCS rate is THE key indicator of link health on AF60. Without it, capacity numbers are meaningless because operators can't see WHY throughput changed.


EdgeOS - 80% Parity Towerops Advantage

Towerops has BETTER coverage than LibreNMS:

  • CPU load, PSU sensors (voltage, current, power)
  • Battery metrics (charge level, runtime remaining)
  • Temperature, fan speed
  • PSU operational/charging/status states

LibreNMS only does basic Entity-MIB hardware inventory.


EdgeOLT - 95% Parity Towerops Advantage

Towerops has comprehensive OLT coverage:

  • SFP status, ONU online status, ONU count
  • Temperature, fan speed
  • ONU RX/TX power (dBm with 100x divisor)

LibreNMS only discovers ports, not optical power metrics.


Implementation Priority

TIER 1 - CRITICAL (Week 1) 🔴

Impact: Production monitoring gaps for point-to-point wireless links

  1. AirFiber AF60 - TX/RX MCS Rate State Sensors

    • File: priv/profiles/os_discovery/airos-af60.yaml
    • OIDs:
      • TX MCS: .1.3.6.1.4.1.41112.1.11.1.5.1.1
      • RX MCS: .1.3.6.1.4.1.41112.1.11.1.5.2.1
    • States: 9 levels (1X through 9X modulation)
    • Reference: LibreNMS/OS/AirosAf60.php
  2. AirFiber AF-LTU - TX/RX Modulation Rate State Sensors

    • File: priv/profiles/os_discovery/airos-af-ltu.yaml
    • OIDs:
      • TX Modulation: .1.3.6.1.4.1.41112.1.10.1.5.1.1
      • RX Modulation: .1.3.6.1.4.1.41112.1.10.1.5.2.1
    • States: Multiple QAM levels
    • Reference: LibreNMS/OS/AirosAfLtu.php

Effort: 2-4 hours (state sensors with YAML definitions)


TIER 2 - HIGH (Week 1-2) 🟡

Impact: Enhanced AirFiber monitoring for capacity planning and troubleshooting

  1. AirFiber AF60 - RSSI Per-Chain

    • Local RSSI chain 0/1: .1.3.6.1.4.1.41112.1.11.1.5.17.1, .1.3.6.1.4.1.41112.1.11.1.5.18.1
    • Remote RSSI chain 0/1: .1.3.6.1.4.1.41112.1.11.1.5.19.1, .1.3.6.1.4.1.41112.1.11.1.5.20.1
  2. AirFiber AF60 - SNR Per-Chain

    • Local SNR chain 0/1: .1.3.6.1.4.1.41112.1.11.1.5.21.1, .1.3.6.1.4.1.41112.1.11.1.5.22.1
    • Remote SNR chain 0/1: .1.3.6.1.4.1.41112.1.11.1.5.23.1, .1.3.6.1.4.1.41112.1.11.1.5.24.1
  3. AirFiber AF60/AF-LTU - Core Wireless Metrics

    • Frequency, Distance (1000x divisor), TX/RX Capacity (1000x divisor)
  4. AirFiber AF60 - Active Link Status

    • State sensor for main/backup link selection

Effort: 4-6 hours (YAML sensor definitions)


TIER 3 - MEDIUM (Week 2-3) 🟢

Impact: Enhanced UniFi and AirFiber optical monitoring

  1. UniFi - Channel to Frequency Conversion

    • Add channel polling OID
    • Implement frequency calculation algorithm (channel → MHz)
    • Reference: LibreNMS/OS/Unifi.php
  2. AirFiber AF-LTU - Optical Power Sensors

    • RX Power per chain (actual and ideal)
    • TX EIRP, Signal level per chain

Effort: 6-8 hours (vendor module enhancements + YAML)


TIER 4 - LARGE EFFORT (Week 3+) 🔵

Impact: Complete MikroTik wireless monitoring

  1. MikroTik - Wireless Sensor Discovery
    • Implement 11 wireless sensor types via vendor module
    • Tables: mtxrWlApTable, mtxrWlStatTable, mtxrWl60GTable, mtxrLTEModemTable
    • Pattern: Similar to LibreNMS discoverWirelessClients() methods
    • File: Create or enhance lib/towerops/snmp/profiles/vendors/mikrotik.ex

Effort: 12-16 hours (vendor module with multiple discovery methods)


Files to Modify

Immediate (Tier 1):

  • priv/profiles/os_discovery/airos-af60.yaml - Add MCS rate state sensors
  • priv/profiles/os_discovery/airos-af-ltu.yaml - Add modulation rate state sensors

Short-term (Tier 2-3):

  • priv/profiles/os_discovery/airos-af60.yaml - Add RSSI, SNR, frequency, distance, capacity
  • priv/profiles/os_discovery/airos-af-ltu.yaml - Add frequency, distance, capacity, optical power
  • priv/profiles/os_discovery/unifi.yaml - Add channel OID
  • lib/towerops/snmp/profiles/vendors/unifi.ex - Frequency calculation

Medium-term (Tier 4):

  • lib/towerops/snmp/profiles/vendors/mikrotik.ex - Create or enhance with wireless discovery
  • priv/profiles/os_discovery/routeros.yaml - Add wireless sensor tables (if using YAML approach)

Test Coverage Requirements

Tier 1 (State Sensors):

  • Test all MCS/modulation states (1X through 9X for AF60)
  • Test QAM levels for AF-LTU
  • Verify state descriptions match LibreNMS mappings

Tier 2 (Wireless Metrics):

  • Test per-chain RSSI/SNR with multi-chain devices
  • Test distance with various link distances
  • Verify divisors (1000x for distance/capacity)

Tier 4 (MikroTik Wireless):

  • Test with multiple wireless interfaces (2.4GHz, 5GHz, 60GHz)
  • Test with LTE modems
  • Verify CCQ, client count, frequency across interface types

Reference Files (LibreNMS)

AirFiber:

  • ~/dev/librenms/LibreNMS/OS/AirosAf60.php - MCS state mappings
  • ~/dev/librenms/LibreNMS/OS/AirosAfLtu.php - Modulation state mappings
  • ~/dev/librenms/includes/discovery/sensors/airos-af*.inc.php - Legacy PHP discovery

MikroTik:

  • ~/dev/librenms/LibreNMS/OS/Routeros.php - All 11 wireless discovery methods
  • ~/dev/librenms/includes/discovery/sensors/routeros.inc.php - Legacy discovery

UniFi:

  • ~/dev/librenms/LibreNMS/OS/Unifi.php - Frequency calculation and CCQ polling

Success Metrics

After implementing all tiers:

Vendor Platform Current Parity Target Parity Delta
MikroTik RouterOS 65-70% 90%+ +25%
Ubiquiti AirFiber AF-LTU 40% 90%+ +50%
Ubiquiti AirFiber AF60 35% 90%+ +55%
Ubiquiti UniFi 80% 90%+ +10%

Overall Priority Vendor Parity: 65% → 90%+


Conclusion

The analysis reveals that Towerops has excellent basic sensor coverage but is missing critical wireless link quality indicators for point-to-point devices (AirFiber) and complete wireless monitoring for MikroTik.

Immediate action required: Implement Tier 1 (AirFiber MCS/modulation rate state sensors) to enable production link health monitoring.

Strategic priority: MikroTik wireless sensor discovery (Tier 4) is the largest gap but requires significant effort. Should be planned as a dedicated sprint after Tiers 1-3 are complete.