[openbeosnetteam] Re: Dial-Up

  • From: Philippe Houdoin <philippe.houdoin@xxxxxxx>
  • To: openbeosnetteam@xxxxxxxxxxxxx
  • Date: Tue, 08 Apr 2003 14:19:38 +0200 (CEST)

En réponse à Waldemar Kornewald <Waldemar.Kornewald@xxxxxx>:

> > "Nathan Whitehorn" <nathan.whitehorn@xxxxxxxxxxx> wrote:
> > > > Which might be a good idea anyway :-/
> > > Heh.
> >
> > Yup.
> 
> Then, why not rewrite it? :)

Well, it's what I've start recently. Not all need to be rewrite, but 
the core stack is the main issue here.

> I would have enough time to learn PPP/-oE and I could help with some
> ideas or suggestions. Maybe even some coding...
> What else is wrong with the implementation? 

Code is (artificially) difficult to understand, mostly because of his BSD stack 
root: very short variable and struct names, marcos everywhere and, worst, this 
code isn't multi-thread safety. MT-safety is something we all should have in 
mind at design time, as it's very difficult to add afterward, especially when 
the code is very unfriendly to understand.

A second error we made is to under-estimate the importance of a userland stack 
debug platform that will help coders understand (thanks visual source debugger) 
how the stack works without diving into KDL and the try-crash-reboot hell.

I think the userland stack debug platform I've wrote (how slowly, sorry guys, 
real life issues sometimes, you know...) last month is starting to work as I 
expect, and allow to write stack modules buildable also as kernel modules.
You'll find this stack debug platform in his current state here:
http://philippe.houdoin.free.fr/phil/beos/openbeos/new_net_stack-2003-04-07.zip

I still need to commit this in CVS, but it's still based on BeIDE project 
files. I can move it to makefiles-based if you want, but I rather would move to 
jamfiles, if someone can help me resolve this issue:
The stack debug platform export the userland modules emulation too (see 
userland_modules.cpp), and stack modules, when build as userland add-ons, 
should be linked against this app via a 'APP' named image file so that the 
[Open]BeOS runtime linker could resolve the modules API links. 

This issue doesn't exist when these modules are build as real kernel modules, 
as the kernel addons build rule already link code against kernel...

> Is it not fast enough?

Before the speed issue, on which we don't have any numbers yet, there is the 
stability issue, in particular the multi-thread safety one.

> I do not even know how protocol/interface modules are implemented...Is
> it similiar to BONE?

Not enought for my personnal taste, but there is some common ideas, yes.
However, the libnet.so <-> /dev/net/stack <-> kernel stack <-> protocols 
modules <-> interfaces modules <-> network card driver is similar to BONE 
design.

> A small API documentation would be useful.

Give a look at /current/docs/develop/net/index.html.
It's very uncomplete, but still a start point anyway.

-Philippe Houdoin, team leader.

Other related posts: