]> git.meshlink.io Git - utcp/commitdiff
Fix RTT measurement.
authorGuus Sliepen <guus@meshlink.io>
Sun, 5 Apr 2020 23:41:14 +0000 (01:41 +0200)
committerGuus Sliepen <guus@meshlink.io>
Sun, 5 Apr 2020 23:41:14 +0000 (01:41 +0200)
Commit 723d8c8b2d96834135f00c0ac4147282e1f0cc2c introduced a bug where we
fail to subtract two timespecs correctly, resulting in incorrect RTT values.

utcp.c

diff --git a/utcp.c b/utcp.c
index 383e27f341b8e2c85a61da86013ac30184a24542..10d026efabf2679db6ca419c71131e5fecd7e582 100644 (file)
--- a/utcp.c
+++ b/utcp.c
@@ -61,8 +61,7 @@ static void timespec_sub(const struct timespec *a, const struct timespec *b, str
 }
 
 static int32_t timespec_diff_usec(const struct timespec *a, const struct timespec *b) {
-       int64_t diff = (a->tv_sec - b->tv_sec) * 1000000000 + a->tv_sec - b->tv_sec;
-       return diff / 1000;
+       return (a->tv_sec - b->tv_sec) * 1000000 + (a->tv_nsec - b->tv_nsec) / 1000;
 }
 
 static bool timespec_lt(const struct timespec *a, const struct timespec *b) {