use crate::interface::types::InterfaceType;
pub fn guess_type_by_name(name: &str) -> Option<InterfaceType> {
let n = name.as_bytes();
if n == b"lo" {
return Some(InterfaceType::Loopback);
}
if n.starts_with(b"wlan") || n.starts_with(b"wifi") {
return Some(InterfaceType::Wireless80211);
}
if n.starts_with(b"rmnet") || n.starts_with(b"ccmni") || n.starts_with(b"pdp") {
return Some(InterfaceType::Wwanpp);
}
if n.starts_with(b"p2p") {
return Some(InterfaceType::PeerToPeerWireless);
}
if n.starts_with(b"tun")
|| n.starts_with(b"tap")
|| n.starts_with(b"ipsec")
|| n.starts_with(b"clat")
{
return Some(InterfaceType::Tunnel);
}
if n.starts_with(b"br-") || n.starts_with(b"bridge") {
return Some(InterfaceType::Bridge);
}
if n.starts_with(b"veth") {
return Some(InterfaceType::ProprietaryVirtual);
}
None
}