From 7e608a971dc0112d4044f1a83d41f4866983ea04 Mon Sep 17 00:00:00 2001 From: Bing Zhao Date: Thu, 29 Oct 2020 13:35:25 +0800 Subject: [PATCH] app/testpmd: fix eCPRI command line style In the current implementation of eCPRI flow item parsing of the CLI, the token items in the list are not connected properly. A command containing "rtc_ctrl rtc_id spec 14857 rtc_id mask 0xff00" will be considered invalid. In order to support spec with mask, the common entry needs to be typed twice and the whole command will be too long. By changing the token lists, it could support spec with mask without backing from the entry of the item. Fixes: 17d103cc9365 ("app/testpmd: add eCPRI in flow creation patterns") Cc: stable@dpdk.org Signed-off-by: Bing Zhao Reviewed-by: Ferruh Yigit --- app/test-pmd/cmdline_flow.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index 3d1dd05953..c68d22fdaa 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -3204,7 +3204,9 @@ static const struct token token_list[] = { [ITEM_ECPRI_MSG_IQ_DATA_PCID] = { .name = "pc_id", .help = "Physical Channel ID", - .next = NEXT(item_ecpri, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(NEXT_ENTRY(ITEM_ECPRI_MSG_IQ_DATA_PCID, + ITEM_ECPRI_COMMON, ITEM_NEXT), + NEXT_ENTRY(UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ecpri, hdr.type0.pc_id)), }, @@ -3218,7 +3220,9 @@ static const struct token token_list[] = { [ITEM_ECPRI_MSG_RTC_CTRL_RTCID] = { .name = "rtc_id", .help = "Real-Time Control Data ID", - .next = NEXT(item_ecpri, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(NEXT_ENTRY(ITEM_ECPRI_MSG_RTC_CTRL_RTCID, + ITEM_ECPRI_COMMON, ITEM_NEXT), + NEXT_ENTRY(UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ecpri, hdr.type2.rtc_id)), }, @@ -3232,7 +3236,9 @@ static const struct token token_list[] = { [ITEM_ECPRI_MSG_DLY_MSR_MSRID] = { .name = "msr_id", .help = "Measurement ID", - .next = NEXT(item_ecpri, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(NEXT_ENTRY(ITEM_ECPRI_MSG_DLY_MSR_MSRID, + ITEM_ECPRI_COMMON, ITEM_NEXT), + NEXT_ENTRY(UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ecpri, hdr.type5.msr_id)), }, -- 2.20.1