summaryrefslogtreecommitdiffstats
path: root/src/kernel/dnbd3.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/dnbd3.h')
-rw-r--r--src/kernel/dnbd3.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/kernel/dnbd3.h b/src/kernel/dnbd3.h
index 2c3ec39..8fabc35 100644
--- a/src/kernel/dnbd3.h
+++ b/src/kernel/dnbd3.h
@@ -39,6 +39,9 @@
+
+#define RTT_FACTOR(rtt) (((rtt) * 3) / 2)
+
/**
* limit to which the other connected servers are only allowed to be that worser
* then the best rtt
@@ -72,6 +75,7 @@ extern struct workqueue_struct *dnbd3_wq;
struct dnbd3_server {
dnbd3_host_t host;
uint64_t rtts[4];
+ uint64_t avg_rtt;
uint16_t protocol_version;
uint16_t failures; // TODO failures runterzaehlen wenn wieder verbindung moeglich, seltener messen bei hohem failure count
@@ -208,7 +212,14 @@ struct dnbd3_cmd {
#define dnbd3_set_rtt_unreachable(server) \
(server)->rtts[0] = (server)->rtts[1] = (server)->rtts[2] \
- = (server)->rtts[3] = RTT_UNREACHABLE;
+ = (server)->rtts[3] = (server)->avg_rtt = \
+ RTT_UNREACHABLE;
+
+
+#define dnbd3_set_rtt_unknown(server) \
+ (server)->rtts[0] = (server)->rtts[1] = (server)->rtts[2] \
+ = (server)->rtts[3] = (server)->avg_rtt = \
+ RTT_UNREACHABLE / 2;
/**