#!/bin/bash

. lib.sh

numjobs=`seq 0 2 10`

main() {
    if [ "$kvers" = 3.0.4-rt14-00008-gb2052fd -a "$load" = eth -a $traffic != oneatatime ]; then echo "Skipping eth test"; SKIPPED=1; return; fi

    if [ "$kvers" = 3.4.33-rt47-00004-gc58c9ae ]; then echo "Skipping test"; SKIPPED=1; return; fi; #All frames of these tests are returned as invalid...

    sshgw 'ip link add dev vcan0 type vcan && ip link set vcan0 up'
    for i in $numjobs; do
	cleanupgw
	sshgw cangw -A -s can0 -d vcan0 -e -f 0:C00007FF
	for j in `seq $i`; do
	    sshgw cangw -A -s vcan0 -d vcan0 -e -f $(printf %x:C00007FF $((j-1))) -m SET:I:$(printf %x $j).0.0000000000000000
	done
	sshgw cangw -A -s vcan0 -d can1 -f $(printf %x:C00007FF $i)

	latester -d can0 -d can1 -d can2 -c $COUNT -i 0 $(traffic_and_length 2) -n hops$i
    done
    sshgw ip link del dev vcan0
}

ADDITIONAL_PLOTS=detail

plot_cmds() {
    if [[ "$1" = detail ]]; then
	range=0:0.4
	echo "set logscale y"
	echo "set mxtics 5"
    else
	range=0.01:1000
	echo "set logscale xy"
    fi
    cat <<EOF
set title "Chained GWs on a single VCAN interface"
set grid xtics mxtics ytics mytics lw 1, lw 0.5
set xlabel "GW latency [ms]"
set ylabel "Latency profile [frames]"
plot [$range] [1:$COUNT] \\
EOF
    lt=2
    for i in $numjobs; do
	echo_plot "\"hops$i-hist.txt\" with lp lt $lt pt $lt title \"$((i+2)) GW jobs, 1 vcan\""
        lt=$((lt+1))
    done
}


test_end