em driver sending bad packet lengths

Kris Kennaway kris at FreeBSD.org
Sun Oct 14 02:50:54 PDT 2007


Kris Kennaway wrote:
> I am seeing the em driver on 7.0 sending packets with bad UDP (and 
> apparently sometimes IP) packet length fields.  This is from UDP NFS 
> traffic (90MB/sec over gige).  These packets are dropped on reception by 
> the kernel and counted.

I think this is due to rollover of the ip id combined with fragmented 
packet loss.  When a fragment is missing the packet is queued in the 
hope it will arrive later, but we keep it queued for 30 seconds!  In 
that time the server may roll over the 16 bit ipid thousands or tens of 
thousands of times, and if those new packets are fragmented they will be 
recombined with the queued packets.  The recombined hybrid packets will 
mostly have the wrong length or checksum (but 1/65536 of them will 
randomly have the correct UDP checksum, so this is not just a cosmetic 
issue).

Kris


More information about the freebsd-net mailing list