Skip to content

Remove Linux XDP support#5921

Merged
mtfriesen merged 4 commits intomainfrom
copilot/remove-linux-xdp-support
Apr 7, 2026
Merged

Remove Linux XDP support#5921
mtfriesen merged 4 commits intomainfrom
copilot/remove-linux-xdp-support

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 7, 2026

Description

Linux XDP has become a costly maintenance burden with no active community commitment. This removes all Linux XDP code, build infrastructure, CI, and documentation while leaving Windows XDP support fully intact.

Deleted:

  • src/platform/datapath_raw_xdp_linux.c — Linux XDP datapath implementation
  • src/platform/datapath_raw_xdp_linux_kern.c — BPF kernel program
  • Associated CLOG-generated files in src/generated/linux/

Build system:

  • Removed QUIC_LINUX_XDP_ENABLED CMake option and CXPLAT_LINUX_XDP_ENABLED preprocessor define
  • Simplified Linux platform CMakeLists.txt — always uses datapath_raw_dummy.c, no XDP library detection or BPF compilation step
  • Removed -UseXdp from build.ps1 (Linux path only); -UseXdp in prepare-machine.ps1/test.ps1/spin.ps1 retained for Windows XDP

CI/CD:

  • Removed Linux XDP matrix entries from build.yml, test.yml, stress.yml, dotnet-test.yml, package-linux.yml, package-reuse-linux.yml, build-reuse-unix.yml, and Azure DevOps templates
  • Removed XDP build-stage from both Ubuntu Dockerfiles
  • Removed XDP build dependencies from codeql-analysis.yml
  • Fixed invalid YAML in test.yml — restored accidentally deleted - name: Install ETW Manifest step separator that caused duplicate shell and run keys

Packaging:

  • Removed libxdp/libbpf/libnl dependency injection from RPM/DEB packages
  • Removed BPF kernel object (datapath_raw_xdp_kern.o) from package artifacts

Source simplifications:

  • Removed !defined(CXPLAT_LINUX_XDP_ENABLED) guards in api.c, listener.c, ApiTest.cpp — hard partitioning is now gated solely on !defined(CXPLAT_USE_IO_URING) on Linux

Testing

No new tests. Existing Linux tests continue to run (without XDP variants). Windows XDP test matrix is unchanged.

Documentation

Removed Linux XDP installation, build, test, and Q&A sections from docs/BUILD.md. Removed Linux XDP logging section from docs/TroubleshootingGuide.md. Windows XDP docs (QTIP.md, Settings.md, Architecture.md) are unaffected.

Copilot AI linked an issue Apr 7, 2026 that may be closed by this pull request
4 tasks
Copilot AI and others added 2 commits April 7, 2026 14:25
Agent-Logs-Url: https://github.com/microsoft/msquic/sessions/ea4dd1ee-5cbe-4fe0-ab16-909a4627da66

Co-authored-by: mtfriesen <3517159+mtfriesen@users.noreply.github.com>
Copilot AI changed the title [WIP] Remove Linux XDP support due to maintenance costs Remove Linux XDP support Apr 7, 2026
Copilot AI requested a review from mtfriesen April 7, 2026 14:29
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 7, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 84.86%. Comparing base (f9c01c7) to head (3efe805).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #5921      +/-   ##
==========================================
- Coverage   86.18%   84.86%   -1.32%     
==========================================
  Files          60       60              
  Lines       18731    18731              
==========================================
- Hits        16143    15896     -247     
- Misses       2588     2835     +247     

☔ 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.

@mtfriesen mtfriesen marked this pull request as ready for review April 7, 2026 15:32
@mtfriesen mtfriesen requested a review from a team as a code owner April 7, 2026 15:32
@ProjectsByJackHe
Copy link
Copy Markdown
Contributor

@copilot the test.yml syntax is not valid.

@mtfriesen
Copy link
Copy Markdown
Contributor

@copilot resolve this CI error:

GitHub Actions
/ .github/workflows/test.yml
Invalid workflow file

(Line: 188, Col: 7): 'shell' is already defined, (Line: 189, Col: 7): 'run' is already defined

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 7, 2026

@copilot resolve this CI error:

...

Fixed in commit 3efe805. The - name: Install ETW Manifest step separator was accidentally deleted when removing the Linux XDP step, causing its if:, shell:, and run: fields to be orphaned into the preceding "Prepare Machine" step — resulting in the duplicate shell and run keys. Restored the missing - name: line to properly separate the two steps.

@mtfriesen mtfriesen enabled auto-merge (squash) April 7, 2026 19:58
@mtfriesen mtfriesen merged commit f2e5689 into main Apr 7, 2026
500 of 501 checks passed
@mtfriesen mtfriesen deleted the copilot/remove-linux-xdp-support branch April 7, 2026 20:38
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.

Linux XDP support should be removed

3 participants