From patchwork Tue May 4 00:34: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: 92714 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 E1876A0562; Tue, 4 May 2021 02:34:16 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 46C9C410F7; Tue, 4 May 2021 02:34:16 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 629F14068E; Tue, 4 May 2021 02:34:15 +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 9AE1720B8006; Mon, 3 May 2021 17:34:14 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 9AE1720B8006 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1620088454; bh=y+Csti3P1aB9/nPBDS/H6buAOUGOGa429Aj40N9q5KQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Xx2m6LDDu9dY3FGkiYFydDrn/mbpNmBIqM+k1k9nTaeYOHQcy2AnIv0BM/507f/7T kU4XLArhLSRPKMPDYAEcH+xsQNxt6IqJCcSTRGW1IRqiIkfBpUjzERvJ+RSKhmWnSr y7rFumjb+VqwxlibeMtjWGNKPVOlazLjbeA5P3rw= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, talshn@nvidia.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com, konstantin.ananyev@intel.com, stable@dpdk.org Date: Mon, 3 May 2021 17:34:00 -0700 Message-Id: <1620088449-14770-2-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> References: <1619805162-10684-1-git-send-email-jizh@linux.microsoft.com> <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v10 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 for Windows Signed-off-by: Jie Zhou Signed-off-by: Jie Zhou --- lib/meson.build | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/meson.build b/lib/meson.build index c9a20f65b..2d499b238 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -76,8 +76,15 @@ if is_windows 'ethdev', 'pci', 'cmdline', + 'metrics', 'hash', + 'timer', + 'bitratestats', 'cfgfile', + 'gro', + 'gso', + 'latencystats', + 'pdump', ] # only supported libraries for windows endif From patchwork Tue May 4 00:34:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 92715 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 BD8B0A0562; Tue, 4 May 2021 02:34:21 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 89E52410FB; Tue, 4 May 2021 02:34:17 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 6D2B3410F0; Tue, 4 May 2021 02:34:15 +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 B083A20B8008; Mon, 3 May 2021 17:34:14 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com B083A20B8008 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1620088454; bh=5LPM2rmORGMATev58irZm9pEEVNWj1JadTGwtKpktOQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KfvW3jX5akydvIQbOdnZ4kx50b0qe7FfwrNW7valLWRsZd05+pLGdtXQscBxlQmAg b9zEgw2lmbErlxcxgaXXidkc9QtjU1Nhk5yC9JklYf9bAEl/CdC7tYZ4LAMFRQrg3q JcLguYBiCCUuIM3JotTzjCDr32DBSQ0SblhKMC5w= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, talshn@nvidia.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com, konstantin.ananyev@intel.com, stable@dpdk.org Date: Mon, 3 May 2021 17:34:01 -0700 Message-Id: <1620088449-14770-3-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> References: <1619805162-10684-1-git-send-email-jizh@linux.microsoft.com> <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v10 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/eal/windows/include/rte_os_shim.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/eal/windows/include/rte_os_shim.h b/lib/eal/windows/include/rte_os_shim.h index 433fa02c4..e60f27400 100644 --- a/lib/eal/windows/include/rte_os_shim.h +++ b/lib/eal/windows/include/rte_os_shim.h @@ -20,6 +20,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__) @@ -36,6 +37,14 @@ #define IPPROTO_SCTP 132 #endif +#ifndef IPDEFTTL +#define IPDEFTTL 64 +#endif + +#ifndef S_ISREG +#define S_ISREG(mode) (((mode)&S_IFMT) == S_IFREG) +#endif + #ifdef RTE_TOOLCHAIN_GCC #define TIME_UTC 1 From patchwork Tue May 4 00:34:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 92716 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 88837A0562; Tue, 4 May 2021 02:34:28 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EEDC54111C; Tue, 4 May 2021 02:34:18 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 7A782410F3; Tue, 4 May 2021 02:34:15 +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 C5CC720B800A; Mon, 3 May 2021 17:34:14 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com C5CC720B800A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1620088454; bh=jNwJ4Jm815GT64UZxTqIK6t+u3YeiO4tySi21vcIog4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lCIWy/kEoZnA6n8XRJTBq78YlgjQaDrJKSh25ZGCZxqSt93X2PGU88GXuIlwkF+bW QaEBcCSZ0sNmHjiB2HUmDuPjoLvo3pGoxUAoikwh25cjyVzrfEEAMIfLWbHr6hQE/v O5DCP3lP1mgLA5UHaoF1kMUaMha20sbpyNyBOdYA= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, talshn@nvidia.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com, konstantin.ananyev@intel.com, stable@dpdk.org Date: Mon, 3 May 2021 17:34:02 -0700 Message-Id: <1620088449-14770-4-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> References: <1619805162-10684-1-git-send-email-jizh@linux.microsoft.com> <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v10 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/eal/windows/eal_dev.c | 33 +++++++++++++++++++++++++++++++++ lib/eal/windows/meson.build | 1 + 2 files changed, 34 insertions(+) create mode 100644 lib/eal/windows/eal_dev.c diff --git a/lib/eal/windows/eal_dev.c b/lib/eal/windows/eal_dev.c new file mode 100644 index 000000000..35191056f --- /dev/null +++ b/lib/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/eal/windows/meson.build b/lib/eal/windows/meson.build index ff9cbec41..fc12fefd0 100644 --- a/lib/eal/windows/meson.build +++ b/lib/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 Tue May 4 00:34:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 92718 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 B0EB6A0562; Tue, 4 May 2021 02:34:40 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A175D41142; Tue, 4 May 2021 02:34:21 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 8FB99410F4; Tue, 4 May 2021 02:34:15 +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 DB3F320B800D; Mon, 3 May 2021 17:34:14 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com DB3F320B800D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1620088454; bh=U07gpvYj57fW7/atuUHJT87TKPDa0NQdWpfU7LJUfYg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NgbwAbocA7SlrR1g5X26lme3OFd5onQF9Q9B5iHBZTOhUVUnpoAjXfvnQ+Remf6Ol xgNLwYnWDcKePsFg3RAlHwcwtn+uq1ITSVx9tJQ661rfkS+FeaStCI0uoYli70Alm+ 9+NSWehg7nRey9agZqodHpfBIY5i4m8DkWW1c2+E= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, talshn@nvidia.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com, konstantin.ananyev@intel.com, stable@dpdk.org Date: Mon, 3 May 2021 17:34:03 -0700 Message-Id: <1620088449-14770-5-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> References: <1619805162-10684-1-git-send-email-jizh@linux.microsoft.com> <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v10 04/10] eal/Windows: add clock_gettime 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" Add clock_gettime on Windows in rte_os_shim.h Signed-off-by: Jie Zhou Signed-off-by: Jie Zhou --- lib/eal/windows/include/rte_os_shim.h | 38 +++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/lib/eal/windows/include/rte_os_shim.h b/lib/eal/windows/include/rte_os_shim.h index e60f27400..ec1087290 100644 --- a/lib/eal/windows/include/rte_os_shim.h +++ b/lib/eal/windows/include/rte_os_shim.h @@ -75,4 +75,42 @@ rte_timespec_get(struct timespec *now, int base) #endif /* RTE_TOOLCHAIN_GCC */ +/* Identifier for system-wide realtime clock. */ +#define CLOCK_REALTIME 0 +/* Monotonic system-wide clock. */ +#define CLOCK_MONOTONIC 1 +/* High-resolution timer from the CPU. */ +#define CLOCK_PROCESS_CPUTIME_ID 2 +/* Thread-specific CPU-time clock. */ +#define CLOCK_THREAD_CPUTIME_ID 3 + +#define NS_PER_SEC 1E9 + +typedef int clockid_t; + +static inline int +rte_clock_gettime(clockid_t clock_id, struct timespec *tp) +{ + LARGE_INTEGER pf, pc; + LONGLONG nsec; + switch (clock_id) { + case CLOCK_REALTIME: + if (timespec_get(tp, TIME_UTC) != TIME_UTC) + return -1; + return 0; + case CLOCK_MONOTONIC: + 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; + default: + return -1; + } +} +#define clock_gettime(clock_id, tp) rte_clock_gettime(clock_id, tp) + #endif /* _RTE_OS_SHIM_ */ From patchwork Tue May 4 00:34:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 92724 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 D1119A0562; Tue, 4 May 2021 02:35:18 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1B41C41160; Tue, 4 May 2021 02:34:30 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 2813B40150; Tue, 4 May 2021 02:34:16 +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 F135A20B8010; Mon, 3 May 2021 17:34:14 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com F135A20B8010 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1620088455; bh=4Q40zvsHFQIo8tkPSyjmgesEU/rsDnjwYzfvLjE82Pg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HwiGg1lIaXtcWI4HEQ8yY4+y+S0PAa05QpmabdSvKCRwYQeHXzsqUcuGo2+Lg2slQ rQmmgmUnSkcqejEsT4Ktx+/p1PB0AqPCS7mr+UO+KJFiXIw1fUF7FuoQ+vMrqxj+DP LSMdvmrUc0tFBHAFs7xpAOgBzCMUPbu/1k/r/cfs= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, talshn@nvidia.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com, konstantin.ananyev@intel.com, stable@dpdk.org Date: Mon, 3 May 2021 17:34:04 -0700 Message-Id: <1620088449-14770-6-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> References: <1619805162-10684-1-git-send-email-jizh@linux.microsoft.com> <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v10 05/10] app/testpmd: resolve name collisions X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions 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 | 512 ++++++++++++++++++------------------ 1 file changed, 256 insertions(+), 256 deletions(-) diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index 594734199..888b9179b 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -40,22 +40,22 @@ 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, - INDIRECT_ACTION_ID, - POLICY_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_INDIRECT_ACTION_ID, + COMMON_POLICY_ID, /* TOP-level command. */ ADD, @@ -104,13 +104,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, /* Dump arguments */ DUMP_ALL, @@ -133,7 +133,7 @@ enum index { INDIRECT_ACTION_DESTROY_ID, /* Validate/create pattern. */ - PATTERN, + ITEM_PATTERN, ITEM_PARAM_IS, ITEM_PARAM_SPEC, ITEM_PARAM_LAST, @@ -890,14 +890,14 @@ static const enum index next_ia_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, }; @@ -908,7 +908,7 @@ static const enum index next_destroy_attr[] = { }; static const enum index next_dump_attr[] = { - FILE_PATH, + COMMON_FILE_PATH, END, ZERO, }; @@ -1911,111 +1911,111 @@ 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", .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, }, - [INDIRECT_ACTION_ID] = { + [COMMON_INDIRECT_ACTION_ID] = { .name = "{indirect_action_id}", .type = "INDIRECT_ACTION_ID", .help = "indirect action id", .call = parse_int, .comp = comp_none, }, - [POLICY_ID] = { + [COMMON_POLICY_ID] = { .name = "{policy_id}", .type = "POLCIY_ID", .help = "policy id", @@ -2046,7 +2046,7 @@ static const struct token token_list[] = { .name = "indirect_action", .type = "{command} {port_id} [{arg} [...]]", .help = "manage indirect actions", - .next = NEXT(next_ia_subcmd, NEXT_ENTRY(PORT_ID)), + .next = NEXT(next_ia_subcmd, NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, port)), .call = parse_ia, }, @@ -2061,7 +2061,7 @@ static const struct token token_list[] = { .name = "update", .help = "update indirect action", .next = NEXT(NEXT_ENTRY(INDIRECT_ACTION_SPEC), - NEXT_ENTRY(INDIRECT_ACTION_ID)), + NEXT_ENTRY(COMMON_INDIRECT_ACTION_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, args.vc.attr.group)), .call = parse_ia, }, @@ -2075,42 +2075,42 @@ static const struct token token_list[] = { [INDIRECT_ACTION_QUERY] = { .name = "query", .help = "query indirect action", - .next = NEXT(NEXT_ENTRY(END), NEXT_ENTRY(INDIRECT_ACTION_ID)), + .next = NEXT(NEXT_ENTRY(END), NEXT_ENTRY(COMMON_INDIRECT_ACTION_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, args.ia.action_id)), .call = parse_ia, }, [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 single/all flow rules to file", - .next = NEXT(next_dump_subcmd, NEXT_ENTRY(PORT_ID)), + .next = NEXT(next_dump_subcmd, NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, port)), .call = parse_dump, }, @@ -2118,8 +2118,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)), @@ -2128,22 +2128,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, @@ -2160,14 +2160,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, }, @@ -2175,21 +2175,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, }, @@ -2197,7 +2197,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, }, @@ -2212,7 +2212,7 @@ static const struct token token_list[] = { [DUMP_ONE] = { .name = "rule", .help = "dump one rule", - .next = NEXT(next_dump_attr, NEXT_ENTRY(RULE_ID)), + .next = NEXT(next_dump_attr, NEXT_ENTRY(COMMON_RULE_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, args.dump.file), ARGS_ENTRY(struct buffer, args.dump.rule)), .call = parse_dump, @@ -2229,7 +2229,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, }, @@ -2240,54 +2240,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), @@ -2354,7 +2354,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] = { @@ -2374,7 +2374,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] = { @@ -2388,7 +2388,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] = { @@ -2402,7 +2402,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] = { @@ -2415,7 +2415,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] = { @@ -2428,34 +2428,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)), @@ -2474,25 +2474,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)), }, @@ -2506,41 +2506,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)), }, @@ -2554,49 +2554,49 @@ 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_ID] = { .name = "packet_id", .help = "fragment packet 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.packet_id)), }, [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)), }, @@ -2610,7 +2610,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")), @@ -2618,7 +2618,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")), @@ -2626,35 +2626,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)), }, @@ -2668,28 +2668,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)), }, @@ -2703,14 +2703,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)), }, @@ -2724,21 +2724,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)), }, @@ -2752,28 +2752,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)), }, @@ -2787,7 +2787,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] = { @@ -2800,7 +2800,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")), @@ -2815,7 +2815,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] = { @@ -2828,7 +2828,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")), @@ -2836,7 +2836,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")), @@ -2844,7 +2844,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")), @@ -2859,7 +2859,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)), }, @@ -2869,14 +2869,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")), @@ -2884,7 +2884,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")), @@ -2892,7 +2892,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")), @@ -2908,7 +2908,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)), }, @@ -2922,20 +2922,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] = { @@ -2962,20 +2962,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")), @@ -2991,7 +2991,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)), }, @@ -3006,7 +3006,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)), @@ -3014,7 +3014,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)), @@ -3022,7 +3022,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)), @@ -3030,7 +3030,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)), @@ -3046,7 +3046,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)), }, @@ -3061,7 +3061,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)), @@ -3069,7 +3069,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)), @@ -3077,7 +3077,7 @@ static const struct token token_list[] = { [ITEM_IPV6_FRAG_EXT_ID] = { .name = "packet_id", .help = "fragment packet id", - .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.id)), @@ -3092,14 +3092,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)), }, @@ -3114,7 +3114,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)), @@ -3130,7 +3130,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)), @@ -3147,7 +3147,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)), @@ -3165,7 +3165,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)), @@ -3183,7 +3183,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)), @@ -3198,7 +3198,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")), }, @@ -3212,7 +3212,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] = { @@ -3226,14 +3226,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)), }, @@ -3254,7 +3254,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)), }, @@ -3263,7 +3263,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)), @@ -3280,14 +3280,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)), }, @@ -3301,13 +3301,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)), }, @@ -3322,7 +3322,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)), }, @@ -3336,7 +3336,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)), }, @@ -3350,7 +3350,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] = { @@ -3363,14 +3363,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] = { @@ -3403,7 +3403,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)), }, @@ -3419,7 +3419,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)), }, @@ -3435,7 +3435,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)), }, @@ -3451,21 +3451,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)), @@ -3473,7 +3473,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 @@ -3491,21 +3491,21 @@ static const struct token token_list[] = { [ITEM_INTEGRITY_LEVEL] = { .name = "level", .help = "integrity level", - .next = NEXT(item_integrity_lv, NEXT_ENTRY(UNSIGNED), + .next = NEXT(item_integrity_lv, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_integrity, level)), }, [ITEM_INTEGRITY_VALUE] = { .name = "value", .help = "integrity value", - .next = NEXT(item_integrity_lv, NEXT_ENTRY(UNSIGNED), + .next = NEXT(item_integrity_lv, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_integrity, value)), }, [ITEM_CONNTRACK] = { .name = "conntrack", .help = "conntrack state", - .next = NEXT(NEXT_ENTRY(ITEM_NEXT), NEXT_ENTRY(UNSIGNED), + .next = NEXT(NEXT_ENTRY(ITEM_NEXT), NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_conntrack, flags)), }, @@ -3551,7 +3551,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, }, @@ -3565,7 +3565,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, }, @@ -3587,7 +3587,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, }, @@ -3609,14 +3609,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, @@ -3660,7 +3660,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), @@ -3681,7 +3681,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), @@ -3696,7 +3696,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), @@ -3734,7 +3734,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, @@ -3742,7 +3742,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, }, @@ -3757,7 +3757,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, @@ -3765,7 +3765,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, @@ -3781,7 +3781,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, @@ -3789,7 +3789,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, }, @@ -3804,7 +3804,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, }, @@ -3820,7 +3820,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, @@ -3844,7 +3844,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, @@ -3889,7 +3889,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)), @@ -3907,7 +3907,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)), @@ -3925,7 +3925,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)), @@ -3942,7 +3942,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)), @@ -3960,7 +3960,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)), @@ -4068,7 +4068,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, @@ -4085,7 +4085,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, @@ -4102,7 +4102,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, @@ -4119,7 +4119,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, @@ -4136,7 +4136,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, @@ -4153,7 +4153,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, @@ -4184,7 +4184,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, @@ -4200,7 +4200,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, @@ -4216,7 +4216,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, @@ -4231,7 +4231,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, }, @@ -4245,7 +4245,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, }, @@ -4259,7 +4259,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, }, @@ -4273,7 +4273,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, }, @@ -4356,7 +4356,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, @@ -4364,7 +4364,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, @@ -4385,7 +4385,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, @@ -4393,7 +4393,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, @@ -4402,7 +4402,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, @@ -4411,7 +4411,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, @@ -4451,7 +4451,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, @@ -4484,14 +4484,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, @@ -4499,7 +4499,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, @@ -4515,7 +4515,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, @@ -4523,7 +4523,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, @@ -4539,7 +4539,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, @@ -4555,7 +4555,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, @@ -4573,7 +4573,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] = { @@ -4587,7 +4587,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), @@ -4601,7 +4601,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, @@ -4640,7 +4640,7 @@ static const struct token token_list[] = { .name = "action_id", .help = "specify a indirect action id to destroy", .next = NEXT(next_ia_destroy_attr, - NEXT_ENTRY(INDIRECT_ACTION_ID)), + NEXT_ENTRY(COMMON_INDIRECT_ACTION_ID)), .args = ARGS(ARGS_ENTRY_PTR(struct buffer, args.ia_destroy.action_id)), .call = parse_ia_destroy, @@ -4650,7 +4650,7 @@ static const struct token token_list[] = { .name = "action_id", .help = "specify a indirect action id to create", .next = NEXT(next_ia_create_attr, - NEXT_ENTRY(INDIRECT_ACTION_ID)), + NEXT_ENTRY(COMMON_INDIRECT_ACTION_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, args.vc.attr.group)), }, [ACTION_INDIRECT] = { @@ -4734,8 +4734,8 @@ static const struct token token_list[] = { .next = NEXT(NEXT_ENTRY(ACTION_POL_R), NEXT_ENTRY(ACTION_POL_Y), NEXT_ENTRY(ACTION_POL_G), - NEXT_ENTRY(POLICY_ID), - NEXT_ENTRY(PORT_ID)), + NEXT_ENTRY(COMMON_POLICY_ID), + NEXT_ENTRY(COMMON_PORT_ID)), .args = ARGS(ARGS_ENTRY(struct buffer, args.policy.policy_id), ARGS_ENTRY(struct buffer, port)), .call = parse_mp, @@ -5092,34 +5092,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)); @@ -5200,7 +5200,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 Tue May 4 00:34:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 92719 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 7CDB0A0562; Tue, 4 May 2021 02:34:47 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 042574114D; Tue, 4 May 2021 02:34:23 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 2E5EC4068E; Tue, 4 May 2021 02:34:16 +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 131A820B8013; Mon, 3 May 2021 17:34:15 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 131A820B8013 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1620088455; bh=2JuPsZeGWOdTVf9U4/IrsCFpVD832l8owuZ/9rnTvhU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Um/kr3HHO7ZMnLPPtQS+QwTp5Og5E/Ag5ZPTSJbOfib0LIc14yD8fg2FzbpinLTAV KhikQL7Ei5T0EQ/HBVTX9yZWSAELZqIPjwvmUKpVvXUOXpCSZmaqvd2aI/RAsU/jrn U8wYcrDVtlij+SCDiA19JWEMc95R3jfOupGUx/Oc= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, talshn@nvidia.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com, konstantin.ananyev@intel.com, stable@dpdk.org Date: Mon, 3 May 2021 17:34:05 -0700 Message-Id: <1620088449-14770-7-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> References: <1619805162-10684-1-git-send-email-jizh@linux.microsoft.com> <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v10 06/10] app/testpmd: fix parse_fec_mode return type name 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" Replace parse_fec_mode misleading return type name mode with fec_capa Fixes: b19da32e3151 ("app/testpmd: add FEC command") Cc: stable@dpdk.org 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 12efbc0ca..d804ee233 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -16984,17 +16984,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 e189062ef..099bfa3c9 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -3548,13 +3548,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 6ca872db8..1d104213b 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -886,7 +886,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 Tue May 4 00:34:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 92721 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 C7E46A0562; Tue, 4 May 2021 02:35:01 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3E9B54117D; Tue, 4 May 2021 02:34:26 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 39975410F3; Tue, 4 May 2021 02:34:16 +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 28E6020B8016; Mon, 3 May 2021 17:34:15 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 28E6020B8016 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1620088455; bh=kiRaVs3QBRKM5TmEFpUwg2a8f2d97sdUl5XicnL9g+g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Tal9yBv2Z/o3bq2+tIXbhU/y8o7XkiO+l4VZK5Dz3Ru45Ovuako5eX75iDvQxwk4v JiUbRTnLY/Jif6Grx9zAfAmwluj5w+qeuYZ7Y6dfZKt8RLkEqE+3r8eZ0J4vQvVycg z2N+wnkIpw3ih3fgAd5zo1GgT/BJvAS+BxTqKlPI= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, talshn@nvidia.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com, konstantin.ananyev@intel.com, stable@dpdk.org Date: Mon, 3 May 2021 17:34:06 -0700 Message-Id: <1620088449-14770-8-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> References: <1619805162-10684-1-git-send-email-jizh@linux.microsoft.com> <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v10 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 d804ee233..f0636ca9b 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -8,7 +8,6 @@ #include #include #include -#include #include #include #include @@ -3601,7 +3600,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 d4be23f8f..d4a9f5b6b 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; } @@ -3055,6 +3068,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) @@ -3062,6 +3076,7 @@ pmd_test_exit(void) NULL); } } +#endif if (ports != NULL) { no_link_check = 1; RTE_ETH_FOREACH_DEV(pt_id) { @@ -3761,8 +3776,10 @@ signal_handler(int signum) /* Set flag to indicate the force termination. */ f_quit = 1; /* exit with the expected status */ +#ifndef RTE_EXEC_ENV_WINDOWS signal(signum, SIG_DFL); kill(getpid(), signum); +#endif } } @@ -3837,10 +3854,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 " @@ -3961,7 +3980,7 @@ main(int argc, char** argv) } /* Sleep to avoid unnecessary checks */ prev_time = cur_time; - sleep(1); + rte_delay_us_sleep(US_PER_S); } } diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index 1d104213b..a4115861b 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -763,7 +763,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 Tue May 4 00:34:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 92720 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 1BD43A0562; Tue, 4 May 2021 02:34:54 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 64A0D41157; Tue, 4 May 2021 02:34:24 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 36A17410F0; Tue, 4 May 2021 02:34:16 +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 3E7F720B8019; Mon, 3 May 2021 17:34:15 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 3E7F720B8019 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1620088455; bh=mW/d64v3yyQaySXptGpzfVsa0ys6zn34nhoI+oMMAFw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pKCn8pAMLiECdTgjCEMiaHxTQgLAYv6lB192/uQmwv+LDP2BW6czo3xlMl9eY4Q1W BA3B0yiplZSTd0UrgC40bRwL2KQ2lSNrn1MTJKtZgOAXS+miuHEfk2oHACuZXrTWT8 yauM68aR3j2p5+6NWmfGg3MhvPOUS3/s6YgpBEPE= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, talshn@nvidia.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com, konstantin.ananyev@intel.com, stable@dpdk.org Date: Mon, 3 May 2021 17:34:07 -0700 Message-Id: <1620088449-14770-9-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> References: <1619805162-10684-1-git-send-email-jizh@linux.microsoft.com> <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v10 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 f0636ca9b..2fbef3320 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 888b9179b..a3cd4773a 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 a4115861b..f96eec71a 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 Tue May 4 00:34:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 92722 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 061EEA0562; Tue, 4 May 2021 02:35:07 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 71D344117A; Tue, 4 May 2021 02:34:27 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 4D3B6410F8; Tue, 4 May 2021 02:34:16 +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 5412820B801C; Mon, 3 May 2021 17:34:15 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 5412820B801C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1620088455; bh=R4EgCUckoJRLOJ+SRRe6PnqebFciFj5dxvNzji4yYjA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VZA+1tkOC8n5CKX2+/iZdW4hIZKcQIVmQxBJMJzawvhdwCzzsDaTEHHxYYDEnp0Ep B02y3Feb2RN17GdWYXxNBm1xWKz5lnSj/r6V2JuYRWbE7GVWaQJOZIsm4oxtXL1Gf+ 1tac/CguFHl3q95R0ZU/evebzMGDOEjl3W7m30M8= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, talshn@nvidia.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com, konstantin.ananyev@intel.com, stable@dpdk.org Date: Mon, 3 May 2021 17:34:08 -0700 Message-Id: <1620088449-14770-10-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> References: <1619805162-10684-1-git-send-email-jizh@linux.microsoft.com> <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v10 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: Jie Zhou 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 099bfa3c9..7c908ea48 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -4364,6 +4364,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) { @@ -4423,47 +4464,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 Tue May 4 00:34:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 92723 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 767D9A0562; Tue, 4 May 2021 02:35:12 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B150541189; Tue, 4 May 2021 02:34:28 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 45B06410F6; Tue, 4 May 2021 02:34:16 +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 699A320B801E; Mon, 3 May 2021 17:34:15 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 699A320B801E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1620088455; bh=aWVgva2GfyjszqhN64uo2zd+YLHy6gw3yHeV0ORteyU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Cg57xyGj8dzlcUi6a+gEjh98s8UqmRI2aZrk/mQGYxW3pGnEwmXgMq0xCHlF8L0A8 fmCejjyQtjFbmocY9BcYRFY0/TraItZdVzGgnNbi0Wsp0HMIjAP+/1o7uk3ru5VKwp 7FxfWtLdyqRB3Ir4/bbOtUZNg1U5Kq2OYHawgwGY= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, talshn@nvidia.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com, konstantin.ananyev@intel.com, stable@dpdk.org Date: Mon, 3 May 2021 17:34:09 -0700 Message-Id: <1620088449-14770-11-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> References: <1619805162-10684-1-git-send-email-jizh@linux.microsoft.com> <1620088449-14770-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v10 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 35e53861b..4c6049807 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 57335641f..edb9deef8 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', 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 3f79e2da9..f29c6ee86 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', 'comp_perf_test_common.c', diff --git a/app/test-crypto-perf/meson.build b/app/test-crypto-perf/meson.build index 20444b791..ef3582a87 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', diff --git a/app/test-eventdev/meson.build b/app/test-eventdev/meson.build index 04117dbe4..08a3ba78a 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', 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 1d860e036..a33cad907 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 fd91f8323..7d123e32f 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 08c82d3d2..2953afc8b 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