Hi Gregory, > -----Original Message----- > From: Gregory Etelson <getel...@nvidia.com> > Sent: Thursday, November 19, 2020 1:10 PM > Subject: [PATCH v2] app/testpmd: fix flow tunnel commands > > testpmd provides commands to test tunnel offload rte_flow > capabilities. Testpmd tunnel commands allow to configure new ofloaded > tunnel types, list existing offloaded tunnels and destroy existing > offloaded tunnels. > Tunnel offload commands allowed parameters repetition. For example, > the following commands were accepted: > testpmd> flow tunnel create 0 create 1 type vxlan > or > testpmd> flow tunnel list 0 list 1 > > Current patch fixed that fault. Correct tunnel commands syntax is: > testpmd> flow tunnel create <port> type <tunnel type> > testpmd> flow tunnel list <port> > testpmd> flow tunnel destroy <port> id <tunnel id> > > Fixes: 1b9f274623b8 ("app/testpmd: add commands for tunnel offload") > > Signed-off-by: Gregory Etelson <getel...@nvidia.com> > --- > app/test-pmd/cmdline_flow.c | 32 +++++++------------------------- > 1 file changed, 7 insertions(+), 25 deletions(-) > > diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c > index 457f74078d..585cab98b4 100644 > --- a/app/test-pmd/cmdline_flow.c > +++ b/app/test-pmd/cmdline_flow.c > @@ -812,26 +812,6 @@ static const enum index next_vc_attr[] = { > ZERO, > }; > > -static const enum index tunnel_create_attr[] = { > - TUNNEL_CREATE, > - TUNNEL_CREATE_TYPE, > - END, > - ZERO, > -}; > - > -static const enum index tunnel_destroy_attr[] = { > - TUNNEL_DESTROY, > - TUNNEL_DESTROY_ID, > - END, > - ZERO, > -}; > - > -static const enum index tunnel_list_attr[] = { > - TUNNEL_LIST, > - END, > - ZERO, > -}; > - > static const enum index next_destroy_attr[] = { > DESTROY_RULE, > END, > @@ -2009,35 +1989,37 @@ static const struct token token_list[] = { > [TUNNEL_CREATE] = { > .name = "create", > .help = "create new tunnel object", > - .next = NEXT(tunnel_create_attr, NEXT_ENTRY(PORT_ID)), > + .next = NEXT(NEXT_ENTRY(TUNNEL_CREATE_TYPE), > + NEXT_ENTRY(PORT_ID)), > .args = ARGS(ARGS_ENTRY(struct buffer, port)), > .call = parse_tunnel, > }, > [TUNNEL_CREATE_TYPE] = { > .name = "type", > .help = "create new tunnel", > - .next = NEXT(tunnel_create_attr, NEXT_ENTRY(FILE_PATH)), > + .next = NEXT(NEXT_ENTRY(FILE_PATH)), > .args = ARGS(ARGS_ENTRY(struct tunnel_ops, type)), > .call = parse_tunnel, > }, > [TUNNEL_DESTROY] = { > .name = "destroy", > .help = "destroy tunel", > - .next = NEXT(tunnel_destroy_attr, NEXT_ENTRY(PORT_ID)), > + .next = NEXT(NEXT_ENTRY(TUNNEL_DESTROY_ID), > + NEXT_ENTRY(PORT_ID)), > .args = ARGS(ARGS_ENTRY(struct buffer, port)), > .call = parse_tunnel, > }, > [TUNNEL_DESTROY_ID] = { > .name = "id", > .help = "tunnel identifier to testroy", > - .next = NEXT(tunnel_destroy_attr, NEXT_ENTRY(UNSIGNED)), > + .next = NEXT(NEXT_ENTRY(UNSIGNED)), > .args = ARGS(ARGS_ENTRY(struct tunnel_ops, id)), > .call = parse_tunnel, > }, > [TUNNEL_LIST] = { > .name = "list", > .help = "list existing tunnels", > - .next = NEXT(tunnel_list_attr, NEXT_ENTRY(PORT_ID)), > + .next = NEXT(NEXT_ENTRY(PORT_ID)), > .args = ARGS(ARGS_ENTRY(struct buffer, port)), > .call = parse_tunnel, > }, > -- > 2.29.2
Acked-by: Ori Kam <or...@nvidia.com> Best, Ori