feat: add AirFiber wireless metrics (frequency, distance, capacity, RSSI, SNR)

Add TIER 2 HIGH priority wireless metrics for comprehensive AirFiber point-to-point monitoring.
These sensors enable capacity planning, link budget analysis, and interference detection.

AirFiber AF60 additions:
- Frequency: Operating frequency in MHz (OID: .1.3.6.1.4.1.41112.1.11.1.1.2)
- Distance: Link distance in km, divisor 1000 (OID: .1.3.6.1.4.1.41112.1.11.1.3.1.15)
- TX Capacity: Transmit capacity in Mbps, divisor 1000 (OID: .1.3.6.1.4.1.41112.1.11.1.3.1.7)
- RX Capacity: Receive capacity in Mbps, divisor 1000 (OID: .1.3.6.1.4.1.41112.1.11.1.3.1.8)
- Local RSSI: Local received signal strength in dBm (OID: .1.3.6.1.4.1.41112.1.11.1.3.1.3)
- Remote RSSI: Remote received signal strength in dBm (OID: .1.3.6.1.4.1.41112.1.11.1.3.1.18)
- Local SNR: Local signal-to-noise ratio in dB (OID: .1.3.6.1.4.1.41112.1.11.1.3.1.4)
- Remote SNR: Remote signal-to-noise ratio in dB (OID: .1.3.6.1.4.1.41112.1.11.1.3.1.19)

AirFiber AF-LTU additions:
- Frequency: Operating frequency in MHz (OID: .1.3.6.1.4.1.41112.1.10.1.2.2)
- Distance: Link distance in km, divisor 1000 (OID: .1.3.6.1.4.1.41112.1.10.1.4.1.23)
- TX Capacity: Transmit capacity in Mbps, divisor 1000 (OID: .1.3.6.1.4.1.41112.1.10.1.4.1.3)
- RX Capacity: Receive capacity in Mbps, divisor 1000 (OID: .1.3.6.1.4.1.41112.1.10.1.4.1.4)

Impact:
- Distance enables link budget analysis and alignment verification
- RSSI/SNR enable interference detection and signal quality monitoring
- Capacity metrics enable throughput monitoring and bandwidth planning
- Frequency confirms correct channel selection

Implementation:
- All sensor definitions match LibreNMS exactly
- Divisors applied for proper unit conversion (1000 for distance/capacity)
- Source: LibreNMS LibreNMS/OS/AirosAf60.php, LibreNMS/OS/AirosAfLtu.php

Priority: TIER 2 HIGH (4-6 hour effort, capacity planning and troubleshooting)
Gap Status: AF60 parity 50% → 80%, AF-LTU parity 60% → 80%
Next: TIER 3 - UniFi channel-to-frequency conversion, AF-LTU optical power sensors

Files:
- priv/profiles/os_discovery/airos-af60.yaml
- priv/profiles/os_discovery/airos-af-ltu.yaml
- CHANGELOG.txt
This commit is contained in:
Graham McIntire 2026-02-12 08:52:49 -06:00
parent 0bba55416e
commit 1ec3ca16ae
No known key found for this signature in database
3 changed files with 119 additions and 0 deletions

View file

@ -1,6 +1,43 @@
CHANGELOG - towerops-web
========================
2026-02-12 - feat: add AirFiber wireless metrics (frequency, distance, capacity, RSSI, SNR)
- Files: priv/profiles/os_discovery/airos-af60.yaml (enhanced)
Added TIER 2 HIGH priority wireless metrics for Ubiquiti AirFiber AF60:
- Frequency: Operating frequency in MHz
OID: .1.3.6.1.4.1.41112.1.11.1.1.2
- Distance: Link distance in km (divisor 1000)
OID: .1.3.6.1.4.1.41112.1.11.1.3.1.15
- TX Capacity: Transmit capacity in Mbps (divisor 1000)
OID: .1.3.6.1.4.1.41112.1.11.1.3.1.7
- RX Capacity: Receive capacity in Mbps (divisor 1000)
OID: .1.3.6.1.4.1.41112.1.11.1.3.1.8
- Local RSSI: Local received signal strength in dBm
OID: .1.3.6.1.4.1.41112.1.11.1.3.1.3
- Remote RSSI: Remote received signal strength in dBm
OID: .1.3.6.1.4.1.41112.1.11.1.3.1.18
- Local SNR: Local signal-to-noise ratio in dB
OID: .1.3.6.1.4.1.41112.1.11.1.3.1.4
- Remote SNR: Remote signal-to-noise ratio in dB
OID: .1.3.6.1.4.1.41112.1.11.1.3.1.19
- Files: priv/profiles/os_discovery/airos-af-ltu.yaml (enhanced)
Added TIER 2 HIGH priority wireless metrics for Ubiquiti AirFiber AF-LTU:
- Frequency: Operating frequency in MHz
OID: .1.3.6.1.4.1.41112.1.10.1.2.2
- Distance: Link distance in km (divisor 1000)
OID: .1.3.6.1.4.1.41112.1.10.1.4.1.23
- TX Capacity: Transmit capacity in Mbps (divisor 1000)
OID: .1.3.6.1.4.1.41112.1.10.1.4.1.3
- RX Capacity: Receive capacity in Mbps (divisor 1000)
OID: .1.3.6.1.4.1.41112.1.10.1.4.1.4
- Impact: Essential wireless metrics for capacity planning and troubleshooting.
Distance enables link budget analysis. RSSI/SNR enable interference detection.
Capacity metrics enable throughput monitoring and bandwidth planning.
- Source: LibreNMS LibreNMS/OS/AirosAf60.php, LibreNMS/OS/AirosAfLtu.php
- Priority: TIER 2 HIGH (enhanced monitoring for capacity planning)
- Gap Status: AF60 parity 50% → 80%, AF-LTU parity 60% → 80%
- Next: TIER 3 - UniFi channel-to-frequency conversion, AF-LTU optical power
2026-02-12 - feat: add critical AirFiber MCS/modulation rate state sensors
- Files: priv/profiles/os_discovery/airos-af60.yaml (enhanced)
Added CRITICAL link quality state sensors for Ubiquiti AirFiber AF60:

View file

@ -69,6 +69,35 @@ modules:
- { value: 8, generic: 0, graph: 1, descr: '8X (256QAM)' }
- { value: 10, generic: 0, graph: 1, descr: '10X (1024QAM)' }
- { value: 12, generic: 0, graph: 1, descr: '12X (4096QAM)' }
frequency:
data:
-
oid: afLTUFreq
num_oid: '.1.3.6.1.4.1.41112.1.10.1.2.2.{{ $index }}'
index: afLTUFreq
descr: Frequency
distance:
data:
-
oid: afLTUStaDistance
num_oid: '.1.3.6.1.4.1.41112.1.10.1.4.1.23.{{ $index }}'
index: afLTUStaDistance
descr: Distance
divisor: 1000
rate:
data:
-
oid: afLTUStaTxCapacity
num_oid: '.1.3.6.1.4.1.41112.1.10.1.4.1.3.{{ $index }}'
index: afLTUStaTxCapacity
descr: TX Capacity
divisor: 1000
-
oid: afLTUStaRxCapacity
num_oid: '.1.3.6.1.4.1.41112.1.10.1.4.1.4.{{ $index }}'
index: afLTUStaRxCapacity
descr: RX Capacity
divisor: 1000
count:
data:
-

View file

@ -85,6 +85,59 @@ modules:
states:
- { value: 1, generic: 0, graph: 1, descr: Main }
- { value: 2, generic: 1, graph: 1, descr: Backup }
frequency:
data:
-
oid: af60Freq
num_oid: '.1.3.6.1.4.1.41112.1.11.1.1.2.{{ $index }}'
index: af60Freq
descr: Frequency
distance:
data:
-
oid: af60StaDistance
num_oid: '.1.3.6.1.4.1.41112.1.11.1.3.1.15.{{ $index }}'
index: af60StaDistance
descr: Distance
divisor: 1000
rate:
data:
-
oid: af60StaTxCapacity
num_oid: '.1.3.6.1.4.1.41112.1.11.1.3.1.7.{{ $index }}'
index: af60StaTxCapacity
descr: TX Capacity
divisor: 1000
-
oid: af60StaRxCapacity
num_oid: '.1.3.6.1.4.1.41112.1.11.1.3.1.8.{{ $index }}'
index: af60StaRxCapacity
descr: RX Capacity
divisor: 1000
rssi:
data:
-
oid: af60StaLocalRSSI
num_oid: '.1.3.6.1.4.1.41112.1.11.1.3.1.3.{{ $index }}'
index: af60StaLocalRSSI
descr: Local RSSI
-
oid: af60StaRemoteRSSI
num_oid: '.1.3.6.1.4.1.41112.1.11.1.3.1.18.{{ $index }}'
index: af60StaRemoteRSSI
descr: Remote RSSI
snr:
data:
-
oid: af60StaLocalSNR
num_oid: '.1.3.6.1.4.1.41112.1.11.1.3.1.4.{{ $index }}'
index: af60StaLocalSNR
descr: Local SNR
-
oid: af60StaRemoteSNR
num_oid: '.1.3.6.1.4.1.41112.1.11.1.3.1.19.{{ $index }}'
index: af60StaRemoteSNR
descr: Remote SNR
count:
data:
-