[openbeosnetteam] One small step for net team, but... but one small step forward?

  • From: Philippe Houdoin <philippe.houdoin@xxxxxxx>
  • To: openbeosnetteam@xxxxxxxxxxxxx
  • Date: Wed, 13 Nov 2002 16:02:19 +0100 (CET)

Small changes on the net team front.

RECENT CHANGES DONE:

a) kernel and userland driver conflicting on /dev/net/stack entry

  The kernel stack middleware driver still publish /dev/net/stack.
  The userland stack middleware driver now publish /dev/net/server.
  No more conflict.

b) libnet.so

  The library interface with the middleware driver specified by 
  the NET_STACK_DRIVER_PATH, if any, /dev/net/stack otherwise.
  This make libnet.so switchable at runtime between the kernelland stack 
  and the userland stack debug platform, net_server-like, simply by:

  $ export NET_STACK_DRIVER_PATH=/dev/net/server

c) libnetapi.so

  BNetAddress, BNetBuffer and BNetDebug are there, and now build.
  Corresponding headers included.

d) command line apps all build (again)

  Jamfiles appear, then they build. That's magic.
  However, for both ping and traceroute, I've to hack a howmany() macro 
  over the _howmany() one defined insys/select.h. Who is right here, 
  howmany() or _howmany()?

e) network modules

  I start to remove as much as possible of userland-specific code 
  as the userland net_server provide all modules API support from 
  userland too, modules no need anymore to load by themselves 
  sub-modules.
  Some small code cleanup, in the process.


PENDING CHANGES:

a) make the userland stack debug platform run ASAP.

  My main focus. So that we could see internal code running/crashing, 
  learn how it (expect to) works, understand it, and then make 
  it really works as expected. Or dump it and rewrite it.
  Hopefully, only partially.
  
  As a net_server is already there, and build, it's mostly 
  a matter of building network modules as userland add-ons too, now.
  From same source code.
  What I'm trying at home is, for each module, to symlink all source code 
  into corresponding directory under src/tests/add-ons/net_server at 
  build time (RelSymlink jam rule?), then build with the "Addon" rule 
  a userland add-on, without forgotten to link it against our net_server, 
  which exported the module API and some other KernelExport.h stuff expected 
  by our network modules code.

  Unfortunnatly, currently:
  - I couldn't manage to (re)create the symlink at build time 
  *before* running the "Addon" rule on them. 
  Please, Jamfile guru(s), help me! :-)
  - network modules code are not yet buildable as userland add-ons.

b) more and more code cleanup

  - Continue to rename cryptic function names here and there.
  s/function/macro/ on previous line.
  - Locking where it's lacking. Or the reverse!?! :-)
  - Make inter-module shared variables really..., well, shared!
  - Reduce usage of global variables when possible, serialize access to them 
  otherwise

c) libnetapi.so

  Still incomplete: no BNetEndpoint yet.
  Scott, when do you estimate you could submit this?
  Oh, BTW, you're now in the OpenBeOS contributors list on the web site
  ;-)

  NetBuffer class is NOT binary compatible. I thought into fixing this 
  myself, but can't find a quick BC HOWTO to follow. Where is it, again?

And that pretty much all for today.

-Philippe

Other related posts: