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