]> johannes.truschnigg.info Git - sqm_lagthrottle/commitdiff
Initial import
authorJohannes Truschnigg <johannes@truschnigg.info>
Sat, 12 Mar 2022 10:41:55 +0000 (11:41 +0100)
committerJohannes Truschnigg <johannes@truschnigg.info>
Sat, 12 Mar 2022 10:41:55 +0000 (11:41 +0100)
__lagdetect.awk [new file with mode: 0644]
lagdetect.sh [new file with mode: 0755]

diff --git a/__lagdetect.awk b/__lagdetect.awk
new file mode 100644 (file)
index 0000000..1593b8a
--- /dev/null
@@ -0,0 +1,39 @@
+#!/usr/bin/awk -f
+BEGIN {
+  PINGSLOTS=5
+  split(PING_PEERS, pps, " ")
+  for (pp in pps) {
+    pn = pps[pp]
+    print "ping peer: " pn
+    slotindex[pn]=0
+  }
+}
+
+# 1.1.1.1      : [0], 1288 bytes, 10.3 ms (10.3 avg, 0% loss)
+# 192.168.1.50 : [0], timed out (NaN avg, 100% loss)
+/[0-9] bytes, [0-9]*.[0-9]* ms / {
+  pn=$1
+  seq=$3
+  bytes=$4
+  lat=$6
+  #printf("%s %db in %.2fms\n", pn, bytes, lat)
+  slotindex[pn]++
+  pingslot=pn ":" slotindex[pn]
+  pingstats[pingslot]=lat
+
+  if(slotindex[pn] % PINGSLOTS == 0) {
+    # print "slotindex reset for " pn
+    slotindex[pn]=0
+  }
+  for (ps in pingstats) {
+    print ps " " pingstats[ps]
+  }
+}
+
+function update_pingstats(peername, latency) {
+print peername " at " latency
+}
+
+
+END {
+}
diff --git a/lagdetect.sh b/lagdetect.sh
new file mode 100755 (executable)
index 0000000..3329f2f
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+PING_PEERS='1.1.1.1 8.8.8.8'
+
+def_gw_v4=$(traceroute -n -m 1 1.1.1.1 | awk '{if("1" == $1){print $2}}')
+
+fping --loop --retry=1 --size=1280 --period=500 --random "${def_gw_v4}" ${PING_PEERS} | awk -v PING_PEERS="${def_gw_v4} ${PING_PEERS}" -f __lagdetect.awk