hi all. i am currently now serving PPPoE in my area. i had a script generated from tcng that worked perfectly before i started serving PPPoE. the issue is not in the script it self BUT in that "tc" code is not shaping on the ethernet anymore BUT INSTEAD on the pppX devices. I tested it and talking jargon, what should i do? The issue is that for each PPPoE login, PPPoE-server creates on the server a pppX device. that is 10 logins means 10 ppp devices. from ppp0 till ppp9. and one might die upon disconnection.
Hello Rani,
: i am currently now serving PPPoE in my area. i had a script
: generated from tcng that worked perfectly before i started
: serving PPPoE. the issue is not in the script it self BUT in that
: "tc" code is not shaping on the ethernet anymore BUT INSTEAD on
: the pppX devices. I tested it and talking jargon, what should i
: do?
:
: The issue is that for each PPPoE login, PPPoE-server creates on
: the server a pppX device. that is 10 logins means 10 ppp devices.
: from ppp0 till ppp9. and one might die upon disconnection.
I''d suggest simply using the pppoe ip-up configuration scripts to
call the appropriate tc or tcng commands. Since ip-up should be
called something like this:
ip-up ppp0 $TTY $SPEED 192.168.0.4 10.0.0.4 $OTHER
Is ip-up called by YOUR pppoe-server binary? I am not able to test
this.
you should be able to create a script that would either execute tc
commands or a create tcng file on the fly. I created the basic
structure of such a script below, although you could probably
add/replace your own shell functions (tc_sfq, tc_my_complex_config)
with a much more complex traffic control configuration.
Good luck,
-Martin
#! /bin/bash
#
# -- add queuing to an interface brought up by pppd, 2006-04-11; -MAB
# GPL
#
# ip-up <iface> <tty> <speed> <local-IP>
<remote-IP> <ipparm>
dev="$1" && shift
pty="$1" && shift
spd="$1" && shift
lip="$1" && shift
rip="$1" && shift
logger () { command logger -it "${0##*/}" -- "$@" ; }
abort () { logger "$@" ; exit 1 ; }
tc_tbf () {
local dev="$1" && shift
local lip="$1" && shift
local rip="$1" && shift
test "$dev" = "" && abort "${FUNCNAME}()
called with no device name"
test "$lip" = "" && abort "${FUNCNAME}()
called with no local IP"
test "$rip" = "" && abort "${FUNCNAME}()
called with no remote IP"
cat <<-EOTC
tc qdisc add dev $dev root handle 1:0 tbf rate 1544kbit limit 20kB burst 3kB
EOTC
}
# -- run all commands in a single shell that we instruct to quit on any error
#
tc_tbf "$dev" "$lip" "$rip" | bash -e
# -- did the shell complete successfully?
#
test "$?" -gt 0 && abort "Could not install traffic
control on $dev."
logger "Installed traffic control configuration on $dev."
# -- end of file
--
Martin A. Brown --- Wonderfrog Enterprises --- martin@wonderfrog.net
hi, i use the roaringpenguin pppoe-server and limit the bandwidth per
interface with this script:
(im using freeradius plugins too, thats the reason of the
/var/run/radattr.pppx file)
(/etc/ppp/ip-up.d/0pppx_up)
#!/bin/sh
DOWN=`cat /var/run/radattr.$1 | grep
''RP-Downstream-Speed-Limit'' | cut -d ''
'' -f 2`
UP=`cat /var/run/radattr.$1 | grep ''RP-Upstream-Speed-Limit'' |
cut -d '' '' -f
2`
# limit Download Bandwidth with a simple htb qdisc and class (add QoS
here?...)
/sbin/tc qdisc add dev $1 root handle 1: htb default 1
/sbin/tc class add dev $1 parent 1: classid 1:1 htb rate ${DOWN}kbit ceil
${DOWN}kbit burst 1540
/sbin/tc qdisc add dev $1 handle ffff: ingress
/sbin/tc filter add dev $1 parent ffff: protocol ip prio 50 u32 \
match ip src 0.0.0.0/0 \
police rate ${UP}kbit burst 10k drop flowid :1
and have another script for deleting the rules
(/etc/ppp/ip-down.d/0pppx_down):
#!/bin/sh
/sbin/tc qdisc del dev $1 root
/sbin/tc qdisc del dev $1 ingress
ppp executes this scripts each time an interface gets up or down.
hope it helps.
Roberto Scattini
From: Rani Ahmed <rani79@idm.net.lb>
To: lartc@mailman.ds9a.nl
Subject: [LARTC] Shaping per IP in PPPoE
Date: Tue, 11 Apr 2006 18:49:29 +0300
hi all.
i am currently now serving PPPoE in my area.
i had a script generated from tcng that worked perfectly before i started
serving PPPoE.
the issue is not in the script it self BUT in that "tc" code is not
shaping
on the ethernet anymore BUT INSTEAD
on the pppX devices. I tested it and talking jargon, what should i do?
The issue is that for each PPPoE login, PPPoE-server creates on the server a
pppX device. that is 10 logins means 10 ppp devices. from ppp0 till ppp9.
and one might die upon disconnection.
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
_________________________________________________________________
Sabe más sobre la próxima generación del MSN Messenger.
http://imagine-msn.com/minisites/messenger/default.aspx?locale=es-ar