#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum NMDeviceType {
Unknown = 0,
Ethernet = 1,
Wifi = 2,
Unused1 = 3,
Unused2 = 4,
Bt = 5,
OlpcMesh = 6,
Wimax = 7,
Modem = 8,
Infiniband = 9,
Bond = 10,
Vlan = 11,
Adsl = 12,
Bridge = 13,
Generic = 14,
Team = 15,
Tun = 16,
IpTunnel = 17,
Macvlan = 18,
Vxlan = 19,
Veth = 20,
Macsec = 21,
Dummy = 22,
Ppp = 23,
OvsInterface = 24,
OvsPort = 25,
OvsBridge = 26,
Wpan = 27,
SixLowpan = 28,
Wireguard = 29,
WifiP2p = 30,
Vrf = 31,
Loopback = 32,
Hsr = 33,
Ipvlan = 34,
Geneve = 35,
}
impl NMDeviceType {
pub fn from_u32(value: u32) -> Self {
match value {
0 => Self::Unknown,
1 => Self::Ethernet,
2 => Self::Wifi,
3 => Self::Unused1,
4 => Self::Unused2,
5 => Self::Bt,
6 => Self::OlpcMesh,
7 => Self::Wimax,
8 => Self::Modem,
9 => Self::Infiniband,
10 => Self::Bond,
11 => Self::Vlan,
12 => Self::Adsl,
13 => Self::Bridge,
14 => Self::Generic,
15 => Self::Team,
16 => Self::Tun,
17 => Self::IpTunnel,
18 => Self::Macvlan,
19 => Self::Vxlan,
20 => Self::Veth,
21 => Self::Macsec,
22 => Self::Dummy,
23 => Self::Ppp,
24 => Self::OvsInterface,
25 => Self::OvsPort,
26 => Self::OvsBridge,
27 => Self::Wpan,
28 => Self::SixLowpan,
29 => Self::Wireguard,
30 => Self::WifiP2p,
31 => Self::Vrf,
32 => Self::Loopback,
33 => Self::Hsr,
34 => Self::Ipvlan,
35 => Self::Geneve,
_ => Self::Unknown,
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum NMIPTunnelMode {
Unknown = 0,
Ipip = 1,
Gre = 2,
Sit = 3,
Isatap = 4,
Vti = 5,
Ip6ip6 = 6,
Ipip6 = 7,
Ip6gre = 8,
Vti6 = 9,
Gretap = 10,
Ip6gretap = 11,
}
impl NMIPTunnelMode {
pub fn from_u32(value: u32) -> Self {
match value {
0 => Self::Unknown,
1 => Self::Ipip,
2 => Self::Gre,
3 => Self::Sit,
4 => Self::Isatap,
5 => Self::Vti,
6 => Self::Ip6ip6,
7 => Self::Ipip6,
8 => Self::Ip6gre,
9 => Self::Vti6,
10 => Self::Gretap,
11 => Self::Ip6gretap,
_ => Self::Unknown,
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum NMDeviceManaged {
No = 0,
Yes = 1,
Reset = 2,
}
bitflags::bitflags! {
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct NMDeviceManagedFlags: u32 {
const NONE = 0x00;
const RUNTIME = 0x01;
const PERMANENT = 0x02;
const PERMANENT_BY_NAME = 0x04;
const PERMANENT_BY_MAC = 0x08;
const SET_ADMIN_STATE = 0x10;
}
}
#[derive(Debug, Clone)]
pub struct LldpNeighbor {
pub chassis_id: Option<String>,
pub port_id: Option<String>,
pub port_description: Option<String>,
pub system_name: Option<String>,
pub system_description: Option<String>,
pub system_capabilities: Option<u32>,
pub management_addresses: Option<Vec<String>>,
}