Lines Matching refs:exts
509 void tcf_exts_destroy(struct tcf_exts *exts) in tcf_exts_destroy() argument
512 tcf_action_destroy(&exts->actions, TCA_ACT_UNBIND); in tcf_exts_destroy()
513 INIT_LIST_HEAD(&exts->actions); in tcf_exts_destroy()
519 struct nlattr *rate_tlv, struct tcf_exts *exts, bool ovr) in tcf_exts_validate() argument
525 INIT_LIST_HEAD(&exts->actions); in tcf_exts_validate()
526 if (exts->police && tb[exts->police]) { in tcf_exts_validate()
527 act = tcf_action_init_1(net, tb[exts->police], rate_tlv, in tcf_exts_validate()
533 act->type = exts->type = TCA_OLD_COMPAT; in tcf_exts_validate()
534 list_add(&act->list, &exts->actions); in tcf_exts_validate()
535 } else if (exts->action && tb[exts->action]) { in tcf_exts_validate()
537 err = tcf_action_init(net, tb[exts->action], rate_tlv, in tcf_exts_validate()
539 TCA_ACT_BIND, &exts->actions); in tcf_exts_validate()
545 if ((exts->action && tb[exts->action]) || in tcf_exts_validate()
546 (exts->police && tb[exts->police])) in tcf_exts_validate()
570 list_first_entry_or_null(&(exts)->actions, \
573 int tcf_exts_dump(struct sk_buff *skb, struct tcf_exts *exts) in tcf_exts_dump() argument
578 if (exts->action && !list_empty(&exts->actions)) { in tcf_exts_dump()
584 if (exts->type != TCA_OLD_COMPAT) { in tcf_exts_dump()
585 nest = nla_nest_start(skb, exts->action); in tcf_exts_dump()
588 if (tcf_action_dump(skb, &exts->actions, 0, 0) < 0) in tcf_exts_dump()
591 } else if (exts->police) { in tcf_exts_dump()
592 struct tc_action *act = tcf_exts_first_act(exts); in tcf_exts_dump()
593 nest = nla_nest_start(skb, exts->police); in tcf_exts_dump()
613 int tcf_exts_dump_stats(struct sk_buff *skb, struct tcf_exts *exts) in tcf_exts_dump_stats() argument
616 struct tc_action *a = tcf_exts_first_act(exts); in tcf_exts_dump_stats()