Skip to content

Commit ccb2073

Browse files
committed
Add cc options to simulation specification
1 parent 965b8ad commit ccb2073

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

picoquictest/cc_compete_test.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,16 +225,19 @@ int cc_ns_low_and_up_test()
225225
return picoquic_ns(&spec);
226226
}
227227

228-
/* Check that the picoquic_ns simulations can correctly test the low_and_up scenario.
228+
/* Check that the picoquic_ns simulations can correctly test the wifi fade scenario.
229+
* also check the cc options are handled as expected.
229230
*/
230231
int cc_ns_wifi_fade_test()
231232
{
232233
picoquic_ns_spec_t spec = { 0 };
233234
picoquic_connection_id_t icid = { { 0xcc, 0xff, 0xbb, 0, 0, 0, 0, 0}, 8 };
234235
spec.main_cc_algo = picoquic_bbr_algorithm;
236+
spec.main_cc_options = "T50000";
235237
spec.main_start_time = 0;
236238
spec.main_scenario_text = cc_compete_batch_scenario_4M;
237239
spec.background_cc_algo = picoquic_bbr_algorithm;
240+
spec.background_cc_options = "T50000";
238241
spec.background_start_time = 0;
239242
spec.background_scenario_text = cc_compete_batch_scenario_10M;
240243
spec.nb_connections = 1;

picoquictest/picoquic_ns.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ typedef struct st_picoquic_ns_client_t {
102102
uint64_t start_time;
103103
picoquic_cnx_t* cnx;
104104
picoquic_congestion_algorithm_t* cc_algo;
105+
char const* cc_option_string;
105106
quicperf_ctx_t* quicperf_ctx;
106107
picoquic_connection_id_t icid;
107108
} picoquic_ns_client_t;
@@ -143,7 +144,7 @@ int picoquic_ns_server_callback(picoquic_cnx_t* cnx,
143144
if (cc_ctx->client_ctx[i]->cnx != NULL &&
144145
picoquic_compare_connection_id(&cnx->path[0]->p_remote_cnxid->cnx_id,
145146
&cc_ctx->client_ctx[i]->cnx->path[0]->p_local_cnxid->cnx_id) == 0) {
146-
picoquic_set_congestion_algorithm(cnx, cc_ctx->client_ctx[i]->cc_algo);
147+
picoquic_set_congestion_algorithm_ex(cnx, cc_ctx->client_ctx[i]->cc_algo, cc_ctx->client_ctx[i]->cc_option_string);
147148
ret = 0;
148149
}
149150
}
@@ -194,11 +195,13 @@ int picoquic_ns_create_client_ctx(picoquic_ns_ctx_t* cc_ctx, picoquic_ns_spec_t*
194195
if (client_id == 0) {
195196
client_ctx->start_time = spec->main_start_time;
196197
client_ctx->cc_algo = spec->main_cc_algo;
198+
client_ctx->cc_option_string = spec->main_cc_options;
197199
scenario_text = spec->main_scenario_text;
198200
}
199201
else {
200202
client_ctx->start_time = spec->background_start_time;
201203
client_ctx->cc_algo = spec->background_cc_algo;
204+
client_ctx->cc_option_string = spec->background_cc_options;
202205
scenario_text = spec->background_scenario_text;
203206
}
204207
if ((client_ctx->quicperf_ctx = quicperf_create_ctx(scenario_text)) == NULL) {
@@ -584,7 +587,7 @@ int picoquic_ns_start_connection(picoquic_ns_ctx_t* cc_ctx, int cnx_id)
584587
ret = -1;
585588
}
586589
else {
587-
picoquic_set_congestion_algorithm(cc_ctx->client_ctx[cnx_id]->cnx, cc_ctx->client_ctx[cnx_id]->cc_algo);
590+
picoquic_set_congestion_algorithm_ex(cc_ctx->client_ctx[cnx_id]->cnx, cc_ctx->client_ctx[cnx_id]->cc_algo, cc_ctx->client_ctx[cnx_id]->cc_option_string);
588591
picoquic_set_callback(cc_ctx->client_ctx[cnx_id]->cnx, quicperf_callback,
589592
cc_ctx->client_ctx[cnx_id]->quicperf_ctx);
590593
cc_ctx->client_ctx[cnx_id]->cnx->local_parameters.max_datagram_frame_size = 1532;

picoquictest/picoquic_ns.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@ typedef struct st_picoquic_ns_spec_t {
6262
const char* main_scenario_text;
6363
const char* background_scenario_text;
6464
picoquic_congestion_algorithm_t* main_cc_algo;
65+
char const* main_cc_options;
6566
picoquic_congestion_algorithm_t* background_cc_algo;
67+
char const* background_cc_options;
6668
int nb_connections;
6769
double data_rate_in_gbps; /* datarate, server to clients, defaults to 10 mbps */
6870
double data_rate_up_in_gbps; /* datarate, server to clients, defaults to data rate */

0 commit comments

Comments
 (0)