Switch models

Every model this library knows is a frozen SwitchModel record in src/netgear_switch/registry.py. The table below is generated from that registry at documentation build time, so it cannot drift from the code.

Key

Model

Class

Ports

PoE ports

Backends

Status

m4300-24x

M4300-24X (XSM4324CS)

fully managed

28

0

SNMP, HTTP, SSH, TELNET

live-verified

m4300-16x

M4300-16X (XSM4316)

fully managed

16

16

SNMP, HTTP, SSH, TELNET

live-verified

gsm7252ps

GSM7252PS

fully managed

52

48

SNMP, HTTP, SSH, TELNET

live-verified

gsm7228ps (also s3300)

GSM7228PS (S3300)

smart managed pro

52

48

SNMP, HTTP, TELNET

live-verified

gs110emx

GS110EMX

plus

10

0

NSDP, HTTP

live-verified

gs305ep

GS305EP

plus

5

4

NSDP, HTTP

live-verified

gs728tpp

GS728TPP

smart managed pro

28

24

SNMP, HTTP

live-verified

gs105pe

GS105PE

plus

5

0

NSDP, HTTP

live-verified

Every model listed above is backed by evidence, and each model’s own page says which kind. All but one are a device capture or a live run against the hardware. The GS305EP is the exception: its support is grounded in two independent implementations that drive these switches — py_netgear_plus and netgear-smp-vlan, the latter observed against a GS105PE — and no GS305EP has been captured, so its mock seed and web-UI fixtures are marked synthetic in the source. get_model() resolves a key — or an alias, such as s3300 — to the record; ngsw models prints the whole registry, including the entries these tables leave out, named below.

Note

The registry also carries m7300 (M7300-24XF), xs748t (XS748T), which the tables above deliberately leave out. No device of either kind has ever been reachable from this project, so there is no capture, no live run, and nothing measured to report. They are registered only so a caller can construct a facade for them; treat every one of their fields as a specification-sheet guess until a real capture exists.

Per-model pages

Each page carries the model’s registry facts, its full operation-by-backend support matrix, and the behaviour measured on it — including the quirks that show up only on that firmware.

Grouped by class

The class decides which protocols are available at all.

Fully Managed — full SNMP with the Netgear 4526.10 vendor subtree, a FASTPATH CLI over SSH and telnet, and a web UI.

  • M4300-24X — 10G aggregation, no PoE, FASTPATH 12.0.13.8.

  • M4300-16X — 10G with PoE on every port, FASTPATH 12.0.19.15.

  • GSM7252PS — 52 ports, 48 PoE; the widest verified coverage here.

Smart Managed Pro — SNMP and a web UI; one also has a CLI.

  • S3300-52X-PoE+ — the S3300-52X-PoE+, vendor subtree 4526.11, CLI over telnet on port 60000.

  • GS728TPP — no vendor OIDs at all; standard MIBs and a GoAhead XML web API.

Plus — no SNMP agent whatsoever. Managed over NSDP and the web UI.

  • GS110EMX — 10 ports, multi-gigabit, NSDP v2 write authentication.

  • GS305EP — 5 ports, 4 PoE; PoE only reachable over HTTP.

  • GS105PE — 5 ports, no PSE, no MAC table on any interface.

Cross-model comparison

Support matrix carries the full grids — which protocols each model exposes, which operations each protocol serves, and every remaining backend-parity gap with its reason.

Reading the support tables

A — cell is a genuine refusal with a stated reason, not an unimplemented feature. A ? cell means the operation is implemented but gated off because that backend’s output has not been cross-verified against live hardware; the facade refuses to dispatch rather than hand back unchecked data. The same verdicts are available in code from support().