towerops/priv/profiles/os_detection/epmp.yaml
Graham McIntire 3606ba19b3 feat: ePMP firmware extraction + ePMP3000 NetSNMP-quirk detection
ePMP devices were not reporting firmware_version because the YAML's
cambiumCurrentuImageVersion.0 OID returns empty on ePMP3000 firmware.
Add detect_version/1 to the Epmp vendor module with two-OID fallback:
cambiumCurrentSWInfo.0 (verbose, ePMP3000-friendly) → cambiumCurrentuImageVersion.0
(short, ePMP1000/2000), with a regex to extract the version triplet
from whatever the device returns.

ePMP3000 also has a sysObjectID quirk where some firmware reports the
generic NetSNMP-on-Linux ID (.1.3.6.1.4.1.8072.3.2.10) instead of the
Cambium enterprise OID, causing devices to misclassify as the linux
profile. Add a second discovery block to the epmp profile that matches
NetSNMP-OID + PREEMPT_RT armv7l kernel signature + a confirming snmpget
against the Cambium ePMP MIB tree, so detection runs in pass-2
(conditional non-generic) before linux falls through in pass-3.
2026-05-09 08:34:23 -05:00

23 lines
798 B
YAML

os: epmp
text: 'Cambium epmp'
type: wireless
icon: cambium
group: cambium
over:
- { graph: device_bits, text: 'Device Traffic' }
discovery:
-
sysObjectID:
- .1.3.6.1.4.1.17713.21
-
# ePMP3000 firmware quirk: some images report sysObjectID as the
# generic NetSNMP-on-Linux ID (.1.3.6.1.4.1.8072.3.2.10) instead of
# the Cambium enterprise OID. Detect by matching the PREEMPT_RT
# armv7l kernel signature and confirming the Cambium ePMP MIB tree
# responds. Both must pass before claiming the device as ePMP.
sysObjectID: .1.3.6.1.4.1.8072.3.2.10
sysDescr_regex: '/PREEMPT RT.+armv7l/'
snmpget:
oid: CAMBIUM-PMP80211-MIB::cambiumCurrentSWInfo.0
op: '!='
value: false