Christian Manivong d79391238f
driver / standard (pull_request) Successful in 14s
driver / lint (pull_request) Successful in 13s
driver / types (pull_request) Successful in 45s
driver / test (3.10) (pull_request) Successful in 47s
driver / test (3.11) (pull_request) Successful in 45s
driver / test (3.12) (pull_request) Successful in 44s
driver / test (3.13) (pull_request) Successful in 37s
driver / lowest (pull_request) Successful in 22s
driver / security (pull_request) Successful in 46s
driver / build (pull_request) Successful in 22s
CI / driver (pull_request) Successful in 5m35s
driver / publish (pull_request) Skipped
chore(release): 0.6.0
2026-10-23 10:29:06 +02:00
2026-05-29 09:13:59 +02:00
2026-10-23 10:29:06 +02:00
2026-10-23 10:29:06 +02:00

napalm-netgear-switches

NAPALM community driver for Netgear Smart Managed and Netgear Plus Managed switches (GS108EPP, GS110TP, GS316EPP and compatible Smart Managed Pro series).

Tested devices

Model Series Tested
GS110TP Smart Managed Pro ✅
GS108EPP Smart Managed Pro ✅
GS316EPP Smart Managed Pro ✅

Other models from the Netgear Smart Managed Pro series should work as well — contributions welcome.

Requirements

Dependency Minimum version
Python 3.10
NAPALM 4.0
napalm-device-types 4.21.1
Netmiko 4.0

Installation

pip install napalm-netgear-switches

The name napalm-netgear on PyPI belongs to another project. The import package is still napalm_netgear, and the drivers are still netgear_smart and netgear_plus.

Or from source:

git clone https://git.netork.io/NAPALM/napalm-netgear.git
cd napalm-netgear
pip install -e .

Quick start

from napalm import get_network_driver

driver = get_network_driver("netgear_smart")
with driver("192.168.0.239", "admin", "password") as device:
    facts = device.get_facts()
    print(facts)

Implemented getters

Getter Status Notes
get_facts ✅ model, hostname, os_version, serial, uptime
get_interfaces ✅ status, speed, description, MTU
get_interfaces_ip ✅ management VLAN IP/mask
get_config ✅ running + startup
get_arp_table ✅
get_mac_address_table ✅
get_lldp_neighbors ✅
get_lldp_neighbors_detail ✅
get_vlans ✅
get_environment ✅ CPU + memory only
get_interfaces_counters ✅
get_users ✅
get_snmp_information ✅
get_ntp_servers ✅
get_ntp_peers ✅ same as servers
get_route_to ✅ static/connected only
ping ✅
cli ✅
is_alive ✅
load_merge_candidate ✅
load_replace_candidate ✅ additive — no atomic replace
compare_config ✅
commit_config ✅
discard_config ✅
rollback ✅ session-scoped backup
get_bgp_neighbors ❌ not applicable
get_optics ❌ DDM not exposed via CLI
get_ipv6_neighbors_table ❌ not exposed via CLI
get_ntp_stats ❌ not exposed via CLI

Optional arguments

Argument Default Description
port 22 SSH port
force_no_enable False Skip enable after login
canonical_int_fmt False Use canonical interface names

Any additional keyword arguments are forwarded to Netmiko.

CLI notes

  • Netmiko device type: netgear_prosafe
  • Prompt pattern: (hostname) > / (hostname) # / (hostname) (Config)#
  • Interface naming: 0/1, 0/2, … (slot/port); LAG channels: ch1, ch2, …
  • Config is persisted with write memory
  • Key-value output uses Key: value or Key..... value notation depending on firmware generation — both are handled automatically

Development

The rules are in STANDARDS.md.

python -m venv .venv && .venv/bin/pip install -e ".[dev]"
.venv/bin/pytest --cov

License

Apache 2.0 — see LICENSE.

S
Description
No description provided
Readme
536 KiB
0 Stars 1 Watchers 0 Forks
Languages
Python 100%