Refresh pending retransmit timer when timestamp RTT changes

This commit is contained in:
evgeny committed 2026-10-24 17:26:59 +02:00
1 parent 83734c920d
commit 90dff0b2f2
2 files changed
+3 -1

No files matched your search

+2 -1
View File
@@ -59,7 +59,8 @@ HELLO/CHALLENGE/CONFIRM и keepalive передаются своим незав
попытки доживали до ACK и DATA-измерения продолжались; BBR RTT/min_rtt по этому сигналу не обновляются.
Без обоих измерений RTO=1с.
- FIFO содержит физические попытки в порядке принятия транспортом. Таймер назначается по старейшей;
при изменении RTO проверяется новый срок. Допускается оставить уже запланированную более раннюю проверку.
при изменении RTO проверяется новый срок. Timestamp handler пересчитывает таймер сразу после обновления RTT,
включая сокращение без новых DATA/ACK. Допускается оставить уже запланированную более раннюю проверку.
uasync округляет задержку вверх до миллисекунды; callback может выполниться позже расчётного срока.
- Истечение снимает только собственный физический flight и сообщает loss собственному BBR.
Если логический seq ещё не доставлен и других активных копий нет, он возвращается в input_send_q.
+1
View File
@@ -1473,6 +1473,7 @@ void etcp_conn_input(struct ETCP_DGRAM* pkt) {
etcp->last_rtt_cb_time = now_tb;
}
}
if (new_rtt != prev_rtt) etcp_tx_update_rto(pkt->link);
break;
}
case ETCP_SECTION_PAYLOAD: {