From: Johannes Truschnigg Date: Sat, 12 Mar 2022 10:41:55 +0000 (+0100) Subject: Initial import X-Git-Url: https://johannes.truschnigg.info/gitweb/?a=commitdiff_plain;h=b1b6525cce311dec83d28c2aac6d1aba3ac645f7;p=sqm_lagthrottle Initial import --- b1b6525cce311dec83d28c2aac6d1aba3ac645f7 diff --git a/__lagdetect.awk b/__lagdetect.awk new file mode 100644 index 0000000..1593b8a --- /dev/null +++ b/__lagdetect.awk @@ -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 index 0000000..3329f2f --- /dev/null +++ b/lagdetect.sh @@ -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