Skip to content

Fix network status and latency on IPv6-only links - #11302

Open
emanueleadelini wants to merge 1 commit into
omacom:quattrofrom
emanueleadelini:fix/network-ipv6-route
Open

Fix network status and latency on IPv6-only links#11302
emanueleadelini wants to merge 1 commit into
omacom:quattrofrom
emanueleadelini:fix/network-ipv6-route

Conversation

@emanueleadelini

Copy link
Copy Markdown

On a link with a usable IPv6 default route but no ordinary IPv4 route, omarchy-network-status can report disconnected or show failed IPv4 probes while IPv6 works. This addresses the status and latency portion of #11215, reported by @anomalousmouse.

The command now shares route selection between status and verbose output, preferring native IPv6 when IPv4 is absent or uses an IPv6 next hop / an IPv4 service-continuity source (192.0.0.0/29). Ordinary IPv4 and dual-stack links keep their IPv4 preference; an existing IPv4 route is retained if IPv6 is unavailable.

  • Read the selected route's source, matching prefix and gateway, including via.host.
  • Use an IPv6 Internet probe for an IPv6 route and scope link-local gateway probes to the interface.
  • Preserve empty samples when ping fails.
  • Give IPv6 address/gateway values separate rows and elide long values without changing the full text copied to the clipboard.

Related: #8683 adds separate IPv6 detail fields. This change focuses on selecting a usable route before the IPv4-only early return; it does not add parallel address fields.

Validation

  • 14 regression scenarios pass, covering IPv4, dual-stack, IPv6-only, transition routes, source/prefix selection, scoped gateways, unanswered probes and offline state. The same test fails on the unmodified base at the IPv6 connected-status check.
  • Real veth interfaces, kernel routes and ICMP replies in isolated Linux namespaces: five scenarios pass on both Linux and an Omarchy VM. Original and candidate scripts were compared against the same network setup.
  • Running Omarchy 4.0.2-1 desktop: inspected before/after screenshots, including a long IPv6 address. The candidate command and Panel.qml were exercised; packaged files were restored after capture.
  • test/all run on base b5589fa and this candidate in identical headless VM environments: CLI suite passes in both; the same four shell test files fail in both, with no added failures. The affected files are locate-test.sh, network-qr-test.sh, snapper-test.sh (missing omarchy-iso fixture), and ssh-reconnect-test.sh. This is not a claim that the full suite passes.
  • Existing network-test.sh, Bash syntax and git diff --check pass.

Reproduction harness, results and environment notes. The isolated peer owns the probe addresses locally: these checks do not validate an ISP, Wi-Fi hardware, NAT64 or a complete 464XLAT deployment. omarchy-network-speedtest is outside this patch's scope, so #11215 should remain open for the remaining work.

Desktop before / after (isolated IPv6 backend)

Before: a reachable IPv6-only link is shown as disconnected.

Before: no connection

After: connected status, IPv6 address, gateway and successful local probes; long values fit the panel. The local-peer latency is not an Internet performance measurement.

After: IPv6 connection and readable details

Prepared with AI assistance (Codex), by Emanuele Adelini · AD Next Lab.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant