[PATCH v3 5/5] ratp: Increase the initial RTO to 200ms

Jules Maselbas jmaselbas at kalray.eu
Tue Feb 7 08:20:55 PST 2023


The initial value for RTO is 100ms which might be a bit low. From the
RFC916 the RTO is expected to have a lower and upper bound but values
are not specified.  The RFC916 also define the calculation of the RTO
to be somewhere between 1.3 to 2.0 times the SRTT (which is currently
defined to 100ms).  Thus I propose to set the initial value of RTO to
200ms, to be 2.0 times greater than the initial SRTT.

Moreover, the current runtime calculation for RTO is done in the
function ratp_msg_done and has lower bound of 200ms:
    ri->srtt = (alpha * ri->srtt + (10 - alpha) * rtt) / 10;
    ri->rto = max(200, beta * ri->srtt / 10);

Signed-off-by: Jules Maselbas <jmaselbas at kalray.eu>
---
 lib/ratp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/ratp.c b/lib/ratp.c
index d5205a4e93..c597e96784 100644
--- a/lib/ratp.c
+++ b/lib/ratp.c
@@ -1648,7 +1648,7 @@ int ratp_establish(struct ratp *ratp, bool active, int timeout_ms)
 	INIT_LIST_HEAD(&ri->sendmsg);
 	ri->max_retransmission = 100;
 	ri->srtt = 100;
-	ri->rto = 100;
+	ri->rto = 200;
 	ri->active = active;
 
 	ri->in_ratp++;
-- 
2.17.1




More information about the barebox mailing list