Skip to content

Commit e10f0e2

Browse files
committed
Skip demoted, do multipath probes.
1 parent 31acd57 commit e10f0e2

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

picoquic/sender.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4228,13 +4228,24 @@ void picoquic_select_next_path_tuple(picoquic_cnx_t* cnx, uint64_t current_time,
42284228
/* First check whether path contol messages are needed */
42294229
for (int path_index = 0; path_index < cnx->nb_paths; path_index++)
42304230
{
4231+
if (cnx->path[path_index]->path_is_demoted) {
4232+
continue;
4233+
}
42314234
if ((*next_tuple = picoquic_check_path_control_needed(cnx, cnx->path[path_index], current_time, next_wake_time)) != NULL) {
42324235
*next_path = cnx->path[path_index];
42334236
(*next_path)->challenger++;
42344237
break;
42354238
}
4239+
else if (cnx->path[path_index]->first_tuple->challenge_verified && cnx->path[path_index]->nb_retransmit > 0 &&
4240+
cnx->cnx_state == picoquic_state_ready && cnx->path[path_index]->bytes_in_transit == 0) {
4241+
cnx->path[path_index]->is_multipath_probe_needed = 1;
4242+
*next_path = cnx->path[path_index];
4243+
(*next_path)->challenger++;
4244+
break;
4245+
}
42364246
}
42374247
if (*next_path != NULL) {
4248+
*next_tuple = (*next_path)->first_tuple;
42384249
/* we are done */
42394250
}
42404251
else if (cnx->nb_paths == 1) {

0 commit comments

Comments
 (0)