[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Manager.connect possible implementation



On Mon, Jul 09, 2012 at 10:40:12AM +0100, Dave Scott wrote:
> Hi,
> 
> ...
> > I was thinking that an Interface module (to match the ifconfig-style
> > configuration on UNIX) would provide an easy mapping to/from UNIX.
> > 
> > Dave: is there anything useful we can grab from XCP to act as the UNIX
> > version of this library? Networkd?  The Mirage version will be the
> > current
> > code that launches all the relevant protocol threads.
> 
> The networkd might be useful -- it is able to configure bridges,
> openvswitch instances, IP addresses etc. It might be worth ripping out
> (err sharing) some of the internals if we refactored them into a
> library.

Is this the correct place to start looking?
https://github.com/xen-org/xen-api/blob/master/ocaml/network/networkd.ml

Looks like most of the logic is in Network_utils:
https://github.com/xen-org/xen-api/blob/master/ocaml/network/network_utils.ml

It's obviously very XCP-Linux-specific at the moment. I imagine that
functorising the DHCP module to accept either the Mirage DHCP client or an
external program would be a good start.  It also depends on the XCP stdlib
which I'd like to avoid a dependency on (since it'll never squeeze into a
microkernel with all the UNIX dependencies).

The OVS interface could be matched by the Mirage OpenFlow library.  In
general, this is a very useful exercise to firm up the differences between
what is provided in UNIX userspace, and directly via the library version.

It does bring up the question of what our inter-process communications
interface should look like. The rpc-light module, or something else? I
really like the look of:
https://github.com/andrenth/release
...which is an Lwt/UNIX multiprocess framework. Crucially, it uses
Lwt_bytes (which are raw memory pages that are compatible with Io_page),
and so would be a very smooth transition to/from the Mirage exokernel to a
normal UNIX binary.

-- 
Anil Madhavapeddy                                 http://anil.recoil.org



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.