M4300-16X

M4300-16X (XSM4316) switch

M4300-16X (XSM4316)

12345678910111213141516PoE (16)no PoE (0)
Port map as the library addresses these ports — schematic, not a faceplate layout.

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

m4300-16x

Product name

M4300-16X (XSM4316)

Class

fully managed

Ports

16

PoE (PSE) ports

16

Backends

SNMP, HTTP, SSH, TELNET

SNMP vendor subtree

1.3.6.1.4.1.4526.10

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

SNMP

HTTP

SSH

TELNET

get_ports

Per-port link/admin status

✓

✓

✓

✓

get_stats

Per-port octet/packet counters

✓

✓

✓

✓

get_vlans

VLAN list with tagged/untagged members

✓

✓

✓

✓

get_pvids

Per-port PVID

✓

✓

✓

✓

get_lldp

LLDP neighbour table

✓

✓

✓

✓

get_macs

MAC/FDB forwarding table

✓

✓

✓

✓

get_poe

Per-port PoE status and power draw

✓

✓

✓

✓

get_sensors

Fan/PSU/temperature sensors

✓

✓

✓

✓

get_mgmt_ip

Management IP configuration

✓

✓

✓

✓

get_hostname

The switch’s host name

✓

— [m4300-16x-1]

✓

✓

get_users

Local login accounts and their access level

— [m4300-16x-2]

✓

✓

✓

get_services

Which management services (http/https/telnet/ssh) are enabled

— [m4300-16x-3]

✓

✓

✓

get_syslog

Remote-logging configuration and collectors

✓

✓

✓

✓

nsdp_device

Full NSDP device record

— [m4300-16x-4]

— [m4300-16x-4]

— [m4300-16x-4]

— [m4300-16x-4]

set_port_enabled

Bring a port up or down

✓

✓

✓

✓

set_poe

Enable or disable PoE on a port

✓

✓

✓

✓

cycle_poe

Power-cycle a PoE port

✓

✓

✓

✓

clear_poe_fault

Clear a latched PoE fault

✓

✓

✓

✓

set_port_description

Set or clear a port’s description

✓

— [m4300-16x-5]

✓

✓

set_port_speed

Force a port’s speed/duplex, or restore auto-negotiation

— [m4300-16x-6]

— [m4300-16x-7]

✓

✓

set_flow_control

Turn IEEE 802.3x flow control on or off for a port

— [m4300-16x-8]

— [m4300-16x-8]

✓

✓

set_pvid

Set a port’s PVID

✓

✓

✓

✓

set_vlan_membership

Set a port tagged/untagged/excluded on a VLAN

✓

✓

✓

✓

create_vlan

Create a VLAN

✓

— [m4300-16x-9]

✓

✓

delete_vlan

Delete a VLAN

✓

— [m4300-16x-10]

✓

✓

set_mgmt_ip

Set the management IP/mask/gateway

✓

✓

✓

✓

set_hostname

Set the switch’s host name

✓

— [m4300-16x-11]

✓

✓

set_syslog_enabled

Turn remote logging on or off

✓

— [m4300-16x-12]

✓

✓

add_syslog_collector

Add a remote syslog collector

— [m4300-16x-13]

— [m4300-16x-13]

✓

✓

remove_syslog_collector

Remove a remote syslog collector

✓

✓

✓

✓

upload_certificate

Upload an HTTPS certificate over the web UI

— [m4300-16x-14]

— [m4300-16x-15]

— [m4300-16x-14]

— [m4300-16x-14]

upload_certificate_scp

Deploy an HTTPS certificate via FASTPATH copy scp://

— [m4300-16x-16]

— [m4300-16x-16]

✓

✓

[m4300-16x-1]

model ‘m4300-16x’ web UI has no page for get_hostname (The switch’s host name)

[m4300-16x-2]

get_users is served only over CONSOLE, HTTP, SSH, TELNET

[m4300-16x-3]

get_services is served only over CONSOLE, HTTP, SSH, TELNET

[m4300-16x-4] (1,2,3,4)

nsdp_device is served only over NSDP

[m4300-16x-5]

model ‘m4300-16x’ web UI has no page for set_port_description (Set or clear a port’s description)

[m4300-16x-6]

set_port_speed is served only over CONSOLE, HTTP, SSH, TELNET

[m4300-16x-7]

model ‘m4300-16x’ web UI has no page for set_port_speed (Force a port’s speed/duplex, or restore auto-negotiation)

[m4300-16x-8] (1,2)

set_flow_control is served only over CONSOLE, SSH, TELNET

[m4300-16x-9]

model ‘m4300-16x’ web UI carries no CSRF ‘hash’ token, which the HTTP create_vlan writer requires

[m4300-16x-10]

model ‘m4300-16x’ web UI carries no CSRF ‘hash’ token, which the HTTP delete_vlan writer requires

[m4300-16x-11]

model ‘m4300-16x’ web UI has no page for set_hostname (Set the switch’s host name)

[m4300-16x-12]

set_syslog_enabled is served only over CONSOLE, SNMP, SSH, TELNET

[m4300-16x-13] (1,2)

add_syslog_collector is served only over CONSOLE, SSH, TELNET

[m4300-16x-14] (1,2,3)

upload_certificate is served only over HTTP

[m4300-16x-15]

this model takes a certificate by SCP file-copy to the switch (FastpathScpUpdater), not over the web UI – use upload_certificate_scp

[m4300-16x-16] (1,2)

upload_certificate_scp is served only over CONSOLE, SSH, TELNET

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