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