diff --git a/netstack/src/router/route_table.rs b/netstack/src/router/route_table.rs index 5476397295..ff9f9b43db 100644 --- a/netstack/src/router/route_table.rs +++ b/netstack/src/router/route_table.rs @@ -130,6 +130,10 @@ impl RouteTable { rule.src = new_src; } } + + pub fn len(&self) -> usize { + self.rules.len() + } } impl Display for RouteTable { diff --git a/netstack/src/scheme/netcfg/mod.rs b/netstack/src/scheme/netcfg/mod.rs index 40e0ce6ae0..28ba702a8f 100644 --- a/netstack/src/scheme/netcfg/mod.rs +++ b/netstack/src/scheme/netcfg/mod.rs @@ -183,6 +183,15 @@ fn mk_root_node( local.map(|e| format!("{}", e)).unwrap_or_else(|| "-".to_string()), remote.map(|e| format!("{}", e)).unwrap_or_else(|| "-".to_string()))); } + if let smoltcp::socket::Socket::Udp(udp_sock) = socket { + let endpoint = udp_sock.endpoint(); + out.push_str(&format!("udp: local={}\n", + if endpoint.port != 0 { + format!("{}", endpoint) + } else { + "-".to_string() + })); + } } out } @@ -251,6 +260,12 @@ fn mk_root_node( format!("{}", route_table.borrow()) } }, + "count" => { + ro [route_table] || { + let count = route_table.borrow().len(); + format!("routes: {}\n", count) + } + }, "add" => { wo [iface, notifier, route_table] (Option, None) |cur_value, line| {