Skip to content

add linuxquic implementation and enable it in ci#428

Open
lxin wants to merge 2 commits intoquic-interop:masterfrom
lxin:linuxquic
Open

add linuxquic implementation and enable it in ci#428
lxin wants to merge 2 commits intoquic-interop:masterfrom
lxin:linuxquic

Conversation

@lxin
Copy link

@lxin lxin commented Feb 13, 2025

This patchset integrates linuxquic into the quic interop runner and enables it in CI.

  • The 1st patch adds linuxquic testing image into the implementation.
  • The 2nd patch enables linuxquic in interop CI tests

With this patchset, interop tests CI can now run successfully with additional images, as shown in https://github.com/lxin/quic-interop-runner/actions/runs/22547285220

Thanks to Moritz Buhl for initiating the interop tests for linuxquic.

Note

Add linuxquic implementation and enable it in CI interop tests

  • Adds a linuxquic entry to implementations_quic.json pointing to quay.io/lxin/linuxquic-interop:latest.
  • In implementations.py, linuxquic is filtered out of the returned implementations unless /usr/include/linux/quic.h is present on the host.
  • Adds a CI step in interop-test.yml that clones and builds the Linux QUIC kernel module when the client or server is linuxquic, ensuring the header file exists before tests run.

Macroscope summarized b4d500b.

@larseggert
Copy link
Contributor

@lxin I tried to add linuxquic to the neqo CI (mozilla/neqo#2507) but all tests are failing. What am I doing wrong?

@miyangmia
Copy link

miyangmia commented Mar 18, 2025

@larseggert Oh, I just checked your commit. As linuxquic implement QUIC in kernel, you need to install the QUIC kernel module on the host, as it does in the patch "ci: enable linuxquic in interop tests ".

@lxin
Copy link
Author

lxin commented Mar 18, 2025

@larseggert FYI, The result of the interop test I ran with this patchset on Mar 9th:

Screenshot 2025-03-09 at 13-46-06 QUIC Interop Runner

@alaendle
Copy link

@marten-seemann I just wanted to ask if it makes sense to consider adding a new Quic implementation right now, because I've seen that this and other pull requests have been sitting for a while. And please don't misunderstand me, I simply want to avoid potentially creating work for no chance of integration. This shouldn't be interpreted as criticism or an expectation; I'm already happy with this framework and can use it for testing as is. So, thank you very much for providing this.

@marten-seemann
Copy link
Collaborator

@lxin With #466, you should now be able to add your implementation to the JSON file without any need for modifyinhg the workflows.

@lxin
Copy link
Author

lxin commented Mar 1, 2026

@marten-seemann Thanks for the work!

I’ve updated the MR accordingly. Since Linux QUIC runs as a kernel module, the tests require the module to be installed on the host. I’ve therefore added a step to interop-test.yml to install it when needed.

Hope that works for you. Thanks again!

lxin added 2 commits March 12, 2026 09:55
Add linuxquic-interop docker image in implementations_quic.json, and skip
it if the uapi header file /usr/include/linux/quic.h (kernel module)
doesn't exist in implementations.py.

Signed-off-by: Xin Long <[email protected]>
Build and install the Linux QUIC module in CI interop tests when
either the client or server is Linux QUIC, ensuring its availability
in interop CI.

Note if the kernel already supports QUIC (the uapi header file
/usr/include/linux/quic.h exists), it will not clone and build the
Linux QUIC module from lxin/quic repo.

Signed-off-by: Xin Long <[email protected]>
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.

5 participants