#!/bin/bash
#
#---
# Variaveis
#---
IPT="/usr/local/sbin/iptables"
TC="/sbin/tc"
UP="eth0"
interface=$1
remoteIP=$5
download=`grep Download /var/run/radattr.$interface | awk '{ print $2; }'`
upload=`grep Upload /var/run/radattr.$interface | awk '{ print $2; }'`
cliente=`grep Cliente /var/run/radattr.$interface | awk '{ print $2; }'`
contamark=`echo $interface | cut -c 4-99`
mark=`expr $contamark + 500`
echo "$download" > /tmp/$interface.download
echo "$upload" > /tmp/$interface.upload
echo "$cliente" > /tmp/$interface.cliente
echo "$mark" > /tmp/$interface.mark
if [ $download == ]
then
download="200"
upload="100"
fi
#----
# DOWNLOAD
#----
$TC qdisc del dev $interface root 2> /dev/null > /dev/null
$TC qdisc add dev $interface root handle 1: htb
$TC class add dev $interface parent 1: classid 1:1 htb rate "$download"Kbit
$TC class add dev $interface parent 1:1 classid 1:${mark} htb rate "$download"Kbit ceil "$download"Kbit
$TC qdisc add dev $interface parent 1:${mark} handle $mark sfq perturb 10
$TC filter add dev $interface parent 1:0 protocol ip prio 1 u32 match ip dst ${remoteIP}/32 flowid 1:${mark}
#----
# UPLOAD
#----
$TC class add dev $UP parent 1:1 classid 1:${mark} htb rate "$upload"Kbit ceil "$upload"Kbit
$TC qdisc add dev $UP parent 1:${mark} handle $mark sfq perturb 10
$IPT -t mangle -A FORWARD -s $remoteIP -j MARK --set-mark $mark
$TC filter add dev $UP parent 1:0 protocol ip prio 1 handle $mark fw classid 1:${mark}
echo "PPP started at $(date):
interface = $interface
Remote IP = $remoteIP
download = $download
upload = $upload
mark = $mark
" >/tmp/$interface