Lines Matching refs:segs

417  * @segs: array of one or more packet segments that describe the flow
420 static int ice_flow_val_hdrs(struct ice_flow_seg_info *segs, u8 segs_cnt)
426 if (segs[i].hdrs & ICE_FLOW_SEG_HDRS_L3_MASK &&
427 !ice_is_pow2(segs[i].hdrs & ICE_FLOW_SEG_HDRS_L3_MASK))
431 if (segs[i].hdrs & ICE_FLOW_SEG_HDRS_L4_MASK &&
432 !ice_is_pow2(segs[i].hdrs & ICE_FLOW_SEG_HDRS_L4_MASK))
461 hdrs = prof->segs[i].hdrs;
571 flds = params->prof->segs[seg].fields;
644 prot_id = (params->prof->segs[seg].hdrs & ICE_FLOW_SEG_HDR_IPV4) ?
728 ice_cp_bitmap(match, params->prof->segs[i].match,
779 * @segs: array of one or more packet segments that describe the flow
786 enum ice_flow_dir dir, struct ice_flow_seg_info *segs,
807 if (segs[i].hdrs != p->segs[i].hdrs ||
809 (ice_cmp_bitmap(segs[i].match,
810 p->segs[i].match,
831 * @segs: array of one or more packet segments that describe the flow
836 struct ice_flow_seg_info *segs, u8 segs_cnt)
840 p = ice_flow_find_prof_conds(hw, blk, dir, segs, segs_cnt,
894 * @segs: array of one or more packet segments that describe the flow
905 struct ice_flow_seg_info *segs, u8 segs_cnt,
942 ice_memcpy(&params->prof->segs[i], &segs[i], sizeof(*segs),
1090 * @segs: array of one or more packet segments that describe the flow
1098 u64 prof_id, struct ice_flow_seg_info *segs, u8 segs_cnt,
1110 if (!segs)
1113 status = ice_flow_val_hdrs(segs, segs_cnt);
1119 status = ice_flow_add_prof_sync(hw, blk, dir, prof_id, segs, segs_cnt,
1269 * @segs: pointer to the flow field segment(s)
1278 ice_flow_set_rss_seg_info(struct ice_flow_seg_info *segs, u8 seg_cnt,
1286 seg = &segs[seg_cnt - 1];
1298 segs[ICE_RSS_OUTER_HEADERS].hdrs |= ICE_FLOW_SEG_HDR_IPV4 |
1302 segs[ICE_RSS_OUTER_HEADERS].hdrs |= ICE_FLOW_SEG_HDR_IPV6 |
1306 segs[ICE_RSS_OUTER_HEADERS].hdrs |= ICE_FLOW_SEG_HDR_IPV4 |
1310 segs[ICE_RSS_OUTER_HEADERS].hdrs |= ICE_FLOW_SEG_HDR_IPV6 |
1418 s = &prof->segs[ICE_RSS_OUTER_HEADERS];
1447 ice_for_each_set_bit(i, prof->segs[prof->segs_cnt - 1].match,
1460 r->hash.addl_hdrs == prof->segs[prof->segs_cnt - 1].hdrs &&
1487 ice_for_each_set_bit(i, prof->segs[prof->segs_cnt - 1].match,
1496 r->hash.addl_hdrs == prof->segs[prof->segs_cnt - 1].hdrs &&
1507 rss_cfg->hash.addl_hdrs = prof->segs[prof->segs_cnt - 1].hdrs;
1553 struct ice_flow_seg_info *segs;
1564 segs = (struct ice_flow_seg_info *)ice_calloc(hw, segs_cnt,
1565 sizeof(*segs));
1566 if (!segs)
1570 status = ice_flow_set_rss_seg_info(segs, segs_cnt, cfg);
1578 prof = ice_flow_find_prof_conds(hw, blk, ICE_FLOW_RX, segs, segs_cnt,
1590 prof = ice_flow_find_prof_conds(hw, blk, ICE_FLOW_RX, segs, segs_cnt,
1610 prof = ice_flow_find_prof_conds(hw, blk, ICE_FLOW_RX, segs, segs_cnt,
1625 segs[segs_cnt - 1].hdrs,
1627 segs, segs_cnt, NULL, 0, &prof);
1645 ice_free(hw, segs);
1702 struct ice_flow_seg_info *segs;
1710 segs = (struct ice_flow_seg_info *)ice_calloc(hw, segs_cnt,
1711 sizeof(*segs));
1712 if (!segs)
1716 status = ice_flow_set_rss_seg_info(segs, segs_cnt, cfg);
1720 prof = ice_flow_find_prof_conds(hw, blk, ICE_FLOW_RX, segs, segs_cnt,
1741 ice_free(hw, segs);