I'm attempting to debug a hardware issue where an embedded board transmits seemingly faulty ethernet packets.

I connected the embedded board to a debugging machine's ethernet port to listen to the packets that the faulty board is sending.

When the embedded board transmits a packet, I see the packet leaving on the transmitter's RGMII TX... lines (between MAC and PHY), and I see a packet arriving on the receiver's RGMII RX... lines (between PHY and MAC).

However, tcpdump running on the receiving machine shows nothing, and ifconfig on the receiving machine shows 0 bytes received.

I'm assuming that the packets are invalid (bad ethernet frame header or checksum?) so the MAC simply discards them and doesn't forward them to Linux. The packets are not forwarded by a dedicated ethernet switch either.

Is there a way to see those invalid packets / packet fragments in tcpdump, Wireshark or similar?

  • I don't know how to see the data, but you should at least have statistics on the numbers of errors in ifconfig. You might get some debug info from the driver if you do ethtool -s msglvl rx_err on eth0, or by setting hardware checksum off, ethtool -K rx-checksumming off eth0. I have not tried either of these. – meuh Mar 31 '17 at 17:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.