jkmahan wrote:
As I recall there was an errata covering the need to pad to 4 bytes. (it's been a while since I last looked at this..)
Nothing I can find in the relevant device errata:
http://www.freescale.com/files/32bit/doc/errata/MCF5485DE.pdf?fpsp=1&WT_TYPE=Errata&WT_VENDOR=FREESC...
Nothing obvious in the Reference Manual either. It is BIG!
Questions about ethernet padding have been around for a long time, as long as Ethernet itself:
http://fixunix.com/tcp-ip/66823-ethernet-padding.html
http://groups.google.com/group/comp.protocols.tcp-ip/browse_thread/thread/171baf14955bcfa5/
Ethernet packets must be padded out to at least 60 bytes (53 with the checksum). There's nothing that says you can't pad all the way up to 1400 or 1500. All devices should ignore the extra padding, but you might find buggy devices where someone didn't understand the specs and didn't test properly.
I've found bugs in 802.3 packets with SNAP formatting (AppleTalk). One box always sent packets rounded up to an even number of bytes, but put ODD lengths in the Ethernet Length field. Some receivers dropped these packets. The spec isn't clear on this one, but nobody is still using 802.3 so this doesn't matter now.
If Wireshark is the "Application" and it isn't getting the "funny packets" then it is most likely that the checksum isn't valid for the packet being sent.
If you've got some low-level "Application" and it isn't working, make sure you're handling received padding.
Make sure you distinguish the IP packet length field (which says how much valid IP data is in the frame) from the ethernet packet data length. The only relationship is that the Ethernet packet must be long enough to hold the IP packet, but can be longer (that's the definition of the padding). The checksum is generated by the hardware, and should be OK.