Skip to content

Extending Platform Support

This page covers the technical notes and requirements for extending platform support in the Nautobot Device Discovery App.

For existing platform support matrices, see the Platform Support Matrix.

Protocol Overview

The app uses two protocols for device discovery, each with different strengths. SNMP is lightweight and fast, making it ideal for scheduled validation and Fast Path pre-verification with minimal device impact. SSH provides deeper discovery including LLDP neighbor collection and high data accuracy through structured parsing.

Capability SNMP SSH
Identity Discovery Yes Yes
Software Version Yes Yes
Platform Detection Yes Yes
LLDP Topology No Yes
Deep Structured Parsing No Yes
Fast Path Eligible Yes (validation stage) Yes (collection stage)

Extending SNMP Support

SNMP platform support requires two things:

  • OID Mapper — A YAML file in oid_mappers/ that maps vendor-specific SNMP OIDs to device attributes (hostname, serial, device type, software version).
  • Platform Detection — An entry in the AUTODETECT_MAPPER constants that matches the device's sysDescr OID response to a known platform.

Both must be present for a platform to be fully supported via SNMP. All platforms support core identity correlation (hostname + serial). Software version is extracted from sysDescr or vendor-specific OIDs. Device Type parsing may include vendor-specific post-processing. SNMP does not collect topology (LLDP) data.

Extending SSH Support

SSH platform support requires three things:

  • Command Mapper — A YAML file in command_mappers/ that defines the CLI commands to execute and how to extract data from the parsed output (parser type, jpath expressions, post-processors).
  • Parser Template — A matching template for each command, determined by the parser type specified in the command mapper (see below).
  • Platform Detection — The platform must be detectable by Netmiko's SSHDetect auto-detection mechanism.

A command mapper entry without a corresponding parser template will fail to parse device output.

SSH Parsing Engines

The parser type in the command mapper determines how CLI output is structured:

Parser Description Platforms
TextFSM Uses bundled templates shipped with the app, templates from a configured Git repository, or custom .textfsm files in command_mappers/parsers/textfsm/ Majority of network OS platforms
TTP Uses TTP template files provided via a configured Git repository or locally in parsers/ttp/ F5 TMOS
Native JSON No template needed; the device returns native structured output Juniper Junos
Raw No template needed; raw CLI output is processed directly via Jinja post-processor expressions Selected legacy platforms

Note

For TextFSM, the app ships with bundled templates that cover supported platforms out of the box. If a Git repository with TextFSM templates is configured, those take precedence. This means SSH discovery works without any Git repository setup for platforms that have bundled templates.