From patchwork Mon Apr 19 23:19:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 91790 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 84066A0579; Tue, 20 Apr 2021 01:20:18 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 32978414C5; Tue, 20 Apr 2021 01:20:10 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 68E8A414B5 for ; Tue, 20 Apr 2021 01:20:06 +0200 (CEST) Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (linux.microsoft.com [13.77.154.182]) by linux.microsoft.com (Postfix) with ESMTPSA id 7A7D620B8002; Mon, 19 Apr 2021 16:20:05 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 7A7D620B8002 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1618874405; bh=3XyCQMjdjbd6NNac3Gfo0kNxYzxrb07Iz136vAI9dRg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RDUlRAuBDjLAPO4XrvSjQTa47ewPWEF/UNKJOO0ihpIQqboGU8K+fIzjoJEV2AxCJ N25P5A6Z+sxz6QwDRT9px6SBAYAuNepP3eYz975A40hBBztAnBERoDogc1hmKkg3rQ kC3Uyv3ZK/DwxJmeyDfEhACOVXgG7V5n1ajtdoZI= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com Date: Mon, 19 Apr 2021 16:19:51 -0700 Message-Id: <1618874400-26819-2-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> References: <1618595864-27839-1-git-send-email-jizh@linux.microsoft.com> <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v6 01/10] lib: build libraries that testpmd depends on X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Enable building libraries that testpmd depends on Signed-off-by: Jie Zhou Signed-off-by: Jie Zhou --- lib/meson.build | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/meson.build b/lib/meson.build index 4eed83e57..3483570ac 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -44,8 +44,13 @@ if is_windows 'rcu', 'mempool', 'mbuf', 'net', 'meter', 'ethdev', 'pci', 'cmdline', + 'metrics', 'hash', - 'cfgfile', + 'timer', + 'bitratestats', 'cfgfile', + 'gro', 'gso', + 'latencystats', + 'pdump', ] # only supported libraries for windows endif From patchwork Mon Apr 19 23:19:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 91789 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 25CF4A0579; Tue, 20 Apr 2021 01:20:13 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EB315414BF; Tue, 20 Apr 2021 01:20:08 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 6423041448 for ; Tue, 20 Apr 2021 01:20:06 +0200 (CEST) Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (linux.microsoft.com [13.77.154.182]) by linux.microsoft.com (Postfix) with ESMTPSA id 9018820B8003; Mon, 19 Apr 2021 16:20:05 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 9018820B8003 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1618874405; bh=Gkhvtb3D8iEbaN/ewQRoyLW16MaISJFpgoRZEv8r+Dk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nHPC1+uk3/QrufYR8lauBIRfpLQc2dXV3UrIqKQvGzqVX3/ryE7fwAeoN43j3vEqD aY9DGeiB0U1Jr4Gr2Qgllj4vrXEtkMYen79Xm6g7YmxB6Jx/acAZOtMx/xP6oVBu31 47RbywitW/tNGld4azDuqWNR3eShRPhYvj7E7x3w= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com Date: Mon, 19 Apr 2021 16:19:52 -0700 Message-Id: <1618874400-26819-3-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> References: <1618595864-27839-1-git-send-email-jizh@linux.microsoft.com> <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v6 02/10] eal/windows: add necessary macros X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add required macros by testpmd on Windows in rte_os_shim.h Signed-off-by: Jie Zhou Signed-off-by: Jie Zhou --- lib/librte_eal/windows/include/rte_os_shim.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/librte_eal/windows/include/rte_os_shim.h b/lib/librte_eal/windows/include/rte_os_shim.h index f40fb62d1..d0bb9e3b8 100644 --- a/lib/librte_eal/windows/include/rte_os_shim.h +++ b/lib/librte_eal/windows/include/rte_os_shim.h @@ -17,6 +17,7 @@ #define strdup(str) _strdup(str) #define strtok_r(str, delim, saveptr) strtok_s(str, delim, saveptr) +#define strcasecmp _stricmp #define strncasecmp(s1, s2, count) _strnicmp(s1, s2, count) #define open(path, flags, ...) _open(path, flags, ##__VA_ARGS__) @@ -33,4 +34,12 @@ #define IPPROTO_SCTP 132 #endif +#ifndef IPDEFTTL +#define IPDEFTTL 64 +#endif + +#ifndef S_ISREG +#define S_ISREG(mode) (((mode)&S_IFMT) == S_IFREG) +#endif + #endif /* _RTE_OS_SHIM_ */ From patchwork Mon Apr 19 23:19:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 91791 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 04E3CA0579; Tue, 20 Apr 2021 01:20:24 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 74AEB414CB; Tue, 20 Apr 2021 01:20:11 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 6D2BE414BA for ; Tue, 20 Apr 2021 01:20:06 +0200 (CEST) Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (linux.microsoft.com [13.77.154.182]) by linux.microsoft.com (Postfix) with ESMTPSA id A53C620B8004; Mon, 19 Apr 2021 16:20:05 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com A53C620B8004 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1618874405; bh=+0/YqnjLZl2RKOeKOcUuLzQXFcRfIsbz5ltvBv4gzvY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KyJJjjdlUJT4H4B+JyghIyCq377WeF/PYfH6XKl5zpLu3o5CUgz64It0Vka1ze+GU r7t3aCU2NMBa5liVxGuwyqEIV3bZjOQfFeILaD4wr/sbi9/Xb7fcp/8GEjZEF6qufV tKBDpycmLzssWmpjcUeHRAZ6vU3UqS8HEqA8IHUU= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com Date: Mon, 19 Apr 2021 16:19:53 -0700 Message-Id: <1618874400-26819-4-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> References: <1618595864-27839-1-git-send-email-jizh@linux.microsoft.com> <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v6 03/10] eal/windows: add device event stubs X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add device event stubs in eal_dev.c for Windows Signed-off-by: Jie Zhou Signed-off-by: Jie Zhou --- lib/librte_eal/windows/eal_dev.c | 33 ++++++++++++++++++++++++++++++ lib/librte_eal/windows/meson.build | 1 + 2 files changed, 34 insertions(+) create mode 100644 lib/librte_eal/windows/eal_dev.c diff --git a/lib/librte_eal/windows/eal_dev.c b/lib/librte_eal/windows/eal_dev.c new file mode 100644 index 000000000..35191056f --- /dev/null +++ b/lib/librte_eal/windows/eal_dev.c @@ -0,0 +1,33 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2021 Microsoft Corporation + */ + +#include + +int +rte_dev_event_monitor_start(void) +{ + RTE_LOG(ERR, EAL, "Device event is not supported for Windows\n"); + return -1; +} + +int +rte_dev_event_monitor_stop(void) +{ + RTE_LOG(ERR, EAL, "Device event is not supported for Windows\n"); + return -1; +} + +int +rte_dev_hotplug_handle_enable(void) +{ + RTE_LOG(ERR, EAL, "Device event is not supported for Windows\n"); + return -1; +} + +int +rte_dev_hotplug_handle_disable(void) +{ + RTE_LOG(ERR, EAL, "Device event is not supported for Windows\n"); + return -1; +} diff --git a/lib/librte_eal/windows/meson.build b/lib/librte_eal/windows/meson.build index 42ff5c2d5..9bd395a37 100644 --- a/lib/librte_eal/windows/meson.build +++ b/lib/librte_eal/windows/meson.build @@ -7,6 +7,7 @@ sources += files( 'eal.c', 'eal_alarm.c', 'eal_debug.c', + 'eal_dev.c', 'eal_file.c', 'eal_hugepages.c', 'eal_interrupts.c', From patchwork Mon Apr 19 23:19:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 91792 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id CAA9AA0579; Tue, 20 Apr 2021 01:20:29 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B98A2414D1; Tue, 20 Apr 2021 01:20:12 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 6F7BF414BB for ; Tue, 20 Apr 2021 01:20:06 +0200 (CEST) Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (linux.microsoft.com [13.77.154.182]) by linux.microsoft.com (Postfix) with ESMTPSA id BAA6220B83D9; Mon, 19 Apr 2021 16:20:05 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com BAA6220B83D9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1618874405; bh=HQ/U34CmZx7bWjvLPs3eKlETSwyZGvcOQ9yXzcOk/Qk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LbfYqSGol9eROuGwLX2iF68sMm2VgkcegJGUu1s4OOg0M2yzEYx+m3CmiFNLCfAkW qKHOG9Q9P5Kdwouxch2uEu+j+zovF0XQLT1dmHJz7OyQDBj9RK2NwLoI9+6/S5ifDD LMprzkUI1+B2wDgTKpgOuCHr/+l1fyFgwLU8vtrM= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com Date: Mon, 19 Apr 2021 16:19:54 -0700 Message-Id: <1618874400-26819-5-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> References: <1618595864-27839-1-git-send-email-jizh@linux.microsoft.com> <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v6 04/10] app/testpmd: resolve name collisions X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Resolve name collisions with Windows types Signed-off-by: Jie Zhou Signed-off-by: Jie Zhou --- app/test-pmd/cmdline_flow.c | 494 ++++++++++++++++++------------------ 1 file changed, 247 insertions(+), 247 deletions(-) diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index fb7a3a8bd..bbedd58c4 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -40,21 +40,21 @@ enum index { END_SET, /* Common tokens. */ - INTEGER, - UNSIGNED, - PREFIX, - BOOLEAN, - STRING, - HEX, - FILE_PATH, - MAC_ADDR, - IPV4_ADDR, - IPV6_ADDR, - RULE_ID, - PORT_ID, - GROUP_ID, - PRIORITY_LEVEL, - SHARED_ACTION_ID, + COMMON_INTEGER, + COMMON_UNSIGNED, + COMMON_PREFIX, + COMMON_BOOLEAN, + COMMON_STRING, + COMMON_HEX, + COMMON_FILE_PATH, + COMMON_MAC_ADDR, + COMMON_IPV4_ADDR, + COMMON_IPV6_ADDR, + COMMON_RULE_ID, + COMMON_PORT_ID, + COMMON_GROUP_ID, + COMMON_PRIORITY_LEVEL, + COMMON_SHARED_ACTION_ID, /* Top-level command. */ SET, @@ -100,13 +100,13 @@ enum index { AGED_DESTROY, /* Validate/create arguments. */ - GROUP, - PRIORITY, - INGRESS, - EGRESS, - TRANSFER, - TUNNEL_SET, - TUNNEL_MATCH, + VC_GROUP, + VC_PRIORITY, + VC_INGRESS, + VC_EGRESS, + VC_TRANSFER, + VC_TUNNEL_SET, + VC_TUNNEL_MATCH, /* Shared action arguments */ SHARED_ACTION_CREATE, @@ -125,7 +125,7 @@ enum index { SHARED_ACTION_DESTROY_ID, /* Validate/create pattern. */ - PATTERN, + ITEM_PATTERN, ITEM_PARAM_IS, ITEM_PARAM_SPEC, ITEM_PARAM_LAST, @@ -853,14 +853,14 @@ static const enum index next_sa_subcmd[] = { }; static const enum index next_vc_attr[] = { - GROUP, - PRIORITY, - INGRESS, - EGRESS, - TRANSFER, - TUNNEL_SET, - TUNNEL_MATCH, - PATTERN, + VC_GROUP, + VC_PRIORITY, + VC_INGRESS, + VC_EGRESS, + VC_TRANSFER, + VC_TUNNEL_SET, + VC_TUNNEL_MATCH, + ITEM_PATTERN, ZERO, }; @@ -871,7 +871,7 @@ static const enum index next_destroy_attr[] = { }; static const enum index next_dump_attr[] = { - FILE_PATH, + COMMON_FILE_PATH, END, ZERO, }; @@ -1841,104 +1841,104 @@ static const struct token token_list[] = { .help = "set command may end here", }, /* Common tokens. */ - [INTEGER] = { + [COMMON_INTEGER] = { .name = "{int}", .type = "INTEGER", .help = "integer value", .call = parse_int, .comp = comp_none, }, - [UNSIGNED] = { + [COMMON_UNSIGNED] = { .name = "{unsigned}", .type = "UNSIGNED", .help = "unsigned integer value", .call = parse_int, .comp = comp_none, }, - [PREFIX] = { + [COMMON_PREFIX] = { .name = "{prefix}", .type = "PREFIX", .help = "prefix length for bit-mask", .call = parse_prefix, .comp = comp_none, }, - [BOOLEAN] = { + [COMMON_BOOLEAN] = { .name = "{boolean}", .type = "BOOLEAN", .help = "any boolean value", .call = parse_boolean, .comp = comp_boolean, }, - [STRING] = { + [COMMON_STRING] = { .name = "{string}", .type = "STRING", .help = "fixed string", .call = parse_string, .comp = comp_none, }, - [HEX] = { + [COMMON_HEX] = { .name = "{hex}", - .type = "HEX", + .type = "COMMON_HEX", .help = "fixed string", .call = parse_hex, }, - [FILE_PATH] = { + [COMMON_FILE_PATH] = { .name = "{file path}", .type = "STRING", .help = "file path", .call = parse_string0, .comp = comp_none, }, - [MAC_ADDR] = { + [COMMON_MAC_ADDR] = { .name = "{MAC address}", .type = "MAC-48", .help = "standard MAC address notation", .call = parse_mac_addr, .comp = comp_none, }, - [IPV4_ADDR] = { + [COMMON_IPV4_ADDR] = { .name = "{IPv4 address}", .type = "IPV4 ADDRESS", .help = "standard IPv4 address notation", .call = parse_ipv4_addr, .comp = comp_none, }, - [IPV6_ADDR] = { + [COMMON_IPV6_ADDR] = { .name = "{IPv6 address}", .type = "IPV6 ADDRESS", .help = "standard IPv6 address notation", .call = parse_ipv6_addr, .comp = comp_none, }, - [RULE_ID] = { + [COMMON_RULE_ID] = { .name = "{rule id}", .type = "RULE ID", .help = "rule identifier", .call = parse_int, .comp = comp_rule_id, }, - [PORT_ID] = { + [COMMON_PORT_ID] = { .name = "{port_id}", .type = "PORT ID", .help = "port identifier", .call = parse_port, .comp = comp_port, }, - [GROUP_ID] = { + [COMMON_GROUP_ID] = { .name = "{group_id}", .type = "GROUP ID", .help = "group identifier", .call = parse_int, .comp = comp_none, }, - [PRIORITY_LEVEL] = { + [COMMON_PRIORITY_LEVEL] = { .name = "{level}", .type = "PRIORITY", .help = "priority level", .call = parse_int, .comp = comp_none, }, - [SHARED_ACTION_ID] = { + [COMMON_SHARED_ACTION_ID] = { .name = "{shared_action_id}", .type = "SHARED_ACTION_ID", .help = "shared action id", @@ -1969,7 +1969,7 @@ static const struct token token_list[] = { .name = "shared_action", .type = "{command} {port_id} [{arg} [...]]", .help = "manage shared actions", - .next = NEXT(next_sa_subcmd, NEXT_ENTRY(PORT_ID)), + .next = NEXT(next_sa_subcmd, NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, port)), .call = parse_sa, }, @@ -1984,7 +1984,7 @@ static const struct token token_list[] = { .name = "update", .help = "update shared action", .next = NEXT(NEXT_ENTRY(SHARED_ACTION_SPEC), - NEXT_ENTRY(SHARED_ACTION_ID)), + NEXT_ENTRY(COMMON_SHARED_ACTION_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, args.vc.attr.group)), .call = parse_sa, }, @@ -1998,42 +1998,42 @@ static const struct token token_list[] = { [SHARED_ACTION_QUERY] = { .name = "query", .help = "query shared action", - .next = NEXT(NEXT_ENTRY(END), NEXT_ENTRY(SHARED_ACTION_ID)), + .next = NEXT(NEXT_ENTRY(END), NEXT_ENTRY(COMMON_SHARED_ACTION_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, args.sa.action_id)), .call = parse_sa, }, [VALIDATE] = { .name = "validate", .help = "check whether a flow rule can be created", - .next = NEXT(next_vc_attr, NEXT_ENTRY(PORT_ID)), + .next = NEXT(next_vc_attr, NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, port)), .call = parse_vc, }, [CREATE] = { .name = "create", .help = "create a flow rule", - .next = NEXT(next_vc_attr, NEXT_ENTRY(PORT_ID)), + .next = NEXT(next_vc_attr, NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, port)), .call = parse_vc, }, [DESTROY] = { .name = "destroy", .help = "destroy specific flow rules", - .next = NEXT(NEXT_ENTRY(DESTROY_RULE), NEXT_ENTRY(PORT_ID)), + .next = NEXT(NEXT_ENTRY(DESTROY_RULE), NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, port)), .call = parse_destroy, }, [FLUSH] = { .name = "flush", .help = "destroy all flow rules", - .next = NEXT(NEXT_ENTRY(PORT_ID)), + .next = NEXT(NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, port)), .call = parse_flush, }, [DUMP] = { .name = "dump", .help = "dump all flow rules to file", - .next = NEXT(next_dump_attr, NEXT_ENTRY(PORT_ID)), + .next = NEXT(next_dump_attr, NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, args.dump.file), ARGS_ENTRY(struct buffer, port)), .call = parse_dump, @@ -2042,8 +2042,8 @@ static const struct token token_list[] = { .name = "query", .help = "query an existing flow rule", .next = NEXT(NEXT_ENTRY(QUERY_ACTION), - NEXT_ENTRY(RULE_ID), - NEXT_ENTRY(PORT_ID)), + NEXT_ENTRY(COMMON_RULE_ID), + NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, args.query.action.type), ARGS_ENTRY(struct buffer, args.query.rule), ARGS_ENTRY(struct buffer, port)), @@ -2052,22 +2052,22 @@ static const struct token token_list[] = { [LIST] = { .name = "list", .help = "list existing flow rules", - .next = NEXT(next_list_attr, NEXT_ENTRY(PORT_ID)), + .next = NEXT(next_list_attr, NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, port)), .call = parse_list, }, [AGED] = { .name = "aged", .help = "list and destroy aged flows", - .next = NEXT(next_aged_attr, NEXT_ENTRY(PORT_ID)), + .next = NEXT(next_aged_attr, NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, port)), .call = parse_aged, }, [ISOLATE] = { .name = "isolate", .help = "restrict ingress traffic to the defined flow rules", - .next = NEXT(NEXT_ENTRY(BOOLEAN), - NEXT_ENTRY(PORT_ID)), + .next = NEXT(NEXT_ENTRY(COMMON_BOOLEAN), + NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, args.isolate.set), ARGS_ENTRY(struct buffer, port)), .call = parse_isolate, @@ -2084,14 +2084,14 @@ static const struct token token_list[] = { .name = "create", .help = "create new tunnel object", .next = NEXT(NEXT_ENTRY(TUNNEL_CREATE_TYPE), - NEXT_ENTRY(PORT_ID)), + NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, port)), .call = parse_tunnel, }, [TUNNEL_CREATE_TYPE] = { .name = "type", .help = "create new tunnel", - .next = NEXT(NEXT_ENTRY(FILE_PATH)), + .next = NEXT(NEXT_ENTRY(COMMON_FILE_PATH)), .args = ARGS(ARGS_ENTRY(struct tunnel_ops, type)), .call = parse_tunnel, }, @@ -2099,21 +2099,21 @@ static const struct token token_list[] = { .name = "destroy", .help = "destroy tunel", .next = NEXT(NEXT_ENTRY(TUNNEL_DESTROY_ID), - NEXT_ENTRY(PORT_ID)), + NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, port)), .call = parse_tunnel, }, [TUNNEL_DESTROY_ID] = { .name = "id", .help = "tunnel identifier to testroy", - .next = NEXT(NEXT_ENTRY(UNSIGNED)), + .next = NEXT(NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct tunnel_ops, id)), .call = parse_tunnel, }, [TUNNEL_LIST] = { .name = "list", .help = "list existing tunnels", - .next = NEXT(NEXT_ENTRY(PORT_ID)), + .next = NEXT(NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, port)), .call = parse_tunnel, }, @@ -2121,7 +2121,7 @@ static const struct token token_list[] = { [DESTROY_RULE] = { .name = "rule", .help = "specify a rule identifier", - .next = NEXT(next_destroy_attr, NEXT_ENTRY(RULE_ID)), + .next = NEXT(next_destroy_attr, NEXT_ENTRY(COMMON_RULE_ID)), .args = ARGS(ARGS_ENTRY_PTR(struct buffer, args.destroy.rule)), .call = parse_destroy, }, @@ -2137,7 +2137,7 @@ static const struct token token_list[] = { [LIST_GROUP] = { .name = "group", .help = "specify a group", - .next = NEXT(next_list_attr, NEXT_ENTRY(GROUP_ID)), + .next = NEXT(next_list_attr, NEXT_ENTRY(COMMON_GROUP_ID)), .args = ARGS(ARGS_ENTRY_PTR(struct buffer, args.list.group)), .call = parse_list, }, @@ -2148,54 +2148,54 @@ static const struct token token_list[] = { .comp = comp_none, }, /* Validate/create attributes. */ - [GROUP] = { + [VC_GROUP] = { .name = "group", .help = "specify a group", - .next = NEXT(next_vc_attr, NEXT_ENTRY(GROUP_ID)), + .next = NEXT(next_vc_attr, NEXT_ENTRY(COMMON_GROUP_ID)), .args = ARGS(ARGS_ENTRY(struct rte_flow_attr, group)), .call = parse_vc, }, - [PRIORITY] = { + [VC_PRIORITY] = { .name = "priority", .help = "specify a priority level", - .next = NEXT(next_vc_attr, NEXT_ENTRY(PRIORITY_LEVEL)), + .next = NEXT(next_vc_attr, NEXT_ENTRY(COMMON_PRIORITY_LEVEL)), .args = ARGS(ARGS_ENTRY(struct rte_flow_attr, priority)), .call = parse_vc, }, - [INGRESS] = { + [VC_INGRESS] = { .name = "ingress", .help = "affect rule to ingress", .next = NEXT(next_vc_attr), .call = parse_vc, }, - [EGRESS] = { + [VC_EGRESS] = { .name = "egress", .help = "affect rule to egress", .next = NEXT(next_vc_attr), .call = parse_vc, }, - [TRANSFER] = { + [VC_TRANSFER] = { .name = "transfer", .help = "apply rule directly to endpoints found in pattern", .next = NEXT(next_vc_attr), .call = parse_vc, }, - [TUNNEL_SET] = { + [VC_TUNNEL_SET] = { .name = "tunnel_set", .help = "tunnel steer rule", - .next = NEXT(next_vc_attr, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(next_vc_attr, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct tunnel_ops, id)), .call = parse_vc, }, - [TUNNEL_MATCH] = { + [VC_TUNNEL_MATCH] = { .name = "tunnel_match", .help = "tunnel match rule", - .next = NEXT(next_vc_attr, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(next_vc_attr, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct tunnel_ops, id)), .call = parse_vc, }, /* Validate/create pattern. */ - [PATTERN] = { + [ITEM_PATTERN] = { .name = "pattern", .help = "submit a list of pattern items", .next = NEXT(next_item), @@ -2262,7 +2262,7 @@ static const struct token token_list[] = { [ITEM_ANY_NUM] = { .name = "num", .help = "number of layers covered", - .next = NEXT(item_any, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_any, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_any, num)), }, [ITEM_PF] = { @@ -2282,7 +2282,7 @@ static const struct token token_list[] = { [ITEM_VF_ID] = { .name = "id", .help = "VF ID", - .next = NEXT(item_vf, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_vf, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_vf, id)), }, [ITEM_PHY_PORT] = { @@ -2296,7 +2296,7 @@ static const struct token token_list[] = { [ITEM_PHY_PORT_INDEX] = { .name = "index", .help = "physical port index", - .next = NEXT(item_phy_port, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_phy_port, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_phy_port, index)), }, [ITEM_PORT_ID] = { @@ -2310,7 +2310,7 @@ static const struct token token_list[] = { [ITEM_PORT_ID_ID] = { .name = "id", .help = "DPDK port ID", - .next = NEXT(item_port_id, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_port_id, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_port_id, id)), }, [ITEM_MARK] = { @@ -2323,7 +2323,7 @@ static const struct token token_list[] = { [ITEM_MARK_ID] = { .name = "id", .help = "Integer value to match against", - .next = NEXT(item_mark, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_mark, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_mark, id)), }, [ITEM_RAW] = { @@ -2336,34 +2336,34 @@ static const struct token token_list[] = { [ITEM_RAW_RELATIVE] = { .name = "relative", .help = "look for pattern after the previous item", - .next = NEXT(item_raw, NEXT_ENTRY(BOOLEAN), item_param), + .next = NEXT(item_raw, NEXT_ENTRY(COMMON_BOOLEAN), item_param), .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_raw, relative, 1)), }, [ITEM_RAW_SEARCH] = { .name = "search", .help = "search pattern from offset (see also limit)", - .next = NEXT(item_raw, NEXT_ENTRY(BOOLEAN), item_param), + .next = NEXT(item_raw, NEXT_ENTRY(COMMON_BOOLEAN), item_param), .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_raw, search, 1)), }, [ITEM_RAW_OFFSET] = { .name = "offset", .help = "absolute or relative offset for pattern", - .next = NEXT(item_raw, NEXT_ENTRY(INTEGER), item_param), + .next = NEXT(item_raw, NEXT_ENTRY(COMMON_INTEGER), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_raw, offset)), }, [ITEM_RAW_LIMIT] = { .name = "limit", .help = "search area limit for start of pattern", - .next = NEXT(item_raw, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_raw, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_raw, limit)), }, [ITEM_RAW_PATTERN] = { .name = "pattern", .help = "byte string to look for", .next = NEXT(item_raw, - NEXT_ENTRY(STRING), + NEXT_ENTRY(COMMON_STRING), NEXT_ENTRY(ITEM_PARAM_IS, ITEM_PARAM_SPEC, ITEM_PARAM_MASK)), @@ -2382,25 +2382,25 @@ static const struct token token_list[] = { [ITEM_ETH_DST] = { .name = "dst", .help = "destination MAC", - .next = NEXT(item_eth, NEXT_ENTRY(MAC_ADDR), item_param), + .next = NEXT(item_eth, NEXT_ENTRY(COMMON_MAC_ADDR), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_eth, dst)), }, [ITEM_ETH_SRC] = { .name = "src", .help = "source MAC", - .next = NEXT(item_eth, NEXT_ENTRY(MAC_ADDR), item_param), + .next = NEXT(item_eth, NEXT_ENTRY(COMMON_MAC_ADDR), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_eth, src)), }, [ITEM_ETH_TYPE] = { .name = "type", .help = "EtherType", - .next = NEXT(item_eth, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_eth, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_eth, type)), }, [ITEM_ETH_HAS_VLAN] = { .name = "has_vlan", .help = "packet header contains VLAN", - .next = NEXT(item_eth, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_eth, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_eth, has_vlan, 1)), }, @@ -2414,41 +2414,41 @@ static const struct token token_list[] = { [ITEM_VLAN_TCI] = { .name = "tci", .help = "tag control information", - .next = NEXT(item_vlan, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_vlan, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vlan, tci)), }, [ITEM_VLAN_PCP] = { .name = "pcp", .help = "priority code point", - .next = NEXT(item_vlan, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_vlan, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_vlan, tci, "\xe0\x00")), }, [ITEM_VLAN_DEI] = { .name = "dei", .help = "drop eligible indicator", - .next = NEXT(item_vlan, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_vlan, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_vlan, tci, "\x10\x00")), }, [ITEM_VLAN_VID] = { .name = "vid", .help = "VLAN identifier", - .next = NEXT(item_vlan, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_vlan, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_vlan, tci, "\x0f\xff")), }, [ITEM_VLAN_INNER_TYPE] = { .name = "inner_type", .help = "inner EtherType", - .next = NEXT(item_vlan, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_vlan, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vlan, inner_type)), }, [ITEM_VLAN_HAS_MORE_VLAN] = { .name = "has_more_vlan", .help = "packet header contains another VLAN", - .next = NEXT(item_vlan, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_vlan, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_vlan, has_more_vlan, 1)), }, @@ -2462,42 +2462,42 @@ static const struct token token_list[] = { [ITEM_IPV4_TOS] = { .name = "tos", .help = "type of service", - .next = NEXT(item_ipv4, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_ipv4, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv4, hdr.type_of_service)), }, [ITEM_IPV4_FRAGMENT_OFFSET] = { .name = "fragment_offset", .help = "fragmentation flags and fragment offset", - .next = NEXT(item_ipv4, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_ipv4, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv4, hdr.fragment_offset)), }, [ITEM_IPV4_TTL] = { .name = "ttl", .help = "time to live", - .next = NEXT(item_ipv4, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_ipv4, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv4, hdr.time_to_live)), }, [ITEM_IPV4_PROTO] = { .name = "proto", .help = "next protocol ID", - .next = NEXT(item_ipv4, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_ipv4, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv4, hdr.next_proto_id)), }, [ITEM_IPV4_SRC] = { .name = "src", .help = "source address", - .next = NEXT(item_ipv4, NEXT_ENTRY(IPV4_ADDR), item_param), + .next = NEXT(item_ipv4, NEXT_ENTRY(COMMON_IPV4_ADDR), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv4, hdr.src_addr)), }, [ITEM_IPV4_DST] = { .name = "dst", .help = "destination address", - .next = NEXT(item_ipv4, NEXT_ENTRY(IPV4_ADDR), item_param), + .next = NEXT(item_ipv4, NEXT_ENTRY(COMMON_IPV4_ADDR), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv4, hdr.dst_addr)), }, @@ -2511,7 +2511,7 @@ static const struct token token_list[] = { [ITEM_IPV6_TC] = { .name = "tc", .help = "traffic class", - .next = NEXT(item_ipv6, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_ipv6, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_ipv6, hdr.vtc_flow, "\x0f\xf0\x00\x00")), @@ -2519,7 +2519,7 @@ static const struct token token_list[] = { [ITEM_IPV6_FLOW] = { .name = "flow", .help = "flow label", - .next = NEXT(item_ipv6, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_ipv6, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_ipv6, hdr.vtc_flow, "\x00\x0f\xff\xff")), @@ -2527,35 +2527,35 @@ static const struct token token_list[] = { [ITEM_IPV6_PROTO] = { .name = "proto", .help = "protocol (next header)", - .next = NEXT(item_ipv6, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_ipv6, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv6, hdr.proto)), }, [ITEM_IPV6_HOP] = { .name = "hop", .help = "hop limit", - .next = NEXT(item_ipv6, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_ipv6, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv6, hdr.hop_limits)), }, [ITEM_IPV6_SRC] = { .name = "src", .help = "source address", - .next = NEXT(item_ipv6, NEXT_ENTRY(IPV6_ADDR), item_param), + .next = NEXT(item_ipv6, NEXT_ENTRY(COMMON_IPV6_ADDR), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv6, hdr.src_addr)), }, [ITEM_IPV6_DST] = { .name = "dst", .help = "destination address", - .next = NEXT(item_ipv6, NEXT_ENTRY(IPV6_ADDR), item_param), + .next = NEXT(item_ipv6, NEXT_ENTRY(COMMON_IPV6_ADDR), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv6, hdr.dst_addr)), }, [ITEM_IPV6_HAS_FRAG_EXT] = { .name = "has_frag_ext", .help = "fragment packet attribute", - .next = NEXT(item_ipv6, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_ipv6, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_ipv6, has_frag_ext, 1)), }, @@ -2569,28 +2569,28 @@ static const struct token token_list[] = { [ITEM_ICMP_TYPE] = { .name = "type", .help = "ICMP packet type", - .next = NEXT(item_icmp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_icmp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp, hdr.icmp_type)), }, [ITEM_ICMP_CODE] = { .name = "code", .help = "ICMP packet code", - .next = NEXT(item_icmp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_icmp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp, hdr.icmp_code)), }, [ITEM_ICMP_IDENT] = { .name = "ident", .help = "ICMP packet identifier", - .next = NEXT(item_icmp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_icmp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp, hdr.icmp_ident)), }, [ITEM_ICMP_SEQ] = { .name = "seq", .help = "ICMP packet sequence number", - .next = NEXT(item_icmp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_icmp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp, hdr.icmp_seq_nb)), }, @@ -2604,14 +2604,14 @@ static const struct token token_list[] = { [ITEM_UDP_SRC] = { .name = "src", .help = "UDP source port", - .next = NEXT(item_udp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_udp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_udp, hdr.src_port)), }, [ITEM_UDP_DST] = { .name = "dst", .help = "UDP destination port", - .next = NEXT(item_udp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_udp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_udp, hdr.dst_port)), }, @@ -2625,21 +2625,21 @@ static const struct token token_list[] = { [ITEM_TCP_SRC] = { .name = "src", .help = "TCP source port", - .next = NEXT(item_tcp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_tcp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_tcp, hdr.src_port)), }, [ITEM_TCP_DST] = { .name = "dst", .help = "TCP destination port", - .next = NEXT(item_tcp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_tcp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_tcp, hdr.dst_port)), }, [ITEM_TCP_FLAGS] = { .name = "flags", .help = "TCP flags", - .next = NEXT(item_tcp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_tcp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_tcp, hdr.tcp_flags)), }, @@ -2653,28 +2653,28 @@ static const struct token token_list[] = { [ITEM_SCTP_SRC] = { .name = "src", .help = "SCTP source port", - .next = NEXT(item_sctp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_sctp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_sctp, hdr.src_port)), }, [ITEM_SCTP_DST] = { .name = "dst", .help = "SCTP destination port", - .next = NEXT(item_sctp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_sctp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_sctp, hdr.dst_port)), }, [ITEM_SCTP_TAG] = { .name = "tag", .help = "validation tag", - .next = NEXT(item_sctp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_sctp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_sctp, hdr.tag)), }, [ITEM_SCTP_CKSUM] = { .name = "cksum", .help = "checksum", - .next = NEXT(item_sctp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_sctp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_sctp, hdr.cksum)), }, @@ -2688,7 +2688,7 @@ static const struct token token_list[] = { [ITEM_VXLAN_VNI] = { .name = "vni", .help = "VXLAN identifier", - .next = NEXT(item_vxlan, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan, vni)), }, [ITEM_E_TAG] = { @@ -2701,7 +2701,7 @@ static const struct token token_list[] = { [ITEM_E_TAG_GRP_ECID_B] = { .name = "grp_ecid_b", .help = "GRP and E-CID base", - .next = NEXT(item_e_tag, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_e_tag, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_e_tag, rsvd_grp_ecid_b, "\x3f\xff")), @@ -2716,7 +2716,7 @@ static const struct token token_list[] = { [ITEM_NVGRE_TNI] = { .name = "tni", .help = "virtual subnet ID", - .next = NEXT(item_nvgre, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_nvgre, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_nvgre, tni)), }, [ITEM_MPLS] = { @@ -2729,7 +2729,7 @@ static const struct token token_list[] = { [ITEM_MPLS_LABEL] = { .name = "label", .help = "MPLS label", - .next = NEXT(item_mpls, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_mpls, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_mpls, label_tc_s, "\xff\xff\xf0")), @@ -2737,7 +2737,7 @@ static const struct token token_list[] = { [ITEM_MPLS_TC] = { .name = "tc", .help = "MPLS Traffic Class", - .next = NEXT(item_mpls, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_mpls, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_mpls, label_tc_s, "\x00\x00\x0e")), @@ -2745,7 +2745,7 @@ static const struct token token_list[] = { [ITEM_MPLS_S] = { .name = "s", .help = "MPLS Bottom-of-Stack", - .next = NEXT(item_mpls, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_mpls, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_mpls, label_tc_s, "\x00\x00\x01")), @@ -2760,7 +2760,7 @@ static const struct token token_list[] = { [ITEM_GRE_PROTO] = { .name = "protocol", .help = "GRE protocol type", - .next = NEXT(item_gre, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_gre, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_gre, protocol)), }, @@ -2770,14 +2770,14 @@ static const struct token token_list[] = { "checksum (1b), undefined (1b), key bit (1b)," " sequence number (1b), reserved 0 (9b)," " version (3b)", - .next = NEXT(item_gre, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_gre, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_gre, c_rsvd0_ver)), }, [ITEM_GRE_C_BIT] = { .name = "c_bit", .help = "checksum bit (C)", - .next = NEXT(item_gre, NEXT_ENTRY(BOOLEAN), item_param), + .next = NEXT(item_gre, NEXT_ENTRY(COMMON_BOOLEAN), item_param), .args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_gre, c_rsvd0_ver, "\x80\x00\x00\x00")), @@ -2785,7 +2785,7 @@ static const struct token token_list[] = { [ITEM_GRE_S_BIT] = { .name = "s_bit", .help = "sequence number bit (S)", - .next = NEXT(item_gre, NEXT_ENTRY(BOOLEAN), item_param), + .next = NEXT(item_gre, NEXT_ENTRY(COMMON_BOOLEAN), item_param), .args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_gre, c_rsvd0_ver, "\x10\x00\x00\x00")), @@ -2793,7 +2793,7 @@ static const struct token token_list[] = { [ITEM_GRE_K_BIT] = { .name = "k_bit", .help = "key bit (K)", - .next = NEXT(item_gre, NEXT_ENTRY(BOOLEAN), item_param), + .next = NEXT(item_gre, NEXT_ENTRY(COMMON_BOOLEAN), item_param), .args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_gre, c_rsvd0_ver, "\x20\x00\x00\x00")), @@ -2809,7 +2809,7 @@ static const struct token token_list[] = { [ITEM_FUZZY_THRESH] = { .name = "thresh", .help = "match accuracy threshold", - .next = NEXT(item_fuzzy, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_fuzzy, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_fuzzy, thresh)), }, @@ -2823,20 +2823,20 @@ static const struct token token_list[] = { [ITEM_GTP_FLAGS] = { .name = "v_pt_rsv_flags", .help = "GTP flags", - .next = NEXT(item_gtp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_gtp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_gtp, v_pt_rsv_flags)), }, [ITEM_GTP_MSG_TYPE] = { .name = "msg_type", .help = "GTP message type", - .next = NEXT(item_gtp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_gtp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_gtp, msg_type)), }, [ITEM_GTP_TEID] = { .name = "teid", .help = "tunnel endpoint identifier", - .next = NEXT(item_gtp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_gtp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_gtp, teid)), }, [ITEM_GTPC] = { @@ -2863,20 +2863,20 @@ static const struct token token_list[] = { [ITEM_GENEVE_VNI] = { .name = "vni", .help = "virtual network identifier", - .next = NEXT(item_geneve, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_geneve, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_geneve, vni)), }, [ITEM_GENEVE_PROTO] = { .name = "protocol", .help = "GENEVE protocol type", - .next = NEXT(item_geneve, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_geneve, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_geneve, protocol)), }, [ITEM_GENEVE_OPTLEN] = { .name = "optlen", .help = "GENEVE options length in dwords", - .next = NEXT(item_geneve, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_geneve, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_MASK_HTON(struct rte_flow_item_geneve, ver_opt_len_o_c_rsvd0, "\x3f\x00")), @@ -2892,7 +2892,7 @@ static const struct token token_list[] = { [ITEM_VXLAN_GPE_VNI] = { .name = "vni", .help = "VXLAN-GPE identifier", - .next = NEXT(item_vxlan_gpe, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_vxlan_gpe, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan_gpe, vni)), }, @@ -2907,7 +2907,7 @@ static const struct token token_list[] = { [ITEM_ARP_ETH_IPV4_SHA] = { .name = "sha", .help = "sender hardware address", - .next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(MAC_ADDR), + .next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(COMMON_MAC_ADDR), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_arp_eth_ipv4, sha)), @@ -2915,7 +2915,7 @@ static const struct token token_list[] = { [ITEM_ARP_ETH_IPV4_SPA] = { .name = "spa", .help = "sender IPv4 address", - .next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(IPV4_ADDR), + .next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(COMMON_IPV4_ADDR), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_arp_eth_ipv4, spa)), @@ -2923,7 +2923,7 @@ static const struct token token_list[] = { [ITEM_ARP_ETH_IPV4_THA] = { .name = "tha", .help = "target hardware address", - .next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(MAC_ADDR), + .next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(COMMON_MAC_ADDR), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_arp_eth_ipv4, tha)), @@ -2931,7 +2931,7 @@ static const struct token token_list[] = { [ITEM_ARP_ETH_IPV4_TPA] = { .name = "tpa", .help = "target IPv4 address", - .next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(IPV4_ADDR), + .next = NEXT(item_arp_eth_ipv4, NEXT_ENTRY(COMMON_IPV4_ADDR), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_arp_eth_ipv4, tpa)), @@ -2947,7 +2947,7 @@ static const struct token token_list[] = { [ITEM_IPV6_EXT_NEXT_HDR] = { .name = "next_hdr", .help = "next header", - .next = NEXT(item_ipv6_ext, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_ipv6_ext, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv6_ext, next_hdr)), }, @@ -2962,7 +2962,7 @@ static const struct token token_list[] = { [ITEM_IPV6_FRAG_EXT_NEXT_HDR] = { .name = "next_hdr", .help = "next header", - .next = NEXT(item_ipv6_frag_ext, NEXT_ENTRY(UNSIGNED), + .next = NEXT(item_ipv6_frag_ext, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_ipv6_frag_ext, hdr.next_header)), @@ -2970,7 +2970,7 @@ static const struct token token_list[] = { [ITEM_IPV6_FRAG_EXT_FRAG_DATA] = { .name = "frag_data", .help = "Fragment flags and offset", - .next = NEXT(item_ipv6_frag_ext, NEXT_ENTRY(UNSIGNED), + .next = NEXT(item_ipv6_frag_ext, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ipv6_frag_ext, hdr.frag_data)), @@ -2985,14 +2985,14 @@ static const struct token token_list[] = { [ITEM_ICMP6_TYPE] = { .name = "type", .help = "ICMPv6 type", - .next = NEXT(item_icmp6, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_icmp6, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp6, type)), }, [ITEM_ICMP6_CODE] = { .name = "code", .help = "ICMPv6 code", - .next = NEXT(item_icmp6, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_icmp6, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp6, code)), }, @@ -3007,7 +3007,7 @@ static const struct token token_list[] = { [ITEM_ICMP6_ND_NS_TARGET_ADDR] = { .name = "target_addr", .help = "target address", - .next = NEXT(item_icmp6_nd_ns, NEXT_ENTRY(IPV6_ADDR), + .next = NEXT(item_icmp6_nd_ns, NEXT_ENTRY(COMMON_IPV6_ADDR), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp6_nd_ns, target_addr)), @@ -3023,7 +3023,7 @@ static const struct token token_list[] = { [ITEM_ICMP6_ND_NA_TARGET_ADDR] = { .name = "target_addr", .help = "target address", - .next = NEXT(item_icmp6_nd_na, NEXT_ENTRY(IPV6_ADDR), + .next = NEXT(item_icmp6_nd_na, NEXT_ENTRY(COMMON_IPV6_ADDR), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp6_nd_na, target_addr)), @@ -3040,7 +3040,7 @@ static const struct token token_list[] = { [ITEM_ICMP6_ND_OPT_TYPE] = { .name = "type", .help = "ND option type", - .next = NEXT(item_icmp6_nd_opt, NEXT_ENTRY(UNSIGNED), + .next = NEXT(item_icmp6_nd_opt, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp6_nd_opt, type)), @@ -3058,7 +3058,7 @@ static const struct token token_list[] = { [ITEM_ICMP6_ND_OPT_SLA_ETH_SLA] = { .name = "sla", .help = "source Ethernet LLA", - .next = NEXT(item_icmp6_nd_opt_sla_eth, NEXT_ENTRY(MAC_ADDR), + .next = NEXT(item_icmp6_nd_opt_sla_eth, NEXT_ENTRY(COMMON_MAC_ADDR), item_param), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_item_icmp6_nd_opt_sla_eth, sla)), @@ -3076,7 +3076,7 @@ static const struct token token_list[] = { [ITEM_ICMP6_ND_OPT_TLA_ETH_TLA] = { .name = "tla", .help = "target Ethernet LLA", - .next = NEXT(item_icmp6_nd_opt_tla_eth, NEXT_ENTRY(MAC_ADDR), + .next = NEXT(item_icmp6_nd_opt_tla_eth, NEXT_ENTRY(COMMON_MAC_ADDR), item_param), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_item_icmp6_nd_opt_tla_eth, tla)), @@ -3091,7 +3091,7 @@ static const struct token token_list[] = { [ITEM_META_DATA] = { .name = "data", .help = "metadata value", - .next = NEXT(item_meta, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_meta, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_MASK(struct rte_flow_item_meta, data, "\xff\xff\xff\xff")), }, @@ -3105,7 +3105,7 @@ static const struct token token_list[] = { [ITEM_GRE_KEY_VALUE] = { .name = "value", .help = "key value", - .next = NEXT(item_gre_key, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_gre_key, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARG_ENTRY_HTON(rte_be32_t)), }, [ITEM_GTP_PSC] = { @@ -3119,14 +3119,14 @@ static const struct token token_list[] = { [ITEM_GTP_PSC_QFI] = { .name = "qfi", .help = "QoS flow identifier", - .next = NEXT(item_gtp_psc, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_gtp_psc, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_gtp_psc, qfi)), }, [ITEM_GTP_PSC_PDU_T] = { .name = "pdu_t", .help = "PDU type", - .next = NEXT(item_gtp_psc, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_gtp_psc, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_gtp_psc, pdu_type)), }, @@ -3147,7 +3147,7 @@ static const struct token token_list[] = { [ITEM_PPPOE_SEID] = { .name = "seid", .help = "session identifier", - .next = NEXT(item_pppoes, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_pppoes, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_pppoe, session_id)), }, @@ -3156,7 +3156,7 @@ static const struct token token_list[] = { .help = "match PPPoE session protocol identifier", .priv = PRIV_ITEM(PPPOE_PROTO_ID, sizeof(struct rte_flow_item_pppoe_proto_id)), - .next = NEXT(item_pppoe_proto_id, NEXT_ENTRY(UNSIGNED), + .next = NEXT(item_pppoe_proto_id, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_item_pppoe_proto_id, proto_id)), @@ -3173,14 +3173,14 @@ static const struct token token_list[] = { [ITEM_HIGIG2_CLASSIFICATION] = { .name = "classification", .help = "matches classification of higig2 header", - .next = NEXT(item_higig2, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_higig2, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_higig2_hdr, hdr.ppt1.classification)), }, [ITEM_HIGIG2_VID] = { .name = "vid", .help = "matches vid of higig2 header", - .next = NEXT(item_higig2, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_higig2, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_higig2_hdr, hdr.ppt1.vid)), }, @@ -3194,13 +3194,13 @@ static const struct token token_list[] = { [ITEM_TAG_DATA] = { .name = "data", .help = "tag value to match", - .next = NEXT(item_tag, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_tag, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_tag, data)), }, [ITEM_TAG_INDEX] = { .name = "index", .help = "index of tag array to match", - .next = NEXT(item_tag, NEXT_ENTRY(UNSIGNED), + .next = NEXT(item_tag, NEXT_ENTRY(COMMON_UNSIGNED), NEXT_ENTRY(ITEM_PARAM_IS)), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_tag, index)), }, @@ -3215,7 +3215,7 @@ static const struct token token_list[] = { [ITEM_L2TPV3OIP_SESSION_ID] = { .name = "session_id", .help = "session identifier", - .next = NEXT(item_l2tpv3oip, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_l2tpv3oip, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_l2tpv3oip, session_id)), }, @@ -3229,7 +3229,7 @@ static const struct token token_list[] = { [ITEM_ESP_SPI] = { .name = "spi", .help = "security policy index", - .next = NEXT(item_esp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_esp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_esp, hdr.spi)), }, @@ -3243,7 +3243,7 @@ static const struct token token_list[] = { [ITEM_AH_SPI] = { .name = "spi", .help = "security parameters index", - .next = NEXT(item_ah, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_ah, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ah, spi)), }, [ITEM_PFCP] = { @@ -3256,14 +3256,14 @@ static const struct token token_list[] = { [ITEM_PFCP_S_FIELD] = { .name = "s_field", .help = "S field", - .next = NEXT(item_pfcp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_pfcp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_pfcp, s_field)), }, [ITEM_PFCP_SEID] = { .name = "seid", .help = "session endpoint identifier", - .next = NEXT(item_pfcp, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_pfcp, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_pfcp, seid)), }, [ITEM_ECPRI] = { @@ -3296,7 +3296,7 @@ static const struct token token_list[] = { .help = "Physical Channel ID", .next = NEXT(NEXT_ENTRY(ITEM_ECPRI_MSG_IQ_DATA_PCID, ITEM_ECPRI_COMMON, ITEM_NEXT), - NEXT_ENTRY(UNSIGNED), item_param), + NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ecpri, hdr.type0.pc_id)), }, @@ -3312,7 +3312,7 @@ static const struct token token_list[] = { .help = "Real-Time Control Data ID", .next = NEXT(NEXT_ENTRY(ITEM_ECPRI_MSG_RTC_CTRL_RTCID, ITEM_ECPRI_COMMON, ITEM_NEXT), - NEXT_ENTRY(UNSIGNED), item_param), + NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ecpri, hdr.type2.rtc_id)), }, @@ -3328,7 +3328,7 @@ static const struct token token_list[] = { .help = "Measurement ID", .next = NEXT(NEXT_ENTRY(ITEM_ECPRI_MSG_DLY_MSR_MSRID, ITEM_ECPRI_COMMON, ITEM_NEXT), - NEXT_ENTRY(UNSIGNED), item_param), + NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_ecpri, hdr.type5.msr_id)), }, @@ -3344,21 +3344,21 @@ static const struct token token_list[] = { [ITEM_GENEVE_OPT_CLASS] = { .name = "class", .help = "GENEVE option class", - .next = NEXT(item_geneve_opt, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_geneve_opt, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_geneve_opt, option_class)), }, [ITEM_GENEVE_OPT_TYPE] = { .name = "type", .help = "GENEVE option type", - .next = NEXT(item_geneve_opt, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_geneve_opt, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_geneve_opt, option_type)), }, [ITEM_GENEVE_OPT_LENGTH] = { .name = "length", .help = "GENEVE option data length (in 32b words)", - .next = NEXT(item_geneve_opt, NEXT_ENTRY(UNSIGNED), item_param), + .next = NEXT(item_geneve_opt, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_BOUNDED( struct rte_flow_item_geneve_opt, option_len, 0, 31)), @@ -3366,7 +3366,7 @@ static const struct token token_list[] = { [ITEM_GENEVE_OPT_DATA] = { .name = "data", .help = "GENEVE option data pattern", - .next = NEXT(item_geneve_opt, NEXT_ENTRY(HEX), item_param), + .next = NEXT(item_geneve_opt, NEXT_ENTRY(COMMON_HEX), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_geneve_opt, data), ARGS_ENTRY_ARB(0, 0), ARGS_ENTRY_ARB @@ -3415,7 +3415,7 @@ static const struct token token_list[] = { [ACTION_JUMP_GROUP] = { .name = "group", .help = "group to redirect traffic to", - .next = NEXT(action_jump, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_jump, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_jump, group)), .call = parse_vc_conf, }, @@ -3429,7 +3429,7 @@ static const struct token token_list[] = { [ACTION_MARK_ID] = { .name = "id", .help = "32 bit value to return with packets", - .next = NEXT(action_mark, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_mark, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_mark, id)), .call = parse_vc_conf, }, @@ -3451,7 +3451,7 @@ static const struct token token_list[] = { [ACTION_QUEUE_INDEX] = { .name = "index", .help = "queue index to use", - .next = NEXT(action_queue, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_queue, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_queue, index)), .call = parse_vc_conf, }, @@ -3473,14 +3473,14 @@ static const struct token token_list[] = { [ACTION_COUNT_ID] = { .name = "identifier", .help = "counter identifier to use", - .next = NEXT(action_count, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_count, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_count, id)), .call = parse_vc_conf, }, [ACTION_COUNT_SHARED] = { .name = "shared", .help = "shared counter", - .next = NEXT(action_count, NEXT_ENTRY(BOOLEAN)), + .next = NEXT(action_count, NEXT_ENTRY(COMMON_BOOLEAN)), .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_action_count, shared, 1)), .call = parse_vc_conf, @@ -3524,7 +3524,7 @@ static const struct token token_list[] = { [ACTION_RSS_LEVEL] = { .name = "level", .help = "encapsulation level for \"types\"", - .next = NEXT(action_rss, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_rss, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY_ARB (offsetof(struct action_rss_data, conf) + offsetof(struct rte_flow_action_rss, level), @@ -3545,7 +3545,7 @@ static const struct token token_list[] = { [ACTION_RSS_KEY] = { .name = "key", .help = "RSS hash key", - .next = NEXT(action_rss, NEXT_ENTRY(HEX)), + .next = NEXT(action_rss, NEXT_ENTRY(COMMON_HEX)), .args = ARGS(ARGS_ENTRY_ARB (offsetof(struct action_rss_data, conf) + offsetof(struct rte_flow_action_rss, key), @@ -3560,7 +3560,7 @@ static const struct token token_list[] = { [ACTION_RSS_KEY_LEN] = { .name = "key_len", .help = "RSS hash key length in bytes", - .next = NEXT(action_rss, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_rss, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY_ARB_BOUNDED (offsetof(struct action_rss_data, conf) + offsetof(struct rte_flow_action_rss, key_len), @@ -3598,7 +3598,7 @@ static const struct token token_list[] = { [ACTION_VF_ORIGINAL] = { .name = "original", .help = "use original VF ID if possible", - .next = NEXT(action_vf, NEXT_ENTRY(BOOLEAN)), + .next = NEXT(action_vf, NEXT_ENTRY(COMMON_BOOLEAN)), .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_action_vf, original, 1)), .call = parse_vc_conf, @@ -3606,7 +3606,7 @@ static const struct token token_list[] = { [ACTION_VF_ID] = { .name = "id", .help = "VF ID", - .next = NEXT(action_vf, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_vf, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_vf, id)), .call = parse_vc_conf, }, @@ -3621,7 +3621,7 @@ static const struct token token_list[] = { [ACTION_PHY_PORT_ORIGINAL] = { .name = "original", .help = "use original port index if possible", - .next = NEXT(action_phy_port, NEXT_ENTRY(BOOLEAN)), + .next = NEXT(action_phy_port, NEXT_ENTRY(COMMON_BOOLEAN)), .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_action_phy_port, original, 1)), .call = parse_vc_conf, @@ -3629,7 +3629,7 @@ static const struct token token_list[] = { [ACTION_PHY_PORT_INDEX] = { .name = "index", .help = "physical port index", - .next = NEXT(action_phy_port, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_phy_port, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_phy_port, index)), .call = parse_vc_conf, @@ -3645,7 +3645,7 @@ static const struct token token_list[] = { [ACTION_PORT_ID_ORIGINAL] = { .name = "original", .help = "use original DPDK port ID if possible", - .next = NEXT(action_port_id, NEXT_ENTRY(BOOLEAN)), + .next = NEXT(action_port_id, NEXT_ENTRY(COMMON_BOOLEAN)), .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_action_port_id, original, 1)), .call = parse_vc_conf, @@ -3653,7 +3653,7 @@ static const struct token token_list[] = { [ACTION_PORT_ID_ID] = { .name = "id", .help = "DPDK port ID", - .next = NEXT(action_port_id, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_port_id, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_port_id, id)), .call = parse_vc_conf, }, @@ -3668,7 +3668,7 @@ static const struct token token_list[] = { [ACTION_METER_ID] = { .name = "mtr_id", .help = "meter id to use", - .next = NEXT(action_meter, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_meter, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_meter, mtr_id)), .call = parse_vc_conf, }, @@ -3684,7 +3684,7 @@ static const struct token token_list[] = { [ACTION_OF_SET_MPLS_TTL_MPLS_TTL] = { .name = "mpls_ttl", .help = "MPLS TTL", - .next = NEXT(action_of_set_mpls_ttl, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_of_set_mpls_ttl, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_of_set_mpls_ttl, mpls_ttl)), .call = parse_vc_conf, @@ -3708,7 +3708,7 @@ static const struct token token_list[] = { [ACTION_OF_SET_NW_TTL_NW_TTL] = { .name = "nw_ttl", .help = "IP TTL", - .next = NEXT(action_of_set_nw_ttl, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_of_set_nw_ttl, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_of_set_nw_ttl, nw_ttl)), .call = parse_vc_conf, @@ -3753,7 +3753,7 @@ static const struct token token_list[] = { [ACTION_OF_PUSH_VLAN_ETHERTYPE] = { .name = "ethertype", .help = "EtherType", - .next = NEXT(action_of_push_vlan, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_of_push_vlan, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_action_of_push_vlan, ethertype)), @@ -3771,7 +3771,7 @@ static const struct token token_list[] = { [ACTION_OF_SET_VLAN_VID_VLAN_VID] = { .name = "vlan_vid", .help = "VLAN id", - .next = NEXT(action_of_set_vlan_vid, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_of_set_vlan_vid, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_action_of_set_vlan_vid, vlan_vid)), @@ -3789,7 +3789,7 @@ static const struct token token_list[] = { [ACTION_OF_SET_VLAN_PCP_VLAN_PCP] = { .name = "vlan_pcp", .help = "VLAN priority", - .next = NEXT(action_of_set_vlan_pcp, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_of_set_vlan_pcp, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_action_of_set_vlan_pcp, vlan_pcp)), @@ -3806,7 +3806,7 @@ static const struct token token_list[] = { [ACTION_OF_POP_MPLS_ETHERTYPE] = { .name = "ethertype", .help = "EtherType", - .next = NEXT(action_of_pop_mpls, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_of_pop_mpls, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_action_of_pop_mpls, ethertype)), @@ -3824,7 +3824,7 @@ static const struct token token_list[] = { [ACTION_OF_PUSH_MPLS_ETHERTYPE] = { .name = "ethertype", .help = "EtherType", - .next = NEXT(action_of_push_mpls, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_of_push_mpls, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_action_of_push_mpls, ethertype)), @@ -3932,7 +3932,7 @@ static const struct token token_list[] = { [ACTION_SET_IPV4_SRC_IPV4_SRC] = { .name = "ipv4_addr", .help = "new IPv4 source address to set", - .next = NEXT(action_set_ipv4_src, NEXT_ENTRY(IPV4_ADDR)), + .next = NEXT(action_set_ipv4_src, NEXT_ENTRY(COMMON_IPV4_ADDR)), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_action_set_ipv4, ipv4_addr)), .call = parse_vc_conf, @@ -3949,7 +3949,7 @@ static const struct token token_list[] = { [ACTION_SET_IPV4_DST_IPV4_DST] = { .name = "ipv4_addr", .help = "new IPv4 destination address to set", - .next = NEXT(action_set_ipv4_dst, NEXT_ENTRY(IPV4_ADDR)), + .next = NEXT(action_set_ipv4_dst, NEXT_ENTRY(COMMON_IPV4_ADDR)), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_action_set_ipv4, ipv4_addr)), .call = parse_vc_conf, @@ -3966,7 +3966,7 @@ static const struct token token_list[] = { [ACTION_SET_IPV6_SRC_IPV6_SRC] = { .name = "ipv6_addr", .help = "new IPv6 source address to set", - .next = NEXT(action_set_ipv6_src, NEXT_ENTRY(IPV6_ADDR)), + .next = NEXT(action_set_ipv6_src, NEXT_ENTRY(COMMON_IPV6_ADDR)), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_action_set_ipv6, ipv6_addr)), .call = parse_vc_conf, @@ -3983,7 +3983,7 @@ static const struct token token_list[] = { [ACTION_SET_IPV6_DST_IPV6_DST] = { .name = "ipv6_addr", .help = "new IPv6 destination address to set", - .next = NEXT(action_set_ipv6_dst, NEXT_ENTRY(IPV6_ADDR)), + .next = NEXT(action_set_ipv6_dst, NEXT_ENTRY(COMMON_IPV6_ADDR)), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_action_set_ipv6, ipv6_addr)), .call = parse_vc_conf, @@ -4000,7 +4000,7 @@ static const struct token token_list[] = { [ACTION_SET_TP_SRC_TP_SRC] = { .name = "port", .help = "new source port number to set", - .next = NEXT(action_set_tp_src, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_set_tp_src, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_action_set_tp, port)), .call = parse_vc_conf, @@ -4017,7 +4017,7 @@ static const struct token token_list[] = { [ACTION_SET_TP_DST_TP_DST] = { .name = "port", .help = "new destination port number to set", - .next = NEXT(action_set_tp_dst, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_set_tp_dst, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_action_set_tp, port)), .call = parse_vc_conf, @@ -4048,7 +4048,7 @@ static const struct token token_list[] = { [ACTION_SET_TTL_TTL] = { .name = "ttl_value", .help = "new ttl value to set", - .next = NEXT(action_set_ttl, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_set_ttl, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_action_set_ttl, ttl_value)), .call = parse_vc_conf, @@ -4064,7 +4064,7 @@ static const struct token token_list[] = { [ACTION_SET_MAC_SRC_MAC_SRC] = { .name = "mac_addr", .help = "new source mac address", - .next = NEXT(action_set_mac_src, NEXT_ENTRY(MAC_ADDR)), + .next = NEXT(action_set_mac_src, NEXT_ENTRY(COMMON_MAC_ADDR)), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_action_set_mac, mac_addr)), .call = parse_vc_conf, @@ -4080,7 +4080,7 @@ static const struct token token_list[] = { [ACTION_SET_MAC_DST_MAC_DST] = { .name = "mac_addr", .help = "new destination mac address to set", - .next = NEXT(action_set_mac_dst, NEXT_ENTRY(MAC_ADDR)), + .next = NEXT(action_set_mac_dst, NEXT_ENTRY(COMMON_MAC_ADDR)), .args = ARGS(ARGS_ENTRY_HTON (struct rte_flow_action_set_mac, mac_addr)), .call = parse_vc_conf, @@ -4095,7 +4095,7 @@ static const struct token token_list[] = { [ACTION_INC_TCP_SEQ_VALUE] = { .name = "value", .help = "the value to increase TCP sequence number by", - .next = NEXT(action_inc_tcp_seq, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_inc_tcp_seq, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARG_ENTRY_HTON(rte_be32_t)), .call = parse_vc_conf, }, @@ -4109,7 +4109,7 @@ static const struct token token_list[] = { [ACTION_DEC_TCP_SEQ_VALUE] = { .name = "value", .help = "the value to decrease TCP sequence number by", - .next = NEXT(action_dec_tcp_seq, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_dec_tcp_seq, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARG_ENTRY_HTON(rte_be32_t)), .call = parse_vc_conf, }, @@ -4123,7 +4123,7 @@ static const struct token token_list[] = { [ACTION_INC_TCP_ACK_VALUE] = { .name = "value", .help = "the value to increase TCP acknowledgment number by", - .next = NEXT(action_inc_tcp_ack, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_inc_tcp_ack, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARG_ENTRY_HTON(rte_be32_t)), .call = parse_vc_conf, }, @@ -4137,7 +4137,7 @@ static const struct token token_list[] = { [ACTION_DEC_TCP_ACK_VALUE] = { .name = "value", .help = "the value to decrease TCP acknowledgment number by", - .next = NEXT(action_dec_tcp_ack, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_dec_tcp_ack, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARG_ENTRY_HTON(rte_be32_t)), .call = parse_vc_conf, }, @@ -4220,7 +4220,7 @@ static const struct token token_list[] = { [ACTION_MODIFY_FIELD_DST_LEVEL] = { .name = "dst_level", .help = "destination field level", - .next = NEXT(action_modify_field_dst, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_modify_field_dst, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_modify_field, dst.level)), .call = parse_vc_conf, @@ -4228,7 +4228,7 @@ static const struct token token_list[] = { [ACTION_MODIFY_FIELD_DST_OFFSET] = { .name = "dst_offset", .help = "destination field bit offset", - .next = NEXT(action_modify_field_dst, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_modify_field_dst, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_modify_field, dst.offset)), .call = parse_vc_conf, @@ -4249,7 +4249,7 @@ static const struct token token_list[] = { [ACTION_MODIFY_FIELD_SRC_LEVEL] = { .name = "src_level", .help = "source field level", - .next = NEXT(action_modify_field_src, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_modify_field_src, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_modify_field, src.level)), .call = parse_vc_conf, @@ -4257,7 +4257,7 @@ static const struct token token_list[] = { [ACTION_MODIFY_FIELD_SRC_OFFSET] = { .name = "src_offset", .help = "source field bit offset", - .next = NEXT(action_modify_field_src, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_modify_field_src, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_modify_field, src.offset)), .call = parse_vc_conf, @@ -4266,7 +4266,7 @@ static const struct token token_list[] = { .name = "src_value", .help = "source immediate value", .next = NEXT(NEXT_ENTRY(ACTION_MODIFY_FIELD_WIDTH), - NEXT_ENTRY(UNSIGNED)), + NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_modify_field, src.value)), .call = parse_vc_conf, @@ -4275,7 +4275,7 @@ static const struct token token_list[] = { .name = "width", .help = "number of bits to copy", .next = NEXT(NEXT_ENTRY(ACTION_NEXT), - NEXT_ENTRY(UNSIGNED)), + NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_modify_field, width)), .call = parse_vc_conf, @@ -4315,7 +4315,7 @@ static const struct token token_list[] = { }, [SET_RAW_INDEX] = { .name = "{index}", - .type = "UNSIGNED", + .type = "COMMON_UNSIGNED", .help = "index of raw_encap/raw_decap data", .next = NEXT(next_item), .call = parse_port, @@ -4348,14 +4348,14 @@ static const struct token token_list[] = { [ACTION_SET_TAG_INDEX] = { .name = "index", .help = "index of tag array", - .next = NEXT(action_set_tag, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_set_tag, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY(struct rte_flow_action_set_tag, index)), .call = parse_vc_conf, }, [ACTION_SET_TAG_DATA] = { .name = "data", .help = "tag value", - .next = NEXT(action_set_tag, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_set_tag, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY (struct rte_flow_action_set_tag, data)), .call = parse_vc_conf, @@ -4363,7 +4363,7 @@ static const struct token token_list[] = { [ACTION_SET_TAG_MASK] = { .name = "mask", .help = "mask for tag value", - .next = NEXT(action_set_tag, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_set_tag, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY (struct rte_flow_action_set_tag, mask)), .call = parse_vc_conf, @@ -4379,7 +4379,7 @@ static const struct token token_list[] = { [ACTION_SET_META_DATA] = { .name = "data", .help = "metadata value", - .next = NEXT(action_set_meta, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_set_meta, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY (struct rte_flow_action_set_meta, data)), .call = parse_vc_conf, @@ -4387,7 +4387,7 @@ static const struct token token_list[] = { [ACTION_SET_META_MASK] = { .name = "mask", .help = "mask for metadata value", - .next = NEXT(action_set_meta, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_set_meta, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY (struct rte_flow_action_set_meta, mask)), .call = parse_vc_conf, @@ -4403,7 +4403,7 @@ static const struct token token_list[] = { [ACTION_SET_IPV4_DSCP_VALUE] = { .name = "dscp_value", .help = "new IPv4 DSCP value to set", - .next = NEXT(action_set_ipv4_dscp, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_set_ipv4_dscp, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY (struct rte_flow_action_set_dscp, dscp)), .call = parse_vc_conf, @@ -4419,7 +4419,7 @@ static const struct token token_list[] = { [ACTION_SET_IPV6_DSCP_VALUE] = { .name = "dscp_value", .help = "new IPv6 DSCP value to set", - .next = NEXT(action_set_ipv6_dscp, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_set_ipv6_dscp, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY (struct rte_flow_action_set_dscp, dscp)), .call = parse_vc_conf, @@ -4437,7 +4437,7 @@ static const struct token token_list[] = { .help = "flow age timeout value", .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_action_age, timeout, 24)), - .next = NEXT(action_age, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_age, NEXT_ENTRY(COMMON_UNSIGNED)), .call = parse_vc_conf, }, [ACTION_SAMPLE] = { @@ -4451,7 +4451,7 @@ static const struct token token_list[] = { [ACTION_SAMPLE_RATIO] = { .name = "ratio", .help = "flow sample ratio value", - .next = NEXT(action_sample, NEXT_ENTRY(UNSIGNED)), + .next = NEXT(action_sample, NEXT_ENTRY(COMMON_UNSIGNED)), .args = ARGS(ARGS_ENTRY_ARB (offsetof(struct action_sample_data, conf) + offsetof(struct rte_flow_action_sample, ratio), @@ -4465,7 +4465,7 @@ static const struct token token_list[] = { }, [ACTION_SAMPLE_INDEX_VALUE] = { .name = "{index}", - .type = "UNSIGNED", + .type = "COMMON_UNSIGNED", .help = "unsigned integer value", .next = NEXT(NEXT_ENTRY(ACTION_NEXT)), .call = parse_vc_action_sample_index, @@ -4476,7 +4476,7 @@ static const struct token token_list[] = { .name = "action_id", .help = "specify a shared action id to destroy", .next = NEXT(next_sa_destroy_attr, - NEXT_ENTRY(SHARED_ACTION_ID)), + NEXT_ENTRY(COMMON_SHARED_ACTION_ID)), .args = ARGS(ARGS_ENTRY_PTR(struct buffer, args.sa_destroy.action_id)), .call = parse_sa_destroy, @@ -4486,7 +4486,7 @@ static const struct token token_list[] = { .name = "action_id", .help = "specify a shared action id to create", .next = NEXT(next_sa_create_attr, - NEXT_ENTRY(SHARED_ACTION_ID)), + NEXT_ENTRY(COMMON_SHARED_ACTION_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, args.vc.attr.group)), }, [ACTION_SHARED] = { @@ -4839,34 +4839,34 @@ parse_vc(struct context *ctx, const struct token *token, default: ctx->object = &out->args.vc.attr; break; - case TUNNEL_SET: - case TUNNEL_MATCH: + case VC_TUNNEL_SET: + case VC_TUNNEL_MATCH: ctx->object = &out->args.vc.tunnel_ops; break; } ctx->objmask = NULL; switch (ctx->curr) { - case GROUP: - case PRIORITY: + case VC_GROUP: + case VC_PRIORITY: return len; - case TUNNEL_SET: + case VC_TUNNEL_SET: out->args.vc.tunnel_ops.enabled = 1; out->args.vc.tunnel_ops.actions = 1; return len; - case TUNNEL_MATCH: + case VC_TUNNEL_MATCH: out->args.vc.tunnel_ops.enabled = 1; out->args.vc.tunnel_ops.items = 1; return len; - case INGRESS: + case VC_INGRESS: out->args.vc.attr.ingress = 1; return len; - case EGRESS: + case VC_EGRESS: out->args.vc.attr.egress = 1; return len; - case TRANSFER: + case VC_TRANSFER: out->args.vc.attr.transfer = 1; return len; - case PATTERN: + case ITEM_PATTERN: out->args.vc.pattern = (void *)RTE_ALIGN_CEIL((uintptr_t)(out + 1), sizeof(double)); @@ -4947,7 +4947,7 @@ parse_vc_spec(struct context *ctx, const struct token *token, return -1; /* Parse parameter types. */ switch (ctx->curr) { - static const enum index prefix[] = NEXT_ENTRY(PREFIX); + static const enum index prefix[] = NEXT_ENTRY(COMMON_PREFIX); case ITEM_PARAM_IS: index = 0; From patchwork Mon Apr 19 23:19:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 91793 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 2BAF0A0579; Tue, 20 Apr 2021 01:20:37 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DFAE9414D9; Tue, 20 Apr 2021 01:20:13 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 0C6DD40685 for ; Tue, 20 Apr 2021 01:20:07 +0200 (CEST) Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (linux.microsoft.com [13.77.154.182]) by linux.microsoft.com (Postfix) with ESMTPSA id D030D20B83DA; Mon, 19 Apr 2021 16:20:05 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com D030D20B83DA DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1618874405; bh=SPSV9RlZ1v1VwJUeBI5U07x3rL0cpfwGcqGveOg3NVw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rEpYtYmrMCfXOvaKxuYxUEOY0m+itTOCikFsy7QTQ7M/4OO+nnDEbIiu7c51NanA7 Yoxwcc+6jPdXQKrQV9ZjNrOHDkMp8evQKey5yDpCfR6g/p6nRBD+Rtu1qEkH8FUMVq N28YaR+ZfO1c2DP6TEMe9TRNu6qKGZfsj4xP+mhE= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com Date: Mon, 19 Apr 2021 16:19:55 -0700 Message-Id: <1618874400-26819-6-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> References: <1618595864-27839-1-git-send-email-jizh@linux.microsoft.com> <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v6 05/10] app/testpmd: add clock_gettime_monotonic X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add clock_gettime_monotonic for testpmd on Windows Signed-off-by: Jie Zhou Signed-off-by: Jie Zhou --- app/test-pmd/config.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index ef0b9784d..a5f8fec5b 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -63,6 +63,12 @@ #define NS_PER_SEC 1E9 +#ifdef RTE_EXEC_ENV_WINDOWS +#define _clock_gettime_monotonic(cur_time) clock_gettime_monotonic(&cur_time) +#else +#define _clock_gettime_monotonic(cur_time) clock_gettime(CLOCK_TYPE_ID, &cur_time) +#endif + static char *flowtype_to_str(uint16_t flow_type); static const struct { @@ -170,6 +176,27 @@ print_ethaddr(const char *name, struct rte_ether_addr *eth_addr) printf("%s%s", name, buf); } +#ifdef RTE_EXEC_ENV_WINDOWS +static int +clock_gettime_monotonic(struct timespec *tp) +{ + LARGE_INTEGER pf, pc; + LONGLONG nsec; + + if (QueryPerformanceFrequency(&pf) == 0) + return -1; + + if (QueryPerformanceCounter(&pc) == 0) + return -1; + + nsec = pc.QuadPart * NS_PER_SEC / pf.QuadPart; + tp->tv_sec = nsec / NS_PER_SEC; + tp->tv_nsec = nsec - tp->tv_sec * NS_PER_SEC; + + return 0; +} +#endif + void nic_stats_display(portid_t port_id) { @@ -186,6 +213,8 @@ nic_stats_display(portid_t port_id) static const char *nic_stats_border = "########################"; + int ret; + if (port_id_is_invalid(port_id, ENABLED_WARN)) { print_valid_ports(); return; @@ -202,7 +231,9 @@ nic_stats_display(portid_t port_id) "%-"PRIu64"\n", stats.opackets, stats.oerrors, stats.obytes); diff_ns = 0; - if (clock_gettime(CLOCK_TYPE_ID, &cur_time) == 0) { + + ret = _clock_gettime_monotonic(cur_time); + if (ret == 0) { uint64_t ns; ns = cur_time.tv_sec * NS_PER_SEC; From patchwork Mon Apr 19 23:19:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 91794 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 740E5A0579; Tue, 20 Apr 2021 01:20:42 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2D05A414DF; Tue, 20 Apr 2021 01:20:15 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 168AD41448 for ; Tue, 20 Apr 2021 01:20:07 +0200 (CEST) Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (linux.microsoft.com [13.77.154.182]) by linux.microsoft.com (Postfix) with ESMTPSA id E54B420B83DB; Mon, 19 Apr 2021 16:20:05 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com E54B420B83DB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1618874405; bh=trkdCZvWCaIs0gTTXrHGn5xP7V7icts6lEhtAPtLwy4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=poX5luYblWcGA9q366cpU8QvOyukeyLBZ/AYg/o+vAy7vL/vr9FciR/7uKNbTI80u ke/arg2ugkduggFmmhTR80L1Og8hUHbT0qg8z+pMaRNAPhpIqyIqyrTCeqmOY7jP9Q 66eNTeNkVB7oC1eafmLy7D7DyzEuzlwSP3H7Akq8= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com Date: Mon, 19 Apr 2021 16:19:56 -0700 Message-Id: <1618874400-26819-7-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> References: <1618595864-27839-1-git-send-email-jizh@linux.microsoft.com> <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v6 06/10] app/testpmd: fix parse_fec_mode return type X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Fix parse_fec_mode to return fec_capa instead of mode Signed-off-by: Jie Zhou Signed-off-by: Jie Zhou --- app/test-pmd/cmdline.c | 6 +++--- app/test-pmd/config.c | 4 ++-- app/test-pmd/testpmd.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index f44116b08..3c3d79d77 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -16458,17 +16458,17 @@ cmd_set_port_fec_mode_parsed( { struct cmd_set_port_fec_mode *res = parsed_result; uint16_t port_id = res->port_id; - uint32_t mode; + uint32_t fec_capa; int ret; - ret = parse_fec_mode(res->fec_value, &mode); + ret = parse_fec_mode(res->fec_value, &fec_capa); if (ret < 0) { printf("Unknown fec mode: %s for Port %d\n", res->fec_value, port_id); return; } - ret = rte_eth_fec_set(port_id, mode); + ret = rte_eth_fec_set(port_id, fec_capa); if (ret == -ENOTSUP) { printf("Function not implemented\n"); return; diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index a5f8fec5b..d2b9f11a3 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -3435,13 +3435,13 @@ set_tx_pkt_split(const char *name) } int -parse_fec_mode(const char *name, uint32_t *mode) +parse_fec_mode(const char *name, uint32_t *fec_capa) { uint8_t i; for (i = 0; i < RTE_DIM(fec_mode_name); i++) { if (strcmp(fec_mode_name[i].name, name) == 0) { - *mode = RTE_ETH_FEC_MODE_TO_CAPA(fec_mode_name[i].mode); + *fec_capa = RTE_ETH_FEC_MODE_TO_CAPA(fec_mode_name[i].mode); return 0; } } diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index a87ccb0f0..9c62ed69d 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -881,7 +881,7 @@ void show_tx_pkt_segments(void); void set_tx_pkt_times(unsigned int *tx_times); void show_tx_pkt_times(void); void set_tx_pkt_split(const char *name); -int parse_fec_mode(const char *name, enum rte_eth_fec_mode *mode); +int parse_fec_mode(const char *name, uint32_t *fec_capa); void show_fec_capability(uint32_t num, struct rte_eth_fec_capa *speed_fec_capa); void set_nb_pkt_per_burst(uint16_t pkt_burst); char *list_pkt_forwarding_modes(void); From patchwork Mon Apr 19 23:19:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 91796 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id CAFDCA0579; Tue, 20 Apr 2021 01:20:52 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C9EAE414E8; Tue, 20 Apr 2021 01:20:17 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 1B652414B5 for ; Tue, 20 Apr 2021 01:20:07 +0200 (CEST) Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (linux.microsoft.com [13.77.154.182]) by linux.microsoft.com (Postfix) with ESMTPSA id 0627620B83E8; Mon, 19 Apr 2021 16:20:06 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 0627620B83E8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1618874406; bh=4o52UjS5U7tMRSbMZdaByKA0xSwusUcN64mvnwpjEoE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kABgRVDVjQZx2s/aGDc3YdblXNpA8IWwOXCGOdhkp+HV1xR3Lbu7R7xOi9xo9QvMz P0/s3AkYECp82u9Wfj0dDdfTXpJiM0WEcUgmmkP0kU2WR9RzxY0AXdM1hiyI/57oqB PnX7LEFl0pClJskz2f9PdJ2NvRvx6LW8pb8gW1Rw= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com Date: Mon, 19 Apr 2021 16:19:57 -0700 Message-Id: <1618874400-26819-8-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> References: <1618595864-27839-1-git-send-email-jizh@linux.microsoft.com> <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v6 07/10] app/testpmd: replace POSIX specific code X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" - Make printf format OS independent - Replace htons with RTE_BE16 - Replace POSIX specific inet_aton with OS independent inet_pton - Replace sleep with rte_delay_us_sleep - Repalce random with rte_rand - #ifndef mman related code for now Signed-off-by: Jie Zhou Signed-off-by: Jie Zhou --- app/test-pmd/cmdline.c | 3 +-- app/test-pmd/csumonly.c | 2 +- app/test-pmd/icmpecho.c | 4 ++-- app/test-pmd/ieee1588fwd.c | 8 ++++---- app/test-pmd/parameters.c | 10 +++++++--- app/test-pmd/testpmd.c | 21 ++++++++++++++++++++- app/test-pmd/testpmd.h | 2 +- 7 files changed, 36 insertions(+), 14 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 3c3d79d77..be0107e18 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -8,7 +8,6 @@ #include #include #include -#include #include #include #include @@ -3502,7 +3501,7 @@ cmdline_parse_inst_t cmd_stop = { /* *** SET CORELIST and PORTLIST CONFIGURATION *** */ unsigned int -parse_item_list(char* str, const char* item_name, unsigned int max_items, +parse_item_list(const char *str, const char *item_name, unsigned int max_items, unsigned int *parsed_items, int check_unique_values) { unsigned int nb_item; diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index 6b4df335f..089936587 100644 --- a/app/test-pmd/csumonly.c +++ b/app/test-pmd/csumonly.c @@ -696,7 +696,7 @@ pkt_copy_split(const struct rte_mbuf *pkt) mp = current_fwd_lcore()->mbp; if (tx_pkt_split == TX_PKT_SPLIT_RND) - nb_seg = random() % tx_pkt_nb_segs + 1; + nb_seg = rte_rand() % tx_pkt_nb_segs + 1; else nb_seg = tx_pkt_nb_segs; diff --git a/app/test-pmd/icmpecho.c b/app/test-pmd/icmpecho.c index af6f7e790..8948f28eb 100644 --- a/app/test-pmd/icmpecho.c +++ b/app/test-pmd/icmpecho.c @@ -474,8 +474,8 @@ reply_to_icmp_echo_rqsts(struct fwd_stream *fs) } icmp_h->icmp_type = RTE_IP_ICMP_ECHO_REPLY; cksum = ~icmp_h->icmp_cksum & 0xffff; - cksum += ~htons(RTE_IP_ICMP_ECHO_REQUEST << 8) & 0xffff; - cksum += htons(RTE_IP_ICMP_ECHO_REPLY << 8); + cksum += ~RTE_BE16(RTE_IP_ICMP_ECHO_REQUEST << 8) & 0xffff; + cksum += RTE_BE16(RTE_IP_ICMP_ECHO_REPLY << 8); cksum = (cksum & 0xffff) + (cksum >> 16); cksum = (cksum & 0xffff) + (cksum >> 16); icmp_h->icmp_cksum = ~cksum; diff --git a/app/test-pmd/ieee1588fwd.c b/app/test-pmd/ieee1588fwd.c index e3b98e3e0..034f238c3 100644 --- a/app/test-pmd/ieee1588fwd.c +++ b/app/test-pmd/ieee1588fwd.c @@ -60,8 +60,8 @@ port_ieee1588_rx_timestamp_check(portid_t pi, uint32_t index) printf("Port %u RX timestamp registers not valid\n", pi); return; } - printf("Port %u RX timestamp value %lu s %lu ns\n", - pi, timestamp.tv_sec, timestamp.tv_nsec); + printf("Port %u RX timestamp value %ju s %lu ns\n", + pi, (uintmax_t)timestamp.tv_sec, timestamp.tv_nsec); } #define MAX_TX_TMST_WAIT_MICROSECS 1000 /**< 1 milli-second */ @@ -83,9 +83,9 @@ port_ieee1588_tx_timestamp_check(portid_t pi) pi, MAX_TX_TMST_WAIT_MICROSECS); return; } - printf("Port %u TX timestamp value %lu s %lu ns validated after " + printf("Port %u TX timestamp value %ju s %lu ns validated after " "%u micro-second%s\n", - pi, timestamp.tv_sec, timestamp.tv_nsec, wait_us, + pi, (uintmax_t)timestamp.tv_sec, timestamp.tv_nsec, wait_us, (wait_us == 1) ? "" : "s"); } diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c index f3954c1c6..4c3cbbac3 100644 --- a/app/test-pmd/parameters.c +++ b/app/test-pmd/parameters.c @@ -185,8 +185,10 @@ usage(char* progname) printf(" --hot-plug: enable hot plug for device.\n"); printf(" --vxlan-gpe-port=N: UPD port of tunnel VXLAN-GPE\n"); printf(" --geneve-parsed-port=N: UPD port to parse GENEVE tunnel protocol\n"); +#ifndef RTE_EXEC_ENV_WINDOWS printf(" --mlockall: lock all memory\n"); printf(" --no-mlockall: do not lock all memory\n"); +#endif printf(" --mp-alloc : mempool allocation method.\n" " native: use regular DPDK memory to create and populate mempool\n" " anon: use regular DPDK memory to create and anonymous memory to populate mempool\n" @@ -211,7 +213,7 @@ usage(char* progname) #ifdef RTE_LIB_CMDLINE static int -init_peer_eth_addrs(char *config_filename) +init_peer_eth_addrs(const char *config_filename) { FILE *config_file; portid_t i; @@ -610,8 +612,10 @@ launch_args_parse(int argc, char** argv) { "hot-plug", 0, 0, 0 }, { "vxlan-gpe-port", 1, 0, 0 }, { "geneve-parsed-port", 1, 0, 0 }, +#ifndef RTE_EXEC_ENV_WINDOWS { "mlockall", 0, 0, 0 }, { "no-mlockall", 0, 0, 0 }, +#endif { "mp-alloc", 1, 0, 0 }, { "tx-ip", 1, 0, 0 }, { "tx-udp", 1, 0, 0 }, @@ -723,13 +727,13 @@ launch_args_parse(int argc, char** argv) "Invalid tx-ip: %s", optarg); *end++ = 0; - if (inet_aton(optarg, &in) == 0) + if (inet_pton(AF_INET, optarg, &in) == 0) rte_exit(EXIT_FAILURE, "Invalid source IP address: %s\n", optarg); tx_ip_src_addr = rte_be_to_cpu_32(in.s_addr); - if (inet_aton(end, &in) == 0) + if (inet_pton(AF_INET, end, &in) == 0) rte_exit(EXIT_FAILURE, "Invalid destination IP address: %s\n", optarg); diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 96d2e0fce..deea3f758 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -9,7 +9,9 @@ #include #include #include +#ifndef RTE_EXEC_ENV_WINDOWS #include +#endif #include #include #include @@ -60,6 +62,9 @@ #ifdef RTE_LIB_LATENCYSTATS #include #endif +#ifdef RTE_EXEC_ENV_WINDOWS +#include +#endif #include "testpmd.h" @@ -632,6 +637,7 @@ set_def_fwd_config(void) set_default_fwd_ports_config(); } +#ifndef RTE_EXEC_ENV_WINDOWS /* extremely pessimistic estimation of memory required to create a mempool */ static int calc_mem_size(uint32_t nb_mbufs, uint32_t mbuf_sz, size_t pgsz, size_t *out) @@ -902,6 +908,7 @@ dma_map_cb(struct rte_mempool *mp __rte_unused, void *opaque __rte_unused, } } } +#endif static unsigned int setup_extbuf(uint32_t nb_mbufs, uint16_t mbuf_sz, unsigned int socket_id, @@ -972,9 +979,11 @@ mbuf_pool_create(uint16_t mbuf_seg_size, unsigned nb_mbuf, { char pool_name[RTE_MEMPOOL_NAMESIZE]; struct rte_mempool *rte_mp = NULL; +#ifndef RTE_EXEC_ENV_WINDOWS uint32_t mb_size; mb_size = sizeof(struct rte_mbuf) + mbuf_seg_size; +#endif mbuf_poolname_build(socket_id, pool_name, sizeof(pool_name), size_idx); TESTPMD_LOG(INFO, @@ -991,6 +1000,7 @@ mbuf_pool_create(uint16_t mbuf_seg_size, unsigned nb_mbuf, mb_mempool_cache, 0, mbuf_seg_size, socket_id); break; } +#ifndef RTE_EXEC_ENV_WINDOWS case MP_ALLOC_ANON: { rte_mp = rte_mempool_create_empty(pool_name, nb_mbuf, @@ -1031,6 +1041,7 @@ mbuf_pool_create(uint16_t mbuf_seg_size, unsigned nb_mbuf, heap_socket); break; } +#endif case MP_ALLOC_XBUF: { struct rte_pktmbuf_extmem *ext_mem; @@ -1057,6 +1068,7 @@ mbuf_pool_create(uint16_t mbuf_seg_size, unsigned nb_mbuf, } } +#ifndef RTE_EXEC_ENV_WINDOWS err: if (rte_mp == NULL) { rte_exit(EXIT_FAILURE, @@ -1065,6 +1077,7 @@ mbuf_pool_create(uint16_t mbuf_seg_size, unsigned nb_mbuf, } else if (verbose_level > 0) { rte_mempool_dump(stdout, rte_mp); } +#endif return rte_mp; } @@ -3054,6 +3067,7 @@ pmd_test_exit(void) if (test_done == 0) stop_packet_forwarding(); +#ifndef RTE_EXEC_ENV_WINDOWS for (i = 0 ; i < RTE_DIM(mempools) ; i++) { if (mempools[i]) { if (mp_alloc_type == MP_ALLOC_ANON) @@ -3061,6 +3075,7 @@ pmd_test_exit(void) NULL); } } +#endif if (ports != NULL) { no_link_check = 1; RTE_ETH_FOREACH_DEV(pt_id) { @@ -3761,7 +3776,9 @@ signal_handler(int signum) f_quit = 1; /* exit with the expected status */ signal(signum, SIG_DFL); +#ifndef RTE_EXEC_ENV_WINDOWS kill(getpid(), signum); +#endif } } @@ -3836,10 +3853,12 @@ main(int argc, char** argv) if (argc > 1) launch_args_parse(argc, argv); +#ifndef RTE_EXEC_ENV_WINDOWS if (do_mlockall && mlockall(MCL_CURRENT | MCL_FUTURE)) { TESTPMD_LOG(NOTICE, "mlockall() failed with error \"%s\"\n", strerror(errno)); } +#endif if (tx_first && interactive) rte_exit(EXIT_FAILURE, "--tx-first cannot be used on " @@ -3960,7 +3979,7 @@ main(int argc, char** argv) } /* Sleep to avoid unnecessary checks */ prev_time = cur_time; - sleep(1); + rte_delay_us_sleep(1000000); } } diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index 9c62ed69d..6a828583b 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -761,7 +761,7 @@ inc_tx_burst_stats(struct fwd_stream *fs, uint16_t nb_tx) } /* Prototypes */ -unsigned int parse_item_list(char* str, const char* item_name, +unsigned int parse_item_list(const char *str, const char *item_name, unsigned int max_items, unsigned int *parsed_items, int check_unique_values); void launch_args_parse(int argc, char** argv); From patchwork Mon Apr 19 23:19:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 91795 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id C4A96A0579; Tue, 20 Apr 2021 01:20:47 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 77A0A414E2; Tue, 20 Apr 2021 01:20:16 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 1D0F2414BA for ; Tue, 20 Apr 2021 01:20:07 +0200 (CEST) Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (linux.microsoft.com [13.77.154.182]) by linux.microsoft.com (Postfix) with ESMTPSA id 1B54720B83ED; Mon, 19 Apr 2021 16:20:06 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 1B54720B83ED DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1618874406; bh=r32ifghK8B7rOvSKTwFrKsUMLQReFG95e8sGGhw0j+c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MJ5AsU0zMaI5Ky0ZSh/bQyDD/nt64GfNaF4UA4QxmOwyWyPpKOIQP5IIwr7mA+I5T V7DoNolcu45J6WqAFHsRddCBH++SSKcr8qKAGnQMkJKBBeTvD+3FArVQJck2L5rgm9 zESd41a/ptThbw8vS9eFGy24aYAvkBGZGHytg+Cg= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com Date: Mon, 19 Apr 2021 16:19:58 -0700 Message-Id: <1618874400-26819-9-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> References: <1618595864-27839-1-git-send-email-jizh@linux.microsoft.com> <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v6 08/10] app/testpmd: fix headers inclusion X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" - Include rte_os_shim.h in testpmd.h - Remove redundant headers Signed-off-by: Jie Zhou Signed-off-by: Jie Zhou --- app/test-pmd/cmdline.c | 3 --- app/test-pmd/cmdline_flow.c | 2 -- app/test-pmd/parameters.c | 1 - app/test-pmd/testpmd.h | 1 + 4 files changed, 1 insertion(+), 6 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index be0107e18..9eb731753 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -10,9 +10,6 @@ #include #include #include -#include -#include - #include #include diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index bbedd58c4..b577209fc 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -10,8 +10,6 @@ #include #include #include -#include -#include #include #include diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c index 4c3cbbac3..5e69d2aa8 100644 --- a/app/test-pmd/parameters.c +++ b/app/test-pmd/parameters.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index 6a828583b..cd4ec3409 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -11,6 +11,7 @@ #include #include #include +#include #include #include From patchwork Mon Apr 19 23:19:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 91798 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 09717A0579; Tue, 20 Apr 2021 01:21:03 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5D599414F5; Tue, 20 Apr 2021 01:20:20 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 2D3CE414BC for ; Tue, 20 Apr 2021 01:20:07 +0200 (CEST) Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (linux.microsoft.com [13.77.154.182]) by linux.microsoft.com (Postfix) with ESMTPSA id 30B7120B83F1; Mon, 19 Apr 2021 16:20:06 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 30B7120B83F1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1618874406; bh=YNDMvYgIHeq7hY+RVShGhM/mZ8s+IQYJ6gLerP6Nzk4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Hk9c8mvxQD7/dX04L//eoXdoqBZGVOL3D17aqT7+dnIUPX5Zyy1hhzMGApvi/7f3e ugHPMaqp8saYxjp7F1JmO3TXKQ0rseBWsdTm6cXDLBiuwyvtkuqSYHLyzV8SynE0mF kvPWed1u+DBMt4JyIH58rpMGfVRnInSLWTZKds+o= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com Date: Mon, 19 Apr 2021 16:19:59 -0700 Message-Id: <1618874400-26819-10-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> References: <1618595864-27839-1-git-send-email-jizh@linux.microsoft.com> <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v6 09/10] app/testpmd: fix unused function warnings X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Function print_fdir_mask and print_fdir_flex_payload is only called when either i40e or ixgbe presents. Add #if defined to remove "unused function" compilation warning. Signed-Off-By: jizh@microsoft.com Signed-off-by: Jie Zhou --- app/test-pmd/config.c | 82 +++++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index d2b9f11a3..1ab981b4e 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -4251,6 +4251,47 @@ set_record_burst_stats(uint8_t on_off) record_burst_stats = on_off; } +static char* +flowtype_to_str(uint16_t flow_type) +{ + struct flow_type_info { + char str[32]; + uint16_t ftype; + }; + + uint8_t i; + static struct flow_type_info flowtype_str_table[] = { + {"raw", RTE_ETH_FLOW_RAW}, + {"ipv4", RTE_ETH_FLOW_IPV4}, + {"ipv4-frag", RTE_ETH_FLOW_FRAG_IPV4}, + {"ipv4-tcp", RTE_ETH_FLOW_NONFRAG_IPV4_TCP}, + {"ipv4-udp", RTE_ETH_FLOW_NONFRAG_IPV4_UDP}, + {"ipv4-sctp", RTE_ETH_FLOW_NONFRAG_IPV4_SCTP}, + {"ipv4-other", RTE_ETH_FLOW_NONFRAG_IPV4_OTHER}, + {"ipv6", RTE_ETH_FLOW_IPV6}, + {"ipv6-frag", RTE_ETH_FLOW_FRAG_IPV6}, + {"ipv6-tcp", RTE_ETH_FLOW_NONFRAG_IPV6_TCP}, + {"ipv6-udp", RTE_ETH_FLOW_NONFRAG_IPV6_UDP}, + {"ipv6-sctp", RTE_ETH_FLOW_NONFRAG_IPV6_SCTP}, + {"ipv6-other", RTE_ETH_FLOW_NONFRAG_IPV6_OTHER}, + {"l2_payload", RTE_ETH_FLOW_L2_PAYLOAD}, + {"port", RTE_ETH_FLOW_PORT}, + {"vxlan", RTE_ETH_FLOW_VXLAN}, + {"geneve", RTE_ETH_FLOW_GENEVE}, + {"nvgre", RTE_ETH_FLOW_NVGRE}, + {"vxlan-gpe", RTE_ETH_FLOW_VXLAN_GPE}, + }; + + for (i = 0; i < RTE_DIM(flowtype_str_table); i++) { + if (flowtype_str_table[i].ftype == flow_type) + return flowtype_str_table[i].str; + } + + return NULL; +} + +#if defined(RTE_NET_I40E) || defined(RTE_NET_IXGBE) + static inline void print_fdir_mask(struct rte_eth_fdir_masks *mask) { @@ -4310,47 +4351,6 @@ print_fdir_flex_payload(struct rte_eth_fdir_flex_conf *flex_conf, uint32_t num) printf("\n"); } -static char * -flowtype_to_str(uint16_t flow_type) -{ - struct flow_type_info { - char str[32]; - uint16_t ftype; - }; - - uint8_t i; - static struct flow_type_info flowtype_str_table[] = { - {"raw", RTE_ETH_FLOW_RAW}, - {"ipv4", RTE_ETH_FLOW_IPV4}, - {"ipv4-frag", RTE_ETH_FLOW_FRAG_IPV4}, - {"ipv4-tcp", RTE_ETH_FLOW_NONFRAG_IPV4_TCP}, - {"ipv4-udp", RTE_ETH_FLOW_NONFRAG_IPV4_UDP}, - {"ipv4-sctp", RTE_ETH_FLOW_NONFRAG_IPV4_SCTP}, - {"ipv4-other", RTE_ETH_FLOW_NONFRAG_IPV4_OTHER}, - {"ipv6", RTE_ETH_FLOW_IPV6}, - {"ipv6-frag", RTE_ETH_FLOW_FRAG_IPV6}, - {"ipv6-tcp", RTE_ETH_FLOW_NONFRAG_IPV6_TCP}, - {"ipv6-udp", RTE_ETH_FLOW_NONFRAG_IPV6_UDP}, - {"ipv6-sctp", RTE_ETH_FLOW_NONFRAG_IPV6_SCTP}, - {"ipv6-other", RTE_ETH_FLOW_NONFRAG_IPV6_OTHER}, - {"l2_payload", RTE_ETH_FLOW_L2_PAYLOAD}, - {"port", RTE_ETH_FLOW_PORT}, - {"vxlan", RTE_ETH_FLOW_VXLAN}, - {"geneve", RTE_ETH_FLOW_GENEVE}, - {"nvgre", RTE_ETH_FLOW_NVGRE}, - {"vxlan-gpe", RTE_ETH_FLOW_VXLAN_GPE}, - }; - - for (i = 0; i < RTE_DIM(flowtype_str_table); i++) { - if (flowtype_str_table[i].ftype == flow_type) - return flowtype_str_table[i].str; - } - - return NULL; -} - -#if defined(RTE_NET_I40E) || defined(RTE_NET_IXGBE) - static inline void print_fdir_flex_mask(struct rte_eth_fdir_flex_conf *flex_conf, uint32_t num) { From patchwork Mon Apr 19 23:20:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 91797 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 121E2A0579; Tue, 20 Apr 2021 01:20:58 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 11825414EF; Tue, 20 Apr 2021 01:20:19 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 27C9D414BB for ; Tue, 20 Apr 2021 01:20:07 +0200 (CEST) Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (linux.microsoft.com [13.77.154.182]) by linux.microsoft.com (Postfix) with ESMTPSA id 45BE720B83F3; Mon, 19 Apr 2021 16:20:06 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 45BE720B83F3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1618874406; bh=wJCNB6RLSZUYbImKGhPFCWhvDLf/Iwdszh+32D6a/kE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=r3dq+sRDKcnSMMJSFgdA1SuQefBVZoUoXQsjASkX1L3g99CNTUTVeA6fWTFZtWLrw 83Tv687bYHx1xwSIOIJZTHM78dRwukQALfyLDGcGygY1t1mYqFMOYY7RaBx9rUUCR4 5b4J8bN7OYMy9MiKFwIvnt4IPNzcHaL0gkhP2dwQ= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com Date: Mon, 19 Apr 2021 16:20:00 -0700 Message-Id: <1618874400-26819-11-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> References: <1618595864-27839-1-git-send-email-jizh@linux.microsoft.com> <1618874400-26819-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v6 10/10] app/testpmd: enable building testpmd on Windows X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Jie Zhou - Disable unsupported Apps on Windows - Enable building of testpmd on Windows Signed-off-by: Jie Zhou Signed-off-by: Jie Zhou --- app/meson.build | 4 ---- app/pdump/meson.build | 6 ++++++ app/proc-info/meson.build | 6 ++++++ app/test-acl/meson.build | 6 ++++++ app/test-bbdev/meson.build | 6 ++++++ app/test-cmdline/meson.build | 6 ++++++ app/test-compress-perf/meson.build | 6 ++++++ app/test-crypto-perf/meson.build | 6 ++++++ app/test-eventdev/meson.build | 6 ++++++ app/test-fib/meson.build | 6 ++++++ app/test-flow-perf/meson.build | 6 ++++++ app/test-pipeline/meson.build | 6 ++++++ app/test-regex/meson.build | 6 ++++++ app/test-sad/meson.build | 6 ++++++ app/test/meson.build | 6 ++++++ 15 files changed, 84 insertions(+), 4 deletions(-) diff --git a/app/meson.build b/app/meson.build index 50a53dbde..8f9ece5f4 100644 --- a/app/meson.build +++ b/app/meson.build @@ -1,10 +1,6 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017-2019 Intel Corporation -if is_windows - subdir_done() -endif - apps = [ 'pdump', 'proc-info', diff --git a/app/pdump/meson.build b/app/pdump/meson.build index 7bb908e04..db1fcadbf 100644 --- a/app/pdump/meson.build +++ b/app/pdump/meson.build @@ -1,5 +1,11 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + sources = files('main.c') deps += ['ethdev', 'kvargs', 'pdump'] diff --git a/app/proc-info/meson.build b/app/proc-info/meson.build index f050c4a9b..82ed05bb0 100644 --- a/app/proc-info/meson.build +++ b/app/proc-info/meson.build @@ -1,5 +1,11 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + sources = files('main.c') deps += ['ethdev', 'metrics', 'security'] diff --git a/app/test-acl/meson.build b/app/test-acl/meson.build index d5c2581b4..14d36b33e 100644 --- a/app/test-acl/meson.build +++ b/app/test-acl/meson.build @@ -1,5 +1,11 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2019 Intel Corporation +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + sources = files('main.c') deps += ['acl', 'net'] diff --git a/app/test-bbdev/meson.build b/app/test-bbdev/meson.build index 6d50e0339..b4b767d89 100644 --- a/app/test-bbdev/meson.build +++ b/app/test-bbdev/meson.build @@ -1,6 +1,12 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + sources = files('main.c', 'test_bbdev.c', 'test_bbdev_perf.c', diff --git a/app/test-cmdline/meson.build b/app/test-cmdline/meson.build index 9d0a9aeb6..089882120 100644 --- a/app/test-cmdline/meson.build +++ b/app/test-cmdline/meson.build @@ -1,5 +1,11 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2019 Intel Corporation +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + sources = files('commands.c', 'cmdline_test.c') deps += 'cmdline' diff --git a/app/test-compress-perf/meson.build b/app/test-compress-perf/meson.build index a1a484da9..6ff3c179e 100644 --- a/app/test-compress-perf/meson.build +++ b/app/test-compress-perf/meson.build @@ -1,6 +1,12 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + sources = files('comp_perf_options_parse.c', 'main.c', 'comp_perf_test_verify.c', diff --git a/app/test-crypto-perf/meson.build b/app/test-crypto-perf/meson.build index 558c64878..eef7708e0 100644 --- a/app/test-crypto-perf/meson.build +++ b/app/test-crypto-perf/meson.build @@ -1,6 +1,12 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + sources = files('cperf_ops.c', 'cperf_options_parsing.c', 'cperf_test_common.c', diff --git a/app/test-eventdev/meson.build b/app/test-eventdev/meson.build index 9e588d9ec..5af31fbb0 100644 --- a/app/test-eventdev/meson.build +++ b/app/test-eventdev/meson.build @@ -1,6 +1,12 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Cavium, Inc +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + sources = files('evt_main.c', 'evt_options.c', 'evt_test.c', diff --git a/app/test-fib/meson.build b/app/test-fib/meson.build index f74ac651c..3360ea02b 100644 --- a/app/test-fib/meson.build +++ b/app/test-fib/meson.build @@ -1,5 +1,11 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2019 Intel Corporation +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + sources = files('main.c') deps += ['fib', 'lpm', 'net'] diff --git a/app/test-flow-perf/meson.build b/app/test-flow-perf/meson.build index 6eaf83b41..5d5d70f18 100644 --- a/app/test-flow-perf/meson.build +++ b/app/test-flow-perf/meson.build @@ -1,6 +1,12 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2020 Mellanox Technologies, Ltd +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + sources = files( 'actions_gen.c', 'flow_gen.c', diff --git a/app/test-pipeline/meson.build b/app/test-pipeline/meson.build index d5eddaba9..5e43d7d69 100644 --- a/app/test-pipeline/meson.build +++ b/app/test-pipeline/meson.build @@ -1,6 +1,12 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2019 Intel Corporation +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + sources = files( 'config.c', 'init.c', diff --git a/app/test-regex/meson.build b/app/test-regex/meson.build index 472677fb6..02b101980 100644 --- a/app/test-regex/meson.build +++ b/app/test-regex/meson.build @@ -1,5 +1,11 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright 2020 Mellanox Technologies, Ltd +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + sources = files('main.c') deps = ['regexdev'] diff --git a/app/test-sad/meson.build b/app/test-sad/meson.build index db15b658d..3d15727a0 100644 --- a/app/test-sad/meson.build +++ b/app/test-sad/meson.build @@ -1,5 +1,11 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2019 Intel Corporation +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + sources = files('main.c') deps += ['ipsec', 'net'] diff --git a/app/test/meson.build b/app/test/meson.build index 76eaaea45..5de5a6fae 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -1,6 +1,12 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + if not get_option('tests') subdir_done() endif