[Barrelfish-users] net-test -> redirect_pause not supported anymore

李才 licai at pku.edu.cn
Wed May 8 14:30:48 CEST 2013


Hi Pravin,

   Thanks for your reply!
   I need to create new domains and inherit the listening socket and then process it in the new domain.

   I am looking into the code about the redirect stuff in the history code. And I will try both methods you suggested. 
   Thanks again.

Regards,
Richard

----- Original Message -----
From: Pravin <pravin at inf.ethz.ch>
To: 李才 <licai at pku.edu.cn>
Cc: barrelfish-users at lists.inf.ethz.ch, Chothia Zaheer <zchothia at student.ethz.ch>, Kornilios Kourtis <kornilios.kourtis at inf.ethz.ch>
Sent: Mon, 06 May 2013 23:43:43 +0800 (CST)
Subject: Re: [Barrelfish-users] net-test -> redirect_pause not supported anymore

Hi Richard,

Most of the ``net-test`` code was written to test the working of a
socket interface under inheritance of sockets from one process to
other (similar to inheritance when when new process is forked in *nix
environment).  This socket inheritance was implemented as a hack for
one of the project we were working on around year ago.  Currently,
Barrelfish is moving away from Posix-style socket interfaces and hence
socket inheritance has been ignored for a while.

So, if you want to get the ``net-test`` working just to test the basic
networking, then it should be doable by removing the code which calls
``spawn_child``.  But if you need functionality to create new domains
(ie. processes) which should inherit the listening socket from parent
process then it will be more difficult, and will involve
re-introducing few of the old hacks related to rpc ``redirect_pause``
and ``redirect`` from the code-history.

If you need a way to distribute connections between different domains
(which is what socket inheritance achieves in this case), you may find
it easy to do that by inserting specific filters directly into the
driver to classify specific flows.  This will need some hacking in
``netd`` and the ``net_queue_manager`` but it will be much cleaner
solution.

I hope this helps.

Regards,
Pravin


On Mon, May 6, 2013 at 2:59 PM, 李才 <licai at pku.edu.cn> wrote:
> Hi All,
>
>     The net-test does not work. Does any one know why? Is there any way to make it work?
>
>     I found that the net-test calls the redirect_pause function, which is not supported anymore.
>
>     This is the call stack of the net-test:
>     main -> do_server -> spawn_child ->
>     spawn_setup_fds ->     copy_lwip_fd ->
>     lwip_serialise_sock -> netconn_pause ->
>     TCPIP_APIMSG(&msg) //msg.function = do_pause ->
>     tcp_pause -> idc_pause_tcp -> idc_pause ->
>     net_ports_rpc.vtbl.redirect_pause //commented
>
>     And the ./if/net_ports.if has already commented "rpc redirect" and "rpc redirect_pause".(Why it is commented, anything wrong with it? I can not find the implemetation of functions. Where can I find it?)
>
>     What can I do to make the net-test work?
>
>     Thanks so much!
>
> Regards,
> Richard
>
> _______________________________________________
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users




More information about the Barrelfish-users mailing list