Skip to content

virtio networking: add support for ipv6#14350

Merged
benhillis merged 8 commits intomasterfrom
user/benhill/virtio_networking_ipv6
Mar 13, 2026
Merged

virtio networking: add support for ipv6#14350
benhillis merged 8 commits intomasterfrom
user/benhill/virtio_networking_ipv6

Conversation

@benhillis
Copy link
Member

This change adds support for ipv6 support to the virtioproxy networking mode. The changes here are primarily:

  1. Update the WSL DeviceHost nuget package to a version that support specifying the 'client_ip_ipv6' address
  2. Update VirtioProxy network engine to set the IPv6 address and gateway address.
  3. Update wsl::core::networking::NetworkSettings class to keep track of IPv6 addresses and routes.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds IPv6 support to the VirtioProxy networking mode by extending host endpoint settings to track IPv6 configuration and wiring that into the Virtio networking engine, along with new Windows network tests validating IPv6 configuration and AAAA DNS resolution.

Changes:

  • Extend NetworkSettings/routes to track a preferred IPv6 address and an IPv6 default gateway.
  • Update VirtioProxy networking to plumb IPv6 address + IPv6 DNS servers into the guest, and to track an IPv6 default route.
  • Add VirtioProxy test coverage for IPv6 address/gateway configuration and AAAA DNS resolution.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
test/windows/NetworkTests.cpp Adds VirtioProxy IPv6 configuration and AAAA DNS resolution tests.
src/windows/common/WslCoreNetworkEndpointSettings.h Adds IPv6 fields/helpers to NetworkSettings and default-route helper.
src/windows/common/WslCoreNetworkEndpointSettings.cpp Populates preferred IPv6 address + IPv6 default route from host adapter state.
src/windows/common/VirtioNetworking.h Splits IP update into IPv4 vs IPv6 paths and tracks IPv6 default route.
src/windows/common/VirtioNetworking.cpp Sends IPv6 address + IPv6 DNS + IPv6 default route updates to the guest.
packages.config Bumps Microsoft.WSL.DeviceHost NuGet version to support client_ip_ipv6.

You can also share your feedback on Copilot code review. Take the survey.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.


You can also share your feedback on Copilot code review. Take the survey.

Brian-Perkins
Brian-Perkins previously approved these changes Mar 4, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.


You can also share your feedback on Copilot code review. Take the survey.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.


You can also share your feedback on Copilot code review. Take the survey.

OneBlue
OneBlue previously approved these changes Mar 7, 2026
Ben Hillis added 2 commits March 9, 2026 14:59
- Add PreferredIpv6Address field and GetBestGatewayV6* methods to NetworkSettings
- Extend GetHostEndpointSettings() to discover IPv6 unicast address and gateway
- Add UpdateIpv6Address() using ModifyGuestEndpointSettingRequest<IPAddress>
- Push IPv6 default route to guest via UpdateDefaultRoute(AF_INET6)
- Remove AF_INET6 early return in ModifyOpenPorts, use INETADDR_PORT()
- Add EndpointRoute::DefaultRoute() static factory
- Pass client_ip_ipv6 in devicehost options (not yet parsed by devicehost)
- Remove gateway_ip from devicehost options (only needed for DHCP)
- Include IPv6 DNS servers in non-tunneling DNS settings
- Add ConfigurationV6 and DnsResolutionAAAA tests
@benhillis benhillis force-pushed the user/benhill/virtio_networking_ipv6 branch from ac9480f to 5cd82fe Compare March 10, 2026 19:30
Copilot AI review requested due to automatic review settings March 12, 2026 17:32
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.


You can also share your feedback on Copilot code review. Take the survey.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.


You can also share your feedback on Copilot code review. Take the survey.

OneBlue
OneBlue previously approved these changes Mar 12, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.


You can also share your feedback on Copilot code review. Take the survey.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.


You can also share your feedback on Copilot code review. Take the survey.

@benhillis benhillis merged commit 7cd9ed9 into master Mar 13, 2026
10 checks passed
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.

4 participants