albatross/src/vmm_unix.mli
Hannes Mehnert 65693ea188 revise the "--net=yyy" argument to (optionally) contain a service:bridge
it used to only contain service, and used the same string for the bridge. This
is not flexible enough to run off-the-shelf unikernels (configured for bridge
"service" and "management" on multi-homed servers). The old behaviour is the
new default (i.e. "--net=service" creates and attaches a tap device to bridge
"service", and passes "--net:service=tapYY" to the solo5 tender). But it is more
flexible now: "--net=service:other-bridge" will create a tap device attached to
"other-bridge" and pass "--net:service=tapYY" to the tender. This way, there's
no need to match bridge names on the actual server with network device names of
the unikernels.

NB: this is (mostly) backwards-compatible: the on-disk data structures are
versioned (and the version is bumped with this PR), an old albatross client can
send "create" commands to a new server. But a new client will get a parse error
from an old server - which is fine taking into consideration the deployment
base.
2020-03-25 16:09:23 +01:00

38 lines
982 B
OCaml

(* (c) 2017 Hannes Mehnert, all rights reserved *)
open Rresult
open Vmm_core
type supported = FreeBSD | Linux
val uname : supported Lazy.t
val set_dbdir : Fpath.t -> unit
val check_commands : unit -> (unit, [> R.msg ]) result
val prepare : Name.t -> Unikernel.config ->
((string * string) list, [> R.msg ]) result
val exec : Name.t -> Unikernel.config -> (string * string) list ->
(string * Name.t) list -> (Unikernel.t, [> R.msg ]) result
val free_system_resources : Name.t -> string list -> (unit, [> R.msg ]) result
val destroy : Unikernel.t -> unit
val close_no_err : Unix.file_descr -> unit
val create_block : Name.t -> int -> (unit, [> R.msg ]) result
val destroy_block : Name.t -> (unit, [> R.msg ]) result
val find_block_devices : unit -> ((Name.t * int) list, [> R.msg ]) result
val dump : Cstruct.t -> (unit, [> R.msg ]) result
val restore : unit -> (Cstruct.t, [> R.msg | `NoFile ]) result
val vm_device : Unikernel.t -> (string, [> R.msg ]) result