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.
23 lines
798 B
YAML
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
|