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@xxxxxxxxx> --- 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