From: "Sébastien CRAMATTE" <s.cramatte@wanadoo.fr>
To: lartc@vger.kernel.org
Subject: [LARTC] Bridge HFSC QOS questions ...
Date: Tue, 05 Dec 2006 12:00:01 +0000 [thread overview]
Message-ID: <45755F41.50500@wanadoo.fr> (raw)
[-- Attachment #1: Type: text/plain, Size: 588 bytes --]
Hello,
I've got somes questions about Bridge and QOS ...
I've got a serveur with 2 interfaces eth0,eth1 inside br0 bridge ...
nothing of special ...
If I understand all, normally I should configure TC class and qdisc on
each physical or use ebtables to manage packets on output ... right ?
I've attached my qos_script that hsfc and layer7 module. I use only
Iptables in this script... might be should I use ebtables too ?
Does anyone can take a look to this script and tell me If I've done any
errors because seems that not works :(
Thanks for the help
Sébastien
[-- Attachment #2: qos_script.sh --]
[-- Type: text/plain, Size: 4512 bytes --]
SPEED=30
DEV=eth0
CL1="-j CLASSIFY --set-class 1:10"
CL2="-j CLASSIFY --set-class 1:11"
CL3="-j CLASSIFY --set-class 1:12"
CL4="-j CLASSIFY --set-class 1:13"
CL5="-j CLASSIFY --set-class 1:14"
RET="-j RETURN"
echo -n "+ Create root queue discipline for ${DEV} cpe interface "
tc qdisc add dev ${DEV} root handle 1: hfsc default 13
echo "[done]"
iptables -t mangle -A POSTROUTING -j LOG
iptables -t mangle -N SHAPPER
iptables -t mangle -A POSTROUTING -j SHAPPER
# add main rate limit class
echo -n " + Create class for CPE SHAPPING "
tc class add dev ${DEV} parent 1: classid 1:1 hfsc sc rate ${SPEED}mbit ul rate ${SPEED}mbit
echo "[done]"
# Interactive traffic: guarantee realtime full uplink for 50ms, then
# 1/10 of the uplink
echo -n " + Append subclass for low delay "
tc class add dev ${DEV} parent 1:1 classid 1:10 hfsc \
rt m1 ${SPEED}mbit d 50ms m2 $[1*$SPEED/10]mbit \
ls m1 ${SPEED}mbit d 50ms m2 $[3*$SPEED/10]mbit \
ul rate ${SPEED}mbit
# To speed up downloads while an upload is going on, put short ACK
# packets in the interactive class:
iptables -t mangle -A SHAPPER -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK ACK -m length --length :64 $CL1
iptables -t mangle -A SHAPPER -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK ACK -m length --length :64 $RET
# ICMP in the interactive class
iptables -t mangle -A SHAPPER -p icmp $CL1
iptables -t mangle -A SHAPPER -p icmp $RET
# All traffic optimized for minimize monetary cost TOS 0x02
iptables -t mangle -A SHAPPER -m tos --tos 0x02 $CL1
iptables -t mangle -A SHAPPER -m tos --tos 0x02 $RET
# All traffic optimized for minimize delay TOS 0x10
iptables -t mangle -A SHAPPER -m tos --tos 0x10 $CL1
iptables -t mangle -A SHAPPER -m tos --tos 0x10 $RET
# Interactive port
#iptables -t mangle -A SHAPPER -p tcp -m multiport --sports ftp,ftp $CL1
#iptables -t mangle -A SHAPPER -p tcp -m multiport --sports ssh,ftp $RET
# All udp dns traffic
iptables -t mangle -A SHAPPER -p udp --dport 53 $CL1
iptables -t mangle -A SHAPPER -p udp --dport 53 $RET
echo "[done]"
# VoIP: guarantee full uplink for 200ms, then 5/10
echo -n " + Append subclass for VoIP traffic "
tc class add dev ${DEV} parent 1:1 classid 1:11 hfsc \
sc m1 ${SPEED}mbit d 200ms m2 $[5*$SPEED/10]mbit \
ul rate ${SPEED}kbit
iptables -t mangle -A SHAPPER -p tcp -m multiport --sports sip $CL2
iptables -t mangle -A SHAPPER -p tcp -m multiport --sports sip $RET
iptables -t mangle -A SHAPPER -p tcp -m multiport --dport 10000:20000 $CL2
iptables -t mangle -A SHAPPER -p tcp -m multiport --dport 10000:20000 $RET
echo "[done]"
# smtp traffic: don't guarantee anything for the first 10 seconds,
# then guarantee 1/20
echo -n " + Append subclass for high reliability traffic "
tc class add dev ${DEV} parent 1:1 classid 1:12 hfsc \
sc m1 0 d 10s m2 $[1*$SPEED/20]mbit \
ul rate ${SPEED}mbit
iptables -t mangle -A SHAPPER -p tcp -m multiport --sports smtp,ssmtp $CL3
iptables -t mangle -A SHAPPER -p tcp -m multiport --sports smtp,ssmtp $RET
iptables -t mangle -A SHAPPER -m tos --tos 0x04 $CL3
iptables -t mangle -A SHAPPER -m tos --tos 0x04 $RET
echo "[done]"
# p2p traffic: don't guarantee anything for the first 20 seconds,
# then guarantee 1/20
echo -n " + Append subclass for P2P "
tc class add dev $DEV parent 1:1 classid 1:14 hfsc \
sc m1 0 d 20s m2 $[1*$SPEED/20]mbit \
ul rate ${SPEED}mbit
iptables -t mangle -A SHAPPER -m layer7 --l7proto edonkey $CL5
iptables -t mangle -A SHAPPER -m layer7 --l7proto edonkey $RET
iptables -t mangle -A SHAPPER -m layer7 --l7proto fasttrack $CL5
iptables -t mangle -A SHAPPER -m layer7 --l7proto fasttrack $RET
iptables -t mangle -A SHAPPER -m layer7 --l7proto bittorrent $CL5
iptables -t mangle -A SHAPPER -m layer7 --l7proto bittorrent $RET
echo "[done]"
# Default traffic: don't guarantee anything for the first two seconds,
echo -n " + Append subclass for high bandwith, low latency traffic (default) "
tc class add dev $DEV parent 1:1 classid 1:13 hfsc \
sc m1 0 d 2s m2 $[1*$SPEED/20]mbit \
ul rate ${SPEED}mbit
iptables -t mangle -A SHAPPER -m tos --tos 0x08 $CL4
iptables -t mangle -A SHAPPER -m tos --tos 0x08 $RET
iptables -t mangle -A SHAPPER $CL4
iptables -t mangle -A SHAPPER $RET
echo "[done]"
[-- Attachment #3: s.cramatte.vcf --]
[-- Type: text/x-vcard, Size: 443 bytes --]
begin:vcard
fn;quoted-printable:S=C3=A9bastien CRAMATTE
n;quoted-printable:CRAMATTE;S=C3=A9bastien
org:ZEN Soluciones;IT technologies, Linux and Web
adr;quoted-printable:Piso 4b;;Calle Alfonso X el Sabio, 29;Las torres de cotillas;Murcia;30565;Espa=C3=B1a
email;internet:scramatte@zensoluciones.com
title:Consultant
tel;work:+34 968 292 965
tel;cell:+34 627 665 283
x-mozilla-html:FALSE
url:http://www.zensoluciones.com
version:2.1
end:vcard
[-- Attachment #4: Type: text/plain, Size: 143 bytes --]
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
reply other threads:[~2006-12-05 12:00 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45755F41.50500@wanadoo.fr \
--to=s.cramatte@wanadoo.fr \
--cc=lartc@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.