mirror of
https://github.com/Horizontal42/netsleuth.git
synced 2026-11-10 15:42:10 +03:00
Shipped half of the original design on purpose: generalizing BSD's alt: same-TTL annotation across backends is impossible - mtr's JSON aggregates cycles and discards per-cycle next-hop variance, icmp_win/icmplib send one probe per TTL by construction, and the Linux system-traceroute parser doesn't model multi-IP hops even though the text can contain them. A finding that only ever fires on macOS/Linux-system-binary would be worse than not having it. New probes/ecmp.py::detect_ecmp() takes N independently-run TraceResults for the same target and diffs which IP showed up at each TTL - pure and backend-agnostic, since it never touches capability detection. Flags path.ecmp (info, multiple next hops exist - normal on a load-balanced network) and path.ecmp_asymmetric (warn, branches differ by >20ms - the diagnostic case, since one degraded branch of a load-balanced pair causes intermittent slowness a single traceroute would never catch). --ecmp is opt-in and deliberately excluded from --full: it multiplies traceroute traffic against the same targets by ecmp.runs (capped at 5) across ecmp.max_targets (capped at 3), sequential and sharing one semaphore, only after the main fan-out has finished. Live-tested against 2 real targets x 3 runs each - ran cleanly, correctly reported no divergence on this network. Part of plans/zesty-zooming-wilkinson.md (gitignored). |
||
|---|---|---|
| .. | ||
| fixtures | ||
| conftest.py | ||
| test_alerting.py | ||
| test_bgp.py | ||
| test_bgp_path.py | ||
| test_captive_portal.py | ||
| test_cgnat_nat64.py | ||
| test_cli_formats.py | ||
| test_compare.py | ||
| test_config.py | ||
| test_dns_advanced.py | ||
| test_dns_leak.py | ||
| test_dnsbl_decode.py | ||
| test_dpi_check.py | ||
| test_ecmp.py | ||
| test_exporter.py | ||
| test_exporter_l7.py | ||
| test_history.py | ||
| test_hop_asn.py | ||
| test_icmp_win_parse.py | ||
| test_icmp_win_trace.py | ||
| test_iface.py | ||
| test_interpret.py | ||
| test_interpret_l7.py | ||
| test_ip_geo_normalize.py | ||
| test_metrics.py | ||
| test_models.py | ||
| test_netinfo.py | ||
| test_orchestration.py | ||
| test_prefix_benchmark.py | ||
| test_prober_stats.py | ||
| test_reputation.py | ||
| test_speed_cloudflare.py | ||
| test_speed_fastcom.py | ||
| test_speed_math.py | ||
| test_stats.py | ||
| test_tls_rtt.py | ||
| test_traceparse.py | ||
| test_traceroute_cascade.py | ||
| test_trend.py | ||
| test_watch.py | ||