Skip to content

Commit a90123b

Browse files
authored
Merge pull request #1683 from private-octopus/revise-loss-on-timer
Revise loss on timer
2 parents 8950f5d + f3ed453 commit a90123b

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ else()
88
endif()
99

1010
project(picoquic
11-
VERSION 1.1.19.11
11+
VERSION 1.1.19.12
1212
DESCRIPTION "picoquic library"
1313
LANGUAGES C CXX)
1414

picoquic/loss_recovery.c

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -641,22 +641,20 @@ static int picoquic_is_packet_probably_lost(picoquic_cnx_t* cnx,
641641
*is_timer_expired = 1;
642642
}
643643
}
644-
else {
644+
else if (old_p->send_path->nb_retransmit == 0) {
645645
/* RACK has failure modes if the sender keeps adding small packets to the
646-
* retransmit queue. In that case, we pick a safe timer based retransmit.
646+
* retransmit queue. This may push the send time of the "last" packet
647+
* beyond a reasonable value.
648+
* In that case, we pick a safe timer based retransmit.
647649
* The "timer" condition will have consequences on congestion control;
648-
* we only set it if the packet is ack eliciting and if another
649-
* path is plausible.
650+
* we only set it if the packet is ack eliciting.
650651
*/
651652
uint64_t alt_retransmit_timer = old_p->send_time + 2*picoquic_current_retransmit_timer(cnx, old_p->send_path);
652653

653654
if (alt_retransmit_timer < last_packet->send_time) {
654655
retransmit_time_timer = alt_retransmit_timer;
655-
656656
if (current_time >= retransmit_time_timer) {
657-
if (picoquic_is_packet_ack_eliciting(old_p) &&
658-
(cnx->is_multipath_enabled || cnx->is_simple_multipath_enabled) &&
659-
cnx->nb_paths > 1)
657+
if (picoquic_is_packet_ack_eliciting(old_p))
660658
{
661659
*is_timer_expired = 1;
662660
}

picoquic/picoquic.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
extern "C" {
4141
#endif
4242

43-
#define PICOQUIC_VERSION "1.1.19.11"
43+
#define PICOQUIC_VERSION "1.1.19.12"
4444
#define PICOQUIC_ERROR_CLASS 0x400
4545
#define PICOQUIC_ERROR_DUPLICATE (PICOQUIC_ERROR_CLASS + 1)
4646
#define PICOQUIC_ERROR_AEAD_CHECK (PICOQUIC_ERROR_CLASS + 3)

0 commit comments

Comments
 (0)