#[non_exhaustive]pub enum Interface {
Show 18 variants
Bond(BondInterface),
Dummy(DummyInterface),
Ethernet(EthernetInterface),
Hsr(HsrInterface),
LinuxBridge(LinuxBridgeInterface),
OvsBridge(OvsBridgeInterface),
OvsInterface(OvsInterface),
Unknown(UnknownInterface),
Vlan(VlanInterface),
Vxlan(VxlanInterface),
MacVlan(MacVlanInterface),
MacVtap(MacVtapInterface),
Vrf(VrfInterface),
InfiniBand(InfiniBandInterface),
Loopback(LoopbackInterface),
MacSec(MacSecInterface),
Ipsec(IpsecInterface),
Xfrm(XfrmInterface),
}
Expand description
Represent a kernel or user space network interface.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Bond(BondInterface)
Dummy(DummyInterface)
Dummy interface.
Ethernet(EthernetInterface)
Ethernet interface or virtual ethernet(veth) of linux kernel
Hsr(HsrInterface)
HSR interface provided by Linux kernel.
LinuxBridge(LinuxBridgeInterface)
Bridge provided by Linux kernel.
OvsBridge(OvsBridgeInterface)
OpenvSwitch bridge.
OvsInterface(OvsInterface)
OpenvSwitch system interface.
Unknown(UnknownInterface)
Unknown interface.
Vlan(VlanInterface)
VLAN interface.
Vxlan(VxlanInterface)
VxLAN interface.
MacVlan(MacVlanInterface)
MAC VLAN interface.
MacVtap(MacVtapInterface)
MAC VTAP interface.
Vrf(VrfInterface)
InfiniBand(InfiniBandInterface)
Loopback(LoopbackInterface)
Linux loopback interface
MacSec(MacSecInterface)
MACsec interface.
Ipsec(IpsecInterface)
Ipsec connection
Xfrm(XfrmInterface)
Linux xfrm interface
Implementations§
source§impl Interface
impl Interface
sourcepub fn iface_type(&self) -> InterfaceType
pub fn iface_type(&self) -> InterfaceType
The interface type
sourcepub fn is_virtual(&self) -> bool
pub fn is_virtual(&self) -> bool
Whether interface is virtual(can delete from kernel). Since loopback interface should not be deleted from system, hence we consider loopback interface as not virtual interface. Unknown interface is considered as not virtual interface.
sourcepub fn need_controller(&self) -> bool
pub fn need_controller(&self) -> bool
Whether current interface only lives when its control exists. For example, OpenvSwitch system interface can only exists when its controller OpenvSwitch bridge exists.
sourcepub fn base_iface(&self) -> &BaseInterface
pub fn base_iface(&self) -> &BaseInterface
Get reference of its BaseInterface.
pub fn base_iface_mut(&mut self) -> &mut BaseInterface
Trait Implementations§
source§impl<'de> Deserialize<'de> for Interface
impl<'de> Deserialize<'de> for Interface
source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
source§impl PartialEq for Interface
impl PartialEq for Interface
impl Eq for Interface
impl StructuralPartialEq for Interface
Auto Trait Implementations§
impl Freeze for Interface
impl RefUnwindSafe for Interface
impl Send for Interface
impl Sync for Interface
impl Unpin for Interface
impl UnwindSafe for Interface
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.