Skip to content

Network Topology: Auto-discover neighbor links for ICMP-only (non-SNMP) devices instead of requiring manual links #3489

Description

@bibisheksteephengs-svg

Summary

For SNMP-enabled devices (switches, access points), OneUptime's Network Topology already auto-discovers neighbor relationships (via LLDP/CDP) and draws links automatically. For devices that only support ICMP monitoring (no SNMP — e.g. KPS units, registers, VoIP phones, non-manageable endpoints), there is no LLDP/CDP data available, so no automatic link discovery is possible. Today the only way to represent these devices in the topology is to manually create a link from the device to the switch port/switch it's physically connected to.

This does not scale. A single site ("WB Unit 0661" in the example) can have 30–40 ICMP-only end devices, each needing a manual link to the correct switch. Maintaining this manually across many sites is impractical.

Problem

  • SNMP devices (switches/APs) → links auto-created via LLDP/CDP neighbor discovery. Works well.
  • Router → switch links → not auto-created, but can be handled today with a link label rule ("connect all routers to switches"). Acceptable workaround.
  • ICMP-only end devices (no SNMP, e.g. KPS, registers, VoIP endpoints) → no neighbor data exists, so the only option is a manual link per device.
  • Manual links are also fragile: if an end device is later moved to a different switch port (e.g. after a failure or a physical re-cable), the manually created link becomes stale and shows an incorrect topology (device appears connected to a switch it's no longer on).

Describe the solution you'd like
For a given site, allow OneUptime to determine which switch an ICMP-monitored device is actually connected to, and automatically create/update that link in the Network Topology — scoped only to devices that have been added under that site (not global network scanning).

Describe alternatives you've considered

  1. For each site, look at the SNMP-managed switches already in that site's topology (their MAC address/ARP/CAM tables are typically queryable via SNMP).
  2. Cross-reference the MAC addresses of ICMP-only devices in the same site against each switch's CAM table to determine which switch port the device is currently plugged into.
  3. Automatically create (or move) the topology link between the device and the discovered switch, replacing the need for a manual link.
  4. Re-run this discovery periodically (similar to how LLDP/CDP topology already "updates automatically every minute") so that if a device is moved to a different switch/port, the topology link updates automatically instead of showing stale/incorrect information.
  5. Scope discovery strictly to devices within the same site — not a global scan across all sites.

Why this matters

  • Manually linking 30–40 devices per site, across many sites, is not sustainable.
  • A hardcoded manual link becomes false/misleading information the moment a device is physically moved to a different switch (e.g. during a failure or maintenance), which undermines trust in the topology view.
  • This would bring ICMP-only end devices to parity with the automatic discovery already available for SNMP switches/APs.

Current workarounds in use

  • Manual link creation per device (e.g. KPS 01 → Switch 01) — does not scale and goes stale.
  • Link label rule to auto-connect routers to switches — works for router/switch relationships but doesn't help with ICMP end devices since there's no equivalent "neighbor" signal for them today.

Additional context

  • OneUptime self-hosted
  • Network Devices / Network Topology feature (Parent-Child topology view)
  • Example site: WB Unit 0661 (Region 1700 / Market 1705) — 18 devices, mix of SNMP switches/APs and ICMP-only devices (KPS, registers, VoIP endpoints)
Image Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions