S3300-52X-PoE+¶
GSM7228PS (S3300)¶
A 52-port Smart Managed Pro switch with 48 PoE ports — despite the
GSM7228PS part-number family suggesting 28. The registry key is
gsm7228ps; s3300 is an alias for the same record, because the firmware’s
own sysDescr and the marketing name are both “S3300-52X”.
At a glance¶
Field |
Value |
|---|---|
Registry key |
|
Product name |
GSM7228PS (S3300) |
Class |
smart managed pro |
Ports |
52 |
PoE (PSE) ports |
48 |
Backends |
|
SNMP vendor subtree |
|
VLAN write dialect |
Q-BRIDGE static PortLists (read-modify-write) |
VLAN write quirk |
egress and untagged PortLists must travel in SEPARATE PDUs, egress first |
Aliases |
|
MAC/FDB table |
yes |
Live-verified at 10.1.5.11. Capture:
tests/fixtures/captures/gsm7228ps.json; seed:
seed_gsm7228ps().
What works, over which protocol¶
Operation |
What it does |
|||
|---|---|---|---|---|
Per-port link/admin status |
✓ |
✓ |
✓ |
|
Per-port octet/packet counters |
✓ |
✓ |
✓ |
|
VLAN list with tagged/untagged members |
✓ |
✓ |
✓ |
|
Per-port PVID |
✓ |
✓ |
✓ |
|
LLDP neighbour table |
✓ |
✓ |
✓ |
|
MAC/FDB forwarding table |
✓ |
✓ |
✓ |
|
Per-port PoE status and power draw |
✓ |
✓ |
✓ |
|
Fan/PSU/temperature sensors |
✓ |
✓ |
||
Management IP configuration |
✓ |
✓ |
✓ |
|
The switch’s host name |
✓ |
✓ |
||
Local login accounts and their access level |
✓ |
|||
Which management services (http/https/telnet/ssh) are enabled |
✓ |
|||
Remote-logging configuration and collectors |
✓ |
✓ |
✓ |
|
Full NSDP device record |
||||
Bring a port up or down |
✓ |
✓ |
✓ |
|
Enable or disable PoE on a port |
✓ |
✓ |
✓ |
|
Power-cycle a PoE port |
✓ |
✓ |
✓ |
|
Clear a latched PoE fault |
✓ |
✓ |
✓ |
|
Set or clear a port’s description |
✓ |
✓ |
||
Force a port’s speed/duplex, or restore auto-negotiation |
✓ |
|||
Turn IEEE 802.3x flow control on or off for a port |
✓ |
|||
Set a port’s PVID |
✓ |
✓ |
✓ |
|
Set a port tagged/untagged/excluded on a VLAN |
✓ |
✓ |
✓ |
|
Create a VLAN |
✓ |
✓ |
||
Delete a VLAN |
✓ |
✓ |
||
Set the management IP/mask/gateway |
✓ |
✓ |
✓ |
|
Set the switch’s host name |
✓ |
✓ |
||
Turn remote logging on or off |
✓ |
✓ |
||
Add a remote syslog collector |
✓ |
|||
Remove a remote syslog collector |
✓ |
✓ |
||
Upload an HTTPS certificate over the web UI |
✓ |
|||
Deploy an HTTPS certificate via FASTPATH |
model ‘gsm7228ps’ web UI has no page for get_sensors (Fan/PSU/temperature sensors)
model ‘gsm7228ps’ web UI has no page for get_hostname (The switch’s host name)
get_users is served only over CONSOLE, HTTP, SSH, TELNET
model ‘gsm7228ps’ web UI has no page for get_users (Local login accounts and their access level)
get_services is served only over CONSOLE, HTTP, SSH, TELNET
model ‘gsm7228ps’ web UI has no page for get_services (Which management services (http/https/telnet/ssh) are enabled)
model ‘gsm7228ps’ web UI has no page for set_port_description (Set or clear a port’s description)
set_port_speed is served only over CONSOLE, HTTP, SSH, TELNET
model ‘gsm7228ps’ web UI has no page for set_port_speed (Force a port’s speed/duplex, or restore auto-negotiation)
model ‘gsm7228ps’ web UI carries no CSRF ‘hash’ token, which the HTTP create_vlan writer requires
model ‘gsm7228ps’ web UI carries no CSRF ‘hash’ token, which the HTTP delete_vlan writer requires
model ‘gsm7228ps’ web UI has no page for set_hostname (Set the switch’s host name)
set_syslog_enabled is served only over CONSOLE, SNMP, SSH, TELNET
model ‘gsm7228ps’ web UI has no page for remove_syslog_collector (Remove a remote syslog collector)
model ‘gsm7228ps’ has no known copy-scp SSL-certificate deploy profile
Measured behaviour¶
Identified by sysObjectID, not sysDescr. Its description text is
indistinguishable from the unregistered S3300-28X, so matching on it would be a
coin flip. detect_model() prefers the product OID
4526.100.10.19 — the product identifier, distinct from the 4526.11
vendor data subtree its sensors and PoE live under. Confusing the two is
what made auto-detection fail on this switch.
Its CLI is telnet on port 60000, not 23, and it runs no SSH listener on any
port — its own tcpConnTable shows only 80, 443 and 60000. So the CLI backend
here is telnet only, and the transport dials the port from its spec.
Setting a port’s egress bit makes it an untagged member. That side effect
beats an untagged varbind carried in the same PDU, so a TAGGED request
silently lands untagged:
one PDU : egress=[1] untagged=[1] ← untagged intent lost
two PDUs : egress=[1] untagged=[] ← correct, CLI confirms "Tagged"
snmp_vlan_split_membership_writes turns
the two-PDU sequence on for this model alone.
“The SNMP agent is dead” was a wrong credential. This switch has no
private community; it publishes pib and public, both read-write. An
agent silently drops an unauthorised request, so a wrong write community looks
exactly like an unreachable host — reads had worked the whole time.
Certificate upload is an HTTP multipart form, not SCP — the opposite of its
FASTPATH cousins. upload_certificate()
is the right call for this model.
Protocols¶
SNMP — vendor subtree
4526.11.HTTP web UI —
CHEETAH_FORMlogin,S3300page dialect.FASTPATH CLI — telnet on port 60000 only.