Lines Matching refs:fco
48 NL_SET_ERR_MSG_MOD(st->fco->common.extack, in sparx5_tc_flower_es0_tpid()
126 NL_SET_ERR_MSG_MOD(st->fco->common.extack, "ip_proto parse error"); in sparx5_tc_flower_handler_basic_usage()
175 NL_SET_ERR_MSG_MOD(st->fco->common.extack, "ip_frag parse error"); in sparx5_tc_flower_handler_control_usage()
183 NL_SET_ERR_MSG_MOD(st->fco->common.extack, in sparx5_tc_flower_handler_cvlan_usage()
244 NL_SET_ERR_MSG_MOD(st->fco->common.extack, in sparx5_tc_use_dissectors()
254 struct flow_cls_offload *fco, in sparx5_tc_flower_action_check() argument
257 struct flow_rule *rule = flow_cls_offload_flow_rule(fco); in sparx5_tc_flower_action_check()
264 NL_SET_ERR_MSG_MOD(fco->common.extack, "No actions"); in sparx5_tc_flower_action_check()
268 if (!flow_action_basic_hw_stats_check(act, fco->common.extack)) in sparx5_tc_flower_action_check()
273 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_flower_action_check()
286 if (!vcap_is_next_lookup(vctrl, fco->common.chain_index, in sparx5_tc_flower_action_check()
288 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_flower_action_check()
292 } else if (!vcap_is_last_chain(vctrl, fco->common.chain_index, in sparx5_tc_flower_action_check()
294 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_flower_action_check()
302 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_flower_action_check()
309 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_flower_action_check()
316 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_flower_action_check()
323 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_flower_action_check()
459 struct flow_cls_offload *fco, in sparx5_tc_add_rule_copy() argument
507 vcap_set_tc_exterr(fco, vrule); in sparx5_tc_add_rule_copy()
522 struct flow_cls_offload *fco, in sparx5_tc_add_remaining_rules() argument
533 err = sparx5_tc_add_rule_copy(vctrl, fco, erule, admin, in sparx5_tc_add_remaining_rules()
806 struct flow_cls_offload *fco) in sparx5_tc_action_trap() argument
840 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_action_trap()
850 struct flow_cls_offload *fco, in sparx5_tc_action_vlan_pop() argument
859 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_action_vlan_pop()
872 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_action_vlan_pop()
881 struct flow_cls_offload *fco, in sparx5_tc_action_vlan_modify() argument
896 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_action_vlan_modify()
913 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_action_vlan_modify()
951 struct flow_cls_offload *fco, in sparx5_tc_action_vlan_push() argument
962 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_action_vlan_push()
968 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_action_vlan_push()
973 err = sparx5_tc_action_vlan_modify(admin, vrule, fco, act, act_tpid); in sparx5_tc_action_vlan_push()
992 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_action_vlan_push()
1000 struct flow_cls_offload *fco, in sparx5_tc_flower_replace() argument
1005 struct netlink_ext_ack *extack = fco->common.extack; in sparx5_tc_flower_replace()
1008 .fco = fco, in sparx5_tc_flower_replace()
1024 err = sparx5_tc_flower_action_check(vctrl, ndev, fco, ingress); in sparx5_tc_flower_replace()
1028 vrule = vcap_alloc_rule(vctrl, ndev, fco->common.chain_index, VCAP_USER_TC, in sparx5_tc_flower_replace()
1029 fco->common.prio, 0); in sparx5_tc_flower_replace()
1033 vrule->cookie = fco->cookie; in sparx5_tc_flower_replace()
1036 state.frule = flow_cls_offload_flow_rule(fco); in sparx5_tc_flower_replace()
1046 fco->common.chain_index); in sparx5_tc_flower_replace()
1050 frule = flow_cls_offload_flow_rule(fco); in sparx5_tc_flower_replace()
1074 err = sparx5_tc_action_trap(admin, vrule, fco); in sparx5_tc_flower_replace()
1088 fco->common.chain_index, in sparx5_tc_flower_replace()
1092 err = sparx5_tc_action_vlan_pop(admin, vrule, fco, in sparx5_tc_flower_replace()
1098 err = sparx5_tc_action_vlan_push(admin, vrule, fco, in sparx5_tc_flower_replace()
1104 err = sparx5_tc_action_vlan_modify(admin, vrule, fco, in sparx5_tc_flower_replace()
1110 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_flower_replace()
1128 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_flower_replace()
1136 vcap_set_tc_exterr(fco, vrule); in sparx5_tc_flower_replace()
1141 NL_SET_ERR_MSG_MOD(fco->common.extack, in sparx5_tc_flower_replace()
1145 err = sparx5_tc_add_remaining_rules(vctrl, fco, vrule, admin, in sparx5_tc_flower_replace()
1210 struct flow_cls_offload *fco, in sparx5_tc_flower_destroy() argument
1219 rule_id = vcap_lookup_rule_by_cookie(vctrl, fco->cookie); in sparx5_tc_flower_destroy()
1244 struct flow_cls_offload *fco, in sparx5_tc_flower_stats() argument
1254 err = vcap_get_rule_count_by_cookie(vctrl, &ctr, fco->cookie); in sparx5_tc_flower_stats()
1257 flow_stats_update(&fco->stats, 0x0, ctr.value, 0, lastused, in sparx5_tc_flower_stats()
1262 int sparx5_tc_flower(struct net_device *ndev, struct flow_cls_offload *fco, in sparx5_tc_flower() argument
1272 admin = vcap_find_admin(vctrl, fco->common.chain_index); in sparx5_tc_flower()
1274 NL_SET_ERR_MSG_MOD(fco->common.extack, "Invalid chain"); in sparx5_tc_flower()
1278 switch (fco->command) { in sparx5_tc_flower()
1280 return sparx5_tc_flower_replace(ndev, fco, admin, ingress); in sparx5_tc_flower()
1282 return sparx5_tc_flower_destroy(ndev, fco, admin); in sparx5_tc_flower()
1284 return sparx5_tc_flower_stats(ndev, fco, admin); in sparx5_tc_flower()