Lines Matching defs:actions
115 /* XXX: For standalone actions, we don't need a RCU grace period either, because
116 * actions are always connected to filters and filters are already destroyed in
117 * RCU callbacks, so after a RCU grace period actions are already disconnected
252 struct tc_action *actions[TCA_ACT_MAX_PRIO] = {
271 err = tc_setup_action(&fl_action->action, actions, 0, extack);
274 "Failed to setup tc actions for offload");
663 NL_SET_ERR_MSG(extack, "Unable to flush all TC actions");
840 /* Set cpustats according to actions flags. */
859 /* Check if action with specified index exists. If actions is found, increments
861 * error pointer (to prevent concurrent users from inserting actions with same
864 * May return -EAGAIN for binding actions in case of a parallel add/delete on
1124 int tcf_action_exec(struct sk_buff *skb, struct tc_action **actions,
1128 u32 jmp_ttl = TCA_ACT_MAX_PRIO; /*matches actions per filter */
1137 const struct tc_action *a = actions[i];
1187 int tcf_action_destroy(struct tc_action *actions[], int bind)
1193 tcf_act_for_each_action(i, a, actions) {
1194 actions[i] = NULL;
1210 static void tcf_action_put_many(struct tc_action *actions[])
1215 tcf_act_for_each_action(i, a, actions) {
1222 static void tca_put_bound_many(struct tc_action *actions[], int init_res[])
1227 tcf_act_for_each_action(i, a, actions) {
1244 int tcf_action_dump(struct sk_buff *skb, struct tc_action *actions[],
1251 tcf_act_for_each_action(i, a, actions) {
1313 void tcf_idr_insert_many(struct tc_action *actions[], int init_res[])
1318 tcf_act_for_each_action(i, a, actions) {
1462 /* Returns numbers of initialized actions or negative error. */
1465 struct nlattr *est, struct tc_action *actions[],
1483 * array of actions. So we parse one more than we can handle, and return
1485 * contained more than the maximum number of actions).
1489 "Only %d actions supported per filter",
1514 actions[i - 1] = act;
1559 tcf_idr_insert_many(actions, init_res);
1566 tcf_action_destroy(actions, flags & TCA_ACT_FLAGS_BIND);
1641 static int tca_get_fill(struct sk_buff *skb, struct tc_action *actions[],
1666 if (tcf_action_dump(skb, actions, bind, ref, false) < 0)
1682 struct tc_action *actions[], int event,
1690 if (tca_get_fill(skb, actions, portid, n->nlmsg_seq, 0, event,
1725 if (!ops) { /* could happen in batch of actions */
1820 static int tcf_action_delete(struct net *net, struct tc_action *actions[])
1825 tcf_act_for_each_action(i, a, actions) {
1833 actions[i] = NULL;
1853 struct tc_action *actions[TCA_ACT_MAX_PRIO] = {
1862 if (tca_get_fill(skb, actions, 0, 0, 0, RTM_DELACTION, 0, 1, NULL) <= 0) {
1954 struct tc_action *actions[],
1964 if (tca_get_fill(skb, actions, portid, n->nlmsg_seq, 0, RTM_DELACTION,
1975 struct tc_action *actions[], u32 portid,
1984 skb = tcf_del_notify_msg(net, n, actions, portid, attr_size,
1991 ret = tcf_action_delete(net, actions);
2010 struct tc_action *actions[TCA_ACT_MAX_PRIO] = {};
2032 actions[i - 1] = act;
2038 ret = tcf_get_notify(net, portid, n, actions, event, extack);
2040 ret = tcf_del_notify(net, n, actions, portid, attr_size, extack);
2046 tcf_action_put_many(actions);
2051 struct tc_action *actions[],
2061 if (tca_get_fill(skb, actions, portid, n->nlmsg_seq, n->nlmsg_flags,
2072 struct tc_action *actions[], u32 portid,
2080 skb = tcf_add_notify_msg(net, n, actions, portid, attr_size,
2096 struct tc_action *actions[TCA_ACT_MAX_PRIO] = {};
2100 ret = tcf_action_init(net, NULL, nla, NULL, actions, init_res,
2109 ret = tcf_add_notify(net, n, actions, portid, attr_size, extack);
2111 /* only put bound actions */
2112 tca_put_bound_many(actions, init_res);