get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 91670,
    "url": "https://patches.dpdk.org/api/patches/91670/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1618594501-23795-5-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": "<1618594501-23795-5-git-send-email-jizh@linux.microsoft.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1618594501-23795-5-git-send-email-jizh@linux.microsoft.com",
    "date": "2021-04-16T17:34:56",
    "name": "[v4,4/9] app/testpmd: resolve name collisions",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "7f4a106040a54966bffaedb5d6c2e0369efe5ce5",
    "submitter": {
        "id": 1934,
        "url": "https://patches.dpdk.org/api/people/1934/?format=api",
        "name": "Jie Zhou",
        "email": "jizh@linux.microsoft.com"
    },
    "delegate": {
        "id": 319,
        "url": "https://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1618594501-23795-5-git-send-email-jizh@linux.microsoft.com/mbox/",
    "series": [
        {
            "id": 16452,
            "url": "https://patches.dpdk.org/api/series/16452/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=16452",
            "date": "2021-04-16T17:34:53",
            "name": "app/testpmd: Enable testpmd on Windows",
            "version": 4,
            "mbox": "https://patches.dpdk.org/series/16452/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/91670/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/91670/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 7AFC5A0C41;\n\tFri, 16 Apr 2021 19:35:33 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 6A35A161BF8;\n\tFri, 16 Apr 2021 19:35:15 +0200 (CEST)",
            "from linux.microsoft.com (linux.microsoft.com [13.77.154.182])\n by mails.dpdk.org (Postfix) with ESMTP id AB81D161B98\n for <dev@dpdk.org>; Fri, 16 Apr 2021 19:35:08 +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 09B4020B83D9;\n Fri, 16 Apr 2021 10:35:08 -0700 (PDT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 linux.microsoft.com 09B4020B83D9",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;\n s=default; t=1618594508;\n bh=HQ/U34CmZx7bWjvLPs3eKlETSwyZGvcOQ9yXzcOk/Qk=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=D/dAKlBXgOZ3pK220dnfwZuUB9Ze2WIGJybtygw1YMryppp7jPFOAUnGelddqb3cD\n 0GorY22tZQUY2pC2W5f2zb6Oa1QdlrY3EXwzCxZq8vDniehPO6kIKZ/ftH2K5E829B\n aXYkU1Q9XUIJkdVR8CQ0wI4Wh3/ruWPAiAxwDze4=",
        "From": "Jie Zhou <jizh@linux.microsoft.com>",
        "To": "dev@dpdk.org",
        "Cc": "dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com,\n pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com,\n ferruh.yigit@intel.com",
        "Date": "Fri, 16 Apr 2021 10:34:56 -0700",
        "Message-Id": "<1618594501-23795-5-git-send-email-jizh@linux.microsoft.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1618594501-23795-1-git-send-email-jizh@linux.microsoft.com>",
        "References": "<1618334363-15147-1-git-send-email-jizh@linux.microsoft.com>\n <1618594501-23795-1-git-send-email-jizh@linux.microsoft.com>",
        "Subject": "[dpdk-dev] [PATCH v4 4/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>\n---\n app/test-pmd/cmdline_flow.c | 494 ++++++++++++++++++------------------\n 1 file changed, 247 insertions(+), 247 deletions(-)",
    "diff": "diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c\nindex fb7a3a8bd..bbedd58c4 100644\n--- a/app/test-pmd/cmdline_flow.c\n+++ b/app/test-pmd/cmdline_flow.c\n@@ -40,21 +40,21 @@ 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-\tSHARED_ACTION_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_SHARED_ACTION_ID,\n \n \t/* Top-level command. */\n \tSET,\n@@ -100,13 +100,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/* Shared action arguments */\n \tSHARED_ACTION_CREATE,\n@@ -125,7 +125,7 @@ enum index {\n \tSHARED_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@@ -853,14 +853,14 @@ static const enum index next_sa_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@@ -871,7 +871,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@@ -1841,104 +1841,104 @@ 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.type = \"COMMON_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[SHARED_ACTION_ID] = {\n+\t[COMMON_SHARED_ACTION_ID] = {\n \t\t.name = \"{shared_action_id}\",\n \t\t.type = \"SHARED_ACTION_ID\",\n \t\t.help = \"shared action id\",\n@@ -1969,7 +1969,7 @@ static const struct token token_list[] = {\n \t\t.name = \"shared_action\",\n \t\t.type = \"{command} {port_id} [{arg} [...]]\",\n \t\t.help = \"manage shared actions\",\n-\t\t.next = NEXT(next_sa_subcmd, NEXT_ENTRY(PORT_ID)),\n+\t\t.next = NEXT(next_sa_subcmd, NEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, port)),\n \t\t.call = parse_sa,\n \t},\n@@ -1984,7 +1984,7 @@ static const struct token token_list[] = {\n \t\t.name = \"update\",\n \t\t.help = \"update shared action\",\n \t\t.next = NEXT(NEXT_ENTRY(SHARED_ACTION_SPEC),\n-\t\t\t     NEXT_ENTRY(SHARED_ACTION_ID)),\n+\t\t\t     NEXT_ENTRY(COMMON_SHARED_ACTION_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, args.vc.attr.group)),\n \t\t.call = parse_sa,\n \t},\n@@ -1998,42 +1998,42 @@ static const struct token token_list[] = {\n \t[SHARED_ACTION_QUERY] = {\n \t\t.name = \"query\",\n \t\t.help = \"query shared action\",\n-\t\t.next = NEXT(NEXT_ENTRY(END), NEXT_ENTRY(SHARED_ACTION_ID)),\n+\t\t.next = NEXT(NEXT_ENTRY(END), NEXT_ENTRY(COMMON_SHARED_ACTION_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, args.sa.action_id)),\n \t\t.call = parse_sa,\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 all flow rules to file\",\n-\t\t.next = NEXT(next_dump_attr, NEXT_ENTRY(PORT_ID)),\n+\t\t.next = NEXT(next_dump_attr, NEXT_ENTRY(COMMON_PORT_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, args.dump.file),\n \t\t\t     ARGS_ENTRY(struct buffer, port)),\n \t\t.call = parse_dump,\n@@ -2042,8 +2042,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@@ -2052,22 +2052,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@@ -2084,14 +2084,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@@ -2099,21 +2099,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@@ -2121,7 +2121,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@@ -2137,7 +2137,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@@ -2148,54 +2148,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@@ -2262,7 +2262,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@@ -2282,7 +2282,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@@ -2296,7 +2296,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@@ -2310,7 +2310,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@@ -2323,7 +2323,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@@ -2336,34 +2336,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@@ -2382,25 +2382,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@@ -2414,41 +2414,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@@ -2462,42 +2462,42 @@ 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_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@@ -2511,7 +2511,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@@ -2519,7 +2519,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@@ -2527,35 +2527,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@@ -2569,28 +2569,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@@ -2604,14 +2604,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@@ -2625,21 +2625,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@@ -2653,28 +2653,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@@ -2688,7 +2688,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@@ -2701,7 +2701,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@@ -2716,7 +2716,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@@ -2729,7 +2729,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@@ -2737,7 +2737,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@@ -2745,7 +2745,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@@ -2760,7 +2760,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@@ -2770,14 +2770,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@@ -2785,7 +2785,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@@ -2793,7 +2793,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@@ -2809,7 +2809,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@@ -2823,20 +2823,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@@ -2863,20 +2863,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@@ -2892,7 +2892,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@@ -2907,7 +2907,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@@ -2915,7 +2915,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@@ -2923,7 +2923,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@@ -2931,7 +2931,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@@ -2947,7 +2947,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@@ -2962,7 +2962,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@@ -2970,7 +2970,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@@ -2985,14 +2985,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@@ -3007,7 +3007,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@@ -3023,7 +3023,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@@ -3040,7 +3040,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@@ -3058,7 +3058,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@@ -3076,7 +3076,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@@ -3091,7 +3091,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@@ -3105,7 +3105,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@@ -3119,14 +3119,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@@ -3147,7 +3147,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@@ -3156,7 +3156,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@@ -3173,14 +3173,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@@ -3194,13 +3194,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@@ -3215,7 +3215,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@@ -3229,7 +3229,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@@ -3243,7 +3243,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@@ -3256,14 +3256,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@@ -3296,7 +3296,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@@ -3312,7 +3312,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@@ -3328,7 +3328,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@@ -3344,21 +3344,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@@ -3366,7 +3366,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@@ -3415,7 +3415,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@@ -3429,7 +3429,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@@ -3451,7 +3451,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@@ -3473,14 +3473,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@@ -3524,7 +3524,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@@ -3545,7 +3545,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@@ -3560,7 +3560,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@@ -3598,7 +3598,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@@ -3606,7 +3606,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@@ -3621,7 +3621,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@@ -3629,7 +3629,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@@ -3645,7 +3645,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@@ -3653,7 +3653,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@@ -3668,7 +3668,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@@ -3684,7 +3684,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@@ -3708,7 +3708,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@@ -3753,7 +3753,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@@ -3771,7 +3771,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@@ -3789,7 +3789,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@@ -3806,7 +3806,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@@ -3824,7 +3824,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@@ -3932,7 +3932,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@@ -3949,7 +3949,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@@ -3966,7 +3966,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@@ -3983,7 +3983,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@@ -4000,7 +4000,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@@ -4017,7 +4017,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@@ -4048,7 +4048,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@@ -4064,7 +4064,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@@ -4080,7 +4080,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@@ -4095,7 +4095,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@@ -4109,7 +4109,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@@ -4123,7 +4123,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@@ -4137,7 +4137,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@@ -4220,7 +4220,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@@ -4228,7 +4228,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@@ -4249,7 +4249,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@@ -4257,7 +4257,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@@ -4266,7 +4266,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@@ -4275,7 +4275,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@@ -4315,7 +4315,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@@ -4348,14 +4348,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@@ -4363,7 +4363,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@@ -4379,7 +4379,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@@ -4387,7 +4387,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@@ -4403,7 +4403,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@@ -4419,7 +4419,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@@ -4437,7 +4437,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@@ -4451,7 +4451,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@@ -4465,7 +4465,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@@ -4476,7 +4476,7 @@ static const struct token token_list[] = {\n \t\t.name = \"action_id\",\n \t\t.help = \"specify a shared action id to destroy\",\n \t\t.next = NEXT(next_sa_destroy_attr,\n-\t\t\t     NEXT_ENTRY(SHARED_ACTION_ID)),\n+\t\t\t     NEXT_ENTRY(COMMON_SHARED_ACTION_ID)),\n \t\t.args = ARGS(ARGS_ENTRY_PTR(struct buffer,\n \t\t\t\t\t    args.sa_destroy.action_id)),\n \t\t.call = parse_sa_destroy,\n@@ -4486,7 +4486,7 @@ static const struct token token_list[] = {\n \t\t.name = \"action_id\",\n \t\t.help = \"specify a shared action id to create\",\n \t\t.next = NEXT(next_sa_create_attr,\n-\t\t\t     NEXT_ENTRY(SHARED_ACTION_ID)),\n+\t\t\t     NEXT_ENTRY(COMMON_SHARED_ACTION_ID)),\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer, args.vc.attr.group)),\n \t},\n \t[ACTION_SHARED] = {\n@@ -4839,34 +4839,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@@ -4947,7 +4947,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": [
        "v4",
        "4/9"
    ]
}