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_MAPPERconstants that matches the device'ssysDescrOID 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
SSHDetectauto-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.