-
Notifications
You must be signed in to change notification settings - Fork 585
Add support for both Qtip and UDP traffic for Server Listeners. #4803
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #4803 +/- ##
==========================================
+ Coverage 84.98% 87.23% +2.25%
==========================================
Files 57 57
Lines 17952 17982 +30
==========================================
+ Hits 15256 15687 +431
+ Misses 2696 2295 -401 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
nibanks
reviewed
Feb 14, 2025
nibanks
reviewed
Mar 27, 2025
nibanks
reviewed
Mar 27, 2025
nibanks
reviewed
Mar 27, 2025
nibanks
reviewed
Mar 28, 2025
nibanks
reviewed
Mar 28, 2025
nibanks
reviewed
Mar 28, 2025
guhetier
reviewed
Mar 28, 2025
nibanks
reviewed
Mar 31, 2025
nibanks
reviewed
Mar 31, 2025
nibanks
approved these changes
Mar 31, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Currently, we have an execution parameter (QUIC_EXECUTION_CONFIG_FLAG_QTIP) that you set to either process packets via QTIP or normal QUIC/UDP traffic.
For a server listener, that means you can only talk to clients with the same execution profile as you; you either deal over QTIP or QUIC/UDP.
This is inconvenient and sometimes a blocker when you want your listener to accept from clients with varying execution parameters (QTIP through the Azure load balancer, normal QUIC/UDP for on-prem clients)
Changes
The main behavior change is that now all Server listeners created will accept both QTIP and QUIC+udp traffic by default when XDP is configured and running correctly.
To support this new design and make testing a bit easier, we also add a knob (QUIC_SETTINGS) to control whether a connection created / listener created is going to send QUIC+udp/QTIP.
This pull-request also updates the behavior of QUIC_EXECUTION_CONFIG_FLAG_QTIP: If you set this flag, all client connections created will default to using QTIP unless otherwise specified. Note that the QUIC_EXECUTION_CONFIG_FLAG_QTIP does not impact server Listeners as they will always accept both QUIC/QTIP traffic assuming XDP is configured and running correctly.
This PR adds an API (connection Get/Set parameter) for client connections to specify whether the connection sends normal QUIC and/or TCP traffic.
Closes: #3516
Testing
Added a datatest to alternate between creating normal QUIC connections and QTIP connections, where they all ping the same listener.
Documentation
QTIPEnabled
inQUIC_SETTINGS
will be documented.