#![allow(dead_code)] use cidr::Ipv4Cidr; use cidr::Ipv6Cidr; use core::net::Ipv4Addr; use core::net::Ipv6Addr; struct Volume { path: String, // maximum allowed storage in MB max_storage: u64, } struct Interface { r#type: InterfaceType, name: String, ipv4_ranges: Vec, reserved_v4_addrs: Vec, ipv6_ranges: Vec, reserved_v6_addrs: Vec, // TODO: add bandwidth } enum InterfaceType { NAT, MACVTAP, IPVTAP, Bridge, } struct Config { max_cores_per_vm: u64, max_cpu_reservation: u64, max_mem_reservation: u64, network_interfaces: Vec, volumes: Vec, }