IP fragmentation disagreement between current and stable

Don Lewis truckman at FreeBSD.org
Tue Apr 22 10:12:37 PDT 2003


On 22 Apr, To: freebsd-net at freebsd.org wrote:

> # ping -c 1 -s 3176 192.168.101.3

> If I increase the packet size by any multiple of 1480 bytes (which
> results in the same final fragment size), I see the same symptoms.
> Interestingly, I don't see any problems if I decrease the packet size by
> 1480 bytes to 1696, everything works just fine.

I explored the vicinity of 3176 and found that 3174 works, 3175 through
3177 don't work, and 3178 works.  I'm smelling a packet length
calculation error.  In the case of a 3176 byte ping, the final fragment
will contain 222 bytes of data.  With a 14 byte Ethernet header and a 20
byte IP header, that just fits into one 256 byte mbuf.  I wonder if
there is a divide by 4 to calculate the number of words, and the
remainder is being discarded instead of being rounded up?  And why does
this problem only occur if there are three or more fragments?

Could this be a driver problem instead of a problem in the stack itself?
Both ends are fxp cards.


More information about the freebsd-net mailing list