[v1,1/2] net/iavf: remove redundant default RSS field for IP fragment packets

Message ID 20210802083619.1003586-1-wenjun1.wu@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Qi Zhang
Headers
Series remove redundant default RSS field for IP fragment packets |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Wenjun Wu Aug. 2, 2021, 8:36 a.m. UTC
  This patch removes redundant default RSS field for IP fragment packets,
only src MAC address and dst MAC address are needed.

Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>
---
 drivers/net/iavf/iavf_hash.c | 26 ++------------------------
 1 file changed, 2 insertions(+), 24 deletions(-)
  

Comments

Ferruh Yigit Aug. 13, 2021, 11:58 a.m. UTC | #1
On 8/2/2021 9:36 AM, Wenjun Wu wrote:
> This patch removes redundant default RSS field for IP fragment packets,
> only src MAC address and dst MAC address are needed.
> 

Hi Wenjun,

The impact is not clear, from the description I take this as code refactoring
without any impact but can you please clarify this in the commit log?

Also patch title it too long, can we update as following:
net/iavf: fix default RSS field for IP fragment packets

If so can you please put the Fixes tag? This way patch can be backported too.


> Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>
> ---
>  drivers/net/iavf/iavf_hash.c | 26 ++------------------------
>  1 file changed, 2 insertions(+), 24 deletions(-)
> 
> diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c
> index 2b03dad858..eba55ecea5 100644
> --- a/drivers/net/iavf/iavf_hash.c
> +++ b/drivers/net/iavf/iavf_hash.c
> @@ -624,34 +624,12 @@ iavf_rss_hash_set(struct iavf_adapter *ad, uint64_t rss_hf, bool add)
>  	}
>  
>  	if (rss_hf & ETH_RSS_FRAG_IPV4) {
> -		struct virtchnl_proto_hdrs hdr = {
> -			.tunnel_level = TUNNEL_LEVEL_OUTER,
> -			.count = 3,
> -			.proto_hdr = {
> -				proto_hdr_eth,
> -				proto_hdr_ipv4,
> -				{
> -					VIRTCHNL_PROTO_HDR_IPV4_FRAG,
> -					FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_FRAG_PKID),
> -					{BUFF_NOUSED},
> -				},
> -			},
> -		};
> -		rss_cfg.proto_hdrs = hdr;
> +		rss_cfg.proto_hdrs = outer_ipv4_tmplt;
>  		iavf_add_del_rss_cfg(ad, &rss_cfg, add);
>  	}
>  
>  	if (rss_hf & ETH_RSS_FRAG_IPV6) {
> -		struct virtchnl_proto_hdrs hdr = {
> -			.tunnel_level = TUNNEL_LEVEL_OUTER,
> -			.count = 3,
> -			.proto_hdr = {
> -				proto_hdr_eth,
> -				proto_hdr_ipv6,
> -				proto_hdr_ipv6_frag,
> -			},
> -		};
> -		rss_cfg.proto_hdrs = hdr;
> +		rss_cfg.proto_hdrs = outer_ipv6_tmplt;
>  		iavf_add_del_rss_cfg(ad, &rss_cfg, add);
>  	}
>  
>
  
Wenjun Wu Aug. 17, 2021, 6:23 a.m. UTC | #2
Hi Ferruh,

This patch removes support of IPID for both IPv4 and IPv6 fragment packets, because it is not expected in default RSS. 
The impact is that IPID will not be used to calculate the hash value in default RSS for IP fragment packet.
I will rework commit log and send v2 patch later.

> -----Original Message-----
> From: Yigit, Ferruh <ferruh.yigit@intel.com>
> Sent: Friday, August 13, 2021 7:59 PM
> To: Wu, Wenjun1 <wenjun1.wu@intel.com>; dev@dpdk.org; Wu, Jingjing
> <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>
> Subject: Re: [dpdk-dev] [PATCH v1 1/2] net/iavf: remove redundant default
> RSS field for IP fragment packets
> 
> On 8/2/2021 9:36 AM, Wenjun Wu wrote:
> > This patch removes redundant default RSS field for IP fragment
> > packets, only src MAC address and dst MAC address are needed.
> >
> 
> Hi Wenjun,
> 
> The impact is not clear, from the description I take this as code refactoring
> without any impact but can you please clarify this in the commit log?
> 
> Also patch title it too long, can we update as following:
> net/iavf: fix default RSS field for IP fragment packets
> 
> If so can you please put the Fixes tag? This way patch can be backported too.
> 
> 
> > Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>
> > ---
> >  drivers/net/iavf/iavf_hash.c | 26 ++------------------------
> >  1 file changed, 2 insertions(+), 24 deletions(-)
> >
> > diff --git a/drivers/net/iavf/iavf_hash.c
> > b/drivers/net/iavf/iavf_hash.c index 2b03dad858..eba55ecea5 100644
> > --- a/drivers/net/iavf/iavf_hash.c
> > +++ b/drivers/net/iavf/iavf_hash.c
> > @@ -624,34 +624,12 @@ iavf_rss_hash_set(struct iavf_adapter *ad,
> uint64_t rss_hf, bool add)
> >  	}
> >
> >  	if (rss_hf & ETH_RSS_FRAG_IPV4) {
> > -		struct virtchnl_proto_hdrs hdr = {
> > -			.tunnel_level = TUNNEL_LEVEL_OUTER,
> > -			.count = 3,
> > -			.proto_hdr = {
> > -				proto_hdr_eth,
> > -				proto_hdr_ipv4,
> > -				{
> > -					VIRTCHNL_PROTO_HDR_IPV4_FRAG,
> > -
> 	FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_FRAG_PKID),
> > -					{BUFF_NOUSED},
> > -				},
> > -			},
> > -		};
> > -		rss_cfg.proto_hdrs = hdr;
> > +		rss_cfg.proto_hdrs = outer_ipv4_tmplt;
> >  		iavf_add_del_rss_cfg(ad, &rss_cfg, add);
> >  	}
> >
> >  	if (rss_hf & ETH_RSS_FRAG_IPV6) {
> > -		struct virtchnl_proto_hdrs hdr = {
> > -			.tunnel_level = TUNNEL_LEVEL_OUTER,
> > -			.count = 3,
> > -			.proto_hdr = {
> > -				proto_hdr_eth,
> > -				proto_hdr_ipv6,
> > -				proto_hdr_ipv6_frag,
> > -			},
> > -		};
> > -		rss_cfg.proto_hdrs = hdr;
> > +		rss_cfg.proto_hdrs = outer_ipv6_tmplt;
> >  		iavf_add_del_rss_cfg(ad, &rss_cfg, add);
> >  	}
> >
> >
  

Patch

diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c
index 2b03dad858..eba55ecea5 100644
--- a/drivers/net/iavf/iavf_hash.c
+++ b/drivers/net/iavf/iavf_hash.c
@@ -624,34 +624,12 @@  iavf_rss_hash_set(struct iavf_adapter *ad, uint64_t rss_hf, bool add)
 	}
 
 	if (rss_hf & ETH_RSS_FRAG_IPV4) {
-		struct virtchnl_proto_hdrs hdr = {
-			.tunnel_level = TUNNEL_LEVEL_OUTER,
-			.count = 3,
-			.proto_hdr = {
-				proto_hdr_eth,
-				proto_hdr_ipv4,
-				{
-					VIRTCHNL_PROTO_HDR_IPV4_FRAG,
-					FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_FRAG_PKID),
-					{BUFF_NOUSED},
-				},
-			},
-		};
-		rss_cfg.proto_hdrs = hdr;
+		rss_cfg.proto_hdrs = outer_ipv4_tmplt;
 		iavf_add_del_rss_cfg(ad, &rss_cfg, add);
 	}
 
 	if (rss_hf & ETH_RSS_FRAG_IPV6) {
-		struct virtchnl_proto_hdrs hdr = {
-			.tunnel_level = TUNNEL_LEVEL_OUTER,
-			.count = 3,
-			.proto_hdr = {
-				proto_hdr_eth,
-				proto_hdr_ipv6,
-				proto_hdr_ipv6_frag,
-			},
-		};
-		rss_cfg.proto_hdrs = hdr;
+		rss_cfg.proto_hdrs = outer_ipv6_tmplt;
 		iavf_add_del_rss_cfg(ad, &rss_cfg, add);
 	}