From f24aec3121de0efc58bb9cca3b28bbeab8c85710 Mon Sep 17 00:00:00 2001 From: Junfeng Guo Date: Mon, 2 Nov 2020 09:54:36 +0800 Subject: [PATCH] net/ice: delete unsupported ptypes in default hash set Ptypes for GTPU with inner SCTP are not supported in current DDP pkg. Thus, delete them in the default hash set config function. Also clean up the rss vsi when calling the hash set config function. Signed-off-by: Junfeng Guo Acked-by: Qi Zhang --- drivers/net/ice/ice_ethdev.c | 40 ++++++------------------------------ 1 file changed, 6 insertions(+), 34 deletions(-) diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index e117f51a27..1e15cd3960 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -2909,6 +2909,7 @@ ice_add_rss_cfg_wrap(struct ice_pf *pf, uint16_t vsi_id, static void ice_rss_hash_set(struct ice_pf *pf, uint64_t rss_hf) { + struct ice_hw *hw = ICE_PF_TO_HW(pf); struct ice_vsi *vsi = pf->main_vsi; struct ice_rss_hash_cfg cfg; int ret; @@ -2923,6 +2924,11 @@ ice_rss_hash_set(struct ice_pf *pf, uint64_t rss_hf) ETH_RSS_NONFRAG_IPV4_SCTP | \ ETH_RSS_NONFRAG_IPV6_SCTP) + ret = ice_rem_vsi_rss_cfg(hw, vsi->idx); + if (ret) + PMD_DRV_LOG(ERR, "%s Remove rss vsi fail %d", + __func__, ret); + cfg.symm = 0; cfg.hdr_type = ICE_RSS_ANY_HEADERS; /* Configure RSS for IPv4 with src/dst addr as input set */ @@ -3155,40 +3161,6 @@ ice_rss_hash_set(struct ice_pf *pf, uint64_t rss_hf) __func__, ret); } - if (rss_hf & ETH_RSS_NONFRAG_IPV4_SCTP) { - cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_IP | ICE_FLOW_SEG_HDR_SCTP | - ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER; - cfg.hash_flds = ICE_FLOW_HASH_IPV4; - ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); - if (ret) - PMD_DRV_LOG(ERR, "%s GTPU_IPV4_SCTP rss flow fail %d", - __func__, ret); - - cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_EH | ICE_FLOW_SEG_HDR_SCTP | - ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER; - ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); - if (ret) - PMD_DRV_LOG(ERR, "%s GTPU_EH_IPV4_SCTP rss flow fail %d", - __func__, ret); - } - - if (rss_hf & ETH_RSS_NONFRAG_IPV6_SCTP) { - cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_IP | ICE_FLOW_SEG_HDR_SCTP | - ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER; - cfg.hash_flds = ICE_FLOW_HASH_IPV6; - ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); - if (ret) - PMD_DRV_LOG(ERR, "%s GTPU_IPV6_SCTP rss flow fail %d", - __func__, ret); - - cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_EH | ICE_FLOW_SEG_HDR_SCTP | - ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER; - ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg); - if (ret) - PMD_DRV_LOG(ERR, "%s GTPU_EH_IPV6_SCTP rss flow fail %d", - __func__, ret); - } - pf->rss_hf = rss_hf & ICE_RSS_HF_ALL; } -- 2.20.1