Eliot, Wireless and Server Administrator, Great Lakes Internet
2005-Oct-13 14:41 UTC
HFSC Advanced Limiting
I am investigating changing our broadband bandwidth control scripts over to
HFSC. What I would like to accomplish is this:
{ * DOWNLOAD *
I need a download class for each user (we''ll call it Class 1) that
offers a minimum of lets say 384Kbps and a maximum of 1.5Mbps.
The rates between 384Kbps and 1.5Mbps should be shared among all users.
Each user should always be able to get at least 384Kbps.
Inside this main class for each user, there will be different categories of
traffic (VoIP, P2P, General).
The VoIP subclass (Class 11) should offer a real-time bandwidth of 64Kbps
minimum with a maximum of 128Kbps, sharing anything over 80Kbps with other
services.
The VoIP subclass should also be able to dequeue the packets within a 30ms
timeframe, but more importantly, it should not vary the time in which it
dequeues the packets by more than 2-3ms between each packet.
The P2P subclass (Class 12) should offer a mimimum of 0Kbps and a maximum of
384Kbps, sharing all of its allotted bandwidth with anything that needs it.
The General subclass (Class 13) should offer a minimum of 320Kbps and a
maximum of 1.5Mbps sharing anything over 320Kbps.
}
{ * UPLOAD *
I also need an upload class for each user (we''ll call it Class 2)
that offers a minimum of lets say 256Kbps and a maximum of 768Kbps.
The rates between 256Kbps and 768Kbps will be shared among all users.
Each user should always be able to upload at a speed of at least 256Kbps.
Ther should also be VoIP, P2P, and General subclasses on upload.
VoIP (Class 21) should be exactly the same as in the download class.
P2P (Class 22) should go from 0-256Kbps sharing all allotted bandwidth with
anything that needs it.
The General subclass (Class 23) should offer a minimum of 192Kbps upload with
a max of 768Kbps, sharing anything over 192Kbps.
}
My biggest confusion is on how to get the rates to say something like:
If the VoIP upload subclass needs the bandwidth, it gets it, but otherwise the
64Kbps from the VoIP class is allotted to the General upload subclass giving it
256Kbps for upload and the General upload subclass does not need to share that
256Kbps with anything else except the VoIP subclass, but if it goes over the
256Kbps, it shares that extra bandwidth with other people.
Are all of these criteria possible to meet with HFSC? If not, which ones need to
be adjusted and why? What would you recommend in place of them?
What is the maximum number you can use on class IDs?
How many customers should one router be able to handle with this kind of QoS
policy?
With a P3 800MHz proccessor in a router, will I be able to implement this
complex of a QoS policy and still have it handle 4,000 customers?
What about 10,000?
Is there any way to do triple numbering for class IDs (i.e. 1:1:2 instead of
1:12)?
Also, if you do not know for certain any of the answers to these questions,
please do not make conjecture. Only answer with facts.
Thank you in advance for any responses to this.
Eliot Gable
Certified Wireless Network Administrator
Cisco Certified Network Associate
CompTIA Security+ Certified
CompTIA Network+ Certified
Network and Systems Administrator
Great Lakes Internet, Inc.
112 North Howard
Croswell, MI 48422
810-679-3395
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
On Thursday 13 October 2005 10:41, Eliot, Wireless and Server Administrator, Great Lakes Internet wrote:> I am investigating changing our broadband bandwidth control scripts over to > HFSC. What I would like to accomplish is this: > > { * DOWNLOAD *Read the replies to the thread "shape downstream of a ppp link" as the same concept applies here. It''s difficult to shape ingress traffic. You could, nevertheless, employ hfsc in some fashion for ingress either with IMQ or by attaching it to the LAN facing side of your network (pretend ingress is egress). <snip>> What is the maximum number you can use on class IDs?0xFFF I believe. (If it''s actually 0xFFFF someone correct me.)> How many customers should one router be able to handle with this kind of > QoS policy?That''s going to depend on many things, one of which being packet matching. Were you going to use `tc filter` or, say, `iptables` matching? For the former, with so many clients, others have posted they needed to use `tc filter` with hashtables or the performance hit was huge for thousands of `tc filter` rules. (i.e. unusable.)> With a P3 800MHz proccessor in a router, will I be able to implement this > complex of a QoS policy and still have it handle 4,000 customers? > > What about 10,000?Maybe.> Is there any way to do triple numbering for class IDs (i.e. 1:1:2 instead > of 1:12)?No.> Also, if you do not know for certain any of the answers to these questions, > please do not make conjecture. Only answer with facts. Thank you in advance > for any responses to this.Excellent. Then I''m sure you''ve read LARTC HOWTO and Google''d extensively already. -- Jason Boxman http://edseek.com/ - Linux and FOSS stuff
Eliot, Wireless and Server Administrator, Great Lakes Internet
2005-Oct-13 20:24 UTC
RE: HFSC Advanced Limiting
Thank you for your response.
I do know how to shape a specific direction of traffic. Given that I am the ISP
sitting between the customer and the Internet, it is trivial for me to shape
both directions.
Based on your response, I take it that ''tc filter'' takes more
of a performance hit than iptables?
And yes, I have read the LARTC HOWTO and Google''d extensively. This is
my current rough draft based on my specifications:
#!/sbin/runscript
start_test() {
PIPEID="1000"
USERNAME="test"
BASEUPLOAD="256"
BASEDOWNLOAD="384"
MAXUPLOAD="768"
BURSTUPLOAD=${MAXUPLOAD}
BURSTLENGTHUPLOAD="2000"
MAXDOWNLOAD="1500"
BURSTDOWNLOAD=${MAXDOWNLOAD}
BURSTLENGTHDOWNLOAD="2000"
VOIPBASEUPLOAD="80"
VOIPMAXUPLOAD="128"
VOIPSHAREDUPLOAD=${VOIPSHAREDUPLOAD}
VOIPBASEDOWNLOAD="80"
VOIPMAXDOWNLOAD="128"
VOIPSHAREDDOWNLOAD=${VOIPSHAREDDOWNLOAD}
VOIPLATENCY="30"
P2PBASEUPLOAD="0"
P2PMAXUPLOAD="256"
P2PSHAREDUPLOAD=${P2PMAXUPLOAD}
P2PBASEDOWNLOAD="0"
P2PMAXDOWNLOAD="384"
P2PSHAREDDOWNLOAD=${P2PMAXDOWNLOAD}
GENBASEUPLOAD="168"
GENMAXUPLOAD="768"
GENSHAREDUPLOAD=${GENMAXUPLOAD}
GENBASEDOWNLOAD="384"
GENMAXDOWNLOAD="1500"
GENSHAREDDOWNLOAD=${GENMAXDOWNLOAD}
start_user
M1=00; M2=07; M3=BA; M4=25; M5=21; M6=B7;
start_mac
}
setup_main_devices() {
einfo "Starting bandwidth management on interfaces ..."
einfo " - Creating qdiscs on interfaces ..."
CMD="tc qdisc add dev eth0 root handle 1: hfsc default 1"
docmd
CMD="tc qdisc add dev eth1 root handle 2: hfsc default 1"
docmd
CMD="tc class add dev eth0 parent 1:0 classid 1:1 hfsc ls m2
100Mbit ul m2 100Mbit"
docmd
CMD="tc class add dev eth1 parent 2:0 classid 2:1 hfsc ls m2
100Mbit ul m2 100Mbit"
docmd
}
start_user() {
einfo "Starting bandwidth management for ${USERNAME} ..."
einfo " - Creating classes on eth0 for upload control ..."
CMD="tc class add dev eth0 parent 1:0 classid 1:${PIPEID}
hfsc ls m1 ${BURSTUPLOAD}Kbit d ${BURSTLENGTHUPLOAD}ms m2 ${BASEUPLOAD}Kbit ul
m2 ${MAXUPLOAD}Kbit"
docmd
CMD="tc class add dev eth0 parent 1:${PIPEID} classid
1:${PIPEID}0 hfsc sc umax 1500b dmax ${VOIPLATENCY}ms rate
${VOIPBASEUPLOAD}Kbit"
docmd
CMD="tc class add dev eth0 parent 1:${PIPEID} classid
1:${PIPEID}1 hfsc ls m2 ${P2PSHAREDUPLOAD}Kbit ul m2 ${P2PMAXUPLOAD}Kbit"
docmd
CMD="tc class add dev eth0 parent 1:${PIPEID} classid
1:${PIPEID}2 hfsc rt m2 ${GENBASEUPLOAD}Kbit ls m2 ${GENSHAREDUPLOAD}Kbit ul m2
${GENMAXUPLOAD}Kbit"
docmd
einfo " - Creating classes on eth1 for download control ..."
CMD="tc class add dev eth1 parent 2:0 classid 2:${PIPEID}
hfsc ls m1 ${BURSTDOWNLOAD}Kbit d ${BURSTLENGTHDOWNLOAD}ms m2
${BASEDOWNLOAD}Kbit ul m2 ${MAXDOWNLOAD}Kbit"
docmd
CMD="tc class add dev eth1 parent 2:${PIPEID} classid
2:${PIPEID}0 hfsc sc umax 1500b dmax ${VOIPLATENCY}ms rate
${VOIPBASEDOWNLOAD}Kbit"
docmd
CMD="tc class add dev eth1 parent 2:${PIPEID} classid
2:${PIPEID}1 hfsc ls m2 ${P2PSHAREDDOWNLOAD}Kbit ul m2
${P2PMAXDOWNLOAD}Kbit"
docmd
CMD="tc class add dev eth1 parent 2:${PIPEID} classid
2:${PIPEID}2 hfsc rt m2 ${GENBASEDOWNLOAD}Kbit ls m2 ${GENSHAREDDOWNLOAD}Kbit ul
m2 ${GENMAXDOWNLOAD}Kbit"
docmd
}
docmd() {
if [[ "${CMD}" ]]; then
ebegin " - ${CMD}"
$CMD
if [[ $? -eq 0 ]]; then
eend 0;
else
eend 1;
fi
fi
}
depend() {
need net
}
start() {
stop
setup_main_devices
start_test
}
stop() {
ebegin "Stopping QoS ruleset"
tc qdisc del dev eth0 root 2>&1 1>/dev/null
tc qdisc del dev eth1 root 2>&1 1>/dev/null
tc qdisc del dev eth2 root 2>&1 1>/dev/null
eend 0
}
restart() {
stop
start
}
$1
Oddly, I keep getting these errors:
* Starting bandwidth management on interfaces ...
* - Creating qdiscs on interfaces ...
* - tc qdisc add dev eth0 root handle 1: hfsc default 1...
[ ok ]
* - tc qdisc add dev eth1 root handle 2: hfsc default 1...
[ ok ]
* - tc class add dev eth0 parent 1:0 classid 1:1 hfsc ls m2 100Mbit ul m2
100Mbit... [ ok ]
* - tc class add dev eth1 parent 2:0 classid 2:1 hfsc ls m2 100Mbit ul m2
100Mbit... [ ok ]
* Starting bandwidth management for test ...
* - Creating classes on eth0 for upload control ...
* - tc class add dev eth0 parent 1:0 classid 1:1000 hfsc ls m1 768Kbit d
2000ms m2 256Kbit ul m2 768Kbit... [ ok ]
* - tc class add dev eth0 parent 1:1000 classid 1:10000 hfsc sc umax 1500b
dmax 30ms rate 80Kbit...
RTNETLINK answers: File exists
[ !! ]
* - tc class add dev eth0 parent 1:1000 classid 1:10001 hfsc ls m2 256Kbit
ul m2 256Kbit...
RTNETLINK answers: File exists
[ !! ]
* - tc class add dev eth0 parent 1:1000 classid 1:10002 hfsc rt m2 168Kbit
ls m2 768Kbit ul m2 768Kbit... [ ok ]
* - Creating classes on eth1 for download control ...
* - tc class add dev eth1 parent 2:0 classid 2:1000 hfsc ls m1 1500Kbit d
2000ms m2 384Kbit ul m2 1500Kbit... [ ok ]
* - tc class add dev eth1 parent 2:1000 classid 2:10000 hfsc sc umax 1500b
dmax 30ms rate 80Kbit...
RTNETLINK answers: Invalid argument
[ !! ]
* - tc class add dev eth1 parent 2:1000 classid 2:10001 hfsc ls m2 384Kbit
ul m2 384Kbit...
RTNETLINK answers: Invalid argument
[ !! ]
* - tc class add dev eth1 parent 2:1000 classid 2:10002 hfsc rt m2 384Kbit
ls m2 1500Kbit ul m2 1500Kbit...
RTNETLINK answers: Invalid argument
[ !! ]
Also, note that I am deleting the qdiscs that exist each time I start the
script, so there should not be any entries that still exist when I run the
script again.
I''m also not certain if what I am doing here actually achieves my
goals, but this is my best guess at the moment.
And, just in case you are wondering, I have not gotten to the ''tc
filter'' or ''iptables <blah> -j CLASSIFY'' parts
yet.
Thanks in advance.
Eliot Gable
Certified Wireless Network Administrator
Cisco Certified Network Associate
CompTIA Security+ Certified
CompTIA Network+ Certified
Network and Systems Administrator
Great Lakes Internet, Inc.
112 North Howard
Croswell, MI 48422
810-679-3395
-----Original Message-----
From: lartc-bounces@mailman.ds9a.nl on behalf of Jason Boxman
Sent: Thu 10/13/2005 3:45 PM
To: lartc@mailman.ds9a.nl
Subject: Re: [LARTC] HFSC Advanced Limiting
On Thursday 13 October 2005 10:41, Eliot, Wireless and Server Administrator,
Great Lakes Internet wrote:> I am investigating changing our broadband bandwidth control scripts over to
> HFSC. What I would like to accomplish is this:
>
> { * DOWNLOAD *
Read the replies to the thread "shape downstream of a ppp link" as the
same
concept applies here. It''s difficult to shape ingress traffic. You
could,
nevertheless, employ hfsc in some fashion for ingress either with IMQ or by
attaching it to the LAN facing side of your network (pretend ingress is
egress).
<snip>> What is the maximum number you can use on class IDs?
0xFFF I believe. (If it''s actually 0xFFFF someone correct me.)
> How many customers should one router be able to handle with this kind of
> QoS policy?
That''s going to depend on many things, one of which being packet
matching.
Were you going to use `tc filter` or, say, `iptables` matching? For the
former, with so many clients, others have posted they needed to use `tc
filter` with hashtables or the performance hit was huge for thousands of `tc
filter` rules. (i.e. unusable.)
> With a P3 800MHz proccessor in a router, will I be able to implement this
> complex of a QoS policy and still have it handle 4,000 customers?
>
> What about 10,000?
Maybe.
> Is there any way to do triple numbering for class IDs (i.e. 1:1:2 instead
> of 1:12)?
No.
> Also, if you do not know for certain any of the answers to these questions,
> please do not make conjecture. Only answer with facts. Thank you in advance
> for any responses to this.
Excellent. Then I''m sure you''ve read LARTC HOWTO and
Google''d extensively
already.
--
Jason Boxman
http://edseek.com/ - Linux and FOSS stuff
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
On Thu, 13 Oct 2005 16:24:06 -0400, Eliot wrote> Oddly, I keep getting these errors: > > parent 1:1000 classid 1:10000 hfsc sc umax 1500b dmax 30ms rate 80Kbit... > RTNETLINK answers: File exists > [ !! ] * - tc > class add dev eth0 parent 1:1000 classid 1:10001 hfsc ls m2 256Kbit > ul m2 256Kbit... RTNETLINK answers: File existsClassid should be in range 0x0000-0xFFFF, so it''s cause of problem in this script snippet.> Eliot Gable > Certified Wireless Network Administrator > Cisco Certified Network Associate > CompTIA Security+ Certified > CompTIA Network+ Certified > Network and Systems Administrator > Great Lakes Internet, Inc. > 112 North Howard > Croswell, MI 48422 > 810-679-3395-- Kind regards, Tomasz Chilinski RHCX, RHCE, RedHat Academy Instructor Cisco Certified Academy Instructor LMS developer: http://lms.rulez.pl Kadu developer: http://www.kadu.net Director of Chilan.com network engineering department
Eliot, Wireless and Server Administrator, Great Lakes Internet
2005-Oct-14 12:53 UTC
RE: HFSC Advanced Limiting
So, then you''re saying 1:10001 is equivilant to 110,001, which would be 0x1ADB1 -- as opposed to 10,001 = 0x2711 ? Eliot Gable Certified Wireless Network Administrator Cisco Certified Network Associate CompTIA Security+ Certified CompTIA Network+ Certified Network and Systems Administrator Great Lakes Internet, Inc. 112 North Howard Croswell, MI 48422 810-679-3395 -----Original Message----- From: lartc-bounces@mailman.ds9a.nl on behalf of Tomasz Chilinski Sent: Thu 10/13/2005 4:57 PM To: lartc Subject: RE: [LARTC] HFSC Advanced Limiting On Thu, 13 Oct 2005 16:24:06 -0400, Eliot wrote> Oddly, I keep getting these errors: > > parent 1:1000 classid 1:10000 hfsc sc umax 1500b dmax 30ms rate 80Kbit... > RTNETLINK answers: File exists > [ !! ] * - tc > class add dev eth0 parent 1:1000 classid 1:10001 hfsc ls m2 256Kbit > ul m2 256Kbit... RTNETLINK answers: File existsClassid should be in range 0x0000-0xFFFF, so it''s cause of problem in this script snippet.> Eliot Gable > Certified Wireless Network Administrator > Cisco Certified Network Associate > CompTIA Security+ Certified > CompTIA Network+ Certified > Network and Systems Administrator > Great Lakes Internet, Inc. > 112 North Howard > Croswell, MI 48422 > 810-679-3395-- Kind regards, Tomasz Chilinski RHCX, RHCE, RedHat Academy Instructor Cisco Certified Academy Instructor LMS developer: http://lms.rulez.pl Kadu developer: http://www.kadu.net Director of Chilan.com network engineering department _______________________________________________ LARTC mailing list LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc _______________________________________________ LARTC mailing list LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
Hello, On Fri, 14 Oct 2005 08:53:15 -0400 "Eliot, Wireless and Server Administrator, Great Lakes Internet" <support8@greatlakes.net> wrote:> > So, then you''re saying 1:10001 is equivilant to 110,001, which would > be 0x1ADB1 -- as opposed to 10,001 = 0x2711 ?Nope, what he meant was that most probably 1:10001 is recognised as 1:1000 (i.e. the 1 at the end is just cut off). Regards, Nickola _______________________________________________ LARTC mailing list LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
On Fri, 14 Oct 2005 08:53:15 -0400, Eliot, Wireless and Server Administrator, Great Lakes Internet wrote> So, then you''re saying 1:10001 is equivilant to 110,001, which would > be 0x1ADB1 -- as opposed to 10,001 = 0x2711 ?I would like to say that classids are not decimal numbers but hexadecimal, i.e. if you''ve got decimal class number 65535 you show write it down in tc command as FFFF. I hope now it''s clear ;-)> Eliot Gable > Certified Wireless Network Administrator > Cisco Certified Network Associate > CompTIA Security+ Certified > CompTIA Network+ Certified > Network and Systems Administrator > Great Lakes Internet, Inc. > 112 North Howard > Croswell, MI 48422 > 810-679-3395> --Kind regards, Tomasz Chilinski RHCX, RHCE, RedHat Academy Instructor Cisco Certified Academy Instructor LMS developer: http://lms.rulez.pl Kadu developer: http://www.kadu.net Director of Chilan.com network engineering department
Eliot, Wireless and Server Administrator, Great Lakes Internet
2005-Oct-14 13:14 UTC
RE: HFSC Advanced Limiting
Thank you. That did solve my problem. My previous question still stands, though. Eliot Gable Certified Wireless Network Administrator Cisco Certified Network Associate CompTIA Security+ Certified CompTIA Network+ Certified Network and Systems Administrator Great Lakes Internet, Inc. 112 North Howard Croswell, MI 48422 810-679-3395 -----Original Message----- From: lartc-bounces@mailman.ds9a.nl on behalf of Tomasz Chilinski Sent: Thu 10/13/2005 4:57 PM To: lartc Subject: RE: [LARTC] HFSC Advanced Limiting On Thu, 13 Oct 2005 16:24:06 -0400, Eliot wrote> Oddly, I keep getting these errors: > > parent 1:1000 classid 1:10000 hfsc sc umax 1500b dmax 30ms rate 80Kbit... > RTNETLINK answers: File exists > [ !! ] * - tc > class add dev eth0 parent 1:1000 classid 1:10001 hfsc ls m2 256Kbit > ul m2 256Kbit... RTNETLINK answers: File existsClassid should be in range 0x0000-0xFFFF, so it''s cause of problem in this script snippet.> Eliot Gable > Certified Wireless Network Administrator > Cisco Certified Network Associate > CompTIA Security+ Certified > CompTIA Network+ Certified > Network and Systems Administrator > Great Lakes Internet, Inc. > 112 North Howard > Croswell, MI 48422 > 810-679-3395-- Kind regards, Tomasz Chilinski RHCX, RHCE, RedHat Academy Instructor Cisco Certified Academy Instructor LMS developer: http://lms.rulez.pl Kadu developer: http://www.kadu.net Director of Chilan.com network engineering department _______________________________________________ LARTC mailing list LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc _______________________________________________ LARTC mailing list LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
Eliot, Wireless and Server Administrator, Great Lakes Internet
2005-Oct-14 16:18 UTC
RE: HFSC Advanced Limiting
Ok, my incoming mail is not working right now, so I don''t know who has responded to my posts, or if anyone has. I have figured out how to trap the TC output and redirect it to a file (finally) by using ''tc <blah> &>/file''. Also, it occured to me that 0xFFFF limit might actually mean 0xF:0xFFF for the class IDs. Is that correct? I have made some pretty big changes to my script. Now, I seem to be having issues with deleting classes I added. See the output below for details. bash-2.05b# ./qos start * Stopping QoS ruleset... * - tc qdisc del dev eth0 root... [ ok ] * - tc qdisc del dev eth1 root... [ ok ] * Starting bandwidth management on interfaces ... * - Creating qdiscs on interfaces ... * - tc qdisc add dev eth0 root handle 1: hfsc default 1... [ ok ] * - tc class add dev eth0 parent 1:0 classid 1:1 hfsc ls m2 100Mbit ul m2 100Mbit... [ ok ] * - tc qdisc add dev eth1 root handle 2: hfsc default 1... [ ok ] * - tc class add dev eth1 parent 2:0 classid 2:1 hfsc ls m2 100Mbit ul m2 100Mbit... [ ok ] * Starting bandwidth management for test ... * - Creating classes on eth0 for upload control ... * - tc class add dev eth0 parent 1:0 classid 1:300 hfsc ls m1 768Kbit d 2000ms m2 256Kbit ul m2 768Kbit... [ ok ] * - tc class add dev eth0 parent 1:300 classid 1:301 hfsc sc umax 1500b dmax 30ms rate 80Kbit... [ ok ] * - tc class add dev eth0 parent 1:300 classid 1:302 hfsc ls m2 256Kbit ul m2 256Kbit... [ ok ] * - tc class add dev eth0 parent 1:300 classid 1:303 hfsc rt m2 168Kbit ls m2 768Kbit ul m2 768Kbit... [ ok ] * - Creating classes on eth1 for download control ... * - tc class add dev eth1 parent 2:0 classid 2:300 hfsc ls m1 1500Kbit d 2000ms m2 384Kbit ul m2 1500Kbit... [ ok ] * - tc class add dev eth1 parent 2:300 classid 2:301 hfsc sc umax 1500b dmax 30ms rate 80Kbit... [ ok ] * - tc class add dev eth1 parent 2:300 classid 2:302 hfsc ls m2 384Kbit ul m2 384Kbit... [ ok ] * - tc class add dev eth1 parent 2:300 classid 2:303 hfsc rt m2 384Kbit ls m2 1500Kbit ul m2 1500Kbit... [ ok ] bash-2.05b# QOSUSER="test" ./qos stop * Stopping bandwidth management for test ... * - Deleting classes on eth0 for upload control ... * - tc class del dev eth0 parent 1:300 classid 1:301 hfsc sc umax 1500b dmax 30ms rate 80Kbit... [ ok ] * - tc class del dev eth0 parent 1:300 classid 1:302 hfsc ls m2 256Kbit ul m2 256Kbit... [ ok ] * - tc class del dev eth0 parent 1:300 classid 1:303 hfsc rt m2 168Kbit ls m2 768Kbit ul m2 768Kbit... [ ok ] * - tc class del dev eth0 parent 1:0 classid 1:300 hfsc ls m1 768Kbit d 2000ms m2 256Kbit ul m2 768Kbit... * >>>>> RTNETLINK answers: Device or resource busy [ !! ] * - Deleting classes on eth1 for download control ... * - tc class del dev eth1 parent 2:300 classid 2:301 hfsc sc umax 1500b dmax 30ms rate 80Kbit... [ ok ] * - tc class del dev eth1 parent 2:300 classid 2:302 hfsc ls m2 384Kbit ul m2 384Kbit... [ ok ] * - tc class del dev eth1 parent 2:300 classid 2:303 hfsc rt m2 384Kbit ls m2 1500Kbit ul m2 1500Kbit... [ ok ] * - tc class del dev eth1 parent 2:0 classid 2:300 hfsc ls m1 1500Kbit d 2000ms m2 384Kbit ul m2 1500Kbit... * >>>>> RTNETLINK answers: Device or resource busy [ !! ] Thanks again for any help. Eliot Gable Certified Wireless Network Administrator Cisco Certified Network Associate CompTIA Security+ Certified CompTIA Network+ Certified Network and Systems Administrator Great Lakes Internet, Inc. 112 North Howard Croswell, MI 48422 810-679-3395 -----Original Message----- From: lartc-bounces@mailman.ds9a.nl on behalf of Tomasz Chilinski Sent: Thu 10/13/2005 4:57 PM To: lartc Subject: RE: [LARTC] HFSC Advanced Limiting On Thu, 13 Oct 2005 16:24:06 -0400, Eliot wrote> Oddly, I keep getting these errors: > > parent 1:1000 classid 1:10000 hfsc sc umax 1500b dmax 30ms rate 80Kbit... > RTNETLINK answers: File exists > [ !! ] * - tc > class add dev eth0 parent 1:1000 classid 1:10001 hfsc ls m2 256Kbit > ul m2 256Kbit... RTNETLINK answers: File existsClassid should be in range 0x0000-0xFFFF, so it''s cause of problem in this script snippet.> Eliot Gable > Certified Wireless Network Administrator > Cisco Certified Network Associate > CompTIA Security+ Certified > CompTIA Network+ Certified > Network and Systems Administrator > Great Lakes Internet, Inc. > 112 North Howard > Croswell, MI 48422 > 810-679-3395-- Kind regards, Tomasz Chilinski RHCX, RHCE, RedHat Academy Instructor Cisco Certified Academy Instructor LMS developer: http://lms.rulez.pl Kadu developer: http://www.kadu.net Director of Chilan.com network engineering department _______________________________________________ LARTC mailing list LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc _______________________________________________ LARTC mailing list LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
Eliot, Wireless and Server Administrator, Great Lakes Internet wrote:> Thank you for your response. > > I do know how to shape a specific direction of traffic. Given that I am the ISP sitting between the customer and the Internet, it is trivial for me to shape both directions. >I think the point Jason was making is that you are shaping from the wrong end of the bottleneck if you shape traffic from your customers. If their link speed to you is high and you shape to well below it then it won''t be too bad, but the point stands that it is not the same as when shaping from the "right" end of the bottleneck, especially WRT latency and jitter. Andy.
Eliot, Wireless and Server Administrator, Great Lakes Internet wrote:> > Also, if you do not know for certain any of the answers to these questions, please do not make conjecture. Only answer with facts.Not many people seem to use hfsc, so you are loosing out on general advice by saying this. Andy.
Eliot, Wireless and Server Administrator, Great Lakes Internet wrote:> CMD="tc qdisc add dev eth0 root handle 1: hfsc default 1"Default should be a leaf class. - tc class add dev eth1 parent 2:1000 classid 2:10000 hfsc sc umax 1500b dmax 30ms rate 80Kbit... If you attach qdisc to eth then it sees packet length as ip len + 14 so use 1514. Andy.
Eliot, Wireless and Server Administrator, Great Lakes Internet
2005-Oct-20 12:54 UTC
RE: HFSC Advanced Limiting
Thank you. Eliot Gable Certified Wireless Network Administrator Cisco Certified Network Associate CompTIA Security+ Certified CompTIA Network+ Certified Network and Systems Administrator Great Lakes Internet, Inc. 112 North Howard Croswell, MI 48422 810-679-3395 -----Original Message----- From: Andy Furniss [mailto:andy.furniss@dsl.pipex.com] Sent: Wed 10/19/2005 6:55 AM To: Eliot, Wireless and Server Administrator, Great Lakes Internet Cc: jasonb@edseek.com; lartc@mailman.ds9a.nl Subject: Re: [LARTC] HFSC Advanced Limiting Eliot, Wireless and Server Administrator, Great Lakes Internet wrote:> CMD="tc qdisc add dev eth0 root handle 1: hfsc default 1"Default should be a leaf class. - tc class add dev eth1 parent 2:1000 classid 2:10000 hfsc sc umax 1500b dmax 30ms rate 80Kbit... If you attach qdisc to eth then it sees packet length as ip len + 14 so use 1514. Andy. _______________________________________________ LARTC mailing list LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc