On Tue, 2005-02-01 at 07:51, Thomas Graf wrote:
> > Why bother putting extra classifier functionality into a qdisc?
> > you should be able to rip off the classifier from sfq so you dont depend
> > on it; you can then select one of n queues (eaction meta set class 1:X
> > based on result of sfq classifier - or you can have it set the classids
> > based on resulting hash index)
>
> Excellent idea, this would allow for various hash functions to be used
> in a single sfq. We can use skb->tc_index for it so we can easly combine
Let the meta action do that. Just set the skb->tc_classid in my opinion;
recall we can change classid now ..
> it with a underlying dsmark. The hardest part is to find a intuitive
> form to define the hash, it should be possible to for example define
> a hash based on daddr + hproto only completely ignoring saddr. The
> perutrbation must be made optional, sometimes the hash will not produce
> any unwanted collisions (hash based on dscp for example) so modifying it
> wouldn't make sense. We can fork sfq and make a gsfq which takes the
> hash from tc_index and disabled perturbation if it is set to 0.
> Thoughts?
You can let the user define that via tc but have a default;
eg:
tc dev eth0 add sfq ematch
tc dev eth0 set sfq pertub xxx
match u32 ...
ematch sfq
ematch meta classid 1:2
eaction meta set tcindex 101
eaction meta set fwmark ..
etc
I have to run, havent looked at the rest of your email - will later.
cheers,
jamal
|