From 3350be382c6a7ce0752fb16ab098094053d73649 Mon Sep 17 00:00:00 2001 From: Jop Zitman Date: Fri, 20 Dec 2024 16:23:53 +0800 Subject: [PATCH] Add congestion control algorithm option to command line --- include/slipstream.h | 5 +++-- src/slipstream.c | 10 ++++++---- src/slipstream_client.c | 4 ++-- src/slipstream_server.c | 4 ++-- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/include/slipstream.h b/include/slipstream.h index 24102a2..1237d91 100644 --- a/include/slipstream.h +++ b/include/slipstream.h @@ -20,10 +20,11 @@ extern "C" { -int picoquic_slipstream_client(int listen_port, char const* resolver_addresses_filename, const char* domain_name); +int picoquic_slipstream_client(int listen_port, char const* resolver_addresses_filename, const char* domain_name, + const char* cc_algo_id); int picoquic_slipstream_server(int server_port, const char* pem_cert, const char* pem_key, char const* upstream_name, - int upstream_port, const char* domain_name); + int upstream_port, const char* domain_name, const char* cc_algo_id); #ifdef __cplusplus } diff --git a/src/slipstream.c b/src/slipstream.c index abb858f..2a48c72 100644 --- a/src/slipstream.c +++ b/src/slipstream.c @@ -34,25 +34,27 @@ int main(int argc, char** argv) usage(argv[0]); } else if (strcmp(argv[1], "client") == 0) { - if (argc != 5) { + if (argc != 6) { usage(argv[0]); } else { int local_port = atoi(argv[2]); char const* resolver_addresses_filename = argv[3]; const char* domain_name = argv[4]; - exit_code = picoquic_slipstream_client(local_port, resolver_addresses_filename, domain_name); + const char* cc_algo_id = argv[5]; + exit_code = picoquic_slipstream_client(local_port, resolver_addresses_filename, domain_name, cc_algo_id); } } else if (strcmp(argv[1], "server") == 0) { - if (argc != 8) { + if (argc != 9) { usage(argv[0]); } else { int server_port = get_port(argv[0], argv[2]); int remote_port = get_port(argv[0], argv[6]); const char* domain_name = argv[7]; - exit_code = picoquic_slipstream_server(server_port, argv[3], argv[4], argv[5], remote_port, domain_name); + const char* cc_algo_id = argv[8]; + exit_code = picoquic_slipstream_server(server_port, argv[3], argv[4], argv[5], remote_port, domain_name, cc_algo_id); } } else diff --git a/src/slipstream_client.c b/src/slipstream_client.c index 1727eb3..c0da91d 100644 --- a/src/slipstream_client.c +++ b/src/slipstream_client.c @@ -735,7 +735,7 @@ static int slipstream_connect(struct sockaddr_storage* server_address, return ret; } -int picoquic_slipstream_client(int listen_port, char const* resolver_addresses_filename, const char* domain_name) { +int picoquic_slipstream_client(int listen_port, char const* resolver_addresses_filename, const char* domain_name, const char* cc_algo_id) { /* Start: start the QUIC process */ int ret = 0; uint64_t current_time = 0; @@ -760,7 +760,7 @@ int picoquic_slipstream_client(int listen_port, char const* resolver_addresses_f config.mtu_max = mtu; config.initial_send_mtu_ipv4 = mtu; config.initial_send_mtu_ipv6 = mtu; - config.cc_algo_id = "cubic"; + config.cc_algo_id = cc_algo_id; config.multipath_option = 1; config.use_long_log = 1; config.do_preemptive_repeat = 1; diff --git a/src/slipstream_server.c b/src/slipstream_server.c index 13365ea..0eb3a81 100644 --- a/src/slipstream_server.c +++ b/src/slipstream_server.c @@ -649,7 +649,7 @@ void server_sighandler(int signum) { } int picoquic_slipstream_server(int server_port, const char* server_cert, const char* server_key, - char const* upstream_name, int upstream_port, const char* domain_name) { + char const* upstream_name, int upstream_port, const char* domain_name, const char* cc_algo_id) { /* Start: start the QUIC process with cert and key files */ int ret = 0; uint64_t current_time = 0; @@ -679,7 +679,7 @@ int picoquic_slipstream_server(int server_port, const char* server_cert, const c config.mtu_max = mtu; config.initial_send_mtu_ipv4 = mtu; config.initial_send_mtu_ipv6 = mtu; - config.cc_algo_id = "cubic"; + config.cc_algo_id = cc_algo_id; config.multipath_option = 1; config.use_long_log = 1; config.do_preemptive_repeat = 1;