Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Jan 2005 03:56:31 -0600 (CST)
From:      Mike Silbersack <silby@silby.com>
To:        Don Lewis <truckman@FreeBSD.org>
Cc:        net@FreeBSD.org
Subject:   Re: Slipping in the window update
Message-ID:  <20050110034422.C9716@odysseus.silby.com>
In-Reply-To: <200501100850.j0A8o6FY019623@gw.catspoiler.org>
References:  <200501100850.j0A8o6FY019623@gw.catspoiler.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On Mon, 10 Jan 2005, Don Lewis wrote:

> Now that I've looked at the above case, it looks to me like your
> suggested patch might affect the response to a legitimate duplicate SYN.
> It will definitely follow a different code path.

You're right, I neglected to handle the duplicate SYN case.

Couldn't we centralize all SYN handling right after trimthenstep6:?

We could do something there like

if (th->th_seq != tp->irs) {
 	goto dropafterack; /* Or however we handle these bad syns */
} else {
thflags &= ~TH_SYN;
th->th_seq++;
if (th->th_urp > 1)
 	th->th_urp--;
else
 	thflags &= ~TH_URG;
todrop--;
}

And then we could tear out all the two places TH_SYN is mentioned below, 
the place I copied from, and the place where there the tcp_drop() is.

If we made that change, then we'd still be doing only one check for 
TH_SYN, but the code would be a lot easier to comprehend.

Mike "Silby" Silbersack



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050110034422.C9716>