Skip to content

Onboard Ethernet on Raspberry Pi 5 experiences packet loss in LAN environment #6855

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
iory123 opened this issue May 15, 2025 · 2 comments

Comments

@iory123
Copy link

iory123 commented May 15, 2025

Describe the bug

When using the onboard Ethernet interface (eth0) on Raspberry Pi 5 connected to a standard LAN (local area network), noticeable packet loss occurs—even under normal traffic conditions. This happens intermittently but consistently, even when CPU load is low and IPv6/multicast-related services are disabled. Using a USB Ethernet adapter in the same environment shows no such issue.

Steps to reproduce the behaviour

1.Connect Raspberry Pi 5 to a typical home or office LAN via onboard Ethernet (eth0), using a known-good CAT5e/6 cable.

2.Ensure other LAN devices (PCs, printers, routers) are present and active on the same network.

3.Assign the Pi a static IP (or use DHCP), verify link is up at 1000 Mbps full duplex.

4.From another LAN host, run:

 ping <raspberrypi-ip> -i 0.2  

5.On the Raspberry Pi, monitor packet stats via:

ip -s link show dev eth0  

6.Optionally capture traffic using tcpdump or tshark for later analysis.

7.Observe packet loss (e.g., >10%) and dropped RX packets.

8.Replace onboard Ethernet with a USB3-to-GbE adapter and repeat test — the issue no longer occurs.

Device (s)

Raspberry Pi 5

System

Raspberry Pi reference 2025-05-13 Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 5dabc7dc940059dfbc46af5d97b60a1e812523dd, stage4

Copyright (c) 2012 Broadcom version 26826259 (release) (embedded)

Linux RPi5 6.12.25+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.25-1+rpt1 (2025-04-30) aarch64 GNU/Linux

Logs

dmesg.log

Additional context

Issue seems related to onboard NIC driver or hardware handling of LAN broadcast/multicast. Even without high CPU usage or large traffic volume, onboard eth0 shows RX drops and packet loss, reproducible in both routed and switched LAN environments. USB adapters do not show the problem.

@nbuchwitz
Copy link
Contributor

What does sudo ethtool -S eth0 report?

@iory123
Copy link
Author

iory123 commented May 18, 2025

What does sudo ethtool -S eth0 report?

NIC statistics:
tx_octets: 34927
tx_frames: 238
tx_broadcast_frames: 3
tx_multicast_frames: 24
tx_pause_frames: 0
tx_64_byte_frames: 22
tx_65_127_byte_frames: 144
tx_128_255_byte_frames: 62
tx_256_511_byte_frames: 3
tx_512_1023_byte_frames: 4
tx_1024_1518_byte_frames: 3
tx_greater_than_1518_byte_frames: 0
tx_underrun: 0
tx_single_collision_frames: 0
tx_multiple_collision_frames: 0
tx_excessive_collisions: 0
tx_late_collisions: 0
tx_deferred_frames: 0
tx_carrier_sense_errors: 0
rx_octets: 81238
rx_frames: 684
rx_broadcast_frames: 430
rx_multicast_frames: 30
rx_pause_frames: 0
rx_64_byte_frames: 157
rx_65_127_byte_frames: 348
rx_128_255_byte_frames: 144
rx_256_511_byte_frames: 30
rx_512_1023_byte_frames: 1
rx_1024_1518_byte_frames: 4
rx_greater_than_1518_byte_frames: 0
rx_undersized_frames: 0
rx_oversize_frames: 0
rx_jabbers: 0
rx_frame_check_sequence_errors: 0
rx_length_field_frame_errors: 0
rx_symbol_errors: 0
rx_alignment_errors: 0
rx_resource_errors: 0
rx_overruns: 0
rx_ip_header_checksum_errors: 0
rx_tcp_checksum_errors: 0
rx_udp_checksum_errors: 0
q0_rx_packets: 684
q0_rx_bytes: 68926
q0_rx_dropped: 0
q0_tx_packets: 236
q0_tx_bytes: 34121
q0_tx_dropped: 0

PING 192.168.33.1 (192.168.33.1) 56(84) bytes of data.
64 bytes from 192.168.33.1: icmp_seq=1 ttl=64 time=3.69 ms
64 bytes from 192.168.33.1: icmp_seq=2 ttl=64 time=2.01 ms
64 bytes from 192.168.33.1: icmp_seq=3 ttl=64 time=2.19 ms
64 bytes from 192.168.33.1: icmp_seq=4 ttl=64 time=2.39 ms
64 bytes from 192.168.33.1: icmp_seq=5 ttl=64 time=2.09 ms
64 bytes from 192.168.33.1: icmp_seq=6 ttl=64 time=2.08 ms
64 bytes from 192.168.33.1: icmp_seq=7 ttl=64 time=2.51 ms
64 bytes from 192.168.33.1: icmp_seq=9 ttl=64 time=1.38 ms
64 bytes from 192.168.33.1: icmp_seq=10 ttl=64 time=2.16 ms
64 bytes from 192.168.33.1: icmp_seq=11 ttl=64 time=2.28 ms
64 bytes from 192.168.33.1: icmp_seq=12 ttl=64 time=2.35 ms
64 bytes from 192.168.33.1: icmp_seq=13 ttl=64 time=2.08 ms
64 bytes from 192.168.33.1: icmp_seq=15 ttl=64 time=2.14 ms
64 bytes from 192.168.33.1: icmp_seq=16 ttl=64 time=2.26 ms
64 bytes from 192.168.33.1: icmp_seq=17 ttl=64 time=2.27 ms
64 bytes from 192.168.33.1: icmp_seq=18 ttl=64 time=2.06 ms
64 bytes from 192.168.33.1: icmp_seq=19 ttl=64 time=2.25 ms
64 bytes from 192.168.33.1: icmp_seq=21 ttl=64 time=1.77 ms
64 bytes from 192.168.33.1: icmp_seq=22 ttl=64 time=2.28 ms
64 bytes from 192.168.33.1: icmp_seq=23 ttl=64 time=6.19 ms
64 bytes from 192.168.33.1: icmp_seq=24 ttl=64 time=2.43 ms
64 bytes from 192.168.33.1: icmp_seq=25 ttl=64 time=2.03 ms
64 bytes from 192.168.33.1: icmp_seq=27 ttl=64 time=2.46 ms
64 bytes from 192.168.33.1: icmp_seq=28 ttl=64 time=2.43 ms
64 bytes from 192.168.33.1: icmp_seq=29 ttl=64 time=1.96 ms
64 bytes from 192.168.33.1: icmp_seq=30 ttl=64 time=2.12 ms
64 bytes from 192.168.33.1: icmp_seq=31 ttl=64 time=2.27 ms
64 bytes from 192.168.33.1: icmp_seq=33 ttl=64 time=1.96 ms
64 bytes from 192.168.33.1: icmp_seq=34 ttl=64 time=2.61 ms
64 bytes from 192.168.33.1: icmp_seq=35 ttl=64 time=1.88 ms
^C
--- 192.168.33.1 ping statistics ---
35 packets transmitted, 30 received, 14.2857% packet loss, time 34091ms
rtt min/avg/max/mdev = 1.377/2.351/6.185/0.799 ms

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants