#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[derive(Serialize, Deserialize)]
pub enum BondingSlave
{
ByPciDeviceAddress(DeviceAddress),
ByVirtualDeviceName(NetVirtualDeviceName),
ByEthernetPortIdentifier(EthernetPortIdentifier),
}
impl BondingSlave
{
pub fn byVirtualDeviceName(netVirtualDeviceName: NetVirtualDeviceName) -> BondingSlave
{
assert!(netVirtualDeviceName.isNotBackedByDriverName(NetVirtualDeviceDriverName::Bonding), "A bonding slave can not itself be a bonding device");
BondingSlave::ByVirtualDeviceName(netVirtualDeviceName)
}
#[inline(always)]
pub fn asDpdkString(&self) -> String
{
match *self
{
BondingSlave::ByPciDeviceAddress(ref deviceAddress) => deviceAddress.to_string(),
BondingSlave::ByVirtualDeviceName(ref virtualDeviceName) => virtualDeviceName.to_string(),
BondingSlave::ByEthernetPortIdentifier(ref ethernetPortIdentifier) => format!("{}", ethernetPortIdentifier),
}
}
}