Re: [PATCH] Traffic control cgroups subsystem

From: Patrick McHardy
Date: Wed Jul 23 2008 - 20:18:30 EST

Ranjit Manomohan wrote:
On Wed, Jul 23, 2008 at 3:34 PM, Patrick McHardy <kaber@xxxxxxxxx> wrote:

It is by the flow_change() function, but special casing the
CGROUP_CLASSID is not acceptable anyway. There should be no
need for that, a simple linear mapping to classids is done
by default in mapping mode, the sk_cgroup_classid simply
shouldn't include qdisc IDs.

I did not want to special case it but I want an identity mapping not a
linear one. For some reason a baseclass of X:0 is not allowed

An ID of X:0 identifies a qdisc, not a class, which is why this
isn't accepted.

there does not seem to be a clean way to get a 1-1 mapping (tc.classid
-> X:tc.classid). I would have to workaround it by using a baseclass
of the form X:Y and then subtracting Y from the value written to
tc.classid which seemed very non intuitive.

Any particular reason for this restriction? Am I missing any other
technique of getting a 1-1 mapping using the flow classifier?

My suggestion to replace your classifier by cls_flow was wrong, sorry.

You can't do classification that don't use linear mappings or hash
distribution, but we really should support that. We should keep your
classifier (with the change to use skb->sk), but please extend it by
the standard classifier features like ematches, actions and policers
(see flow_classify() for a simple example). Adding the cgroup to
cls_flow still makes sense, but as regular key without the baseclass
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at