Lines Matching refs:cls_flower

441 	struct flow_cls_offload cls_flower = {};  in fl_hw_destroy_filter()  local
443 tc_cls_common_offload_init(&cls_flower.common, tp, f->flags, extack); in fl_hw_destroy_filter()
444 cls_flower.command = FLOW_CLS_DESTROY; in fl_hw_destroy_filter()
445 cls_flower.cookie = (unsigned long) f; in fl_hw_destroy_filter()
447 tc_setup_cb_destroy(block, tp, TC_SETUP_CLSFLOWER, &cls_flower, false, in fl_hw_destroy_filter()
457 struct flow_cls_offload cls_flower = {}; in fl_hw_replace_filter() local
461 cls_flower.rule = flow_rule_alloc(tcf_exts_num_actions(&f->exts)); in fl_hw_replace_filter()
462 if (!cls_flower.rule) in fl_hw_replace_filter()
465 tc_cls_common_offload_init(&cls_flower.common, tp, f->flags, extack); in fl_hw_replace_filter()
466 cls_flower.command = FLOW_CLS_REPLACE; in fl_hw_replace_filter()
467 cls_flower.cookie = (unsigned long) f; in fl_hw_replace_filter()
468 cls_flower.rule->match.dissector = &f->mask->dissector; in fl_hw_replace_filter()
469 cls_flower.rule->match.mask = &f->mask->key; in fl_hw_replace_filter()
470 cls_flower.rule->match.key = &f->mkey; in fl_hw_replace_filter()
471 cls_flower.classid = f->res.classid; in fl_hw_replace_filter()
473 err = tc_setup_offload_action(&cls_flower.rule->action, &f->exts, in fl_hw_replace_filter()
474 cls_flower.common.extack); in fl_hw_replace_filter()
476 kfree(cls_flower.rule); in fl_hw_replace_filter()
481 err = tc_setup_cb_add(block, tp, TC_SETUP_CLSFLOWER, &cls_flower, in fl_hw_replace_filter()
483 tc_cleanup_offload_action(&cls_flower.rule->action); in fl_hw_replace_filter()
484 kfree(cls_flower.rule); in fl_hw_replace_filter()
501 struct flow_cls_offload cls_flower = {}; in fl_hw_update_stats() local
503 tc_cls_common_offload_init(&cls_flower.common, tp, f->flags, NULL); in fl_hw_update_stats()
504 cls_flower.command = FLOW_CLS_STATS; in fl_hw_update_stats()
505 cls_flower.cookie = (unsigned long) f; in fl_hw_update_stats()
506 cls_flower.classid = f->res.classid; in fl_hw_update_stats()
508 tc_setup_cb_call(block, TC_SETUP_CLSFLOWER, &cls_flower, false, in fl_hw_update_stats()
511 tcf_exts_hw_stats_update(&f->exts, &cls_flower.stats, cls_flower.use_act_stats); in fl_hw_update_stats()
2550 struct flow_cls_offload cls_flower = {}; in fl_reoffload() local
2561 cls_flower.rule = in fl_reoffload()
2563 if (!cls_flower.rule) { in fl_reoffload()
2568 tc_cls_common_offload_init(&cls_flower.common, tp, f->flags, in fl_reoffload()
2570 cls_flower.command = add ? in fl_reoffload()
2572 cls_flower.cookie = (unsigned long)f; in fl_reoffload()
2573 cls_flower.rule->match.dissector = &f->mask->dissector; in fl_reoffload()
2574 cls_flower.rule->match.mask = &f->mask->key; in fl_reoffload()
2575 cls_flower.rule->match.key = &f->mkey; in fl_reoffload()
2577 err = tc_setup_offload_action(&cls_flower.rule->action, &f->exts, in fl_reoffload()
2578 cls_flower.common.extack); in fl_reoffload()
2580 kfree(cls_flower.rule); in fl_reoffload()
2588 cls_flower.classid = f->res.classid; in fl_reoffload()
2591 TC_SETUP_CLSFLOWER, &cls_flower, in fl_reoffload()
2594 tc_cleanup_offload_action(&cls_flower.rule->action); in fl_reoffload()
2595 kfree(cls_flower.rule); in fl_reoffload()
2610 struct flow_cls_offload *cls_flower = type_data; in fl_hw_add() local
2612 (struct cls_fl_filter *) cls_flower->cookie; in fl_hw_add()
2622 struct flow_cls_offload *cls_flower = type_data; in fl_hw_del() local
2624 (struct cls_fl_filter *) cls_flower->cookie; in fl_hw_del()
2635 struct flow_cls_offload cls_flower = {}; in fl_hw_create_tmplt() local
2638 cls_flower.rule = flow_rule_alloc(0); in fl_hw_create_tmplt()
2639 if (!cls_flower.rule) in fl_hw_create_tmplt()
2642 cls_flower.common.chain_index = chain->index; in fl_hw_create_tmplt()
2643 cls_flower.command = FLOW_CLS_TMPLT_CREATE; in fl_hw_create_tmplt()
2644 cls_flower.cookie = (unsigned long) tmplt; in fl_hw_create_tmplt()
2645 cls_flower.rule->match.dissector = &tmplt->dissector; in fl_hw_create_tmplt()
2646 cls_flower.rule->match.mask = &tmplt->mask; in fl_hw_create_tmplt()
2647 cls_flower.rule->match.key = &tmplt->dummy_key; in fl_hw_create_tmplt()
2652 tc_setup_cb_call(block, TC_SETUP_CLSFLOWER, &cls_flower, false, true); in fl_hw_create_tmplt()
2653 kfree(cls_flower.rule); in fl_hw_create_tmplt()
2661 struct flow_cls_offload cls_flower = {}; in fl_hw_destroy_tmplt() local
2664 cls_flower.common.chain_index = chain->index; in fl_hw_destroy_tmplt()
2665 cls_flower.command = FLOW_CLS_TMPLT_DESTROY; in fl_hw_destroy_tmplt()
2666 cls_flower.cookie = (unsigned long) tmplt; in fl_hw_destroy_tmplt()
2668 tc_setup_cb_call(block, TC_SETUP_CLSFLOWER, &cls_flower, false, true); in fl_hw_destroy_tmplt()