37 lines
683 B
Rust
37 lines
683 B
Rust
#![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<Ipv4Cidr>,
|
|
reserved_v4_addrs: Vec<Ipv4Addr>,
|
|
ipv6_ranges: Vec<Ipv6Cidr>,
|
|
reserved_v6_addrs: Vec<Ipv6Addr>,
|
|
// 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<Interface>,
|
|
volumes: Vec<Volume>,
|
|
}
|