AnsweredAssumed Answered

关于imx6d千兆网络丢包的问题

Question asked by 其东 刘 on Feb 16, 2020
Latest reply on Feb 27, 2020 by Rita Wang

大家好,我使用的硬件平台是:imx6q。Linux操作系统版本是Linux 3.14.52.千兆网卡芯片信号是ksz9031.

在我的开发过程中,发现在千兆网的网速下,接收数据时,存在着严重的丢包。

丢包信息如下:

root@imx6qsabresd:/# ifconfig -a
eth0 Link encap:Ethernet HWaddr FA:B8:00:CF:64:53
inet addr:10.4.5.20 Bcast:10.4.5.255 Mask:255.255.255.0
inet6 addr: fe80::f8b8:ff:fecf:6453/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:252545 errors:19771 dropped:3 overruns:19771 frame:19771
TX packets:113498 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:368780256 (351.6 MiB) TX bytes:8179711 (7.7 MiB)

 

我们在接收300M收据时,就丢失了19000个包左右。我发现官网的IMX6Q-sabresd开发板,也存在着同样的丢包现象。请问这个问题有解决的办法吗?

我看了一下官网的信息,官网提到了这样一个连接:https://boundarydevices.com/i-mx6-ethernet/ 

我查看上面的链接后,我发现在我的Linux版本里面。已经存在了pause frame机制。信息如下:

root@imx6qsabresd:/# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: external
Auto-negotiation: on
Supports Wake-on: g
Wake-on: d
Link detected: yes

 

针对丢包的这个问题,请问有解决的办法吗?

Outcomes