We try to refine default RSS for IP fragment packets. However, the change will lead to more serious errors. The scenario that there is overlap/conflict between the new characteristics and the existing ones has not been supported, so non-fragment packets and fragment packets cannot share the same hash fields, or all related profiles will be removed.
Therefore, IPID field is necessary for fragment packets. Fixes: cf37e1e5e9d2 ("net/ice: fix default RSS hash for IP fragment packets") Signed-off-by: Wenjun Wu <wenjun1...@intel.com> --- drivers/net/ice/ice_ethdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index 8d62b84805..0683296584 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -2981,7 +2981,7 @@ ice_rss_hash_set(struct ice_pf *pf, uint64_t rss_hf) if (rss_hf & ETH_RSS_FRAG_IPV4) { cfg.addl_hdrs = ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_FRAG; - cfg.hash_flds = ICE_FLOW_HASH_IPV4; + cfg.hash_flds = ICE_FLOW_HASH_IPV4 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_ID); ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); if (ret) PMD_DRV_LOG(ERR, "%s IPV4_FRAG rss flow fail %d", @@ -2990,7 +2990,7 @@ ice_rss_hash_set(struct ice_pf *pf, uint64_t rss_hf) if (rss_hf & ETH_RSS_FRAG_IPV6) { cfg.addl_hdrs = ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_FRAG; - cfg.hash_flds = ICE_FLOW_HASH_IPV6; + cfg.hash_flds = ICE_FLOW_HASH_IPV6 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_ID); ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); if (ret) PMD_DRV_LOG(ERR, "%s IPV6_FRAG rss flow fail %d", -- 2.25.1