Skip to main content
CommunityCloudEnterprise

SNMP Discovery — Supported Platforms

This page lists the vendors with bundled device model coverage for the SNMP discovery backend.

The backend works with any SNMPv1, SNMPv2c, or SNMPv3 capable device. Entity discovery (interfaces, IP addresses, VLANs, LAG membership) is derived from standard MIBs (IF-MIB, IP-MIB, LLDP-MIB, BRIDGE-MIB, etc.) and is therefore vendor-agnostic.

What differs by vendor is the device model name populated in NetBox. snmp-discovery resolves a device's sysObjectID OID against a library of bundled YAML lookup extensions, turning the raw OID into a recognizable model name (for example catalyst2955C12 instead of .1.3.6.1.4.1.9.1.489). When no match is found, the raw OID is kept.

Compatibility note: coverage of a vendor file does not guarantee that every product line or firmware variant has a model entry. Report gaps via a GitHub issue against orb-agent.

Bundled device model lookup extensions

The following vendor files ship with orb-agent and orb-discovery, providing device model resolution for their equipment:

Vendor / FamilyLookup file
3Coma3com.yaml
Alvarionalvarion.yaml
APC (Schneider Electric)apc.yaml
Aristaarista.yaml
HPE Aruba Networkingaruba.yaml
ATENaten.yaml
ATTO Technologyatto.yaml
Bachmann BlueNet 2bachmann-bluenet2.yaml
Broadcom cable modembrcm-cm.yaml
Brocade (Ruckus / Extreme)brocade.yaml
Cadantcadant.yaml
Check Pointcheckpoint.yaml
Cienaciena.yaml
Ciscocisco.yaml
Citrixcitrix.yaml
Colubris (HPE)colubris.yaml
CyberPowercyberpower.yaml
DASAN Networksdasan.yaml
Dell Networkingdell-networking.yaml
Dell EMC OS10 / SmartFabricdellemc-os10.yaml
D-Link DES-7200des7200.yaml
Eatoneaton.yaml
Extreme Networksextreme.yaml
Dell Force10f10.yaml
F5 Networksf5.yaml
Fortinetfortinet.yaml
FS.comfs.yaml
Hirschmann HM2hm2.yaml
HPEhpe.yaml
Infobloxinfoblox.yaml
Juniperjuniper.yaml
Lenovolenovo.yaml
NVIDIA Mellanoxmellanox.yaml
Cisco Merakimeraki.yaml
MikroTikmikrotik.yaml
MX Digitalmx-digital.yaml
MXmx.yaml
MYmy.yaml
NetAppnetapp.yaml
NETGEARnetgear.yaml
Juniper NetScreen (legacy)netscreen.yaml
NOSnos.yaml
Nutanixnutanix.yaml
OGog.yaml
Palo Alto Networkspan.yaml
Cisco PCube / SCEpcube.yaml
QTECHqtech.yaml
Raritanraritan.yaml
RDNrdn.yaml
Redline Communicationsredline.yaml
Rittal CMC IIIrittal-cmc-iii.yaml
Riverbedriverbed.yaml
Ruckus / CommScoperuckus.yaml
Schleifenbauerschleifenbauer.yaml
Silver Peak (Aruba EdgeConnect)silverpeak.yaml
TP-Linktplink.yaml
Tripp Lite (Eaton)tripp-lite.yaml
Ubiquitiubiquiti.yaml
Vertivvertiv.yaml
VMwarevmware.yaml
WatchGuardwatchguard.yaml
Waystreamwaystream.yaml
World Wide Packets (Ciena)wwp.yaml

The authoritative list and the contents of each file live at orb-discovery/snmp-discovery/data/lookup_extensions.

Manufacturer-level resolution (SNMP enterprise number → vendor name) is handled by manufacturers.yaml, which covers the full IANA Private Enterprise Number registry.

Extending device coverage

You can add or override lookup data without rebuilding the agent. See the Device Model Lookup section of the SNMP Discovery docs for the lookup_extensions_dir option and the YAML format for custom files.

Interface ↔ VLAN associations

Switchport-to-VLAN association discovery is built on standard MIBs with one vendor overlay:

LayerMIB / OID rootWhat it provides
GenericQ-BRIDGE-MIB (RFC 4363, 1.3.6.1.2.1.17.7.1.4) + BRIDGE-MIB dot1dBasePortIfIndexVLAN catalog (dot1qVlanStaticTable — names + admin status), per-port PVID (dot1qPvid), per-VLAN egress + untagged port masks (dot1qVlanStatic{Egress,Untagged}Ports). Required for trunk classification.
Cisco overlayCISCO-VLAN-MEMBERSHIP-MIB vmMembershipTable, CISCO-VOICE-VLAN-MIB vmVoiceVlanIdAccess VLAN refinement on non-trunk ports + voice-VLAN promotion. Walked only when sysObjectID falls under enterprise prefix 1.3.6.1.4.1.9. (Cisco Systems) or 1.3.6.1.4.1.29671. (Meraki).

When a switchport has both Q-BRIDGE membership and the Cisco overlay rows, the overlay layers on top of the generic classification (vmMembership refines the access VLAN for non-trunk ports; vmVoiceVlanId is promoted into the tagged VLAN list per Cisco's voice-on-access semantics). When a device exposes only the Cisco overlay (classic Cisco IOS without Q-BRIDGE), the overlay alone is sufficient to classify access ports — but trunk allowed/native VLANs cannot be reconstructed from vmMembershipTable (which is non-trunk by spec).

Device coverage

Device classGeneric Q-BRIDGECisco overlayResult
Arista EOS, Aruba CX, Juniper Junos ELS, MikroTik RouterOS, HPE Comware, Extreme EXOS (recent), Cumulus Linux / SONiC, Dell OS10✅ Fulln/aAccess + trunk classification, real VLAN names
Classic Cisco IOS (e.g. Catalyst 2960, 2950)⚠️ None or partial✅ AvailableAccess classification via vmMembershipTable; trunk ports remain unclassified
Cisco IOS-XE (e.g. Catalyst 3850, 9400)⚠️ Sometimes empty pre-16.x✅ AvailableAs above; access ports classify, trunks unclassified unless Q-BRIDGE is also present
Cisco NX-OS⚠️ Q-BRIDGE present, trunk membership often vendor-only✅ AvailableAccess via overlay; trunks may rely on Q-BRIDGE membership masks
Pre-ELS Junos⚠️ Incompleten/aLimited — defer to a future Junos overlay
Cisco WLC (e.g. 9800), routers, anything without dot1dBasePortIfIndexn/an/aNo interface mutations emitted (refused by design — see Bridge-port translation below); VLAN catalog still emitted if dot1qVlanStaticTable is present

Voice VLAN (Cisco): when vmVoiceVlanId returns a valid VID (in 1..4094), an access port is promoted to mode=tagged with the access VLAN as untagged and the voice VLAN as tagged — same NetBox-mapping convention as device-discovery. Sentinel values are filtered: 0 (no voice), 4095 (dot1p-only / priority-tagged), 4096 (untagged voice rides the access VLAN). Voice-on-trunk is not promoted (would create double-tagging).

Bridge-port translation: Q-BRIDGE port masks are encoded by dot1dBasePort, not ifIndex. snmp-discovery walks BRIDGE-MIB::dot1dBasePortIfIndex (1.3.6.1.2.1.17.1.4.1.2) and translates bridge-port → ifIndex before emitting Interface mutations. If this table is missing, snmp-discovery refuses to mutate Interface entities (VLAN entities are still emitted from the static catalog) — there is no "bridge-port == ifIndex" fallback because that assumption silently produces wrong cross-references on switches that allocate bridge ports separately from ifIndex.

Trunk-allowed-all detection: trunks are marked tagged-all only when the membership-derived allowed set covers the full active 1..4094 range. Q-BRIDGE exposes membership, not the operator's configured intent — so a trunk explicitly configured with 1-4094 and one currently a member of all VLANs look identical at the SNMP layer.

Modules / ModuleBays

Module / module-bay discovery is vendor-neutral: it works on any device that populates ENTITY-MIB::entPhysicalTable (RFC 6933) with the standard class hierarchy (chassis(3)container(5)module(9)), plus optionally entAliasMappingTable for per-port transceiver-to-ifIndex linkage. There are no per-vendor branches in the implementation — the same code path covers every vendor below. Emission is gated by the discover_modules policy option (off / linecards / full); see the SNMP discovery README for the contract, the three modes, and the current sub-bay rendering trade-off.

PlatformStatus
Cisco IOS-XE (Catalyst 9404R / 9407R / 9410R)Vendor-neutral via ENTITY-MIB — tested
Cisco NX-OS (Nexus 9500 modular chassis)Vendor-neutral via ENTITY-MIB — tested
Juniper JunOS (MX / EX modular chassis)Vendor-neutral via ENTITY-MIB — tested
Arista EOS (7280R / 7500R chassis)Vendor-neutral via ENTITY-MIB — tested
Aruba CX (8400 chassis, including empty-bay surfacing)Vendor-neutral via ENTITY-MIB — tested
Nokia SROS (7750 SR / 7250 IXR)Vendor-neutral via ENTITY-MIB — tested

Any other vendor that populates entPhysicalTable per RFC 6933 will be discovered with no code change; report gaps as a GitHub issue against orb-agent.

PID classifier. Module rows (entPhysicalClass = module(9)) are split into supervisor / linecard / transceiver / psu / fan types by matching entPhysicalModelName (the vendor product ID) against a small set of prefix rules: SUP* / SUPV* / SUP\dsupervisor; optic prefixes SFP- / QSFP- / X2- / GLC- / CFP- / XENPAK- / XFP-transceiver; PSU- / PWR- or -PWR- infixes → psu; FAN / -FAN-fan; everything else inside a chassis slot defaults to linecard. The classifier is shared across all vendors — no Cisco-only / Arista-only branch. PSU and fan modules are recognised so they label correctly in OTLP metrics, but never emitted as Module entities (counted in modules_dropped instead) — the inventory surface in NetBox stays scoped to line cards, supervisors, and transceivers.