[v2,2/2] app/testpmd: fix GTP PSC raw processing

Message ID 20220616180105.8839-2-getelson@nvidia.com (mailing list archive)
State Accepted, archived
Delegated to: Andrew Rybchenko
Headers
Series [v2,1/2] net: fix GTP PSC headers |

Checks

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

Commit Message

Gregory Etelson June 16, 2022, 6:01 p.m. UTC
  Use generic GTP PSC header definition in raw handler.

Fixes: 9213c50e36fa ("app/testpmd: support GTP PSC option in raw sets")

cc: stable@dpdk.org
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Reviewed-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
v2: fix raw GTP PSC object creation.
---
 app/test-pmd/cmdline_flow.c | 20 +++++++-------------
 1 file changed, 7 insertions(+), 13 deletions(-)
  

Comments

Singh, Aman Deep June 21, 2022, 9:16 a.m. UTC | #1
On 6/16/2022 11:31 PM, Gregory Etelson wrote:
> Use generic GTP PSC header definition in raw handler.
>
> Fixes: 9213c50e36fa ("app/testpmd: support GTP PSC option in raw sets")
>
> cc: stable@dpdk.org
> Signed-off-by: Gregory Etelson <getelson@nvidia.com>
> Reviewed-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>

Acked-by: Aman Singh<aman.deep.singh@intel.com>
  

Patch

diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index cfd55c598d..6cb1173385 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -11029,19 +11029,13 @@  cmd_set_raw_parsed(const struct buffer *in)
 			} else {
 				const struct rte_flow_item_gtp_psc
 					*opt = item->spec;
-				struct {
-					uint8_t len;
-					uint8_t pdu_type:4;
-					uint8_t qfi:6;
-					uint8_t next;
-				} psc;
-				psc.len = sizeof(psc) / 4;
-				psc.pdu_type = opt->hdr.type;
-				psc.qfi = opt->hdr.qfi;
-				psc.next = 0;
-				*total_size += sizeof(psc);
-				rte_memcpy(data_tail - (*total_size),
-					   &psc, sizeof(psc));
+				struct rte_gtp_psc_generic_hdr *hdr;
+
+				*total_size += RTE_ALIGN(sizeof(hdr),
+							 sizeof(int32_t));
+				hdr = (typeof(hdr))(data_tail - (*total_size));
+				*hdr = opt->hdr;
+				hdr->ext_hdr_len = 1;
 				gtp_psc = i;
 				size = 0;
 			}