- // xxx
- trace!("{} {} discarding packet daddr={:?} len={}",
- conn, link, daddr, packet.len());
+ let c = &global.config;
+ let trace = |how| trace!("{} {} route {} daddr={:?} len={}",
+ conn, link, how, daddr, packet.len());
+
+ if daddr == c.vaddr || ! c.vnetwork.iter().any(|n| n.contains(&daddr)) {
+ trace("ipif inbound xxx discarding");
+ } else if daddr == c.vrelay {
+ trace("discard (relay)");
+ } else if let Some(_client) = global.all_clients.get(&ClientName(daddr)) {
+ trace("ipif route xxx discarding");
+ } else {
+ trace("discard (no client)");
+ }