Skip to content

Conversation

@mriise
Copy link

@mriise mriise commented Dec 19, 2025

XDP for windows requires windows server, add a toggle so msquic can be built without xdp.

@mriise mriise requested a review from a team as a code owner December 19, 2025 10:54
@mriise
Copy link
Author

mriise commented Dec 19, 2025

@microsoft-github-policy-service agree company="Jinxxy Technologies LLC"

1 similar comment
@mriise
Copy link
Author

mriise commented Dec 19, 2025

@microsoft-github-policy-service agree company="Jinxxy Technologies LLC"

@guhetier
Copy link
Collaborator

Can you please clarify the issue you are trying to solve?

MsQuic should compile without issue on Windows Client, XDP is a header only dependency.
Whether XDP is used or not is controlled by a runtime setting.

@codecov
Copy link

codecov bot commented Dec 19, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.01%. Comparing base (f290989) to head (3994ffc).
⚠️ Report is 15 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #5688      +/-   ##
==========================================
- Coverage   86.32%   85.01%   -1.31%     
==========================================
  Files          60       60              
  Lines       18663    18663              
==========================================
- Hits        16110    15866     -244     
- Misses       2553     2797     +244     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ProjectsByJackHe
Copy link
Contributor

Expanding on what guhetier said, there are 2 components to XDP-for-windows: the runtime kernel driver, and the header-only user space library. MsQuic does not build the runtime kernel driver, it just links against the header only user space library.

The documentation link you referenced pertains to the kernel driver, which MsQuic does not compile.

@mriise
Copy link
Author

mriise commented Dec 20, 2025

Apologies for incorrect documentation, should have done a bit more work explaining.

datapath_raw_xdp_win.c brings in a header here #include <xdp/wincommon.h> to this file, which is inside the the xdp submodule.

This causes a build failure if the submodule is not pulled in, and when xdp-for-windows/published/external is otherwise not included in the target.

This is the same build failure in #5417 as well. If this is supposed to reference a header in the main repo then it is missing, otherwise I would really prefer to have a compile flag to avoid needing to pull in a submodule I don't have the intention of using.

@mtfriesen
Copy link
Contributor

@mriise, MsQuic depends on several submodules being present on build machines - is there a reason why the XDP submodule can't be initialized in your builds? I understand the code may be effectively unused in your scenario, but right now we're trying to simplify and reduce our build config matrix because of exploding overhead of validating and testing all the combinations.

We'd like to avoid adding the no-XDP config to our CI test matrix, but we also don't want to frustrate you or other developers who find the hypothetical no-XDP config broken.

@mriise
Copy link
Author

mriise commented Jan 5, 2026

I am coming from trying to use this in rust. The published crate does not include xdp in the published version (see https://docs.rs/crate/msquic/2.5.1-beta/source/submodules/). Publisher of the crate likely didn't have submoudles (at least not win-xdp) initialized during publish. From what I can tell CI is correct, but prepare-machine.ps1 wont init win-xdp on linux. That may be cause of the mistake as im assuming the publish was done manually.

This just an approach to fixing builds for an improperly published rust crate. I am fine with closing this assuming a usable crate is published and/or release procedure for the rust crate is updated.

@mtfriesen
Copy link
Contributor

That makes sense. @guhetier, could you take a look at the rust build/packaging?

@guhetier
Copy link
Collaborator

The rust package issue is a known one we didn't get time to address. I'll look at it.
See #5417

@guhetier guhetier closed this Jan 12, 2026
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