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 [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message

Reply via email to