[PATCH v2] net/iavf: fix gtpu extension flow error
    wenxuanx.wu at intel.com 
    wenxuanx.wu at intel.com
       
    Wed Jul  6 04:45:02 CEST 2022
    
    
  
From: Wenxuan Wu <wenxuanx.wu at 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 at intel.com
Cc: stable at dpdk.com
Signed-off-by: Wenxuan Wu <wenxuanx.wu at intel.com>
---
v2: refine 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
    
    
More information about the dev
mailing list