Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

HyStart++ implementation [RFC 9406] #1840

Draft
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

hfstco
Copy link
Collaborator

@hfstco hfstco commented Feb 18, 2025

WORK IN PROGRESS

RFC 9406

To avoid big changes in the testbed, prevent problems in currently running research using picoquic and I also want to compare SS, HyStart and HyStart++ for my research, HyStart++ can be enabled as an option. Current HyStart implementation is still the default option.

alg_number:
0 = HyStart disabled (Slow Start)
1 = HyStart enabled (default option)
2 = HyStart++ enabled

./picoquicdemo -H <alg_number>
picoquic_set_default_hystart_algorithm(quic, alg_number)
picoquic_set_hystart_algorithm(cnx, alg_number)

HyStart++ is only implemented into CUBIC currently. I want to implement it for more CC algos and write some test cases before the code is merged into the master branch.

Will update this PR with more information and results.

#1694

@hfstco hfstco changed the title Hystart++ implementation [RFC 9406] HyStart++ implementation [RFC 9406] Feb 18, 2025
@huitema
Copy link
Collaborator

huitema commented Feb 18, 2025

I will look at the link failure issue, that should be simple using Visual Studio. Then prepare a PR for your branch.

@hfstco
Copy link
Collaborator Author

hfstco commented Feb 18, 2025

I will look at the link failure issue, that should be simple using Visual Studio. Then prepare a PR for your branch.

Thank you! I am not using Windows/Visual Studio and haven't enough time today to fire up my VM.

@huitema
Copy link
Collaborator

huitema commented Feb 18, 2025

Seems to be working now. I only had to add hystart_test.c to the picoquictest project.

@huitema
Copy link
Collaborator

huitema commented Feb 18, 2025

Question: how do you expect to specify "use of cubic and hystart++" in a run of picoquic_ns?

@hfstco
Copy link
Collaborator Author

hfstco commented Feb 19, 2025

Question: how do you expect to specify "use of cubic and hystart++" in a run of picoquic_ns?

I think the best idea is to create an additional variable to st_picoquic_ns_spec_t(e.g. int hystart_algo) and set the default HyStart algorithm in picoquic_ns_create_ctx() for the quic contexts by using picoquic_set_default_hystart_algorithm() or picoquic_set_hystart_algorithm().

Edit: Maybe it is good idea to introduce a enum instead of using an int for hystart_algo.
Edit: Have added an example.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants