Lines Matching refs:tp
45 struct tcf_proto *tp; member
292 static int flow_classify(struct sk_buff *skb, const struct tcf_proto *tp, in flow_classify() argument
295 struct flow_head *head = rcu_dereference_bh(tp->root); in flow_classify()
376 struct tcf_proto *tp, unsigned long base, in flow_change() argument
380 struct flow_head *head = rtnl_dereference(tp->root); in flow_change()
422 err = tcf_exts_validate(net, tp, tb, tca[TCA_RATE], &e, ovr); in flow_change()
426 err = tcf_em_tree_validate(tp, tb[TCA_FLOW_EMATCHES], &t); in flow_change()
444 fnew->tp = fold->tp; in flow_change()
490 baseclass = TC_H_MAKE(tp->q->handle, baseclass); in flow_change()
496 fnew->tp = tp; in flow_change()
504 tcf_exts_change(tp, &fnew->exts, &e); in flow_change()
505 tcf_em_tree_change(tp, &fnew->ematches, &t); in flow_change()
507 netif_keep_dst(qdisc_dev(tp->q)); in flow_change()
553 static int flow_delete(struct tcf_proto *tp, unsigned long arg) in flow_delete() argument
562 static int flow_init(struct tcf_proto *tp) in flow_init() argument
570 rcu_assign_pointer(tp->root, head); in flow_init()
574 static bool flow_destroy(struct tcf_proto *tp, bool force) in flow_destroy() argument
576 struct flow_head *head = rtnl_dereference(tp->root); in flow_destroy()
586 RCU_INIT_POINTER(tp->root, NULL); in flow_destroy()
591 static unsigned long flow_get(struct tcf_proto *tp, u32 handle) in flow_get() argument
593 struct flow_head *head = rtnl_dereference(tp->root); in flow_get()
602 static int flow_dump(struct net *net, struct tcf_proto *tp, unsigned long fh, in flow_dump() argument
663 static void flow_walk(struct tcf_proto *tp, struct tcf_walker *arg) in flow_walk() argument
665 struct flow_head *head = rtnl_dereference(tp->root); in flow_walk()
671 if (arg->fn(tp, (unsigned long)f, arg) < 0) { in flow_walk()