On 05/07, Shougang Wang wrote:
>This patch fixes the issue that failed to create an RSS rule with type
>L2-payload.
>
>Fixes: feaae285b342 ("net/i40e: support hash configuration in RSS flow")
>
>Signed-off-by: Shougang Wang <shougangx.w...@intel.com>
>---
> drivers/net/i40e/i40e_flow.c | 14 ++++++--------
> 1 file changed, 6 insertions(+), 8 deletions(-)
>
>diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c
>index 7e64ae53a..f5f2f0d5d 100644
>--- a/drivers/net/i40e/i40e_flow.c
>+++ b/drivers/net/i40e/i40e_flow.c
>@@ -4511,6 +4511,7 @@ i40e_flow_parse_rss_pattern(__rte_unused struct 
>rte_eth_dev *dev,
>               { pattern_fdir_ipv6_tcp, ETH_RSS_NONFRAG_IPV6_TCP },
>               { pattern_fdir_ipv6_udp, ETH_RSS_NONFRAG_IPV6_UDP },
>               { pattern_fdir_ipv6_sctp, ETH_RSS_NONFRAG_IPV6_SCTP },
>+              { pattern_ethertype, ETH_RSS_L2_PAYLOAD },
>               { pattern_fdir_ipv6_esp, ETH_RSS_ESP },
>               { pattern_fdir_ipv6_udp_esp, ETH_RSS_ESP },
>       };
>@@ -4544,8 +4545,7 @@ i40e_flow_parse_rss_pattern(__rte_unused struct 
>rte_eth_dev *dev,
>               if (i40e_match_pattern(i40e_rss_pctype_patterns[i].item_array,
>                                       items)) {
>                       p_info->types = i40e_rss_pctype_patterns[i].type;
>-                      rte_free(items);
>-                      return 0;
>+                      break;
>               }
>       }
> 
>@@ -4580,11 +4580,9 @@ i40e_flow_parse_rss_pattern(__rte_unused struct 
>rte_eth_dev *dev,
>                       }
>                       break;
>               default:
>-                      rte_flow_error_set(error, EINVAL,
>-                                      RTE_FLOW_ERROR_TYPE_ITEM,
>-                                      item,
>-                                      "Not support range");
>-                      return -rte_errno;
>+                      p_info->action_flag = 0;
>+                      memset(info, 0, sizeof(struct i40e_queue_regions));
>+                      return 0;
>               }
>       }
> 
>@@ -4640,7 +4638,7 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev,
>               return -rte_errno;
>       }
> 
>-      if (p_info.action_flag) {
>+      if (p_info.action_flag && rss->queue_num) {
>               for (n = 0; n < 64; n++) {
>                       if (rss->types & (hf_bit << n)) {
>                               conf_info->region[0].hw_flowtype[0] = n;
>-- 
>2.17.1
>

Applied to dpdk-next-net-intel, Thanks.

Reply via email to