(* mirage >= 4.5.0 *) (* Copyright (C) 2017, Thomas Leonard See the README file for details. *) (** Configuration for the "mirage" tool. *) open Mirage let nat_table_size = runtime_arg ~pos:__POS__ "Unikernel.nat_table_size" let ipv4 = runtime_arg ~pos:__POS__ "Unikernel.ipv4" let ipv4_gw = runtime_arg ~pos:__POS__ "Unikernel.ipv4_gw" let ipv4_dns = runtime_arg ~pos:__POS__ "Unikernel.ipv4_dns" let ipv4_dns2 = runtime_arg ~pos:__POS__ "Unikernel.ipv4_dns2" let main = main ~runtime_args:[ nat_table_size; ] ~packages:[ package "vchan" ~min:"4.0.2"; package "cstruct"; package "astring"; package "tcpip" ~min:"3.7.0"; package "arp" ~min:"2.3.0" ~sublibs:["mirage"]; package "ethernet" ~min:"3.0.0"; package "shared-memory-ring" ~min:"3.0.0"; package "netchannel" ~min:"2.1.3"; package "mirage-net-xen" ~min:"2.1.3"; package "ipaddr" ~min:"5.2.0"; package "mirage-qubes" ~min:"0.9.1"; package "mirage-nat" ~min:"3.0.1"; package "mirage-logs"; package "mirage-xen" ~min:"8.0.0"; package "dns-client" ~min:"6.4.0"; package "pf-qubes"; ] "Unikernel.Main" (random @-> mclock @-> time @-> job) let () = register "qubes-firewall" [main $ default_random $ default_monotonic_clock $ default_time]