Lines Matching refs:tp
36 struct flow_dissector_key_ports tp; member
118 static int fl_classify(struct sk_buff *skb, const struct tcf_proto *tp, in fl_classify() argument
121 struct cls_fl_head *head = rcu_dereference_bh(tp->root); in fl_classify()
146 static int fl_init(struct tcf_proto *tp) in fl_init() argument
155 rcu_assign_pointer(tp->root, head); in fl_init()
168 static bool fl_destroy(struct tcf_proto *tp, bool force) in fl_destroy() argument
170 struct cls_fl_head *head = rtnl_dereference(tp->root); in fl_destroy()
180 RCU_INIT_POINTER(tp->root, NULL); in fl_destroy()
187 static unsigned long fl_get(struct tcf_proto *tp, u32 handle) in fl_get() argument
189 struct cls_fl_head *head = rtnl_dereference(tp->root); in fl_get()
286 fl_set_key_val(tb, &key->tp.src, TCA_FLOWER_KEY_TCP_SRC, in fl_set_key()
287 &mask->tp.src, TCA_FLOWER_UNSPEC, in fl_set_key()
288 sizeof(key->tp.src)); in fl_set_key()
289 fl_set_key_val(tb, &key->tp.dst, TCA_FLOWER_KEY_TCP_DST, in fl_set_key()
290 &mask->tp.dst, TCA_FLOWER_UNSPEC, in fl_set_key()
291 sizeof(key->tp.dst)); in fl_set_key()
293 fl_set_key_val(tb, &key->tp.src, TCA_FLOWER_KEY_UDP_SRC, in fl_set_key()
294 &mask->tp.src, TCA_FLOWER_UNSPEC, in fl_set_key()
295 sizeof(key->tp.src)); in fl_set_key()
296 fl_set_key_val(tb, &key->tp.dst, TCA_FLOWER_KEY_UDP_DST, in fl_set_key()
297 &mask->tp.dst, TCA_FLOWER_UNSPEC, in fl_set_key()
298 sizeof(key->tp.dst)); in fl_set_key()
367 FLOW_DISSECTOR_KEY_PORTS, tp); in fl_init_dissector()
398 static int fl_set_parms(struct net *net, struct tcf_proto *tp, in fl_set_parms() argument
407 err = tcf_exts_validate(net, tp, tb, est, &e, ovr); in fl_set_parms()
413 tcf_bind_filter(tp, &f->res, base); in fl_set_parms()
423 tcf_exts_change(tp, &f->exts, &e); in fl_set_parms()
431 static u32 fl_grab_new_handle(struct tcf_proto *tp, in fl_grab_new_handle() argument
440 } while (--i > 0 && fl_get(tp, head->hgen)); in fl_grab_new_handle()
453 struct tcf_proto *tp, unsigned long base, in fl_change() argument
457 struct cls_fl_head *head = rtnl_dereference(tp->root); in fl_change()
481 handle = fl_grab_new_handle(tp, head); in fl_change()
489 err = fl_set_parms(net, tp, fnew, &mask, base, tb, tca[TCA_RATE], ovr); in fl_change()
509 tcf_unbind_filter(tp, &fold->res); in fl_change()
522 static int fl_delete(struct tcf_proto *tp, unsigned long arg) in fl_delete() argument
524 struct cls_fl_head *head = rtnl_dereference(tp->root); in fl_delete()
530 tcf_unbind_filter(tp, &f->res); in fl_delete()
535 static void fl_walk(struct tcf_proto *tp, struct tcf_walker *arg) in fl_walk() argument
537 struct cls_fl_head *head = rtnl_dereference(tp->root); in fl_walk()
543 if (arg->fn(tp, (unsigned long) f, arg) < 0) { in fl_walk()
571 static int fl_dump(struct net *net, struct tcf_proto *tp, unsigned long fh, in fl_dump() argument
574 struct cls_fl_head *head = rtnl_dereference(tp->root); in fl_dump()
638 (fl_dump_key_val(skb, &key->tp.src, TCA_FLOWER_KEY_TCP_SRC, in fl_dump()
639 &mask->tp.src, TCA_FLOWER_UNSPEC, in fl_dump()
640 sizeof(key->tp.src)) || in fl_dump()
641 fl_dump_key_val(skb, &key->tp.dst, TCA_FLOWER_KEY_TCP_DST, in fl_dump()
642 &mask->tp.dst, TCA_FLOWER_UNSPEC, in fl_dump()
643 sizeof(key->tp.dst)))) in fl_dump()
646 (fl_dump_key_val(skb, &key->tp.src, TCA_FLOWER_KEY_UDP_SRC, in fl_dump()
647 &mask->tp.src, TCA_FLOWER_UNSPEC, in fl_dump()
648 sizeof(key->tp.src)) || in fl_dump()
649 fl_dump_key_val(skb, &key->tp.dst, TCA_FLOWER_KEY_UDP_DST, in fl_dump()
650 &mask->tp.dst, TCA_FLOWER_UNSPEC, in fl_dump()
651 sizeof(key->tp.dst)))) in fl_dump()