Bpi-r4 10gbe sfp mtu only support 2k

Device: Banana Pi BPI-R4 Firmware: OpenWrt 24.10.2 Interface tested: eth1 Test method:

for mtu in $(seq 9500 -100 1500); do echo -n "Testing MTU $mtu … " if ip link set dev eth1 mtu $mtu 2>/dev/null; then echo “:white_check_mark: supported” else echo “:x: unsupported” fi done

Test Results:

Testing MTU 9500 … :x: unsupported
Testing MTU 9400 … :x: unsupported
Testing MTU 9300 … :x: unsupported
… Testing MTU 2100 … :x: unsupported
Testing MTU 2000 … :white_check_mark: supported
Testing MTU 1900 … :white_check_mark: supported
Testing MTU 1800 … :white_check_mark: supported
Testing MTU 1700 … :white_check_mark: supported
Testing MTU 1600 … :white_check_mark: supported
Testing MTU 1500 … :white_check_mark: supported

Summary:

MTU values above 2000 are not supported on eth1.

Maximum supported MTU: 2000 bytes

All standard and slightly extended MTU values (1500–2000) are working as expected.

Jumbo frames (MTU > 2000) are currently not supported on this interface with OpenWrt 24.10.2.

If anyone knows whether this is a hardware limitation of the MT7988 SoC, or a driver/configuration limitation (e.g., DSA or MTK HNAT driver), further insights would be appreciated.