Skip to content

proxy CIDR for address wildcards; WSL005 sparseVhd and swiotlb; data for 3.0.3/3.0.4 - #122

Merged
zcsizmadia merged 1 commit into
mainfrom
wsl3-data-and-notes
Oct 26, 2026
Merged

zcsizmadia merged 1 commit into
mainfrom
wsl3-data-and-notes

Conversation

@zcsizmadia

Copy link
Copy Markdown
Contributor

The last of the WSL 3.0.x survey. Closes #117. Closes #119.

proxy: address wildcards become CIDR

ParseBypass passed 10.* and 192.168.* through unchanged, and no Linux tool matches that form. This is the same bug WSL's own autoProxy has (microsoft/WSL#41940). Trailing wildcards now become their CIDR block, for example 10.0.0.0/8, 172.16.0.0/16 and 192.168.1.0/24. A wildcard in the middle (10.*.0.1) has no CIDR form and is left alone, and a lone * is kept. The defaults already used CIDR (169.254.0.0/16).

Measured with curl 8.18 in Ubuntu, with the proxy set to an address that doesn't answer: no_proxy=127.0.0.0/8 bypassed it (connection refused locally), while no_proxy=127.* sent the request to the proxy (timed out).

WSL005: two rules that depend on the runtime version

  • sparseVhd=true: on 2.5.6 to 3.0.1 it's a warning, because WSL ignored it ("disabled due to potential data corruption"). From 3.0.2 it's info, because it's honoured but experimental (#41726). I read the version boundaries from the PR diff and the 2.5.6 release notes.
  • swiotlb=force before 3.0.4: it triggers on virtiofs=true, networkingMode=consomme or virtioproxy, or an explicit experimental.swiotlb, and not when wsl2.virtio=false. I took that condition from WslCoreConfig.cpp at 3.0.3. The finding never comments out the line it's about. Measured on this machine: .wslconfig has virtiofs=true, and the 3.0.3 VM boots with swiotlb=force hv_pci_swiotlb=67108864.
  • Two existing tests assumed a clean result where the new rules now (correctly) warn. The clean-file test moves to runtime 3.0.4. The consomme test keeps its original concern, that the line must never be commented out, and now asserts it for the swiotlb finding.

Data

  • compat.json: stable 3.0.3, pre-release 3.0.4, the same three fields the refresh workflow edits. (data: WSL 3.0.3 stable, 3.0.2 pre-release #119 said pre-release 3.0.2 because it ran the day before 3.0.4 came out.)
  • wslconfig-keys.json: regenerated with tools/gen-wslconfig-keys against the 3.0.4 checkout. No key was added or removed since the previous source (2026-09-12); only the stamp moved. Notes added on sparseVhd and virtiofs.

Docs

The proxy guide now covers address wildcards. docs/research/2026-10-wsl3.md gains a "3.0.2 to 3.0.4" section, with what was measured marked separately from what was read in source or issue threads. It includes the kernel 6.18 option removals (TASKSTATS, PPP, INET_DIAG_DESTROY); nothing checks for those yet.

Tests

Each new rule (the CIDR translation, the sparse version window, the swiotlb version gate, the virtioproxy alias) was broken in turn, and a test failed each time.

…for 3.0.3/3.0.4

proxy: ParseBypass turns "10.*", "172.16.*.*", "192.168.1.*" into the CIDR
block they mean. Passed through, no Linux tool matches them; WSL's autoProxy
has the same bug (microsoft/WSL#41940). A lone "*" is kept.

WSL005: sparseVhd=true is ignored on 2.5.6 to 3.0.1 and experimental from
3.0.2 (microsoft/WSL#41726). Before 3.0.4, virtiofs, consomme (or
virtioproxy) and an explicit experimental.swiotlb put swiotlb=force on the
kernel command line (microsoft/WSL#41828); not when wsl2.virtio=false.

compat.json: stable 3.0.3, pre-release 3.0.4. wslconfig-keys.json
regenerated against the 3.0.4 source: no key added or removed; notes on
sparseVhd and virtiofs.

docs: the proxy guide on address wildcards; the WSL 3.0 research note gains
3.0.2 to 3.0.4.
@zcsizmadia
zcsizmadia merged commit d688ec9 into main Oct 26, 2026
4 checks passed
@zcsizmadia
zcsizmadia deleted the wsl3-data-and-notes branch October 26, 2026 02:39
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.

data: WSL 3.0.3 stable, 3.0.2 pre-release data: WSL 3.0.1 stable, 3.0.3 pre-release

1 participant