Subject: locating the 'tc actions' hook

From: John Fastabend <[email-masked]>
Date: Wed, 31 Jul 2013 14:19:10 -0700

Hi Jamal,

I'm trying to sort out why I would use 'tc actions' and exactly
what it is doing.

Its clear I think adding one or more actions to filters will be
used in the classifier via tcf_exts_exec() through the classify
hook called from a qdisc.

This is your standard

	# tc filter add ... {u32|fw|tcindex|route|...} ... action ...

When these actions get configured the specific actions tc_action_ops
will be used to init the action create the hash 'tcf_hash_create' and
parse the options. All this I can follow in ./net/sched/

But the actions netlink hook does this,

tc_ctl_action()
	tcf_action_add()
		tcf_action_init() <- inserts action in the table

So at this point we have the entry in the table but I must be missing
where the tc_action_ops act() is going to be called because its not via
tcf_exts_exec().

Am I missing something obvious here? Is there a way to link them to
filters? Sorry if it turns out to be a stupid question.

My motivation here is to use the filters/actions outside the qdisc lock
for mq, mqprio, and the ingress qdisc.

.John

-- 
John Fastabend         Intel Corporation