]> xenbits.xensource.com Git - xen-guest-agent.git/commitdiff
net: add some debug-level traces
authorYann Dirson <yann.dirson@vates.fr>
Tue, 21 Nov 2023 13:03:43 +0000 (14:03 +0100)
committerYann Dirson <yann.dirson@vates.fr>
Thu, 30 Nov 2023 10:45:00 +0000 (11:45 +0100)
Should help digging precisely why a given event gets dropped.

Signed-off-by: Yann Dirson <yann.dirson@vates.fr>
src/collector_net_netlink.rs
src/main.rs
src/vif_detect_freebsd.rs
src/vif_detect_linux.rs
src/xenstore_schema_std.rs

index 396cfb0c71323695a2d51c3b8ff465ded6eb5c70..c63634edf0207ec296c2c38528dce3cef2dc9eb5 100644 (file)
@@ -103,19 +103,23 @@ fn netevent_from_rtnetlink(nl_msg: &RtnlMessage) -> io::Result<NetEvent> {
     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)}
         },
         _ => {
index 7107f09bc5dfee17cd90959eb1e755a8135a899f..7c3dd13efe16b2f52a06a69223ef656f81b7be21 100644 (file)
@@ -83,6 +83,8 @@ async fn main() -> Result<(), Box<dyn Error>> {
                         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?
index d8f1ce04a61c69933537f36ae6b14b6882f63448..f97245a526c6eb1b251d96a1a00367d180647433 100644 (file)
@@ -4,7 +4,10 @@ use crate::datastructs::{NetEvent, ToolstackNetInterface};
 
 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);
     }
index 2ea043958eff9f4e23c7e015553f789ba68cff78..8af5260ee89cdbbf501ba53d9f079b887fd27ce6 100644 (file)
@@ -11,11 +11,17 @@ pub fn add_vif_info(event: &mut NetEvent) {
     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);
         }
index 40642aa254d9d671d206ee38dae164203ff1163c..30d059134f17e1bc0ebf90f56fbeddc20b669b4f 100644 (file)
@@ -120,8 +120,12 @@ impl XenstoreSchema for Schema {
             },
 
             // 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(())
     }