app/testpmd: fix PPPoE flow command
authorXiao Zhang <xiao.zhang@intel.com>
Tue, 31 Mar 2020 13:29:40 +0000 (21:29 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 21 Apr 2020 11:57:07 +0000 (13:57 +0200)
The command line to create RTE flow for specific proto_id of PPPOES can
not work.

It was:
testpmd> flow create 0 ingress pattern proto_id
 proto_id [TOKEN]: match PPPoE session protocol identifier
testpmd> flow create 0 ingress pattern proto_id proto_id
 proto_id [TOKEN]: match PPPoE session protocol identifier
testpmd> flow create 0 ingress pattern proto_id proto_id proto_id
 proto_id [TOKEN]: match PPPoE session protocol identifier

The proto_id can not be set with previous implementation.

This patch is to fix this issue, and change the command line to:
testpmd> flow create 0 pattern pppoe_proto_id is xxxx

Fixes: 226c6e60c35b ("ethdev: add PPPoE to flow API")
Cc: stable@dpdk.org
Signed-off-by: Xiao Zhang <xiao.zhang@intel.com>
Acked-by: Ori Kam <orika@mellanox.com>
app/test-pmd/cmdline_flow.c

index 4877ac6..e6ab8ff 100644 (file)
@@ -1037,7 +1037,6 @@ static const enum index item_pppoes[] = {
 };
 
 static const enum index item_pppoe_proto_id[] = {
-       ITEM_PPPOE_PROTO_ID,
        ITEM_NEXT,
        ZERO,
 };
@@ -2649,11 +2648,14 @@ static const struct token token_list[] = {
                                        session_id)),
        },
        [ITEM_PPPOE_PROTO_ID] = {
-               .name = "proto_id",
+               .name = "pppoe_proto_id",
                .help = "match PPPoE session protocol identifier",
                .priv = PRIV_ITEM(PPPOE_PROTO_ID,
                                sizeof(struct rte_flow_item_pppoe_proto_id)),
-               .next = NEXT(item_pppoe_proto_id),
+               .next = NEXT(item_pppoe_proto_id, NEXT_ENTRY(UNSIGNED),
+                            item_param),
+               .args = ARGS(ARGS_ENTRY_HTON
+                            (struct rte_flow_item_pppoe_proto_id, proto_id)),
                .call = parse_vc,
        },
        [ITEM_HIGIG2] = {