Lines Matching refs:exts
222 static inline int tcf_exts_init(struct tcf_exts *exts, struct net *net,
226 exts->type = 0;
227 exts->nr_actions = 0;
228 exts->net = net;
229 exts->actions = kcalloc(TCA_ACT_MAX_PRIO, sizeof(struct tc_action *),
231 if (!exts->actions)
234 exts->action = action;
235 exts->police = police;
243 static inline bool tcf_exts_get_net(struct tcf_exts *exts)
246 exts->net = maybe_get_net(exts->net);
247 return exts->net != NULL;
253 static inline void tcf_exts_put_net(struct tcf_exts *exts)
256 if (exts->net)
257 put_net(exts->net);
262 #define tcf_exts_for_each_action(i, a, exts) \
263 for (i = 0; i < TCA_ACT_MAX_PRIO && ((a) = (exts)->actions[i]); i++)
265 #define tcf_exts_for_each_action(i, a, exts) \
266 for (; 0; (void)(i), (void)(a), (void)(exts))
270 tcf_exts_stats_update(const struct tcf_exts *exts,
279 for (i = 0; i < exts->nr_actions; i++) {
280 struct tc_action *a = exts->actions[i];
294 * @exts: tc filter extensions handle
298 static inline bool tcf_exts_has_actions(struct tcf_exts *exts)
301 return exts->nr_actions;
310 * @exts: tc filter extensions handle
319 tcf_exts_exec(struct sk_buff *skb, struct tcf_exts *exts,
323 return tcf_action_exec(skb, exts->actions, exts->nr_actions, res);
330 struct tcf_exts *exts, bool ovr, bool rtnl_held,
332 void tcf_exts_destroy(struct tcf_exts *exts);
334 int tcf_exts_dump(struct sk_buff *skb, struct tcf_exts *exts);
335 int tcf_exts_terse_dump(struct sk_buff *skb, struct tcf_exts *exts);
336 int tcf_exts_dump_stats(struct sk_buff *skb, struct tcf_exts *exts);
540 const struct tcf_exts *exts);
560 unsigned int tcf_exts_num_actions(struct tcf_exts *exts);
606 struct tcf_exts *exts;
745 struct tcf_exts *exts;