use crate::{InfiniBandInterface, nm::nm_dbus::NmConnection};
pub(crate) fn gen_nm_ib_setting(
iface: &InfiniBandInterface,
nm_conn: &mut NmConnection,
) {
let mut nm_ib_set =
nm_conn.infiniband.as_ref().cloned().unwrap_or_default();
if let Some(ib_conf) = iface.ib.as_ref() {
nm_ib_set.parent = ib_conf
.base_iface
.as_ref()
.and_then(|p| if p.is_empty() { None } else { Some(p.clone()) });
nm_ib_set.pkey = ib_conf.pkey.and_then(|p| {
if p == u16::MAX {
None
} else {
Some(i32::from(p))
}
});
nm_ib_set.mode = Some(ib_conf.mode.to_string());
}
if let Some(mtu) = iface.base.mtu {
nm_ib_set.mtu = Some(mtu as u32);
}
nm_conn.infiniband = Some(nm_ib_set)
}