[PATCH 09/11] batctl: ping: fix rtt minimum tracking when a sample is 0.0

Sven Eckelmann <[email protected]> Tue, 07 Jul 2026 20:46:51 +0200
Newsgroups org.open-mesh.lists.batman
Message-ID <[email protected]>
The rtt minimum is tracked with "if (time_delta < min || min == 0.0)",
using min's initial value of 0.0 as a "not set yet" sentinel. But 0.0 is
also a valid measurement which must be accepted as minimum.

packets_in is still 0 while the first reply is processed (it is incremented
afterwards), so use it to detect the first sample instead of overloading
min == 0.0.

Fixes: 2474249a6312 ("[batctl] ping utility updated to latest batman adv")
Signed-off-by: Sven Eckelmann <[email protected]>
---
 ping.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/ping.c b/ping.c
index 7ba872a..b5c641b 100644
--- a/ping.c
+++ b/ping.c
@@ -300,10 +300,14 @@ static int ping(struct state *state, int argc, char **argv)
 
 			printf("\n");
 
-			if (time_delta < min || min == 0.0)
+			if (packets_in == 0)
 				min = time_delta;
+
+			min = fmin(time_delta, min);
+
 			if (time_delta > max)
 				max = time_delta;
+
 			avg += time_delta;
 			mdev += time_delta * time_delta;
 			packets_in++;

-- 
2.47.3