Go to the FreeLists Home Page Home Signup Help Login
 



[openbeosnetteam] || [Date Prev] [05-2006 Date Index] [Date Next] || [Thread Prev] [05-2006 Thread Index] [Thread Next]

[openbeosnetteam] Re: Some quick questions

  • From: Philippe Houdoin <philippe.houdoin@xxxxxxx>
  • To: openbeosnetteam@xxxxxxxxxxxxx
  • Date: Tue, 30 May 2006 17:09:54 +0200
Hi Oliver,

So, you're the student our fearless leader hire for the summer to work on the
net stack!?
Just kidding.
Anyway,

> I can't say much, but on my machines,
> there seem to be two persistent problems:
>
> 1. there is a notion towards *everything* only working once. It's very
> obvious when using ping, but whenever I tried using a webbrowser, an
> ftp-client, wget or telnet, I only ever had one chance. The webbrowser
> (links) loads the first page ok, but whenever I click on a link to get to
> the next page, the browser tries but fails to get it (hangs during
> connect).
> When the stack has reached that state, networking is hosed properly, no
> connects at all. Maybe a problem at IP-layer, but that's a wild guess...

Reproductible here too. Something break as soon as you close a socket, or
something along this path. I never find time to follow the white rabbit to see
how deep is his dark hole... hum, I mean how dark is the issue here.

> 2. connections perform slow at start and then get worse soon. Compared to
> R5-netserver being able to download a 2 MB file at 250KB/sec, wget on haiku
> (the same binary) starts off at 22KB/sec and then degrades rapidly until it
> reaches a rate of less than 50bytes/sec (after having downloaded about
> 300-400KB).

Ouch. Well, clearly profiling and memory leaks hunt was not even blipping on the
team radar, not before we find more taskforce and major bugs were fixed.

> Tomorrow, I'd like to get the userland-netstack running on BONE, but I
> haven't been able to build it today (executing 'jam -q install-networking'):

Huh?
I didn't check, but AFAIK the userland version of the network stack don't build
with the install-networking pseudo-target anymore, as I'm not sure it was
updated to work again after the build system redesign...

Anyway:

1) First, build the net_server_driver

$ cd src/add-ons/kernel/drivers/net/stack
$ jam net_server_driver

2) Second, build the userland net_stack_tester app and the network stack modules
in their userland version (aka plain add-ons, not kernel add-ons):

$ cd src/tests/add-ons/kernel/network
$ jam

It will build the app locally (stupid me!), named net_stack_tester, and all
major netstack components will be placed under
generated/objects/haiku/x86/release/tests/add-ons/kernel/network/.

You should create a symlink near your net_stack_tester so the userland modules
emulation could find and load them:

$ mkdir add-ons
$ cd add-ons
$ ln -s ...../generated/objects/haiku/x86/release/tests/add-ons/kernel/network
obos_network

3) first build libsocket.so, libbind.so & usual net userland tools.

4) Before running them:
- start the userland stack, by launching net_stack_tester
- Tell libsocket.so to use the net_server_driver, not, the default
net_stack_driver to talk with the network stack:

  $ export NET_STACK_DRIVER=/dev/net/server

- run your tool(s)

5) Come back here in hurry and yiel at me that these instructions doesn't work
at all.

> - trying to build with target=bone, jam chokes when trying to build arp,
> route and traceroute which require sysctl link_* and more symbols that
> aren't provided by BONE. Is there some compatibility lib that should be
> used?

Nope. Our implementation of libsocket.so implement sysctl() call. I hate this
BSDish import, but it was needed to ease the port of some low lewel tool like
route and arp IIRC. Could/should be replace by a more generic, wide way to
communicate with network stack components from userland, as I've suggested in a
previous post (see talk about using KMessage...)

- Philippe





[ Home | Signup | Help | Login | Archives | Lists ]

All trademarks and copyrights within the FreeLists archives are owned by their respective owners.
Everything else ©2007 Avenir Technologies, LLC.