summaryrefslogtreecommitdiffstats
path: root/src/kernel/dnbd3.h
diff options
context:
space:
mode:
authorFrederic Robra2019-08-13 15:13:04 +0200
committerFrederic Robra2019-08-13 15:13:04 +0200
commit3dcda423a8c3bfeacdb11cf164a717ce7ca78572 (patch)
tree1e87d6703df443352f80747c9fff77727f73641a /src/kernel/dnbd3.h
parentadded todos (diff)
downloaddnbd3-ng-3dcda423a8c3bfeacdb11cf164a717ce7ca78572.tar.gz
dnbd3-ng-3dcda423a8c3bfeacdb11cf164a717ce7ca78572.tar.xz
dnbd3-ng-3dcda423a8c3bfeacdb11cf164a717ce7ca78572.zip
changed strategy to connect to diffrent sockets
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;
/**