package vmnet

  1. Overview
  2. No Docs
Userlevel network bridging on MacOS X

Install

Dune Dependency

Authors

Maintainers

Sources

v1.0.2.tar.gz
sha256=cb5b28c8db68b2dfa529c886087899ea37d23a74d64d5f2b58cab18381cde479
md5=977dfa93f1f117e26d541aa4624d132e

Description

MacOS X 10.10 (Yosemite) introduced the somewhat undocumented vmnet framework. This exposes virtual network interfaces to userland applications. There are a number of advantages of this over previous implementations:

  • Unlike tuntaposx, this is builtin to MacOS X now and so is easier to package up and distribute for end users.
  • vmnet uses the XPC sandboxing interfaces and should make it easier to drop a hard dependency on running networking applications as root.
  • Most significantly, vmnet supports bridging network traffic to the outside world, which was previously unsupported.

These OCaml bindings are constructed against the documentation contained in the <vmnet.h> header file in Yosemite, and may not be correct due to the lack of any other example code. However, they do suffice to run MirageOS applications that can connect to the outside world. The bindings are also slightly complicated by the need to interface GCD thread pools with the OCaml runtime, so please report any instabilities that you see when using this interface as a consumer.

There are two libraries provided:

  • Vmnet is the raw OCaml binding to the vmnet framework, using OCaml preemptive threads to handle synchronisation.
  • Lwt_vmnet uses the Lwt framework to provide a monadic asynchronous I/O interface at a higher level.

Most users should use Lwt_vmnet to handle guest traffic.

Published: 23 Dec 2015

Dependencies (9)

  1. ocamlbuild build
  2. cstruct >= "1.4.0" & <= "1.9.0"
  3. lwt >= "2.4.3" & < "4.0.0"
  4. ipaddr >= "2.5.0" & < "3.0.0"
  5. sexplib < "113.24.00"
  6. type_conv build
  7. camlp4 build
  8. ocamlfind build
  9. ocaml

Dev Dependencies

None

Used by (1)

  1. mirage-net-macosx < "1.6.0"

Conflicts

None

OCaml

Innovation. Community. Security.