M4300-16X¶
M4300-16X (XSM4316)¶
The XSM4316: Fully Managed, 10G, PoE on all 16 ports, and running FASTPATH 12.0.19.15 — a different firmware from its M4300-24X sibling, which is exactly why its behaviour was measured rather than inherited.
At a glance¶
Field |
Value |
|---|---|
Registry key |
|
Product name |
M4300-16X (XSM4316) |
Class |
fully managed |
Ports |
16 |
PoE (PSE) ports |
16 |
Backends |
|
SNMP vendor subtree |
|
VLAN write dialect |
FASTPATH vendor switchport table |
MAC/FDB table |
yes |
Live-verified at 10.1.5.20. Capture:
tests/fixtures/captures/m4300-16x.json; seed:
seed_m4300_16x().
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 ‘m4300-16x’ web UI has no page for get_hostname (The switch’s host name)
get_users is served only over CONSOLE, HTTP, SSH, TELNET
get_services is served only over CONSOLE, HTTP, SSH, TELNET
model ‘m4300-16x’ 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 ‘m4300-16x’ web UI has no page for set_port_speed (Force a port’s speed/duplex, or restore auto-negotiation)
model ‘m4300-16x’ web UI carries no CSRF ‘hash’ token, which the HTTP create_vlan writer requires
model ‘m4300-16x’ web UI carries no CSRF ‘hash’ token, which the HTTP delete_vlan writer requires
model ‘m4300-16x’ 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
this model takes a certificate by SCP file-copy to the switch (FastpathScpUpdater), not over the web UI – use upload_certificate_scp
Measured behaviour¶
The web UI is on HTTPS port 49152, not port 80. Its
HttpModelSpec carries both
the port and the TLS flag, so get_ports()
with backend=Backend.HTTP reaches it with no special handling from the
caller.
Its firmware requires an ``Origin`` header alongside the ``Referer`` on every
POST. A Referer alone is not enough: the same body returns 403 with only
the Referer and 200 once Origin accompanies it, on pages whose GET returns
200 — isolated live, then reproduced by the mock’s HTTP face so the requirement
cannot regress.
The VLAN-write dialect was settled by measurement, not by family. The tempting reading — that this firmware simply accepts Q-BRIDGE egress writes the -24X refuses — is not what is happening, and the measurement says so. An A/B/A on port 1/0/1, issuing byte-identical writes while flipping only that one port’s mode, gave:
general → noError access → commitFailed
general → noError trunk → noError
access → commitFailed general → noError
dot1qVlanStaticEgressPorts is writable only while no interface on the
switch is in access mode — switch-wide, not per-VLAN, and that rule is the
same on both firmwares. The -24X looks different only because 21 of its 24 ports
are in access mode, so its column is never writable; nothing about the two
images differs here. Since an untagged membership write is expressed as access
mode, the standard dialect would disable itself on first use, so this SKU
belongs on fastpath_switchport after all — now for a reason rather than a
guess, and for a reason that is a precondition rather than a firmware quirk. The
full account is in Design principles.
Protocols¶
SNMP — vendor subtree
4526.10.HTTP web UI —
CHEETAH_V1over HTTPS on 49152.FASTPATH CLI — SSH or telnet; SCP certificate deployment.