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¶
For an overview of what each protocol collects and how the two compare, see SNMP vs SSH — What Each Protocol Collects in the user guide.
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.