fixing out of order first fragment processing?

Maxim Konovalov maxim at macomnet.ru
Wed Jul 28 11:48:31 PDT 2004


Hello,

On Thu, 22 Jul 2004, 14:34-0700, othermark wrote:

> Hi,
>
> This is one of those obscure, yet well known issues in FreeBSD,
> some network stacks, like Linux, send the udp/icmp fragment
> first (if multiple frags -- in reverse order), then the orginal
> packet with the header.
>
> In -current, we still cannot process this simple fragged icmp-echo
> request from a Linux host.  For example, 'ping -c 1 -s 1500 <freebsd ip>'.
>
> FreeBSD discards the frag(s) and when it sees the initial packet with
> header waits for the frags.
>
> So two questions:
>
> 1. is there a gnats pr?  I tried various searches with no success.

AFAIK no.

> 2. are there workarounds/patches?

First of all, I can't reproduce this behaviour.  "ping -c 1 -s 4500 freebsd"
from the linux produces a pseudo tcpdump liek below:

linux > freebsd: icmp (frag 64465:68 at 4440)
linux > freebsd: icmp (frag 64465:1480 at 2960+)
linux > freebsd: icmp (frag 64465:1480 at 1480+)
linux > freebsd: icmp: echo request (frag 64465:1480 at 0+)
freebsd > linux: icmp: echo reply (frag 6529:1480 at 0+)
freebsd > linux: icmp (frag 6529:1480 at 1480+)
freebsd > linux: icmp (frag 6529:1480 at 2960+)
freebsd > linux: icmp (frag 6529:68 at 4440)

Linux kernel is 2.4.20-ac2, FreeBSD is 5.2.1-RELEASE.  What are yours?
Could you provide netstat -sp ip | grep frag snippet from the FreeBSD
box?  Clear the stats (netstat -zs) before experiments is a good idea
as well.

-- 
Maxim Konovalov


More information about the freebsd-current mailing list