Lines Matching refs:prof

592 	struct ice_flow_prof *prof;  member
667 sz = (params->prof->segs[seg].hdrs & ICE_FLOW_SEG_HDR_VLAN) ? in ice_flow_calc_seg_sz()
671 if (params->prof->segs[seg].hdrs & ICE_FLOW_SEG_HDR_IPV4) in ice_flow_calc_seg_sz()
673 else if (params->prof->segs[seg].hdrs & ICE_FLOW_SEG_HDR_IPV6) in ice_flow_calc_seg_sz()
675 else if (params->prof->segs[seg].hdrs & ICE_FLOW_SEG_HDR_ARP) in ice_flow_calc_seg_sz()
677 else if (params->prof->segs[seg].hdrs & ICE_FLOW_SEG_HDRS_L4_MASK) in ice_flow_calc_seg_sz()
682 if (params->prof->segs[seg].hdrs & ICE_FLOW_SEG_HDR_ICMP) in ice_flow_calc_seg_sz()
684 else if (params->prof->segs[seg].hdrs & ICE_FLOW_SEG_HDR_TCP) in ice_flow_calc_seg_sz()
686 else if (params->prof->segs[seg].hdrs & ICE_FLOW_SEG_HDR_UDP) in ice_flow_calc_seg_sz()
688 else if (params->prof->segs[seg].hdrs & ICE_FLOW_SEG_HDR_SCTP) in ice_flow_calc_seg_sz()
703 struct ice_flow_prof *prof; in ice_flow_proc_seg_hdrs() local
708 prof = params->prof; in ice_flow_proc_seg_hdrs()
710 for (i = 0; i < params->prof->segs_cnt; i++) { in ice_flow_proc_seg_hdrs()
714 hdrs = prof->segs[i].hdrs; in ice_flow_proc_seg_hdrs()
911 flds = params->prof->segs[seg].fields; in ice_flow_xtract_fld()
1025 prot_id = (params->prof->segs[seg].hdrs & ICE_FLOW_SEG_HDR_IPV4) ? in ice_flow_xtract_fld()
1107 if (!params->prof->segs[seg].raws_cnt) in ice_flow_xtract_raws()
1110 if (params->prof->segs[seg].raws_cnt > in ice_flow_xtract_raws()
1111 ARRAY_SIZE(params->prof->segs[seg].raws)) in ice_flow_xtract_raws()
1121 for (i = 0; i < params->prof->segs[seg].raws_cnt; i++) { in ice_flow_xtract_raws()
1125 raw = &params->prof->segs[seg].raws[i]; in ice_flow_xtract_raws()
1180 struct ice_flow_prof *prof = params->prof; in ice_flow_create_xtrct_seq() local
1184 for (i = 0; i < prof->segs_cnt; i++) { in ice_flow_create_xtrct_seq()
1185 u64 match = params->prof->segs[i].match; in ice_flow_create_xtrct_seq()
1254 struct ice_flow_prof *p, *prof = NULL; in ice_flow_find_prof_conds() local
1279 prof = p; in ice_flow_find_prof_conds()
1285 return prof; in ice_flow_find_prof_conds()
1343 struct ice_flow_prof **prof) in ice_flow_add_prof_sync() argument
1349 if (!prof) in ice_flow_add_prof_sync()
1356 params->prof = devm_kzalloc(ice_hw_to_dev(hw), sizeof(*params->prof), in ice_flow_add_prof_sync()
1358 if (!params->prof) { in ice_flow_add_prof_sync()
1370 params->prof->id = prof_id; in ice_flow_add_prof_sync()
1371 params->prof->dir = dir; in ice_flow_add_prof_sync()
1372 params->prof->segs_cnt = segs_cnt; in ice_flow_add_prof_sync()
1378 memcpy(&params->prof->segs[i], &segs[i], sizeof(*segs)); in ice_flow_add_prof_sync()
1395 INIT_LIST_HEAD(&params->prof->entries); in ice_flow_add_prof_sync()
1396 mutex_init(&params->prof->entries_lock); in ice_flow_add_prof_sync()
1397 *prof = params->prof; in ice_flow_add_prof_sync()
1401 devm_kfree(ice_hw_to_dev(hw), params->prof); in ice_flow_add_prof_sync()
1418 struct ice_flow_prof *prof) in ice_flow_rem_prof_sync() argument
1423 if (!list_empty(&prof->entries)) { in ice_flow_rem_prof_sync()
1426 mutex_lock(&prof->entries_lock); in ice_flow_rem_prof_sync()
1428 list_for_each_entry_safe(e, t, &prof->entries, l_entry) { in ice_flow_rem_prof_sync()
1434 mutex_unlock(&prof->entries_lock); in ice_flow_rem_prof_sync()
1438 status = ice_rem_prof(hw, blk, prof->id); in ice_flow_rem_prof_sync()
1440 list_del(&prof->l_entry); in ice_flow_rem_prof_sync()
1441 mutex_destroy(&prof->entries_lock); in ice_flow_rem_prof_sync()
1442 devm_kfree(ice_hw_to_dev(hw), prof); in ice_flow_rem_prof_sync()
1460 struct ice_flow_prof *prof, u16 vsi_handle) in ice_flow_assoc_prof() argument
1464 if (!test_bit(vsi_handle, prof->vsis)) { in ice_flow_assoc_prof()
1468 prof->id); in ice_flow_assoc_prof()
1470 set_bit(vsi_handle, prof->vsis); in ice_flow_assoc_prof()
1491 struct ice_flow_prof *prof, u16 vsi_handle) in ice_flow_disassoc_prof() argument
1495 if (test_bit(vsi_handle, prof->vsis)) { in ice_flow_disassoc_prof()
1499 prof->id); in ice_flow_disassoc_prof()
1501 clear_bit(vsi_handle, prof->vsis); in ice_flow_disassoc_prof()
1523 struct ice_flow_prof **prof) in ice_flow_add_prof() argument
1543 prof); in ice_flow_add_prof()
1545 list_add(&(*prof)->l_entry, &hw->fl_profs[blk]); in ice_flow_add_prof()
1560 struct ice_flow_prof *prof; in ice_flow_rem_prof() local
1565 prof = ice_flow_find_prof_id(hw, blk, prof_id); in ice_flow_rem_prof()
1566 if (!prof) { in ice_flow_rem_prof()
1572 status = ice_flow_rem_prof_sync(hw, blk, prof); in ice_flow_rem_prof()
1597 struct ice_flow_prof *prof; in ice_flow_add_entry() local
1609 prof = ice_flow_find_prof_id(hw, blk, prof_id); in ice_flow_add_entry()
1610 if (!prof) { in ice_flow_add_entry()
1620 status = ice_flow_assoc_prof(hw, blk, prof, vsi_handle); in ice_flow_add_entry()
1629 e->prof = prof; in ice_flow_add_entry()
1641 mutex_lock(&prof->entries_lock); in ice_flow_add_entry()
1642 list_add(&e->l_entry, &prof->entries); in ice_flow_add_entry()
1643 mutex_unlock(&prof->entries_lock); in ice_flow_add_entry()
1665 struct ice_flow_prof *prof; in ice_flow_rem_entry() local
1674 prof = entry->prof; in ice_flow_rem_entry()
1676 if (prof) { in ice_flow_rem_entry()
1677 mutex_lock(&prof->entries_lock); in ice_flow_rem_entry()
1679 mutex_unlock(&prof->entries_lock); in ice_flow_rem_entry()
1804 struct ice_flow_prof *prof; in ice_flow_rem_vsi_prof() local
1811 prof = ice_flow_find_prof_id(hw, ICE_BLK_FD, prof_id); in ice_flow_rem_vsi_prof()
1812 if (!prof) { in ice_flow_rem_vsi_prof()
1819 if (!list_empty(&prof->entries)) { in ice_flow_rem_vsi_prof()
1822 mutex_lock(&prof->entries_lock); in ice_flow_rem_vsi_prof()
1823 list_for_each_entry_safe(e, t, &prof->entries, l_entry) { in ice_flow_rem_vsi_prof()
1831 mutex_unlock(&prof->entries_lock); in ice_flow_rem_vsi_prof()
1837 status = ice_flow_disassoc_prof(hw, ICE_BLK_FD, prof, vsi_handle); in ice_flow_rem_vsi_prof()
1970 ice_rem_rss_list(struct ice_hw *hw, u16 vsi_handle, struct ice_flow_prof *prof) in ice_rem_rss_list() argument
1979 if (r->hashed_flds == prof->segs[prof->segs_cnt - 1].match && in ice_rem_rss_list()
1980 r->packet_hdr == prof->segs[prof->segs_cnt - 1].hdrs) { in ice_rem_rss_list()
1999 ice_add_rss_list(struct ice_hw *hw, u16 vsi_handle, struct ice_flow_prof *prof) in ice_add_rss_list() argument
2004 if (r->hashed_flds == prof->segs[prof->segs_cnt - 1].match && in ice_add_rss_list()
2005 r->packet_hdr == prof->segs[prof->segs_cnt - 1].hdrs) { in ice_add_rss_list()
2015 rss_cfg->hashed_flds = prof->segs[prof->segs_cnt - 1].match; in ice_add_rss_list()
2016 rss_cfg->packet_hdr = prof->segs[prof->segs_cnt - 1].hdrs; in ice_add_rss_list()
2059 struct ice_flow_prof *prof = NULL; in ice_add_rss_cfg_sync() local
2080 prof = ice_flow_find_prof_conds(hw, blk, ICE_FLOW_RX, segs, segs_cnt, in ice_add_rss_cfg_sync()
2084 if (prof) in ice_add_rss_cfg_sync()
2092 prof = ice_flow_find_prof_conds(hw, blk, ICE_FLOW_RX, segs, segs_cnt, in ice_add_rss_cfg_sync()
2094 if (prof) { in ice_add_rss_cfg_sync()
2095 status = ice_flow_disassoc_prof(hw, blk, prof, vsi_handle); in ice_add_rss_cfg_sync()
2097 ice_rem_rss_list(hw, vsi_handle, prof); in ice_add_rss_cfg_sync()
2102 if (bitmap_empty(prof->vsis, ICE_MAX_VSI)) { in ice_add_rss_cfg_sync()
2103 status = ice_flow_rem_prof(hw, blk, prof->id); in ice_add_rss_cfg_sync()
2112 prof = ice_flow_find_prof_conds(hw, blk, ICE_FLOW_RX, segs, segs_cnt, in ice_add_rss_cfg_sync()
2115 if (prof) { in ice_add_rss_cfg_sync()
2116 status = ice_flow_assoc_prof(hw, blk, prof, vsi_handle); in ice_add_rss_cfg_sync()
2118 status = ice_add_rss_list(hw, vsi_handle, prof); in ice_add_rss_cfg_sync()
2129 segs, segs_cnt, &prof); in ice_add_rss_cfg_sync()
2133 status = ice_flow_assoc_prof(hw, blk, prof, vsi_handle); in ice_add_rss_cfg_sync()
2138 ice_flow_rem_prof(hw, blk, prof->id); in ice_add_rss_cfg_sync()
2142 status = ice_add_rss_list(hw, vsi_handle, prof); in ice_add_rss_cfg_sync()
2197 struct ice_flow_prof *prof; in ice_rem_rss_cfg_sync() local
2210 prof = ice_flow_find_prof_conds(hw, blk, ICE_FLOW_RX, segs, segs_cnt, in ice_rem_rss_cfg_sync()
2213 if (!prof) { in ice_rem_rss_cfg_sync()
2218 status = ice_flow_disassoc_prof(hw, blk, prof, vsi_handle); in ice_rem_rss_cfg_sync()
2225 ice_rem_rss_list(hw, vsi_handle, prof); in ice_rem_rss_cfg_sync()
2227 if (bitmap_empty(prof->vsis, ICE_MAX_VSI)) in ice_rem_rss_cfg_sync()
2228 status = ice_flow_rem_prof(hw, blk, prof->id); in ice_rem_rss_cfg_sync()