Lines Matching refs:vf
98 ice_vc_fdir_param_check(struct ice_vf *vf, u16 vsi_id) in ice_vc_fdir_param_check() argument
100 struct ice_pf *pf = vf->pf; in ice_vc_fdir_param_check()
105 if (!test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states)) in ice_vc_fdir_param_check()
108 if (!(vf->driver_caps & VIRTCHNL_VF_OFFLOAD_FDIR_PF)) in ice_vc_fdir_param_check()
111 if (!ice_vc_isvalid_vsi_id(vf, vsi_id)) in ice_vc_fdir_param_check()
114 if (!ice_get_vf_vsi(vf)) in ice_vc_fdir_param_check()
128 static int ice_vf_start_ctrl_vsi(struct ice_vf *vf) in ice_vf_start_ctrl_vsi() argument
130 struct ice_pf *pf = vf->pf; in ice_vf_start_ctrl_vsi()
136 if (vf->ctrl_vsi_idx != ICE_NO_VSI) in ice_vf_start_ctrl_vsi()
139 ctrl_vsi = ice_vf_ctrl_vsi_setup(vf); in ice_vf_start_ctrl_vsi()
142 vf->vf_id); in ice_vf_start_ctrl_vsi()
149 vf->vf_id); in ice_vf_start_ctrl_vsi()
157 if (vf->ctrl_vsi_idx != ICE_NO_VSI) { in ice_vf_start_ctrl_vsi()
158 pf->vsi[vf->ctrl_vsi_idx] = NULL; in ice_vf_start_ctrl_vsi()
159 vf->ctrl_vsi_idx = ICE_NO_VSI; in ice_vf_start_ctrl_vsi()
172 ice_vc_fdir_alloc_prof(struct ice_vf *vf, enum ice_fltr_ptype flow) in ice_vc_fdir_alloc_prof() argument
174 struct ice_vf_fdir *fdir = &vf->fdir; in ice_vc_fdir_alloc_prof()
177 fdir->fdir_prof = devm_kcalloc(ice_pf_to_dev(vf->pf), in ice_vc_fdir_alloc_prof()
186 fdir->fdir_prof[flow] = devm_kzalloc(ice_pf_to_dev(vf->pf), in ice_vc_fdir_alloc_prof()
202 ice_vc_fdir_free_prof(struct ice_vf *vf, enum ice_fltr_ptype flow) in ice_vc_fdir_free_prof() argument
204 struct ice_vf_fdir *fdir = &vf->fdir; in ice_vc_fdir_free_prof()
212 devm_kfree(ice_pf_to_dev(vf->pf), fdir->fdir_prof[flow]); in ice_vc_fdir_free_prof()
220 static void ice_vc_fdir_free_prof_all(struct ice_vf *vf) in ice_vc_fdir_free_prof_all() argument
222 struct ice_vf_fdir *fdir = &vf->fdir; in ice_vc_fdir_free_prof_all()
229 ice_vc_fdir_free_prof(vf, flow); in ice_vc_fdir_free_prof_all()
231 devm_kfree(ice_pf_to_dev(vf->pf), fdir->fdir_prof); in ice_vc_fdir_free_prof_all()
288 ice_vc_fdir_set_flow_fld(struct ice_vf *vf, struct virtchnl_fdir_add *fltr, in ice_vc_fdir_set_flow_fld() argument
294 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_fdir_set_flow_fld()
310 dev_dbg(dev, "Empty input set for VF %d\n", vf->vf_id); in ice_vc_fdir_set_flow_fld()
332 ice_vc_fdir_set_flow_hdr(struct ice_vf *vf, in ice_vc_fdir_set_flow_hdr() argument
338 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_fdir_set_flow_hdr()
403 flow, vf->vf_id); in ice_vc_fdir_set_flow_hdr()
463 flow, vf->vf_id); in ice_vc_fdir_set_flow_hdr()
477 ice_vc_fdir_rem_prof(struct ice_vf *vf, enum ice_fltr_ptype flow, int tun) in ice_vc_fdir_rem_prof() argument
479 struct ice_vf_fdir *fdir = &vf->fdir; in ice_vc_fdir_rem_prof()
481 struct ice_pf *pf = vf->pf; in ice_vc_fdir_rem_prof()
496 vf_vsi = ice_get_vf_vsi(vf); in ice_vc_fdir_rem_prof()
498 dev_dbg(dev, "NULL vf %d vsi pointer\n", vf->vf_id); in ice_vc_fdir_rem_prof()
529 static void ice_vc_fdir_rem_prof_all(struct ice_vf *vf) in ice_vc_fdir_rem_prof_all() argument
535 ice_vc_fdir_rem_prof(vf, flow, 0); in ice_vc_fdir_rem_prof_all()
536 ice_vc_fdir_rem_prof(vf, flow, 1); in ice_vc_fdir_rem_prof_all()
567 ice_vc_fdir_has_prof_conflict(struct ice_vf *vf, in ice_vc_fdir_has_prof_conflict() argument
572 list_for_each_entry(desc, &vf->fdir.fdir_rule_list, fltr_node) { in ice_vc_fdir_has_prof_conflict()
635 ice_vc_fdir_write_flow_prof(struct ice_vf *vf, enum ice_fltr_ptype flow, in ice_vc_fdir_write_flow_prof() argument
638 struct ice_vf_fdir *fdir = &vf->fdir; in ice_vc_fdir_write_flow_prof()
650 pf = vf->pf; in ice_vc_fdir_write_flow_prof()
653 vf_vsi = ice_get_vf_vsi(vf); in ice_vc_fdir_write_flow_prof()
657 ctrl_vsi = pf->vsi[vf->ctrl_vsi_idx]; in ice_vc_fdir_write_flow_prof()
666 vf->vf_id); in ice_vc_fdir_write_flow_prof()
673 vf->vf_id); in ice_vc_fdir_write_flow_prof()
678 ice_vc_fdir_rem_prof(vf, flow, tun); in ice_vc_fdir_write_flow_prof()
685 flow, vf->vf_id); in ice_vc_fdir_write_flow_prof()
694 flow, vf->vf_id); in ice_vc_fdir_write_flow_prof()
704 flow, vf->vf_id); in ice_vc_fdir_write_flow_prof()
748 ice_vc_fdir_config_input_set(struct ice_vf *vf, struct virtchnl_fdir_add *fltr, in ice_vc_fdir_config_input_set() argument
752 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_fdir_config_input_set()
757 ret = ice_vc_fdir_has_prof_conflict(vf, conf); in ice_vc_fdir_config_input_set()
760 vf->vf_id); in ice_vc_fdir_config_input_set()
765 ret = ice_vc_fdir_alloc_prof(vf, flow); in ice_vc_fdir_config_input_set()
767 dev_dbg(dev, "Alloc flow prof for VF %d failed\n", vf->vf_id); in ice_vc_fdir_config_input_set()
775 ret = ice_vc_fdir_set_flow_fld(vf, fltr, conf, seg); in ice_vc_fdir_config_input_set()
777 dev_dbg(dev, "Set flow field for VF %d failed\n", vf->vf_id); in ice_vc_fdir_config_input_set()
781 ret = ice_vc_fdir_set_flow_hdr(vf, conf, seg); in ice_vc_fdir_config_input_set()
783 dev_dbg(dev, "Set flow hdr for VF %d failed\n", vf->vf_id); in ice_vc_fdir_config_input_set()
787 ret = ice_vc_fdir_write_flow_prof(vf, flow, seg, tun); in ice_vc_fdir_config_input_set()
792 vf->vf_id); in ice_vc_fdir_config_input_set()
831 ice_vc_fdir_parse_raw(struct ice_vf *vf, in ice_vc_fdir_parse_raw() argument
837 struct ice_pf *pf = vf->pf; in ice_vc_fdir_parse_raw()
915 ice_vc_fdir_parse_pattern(struct ice_vf *vf, struct virtchnl_fdir_add *fltr, in ice_vc_fdir_parse_pattern() argument
921 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_fdir_parse_pattern()
927 proto->count, vf->vf_id); in ice_vc_fdir_parse_pattern()
933 return ice_vc_fdir_parse_raw(vf, proto, conf); in ice_vc_fdir_parse_pattern()
1124 hdr->type, vf->vf_id); in ice_vc_fdir_parse_pattern()
1143 ice_vc_fdir_parse_action(struct ice_vf *vf, struct virtchnl_fdir_add *fltr, in ice_vc_fdir_parse_action() argument
1147 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_fdir_parse_action()
1155 as->count, vf->vf_id); in ice_vc_fdir_parse_action()
1189 action->type, vf->vf_id); in ice_vc_fdir_parse_action()
1196 vf->vf_id); in ice_vc_fdir_parse_action()
1201 dev_dbg(dev, "Too many mark actions for VF %d\n", vf->vf_id); in ice_vc_fdir_parse_action()
1217 ice_vc_validate_fdir_fltr(struct ice_vf *vf, struct virtchnl_fdir_add *fltr, in ice_vc_validate_fdir_fltr() argument
1225 if (!ice_vc_validate_pattern(vf, proto)) in ice_vc_validate_fdir_fltr()
1228 ret = ice_vc_fdir_parse_pattern(vf, fltr, conf); in ice_vc_validate_fdir_fltr()
1232 return ice_vc_fdir_parse_action(vf, fltr, conf); in ice_vc_validate_fdir_fltr()
1283 ice_vc_fdir_is_dup_fltr(struct ice_vf *vf, struct virtchnl_fdir_fltr_conf *conf) in ice_vc_fdir_is_dup_fltr() argument
1288 list_for_each_entry(desc, &vf->fdir.fdir_rule_list, fltr_node) { in ice_vc_fdir_is_dup_fltr()
1311 ice_vc_fdir_insert_entry(struct ice_vf *vf, in ice_vc_fdir_insert_entry() argument
1318 i = idr_alloc(&vf->fdir.fdir_rule_idr, conf, 0, in ice_vc_fdir_insert_entry()
1324 list_add(&input->fltr_node, &vf->fdir.fdir_rule_list); in ice_vc_fdir_insert_entry()
1335 ice_vc_fdir_remove_entry(struct ice_vf *vf, in ice_vc_fdir_remove_entry() argument
1340 idr_remove(&vf->fdir.fdir_rule_idr, id); in ice_vc_fdir_remove_entry()
1352 ice_vc_fdir_lookup_entry(struct ice_vf *vf, u32 id) in ice_vc_fdir_lookup_entry() argument
1354 return idr_find(&vf->fdir.fdir_rule_idr, id); in ice_vc_fdir_lookup_entry()
1361 static void ice_vc_fdir_flush_entry(struct ice_vf *vf) in ice_vc_fdir_flush_entry() argument
1367 &vf->fdir.fdir_rule_list, fltr_node) { in ice_vc_fdir_flush_entry()
1370 devm_kfree(ice_pf_to_dev(vf->pf), conf); in ice_vc_fdir_flush_entry()
1383 static int ice_vc_fdir_write_fltr(struct ice_vf *vf, in ice_vc_fdir_write_fltr() argument
1396 pf = vf->pf; in ice_vc_fdir_write_fltr()
1399 vsi = ice_get_vf_vsi(vf); in ice_vc_fdir_write_fltr()
1401 dev_dbg(dev, "Invalid vsi for VF %d\n", vf->vf_id); in ice_vc_fdir_write_fltr()
1408 ctrl_vsi = pf->vsi[vf->ctrl_vsi_idx]; in ice_vc_fdir_write_fltr()
1410 dev_dbg(dev, "Invalid ctrl_vsi for VF %d\n", vf->vf_id); in ice_vc_fdir_write_fltr()
1425 vf->vf_id, input->flow_type); in ice_vc_fdir_write_fltr()
1451 struct ice_vf *vf; in ice_vf_fdir_timer() local
1455 vf = container_of(fdir, struct ice_vf, fdir); in ice_vf_fdir_timer()
1457 pf = vf->pf; in ice_vf_fdir_timer()
1487 struct ice_vf *vf = ctrl_vsi->vf; in ice_vc_fdir_irq_handler() local
1495 if (WARN_ON(!vf)) in ice_vc_fdir_irq_handler()
1498 fdir = &vf->fdir; in ice_vc_fdir_irq_handler()
1520 dev_err(dev, "VF %d: Unexpected inactive timer!\n", vf->vf_id); in ice_vc_fdir_irq_handler()
1530 static void ice_vf_fdir_dump_info(struct ice_vf *vf) in ice_vf_fdir_dump_info() argument
1539 pf = vf->pf; in ice_vf_fdir_dump_info()
1542 vf_vsi = ice_get_vf_vsi(vf); in ice_vf_fdir_dump_info()
1544 dev_dbg(dev, "VF %d: invalid VSI pointer\n", vf->vf_id); in ice_vf_fdir_dump_info()
1568 vf->vf_id, fd_size_g, fd_size_b); in ice_vf_fdir_dump_info()
1570 vf->vf_id, fd_cnt_g, fd_cnt_b); in ice_vf_fdir_dump_info()
1582 ice_vf_verify_rx_desc(struct ice_vf *vf, struct ice_vf_fdir_ctx *ctx, in ice_vf_verify_rx_desc() argument
1585 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vf_verify_rx_desc()
1593 dev_err(dev, "VF %d: Desc Done not set\n", vf->vf_id); in ice_vf_verify_rx_desc()
1602 vf->vf_id); in ice_vf_verify_rx_desc()
1611 vf->vf_id); in ice_vf_verify_rx_desc()
1621 vf->vf_id); in ice_vf_verify_rx_desc()
1625 vf->vf_id); in ice_vf_verify_rx_desc()
1634 dev_err(dev, "VF %d: Profile matching error", vf->vf_id); in ice_vf_verify_rx_desc()
1645 ice_vf_fdir_dump_info(vf); in ice_vf_verify_rx_desc()
1673 ice_vc_add_fdir_fltr_post(struct ice_vf *vf, struct ice_vf_fdir_ctx *ctx, in ice_vc_add_fdir_fltr_post() argument
1678 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_add_fdir_fltr_post()
1689 dev_dbg(dev, "VF %d: Alloc resp buf fail", vf->vf_id); in ice_vc_add_fdir_fltr_post()
1699 vf->fdir.fdir_fltr_cnt[conf->input.flow_type][is_tun]++; in ice_vc_add_fdir_fltr_post()
1700 vf->fdir.fdir_fltr_cnt_total++; in ice_vc_add_fdir_fltr_post()
1702 ret = ice_vc_send_msg_to_vf(vf, ctx->v_opcode, v_ret, in ice_vc_add_fdir_fltr_post()
1707 vf->vf_id, conf->flow_id, in ice_vc_add_fdir_fltr_post()
1715 ice_vc_fdir_remove_entry(vf, conf, conf->flow_id); in ice_vc_add_fdir_fltr_post()
1718 ret = ice_vc_send_msg_to_vf(vf, ctx->v_opcode, v_ret, in ice_vc_add_fdir_fltr_post()
1738 ice_vc_del_fdir_fltr_post(struct ice_vf *vf, struct ice_vf_fdir_ctx *ctx, in ice_vc_del_fdir_fltr_post() argument
1743 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_del_fdir_fltr_post()
1754 dev_dbg(dev, "VF %d: Alloc resp buf fail", vf->vf_id); in ice_vc_del_fdir_fltr_post()
1763 ice_vc_fdir_remove_entry(vf, conf, conf->flow_id); in ice_vc_del_fdir_fltr_post()
1764 vf->fdir.fdir_fltr_cnt[conf->input.flow_type][is_tun]--; in ice_vc_del_fdir_fltr_post()
1765 vf->fdir.fdir_fltr_cnt_total--; in ice_vc_del_fdir_fltr_post()
1767 ret = ice_vc_send_msg_to_vf(vf, ctx->v_opcode, v_ret, in ice_vc_del_fdir_fltr_post()
1772 vf->vf_id, conf->flow_id, in ice_vc_del_fdir_fltr_post()
1784 ret = ice_vc_send_msg_to_vf(vf, ctx->v_opcode, v_ret, in ice_vc_del_fdir_fltr_post()
1798 struct ice_vf *vf; in ice_flush_fdir_ctx() local
1805 ice_for_each_vf(pf, bkt, vf) { in ice_flush_fdir_ctx()
1812 if (!test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states)) in ice_flush_fdir_ctx()
1815 if (vf->ctrl_vsi_idx == ICE_NO_VSI) in ice_flush_fdir_ctx()
1818 ctx = &vf->fdir.ctx_done; in ice_flush_fdir_ctx()
1819 spin_lock_irqsave(&vf->fdir.ctx_lock, flags); in ice_flush_fdir_ctx()
1821 spin_unlock_irqrestore(&vf->fdir.ctx_lock, flags); in ice_flush_fdir_ctx()
1824 spin_unlock_irqrestore(&vf->fdir.ctx_lock, flags); in ice_flush_fdir_ctx()
1830 vf->vf_id); in ice_flush_fdir_ctx()
1834 ret = ice_vf_verify_rx_desc(vf, ctx, &status); in ice_flush_fdir_ctx()
1839 ice_vc_add_fdir_fltr_post(vf, ctx, status, true); in ice_flush_fdir_ctx()
1841 ice_vc_del_fdir_fltr_post(vf, ctx, status, true); in ice_flush_fdir_ctx()
1843 dev_err(dev, "VF %d: Unsupported opcode\n", vf->vf_id); in ice_flush_fdir_ctx()
1845 spin_lock_irqsave(&vf->fdir.ctx_lock, flags); in ice_flush_fdir_ctx()
1847 spin_unlock_irqrestore(&vf->fdir.ctx_lock, flags); in ice_flush_fdir_ctx()
1851 ice_vc_add_fdir_fltr_post(vf, ctx, status, false); in ice_flush_fdir_ctx()
1853 ice_vc_del_fdir_fltr_post(vf, ctx, status, false); in ice_flush_fdir_ctx()
1855 dev_err(dev, "VF %d: Unsupported opcode\n", vf->vf_id); in ice_flush_fdir_ctx()
1857 spin_lock_irqsave(&vf->fdir.ctx_lock, flags); in ice_flush_fdir_ctx()
1859 spin_unlock_irqrestore(&vf->fdir.ctx_lock, flags); in ice_flush_fdir_ctx()
1873 ice_vc_fdir_set_irq_ctx(struct ice_vf *vf, struct virtchnl_fdir_fltr_conf *conf, in ice_vc_fdir_set_irq_ctx() argument
1876 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_fdir_set_irq_ctx()
1880 ctx = &vf->fdir.ctx_irq; in ice_vc_fdir_set_irq_ctx()
1881 spin_lock_irqsave(&vf->fdir.ctx_lock, flags); in ice_vc_fdir_set_irq_ctx()
1882 if ((vf->fdir.ctx_irq.flags & ICE_VF_FDIR_CTX_VALID) || in ice_vc_fdir_set_irq_ctx()
1883 (vf->fdir.ctx_done.flags & ICE_VF_FDIR_CTX_VALID)) { in ice_vc_fdir_set_irq_ctx()
1884 spin_unlock_irqrestore(&vf->fdir.ctx_lock, flags); in ice_vc_fdir_set_irq_ctx()
1886 vf->vf_id); in ice_vc_fdir_set_irq_ctx()
1890 spin_unlock_irqrestore(&vf->fdir.ctx_lock, flags); in ice_vc_fdir_set_irq_ctx()
1908 static void ice_vc_fdir_clear_irq_ctx(struct ice_vf *vf) in ice_vc_fdir_clear_irq_ctx() argument
1910 struct ice_vf_fdir_ctx *ctx = &vf->fdir.ctx_irq; in ice_vc_fdir_clear_irq_ctx()
1914 spin_lock_irqsave(&vf->fdir.ctx_lock, flags); in ice_vc_fdir_clear_irq_ctx()
1916 spin_unlock_irqrestore(&vf->fdir.ctx_lock, flags); in ice_vc_fdir_clear_irq_ctx()
1967 ice_vc_add_fdir_raw(struct ice_vf *vf, in ice_vc_add_fdir_raw() argument
1974 struct ice_pf *pf = vf->pf; in ice_vc_add_fdir_raw()
1988 vf_vsi = ice_get_vf_vsi(vf); in ice_vc_add_fdir_raw()
1990 dev_err(dev, "Can not get FDIR vf_vsi for VF %d\n", vf->vf_id); in ice_vc_add_fdir_raw()
1994 ctrl_vsi = pf->vsi[vf->ctrl_vsi_idx]; in ice_vc_add_fdir_raw()
1997 vf->vf_id); in ice_vc_add_fdir_raw()
2004 pi = &vf->fdir_prof_info[ptg]; in ice_vc_add_fdir_raw()
2025 vf->vf_id); in ice_vc_add_fdir_raw()
2030 ret = ice_vc_fdir_insert_entry(vf, conf, &conf->flow_id); in ice_vc_add_fdir_raw()
2034 vf->vf_id); in ice_vc_add_fdir_raw()
2038 ret = ice_vc_fdir_set_irq_ctx(vf, conf, in ice_vc_add_fdir_raw()
2042 vf->vf_id); in ice_vc_add_fdir_raw()
2046 ret = ice_vc_fdir_write_fltr(vf, conf, true, false); in ice_vc_add_fdir_raw()
2049 vf->vf_id, ret); in ice_vc_add_fdir_raw()
2065 ice_vc_fdir_clear_irq_ctx(vf); in ice_vc_add_fdir_raw()
2067 ice_vc_fdir_remove_entry(vf, conf, conf->flow_id); in ice_vc_add_fdir_raw()
2078 int ice_vc_add_fdir_fltr(struct ice_vf *vf, u8 *msg) in ice_vc_add_fdir_fltr() argument
2091 pf = vf->pf; in ice_vc_add_fdir_fltr()
2093 vf_vsi = ice_get_vf_vsi(vf); in ice_vc_add_fdir_fltr()
2097 vf->fdir.fdir_fltr_cnt_total >= ICE_VF_MAX_FDIR_FILTERS) { in ice_vc_add_fdir_fltr()
2100 vf->vf_id); in ice_vc_add_fdir_fltr()
2104 ret = ice_vc_fdir_param_check(vf, fltr->vsi_id); in ice_vc_add_fdir_fltr()
2107 dev_dbg(dev, "Parameter check for VF %d failed\n", vf->vf_id); in ice_vc_add_fdir_fltr()
2111 ret = ice_vf_start_ctrl_vsi(vf); in ice_vc_add_fdir_fltr()
2115 vf->vf_id, ret); in ice_vc_add_fdir_fltr()
2122 dev_dbg(dev, "Alloc stat for VF %d failed\n", vf->vf_id); in ice_vc_add_fdir_fltr()
2129 dev_dbg(dev, "Alloc conf for VF %d failed\n", vf->vf_id); in ice_vc_add_fdir_fltr()
2134 ret = ice_vc_validate_fdir_fltr(vf, fltr, conf); in ice_vc_add_fdir_fltr()
2138 dev_dbg(dev, "Invalid FDIR filter from VF %d\n", vf->vf_id); in ice_vc_add_fdir_fltr()
2146 ret = ice_vc_send_msg_to_vf(vf, VIRTCHNL_OP_ADD_FDIR_FILTER, in ice_vc_add_fdir_fltr()
2153 ret = ice_vc_add_fdir_raw(vf, conf, &v_ret, stat, len); in ice_vc_add_fdir_fltr()
2160 ret = ice_vc_fdir_config_input_set(vf, fltr, conf, is_tun); in ice_vc_add_fdir_fltr()
2165 vf->vf_id, ret); in ice_vc_add_fdir_fltr()
2169 ret = ice_vc_fdir_is_dup_fltr(vf, conf); in ice_vc_add_fdir_fltr()
2174 vf->vf_id); in ice_vc_add_fdir_fltr()
2178 ret = ice_vc_fdir_insert_entry(vf, conf, &conf->flow_id); in ice_vc_add_fdir_fltr()
2182 dev_dbg(dev, "VF %d: insert FDIR list failed\n", vf->vf_id); in ice_vc_add_fdir_fltr()
2186 ret = ice_vc_fdir_set_irq_ctx(vf, conf, VIRTCHNL_OP_ADD_FDIR_FILTER); in ice_vc_add_fdir_fltr()
2190 dev_dbg(dev, "VF %d: set FDIR context failed\n", vf->vf_id); in ice_vc_add_fdir_fltr()
2194 ret = ice_vc_fdir_write_fltr(vf, conf, true, is_tun); in ice_vc_add_fdir_fltr()
2199 vf->vf_id, ret); in ice_vc_add_fdir_fltr()
2208 ice_vc_fdir_clear_irq_ctx(vf); in ice_vc_add_fdir_fltr()
2210 ice_vc_fdir_remove_entry(vf, conf, conf->flow_id); in ice_vc_add_fdir_fltr()
2214 ret = ice_vc_send_msg_to_vf(vf, VIRTCHNL_OP_ADD_FDIR_FILTER, v_ret, in ice_vc_add_fdir_fltr()
2231 ice_vc_del_fdir_raw(struct ice_vf *vf, in ice_vc_del_fdir_raw() argument
2239 struct ice_pf *pf = vf->pf; in ice_vc_del_fdir_raw()
2255 ret = ice_vc_fdir_write_fltr(vf, conf, false, false); in ice_vc_del_fdir_raw()
2258 vf->vf_id, ret); in ice_vc_del_fdir_raw()
2262 vf_vsi = ice_get_vf_vsi(vf); in ice_vc_del_fdir_raw()
2264 dev_err(dev, "Can not get FDIR vf_vsi for VF %u\n", vf->vf_id); in ice_vc_del_fdir_raw()
2268 ctrl_vsi = pf->vsi[vf->ctrl_vsi_idx]; in ice_vc_del_fdir_raw()
2271 vf->vf_id); in ice_vc_del_fdir_raw()
2275 pi = &vf->fdir_prof_info[ptg]; in ice_vc_del_fdir_raw()
2299 int ice_vc_del_fdir_fltr(struct ice_vf *vf, u8 *msg) in ice_vc_del_fdir_fltr() argument
2304 struct ice_vf_fdir *fdir = &vf->fdir; in ice_vc_del_fdir_fltr()
2314 pf = vf->pf; in ice_vc_del_fdir_fltr()
2316 ret = ice_vc_fdir_param_check(vf, fltr->vsi_id); in ice_vc_del_fdir_fltr()
2319 dev_dbg(dev, "Parameter check for VF %d failed\n", vf->vf_id); in ice_vc_del_fdir_fltr()
2326 dev_dbg(dev, "Alloc stat for VF %d failed\n", vf->vf_id); in ice_vc_del_fdir_fltr()
2332 conf = ice_vc_fdir_lookup_entry(vf, fltr->flow_id); in ice_vc_del_fdir_fltr()
2337 vf->vf_id, fltr->flow_id); in ice_vc_del_fdir_fltr()
2342 if (vf->ctrl_vsi_idx == ICE_NO_VSI) { in ice_vc_del_fdir_fltr()
2345 dev_err(dev, "Invalid FDIR ctrl_vsi for VF %d\n", vf->vf_id); in ice_vc_del_fdir_fltr()
2349 ret = ice_vc_fdir_set_irq_ctx(vf, conf, VIRTCHNL_OP_DEL_FDIR_FILTER); in ice_vc_del_fdir_fltr()
2353 dev_dbg(dev, "VF %d: set FDIR context failed\n", vf->vf_id); in ice_vc_del_fdir_fltr()
2359 ret = ice_vc_del_fdir_raw(vf, conf, &v_ret, stat, len); in ice_vc_del_fdir_fltr()
2366 ret = ice_vc_fdir_write_fltr(vf, conf, false, is_tun); in ice_vc_del_fdir_fltr()
2371 vf->vf_id, ret); in ice_vc_del_fdir_fltr()
2379 ice_vc_fdir_rem_prof(vf, flow, is_tun); in ice_vc_del_fdir_fltr()
2387 ice_vc_fdir_clear_irq_ctx(vf); in ice_vc_del_fdir_fltr()
2389 ret = ice_vc_send_msg_to_vf(vf, VIRTCHNL_OP_DEL_FDIR_FILTER, v_ret, in ice_vc_del_fdir_fltr()
2399 void ice_vf_fdir_init(struct ice_vf *vf) in ice_vf_fdir_init() argument
2401 struct ice_vf_fdir *fdir = &vf->fdir; in ice_vf_fdir_init()
2416 void ice_vf_fdir_exit(struct ice_vf *vf) in ice_vf_fdir_exit() argument
2418 ice_vc_fdir_flush_entry(vf); in ice_vf_fdir_exit()
2419 idr_destroy(&vf->fdir.fdir_rule_idr); in ice_vf_fdir_exit()
2420 ice_vc_fdir_rem_prof_all(vf); in ice_vf_fdir_exit()
2421 ice_vc_fdir_free_prof_all(vf); in ice_vf_fdir_exit()