get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/92971/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 92971,
    "url": "http://patches.dpdk.org/api/patches/92971/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1620241931-28435-6-git-send-email-jizh@linux.microsoft.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1620241931-28435-6-git-send-email-jizh@linux.microsoft.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1620241931-28435-6-git-send-email-jizh@linux.microsoft.com",
    "date": "2021-05-05T19:12:06",
    "name": "[v13,05/10] app/testpmd: resolve name collisions",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "70143e1deece48777f8a3dfa266afb972ea06da4",
    "submitter": {
        "id": 1934,
        "url": "http://patches.dpdk.org/api/people/1934/?format=api",
        "name": "Jie Zhou",
        "email": "jizh@linux.microsoft.com"
    },
    "delegate": {
        "id": 3961,
        "url": "http://patches.dpdk.org/api/users/3961/?format=api",
        "username": "arybchenko",
        "first_name": "Andrew",
        "last_name": "Rybchenko",
        "email": "andrew.rybchenko@oktetlabs.ru"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1620241931-28435-6-git-send-email-jizh@linux.microsoft.com/mbox/",
    "series": [
        {
            "id": 16839,
            "url": "http://patches.dpdk.org/api/series/16839/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=16839",
            "date": "2021-05-05T19:12:02",
            "name": "app/testpmd: enable testpmd on Windows",
            "version": 13,
            "mbox": "http://patches.dpdk.org/series/16839/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/92971/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/92971/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id B156CA0524;\n\tWed,  5 May 2021 21:13:02 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 6D57F41131;\n\tWed,  5 May 2021 21:12:28 +0200 (CEST)",
            "from linux.microsoft.com (linux.microsoft.com [13.77.154.182])\n by mails.dpdk.org (Postfix) with ESMTP id 44F2F4003C;\n Wed,  5 May 2021 21:12:18 +0200 (CEST)",
            "from\n linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net\n (linux.microsoft.com [13.77.154.182])\n by linux.microsoft.com (Postfix) with ESMTPSA id 22A3220B800D;\n Wed,  5 May 2021 12:12:17 -0700 (PDT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 linux.microsoft.com 22A3220B800D",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;\n s=default; t=1620241937;\n bh=XDlA5El9ARxdX5g7JZC3svWujaPh8G/D+nhTsM8Ed+Y=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=cb7IDvl2uLBFpEnfdW0NwVQLFucZlzC6sScIAfkpUCJa+pXBfNV8IuACiMjyFwSl9\n G6yFFbzZcJQR5xqq7NQtdnSTx2rl60VzkA4h8TljAzZdhLadpjiijoJReWeevzqW1P\n zIMNcvSkbisRzY2hpSQut+J5OOkVAbc5+U44oyNE=",
        "From": "Jie Zhou <jizh@linux.microsoft.com>",
        "To": "dev@dpdk.org",
        "Cc": "dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com,\n talshn@nvidia.com, pallavi.kadam@intel.com, thomas@monjalon.net,\n bruce.richardson@intel.com, ferruh.yigit@intel.com,\n konstantin.ananyev@intel.com, stable@dpdk.org",
        "Date": "Wed,  5 May 2021 12:12:06 -0700",
        "Message-Id": "<1620241931-28435-6-git-send-email-jizh@linux.microsoft.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1620241931-28435-1-git-send-email-jizh@linux.microsoft.com>",
        "References": "<1620236174-10676-1-git-send-email-jizh@linux.microsoft.com>\n <1620241931-28435-1-git-send-email-jizh@linux.microsoft.com>",
        "Subject": "[dpdk-dev] [PATCH v13 05/10] app/testpmd: resolve name collisions",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Resolve name collisions with Windows types\n\nSigned-off-by: Jie Zhou <jizh@microsoft.com>\nSigned-off-by: Jie Zhou <jizh@linux.microsoft.com>\nAcked-by: Tal Shnaiderman <talshn@nvidia.com>\n---\n app/test-pmd/cmdline_flow.c | 512 ++++++++++++++++++------------------\n 1 file changed, 256 insertions(+), 256 deletions(-)",
    "diff": "diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c\nindex 594734199..888b9179b 100644\n--- a/app/test-pmd/cmdline_flow.c\n+++ b/app/test-pmd/cmdline_flow.c\n@@ -40,22 +40,22 @@ enum index {\n \tEND_SET,\n \n \t/* Common tokens. */\n-\tINTEGER,\n-\tUNSIGNED,\n-\tPREFIX,\n-\tBOOLEAN,\n-\tSTRING,\n-\tHEX,\n-\tFILE_PATH,\n-\tMAC_ADDR,\n-\tIPV4_ADDR,\n-\tIPV6_ADDR,\n-\tRULE_ID,\n-\tPORT_ID,\n-\tGROUP_ID,\n-\tPRIORITY_LEVEL,\n-\tINDIRECT_ACTION_ID,\n-\tPOLICY_ID,\n+\tCOMMON_INTEGER,\n+\tCOMMON_UNSIGNED,\n+\tCOMMON_PREFIX,\n+\tCOMMON_BOOLEAN,\n+\tCOMMON_STRING,\n+\tCOMMON_HEX,\n+\tCOMMON_FILE_PATH,\n+\tCOMMON_MAC_ADDR,\n+\tCOMMON_IPV4_ADDR,\n+\tCOMMON_IPV6_ADDR,\n+\tCOMMON_RULE_ID,\n+\tCOMMON_PORT_ID,\n+\tCOMMON_GROUP_ID,\n+\tCOMMON_PRIORITY_LEVEL,\n+\tCOMMON_INDIRECT_ACTION_ID,\n+\tCOMMON_POLICY_ID,\n \n \t/* TOP-level command. */\n \tADD,\n@@ -104,13 +104,13 @@ enum index {\n \tAGED_DESTROY,\n \n \t/* Validate/create arguments. */\n-\tGROUP,\n-\tPRIORITY,\n-\tINGRESS,\n-\tEGRESS,\n-\tTRANSFER,\n-\tTUNNEL_SET,\n-\tTUNNEL_MATCH,\n+\tVC_GROUP,\n+\tVC_PRIORITY,\n+\tVC_INGRESS,\n+\tVC_EGRESS,\n+\tVC_TRANSFER,\n+\tVC_TUNNEL_SET,\n+\tVC_TUNNEL_MATCH,\n \n \t/* Dump arguments */\n \tDUMP_ALL,\n@@ -133,7 +133,7 @@ enum index {\n \tINDIRECT_ACTION_DESTROY_ID,\n \n \t/* Validate/create pattern. */\n-\tPATTERN,\n+\tITEM_PATTERN,\n \tITEM_PARAM_IS,\n \tITEM_PARAM_SPEC,\n \tITEM_PARAM_LAST,\n@@ -890,14 +890,14 @@ static const enum index next_ia_subcmd[] = {\n };\n \n static const enum index next_vc_attr[] = {\n-\tGROUP,\n-\tPRIORITY,\n-\tINGRESS,\n-\tEGRESS,\n-\tTRANSFER,\n-\tTUNNEL_SET,\n-\tTUNNEL_MATCH,\n-\tPATTERN,\n+\tVC_GROUP,\n+\tVC_PRIORITY,\n+\tVC_INGRESS,\n+\tVC_EGRESS,\n+\tVC_TRANSFER,\n+\tVC_TUNNEL_SET,\n+\tVC_TUNNEL_MATCH,\n+\tITEM_PATTERN,\n \tZERO,\n };\n \n@@ -908,7 +908,7 @@ static const enum index next_destroy_attr[] = {\n };\n \n static const enum index next_dump_attr[] = {\n-\tFILE_PATH,\n+\tCOMMON_FILE_PATH,\n \tEND,\n \tZERO,\n };\n@@ -1911,111 +1911,111 @@ static const struct token token_list[] = {\n \t\t.help = \"set command may end here\",\n \t},\n \t/* Common tokens. */\n-\t[INTEGER] = {\n+\t[COMMON_INTEGER] = {\n \t\t.name = \"{int}\",\n \t\t.type = \"INTEGER\",\n \t\t.help = \"integer value\",\n \t\t.call = parse_int,\n \t\t.comp = comp_none,\n \t},\n-\t[UNSIGNED] = {\n+\t[COMMON_UNSIGNED] = {\n \t\t.name = \"{unsigned}\",\n \t\t.type = \"UNSIGNED\",\n \t\t.help = \"unsigned integer value\",\n \t\t.call = parse_int,\n \t\t.comp = comp_none,\n \t},\n-\t[PREFIX] = {\n+\t[COMMON_PREFIX] = {\n \t\t.name = \"{prefix}\",\n \t\t.type = \"PREFIX\",\n \t\t.help = \"prefix length for bit-mask\",\n \t\t.call = parse_prefix,\n \t\t.comp = comp_none,\n \t},\n-\t[BOOLEAN] = {\n+\t[COMMON_BOOLEAN] = {\n \t\t.name = \"{boolean}\",\n \t\t.type = \"BOOLEAN\",\n \t\t.help = \"any boolean value\",\n \t\t.call = parse_boolean,\n \t\t.comp = comp_boolean,\n \t},\n-\t[STRING] = {\n+\t[COMMON_STRING] = {\n \t\t.name = \"{string}\",\n \t\t.type = \"STRING\",\n \t\t.help = \"fixed string\",\n \t\t.call = parse_string,\n \t\t.comp = comp_none,\n \t},\n-\t[HEX] = {\n+\t[COMMON_HEX] = {\n \t\t.name = \"{hex}\",\n \t\t.type = \"HEX\",\n \t\t.help = \"fixed string\",\n \t\t.call = parse_hex,\n \t},\n-\t[FILE_PATH] = {\n+\t[COMMON_FILE_PATH] = {\n \t\t.name = \"{file path}\",\n \t\t.type = \"STRING\",\n \t\t.help = \"file path\",\n \t\t.call = parse_string0,\n \t\t.comp = comp_none,\n \t},\n-\t[MAC_ADDR] = {\n+\t[COMMON_MAC_ADDR] = {\n \t\t.name = \"{MAC address}\",\n \t\t.type = \"MAC-48\",\n \t\t.help = \"standard MAC address notation\",\n \t\t.call = parse_mac_addr,\n \t\t.comp = comp_none,\n \t},\n-\t[IPV4_ADDR] = {\n+\t[COMMON_IPV4_ADDR] = {\n \t\t.name = \"{IPv4 address}\",\n \t\t.type = \"IPV4 ADDRESS\",\n \t\t.help = \"standard IPv4 address notation\",\n \t\t.call = parse_ipv4_addr,\n \t\t.comp = comp_none,\n \t},\n-\t[IPV6_ADDR] = {\n+\t[COMMON_IPV6_ADDR] = {\n \t\t.name = \"{IPv6 address}\",\n \t\t.type = \"IPV6 ADDRESS\",\n \t\t.help = \"standard IPv6 address notation\",\n \t\t.call = parse_ipv6_addr,\n \t\t.comp = comp_none,\n \t},\n-\t[RULE_ID] = {\n+\t[COMMON_RULE_ID] = {\n \t\t.name = \"{rule id}\",\n \t\t.type = \"RULE ID\",\n \t\t.help = \"rule identifier\",\n \t\t.call = parse_int,\n \t\t.comp = comp_rule_id,\n \t},\n-\t[PORT_ID] = {\n+\t[COMMON_PORT_ID] = {\n \t\t.name = \"{port_id}\",\n \t\t.type = \"PORT ID\",\n \t\t.help = \"port identifier\",\n \t\t.call = parse_port,\n \t\t.comp = comp_port,\n \t},\n-\t[GROUP_ID] = {\n+\t[COMMON_GROUP_ID] = {\n \t\t.name = \"{group_id}\",\n \t\t.type = \"GROUP ID\",\n \t\t.help = \"group identifier\",\n \t\t.call = parse_int,\n \t\t.comp = comp_none,\n \t},\n-\t[PRIORITY_LEVEL] = {\n+\t[COMMON_PRIORITY_LEVEL] = {\n \t\t.name = \"{level}\",\n \t\t.type = \"PRIORITY\",\n \t\t.help = \"priority level\",\n \t\t.call = parse_int,\n \t\t.comp = comp_none,\n \t},\n-\t[INDIRECT_ACTION_ID] = {\n+\t[COMMON_INDIRECT_ACTION_ID] = {\n \t\t.name = \"{indirect_action_id}\",\n \t\t.type = \"INDIRECT_ACTION_ID\",\n \t\t.help = \"indirect action id\",\n \t\t.call = parse_int,\n \t\t.comp = comp_none,\n \t},\n-\t[POLICY_ID] = {\n+\t[COMMON_POLICY_ID] = {\n \t\t.name = \"{policy_id}\",\n \t\t.type = \"POLCIY_ID\",\n \t\t.help = \"policy id\",\n@@ -2046,7 +2046,7 @@ static const struct token token_list[] = {\n \t\t.name = \"indirect_action\",\n \t\t.type = \"{command} {port_id} [{arg} [...]]\",\n \t\t.help = \"manage indirect actions\",\n-\t\t.next = NEXT(next_ia_subcmd, NEXT_ENTRY(PORT_ID)),\n+\t\t.next = NEXT(next_ia_subcmd, NEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, port)),\n \t\t.call = parse_ia,\n \t},\n@@ -2061,7 +2061,7 @@ static const struct token token_list[] = {\n \t\t.name = \"update\",\n \t\t.help = \"update indirect action\",\n \t\t.next = NEXT(NEXT_ENTRY(INDIRECT_ACTION_SPEC),\n-\t\t\t     NEXT_ENTRY(INDIRECT_ACTION_ID)),\n+\t\t\t     NEXT_ENTRY(COMMON_INDIRECT_ACTION_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, args.vc.attr.group)),\n \t\t.call = parse_ia,\n \t},\n@@ -2075,42 +2075,42 @@ static const struct token token_list[] = {\n \t[INDIRECT_ACTION_QUERY] = {\n \t\t.name = \"query\",\n \t\t.help = \"query indirect action\",\n-\t\t.next = NEXT(NEXT_ENTRY(END), NEXT_ENTRY(INDIRECT_ACTION_ID)),\n+\t\t.next = NEXT(NEXT_ENTRY(END), NEXT_ENTRY(COMMON_INDIRECT_ACTION_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, args.ia.action_id)),\n \t\t.call = parse_ia,\n \t},\n \t[VALIDATE] = {\n \t\t.name = \"validate\",\n \t\t.help = \"check whether a flow rule can be created\",\n-\t\t.next = NEXT(next_vc_attr, NEXT_ENTRY(PORT_ID)),\n+\t\t.next = NEXT(next_vc_attr, NEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, port)),\n \t\t.call = parse_vc,\n \t},\n \t[CREATE] = {\n \t\t.name = \"create\",\n \t\t.help = \"create a flow rule\",\n-\t\t.next = NEXT(next_vc_attr, NEXT_ENTRY(PORT_ID)),\n+\t\t.next = NEXT(next_vc_attr, NEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, port)),\n \t\t.call = parse_vc,\n \t},\n \t[DESTROY] = {\n \t\t.name = \"destroy\",\n \t\t.help = \"destroy specific flow rules\",\n-\t\t.next = NEXT(NEXT_ENTRY(DESTROY_RULE), NEXT_ENTRY(PORT_ID)),\n+\t\t.next = NEXT(NEXT_ENTRY(DESTROY_RULE), NEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, port)),\n \t\t.call = parse_destroy,\n \t},\n \t[FLUSH] = {\n \t\t.name = \"flush\",\n \t\t.help = \"destroy all flow rules\",\n-\t\t.next = NEXT(NEXT_ENTRY(PORT_ID)),\n+\t\t.next = NEXT(NEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, port)),\n \t\t.call = parse_flush,\n \t},\n \t[DUMP] = {\n \t\t.name = \"dump\",\n \t\t.help = \"dump single/all flow rules to file\",\n-\t\t.next = NEXT(next_dump_subcmd, NEXT_ENTRY(PORT_ID)),\n+\t\t.next = NEXT(next_dump_subcmd, NEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, port)),\n \t\t.call = parse_dump,\n \t},\n@@ -2118,8 +2118,8 @@ static const struct token token_list[] = {\n \t\t.name = \"query\",\n \t\t.help = \"query an existing flow rule\",\n \t\t.next = NEXT(NEXT_ENTRY(QUERY_ACTION),\n-\t\t\t     NEXT_ENTRY(RULE_ID),\n-\t\t\t     NEXT_ENTRY(PORT_ID)),\n+\t\t\t     NEXT_ENTRY(COMMON_RULE_ID),\n+\t\t\t     NEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, args.query.action.type),\n \t\t\t     ARGS_ENTRY(struct buffer, args.query.rule),\n \t\t\t     ARGS_ENTRY(struct buffer, port)),\n@@ -2128,22 +2128,22 @@ static const struct token token_list[] = {\n \t[LIST] = {\n \t\t.name = \"list\",\n \t\t.help = \"list existing flow rules\",\n-\t\t.next = NEXT(next_list_attr, NEXT_ENTRY(PORT_ID)),\n+\t\t.next = NEXT(next_list_attr, NEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, port)),\n \t\t.call = parse_list,\n \t},\n \t[AGED] = {\n \t\t.name = \"aged\",\n \t\t.help = \"list and destroy aged flows\",\n-\t\t.next = NEXT(next_aged_attr, NEXT_ENTRY(PORT_ID)),\n+\t\t.next = NEXT(next_aged_attr, NEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, port)),\n \t\t.call = parse_aged,\n \t},\n \t[ISOLATE] = {\n \t\t.name = \"isolate\",\n \t\t.help = \"restrict ingress traffic to the defined flow rules\",\n-\t\t.next = NEXT(NEXT_ENTRY(BOOLEAN),\n-\t\t\t     NEXT_ENTRY(PORT_ID)),\n+\t\t.next = NEXT(NEXT_ENTRY(COMMON_BOOLEAN),\n+\t\t\t     NEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, args.isolate.set),\n \t\t\t     ARGS_ENTRY(struct buffer, port)),\n \t\t.call = parse_isolate,\n@@ -2160,14 +2160,14 @@ static const struct token token_list[] = {\n \t\t.name = \"create\",\n \t\t.help = \"create new tunnel object\",\n \t\t.next = NEXT(NEXT_ENTRY(TUNNEL_CREATE_TYPE),\n-\t\t\t     NEXT_ENTRY(PORT_ID)),\n+\t\t\t     NEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, port)),\n \t\t.call = parse_tunnel,\n \t},\n \t[TUNNEL_CREATE_TYPE] = {\n \t\t.name = \"type\",\n \t\t.help = \"create new tunnel\",\n-\t\t.next = NEXT(NEXT_ENTRY(FILE_PATH)),\n+\t\t.next = NEXT(NEXT_ENTRY(COMMON_FILE_PATH)),\n \t\t.args = ARGS(ARGS_ENTRY(struct tunnel_ops, type)),\n \t\t.call = parse_tunnel,\n \t},\n@@ -2175,21 +2175,21 @@ static const struct token token_list[] = {\n \t\t.name = \"destroy\",\n \t\t.help = \"destroy tunel\",\n \t\t.next = NEXT(NEXT_ENTRY(TUNNEL_DESTROY_ID),\n-\t\t\t     NEXT_ENTRY(PORT_ID)),\n+\t\t\t     NEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, port)),\n \t\t.call = parse_tunnel,\n \t},\n \t[TUNNEL_DESTROY_ID] = {\n \t\t.name = \"id\",\n \t\t.help = \"tunnel identifier to testroy\",\n-\t\t.next = NEXT(NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct tunnel_ops, id)),\n \t\t.call = parse_tunnel,\n \t},\n \t[TUNNEL_LIST] = {\n \t\t.name = \"list\",\n \t\t.help = \"list existing tunnels\",\n-\t\t.next = NEXT(NEXT_ENTRY(PORT_ID)),\n+\t\t.next = NEXT(NEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, port)),\n \t\t.call = parse_tunnel,\n \t},\n@@ -2197,7 +2197,7 @@ static const struct token token_list[] = {\n \t[DESTROY_RULE] = {\n \t\t.name = \"rule\",\n \t\t.help = \"specify a rule identifier\",\n-\t\t.next = NEXT(next_destroy_attr, NEXT_ENTRY(RULE_ID)),\n+\t\t.next = NEXT(next_destroy_attr, NEXT_ENTRY(COMMON_RULE_ID)),\n \t\t.args = ARGS(ARGS_ENTRY_PTR(struct buffer, args.destroy.rule)),\n \t\t.call = parse_destroy,\n \t},\n@@ -2212,7 +2212,7 @@ static const struct token token_list[] = {\n \t[DUMP_ONE] = {\n \t\t.name = \"rule\",\n \t\t.help = \"dump one rule\",\n-\t\t.next = NEXT(next_dump_attr, NEXT_ENTRY(RULE_ID)),\n+\t\t.next = NEXT(next_dump_attr, NEXT_ENTRY(COMMON_RULE_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, args.dump.file),\n \t\t\t\tARGS_ENTRY(struct buffer, args.dump.rule)),\n \t\t.call = parse_dump,\n@@ -2229,7 +2229,7 @@ static const struct token token_list[] = {\n \t[LIST_GROUP] = {\n \t\t.name = \"group\",\n \t\t.help = \"specify a group\",\n-\t\t.next = NEXT(next_list_attr, NEXT_ENTRY(GROUP_ID)),\n+\t\t.next = NEXT(next_list_attr, NEXT_ENTRY(COMMON_GROUP_ID)),\n \t\t.args = ARGS(ARGS_ENTRY_PTR(struct buffer, args.list.group)),\n \t\t.call = parse_list,\n \t},\n@@ -2240,54 +2240,54 @@ static const struct token token_list[] = {\n \t\t.comp = comp_none,\n \t},\n \t/* Validate/create attributes. */\n-\t[GROUP] = {\n+\t[VC_GROUP] = {\n \t\t.name = \"group\",\n \t\t.help = \"specify a group\",\n-\t\t.next = NEXT(next_vc_attr, NEXT_ENTRY(GROUP_ID)),\n+\t\t.next = NEXT(next_vc_attr, NEXT_ENTRY(COMMON_GROUP_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_attr, group)),\n \t\t.call = parse_vc,\n \t},\n-\t[PRIORITY] = {\n+\t[VC_PRIORITY] = {\n \t\t.name = \"priority\",\n \t\t.help = \"specify a priority level\",\n-\t\t.next = NEXT(next_vc_attr, NEXT_ENTRY(PRIORITY_LEVEL)),\n+\t\t.next = NEXT(next_vc_attr, NEXT_ENTRY(COMMON_PRIORITY_LEVEL)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_attr, priority)),\n \t\t.call = parse_vc,\n \t},\n-\t[INGRESS] = {\n+\t[VC_INGRESS] = {\n \t\t.name = \"ingress\",\n \t\t.help = \"affect rule to ingress\",\n \t\t.next = NEXT(next_vc_attr),\n \t\t.call = parse_vc,\n \t},\n-\t[EGRESS] = {\n+\t[VC_EGRESS] = {\n \t\t.name = \"egress\",\n \t\t.help = \"affect rule to egress\",\n \t\t.next = NEXT(next_vc_attr),\n \t\t.call = parse_vc,\n \t},\n-\t[TRANSFER] = {\n+\t[VC_TRANSFER] = {\n \t\t.name = \"transfer\",\n \t\t.help = \"apply rule directly to endpoints found in pattern\",\n \t\t.next = NEXT(next_vc_attr),\n \t\t.call = parse_vc,\n \t},\n-\t[TUNNEL_SET] = {\n+\t[VC_TUNNEL_SET] = {\n \t\t.name = \"tunnel_set\",\n \t\t.help = \"tunnel steer rule\",\n-\t\t.next = NEXT(next_vc_attr, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(next_vc_attr, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct tunnel_ops, id)),\n \t\t.call = parse_vc,\n \t},\n-\t[TUNNEL_MATCH] = {\n+\t[VC_TUNNEL_MATCH] = {\n \t\t.name = \"tunnel_match\",\n \t\t.help = \"tunnel match rule\",\n-\t\t.next = NEXT(next_vc_attr, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(next_vc_attr, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct tunnel_ops, id)),\n \t\t.call = parse_vc,\n \t},\n \t/* Validate/create pattern. */\n-\t[PATTERN] = {\n+\t[ITEM_PATTERN] = {\n \t\t.name = \"pattern\",\n \t\t.help = \"submit a list of pattern items\",\n \t\t.next = NEXT(next_item),\n@@ -2354,7 +2354,7 @@ static const struct token token_list[] = {\n \t[ITEM_ANY_NUM] = {\n \t\t.name = \"num\",\n \t\t.help = \"number of layers covered\",\n-\t\t.next = NEXT(item_any, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_any, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_any, num)),\n \t},\n \t[ITEM_PF] = {\n@@ -2374,7 +2374,7 @@ static const struct token token_list[] = {\n \t[ITEM_VF_ID] = {\n \t\t.name = \"id\",\n \t\t.help = \"VF ID\",\n-\t\t.next = NEXT(item_vf, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_vf, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_vf, id)),\n \t},\n \t[ITEM_PHY_PORT] = {\n@@ -2388,7 +2388,7 @@ static const struct token token_list[] = {\n \t[ITEM_PHY_PORT_INDEX] = {\n \t\t.name = \"index\",\n \t\t.help = \"physical port index\",\n-\t\t.next = NEXT(item_phy_port, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_phy_port, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_phy_port, index)),\n \t},\n \t[ITEM_PORT_ID] = {\n@@ -2402,7 +2402,7 @@ static const struct token token_list[] = {\n \t[ITEM_PORT_ID_ID] = {\n \t\t.name = \"id\",\n \t\t.help = \"DPDK port ID\",\n-\t\t.next = NEXT(item_port_id, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_port_id, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_port_id, id)),\n \t},\n \t[ITEM_MARK] = {\n@@ -2415,7 +2415,7 @@ static const struct token token_list[] = {\n \t[ITEM_MARK_ID] = {\n \t\t.name = \"id\",\n \t\t.help = \"Integer value to match against\",\n-\t\t.next = NEXT(item_mark, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_mark, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_mark, id)),\n \t},\n \t[ITEM_RAW] = {\n@@ -2428,34 +2428,34 @@ static const struct token token_list[] = {\n \t[ITEM_RAW_RELATIVE] = {\n \t\t.name = \"relative\",\n \t\t.help = \"look for pattern after the previous item\",\n-\t\t.next = NEXT(item_raw, NEXT_ENTRY(BOOLEAN), item_param),\n+\t\t.next = NEXT(item_raw, NEXT_ENTRY(COMMON_BOOLEAN), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_raw,\n \t\t\t\t\t   relative, 1)),\n \t},\n \t[ITEM_RAW_SEARCH] = {\n \t\t.name = \"search\",\n \t\t.help = \"search pattern from offset (see also limit)\",\n-\t\t.next = NEXT(item_raw, NEXT_ENTRY(BOOLEAN), item_param),\n+\t\t.next = NEXT(item_raw, NEXT_ENTRY(COMMON_BOOLEAN), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_raw,\n \t\t\t\t\t   search, 1)),\n \t},\n \t[ITEM_RAW_OFFSET] = {\n \t\t.name = \"offset\",\n \t\t.help = \"absolute or relative offset for pattern\",\n-\t\t.next = NEXT(item_raw, NEXT_ENTRY(INTEGER), item_param),\n+\t\t.next = NEXT(item_raw, NEXT_ENTRY(COMMON_INTEGER), item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_raw, offset)),\n \t},\n \t[ITEM_RAW_LIMIT] = {\n \t\t.name = \"limit\",\n \t\t.help = \"search area limit for start of pattern\",\n-\t\t.next = NEXT(item_raw, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_raw, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_raw, limit)),\n \t},\n \t[ITEM_RAW_PATTERN] = {\n \t\t.name = \"pattern\",\n \t\t.help = \"byte string to look for\",\n \t\t.next = NEXT(item_raw,\n-\t\t\t     NEXT_ENTRY(STRING),\n+\t\t\t     NEXT_ENTRY(COMMON_STRING),\n \t\t\t     NEXT_ENTRY(ITEM_PARAM_IS,\n \t\t\t\t\tITEM_PARAM_SPEC,\n \t\t\t\t\tITEM_PARAM_MASK)),\n@@ -2474,25 +2474,25 @@ static const struct token token_list[] = {\n \t[ITEM_ETH_DST] = {\n \t\t.name = \"dst\",\n \t\t.help = \"destination MAC\",\n-\t\t.next = NEXT(item_eth, NEXT_ENTRY(MAC_ADDR), item_param),\n+\t\t.next = NEXT(item_eth, NEXT_ENTRY(COMMON_MAC_ADDR), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_eth, dst)),\n \t},\n \t[ITEM_ETH_SRC] = {\n \t\t.name = \"src\",\n \t\t.help = \"source MAC\",\n-\t\t.next = NEXT(item_eth, NEXT_ENTRY(MAC_ADDR), item_param),\n+\t\t.next = NEXT(item_eth, NEXT_ENTRY(COMMON_MAC_ADDR), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_eth, src)),\n \t},\n \t[ITEM_ETH_TYPE] = {\n \t\t.name = \"type\",\n \t\t.help = \"EtherType\",\n-\t\t.next = NEXT(item_eth, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_eth, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_eth, type)),\n \t},\n \t[ITEM_ETH_HAS_VLAN] = {\n \t\t.name = \"has_vlan\",\n \t\t.help = \"packet header contains VLAN\",\n-\t\t.next = NEXT(item_eth, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_eth, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_eth,\n \t\t\t\t\t   has_vlan, 1)),\n \t},\n@@ -2506,41 +2506,41 @@ static const struct token token_list[] = {\n \t[ITEM_VLAN_TCI] = {\n \t\t.name = \"tci\",\n \t\t.help = \"tag control information\",\n-\t\t.next = NEXT(item_vlan, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_vlan, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vlan, tci)),\n \t},\n \t[ITEM_VLAN_PCP] = {\n \t\t.name = \"pcp\",\n \t\t.help = \"priority code point\",\n-\t\t.next = NEXT(item_vlan, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_vlan, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_vlan,\n \t\t\t\t\t\t  tci, \"\\xe0\\x00\")),\n \t},\n \t[ITEM_VLAN_DEI] = {\n \t\t.name = \"dei\",\n \t\t.help = \"drop eligible indicator\",\n-\t\t.next = NEXT(item_vlan, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_vlan, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_vlan,\n \t\t\t\t\t\t  tci, \"\\x10\\x00\")),\n \t},\n \t[ITEM_VLAN_VID] = {\n \t\t.name = \"vid\",\n \t\t.help = \"VLAN identifier\",\n-\t\t.next = NEXT(item_vlan, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_vlan, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_vlan,\n \t\t\t\t\t\t  tci, \"\\x0f\\xff\")),\n \t},\n \t[ITEM_VLAN_INNER_TYPE] = {\n \t\t.name = \"inner_type\",\n \t\t.help = \"inner EtherType\",\n-\t\t.next = NEXT(item_vlan, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_vlan, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vlan,\n \t\t\t\t\t     inner_type)),\n \t},\n \t[ITEM_VLAN_HAS_MORE_VLAN] = {\n \t\t.name = \"has_more_vlan\",\n \t\t.help = \"packet header contains another VLAN\",\n-\t\t.next = NEXT(item_vlan, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_vlan, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_vlan,\n \t\t\t\t\t   has_more_vlan, 1)),\n \t},\n@@ -2554,49 +2554,49 @@ static const struct token token_list[] = {\n \t[ITEM_IPV4_TOS] = {\n \t\t.name = \"tos\",\n \t\t.help = \"type of service\",\n-\t\t.next = NEXT(item_ipv4, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_ipv4, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv4,\n \t\t\t\t\t     hdr.type_of_service)),\n \t},\n \t[ITEM_IPV4_ID] = {\n \t\t.name = \"packet_id\",\n \t\t.help = \"fragment packet id\",\n-\t\t.next = NEXT(item_ipv4, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_ipv4, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv4,\n \t\t\t\t\t     hdr.packet_id)),\n \t},\n \t[ITEM_IPV4_FRAGMENT_OFFSET] = {\n \t\t.name = \"fragment_offset\",\n \t\t.help = \"fragmentation flags and fragment offset\",\n-\t\t.next = NEXT(item_ipv4, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_ipv4, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv4,\n \t\t\t\t\t     hdr.fragment_offset)),\n \t},\n \t[ITEM_IPV4_TTL] = {\n \t\t.name = \"ttl\",\n \t\t.help = \"time to live\",\n-\t\t.next = NEXT(item_ipv4, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_ipv4, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv4,\n \t\t\t\t\t     hdr.time_to_live)),\n \t},\n \t[ITEM_IPV4_PROTO] = {\n \t\t.name = \"proto\",\n \t\t.help = \"next protocol ID\",\n-\t\t.next = NEXT(item_ipv4, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_ipv4, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv4,\n \t\t\t\t\t     hdr.next_proto_id)),\n \t},\n \t[ITEM_IPV4_SRC] = {\n \t\t.name = \"src\",\n \t\t.help = \"source address\",\n-\t\t.next = NEXT(item_ipv4, NEXT_ENTRY(IPV4_ADDR), item_param),\n+\t\t.next = NEXT(item_ipv4, NEXT_ENTRY(COMMON_IPV4_ADDR), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv4,\n \t\t\t\t\t     hdr.src_addr)),\n \t},\n \t[ITEM_IPV4_DST] = {\n \t\t.name = \"dst\",\n \t\t.help = \"destination address\",\n-\t\t.next = NEXT(item_ipv4, NEXT_ENTRY(IPV4_ADDR), item_param),\n+\t\t.next = NEXT(item_ipv4, NEXT_ENTRY(COMMON_IPV4_ADDR), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv4,\n \t\t\t\t\t     hdr.dst_addr)),\n \t},\n@@ -2610,7 +2610,7 @@ static const struct token token_list[] = {\n \t[ITEM_IPV6_TC] = {\n \t\t.name = \"tc\",\n \t\t.help = \"traffic class\",\n-\t\t.next = NEXT(item_ipv6, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_ipv6, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_ipv6,\n \t\t\t\t\t\t  hdr.vtc_flow,\n \t\t\t\t\t\t  \"\\x0f\\xf0\\x00\\x00\")),\n@@ -2618,7 +2618,7 @@ static const struct token token_list[] = {\n \t[ITEM_IPV6_FLOW] = {\n \t\t.name = \"flow\",\n \t\t.help = \"flow label\",\n-\t\t.next = NEXT(item_ipv6, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_ipv6, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_ipv6,\n \t\t\t\t\t\t  hdr.vtc_flow,\n \t\t\t\t\t\t  \"\\x00\\x0f\\xff\\xff\")),\n@@ -2626,35 +2626,35 @@ static const struct token token_list[] = {\n \t[ITEM_IPV6_PROTO] = {\n \t\t.name = \"proto\",\n \t\t.help = \"protocol (next header)\",\n-\t\t.next = NEXT(item_ipv6, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_ipv6, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv6,\n \t\t\t\t\t     hdr.proto)),\n \t},\n \t[ITEM_IPV6_HOP] = {\n \t\t.name = \"hop\",\n \t\t.help = \"hop limit\",\n-\t\t.next = NEXT(item_ipv6, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_ipv6, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv6,\n \t\t\t\t\t     hdr.hop_limits)),\n \t},\n \t[ITEM_IPV6_SRC] = {\n \t\t.name = \"src\",\n \t\t.help = \"source address\",\n-\t\t.next = NEXT(item_ipv6, NEXT_ENTRY(IPV6_ADDR), item_param),\n+\t\t.next = NEXT(item_ipv6, NEXT_ENTRY(COMMON_IPV6_ADDR), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv6,\n \t\t\t\t\t     hdr.src_addr)),\n \t},\n \t[ITEM_IPV6_DST] = {\n \t\t.name = \"dst\",\n \t\t.help = \"destination address\",\n-\t\t.next = NEXT(item_ipv6, NEXT_ENTRY(IPV6_ADDR), item_param),\n+\t\t.next = NEXT(item_ipv6, NEXT_ENTRY(COMMON_IPV6_ADDR), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv6,\n \t\t\t\t\t     hdr.dst_addr)),\n \t},\n \t[ITEM_IPV6_HAS_FRAG_EXT] = {\n \t\t.name = \"has_frag_ext\",\n \t\t.help = \"fragment packet attribute\",\n-\t\t.next = NEXT(item_ipv6, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_ipv6, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_ipv6,\n \t\t\t\t\t   has_frag_ext, 1)),\n \t},\n@@ -2668,28 +2668,28 @@ static const struct token token_list[] = {\n \t[ITEM_ICMP_TYPE] = {\n \t\t.name = \"type\",\n \t\t.help = \"ICMP packet type\",\n-\t\t.next = NEXT(item_icmp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_icmp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp,\n \t\t\t\t\t     hdr.icmp_type)),\n \t},\n \t[ITEM_ICMP_CODE] = {\n \t\t.name = \"code\",\n \t\t.help = \"ICMP packet code\",\n-\t\t.next = NEXT(item_icmp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_icmp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp,\n \t\t\t\t\t     hdr.icmp_code)),\n \t},\n \t[ITEM_ICMP_IDENT] = {\n \t\t.name = \"ident\",\n \t\t.help = \"ICMP packet identifier\",\n-\t\t.next = NEXT(item_icmp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_icmp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp,\n \t\t\t\t\t     hdr.icmp_ident)),\n \t},\n \t[ITEM_ICMP_SEQ] = {\n \t\t.name = \"seq\",\n \t\t.help = \"ICMP packet sequence number\",\n-\t\t.next = NEXT(item_icmp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_icmp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp,\n \t\t\t\t\t     hdr.icmp_seq_nb)),\n \t},\n@@ -2703,14 +2703,14 @@ static const struct token token_list[] = {\n \t[ITEM_UDP_SRC] = {\n \t\t.name = \"src\",\n \t\t.help = \"UDP source port\",\n-\t\t.next = NEXT(item_udp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_udp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_udp,\n \t\t\t\t\t     hdr.src_port)),\n \t},\n \t[ITEM_UDP_DST] = {\n \t\t.name = \"dst\",\n \t\t.help = \"UDP destination port\",\n-\t\t.next = NEXT(item_udp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_udp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_udp,\n \t\t\t\t\t     hdr.dst_port)),\n \t},\n@@ -2724,21 +2724,21 @@ static const struct token token_list[] = {\n \t[ITEM_TCP_SRC] = {\n \t\t.name = \"src\",\n \t\t.help = \"TCP source port\",\n-\t\t.next = NEXT(item_tcp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_tcp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_tcp,\n \t\t\t\t\t     hdr.src_port)),\n \t},\n \t[ITEM_TCP_DST] = {\n \t\t.name = \"dst\",\n \t\t.help = \"TCP destination port\",\n-\t\t.next = NEXT(item_tcp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_tcp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_tcp,\n \t\t\t\t\t     hdr.dst_port)),\n \t},\n \t[ITEM_TCP_FLAGS] = {\n \t\t.name = \"flags\",\n \t\t.help = \"TCP flags\",\n-\t\t.next = NEXT(item_tcp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_tcp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_tcp,\n \t\t\t\t\t     hdr.tcp_flags)),\n \t},\n@@ -2752,28 +2752,28 @@ static const struct token token_list[] = {\n \t[ITEM_SCTP_SRC] = {\n \t\t.name = \"src\",\n \t\t.help = \"SCTP source port\",\n-\t\t.next = NEXT(item_sctp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_sctp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_sctp,\n \t\t\t\t\t     hdr.src_port)),\n \t},\n \t[ITEM_SCTP_DST] = {\n \t\t.name = \"dst\",\n \t\t.help = \"SCTP destination port\",\n-\t\t.next = NEXT(item_sctp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_sctp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_sctp,\n \t\t\t\t\t     hdr.dst_port)),\n \t},\n \t[ITEM_SCTP_TAG] = {\n \t\t.name = \"tag\",\n \t\t.help = \"validation tag\",\n-\t\t.next = NEXT(item_sctp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_sctp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_sctp,\n \t\t\t\t\t     hdr.tag)),\n \t},\n \t[ITEM_SCTP_CKSUM] = {\n \t\t.name = \"cksum\",\n \t\t.help = \"checksum\",\n-\t\t.next = NEXT(item_sctp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_sctp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_sctp,\n \t\t\t\t\t     hdr.cksum)),\n \t},\n@@ -2787,7 +2787,7 @@ static const struct token token_list[] = {\n \t[ITEM_VXLAN_VNI] = {\n \t\t.name = \"vni\",\n \t\t.help = \"VXLAN identifier\",\n-\t\t.next = NEXT(item_vxlan, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan, vni)),\n \t},\n \t[ITEM_E_TAG] = {\n@@ -2800,7 +2800,7 @@ static const struct token token_list[] = {\n \t[ITEM_E_TAG_GRP_ECID_B] = {\n \t\t.name = \"grp_ecid_b\",\n \t\t.help = \"GRP and E-CID base\",\n-\t\t.next = NEXT(item_e_tag, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_e_tag, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_e_tag,\n \t\t\t\t\t\t  rsvd_grp_ecid_b,\n \t\t\t\t\t\t  \"\\x3f\\xff\")),\n@@ -2815,7 +2815,7 @@ static const struct token token_list[] = {\n \t[ITEM_NVGRE_TNI] = {\n \t\t.name = \"tni\",\n \t\t.help = \"virtual subnet ID\",\n-\t\t.next = NEXT(item_nvgre, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_nvgre, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_nvgre, tni)),\n \t},\n \t[ITEM_MPLS] = {\n@@ -2828,7 +2828,7 @@ static const struct token token_list[] = {\n \t[ITEM_MPLS_LABEL] = {\n \t\t.name = \"label\",\n \t\t.help = \"MPLS label\",\n-\t\t.next = NEXT(item_mpls, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_mpls, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_mpls,\n \t\t\t\t\t\t  label_tc_s,\n \t\t\t\t\t\t  \"\\xff\\xff\\xf0\")),\n@@ -2836,7 +2836,7 @@ static const struct token token_list[] = {\n \t[ITEM_MPLS_TC] = {\n \t\t.name = \"tc\",\n \t\t.help = \"MPLS Traffic Class\",\n-\t\t.next = NEXT(item_mpls, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_mpls, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_mpls,\n \t\t\t\t\t\t  label_tc_s,\n \t\t\t\t\t\t  \"\\x00\\x00\\x0e\")),\n@@ -2844,7 +2844,7 @@ static const struct token token_list[] = {\n \t[ITEM_MPLS_S] = {\n \t\t.name = \"s\",\n \t\t.help = \"MPLS Bottom-of-Stack\",\n-\t\t.next = NEXT(item_mpls, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_mpls, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_mpls,\n \t\t\t\t\t\t  label_tc_s,\n \t\t\t\t\t\t  \"\\x00\\x00\\x01\")),\n@@ -2859,7 +2859,7 @@ static const struct token token_list[] = {\n \t[ITEM_GRE_PROTO] = {\n \t\t.name = \"protocol\",\n \t\t.help = \"GRE protocol type\",\n-\t\t.next = NEXT(item_gre, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_gre, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_gre,\n \t\t\t\t\t     protocol)),\n \t},\n@@ -2869,14 +2869,14 @@ static const struct token token_list[] = {\n \t\t\t\"checksum (1b), undefined (1b), key bit (1b),\"\n \t\t\t\" sequence number (1b), reserved 0 (9b),\"\n \t\t\t\" version (3b)\",\n-\t\t.next = NEXT(item_gre, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_gre, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_gre,\n \t\t\t\t\t     c_rsvd0_ver)),\n \t},\n \t[ITEM_GRE_C_BIT] = {\n \t\t.name = \"c_bit\",\n \t\t.help = \"checksum bit (C)\",\n-\t\t.next = NEXT(item_gre, NEXT_ENTRY(BOOLEAN), item_param),\n+\t\t.next = NEXT(item_gre, NEXT_ENTRY(COMMON_BOOLEAN), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_gre,\n \t\t\t\t\t\t  c_rsvd0_ver,\n \t\t\t\t\t\t  \"\\x80\\x00\\x00\\x00\")),\n@@ -2884,7 +2884,7 @@ static const struct token token_list[] = {\n \t[ITEM_GRE_S_BIT] = {\n \t\t.name = \"s_bit\",\n \t\t.help = \"sequence number bit (S)\",\n-\t\t.next = NEXT(item_gre, NEXT_ENTRY(BOOLEAN), item_param),\n+\t\t.next = NEXT(item_gre, NEXT_ENTRY(COMMON_BOOLEAN), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_gre,\n \t\t\t\t\t\t  c_rsvd0_ver,\n \t\t\t\t\t\t  \"\\x10\\x00\\x00\\x00\")),\n@@ -2892,7 +2892,7 @@ static const struct token token_list[] = {\n \t[ITEM_GRE_K_BIT] = {\n \t\t.name = \"k_bit\",\n \t\t.help = \"key bit (K)\",\n-\t\t.next = NEXT(item_gre, NEXT_ENTRY(BOOLEAN), item_param),\n+\t\t.next = NEXT(item_gre, NEXT_ENTRY(COMMON_BOOLEAN), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_gre,\n \t\t\t\t\t\t  c_rsvd0_ver,\n \t\t\t\t\t\t  \"\\x20\\x00\\x00\\x00\")),\n@@ -2908,7 +2908,7 @@ static const struct token token_list[] = {\n \t[ITEM_FUZZY_THRESH] = {\n \t\t.name = \"thresh\",\n \t\t.help = \"match accuracy threshold\",\n-\t\t.next = NEXT(item_fuzzy, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_fuzzy, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_fuzzy,\n \t\t\t\t\tthresh)),\n \t},\n@@ -2922,20 +2922,20 @@ static const struct token token_list[] = {\n \t[ITEM_GTP_FLAGS] = {\n \t\t.name = \"v_pt_rsv_flags\",\n \t\t.help = \"GTP flags\",\n-\t\t.next = NEXT(item_gtp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_gtp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_gtp,\n \t\t\t\t\tv_pt_rsv_flags)),\n \t},\n \t[ITEM_GTP_MSG_TYPE] = {\n \t\t.name = \"msg_type\",\n \t\t.help = \"GTP message type\",\n-\t\t.next = NEXT(item_gtp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_gtp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_gtp, msg_type)),\n \t},\n \t[ITEM_GTP_TEID] = {\n \t\t.name = \"teid\",\n \t\t.help = \"tunnel endpoint identifier\",\n-\t\t.next = NEXT(item_gtp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_gtp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_gtp, teid)),\n \t},\n \t[ITEM_GTPC] = {\n@@ -2962,20 +2962,20 @@ static const struct token token_list[] = {\n \t[ITEM_GENEVE_VNI] = {\n \t\t.name = \"vni\",\n \t\t.help = \"virtual network identifier\",\n-\t\t.next = NEXT(item_geneve, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_geneve, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_geneve, vni)),\n \t},\n \t[ITEM_GENEVE_PROTO] = {\n \t\t.name = \"protocol\",\n \t\t.help = \"GENEVE protocol type\",\n-\t\t.next = NEXT(item_geneve, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_geneve, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_geneve,\n \t\t\t\t\t     protocol)),\n \t},\n \t[ITEM_GENEVE_OPTLEN] = {\n \t\t.name = \"optlen\",\n \t\t.help = \"GENEVE options length in dwords\",\n-\t\t.next = NEXT(item_geneve, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_geneve, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_geneve,\n \t\t\t\t\t\t  ver_opt_len_o_c_rsvd0,\n \t\t\t\t\t\t  \"\\x3f\\x00\")),\n@@ -2991,7 +2991,7 @@ static const struct token token_list[] = {\n \t[ITEM_VXLAN_GPE_VNI] = {\n \t\t.name = \"vni\",\n \t\t.help = \"VXLAN-GPE identifier\",\n-\t\t.next = NEXT(item_vxlan_gpe, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_vxlan_gpe, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan_gpe,\n \t\t\t\t\t     vni)),\n \t},\n@@ -3006,7 +3006,7 @@ static const struct token token_list[] = {\n \t[ITEM_ARP_ETH_IPV4_SHA] = {\n \t\t.name = \"sha\",\n \t\t.help = \"sender hardware address\",\n-\t\t.next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(MAC_ADDR),\n+\t\t.next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(COMMON_MAC_ADDR),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_arp_eth_ipv4,\n \t\t\t\t\t     sha)),\n@@ -3014,7 +3014,7 @@ static const struct token token_list[] = {\n \t[ITEM_ARP_ETH_IPV4_SPA] = {\n \t\t.name = \"spa\",\n \t\t.help = \"sender IPv4 address\",\n-\t\t.next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(IPV4_ADDR),\n+\t\t.next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(COMMON_IPV4_ADDR),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_arp_eth_ipv4,\n \t\t\t\t\t     spa)),\n@@ -3022,7 +3022,7 @@ static const struct token token_list[] = {\n \t[ITEM_ARP_ETH_IPV4_THA] = {\n \t\t.name = \"tha\",\n \t\t.help = \"target hardware address\",\n-\t\t.next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(MAC_ADDR),\n+\t\t.next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(COMMON_MAC_ADDR),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_arp_eth_ipv4,\n \t\t\t\t\t     tha)),\n@@ -3030,7 +3030,7 @@ static const struct token token_list[] = {\n \t[ITEM_ARP_ETH_IPV4_TPA] = {\n \t\t.name = \"tpa\",\n \t\t.help = \"target IPv4 address\",\n-\t\t.next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(IPV4_ADDR),\n+\t\t.next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(COMMON_IPV4_ADDR),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_arp_eth_ipv4,\n \t\t\t\t\t     tpa)),\n@@ -3046,7 +3046,7 @@ static const struct token token_list[] = {\n \t[ITEM_IPV6_EXT_NEXT_HDR] = {\n \t\t.name = \"next_hdr\",\n \t\t.help = \"next header\",\n-\t\t.next = NEXT(item_ipv6_ext, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_ipv6_ext, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv6_ext,\n \t\t\t\t\t     next_hdr)),\n \t},\n@@ -3061,7 +3061,7 @@ static const struct token token_list[] = {\n \t[ITEM_IPV6_FRAG_EXT_NEXT_HDR] = {\n \t\t.name = \"next_hdr\",\n \t\t.help = \"next header\",\n-\t\t.next = NEXT(item_ipv6_frag_ext, NEXT_ENTRY(UNSIGNED),\n+\t\t.next = NEXT(item_ipv6_frag_ext, NEXT_ENTRY(COMMON_UNSIGNED),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_ipv6_frag_ext,\n \t\t\t\t\thdr.next_header)),\n@@ -3069,7 +3069,7 @@ static const struct token token_list[] = {\n \t[ITEM_IPV6_FRAG_EXT_FRAG_DATA] = {\n \t\t.name = \"frag_data\",\n \t\t.help = \"fragment flags and offset\",\n-\t\t.next = NEXT(item_ipv6_frag_ext, NEXT_ENTRY(UNSIGNED),\n+\t\t.next = NEXT(item_ipv6_frag_ext, NEXT_ENTRY(COMMON_UNSIGNED),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv6_frag_ext,\n \t\t\t\t\t     hdr.frag_data)),\n@@ -3077,7 +3077,7 @@ static const struct token token_list[] = {\n \t[ITEM_IPV6_FRAG_EXT_ID] = {\n \t\t.name = \"packet_id\",\n \t\t.help = \"fragment packet id\",\n-\t\t.next = NEXT(item_ipv6_frag_ext, NEXT_ENTRY(UNSIGNED),\n+\t\t.next = NEXT(item_ipv6_frag_ext, NEXT_ENTRY(COMMON_UNSIGNED),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv6_frag_ext,\n \t\t\t\t\t     hdr.id)),\n@@ -3092,14 +3092,14 @@ static const struct token token_list[] = {\n \t[ITEM_ICMP6_TYPE] = {\n \t\t.name = \"type\",\n \t\t.help = \"ICMPv6 type\",\n-\t\t.next = NEXT(item_icmp6, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_icmp6, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp6,\n \t\t\t\t\t     type)),\n \t},\n \t[ITEM_ICMP6_CODE] = {\n \t\t.name = \"code\",\n \t\t.help = \"ICMPv6 code\",\n-\t\t.next = NEXT(item_icmp6, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_icmp6, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp6,\n \t\t\t\t\t     code)),\n \t},\n@@ -3114,7 +3114,7 @@ static const struct token token_list[] = {\n \t[ITEM_ICMP6_ND_NS_TARGET_ADDR] = {\n \t\t.name = \"target_addr\",\n \t\t.help = \"target address\",\n-\t\t.next = NEXT(item_icmp6_nd_ns, NEXT_ENTRY(IPV6_ADDR),\n+\t\t.next = NEXT(item_icmp6_nd_ns, NEXT_ENTRY(COMMON_IPV6_ADDR),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp6_nd_ns,\n \t\t\t\t\t     target_addr)),\n@@ -3130,7 +3130,7 @@ static const struct token token_list[] = {\n \t[ITEM_ICMP6_ND_NA_TARGET_ADDR] = {\n \t\t.name = \"target_addr\",\n \t\t.help = \"target address\",\n-\t\t.next = NEXT(item_icmp6_nd_na, NEXT_ENTRY(IPV6_ADDR),\n+\t\t.next = NEXT(item_icmp6_nd_na, NEXT_ENTRY(COMMON_IPV6_ADDR),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp6_nd_na,\n \t\t\t\t\t     target_addr)),\n@@ -3147,7 +3147,7 @@ static const struct token token_list[] = {\n \t[ITEM_ICMP6_ND_OPT_TYPE] = {\n \t\t.name = \"type\",\n \t\t.help = \"ND option type\",\n-\t\t.next = NEXT(item_icmp6_nd_opt, NEXT_ENTRY(UNSIGNED),\n+\t\t.next = NEXT(item_icmp6_nd_opt, NEXT_ENTRY(COMMON_UNSIGNED),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp6_nd_opt,\n \t\t\t\t\t     type)),\n@@ -3165,7 +3165,7 @@ static const struct token token_list[] = {\n \t[ITEM_ICMP6_ND_OPT_SLA_ETH_SLA] = {\n \t\t.name = \"sla\",\n \t\t.help = \"source Ethernet LLA\",\n-\t\t.next = NEXT(item_icmp6_nd_opt_sla_eth, NEXT_ENTRY(MAC_ADDR),\n+\t\t.next = NEXT(item_icmp6_nd_opt_sla_eth, NEXT_ENTRY(COMMON_MAC_ADDR),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t     (struct rte_flow_item_icmp6_nd_opt_sla_eth, sla)),\n@@ -3183,7 +3183,7 @@ static const struct token token_list[] = {\n \t[ITEM_ICMP6_ND_OPT_TLA_ETH_TLA] = {\n \t\t.name = \"tla\",\n \t\t.help = \"target Ethernet LLA\",\n-\t\t.next = NEXT(item_icmp6_nd_opt_tla_eth, NEXT_ENTRY(MAC_ADDR),\n+\t\t.next = NEXT(item_icmp6_nd_opt_tla_eth, NEXT_ENTRY(COMMON_MAC_ADDR),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t     (struct rte_flow_item_icmp6_nd_opt_tla_eth, tla)),\n@@ -3198,7 +3198,7 @@ static const struct token token_list[] = {\n \t[ITEM_META_DATA] = {\n \t\t.name = \"data\",\n \t\t.help = \"metadata value\",\n-\t\t.next = NEXT(item_meta, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_meta, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_MASK(struct rte_flow_item_meta,\n \t\t\t\t\t     data, \"\\xff\\xff\\xff\\xff\")),\n \t},\n@@ -3212,7 +3212,7 @@ static const struct token token_list[] = {\n \t[ITEM_GRE_KEY_VALUE] = {\n \t\t.name = \"value\",\n \t\t.help = \"key value\",\n-\t\t.next = NEXT(item_gre_key, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_gre_key, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARG_ENTRY_HTON(rte_be32_t)),\n \t},\n \t[ITEM_GTP_PSC] = {\n@@ -3226,14 +3226,14 @@ static const struct token token_list[] = {\n \t[ITEM_GTP_PSC_QFI] = {\n \t\t.name = \"qfi\",\n \t\t.help = \"QoS flow identifier\",\n-\t\t.next = NEXT(item_gtp_psc, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_gtp_psc, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_gtp_psc,\n \t\t\t\t\tqfi)),\n \t},\n \t[ITEM_GTP_PSC_PDU_T] = {\n \t\t.name = \"pdu_t\",\n \t\t.help = \"PDU type\",\n-\t\t.next = NEXT(item_gtp_psc, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_gtp_psc, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_gtp_psc,\n \t\t\t\t\tpdu_type)),\n \t},\n@@ -3254,7 +3254,7 @@ static const struct token token_list[] = {\n \t[ITEM_PPPOE_SEID] = {\n \t\t.name = \"seid\",\n \t\t.help = \"session identifier\",\n-\t\t.next = NEXT(item_pppoes, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_pppoes, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_pppoe,\n \t\t\t\t\tsession_id)),\n \t},\n@@ -3263,7 +3263,7 @@ static const struct token token_list[] = {\n \t\t.help = \"match PPPoE session protocol identifier\",\n \t\t.priv = PRIV_ITEM(PPPOE_PROTO_ID,\n \t\t\t\tsizeof(struct rte_flow_item_pppoe_proto_id)),\n-\t\t.next = NEXT(item_pppoe_proto_id, NEXT_ENTRY(UNSIGNED),\n+\t\t.next = NEXT(item_pppoe_proto_id, NEXT_ENTRY(COMMON_UNSIGNED),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t     (struct rte_flow_item_pppoe_proto_id, proto_id)),\n@@ -3280,14 +3280,14 @@ static const struct token token_list[] = {\n \t[ITEM_HIGIG2_CLASSIFICATION] = {\n \t\t.name = \"classification\",\n \t\t.help = \"matches classification of higig2 header\",\n-\t\t.next = NEXT(item_higig2, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_higig2, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_higig2_hdr,\n \t\t\t\t\thdr.ppt1.classification)),\n \t},\n \t[ITEM_HIGIG2_VID] = {\n \t\t.name = \"vid\",\n \t\t.help = \"matches vid of higig2 header\",\n-\t\t.next = NEXT(item_higig2, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_higig2, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_higig2_hdr,\n \t\t\t\t\thdr.ppt1.vid)),\n \t},\n@@ -3301,13 +3301,13 @@ static const struct token token_list[] = {\n \t[ITEM_TAG_DATA] = {\n \t\t.name = \"data\",\n \t\t.help = \"tag value to match\",\n-\t\t.next = NEXT(item_tag, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_tag, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_tag, data)),\n \t},\n \t[ITEM_TAG_INDEX] = {\n \t\t.name = \"index\",\n \t\t.help = \"index of tag array to match\",\n-\t\t.next = NEXT(item_tag, NEXT_ENTRY(UNSIGNED),\n+\t\t.next = NEXT(item_tag, NEXT_ENTRY(COMMON_UNSIGNED),\n \t\t\t     NEXT_ENTRY(ITEM_PARAM_IS)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_tag, index)),\n \t},\n@@ -3322,7 +3322,7 @@ static const struct token token_list[] = {\n \t[ITEM_L2TPV3OIP_SESSION_ID] = {\n \t\t.name = \"session_id\",\n \t\t.help = \"session identifier\",\n-\t\t.next = NEXT(item_l2tpv3oip, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_l2tpv3oip, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_l2tpv3oip,\n \t\t\t\t\t     session_id)),\n \t},\n@@ -3336,7 +3336,7 @@ static const struct token token_list[] = {\n \t[ITEM_ESP_SPI] = {\n \t\t.name = \"spi\",\n \t\t.help = \"security policy index\",\n-\t\t.next = NEXT(item_esp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_esp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_esp,\n \t\t\t\thdr.spi)),\n \t},\n@@ -3350,7 +3350,7 @@ static const struct token token_list[] = {\n \t[ITEM_AH_SPI] = {\n \t\t.name = \"spi\",\n \t\t.help = \"security parameters index\",\n-\t\t.next = NEXT(item_ah, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_ah, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ah, spi)),\n \t},\n \t[ITEM_PFCP] = {\n@@ -3363,14 +3363,14 @@ static const struct token token_list[] = {\n \t[ITEM_PFCP_S_FIELD] = {\n \t\t.name = \"s_field\",\n \t\t.help = \"S field\",\n-\t\t.next = NEXT(item_pfcp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_pfcp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_pfcp,\n \t\t\t\ts_field)),\n \t},\n \t[ITEM_PFCP_SEID] = {\n \t\t.name = \"seid\",\n \t\t.help = \"session endpoint identifier\",\n-\t\t.next = NEXT(item_pfcp, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_pfcp, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_pfcp, seid)),\n \t},\n \t[ITEM_ECPRI] = {\n@@ -3403,7 +3403,7 @@ static const struct token token_list[] = {\n \t\t.help = \"Physical Channel ID\",\n \t\t.next = NEXT(NEXT_ENTRY(ITEM_ECPRI_MSG_IQ_DATA_PCID,\n \t\t\t\tITEM_ECPRI_COMMON, ITEM_NEXT),\n-\t\t\t\tNEXT_ENTRY(UNSIGNED), item_param),\n+\t\t\t\tNEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ecpri,\n \t\t\t\thdr.type0.pc_id)),\n \t},\n@@ -3419,7 +3419,7 @@ static const struct token token_list[] = {\n \t\t.help = \"Real-Time Control Data ID\",\n \t\t.next = NEXT(NEXT_ENTRY(ITEM_ECPRI_MSG_RTC_CTRL_RTCID,\n \t\t\t\tITEM_ECPRI_COMMON, ITEM_NEXT),\n-\t\t\t\tNEXT_ENTRY(UNSIGNED), item_param),\n+\t\t\t\tNEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ecpri,\n \t\t\t\thdr.type2.rtc_id)),\n \t},\n@@ -3435,7 +3435,7 @@ static const struct token token_list[] = {\n \t\t.help = \"Measurement ID\",\n \t\t.next = NEXT(NEXT_ENTRY(ITEM_ECPRI_MSG_DLY_MSR_MSRID,\n \t\t\t\tITEM_ECPRI_COMMON, ITEM_NEXT),\n-\t\t\t\tNEXT_ENTRY(UNSIGNED), item_param),\n+\t\t\t\tNEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ecpri,\n \t\t\t\thdr.type5.msr_id)),\n \t},\n@@ -3451,21 +3451,21 @@ static const struct token token_list[] = {\n \t[ITEM_GENEVE_OPT_CLASS]\t= {\n \t\t.name = \"class\",\n \t\t.help = \"GENEVE option class\",\n-\t\t.next = NEXT(item_geneve_opt, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_geneve_opt, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_geneve_opt,\n \t\t\t\t\t     option_class)),\n \t},\n \t[ITEM_GENEVE_OPT_TYPE] = {\n \t\t.name = \"type\",\n \t\t.help = \"GENEVE option type\",\n-\t\t.next = NEXT(item_geneve_opt, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_geneve_opt, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_geneve_opt,\n \t\t\t\t\toption_type)),\n \t},\n \t[ITEM_GENEVE_OPT_LENGTH] = {\n \t\t.name = \"length\",\n \t\t.help = \"GENEVE option data length (in 32b words)\",\n-\t\t.next = NEXT(item_geneve_opt, NEXT_ENTRY(UNSIGNED), item_param),\n+\t\t.next = NEXT(item_geneve_opt, NEXT_ENTRY(COMMON_UNSIGNED), item_param),\n \t\t.args = ARGS(ARGS_ENTRY_BOUNDED(\n \t\t\t\tstruct rte_flow_item_geneve_opt, option_len,\n \t\t\t\t0, 31)),\n@@ -3473,7 +3473,7 @@ static const struct token token_list[] = {\n \t[ITEM_GENEVE_OPT_DATA] = {\n \t\t.name = \"data\",\n \t\t.help = \"GENEVE option data pattern\",\n-\t\t.next = NEXT(item_geneve_opt, NEXT_ENTRY(HEX), item_param),\n+\t\t.next = NEXT(item_geneve_opt, NEXT_ENTRY(COMMON_HEX), item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_geneve_opt, data),\n \t\t\t     ARGS_ENTRY_ARB(0, 0),\n \t\t\t     ARGS_ENTRY_ARB\n@@ -3491,21 +3491,21 @@ static const struct token token_list[] = {\n \t[ITEM_INTEGRITY_LEVEL] = {\n \t\t.name = \"level\",\n \t\t.help = \"integrity level\",\n-\t\t.next = NEXT(item_integrity_lv, NEXT_ENTRY(UNSIGNED),\n+\t\t.next = NEXT(item_integrity_lv, NEXT_ENTRY(COMMON_UNSIGNED),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_integrity, level)),\n \t},\n \t[ITEM_INTEGRITY_VALUE] = {\n \t\t.name = \"value\",\n \t\t.help = \"integrity value\",\n-\t\t.next = NEXT(item_integrity_lv, NEXT_ENTRY(UNSIGNED),\n+\t\t.next = NEXT(item_integrity_lv, NEXT_ENTRY(COMMON_UNSIGNED),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_integrity, value)),\n \t},\n \t[ITEM_CONNTRACK] = {\n \t\t.name = \"conntrack\",\n \t\t.help = \"conntrack state\",\n-\t\t.next = NEXT(NEXT_ENTRY(ITEM_NEXT), NEXT_ENTRY(UNSIGNED),\n+\t\t.next = NEXT(NEXT_ENTRY(ITEM_NEXT), NEXT_ENTRY(COMMON_UNSIGNED),\n \t\t\t     item_param),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_conntrack, flags)),\n \t},\n@@ -3551,7 +3551,7 @@ static const struct token token_list[] = {\n \t[ACTION_JUMP_GROUP] = {\n \t\t.name = \"group\",\n \t\t.help = \"group to redirect traffic to\",\n-\t\t.next = NEXT(action_jump, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_jump, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_jump, group)),\n \t\t.call = parse_vc_conf,\n \t},\n@@ -3565,7 +3565,7 @@ static const struct token token_list[] = {\n \t[ACTION_MARK_ID] = {\n \t\t.name = \"id\",\n \t\t.help = \"32 bit value to return with packets\",\n-\t\t.next = NEXT(action_mark, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_mark, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_mark, id)),\n \t\t.call = parse_vc_conf,\n \t},\n@@ -3587,7 +3587,7 @@ static const struct token token_list[] = {\n \t[ACTION_QUEUE_INDEX] = {\n \t\t.name = \"index\",\n \t\t.help = \"queue index to use\",\n-\t\t.next = NEXT(action_queue, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_queue, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_queue, index)),\n \t\t.call = parse_vc_conf,\n \t},\n@@ -3609,14 +3609,14 @@ static const struct token token_list[] = {\n \t[ACTION_COUNT_ID] = {\n \t\t.name = \"identifier\",\n \t\t.help = \"counter identifier to use\",\n-\t\t.next = NEXT(action_count, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_count, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_count, id)),\n \t\t.call = parse_vc_conf,\n \t},\n \t[ACTION_COUNT_SHARED] = {\n \t\t.name = \"shared\",\n \t\t.help = \"shared counter\",\n-\t\t.next = NEXT(action_count, NEXT_ENTRY(BOOLEAN)),\n+\t\t.next = NEXT(action_count, NEXT_ENTRY(COMMON_BOOLEAN)),\n \t\t.args = ARGS(ARGS_ENTRY_BF(struct rte_flow_action_count,\n \t\t\t\t\t   shared, 1)),\n \t\t.call = parse_vc_conf,\n@@ -3660,7 +3660,7 @@ static const struct token token_list[] = {\n \t[ACTION_RSS_LEVEL] = {\n \t\t.name = \"level\",\n \t\t.help = \"encapsulation level for \\\"types\\\"\",\n-\t\t.next = NEXT(action_rss, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_rss, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY_ARB\n \t\t\t     (offsetof(struct action_rss_data, conf) +\n \t\t\t      offsetof(struct rte_flow_action_rss, level),\n@@ -3681,7 +3681,7 @@ static const struct token token_list[] = {\n \t[ACTION_RSS_KEY] = {\n \t\t.name = \"key\",\n \t\t.help = \"RSS hash key\",\n-\t\t.next = NEXT(action_rss, NEXT_ENTRY(HEX)),\n+\t\t.next = NEXT(action_rss, NEXT_ENTRY(COMMON_HEX)),\n \t\t.args = ARGS(ARGS_ENTRY_ARB\n \t\t\t     (offsetof(struct action_rss_data, conf) +\n \t\t\t      offsetof(struct rte_flow_action_rss, key),\n@@ -3696,7 +3696,7 @@ static const struct token token_list[] = {\n \t[ACTION_RSS_KEY_LEN] = {\n \t\t.name = \"key_len\",\n \t\t.help = \"RSS hash key length in bytes\",\n-\t\t.next = NEXT(action_rss, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_rss, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY_ARB_BOUNDED\n \t\t\t     (offsetof(struct action_rss_data, conf) +\n \t\t\t      offsetof(struct rte_flow_action_rss, key_len),\n@@ -3734,7 +3734,7 @@ static const struct token token_list[] = {\n \t[ACTION_VF_ORIGINAL] = {\n \t\t.name = \"original\",\n \t\t.help = \"use original VF ID if possible\",\n-\t\t.next = NEXT(action_vf, NEXT_ENTRY(BOOLEAN)),\n+\t\t.next = NEXT(action_vf, NEXT_ENTRY(COMMON_BOOLEAN)),\n \t\t.args = ARGS(ARGS_ENTRY_BF(struct rte_flow_action_vf,\n \t\t\t\t\t   original, 1)),\n \t\t.call = parse_vc_conf,\n@@ -3742,7 +3742,7 @@ static const struct token token_list[] = {\n \t[ACTION_VF_ID] = {\n \t\t.name = \"id\",\n \t\t.help = \"VF ID\",\n-\t\t.next = NEXT(action_vf, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_vf, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_vf, id)),\n \t\t.call = parse_vc_conf,\n \t},\n@@ -3757,7 +3757,7 @@ static const struct token token_list[] = {\n \t[ACTION_PHY_PORT_ORIGINAL] = {\n \t\t.name = \"original\",\n \t\t.help = \"use original port index if possible\",\n-\t\t.next = NEXT(action_phy_port, NEXT_ENTRY(BOOLEAN)),\n+\t\t.next = NEXT(action_phy_port, NEXT_ENTRY(COMMON_BOOLEAN)),\n \t\t.args = ARGS(ARGS_ENTRY_BF(struct rte_flow_action_phy_port,\n \t\t\t\t\t   original, 1)),\n \t\t.call = parse_vc_conf,\n@@ -3765,7 +3765,7 @@ static const struct token token_list[] = {\n \t[ACTION_PHY_PORT_INDEX] = {\n \t\t.name = \"index\",\n \t\t.help = \"physical port index\",\n-\t\t.next = NEXT(action_phy_port, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_phy_port, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_phy_port,\n \t\t\t\t\tindex)),\n \t\t.call = parse_vc_conf,\n@@ -3781,7 +3781,7 @@ static const struct token token_list[] = {\n \t[ACTION_PORT_ID_ORIGINAL] = {\n \t\t.name = \"original\",\n \t\t.help = \"use original DPDK port ID if possible\",\n-\t\t.next = NEXT(action_port_id, NEXT_ENTRY(BOOLEAN)),\n+\t\t.next = NEXT(action_port_id, NEXT_ENTRY(COMMON_BOOLEAN)),\n \t\t.args = ARGS(ARGS_ENTRY_BF(struct rte_flow_action_port_id,\n \t\t\t\t\t   original, 1)),\n \t\t.call = parse_vc_conf,\n@@ -3789,7 +3789,7 @@ static const struct token token_list[] = {\n \t[ACTION_PORT_ID_ID] = {\n \t\t.name = \"id\",\n \t\t.help = \"DPDK port ID\",\n-\t\t.next = NEXT(action_port_id, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_port_id, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_port_id, id)),\n \t\t.call = parse_vc_conf,\n \t},\n@@ -3804,7 +3804,7 @@ static const struct token token_list[] = {\n \t[ACTION_METER_ID] = {\n \t\t.name = \"mtr_id\",\n \t\t.help = \"meter id to use\",\n-\t\t.next = NEXT(action_meter, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_meter, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_meter, mtr_id)),\n \t\t.call = parse_vc_conf,\n \t},\n@@ -3820,7 +3820,7 @@ static const struct token token_list[] = {\n \t[ACTION_OF_SET_MPLS_TTL_MPLS_TTL] = {\n \t\t.name = \"mpls_ttl\",\n \t\t.help = \"MPLS TTL\",\n-\t\t.next = NEXT(action_of_set_mpls_ttl, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_of_set_mpls_ttl, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_of_set_mpls_ttl,\n \t\t\t\t\tmpls_ttl)),\n \t\t.call = parse_vc_conf,\n@@ -3844,7 +3844,7 @@ static const struct token token_list[] = {\n \t[ACTION_OF_SET_NW_TTL_NW_TTL] = {\n \t\t.name = \"nw_ttl\",\n \t\t.help = \"IP TTL\",\n-\t\t.next = NEXT(action_of_set_nw_ttl, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_of_set_nw_ttl, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_of_set_nw_ttl,\n \t\t\t\t\tnw_ttl)),\n \t\t.call = parse_vc_conf,\n@@ -3889,7 +3889,7 @@ static const struct token token_list[] = {\n \t[ACTION_OF_PUSH_VLAN_ETHERTYPE] = {\n \t\t.name = \"ethertype\",\n \t\t.help = \"EtherType\",\n-\t\t.next = NEXT(action_of_push_vlan, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_of_push_vlan, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t     (struct rte_flow_action_of_push_vlan,\n \t\t\t      ethertype)),\n@@ -3907,7 +3907,7 @@ static const struct token token_list[] = {\n \t[ACTION_OF_SET_VLAN_VID_VLAN_VID] = {\n \t\t.name = \"vlan_vid\",\n \t\t.help = \"VLAN id\",\n-\t\t.next = NEXT(action_of_set_vlan_vid, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_of_set_vlan_vid, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t     (struct rte_flow_action_of_set_vlan_vid,\n \t\t\t      vlan_vid)),\n@@ -3925,7 +3925,7 @@ static const struct token token_list[] = {\n \t[ACTION_OF_SET_VLAN_PCP_VLAN_PCP] = {\n \t\t.name = \"vlan_pcp\",\n \t\t.help = \"VLAN priority\",\n-\t\t.next = NEXT(action_of_set_vlan_pcp, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_of_set_vlan_pcp, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t     (struct rte_flow_action_of_set_vlan_pcp,\n \t\t\t      vlan_pcp)),\n@@ -3942,7 +3942,7 @@ static const struct token token_list[] = {\n \t[ACTION_OF_POP_MPLS_ETHERTYPE] = {\n \t\t.name = \"ethertype\",\n \t\t.help = \"EtherType\",\n-\t\t.next = NEXT(action_of_pop_mpls, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_of_pop_mpls, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t     (struct rte_flow_action_of_pop_mpls,\n \t\t\t      ethertype)),\n@@ -3960,7 +3960,7 @@ static const struct token token_list[] = {\n \t[ACTION_OF_PUSH_MPLS_ETHERTYPE] = {\n \t\t.name = \"ethertype\",\n \t\t.help = \"EtherType\",\n-\t\t.next = NEXT(action_of_push_mpls, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_of_push_mpls, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t     (struct rte_flow_action_of_push_mpls,\n \t\t\t      ethertype)),\n@@ -4068,7 +4068,7 @@ static const struct token token_list[] = {\n \t[ACTION_SET_IPV4_SRC_IPV4_SRC] = {\n \t\t.name = \"ipv4_addr\",\n \t\t.help = \"new IPv4 source address to set\",\n-\t\t.next = NEXT(action_set_ipv4_src, NEXT_ENTRY(IPV4_ADDR)),\n+\t\t.next = NEXT(action_set_ipv4_src, NEXT_ENTRY(COMMON_IPV4_ADDR)),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t(struct rte_flow_action_set_ipv4, ipv4_addr)),\n \t\t.call = parse_vc_conf,\n@@ -4085,7 +4085,7 @@ static const struct token token_list[] = {\n \t[ACTION_SET_IPV4_DST_IPV4_DST] = {\n \t\t.name = \"ipv4_addr\",\n \t\t.help = \"new IPv4 destination address to set\",\n-\t\t.next = NEXT(action_set_ipv4_dst, NEXT_ENTRY(IPV4_ADDR)),\n+\t\t.next = NEXT(action_set_ipv4_dst, NEXT_ENTRY(COMMON_IPV4_ADDR)),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t(struct rte_flow_action_set_ipv4, ipv4_addr)),\n \t\t.call = parse_vc_conf,\n@@ -4102,7 +4102,7 @@ static const struct token token_list[] = {\n \t[ACTION_SET_IPV6_SRC_IPV6_SRC] = {\n \t\t.name = \"ipv6_addr\",\n \t\t.help = \"new IPv6 source address to set\",\n-\t\t.next = NEXT(action_set_ipv6_src, NEXT_ENTRY(IPV6_ADDR)),\n+\t\t.next = NEXT(action_set_ipv6_src, NEXT_ENTRY(COMMON_IPV6_ADDR)),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t(struct rte_flow_action_set_ipv6, ipv6_addr)),\n \t\t.call = parse_vc_conf,\n@@ -4119,7 +4119,7 @@ static const struct token token_list[] = {\n \t[ACTION_SET_IPV6_DST_IPV6_DST] = {\n \t\t.name = \"ipv6_addr\",\n \t\t.help = \"new IPv6 destination address to set\",\n-\t\t.next = NEXT(action_set_ipv6_dst, NEXT_ENTRY(IPV6_ADDR)),\n+\t\t.next = NEXT(action_set_ipv6_dst, NEXT_ENTRY(COMMON_IPV6_ADDR)),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t(struct rte_flow_action_set_ipv6, ipv6_addr)),\n \t\t.call = parse_vc_conf,\n@@ -4136,7 +4136,7 @@ static const struct token token_list[] = {\n \t[ACTION_SET_TP_SRC_TP_SRC] = {\n \t\t.name = \"port\",\n \t\t.help = \"new source port number to set\",\n-\t\t.next = NEXT(action_set_tp_src, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_set_tp_src, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t     (struct rte_flow_action_set_tp, port)),\n \t\t.call = parse_vc_conf,\n@@ -4153,7 +4153,7 @@ static const struct token token_list[] = {\n \t[ACTION_SET_TP_DST_TP_DST] = {\n \t\t.name = \"port\",\n \t\t.help = \"new destination port number to set\",\n-\t\t.next = NEXT(action_set_tp_dst, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_set_tp_dst, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t     (struct rte_flow_action_set_tp, port)),\n \t\t.call = parse_vc_conf,\n@@ -4184,7 +4184,7 @@ static const struct token token_list[] = {\n \t[ACTION_SET_TTL_TTL] = {\n \t\t.name = \"ttl_value\",\n \t\t.help = \"new ttl value to set\",\n-\t\t.next = NEXT(action_set_ttl, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_set_ttl, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t     (struct rte_flow_action_set_ttl, ttl_value)),\n \t\t.call = parse_vc_conf,\n@@ -4200,7 +4200,7 @@ static const struct token token_list[] = {\n \t[ACTION_SET_MAC_SRC_MAC_SRC] = {\n \t\t.name = \"mac_addr\",\n \t\t.help = \"new source mac address\",\n-\t\t.next = NEXT(action_set_mac_src, NEXT_ENTRY(MAC_ADDR)),\n+\t\t.next = NEXT(action_set_mac_src, NEXT_ENTRY(COMMON_MAC_ADDR)),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t     (struct rte_flow_action_set_mac, mac_addr)),\n \t\t.call = parse_vc_conf,\n@@ -4216,7 +4216,7 @@ static const struct token token_list[] = {\n \t[ACTION_SET_MAC_DST_MAC_DST] = {\n \t\t.name = \"mac_addr\",\n \t\t.help = \"new destination mac address to set\",\n-\t\t.next = NEXT(action_set_mac_dst, NEXT_ENTRY(MAC_ADDR)),\n+\t\t.next = NEXT(action_set_mac_dst, NEXT_ENTRY(COMMON_MAC_ADDR)),\n \t\t.args = ARGS(ARGS_ENTRY_HTON\n \t\t\t     (struct rte_flow_action_set_mac, mac_addr)),\n \t\t.call = parse_vc_conf,\n@@ -4231,7 +4231,7 @@ static const struct token token_list[] = {\n \t[ACTION_INC_TCP_SEQ_VALUE] = {\n \t\t.name = \"value\",\n \t\t.help = \"the value to increase TCP sequence number by\",\n-\t\t.next = NEXT(action_inc_tcp_seq, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_inc_tcp_seq, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARG_ENTRY_HTON(rte_be32_t)),\n \t\t.call = parse_vc_conf,\n \t},\n@@ -4245,7 +4245,7 @@ static const struct token token_list[] = {\n \t[ACTION_DEC_TCP_SEQ_VALUE] = {\n \t\t.name = \"value\",\n \t\t.help = \"the value to decrease TCP sequence number by\",\n-\t\t.next = NEXT(action_dec_tcp_seq, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_dec_tcp_seq, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARG_ENTRY_HTON(rte_be32_t)),\n \t\t.call = parse_vc_conf,\n \t},\n@@ -4259,7 +4259,7 @@ static const struct token token_list[] = {\n \t[ACTION_INC_TCP_ACK_VALUE] = {\n \t\t.name = \"value\",\n \t\t.help = \"the value to increase TCP acknowledgment number by\",\n-\t\t.next = NEXT(action_inc_tcp_ack, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_inc_tcp_ack, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARG_ENTRY_HTON(rte_be32_t)),\n \t\t.call = parse_vc_conf,\n \t},\n@@ -4273,7 +4273,7 @@ static const struct token token_list[] = {\n \t[ACTION_DEC_TCP_ACK_VALUE] = {\n \t\t.name = \"value\",\n \t\t.help = \"the value to decrease TCP acknowledgment number by\",\n-\t\t.next = NEXT(action_dec_tcp_ack, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_dec_tcp_ack, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARG_ENTRY_HTON(rte_be32_t)),\n \t\t.call = parse_vc_conf,\n \t},\n@@ -4356,7 +4356,7 @@ static const struct token token_list[] = {\n \t[ACTION_MODIFY_FIELD_DST_LEVEL] = {\n \t\t.name = \"dst_level\",\n \t\t.help = \"destination field level\",\n-\t\t.next = NEXT(action_modify_field_dst, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_modify_field_dst, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_modify_field,\n \t\t\t\t\tdst.level)),\n \t\t.call = parse_vc_conf,\n@@ -4364,7 +4364,7 @@ static const struct token token_list[] = {\n \t[ACTION_MODIFY_FIELD_DST_OFFSET] = {\n \t\t.name = \"dst_offset\",\n \t\t.help = \"destination field bit offset\",\n-\t\t.next = NEXT(action_modify_field_dst, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_modify_field_dst, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_modify_field,\n \t\t\t\t\tdst.offset)),\n \t\t.call = parse_vc_conf,\n@@ -4385,7 +4385,7 @@ static const struct token token_list[] = {\n \t[ACTION_MODIFY_FIELD_SRC_LEVEL] = {\n \t\t.name = \"src_level\",\n \t\t.help = \"source field level\",\n-\t\t.next = NEXT(action_modify_field_src, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_modify_field_src, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_modify_field,\n \t\t\t\t\tsrc.level)),\n \t\t.call = parse_vc_conf,\n@@ -4393,7 +4393,7 @@ static const struct token token_list[] = {\n \t[ACTION_MODIFY_FIELD_SRC_OFFSET] = {\n \t\t.name = \"src_offset\",\n \t\t.help = \"source field bit offset\",\n-\t\t.next = NEXT(action_modify_field_src, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_modify_field_src, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_modify_field,\n \t\t\t\t\tsrc.offset)),\n \t\t.call = parse_vc_conf,\n@@ -4402,7 +4402,7 @@ static const struct token token_list[] = {\n \t\t.name = \"src_value\",\n \t\t.help = \"source immediate value\",\n \t\t.next = NEXT(NEXT_ENTRY(ACTION_MODIFY_FIELD_WIDTH),\n-\t\t\tNEXT_ENTRY(UNSIGNED)),\n+\t\t\tNEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_modify_field,\n \t\t\t\t\tsrc.value)),\n \t\t.call = parse_vc_conf,\n@@ -4411,7 +4411,7 @@ static const struct token token_list[] = {\n \t\t.name = \"width\",\n \t\t.help = \"number of bits to copy\",\n \t\t.next = NEXT(NEXT_ENTRY(ACTION_NEXT),\n-\t\t\tNEXT_ENTRY(UNSIGNED)),\n+\t\t\tNEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_modify_field,\n \t\t\t\t\twidth)),\n \t\t.call = parse_vc_conf,\n@@ -4451,7 +4451,7 @@ static const struct token token_list[] = {\n \t},\n \t[SET_RAW_INDEX] = {\n \t\t.name = \"{index}\",\n-\t\t.type = \"UNSIGNED\",\n+\t\t.type = \"COMMON_UNSIGNED\",\n \t\t.help = \"index of raw_encap/raw_decap data\",\n \t\t.next = NEXT(next_item),\n \t\t.call = parse_port,\n@@ -4484,14 +4484,14 @@ static const struct token token_list[] = {\n \t[ACTION_SET_TAG_INDEX] = {\n \t\t.name = \"index\",\n \t\t.help = \"index of tag array\",\n-\t\t.next = NEXT(action_set_tag, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_set_tag, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_action_set_tag, index)),\n \t\t.call = parse_vc_conf,\n \t},\n \t[ACTION_SET_TAG_DATA] = {\n \t\t.name = \"data\",\n \t\t.help = \"tag value\",\n-\t\t.next = NEXT(action_set_tag, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_set_tag, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY\n \t\t\t     (struct rte_flow_action_set_tag, data)),\n \t\t.call = parse_vc_conf,\n@@ -4499,7 +4499,7 @@ static const struct token token_list[] = {\n \t[ACTION_SET_TAG_MASK] = {\n \t\t.name = \"mask\",\n \t\t.help = \"mask for tag value\",\n-\t\t.next = NEXT(action_set_tag, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_set_tag, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY\n \t\t\t     (struct rte_flow_action_set_tag, mask)),\n \t\t.call = parse_vc_conf,\n@@ -4515,7 +4515,7 @@ static const struct token token_list[] = {\n \t[ACTION_SET_META_DATA] = {\n \t\t.name = \"data\",\n \t\t.help = \"metadata value\",\n-\t\t.next = NEXT(action_set_meta, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_set_meta, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY\n \t\t\t     (struct rte_flow_action_set_meta, data)),\n \t\t.call = parse_vc_conf,\n@@ -4523,7 +4523,7 @@ static const struct token token_list[] = {\n \t[ACTION_SET_META_MASK] = {\n \t\t.name = \"mask\",\n \t\t.help = \"mask for metadata value\",\n-\t\t.next = NEXT(action_set_meta, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_set_meta, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY\n \t\t\t     (struct rte_flow_action_set_meta, mask)),\n \t\t.call = parse_vc_conf,\n@@ -4539,7 +4539,7 @@ static const struct token token_list[] = {\n \t[ACTION_SET_IPV4_DSCP_VALUE] = {\n \t\t.name = \"dscp_value\",\n \t\t.help = \"new IPv4 DSCP value to set\",\n-\t\t.next = NEXT(action_set_ipv4_dscp, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_set_ipv4_dscp, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY\n \t\t\t     (struct rte_flow_action_set_dscp, dscp)),\n \t\t.call = parse_vc_conf,\n@@ -4555,7 +4555,7 @@ static const struct token token_list[] = {\n \t[ACTION_SET_IPV6_DSCP_VALUE] = {\n \t\t.name = \"dscp_value\",\n \t\t.help = \"new IPv6 DSCP value to set\",\n-\t\t.next = NEXT(action_set_ipv6_dscp, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_set_ipv6_dscp, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY\n \t\t\t     (struct rte_flow_action_set_dscp, dscp)),\n \t\t.call = parse_vc_conf,\n@@ -4573,7 +4573,7 @@ static const struct token token_list[] = {\n \t\t.help = \"flow age timeout value\",\n \t\t.args = ARGS(ARGS_ENTRY_BF(struct rte_flow_action_age,\n \t\t\t\t\t   timeout, 24)),\n-\t\t.next = NEXT(action_age, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_age, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.call = parse_vc_conf,\n \t},\n \t[ACTION_SAMPLE] = {\n@@ -4587,7 +4587,7 @@ static const struct token token_list[] = {\n \t[ACTION_SAMPLE_RATIO] = {\n \t\t.name = \"ratio\",\n \t\t.help = \"flow sample ratio value\",\n-\t\t.next = NEXT(action_sample, NEXT_ENTRY(UNSIGNED)),\n+\t\t.next = NEXT(action_sample, NEXT_ENTRY(COMMON_UNSIGNED)),\n \t\t.args = ARGS(ARGS_ENTRY_ARB\n \t\t\t     (offsetof(struct action_sample_data, conf) +\n \t\t\t      offsetof(struct rte_flow_action_sample, ratio),\n@@ -4601,7 +4601,7 @@ static const struct token token_list[] = {\n \t},\n \t[ACTION_SAMPLE_INDEX_VALUE] = {\n \t\t.name = \"{index}\",\n-\t\t.type = \"UNSIGNED\",\n+\t\t.type = \"COMMON_UNSIGNED\",\n \t\t.help = \"unsigned integer value\",\n \t\t.next = NEXT(NEXT_ENTRY(ACTION_NEXT)),\n \t\t.call = parse_vc_action_sample_index,\n@@ -4640,7 +4640,7 @@ static const struct token token_list[] = {\n \t\t.name = \"action_id\",\n \t\t.help = \"specify a indirect action id to destroy\",\n \t\t.next = NEXT(next_ia_destroy_attr,\n-\t\t\t     NEXT_ENTRY(INDIRECT_ACTION_ID)),\n+\t\t\t     NEXT_ENTRY(COMMON_INDIRECT_ACTION_ID)),\n \t\t.args = ARGS(ARGS_ENTRY_PTR(struct buffer,\n \t\t\t\t\t    args.ia_destroy.action_id)),\n \t\t.call = parse_ia_destroy,\n@@ -4650,7 +4650,7 @@ static const struct token token_list[] = {\n \t\t.name = \"action_id\",\n \t\t.help = \"specify a indirect action id to create\",\n \t\t.next = NEXT(next_ia_create_attr,\n-\t\t\t     NEXT_ENTRY(INDIRECT_ACTION_ID)),\n+\t\t\t     NEXT_ENTRY(COMMON_INDIRECT_ACTION_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, args.vc.attr.group)),\n \t},\n \t[ACTION_INDIRECT] = {\n@@ -4734,8 +4734,8 @@ static const struct token token_list[] = {\n \t\t.next = NEXT(NEXT_ENTRY(ACTION_POL_R),\n \t\t\t\tNEXT_ENTRY(ACTION_POL_Y),\n \t\t\t\tNEXT_ENTRY(ACTION_POL_G),\n-\t\t\t\tNEXT_ENTRY(POLICY_ID),\n-\t\t\t\tNEXT_ENTRY(PORT_ID)),\n+\t\t\t\tNEXT_ENTRY(COMMON_POLICY_ID),\n+\t\t\t\tNEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, args.policy.policy_id),\n \t\t\t\tARGS_ENTRY(struct buffer, port)),\n \t\t.call = parse_mp,\n@@ -5092,34 +5092,34 @@ parse_vc(struct context *ctx, const struct token *token,\n \tdefault:\n \t\tctx->object = &out->args.vc.attr;\n \t\tbreak;\n-\tcase TUNNEL_SET:\n-\tcase TUNNEL_MATCH:\n+\tcase VC_TUNNEL_SET:\n+\tcase VC_TUNNEL_MATCH:\n \t\tctx->object = &out->args.vc.tunnel_ops;\n \t\tbreak;\n \t}\n \tctx->objmask = NULL;\n \tswitch (ctx->curr) {\n-\tcase GROUP:\n-\tcase PRIORITY:\n+\tcase VC_GROUP:\n+\tcase VC_PRIORITY:\n \t\treturn len;\n-\tcase TUNNEL_SET:\n+\tcase VC_TUNNEL_SET:\n \t\tout->args.vc.tunnel_ops.enabled = 1;\n \t\tout->args.vc.tunnel_ops.actions = 1;\n \t\treturn len;\n-\tcase TUNNEL_MATCH:\n+\tcase VC_TUNNEL_MATCH:\n \t\tout->args.vc.tunnel_ops.enabled = 1;\n \t\tout->args.vc.tunnel_ops.items = 1;\n \t\treturn len;\n-\tcase INGRESS:\n+\tcase VC_INGRESS:\n \t\tout->args.vc.attr.ingress = 1;\n \t\treturn len;\n-\tcase EGRESS:\n+\tcase VC_EGRESS:\n \t\tout->args.vc.attr.egress = 1;\n \t\treturn len;\n-\tcase TRANSFER:\n+\tcase VC_TRANSFER:\n \t\tout->args.vc.attr.transfer = 1;\n \t\treturn len;\n-\tcase PATTERN:\n+\tcase ITEM_PATTERN:\n \t\tout->args.vc.pattern =\n \t\t\t(void *)RTE_ALIGN_CEIL((uintptr_t)(out + 1),\n \t\t\t\t\t       sizeof(double));\n@@ -5200,7 +5200,7 @@ parse_vc_spec(struct context *ctx, const struct token *token,\n \t\treturn -1;\n \t/* Parse parameter types. */\n \tswitch (ctx->curr) {\n-\t\tstatic const enum index prefix[] = NEXT_ENTRY(PREFIX);\n+\t\tstatic const enum index prefix[] = NEXT_ENTRY(COMMON_PREFIX);\n \n \tcase ITEM_PARAM_IS:\n \t\tindex = 0;\n",
    "prefixes": [
        "v13",
        "05/10"
    ]
}