
|
[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
|

|