Lines Matching refs:exts

2036 void tcf_exts_destroy(struct tcf_exts *exts)  in tcf_exts_destroy()  argument
2039 tcf_action_destroy(exts->actions, TCA_ACT_UNBIND); in tcf_exts_destroy()
2040 kfree(exts->actions); in tcf_exts_destroy()
2041 exts->nr_actions = 0; in tcf_exts_destroy()
2047 struct nlattr *rate_tlv, struct tcf_exts *exts, bool ovr, in tcf_exts_validate() argument
2055 if (exts->police && tb[exts->police]) { in tcf_exts_validate()
2056 act = tcf_action_init_1(net, tp, tb[exts->police], in tcf_exts_validate()
2062 act->type = exts->type = TCA_OLD_COMPAT; in tcf_exts_validate()
2063 exts->actions[0] = act; in tcf_exts_validate()
2064 exts->nr_actions = 1; in tcf_exts_validate()
2065 } else if (exts->action && tb[exts->action]) { in tcf_exts_validate()
2068 err = tcf_action_init(net, tp, tb[exts->action], in tcf_exts_validate()
2070 exts->actions, &attr_size, true, in tcf_exts_validate()
2074 exts->nr_actions = err; in tcf_exts_validate()
2076 exts->net = net; in tcf_exts_validate()
2079 if ((exts->action && tb[exts->action]) || in tcf_exts_validate()
2080 (exts->police && tb[exts->police])) { in tcf_exts_validate()
2102 static struct tc_action *tcf_exts_first_act(struct tcf_exts *exts) in tcf_exts_first_act() argument
2104 if (exts->nr_actions == 0) in tcf_exts_first_act()
2107 return exts->actions[0]; in tcf_exts_first_act()
2111 int tcf_exts_dump(struct sk_buff *skb, struct tcf_exts *exts) in tcf_exts_dump() argument
2116 if (exts->action && tcf_exts_has_actions(exts)) { in tcf_exts_dump()
2122 if (exts->type != TCA_OLD_COMPAT) { in tcf_exts_dump()
2123 nest = nla_nest_start(skb, exts->action); in tcf_exts_dump()
2127 if (tcf_action_dump(skb, exts->actions, 0, 0) < 0) in tcf_exts_dump()
2130 } else if (exts->police) { in tcf_exts_dump()
2131 struct tc_action *act = tcf_exts_first_act(exts); in tcf_exts_dump()
2132 nest = nla_nest_start(skb, exts->police); in tcf_exts_dump()
2152 int tcf_exts_dump_stats(struct sk_buff *skb, struct tcf_exts *exts) in tcf_exts_dump_stats() argument
2155 struct tc_action *a = tcf_exts_first_act(exts); in tcf_exts_dump_stats()
2163 static int tc_exts_setup_cb_egdev_call(struct tcf_exts *exts, in tc_exts_setup_cb_egdev_call() argument
2173 if (!tcf_exts_has_actions(exts)) in tc_exts_setup_cb_egdev_call()
2176 for (i = 0; i < exts->nr_actions; i++) { in tc_exts_setup_cb_egdev_call()
2177 a = exts->actions[i]; in tc_exts_setup_cb_egdev_call()
2193 int tc_setup_cb_call(struct tcf_block *block, struct tcf_exts *exts, in tc_setup_cb_call() argument
2204 if (!exts || ok_count) in tc_setup_cb_call()
2206 ret = tc_exts_setup_cb_egdev_call(exts, type, type_data, err_stop); in tc_setup_cb_call()