type Cap = '✓' | '—' interface Driver { name: string deviceType: string facts: Cap interfaces: Cap lldp: Cap vlans: Cap ssids: Cap health: Cap docker: Cap reboot: Cap configPush: Cap status: 'stable' | 'beta' } const DRIVERS: Driver[] = [ { name: 'openwrt', deviceType: 'OpenWRT access points', facts: '✓', interfaces: '✓', lldp: '—', vlans: '✓', ssids: '✓', health: '✓', docker: '—', reboot: '✓', configPush: '✓', status: 'stable' }, { name: 'opnsense', deviceType: 'OPNsense firewalls', facts: '✓', interfaces: '✓', lldp: '✓', vlans: '✓', ssids: '—', health: '✓', docker: '—', reboot: '✓', configPush: '—', status: 'stable' }, { name: 'proxmox', deviceType: 'Proxmox VE hypervisors', facts: '✓', interfaces: '✓', lldp: '—', vlans: '—', ssids: '—', health: '✓', docker: '✓', reboot: '✓', configPush: '—', status: 'stable' }, { name: 'linux', deviceType: 'Generic Linux servers', facts: '✓', interfaces: '✓', lldp: '✓', vlans: '—', ssids: '—', health: '✓', docker: '✓', reboot: '✓', configPush: '—', status: 'stable' }, { name: 'procurve', deviceType: 'HP ProCurve / Aruba switches', facts: '✓', interfaces: '✓', lldp: '✓', vlans: '✓', ssids: '—', health: '✓', docker: '—', reboot: '✓', configPush: '—', status: 'stable' }, { name: 'tplink_jetstream', deviceType: 'TP-Link Jetstream switches', facts: '✓', interfaces: '✓', lldp: '✓', vlans: '✓', ssids: '—', health: '—', docker: '—', reboot: '✓', configPush: '—', status: 'stable' }, { name: 'netgear', deviceType: 'Netgear switches', facts: '✓', interfaces: '✓', lldp: '✓', vlans: '✓', ssids: '—', health: '—', docker: '—', reboot: '—', configPush: '—', status: 'beta' }, { name: 'fritzbox', deviceType: 'AVM Fritz!Box routers', facts: '✓', interfaces: '✓', lldp: '—', vlans: '—', ssids: '✓', health: '—', docker: '—', reboot: '✓', configPush: '—', status: 'stable' }, { name: 'zyxel', deviceType: 'Zyxel switches', facts: '✓', interfaces: '✓', lldp: '✓', vlans: '✓', ssids: '—', health: '—', docker: '—', reboot: '—', configPush: '—', status: 'beta' }, { name: 'openmediavault', deviceType: 'OpenMediaVault NAS', facts: '✓', interfaces: '✓', lldp: '—', vlans: '—', ssids: '—', health: '✓', docker: '✓', reboot: '✓', configPush: '—', status: 'stable' }, { name: 'sonos', deviceType: 'Sonos speakers', facts: '✓', interfaces: '—', lldp: '—', vlans: '—', ssids: '—', health: '—', docker: '—', reboot: '—', configPush: '—', status: 'beta' }, ] const NAPALM_BUILTIN = [ 'Cisco IOS', 'Cisco IOS-XE', 'Cisco NX-OS', 'Arista EOS', 'Juniper JunOS', ] const CAPS: { key: keyof Driver; label: string }[] = [ { key: 'facts', label: 'Facts' }, { key: 'interfaces', label: 'Ifaces' }, { key: 'lldp', label: 'LLDP' }, { key: 'vlans', label: 'VLANs' }, { key: 'ssids', label: 'SSIDs' }, { key: 'health', label: 'Health' }, { key: 'docker', label: 'Docker' }, { key: 'reboot', label: 'Reboot' }, { key: 'configPush', label: 'Config push' }, ] function StatusBadge({ status }: { status: 'stable' | 'beta' }) { return ( {status} ) } export default function Drivers() { return (
netOrk ships with custom NAPALM drivers for 11 device types and supports all built-in NAPALM drivers. Capability availability varies by driver.
| Driver | Device type | {CAPS.map((c) => ({c.label} | ))}Status |
|---|---|---|---|
| {d.name} | {d.deviceType} | {CAPS.map((c) => ({d[c.key]} | ))}
All standard NAPALM drivers are supported. Capabilities depend on the upstream NAPALM implementation.