Hello all. Sorry for mail to this maillist, but in internet i can't found any information to understand this situation, lartc list is dead, function do not documented and only developers understand how it works. As i understand if i add flow hash i divide speed to KEYs (example to dst) not for sessions right? Why if i add simple example my traffic stop and i get DROP at parent class? This my sample tc qdisc add dev eth0 root handle 1 htb default 7 class add dev eth0 parent 1: classid 1:7 htb rate 500mbit ceil 1000mbit prio 3 qdisc add dev eth0 parent 1:7 handle 10: sfq perturb 10 # all normal tc filter add dev eth0 protocol ip parent 10: handle 2 flow hash keys src,dst # all traffic drop Thanks! Best regals, Badalian Vyacheslav --
Here are some hints (if we don't mention google ;-) http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.29.y.git;a=commitdiff;h=e5d... Regards, Jarek P. --
Yep. I was read this commit and create example based on it. My question why its drop all traffic after add flow filter? Its simple must group traffic to sfq qidsc by HASH like equal cost routing by KEY if i understand. I need balance traffic in class/qdisc by KEY, but not by sessions. Any worked example will be great. In commit i see only syntax :) --
Any non-working example with this syntax? (divisor?) --
This example not approach? tc qdisc add dev eth0 root handle 1 htb default 7 tc class add dev eth0 parent 1: classid 1:7 htb rate 500mbit ceil 1000mbit prio 3 tc qdisc add dev eth0 parent 1:7 handle 10: sfq perturb 10 # all traffic go to class 1-7. # Try group traffic by "src,dst" key tc filter add dev eth0 protocol ip parent 10: handle 2 flow hash keys src,dst --
On Tue, Jun 30, 2009 at 01:49:11PM +0400, Badalian Vyacheslav wrote: Try: tc filter add dev eth0 protocol ip parent 10: handle 2 flow hash keys src,dst divisor 1024 --
Outh! Very thanks! I'm so stupid. its simple :(
Also i look in code and see in flow_classify function this lines:
if (f->divisor)
classid %= f->divisor;
classid generated in up.
Also i see to SFQ code and see that SFQ create 1024 hashes.
If we do not add divisor when added filter rule we get classid > 1024
and its not go to hash of SFQ (my example).
Also divisor must be > 0 because = NaN as i understand.
I not sure that it must be <= 1024 because it may use not in SFQ and i
don't know MAX size of other qdiscs but if it use only in in SFQ i think
we need to check <= SFQ_HASH_DIVISOR also?
Maybe "if" code must be changed to
if (f->divisor && f->divisor > 0)
classid %= f->divisor;
else
classid %= 1024;
How you think?
--
I guess the author preferred to signal that something is misconfigured with drops, but you could try to send a patch or ask him to make sure. Btw., sfq isn't very useful with real 1024 or even much less flows, so you should probably start looking for sch_drr with cls_flow examples (there were a few of them on the list). Best regards, Jarek P. --
| Greg KH | Og dreams of kernels |
| Jens Axboe | [PATCH 31/33] Fusion: sg chaining support |
| Arnd Bergmann | Re: finding your own dead "CONFIG_" variables |
| Mark Brown | [PATCH 2/2] Subject: natsemi: Allow users to disable workaround for DspCfg reset |
| Tony Breeds | [LGUEST] Look in object dir for .config |
git: | |
| Brian Downing | Re: Git in a Nutshell guide |
| John Benes | Re: master has some toys |
| Matthias Lederhofer | [PATCH 4/7] introduce GIT_WORK_TREE to specify the work tree |
| Alexander Sulfrian | [RFC/PATCH] RE: git calls SSH_ASKPASS even if DISPLAY is not set |
| Junio C Hamano | Re: Rss produced by git is not valid xml? |
| Linux Kernel Mailing List | iSeries: fix section mismatch in iseries_veth |
| Linux Kernel Mailing List | ixbge: remove TX lock and redo TX accounting. |
| Linux Kernel Mailing List | ixgbe: fix several counter register errata |
