-
Notifications
You must be signed in to change notification settings - Fork 554
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
Support for QTIP and UDP on QUIC #3516
Comments
UPDATE: A couple of things:
|
Regarding (2), I think it should be a separate SetParam parameter for listeners and connections, instead of in the QUIC_SETTINGS struct. Putting it in the QUIC_SETTINGS means that this niche feature is visible to many more users of MsQuic, and may encourage more to use it. My understanding is that it's a temporary solution to a specific Azure limitation. I'd rather not immortalize it in the QUIC_SETTINGS struct. |
Great point! I agree. |
Sounds good, so here's the new design: Added 2 new Set/Get params. 1 for CONN, 1 for listener. For now, we still keep the global EXECUTION_CONFIG_QTIP flag. For the listener, the idea is that we will always support QTIP underneath the hood, but depending on the listener flag, we decide whether we care to bubble up any QTIP updates to the QUIC layer. And again, if the app did not explicitly set the listener param, we will just inherit what the global execution config flag was. |
UPDATE: Here's the new design: However, you can use Connection setparams to control whether a client connection uses QTIP or QUIC. You can do this regardless of the state of QUIC_EXECUTION_CONFIG_FLAG_QTIP. You can not modify the Connection setparams for QTIP if the Connection is a part of a listener. |
Describe the feature you'd like supported
QTIP feature allows QUIC to be sent over TCP/IP for the purposes of framing to leverage SLB fast path support in Azure. But this is a binary flag where the feature works either with UDP or with TCP. It would be better to have a listener support both endpoints to support clients connecting from op-prem and Azure simultaneously.
Proposed solution
Have an additional flag to support XDP with both QTIP and UDP in QUIC_EXECUTION_CONFIG_FLAGS like shown below
typedef enum QUIC_EXECUTION_CONFIG_FLAGS {
QUIC_EXECUTION_CONFIG_FLAG_NONE = 0x0000,
#ifdef QUIC_API_ENABLE_PREVIEW_FEATURES
QUIC_EXECUTION_CONFIG_FLAG_QTIP = 0x0001,
QUIC_EXECUTION_CONFIG_FLAG_ALL = 0x0002,
#endif
} QUIC_EXECUTION_CONFIG_FLAGS;
Additional context
No response
The text was updated successfully, but these errors were encountered: