[openbeosnetteam] Re: porting FreeBSD's new netstack

  • From: "Philippe Houdoin" <philippe.houdoin@xxxxxxx>
  • To: openbeosnetteam@xxxxxxxxxxxxx
  • Date: Wed, 06 Oct 2004 17:07:21 +0200 CEST

> Maybe NewStack is just to make us devs happy because we always wanted 
> to 
> write our own netstack? 

That wasn't my feeling when I commit the src/tests/kits/net/new_stack 
subtree.
I guess new_stack started after some discussions here about more 
modularity and 
because of messness of current core and protocols code, PPP putted 
aside ;-)

> Philippe, do we really need a new stack in R2 or 
> should we work together with the FreeBSD community so their stack 
> evolves into our NewStack's direction? 

We need nothing for R2 but having a working stack by R1 :-)

I fear it'll be hard to work with the FreeBSD community not because of 
human factor (I'm sure they're smart guys!) but because of technical 
issues. AFAIK, their stack is a monolithic stack where pretty much is 
builtin. This make thing easier for them than for us: we want a modular 
stack. 
Maybe we're wrong here, maybe we should have just a monolithic add-ons/
kernel/network/stack kernel module instead, basicly a port of latest 
BSD stack. That would make easy to hide the inter-depencies of 
protocols and stack core.

I don't think it'll be easy to modularize their stack code without huge 
code refactory. Maybe I'm wrong here too and the latest BSD stack is 
already highly modular, feel free to correct me.

> I did not help porting the old stack, so I cannot say how much work a 
> new port means, but I know the current source and it will be damn-
> hard 
> to get a stable stack, especially because nobody of us really knows 
> the 
> BSD stack and and thus we do not know if placing a lock somewhere 
> might 
> lead to a dead-lock somewhere else.

Agreed.

> Also, we really need IPv6 which we currently do not have. It could 
> even 
> simplify porting apps: most of the BIND porting work was #ifdef'ing 
> out 
> the IPv6 code. ;)

Well, IPv6 is not mandatory for R1 at least, I prefer a stable IPv4 
only stack than an unstable-too-quickly-ported IPv4 & v6 stack.
In fact, I prefer a stable and well-known stack code but limited than 
any other option!
Hence the new_stack spin-off: try to understand, step by step. But time 
vanished soon after I made the first steps :-(
 
> I want to know what the people who would help with the port have to 
> say 
> (Philippe? :). We need at least two net-developers working on the 
> port.

Sounds like after more than one year nobody (and that's include me 
obvioulsy) have the will to continue with the current code.
So, maybe it's a signal we should not ignore, meaning it's time to drop 
the current stack code and start over.

By "stack code", I mean all src/add-ons/kernel/network/core|protocols|
interfaces/*.

But first, we must choose what road we want to follow:
- port as much and simply as possible the FreeBSD stack code
- or stay with the modular stack design, taking inspiration from 
FreeBSD's stack to code modules

- Philippe
 

--
Fortune Cookie Says:

TAURUS (Apr 20 - May 20)
        You are practical and persistent.  You have a dogged
        determination and work like hell.  Most people think you are
        stubborn and bull headed.  You are a Communist.

Other related posts: