[PR #5738] [client] Add IPv6 dual-stack UI support for Android, iOS, and desktop #26630

Open
opened 2026-08-05 07:07:35 -04:00 by saavagebueno · 0 comments
Owner

Original Pull Request: https://github.com/netbirdio/netbird/pull/5738

State: closed
Merged: Yes


Describe your changes

Merge v4/v6 exit node route pairs into a single UI entry across all platforms (Android, iOS, desktop, daemon CLI). When the management server creates a paired exit node with -v6 suffix, the client now displays one combined entry (0.0.0.0/0, ::/0) with a single toggle that selects/deselects both.

  • Merge paired v4+v6 exit node routes into one display entry on Android, iOS, server daemon, and desktop UI
  • Add ExpandV6ExitPairs in the shared route package so select/deselect auto-includes the paired v6 route
  • Add IsV4DefaultRoute/IsV6DefaultRoute helpers using typed netip.Prefix comparisons
  • Show the peer actively routing traffic for HA route groups instead of always picking the first peer
  • Include IPv6 address in onAddressChanged notifications for dual-stack display on the home screen
  • Fix iOS nil-check ordering in GetRoutesSelectionDetails

Stacked on #5708.

Stack

Checklist

  • Is it a bug fix
  • Is a typo/documentation fix
  • Is a feature enhancement
  • It is a refactor
  • Created tests that fail without the change (if possible)

By submitting this pull request, you confirm that you have read and agree to the terms of the Contributor License Agreement.

Documentation

Select exactly one:

  • I added/updated documentation for this change
  • Documentation is not needed for this change (explain why)

Docs PR URL (required if "docs added" is checked)

Paste the PR link from https://github.com/netbirdio/docs here:

https://github.com/netbirdio/docs/pull/__

**Original Pull Request:** https://github.com/netbirdio/netbird/pull/5738 **State:** closed **Merged:** Yes --- ## Describe your changes Merge v4/v6 exit node route pairs into a single UI entry across all platforms (Android, iOS, desktop, daemon CLI). When the management server creates a paired exit node with `-v6` suffix, the client now displays one combined entry (`0.0.0.0/0, ::/0`) with a single toggle that selects/deselects both. - Merge paired v4+v6 exit node routes into one display entry on Android, iOS, server daemon, and desktop UI - Add `ExpandV6ExitPairs` in the shared `route` package so select/deselect auto-includes the paired v6 route - Add `IsV4DefaultRoute`/`IsV6DefaultRoute` helpers using typed `netip.Prefix` comparisons - Show the peer actively routing traffic for HA route groups instead of always picking the first peer - Include IPv6 address in `onAddressChanged` notifications for dual-stack display on the home screen - Fix iOS nil-check ordering in `GetRoutesSelectionDetails` Stacked on #5708. ## Issue ticket number and link ## Stack - #5631 - #5675 - #5686 - #5687 - #5688 - #5706 - #5707 - #5708 - #5738 :point_left: <!-- branch-stack --> ### Checklist - [ ] Is it a bug fix - [ ] Is a typo/documentation fix - [x] Is a feature enhancement - [ ] It is a refactor - [x] Created tests that fail without the change (if possible) > By submitting this pull request, you confirm that you have read and agree to the terms of the [Contributor License Agreement](https://github.com/netbirdio/netbird/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT.md). ## Documentation Select exactly one: - [ ] I added/updated documentation for this change - [x] Documentation is **not needed** for this change (explain why) ### Docs PR URL (required if "docs added" is checked) Paste the PR link from https://github.com/netbirdio/docs here: https://github.com/netbirdio/docs/pull/__
saavagebueno added the pull-request label 2026-08-05 07:07:35 -04:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#26630