* [dpdk-dev] [PATCH] net/ice: refine RSS configure
@ 2021-03-25 12:42 Qi Zhang
2021-03-30 3:00 ` Ding, Xuan
0 siblings, 1 reply; 5+ messages in thread
From: Qi Zhang @ 2021-03-25 12:42 UTC (permalink / raw)
To: jia.guo, xuan.ding
Cc: dev, qiming.yang, gordon.noonan, shashank1.varshney, Qi Zhang
The ICE_RSS_ANY_HEADERS will try to enable outer RSS for
non-tunnel case and inner RSS for tunnel case. This confuse
user.
As we already have ICE_RSS_INNER_HEADER for tunnel case,
So, replace ICE_RSS_ANY_HEADERS with ICE_RSS_OUTER_HEADERS
for all exist flow which only specified the outer pattern.
To enable inner RSS for any tunnel cases, a separated rule
should be enabled.
The patch also remove some unncessary condition check for GTPU
in base code, as we already can support outer RSS for GTPU.
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
---
drivers/net/ice/base/ice_flow.c | 14 ------------
drivers/net/ice/ice_ethdev.c | 4 ++--
drivers/net/ice/ice_hash.c | 38 ++++++++++++++++-----------------
3 files changed, 21 insertions(+), 35 deletions(-)
diff --git a/drivers/net/ice/base/ice_flow.c b/drivers/net/ice/base/ice_flow.c
index d123206fc6..bceb257d61 100644
--- a/drivers/net/ice/base/ice_flow.c
+++ b/drivers/net/ice/base/ice_flow.c
@@ -3678,13 +3678,6 @@ ice_add_rss_cfg_sync(struct ice_hw *hw, u16 vsi_handle,
if (status)
goto exit;
- /* Don't do RSS for GTPU Outer */
- if (segs_cnt == ICE_FLOW_SEG_SINGLE &&
- segs[segs_cnt - 1].hdrs & ICE_FLOW_SEG_HDR_GTPU) {
- status = ICE_SUCCESS;
- goto exit;
- }
-
/* Search for a flow profile that has matching headers, hash fields
* and has the input VSI associated to it. If found, no further
* operations required and exit.
@@ -3847,13 +3840,6 @@ ice_rem_rss_cfg_sync(struct ice_hw *hw, u16 vsi_handle,
if (status)
goto out;
- /* Don't do RSS for GTPU Outer */
- if (segs_cnt == ICE_FLOW_SEG_SINGLE &&
- segs[segs_cnt - 1].hdrs & ICE_FLOW_SEG_HDR_GTPU) {
- status = ICE_SUCCESS;
- goto out;
- }
-
prof = ice_flow_find_prof_conds(hw, blk, ICE_FLOW_RX, segs, segs_cnt,
vsi_handle,
ICE_FLOW_FIND_PROF_CHK_FLDS);
diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 3e85e5f629..4ccf31cb41 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -2348,7 +2348,7 @@ hash_cfg_reset(struct ice_rss_hash_cfg *cfg)
cfg->hash_flds = 0;
cfg->addl_hdrs = 0;
cfg->symm = 0;
- cfg->hdr_type = ICE_RSS_ANY_HEADERS;
+ cfg->hdr_type = ICE_RSS_OUTER_HEADERS;
}
static int
@@ -2833,7 +2833,7 @@ ice_rss_hash_set(struct ice_pf *pf, uint64_t rss_hf)
__func__, ret);
cfg.symm = 0;
- cfg.hdr_type = ICE_RSS_ANY_HEADERS;
+ cfg.hdr_type = ICE_RSS_OUTER_HEADERS;
/* Configure RSS for IPv4 with src/dst addr as input set */
if (rss_hf & ETH_RSS_IPV4) {
cfg.addl_hdrs = ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER;
diff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c
index 58a0c18d09..7d7e7052da 100644
--- a/drivers/net/ice/ice_hash.c
+++ b/drivers/net/ice/ice_hash.c
@@ -110,7 +110,7 @@ struct ice_rss_hash_cfg ipv4_tmplt = {
ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
ICE_FLOW_SEG_HDR_IPV_OTHER,
ICE_FLOW_HASH_ETH | ICE_FLOW_HASH_IPV4,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -118,7 +118,7 @@ struct ice_rss_hash_cfg ipv4_udp_tmplt = {
ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_UDP,
ICE_FLOW_HASH_ETH | ICE_HASH_UDP_IPV4 | ICE_IPV4_PROT,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -126,7 +126,7 @@ struct ice_rss_hash_cfg ipv4_tcp_tmplt = {
ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_TCP,
ICE_FLOW_HASH_ETH | ICE_HASH_TCP_IPV4 | ICE_IPV4_PROT,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -134,7 +134,7 @@ struct ice_rss_hash_cfg ipv4_sctp_tmplt = {
ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_SCTP,
ICE_FLOW_HASH_ETH | ICE_HASH_SCTP_IPV4 | ICE_IPV4_PROT,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -142,7 +142,7 @@ struct ice_rss_hash_cfg ipv6_tmplt = {
ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
ICE_FLOW_SEG_HDR_IPV_OTHER,
ICE_FLOW_HASH_ETH | ICE_FLOW_HASH_IPV6,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -150,7 +150,7 @@ struct ice_rss_hash_cfg ipv6_udp_tmplt = {
ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_UDP,
ICE_FLOW_HASH_ETH | ICE_HASH_UDP_IPV6 | ICE_IPV6_PROT,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -158,7 +158,7 @@ struct ice_rss_hash_cfg ipv6_tcp_tmplt = {
ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_TCP,
ICE_FLOW_HASH_ETH | ICE_HASH_TCP_IPV6 | ICE_IPV6_PROT,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -166,7 +166,7 @@ struct ice_rss_hash_cfg ipv6_sctp_tmplt = {
ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_SCTP,
ICE_FLOW_HASH_ETH | ICE_HASH_SCTP_IPV6 | ICE_IPV6_PROT,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -262,7 +262,7 @@ struct ice_rss_hash_cfg eth_ipv4_esp_tmplt = {
ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
ICE_FLOW_SEG_HDR_ESP,
ICE_FLOW_HASH_ESP_SPI,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -270,7 +270,7 @@ struct ice_rss_hash_cfg eth_ipv4_udp_esp_tmplt = {
ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
ICE_FLOW_SEG_HDR_NAT_T_ESP,
ICE_FLOW_HASH_NAT_T_ESP_SPI,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -278,7 +278,7 @@ struct ice_rss_hash_cfg eth_ipv4_ah_tmplt = {
ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
ICE_FLOW_SEG_HDR_AH,
ICE_FLOW_HASH_AH_SPI,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -286,7 +286,7 @@ struct ice_rss_hash_cfg eth_ipv4_l2tpv3_tmplt = {
ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
ICE_FLOW_SEG_HDR_L2TPV3,
ICE_FLOW_HASH_L2TPV3_SESS_ID,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -294,7 +294,7 @@ struct ice_rss_hash_cfg eth_ipv4_pfcp_tmplt = {
ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
ICE_FLOW_SEG_HDR_PFCP_SESSION,
ICE_FLOW_HASH_PFCP_SEID,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -302,7 +302,7 @@ struct ice_rss_hash_cfg eth_ipv6_esp_tmplt = {
ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
ICE_FLOW_SEG_HDR_ESP,
ICE_FLOW_HASH_ESP_SPI,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -310,7 +310,7 @@ struct ice_rss_hash_cfg eth_ipv6_udp_esp_tmplt = {
ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
ICE_FLOW_SEG_HDR_NAT_T_ESP,
ICE_FLOW_HASH_NAT_T_ESP_SPI,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -318,7 +318,7 @@ struct ice_rss_hash_cfg eth_ipv6_ah_tmplt = {
ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
ICE_FLOW_SEG_HDR_AH,
ICE_FLOW_HASH_AH_SPI,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -326,7 +326,7 @@ struct ice_rss_hash_cfg eth_ipv6_l2tpv3_tmplt = {
ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
ICE_FLOW_SEG_HDR_L2TPV3,
ICE_FLOW_HASH_L2TPV3_SESS_ID,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
@@ -334,14 +334,14 @@ struct ice_rss_hash_cfg eth_ipv6_pfcp_tmplt = {
ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
ICE_FLOW_SEG_HDR_PFCP_SESSION,
ICE_FLOW_HASH_PFCP_SEID,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
struct ice_rss_hash_cfg pppoe_tmplt = {
ICE_FLOW_SEG_HDR_ETH,
ICE_FLOW_HASH_ETH | ICE_FLOW_HASH_PPPOE_SESS_ID,
- ICE_RSS_ANY_HEADERS,
+ ICE_RSS_OUTER_HEADERS,
0
};
--
2.26.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ice: refine RSS configure
2021-03-25 12:42 [dpdk-dev] [PATCH] net/ice: refine RSS configure Qi Zhang
@ 2021-03-30 3:00 ` Ding, Xuan
2021-03-30 3:29 ` Zhang, Qi Z
0 siblings, 1 reply; 5+ messages in thread
From: Ding, Xuan @ 2021-03-30 3:00 UTC (permalink / raw)
To: Zhang, Qi Z, Guo, Jia
Cc: dev, Yang, Qiming, Noonan, Gordon, Varshney, Shashank1
Hi Qi,
Replies inline.
> -----Original Message-----
> From: Zhang, Qi Z <qi.z.zhang@intel.com>
> Sent: Thursday, March 25, 2021 8:43 PM
> To: Guo, Jia <jia.guo@intel.com>; Ding, Xuan <xuan.ding@intel.com>
> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Noonan, Gordon
> <gordon.noonan@intel.com>; Varshney, Shashank1
> <shashank1.varshney@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>
> Subject: [PATCH] net/ice: refine RSS configure
>
> The ICE_RSS_ANY_HEADERS will try to enable outer RSS for
> non-tunnel case and inner RSS for tunnel case. This confuse
> user.
>
> As we already have ICE_RSS_INNER_HEADER for tunnel case,
> So, replace ICE_RSS_ANY_HEADERS with ICE_RSS_OUTER_HEADERS
> for all exist flow which only specified the outer pattern.
>
> To enable inner RSS for any tunnel cases, a separated rule
> should be enabled.
>
> The patch also remove some unncessary condition check for GTPU
Here ' unncessary ' is a typo, should be 'unnecessary'.
> in base code, as we already can support outer RSS for GTPU.
>
> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> ---
> drivers/net/ice/base/ice_flow.c | 14 ------------
> drivers/net/ice/ice_ethdev.c | 4 ++--
> drivers/net/ice/ice_hash.c | 38 ++++++++++++++++-----------------
> 3 files changed, 21 insertions(+), 35 deletions(-)
>
> diff --git a/drivers/net/ice/base/ice_flow.c b/drivers/net/ice/base/ice_flow.c
> index d123206fc6..bceb257d61 100644
> --- a/drivers/net/ice/base/ice_flow.c
> +++ b/drivers/net/ice/base/ice_flow.c
> @@ -3678,13 +3678,6 @@ ice_add_rss_cfg_sync(struct ice_hw *hw, u16
> vsi_handle,
> if (status)
> goto exit;
>
> - /* Don't do RSS for GTPU Outer */
> - if (segs_cnt == ICE_FLOW_SEG_SINGLE &&
> - segs[segs_cnt - 1].hdrs & ICE_FLOW_SEG_HDR_GTPU) {
> - status = ICE_SUCCESS;
> - goto exit;
> - }
> -
> /* Search for a flow profile that has matching headers, hash fields
> * and has the input VSI associated to it. If found, no further
> * operations required and exit.
> @@ -3847,13 +3840,6 @@ ice_rem_rss_cfg_sync(struct ice_hw *hw, u16
> vsi_handle,
> if (status)
> goto out;
>
> - /* Don't do RSS for GTPU Outer */
> - if (segs_cnt == ICE_FLOW_SEG_SINGLE &&
> - segs[segs_cnt - 1].hdrs & ICE_FLOW_SEG_HDR_GTPU) {
> - status = ICE_SUCCESS;
> - goto out;
> - }
> -
> prof = ice_flow_find_prof_conds(hw, blk, ICE_FLOW_RX, segs, segs_cnt,
> vsi_handle,
> ICE_FLOW_FIND_PROF_CHK_FLDS);
> diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
> index 3e85e5f629..4ccf31cb41 100644
> --- a/drivers/net/ice/ice_ethdev.c
> +++ b/drivers/net/ice/ice_ethdev.c
> @@ -2348,7 +2348,7 @@ hash_cfg_reset(struct ice_rss_hash_cfg *cfg)
> cfg->hash_flds = 0;
> cfg->addl_hdrs = 0;
> cfg->symm = 0;
> - cfg->hdr_type = ICE_RSS_ANY_HEADERS;
> + cfg->hdr_type = ICE_RSS_OUTER_HEADERS;
> }
>
> static int
> @@ -2833,7 +2833,7 @@ ice_rss_hash_set(struct ice_pf *pf, uint64_t rss_hf)
> __func__, ret);
>
> cfg.symm = 0;
> - cfg.hdr_type = ICE_RSS_ANY_HEADERS;
> + cfg.hdr_type = ICE_RSS_OUTER_HEADERS;
> /* Configure RSS for IPv4 with src/dst addr as input set */
> if (rss_hf & ETH_RSS_IPV4) {
> cfg.addl_hdrs = ICE_FLOW_SEG_HDR_IPV4 |
> ICE_FLOW_SEG_HDR_IPV_OTHER;
> diff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c
> index 58a0c18d09..7d7e7052da 100644
> --- a/drivers/net/ice/ice_hash.c
> +++ b/drivers/net/ice/ice_hash.c
> @@ -110,7 +110,7 @@ struct ice_rss_hash_cfg ipv4_tmplt = {
> ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> ICE_FLOW_SEG_HDR_IPV_OTHER,
> ICE_FLOW_HASH_ETH | ICE_FLOW_HASH_IPV4,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -118,7 +118,7 @@ struct ice_rss_hash_cfg ipv4_udp_tmplt = {
> ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_UDP,
> ICE_FLOW_HASH_ETH | ICE_HASH_UDP_IPV4 | ICE_IPV4_PROT,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -126,7 +126,7 @@ struct ice_rss_hash_cfg ipv4_tcp_tmplt = {
> ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_TCP,
> ICE_FLOW_HASH_ETH | ICE_HASH_TCP_IPV4 | ICE_IPV4_PROT,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -134,7 +134,7 @@ struct ice_rss_hash_cfg ipv4_sctp_tmplt = {
> ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_SCTP,
> ICE_FLOW_HASH_ETH | ICE_HASH_SCTP_IPV4 | ICE_IPV4_PROT,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -142,7 +142,7 @@ struct ice_rss_hash_cfg ipv6_tmplt = {
> ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> ICE_FLOW_SEG_HDR_IPV_OTHER,
> ICE_FLOW_HASH_ETH | ICE_FLOW_HASH_IPV6,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -150,7 +150,7 @@ struct ice_rss_hash_cfg ipv6_udp_tmplt = {
> ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_UDP,
> ICE_FLOW_HASH_ETH | ICE_HASH_UDP_IPV6 | ICE_IPV6_PROT,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -158,7 +158,7 @@ struct ice_rss_hash_cfg ipv6_tcp_tmplt = {
> ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_TCP,
> ICE_FLOW_HASH_ETH | ICE_HASH_TCP_IPV6 | ICE_IPV6_PROT,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -166,7 +166,7 @@ struct ice_rss_hash_cfg ipv6_sctp_tmplt = {
> ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_SCTP,
> ICE_FLOW_HASH_ETH | ICE_HASH_SCTP_IPV6 | ICE_IPV6_PROT,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -262,7 +262,7 @@ struct ice_rss_hash_cfg eth_ipv4_esp_tmplt = {
> ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> ICE_FLOW_SEG_HDR_ESP,
> ICE_FLOW_HASH_ESP_SPI,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -270,7 +270,7 @@ struct ice_rss_hash_cfg eth_ipv4_udp_esp_tmplt = {
> ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> ICE_FLOW_SEG_HDR_NAT_T_ESP,
> ICE_FLOW_HASH_NAT_T_ESP_SPI,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -278,7 +278,7 @@ struct ice_rss_hash_cfg eth_ipv4_ah_tmplt = {
> ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> ICE_FLOW_SEG_HDR_AH,
> ICE_FLOW_HASH_AH_SPI,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -286,7 +286,7 @@ struct ice_rss_hash_cfg eth_ipv4_l2tpv3_tmplt = {
> ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> ICE_FLOW_SEG_HDR_L2TPV3,
> ICE_FLOW_HASH_L2TPV3_SESS_ID,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -294,7 +294,7 @@ struct ice_rss_hash_cfg eth_ipv4_pfcp_tmplt = {
> ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> ICE_FLOW_SEG_HDR_PFCP_SESSION,
> ICE_FLOW_HASH_PFCP_SEID,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -302,7 +302,7 @@ struct ice_rss_hash_cfg eth_ipv6_esp_tmplt = {
> ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> ICE_FLOW_SEG_HDR_ESP,
> ICE_FLOW_HASH_ESP_SPI,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -310,7 +310,7 @@ struct ice_rss_hash_cfg eth_ipv6_udp_esp_tmplt = {
> ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> ICE_FLOW_SEG_HDR_NAT_T_ESP,
> ICE_FLOW_HASH_NAT_T_ESP_SPI,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -318,7 +318,7 @@ struct ice_rss_hash_cfg eth_ipv6_ah_tmplt = {
> ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> ICE_FLOW_SEG_HDR_AH,
> ICE_FLOW_HASH_AH_SPI,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -326,7 +326,7 @@ struct ice_rss_hash_cfg eth_ipv6_l2tpv3_tmplt = {
> ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> ICE_FLOW_SEG_HDR_L2TPV3,
> ICE_FLOW_HASH_L2TPV3_SESS_ID,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> @@ -334,14 +334,14 @@ struct ice_rss_hash_cfg eth_ipv6_pfcp_tmplt = {
> ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> ICE_FLOW_SEG_HDR_PFCP_SESSION,
> ICE_FLOW_HASH_PFCP_SEID,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> struct ice_rss_hash_cfg pppoe_tmplt = {
> ICE_FLOW_SEG_HDR_ETH,
> ICE_FLOW_HASH_ETH | ICE_FLOW_HASH_PPPOE_SESS_ID,
> - ICE_RSS_ANY_HEADERS,
> + ICE_RSS_OUTER_HEADERS,
> 0
> };
>
> --
> 2.26.2
Since PPPOE protocol is a encapsulating network protocol.
For IP/UDP or IP/TCP cases, is it right to treat it as outer cases?
Here are some doubts.
Thanks,
Xuan
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ice: refine RSS configure
2021-03-30 3:00 ` Ding, Xuan
@ 2021-03-30 3:29 ` Zhang, Qi Z
2021-03-30 4:31 ` Ding, Xuan
0 siblings, 1 reply; 5+ messages in thread
From: Zhang, Qi Z @ 2021-03-30 3:29 UTC (permalink / raw)
To: Ding, Xuan, Guo, Jia
Cc: dev, Yang, Qiming, Noonan, Gordon, Varshney, Shashank1
> -----Original Message-----
> From: Ding, Xuan <xuan.ding@intel.com>
> Sent: Tuesday, March 30, 2021 11:00 AM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Guo, Jia <jia.guo@intel.com>
> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Noonan, Gordon
> <gordon.noonan@intel.com>; Varshney, Shashank1
> <shashank1.varshney@intel.com>
> Subject: RE: [PATCH] net/ice: refine RSS configure
>
> Hi Qi,
>
> Replies inline.
>
> > -----Original Message-----
> > From: Zhang, Qi Z <qi.z.zhang@intel.com>
> > Sent: Thursday, March 25, 2021 8:43 PM
> > To: Guo, Jia <jia.guo@intel.com>; Ding, Xuan <xuan.ding@intel.com>
> > Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Noonan,
> Gordon
> > <gordon.noonan@intel.com>; Varshney, Shashank1
> > <shashank1.varshney@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>
> > Subject: [PATCH] net/ice: refine RSS configure
> >
> > The ICE_RSS_ANY_HEADERS will try to enable outer RSS for non-tunnel
> > case and inner RSS for tunnel case. This confuse user.
> >
> > As we already have ICE_RSS_INNER_HEADER for tunnel case, So, replace
> > ICE_RSS_ANY_HEADERS with ICE_RSS_OUTER_HEADERS for all exist flow
> > which only specified the outer pattern.
> >
> > To enable inner RSS for any tunnel cases, a separated rule should be
> > enabled.
> >
> > The patch also remove some unncessary condition check for GTPU
>
> Here ' unncessary ' is a typo, should be 'unnecessary'.
>
> > in base code, as we already can support outer RSS for GTPU.
> >
> > Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> > ---
> > drivers/net/ice/base/ice_flow.c | 14 ------------
> > drivers/net/ice/ice_ethdev.c | 4 ++--
> > drivers/net/ice/ice_hash.c | 38 ++++++++++++++++-----------------
> > 3 files changed, 21 insertions(+), 35 deletions(-)
> >
> > diff --git a/drivers/net/ice/base/ice_flow.c
> > b/drivers/net/ice/base/ice_flow.c index d123206fc6..bceb257d61 100644
> > --- a/drivers/net/ice/base/ice_flow.c
> > +++ b/drivers/net/ice/base/ice_flow.c
> > @@ -3678,13 +3678,6 @@ ice_add_rss_cfg_sync(struct ice_hw *hw, u16
> > vsi_handle, if (status) goto exit;
> >
> > -/* Don't do RSS for GTPU Outer */
> > -if (segs_cnt == ICE_FLOW_SEG_SINGLE &&
> > - segs[segs_cnt - 1].hdrs & ICE_FLOW_SEG_HDR_GTPU) {
> > -status = ICE_SUCCESS;
> > -goto exit;
> > -}
> > -
> > /* Search for a flow profile that has matching headers, hash fields
> > * and has the input VSI associated to it. If found, no further
> > * operations required and exit.
> > @@ -3847,13 +3840,6 @@ ice_rem_rss_cfg_sync(struct ice_hw *hw, u16
> > vsi_handle, if (status) goto out;
> >
> > -/* Don't do RSS for GTPU Outer */
> > -if (segs_cnt == ICE_FLOW_SEG_SINGLE &&
> > - segs[segs_cnt - 1].hdrs & ICE_FLOW_SEG_HDR_GTPU) {
> > -status = ICE_SUCCESS;
> > -goto out;
> > -}
> > -
> > prof = ice_flow_find_prof_conds(hw, blk, ICE_FLOW_RX, segs, segs_cnt,
> > vsi_handle, ICE_FLOW_FIND_PROF_CHK_FLDS); diff --git
> > a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index
> > 3e85e5f629..4ccf31cb41 100644
> > --- a/drivers/net/ice/ice_ethdev.c
> > +++ b/drivers/net/ice/ice_ethdev.c
> > @@ -2348,7 +2348,7 @@ hash_cfg_reset(struct ice_rss_hash_cfg *cfg)
> > cfg->hash_flds = 0; cfg->addl_hdrs = 0; cfg->symm = 0;
> > -cfg->hdr_type = ICE_RSS_ANY_HEADERS;
> > +cfg->hdr_type = ICE_RSS_OUTER_HEADERS;
> > }
> >
> > static int
> > @@ -2833,7 +2833,7 @@ ice_rss_hash_set(struct ice_pf *pf, uint64_t
> rss_hf)
> > __func__, ret);
> >
> > cfg.symm = 0;
> > -cfg.hdr_type = ICE_RSS_ANY_HEADERS;
> > +cfg.hdr_type = ICE_RSS_OUTER_HEADERS;
> > /* Configure RSS for IPv4 with src/dst addr as input set */ if
> > (rss_hf & ETH_RSS_IPV4) { cfg.addl_hdrs = ICE_FLOW_SEG_HDR_IPV4 |
> > ICE_FLOW_SEG_HDR_IPV_OTHER; diff --git a/drivers/net/ice/ice_hash.c
> > b/drivers/net/ice/ice_hash.c index 58a0c18d09..7d7e7052da 100644
> > --- a/drivers/net/ice/ice_hash.c
> > +++ b/drivers/net/ice/ice_hash.c
> > @@ -110,7 +110,7 @@ struct ice_rss_hash_cfg ipv4_tmplt = {
> > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> > ICE_FLOW_SEG_HDR_IPV_OTHER, ICE_FLOW_HASH_ETH |
> ICE_FLOW_HASH_IPV4,
> > -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -118,7 +118,7 @@ struct ice_rss_hash_cfg ipv4_udp_tmplt = {
> > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_UDP,
> ICE_FLOW_HASH_ETH
> > | ICE_HASH_UDP_IPV4 | ICE_IPV4_PROT, -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -126,7 +126,7 @@ struct ice_rss_hash_cfg ipv4_tcp_tmplt = {
> > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_TCP,
> ICE_FLOW_HASH_ETH
> > | ICE_HASH_TCP_IPV4 | ICE_IPV4_PROT, -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -134,7 +134,7 @@ struct ice_rss_hash_cfg ipv4_sctp_tmplt = {
> > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_SCTP,
> ICE_FLOW_HASH_ETH
> > | ICE_HASH_SCTP_IPV4 | ICE_IPV4_PROT, -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -142,7 +142,7 @@ struct ice_rss_hash_cfg ipv6_tmplt = {
> > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> > ICE_FLOW_SEG_HDR_IPV_OTHER, ICE_FLOW_HASH_ETH |
> ICE_FLOW_HASH_IPV6,
> > -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -150,7 +150,7 @@ struct ice_rss_hash_cfg ipv6_udp_tmplt = {
> > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_UDP,
> ICE_FLOW_HASH_ETH
> > | ICE_HASH_UDP_IPV6 | ICE_IPV6_PROT, -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -158,7 +158,7 @@ struct ice_rss_hash_cfg ipv6_tcp_tmplt = {
> > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_TCP,
> ICE_FLOW_HASH_ETH
> > | ICE_HASH_TCP_IPV6 | ICE_IPV6_PROT, -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -166,7 +166,7 @@ struct ice_rss_hash_cfg ipv6_sctp_tmplt = {
> > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_SCTP,
> ICE_FLOW_HASH_ETH
> > | ICE_HASH_SCTP_IPV6 | ICE_IPV6_PROT, -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -262,7 +262,7 @@ struct ice_rss_hash_cfg eth_ipv4_esp_tmplt = {
> > ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > ICE_FLOW_SEG_HDR_ESP, ICE_FLOW_HASH_ESP_SPI,
> -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -270,7 +270,7 @@ struct ice_rss_hash_cfg eth_ipv4_udp_esp_tmplt = {
> > ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > ICE_FLOW_SEG_HDR_NAT_T_ESP, ICE_FLOW_HASH_NAT_T_ESP_SPI,
> > -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -278,7 +278,7 @@ struct ice_rss_hash_cfg eth_ipv4_ah_tmplt = {
> > ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > ICE_FLOW_SEG_HDR_AH, ICE_FLOW_HASH_AH_SPI,
> -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -286,7 +286,7 @@ struct ice_rss_hash_cfg eth_ipv4_l2tpv3_tmplt = {
> > ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > ICE_FLOW_SEG_HDR_L2TPV3, ICE_FLOW_HASH_L2TPV3_SESS_ID,
> > -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -294,7 +294,7 @@ struct ice_rss_hash_cfg eth_ipv4_pfcp_tmplt = {
> > ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > ICE_FLOW_SEG_HDR_PFCP_SESSION, ICE_FLOW_HASH_PFCP_SEID,
> > -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -302,7 +302,7 @@ struct ice_rss_hash_cfg eth_ipv6_esp_tmplt = {
> > ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > ICE_FLOW_SEG_HDR_ESP, ICE_FLOW_HASH_ESP_SPI,
> -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -310,7 +310,7 @@ struct ice_rss_hash_cfg eth_ipv6_udp_esp_tmplt = {
> > ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > ICE_FLOW_SEG_HDR_NAT_T_ESP, ICE_FLOW_HASH_NAT_T_ESP_SPI,
> > -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -318,7 +318,7 @@ struct ice_rss_hash_cfg eth_ipv6_ah_tmplt = {
> > ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > ICE_FLOW_SEG_HDR_AH, ICE_FLOW_HASH_AH_SPI,
> -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -326,7 +326,7 @@ struct ice_rss_hash_cfg eth_ipv6_l2tpv3_tmplt = {
> > ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > ICE_FLOW_SEG_HDR_L2TPV3, ICE_FLOW_HASH_L2TPV3_SESS_ID,
> > -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > @@ -334,14 +334,14 @@ struct ice_rss_hash_cfg eth_ipv6_pfcp_tmplt = {
> > ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > ICE_FLOW_SEG_HDR_PFCP_SESSION, ICE_FLOW_HASH_PFCP_SEID,
> > -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > struct ice_rss_hash_cfg pppoe_tmplt = { ICE_FLOW_SEG_HDR_ETH,
> > ICE_FLOW_HASH_ETH | ICE_FLOW_HASH_PPPOE_SESS_ID,
> -ICE_RSS_ANY_HEADERS,
> > +ICE_RSS_OUTER_HEADERS,
> > 0
> > };
> >
> > --
> > 2.26.2
>
> Since PPPOE protocol is a encapsulating network protocol.
> For IP/UDP or IP/TCP cases, is it right to treat it as outer cases?
> Here are some doubts.
PPPOE don't have outer l3/l4, it belongs to the same layer with inner l3/l4, for single layer, we just take outer header
Typically , inner header will only be used for gtpu/vxlan/gre
>
> Thanks,
> Xuan
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ice: refine RSS configure
2021-03-30 3:29 ` Zhang, Qi Z
@ 2021-03-30 4:31 ` Ding, Xuan
2021-03-30 5:19 ` Zhang, Qi Z
0 siblings, 1 reply; 5+ messages in thread
From: Ding, Xuan @ 2021-03-30 4:31 UTC (permalink / raw)
To: Zhang, Qi Z, Guo, Jia
Cc: dev, Yang, Qiming, Noonan, Gordon, Varshney, Shashank1
> -----Original Message-----
> From: Zhang, Qi Z <qi.z.zhang@intel.com>
> Sent: Tuesday, March 30, 2021 11:30 AM
> To: Ding, Xuan <xuan.ding@intel.com>; Guo, Jia <jia.guo@intel.com>
> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Noonan, Gordon
> <gordon.noonan@intel.com>; Varshney, Shashank1
> <shashank1.varshney@intel.com>
> Subject: RE: [PATCH] net/ice: refine RSS configure
>
>
>
> > -----Original Message-----
> > From: Ding, Xuan <xuan.ding@intel.com>
> > Sent: Tuesday, March 30, 2021 11:00 AM
> > To: Zhang, Qi Z <qi.z.zhang@intel.com>; Guo, Jia <jia.guo@intel.com>
> > Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Noonan, Gordon
> > <gordon.noonan@intel.com>; Varshney, Shashank1
> > <shashank1.varshney@intel.com>
> > Subject: RE: [PATCH] net/ice: refine RSS configure
> >
> > Hi Qi,
> >
> > Replies inline.
> >
> > > -----Original Message-----
> > > From: Zhang, Qi Z <qi.z.zhang@intel.com>
> > > Sent: Thursday, March 25, 2021 8:43 PM
> > > To: Guo, Jia <jia.guo@intel.com>; Ding, Xuan <xuan.ding@intel.com>
> > > Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Noonan,
> > Gordon
> > > <gordon.noonan@intel.com>; Varshney, Shashank1
> > > <shashank1.varshney@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>
> > > Subject: [PATCH] net/ice: refine RSS configure
> > >
> > > The ICE_RSS_ANY_HEADERS will try to enable outer RSS for non-tunnel
> > > case and inner RSS for tunnel case. This confuse user.
> > >
> > > As we already have ICE_RSS_INNER_HEADER for tunnel case, So, replace
> > > ICE_RSS_ANY_HEADERS with ICE_RSS_OUTER_HEADERS for all exist flow
> > > which only specified the outer pattern.
> > >
> > > To enable inner RSS for any tunnel cases, a separated rule should be
> > > enabled.
> > >
> > > The patch also remove some unncessary condition check for GTPU
> >
> > Here ' unncessary ' is a typo, should be 'unnecessary'.
> >
> > > in base code, as we already can support outer RSS for GTPU.
> > >
> > > Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> > > ---
> > > drivers/net/ice/base/ice_flow.c | 14 ------------
> > > drivers/net/ice/ice_ethdev.c | 4 ++--
> > > drivers/net/ice/ice_hash.c | 38 ++++++++++++++++-----------------
> > > 3 files changed, 21 insertions(+), 35 deletions(-)
> > >
> > > diff --git a/drivers/net/ice/base/ice_flow.c
> > > b/drivers/net/ice/base/ice_flow.c index d123206fc6..bceb257d61 100644
> > > --- a/drivers/net/ice/base/ice_flow.c
> > > +++ b/drivers/net/ice/base/ice_flow.c
> > > @@ -3678,13 +3678,6 @@ ice_add_rss_cfg_sync(struct ice_hw *hw, u16
> > > vsi_handle, if (status) goto exit;
> > >
> > > -/* Don't do RSS for GTPU Outer */
> > > -if (segs_cnt == ICE_FLOW_SEG_SINGLE &&
> > > - segs[segs_cnt - 1].hdrs & ICE_FLOW_SEG_HDR_GTPU) {
> > > -status = ICE_SUCCESS;
> > > -goto exit;
> > > -}
> > > -
> > > /* Search for a flow profile that has matching headers, hash fields
> > > * and has the input VSI associated to it. If found, no further
> > > * operations required and exit.
> > > @@ -3847,13 +3840,6 @@ ice_rem_rss_cfg_sync(struct ice_hw *hw, u16
> > > vsi_handle, if (status) goto out;
> > >
> > > -/* Don't do RSS for GTPU Outer */
> > > -if (segs_cnt == ICE_FLOW_SEG_SINGLE &&
> > > - segs[segs_cnt - 1].hdrs & ICE_FLOW_SEG_HDR_GTPU) {
> > > -status = ICE_SUCCESS;
> > > -goto out;
> > > -}
> > > -
> > > prof = ice_flow_find_prof_conds(hw, blk, ICE_FLOW_RX, segs, segs_cnt,
> > > vsi_handle, ICE_FLOW_FIND_PROF_CHK_FLDS); diff --git
> > > a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index
> > > 3e85e5f629..4ccf31cb41 100644
> > > --- a/drivers/net/ice/ice_ethdev.c
> > > +++ b/drivers/net/ice/ice_ethdev.c
> > > @@ -2348,7 +2348,7 @@ hash_cfg_reset(struct ice_rss_hash_cfg *cfg)
> > > cfg->hash_flds = 0; cfg->addl_hdrs = 0; cfg->symm = 0;
> > > -cfg->hdr_type = ICE_RSS_ANY_HEADERS;
> > > +cfg->hdr_type = ICE_RSS_OUTER_HEADERS;
> > > }
> > >
> > > static int
> > > @@ -2833,7 +2833,7 @@ ice_rss_hash_set(struct ice_pf *pf, uint64_t
> > rss_hf)
> > > __func__, ret);
> > >
> > > cfg.symm = 0;
> > > -cfg.hdr_type = ICE_RSS_ANY_HEADERS;
> > > +cfg.hdr_type = ICE_RSS_OUTER_HEADERS;
> > > /* Configure RSS for IPv4 with src/dst addr as input set */ if
> > > (rss_hf & ETH_RSS_IPV4) { cfg.addl_hdrs = ICE_FLOW_SEG_HDR_IPV4 |
> > > ICE_FLOW_SEG_HDR_IPV_OTHER; diff --git a/drivers/net/ice/ice_hash.c
> > > b/drivers/net/ice/ice_hash.c index 58a0c18d09..7d7e7052da 100644
> > > --- a/drivers/net/ice/ice_hash.c
> > > +++ b/drivers/net/ice/ice_hash.c
> > > @@ -110,7 +110,7 @@ struct ice_rss_hash_cfg ipv4_tmplt = {
> > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> > > ICE_FLOW_SEG_HDR_IPV_OTHER, ICE_FLOW_HASH_ETH |
> > ICE_FLOW_HASH_IPV4,
> > > -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -118,7 +118,7 @@ struct ice_rss_hash_cfg ipv4_udp_tmplt = {
> > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> > > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_UDP,
> > ICE_FLOW_HASH_ETH
> > > | ICE_HASH_UDP_IPV4 | ICE_IPV4_PROT, -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -126,7 +126,7 @@ struct ice_rss_hash_cfg ipv4_tcp_tmplt = {
> > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> > > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_TCP,
> > ICE_FLOW_HASH_ETH
> > > | ICE_HASH_TCP_IPV4 | ICE_IPV4_PROT, -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -134,7 +134,7 @@ struct ice_rss_hash_cfg ipv4_sctp_tmplt = {
> > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> > > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_SCTP,
> > ICE_FLOW_HASH_ETH
> > > | ICE_HASH_SCTP_IPV4 | ICE_IPV4_PROT, -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -142,7 +142,7 @@ struct ice_rss_hash_cfg ipv6_tmplt = {
> > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> > > ICE_FLOW_SEG_HDR_IPV_OTHER, ICE_FLOW_HASH_ETH |
> > ICE_FLOW_HASH_IPV6,
> > > -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -150,7 +150,7 @@ struct ice_rss_hash_cfg ipv6_udp_tmplt = {
> > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> > > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_UDP,
> > ICE_FLOW_HASH_ETH
> > > | ICE_HASH_UDP_IPV6 | ICE_IPV6_PROT, -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -158,7 +158,7 @@ struct ice_rss_hash_cfg ipv6_tcp_tmplt = {
> > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> > > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_TCP,
> > ICE_FLOW_HASH_ETH
> > > | ICE_HASH_TCP_IPV6 | ICE_IPV6_PROT, -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -166,7 +166,7 @@ struct ice_rss_hash_cfg ipv6_sctp_tmplt = {
> > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> > > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_SCTP,
> > ICE_FLOW_HASH_ETH
> > > | ICE_HASH_SCTP_IPV6 | ICE_IPV6_PROT, -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -262,7 +262,7 @@ struct ice_rss_hash_cfg eth_ipv4_esp_tmplt = {
> > > ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > ICE_FLOW_SEG_HDR_ESP, ICE_FLOW_HASH_ESP_SPI,
> > -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -270,7 +270,7 @@ struct ice_rss_hash_cfg eth_ipv4_udp_esp_tmplt = {
> > > ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > ICE_FLOW_SEG_HDR_NAT_T_ESP, ICE_FLOW_HASH_NAT_T_ESP_SPI,
> > > -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -278,7 +278,7 @@ struct ice_rss_hash_cfg eth_ipv4_ah_tmplt = {
> > > ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > ICE_FLOW_SEG_HDR_AH, ICE_FLOW_HASH_AH_SPI,
> > -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -286,7 +286,7 @@ struct ice_rss_hash_cfg eth_ipv4_l2tpv3_tmplt = {
> > > ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > ICE_FLOW_SEG_HDR_L2TPV3, ICE_FLOW_HASH_L2TPV3_SESS_ID,
> > > -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -294,7 +294,7 @@ struct ice_rss_hash_cfg eth_ipv4_pfcp_tmplt = {
> > > ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > ICE_FLOW_SEG_HDR_PFCP_SESSION, ICE_FLOW_HASH_PFCP_SEID,
> > > -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -302,7 +302,7 @@ struct ice_rss_hash_cfg eth_ipv6_esp_tmplt = {
> > > ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > ICE_FLOW_SEG_HDR_ESP, ICE_FLOW_HASH_ESP_SPI,
> > -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -310,7 +310,7 @@ struct ice_rss_hash_cfg eth_ipv6_udp_esp_tmplt = {
> > > ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > ICE_FLOW_SEG_HDR_NAT_T_ESP, ICE_FLOW_HASH_NAT_T_ESP_SPI,
> > > -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -318,7 +318,7 @@ struct ice_rss_hash_cfg eth_ipv6_ah_tmplt = {
> > > ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > ICE_FLOW_SEG_HDR_AH, ICE_FLOW_HASH_AH_SPI,
> > -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -326,7 +326,7 @@ struct ice_rss_hash_cfg eth_ipv6_l2tpv3_tmplt = {
> > > ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > ICE_FLOW_SEG_HDR_L2TPV3, ICE_FLOW_HASH_L2TPV3_SESS_ID,
> > > -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > @@ -334,14 +334,14 @@ struct ice_rss_hash_cfg eth_ipv6_pfcp_tmplt = {
> > > ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > ICE_FLOW_SEG_HDR_PFCP_SESSION, ICE_FLOW_HASH_PFCP_SEID,
> > > -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > struct ice_rss_hash_cfg pppoe_tmplt = { ICE_FLOW_SEG_HDR_ETH,
> > > ICE_FLOW_HASH_ETH | ICE_FLOW_HASH_PPPOE_SESS_ID,
> > -ICE_RSS_ANY_HEADERS,
> > > +ICE_RSS_OUTER_HEADERS,
> > > 0
> > > };
> > >
> > > --
> > > 2.26.2
> >
> > Since PPPOE protocol is a encapsulating network protocol.
> > For IP/UDP or IP/TCP cases, is it right to treat it as outer cases?
> > Here are some doubts.
>
> PPPOE don't have outer l3/l4, it belongs to the same layer with inner l3/l4, for
> single layer, we just take outer header
> Typically , inner header will only be used for gtpu/vxlan/gre
>
>
> >
> > Thanks,
> > Xuan
> >
>
Acked-by: Xuan Ding <xuan.ding@intel.com>
Thanks,
Xuan
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [PATCH] net/ice: refine RSS configure
2021-03-30 4:31 ` Ding, Xuan
@ 2021-03-30 5:19 ` Zhang, Qi Z
0 siblings, 0 replies; 5+ messages in thread
From: Zhang, Qi Z @ 2021-03-30 5:19 UTC (permalink / raw)
To: Ding, Xuan, Guo, Jia
Cc: dev, Yang, Qiming, Noonan, Gordon, Varshney, Shashank1
> -----Original Message-----
> From: Ding, Xuan <xuan.ding@intel.com>
> Sent: Tuesday, March 30, 2021 12:31 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Guo, Jia <jia.guo@intel.com>
> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Noonan, Gordon
> <gordon.noonan@intel.com>; Varshney, Shashank1
> <shashank1.varshney@intel.com>
> Subject: RE: [PATCH] net/ice: refine RSS configure
>
>
> > -----Original Message-----
> > From: Zhang, Qi Z <qi.z.zhang@intel.com>
> > Sent: Tuesday, March 30, 2021 11:30 AM
> > To: Ding, Xuan <xuan.ding@intel.com>; Guo, Jia <jia.guo@intel.com>
> > Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Noonan,
> Gordon
> > <gordon.noonan@intel.com>; Varshney, Shashank1
> > <shashank1.varshney@intel.com>
> > Subject: RE: [PATCH] net/ice: refine RSS configure
> >
> >
> >
> > > -----Original Message-----
> > > From: Ding, Xuan <xuan.ding@intel.com>
> > > Sent: Tuesday, March 30, 2021 11:00 AM
> > > To: Zhang, Qi Z <qi.z.zhang@intel.com>; Guo, Jia <jia.guo@intel.com>
> > > Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Noonan,
> > > Gordon <gordon.noonan@intel.com>; Varshney, Shashank1
> > > <shashank1.varshney@intel.com>
> > > Subject: RE: [PATCH] net/ice: refine RSS configure
> > >
> > > Hi Qi,
> > >
> > > Replies inline.
> > >
> > > > -----Original Message-----
> > > > From: Zhang, Qi Z <qi.z.zhang@intel.com>
> > > > Sent: Thursday, March 25, 2021 8:43 PM
> > > > To: Guo, Jia <jia.guo@intel.com>; Ding, Xuan <xuan.ding@intel.com>
> > > > Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Noonan,
> > > Gordon
> > > > <gordon.noonan@intel.com>; Varshney, Shashank1
> > > > <shashank1.varshney@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>
> > > > Subject: [PATCH] net/ice: refine RSS configure
> > > >
> > > > The ICE_RSS_ANY_HEADERS will try to enable outer RSS for
> > > > non-tunnel case and inner RSS for tunnel case. This confuse user.
> > > >
> > > > As we already have ICE_RSS_INNER_HEADER for tunnel case, So,
> > > > replace ICE_RSS_ANY_HEADERS with ICE_RSS_OUTER_HEADERS for all
> > > > exist flow which only specified the outer pattern.
> > > >
> > > > To enable inner RSS for any tunnel cases, a separated rule should
> > > > be enabled.
> > > >
> > > > The patch also remove some unncessary condition check for GTPU
> > >
> > > Here ' unncessary ' is a typo, should be 'unnecessary'.
> > >
> > > > in base code, as we already can support outer RSS for GTPU.
> > > >
> > > > Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> > > > ---
> > > > drivers/net/ice/base/ice_flow.c | 14 ------------
> > > > drivers/net/ice/ice_ethdev.c | 4 ++--
> > > > drivers/net/ice/ice_hash.c | 38 ++++++++++++++++-----------------
> > > > 3 files changed, 21 insertions(+), 35 deletions(-)
> > > >
> > > > diff --git a/drivers/net/ice/base/ice_flow.c
> > > > b/drivers/net/ice/base/ice_flow.c index d123206fc6..bceb257d61
> > > > 100644
> > > > --- a/drivers/net/ice/base/ice_flow.c
> > > > +++ b/drivers/net/ice/base/ice_flow.c
> > > > @@ -3678,13 +3678,6 @@ ice_add_rss_cfg_sync(struct ice_hw *hw,
> u16
> > > > vsi_handle, if (status) goto exit;
> > > >
> > > > -/* Don't do RSS for GTPU Outer */ -if (segs_cnt ==
> > > > ICE_FLOW_SEG_SINGLE &&
> > > > - segs[segs_cnt - 1].hdrs & ICE_FLOW_SEG_HDR_GTPU) {
> > > > -status = ICE_SUCCESS;
> > > > -goto exit;
> > > > -}
> > > > -
> > > > /* Search for a flow profile that has matching headers, hash fields
> > > > * and has the input VSI associated to it. If found, no further
> > > > * operations required and exit.
> > > > @@ -3847,13 +3840,6 @@ ice_rem_rss_cfg_sync(struct ice_hw *hw,
> u16
> > > > vsi_handle, if (status) goto out;
> > > >
> > > > -/* Don't do RSS for GTPU Outer */ -if (segs_cnt ==
> > > > ICE_FLOW_SEG_SINGLE &&
> > > > - segs[segs_cnt - 1].hdrs & ICE_FLOW_SEG_HDR_GTPU) {
> > > > -status = ICE_SUCCESS;
> > > > -goto out;
> > > > -}
> > > > -
> > > > prof = ice_flow_find_prof_conds(hw, blk, ICE_FLOW_RX, segs,
> > > > segs_cnt, vsi_handle, ICE_FLOW_FIND_PROF_CHK_FLDS); diff --git
> > > > a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
> > > > index
> > > > 3e85e5f629..4ccf31cb41 100644
> > > > --- a/drivers/net/ice/ice_ethdev.c
> > > > +++ b/drivers/net/ice/ice_ethdev.c
> > > > @@ -2348,7 +2348,7 @@ hash_cfg_reset(struct ice_rss_hash_cfg *cfg)
> > > > cfg->hash_flds = 0; cfg->addl_hdrs = 0; cfg->symm = 0;
> > > > -cfg->hdr_type = ICE_RSS_ANY_HEADERS;
> > > > +cfg->hdr_type = ICE_RSS_OUTER_HEADERS;
> > > > }
> > > >
> > > > static int
> > > > @@ -2833,7 +2833,7 @@ ice_rss_hash_set(struct ice_pf *pf, uint64_t
> > > rss_hf)
> > > > __func__, ret);
> > > >
> > > > cfg.symm = 0;
> > > > -cfg.hdr_type = ICE_RSS_ANY_HEADERS;
> > > > +cfg.hdr_type = ICE_RSS_OUTER_HEADERS;
> > > > /* Configure RSS for IPv4 with src/dst addr as input set */ if
> > > > (rss_hf & ETH_RSS_IPV4) { cfg.addl_hdrs = ICE_FLOW_SEG_HDR_IPV4 |
> > > > ICE_FLOW_SEG_HDR_IPV_OTHER; diff --git
> > > > a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c index
> > > > 58a0c18d09..7d7e7052da 100644
> > > > --- a/drivers/net/ice/ice_hash.c
> > > > +++ b/drivers/net/ice/ice_hash.c
> > > > @@ -110,7 +110,7 @@ struct ice_rss_hash_cfg ipv4_tmplt = {
> > > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> > > > ICE_FLOW_SEG_HDR_IPV_OTHER, ICE_FLOW_HASH_ETH |
> > > ICE_FLOW_HASH_IPV4,
> > > > -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -118,7 +118,7 @@ struct ice_rss_hash_cfg ipv4_udp_tmplt = {
> > > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> > > > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_UDP,
> > > ICE_FLOW_HASH_ETH
> > > > | ICE_HASH_UDP_IPV4 | ICE_IPV4_PROT, -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -126,7 +126,7 @@ struct ice_rss_hash_cfg ipv4_tcp_tmplt = {
> > > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> > > > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_TCP,
> > > ICE_FLOW_HASH_ETH
> > > > | ICE_HASH_TCP_IPV4 | ICE_IPV4_PROT, -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -134,7 +134,7 @@ struct ice_rss_hash_cfg ipv4_sctp_tmplt = {
> > > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |
> > > > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_SCTP,
> > > ICE_FLOW_HASH_ETH
> > > > | ICE_HASH_SCTP_IPV4 | ICE_IPV4_PROT, -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -142,7 +142,7 @@ struct ice_rss_hash_cfg ipv6_tmplt = {
> > > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> > > > ICE_FLOW_SEG_HDR_IPV_OTHER, ICE_FLOW_HASH_ETH |
> > > ICE_FLOW_HASH_IPV6,
> > > > -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -150,7 +150,7 @@ struct ice_rss_hash_cfg ipv6_udp_tmplt = {
> > > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> > > > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_UDP,
> > > ICE_FLOW_HASH_ETH
> > > > | ICE_HASH_UDP_IPV6 | ICE_IPV6_PROT, -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -158,7 +158,7 @@ struct ice_rss_hash_cfg ipv6_tcp_tmplt = {
> > > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> > > > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_TCP,
> > > ICE_FLOW_HASH_ETH
> > > > | ICE_HASH_TCP_IPV6 | ICE_IPV6_PROT, -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -166,7 +166,7 @@ struct ice_rss_hash_cfg ipv6_sctp_tmplt = {
> > > > ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |
> > > > ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_SCTP,
> > > ICE_FLOW_HASH_ETH
> > > > | ICE_HASH_SCTP_IPV6 | ICE_IPV6_PROT, -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -262,7 +262,7 @@ struct ice_rss_hash_cfg eth_ipv4_esp_tmplt = {
> > > > ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > > ICE_FLOW_SEG_HDR_ESP, ICE_FLOW_HASH_ESP_SPI,
> > > -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -270,7 +270,7 @@ struct ice_rss_hash_cfg eth_ipv4_udp_esp_tmplt
> > > > = {
> > > > ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > > ICE_FLOW_SEG_HDR_NAT_T_ESP, ICE_FLOW_HASH_NAT_T_ESP_SPI,
> > > > -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -278,7 +278,7 @@ struct ice_rss_hash_cfg eth_ipv4_ah_tmplt = {
> > > > ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > > ICE_FLOW_SEG_HDR_AH, ICE_FLOW_HASH_AH_SPI,
> > > -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -286,7 +286,7 @@ struct ice_rss_hash_cfg eth_ipv4_l2tpv3_tmplt
> > > > = {
> > > > ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > > ICE_FLOW_SEG_HDR_L2TPV3, ICE_FLOW_HASH_L2TPV3_SESS_ID,
> > > > -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -294,7 +294,7 @@ struct ice_rss_hash_cfg eth_ipv4_pfcp_tmplt =
> > > > {
> > > > ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > > ICE_FLOW_SEG_HDR_PFCP_SESSION, ICE_FLOW_HASH_PFCP_SEID,
> > > > -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -302,7 +302,7 @@ struct ice_rss_hash_cfg eth_ipv6_esp_tmplt = {
> > > > ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > > ICE_FLOW_SEG_HDR_ESP, ICE_FLOW_HASH_ESP_SPI,
> > > -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -310,7 +310,7 @@ struct ice_rss_hash_cfg eth_ipv6_udp_esp_tmplt
> > > > = {
> > > > ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > > ICE_FLOW_SEG_HDR_NAT_T_ESP, ICE_FLOW_HASH_NAT_T_ESP_SPI,
> > > > -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -318,7 +318,7 @@ struct ice_rss_hash_cfg eth_ipv6_ah_tmplt = {
> > > > ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > > ICE_FLOW_SEG_HDR_AH, ICE_FLOW_HASH_AH_SPI,
> > > -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -326,7 +326,7 @@ struct ice_rss_hash_cfg eth_ipv6_l2tpv3_tmplt
> > > > = {
> > > > ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > > ICE_FLOW_SEG_HDR_L2TPV3, ICE_FLOW_HASH_L2TPV3_SESS_ID,
> > > > -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > @@ -334,14 +334,14 @@ struct ice_rss_hash_cfg eth_ipv6_pfcp_tmplt
> > > > = {
> > > > ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |
> > > > ICE_FLOW_SEG_HDR_PFCP_SESSION, ICE_FLOW_HASH_PFCP_SEID,
> > > > -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > struct ice_rss_hash_cfg pppoe_tmplt = { ICE_FLOW_SEG_HDR_ETH,
> > > > ICE_FLOW_HASH_ETH | ICE_FLOW_HASH_PPPOE_SESS_ID,
> > > -ICE_RSS_ANY_HEADERS,
> > > > +ICE_RSS_OUTER_HEADERS,
> > > > 0
> > > > };
> > > >
> > > > --
> > > > 2.26.2
> > >
> > > Since PPPOE protocol is a encapsulating network protocol.
> > > For IP/UDP or IP/TCP cases, is it right to treat it as outer cases?
> > > Here are some doubts.
> >
> > PPPOE don't have outer l3/l4, it belongs to the same layer with inner
> > l3/l4, for single layer, we just take outer header Typically , inner
> > header will only be used for gtpu/vxlan/gre
> >
> >
> > >
> > > Thanks,
> > > Xuan
> > >
> >
>
> Acked-by: Xuan Ding <xuan.ding@intel.com>
Applied to dpdk-next-net-intel after fix above typo
Thanks
Qi
>
> Thanks,
> Xuan
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-03-30 5:19 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-25 12:42 [dpdk-dev] [PATCH] net/ice: refine RSS configure Qi Zhang
2021-03-30 3:00 ` Ding, Xuan
2021-03-30 3:29 ` Zhang, Qi Z
2021-03-30 4:31 ` Ding, Xuan
2021-03-30 5:19 ` Zhang, Qi Z
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).