Hyper.Cfg.Network (Hyper v0.1.0)

Copy Markdown View Source

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

clone_pool()

@spec clone_pool() :: String.t()

IPv4 CIDR the per-VM clone /30s are carved from. [network] clone_pool.

configured?()

@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.

resolver()

@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.

uplink()

@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).