Skip to content
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

feat(s2n-quic): Stabilize congestion control provider and allow for custom congestion controllers #1758

Merged
merged 4 commits into from
May 11, 2023

Conversation

WesleyRosenblum
Copy link
Contributor

@WesleyRosenblum WesleyRosenblum commented May 10, 2023

Description of changes:

This change removes the unstable-provider-congestion-controller feature that was previously required to use a congestion controller other than the default. In addition, this change introduces a unstable-congestion-controller feature to allow users to implement their own congestion controllers. I've also included an example of implementing a custom congestion controller.

Call-outs:

The sealed trait pattern is used to prevent implementation of the CongestionController trait.

I believe removing the unstable-provider-congestion-controller feature is not backward compatible, though since it is unstable that is OK.

Testing:

Tested via the included example code.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

camshaft
camshaft previously approved these changes May 10, 2023
path_info: congestion_controller::PathInfo,
) -> Self::CongestionController {
MyCongestionController {
congestion_window: path_info.max_datagram_size as u32,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably not a big deal since this is a toy example but this essentially means you can only send 1 packet per RTT, right? Maybe we multiply it by 10, similar to cubic?

@WesleyRosenblum WesleyRosenblum requested a review from toidiu May 11, 2023 19:22
@WesleyRosenblum WesleyRosenblum merged commit b8bbc42 into main May 11, 2023
@WesleyRosenblum WesleyRosenblum deleted the WesleyRosenblum/customcc branch May 11, 2023 21:26
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.

3 participants