Thread (44 messages) 44 messages, 6 authors, 2018-11-21

Re: [PATCH net-next,v2 04/12] cls_api: add translator to flow_action representation

From: Pablo Neira Ayuso <pablo@netfilter.org>
Date: 2018-11-19 23:45:24

On Mon, Nov 19, 2018 at 01:12:51PM +0100, Jiri Pirko wrote:
Mon, Nov 19, 2018 at 01:15:11AM CET, pablo@netfilter.org wrote:
quoted
@@ -2567,6 +2575,111 @@ int tc_setup_cb_call(struct tcf_block *block, struct tcf_exts *exts,
}
EXPORT_SYMBOL(tc_setup_cb_call);

+int tc_setup_flow_action(struct flow_action *flow_action,
+			 const struct tcf_exts *exts)
+{
+	const struct tc_action *act;
+	int num_acts = 0, i, j, k;
+
+	if (!exts)
+		return 0;
+
+	tcf_exts_for_each_action(i, act, exts) {
+		if (is_tcf_pedit(act))
+			num_acts += tcf_pedit_nkeys(act);
+		else
+			num_acts++;
+	}
+	if (!num_acts)
+		return 0;
+
+	if (flow_action_init(flow_action, num_acts) < 0)
This is actually a "alloc" function. And the counterpart is "free".
I can rename it to _alloc() if you prefer.
How about to allocate the container struct which would have the [0]
trick for the array of action?
You mean turn *keys into keys[0] stub in struct flow_action? This is
embedded into struct tc_cls_flower_offload, I may need to make a
second look but I think it won't fly.

BTW, side note: I will rename keys to "array" given keys is not
semantically appropriate as you mentioned, BTW.

Thanks!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help