Subject: Re: IPF 4.1.6 -- NFS Client hangs
To: None <current-users@netbsd.org>
From: Christos Zoulas <christos@tac.gw.com>
List: current-users
Date: 03/07/2005 08:31:04
In article <20050307122916.GA19773@bseis.eis.cs.tu-bs.de>,
Juergen Hannken-Illjes  <hannken@eis.cs.tu-bs.de> wrote:
>On Sun, Mar 06, 2005 at 12:58:18PM -0500, Christos Zoulas wrote:
>> In article <20050306111758.GA8180@bseis.eis.cs.tu-bs.de>,
>> Juergen Hannken-Illjes  <hannken@eis.cs.tu-bs.de> wrote:
>> >
>> >The 28 comes from `frpr_pullup() :: plen += fin->fin_hlen;'. This function
>> >and the interesting values are appended.
>> >
>> 
>> I don't understand the logic here then. Plen is the minimum packet
>> length acceptable on function entry. In the udp case we call it
>> with the header length. Then we go and add the header length again?
>> How is that supposed to work?
>
>While it looks strange, it is ok.  The problem is/was the packet in question.
>It is an UDP fragment `64910:4@16280'.  No UDP header but 4 (four) bytes of
>data.
>
>So this time I propose the appended diff.
>
>- Return if fragment.
>
>- Return if pullup fails.  Test for short package has already been done.
>
>- Remove the no longer needed `!fin->fin_off' test.

Looks fine to me. Why don't you commit it, adding a comment as to why
it is done this way.

christos