From: Gregory Etelson Date: Thu, 16 Jun 2022 18:01:04 +0000 (+0300) Subject: app/testpmd: fix GTP PSC raw processing X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=c65282c9aa31ff0cae4ff7030ac5e56a98b2d711;p=dpdk.git app/testpmd: fix GTP PSC raw processing 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 Reviewed-by: Viacheslav Ovsiienko Acked-by: Aman Singh --- 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; }