#!/bin/bash

MB=1048576
MAX=$((10240*MB/8))
WARN=100
CRIT=100
if [ "$2" ]; then
    MAX=$(($2*MB/8))
fi
if [ "$4" ]; then
    WARN=$3
    CRIT=$4
fi

DIR="/sys/class/net/$1/statistics"

declare -A arr
for fn in $DIR/*; do
    val="`basename $fn`"
    arr[$val]=`cat $fn`
done

add() {
    rx_name="rx_$1"
    tx_name="tx_$1"
    suffix="$2"
    printf " rx_%s=%d%s tx_%s=%d%s" \
      "$1" ${arr[$rx_name]} "$suffix" "$1" ${arr[$tx_name]} "$suffix"
}

printf "OK|collisions=%sc;1;10;0;%d" ${arr[collisions]} $MAX
mw=$((MAX*WARN/100))
mc=$((MAX*CRIT/100))
add 'bytes' "c;$mw;$mc;0;$MAX"
add 'packets' "c;;;0;$MAX"
add 'errors' "c;1;10;0;$MAX"
add 'dropped' "c;1;10;0;$MAX"
printf "\n"

exit 0
