tor_multipath_voip/scripts/parse_lib.sh
2019-09-17 00:44:13 +02:00

60 lines
2.1 KiB
Bash

get_xp() {
grep -rn "identifier=$1" ./out/*/info.txt|grep -Po "^./out/\w+"|grep -Po '\w+$$'|uniq
}
is_measurement_done() {
grep -q 'Measurement done' ./out/$1-$2/res/*.csv
}
extract_us() {
grep -Po '\d+µs' ./out/$1-$2/res/*.csv | grep -Po '\d+'
}
parse_latency() {
echo "run,conf,latency"
get_xp $1 | while read r; do
for i in $(seq 0 1 $2); do
is_measurement_done $r $i && extract_us $r $i | while read l; do
echo $r,$i,$l;
done
done
done
}
parse_thunder() {
echo "run,jmax,links,latency"
get_xp $1 | while read r; do
for i in $(seq 0 1 $2); do
links=$(grep -Po "thunder-server \d+" out/$r-$i/info.txt|grep -Po "\d+$")
jmax=$(grep -Po "thunder-server \d+ \d+" out/$r-$i/info.txt|grep -Po "\d+$")
is_measurement_done $r $i && extract_us $r $i | while read l; do
echo $r,$jmax,$links,$l;
done
done
done
}
parse_thunder_bw() {
echo "run,jmax,links,udp_sent,udp_rcv,cells_sent,cells_rcv"
get_xp $1 | while read r; do
for i in $(seq 0 1 $2); do
links=$(grep -Po "thunder-server \d+" out/$r-$i/info.txt|grep -Po "\d+$")
jmax=$(grep -Po "thunder-server \d+ \d+" out/$r-$i/info.txt|grep -Po "\d+$")
udp_sent=$(grep -Po "udp_sent: \d+" out/$r-$i/log/client-donar-stdout.log|grep -Po "\d+$")
udp_rcv=$(grep -Po "udp_rcv: \d+" out/$r-$i/log/client-donar-stdout.log|grep -Po "\d+$")
cells_sent=$(grep -Po "cells_sent: \d+" out/$r-$i/log/client-donar-stdout.log|grep -Po "\d+$")
cells_rcv=$(grep -Po "cells_rcv: \d+" out/$r-$i/log/client-donar-stdout.log|grep -Po "\d+$")
[ -n "$udp_sent" ] && [ -n "$udp_rcv" ] && [ -n "$cells_sent" ] && [ -n "$cells_rcv" ] && \
echo "$r,$jmax,$links,$udp_sent,$udp_rcv,$cells_sent,$cells_rcv"
done
done
}
parse_thunder_links() {
echo "run,ts,link_id,status,delta,duration,will_change,xp_time,durations_global,will_change_global"
get_xp $1 | while read r; do
for i in $(seq 0 1 $2); do
grep -q 'thunder-client 9900 30 100 8 200' out/$r-$i/info.txt && cat out/$r-$i/log/client-donar-stdout.log | ./links_parse.py $r-$i || true
done
done
}