virtio networking: fix two minor issues by benhillis · Pull Request #13810 · microsoft/WSL

Pull request overview

This PR resolves two issues with virtio proxy networking mode: ensuring proper cleanup of the GNS channel during VirtioNetworking teardown, and fixing MTU propagation to the guest virtual adapter.

Key Changes

  • Added explicit destructor to VirtioNetworking that calls m_gnsChannel.Stop() to unblock any stuck guest communications
  • Implemented GetMinimumConnectedInterfaceMtu() helper function to extract duplicated MTU calculation logic into a reusable, properly namespaced function
  • Fixed critical bug in VirtioNetworking::UpdateMtu() where m_networkMtu was never updated, causing incorrect MTU values (always 0) to be used
  • Uncommented and fixed the MTU notification sending in VirtioNetworking (was using non-existent m_endpointId instead of m_adapterId)

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/windows/common/WslCoreNetworkingSupport.h Added declaration for GetMinimumConnectedInterfaceMtu() helper function with documentation
src/windows/common/WslCoreNetworkingSupport.cpp Implemented GetMinimumConnectedInterfaceMtu() to extract common MTU calculation logic with proper error handling
src/windows/common/VirtioNetworking.h Changed destructor from default to explicit declaration to enable cleanup logic
src/windows/common/VirtioNetworking.cpp Added destructor implementation with GNS channel stop; fixed UpdateMtu() to actually update m_networkMtu and send notifications with correct adapter ID
src/windows/common/NatNetworking.cpp Refactored UpdateMtu() to use new GetMinimumConnectedInterfaceMtu() helper, reducing code duplication

You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.