From: "Nikolay S. Rybaloff" <nowhere@hakkenden.ath.cx>
To: Andrew Beverley <andy@andybev.com>
Cc: netfilter@vger.kernel.org
Subject: Re: Creating an equivalent to ESFQ using flow classifier
Date: Sun, 15 Mar 2009 21:07:52 +0300 [thread overview]
Message-ID: <1237140472.28333.10.camel@hakkenden> (raw)
In-Reply-To: <328bad7c0259fd816ae31c8405313e1e@localhost>
Hi Andrew,
That's right, you have configured hashing based on src/dst address +
src/dst port + protocol, which is almost classical SFQ hash. In your
case you should try only nfct-src, which will create queues per source
IP and service these queues fairly within htb class.
В Вск, 15/03/2009 в 16:29 +0000, Andrew Beverley пишет:
> I have a server which I am using to share an ADSL line between a number of
> users. I am successfully shaping traffic based on type using 4 different
> classes, but I also want to share traffic within those classes evenly
> between computers (rather than between connections). I used to use ESFQ for
> this, but am trying to move to the new flow classifier as described in
> http://www.mail-archive.com/netdev@vger.kernel.org/msg60634.html
>
> I have set up the following rules. However, if I start 4 downloads on one
> PC and 1 download on another PC, then the first PC will get 4/5 of the
> available bandwidth and the second PC one 1/5. I would expect them to get
> half each. I am using HTB to shape between each class.
>
> # Add a HTB qdisc to the root device
> tc qdisc add dev eth0 root handle 1: htb
>
> # Rate limit it
> tc class add dev eth0 parent 1: classid 1:1 htb rate 2200kbit
>
> # Add 4 classes to it for different traffic
> tc class add dev eth0 parent 1:1 classid 1:10 htb \
> rate 100kbit ceil 100kbit prio 0
> tc class add dev eth0 parent 1:1 classid 1:30 htb \
> rate 1000kbit ceil 1000kbit prio 1
> tc class add dev eth0 parent 1:1 classid 1:40 htb \
> rate 1000kbit ceil 1000kbit prio 2
> tc class add dev eth0 parent 1:1 classid 1:60 htb \
> rate 100kbit ceil 100kbit prio 3
>
> # Add SFQ qdisc to each HTB class
> tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
> tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10
> tc qdisc add dev eth0 parent 1:40 handle 40: sfq perturb 10
> tc qdisc add dev eth0 parent 1:60 handle 60: sfq perturb 10
>
> # Filter the traffic to each class based on MARK
> tc filter add dev eth0 parent 1:0 protocol ip handle 10 fw flowid 1:10
> tc filter add dev eth0 parent 1:0 protocol ip handle 30 fw flowid 1:30
> tc filter add dev eth0 parent 1:0 protocol ip handle 40 fw flowid 1:40
> tc filter add dev eth0 parent 1:0 protocol ip handle 60 fw flowid 1:60
>
> # Share traffic between each PC evenly
> tc filter add dev eth0 parent 10: protocol ip handle 10 flow hash keys \
> nfct-src,nfct-dst,proto,nfct-proto-src,nfct-proto-dst divisor 1024
> tc filter add dev eth0 parent 30: protocol ip handle 30 flow hash keys \
> nfct-src,nfct-dst,proto,nfct-proto-src,nfct-proto-dst divisor 1024
> tc filter add dev eth0 parent 40: protocol ip handle 40 flow hash keys \
> nfct-src,nfct-dst,proto,nfct-proto-src,nfct-proto-dst divisor 1024
> tc filter add dev eth0 parent 60: protocol ip handle 60 flow hash keys \
> nfct-src,nfct-dst,proto,nfct-proto-src,nfct-proto-dst divisor 1024
>
>
> It is the last part that I am unsure about. I do not get any errors with
> the commands, but they do not seem to make any difference to the shaping.
>
> I am using linux-2.6.26 on Debian Lenny but have also tried linux-2.6.28
>
> Thanks in advance
>
> Andy Beverley
> --
> To unsubscribe from this list: send the line "unsubscribe netfilter" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2009-03-15 18:07 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-15 16:29 Creating an equivalent to ESFQ using flow classifier Andrew Beverley
2009-03-15 18:07 ` Nikolay S. Rybaloff [this message]
2009-03-15 18:53 ` Tom Eastep
2009-03-16 23:35 ` Andrew Beverley
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=1237140472.28333.10.camel@hakkenden \
--to=nowhere@hakkenden.ath.cx \
--cc=andy@andybev.com \
--cc=netfilter@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.