[openbeosnetteam] Networking Next Steps

  • From: "Axel Dörfler" <axeld@xxxxxxxxxxxxxxxx>
  • To: "Haiku Net-Team" <openbeosnetteam@xxxxxxxxxxxxx>
  • Date: Sat, 17 Jun 2006 13:44:19 +0200 CEST

Hi there,

since we're several people wanting to work on the networking stack now, 
we should lay out a plan on how we proceed, so that everyone can start 
to contribute in a useful way.

Since we are a bit under time pressure to not waste Andrew's work 
force, I think the best way to start is probably to begin with a very 
BONE like architecture. That is, I think should start with a 
replacement for bone_data and start working on the interface level and 
the stuff that brings it all together (previously called "core").

Following the route set by David's Marrow, I would also like to name 
the structures net_data, etc. (or in this case, net_buffer would do as 
well). His docs and design overviews are worth a look: 
http://www.david-reid.com/projects/marrow/design.html 
- even though I don't agree with many things of that design, he also 
discusses some BONE issues.

Anyway, there are a couple of things I don't like about BONE, and that 
is the following:
- the headers are just badly organized, there is no distinction between 
public and private, between userland and kernel headers, it's all just 
thrown together. That example shouldn't set a standard, and we 
shouldn't follow it from the start
- I would like to get rid of acronyms like "if" and "dl" and use their 
full names for structure names and fields; I would also like to remove 
the "if_" or similar prefixes in the structure fields names
- BONE relies on the bone.conf file to build the module "paths" - since 
I can hardly see a reason to ever change this (only if new modules and 
their functionality is added), I would like to hard code this 
information in the respective modules. Having said that, I think we 
should ignore this matter for now, and have the information hardcoded 
into the "core".
- I would also don't mind if protocol modules would end up in a 
different directory than the rest; the BONE directory hierarchy is 
rather flat - but that's also something we don't need to bang our head 
against now.

If no one else does, I would volunteer to start with implementing a 
naive net_data module. If Philippe wants to send me his start, I'd 
prefer to have a look at that, too (maybe we have a similar idea of 
"naive" :-)).

I'll open a new branch for the stack by simply renaming the FreeBSD 
branch, okay?
Does anyone feel like writing a script that lets you switch between the 
branch and the current version of the stack (so that a "jam haiku-
image" will build either one)? If not, I would do that as well, and 
place it in the main branch directory.

Complaints and suggestions are welcome, as always.

Bye,
   Axel.


Other related posts: