]> git.droids-corp.org - dpdk.git/commitdiff
app/testpmd: fix GTP PSC raw processing
authorGregory Etelson <getelson@nvidia.com>
Thu, 16 Jun 2022 18:01:04 +0000 (21:01 +0300)
committerAndrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Thu, 23 Jun 2022 11:38:46 +0000 (13:38 +0200)
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>
app/test-pmd/cmdline_flow.c

index cfd55c598d3b9d3105bcaa61291fa8432365aa3e..6cb1173385b68a292ebd6f156a0d35d68e140449 100644 (file)
@@ -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;
                        }