#!/bin/bash

. lib.sh

numjobs=" 1 `seq 2 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...
    
    for i in $numjobs; do
	cleanupgw
	lastif=can0
	for j in `seq $((i-1))`; do
	    sshgw "if ! ip l show dev vcan$j >/dev/null 2>&1; then ip link add dev vcan$j type vcan && ip link set vcan$j up; fi"
	    sshgw cangw -A -s $lastif -d vcan$j -e -f $(printf %x:C00007FF $((j-1))) -m SET:I:$(printf %x $j).0.0000000000000000
	    lastif=vcan$j
	done
	sshgw cangw -A -s $lastif -d can1 -f $(printf %x:C00007FF $((i-1)))

	latester -d can0 -d can1 -d can2 -c $COUNT -i 0 $(traffic_and_length 2) -n hops$i
    done
}

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 multiple VCAN interfaces"
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=1
    for i in $numjobs; do
	echo_plot "\"hops$i-hist.txt\" with lp lt $lt title \"$i GW jobs, $((i-1)) vcans\""
        lt=$((lt+1))
    done
}


test_end