-
Notifications
You must be signed in to change notification settings - Fork 548
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
Add support for both Qtip and UDP traffic for Server Listeners. #4803
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #4803 +/- ##
==========================================
+ Coverage 85.92% 86.55% +0.62%
==========================================
Files 56 56
Lines 17425 17459 +34
==========================================
+ Hits 14973 15111 +138
+ Misses 2452 2348 -104 ☔ View full report in Codecov by Sentry. |
@@ -6754,6 +6754,26 @@ QuicConnParamSet( | |||
break; | |||
#endif | |||
|
|||
#ifdef QUIC_API_ENABLE_PREVIEW_FEATURES |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We only have these ifdef checks in the public headers. We always compile in the preview features internally.
// | ||
// Whether to use QTIP on sends for this connection. | ||
// | ||
BOOLEAN SendViaQtip : 1; | ||
|
||
// | ||
// Whether to allow QTIP on receives for this connection. | ||
// | ||
BOOLEAN RecvViaQtip : 1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are you separating out send/receive? I'd recommend just using one variable, UseQTIP
.
#define QUIC_PARAM_CONN_SEND_DSCP 0x05000019 // uint8_t | ||
|
||
#ifdef QUIC_API_ENABLE_PREVIEW_FEATURES | ||
#define QUIC_PARAM_CONN_SEND_QTIP 0x0500001A // uint8_t (BOOLEAN) | ||
#define QUIC_PARAM_CONN_RECV_QTIP 0x0500001B // uint8_t (BOOLEAN) | ||
#endif |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#define QUIC_PARAM_CONN_SEND_DSCP 0x05000019 // uint8_t | |
#ifdef QUIC_API_ENABLE_PREVIEW_FEATURES | |
#define QUIC_PARAM_CONN_SEND_QTIP 0x0500001A // uint8_t (BOOLEAN) | |
#define QUIC_PARAM_CONN_RECV_QTIP 0x0500001B // uint8_t (BOOLEAN) | |
#endif | |
#define QUIC_PARAM_CONN_SEND_DSCP 0x05000019 // uint8_t | |
#ifdef QUIC_API_ENABLE_PREVIEW_FEATURES | |
#define QUIC_PARAM_CONN_SEND_QTIP 0x0500001A // uint8_t (BOOLEAN) | |
#define QUIC_PARAM_CONN_RECV_QTIP 0x0500001B // uint8_t (BOOLEAN) | |
#endif |
As I indicated in the other comment, let's just use one new value QUIC_PARAM_CONN_QTIP
.
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)
Closes: #3516
Testing
Test modifications are required to ensure normal QUIC/UDP endpoint is still supported when you set the QUIC_EXECUTION_CONFIG_FLAG_QTIP parameter.
Documentation
N/A