diff options
author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2022-04-03 12:01:20 +0200 |
---|---|---|
committer | Sander Vrijders <sander@ouroboros.rocks> | 2022-04-03 18:01:02 +0200 |
commit | 783d3adfdb0a074ae7a6e0dd37fe8efaf7e2b39a (patch) | |
tree | 6a57ba7ac8bcb16e1c690b9e0db0613aa4a5d834 /src/lib/CMakeLists.txt | |
parent | 8f6985bb6dc919408f57ac4cafa8e7a04f917f5d (diff) | |
download | ouroboros-783d3adfdb0a074ae7a6e0dd37fe8efaf7e2b39a.tar.gz ouroboros-783d3adfdb0a074ae7a6e0dd37fe8efaf7e2b39a.zip |
lib: Fix RTO update on timeout
This fixes the RTO doubling on timeout according to Karn/Partridge.
Exponentially increasing RTO when it times out (e.g. doubling)
fixes the problem that a sudden increase in real RTT starves the sRTT
updates by never getting out of backoff as retransmitted packets can't
update RTT.
Added an parameter to make it less aggressive, default is doubling.
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/lib/CMakeLists.txt')
-rw-r--r-- | src/lib/CMakeLists.txt | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 4f7d5d18..196bb905 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -200,6 +200,8 @@ set(FRCT_LINUX_RTT_ESTIMATOR TRUE CACHE BOOL "Use Linux RTT estimator formula instead of the TCP RFC formula") set(FRCT_RTO_MDEV_MULTIPLIER 2 CACHE STRING "Multiplier for deviation term in the RTO: RTO = sRTT + (mdev << X)") +set(FRCT_RTO_INC_FACTOR 0 CACHE STRING + "Divisor for RTO increase after timeout: RTO += RTX >> X, 0: Karn/Partridge") set(FRCT_RTO_MIN 250 CACHE STRING "Minimum Retransmission Timeout (RTO) for FRCT (us)") set(FRCT_TICK_TIME 5000 CACHE STRING |