VM egress networking settings from the [network] table — config.toml-only
because the setuid helper reads the same uplink and clone_pool to build
each VM's netns, veth, and NAT rules.
Networking is mandatory: a node refuses to start unless [network] is
configured (see Hyper.Node.FireVMM.Jailer.Checks.network_ready/0). Every VM
gets a NIC; there is no opt-out. configured?/0 exists only so the startup
preflight can fail fast with a clear message rather than crash later.
Summary
Functions
IPv4 CIDR the per-VM clone /30s are carved from. [network] clone_pool.
Whether the required [network] uplink is present. Used only by the startup
preflight to fail fast; once a node is running, networking is guaranteed
configured, so runtime code calls uplink/0 directly.
DNS resolver IP handed to the guest via the hyper.resolver= kernel cmdline
param, since the kernel's ip= autoconfig sets the guest's address/route but
never DNS. The PID-1 guest agent reads this back out of /proc/cmdline and
writes it to /etc/resolv.conf. [network] resolver.
Physical uplink interface guest egress is NAT'd out of. Raises if unset (a running node has already passed the preflight).
Functions
@spec clone_pool() :: String.t()
IPv4 CIDR the per-VM clone /30s are carved from. [network] clone_pool.
@spec configured?() :: boolean()
Whether the required [network] uplink is present. Used only by the startup
preflight to fail fast; once a node is running, networking is guaranteed
configured, so runtime code calls uplink/0 directly.
@spec resolver() :: String.t()
DNS resolver IP handed to the guest via the hyper.resolver= kernel cmdline
param, since the kernel's ip= autoconfig sets the guest's address/route but
never DNS. The PID-1 guest agent reads this back out of /proc/cmdline and
writes it to /etc/resolv.conf. [network] resolver.
@spec uplink() :: String.t()
Physical uplink interface guest egress is NAT'd out of. Raises if unset (a running node has already passed the preflight).