Implements all 11 wireless sensor types for MikroTik RouterOS devices to achieve parity with LibreNMS sensor discovery. TIER 4 CRITICAL - MikroTik Wireless Monitoring Complete ## Sensor Types Implemented ### AP Sensors (mtxrWlApTable) - Wireless clients (station count) - CCQ (Connection Quality) with NV2 handling - Frequency (MHz) - Noise floor (dBm) - TX/RX rate (bps) ### Station Sensors (mtxrWlStatTable) - TX/RX CCQ (separate sensors) - Frequency (MHz) - TX/RX rate (bps) ### 60GHz Sensors (mtxrWl60GTable) - Frequency (MHz) - RSSI (dBm) - Quality (%) - PHY rate (bps with 1M divisor) ### 60GHz Station Sensors (mtxrWl60GStaTable) - Distance (km with 100k divisor) ### LTE Modem Sensors (mtxrLTEModemTable) - RSRQ (dB) - Reference Signal Received Quality - RSRP (dBm) - Reference Signal Received Power - SINR (dB) - Signal-to-Interference-plus-Noise Ratio ## Implementation Details **Pattern**: Similar to UniFi frequency conversion - walks SNMP tables, groups by index, builds sensor maps dynamically. **LibreNMS Parity**: - Matches exact OIDs from LibreNMS/OS/Routeros.php - Implements same skip logic (CCQ when clients>0 && CCQ=0) - Uses same frequency label extraction (first char + "G") - Applies same divisors (60GHz rate: 1M, distance: 100k) **Key Features**: - Safe integer conversion (handles both string and int from SNMP) - Frequency label extraction (2437 → "2G", 5180 → "5G") - Smart sensor skipping (zero values, empty CCQ, etc.) - Comprehensive test coverage (13 test cases) ## Files Modified - lib/towerops/snmp/profiles/vendors/mikrotik.ex - Added discover_wireless_sensors/1 implementation - Added 5 helper functions for different MIB tables - Added group_by_index/1, freq_to_label/2, to_integer/1 - test/towerops/snmp/profiles/vendors/mikrotik_test.exs - Added 8 comprehensive test cases covering all sensor types - Tests skip logic, data handling, empty responses ## Testing All 13 MikroTik vendor module tests pass. All 1832 SNMP profile tests pass. ## Coverage Impact MikroTik RouterOS wireless coverage: 0% → 100% - Now discovers all 11 sensor types LibreNMS discovers - Matches LibreNMS sensor OIDs, descriptions, divisors exactly Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| mix/tasks | ||
| snmpkit | ||
| towerops | ||
| towerops_web | ||
| snmp_lib.ex | ||
| snmp_mgr.ex | ||
| snmpkit.ex | ||
| towerops.ex | ||
| towerops_native.ex | ||
| towerops_web.ex | ||