Lines Matching refs:cls_flower
418 struct flow_cls_offload cls_flower = {}; in fl_hw_destroy_filter() local
420 tc_cls_common_offload_init(&cls_flower.common, tp, f->flags, extack); in fl_hw_destroy_filter()
421 cls_flower.command = FLOW_CLS_DESTROY; in fl_hw_destroy_filter()
422 cls_flower.cookie = (unsigned long) f; in fl_hw_destroy_filter()
424 tc_setup_cb_destroy(block, tp, TC_SETUP_CLSFLOWER, &cls_flower, false, in fl_hw_destroy_filter()
434 struct flow_cls_offload cls_flower = {}; in fl_hw_replace_filter() local
438 cls_flower.rule = flow_rule_alloc(tcf_exts_num_actions(&f->exts)); in fl_hw_replace_filter()
439 if (!cls_flower.rule) in fl_hw_replace_filter()
442 tc_cls_common_offload_init(&cls_flower.common, tp, f->flags, extack); in fl_hw_replace_filter()
443 cls_flower.command = FLOW_CLS_REPLACE; in fl_hw_replace_filter()
444 cls_flower.cookie = (unsigned long) f; in fl_hw_replace_filter()
445 cls_flower.rule->match.dissector = &f->mask->dissector; in fl_hw_replace_filter()
446 cls_flower.rule->match.mask = &f->mask->key; in fl_hw_replace_filter()
447 cls_flower.rule->match.key = &f->mkey; in fl_hw_replace_filter()
448 cls_flower.classid = f->res.classid; in fl_hw_replace_filter()
450 err = tc_setup_flow_action(&cls_flower.rule->action, &f->exts, in fl_hw_replace_filter()
453 kfree(cls_flower.rule); in fl_hw_replace_filter()
461 err = tc_setup_cb_add(block, tp, TC_SETUP_CLSFLOWER, &cls_flower, in fl_hw_replace_filter()
463 tc_cleanup_flow_action(&cls_flower.rule->action); in fl_hw_replace_filter()
464 kfree(cls_flower.rule); in fl_hw_replace_filter()
481 struct flow_cls_offload cls_flower = {}; in fl_hw_update_stats() local
483 tc_cls_common_offload_init(&cls_flower.common, tp, f->flags, NULL); in fl_hw_update_stats()
484 cls_flower.command = FLOW_CLS_STATS; in fl_hw_update_stats()
485 cls_flower.cookie = (unsigned long) f; in fl_hw_update_stats()
486 cls_flower.classid = f->res.classid; in fl_hw_update_stats()
488 tc_setup_cb_call(block, TC_SETUP_CLSFLOWER, &cls_flower, false, in fl_hw_update_stats()
491 tcf_exts_stats_update(&f->exts, cls_flower.stats.bytes, in fl_hw_update_stats()
492 cls_flower.stats.pkts, in fl_hw_update_stats()
493 cls_flower.stats.lastused); in fl_hw_update_stats()
1824 struct flow_cls_offload cls_flower = {}; in fl_reoffload() local
1835 cls_flower.rule = in fl_reoffload()
1837 if (!cls_flower.rule) { in fl_reoffload()
1842 tc_cls_common_offload_init(&cls_flower.common, tp, f->flags, in fl_reoffload()
1844 cls_flower.command = add ? in fl_reoffload()
1846 cls_flower.cookie = (unsigned long)f; in fl_reoffload()
1847 cls_flower.rule->match.dissector = &f->mask->dissector; in fl_reoffload()
1848 cls_flower.rule->match.mask = &f->mask->key; in fl_reoffload()
1849 cls_flower.rule->match.key = &f->mkey; in fl_reoffload()
1851 err = tc_setup_flow_action(&cls_flower.rule->action, &f->exts, in fl_reoffload()
1854 kfree(cls_flower.rule); in fl_reoffload()
1863 cls_flower.classid = f->res.classid; in fl_reoffload()
1866 TC_SETUP_CLSFLOWER, &cls_flower, in fl_reoffload()
1869 tc_cleanup_flow_action(&cls_flower.rule->action); in fl_reoffload()
1870 kfree(cls_flower.rule); in fl_reoffload()
1885 struct flow_cls_offload *cls_flower = type_data; in fl_hw_add() local
1887 (struct cls_fl_filter *) cls_flower->cookie; in fl_hw_add()
1897 struct flow_cls_offload *cls_flower = type_data; in fl_hw_del() local
1899 (struct cls_fl_filter *) cls_flower->cookie; in fl_hw_del()
1910 struct flow_cls_offload cls_flower = {}; in fl_hw_create_tmplt() local
1913 cls_flower.rule = flow_rule_alloc(0); in fl_hw_create_tmplt()
1914 if (!cls_flower.rule) in fl_hw_create_tmplt()
1917 cls_flower.common.chain_index = chain->index; in fl_hw_create_tmplt()
1918 cls_flower.command = FLOW_CLS_TMPLT_CREATE; in fl_hw_create_tmplt()
1919 cls_flower.cookie = (unsigned long) tmplt; in fl_hw_create_tmplt()
1920 cls_flower.rule->match.dissector = &tmplt->dissector; in fl_hw_create_tmplt()
1921 cls_flower.rule->match.mask = &tmplt->mask; in fl_hw_create_tmplt()
1922 cls_flower.rule->match.key = &tmplt->dummy_key; in fl_hw_create_tmplt()
1927 tc_setup_cb_call(block, TC_SETUP_CLSFLOWER, &cls_flower, false, true); in fl_hw_create_tmplt()
1928 kfree(cls_flower.rule); in fl_hw_create_tmplt()
1936 struct flow_cls_offload cls_flower = {}; in fl_hw_destroy_tmplt() local
1939 cls_flower.common.chain_index = chain->index; in fl_hw_destroy_tmplt()
1940 cls_flower.command = FLOW_CLS_TMPLT_DESTROY; in fl_hw_destroy_tmplt()
1941 cls_flower.cookie = (unsigned long) tmplt; in fl_hw_destroy_tmplt()
1943 tc_setup_cb_call(block, TC_SETUP_CLSFLOWER, &cls_flower, false, true); in fl_hw_destroy_tmplt()