fix(net): silence benign no-network warnings; add e1000e (82574) support

- smolnetd: an empty ip_router (DHCP-managed or deliberately network-less like
  the bare target) is a valid 'no default gateway' state, not a malformed config
  -> no warning.
- router: a limited/directed IPv4 broadcast (DHCP DISCOVER to 255.255.255.255
  before any lease/route exists) legitimately has no routing-table entry; don't
  warn 'No route found' for broadcast destinations.
- e1000d: add the 82574L (0x10d3, QEMU '-device e1000e') to the E1000 match
  list; it keeps the legacy descriptor/register interface this driver uses.
  I219 is intentionally excluded (integrated MDIO PHY, different init).
This commit is contained in:
Red Bear OS
2026-07-18 00:49:44 +09:00
parent 1769b083ab
commit 0120017484
3 changed files with 23 additions and 4 deletions
+8 -1
View File
@@ -304,7 +304,14 @@ impl Router {
let (next_hop, src_rule, dev_name, route_type) = {
let route_table = self.route_table.borrow();
let Some(rule) = route_table.lookup_rule(&dst_addr) else {
warn!("No route found for destination: {}", dst_addr);
// A limited/directed IPv4 broadcast (e.g. a DHCP
// DISCOVER to 255.255.255.255 before any lease or
// route exists) legitimately has no routing-table
// entry — it is delivered as a link-layer broadcast,
// not routed — so this is not a real routing error.
if !ipv4_pkt.dst_addr().is_broadcast() {
warn!("No route found for destination: {}", dst_addr);
}
continue;
};
let next_hop = rule.via.unwrap_or(dst_addr);