From owner-freebsd-net Thu Nov 29 9:30:54 2001 Delivered-To: freebsd-net@freebsd.org Received: from prism.flugsvamp.com (cb58709-a.mdsn1.wi.home.com [24.17.241.9]) by hub.freebsd.org (Postfix) with ESMTP id 48C4F37B429 for ; Thu, 29 Nov 2001 09:30:48 -0800 (PST) Received: (from jlemon@localhost) by prism.flugsvamp.com (8.11.0/8.11.0) id fATHRoh34259; Thu, 29 Nov 2001 11:27:50 -0600 (CST) (envelope-from jlemon) Date: Thu, 29 Nov 2001 11:27:50 -0600 From: Jonathan Lemon To: Luigi Rizzo Cc: Jonathan Lemon , =?iso-8859-1?Q?=BCB=BEJ=C2=D7?= , freebsd-net@FreeBSD.ORG Subject: Re: Does 4.4 FreeBSD kernel supports TCP simultaneous open? Message-ID: <20011129112750.S75389@prism.flugsvamp.com> References: <200111290637.fAT6bd213755@prism.flugsvamp.com> <001701c178a3$e43670e0$a22314ac@RTCN3848> <20011129100534.Q75389@prism.flugsvamp.com> <20011129083005.C19821@iguana.aciri.org> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Mailer: Mutt 1.0pre2i In-Reply-To: <20011129083005.C19821@iguana.aciri.org> Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org 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