[BPI-R4 | Solved] Bad 10gbit sfp performance?

My problem is not that i am stuck at 4.5gbps. My problem is that the SFP-to-RJ45-Adapter is somehow not working as 10gbit but as 1gbit module only, even tho it first tries to configure it as 10gbit device. So it is another problem i assume.

The relevant part is this:

[  375.074255] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 10Gbps/Full - flow control off
[  375.082649] br-lan: port 1(eth1) entered blocking state
[  375.087869] br-lan: port 1(eth1) entered forwarding state
[  596.337946] mtk_soc_eth 15100000.ethernet eth1: Link is Down
[  596.343976] br-lan: port 1(eth1) entered disabled state
[  600.321819] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 10Gbps/Full - flow control off
[  600.330212] br-lan: port 1(eth1) entered blocking state
[  600.335430] br-lan: port 1(eth1) entered forwarding state
[  950.490529] mt7530-mmio 15020000.switch lan1: Link is Down
[  950.496514] br-lan: port 2(lan1) entered disabled state
[  955.620389] mtk_soc_eth 15100000.ethernet eth1: Link is Down
[  955.636473] br-lan: port 1(eth1) entered disabled state
[  958.895361] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 10Gbps/Full - flow control off
[  958.903753] br-lan: port 1(eth1) entered blocking state
[  958.908972] br-lan: port 1(eth1) entered forwarding state
[ 1585.863092] mtk_soc_eth 15100000.ethernet eth1: Link is Down
[ 1585.879175] br-lan: port 1(eth1) entered disabled state
[ 1589.416943] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 10Gbps/Full - flow control off
[ 1589.425334] br-lan: port 1(eth1) entered blocking state
[ 1589.430554] br-lan: port 1(eth1) entered forwarding state
[ 1620.154853] mtk_soc_eth 15100000.ethernet eth1: Link is Down
[ 1620.160905] br-lan: port 1(eth1) entered disabled state
[ 1627.672129] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 10Gbps/Full - flow control off
[ 1627.680522] br-lan: port 1(eth1) entered blocking state
[ 1627.685747] br-lan: port 1(eth1) entered forwarding state
[ 1645.935906] mtk_soc_eth 15100000.ethernet eth1: Link is Down
[ 1645.941923] br-lan: port 1(eth1) entered disabled state
[ 1660.802783] sfp sfp2: module removed
[ 1663.014358] sfp sfp2: module OEM              SFP+10G-T-I      rev A    sn WEPOQTBZ1001     dc 230915  
[ 1663.023781] mtk_soc_eth 15100000.ethernet eth1: switched to inband/1000base-x link mode

For me it looks like eeprom has some issues…ethtool -m is normally no hexdump

when i take a look at the ethtool help it states: ethtool [ FLAGS ] -m|–dump-module-eeprom|

Are you sure this is not a hex-dump? When i do the same on eth2 (my internet connection) i also get a hex dump, but that module works fine as expected.

on my system ethtool looks like this:

root@bpi-r4-v11:~
# ethtool -m eth2
        Identifier                                : 0x03 (SFP)
        Extended identifier                       : 0x04 (GBIC/SFP defined by 2-wire interface ID)
        Connector                                 : 0x07 (LC)
        Transceiver codes                         : 0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
        Transceiver type                          : 10G Ethernet: 10G Base-SR

help page seems not listing -m there…only printed as [FLAGS] :stuck_out_tongue:

edit: found it:

ethtool [ FLAGS ] -m|--dump-module-eeprom|--module-info DEVNAME Query/Decode Module EEPROM information and optical diagnostics if available

well, it tries to print those in a human readable way, if possible. i am wondering where it gets those information. maybe this is an extra package that is linked during compile time or maybe at runtime. maybe the version that is built for openwrt is very different from the version that is built for debian (stripped etc.). so my guess is, that just because it is not able to print some nice text, its no proof that the eeprom has issues. its just not recognized by ethtool, so it prints it in raw. wondering if there is a way to decode that online or so. also, the WAN sfp port is working perfectly fine, but it also shows only the raw hex.

i found this: Ethtool Print EEPROM | Hack GPON when i copy/paste the output of ethtool -m into this, it looks really nice, but i have no idea what information you need.

Nice update :smiley: I just built a new openwrt image, before that i was using kernel 6.1 and now its 6.6. And now its 10gbit. So my assumption is that something has been updated in the kernel, now i also get more than 1gbit over the sfp-rj45-connection.

nice, but strange that one SFP works and the other not…looks like a quirk is missing in 6.1.

Sorry, bit of an off topic question:

  • Large Receive Offload (LRO) and
  • Receive Side Scaling (RSS)

How do I enable that to get above ~4.5Gbit/s (in OpenWRT or Debian) and why is it not on by default?

afaik @frank-w is working on that?

1 Like

Yes,but we have both not yet working…so i wonder why you get 10G…or do you mean you get the max of 4.5g like i did (or at least interface mode is 10g)

when i say “its 10gbit” i mean dmesg shows me that its recognized as 10gbit module. what i really retrieve on my workstation cant be 10gbit as my workstation has a 2.5gbit nic only. also, i dont have a endpoint where i can test the 10gbit. not sure if speedtest.net can handle 10gbit per connection

btw. i am far away from 4.5gbit, what i reach is

 Download: 2623.32 Mbps
  Latency: [in msec, 61 pings, 0.00% packet loss]
      Min:   2.062
    10pct:   2.099
   Median:   2.284
      Avg:   2.278
    90pct:   2.415
      Max:   2.500
 CPU Load: [in % busy (avg +/- std dev) @ avg frequency, 58 samples]
     cpu0:  56.6 +/-  0.0  @ 1500 MHz
     cpu1:  14.6 +/-  2.2  @ 1500 MHz
     cpu2:  19.0 +/-  2.2  @ 1500 MHz
     cpu3:  15.0 +/-  3.0  @ 1500 MHz
 Overhead: [in % used of total CPU available]
  netperf:  11.4
.............................................................
   Upload: 3814.16 Mbps
  Latency: [in msec, 61 pings, 0.00% packet loss]
      Min:   2.046
    10pct:   2.080
   Median:   2.196
      Avg:   2.275
    90pct:   2.464
      Max:   3.478
 CPU Load: [in % busy (avg +/- std dev) @ avg frequency, 58 samples]
     cpu0:  15.2 +/-  4.2  @ 1500 MHz
     cpu1:   7.6 +/-  2.6  @ 1500 MHz
     cpu2:  17.2 +/-  1.3  @ 1500 MHz
     cpu3:   6.1 +/-  2.5  @ 1500 MHz
 Overhead: [in % used of total CPU available]
  netperf:   5.1

but as this is still way more then 2.5gbit, i am perfectly fine with that :slight_smile: