get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 94786,
    "url": "https://patches.dpdk.org/api/patches/94786/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1624487698-31136-6-git-send-email-jizh@linux.microsoft.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<1624487698-31136-6-git-send-email-jizh@linux.microsoft.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1624487698-31136-6-git-send-email-jizh@linux.microsoft.com",
    "date": "2021-06-23T22:34:54",
    "name": "[v14,5/9] app/testpmd: resolve name collisions",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "70143e1deece48777f8a3dfa266afb972ea06da4",
    "submitter": {
        "id": 1934,
        "url": "https://patches.dpdk.org/api/people/1934/?format=api",
        "name": "Jie Zhou",
        "email": "jizh@linux.microsoft.com"
    },
    "delegate": {
        "id": 3961,
        "url": "https://patches.dpdk.org/api/users/3961/?format=api",
        "username": "arybchenko",
        "first_name": "Andrew",
        "last_name": "Rybchenko",
        "email": "andrew.rybchenko@oktetlabs.ru"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1624487698-31136-6-git-send-email-jizh@linux.microsoft.com/mbox/",
    "series": [
        {
            "id": 17465,
            "url": "https://patches.dpdk.org/api/series/17465/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=17465",
            "date": "2021-06-23T22:34:50",
            "name": "app/testpmd: enable testpmd on Windows",
            "version": 14,
            "mbox": "https://patches.dpdk.org/series/17465/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/94786/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/94786/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 E6A84A0C41;\n\tThu, 24 Jun 2021 00:36:05 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 2F45941190;\n\tThu, 24 Jun 2021 00:35:18 +0200 (CEST)",
            "from linux.microsoft.com (linux.microsoft.com [13.77.154.182])\n by mails.dpdk.org (Postfix) with ESMTP id C2CE640141;\n Thu, 24 Jun 2021 00:35:05 +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 AEC0520B83F2;\n Wed, 23 Jun 2021 15:35:04 -0700 (PDT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 linux.microsoft.com AEC0520B83F2",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;\n s=default; t=1624487704;\n bh=Fm1hxecWdqO0bTtDpyKnKb9gujh1AVoPcpuptZ8CgZY=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=kDaIBU9WVtaDe1YS1FCS3WSaof/UFmDIfWYROWsVKAQ4FLREPz2xhDJvEfe6BHFu6\n 4b1QCXtVG5hOC9CZYM3zurMD2gohtnUTm9u7AjU9+exk5yk2T+lPy0iJXT19ktGi9z\n pcrmw9uXTjO+CV+35WIiQGjxAqjNpMnLdGtJv86o=",
        "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, andrew.rybchenko@oktetlabs.ru,\n thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com,\n konstantin.ananyev@intel.com, stable@dpdk.org",
        "Date": "Wed, 23 Jun 2021 15:34:54 -0700",
        "Message-Id": "<1624487698-31136-6-git-send-email-jizh@linux.microsoft.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1624487698-31136-1-git-send-email-jizh@linux.microsoft.com>",
        "References": "<1620241931-28435-1-git-send-email-jizh@linux.microsoft.com>\n <1624487698-31136-1-git-send-email-jizh@linux.microsoft.com>",
        "Subject": "[dpdk-dev] [PATCH v14 5/9] 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>\nAcked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.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 1c587bb7b8..61882d5cbc 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@@ -895,14 +895,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@@ -913,7 +913,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@@ -1927,111 +1927,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@@ -2062,7 +2062,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@@ -2077,7 +2077,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@@ -2091,42 +2091,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@@ -2134,8 +2134,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@@ -2144,22 +2144,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@@ -2176,14 +2176,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@@ -2191,21 +2191,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@@ -2213,7 +2213,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@@ -2228,7 +2228,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@@ -2245,7 +2245,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@@ -2256,54 +2256,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@@ -2370,7 +2370,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@@ -2390,7 +2390,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@@ -2404,7 +2404,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@@ -2418,7 +2418,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@@ -2431,7 +2431,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@@ -2444,34 +2444,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@@ -2490,25 +2490,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@@ -2522,41 +2522,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@@ -2570,49 +2570,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@@ -2626,7 +2626,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@@ -2634,7 +2634,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@@ -2642,35 +2642,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@@ -2684,28 +2684,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@@ -2719,14 +2719,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@@ -2740,21 +2740,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@@ -2768,28 +2768,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@@ -2803,7 +2803,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@@ -2816,7 +2816,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@@ -2831,7 +2831,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@@ -2844,7 +2844,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@@ -2852,7 +2852,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@@ -2860,7 +2860,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@@ -2875,7 +2875,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@@ -2885,14 +2885,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@@ -2900,7 +2900,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@@ -2908,7 +2908,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@@ -2924,7 +2924,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@@ -2938,20 +2938,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@@ -2978,20 +2978,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@@ -3007,7 +3007,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@@ -3022,7 +3022,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@@ -3030,7 +3030,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@@ -3038,7 +3038,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@@ -3046,7 +3046,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@@ -3062,7 +3062,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@@ -3077,7 +3077,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@@ -3085,7 +3085,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@@ -3093,7 +3093,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@@ -3108,14 +3108,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@@ -3130,7 +3130,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@@ -3146,7 +3146,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@@ -3163,7 +3163,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@@ -3181,7 +3181,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@@ -3199,7 +3199,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@@ -3214,7 +3214,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@@ -3228,7 +3228,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@@ -3242,14 +3242,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@@ -3270,7 +3270,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@@ -3279,7 +3279,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@@ -3296,14 +3296,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@@ -3317,13 +3317,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@@ -3338,7 +3338,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@@ -3352,7 +3352,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@@ -3366,7 +3366,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@@ -3379,14 +3379,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@@ -3419,7 +3419,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@@ -3435,7 +3435,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@@ -3451,7 +3451,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@@ -3467,21 +3467,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@@ -3489,7 +3489,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@@ -3507,21 +3507,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@@ -3567,7 +3567,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@@ -3581,7 +3581,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@@ -3603,7 +3603,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@@ -3625,14 +3625,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@@ -3676,7 +3676,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@@ -3697,7 +3697,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@@ -3712,7 +3712,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@@ -3750,7 +3750,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@@ -3758,7 +3758,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@@ -3773,7 +3773,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@@ -3781,7 +3781,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@@ -3797,7 +3797,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@@ -3805,7 +3805,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@@ -3851,7 +3851,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@@ -3867,7 +3867,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@@ -3891,7 +3891,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@@ -3936,7 +3936,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@@ -3954,7 +3954,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@@ -3972,7 +3972,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@@ -3989,7 +3989,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@@ -4007,7 +4007,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@@ -4115,7 +4115,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@@ -4132,7 +4132,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@@ -4149,7 +4149,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@@ -4166,7 +4166,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@@ -4183,7 +4183,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@@ -4200,7 +4200,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@@ -4231,7 +4231,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@@ -4247,7 +4247,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@@ -4263,7 +4263,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@@ -4278,7 +4278,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@@ -4292,7 +4292,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@@ -4306,7 +4306,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@@ -4320,7 +4320,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@@ -4403,7 +4403,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@@ -4411,7 +4411,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@@ -4432,7 +4432,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@@ -4440,7 +4440,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@@ -4449,7 +4449,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@@ -4458,7 +4458,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@@ -4498,7 +4498,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@@ -4531,14 +4531,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@@ -4546,7 +4546,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@@ -4562,7 +4562,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@@ -4570,7 +4570,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@@ -4586,7 +4586,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@@ -4602,7 +4602,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@@ -4620,7 +4620,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@@ -4634,7 +4634,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@@ -4648,7 +4648,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@@ -4687,7 +4687,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@@ -4697,7 +4697,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@@ -4781,8 +4781,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@@ -5139,34 +5139,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@@ -5247,7 +5247,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": [
        "v14",
        "5/9"
    ]
}