Lines Matching refs:fco

77 		NL_SET_ERR_MSG_MOD(st->fco->common.extack,
155 NL_SET_ERR_MSG_MOD(st->fco->common.extack, "ip_proto parse error");
162 struct netlink_ext_ack *extack = st->fco->common.extack;
214 NL_SET_ERR_MSG_MOD(st->fco->common.extack,
275 NL_SET_ERR_MSG_MOD(st->fco->common.extack,
285 struct flow_cls_offload *fco,
288 struct flow_rule *rule = flow_cls_offload_flow_rule(fco);
295 NL_SET_ERR_MSG_MOD(fco->common.extack, "No actions");
299 if (!flow_action_basic_hw_stats_check(act, fco->common.extack))
304 NL_SET_ERR_MSG_MOD(fco->common.extack,
317 if (!vcap_is_next_lookup(vctrl, fco->common.chain_index,
319 NL_SET_ERR_MSG_MOD(fco->common.extack,
323 } else if (!vcap_is_last_chain(vctrl, fco->common.chain_index,
325 NL_SET_ERR_MSG_MOD(fco->common.extack,
333 NL_SET_ERR_MSG_MOD(fco->common.extack,
340 NL_SET_ERR_MSG_MOD(fco->common.extack,
347 NL_SET_ERR_MSG_MOD(fco->common.extack,
354 NL_SET_ERR_MSG_MOD(fco->common.extack,
490 struct flow_cls_offload *fco,
538 vcap_set_tc_exterr(fco, vrule);
553 struct flow_cls_offload *fco,
564 err = sparx5_tc_add_rule_copy(vctrl, fco, erule, admin,
837 struct flow_cls_offload *fco)
871 NL_SET_ERR_MSG_MOD(fco->common.extack,
881 struct flow_cls_offload *fco,
890 NL_SET_ERR_MSG_MOD(fco->common.extack,
903 NL_SET_ERR_MSG_MOD(fco->common.extack,
912 struct flow_cls_offload *fco,
927 NL_SET_ERR_MSG_MOD(fco->common.extack,
944 NL_SET_ERR_MSG_MOD(fco->common.extack,
982 struct flow_cls_offload *fco,
993 NL_SET_ERR_MSG_MOD(fco->common.extack,
999 NL_SET_ERR_MSG_MOD(fco->common.extack,
1004 err = sparx5_tc_action_vlan_modify(admin, vrule, fco, act, act_tpid);
1023 NL_SET_ERR_MSG_MOD(fco->common.extack,
1042 struct flow_cls_offload *fco,
1049 NL_SET_ERR_MSG_MOD(fco->common.extack,
1066 struct flow_cls_offload *fco,
1073 NL_SET_ERR_MSG_MOD(fco->common.extack,
1137 struct flow_cls_offload *fco,
1145 if (ftp->cid != fco->common.chain_index)
1156 struct flow_cls_offload *fco,
1161 struct netlink_ext_ack *extack = fco->common.extack;
1164 .fco = fco,
1180 err = sparx5_tc_flower_action_check(vctrl, ndev, fco, ingress);
1184 vrule = vcap_alloc_rule(vctrl, ndev, fco->common.chain_index, VCAP_USER_TC,
1185 fco->common.prio, 0);
1189 vrule->cookie = fco->cookie;
1192 state.frule = flow_cls_offload_flow_rule(fco);
1202 fco->common.chain_index);
1206 frule = flow_cls_offload_flow_rule(fco);
1230 err = sparx5_tc_action_trap(admin, vrule, fco);
1235 err = sparx5_tc_action_mirred(admin, vrule, fco, act);
1240 err = sparx5_tc_action_redirect(admin, vrule, fco, act);
1254 fco->common.chain_index,
1258 err = sparx5_tc_action_vlan_pop(admin, vrule, fco,
1264 err = sparx5_tc_action_vlan_push(admin, vrule, fco,
1270 err = sparx5_tc_action_vlan_modify(admin, vrule, fco,
1276 NL_SET_ERR_MSG_MOD(fco->common.extack,
1291 if (!sparx5_tc_flower_use_template(ndev, fco, admin, vrule)) {
1295 NL_SET_ERR_MSG_MOD(fco->common.extack,
1304 vcap_set_tc_exterr(fco, vrule);
1309 NL_SET_ERR_MSG_MOD(fco->common.extack,
1313 err = sparx5_tc_add_remaining_rules(vctrl, fco, vrule, admin,
1378 struct flow_cls_offload *fco,
1387 rule_id = vcap_lookup_rule_by_cookie(vctrl, fco->cookie);
1412 struct flow_cls_offload *fco,
1422 err = vcap_get_rule_count_by_cookie(vctrl, &ctr, fco->cookie);
1425 flow_stats_update(&fco->stats, 0x0, ctr.value, 0, lastused,
1431 struct flow_cls_offload *fco,
1436 .fco = fco,
1453 count = vcap_admin_rule_count(admin, fco->common.chain_index);
1464 ftp->cid = fco->common.chain_index;
1469 vrule = vcap_alloc_rule(vctrl, ndev, fco->common.chain_index,
1470 VCAP_USER_TC, fco->common.prio, 0);
1477 state.frule = flow_cls_offload_flow_rule(fco);
1500 sparx5_vcap_set_port_keyset(ndev, admin, fco->common.chain_index,
1521 struct flow_cls_offload *fco,
1530 if (ftp->cid != fco->common.chain_index)
1534 fco->common.chain_index,
1544 int sparx5_tc_flower(struct net_device *ndev, struct flow_cls_offload *fco,
1554 admin = vcap_find_admin(vctrl, fco->common.chain_index);
1556 NL_SET_ERR_MSG_MOD(fco->common.extack, "Invalid chain");
1560 switch (fco->command) {
1562 return sparx5_tc_flower_replace(ndev, fco, admin, ingress);
1564 return sparx5_tc_flower_destroy(ndev, fco, admin);
1566 return sparx5_tc_flower_stats(ndev, fco, admin);
1568 return sparx5_tc_flower_template_create(ndev, fco, admin);
1570 return sparx5_tc_flower_template_destroy(ndev, fco, admin);