Should help digging precisely why a given event gets dropped.
Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
let event = match nl_msg {
RtnlMessage::NewLink(link_msg) => {
let (iface, mac_address) = nl_linkmessage_decode(link_msg)?;
+ log::debug!("NewLink({iface:?} {mac_address})");
NetEvent{iface, op: NetEventOp::AddMac(mac_address)}
},
RtnlMessage::DelLink(link_msg) => {
let (iface, mac_address) = nl_linkmessage_decode(link_msg)?;
+ log::debug!("DelLink({iface:?} {mac_address})");
NetEvent{iface, op: NetEventOp::RmMac(mac_address)}
},
RtnlMessage::NewAddress(address_msg) => {
// FIXME does not distinguish when IP is on DOWN iface
let (iface, address) = nl_addressmessage_decode(address_msg)?;
+ log::debug!("NewAddress({iface:?} {address})");
NetEvent{iface, op: NetEventOp::AddIp(address)}
},
RtnlMessage::DelAddress(address_msg) => {
let (iface, address) = nl_addressmessage_decode(address_msg)?;
+ log::debug!("DelAddress({iface:?} {address})");
NetEvent{iface, op: NetEventOp::RmIp(address)}
},
_ => {
vif_detect::add_vif_info(&mut event);
if REPORT_INTERNAL_NICS || ! event.iface.toolstack_iface.is_none() {
publisher.publish_netevent(&event)?;
+ } else {
+ log::debug!("no toolstack iface in {event:?}");
}
},
// FIXME can't we handle those in `select!` directly?
pub fn add_vif_info(event: &mut NetEvent) -> () {
const PREFIX: &str = "xn";
- if ! event.iface.name.starts_with(PREFIX) { return; }
+ if ! event.iface.name.starts_with(PREFIX) {
+ log::debug!("ignoring interface {} as not starting with '{PREFIX}'", event.iface.name);
+ return;
+ }
if let Ok(index) = event.iface.name[PREFIX.len()..].parse() {
event.iface.toolstack_iface = ToolstackNetInterface::Vif(index);
}
let device_path = format!("/sys/class/net/{}/device", event.iface.name);
if let Ok(devtype) = fs::read_to_string(format!("{device_path}/devtype")) {
let devtype = devtype.trim();
- if devtype != "vif" { return; }
+ if devtype != "vif" {
+ log::debug!("ignoring device {device_path}, devtype {devtype:?} not 'vif'");
+ return;
+ }
if let Ok(nodename) = fs::read_to_string(format!("{device_path}/nodename")) {
let nodename = nodename.trim();
const PREFIX: &str = "device/vif/";
- if ! nodename.starts_with(PREFIX) { return; } // FIXME warn?
+ if ! nodename.starts_with(PREFIX) {
+ log::debug!("ignoring interface {nodename} as not under {PREFIX}");
+ return;
+ }
let vif_id = nodename[PREFIX.len()..].parse().unwrap();
event.iface.toolstack_iface = ToolstackNetInterface::Vif(vif_id);
}
},
// FIXME extend IfaceIpStruct for this
- NetEventOp::AddMac(_mac_address) => {},
- NetEventOp::RmMac(_mac_address) => {},
+ NetEventOp::AddMac(_mac_address) => {
+ log::debug!("AddMac not applied");
+ },
+ NetEventOp::RmMac(_mac_address) => {
+ log::debug!("RmMac not applied");
+ },
}
Ok(())
}