[v2] net/iavf: fix gtpu extension flow error

Message ID 20220706025626.1070737-1-wenxuanx.wu@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Qi Zhang
Headers
Series [v2] net/iavf: fix gtpu extension flow error |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/github-robot: build success github build: passed
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/intel-Testing success Testing PASS

Commit Message

Wu, WenxuanX July 6, 2022, 2:56 a.m. UTC
  From: Wenxuan Wu <wenxuanx.wu@intel.com>

Due to the change of struct rte_gtp_psc_generic_hdr, kernel driver can
not handle gtp_psc properly, we introduce a new structure to fix this
gap between kernel driver and struct rte_gtp_psc_generic_hdr.

Fixes: d5eb3e600d9e ("net/iavf: support flow director basic rule")
Cc: simei.su@intel.com
Cc: stable@dpdk.com

Signed-off-by: Wenxuan Wu <wenxuanx.wu@intel.com>

---
v2: refine commit log and doc.
---
 drivers/net/iavf/iavf_fdir.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)
  

Comments

Huang, ZhiminX July 7, 2022, 6:11 a.m. UTC | #1
> -----Original Message-----
> From: wenxuanx.wu@intel.com <wenxuanx.wu@intel.com>
> Sent: Wednesday, July 6, 2022 10:56 AM
> To: qiz.zhang@intel.com; Xing, Beilei <beilei.xing@intel.com>; dev@dpdk.org
> Cc: Yang, Qiming <qiming.yang@intel.com>; Zhou, YidingX
> <yidingx.zhou@intel.com>; Wu, WenxuanX <wenxuanx.wu@intel.com>; Su,
> Simei <simei.su@intel.com>; stable@dpdk.com
> Subject: [PATCH v2] net/iavf: fix gtpu extension flow error
> 
> From: Wenxuan Wu <wenxuanx.wu@intel.com>
> 
> Due to the change of struct rte_gtp_psc_generic_hdr, kernel driver can not
> handle gtp_psc properly, we introduce a new structure to fix this gap between
> kernel driver and struct rte_gtp_psc_generic_hdr.
> 
> Fixes: d5eb3e600d9e ("net/iavf: support flow director basic rule")
> Cc: simei.su@intel.com
> Cc: stable@dpdk.com
> 
> Signed-off-by: Wenxuan Wu <wenxuanx.wu@intel.com>
> 
Tested-by: Zhimin Huang <zhiminx.huang@intel.com >
  
Qiming Yang July 7, 2022, 6:57 a.m. UTC | #2
Hi,

> -----Original Message-----
> From: Wu, WenxuanX <wenxuanx.wu@intel.com>
> Sent: Wednesday, July 6, 2022 10:56
> To: qiz.zhang@intel.com; Xing, Beilei <beilei.xing@intel.com>; dev@dpdk.org
> Cc: Yang, Qiming <qiming.yang@intel.com>; Zhou, YidingX
> <yidingx.zhou@intel.com>; Wu, WenxuanX <wenxuanx.wu@intel.com>; Su,
> Simei <simei.su@intel.com>; stable@dpdk.com
> Subject: [PATCH v2] net/iavf: fix gtpu extension flow error
> 
> From: Wenxuan Wu <wenxuanx.wu@intel.com>
> 
> Due to the change of struct rte_gtp_psc_generic_hdr, kernel driver can not
> handle gtp_psc properly, we introduce a new structure to fix this gap between
> kernel driver and struct rte_gtp_psc_generic_hdr.
> 
> Fixes: d5eb3e600d9e ("net/iavf: support flow director basic rule")
> Cc: simei.su@intel.com

This line should be delete before patch sent.

> Cc: stable@dpdk.com
> 
> Signed-off-by: Wenxuan Wu <wenxuanx.wu@intel.com>
> 
> ---
> v2: refine commit log and doc.
> ---
>  drivers/net/iavf/iavf_fdir.c | 18 ++++++++++++++++--
>  1 file changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/iavf/iavf_fdir.c b/drivers/net/iavf/iavf_fdir.c index
> f236260502..4789d46ab2 100644
> --- a/drivers/net/iavf/iavf_fdir.c
> +++ b/drivers/net/iavf/iavf_fdir.c
> @@ -1300,8 +1300,22 @@ iavf_fdir_parse_pattern(__rte_unused struct
> iavf_adapter *ad,
> 
> 	 GTPU_DWN, QFI);
>  				}
> 
> -				rte_memcpy(hdr->buffer, gtp_psc_spec,
> -					sizeof(*gtp_psc_spec));
> +				/*
> +				 * New structure to fix gap between kernel
> driver and
> +				 * rte_gtp_psc_generic_hdr.
> +				 */
> +				struct iavf_gtp_psc_spec_hdr {
> +					uint8_t len;
> +					uint8_t qfi:6;
> +					uint8_t type:4;
> +					uint8_t next;
> +				} psc;
> +				psc.len = gtp_psc_spec->hdr.ext_hdr_len;
> +				psc.qfi = gtp_psc_spec->hdr.qfi;
> +				psc.type = gtp_psc_spec->hdr.type;
> +				psc.next = 0;
> +				rte_memcpy(hdr->buffer, &psc,
> +					sizeof(struct iavf_gtp_psc_spec_hdr));
>  			}
> 
>  			hdrs->count = ++layer;
> --
> 2.25.1

Acked-by: Qiming Yang  <Qiming.yang@intel.com>
  
Qi Zhang July 7, 2022, 7:13 a.m. UTC | #3
> -----Original Message-----
> From: Yang, Qiming <qiming.yang@intel.com>
> Sent: Thursday, July 7, 2022 2:58 PM
> To: Wu, WenxuanX <wenxuanx.wu@intel.com>; qiz.zhang@intel.com; Xing,
> Beilei <beilei.xing@intel.com>; dev@dpdk.org
> Cc: Zhou, YidingX <yidingx.zhou@intel.com>; Su, Simei <simei.su@intel.com>;
> stable@dpdk.com
> Subject: RE: [PATCH v2] net/iavf: fix gtpu extension flow error
> 
> Hi,
> 
> > -----Original Message-----
> > From: Wu, WenxuanX <wenxuanx.wu@intel.com>
> > Sent: Wednesday, July 6, 2022 10:56
> > To: qiz.zhang@intel.com; Xing, Beilei <beilei.xing@intel.com>;
> > dev@dpdk.org
> > Cc: Yang, Qiming <qiming.yang@intel.com>; Zhou, YidingX
> > <yidingx.zhou@intel.com>; Wu, WenxuanX <wenxuanx.wu@intel.com>; Su,
> > Simei <simei.su@intel.com>; stable@dpdk.com
> > Subject: [PATCH v2] net/iavf: fix gtpu extension flow error
> >
> > From: Wenxuan Wu <wenxuanx.wu@intel.com>
> >
> > Due to the change of struct rte_gtp_psc_generic_hdr, kernel driver can
> > not handle gtp_psc properly, we introduce a new structure to fix this
> > gap between kernel driver and struct rte_gtp_psc_generic_hdr.
> >
> > Fixes: d5eb3e600d9e ("net/iavf: support flow director basic rule")
> > Cc: simei.su@intel.com
> 
> This line should be delete before patch sent.
> 
> > Cc: stable@dpdk.com
> >
> > Signed-off-by: Wenxuan Wu <wenxuanx.wu@intel.com>
> >
> > ---
> > v2: refine commit log and doc.
> > ---
> >  drivers/net/iavf/iavf_fdir.c | 18 ++++++++++++++++--
> >  1 file changed, 16 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/net/iavf/iavf_fdir.c
> > b/drivers/net/iavf/iavf_fdir.c index
> > f236260502..4789d46ab2 100644
> > --- a/drivers/net/iavf/iavf_fdir.c
> > +++ b/drivers/net/iavf/iavf_fdir.c
> > @@ -1300,8 +1300,22 @@ iavf_fdir_parse_pattern(__rte_unused struct
> > iavf_adapter *ad,
> >
> > 	 GTPU_DWN, QFI);
> >  				}
> >
> > -				rte_memcpy(hdr->buffer, gtp_psc_spec,
> > -					sizeof(*gtp_psc_spec));
> > +				/*
> > +				 * New structure to fix gap between kernel
> > driver and
> > +				 * rte_gtp_psc_generic_hdr.
> > +				 */
> > +				struct iavf_gtp_psc_spec_hdr {
> > +					uint8_t len;
> > +					uint8_t qfi:6;
> > +					uint8_t type:4;
> > +					uint8_t next;
> > +				} psc;
> > +				psc.len = gtp_psc_spec->hdr.ext_hdr_len;
> > +				psc.qfi = gtp_psc_spec->hdr.qfi;
> > +				psc.type = gtp_psc_spec->hdr.type;
> > +				psc.next = 0;
> > +				rte_memcpy(hdr->buffer, &psc,
> > +					sizeof(struct iavf_gtp_psc_spec_hdr));
> >  			}
> >
> >  			hdrs->count = ++layer;
> > --
> > 2.25.1
> 
> Acked-by: Qiming Yang  <Qiming.yang@intel.com>

Applied to dpdk-next-net-intel.

Thanks
Qi
  
Thomas Monjalon July 11, 2022, 3:18 p.m. UTC | #4
07/07/2022 09:13, Zhang, Qi Z:
> From: Yang, Qiming <qiming.yang@intel.com>
> > From: Wu, WenxuanX <wenxuanx.wu@intel.com>
> > > From: Wenxuan Wu <wenxuanx.wu@intel.com>
> > >
> > > Due to the change of struct rte_gtp_psc_generic_hdr, kernel driver can
> > > not handle gtp_psc properly, we introduce a new structure to fix this
> > > gap between kernel driver and struct rte_gtp_psc_generic_hdr.
> > >
> > > Fixes: d5eb3e600d9e ("net/iavf: support flow director basic rule")
> > > Cc: simei.su@intel.com
> > 
> > This line should be delete before patch sent.
> > 
> > > Cc: stable@dpdk.com

it is dpdk.org!

> > >
> > > Signed-off-by: Wenxuan Wu <wenxuanx.wu@intel.com>
> > 
> > Acked-by: Qiming Yang  <Qiming.yang@intel.com>

no uppercase or double space in emails please

> 
> Applied to dpdk-next-net-intel.
> 
> Thanks
> Qi
  

Patch

diff --git a/drivers/net/iavf/iavf_fdir.c b/drivers/net/iavf/iavf_fdir.c
index f236260502..4789d46ab2 100644
--- a/drivers/net/iavf/iavf_fdir.c
+++ b/drivers/net/iavf/iavf_fdir.c
@@ -1300,8 +1300,22 @@  iavf_fdir_parse_pattern(__rte_unused struct iavf_adapter *ad,
 										 GTPU_DWN, QFI);
 				}
 
-				rte_memcpy(hdr->buffer, gtp_psc_spec,
-					sizeof(*gtp_psc_spec));
+				/*
+				 * New structure to fix gap between kernel driver and
+				 * rte_gtp_psc_generic_hdr.
+				 */
+				struct iavf_gtp_psc_spec_hdr {
+					uint8_t len;
+					uint8_t qfi:6;
+					uint8_t type:4;
+					uint8_t next;
+				} psc;
+				psc.len = gtp_psc_spec->hdr.ext_hdr_len;
+				psc.qfi = gtp_psc_spec->hdr.qfi;
+				psc.type = gtp_psc_spec->hdr.type;
+				psc.next = 0;
+				rte_memcpy(hdr->buffer, &psc,
+					sizeof(struct iavf_gtp_psc_spec_hdr));
 			}
 
 			hdrs->count = ++layer;