tech-net archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: patch for duplicate tcp acks
In article <2589BE5ABD3B654682A529F416483CD809F5F879%G4W3227.americas.hpqcorp.net@localhost>,
Charlet, Ricky <ricky.charlet%hp.com@localhost> wrote:
>Howdy,
>
> I was suffering duplicate tpc acks. It seems trivial to
>duplicate.... Any time I receive a non-zero len tcp packet, I ack it
>twice. Note that I'm using a window scale of 3 and that may or may come
>into play.
>
> Anyway, did some debugging and some comparing. I found a patch
>for this problem in freebsd.
>https://svnweb.freebsd.org/base/head/sys/netinet/tcp_output.c?r1=216758&r2=220794
>
>
>Here is how I applied it to netbsd (diff included below). It works for
>me. But I'm on an embedded system with a funky compiler and modified
>source. I'm giving this patch to the list in hopes that someone will
>feel like compiling / testing it in a truer netbsd kernel.
Why didn't you just apply the FreeBSD patch? Are you trying to fix something
else? Can you please file a PR about this, or do you mind if I file one
using this information?
thanks,
christos
>
>
>
>
>Index: src/sys/netinet/tcp_output.c
>===================================================================
>RCS file: /cvsroot/src/sys/netinet/tcp_output.c,v
>retrieving revision 1.173
>diff -r1.173 tcp_output.c
>1023,1024c1023,1038
>< long adv = min(win, (long)TCP_MAXWIN << tp->rcv_scale) -
>< (tp->rcv_adv - tp->rcv_nxt);
>---
>> long adv;
>> int oldwin;
>>
>> adv = fp_min(win, (long)FP_TCP_MAXWIN << tp->rcv_scale);
>> if (SEQ_GT(tp->rcv_adv, tp->rcv_nxt)) {
>> oldwin = (tp->rcv_adv - tp->rcv_nxt);
>> adv -= oldwin;
>> } else
>> oldwin = 0;
>>
>> /*
>> * If the new window size ends up being the same as the old
>> * size when it is scaled, then don't force a window update.
>> */
>> if (oldwin >> tp->rcv_scale == (adv + oldwin) >> tp->rcv_scale)
>> goto dontupdate;
>1030a1045
>> dontupdate:
>
>
>
>--
>Ricky Charlet
>Software Dev / Routing Dude: Aries team, Roseville CA
>ricky.charlet%hp.com@localhost<mailto:ricky.charlet%hp.com@localhost>
>USA: 916.785.2090
>
>
>
>
Home |
Main Index |
Thread Index |
Old Index