Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Nov 2001 11:27:50 -0600
From:      Jonathan Lemon <jlemon@flugsvamp.com>
To:        Luigi Rizzo <rizzo@aciri.org>
Cc:        Jonathan Lemon <jlemon@flugsvamp.com>, =?iso-8859-1?Q?=BCB=BEJ=C2=D7?= <cfliu@realtek.com.tw>, freebsd-net@FreeBSD.ORG
Subject:   Re: Does 4.4 FreeBSD kernel supports TCP simultaneous open?
Message-ID:  <20011129112750.S75389@prism.flugsvamp.com>
In-Reply-To: <20011129083005.C19821@iguana.aciri.org>
References:  <200111290637.fAT6bd213755@prism.flugsvamp.com> <001701c178a3$e43670e0$a22314ac@RTCN3848> <20011129100534.Q75389@prism.flugsvamp.com> <20011129083005.C19821@iguana.aciri.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Nov 29, 2001 at 08:30:06AM -0800, Luigi Rizzo wrote:
> On Thu, Nov 29, 2001 at 10:05:34AM -0600, Jonathan Lemon wrote:
> > On Thu, Nov 29, 2001 at 03:03:04PM +0800, ¼B¾JÂ× wrote:
> > > Thanks...I know where my problem is now...It's indeed   a duplicate SYN.
> > > 
> > > By the way, the tcp_input function is so long and large and there are
> > > several goto statements which make reading the code even more difficult. Is
> > > this intened to be like this? Even with Steven's TCP/IP Vol.2, it took me
> > > three whole days to draw a Visio flow chart of this function. Has anybody
> > > ever considered of reorganizing this module?
> > 
> > I don't believe so; the code was originally designned to avoid function 
> > calls, and is essentially a couple of large switch statements.  The flow
> > pretty much mirrors the original RFC, and shouldn't be too hard to follow.
> 
> let's be honest, it's a horrible piece of code from a sw engineering
> point of view.

No argument there.

 
> > I'd be leery of rewriting the code just for the sake of rewriting; chances
> > would be pretty good that you'd introduce a subtle bug in one way or the
> > other.
> 
> on the other hand, chances are that there are already
> subtle bugs with all the modifications that have been applied
> these years (TTCP, newreno etc.). No later than yesterday there was
> a long thread on this issue, and Garret has also some traces which
> according to him evidence patologies.

Yes, I'm currently digging into those traces now.  :-(


> You have been there, Jonathan, so you should known well how hard is
> to make even small modifications to the existing code without
> being afraid of breaking a lot of things.
> 
> I think a rewrite of FreeBSD's TCP would be extremely needed and welcome,
> however is such a large effort that i doubt anyone has the time and energy
> to dedicate to this task.

Well, I do have designs on making things better; but as you point out,
before anyone should even think about changing things, they need a good
understanding of how the code works.  Wrapping your head around the entire
TCP/IP stack is not an easy task and I'm not even going to claim that I've
successfully done this.  :-)

All the various #ifdefs scattererd over the code are absolutely sick;
they fairly scream out for a sensible rewrite. However, from my point 
of view, if I'm going to rewrite things, there should be functional
improvements as well, not just rearranging what we have in a different
fashion.  I don't feel quite ready for this... yet.
--
Jonathan

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




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