pub const SUBNET: &str = "192.168.127.0/24";
pub const GATEWAY_IP: &str = "192.168.127.1";
pub const GUEST_IP: &str = "192.168.127.2";
pub const HOST_ALIAS_LABEL: &str = "host";
pub const HOST_ALIAS_ZONE: &str = "boxlite.internal.";
pub const HOST_HOSTNAME: &str = "host.boxlite.internal";
pub const HOST_IP: &str = "192.168.127.254";
pub const GUEST_CIDR: &str = "192.168.127.2/24";
pub const GUEST_INTERFACE: &str = "eth0";
pub const GATEWAY_MAC: [u8; 6] = [0x5a, 0x94, 0xef, 0xe4, 0x0c, 0xdd];
pub const GUEST_MAC: [u8; 6] = [0x5a, 0x94, 0xef, 0xe4, 0x0c, 0xee];
pub const GUEST_MAC_STRING: &str = "5a:94:ef:e4:0c:ee";
pub const GATEWAY_MAC_STRING: &str = "5a:94:ef:e4:0c:dd";
pub const DEFAULT_MTU: u16 = 1500;
pub const DNS_SERVER_IP: &str = GATEWAY_IP;
pub const DNS_SEARCH_DOMAINS: &[&str] = &["local"];
pub fn mac_to_string(mac: &[u8; 6]) -> String {
format!(
"{:02x}:{:02x}:{:02x}:{:02x}:{:02x}:{:02x}",
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]
)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_mac_to_string() {
assert_eq!(mac_to_string(&GUEST_MAC), GUEST_MAC_STRING);
assert_eq!(mac_to_string(&GATEWAY_MAC), GATEWAY_MAC_STRING);
}
#[test]
fn test_mac_addresses_differ_by_one_byte() {
for i in 0..5 {
assert_eq!(GUEST_MAC[i], GATEWAY_MAC[i]);
}
assert_eq!(GUEST_MAC[5], 0xee);
assert_eq!(GATEWAY_MAC[5], 0xdd);
}
#[test]
fn test_host_alias_components_match_hostname() {
assert_eq!(
HOST_HOSTNAME,
format!(
"{}.{}",
HOST_ALIAS_LABEL,
HOST_ALIAS_ZONE.trim_end_matches('.')
)
);
}
}