Jump to content

NanoPi R4S rk_gmac-dwmac WAN on 1Gbps/Full network packet loss problem


Pedro Lucas

Recommended Posts

Hello everyone,

 

I have a problem with my NanoPi R4S. The WAN (eth0) port does not work well when it is configured to work on 1Gbps/Full. When this setting is active there is about 15% packet loss, which is quite annoying.

 

In my tests I have already been able to identify that if I configure the port to work at 100Mbps/Full everything works normally. So I found the forum-post below, that explain that some u-Boot version wasn't setting the correct clock configuration for the netwok device at boot time, but now I have installed the linux-u-boot-nanopi-r4s-edge  22.08.6 and linux-image-edge-rockchip64 22.08.8 but the problem still there. 

 

I've read millions of forums for the solution, and so far I haven't made much progress. Would anyone be able to help me?

 

in dmesg it looks like:

[    1.853954] rk_gmac-dwmac fe300000.ethernet: IRQ eth_wake_irq not found
[    1.853967] rk_gmac-dwmac fe300000.ethernet: IRQ eth_lpi not found
[    1.854071] rk_gmac-dwmac fe300000.ethernet: PTP uses main clock
[    1.854234] rk_gmac-dwmac fe300000.ethernet: clock input or output? (input).
[    1.854244] rk_gmac-dwmac fe300000.ethernet: TX delay(0x28).
[    1.854253] rk_gmac-dwmac fe300000.ethernet: RX delay(0x11).
[    1.854267] rk_gmac-dwmac fe300000.ethernet: integrated PHY? (no).
[    1.854320] rk_gmac-dwmac fe300000.ethernet: cannot get clock clk_mac_speed
[    1.854326] rk_gmac-dwmac fe300000.ethernet: clock input from PHY
[    1.859341] rk_gmac-dwmac fe300000.ethernet: init for RGMII
[    1.860175] rk_gmac-dwmac fe300000.ethernet: User ID: 0x10, Synopsys ID: 0x35
[    1.860191] rk_gmac-dwmac fe300000.ethernet:         DWMAC1000
[    1.860199] rk_gmac-dwmac fe300000.ethernet: DMA HW capability register supported
[    1.860206] rk_gmac-dwmac fe300000.ethernet: RX Checksum Offload Engine supported
[    1.860212] rk_gmac-dwmac fe300000.ethernet: COE Type 2
[    1.860218] rk_gmac-dwmac fe300000.ethernet: TX Checksum insertion supported
[    1.860224] rk_gmac-dwmac fe300000.ethernet: Wake-Up On Lan supported
[    1.860283] rk_gmac-dwmac fe300000.ethernet: Normal descriptors
[    1.860291] rk_gmac-dwmac fe300000.ethernet: Ring mode enabled
[    1.860297] rk_gmac-dwmac fe300000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[   11.139092] rk_gmac-dwmac fe300000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0
[   11.178717] rk_gmac-dwmac fe300000.ethernet eth0: PHY [stmmac-0:01] driver [RTL8211E Gigabit Ethernet] (irq=75)
[   11.189571] rk_gmac-dwmac fe300000.ethernet eth0: No Safety Features support found
[   11.189610] rk_gmac-dwmac fe300000.ethernet eth0: PTP not supported by HW
[   11.190145] rk_gmac-dwmac fe300000.ethernet eth0: configuring for phy/rgmii link mode
[   14.868809] rk_gmac-dwmac fe300000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx

 

I was thinking that the line below was the problem, but I'm confused now:

 

Quote

rk_gmac-dwmac fe300000.ethernet: cannot get clock clk_mac_speed

 

armbianmonitor -u: https://paste.armbian.com/joperiqoso

Edited by Pedro Lucas
Link to comment
Share on other sites

I have a similar problem with packet loss on orange pi  rk3399 when connected on 1Gbps/Full

Armbianmonitor: http://ix.io/4ia5

[   10.377653] rk_gmac-dwmac fe300000.ethernet eth0: PHY [stmmac-0:01] driver [RTL8211E Gigabit Ethernet] (irq=84)
[   10.386477] rk_gmac-dwmac fe300000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0
[   10.396512] rk_gmac-dwmac fe300000.ethernet eth0: No Safety Features support found
[   10.396545] rk_gmac-dwmac fe300000.ethernet eth0: PTP not supported by HW
[   10.397193] rk_gmac-dwmac fe300000.ethernet eth0: configuring for phy/rgmii link mode
[   10.557743] aufs 5.15.41-20220620
[   11.825681] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[   11.831210] Bridge firewalling registered
[   12.194629] Initializing XFRM netlink socket
[   12.666036] rk_gmac-dwmac fe300000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[   12.666114] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready


root@orangepi-rk3399:~# speedtest 

   Speedtest by Ookla

      Server: DOM.RU - Yekaterinburg (id: 5844)
         ISP: Dom.ru
Idle Latency:     2.01 ms   (jitter: 0.09ms, low: 1.96ms, high: 2.13ms)
    Download:   629.96 Mbps (data used: 888.3 MB)                                                   
                 66.92 ms   (jitter: 50.00ms, low: 1.11ms, high: 875.41ms)
      Upload:     1.36 Mbps (data used: 2.5 MB)                                                   
                  1.58 ms   (jitter: 5.65ms, low: 1.22ms, high: 210.62ms)
 Packet Loss:     8.3%
  Result URL: https://www.speedtest.net/result/c/70477fc4-89f0-4b2a-b9a7-4248e25af9d7

 

 

After switching to 100 Mbps packet loss disappears:

ethtool -s eth0 autoneg on speed 100 duplex full

[  614.706367] rk_gmac-dwmac fe300000.ethernet eth0: Link is Down
[  616.829581] rk_gmac-dwmac fe300000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx

root@orangepi-rk3399:~# speedtest 

   Speedtest by Ookla

      Server: DOM.RU - Yekaterinburg (id: 5844)
         ISP: Dom.ru
Idle Latency:     2.03 ms   (jitter: 0.12ms, low: 1.86ms, high: 2.15ms)
    Download:    93.89 Mbps (data used: 42.3 MB)                                                   
                  2.90 ms   (jitter: 0.32ms, low: 2.03ms, high: 4.10ms)
      Upload:    93.80 Mbps (data used: 43.5 MB)                                                   
                  3.89 ms   (jitter: 0.60ms, low: 2.46ms, high: 8.08ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/03847e3f-6400-457f-bd6b-067b59b9c243

 

Edited by whitefox
Link to comment
Share on other sites

@whitefox, have you tested disabling the tcp-segmentation-offload and generic-segmentation-offload? If not, could you try? With the Nanopi-R4s it was the "Solution". It ins't performant, but work far best now. The packet loss is gone.

 

Here are the lines to run:

 

ethtool -K eth0 tso off
ethtool -K eth0 gso off

 

To verify: 

 

ethtool -k eth0

 

I hope it helps.

Link to comment
Share on other sites

@Pedro LucasYes, I tried this "solution" did not work for me.

 

root@orangepi-rk3399:~# ethtool -s eth0 autoneg on speed 1000 duplex full
root@orangepi-rk3399:~# ethtool -K eth0 tso off
root@orangepi-rk3399:~# ethtool -K eth0 gso off

root@orangepi-rk3399:~# ethtool -k eth0 | grep -e [tg]so
tx-gso-robust: off [fixed]
tx-gso-partial: off [fixed]
tx-gso-list: off [fixed]
root@orangepi-rk3399:~# speedtest 

   Speedtest by Ookla

      Server: DOM.RU - Yekaterinburg (id: 5844)
         ISP: Dom.ru
Idle Latency:     1.96 ms   (jitter: 0.16ms, low: 1.77ms, high: 2.14ms)
    Download:   625.19 Mbps (data used: 654.8 MB)                                                   
                 25.84 ms   (jitter: 36.44ms, low: 1.08ms, high: 457.34ms)
      Upload:     1.69 Mbps (data used: 2.7 MB)                                                   
                  1.54 ms   (jitter: 2.90ms, low: 1.15ms, high: 417.26ms)
 Packet Loss:     5.4%
  Result URL: https://www.speedtest.net/result/c/c12b33b6-1196-42d7-8d77-75180d8e1aac

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines