diff options
Diffstat (limited to 'src/kernel/dnbd3.h')
-rw-r--r-- | src/kernel/dnbd3.h | 13 |
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; /** |