All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/4] Split driver specific commands out of testpmd
@ 2022-05-13  7:57 David Marchand
  2022-05-13  7:57 ` [RFC PATCH 1/4] app/testpmd: register driver specific commands David Marchand
                   ` (6 more replies)
  0 siblings, 7 replies; 65+ messages in thread
From: David Marchand @ 2022-05-13  7:57 UTC (permalink / raw)
  To: dev; +Cc: thomas

Hello,

Following TB decision and recent discussions on the driver specific
commands in testpmd, here is a proposal on how the split could be done.

For now, this series simply moves the testpmd code in the driver
directory. The driver specific testpmd code is still compiled as part of
testpmd compilation via a global meson testpmd_driver_sources list.

TODO:
- ixgbe bypass commands in testpmd are "dead" code since switch to meson,
  as the RTE_LIBRTE_IXGBE_BYPASS define is not set while compiling testpmd.
  I am tempted to simply drop those, since no one complained about issue
  for the last two years. For now, this series reinstates them.

- this series keeps the command names as is. We could consolidate with a
  clear prefix so that users directly know they are exerting a special
  feature that makes no sense on other hw.
  For this, I had in mind introducing a "driver" top level prefix,
  where drivers would hook their specific stuff. For example:
  testpmd> driver ixgbe set vf split drop (port_id) (vf_id) (on|off)

- the documentation of those commands is left untouched, we should
  probably move any existing doc into the driver documentation itself.
  testpmd documentation could then have a generic
  "Driver specific commands" section pointing at all other driver docs.

Opinions on this first draft?


-- 
David Marchand

David Marchand (4):
  app/testpmd: register driver specific commands
  net/bonding: move testpmd commands
  net/i40e: move testpmd commands
  net/ixgbe: move testpmd commands

 app/test-pmd/cmdline.c                     | 9284 +++++++-------------
 app/test-pmd/meson.build                   |    8 +-
 app/test-pmd/testpmd.c                     |   18 +-
 app/test-pmd/testpmd.h                     |   21 +-
 drivers/meson.build                        |    5 +
 drivers/net/bonding/meson.build            |    1 +
 drivers/net/bonding/rte_eth_bond_testpmd.c | 1037 +++
 drivers/net/i40e/i40e_testpmd.c            |  655 ++
 drivers/net/i40e/meson.build               |    2 +
 drivers/net/ixgbe/ixgbe_testpmd.c          | 1147 +++
 drivers/net/ixgbe/meson.build              |    2 +
 meson.build                                |    2 +
 12 files changed, 6216 insertions(+), 5966 deletions(-)
 create mode 100644 drivers/net/bonding/rte_eth_bond_testpmd.c
 create mode 100644 drivers/net/i40e/i40e_testpmd.c
 create mode 100644 drivers/net/ixgbe/ixgbe_testpmd.c

-- 
2.23.0


^ permalink raw reply	[flat|nested] 65+ messages in thread

* [RFC PATCH 1/4] app/testpmd: register driver specific commands
  2022-05-13  7:57 [RFC PATCH 0/4] Split driver specific commands out of testpmd David Marchand
@ 2022-05-13  7:57 ` David Marchand
  2022-05-13 10:30   ` David Marchand
  2022-05-13  7:57 ` [RFC PATCH 2/4] net/bonding: move testpmd commands David Marchand
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-05-13  7:57 UTC (permalink / raw)
  To: dev; +Cc: thomas, Xiaoyun Li, Aman Singh, Yuying Zhang, Bruce Richardson

Introduce a testpmd API so that drivers can register specific commands.

A driver can list some files to compile with testpmd, by setting them
in the testpmd_sources (driver local) meson variable.
drivers/meson.build then takes care of appending this to a global meson
variable, and adding the driver to testpmd dependency.

Note: testpmd.h is fixed to that it is self sufficient when being
included.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/cmdline.c   | 83 ++++++++++++++++++++++++++++++++++++----
 app/test-pmd/meson.build |  5 +++
 app/test-pmd/testpmd.c   |  4 ++
 app/test-pmd/testpmd.h   | 16 ++++++++
 drivers/meson.build      |  5 +++
 meson.build              |  2 +
 6 files changed, 108 insertions(+), 7 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 6ffea8e21a..ed62027834 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -69,6 +69,9 @@
 #include "bpf_cmd.h"
 
 static struct cmdline *testpmd_cl;
+static cmdline_parse_ctx_t *main_ctx;
+static TAILQ_HEAD(, testpmd_cmdline_parser) cmdline_parsers =
+	TAILQ_HEAD_INITIALIZER(cmdline_parsers);
 
 static void cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue);
 
@@ -94,6 +97,7 @@ static void cmd_help_brief_parsed(__rte_unused void *parsed_result,
 		"    help filters                    : Filters configuration help.\n"
 		"    help traffic_management         : Traffic Management commands.\n"
 		"    help devices                    : Device related cmds.\n"
+		"    help drivers                    : Driver specific cmds.\n"
 		"    help all                        : All of the above sections.\n\n"
 	);
 
@@ -1177,6 +1181,21 @@ static void cmd_help_long_parsed(void *parsed_result,
 		);
 	}
 
+	if (show_all || !strcmp(res->section, "drivers")) {
+		struct testpmd_cmdline_parser *parser;
+		unsigned int i;
+
+		cmdline_printf(
+			cl,
+			"\n"
+			"Driver specific:\n"
+			"----------------\n"
+		);
+		TAILQ_FOREACH(parser, &cmdline_parsers, next) {
+			for (i = 0; parser->help[i] != NULL; i++)
+				cmdline_printf(cl, "%s\n", parser->help[i]);
+		}
+	}
 }
 
 cmdline_parse_token_string_t cmd_help_long_help =
@@ -1184,14 +1203,14 @@ cmdline_parse_token_string_t cmd_help_long_help =
 
 cmdline_parse_token_string_t cmd_help_long_section =
 	TOKEN_STRING_INITIALIZER(struct cmd_help_long_result, section,
-			"all#control#display#config#"
-			"ports#registers#filters#traffic_management#devices");
+		"all#control#display#config#ports#registers#"
+		"filters#traffic_management#devices#drivers");
 
 cmdline_parse_inst_t cmd_help_long = {
 	.f = cmd_help_long_parsed,
 	.data = NULL,
 	.help_str = "help all|control|display|config|ports|register|"
-		"filters|traffic_management|devices: "
+		"filters|traffic_management|devices|drivers: "
 		"Show help",
 	.tokens = {
 		(void *)&cmd_help_long_help,
@@ -17810,7 +17829,7 @@ cmdline_parse_inst_t cmd_show_port_flow_transfer_proxy = {
 /* ******************************************************************************** */
 
 /* list of instructions */
-cmdline_parse_ctx_t main_ctx[] = {
+static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_help_brief,
 	(cmdline_parse_inst_t *)&cmd_help_long,
 	(cmdline_parse_inst_t *)&cmd_quit,
@@ -18096,6 +18115,59 @@ cmdline_parse_ctx_t main_ctx[] = {
 	NULL,
 };
 
+void
+testpmd_add_commands(struct testpmd_cmdline_parser *parser)
+{
+	TAILQ_INSERT_TAIL(&cmdline_parsers, parser, next);
+}
+
+int
+init_cmdline(void)
+{
+	struct testpmd_cmdline_parser *parser;
+	cmdline_parse_ctx_t *ctx;
+	unsigned int count = 0;
+	unsigned int i;
+
+	/* initialize non-constant commands */
+	cmd_set_fwd_mode_init();
+	cmd_set_fwd_retry_mode_init();
+
+	main_ctx = NULL;
+	for (i = 0; builtin_ctx[i] != NULL; i++) {
+		ctx = realloc(main_ctx, (count + i + 1) * sizeof(*ctx));
+		if (ctx == NULL)
+			goto err;
+		main_ctx = ctx;
+		main_ctx[count + i] = builtin_ctx[i];
+	}
+	count += i;
+
+	TAILQ_FOREACH(parser, &cmdline_parsers, next) {
+		for (i = 0; parser->ctx[i] != NULL; i++) {
+			ctx = realloc(main_ctx, (count + i + 1) * sizeof(*ctx));
+			if (ctx == NULL)
+				goto err;
+			ctx[count + i] = parser->ctx[i];
+		}
+		count += i;
+	}
+
+	/* cmdline expects a NULL terminated array */
+	ctx = realloc(main_ctx, (count + 1) * sizeof(*ctx));
+	if (ctx == NULL)
+		goto err;
+	ctx[count] = NULL;
+	count += 1;
+
+	main_ctx = ctx;
+
+	return 0;
+err:
+	free(main_ctx);
+	return -1;
+}
+
 /* read cmdline commands from file */
 void
 cmdline_read_from_file(const char *filename)
@@ -18123,9 +18195,6 @@ void
 prompt(void)
 {
 	int ret;
-	/* initialize non-constant commands */
-	cmd_set_fwd_mode_init();
-	cmd_set_fwd_retry_mode_init();
 
 	testpmd_cl = cmdline_stdin_new(main_ctx, "testpmd> ");
 	if (testpmd_cl == NULL)
diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index 43130c8856..46a7511e9a 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -73,3 +73,8 @@ endif
 if dpdk_conf.has('RTE_NET_DPAA')
     deps += ['bus_dpaa', 'mempool_dpaa', 'net_dpaa']
 endif
+
+# Driver specific sources include some testpmd headers.
+includes = include_directories('.')
+sources += testpmd_drivers_sources
+deps += testpmd_drivers_deps
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index fe2ce19f99..5bda46e32b 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -4263,6 +4263,10 @@ main(int argc, char** argv)
 	}
 #endif
 #ifdef RTE_LIB_CMDLINE
+	if (init_cmdline() != 0)
+		rte_exit(EXIT_FAILURE,
+			"Could not initialise cmdline context.\n");
+
 	if (strlen(cmdline_filename) != 0)
 		cmdline_read_from_file(cmdline_filename);
 
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index 31f766c965..9058d21a07 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -16,7 +16,13 @@
 #include <rte_gso.h>
 #endif
 #include <rte_os_shim.h>
+#include <rte_ethdev.h>
+#include <rte_flow.h>
+#include <rte_mbuf_dyn.h>
+
 #include <cmdline.h>
+#include <cmdline_parse.h>
+
 #include <sys/queue.h>
 #ifdef RTE_HAS_JANSSON
 #include <jansson.h>
@@ -866,6 +872,7 @@ unsigned int parse_item_list(const char *str, const char *item_name,
 			unsigned int *parsed_items, int check_unique_values);
 void launch_args_parse(int argc, char** argv);
 void cmdline_read_from_file(const char *filename);
+int init_cmdline(void);
 void prompt(void);
 void prompt_exit(void);
 void nic_stats_display(portid_t port_id);
@@ -1169,6 +1176,15 @@ extern int flow_parse(const char *src, void *result, unsigned int size,
 		      struct rte_flow_item **pattern,
 		      struct rte_flow_action **actions);
 
+/* For registering commands out of testpmd sources. */
+struct testpmd_cmdline_parser {
+	TAILQ_ENTRY(testpmd_cmdline_parser) next;
+	cmdline_parse_ctx_t *ctx;
+	const char *help[];
+};
+
+void testpmd_add_commands(struct testpmd_cmdline_parser *parser);
+
 /*
  * Work-around of a compilation error with ICC on invocations of the
  * rte_be_to_cpu_16() function.
diff --git a/drivers/meson.build b/drivers/meson.build
index 1d8123b00c..4daa2658b7 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -102,6 +102,7 @@ foreach subpath:subdirs
         # static builds.
         ext_deps = []
         pkgconfig_extra_libs = []
+        testpmd_sources = []
 
         if not enable_drivers.contains(drv_path)
             build = false
@@ -246,6 +247,10 @@ foreach subpath:subdirs
         set_variable('shared_@0@'.format(lib_name), shared_dep)
         set_variable('static_@0@'.format(lib_name), static_dep)
         dependency_name = ''.join(lib_name.split('rte_'))
+        if testpmd_sources.length() != 0
+            testpmd_drivers_sources += testpmd_sources
+            testpmd_drivers_deps += dependency_name
+        endif
         if developer_mode
             message('drivers/@0@: Defining dependency "@1@"'.format(
                     drv_path, dependency_name))
diff --git a/meson.build b/meson.build
index 937f6110c0..5561171617 100644
--- a/meson.build
+++ b/meson.build
@@ -42,6 +42,8 @@ dpdk_drivers = []
 dpdk_extra_ldflags = []
 dpdk_libs_disabled = []
 dpdk_drvs_disabled = []
+testpmd_drivers_sources = []
+testpmd_drivers_deps = []
 abi_version_file = files('ABI_VERSION')
 
 if host_machine.cpu_family().startswith('x86')
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [RFC PATCH 2/4] net/bonding: move testpmd commands
  2022-05-13  7:57 [RFC PATCH 0/4] Split driver specific commands out of testpmd David Marchand
  2022-05-13  7:57 ` [RFC PATCH 1/4] app/testpmd: register driver specific commands David Marchand
@ 2022-05-13  7:57 ` David Marchand
  2022-05-13 10:09   ` Min Hu (Connor)
  2022-05-13  7:57 ` [RFC PATCH 3/4] net/i40e: " David Marchand
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-05-13  7:57 UTC (permalink / raw)
  To: dev
  Cc: thomas, Xiaoyun Li, Aman Singh, Yuying Zhang, Chas Williams,
	Min Hu (Connor)

Move related specific testpmd commands into this driver directory.
While at it, fix checkpatch warnings.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/cmdline.c                     | 1035 -------------------
 app/test-pmd/meson.build                   |    3 -
 drivers/net/bonding/meson.build            |    1 +
 drivers/net/bonding/rte_eth_bond_testpmd.c | 1037 ++++++++++++++++++++
 4 files changed, 1038 insertions(+), 1038 deletions(-)
 create mode 100644 drivers/net/bonding/rte_eth_bond_testpmd.c

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index ed62027834..ae4759fbfe 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -47,10 +47,6 @@
 #include <cmdline_parse_etheraddr.h>
 #include <cmdline_socket.h>
 #include <cmdline.h>
-#ifdef RTE_NET_BOND
-#include <rte_eth_bond.h>
-#include <rte_eth_bond_8023ad.h>
-#endif
 #if defined RTE_BUS_DPAA && defined RTE_NET_DPAA
 #include <rte_pmd_dpaa.h>
 #endif
@@ -614,44 +610,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"   Show the bypass configuration for a bypass enabled NIC"
 			" using the lowest port on the NIC.\n\n"
 
-#ifdef RTE_NET_BOND
-			"create bonded device (mode) (socket)\n"
-			"	Create a new bonded device with specific bonding mode and socket.\n\n"
-
-			"add bonding slave (slave_id) (port_id)\n"
-			"	Add a slave device to a bonded device.\n\n"
-
-			"remove bonding slave (slave_id) (port_id)\n"
-			"	Remove a slave device from a bonded device.\n\n"
-
-			"set bonding mode (value) (port_id)\n"
-			"	Set the bonding mode on a bonded device.\n\n"
-
-			"set bonding primary (slave_id) (port_id)\n"
-			"	Set the primary slave for a bonded device.\n\n"
-
-			"show bonding config (port_id)\n"
-			"	Show the bonding config for port_id.\n\n"
-
-			"show bonding lacp info (port_id)\n"
-			"	Show the bonding lacp information for port_id.\n\n"
-
-			"set bonding mac_addr (port_id) (address)\n"
-			"	Set the MAC address of a bonded device.\n\n"
-
-			"set bonding mode IEEE802.3AD aggregator policy (port_id) (agg_name)"
-			"	Set Aggregation mode for IEEE802.3AD (mode 4)"
-
-			"set bonding balance_xmit_policy (port_id) (l2|l23|l34)\n"
-			"	Set the transmit balance policy for bonded device running in balance mode.\n\n"
-
-			"set bonding mon_period (port_id) (value)\n"
-			"	Set the bonding link status monitoring polling period in ms.\n\n"
-
-			"set bonding lacp dedicated_queues <port_id> (enable|disable)\n"
-			"	Enable/disable dedicated queues for LACP control traffic.\n\n"
-
-#endif
 			"set link-up port (port_id)\n"
 			"	Set link up for a port.\n\n"
 
@@ -5925,985 +5883,6 @@ cmdline_parse_inst_t cmd_show_bypass_config = {
 	},
 };
 
-#ifdef RTE_NET_BOND
-/* *** SET BONDING MODE *** */
-struct cmd_set_bonding_mode_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t mode;
-	uint8_t value;
-	portid_t port_id;
-};
-
-static void cmd_set_bonding_mode_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_mode_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	struct rte_port *port = &ports[port_id];
-
-	/*
-	 * Bonding mode changed means resources of device changed, like whether
-	 * started rte timer or not. Device should be restarted when resources
-	 * of device changed.
-	 */
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr,
-			"\t Error: Can't set bonding mode when port %d is not stopped\n",
-			port_id);
-		return;
-	}
-
-	/* Set the bonding mode for the relevant port. */
-	if (0 != rte_eth_bond_mode_set(port_id, res->value))
-		fprintf(stderr, "\t Failed to set bonding mode for port = %d.\n",
-			port_id);
-}
-
-cmdline_parse_token_string_t cmd_setbonding_mode_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
-		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
-		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_mode_mode =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
-		mode, "mode");
-cmdline_parse_token_num_t cmd_setbonding_mode_value =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
-		value, RTE_UINT8);
-cmdline_parse_token_num_t cmd_setbonding_mode_port =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
-		port_id, RTE_UINT16);
-
-cmdline_parse_inst_t cmd_set_bonding_mode = {
-		.f = cmd_set_bonding_mode_parsed,
-		.help_str = "set bonding mode <mode_value> <port_id>: "
-			"Set the bonding mode for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *) &cmd_setbonding_mode_set,
-				(void *) &cmd_setbonding_mode_bonding,
-				(void *) &cmd_setbonding_mode_mode,
-				(void *) &cmd_setbonding_mode_value,
-				(void *) &cmd_setbonding_mode_port,
-				NULL
-		}
-};
-
-/* *** SET BONDING SLOW_QUEUE SW/HW *** */
-struct cmd_set_bonding_lacp_dedicated_queues_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t lacp;
-	cmdline_fixed_string_t dedicated_queues;
-	portid_t port_id;
-	cmdline_fixed_string_t mode;
-};
-
-static void cmd_set_bonding_lacp_dedicated_queues_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_lacp_dedicated_queues_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	struct rte_port *port;
-
-	port = &ports[port_id];
-
-	/** Check if the port is not started **/
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr, "Please stop port %d first\n", port_id);
-		return;
-	}
-
-	if (!strcmp(res->mode, "enable")) {
-		if (rte_eth_bond_8023ad_dedicated_queues_enable(port_id) == 0)
-			printf("Dedicate queues for LACP control packets"
-					" enabled\n");
-		else
-			printf("Enabling dedicate queues for LACP control "
-					"packets on port %d failed\n", port_id);
-	} else if (!strcmp(res->mode, "disable")) {
-		if (rte_eth_bond_8023ad_dedicated_queues_disable(port_id) == 0)
-			printf("Dedicated queues for LACP control packets "
-					"disabled\n");
-		else
-			printf("Disabling dedicated queues for LACP control "
-					"traffic on port %d failed\n", port_id);
-	}
-}
-
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		lacp, "lacp");
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		dedicated_queues, "dedicated_queues");
-cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		mode, "enable#disable");
-
-cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
-		.f = cmd_set_bonding_lacp_dedicated_queues_parsed,
-		.help_str = "set bonding lacp dedicated_queues <port_id> "
-			"enable|disable: "
-			"Enable/disable dedicated queues for LACP control traffic for port_id",
-		.data = NULL,
-		.tokens = {
-			(void *)&cmd_setbonding_lacp_dedicated_queues_set,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_bonding,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_lacp,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_dedicated_queues,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_port_id,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_mode,
-			NULL
-		}
-};
-
-/* *** SET BALANCE XMIT POLICY *** */
-struct cmd_set_bonding_balance_xmit_policy_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t balance_xmit_policy;
-	portid_t port_id;
-	cmdline_fixed_string_t policy;
-};
-
-static void cmd_set_bonding_balance_xmit_policy_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_balance_xmit_policy_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	uint8_t policy;
-
-	if (!strcmp(res->policy, "l2")) {
-		policy = BALANCE_XMIT_POLICY_LAYER2;
-	} else if (!strcmp(res->policy, "l23")) {
-		policy = BALANCE_XMIT_POLICY_LAYER23;
-	} else if (!strcmp(res->policy, "l34")) {
-		policy = BALANCE_XMIT_POLICY_LAYER34;
-	} else {
-		fprintf(stderr, "\t Invalid xmit policy selection");
-		return;
-	}
-
-	/* Set the bonding mode for the relevant port. */
-	if (0 != rte_eth_bond_xmit_policy_set(port_id, policy)) {
-		fprintf(stderr,
-			"\t Failed to set bonding balance xmit policy for port = %d.\n",
-			port_id);
-	}
-}
-
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		balance_xmit_policy, "balance_xmit_policy");
-cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		policy, "l2#l23#l34");
-
-cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
-		.f = cmd_set_bonding_balance_xmit_policy_parsed,
-		.help_str = "set bonding balance_xmit_policy <port_id> "
-			"l2|l23|l34: "
-			"Set the bonding balance_xmit_policy for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_setbonding_balance_xmit_policy_set,
-				(void *)&cmd_setbonding_balance_xmit_policy_bonding,
-				(void *)&cmd_setbonding_balance_xmit_policy_balance_xmit_policy,
-				(void *)&cmd_setbonding_balance_xmit_policy_port,
-				(void *)&cmd_setbonding_balance_xmit_policy_policy,
-				NULL
-		}
-};
-
-/* *** SHOW IEEE802.3 BONDING INFORMATION *** */
-struct cmd_show_bonding_lacp_info_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t lacp;
-	cmdline_fixed_string_t info;
-	portid_t port_id;
-};
-
-static void port_param_show(struct port_params *params)
-{
-	char buf[RTE_ETHER_ADDR_FMT_SIZE];
-
-	printf("\t\tsystem priority: %u\n", params->system_priority);
-	rte_ether_format_addr(buf, RTE_ETHER_ADDR_FMT_SIZE, &params->system);
-	printf("\t\tsystem mac address: %s\n", buf);
-	printf("\t\tport key: %u\n", params->key);
-	printf("\t\tport priority: %u\n", params->port_priority);
-	printf("\t\tport number: %u\n", params->port_number);
-}
-
-static void lacp_slave_info_show(struct rte_eth_bond_8023ad_slave_info *info)
-{
-	char a_state[256] = { 0 };
-	char p_state[256] = { 0 };
-	int a_len = 0;
-	int p_len = 0;
-	uint32_t i;
-
-	static const char * const state[] = {
-		"ACTIVE",
-		"TIMEOUT",
-		"AGGREGATION",
-		"SYNCHRONIZATION",
-		"COLLECTING",
-		"DISTRIBUTING",
-		"DEFAULTED",
-		"EXPIRED"
-	};
-	static const char * const selection[] = {
-		"UNSELECTED",
-		"STANDBY",
-		"SELECTED"
-	};
-
-	for (i = 0; i < RTE_DIM(state); i++) {
-		if ((info->actor_state >> i) & 1)
-			a_len += snprintf(&a_state[a_len],
-						RTE_DIM(a_state) - a_len, "%s ",
-						state[i]);
-
-		if ((info->partner_state >> i) & 1)
-			p_len += snprintf(&p_state[p_len],
-						RTE_DIM(p_state) - p_len, "%s ",
-						state[i]);
-	}
-	printf("\tAggregator port id: %u\n", info->agg_port_id);
-	printf("\tselection: %s\n", selection[info->selected]);
-	printf("\tActor detail info:\n");
-	port_param_show(&info->actor);
-	printf("\t\tport state: %s\n", a_state);
-	printf("\tPartner detail info:\n");
-	port_param_show(&info->partner);
-	printf("\t\tport state: %s\n", p_state);
-	printf("\n");
-}
-
-static void lacp_conf_show(struct rte_eth_bond_8023ad_conf *conf)
-{
-	printf("\tfast period: %u ms\n", conf->fast_periodic_ms);
-	printf("\tslow period: %u ms\n", conf->slow_periodic_ms);
-	printf("\tshort timeout: %u ms\n", conf->short_timeout_ms);
-	printf("\tlong timeout: %u ms\n", conf->long_timeout_ms);
-	printf("\taggregate wait timeout: %u ms\n",
-			conf->aggregate_wait_timeout_ms);
-	printf("\ttx period: %u ms\n", conf->tx_period_ms);
-	printf("\trx marker period: %u ms\n", conf->rx_marker_period_ms);
-	printf("\tupdate timeout: %u ms\n", conf->update_timeout_ms);
-	switch (conf->agg_selection) {
-	case AGG_BANDWIDTH:
-		printf("\taggregation mode: bandwidth\n");
-		break;
-	case AGG_STABLE:
-		printf("\taggregation mode: stable\n");
-		break;
-	case AGG_COUNT:
-		printf("\taggregation mode: count\n");
-		break;
-	default:
-		printf("\taggregation mode: invalid\n");
-		break;
-	}
-
-	printf("\n");
-}
-
-static void cmd_show_bonding_lacp_info_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_show_bonding_lacp_info_result *res = parsed_result;
-	struct rte_eth_bond_8023ad_slave_info slave_info;
-	struct rte_eth_bond_8023ad_conf port_conf;
-	portid_t slaves[RTE_MAX_ETHPORTS];
-	portid_t port_id = res->port_id;
-	int num_active_slaves;
-	int bonding_mode;
-	int i;
-	int ret;
-
-	bonding_mode = rte_eth_bond_mode_get(port_id);
-	if (bonding_mode != BONDING_MODE_8023AD) {
-		fprintf(stderr, "\tBonding mode is not mode 4\n");
-		return;
-	}
-
-	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
-			RTE_MAX_ETHPORTS);
-	if (num_active_slaves < 0) {
-		fprintf(stderr, "\tFailed to get active slave list for port = %u\n",
-				port_id);
-		return;
-	}
-	if (num_active_slaves == 0)
-		fprintf(stderr, "\tIEEE802.3 port %u has no active slave\n",
-			port_id);
-
-	printf("\tIEEE802.3 port: %u\n", port_id);
-	ret = rte_eth_bond_8023ad_conf_get(port_id, &port_conf);
-	if (ret) {
-		fprintf(stderr, "\tGet bonded device %u info failed\n",
-			port_id);
-		return;
-	}
-	lacp_conf_show(&port_conf);
-
-	for (i = 0; i < num_active_slaves; i++) {
-		ret = rte_eth_bond_8023ad_slave_info(port_id, slaves[i],
-				&slave_info);
-		if (ret) {
-			fprintf(stderr, "\tGet slave device %u info failed\n",
-				slaves[i]);
-			return;
-		}
-		printf("\tSlave Port: %u\n", slaves[i]);
-		lacp_slave_info_show(&slave_info);
-	}
-}
-
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		show, "show");
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		bonding, "bonding");
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		bonding, "lacp");
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		info, "info");
-cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
-TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		port_id, RTE_UINT16);
-
-cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
-		.f = cmd_show_bonding_lacp_info_parsed,
-		.help_str = "show bonding lacp info <port_id> : "
-			"Show bonding IEEE802.3 information for port_id",
-		.data = NULL,
-		.tokens = {
-			(void *)&cmd_show_bonding_lacp_info_show,
-			(void *)&cmd_show_bonding_lacp_info_bonding,
-			(void *)&cmd_show_bonding_lacp_info_lacp,
-			(void *)&cmd_show_bonding_lacp_info_info,
-			(void *)&cmd_show_bonding_lacp_info_port_id,
-			NULL
-		}
-};
-
-/* *** SHOW NIC BONDING CONFIGURATION *** */
-struct cmd_show_bonding_config_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t config;
-	portid_t port_id;
-};
-
-static void cmd_show_bonding_config_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_show_bonding_config_result *res = parsed_result;
-	int bonding_mode, agg_mode;
-	portid_t slaves[RTE_MAX_ETHPORTS];
-	int num_slaves, num_active_slaves;
-	int primary_id;
-	int i;
-	portid_t port_id = res->port_id;
-
-	/* Display the bonding mode.*/
-	bonding_mode = rte_eth_bond_mode_get(port_id);
-	if (bonding_mode < 0) {
-		fprintf(stderr, "\tFailed to get bonding mode for port = %d\n",
-			port_id);
-		return;
-	} else
-		printf("\tBonding mode: %d\n", bonding_mode);
-
-	if (bonding_mode == BONDING_MODE_BALANCE ||
-		bonding_mode == BONDING_MODE_8023AD) {
-		int balance_xmit_policy;
-
-		balance_xmit_policy = rte_eth_bond_xmit_policy_get(port_id);
-		if (balance_xmit_policy < 0) {
-			fprintf(stderr,
-				"\tFailed to get balance xmit policy for port = %d\n",
-				port_id);
-			return;
-		} else {
-			printf("\tBalance Xmit Policy: ");
-
-			switch (balance_xmit_policy) {
-			case BALANCE_XMIT_POLICY_LAYER2:
-				printf("BALANCE_XMIT_POLICY_LAYER2");
-				break;
-			case BALANCE_XMIT_POLICY_LAYER23:
-				printf("BALANCE_XMIT_POLICY_LAYER23");
-				break;
-			case BALANCE_XMIT_POLICY_LAYER34:
-				printf("BALANCE_XMIT_POLICY_LAYER34");
-				break;
-			}
-			printf("\n");
-		}
-	}
-
-	if (bonding_mode == BONDING_MODE_8023AD) {
-		agg_mode = rte_eth_bond_8023ad_agg_selection_get(port_id);
-		printf("\tIEEE802.3AD Aggregator Mode: ");
-		switch (agg_mode) {
-		case AGG_BANDWIDTH:
-			printf("bandwidth");
-			break;
-		case AGG_STABLE:
-			printf("stable");
-			break;
-		case AGG_COUNT:
-			printf("count");
-			break;
-		}
-		printf("\n");
-	}
-
-	num_slaves = rte_eth_bond_slaves_get(port_id, slaves, RTE_MAX_ETHPORTS);
-
-	if (num_slaves < 0) {
-		fprintf(stderr, "\tFailed to get slave list for port = %d\n",
-			port_id);
-		return;
-	}
-	if (num_slaves > 0) {
-		printf("\tSlaves (%d): [", num_slaves);
-		for (i = 0; i < num_slaves - 1; i++)
-			printf("%d ", slaves[i]);
-
-		printf("%d]\n", slaves[num_slaves - 1]);
-	} else {
-		printf("\tSlaves: []\n");
-
-	}
-
-	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
-			RTE_MAX_ETHPORTS);
-
-	if (num_active_slaves < 0) {
-		fprintf(stderr,
-			"\tFailed to get active slave list for port = %d\n",
-			port_id);
-		return;
-	}
-	if (num_active_slaves > 0) {
-		printf("\tActive Slaves (%d): [", num_active_slaves);
-		for (i = 0; i < num_active_slaves - 1; i++)
-			printf("%d ", slaves[i]);
-
-		printf("%d]\n", slaves[num_active_slaves - 1]);
-
-	} else {
-		printf("\tActive Slaves: []\n");
-
-	}
-
-	primary_id = rte_eth_bond_primary_get(port_id);
-	if (primary_id < 0) {
-		fprintf(stderr, "\tFailed to get primary slave for port = %d\n",
-			port_id);
-		return;
-	} else
-		printf("\tPrimary: [%d]\n", primary_id);
-
-}
-
-cmdline_parse_token_string_t cmd_showbonding_config_show =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
-		show, "show");
-cmdline_parse_token_string_t cmd_showbonding_config_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
-		bonding, "bonding");
-cmdline_parse_token_string_t cmd_showbonding_config_config =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
-		config, "config");
-cmdline_parse_token_num_t cmd_showbonding_config_port =
-TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_config_result,
-		port_id, RTE_UINT16);
-
-cmdline_parse_inst_t cmd_show_bonding_config = {
-		.f = cmd_show_bonding_config_parsed,
-		.help_str = "show bonding config <port_id>: "
-			"Show the bonding config for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_showbonding_config_show,
-				(void *)&cmd_showbonding_config_bonding,
-				(void *)&cmd_showbonding_config_config,
-				(void *)&cmd_showbonding_config_port,
-				NULL
-		}
-};
-
-/* *** SET BONDING PRIMARY *** */
-struct cmd_set_bonding_primary_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t primary;
-	portid_t slave_id;
-	portid_t port_id;
-};
-
-static void cmd_set_bonding_primary_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_primary_result *res = parsed_result;
-	portid_t master_port_id = res->port_id;
-	portid_t slave_port_id = res->slave_id;
-
-	/* Set the primary slave for a bonded device. */
-	if (0 != rte_eth_bond_primary_set(master_port_id, slave_port_id)) {
-		fprintf(stderr, "\t Failed to set primary slave for port = %d.\n",
-			master_port_id);
-		return;
-	}
-	init_port_config();
-}
-
-cmdline_parse_token_string_t cmd_setbonding_primary_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
-		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
-		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_primary_primary =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
-		primary, "primary");
-cmdline_parse_token_num_t cmd_setbonding_primary_slave =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
-		slave_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_setbonding_primary_port =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
-		port_id, RTE_UINT16);
-
-cmdline_parse_inst_t cmd_set_bonding_primary = {
-		.f = cmd_set_bonding_primary_parsed,
-		.help_str = "set bonding primary <slave_id> <port_id>: "
-			"Set the primary slave for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_setbonding_primary_set,
-				(void *)&cmd_setbonding_primary_bonding,
-				(void *)&cmd_setbonding_primary_primary,
-				(void *)&cmd_setbonding_primary_slave,
-				(void *)&cmd_setbonding_primary_port,
-				NULL
-		}
-};
-
-/* *** ADD SLAVE *** */
-struct cmd_add_bonding_slave_result {
-	cmdline_fixed_string_t add;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t slave;
-	portid_t slave_id;
-	portid_t port_id;
-};
-
-static void cmd_add_bonding_slave_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_add_bonding_slave_result *res = parsed_result;
-	portid_t master_port_id = res->port_id;
-	portid_t slave_port_id = res->slave_id;
-
-	/* add the slave for a bonded device. */
-	if (0 != rte_eth_bond_slave_add(master_port_id, slave_port_id)) {
-		fprintf(stderr,
-			"\t Failed to add slave %d to master port = %d.\n",
-			slave_port_id, master_port_id);
-		return;
-	}
-	init_port_config();
-	set_port_slave_flag(slave_port_id);
-}
-
-cmdline_parse_token_string_t cmd_addbonding_slave_add =
-TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
-		add, "add");
-cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
-		bonding, "bonding");
-cmdline_parse_token_string_t cmd_addbonding_slave_slave =
-TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
-		slave, "slave");
-cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
-TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
-		slave_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_addbonding_slave_port =
-TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
-		port_id, RTE_UINT16);
-
-cmdline_parse_inst_t cmd_add_bonding_slave = {
-		.f = cmd_add_bonding_slave_parsed,
-		.help_str = "add bonding slave <slave_id> <port_id>: "
-			"Add a slave device to a bonded device",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_addbonding_slave_add,
-				(void *)&cmd_addbonding_slave_bonding,
-				(void *)&cmd_addbonding_slave_slave,
-				(void *)&cmd_addbonding_slave_slaveid,
-				(void *)&cmd_addbonding_slave_port,
-				NULL
-		}
-};
-
-/* *** REMOVE SLAVE *** */
-struct cmd_remove_bonding_slave_result {
-	cmdline_fixed_string_t remove;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t slave;
-	portid_t slave_id;
-	portid_t port_id;
-};
-
-static void cmd_remove_bonding_slave_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_remove_bonding_slave_result *res = parsed_result;
-	portid_t master_port_id = res->port_id;
-	portid_t slave_port_id = res->slave_id;
-
-	/* remove the slave from a bonded device. */
-	if (0 != rte_eth_bond_slave_remove(master_port_id, slave_port_id)) {
-		fprintf(stderr,
-			"\t Failed to remove slave %d from master port = %d.\n",
-			slave_port_id, master_port_id);
-		return;
-	}
-	init_port_config();
-	clear_port_slave_flag(slave_port_id);
-}
-
-cmdline_parse_token_string_t cmd_removebonding_slave_remove =
-		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				remove, "remove");
-cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
-		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				bonding, "bonding");
-cmdline_parse_token_string_t cmd_removebonding_slave_slave =
-		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				slave, "slave");
-cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
-		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				slave_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_removebonding_slave_port =
-		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				port_id, RTE_UINT16);
-
-cmdline_parse_inst_t cmd_remove_bonding_slave = {
-		.f = cmd_remove_bonding_slave_parsed,
-		.help_str = "remove bonding slave <slave_id> <port_id>: "
-			"Remove a slave device from a bonded device",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_removebonding_slave_remove,
-				(void *)&cmd_removebonding_slave_bonding,
-				(void *)&cmd_removebonding_slave_slave,
-				(void *)&cmd_removebonding_slave_slaveid,
-				(void *)&cmd_removebonding_slave_port,
-				NULL
-		}
-};
-
-/* *** CREATE BONDED DEVICE *** */
-struct cmd_create_bonded_device_result {
-	cmdline_fixed_string_t create;
-	cmdline_fixed_string_t bonded;
-	cmdline_fixed_string_t device;
-	uint8_t mode;
-	uint8_t socket;
-};
-
-static int bond_dev_num = 0;
-
-static void cmd_create_bonded_device_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_create_bonded_device_result *res = parsed_result;
-	char ethdev_name[RTE_ETH_NAME_MAX_LEN];
-	int port_id;
-	int ret;
-
-	if (test_done == 0) {
-		fprintf(stderr, "Please stop forwarding first\n");
-		return;
-	}
-
-	snprintf(ethdev_name, RTE_ETH_NAME_MAX_LEN, "net_bonding_testpmd_%d",
-			bond_dev_num++);
-
-	/* Create a new bonded device. */
-	port_id = rte_eth_bond_create(ethdev_name, res->mode, res->socket);
-	if (port_id < 0) {
-		fprintf(stderr, "\t Failed to create bonded device.\n");
-		return;
-	} else {
-		printf("Created new bonded device %s on (port %d).\n", ethdev_name,
-				port_id);
-
-		/* Update number of ports */
-		nb_ports = rte_eth_dev_count_avail();
-		reconfig(port_id, res->socket);
-		ret = rte_eth_promiscuous_enable(port_id);
-		if (ret != 0)
-			fprintf(stderr,
-				"Failed to enable promiscuous mode for port %u: %s - ignore\n",
-				port_id, rte_strerror(-ret));
-
-		ports[port_id].need_setup = 0;
-		ports[port_id].port_status = RTE_PORT_STOPPED;
-	}
-
-}
-
-cmdline_parse_token_string_t cmd_createbonded_device_create =
-		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
-				create, "create");
-cmdline_parse_token_string_t cmd_createbonded_device_bonded =
-		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
-				bonded, "bonded");
-cmdline_parse_token_string_t cmd_createbonded_device_device =
-		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
-				device, "device");
-cmdline_parse_token_num_t cmd_createbonded_device_mode =
-		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
-				mode, RTE_UINT8);
-cmdline_parse_token_num_t cmd_createbonded_device_socket =
-		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
-				socket, RTE_UINT8);
-
-cmdline_parse_inst_t cmd_create_bonded_device = {
-		.f = cmd_create_bonded_device_parsed,
-		.help_str = "create bonded device <mode> <socket>: "
-			"Create a new bonded device with specific bonding mode and socket",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_createbonded_device_create,
-				(void *)&cmd_createbonded_device_bonded,
-				(void *)&cmd_createbonded_device_device,
-				(void *)&cmd_createbonded_device_mode,
-				(void *)&cmd_createbonded_device_socket,
-				NULL
-		}
-};
-
-/* *** SET MAC ADDRESS IN BONDED DEVICE *** */
-struct cmd_set_bond_mac_addr_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t mac_addr;
-	uint16_t port_num;
-	struct rte_ether_addr address;
-};
-
-static void cmd_set_bond_mac_addr_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bond_mac_addr_result *res = parsed_result;
-	int ret;
-
-	if (port_id_is_invalid(res->port_num, ENABLED_WARN))
-		return;
-
-	ret = rte_eth_bond_mac_address_set(res->port_num, &res->address);
-
-	/* check the return value and print it if is < 0 */
-	if (ret < 0)
-		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
-			strerror(-ret));
-}
-
-cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, set, "set");
-cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, bonding,
-				"bonding");
-cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, mac_addr,
-				"mac_addr");
-cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
-		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mac_addr_result,
-				port_num, RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
-		TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_bond_mac_addr_result, address);
-
-cmdline_parse_inst_t cmd_set_bond_mac_addr = {
-		.f = cmd_set_bond_mac_addr_parsed,
-		.data = (void *) 0,
-		.help_str = "set bonding mac_addr <port_id> <mac_addr>",
-		.tokens = {
-				(void *)&cmd_set_bond_mac_addr_set,
-				(void *)&cmd_set_bond_mac_addr_bonding,
-				(void *)&cmd_set_bond_mac_addr_mac,
-				(void *)&cmd_set_bond_mac_addr_portnum,
-				(void *)&cmd_set_bond_mac_addr_addr,
-				NULL
-		}
-};
-
-
-/* *** SET LINK STATUS MONITORING POLLING PERIOD ON BONDED DEVICE *** */
-struct cmd_set_bond_mon_period_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t mon_period;
-	uint16_t port_num;
-	uint32_t period_ms;
-};
-
-static void cmd_set_bond_mon_period_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bond_mon_period_result *res = parsed_result;
-	int ret;
-
-	ret = rte_eth_bond_link_monitoring_set(res->port_num, res->period_ms);
-
-	/* check the return value and print it if is < 0 */
-	if (ret < 0)
-		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
-			strerror(-ret));
-}
-
-cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				set, "set");
-cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				bonding, "bonding");
-cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				mon_period,	"mon_period");
-cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
-		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				port_num, RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
-		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				period_ms, RTE_UINT32);
-
-cmdline_parse_inst_t cmd_set_bond_mon_period = {
-		.f = cmd_set_bond_mon_period_parsed,
-		.data = (void *) 0,
-		.help_str = "set bonding mon_period <port_id> <period_ms>",
-		.tokens = {
-				(void *)&cmd_set_bond_mon_period_set,
-				(void *)&cmd_set_bond_mon_period_bonding,
-				(void *)&cmd_set_bond_mon_period_mon_period,
-				(void *)&cmd_set_bond_mon_period_portnum,
-				(void *)&cmd_set_bond_mon_period_period_ms,
-				NULL
-		}
-};
-
-
-
-struct cmd_set_bonding_agg_mode_policy_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t agg_mode;
-	uint16_t port_num;
-	cmdline_fixed_string_t policy;
-};
-
-
-static void
-cmd_set_bonding_agg_mode(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_agg_mode_policy_result *res = parsed_result;
-	uint8_t policy = AGG_BANDWIDTH;
-
-	if (!strcmp(res->policy, "bandwidth"))
-		policy = AGG_BANDWIDTH;
-	else if (!strcmp(res->policy, "stable"))
-		policy = AGG_STABLE;
-	else if (!strcmp(res->policy, "count"))
-		policy = AGG_COUNT;
-
-	rte_eth_bond_8023ad_agg_selection_set(res->port_num, policy);
-}
-
-
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				set, "set");
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				bonding, "bonding");
-
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				agg_mode, "agg_mode");
-
-cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				port_num, RTE_UINT16);
-
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
-	TOKEN_STRING_INITIALIZER(
-			struct cmd_set_bonding_balance_xmit_policy_result,
-		policy, "stable#bandwidth#count");
-
-cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
-	.f = cmd_set_bonding_agg_mode,
-	.data = (void *) 0,
-	.help_str = "set bonding mode IEEE802.3AD aggregator policy <port_id> <agg_name>",
-	.tokens = {
-			(void *)&cmd_set_bonding_agg_mode_set,
-			(void *)&cmd_set_bonding_agg_mode_bonding,
-			(void *)&cmd_set_bonding_agg_mode_agg_mode,
-			(void *)&cmd_set_bonding_agg_mode_portnum,
-			(void *)&cmd_set_bonding_agg_mode_policy_string,
-			NULL
-		}
-};
-
-
-#endif /* RTE_NET_BOND */
-
 /* *** SET FORWARDING MODE *** */
 struct cmd_set_fwd_mode_result {
 	cmdline_fixed_string_t set;
@@ -17870,20 +16849,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_bypass_event,
 	(cmdline_parse_inst_t *)&cmd_set_bypass_timeout,
 	(cmdline_parse_inst_t *)&cmd_show_bypass_config,
-#ifdef RTE_NET_BOND
-	(cmdline_parse_inst_t *) &cmd_set_bonding_mode,
-	(cmdline_parse_inst_t *) &cmd_show_bonding_config,
-	(cmdline_parse_inst_t *) &cmd_show_bonding_lacp_info,
-	(cmdline_parse_inst_t *) &cmd_set_bonding_primary,
-	(cmdline_parse_inst_t *) &cmd_add_bonding_slave,
-	(cmdline_parse_inst_t *) &cmd_remove_bonding_slave,
-	(cmdline_parse_inst_t *) &cmd_create_bonded_device,
-	(cmdline_parse_inst_t *) &cmd_set_bond_mac_addr,
-	(cmdline_parse_inst_t *) &cmd_set_balance_xmit_policy,
-	(cmdline_parse_inst_t *) &cmd_set_bond_mon_period,
-	(cmdline_parse_inst_t *) &cmd_set_lacp_dedicated_queues,
-	(cmdline_parse_inst_t *) &cmd_set_bonding_agg_mode_policy,
-#endif
 	(cmdline_parse_inst_t *)&cmd_vlan_offload,
 	(cmdline_parse_inst_t *)&cmd_vlan_tpid,
 	(cmdline_parse_inst_t *)&cmd_rx_vlan_filter_all,
diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index 46a7511e9a..07634332f3 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -58,9 +58,6 @@ endif
 if dpdk_conf.has('RTE_LIB_PDUMP')
     deps += 'pdump'
 endif
-if dpdk_conf.has('RTE_NET_BOND')
-    deps += 'net_bond'
-endif
 if dpdk_conf.has('RTE_NET_BNXT')
     deps += 'net_bnxt'
 endif
diff --git a/drivers/net/bonding/meson.build b/drivers/net/bonding/meson.build
index 402b44be1a..faea892295 100644
--- a/drivers/net/bonding/meson.build
+++ b/drivers/net/bonding/meson.build
@@ -16,6 +16,7 @@ sources = files(
         'rte_eth_bond_flow.c',
         'rte_eth_bond_pmd.c',
 )
+testpmd_sources = files('rte_eth_bond_testpmd.c')
 
 deps += 'sched' # needed for rte_bitmap.h
 deps += ['ip_frag']
diff --git a/drivers/net/bonding/rte_eth_bond_testpmd.c b/drivers/net/bonding/rte_eth_bond_testpmd.c
new file mode 100644
index 0000000000..834e2da4e6
--- /dev/null
+++ b/drivers/net/bonding/rte_eth_bond_testpmd.c
@@ -0,0 +1,1037 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2016 Intel Corporation.
+ */
+
+#include <rte_eth_bond.h>
+#include <rte_eth_bond_8023ad.h>
+
+#include <cmdline_parse.h>
+#include <cmdline_parse_etheraddr.h>
+#include <cmdline_parse_num.h>
+#include <cmdline_parse_string.h>
+
+#include "testpmd.h"
+
+/* *** SET BONDING MODE *** */
+struct cmd_set_bonding_mode_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t mode;
+	uint8_t value;
+	portid_t port_id;
+};
+
+static void cmd_set_bonding_mode_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bonding_mode_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	struct rte_port *port = &ports[port_id];
+
+	/*
+	 * Bonding mode changed means resources of device changed, like whether
+	 * started rte timer or not. Device should be restarted when resources
+	 * of device changed.
+	 */
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr,
+			"\t Error: Can't set bonding mode when port %d is not stopped\n",
+			port_id);
+		return;
+	}
+
+	/* Set the bonding mode for the relevant port. */
+	if (rte_eth_bond_mode_set(port_id, res->value) != 0)
+		fprintf(stderr, "\t Failed to set bonding mode for port = %d.\n",
+			port_id);
+}
+
+cmdline_parse_token_string_t cmd_setbonding_mode_set =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
+		set, "set");
+cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
+		bonding, "bonding");
+cmdline_parse_token_string_t cmd_setbonding_mode_mode =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
+		mode, "mode");
+cmdline_parse_token_num_t cmd_setbonding_mode_value =
+TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
+		value, RTE_UINT8);
+cmdline_parse_token_num_t cmd_setbonding_mode_port =
+TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
+		port_id, RTE_UINT16);
+
+cmdline_parse_inst_t cmd_set_bonding_mode = {
+		.f = cmd_set_bonding_mode_parsed,
+		.help_str = "set bonding mode <mode_value> <port_id>: "
+			"Set the bonding mode for port_id",
+		.data = NULL,
+		.tokens = {
+				(void *)&cmd_setbonding_mode_set,
+				(void *)&cmd_setbonding_mode_bonding,
+				(void *)&cmd_setbonding_mode_mode,
+				(void *)&cmd_setbonding_mode_value,
+				(void *)&cmd_setbonding_mode_port,
+				NULL
+		}
+};
+
+/* *** SET BONDING SLOW_QUEUE SW/HW *** */
+struct cmd_set_bonding_lacp_dedicated_queues_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t lacp;
+	cmdline_fixed_string_t dedicated_queues;
+	portid_t port_id;
+	cmdline_fixed_string_t mode;
+};
+
+static void cmd_set_bonding_lacp_dedicated_queues_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bonding_lacp_dedicated_queues_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	struct rte_port *port;
+
+	port = &ports[port_id];
+
+	/** Check if the port is not started **/
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr, "Please stop port %d first\n", port_id);
+		return;
+	}
+
+	if (!strcmp(res->mode, "enable")) {
+		if (rte_eth_bond_8023ad_dedicated_queues_enable(port_id) == 0)
+			printf("Dedicate queues for LACP control packets"
+					" enabled\n");
+		else
+			printf("Enabling dedicate queues for LACP control "
+					"packets on port %d failed\n", port_id);
+	} else if (!strcmp(res->mode, "disable")) {
+		if (rte_eth_bond_8023ad_dedicated_queues_disable(port_id) == 0)
+			printf("Dedicated queues for LACP control packets "
+					"disabled\n");
+		else
+			printf("Disabling dedicated queues for LACP control "
+					"traffic on port %d failed\n", port_id);
+	}
+}
+
+cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		set, "set");
+cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		bonding, "bonding");
+cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		lacp, "lacp");
+cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		dedicated_queues, "dedicated_queues");
+cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
+TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		port_id, RTE_UINT16);
+cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		mode, "enable#disable");
+
+cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
+		.f = cmd_set_bonding_lacp_dedicated_queues_parsed,
+		.help_str = "set bonding lacp dedicated_queues <port_id> "
+			"enable|disable: "
+			"Enable/disable dedicated queues for LACP control traffic for port_id",
+		.data = NULL,
+		.tokens = {
+			(void *)&cmd_setbonding_lacp_dedicated_queues_set,
+			(void *)&cmd_setbonding_lacp_dedicated_queues_bonding,
+			(void *)&cmd_setbonding_lacp_dedicated_queues_lacp,
+			(void *)&cmd_setbonding_lacp_dedicated_queues_dedicated_queues,
+			(void *)&cmd_setbonding_lacp_dedicated_queues_port_id,
+			(void *)&cmd_setbonding_lacp_dedicated_queues_mode,
+			NULL
+		}
+};
+
+/* *** SET BALANCE XMIT POLICY *** */
+struct cmd_set_bonding_balance_xmit_policy_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t balance_xmit_policy;
+	portid_t port_id;
+	cmdline_fixed_string_t policy;
+};
+
+static void cmd_set_bonding_balance_xmit_policy_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bonding_balance_xmit_policy_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	uint8_t policy;
+
+	if (!strcmp(res->policy, "l2")) {
+		policy = BALANCE_XMIT_POLICY_LAYER2;
+	} else if (!strcmp(res->policy, "l23")) {
+		policy = BALANCE_XMIT_POLICY_LAYER23;
+	} else if (!strcmp(res->policy, "l34")) {
+		policy = BALANCE_XMIT_POLICY_LAYER34;
+	} else {
+		fprintf(stderr, "\t Invalid xmit policy selection");
+		return;
+	}
+
+	/* Set the bonding mode for the relevant port. */
+	if (rte_eth_bond_xmit_policy_set(port_id, policy) != 0) {
+		fprintf(stderr,
+			"\t Failed to set bonding balance xmit policy for port = %d.\n",
+			port_id);
+	}
+}
+
+cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		set, "set");
+cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		bonding, "bonding");
+cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		balance_xmit_policy, "balance_xmit_policy");
+cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
+TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		port_id, RTE_UINT16);
+cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		policy, "l2#l23#l34");
+
+cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
+		.f = cmd_set_bonding_balance_xmit_policy_parsed,
+		.help_str = "set bonding balance_xmit_policy <port_id> "
+			"l2|l23|l34: "
+			"Set the bonding balance_xmit_policy for port_id",
+		.data = NULL,
+		.tokens = {
+				(void *)&cmd_setbonding_balance_xmit_policy_set,
+				(void *)&cmd_setbonding_balance_xmit_policy_bonding,
+				(void *)&cmd_setbonding_balance_xmit_policy_balance_xmit_policy,
+				(void *)&cmd_setbonding_balance_xmit_policy_port,
+				(void *)&cmd_setbonding_balance_xmit_policy_policy,
+				NULL
+		}
+};
+
+/* *** SHOW IEEE802.3 BONDING INFORMATION *** */
+struct cmd_show_bonding_lacp_info_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t lacp;
+	cmdline_fixed_string_t info;
+	portid_t port_id;
+};
+
+static void port_param_show(struct port_params *params)
+{
+	char buf[RTE_ETHER_ADDR_FMT_SIZE];
+
+	printf("\t\tsystem priority: %u\n", params->system_priority);
+	rte_ether_format_addr(buf, RTE_ETHER_ADDR_FMT_SIZE, &params->system);
+	printf("\t\tsystem mac address: %s\n", buf);
+	printf("\t\tport key: %u\n", params->key);
+	printf("\t\tport priority: %u\n", params->port_priority);
+	printf("\t\tport number: %u\n", params->port_number);
+}
+
+static void lacp_slave_info_show(struct rte_eth_bond_8023ad_slave_info *info)
+{
+	char a_state[256] = { 0 };
+	char p_state[256] = { 0 };
+	int a_len = 0;
+	int p_len = 0;
+	uint32_t i;
+
+	static const char * const state[] = {
+		"ACTIVE",
+		"TIMEOUT",
+		"AGGREGATION",
+		"SYNCHRONIZATION",
+		"COLLECTING",
+		"DISTRIBUTING",
+		"DEFAULTED",
+		"EXPIRED"
+	};
+	static const char * const selection[] = {
+		"UNSELECTED",
+		"STANDBY",
+		"SELECTED"
+	};
+
+	for (i = 0; i < RTE_DIM(state); i++) {
+		if ((info->actor_state >> i) & 1)
+			a_len += snprintf(&a_state[a_len],
+						RTE_DIM(a_state) - a_len, "%s ",
+						state[i]);
+
+		if ((info->partner_state >> i) & 1)
+			p_len += snprintf(&p_state[p_len],
+						RTE_DIM(p_state) - p_len, "%s ",
+						state[i]);
+	}
+	printf("\tAggregator port id: %u\n", info->agg_port_id);
+	printf("\tselection: %s\n", selection[info->selected]);
+	printf("\tActor detail info:\n");
+	port_param_show(&info->actor);
+	printf("\t\tport state: %s\n", a_state);
+	printf("\tPartner detail info:\n");
+	port_param_show(&info->partner);
+	printf("\t\tport state: %s\n", p_state);
+	printf("\n");
+}
+
+static void lacp_conf_show(struct rte_eth_bond_8023ad_conf *conf)
+{
+	printf("\tfast period: %u ms\n", conf->fast_periodic_ms);
+	printf("\tslow period: %u ms\n", conf->slow_periodic_ms);
+	printf("\tshort timeout: %u ms\n", conf->short_timeout_ms);
+	printf("\tlong timeout: %u ms\n", conf->long_timeout_ms);
+	printf("\taggregate wait timeout: %u ms\n",
+			conf->aggregate_wait_timeout_ms);
+	printf("\ttx period: %u ms\n", conf->tx_period_ms);
+	printf("\trx marker period: %u ms\n", conf->rx_marker_period_ms);
+	printf("\tupdate timeout: %u ms\n", conf->update_timeout_ms);
+	switch (conf->agg_selection) {
+	case AGG_BANDWIDTH:
+		printf("\taggregation mode: bandwidth\n");
+		break;
+	case AGG_STABLE:
+		printf("\taggregation mode: stable\n");
+		break;
+	case AGG_COUNT:
+		printf("\taggregation mode: count\n");
+		break;
+	default:
+		printf("\taggregation mode: invalid\n");
+		break;
+	}
+
+	printf("\n");
+}
+
+static void cmd_show_bonding_lacp_info_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_show_bonding_lacp_info_result *res = parsed_result;
+	struct rte_eth_bond_8023ad_slave_info slave_info;
+	struct rte_eth_bond_8023ad_conf port_conf;
+	portid_t slaves[RTE_MAX_ETHPORTS];
+	portid_t port_id = res->port_id;
+	int num_active_slaves;
+	int bonding_mode;
+	int i;
+	int ret;
+
+	bonding_mode = rte_eth_bond_mode_get(port_id);
+	if (bonding_mode != BONDING_MODE_8023AD) {
+		fprintf(stderr, "\tBonding mode is not mode 4\n");
+		return;
+	}
+
+	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
+			RTE_MAX_ETHPORTS);
+	if (num_active_slaves < 0) {
+		fprintf(stderr, "\tFailed to get active slave list for port = %u\n",
+				port_id);
+		return;
+	}
+	if (num_active_slaves == 0)
+		fprintf(stderr, "\tIEEE802.3 port %u has no active slave\n",
+			port_id);
+
+	printf("\tIEEE802.3 port: %u\n", port_id);
+	ret = rte_eth_bond_8023ad_conf_get(port_id, &port_conf);
+	if (ret) {
+		fprintf(stderr, "\tGet bonded device %u info failed\n",
+			port_id);
+		return;
+	}
+	lacp_conf_show(&port_conf);
+
+	for (i = 0; i < num_active_slaves; i++) {
+		ret = rte_eth_bond_8023ad_slave_info(port_id, slaves[i],
+				&slave_info);
+		if (ret) {
+			fprintf(stderr, "\tGet slave device %u info failed\n",
+				slaves[i]);
+			return;
+		}
+		printf("\tSlave Port: %u\n", slaves[i]);
+		lacp_slave_info_show(&slave_info);
+	}
+}
+
+cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
+TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		show, "show");
+cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
+TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		bonding, "bonding");
+cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
+TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		bonding, "lacp");
+cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
+TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		info, "info");
+cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
+TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		port_id, RTE_UINT16);
+
+cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
+		.f = cmd_show_bonding_lacp_info_parsed,
+		.help_str = "show bonding lacp info <port_id> : "
+			"Show bonding IEEE802.3 information for port_id",
+		.data = NULL,
+		.tokens = {
+			(void *)&cmd_show_bonding_lacp_info_show,
+			(void *)&cmd_show_bonding_lacp_info_bonding,
+			(void *)&cmd_show_bonding_lacp_info_lacp,
+			(void *)&cmd_show_bonding_lacp_info_info,
+			(void *)&cmd_show_bonding_lacp_info_port_id,
+			NULL
+		}
+};
+
+/* *** SHOW NIC BONDING CONFIGURATION *** */
+struct cmd_show_bonding_config_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t config;
+	portid_t port_id;
+};
+
+static void cmd_show_bonding_config_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_show_bonding_config_result *res = parsed_result;
+	int bonding_mode, agg_mode;
+	portid_t slaves[RTE_MAX_ETHPORTS];
+	int num_slaves, num_active_slaves;
+	int primary_id;
+	int i;
+	portid_t port_id = res->port_id;
+
+	/* Display the bonding mode.*/
+	bonding_mode = rte_eth_bond_mode_get(port_id);
+	if (bonding_mode < 0) {
+		fprintf(stderr, "\tFailed to get bonding mode for port = %d\n",
+			port_id);
+		return;
+	}
+	printf("\tBonding mode: %d\n", bonding_mode);
+
+	if (bonding_mode == BONDING_MODE_BALANCE ||
+		bonding_mode == BONDING_MODE_8023AD) {
+		int balance_xmit_policy;
+
+		balance_xmit_policy = rte_eth_bond_xmit_policy_get(port_id);
+		if (balance_xmit_policy < 0) {
+			fprintf(stderr,
+				"\tFailed to get balance xmit policy for port = %d\n",
+				port_id);
+			return;
+		}
+		printf("\tBalance Xmit Policy: ");
+
+		switch (balance_xmit_policy) {
+		case BALANCE_XMIT_POLICY_LAYER2:
+			printf("BALANCE_XMIT_POLICY_LAYER2");
+			break;
+		case BALANCE_XMIT_POLICY_LAYER23:
+			printf("BALANCE_XMIT_POLICY_LAYER23");
+			break;
+		case BALANCE_XMIT_POLICY_LAYER34:
+			printf("BALANCE_XMIT_POLICY_LAYER34");
+			break;
+		}
+		printf("\n");
+	}
+
+	if (bonding_mode == BONDING_MODE_8023AD) {
+		agg_mode = rte_eth_bond_8023ad_agg_selection_get(port_id);
+		printf("\tIEEE802.3AD Aggregator Mode: ");
+		switch (agg_mode) {
+		case AGG_BANDWIDTH:
+			printf("bandwidth");
+			break;
+		case AGG_STABLE:
+			printf("stable");
+			break;
+		case AGG_COUNT:
+			printf("count");
+			break;
+		}
+		printf("\n");
+	}
+
+	num_slaves = rte_eth_bond_slaves_get(port_id, slaves, RTE_MAX_ETHPORTS);
+
+	if (num_slaves < 0) {
+		fprintf(stderr, "\tFailed to get slave list for port = %d\n",
+			port_id);
+		return;
+	}
+	if (num_slaves > 0) {
+		printf("\tSlaves (%d): [", num_slaves);
+		for (i = 0; i < num_slaves - 1; i++)
+			printf("%d ", slaves[i]);
+
+		printf("%d]\n", slaves[num_slaves - 1]);
+	} else {
+		printf("\tSlaves: []\n");
+	}
+
+	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
+			RTE_MAX_ETHPORTS);
+
+	if (num_active_slaves < 0) {
+		fprintf(stderr,
+			"\tFailed to get active slave list for port = %d\n",
+			port_id);
+		return;
+	}
+	if (num_active_slaves > 0) {
+		printf("\tActive Slaves (%d): [", num_active_slaves);
+		for (i = 0; i < num_active_slaves - 1; i++)
+			printf("%d ", slaves[i]);
+
+		printf("%d]\n", slaves[num_active_slaves - 1]);
+
+	} else {
+		printf("\tActive Slaves: []\n");
+	}
+
+	primary_id = rte_eth_bond_primary_get(port_id);
+	if (primary_id < 0) {
+		fprintf(stderr, "\tFailed to get primary slave for port = %d\n",
+			port_id);
+		return;
+	}
+	printf("\tPrimary: [%d]\n", primary_id);
+}
+
+cmdline_parse_token_string_t cmd_showbonding_config_show =
+TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
+		show, "show");
+cmdline_parse_token_string_t cmd_showbonding_config_bonding =
+TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
+		bonding, "bonding");
+cmdline_parse_token_string_t cmd_showbonding_config_config =
+TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
+		config, "config");
+cmdline_parse_token_num_t cmd_showbonding_config_port =
+TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_config_result,
+		port_id, RTE_UINT16);
+
+cmdline_parse_inst_t cmd_show_bonding_config = {
+		.f = cmd_show_bonding_config_parsed,
+		.help_str = "show bonding config <port_id>: "
+			"Show the bonding config for port_id",
+		.data = NULL,
+		.tokens = {
+				(void *)&cmd_showbonding_config_show,
+				(void *)&cmd_showbonding_config_bonding,
+				(void *)&cmd_showbonding_config_config,
+				(void *)&cmd_showbonding_config_port,
+				NULL
+		}
+};
+
+/* *** SET BONDING PRIMARY *** */
+struct cmd_set_bonding_primary_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t primary;
+	portid_t slave_id;
+	portid_t port_id;
+};
+
+static void cmd_set_bonding_primary_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bonding_primary_result *res = parsed_result;
+	portid_t master_port_id = res->port_id;
+	portid_t slave_port_id = res->slave_id;
+
+	/* Set the primary slave for a bonded device. */
+	if (rte_eth_bond_primary_set(master_port_id, slave_port_id) != 0) {
+		fprintf(stderr, "\t Failed to set primary slave for port = %d.\n",
+			master_port_id);
+		return;
+	}
+	init_port_config();
+}
+
+cmdline_parse_token_string_t cmd_setbonding_primary_set =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
+		set, "set");
+cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
+		bonding, "bonding");
+cmdline_parse_token_string_t cmd_setbonding_primary_primary =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
+		primary, "primary");
+cmdline_parse_token_num_t cmd_setbonding_primary_slave =
+TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
+		slave_id, RTE_UINT16);
+cmdline_parse_token_num_t cmd_setbonding_primary_port =
+TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
+		port_id, RTE_UINT16);
+
+cmdline_parse_inst_t cmd_set_bonding_primary = {
+		.f = cmd_set_bonding_primary_parsed,
+		.help_str = "set bonding primary <slave_id> <port_id>: "
+			"Set the primary slave for port_id",
+		.data = NULL,
+		.tokens = {
+				(void *)&cmd_setbonding_primary_set,
+				(void *)&cmd_setbonding_primary_bonding,
+				(void *)&cmd_setbonding_primary_primary,
+				(void *)&cmd_setbonding_primary_slave,
+				(void *)&cmd_setbonding_primary_port,
+				NULL
+		}
+};
+
+/* *** ADD SLAVE *** */
+struct cmd_add_bonding_slave_result {
+	cmdline_fixed_string_t add;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t slave;
+	portid_t slave_id;
+	portid_t port_id;
+};
+
+static void cmd_add_bonding_slave_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_add_bonding_slave_result *res = parsed_result;
+	portid_t master_port_id = res->port_id;
+	portid_t slave_port_id = res->slave_id;
+
+	/* add the slave for a bonded device. */
+	if (rte_eth_bond_slave_add(master_port_id, slave_port_id) != 0) {
+		fprintf(stderr,
+			"\t Failed to add slave %d to master port = %d.\n",
+			slave_port_id, master_port_id);
+		return;
+	}
+	init_port_config();
+	set_port_slave_flag(slave_port_id);
+}
+
+cmdline_parse_token_string_t cmd_addbonding_slave_add =
+TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
+		add, "add");
+cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
+TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
+		bonding, "bonding");
+cmdline_parse_token_string_t cmd_addbonding_slave_slave =
+TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
+		slave, "slave");
+cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
+TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
+		slave_id, RTE_UINT16);
+cmdline_parse_token_num_t cmd_addbonding_slave_port =
+TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
+		port_id, RTE_UINT16);
+
+cmdline_parse_inst_t cmd_add_bonding_slave = {
+		.f = cmd_add_bonding_slave_parsed,
+		.help_str = "add bonding slave <slave_id> <port_id>: "
+			"Add a slave device to a bonded device",
+		.data = NULL,
+		.tokens = {
+				(void *)&cmd_addbonding_slave_add,
+				(void *)&cmd_addbonding_slave_bonding,
+				(void *)&cmd_addbonding_slave_slave,
+				(void *)&cmd_addbonding_slave_slaveid,
+				(void *)&cmd_addbonding_slave_port,
+				NULL
+		}
+};
+
+/* *** REMOVE SLAVE *** */
+struct cmd_remove_bonding_slave_result {
+	cmdline_fixed_string_t remove;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t slave;
+	portid_t slave_id;
+	portid_t port_id;
+};
+
+static void cmd_remove_bonding_slave_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_remove_bonding_slave_result *res = parsed_result;
+	portid_t master_port_id = res->port_id;
+	portid_t slave_port_id = res->slave_id;
+
+	/* remove the slave from a bonded device. */
+	if (rte_eth_bond_slave_remove(master_port_id, slave_port_id) != 0) {
+		fprintf(stderr,
+			"\t Failed to remove slave %d from master port = %d.\n",
+			slave_port_id, master_port_id);
+		return;
+	}
+	init_port_config();
+	clear_port_slave_flag(slave_port_id);
+}
+
+cmdline_parse_token_string_t cmd_removebonding_slave_remove =
+		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
+				remove, "remove");
+cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
+		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
+				bonding, "bonding");
+cmdline_parse_token_string_t cmd_removebonding_slave_slave =
+		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
+				slave, "slave");
+cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
+		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
+				slave_id, RTE_UINT16);
+cmdline_parse_token_num_t cmd_removebonding_slave_port =
+		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
+				port_id, RTE_UINT16);
+
+cmdline_parse_inst_t cmd_remove_bonding_slave = {
+		.f = cmd_remove_bonding_slave_parsed,
+		.help_str = "remove bonding slave <slave_id> <port_id>: "
+			"Remove a slave device from a bonded device",
+		.data = NULL,
+		.tokens = {
+				(void *)&cmd_removebonding_slave_remove,
+				(void *)&cmd_removebonding_slave_bonding,
+				(void *)&cmd_removebonding_slave_slave,
+				(void *)&cmd_removebonding_slave_slaveid,
+				(void *)&cmd_removebonding_slave_port,
+				NULL
+		}
+};
+
+/* *** CREATE BONDED DEVICE *** */
+struct cmd_create_bonded_device_result {
+	cmdline_fixed_string_t create;
+	cmdline_fixed_string_t bonded;
+	cmdline_fixed_string_t device;
+	uint8_t mode;
+	uint8_t socket;
+};
+
+static int bond_dev_num;
+
+static void cmd_create_bonded_device_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_create_bonded_device_result *res = parsed_result;
+	char ethdev_name[RTE_ETH_NAME_MAX_LEN];
+	int port_id;
+	int ret;
+
+	if (test_done == 0) {
+		fprintf(stderr, "Please stop forwarding first\n");
+		return;
+	}
+
+	snprintf(ethdev_name, RTE_ETH_NAME_MAX_LEN, "net_bonding_testpmd_%d",
+			bond_dev_num++);
+
+	/* Create a new bonded device. */
+	port_id = rte_eth_bond_create(ethdev_name, res->mode, res->socket);
+	if (port_id < 0) {
+		fprintf(stderr, "\t Failed to create bonded device.\n");
+		return;
+	}
+	printf("Created new bonded device %s on (port %d).\n", ethdev_name,
+		port_id);
+
+	/* Update number of ports */
+	nb_ports = rte_eth_dev_count_avail();
+	reconfig(port_id, res->socket);
+	ret = rte_eth_promiscuous_enable(port_id);
+	if (ret != 0)
+		fprintf(stderr, "Failed to enable promiscuous mode for port %u: %s - ignore\n",
+			port_id, rte_strerror(-ret));
+
+	ports[port_id].need_setup = 0;
+	ports[port_id].port_status = RTE_PORT_STOPPED;
+}
+
+cmdline_parse_token_string_t cmd_createbonded_device_create =
+		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
+				create, "create");
+cmdline_parse_token_string_t cmd_createbonded_device_bonded =
+		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
+				bonded, "bonded");
+cmdline_parse_token_string_t cmd_createbonded_device_device =
+		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
+				device, "device");
+cmdline_parse_token_num_t cmd_createbonded_device_mode =
+		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
+				mode, RTE_UINT8);
+cmdline_parse_token_num_t cmd_createbonded_device_socket =
+		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
+				socket, RTE_UINT8);
+
+cmdline_parse_inst_t cmd_create_bonded_device = {
+		.f = cmd_create_bonded_device_parsed,
+		.help_str = "create bonded device <mode> <socket>: "
+			"Create a new bonded device with specific bonding mode and socket",
+		.data = NULL,
+		.tokens = {
+				(void *)&cmd_createbonded_device_create,
+				(void *)&cmd_createbonded_device_bonded,
+				(void *)&cmd_createbonded_device_device,
+				(void *)&cmd_createbonded_device_mode,
+				(void *)&cmd_createbonded_device_socket,
+				NULL
+		}
+};
+
+/* *** SET MAC ADDRESS IN BONDED DEVICE *** */
+struct cmd_set_bond_mac_addr_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t mac_addr;
+	uint16_t port_num;
+	struct rte_ether_addr address;
+};
+
+static void cmd_set_bond_mac_addr_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bond_mac_addr_result *res = parsed_result;
+	int ret;
+
+	if (port_id_is_invalid(res->port_num, ENABLED_WARN))
+		return;
+
+	ret = rte_eth_bond_mac_address_set(res->port_num, &res->address);
+
+	/* check the return value and print it if is < 0 */
+	if (ret < 0)
+		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
+			strerror(-ret));
+}
+
+cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
+		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, set, "set");
+cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
+		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, bonding,
+				"bonding");
+cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
+		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, mac_addr,
+				"mac_addr");
+cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
+		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mac_addr_result,
+				port_num, RTE_UINT16);
+cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
+		TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_bond_mac_addr_result, address);
+
+cmdline_parse_inst_t cmd_set_bond_mac_addr = {
+		.f = cmd_set_bond_mac_addr_parsed,
+		.data = NULL,
+		.help_str = "set bonding mac_addr <port_id> <mac_addr>",
+		.tokens = {
+				(void *)&cmd_set_bond_mac_addr_set,
+				(void *)&cmd_set_bond_mac_addr_bonding,
+				(void *)&cmd_set_bond_mac_addr_mac,
+				(void *)&cmd_set_bond_mac_addr_portnum,
+				(void *)&cmd_set_bond_mac_addr_addr,
+				NULL
+		}
+};
+
+/* *** SET LINK STATUS MONITORING POLLING PERIOD ON BONDED DEVICE *** */
+struct cmd_set_bond_mon_period_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t mon_period;
+	uint16_t port_num;
+	uint32_t period_ms;
+};
+
+static void cmd_set_bond_mon_period_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bond_mon_period_result *res = parsed_result;
+	int ret;
+
+	ret = rte_eth_bond_link_monitoring_set(res->port_num, res->period_ms);
+
+	/* check the return value and print it if is < 0 */
+	if (ret < 0)
+		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
+			strerror(-ret));
+}
+
+cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
+		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
+				set, "set");
+cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
+		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
+				bonding, "bonding");
+cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
+		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
+				mon_period,	"mon_period");
+cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
+		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
+				port_num, RTE_UINT16);
+cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
+		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
+				period_ms, RTE_UINT32);
+
+cmdline_parse_inst_t cmd_set_bond_mon_period = {
+		.f = cmd_set_bond_mon_period_parsed,
+		.data = NULL,
+		.help_str = "set bonding mon_period <port_id> <period_ms>",
+		.tokens = {
+				(void *)&cmd_set_bond_mon_period_set,
+				(void *)&cmd_set_bond_mon_period_bonding,
+				(void *)&cmd_set_bond_mon_period_mon_period,
+				(void *)&cmd_set_bond_mon_period_portnum,
+				(void *)&cmd_set_bond_mon_period_period_ms,
+				NULL
+		}
+};
+
+struct cmd_set_bonding_agg_mode_policy_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t agg_mode;
+	uint16_t port_num;
+	cmdline_fixed_string_t policy;
+};
+
+static void
+cmd_set_bonding_agg_mode(void *parsed_result,
+		__rte_unused struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bonding_agg_mode_policy_result *res = parsed_result;
+	uint8_t policy = AGG_BANDWIDTH;
+
+	if (!strcmp(res->policy, "bandwidth"))
+		policy = AGG_BANDWIDTH;
+	else if (!strcmp(res->policy, "stable"))
+		policy = AGG_STABLE;
+	else if (!strcmp(res->policy, "count"))
+		policy = AGG_COUNT;
+
+	rte_eth_bond_8023ad_agg_selection_set(res->port_num, policy);
+}
+
+cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+				set, "set");
+cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+				bonding, "bonding");
+
+cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+				agg_mode, "agg_mode");
+
+cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+				port_num, RTE_UINT16);
+
+cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		policy, "stable#bandwidth#count");
+
+cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
+	.f = cmd_set_bonding_agg_mode,
+	.data = NULL,
+	.help_str = "set bonding mode IEEE802.3AD aggregator policy <port_id> <agg_name>",
+	.tokens = {
+			(void *)&cmd_set_bonding_agg_mode_set,
+			(void *)&cmd_set_bonding_agg_mode_bonding,
+			(void *)&cmd_set_bonding_agg_mode_agg_mode,
+			(void *)&cmd_set_bonding_agg_mode_portnum,
+			(void *)&cmd_set_bonding_agg_mode_policy_string,
+			NULL
+		}
+};
+
+static struct testpmd_cmdline_parser driver_parser = {
+	.ctx = (cmdline_parse_ctx_t[]) {
+		(cmdline_parse_inst_t *)&cmd_set_bonding_mode,
+		(cmdline_parse_inst_t *)&cmd_show_bonding_config,
+		(cmdline_parse_inst_t *)&cmd_show_bonding_lacp_info,
+		(cmdline_parse_inst_t *)&cmd_set_bonding_primary,
+		(cmdline_parse_inst_t *)&cmd_add_bonding_slave,
+		(cmdline_parse_inst_t *)&cmd_remove_bonding_slave,
+		(cmdline_parse_inst_t *)&cmd_create_bonded_device,
+		(cmdline_parse_inst_t *)&cmd_set_bond_mac_addr,
+		(cmdline_parse_inst_t *)&cmd_set_balance_xmit_policy,
+		(cmdline_parse_inst_t *)&cmd_set_bond_mon_period,
+		(cmdline_parse_inst_t *)&cmd_set_lacp_dedicated_queues,
+		(cmdline_parse_inst_t *)&cmd_set_bonding_agg_mode_policy,
+		NULL
+	},
+	.help = {
+		"set bonding mode (value) (port_id)\n"
+		"	Set the bonding mode on a bonded device.\n",
+
+		"show bonding config (port_id)\n"
+		"	Show the bonding config for port_id.\n",
+
+		"show bonding lacp info (port_id)\n"
+		"	Show the bonding lacp information for port_id.\n",
+
+		"set bonding primary (slave_id) (port_id)\n"
+		"	Set the primary slave for a bonded device.\n",
+
+		"add bonding slave (slave_id) (port_id)\n"
+		"	Add a slave device to a bonded device.\n",
+
+		"remove bonding slave (slave_id) (port_id)\n"
+		"	Remove a slave device from a bonded device.\n",
+
+		"create bonded device (mode) (socket)\n"
+		"	Create a new bonded device with specific bonding mode and socket.\n",
+
+		"set bonding mac_addr (port_id) (address)\n"
+		"	Set the MAC address of a bonded device.\n",
+
+		"set bonding balance_xmit_policy (port_id) (l2|l23|l34)\n"
+		"	Set the transmit balance policy for bonded device running in balance mode.\n",
+
+		"set bonding mon_period (port_id) (value)\n"
+		"	Set the bonding link status monitoring polling period in ms.\n",
+
+		"set bonding lacp dedicated_queues <port_id> (enable|disable)\n"
+		"	Enable/disable dedicated queues for LACP control traffic.\n",
+
+		"set bonding mode IEEE802.3AD aggregator policy (port_id) (agg_name)\n"
+		"	Set Aggregation mode for IEEE802.3AD (mode 4)\n",
+
+		NULL
+	},
+};
+
+RTE_INIT(bonding_testpmd)
+{
+	testpmd_add_commands(&driver_parser);
+}
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [RFC PATCH 3/4] net/i40e: move testpmd commands
  2022-05-13  7:57 [RFC PATCH 0/4] Split driver specific commands out of testpmd David Marchand
  2022-05-13  7:57 ` [RFC PATCH 1/4] app/testpmd: register driver specific commands David Marchand
  2022-05-13  7:57 ` [RFC PATCH 2/4] net/bonding: move testpmd commands David Marchand
@ 2022-05-13  7:57 ` David Marchand
  2022-05-13  7:57 ` [RFC PATCH 4/4] net/ixgbe: " David Marchand
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 65+ messages in thread
From: David Marchand @ 2022-05-13  7:57 UTC (permalink / raw)
  To: dev; +Cc: thomas, Xiaoyun Li, Aman Singh, Yuying Zhang, Beilei Xing

Move related specific testpmd commands into this driver directory.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/cmdline.c          | 665 --------------------------------
 drivers/net/i40e/i40e_testpmd.c | 655 +++++++++++++++++++++++++++++++
 drivers/net/i40e/meson.build    |   2 +
 3 files changed, 657 insertions(+), 665 deletions(-)
 create mode 100644 drivers/net/i40e/i40e_testpmd.c

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index ae4759fbfe..fee05c1a0c 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -637,21 +637,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set port (port_id) ptype_mask (ptype_mask)\n"
 			"    set packet types classification for a specific port\n\n"
 
-			"set port (port_id) queue-region region_id (value) "
-			"queue_start_index (value) queue_num (value)\n"
-			"    Set a queue region on a port\n\n"
-
-			"set port (port_id) queue-region region_id (value) "
-			"flowtype (value)\n"
-			"    Set a flowtype region index on a port\n\n"
-
-			"set port (port_id) queue-region UP (value) region_id (value)\n"
-			"    Set the mapping of User Priority to "
-			"queue region on a port\n\n"
-
-			"set port (port_id) queue-region flush (on|off)\n"
-			"    flush all queue region related configuration\n\n"
-
 			"show port meter cap (port_id)\n"
 			"    Show port meter capability information\n\n"
 
@@ -702,9 +687,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set port meter stats mask (port_id) (mtr_id) (stats_mask)\n"
 			"    meter update stats\n\n"
 
-			"show port (port_id) queue-region\n"
-			"    show all queue region related configuration info\n\n"
-
 			"set port (port_id) fec_mode auto|off|rs|baser\n"
 			"    set fec mode for a specific port\n\n"
 
@@ -912,13 +894,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"filters:\n"
 			"--------\n\n"
 
-#ifdef RTE_NET_I40E
-			"flow_director_filter (port_id) mode raw (add|del|update)"
-			" flow (flow_id) (drop|fwd) queue (queue_id)"
-			" fd_id (fd_id_value) packet (packet file name)\n"
-			"    Add/Del a raw type flow director filter.\n\n"
-#endif
-
 			"flow_director_mask (port_id) mode IP vlan (vlan_value)"
 			" src_mask (ipv4_src) (ipv6_src) (src_port)"
 			" dst_mask (ipv4_dst) (ipv6_dst) (dst_port)\n"
@@ -9094,450 +9069,6 @@ cmdline_parse_inst_t cmd_dump_one = {
 	},
 };
 
-/* *** queue region set *** */
-struct cmd_queue_region_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t region;
-	uint8_t  region_id;
-	cmdline_fixed_string_t queue_start_index;
-	uint8_t  queue_id;
-	cmdline_fixed_string_t queue_num;
-	uint8_t  queue_num_value;
-};
-
-static void
-cmd_queue_region_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_queue_region_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_SET;
-	region_conf.region_id = res->region_id;
-	region_conf.queue_num = res->queue_num_value;
-	region_conf.queue_start_index = res->queue_id;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-				op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "queue region config error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-cmdline_parse_token_string_t cmd_queue_region_set =
-TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-		set, "set");
-cmdline_parse_token_string_t cmd_queue_region_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result, port, "port");
-cmdline_parse_token_num_t cmd_queue_region_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_queue_region_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				 cmd, "queue-region");
-cmdline_parse_token_string_t cmd_queue_region_id =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				region, "region_id");
-cmdline_parse_token_num_t cmd_queue_region_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				region_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				queue_start_index, "queue_start_index");
-cmdline_parse_token_num_t cmd_queue_region_queue_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				queue_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_queue_region_queue_num =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				queue_num, "queue_num");
-cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				queue_num_value, RTE_UINT8);
-
-cmdline_parse_inst_t cmd_queue_region = {
-	.f = cmd_queue_region_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region region_id <value> "
-		"queue_start_index <value> queue_num <value>: Set a queue region",
-	.tokens = {
-		(void *)&cmd_queue_region_set,
-		(void *)&cmd_queue_region_port,
-		(void *)&cmd_queue_region_port_id,
-		(void *)&cmd_queue_region_cmd,
-		(void *)&cmd_queue_region_id,
-		(void *)&cmd_queue_region_index,
-		(void *)&cmd_queue_region_queue_start_index,
-		(void *)&cmd_queue_region_queue_id,
-		(void *)&cmd_queue_region_queue_num,
-		(void *)&cmd_queue_region_queue_num_value,
-		NULL,
-	},
-};
-
-/* *** queue region and flowtype set *** */
-struct cmd_region_flowtype_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t region;
-	uint8_t  region_id;
-	cmdline_fixed_string_t flowtype;
-	uint8_t  flowtype_id;
-};
-
-static void
-cmd_region_flowtype_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_region_flowtype_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_FLOWTYPE_SET;
-	region_conf.region_id = res->region_id;
-	region_conf.hw_flowtype = res->flowtype_id;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-			op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "region flowtype config error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-cmdline_parse_token_string_t cmd_region_flowtype_set =
-TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				set, "set");
-cmdline_parse_token_string_t cmd_region_flowtype_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				port, "port");
-cmdline_parse_token_num_t cmd_region_flowtype_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
-				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_region_flowtype_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				cmd, "queue-region");
-cmdline_parse_token_string_t cmd_region_flowtype_index =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				region, "region_id");
-cmdline_parse_token_num_t cmd_region_flowtype_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
-				region_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				flowtype, "flowtype");
-cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
-				flowtype_id, RTE_UINT8);
-cmdline_parse_inst_t cmd_region_flowtype = {
-	.f = cmd_region_flowtype_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region region_id <value> "
-		"flowtype <value>: Set a flowtype region index",
-	.tokens = {
-		(void *)&cmd_region_flowtype_set,
-		(void *)&cmd_region_flowtype_port,
-		(void *)&cmd_region_flowtype_port_index,
-		(void *)&cmd_region_flowtype_cmd,
-		(void *)&cmd_region_flowtype_index,
-		(void *)&cmd_region_flowtype_id,
-		(void *)&cmd_region_flowtype_flow_index,
-		(void *)&cmd_region_flowtype_flow_id,
-		NULL,
-	},
-};
-
-/* *** User Priority (UP) to queue region (region_id) set *** */
-struct cmd_user_priority_region_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t user_priority;
-	uint8_t  user_priority_id;
-	cmdline_fixed_string_t region;
-	uint8_t  region_id;
-};
-
-static void
-cmd_user_priority_region_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_user_priority_region_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_USER_PRIORITY_SET;
-	region_conf.user_priority = res->user_priority_id;
-	region_conf.region_id = res->region_id;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-				op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "user_priority region config error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-cmdline_parse_token_string_t cmd_user_priority_region_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				set, "set");
-cmdline_parse_token_string_t cmd_user_priority_region_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				port, "port");
-cmdline_parse_token_num_t cmd_user_priority_region_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
-				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_user_priority_region_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				cmd, "queue-region");
-cmdline_parse_token_string_t cmd_user_priority_region_UP =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				user_priority, "UP");
-cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
-				user_priority_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_user_priority_region_region =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				region, "region_id");
-cmdline_parse_token_num_t cmd_user_priority_region_region_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
-				region_id, RTE_UINT8);
-
-cmdline_parse_inst_t cmd_user_priority_region = {
-	.f = cmd_user_priority_region_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region UP <value> "
-		"region_id <value>: Set the mapping of User Priority (UP) "
-		"to queue region (region_id) ",
-	.tokens = {
-		(void *)&cmd_user_priority_region_set,
-		(void *)&cmd_user_priority_region_port,
-		(void *)&cmd_user_priority_region_port_index,
-		(void *)&cmd_user_priority_region_cmd,
-		(void *)&cmd_user_priority_region_UP,
-		(void *)&cmd_user_priority_region_UP_id,
-		(void *)&cmd_user_priority_region_region,
-		(void *)&cmd_user_priority_region_region_id,
-		NULL,
-	},
-};
-
-/* *** flush all queue region related configuration *** */
-struct cmd_flush_queue_region_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t flush;
-	cmdline_fixed_string_t what;
-};
-
-static void
-cmd_flush_queue_region_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_flush_queue_region_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-
-	if (strcmp(res->what, "on") == 0)
-		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_ON;
-	else
-		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_OFF;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-				op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "queue region config flush error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-cmdline_parse_token_string_t cmd_flush_queue_region_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				set, "set");
-cmdline_parse_token_string_t cmd_flush_queue_region_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				port, "port");
-cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_flush_queue_region_result,
-				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				cmd, "queue-region");
-cmdline_parse_token_string_t cmd_flush_queue_region_flush =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				flush, "flush");
-cmdline_parse_token_string_t cmd_flush_queue_region_what =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				what, "on#off");
-
-cmdline_parse_inst_t cmd_flush_queue_region = {
-	.f = cmd_flush_queue_region_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region flush on|off"
-		": flush all queue region related configuration",
-	.tokens = {
-		(void *)&cmd_flush_queue_region_set,
-		(void *)&cmd_flush_queue_region_port,
-		(void *)&cmd_flush_queue_region_port_index,
-		(void *)&cmd_flush_queue_region_cmd,
-		(void *)&cmd_flush_queue_region_flush,
-		(void *)&cmd_flush_queue_region_what,
-		NULL,
-	},
-};
-
-/* *** get all queue region related configuration info *** */
-struct cmd_show_queue_region_info {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-};
-
-static void
-cmd_show_queue_region_info_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_show_queue_region_info *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_regions rte_pmd_regions;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&rte_pmd_regions, 0, sizeof(rte_pmd_regions));
-
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_INFO_GET;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-					op_type, &rte_pmd_regions);
-
-	port_queue_region_info_display(res->port_id, &rte_pmd_regions);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "queue region config info show error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-cmdline_parse_token_string_t cmd_show_queue_region_info_get =
-TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
-				show, "show");
-cmdline_parse_token_string_t cmd_show_queue_region_info_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
-				port, "port");
-cmdline_parse_token_num_t cmd_show_queue_region_info_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_show_queue_region_info,
-				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
-				cmd, "queue-region");
-
-cmdline_parse_inst_t cmd_show_queue_region_info_all = {
-	.f = cmd_show_queue_region_info_parsed,
-	.data = NULL,
-	.help_str = "show port <port_id> queue-region"
-		": show all queue region related configuration info",
-	.tokens = {
-		(void *)&cmd_show_queue_region_info_get,
-		(void *)&cmd_show_queue_region_info_port,
-		(void *)&cmd_show_queue_region_info_port_index,
-		(void *)&cmd_show_queue_region_info_cmd,
-		NULL,
-	},
-};
-
 /* *** Filters Control *** */
 
 #define IPV4_ADDR_TO_UINT(ip_addr, ip) \
@@ -9562,194 +9093,6 @@ do { \
 	} \
 } while (0)
 
-#ifdef RTE_NET_I40E
-
-static uint16_t
-str2flowtype(char *string)
-{
-	uint8_t i = 0;
-	static const struct {
-		char str[32];
-		uint16_t type;
-	} flowtype_str[] = {
-		{"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},
-		{"ipv6-ex", RTE_ETH_FLOW_IPV6_EX},
-		{"ipv6-tcp-ex", RTE_ETH_FLOW_IPV6_TCP_EX},
-		{"ipv6-udp-ex", RTE_ETH_FLOW_IPV6_UDP_EX},
-		{"gtpu", RTE_ETH_FLOW_GTPU},
-	};
-
-	for (i = 0; i < RTE_DIM(flowtype_str); i++) {
-		if (!strcmp(flowtype_str[i].str, string))
-			return flowtype_str[i].type;
-	}
-
-	if (isdigit(string[0]) && atoi(string) > 0 && atoi(string) < 64)
-		return (uint16_t)atoi(string);
-
-	return RTE_ETH_FLOW_UNKNOWN;
-}
-
-/* *** deal with flow director filter *** */
-struct cmd_flow_director_result {
-	cmdline_fixed_string_t flow_director_filter;
-	portid_t port_id;
-	cmdline_fixed_string_t mode;
-	cmdline_fixed_string_t mode_value;
-	cmdline_fixed_string_t ops;
-	cmdline_fixed_string_t flow;
-	cmdline_fixed_string_t flow_type;
-	cmdline_fixed_string_t drop;
-	cmdline_fixed_string_t queue;
-	uint16_t  queue_id;
-	cmdline_fixed_string_t fd_id;
-	uint32_t  fd_id_value;
-	cmdline_fixed_string_t packet;
-	char filepath[];
-};
-
-static void
-cmd_flow_director_filter_parsed(void *parsed_result,
-			  __rte_unused struct cmdline *cl,
-			  __rte_unused void *data)
-{
-	struct cmd_flow_director_result *res = parsed_result;
-	int ret = 0;
-	struct rte_pmd_i40e_flow_type_mapping
-			mapping[RTE_PMD_I40E_FLOW_TYPE_MAX];
-	struct rte_pmd_i40e_pkt_template_conf conf;
-	uint16_t flow_type = str2flowtype(res->flow_type);
-	uint16_t i, port = res->port_id;
-	uint8_t add;
-
-	memset(&conf, 0, sizeof(conf));
-
-	if (flow_type == RTE_ETH_FLOW_UNKNOWN) {
-		fprintf(stderr, "Invalid flow type specified.\n");
-		return;
-	}
-	ret = rte_pmd_i40e_flow_type_mapping_get(res->port_id,
-						 mapping);
-	if (ret)
-		return;
-	if (mapping[flow_type].pctype == 0ULL) {
-		fprintf(stderr, "Invalid flow type specified.\n");
-		return;
-	}
-	for (i = 0; i < RTE_PMD_I40E_PCTYPE_MAX; i++) {
-		if (mapping[flow_type].pctype & (1ULL << i)) {
-			conf.input.pctype = i;
-			break;
-		}
-	}
-
-	conf.input.packet = open_file(res->filepath,
-				&conf.input.length);
-	if (!conf.input.packet)
-		return;
-	if (!strcmp(res->drop, "drop"))
-		conf.action.behavior =
-			RTE_PMD_I40E_PKT_TEMPLATE_REJECT;
-	else
-		conf.action.behavior =
-			RTE_PMD_I40E_PKT_TEMPLATE_ACCEPT;
-	conf.action.report_status =
-			RTE_PMD_I40E_PKT_TEMPLATE_REPORT_ID;
-	conf.action.rx_queue = res->queue_id;
-	conf.soft_id = res->fd_id_value;
-	add  = strcmp(res->ops, "del") ? 1 : 0;
-	ret = rte_pmd_i40e_flow_add_del_packet_template(port,
-							&conf,
-							add);
-	if (ret < 0)
-		fprintf(stderr, "flow director config error: (%s)\n",
-			strerror(-ret));
-	close_file(conf.input.packet);
-}
-
-cmdline_parse_token_string_t cmd_flow_director_filter =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 flow_director_filter, "flow_director_filter");
-cmdline_parse_token_num_t cmd_flow_director_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
-			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_ops =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 ops, "add#del#update");
-cmdline_parse_token_string_t cmd_flow_director_flow =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 flow, "flow");
-cmdline_parse_token_string_t cmd_flow_director_flow_type =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-		flow_type, NULL);
-cmdline_parse_token_string_t cmd_flow_director_drop =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 drop, "drop#fwd");
-cmdline_parse_token_string_t cmd_flow_director_queue =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 queue, "queue");
-cmdline_parse_token_num_t cmd_flow_director_queue_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
-			      queue_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_fd_id =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 fd_id, "fd_id");
-cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
-			      fd_id_value, RTE_UINT32);
-
-cmdline_parse_token_string_t cmd_flow_director_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 mode, "mode");
-cmdline_parse_token_string_t cmd_flow_director_mode_raw =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 mode_value, "raw");
-cmdline_parse_token_string_t cmd_flow_director_packet =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 packet, "packet");
-cmdline_parse_token_string_t cmd_flow_director_filepath =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 filepath, NULL);
-
-cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
-	.f = cmd_flow_director_filter_parsed,
-	.data = NULL,
-	.help_str = "flow_director_filter ... : Add or delete a raw flow "
-		"director entry on NIC",
-	.tokens = {
-		(void *)&cmd_flow_director_filter,
-		(void *)&cmd_flow_director_port_id,
-		(void *)&cmd_flow_director_mode,
-		(void *)&cmd_flow_director_mode_raw,
-		(void *)&cmd_flow_director_ops,
-		(void *)&cmd_flow_director_flow,
-		(void *)&cmd_flow_director_flow_type,
-		(void *)&cmd_flow_director_drop,
-		(void *)&cmd_flow_director_queue,
-		(void *)&cmd_flow_director_queue_id,
-		(void *)&cmd_flow_director_fd_id,
-		(void *)&cmd_flow_director_fd_id_value,
-		(void *)&cmd_flow_director_packet,
-		(void *)&cmd_flow_director_filepath,
-		NULL,
-	},
-};
-
-#endif /* RTE_NET_I40E */
-
 /* *** deal with flow director mask *** */
 struct cmd_flow_director_mask_result {
 	cmdline_fixed_string_t flow_director_mask;
@@ -16939,9 +16282,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_cleanup_txq_mbufs,
 	(cmdline_parse_inst_t *)&cmd_dump,
 	(cmdline_parse_inst_t *)&cmd_dump_one,
-#ifdef RTE_NET_I40E
-	(cmdline_parse_inst_t *)&cmd_add_del_raw_flow_director,
-#endif
 	(cmdline_parse_inst_t *)&cmd_set_flow_director_ip_mask,
 	(cmdline_parse_inst_t *)&cmd_set_flow_director_mac_vlan_mask,
 	(cmdline_parse_inst_t *)&cmd_set_flow_director_tunnel_mask,
@@ -17023,11 +16363,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_pctype_mapping_get,
 	(cmdline_parse_inst_t *)&cmd_pctype_mapping_reset,
 	(cmdline_parse_inst_t *)&cmd_pctype_mapping_update,
-	(cmdline_parse_inst_t *)&cmd_queue_region,
-	(cmdline_parse_inst_t *)&cmd_region_flowtype,
-	(cmdline_parse_inst_t *)&cmd_user_priority_region,
-	(cmdline_parse_inst_t *)&cmd_flush_queue_region,
-	(cmdline_parse_inst_t *)&cmd_show_queue_region_info_all,
 	(cmdline_parse_inst_t *)&cmd_show_port_tm_cap,
 	(cmdline_parse_inst_t *)&cmd_show_port_tm_level_cap,
 	(cmdline_parse_inst_t *)&cmd_show_port_tm_node_cap,
diff --git a/drivers/net/i40e/i40e_testpmd.c b/drivers/net/i40e/i40e_testpmd.c
new file mode 100644
index 0000000000..09cd4ff72d
--- /dev/null
+++ b/drivers/net/i40e/i40e_testpmd.c
@@ -0,0 +1,655 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2016 Intel Corporation.
+ */
+#include <rte_pmd_i40e.h>
+
+#include <cmdline_parse_num.h>
+#include <cmdline_parse_string.h>
+
+#include "testpmd.h"
+
+/* *** queue region set *** */
+struct cmd_queue_region_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t region;
+	uint8_t  region_id;
+	cmdline_fixed_string_t queue_start_index;
+	uint8_t  queue_id;
+	cmdline_fixed_string_t queue_num;
+	uint8_t  queue_num_value;
+};
+
+static void
+cmd_queue_region_parsed(void *parsed_result,
+			__rte_unused struct cmdline *cl,
+			__rte_unused void *data)
+{
+	struct cmd_queue_region_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_SET;
+	region_conf.region_id = res->region_id;
+	region_conf.queue_num = res->queue_num_value;
+	region_conf.queue_start_index = res->queue_id;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+				op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "queue region config error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+cmdline_parse_token_string_t cmd_queue_region_set =
+TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+		set, "set");
+cmdline_parse_token_string_t cmd_queue_region_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result, port, "port");
+cmdline_parse_token_num_t cmd_queue_region_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+				port_id, RTE_UINT16);
+cmdline_parse_token_string_t cmd_queue_region_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+				 cmd, "queue-region");
+cmdline_parse_token_string_t cmd_queue_region_id =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+				region, "region_id");
+cmdline_parse_token_num_t cmd_queue_region_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+				region_id, RTE_UINT8);
+cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+				queue_start_index, "queue_start_index");
+cmdline_parse_token_num_t cmd_queue_region_queue_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+				queue_id, RTE_UINT8);
+cmdline_parse_token_string_t cmd_queue_region_queue_num =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+				queue_num, "queue_num");
+cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+				queue_num_value, RTE_UINT8);
+
+cmdline_parse_inst_t cmd_queue_region = {
+	.f = cmd_queue_region_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region region_id <value> "
+		"queue_start_index <value> queue_num <value>: Set a queue region",
+	.tokens = {
+		(void *)&cmd_queue_region_set,
+		(void *)&cmd_queue_region_port,
+		(void *)&cmd_queue_region_port_id,
+		(void *)&cmd_queue_region_cmd,
+		(void *)&cmd_queue_region_id,
+		(void *)&cmd_queue_region_index,
+		(void *)&cmd_queue_region_queue_start_index,
+		(void *)&cmd_queue_region_queue_id,
+		(void *)&cmd_queue_region_queue_num,
+		(void *)&cmd_queue_region_queue_num_value,
+		NULL,
+	},
+};
+
+/* *** queue region and flowtype set *** */
+struct cmd_region_flowtype_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t region;
+	uint8_t  region_id;
+	cmdline_fixed_string_t flowtype;
+	uint8_t  flowtype_id;
+};
+
+static void
+cmd_region_flowtype_parsed(void *parsed_result,
+			__rte_unused struct cmdline *cl,
+			__rte_unused void *data)
+{
+	struct cmd_region_flowtype_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_FLOWTYPE_SET;
+	region_conf.region_id = res->region_id;
+	region_conf.hw_flowtype = res->flowtype_id;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+			op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "region flowtype config error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+cmdline_parse_token_string_t cmd_region_flowtype_set =
+TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+				set, "set");
+cmdline_parse_token_string_t cmd_region_flowtype_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+				port, "port");
+cmdline_parse_token_num_t cmd_region_flowtype_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
+				port_id, RTE_UINT16);
+cmdline_parse_token_string_t cmd_region_flowtype_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+				cmd, "queue-region");
+cmdline_parse_token_string_t cmd_region_flowtype_index =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+				region, "region_id");
+cmdline_parse_token_num_t cmd_region_flowtype_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
+				region_id, RTE_UINT8);
+cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+				flowtype, "flowtype");
+cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
+				flowtype_id, RTE_UINT8);
+cmdline_parse_inst_t cmd_region_flowtype = {
+	.f = cmd_region_flowtype_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region region_id <value> "
+		"flowtype <value>: Set a flowtype region index",
+	.tokens = {
+		(void *)&cmd_region_flowtype_set,
+		(void *)&cmd_region_flowtype_port,
+		(void *)&cmd_region_flowtype_port_index,
+		(void *)&cmd_region_flowtype_cmd,
+		(void *)&cmd_region_flowtype_index,
+		(void *)&cmd_region_flowtype_id,
+		(void *)&cmd_region_flowtype_flow_index,
+		(void *)&cmd_region_flowtype_flow_id,
+		NULL,
+	},
+};
+
+/* *** User Priority (UP) to queue region (region_id) set *** */
+struct cmd_user_priority_region_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t user_priority;
+	uint8_t  user_priority_id;
+	cmdline_fixed_string_t region;
+	uint8_t  region_id;
+};
+
+static void
+cmd_user_priority_region_parsed(void *parsed_result,
+			__rte_unused struct cmdline *cl,
+			__rte_unused void *data)
+{
+	struct cmd_user_priority_region_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_USER_PRIORITY_SET;
+	region_conf.user_priority = res->user_priority_id;
+	region_conf.region_id = res->region_id;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+				op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "user_priority region config error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+cmdline_parse_token_string_t cmd_user_priority_region_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+				set, "set");
+cmdline_parse_token_string_t cmd_user_priority_region_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+				port, "port");
+cmdline_parse_token_num_t cmd_user_priority_region_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
+				port_id, RTE_UINT16);
+cmdline_parse_token_string_t cmd_user_priority_region_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+				cmd, "queue-region");
+cmdline_parse_token_string_t cmd_user_priority_region_UP =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+				user_priority, "UP");
+cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
+				user_priority_id, RTE_UINT8);
+cmdline_parse_token_string_t cmd_user_priority_region_region =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+				region, "region_id");
+cmdline_parse_token_num_t cmd_user_priority_region_region_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
+				region_id, RTE_UINT8);
+
+cmdline_parse_inst_t cmd_user_priority_region = {
+	.f = cmd_user_priority_region_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region UP <value> "
+		"region_id <value>: Set the mapping of User Priority (UP) "
+		"to queue region (region_id) ",
+	.tokens = {
+		(void *)&cmd_user_priority_region_set,
+		(void *)&cmd_user_priority_region_port,
+		(void *)&cmd_user_priority_region_port_index,
+		(void *)&cmd_user_priority_region_cmd,
+		(void *)&cmd_user_priority_region_UP,
+		(void *)&cmd_user_priority_region_UP_id,
+		(void *)&cmd_user_priority_region_region,
+		(void *)&cmd_user_priority_region_region_id,
+		NULL,
+	},
+};
+
+/* *** flush all queue region related configuration *** */
+struct cmd_flush_queue_region_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t flush;
+	cmdline_fixed_string_t what;
+};
+
+static void
+cmd_flush_queue_region_parsed(void *parsed_result,
+			__rte_unused struct cmdline *cl,
+			__rte_unused void *data)
+{
+	struct cmd_flush_queue_region_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+
+	if (strcmp(res->what, "on") == 0)
+		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_ON;
+	else
+		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_OFF;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+				op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "queue region config flush error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+cmdline_parse_token_string_t cmd_flush_queue_region_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+				set, "set");
+cmdline_parse_token_string_t cmd_flush_queue_region_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+				port, "port");
+cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_flush_queue_region_result,
+				port_id, RTE_UINT16);
+cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+				cmd, "queue-region");
+cmdline_parse_token_string_t cmd_flush_queue_region_flush =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+				flush, "flush");
+cmdline_parse_token_string_t cmd_flush_queue_region_what =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+				what, "on#off");
+
+cmdline_parse_inst_t cmd_flush_queue_region = {
+	.f = cmd_flush_queue_region_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region flush on|off"
+		": flush all queue region related configuration",
+	.tokens = {
+		(void *)&cmd_flush_queue_region_set,
+		(void *)&cmd_flush_queue_region_port,
+		(void *)&cmd_flush_queue_region_port_index,
+		(void *)&cmd_flush_queue_region_cmd,
+		(void *)&cmd_flush_queue_region_flush,
+		(void *)&cmd_flush_queue_region_what,
+		NULL,
+	},
+};
+
+/* *** get all queue region related configuration info *** */
+struct cmd_show_queue_region_info {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+};
+
+static void
+cmd_show_queue_region_info_parsed(void *parsed_result,
+			__rte_unused struct cmdline *cl,
+			__rte_unused void *data)
+{
+	struct cmd_show_queue_region_info *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_regions rte_pmd_regions;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&rte_pmd_regions, 0, sizeof(rte_pmd_regions));
+
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_INFO_GET;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+					op_type, &rte_pmd_regions);
+
+	port_queue_region_info_display(res->port_id, &rte_pmd_regions);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "queue region config info show error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+cmdline_parse_token_string_t cmd_show_queue_region_info_get =
+TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
+				show, "show");
+cmdline_parse_token_string_t cmd_show_queue_region_info_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
+				port, "port");
+cmdline_parse_token_num_t cmd_show_queue_region_info_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_show_queue_region_info,
+				port_id, RTE_UINT16);
+cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
+				cmd, "queue-region");
+
+cmdline_parse_inst_t cmd_show_queue_region_info_all = {
+	.f = cmd_show_queue_region_info_parsed,
+	.data = NULL,
+	.help_str = "show port <port_id> queue-region"
+		": show all queue region related configuration info",
+	.tokens = {
+		(void *)&cmd_show_queue_region_info_get,
+		(void *)&cmd_show_queue_region_info_port,
+		(void *)&cmd_show_queue_region_info_port_index,
+		(void *)&cmd_show_queue_region_info_cmd,
+		NULL,
+	},
+};
+
+static uint16_t
+str2flowtype(char *string)
+{
+	uint8_t i = 0;
+	static const struct {
+		char str[32];
+		uint16_t type;
+	} flowtype_str[] = {
+		{"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},
+		{"ipv6-ex", RTE_ETH_FLOW_IPV6_EX},
+		{"ipv6-tcp-ex", RTE_ETH_FLOW_IPV6_TCP_EX},
+		{"ipv6-udp-ex", RTE_ETH_FLOW_IPV6_UDP_EX},
+		{"gtpu", RTE_ETH_FLOW_GTPU},
+	};
+
+	for (i = 0; i < RTE_DIM(flowtype_str); i++) {
+		if (!strcmp(flowtype_str[i].str, string))
+			return flowtype_str[i].type;
+	}
+
+	if (isdigit(string[0]) && atoi(string) > 0 && atoi(string) < 64)
+		return (uint16_t)atoi(string);
+
+	return RTE_ETH_FLOW_UNKNOWN;
+}
+
+/* *** deal with flow director filter *** */
+struct cmd_flow_director_result {
+	cmdline_fixed_string_t flow_director_filter;
+	portid_t port_id;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t mode_value;
+	cmdline_fixed_string_t ops;
+	cmdline_fixed_string_t flow;
+	cmdline_fixed_string_t flow_type;
+	cmdline_fixed_string_t drop;
+	cmdline_fixed_string_t queue;
+	uint16_t  queue_id;
+	cmdline_fixed_string_t fd_id;
+	uint32_t  fd_id_value;
+	cmdline_fixed_string_t packet;
+	char filepath[];
+};
+
+static void
+cmd_flow_director_filter_parsed(void *parsed_result,
+			  __rte_unused struct cmdline *cl,
+			  __rte_unused void *data)
+{
+	struct cmd_flow_director_result *res = parsed_result;
+	int ret = 0;
+	struct rte_pmd_i40e_flow_type_mapping
+			mapping[RTE_PMD_I40E_FLOW_TYPE_MAX];
+	struct rte_pmd_i40e_pkt_template_conf conf;
+	uint16_t flow_type = str2flowtype(res->flow_type);
+	uint16_t i, port = res->port_id;
+	uint8_t add;
+
+	memset(&conf, 0, sizeof(conf));
+
+	if (flow_type == RTE_ETH_FLOW_UNKNOWN) {
+		fprintf(stderr, "Invalid flow type specified.\n");
+		return;
+	}
+	ret = rte_pmd_i40e_flow_type_mapping_get(res->port_id,
+						 mapping);
+	if (ret)
+		return;
+	if (mapping[flow_type].pctype == 0ULL) {
+		fprintf(stderr, "Invalid flow type specified.\n");
+		return;
+	}
+	for (i = 0; i < RTE_PMD_I40E_PCTYPE_MAX; i++) {
+		if (mapping[flow_type].pctype & (1ULL << i)) {
+			conf.input.pctype = i;
+			break;
+		}
+	}
+
+	conf.input.packet = open_file(res->filepath,
+				&conf.input.length);
+	if (!conf.input.packet)
+		return;
+	if (!strcmp(res->drop, "drop"))
+		conf.action.behavior =
+			RTE_PMD_I40E_PKT_TEMPLATE_REJECT;
+	else
+		conf.action.behavior =
+			RTE_PMD_I40E_PKT_TEMPLATE_ACCEPT;
+	conf.action.report_status =
+			RTE_PMD_I40E_PKT_TEMPLATE_REPORT_ID;
+	conf.action.rx_queue = res->queue_id;
+	conf.soft_id = res->fd_id_value;
+	add  = strcmp(res->ops, "del") ? 1 : 0;
+	ret = rte_pmd_i40e_flow_add_del_packet_template(port,
+							&conf,
+							add);
+	if (ret < 0)
+		fprintf(stderr, "flow director config error: (%s)\n",
+			strerror(-ret));
+	close_file(conf.input.packet);
+}
+
+cmdline_parse_token_string_t cmd_flow_director_filter =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 flow_director_filter, "flow_director_filter");
+cmdline_parse_token_num_t cmd_flow_director_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+			      port_id, RTE_UINT16);
+cmdline_parse_token_string_t cmd_flow_director_ops =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 ops, "add#del#update");
+cmdline_parse_token_string_t cmd_flow_director_flow =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 flow, "flow");
+cmdline_parse_token_string_t cmd_flow_director_flow_type =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		flow_type, NULL);
+cmdline_parse_token_string_t cmd_flow_director_drop =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 drop, "drop#fwd");
+cmdline_parse_token_string_t cmd_flow_director_queue =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 queue, "queue");
+cmdline_parse_token_num_t cmd_flow_director_queue_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+			      queue_id, RTE_UINT16);
+cmdline_parse_token_string_t cmd_flow_director_fd_id =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 fd_id, "fd_id");
+cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+			      fd_id_value, RTE_UINT32);
+
+cmdline_parse_token_string_t cmd_flow_director_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 mode, "mode");
+cmdline_parse_token_string_t cmd_flow_director_mode_raw =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 mode_value, "raw");
+cmdline_parse_token_string_t cmd_flow_director_packet =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 packet, "packet");
+cmdline_parse_token_string_t cmd_flow_director_filepath =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 filepath, NULL);
+
+cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
+	.f = cmd_flow_director_filter_parsed,
+	.data = NULL,
+	.help_str = "flow_director_filter ... : Add or delete a raw flow "
+		"director entry on NIC",
+	.tokens = {
+		(void *)&cmd_flow_director_filter,
+		(void *)&cmd_flow_director_port_id,
+		(void *)&cmd_flow_director_mode,
+		(void *)&cmd_flow_director_mode_raw,
+		(void *)&cmd_flow_director_ops,
+		(void *)&cmd_flow_director_flow,
+		(void *)&cmd_flow_director_flow_type,
+		(void *)&cmd_flow_director_drop,
+		(void *)&cmd_flow_director_queue,
+		(void *)&cmd_flow_director_queue_id,
+		(void *)&cmd_flow_director_fd_id,
+		(void *)&cmd_flow_director_fd_id_value,
+		(void *)&cmd_flow_director_packet,
+		(void *)&cmd_flow_director_filepath,
+		NULL,
+	},
+};
+
+static struct testpmd_cmdline_parser driver_parser = {
+	.ctx = (cmdline_parse_ctx_t[]) {
+		(cmdline_parse_inst_t *)&cmd_queue_region,
+		(cmdline_parse_inst_t *)&cmd_region_flowtype,
+		(cmdline_parse_inst_t *)&cmd_user_priority_region,
+		(cmdline_parse_inst_t *)&cmd_flush_queue_region,
+		(cmdline_parse_inst_t *)&cmd_show_queue_region_info_all,
+		(cmdline_parse_inst_t *)&cmd_add_del_raw_flow_director,
+		NULL
+	},
+	.help = {
+		"set port (port_id) queue-region region_id (value) "
+		"queue_start_index (value) queue_num (value)\n"
+		"    Set a queue region on a port\n",
+
+		"set port (port_id) queue-region region_id (value) "
+		"flowtype (value)\n"
+		"    Set a flowtype region index on a port\n",
+
+		"set port (port_id) queue-region UP (value) region_id (value)\n"
+		"    Set the mapping of User Priority to "
+		"queue region on a port\n",
+
+		"set port (port_id) queue-region flush (on|off)\n"
+		"    flush all queue region related configuration\n",
+
+		"show port (port_id) queue-region\n"
+		"    show all queue region related configuration info\n",
+
+		"flow_director_filter (port_id) mode raw (add|del|update)"
+		" flow (flow_id) (drop|fwd) queue (queue_id)"
+		" fd_id (fd_id_value) packet (packet file name)\n"
+		"    Add/Del a raw type flow director filter.\n",
+
+		NULL
+	},
+};
+
+RTE_INIT(i40e_testpmd)
+{
+	testpmd_add_commands(&driver_parser);
+}
diff --git a/drivers/net/i40e/meson.build b/drivers/net/i40e/meson.build
index efc5f93e35..b282ec7213 100644
--- a/drivers/net/i40e/meson.build
+++ b/drivers/net/i40e/meson.build
@@ -21,6 +21,8 @@ sources = files(
         'rte_pmd_i40e.c',
 )
 
+testpmd_sources = files('i40e_testpmd.c')
+
 deps += ['hash']
 includes += include_directories('base')
 
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [RFC PATCH 4/4] net/ixgbe: move testpmd commands
  2022-05-13  7:57 [RFC PATCH 0/4] Split driver specific commands out of testpmd David Marchand
                   ` (2 preceding siblings ...)
  2022-05-13  7:57 ` [RFC PATCH 3/4] net/i40e: " David Marchand
@ 2022-05-13  7:57 ` David Marchand
  2022-05-18 19:46 ` [RFC PATCH v2 0/5] Split driver specific commands out of testpmd David Marchand
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 65+ messages in thread
From: David Marchand @ 2022-05-13  7:57 UTC (permalink / raw)
  To: dev; +Cc: thomas, Xiaoyun Li, Aman Singh, Yuying Zhang, Qiming Yang, Wenjun Wu

Move related specific testpmd commands into this driver directory.
While at it, fix checkpatch warnings.

The bypass code required some special init code before starting a port.
This is removed from testpmd itself and a new (*untested*) command is
added.

Note: bypass commands were not compiled since the switch to meson.
This change reinstates them, though I am really tempted to drop them
since we had no complaint for such a long time.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/cmdline.c            |  977 +-----------------------
 app/test-pmd/testpmd.c            |   14 -
 app/test-pmd/testpmd.h            |    5 +-
 drivers/net/ixgbe/ixgbe_testpmd.c | 1147 +++++++++++++++++++++++++++++
 drivers/net/ixgbe/meson.build     |    2 +
 5 files changed, 1151 insertions(+), 994 deletions(-)
 create mode 100644 drivers/net/ixgbe/ixgbe_testpmd.c

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index fee05c1a0c..a5a5ef9588 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -69,8 +69,6 @@ static cmdline_parse_ctx_t *main_ctx;
 static TAILQ_HEAD(, testpmd_cmdline_parser) cmdline_parsers =
 	TAILQ_HEAD_INITIALIZER(cmdline_parsers);
 
-static void cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue);
-
 /* *** Help command with introduction. *** */
 struct cmd_help_brief_result {
 	cmdline_fixed_string_t help;
@@ -344,24 +342,9 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set all queues drop (port_id) (on|off)\n"
 			"    Set drop enable bit for all queues.\n\n"
 
-			"set vf split drop (port_id) (vf_id) (on|off)\n"
-			"    Set split drop enable bit for a VF from the PF.\n\n"
-
 			"set vf mac antispoof (port_id) (vf_id) (on|off).\n"
 			"    Set MAC antispoof for a VF from the PF.\n\n"
 
-			"set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)\n"
-			"    Enable MACsec offload.\n\n"
-
-			"set macsec offload (port_id) off\n"
-			"    Disable MACsec offload.\n\n"
-
-			"set macsec sc (tx|rx) (port_id) (mac) (pi)\n"
-			"    Configure MACsec secure connection (SC).\n\n"
-
-			"set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)\n"
-			"    Configure MACsec secure association (SA).\n\n"
-
 			"set vf broadcast (port_id) (vf_id) (on|off)\n"
 			"    Set VF broadcast for a VF from the PF.\n\n"
 
@@ -392,9 +375,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set tx strict-link-priority (port_id) (tc_bitmap)\n"
 			"    Set some TCs' strict link priority mode on a physical port.\n\n"
 
-			"set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\n"
-			"    Set all TCs' min bandwidth(%%) for all PF and VFs.\n\n"
-
 			"vlan set (strip|filter|qinq_strip|extend) (on|off) (port_id)\n"
 			"    Set the VLAN strip or filter or qinq strip or extend\n\n"
 
@@ -587,29 +567,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"   Flush (default) or don't flush RX streams before"
 			" forwarding. Mainly used with PCAP drivers.\n\n"
 
-			"set bypass mode (normal|bypass|isolate) (port_id)\n"
-			"   Set the bypass mode for the lowest port on bypass enabled"
-			" NIC.\n\n"
-
-			"set bypass event (timeout|os_on|os_off|power_on|power_off) "
-			"mode (normal|bypass|isolate) (port_id)\n"
-			"   Set the event required to initiate specified bypass mode for"
-			" the lowest port on a bypass enabled NIC where:\n"
-			"       timeout   = enable bypass after watchdog timeout.\n"
-			"       os_on     = enable bypass when OS/board is powered on.\n"
-			"       os_off    = enable bypass when OS/board is powered off.\n"
-			"       power_on  = enable bypass when power supply is turned on.\n"
-			"       power_off = enable bypass when power supply is turned off."
-			"\n\n"
-
-			"set bypass timeout (0|1.5|2|3|4|8|16|32)\n"
-			"   Set the bypass watchdog timeout to 'n' seconds"
-			" where 0 = instant.\n\n"
-
-			"show bypass config (port_id)\n"
-			"   Show the bypass configuration for a bypass enabled NIC"
-			" using the lowest port on the NIC.\n\n"
-
 			"set link-up port (port_id)\n"
 			"	Set link up for a port.\n\n"
 
@@ -5517,347 +5474,6 @@ cmdline_parse_inst_t cmd_set_link_check = {
 	},
 };
 
-/* *** SET NIC BYPASS MODE *** */
-struct cmd_set_bypass_mode_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t mode;
-	cmdline_fixed_string_t value;
-	portid_t port_id;
-};
-
-static void
-cmd_set_bypass_mode_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bypass_mode_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	int32_t rc = -EINVAL;
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	if (!strcmp(res->value, "bypass"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
-	else if (!strcmp(res->value, "isolate"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
-	else
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	/* Set the bypass mode for the relevant port. */
-	rc = rte_pmd_ixgbe_bypass_state_set(port_id, &bypass_mode);
-#endif
-	if (rc != 0)
-		fprintf(stderr, "\t Failed to set bypass mode for port = %d.\n",
-			port_id);
-}
-
-cmdline_parse_token_string_t cmd_setbypass_mode_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			set, "set");
-cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			bypass, "bypass");
-cmdline_parse_token_string_t cmd_setbypass_mode_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			mode, "mode");
-cmdline_parse_token_string_t cmd_setbypass_mode_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			value, "normal#bypass#isolate");
-cmdline_parse_token_num_t cmd_setbypass_mode_port =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_mode_result,
-				port_id, RTE_UINT16);
-
-cmdline_parse_inst_t cmd_set_bypass_mode = {
-	.f = cmd_set_bypass_mode_parsed,
-	.help_str = "set bypass mode normal|bypass|isolate <port_id>: "
-	            "Set the NIC bypass mode for port_id",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_setbypass_mode_set,
-		(void *)&cmd_setbypass_mode_bypass,
-		(void *)&cmd_setbypass_mode_mode,
-		(void *)&cmd_setbypass_mode_value,
-		(void *)&cmd_setbypass_mode_port,
-		NULL,
-	},
-};
-
-/* *** SET NIC BYPASS EVENT *** */
-struct cmd_set_bypass_event_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t event;
-	cmdline_fixed_string_t event_value;
-	cmdline_fixed_string_t mode;
-	cmdline_fixed_string_t mode_value;
-	portid_t port_id;
-};
-
-static void
-cmd_set_bypass_event_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	int32_t rc = -EINVAL;
-	struct cmd_set_bypass_event_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	uint32_t bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
-	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	if (!strcmp(res->event_value, "timeout"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT;
-	else if (!strcmp(res->event_value, "os_on"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_ON;
-	else if (!strcmp(res->event_value, "os_off"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_OFF;
-	else if (!strcmp(res->event_value, "power_on"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_ON;
-	else if (!strcmp(res->event_value, "power_off"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_OFF;
-	else
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
-
-	if (!strcmp(res->mode_value, "bypass"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
-	else if (!strcmp(res->mode_value, "isolate"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
-	else
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	/* Set the watchdog timeout. */
-	if (bypass_event == RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT) {
-
-		rc = -EINVAL;
-		if (RTE_PMD_IXGBE_BYPASS_TMT_VALID(bypass_timeout)) {
-			rc = rte_pmd_ixgbe_bypass_wd_timeout_store(port_id,
-							   bypass_timeout);
-		}
-		if (rc != 0) {
-			fprintf(stderr,
-				"Failed to set timeout value %u for port %d, errto code: %d.\n",
-				bypass_timeout, port_id, rc);
-		}
-	}
-
-	/* Set the bypass event to transition to bypass mode. */
-	rc = rte_pmd_ixgbe_bypass_event_store(port_id, bypass_event,
-					      bypass_mode);
-#endif
-
-	if (rc != 0)
-		fprintf(stderr, "\t Failed to set bypass event for port = %d.\n",
-			port_id);
-}
-
-cmdline_parse_token_string_t cmd_setbypass_event_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			set, "set");
-cmdline_parse_token_string_t cmd_setbypass_event_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			bypass, "bypass");
-cmdline_parse_token_string_t cmd_setbypass_event_event =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			event, "event");
-cmdline_parse_token_string_t cmd_setbypass_event_event_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			event_value, "none#timeout#os_off#os_on#power_on#power_off");
-cmdline_parse_token_string_t cmd_setbypass_event_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			mode, "mode");
-cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			mode_value, "normal#bypass#isolate");
-cmdline_parse_token_num_t cmd_setbypass_event_port =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_event_result,
-				port_id, RTE_UINT16);
-
-cmdline_parse_inst_t cmd_set_bypass_event = {
-	.f = cmd_set_bypass_event_parsed,
-	.help_str = "set bypass event none|timeout|os_on|os_off|power_on|"
-		"power_off mode normal|bypass|isolate <port_id>: "
-		"Set the NIC bypass event mode for port_id",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_setbypass_event_set,
-		(void *)&cmd_setbypass_event_bypass,
-		(void *)&cmd_setbypass_event_event,
-		(void *)&cmd_setbypass_event_event_value,
-		(void *)&cmd_setbypass_event_mode,
-		(void *)&cmd_setbypass_event_mode_value,
-		(void *)&cmd_setbypass_event_port,
-		NULL,
-	},
-};
-
-
-/* *** SET NIC BYPASS TIMEOUT *** */
-struct cmd_set_bypass_timeout_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t timeout;
-	cmdline_fixed_string_t value;
-};
-
-static void
-cmd_set_bypass_timeout_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	__rte_unused struct cmd_set_bypass_timeout_result *res = parsed_result;
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	if (!strcmp(res->value, "1.5"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_1_5_SEC;
-	else if (!strcmp(res->value, "2"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_2_SEC;
-	else if (!strcmp(res->value, "3"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_3_SEC;
-	else if (!strcmp(res->value, "4"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_4_SEC;
-	else if (!strcmp(res->value, "8"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_8_SEC;
-	else if (!strcmp(res->value, "16"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_16_SEC;
-	else if (!strcmp(res->value, "32"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_32_SEC;
-	else
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
-#endif
-}
-
-cmdline_parse_token_string_t cmd_setbypass_timeout_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			set, "set");
-cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			bypass, "bypass");
-cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			timeout, "timeout");
-cmdline_parse_token_string_t cmd_setbypass_timeout_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			value, "0#1.5#2#3#4#8#16#32");
-
-cmdline_parse_inst_t cmd_set_bypass_timeout = {
-	.f = cmd_set_bypass_timeout_parsed,
-	.help_str = "set bypass timeout 0|1.5|2|3|4|8|16|32: "
-		"Set the NIC bypass watchdog timeout in seconds",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_setbypass_timeout_set,
-		(void *)&cmd_setbypass_timeout_bypass,
-		(void *)&cmd_setbypass_timeout_timeout,
-		(void *)&cmd_setbypass_timeout_value,
-		NULL,
-	},
-};
-
-/* *** SHOW NIC BYPASS MODE *** */
-struct cmd_show_bypass_config_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t config;
-	portid_t port_id;
-};
-
-static void
-cmd_show_bypass_config_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_show_bypass_config_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	int rc = -EINVAL;
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	uint32_t event_mode;
-	uint32_t bypass_mode;
-	uint32_t timeout = bypass_timeout;
-	unsigned int i;
-
-	static const char * const timeouts[RTE_PMD_IXGBE_BYPASS_TMT_NUM] =
-		{"off", "1.5", "2", "3", "4", "8", "16", "32"};
-	static const char * const modes[RTE_PMD_IXGBE_BYPASS_MODE_NUM] =
-		{"UNKNOWN", "normal", "bypass", "isolate"};
-	static const char * const events[RTE_PMD_IXGBE_BYPASS_EVENT_NUM] = {
-		"NONE",
-		"OS/board on",
-		"power supply on",
-		"OS/board off",
-		"power supply off",
-		"timeout"};
-
-	/* Display the bypass mode.*/
-	if (rte_pmd_ixgbe_bypass_state_show(port_id, &bypass_mode) != 0) {
-		fprintf(stderr, "\tFailed to get bypass mode for port = %d\n",
-			port_id);
-		return;
-	}
-	else {
-		if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(bypass_mode))
-			bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
-
-		printf("\tbypass mode    = %s\n",  modes[bypass_mode]);
-	}
-
-	/* Display the bypass timeout.*/
-	if (!RTE_PMD_IXGBE_BYPASS_TMT_VALID(timeout))
-		timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
-
-	printf("\tbypass timeout = %s\n", timeouts[timeout]);
-
-	/* Display the bypass events and associated modes. */
-	for (i = RTE_PMD_IXGBE_BYPASS_EVENT_START; i < RTE_DIM(events); i++) {
-
-		if (rte_pmd_ixgbe_bypass_event_show(port_id, i, &event_mode)) {
-			fprintf(stderr,
-				"\tFailed to get bypass mode for event = %s\n",
-				events[i]);
-		} else {
-			if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(event_mode))
-				event_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
-
-			printf("\tbypass event: %-16s = %s\n", events[i],
-				modes[event_mode]);
-		}
-	}
-#endif
-	if (rc != 0)
-		fprintf(stderr,
-			"\tFailed to get bypass configuration for port = %d\n",
-		       port_id);
-}
-
-cmdline_parse_token_string_t cmd_showbypass_config_show =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
-			show, "show");
-cmdline_parse_token_string_t cmd_showbypass_config_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
-			bypass, "bypass");
-cmdline_parse_token_string_t cmd_showbypass_config_config =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
-			config, "config");
-cmdline_parse_token_num_t cmd_showbypass_config_port =
-	TOKEN_NUM_INITIALIZER(struct cmd_show_bypass_config_result,
-				port_id, RTE_UINT16);
-
-cmdline_parse_inst_t cmd_show_bypass_config = {
-	.f = cmd_show_bypass_config_parsed,
-	.help_str = "show bypass config <port_id>: "
-	            "Show the NIC bypass config for port_id",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_showbypass_config_show,
-		(void *)&cmd_showbypass_config_bypass,
-		(void *)&cmd_showbypass_config_config,
-		(void *)&cmd_showbypass_config_port,
-		NULL,
-	},
-};
-
 /* *** SET FORWARDING MODE *** */
 struct cmd_set_fwd_mode_result {
 	cmdline_fixed_string_t set;
@@ -10079,100 +9695,6 @@ cmdline_parse_inst_t cmd_set_all_queues_drop_en = {
 	},
 };
 
-/* vf split drop enable configuration */
-
-/* Common result structure for vf split drop enable */
-struct cmd_vf_split_drop_en_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t split;
-	cmdline_fixed_string_t drop;
-	portid_t port_id;
-	uint16_t vf_id;
-	cmdline_fixed_string_t on_off;
-};
-
-/* Common CLI fields for vf split drop enable disable */
-cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 set, "set");
-cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 split, "split");
-cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 drop, "drop");
-cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 vf_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 on_off, "on#off");
-
-static void
-cmd_set_vf_split_drop_en_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_split_drop_en_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_IXGBE
-	ret = rte_pmd_ixgbe_set_vf_split_drop_en(res->port_id, res->vf_id,
-			is_on);
-#endif
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
-			res->vf_id, is_on);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", res->port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
-	.f = cmd_set_vf_split_drop_en_parsed,
-	.data = NULL,
-	.help_str = "set vf split drop <port_id> <vf_id> on|off",
-	.tokens = {
-		(void *)&cmd_vf_split_drop_en_set,
-		(void *)&cmd_vf_split_drop_en_vf,
-		(void *)&cmd_vf_split_drop_en_split,
-		(void *)&cmd_vf_split_drop_en_drop,
-		(void *)&cmd_vf_split_drop_en_port_id,
-		(void *)&cmd_vf_split_drop_en_vf_id,
-		(void *)&cmd_vf_split_drop_en_on_off,
-		NULL,
-	},
-};
-
 /* vf mac address configuration */
 
 /* Common result structure for vf mac address */
@@ -10277,431 +9799,6 @@ cmdline_parse_inst_t cmd_set_vf_mac_addr = {
 	},
 };
 
-/* MACsec configuration */
-
-/* Common result structure for MACsec offload enable */
-struct cmd_macsec_offload_on_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t offload;
-	portid_t port_id;
-	cmdline_fixed_string_t on;
-	cmdline_fixed_string_t encrypt;
-	cmdline_fixed_string_t en_on_off;
-	cmdline_fixed_string_t replay_protect;
-	cmdline_fixed_string_t rp_on_off;
-};
-
-/* Common CLI fields for MACsec offload disable */
-cmdline_parse_token_string_t cmd_macsec_offload_on_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 offload, "offload");
-cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_macsec_offload_on_on =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 on, "on");
-cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 encrypt, "encrypt");
-cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 en_on_off, "on#off");
-cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 replay_protect, "replay-protect");
-cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 rp_on_off, "on#off");
-
-static void
-cmd_set_macsec_offload_on_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_offload_on_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	portid_t port_id = res->port_id;
-	int en = (strcmp(res->en_on_off, "on") == 0) ? 1 : 0;
-	int rp = (strcmp(res->rp_on_off, "on") == 0) ? 1 : 0;
-	struct rte_eth_dev_info dev_info;
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (!port_is_stopped(port_id)) {
-		fprintf(stderr, "Please stop port %d first\n", port_id);
-		return;
-	}
-
-	ret = eth_dev_info_get_print_err(port_id, &dev_info);
-	if (ret != 0)
-		return;
-
-	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT) {
-#ifdef RTE_NET_IXGBE
-		ret = rte_pmd_ixgbe_macsec_enable(port_id, en, rp);
-#endif
-	}
-	RTE_SET_USED(en);
-	RTE_SET_USED(rp);
-
-	switch (ret) {
-	case 0:
-		ports[port_id].dev_conf.txmode.offloads |=
-						RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
-		cmd_reconfig_device_queue(port_id, 1, 1);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-cmdline_parse_inst_t cmd_set_macsec_offload_on = {
-	.f = cmd_set_macsec_offload_on_parsed,
-	.data = NULL,
-	.help_str = "set macsec offload <port_id> on "
-		"encrypt on|off replay-protect on|off",
-	.tokens = {
-		(void *)&cmd_macsec_offload_on_set,
-		(void *)&cmd_macsec_offload_on_macsec,
-		(void *)&cmd_macsec_offload_on_offload,
-		(void *)&cmd_macsec_offload_on_port_id,
-		(void *)&cmd_macsec_offload_on_on,
-		(void *)&cmd_macsec_offload_on_encrypt,
-		(void *)&cmd_macsec_offload_on_en_on_off,
-		(void *)&cmd_macsec_offload_on_replay_protect,
-		(void *)&cmd_macsec_offload_on_rp_on_off,
-		NULL,
-	},
-};
-
-/* Common result structure for MACsec offload disable */
-struct cmd_macsec_offload_off_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t offload;
-	portid_t port_id;
-	cmdline_fixed_string_t off;
-};
-
-/* Common CLI fields for MACsec offload disable */
-cmdline_parse_token_string_t cmd_macsec_offload_off_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 offload, "offload");
-cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_macsec_offload_off_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 off, "off");
-
-static void
-cmd_set_macsec_offload_off_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_offload_off_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	struct rte_eth_dev_info dev_info;
-	portid_t port_id = res->port_id;
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (!port_is_stopped(port_id)) {
-		fprintf(stderr, "Please stop port %d first\n", port_id);
-		return;
-	}
-
-	ret = eth_dev_info_get_print_err(port_id, &dev_info);
-	if (ret != 0)
-		return;
-
-	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT) {
-#ifdef RTE_NET_IXGBE
-		ret = rte_pmd_ixgbe_macsec_disable(port_id);
-#endif
-	}
-	switch (ret) {
-	case 0:
-		ports[port_id].dev_conf.txmode.offloads &=
-						~RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
-		cmd_reconfig_device_queue(port_id, 1, 1);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-cmdline_parse_inst_t cmd_set_macsec_offload_off = {
-	.f = cmd_set_macsec_offload_off_parsed,
-	.data = NULL,
-	.help_str = "set macsec offload <port_id> off",
-	.tokens = {
-		(void *)&cmd_macsec_offload_off_set,
-		(void *)&cmd_macsec_offload_off_macsec,
-		(void *)&cmd_macsec_offload_off_offload,
-		(void *)&cmd_macsec_offload_off_port_id,
-		(void *)&cmd_macsec_offload_off_off,
-		NULL,
-	},
-};
-
-/* Common result structure for MACsec secure connection configure */
-struct cmd_macsec_sc_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t sc;
-	cmdline_fixed_string_t tx_rx;
-	portid_t port_id;
-	struct rte_ether_addr mac;
-	uint16_t pi;
-};
-
-/* Common CLI fields for MACsec secure connection configure */
-cmdline_parse_token_string_t cmd_macsec_sc_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_sc_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_sc_sc =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 sc, "sc");
-cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 tx_rx, "tx#rx");
-cmdline_parse_token_num_t cmd_macsec_sc_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 port_id, RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
-	TOKEN_ETHERADDR_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 mac);
-cmdline_parse_token_num_t cmd_macsec_sc_pi =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 pi, RTE_UINT16);
-
-static void
-cmd_set_macsec_sc_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_sc_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
-
-#ifdef RTE_NET_IXGBE
-	ret = is_tx ?
-		rte_pmd_ixgbe_macsec_config_txsc(res->port_id,
-				res->mac.addr_bytes) :
-		rte_pmd_ixgbe_macsec_config_rxsc(res->port_id,
-				res->mac.addr_bytes, res->pi);
-#endif
-	RTE_SET_USED(is_tx);
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", res->port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-cmdline_parse_inst_t cmd_set_macsec_sc = {
-	.f = cmd_set_macsec_sc_parsed,
-	.data = NULL,
-	.help_str = "set macsec sc tx|rx <port_id> <mac> <pi>",
-	.tokens = {
-		(void *)&cmd_macsec_sc_set,
-		(void *)&cmd_macsec_sc_macsec,
-		(void *)&cmd_macsec_sc_sc,
-		(void *)&cmd_macsec_sc_tx_rx,
-		(void *)&cmd_macsec_sc_port_id,
-		(void *)&cmd_macsec_sc_mac,
-		(void *)&cmd_macsec_sc_pi,
-		NULL,
-	},
-};
-
-/* Common result structure for MACsec secure connection configure */
-struct cmd_macsec_sa_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t sa;
-	cmdline_fixed_string_t tx_rx;
-	portid_t port_id;
-	uint8_t idx;
-	uint8_t an;
-	uint32_t pn;
-	cmdline_fixed_string_t key;
-};
-
-/* Common CLI fields for MACsec secure connection configure */
-cmdline_parse_token_string_t cmd_macsec_sa_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_sa_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_sa_sa =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 sa, "sa");
-cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 tx_rx, "tx#rx");
-cmdline_parse_token_num_t cmd_macsec_sa_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_macsec_sa_idx =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 idx, RTE_UINT8);
-cmdline_parse_token_num_t cmd_macsec_sa_an =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 an, RTE_UINT8);
-cmdline_parse_token_num_t cmd_macsec_sa_pn =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 pn, RTE_UINT32);
-cmdline_parse_token_string_t cmd_macsec_sa_key =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 key, NULL);
-
-static void
-cmd_set_macsec_sa_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_sa_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
-	uint8_t key[16] = { 0 };
-	uint8_t xdgt0;
-	uint8_t xdgt1;
-	int key_len;
-	int i;
-
-	key_len = strlen(res->key) / 2;
-	if (key_len > 16)
-		key_len = 16;
-
-	for (i = 0; i < key_len; i++) {
-		xdgt0 = parse_and_check_key_hexa_digit(res->key, (i * 2));
-		if (xdgt0 == 0xFF)
-			return;
-		xdgt1 = parse_and_check_key_hexa_digit(res->key, (i * 2) + 1);
-		if (xdgt1 == 0xFF)
-			return;
-		key[i] = (uint8_t) ((xdgt0 * 16) + xdgt1);
-	}
-
-#ifdef RTE_NET_IXGBE
-	ret = is_tx ?
-		rte_pmd_ixgbe_macsec_select_txsa(res->port_id,
-			res->idx, res->an, res->pn, key) :
-		rte_pmd_ixgbe_macsec_select_rxsa(res->port_id,
-			res->idx, res->an, res->pn, key);
-#endif
-	RTE_SET_USED(is_tx);
-	RTE_SET_USED(key);
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid idx %d or an %d\n", res->idx, res->an);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", res->port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-cmdline_parse_inst_t cmd_set_macsec_sa = {
-	.f = cmd_set_macsec_sa_parsed,
-	.data = NULL,
-	.help_str = "set macsec sa tx|rx <port_id> <idx> <an> <pn> <key>",
-	.tokens = {
-		(void *)&cmd_macsec_sa_set,
-		(void *)&cmd_macsec_sa_macsec,
-		(void *)&cmd_macsec_sa_sa,
-		(void *)&cmd_macsec_sa_tx_rx,
-		(void *)&cmd_macsec_sa_port_id,
-		(void *)&cmd_macsec_sa_idx,
-		(void *)&cmd_macsec_sa_an,
-		(void *)&cmd_macsec_sa_pn,
-		(void *)&cmd_macsec_sa_key,
-		NULL,
-	},
-};
-
 /* VF unicast promiscuous mode configuration */
 
 /* Common result structure for VF unicast promiscuous mode */
@@ -11294,68 +10391,6 @@ cmdline_parse_inst_t cmd_vf_tc_min_bw = {
 	},
 };
 
-static void
-cmd_tc_min_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	struct rte_port *port;
-	uint8_t tc_num;
-	uint8_t bw[16];
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	port = &ports[res->port_id];
-	/** Check if the port is not started **/
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr, "Please stop port %d first\n", res->port_id);
-		return;
-	}
-
-	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
-	if (ret)
-		return;
-
-#ifdef RTE_NET_IXGBE
-	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid bandwidth\n");
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-cmdline_parse_inst_t cmd_tc_min_bw = {
-	.f = cmd_tc_min_bw_parsed,
-	.data = NULL,
-	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_tc,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_min_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_bw_list,
-		NULL,
-	},
-};
-
 /* TC max bandwidth setting */
 static void
 cmd_vf_tc_max_bw_parsed(
@@ -16188,10 +15223,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_allmulti_mode_all,
 	(cmdline_parse_inst_t *)&cmd_set_flush_rx,
 	(cmdline_parse_inst_t *)&cmd_set_link_check,
-	(cmdline_parse_inst_t *)&cmd_set_bypass_mode,
-	(cmdline_parse_inst_t *)&cmd_set_bypass_event,
-	(cmdline_parse_inst_t *)&cmd_set_bypass_timeout,
-	(cmdline_parse_inst_t *)&cmd_show_bypass_config,
 	(cmdline_parse_inst_t *)&cmd_vlan_offload,
 	(cmdline_parse_inst_t *)&cmd_vlan_tpid,
 	(cmdline_parse_inst_t *)&cmd_rx_vlan_filter_all,
@@ -16307,11 +15338,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_vf_vlan_insert,
 	(cmdline_parse_inst_t *)&cmd_set_tx_loopback,
 	(cmdline_parse_inst_t *)&cmd_set_all_queues_drop_en,
-	(cmdline_parse_inst_t *)&cmd_set_vf_split_drop_en,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_offload_on,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_offload_off,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_sc,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_sa,
 	(cmdline_parse_inst_t *)&cmd_set_vf_traffic,
 	(cmdline_parse_inst_t *)&cmd_set_vf_rxmode,
 	(cmdline_parse_inst_t *)&cmd_vf_rate_limit,
@@ -16325,7 +15351,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_vf_tc_min_bw,
 	(cmdline_parse_inst_t *)&cmd_vf_tc_max_bw,
 	(cmdline_parse_inst_t *)&cmd_strict_link_prio,
-	(cmdline_parse_inst_t *)&cmd_tc_min_bw,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan_tos_ttl,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan_with_vlan,
@@ -16518,7 +15543,7 @@ prompt_exit(void)
 	}
 }
 
-static void
+void
 cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue)
 {
 	if (id == (portid_t)RTE_PORT_ALL) {
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 5bda46e32b..84e7996556 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -437,16 +437,6 @@ uint32_t event_print_mask = (UINT32_C(1) << RTE_ETH_EVENT_UNKNOWN) |
  */
 int do_mlockall = 0;
 
-/*
- * NIC bypass mode configuration options.
- */
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-/* The NIC bypass watchdog timeout. */
-uint32_t bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
-#endif
-
-
 #ifdef RTE_LIB_LATENCYSTATS
 
 /*
@@ -3800,10 +3790,6 @@ init_port_config(void)
 		if (ret != 0)
 			return;
 
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-		rte_pmd_ixgbe_bypass_init(pid);
-#endif
-
 		if (lsc_interrupt && (*port->dev_info.dev_flags & RTE_ETH_DEV_INTR_LSC))
 			port->dev_conf.intr_conf.lsc = 1;
 		if (rmv_interrupt && (*port->dev_info.dev_flags & RTE_ETH_DEV_INTR_RMV))
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index 9058d21a07..48dff3b8a6 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -439,10 +439,6 @@ extern uint8_t hot_plug; /**< enable by "--hot-plug" parameter */
 extern int do_mlockall; /**< set by "--mlockall" or "--no-mlockall" parameter */
 extern uint8_t clear_ptypes; /**< disabled by set ptype cmd */
 
-#ifdef RTE_LIBRTE_IXGBE_BYPASS
-extern uint32_t bypass_timeout; /**< Store the NIC bypass watchdog timeout */
-#endif
-
 /*
  * Store specified sockets on which memory pool to be used by ports
  * is allocated.
@@ -871,6 +867,7 @@ 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);
+void cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue);
 void cmdline_read_from_file(const char *filename);
 int init_cmdline(void);
 void prompt(void);
diff --git a/drivers/net/ixgbe/ixgbe_testpmd.c b/drivers/net/ixgbe/ixgbe_testpmd.c
new file mode 100644
index 0000000000..1a4ffb69be
--- /dev/null
+++ b/drivers/net/ixgbe/ixgbe_testpmd.c
@@ -0,0 +1,1147 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2016 Intel Corporation.
+ */
+
+#define RTE_LIBRTE_IXGBE_BYPASS
+
+#include <ethdev_driver.h>
+#include "ixgbe_ethdev.h"
+#include "rte_pmd_ixgbe.h"
+
+#include <cmdline_parse_etheraddr.h>
+#include <cmdline_parse_num.h>
+#include <cmdline_parse_string.h>
+
+#include "testpmd.h"
+
+static uint8_t
+hexa_digit_to_value(char hexa_digit)
+{
+	if ((hexa_digit >= '0') && (hexa_digit <= '9'))
+		return (uint8_t)(hexa_digit - '0');
+	if ((hexa_digit >= 'a') && (hexa_digit <= 'f'))
+		return (uint8_t)((hexa_digit - 'a') + 10);
+	if ((hexa_digit >= 'A') && (hexa_digit <= 'F'))
+		return (uint8_t)((hexa_digit - 'A') + 10);
+	/* Invalid hexa digit */
+	return 0xFF;
+}
+
+static uint8_t
+parse_and_check_key_hexa_digit(char *key, int idx)
+{
+	uint8_t hexa_v;
+
+	hexa_v = hexa_digit_to_value(key[idx]);
+	if (hexa_v == 0xFF)
+		fprintf(stderr,
+			"invalid key: character %c at position %d is not a valid hexa digit\n",
+			key[idx], idx);
+	return hexa_v;
+}
+
+static int
+vf_tc_min_bw_parse_bw_list(uint8_t *bw_list,
+			   uint8_t *tc_num,
+			   char *str)
+{
+	uint32_t size;
+	const char *p, *p0 = str;
+	char s[256];
+	char *end;
+	char *str_fld[16];
+	uint16_t i;
+	int ret;
+
+	p = strchr(p0, '(');
+	if (p == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	p++;
+	p0 = strchr(p, ')');
+	if (p0 == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	size = p0 - p;
+	if (size >= sizeof(s)) {
+		fprintf(stderr,
+			"The string size exceeds the internal buffer size\n");
+		return -1;
+	}
+	snprintf(s, sizeof(s), "%.*s", size, p);
+	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
+	if (ret <= 0) {
+		fprintf(stderr, "Failed to get the bandwidth list.\n");
+		return -1;
+	}
+	*tc_num = ret;
+	for (i = 0; i < ret; i++)
+		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
+
+	return 0;
+}
+
+/* The NIC bypass watchdog timeout. */
+uint32_t bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
+
+static inline bool
+check_bypass_enabled(portid_t port_id)
+{
+	struct ixgbe_adapter *adapter;
+
+	adapter = rte_eth_devices[port_id].data->dev_private;
+	if (adapter->bps.ops.bypass_rw == NULL) {
+		fprintf(stderr, "Bypass is not enabled on this port.\n");
+		return false;
+	}
+
+	return true;
+}
+
+/* Enable bypass mode */
+struct cmd_config_bypass_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t config;
+	cmdline_fixed_string_t bypass;
+	portid_t port_id;
+	cmdline_fixed_string_t value;
+};
+
+static void
+cmd_config_bypass_parsed(void *parsed_result,
+		      __rte_unused struct cmdline *cl,
+		      __rte_unused void *data)
+{
+	struct cmd_config_bypass_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+
+	if (ports[port_id].port_status == RTE_PORT_STARTED) {
+		fprintf(stderr, "Cannot change bypass configuration while port is started, please stop it and retry\n");
+		return;
+	}
+
+	if (strcmp(res->value, "on") == 0)
+		rte_pmd_ixgbe_bypass_init(port_id);
+}
+
+static cmdline_parse_token_string_t cmd_config_bypass_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, port, "port");
+static cmdline_parse_token_string_t cmd_config_bypass_config =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, config, "config");
+static cmdline_parse_token_string_t cmd_config_bypass_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, bypass, "bypass");
+static cmdline_parse_token_num_t cmd_config_bypass_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_config_bypass_result, port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_config_bypass_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, value, "on#off");
+
+static cmdline_parse_inst_t cmd_config_bypass = {
+	.f = cmd_config_bypass_parsed,
+	.data = NULL,
+	.help_str = "port config bypass <port_id> on|off",
+	.tokens = {
+		(void *)&cmd_config_bypass_port,
+		(void *)&cmd_config_bypass_config,
+		(void *)&cmd_config_bypass_bypass,
+		(void *)&cmd_config_bypass_port_id,
+		(void *)&cmd_config_bypass_value,
+		NULL,
+	},
+};
+
+/* *** SET NIC BYPASS MODE *** */
+struct cmd_set_bypass_mode_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t value;
+	portid_t port_id;
+};
+
+static void
+cmd_set_bypass_mode_parsed(void *parsed_result,
+		__rte_unused struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bypass_mode_result *res = parsed_result;
+	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+	portid_t port_id = res->port_id;
+	int32_t rc = -EINVAL;
+
+	if (!check_bypass_enabled(port_id))
+		return;
+
+	if (!strcmp(res->value, "bypass"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
+	else if (!strcmp(res->value, "isolate"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
+	else
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+
+	/* Set the bypass mode for the relevant port. */
+	rc = rte_pmd_ixgbe_bypass_state_set(port_id, &bypass_mode);
+	if (rc != 0)
+		fprintf(stderr, "\t Failed to set bypass mode for port = %d.\n",
+			port_id);
+}
+
+static cmdline_parse_token_string_t cmd_setbypass_mode_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+			set, "set");
+static cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+			bypass, "bypass");
+static cmdline_parse_token_string_t cmd_setbypass_mode_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+			mode, "mode");
+static cmdline_parse_token_string_t cmd_setbypass_mode_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+			value, "normal#bypass#isolate");
+static cmdline_parse_token_num_t cmd_setbypass_mode_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_mode_result,
+				port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_set_bypass_mode = {
+	.f = cmd_set_bypass_mode_parsed,
+	.help_str = "set bypass mode normal|bypass|isolate <port_id>: "
+		"Set the NIC bypass mode for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbypass_mode_set,
+		(void *)&cmd_setbypass_mode_bypass,
+		(void *)&cmd_setbypass_mode_mode,
+		(void *)&cmd_setbypass_mode_value,
+		(void *)&cmd_setbypass_mode_port,
+		NULL,
+	},
+};
+
+/* *** SET NIC BYPASS EVENT *** */
+struct cmd_set_bypass_event_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t event;
+	cmdline_fixed_string_t event_value;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t mode_value;
+	portid_t port_id;
+};
+
+static void
+cmd_set_bypass_event_parsed(void *parsed_result,
+		__rte_unused struct cmdline *cl,
+		__rte_unused void *data)
+{
+	int32_t rc = -EINVAL;
+	struct cmd_set_bypass_event_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	uint32_t bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
+	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+
+	if (!check_bypass_enabled(port_id))
+		return;
+
+	if (!strcmp(res->event_value, "timeout"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT;
+	else if (!strcmp(res->event_value, "os_on"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_ON;
+	else if (!strcmp(res->event_value, "os_off"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_OFF;
+	else if (!strcmp(res->event_value, "power_on"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_ON;
+	else if (!strcmp(res->event_value, "power_off"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_OFF;
+	else
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
+
+	if (!strcmp(res->mode_value, "bypass"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
+	else if (!strcmp(res->mode_value, "isolate"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
+	else
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+
+	/* Set the watchdog timeout. */
+	if (bypass_event == RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT) {
+		rc = -EINVAL;
+		if (RTE_PMD_IXGBE_BYPASS_TMT_VALID(bypass_timeout)) {
+			rc = rte_pmd_ixgbe_bypass_wd_timeout_store(port_id,
+							   bypass_timeout);
+		}
+		if (rc != 0) {
+			fprintf(stderr,
+				"Failed to set timeout value %u for port %d, errto code: %d.\n",
+				bypass_timeout, port_id, rc);
+		}
+	}
+
+	/* Set the bypass event to transition to bypass mode. */
+	rc = rte_pmd_ixgbe_bypass_event_store(port_id, bypass_event,
+					      bypass_mode);
+	if (rc != 0)
+		fprintf(stderr, "\t Failed to set bypass event for port = %d.\n",
+			port_id);
+}
+
+static cmdline_parse_token_string_t cmd_setbypass_event_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+			set, "set");
+static cmdline_parse_token_string_t cmd_setbypass_event_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+			bypass, "bypass");
+static cmdline_parse_token_string_t cmd_setbypass_event_event =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+			event, "event");
+static cmdline_parse_token_string_t cmd_setbypass_event_event_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+			event_value, "none#timeout#os_off#os_on#power_on#power_off");
+static cmdline_parse_token_string_t cmd_setbypass_event_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+			mode, "mode");
+static cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+			mode_value, "normal#bypass#isolate");
+static cmdline_parse_token_num_t cmd_setbypass_event_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_event_result,
+				port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_set_bypass_event = {
+	.f = cmd_set_bypass_event_parsed,
+	.help_str = "set bypass event none|timeout|os_on|os_off|power_on|"
+		"power_off mode normal|bypass|isolate <port_id>: "
+		"Set the NIC bypass event mode for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbypass_event_set,
+		(void *)&cmd_setbypass_event_bypass,
+		(void *)&cmd_setbypass_event_event,
+		(void *)&cmd_setbypass_event_event_value,
+		(void *)&cmd_setbypass_event_mode,
+		(void *)&cmd_setbypass_event_mode_value,
+		(void *)&cmd_setbypass_event_port,
+		NULL,
+	},
+};
+
+
+/* *** SET NIC BYPASS TIMEOUT *** */
+struct cmd_set_bypass_timeout_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t timeout;
+	cmdline_fixed_string_t value;
+};
+
+static void
+cmd_set_bypass_timeout_parsed(void *parsed_result,
+		__rte_unused struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bypass_timeout_result *res = parsed_result;
+
+	if (!strcmp(res->value, "1.5"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_1_5_SEC;
+	else if (!strcmp(res->value, "2"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_2_SEC;
+	else if (!strcmp(res->value, "3"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_3_SEC;
+	else if (!strcmp(res->value, "4"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_4_SEC;
+	else if (!strcmp(res->value, "8"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_8_SEC;
+	else if (!strcmp(res->value, "16"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_16_SEC;
+	else if (!strcmp(res->value, "32"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_32_SEC;
+	else
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
+}
+
+static cmdline_parse_token_string_t cmd_setbypass_timeout_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+			set, "set");
+static cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+			bypass, "bypass");
+static cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+			timeout, "timeout");
+static cmdline_parse_token_string_t cmd_setbypass_timeout_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+			value, "0#1.5#2#3#4#8#16#32");
+
+static cmdline_parse_inst_t cmd_set_bypass_timeout = {
+	.f = cmd_set_bypass_timeout_parsed,
+	.help_str = "set bypass timeout 0|1.5|2|3|4|8|16|32: "
+		"Set the NIC bypass watchdog timeout in seconds",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbypass_timeout_set,
+		(void *)&cmd_setbypass_timeout_bypass,
+		(void *)&cmd_setbypass_timeout_timeout,
+		(void *)&cmd_setbypass_timeout_value,
+		NULL,
+	},
+};
+
+/* *** SHOW NIC BYPASS MODE *** */
+struct cmd_show_bypass_config_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t config;
+	portid_t port_id;
+};
+
+static void
+cmd_show_bypass_config_parsed(void *parsed_result,
+		__rte_unused struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_show_bypass_config_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	int rc = -EINVAL;
+	uint32_t event_mode;
+	uint32_t bypass_mode;
+	uint32_t timeout = bypass_timeout;
+	unsigned int i;
+
+	static const char * const timeouts[RTE_PMD_IXGBE_BYPASS_TMT_NUM] = {
+		"off", "1.5", "2", "3", "4", "8", "16", "32"
+	};
+	static const char * const modes[RTE_PMD_IXGBE_BYPASS_MODE_NUM] = {
+		"UNKNOWN", "normal", "bypass", "isolate"
+	};
+	static const char * const events[RTE_PMD_IXGBE_BYPASS_EVENT_NUM] = {
+		"NONE",
+		"OS/board on",
+		"power supply on",
+		"OS/board off",
+		"power supply off",
+		"timeout"};
+
+	if (!check_bypass_enabled(port_id))
+		return;
+
+	/* Display the bypass mode.*/
+	if (rte_pmd_ixgbe_bypass_state_show(port_id, &bypass_mode) != 0) {
+		fprintf(stderr, "\tFailed to get bypass mode for port = %d\n",
+			port_id);
+		return;
+	}
+	if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(bypass_mode))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
+
+	printf("\tbypass mode    = %s\n",  modes[bypass_mode]);
+
+	/* Display the bypass timeout.*/
+	if (!RTE_PMD_IXGBE_BYPASS_TMT_VALID(timeout))
+		timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
+
+	printf("\tbypass timeout = %s\n", timeouts[timeout]);
+
+	/* Display the bypass events and associated modes. */
+	for (i = RTE_PMD_IXGBE_BYPASS_EVENT_START; i < RTE_DIM(events); i++) {
+		if (rte_pmd_ixgbe_bypass_event_show(port_id, i, &event_mode)) {
+			fprintf(stderr,
+				"\tFailed to get bypass mode for event = %s\n",
+				events[i]);
+		} else {
+			if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(event_mode))
+				event_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
+
+			printf("\tbypass event: %-16s = %s\n", events[i],
+				modes[event_mode]);
+		}
+	}
+	if (rc != 0)
+		fprintf(stderr,
+			"\tFailed to get bypass configuration for port = %d\n",
+		       port_id);
+}
+
+static cmdline_parse_token_string_t cmd_showbypass_config_show =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
+			show, "show");
+static cmdline_parse_token_string_t cmd_showbypass_config_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
+			bypass, "bypass");
+static cmdline_parse_token_string_t cmd_showbypass_config_config =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
+			config, "config");
+static cmdline_parse_token_num_t cmd_showbypass_config_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_show_bypass_config_result,
+				port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_show_bypass_config = {
+	.f = cmd_show_bypass_config_parsed,
+	.help_str = "show bypass config <port_id>: "
+		"Show the NIC bypass config for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_showbypass_config_show,
+		(void *)&cmd_showbypass_config_bypass,
+		(void *)&cmd_showbypass_config_config,
+		(void *)&cmd_showbypass_config_port,
+		NULL,
+	},
+};
+
+/* Common result structure for vf split drop enable */
+struct cmd_vf_split_drop_en_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t split;
+	cmdline_fixed_string_t drop;
+	portid_t port_id;
+	uint16_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for vf split drop enable disable */
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_split_drop_en_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_split_drop_en_result,
+		 vf, "vf");
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_split_drop_en_result,
+		 split, "split");
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_split_drop_en_result,
+		 drop, "drop");
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_vf_split_drop_en_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_vf_split_drop_en_result,
+		 vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_split_drop_en_result,
+		 on_off, "on#off");
+
+static void
+cmd_set_vf_split_drop_en_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_split_drop_en_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_ixgbe_set_vf_split_drop_en(res->port_id, res->vf_id,
+			is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
+			res->vf_id, is_on);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", res->port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
+	.f = cmd_set_vf_split_drop_en_parsed,
+	.data = NULL,
+	.help_str = "set vf split drop <port_id> <vf_id> on|off",
+	.tokens = {
+		(void *)&cmd_vf_split_drop_en_set,
+		(void *)&cmd_vf_split_drop_en_vf,
+		(void *)&cmd_vf_split_drop_en_split,
+		(void *)&cmd_vf_split_drop_en_drop,
+		(void *)&cmd_vf_split_drop_en_port_id,
+		(void *)&cmd_vf_split_drop_en_vf_id,
+		(void *)&cmd_vf_split_drop_en_on_off,
+		NULL,
+	},
+};
+
+/* MACsec configuration */
+
+/* Common result structure for MACsec offload enable */
+struct cmd_macsec_offload_on_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t offload;
+	portid_t port_id;
+	cmdline_fixed_string_t on;
+	cmdline_fixed_string_t encrypt;
+	cmdline_fixed_string_t en_on_off;
+	cmdline_fixed_string_t replay_protect;
+	cmdline_fixed_string_t rp_on_off;
+};
+
+/* Common CLI fields for MACsec offload disable */
+static cmdline_parse_token_string_t cmd_macsec_offload_on_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 offload, "offload");
+static cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_macsec_offload_on_on =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 on, "on");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 encrypt, "encrypt");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 en_on_off, "on#off");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 replay_protect, "replay-protect");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 rp_on_off, "on#off");
+
+static void
+cmd_set_macsec_offload_on_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_macsec_offload_on_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	portid_t port_id = res->port_id;
+	int en = (strcmp(res->en_on_off, "on") == 0) ? 1 : 0;
+	int rp = (strcmp(res->rp_on_off, "on") == 0) ? 1 : 0;
+	struct rte_eth_dev_info dev_info;
+
+	if (port_id_is_invalid(port_id, ENABLED_WARN))
+		return;
+	if (!port_is_stopped(port_id)) {
+		fprintf(stderr, "Please stop port %d first\n", port_id);
+		return;
+	}
+
+	ret = eth_dev_info_get_print_err(port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT)
+		ret = rte_pmd_ixgbe_macsec_enable(port_id, en, rp);
+
+	switch (ret) {
+	case 0:
+		ports[port_id].dev_conf.txmode.offloads |=
+						RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
+		cmd_reconfig_device_queue(port_id, 1, 1);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_macsec_offload_on = {
+	.f = cmd_set_macsec_offload_on_parsed,
+	.data = NULL,
+	.help_str = "set macsec offload <port_id> on "
+		"encrypt on|off replay-protect on|off",
+	.tokens = {
+		(void *)&cmd_macsec_offload_on_set,
+		(void *)&cmd_macsec_offload_on_macsec,
+		(void *)&cmd_macsec_offload_on_offload,
+		(void *)&cmd_macsec_offload_on_port_id,
+		(void *)&cmd_macsec_offload_on_on,
+		(void *)&cmd_macsec_offload_on_encrypt,
+		(void *)&cmd_macsec_offload_on_en_on_off,
+		(void *)&cmd_macsec_offload_on_replay_protect,
+		(void *)&cmd_macsec_offload_on_rp_on_off,
+		NULL,
+	},
+};
+
+/* Common result structure for MACsec offload disable */
+struct cmd_macsec_offload_off_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t offload;
+	portid_t port_id;
+	cmdline_fixed_string_t off;
+};
+
+/* Common CLI fields for MACsec offload disable */
+static cmdline_parse_token_string_t cmd_macsec_offload_off_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_off_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_off_result,
+		 macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_off_result,
+		 offload, "offload");
+static cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_offload_off_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_macsec_offload_off_off =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_off_result,
+		 off, "off");
+
+static void
+cmd_set_macsec_offload_off_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_macsec_offload_off_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_eth_dev_info dev_info;
+	portid_t port_id = res->port_id;
+
+	if (port_id_is_invalid(port_id, ENABLED_WARN))
+		return;
+	if (!port_is_stopped(port_id)) {
+		fprintf(stderr, "Please stop port %d first\n", port_id);
+		return;
+	}
+
+	ret = eth_dev_info_get_print_err(port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT)
+		ret = rte_pmd_ixgbe_macsec_disable(port_id);
+	switch (ret) {
+	case 0:
+		ports[port_id].dev_conf.txmode.offloads &=
+						~RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
+		cmd_reconfig_device_queue(port_id, 1, 1);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_macsec_offload_off = {
+	.f = cmd_set_macsec_offload_off_parsed,
+	.data = NULL,
+	.help_str = "set macsec offload <port_id> off",
+	.tokens = {
+		(void *)&cmd_macsec_offload_off_set,
+		(void *)&cmd_macsec_offload_off_macsec,
+		(void *)&cmd_macsec_offload_off_offload,
+		(void *)&cmd_macsec_offload_off_port_id,
+		(void *)&cmd_macsec_offload_off_off,
+		NULL,
+	},
+};
+
+/* Common result structure for MACsec secure connection configure */
+struct cmd_macsec_sc_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t sc;
+	cmdline_fixed_string_t tx_rx;
+	portid_t port_id;
+	struct rte_ether_addr mac;
+	uint16_t pi;
+};
+
+/* Common CLI fields for MACsec secure connection configure */
+static cmdline_parse_token_string_t cmd_macsec_sc_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sc_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_macsec_sc_macsec =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sc_result,
+		 macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_sc_sc =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sc_result,
+		 sc, "sc");
+static cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sc_result,
+		 tx_rx, "tx#rx");
+static cmdline_parse_token_num_t cmd_macsec_sc_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_sc_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
+	TOKEN_ETHERADDR_INITIALIZER
+		(struct cmd_macsec_sc_result,
+		 mac);
+static cmdline_parse_token_num_t cmd_macsec_sc_pi =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_sc_result,
+		 pi, RTE_UINT16);
+
+static void
+cmd_set_macsec_sc_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_macsec_sc_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
+
+	ret = is_tx ?
+		rte_pmd_ixgbe_macsec_config_txsc(res->port_id,
+				res->mac.addr_bytes) :
+		rte_pmd_ixgbe_macsec_config_rxsc(res->port_id,
+				res->mac.addr_bytes, res->pi);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", res->port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_macsec_sc = {
+	.f = cmd_set_macsec_sc_parsed,
+	.data = NULL,
+	.help_str = "set macsec sc tx|rx <port_id> <mac> <pi>",
+	.tokens = {
+		(void *)&cmd_macsec_sc_set,
+		(void *)&cmd_macsec_sc_macsec,
+		(void *)&cmd_macsec_sc_sc,
+		(void *)&cmd_macsec_sc_tx_rx,
+		(void *)&cmd_macsec_sc_port_id,
+		(void *)&cmd_macsec_sc_mac,
+		(void *)&cmd_macsec_sc_pi,
+		NULL,
+	},
+};
+
+/* Common result structure for MACsec secure connection configure */
+struct cmd_macsec_sa_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t sa;
+	cmdline_fixed_string_t tx_rx;
+	portid_t port_id;
+	uint8_t idx;
+	uint8_t an;
+	uint32_t pn;
+	cmdline_fixed_string_t key;
+};
+
+/* Common CLI fields for MACsec secure connection configure */
+static cmdline_parse_token_string_t cmd_macsec_sa_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_macsec_sa_macsec =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_sa_sa =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 sa, "sa");
+static cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 tx_rx, "tx#rx");
+static cmdline_parse_token_num_t cmd_macsec_sa_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_macsec_sa_idx =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 idx, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_macsec_sa_an =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 an, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_macsec_sa_pn =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 pn, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_macsec_sa_key =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 key, NULL);
+
+static void
+cmd_set_macsec_sa_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_macsec_sa_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
+	uint8_t key[16] = { 0 };
+	uint8_t xdgt0;
+	uint8_t xdgt1;
+	int key_len;
+	int i;
+
+	key_len = strlen(res->key) / 2;
+	if (key_len > 16)
+		key_len = 16;
+
+	for (i = 0; i < key_len; i++) {
+		xdgt0 = parse_and_check_key_hexa_digit(res->key, (i * 2));
+		if (xdgt0 == 0xFF)
+			return;
+		xdgt1 = parse_and_check_key_hexa_digit(res->key, (i * 2) + 1);
+		if (xdgt1 == 0xFF)
+			return;
+		key[i] = (uint8_t)((xdgt0 * 16) + xdgt1);
+	}
+
+	ret = is_tx ?
+		rte_pmd_ixgbe_macsec_select_txsa(res->port_id,
+			res->idx, res->an, res->pn, key) :
+		rte_pmd_ixgbe_macsec_select_rxsa(res->port_id,
+			res->idx, res->an, res->pn, key);
+
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid idx %d or an %d\n", res->idx, res->an);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", res->port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+struct cmd_vf_tc_bw_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t tc;
+	cmdline_fixed_string_t tx;
+	cmdline_fixed_string_t min_bw;
+	portid_t port_id;
+	cmdline_fixed_string_t bw_list;
+};
+
+static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 tc, "tc");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 tx, "tx");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 min_bw, "min-bandwidth");
+static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 bw_list, NULL);
+
+static cmdline_parse_inst_t cmd_set_macsec_sa = {
+	.f = cmd_set_macsec_sa_parsed,
+	.data = NULL,
+	.help_str = "set macsec sa tx|rx <port_id> <idx> <an> <pn> <key>",
+	.tokens = {
+		(void *)&cmd_macsec_sa_set,
+		(void *)&cmd_macsec_sa_macsec,
+		(void *)&cmd_macsec_sa_sa,
+		(void *)&cmd_macsec_sa_tx_rx,
+		(void *)&cmd_macsec_sa_port_id,
+		(void *)&cmd_macsec_sa_idx,
+		(void *)&cmd_macsec_sa_an,
+		(void *)&cmd_macsec_sa_pn,
+		(void *)&cmd_macsec_sa_key,
+		NULL,
+	},
+};
+
+static void
+cmd_tc_min_bw_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	struct rte_port *port;
+	uint8_t tc_num;
+	uint8_t bw[16];
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	port = &ports[res->port_id];
+	/** Check if the port is not started **/
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr, "Please stop port %d first\n", res->port_id);
+		return;
+	}
+
+	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
+	if (ret)
+		return;
+
+	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
+
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid bandwidth\n");
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_tc_min_bw = {
+	.f = cmd_tc_min_bw_parsed,
+	.data = NULL,
+	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_tc,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_min_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_bw_list,
+		NULL,
+	},
+};
+
+static struct testpmd_cmdline_parser driver_parser = {
+	.ctx = (cmdline_parse_ctx_t[]) {
+		(cmdline_parse_inst_t *)&cmd_config_bypass,
+		(cmdline_parse_inst_t *)&cmd_set_bypass_mode,
+		(cmdline_parse_inst_t *)&cmd_set_bypass_event,
+		(cmdline_parse_inst_t *)&cmd_set_bypass_timeout,
+		(cmdline_parse_inst_t *)&cmd_show_bypass_config,
+		(cmdline_parse_inst_t *)&cmd_set_vf_split_drop_en,
+		(cmdline_parse_inst_t *)&cmd_set_macsec_offload_on,
+		(cmdline_parse_inst_t *)&cmd_set_macsec_offload_off,
+		(cmdline_parse_inst_t *)&cmd_set_macsec_sc,
+		(cmdline_parse_inst_t *)&cmd_set_macsec_sa,
+		(cmdline_parse_inst_t *)&cmd_tc_min_bw,
+		NULL
+	},
+	.help = {
+		"port config bypass (port_id) (on|off)\n",
+		"   Enable/disable bypass before starting the port\n",
+
+		"set bypass mode (normal|bypass|isolate) (port_id)\n"
+		"   Set the bypass mode for the lowest port on bypass enabled"
+		" NIC.\n",
+
+		"set bypass event (timeout|os_on|os_off|power_on|power_off) "
+		"mode (normal|bypass|isolate) (port_id)\n"
+		"   Set the event required to initiate specified bypass mode for"
+		" the lowest port on a bypass enabled NIC where:\n"
+		"       timeout   = enable bypass after watchdog timeout.\n"
+		"       os_on     = enable bypass when OS/board is powered on.\n"
+		"       os_off    = enable bypass when OS/board is powered off.\n"
+		"       power_on  = enable bypass when power supply is turned on.\n"
+		"       power_off = enable bypass when power supply is turned off."
+		"\n",
+
+		"set bypass timeout (0|1.5|2|3|4|8|16|32)\n"
+		"   Set the bypass watchdog timeout to 'n' seconds"
+		" where 0 = instant.\n",
+
+		"show bypass config (port_id)\n"
+		"   Show the bypass configuration for a bypass enabled NIC"
+		" using the lowest port on the NIC.\n",
+
+		"set vf split drop (port_id) (vf_id) (on|off)\n"
+		"    Set split drop enable bit for a VF from the PF.\n",
+
+		"set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)\n"
+		"    Enable MACsec offload.\n",
+
+		"set macsec offload (port_id) off\n"
+		"    Disable MACsec offload.\n",
+
+		"set macsec sc (tx|rx) (port_id) (mac) (pi)\n"
+		"    Configure MACsec secure connection (SC).\n",
+
+		"set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)\n"
+		"    Configure MACsec secure association (SA).\n",
+
+		"set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\n"
+		"    Set all TCs' min bandwidth(%%) for all PF and VFs.\n",
+
+		NULL
+	},
+};
+
+RTE_INIT(ixgbe_testpmd)
+{
+	testpmd_add_commands(&driver_parser);
+}
diff --git a/drivers/net/ixgbe/meson.build b/drivers/net/ixgbe/meson.build
index 162f8d5f46..a18908ef7c 100644
--- a/drivers/net/ixgbe/meson.build
+++ b/drivers/net/ixgbe/meson.build
@@ -20,6 +20,8 @@ sources = files(
         'rte_pmd_ixgbe.c',
 )
 
+testpmd_sources = files('ixgbe_testpmd.c')
+
 deps += ['hash', 'security']
 
 if arch_subdir == 'x86'
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* Re: [RFC PATCH 2/4] net/bonding: move testpmd commands
  2022-05-13  7:57 ` [RFC PATCH 2/4] net/bonding: move testpmd commands David Marchand
@ 2022-05-13 10:09   ` Min Hu (Connor)
  2022-05-18 17:24     ` David Marchand
  0 siblings, 1 reply; 65+ messages in thread
From: Min Hu (Connor) @ 2022-05-13 10:09 UTC (permalink / raw)
  To: David Marchand, dev
  Cc: thomas, Xiaoyun Li, Aman Singh, Yuying Zhang, Chas Williams

Hi, David,

  I think net/bonding offer 'API' for APP to use the bonding.
    and use the specific PMD as slave device.
  The software framwork is like:
   APP
   ethdev
   bonding PMD
   PMD
   hardware

so, I think cmdlines for testpmd should not put in net/bonding.
  Thanks.

在 2022/5/13 15:57, David Marchand 写道:
> Move related specific testpmd commands into this driver directory.
> While at it, fix checkpatch warnings.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
>   app/test-pmd/cmdline.c                     | 1035 -------------------
>   app/test-pmd/meson.build                   |    3 -
>   drivers/net/bonding/meson.build            |    1 +
>   drivers/net/bonding/rte_eth_bond_testpmd.c | 1037 ++++++++++++++++++++
>   4 files changed, 1038 insertions(+), 1038 deletions(-)
>   create mode 100644 drivers/net/bonding/rte_eth_bond_testpmd.c
> 
> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
> index ed62027834..ae4759fbfe 100644
> --- a/app/test-pmd/cmdline.c
> +++ b/app/test-pmd/cmdline.c
> @@ -47,10 +47,6 @@
>   #include <cmdline_parse_etheraddr.h>
>   #include <cmdline_socket.h>
>   #include <cmdline.h>
> -#ifdef RTE_NET_BOND
> -#include <rte_eth_bond.h>
> -#include <rte_eth_bond_8023ad.h>
> -#endif
>   #if defined RTE_BUS_DPAA && defined RTE_NET_DPAA
>   #include <rte_pmd_dpaa.h>
>   #endif
> @@ -614,44 +610,6 @@ static void cmd_help_long_parsed(void *parsed_result,
>   			"   Show the bypass configuration for a bypass enabled NIC"
>   			" using the lowest port on the NIC.\n\n"
>   
> -#ifdef RTE_NET_BOND
> -			"create bonded device (mode) (socket)\n"
> -			"	Create a new bonded device with specific bonding mode and socket.\n\n"
> -
> -			"add bonding slave (slave_id) (port_id)\n"
> -			"	Add a slave device to a bonded device.\n\n"
> -
> -			"remove bonding slave (slave_id) (port_id)\n"
> -			"	Remove a slave device from a bonded device.\n\n"
> -
> -			"set bonding mode (value) (port_id)\n"
> -			"	Set the bonding mode on a bonded device.\n\n"
> -
> -			"set bonding primary (slave_id) (port_id)\n"
> -			"	Set the primary slave for a bonded device.\n\n"
> -
> -			"show bonding config (port_id)\n"
> -			"	Show the bonding config for port_id.\n\n"
> -
> -			"show bonding lacp info (port_id)\n"
> -			"	Show the bonding lacp information for port_id.\n\n"
> -
> -			"set bonding mac_addr (port_id) (address)\n"
> -			"	Set the MAC address of a bonded device.\n\n"
> -
> -			"set bonding mode IEEE802.3AD aggregator policy (port_id) (agg_name)"
> -			"	Set Aggregation mode for IEEE802.3AD (mode 4)"
> -
> -			"set bonding balance_xmit_policy (port_id) (l2|l23|l34)\n"
> -			"	Set the transmit balance policy for bonded device running in balance mode.\n\n"
> -
> -			"set bonding mon_period (port_id) (value)\n"
> -			"	Set the bonding link status monitoring polling period in ms.\n\n"
> -
> -			"set bonding lacp dedicated_queues <port_id> (enable|disable)\n"
> -			"	Enable/disable dedicated queues for LACP control traffic.\n\n"
> -
> -#endif
>   			"set link-up port (port_id)\n"
>   			"	Set link up for a port.\n\n"
>   
> @@ -5925,985 +5883,6 @@ cmdline_parse_inst_t cmd_show_bypass_config = {
>   	},
>   };
>   
> -#ifdef RTE_NET_BOND
> -/* *** SET BONDING MODE *** */
> -struct cmd_set_bonding_mode_result {
> -	cmdline_fixed_string_t set;
> -	cmdline_fixed_string_t bonding;
> -	cmdline_fixed_string_t mode;
> -	uint8_t value;
> -	portid_t port_id;
> -};
> -
> -static void cmd_set_bonding_mode_parsed(void *parsed_result,
> -		__rte_unused  struct cmdline *cl,
> -		__rte_unused void *data)
> -{
> -	struct cmd_set_bonding_mode_result *res = parsed_result;
> -	portid_t port_id = res->port_id;
> -	struct rte_port *port = &ports[port_id];
> -
> -	/*
> -	 * Bonding mode changed means resources of device changed, like whether
> -	 * started rte timer or not. Device should be restarted when resources
> -	 * of device changed.
> -	 */
> -	if (port->port_status != RTE_PORT_STOPPED) {
> -		fprintf(stderr,
> -			"\t Error: Can't set bonding mode when port %d is not stopped\n",
> -			port_id);
> -		return;
> -	}
> -
> -	/* Set the bonding mode for the relevant port. */
> -	if (0 != rte_eth_bond_mode_set(port_id, res->value))
> -		fprintf(stderr, "\t Failed to set bonding mode for port = %d.\n",
> -			port_id);
> -}
> -
> -cmdline_parse_token_string_t cmd_setbonding_mode_set =
> -TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
> -		set, "set");
> -cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
> -TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
> -		bonding, "bonding");
> -cmdline_parse_token_string_t cmd_setbonding_mode_mode =
> -TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
> -		mode, "mode");
> -cmdline_parse_token_num_t cmd_setbonding_mode_value =
> -TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
> -		value, RTE_UINT8);
> -cmdline_parse_token_num_t cmd_setbonding_mode_port =
> -TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
> -		port_id, RTE_UINT16);
> -
> -cmdline_parse_inst_t cmd_set_bonding_mode = {
> -		.f = cmd_set_bonding_mode_parsed,
> -		.help_str = "set bonding mode <mode_value> <port_id>: "
> -			"Set the bonding mode for port_id",
> -		.data = NULL,
> -		.tokens = {
> -				(void *) &cmd_setbonding_mode_set,
> -				(void *) &cmd_setbonding_mode_bonding,
> -				(void *) &cmd_setbonding_mode_mode,
> -				(void *) &cmd_setbonding_mode_value,
> -				(void *) &cmd_setbonding_mode_port,
> -				NULL
> -		}
> -};
> -
> -/* *** SET BONDING SLOW_QUEUE SW/HW *** */
> -struct cmd_set_bonding_lacp_dedicated_queues_result {
> -	cmdline_fixed_string_t set;
> -	cmdline_fixed_string_t bonding;
> -	cmdline_fixed_string_t lacp;
> -	cmdline_fixed_string_t dedicated_queues;
> -	portid_t port_id;
> -	cmdline_fixed_string_t mode;
> -};
> -
> -static void cmd_set_bonding_lacp_dedicated_queues_parsed(void *parsed_result,
> -		__rte_unused  struct cmdline *cl,
> -		__rte_unused void *data)
> -{
> -	struct cmd_set_bonding_lacp_dedicated_queues_result *res = parsed_result;
> -	portid_t port_id = res->port_id;
> -	struct rte_port *port;
> -
> -	port = &ports[port_id];
> -
> -	/** Check if the port is not started **/
> -	if (port->port_status != RTE_PORT_STOPPED) {
> -		fprintf(stderr, "Please stop port %d first\n", port_id);
> -		return;
> -	}
> -
> -	if (!strcmp(res->mode, "enable")) {
> -		if (rte_eth_bond_8023ad_dedicated_queues_enable(port_id) == 0)
> -			printf("Dedicate queues for LACP control packets"
> -					" enabled\n");
> -		else
> -			printf("Enabling dedicate queues for LACP control "
> -					"packets on port %d failed\n", port_id);
> -	} else if (!strcmp(res->mode, "disable")) {
> -		if (rte_eth_bond_8023ad_dedicated_queues_disable(port_id) == 0)
> -			printf("Dedicated queues for LACP control packets "
> -					"disabled\n");
> -		else
> -			printf("Disabling dedicated queues for LACP control "
> -					"traffic on port %d failed\n", port_id);
> -	}
> -}
> -
> -cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
> -TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
> -		set, "set");
> -cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
> -TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
> -		bonding, "bonding");
> -cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
> -TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
> -		lacp, "lacp");
> -cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
> -TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
> -		dedicated_queues, "dedicated_queues");
> -cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
> -TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
> -		port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
> -TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
> -		mode, "enable#disable");
> -
> -cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
> -		.f = cmd_set_bonding_lacp_dedicated_queues_parsed,
> -		.help_str = "set bonding lacp dedicated_queues <port_id> "
> -			"enable|disable: "
> -			"Enable/disable dedicated queues for LACP control traffic for port_id",
> -		.data = NULL,
> -		.tokens = {
> -			(void *)&cmd_setbonding_lacp_dedicated_queues_set,
> -			(void *)&cmd_setbonding_lacp_dedicated_queues_bonding,
> -			(void *)&cmd_setbonding_lacp_dedicated_queues_lacp,
> -			(void *)&cmd_setbonding_lacp_dedicated_queues_dedicated_queues,
> -			(void *)&cmd_setbonding_lacp_dedicated_queues_port_id,
> -			(void *)&cmd_setbonding_lacp_dedicated_queues_mode,
> -			NULL
> -		}
> -};
> -
> -/* *** SET BALANCE XMIT POLICY *** */
> -struct cmd_set_bonding_balance_xmit_policy_result {
> -	cmdline_fixed_string_t set;
> -	cmdline_fixed_string_t bonding;
> -	cmdline_fixed_string_t balance_xmit_policy;
> -	portid_t port_id;
> -	cmdline_fixed_string_t policy;
> -};
> -
> -static void cmd_set_bonding_balance_xmit_policy_parsed(void *parsed_result,
> -		__rte_unused  struct cmdline *cl,
> -		__rte_unused void *data)
> -{
> -	struct cmd_set_bonding_balance_xmit_policy_result *res = parsed_result;
> -	portid_t port_id = res->port_id;
> -	uint8_t policy;
> -
> -	if (!strcmp(res->policy, "l2")) {
> -		policy = BALANCE_XMIT_POLICY_LAYER2;
> -	} else if (!strcmp(res->policy, "l23")) {
> -		policy = BALANCE_XMIT_POLICY_LAYER23;
> -	} else if (!strcmp(res->policy, "l34")) {
> -		policy = BALANCE_XMIT_POLICY_LAYER34;
> -	} else {
> -		fprintf(stderr, "\t Invalid xmit policy selection");
> -		return;
> -	}
> -
> -	/* Set the bonding mode for the relevant port. */
> -	if (0 != rte_eth_bond_xmit_policy_set(port_id, policy)) {
> -		fprintf(stderr,
> -			"\t Failed to set bonding balance xmit policy for port = %d.\n",
> -			port_id);
> -	}
> -}
> -
> -cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
> -TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
> -		set, "set");
> -cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
> -TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
> -		bonding, "bonding");
> -cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
> -TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
> -		balance_xmit_policy, "balance_xmit_policy");
> -cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
> -TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
> -		port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
> -TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
> -		policy, "l2#l23#l34");
> -
> -cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
> -		.f = cmd_set_bonding_balance_xmit_policy_parsed,
> -		.help_str = "set bonding balance_xmit_policy <port_id> "
> -			"l2|l23|l34: "
> -			"Set the bonding balance_xmit_policy for port_id",
> -		.data = NULL,
> -		.tokens = {
> -				(void *)&cmd_setbonding_balance_xmit_policy_set,
> -				(void *)&cmd_setbonding_balance_xmit_policy_bonding,
> -				(void *)&cmd_setbonding_balance_xmit_policy_balance_xmit_policy,
> -				(void *)&cmd_setbonding_balance_xmit_policy_port,
> -				(void *)&cmd_setbonding_balance_xmit_policy_policy,
> -				NULL
> -		}
> -};
> -
> -/* *** SHOW IEEE802.3 BONDING INFORMATION *** */
> -struct cmd_show_bonding_lacp_info_result {
> -	cmdline_fixed_string_t show;
> -	cmdline_fixed_string_t bonding;
> -	cmdline_fixed_string_t lacp;
> -	cmdline_fixed_string_t info;
> -	portid_t port_id;
> -};
> -
> -static void port_param_show(struct port_params *params)
> -{
> -	char buf[RTE_ETHER_ADDR_FMT_SIZE];
> -
> -	printf("\t\tsystem priority: %u\n", params->system_priority);
> -	rte_ether_format_addr(buf, RTE_ETHER_ADDR_FMT_SIZE, &params->system);
> -	printf("\t\tsystem mac address: %s\n", buf);
> -	printf("\t\tport key: %u\n", params->key);
> -	printf("\t\tport priority: %u\n", params->port_priority);
> -	printf("\t\tport number: %u\n", params->port_number);
> -}
> -
> -static void lacp_slave_info_show(struct rte_eth_bond_8023ad_slave_info *info)
> -{
> -	char a_state[256] = { 0 };
> -	char p_state[256] = { 0 };
> -	int a_len = 0;
> -	int p_len = 0;
> -	uint32_t i;
> -
> -	static const char * const state[] = {
> -		"ACTIVE",
> -		"TIMEOUT",
> -		"AGGREGATION",
> -		"SYNCHRONIZATION",
> -		"COLLECTING",
> -		"DISTRIBUTING",
> -		"DEFAULTED",
> -		"EXPIRED"
> -	};
> -	static const char * const selection[] = {
> -		"UNSELECTED",
> -		"STANDBY",
> -		"SELECTED"
> -	};
> -
> -	for (i = 0; i < RTE_DIM(state); i++) {
> -		if ((info->actor_state >> i) & 1)
> -			a_len += snprintf(&a_state[a_len],
> -						RTE_DIM(a_state) - a_len, "%s ",
> -						state[i]);
> -
> -		if ((info->partner_state >> i) & 1)
> -			p_len += snprintf(&p_state[p_len],
> -						RTE_DIM(p_state) - p_len, "%s ",
> -						state[i]);
> -	}
> -	printf("\tAggregator port id: %u\n", info->agg_port_id);
> -	printf("\tselection: %s\n", selection[info->selected]);
> -	printf("\tActor detail info:\n");
> -	port_param_show(&info->actor);
> -	printf("\t\tport state: %s\n", a_state);
> -	printf("\tPartner detail info:\n");
> -	port_param_show(&info->partner);
> -	printf("\t\tport state: %s\n", p_state);
> -	printf("\n");
> -}
> -
> -static void lacp_conf_show(struct rte_eth_bond_8023ad_conf *conf)
> -{
> -	printf("\tfast period: %u ms\n", conf->fast_periodic_ms);
> -	printf("\tslow period: %u ms\n", conf->slow_periodic_ms);
> -	printf("\tshort timeout: %u ms\n", conf->short_timeout_ms);
> -	printf("\tlong timeout: %u ms\n", conf->long_timeout_ms);
> -	printf("\taggregate wait timeout: %u ms\n",
> -			conf->aggregate_wait_timeout_ms);
> -	printf("\ttx period: %u ms\n", conf->tx_period_ms);
> -	printf("\trx marker period: %u ms\n", conf->rx_marker_period_ms);
> -	printf("\tupdate timeout: %u ms\n", conf->update_timeout_ms);
> -	switch (conf->agg_selection) {
> -	case AGG_BANDWIDTH:
> -		printf("\taggregation mode: bandwidth\n");
> -		break;
> -	case AGG_STABLE:
> -		printf("\taggregation mode: stable\n");
> -		break;
> -	case AGG_COUNT:
> -		printf("\taggregation mode: count\n");
> -		break;
> -	default:
> -		printf("\taggregation mode: invalid\n");
> -		break;
> -	}
> -
> -	printf("\n");
> -}
> -
> -static void cmd_show_bonding_lacp_info_parsed(void *parsed_result,
> -		__rte_unused  struct cmdline *cl,
> -		__rte_unused void *data)
> -{
> -	struct cmd_show_bonding_lacp_info_result *res = parsed_result;
> -	struct rte_eth_bond_8023ad_slave_info slave_info;
> -	struct rte_eth_bond_8023ad_conf port_conf;
> -	portid_t slaves[RTE_MAX_ETHPORTS];
> -	portid_t port_id = res->port_id;
> -	int num_active_slaves;
> -	int bonding_mode;
> -	int i;
> -	int ret;
> -
> -	bonding_mode = rte_eth_bond_mode_get(port_id);
> -	if (bonding_mode != BONDING_MODE_8023AD) {
> -		fprintf(stderr, "\tBonding mode is not mode 4\n");
> -		return;
> -	}
> -
> -	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
> -			RTE_MAX_ETHPORTS);
> -	if (num_active_slaves < 0) {
> -		fprintf(stderr, "\tFailed to get active slave list for port = %u\n",
> -				port_id);
> -		return;
> -	}
> -	if (num_active_slaves == 0)
> -		fprintf(stderr, "\tIEEE802.3 port %u has no active slave\n",
> -			port_id);
> -
> -	printf("\tIEEE802.3 port: %u\n", port_id);
> -	ret = rte_eth_bond_8023ad_conf_get(port_id, &port_conf);
> -	if (ret) {
> -		fprintf(stderr, "\tGet bonded device %u info failed\n",
> -			port_id);
> -		return;
> -	}
> -	lacp_conf_show(&port_conf);
> -
> -	for (i = 0; i < num_active_slaves; i++) {
> -		ret = rte_eth_bond_8023ad_slave_info(port_id, slaves[i],
> -				&slave_info);
> -		if (ret) {
> -			fprintf(stderr, "\tGet slave device %u info failed\n",
> -				slaves[i]);
> -			return;
> -		}
> -		printf("\tSlave Port: %u\n", slaves[i]);
> -		lacp_slave_info_show(&slave_info);
> -	}
> -}
> -
> -cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
> -TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
> -		show, "show");
> -cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
> -TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
> -		bonding, "bonding");
> -cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
> -TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
> -		bonding, "lacp");
> -cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
> -TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
> -		info, "info");
> -cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
> -TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
> -		port_id, RTE_UINT16);
> -
> -cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
> -		.f = cmd_show_bonding_lacp_info_parsed,
> -		.help_str = "show bonding lacp info <port_id> : "
> -			"Show bonding IEEE802.3 information for port_id",
> -		.data = NULL,
> -		.tokens = {
> -			(void *)&cmd_show_bonding_lacp_info_show,
> -			(void *)&cmd_show_bonding_lacp_info_bonding,
> -			(void *)&cmd_show_bonding_lacp_info_lacp,
> -			(void *)&cmd_show_bonding_lacp_info_info,
> -			(void *)&cmd_show_bonding_lacp_info_port_id,
> -			NULL
> -		}
> -};
> -
> -/* *** SHOW NIC BONDING CONFIGURATION *** */
> -struct cmd_show_bonding_config_result {
> -	cmdline_fixed_string_t show;
> -	cmdline_fixed_string_t bonding;
> -	cmdline_fixed_string_t config;
> -	portid_t port_id;
> -};
> -
> -static void cmd_show_bonding_config_parsed(void *parsed_result,
> -		__rte_unused  struct cmdline *cl,
> -		__rte_unused void *data)
> -{
> -	struct cmd_show_bonding_config_result *res = parsed_result;
> -	int bonding_mode, agg_mode;
> -	portid_t slaves[RTE_MAX_ETHPORTS];
> -	int num_slaves, num_active_slaves;
> -	int primary_id;
> -	int i;
> -	portid_t port_id = res->port_id;
> -
> -	/* Display the bonding mode.*/
> -	bonding_mode = rte_eth_bond_mode_get(port_id);
> -	if (bonding_mode < 0) {
> -		fprintf(stderr, "\tFailed to get bonding mode for port = %d\n",
> -			port_id);
> -		return;
> -	} else
> -		printf("\tBonding mode: %d\n", bonding_mode);
> -
> -	if (bonding_mode == BONDING_MODE_BALANCE ||
> -		bonding_mode == BONDING_MODE_8023AD) {
> -		int balance_xmit_policy;
> -
> -		balance_xmit_policy = rte_eth_bond_xmit_policy_get(port_id);
> -		if (balance_xmit_policy < 0) {
> -			fprintf(stderr,
> -				"\tFailed to get balance xmit policy for port = %d\n",
> -				port_id);
> -			return;
> -		} else {
> -			printf("\tBalance Xmit Policy: ");
> -
> -			switch (balance_xmit_policy) {
> -			case BALANCE_XMIT_POLICY_LAYER2:
> -				printf("BALANCE_XMIT_POLICY_LAYER2");
> -				break;
> -			case BALANCE_XMIT_POLICY_LAYER23:
> -				printf("BALANCE_XMIT_POLICY_LAYER23");
> -				break;
> -			case BALANCE_XMIT_POLICY_LAYER34:
> -				printf("BALANCE_XMIT_POLICY_LAYER34");
> -				break;
> -			}
> -			printf("\n");
> -		}
> -	}
> -
> -	if (bonding_mode == BONDING_MODE_8023AD) {
> -		agg_mode = rte_eth_bond_8023ad_agg_selection_get(port_id);
> -		printf("\tIEEE802.3AD Aggregator Mode: ");
> -		switch (agg_mode) {
> -		case AGG_BANDWIDTH:
> -			printf("bandwidth");
> -			break;
> -		case AGG_STABLE:
> -			printf("stable");
> -			break;
> -		case AGG_COUNT:
> -			printf("count");
> -			break;
> -		}
> -		printf("\n");
> -	}
> -
> -	num_slaves = rte_eth_bond_slaves_get(port_id, slaves, RTE_MAX_ETHPORTS);
> -
> -	if (num_slaves < 0) {
> -		fprintf(stderr, "\tFailed to get slave list for port = %d\n",
> -			port_id);
> -		return;
> -	}
> -	if (num_slaves > 0) {
> -		printf("\tSlaves (%d): [", num_slaves);
> -		for (i = 0; i < num_slaves - 1; i++)
> -			printf("%d ", slaves[i]);
> -
> -		printf("%d]\n", slaves[num_slaves - 1]);
> -	} else {
> -		printf("\tSlaves: []\n");
> -
> -	}
> -
> -	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
> -			RTE_MAX_ETHPORTS);
> -
> -	if (num_active_slaves < 0) {
> -		fprintf(stderr,
> -			"\tFailed to get active slave list for port = %d\n",
> -			port_id);
> -		return;
> -	}
> -	if (num_active_slaves > 0) {
> -		printf("\tActive Slaves (%d): [", num_active_slaves);
> -		for (i = 0; i < num_active_slaves - 1; i++)
> -			printf("%d ", slaves[i]);
> -
> -		printf("%d]\n", slaves[num_active_slaves - 1]);
> -
> -	} else {
> -		printf("\tActive Slaves: []\n");
> -
> -	}
> -
> -	primary_id = rte_eth_bond_primary_get(port_id);
> -	if (primary_id < 0) {
> -		fprintf(stderr, "\tFailed to get primary slave for port = %d\n",
> -			port_id);
> -		return;
> -	} else
> -		printf("\tPrimary: [%d]\n", primary_id);
> -
> -}
> -
> -cmdline_parse_token_string_t cmd_showbonding_config_show =
> -TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
> -		show, "show");
> -cmdline_parse_token_string_t cmd_showbonding_config_bonding =
> -TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
> -		bonding, "bonding");
> -cmdline_parse_token_string_t cmd_showbonding_config_config =
> -TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
> -		config, "config");
> -cmdline_parse_token_num_t cmd_showbonding_config_port =
> -TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_config_result,
> -		port_id, RTE_UINT16);
> -
> -cmdline_parse_inst_t cmd_show_bonding_config = {
> -		.f = cmd_show_bonding_config_parsed,
> -		.help_str = "show bonding config <port_id>: "
> -			"Show the bonding config for port_id",
> -		.data = NULL,
> -		.tokens = {
> -				(void *)&cmd_showbonding_config_show,
> -				(void *)&cmd_showbonding_config_bonding,
> -				(void *)&cmd_showbonding_config_config,
> -				(void *)&cmd_showbonding_config_port,
> -				NULL
> -		}
> -};
> -
> -/* *** SET BONDING PRIMARY *** */
> -struct cmd_set_bonding_primary_result {
> -	cmdline_fixed_string_t set;
> -	cmdline_fixed_string_t bonding;
> -	cmdline_fixed_string_t primary;
> -	portid_t slave_id;
> -	portid_t port_id;
> -};
> -
> -static void cmd_set_bonding_primary_parsed(void *parsed_result,
> -		__rte_unused  struct cmdline *cl,
> -		__rte_unused void *data)
> -{
> -	struct cmd_set_bonding_primary_result *res = parsed_result;
> -	portid_t master_port_id = res->port_id;
> -	portid_t slave_port_id = res->slave_id;
> -
> -	/* Set the primary slave for a bonded device. */
> -	if (0 != rte_eth_bond_primary_set(master_port_id, slave_port_id)) {
> -		fprintf(stderr, "\t Failed to set primary slave for port = %d.\n",
> -			master_port_id);
> -		return;
> -	}
> -	init_port_config();
> -}
> -
> -cmdline_parse_token_string_t cmd_setbonding_primary_set =
> -TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
> -		set, "set");
> -cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
> -TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
> -		bonding, "bonding");
> -cmdline_parse_token_string_t cmd_setbonding_primary_primary =
> -TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
> -		primary, "primary");
> -cmdline_parse_token_num_t cmd_setbonding_primary_slave =
> -TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
> -		slave_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_setbonding_primary_port =
> -TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
> -		port_id, RTE_UINT16);
> -
> -cmdline_parse_inst_t cmd_set_bonding_primary = {
> -		.f = cmd_set_bonding_primary_parsed,
> -		.help_str = "set bonding primary <slave_id> <port_id>: "
> -			"Set the primary slave for port_id",
> -		.data = NULL,
> -		.tokens = {
> -				(void *)&cmd_setbonding_primary_set,
> -				(void *)&cmd_setbonding_primary_bonding,
> -				(void *)&cmd_setbonding_primary_primary,
> -				(void *)&cmd_setbonding_primary_slave,
> -				(void *)&cmd_setbonding_primary_port,
> -				NULL
> -		}
> -};
> -
> -/* *** ADD SLAVE *** */
> -struct cmd_add_bonding_slave_result {
> -	cmdline_fixed_string_t add;
> -	cmdline_fixed_string_t bonding;
> -	cmdline_fixed_string_t slave;
> -	portid_t slave_id;
> -	portid_t port_id;
> -};
> -
> -static void cmd_add_bonding_slave_parsed(void *parsed_result,
> -		__rte_unused  struct cmdline *cl,
> -		__rte_unused void *data)
> -{
> -	struct cmd_add_bonding_slave_result *res = parsed_result;
> -	portid_t master_port_id = res->port_id;
> -	portid_t slave_port_id = res->slave_id;
> -
> -	/* add the slave for a bonded device. */
> -	if (0 != rte_eth_bond_slave_add(master_port_id, slave_port_id)) {
> -		fprintf(stderr,
> -			"\t Failed to add slave %d to master port = %d.\n",
> -			slave_port_id, master_port_id);
> -		return;
> -	}
> -	init_port_config();
> -	set_port_slave_flag(slave_port_id);
> -}
> -
> -cmdline_parse_token_string_t cmd_addbonding_slave_add =
> -TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
> -		add, "add");
> -cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
> -TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
> -		bonding, "bonding");
> -cmdline_parse_token_string_t cmd_addbonding_slave_slave =
> -TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
> -		slave, "slave");
> -cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
> -TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
> -		slave_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_addbonding_slave_port =
> -TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
> -		port_id, RTE_UINT16);
> -
> -cmdline_parse_inst_t cmd_add_bonding_slave = {
> -		.f = cmd_add_bonding_slave_parsed,
> -		.help_str = "add bonding slave <slave_id> <port_id>: "
> -			"Add a slave device to a bonded device",
> -		.data = NULL,
> -		.tokens = {
> -				(void *)&cmd_addbonding_slave_add,
> -				(void *)&cmd_addbonding_slave_bonding,
> -				(void *)&cmd_addbonding_slave_slave,
> -				(void *)&cmd_addbonding_slave_slaveid,
> -				(void *)&cmd_addbonding_slave_port,
> -				NULL
> -		}
> -};
> -
> -/* *** REMOVE SLAVE *** */
> -struct cmd_remove_bonding_slave_result {
> -	cmdline_fixed_string_t remove;
> -	cmdline_fixed_string_t bonding;
> -	cmdline_fixed_string_t slave;
> -	portid_t slave_id;
> -	portid_t port_id;
> -};
> -
> -static void cmd_remove_bonding_slave_parsed(void *parsed_result,
> -		__rte_unused  struct cmdline *cl,
> -		__rte_unused void *data)
> -{
> -	struct cmd_remove_bonding_slave_result *res = parsed_result;
> -	portid_t master_port_id = res->port_id;
> -	portid_t slave_port_id = res->slave_id;
> -
> -	/* remove the slave from a bonded device. */
> -	if (0 != rte_eth_bond_slave_remove(master_port_id, slave_port_id)) {
> -		fprintf(stderr,
> -			"\t Failed to remove slave %d from master port = %d.\n",
> -			slave_port_id, master_port_id);
> -		return;
> -	}
> -	init_port_config();
> -	clear_port_slave_flag(slave_port_id);
> -}
> -
> -cmdline_parse_token_string_t cmd_removebonding_slave_remove =
> -		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
> -				remove, "remove");
> -cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
> -		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
> -				bonding, "bonding");
> -cmdline_parse_token_string_t cmd_removebonding_slave_slave =
> -		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
> -				slave, "slave");
> -cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
> -		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
> -				slave_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_removebonding_slave_port =
> -		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
> -				port_id, RTE_UINT16);
> -
> -cmdline_parse_inst_t cmd_remove_bonding_slave = {
> -		.f = cmd_remove_bonding_slave_parsed,
> -		.help_str = "remove bonding slave <slave_id> <port_id>: "
> -			"Remove a slave device from a bonded device",
> -		.data = NULL,
> -		.tokens = {
> -				(void *)&cmd_removebonding_slave_remove,
> -				(void *)&cmd_removebonding_slave_bonding,
> -				(void *)&cmd_removebonding_slave_slave,
> -				(void *)&cmd_removebonding_slave_slaveid,
> -				(void *)&cmd_removebonding_slave_port,
> -				NULL
> -		}
> -};
> -
> -/* *** CREATE BONDED DEVICE *** */
> -struct cmd_create_bonded_device_result {
> -	cmdline_fixed_string_t create;
> -	cmdline_fixed_string_t bonded;
> -	cmdline_fixed_string_t device;
> -	uint8_t mode;
> -	uint8_t socket;
> -};
> -
> -static int bond_dev_num = 0;
> -
> -static void cmd_create_bonded_device_parsed(void *parsed_result,
> -		__rte_unused  struct cmdline *cl,
> -		__rte_unused void *data)
> -{
> -	struct cmd_create_bonded_device_result *res = parsed_result;
> -	char ethdev_name[RTE_ETH_NAME_MAX_LEN];
> -	int port_id;
> -	int ret;
> -
> -	if (test_done == 0) {
> -		fprintf(stderr, "Please stop forwarding first\n");
> -		return;
> -	}
> -
> -	snprintf(ethdev_name, RTE_ETH_NAME_MAX_LEN, "net_bonding_testpmd_%d",
> -			bond_dev_num++);
> -
> -	/* Create a new bonded device. */
> -	port_id = rte_eth_bond_create(ethdev_name, res->mode, res->socket);
> -	if (port_id < 0) {
> -		fprintf(stderr, "\t Failed to create bonded device.\n");
> -		return;
> -	} else {
> -		printf("Created new bonded device %s on (port %d).\n", ethdev_name,
> -				port_id);
> -
> -		/* Update number of ports */
> -		nb_ports = rte_eth_dev_count_avail();
> -		reconfig(port_id, res->socket);
> -		ret = rte_eth_promiscuous_enable(port_id);
> -		if (ret != 0)
> -			fprintf(stderr,
> -				"Failed to enable promiscuous mode for port %u: %s - ignore\n",
> -				port_id, rte_strerror(-ret));
> -
> -		ports[port_id].need_setup = 0;
> -		ports[port_id].port_status = RTE_PORT_STOPPED;
> -	}
> -
> -}
> -
> -cmdline_parse_token_string_t cmd_createbonded_device_create =
> -		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
> -				create, "create");
> -cmdline_parse_token_string_t cmd_createbonded_device_bonded =
> -		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
> -				bonded, "bonded");
> -cmdline_parse_token_string_t cmd_createbonded_device_device =
> -		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
> -				device, "device");
> -cmdline_parse_token_num_t cmd_createbonded_device_mode =
> -		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
> -				mode, RTE_UINT8);
> -cmdline_parse_token_num_t cmd_createbonded_device_socket =
> -		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
> -				socket, RTE_UINT8);
> -
> -cmdline_parse_inst_t cmd_create_bonded_device = {
> -		.f = cmd_create_bonded_device_parsed,
> -		.help_str = "create bonded device <mode> <socket>: "
> -			"Create a new bonded device with specific bonding mode and socket",
> -		.data = NULL,
> -		.tokens = {
> -				(void *)&cmd_createbonded_device_create,
> -				(void *)&cmd_createbonded_device_bonded,
> -				(void *)&cmd_createbonded_device_device,
> -				(void *)&cmd_createbonded_device_mode,
> -				(void *)&cmd_createbonded_device_socket,
> -				NULL
> -		}
> -};
> -
> -/* *** SET MAC ADDRESS IN BONDED DEVICE *** */
> -struct cmd_set_bond_mac_addr_result {
> -	cmdline_fixed_string_t set;
> -	cmdline_fixed_string_t bonding;
> -	cmdline_fixed_string_t mac_addr;
> -	uint16_t port_num;
> -	struct rte_ether_addr address;
> -};
> -
> -static void cmd_set_bond_mac_addr_parsed(void *parsed_result,
> -		__rte_unused  struct cmdline *cl,
> -		__rte_unused void *data)
> -{
> -	struct cmd_set_bond_mac_addr_result *res = parsed_result;
> -	int ret;
> -
> -	if (port_id_is_invalid(res->port_num, ENABLED_WARN))
> -		return;
> -
> -	ret = rte_eth_bond_mac_address_set(res->port_num, &res->address);
> -
> -	/* check the return value and print it if is < 0 */
> -	if (ret < 0)
> -		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
> -			strerror(-ret));
> -}
> -
> -cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
> -		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, set, "set");
> -cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
> -		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, bonding,
> -				"bonding");
> -cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
> -		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, mac_addr,
> -				"mac_addr");
> -cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
> -		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mac_addr_result,
> -				port_num, RTE_UINT16);
> -cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
> -		TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_bond_mac_addr_result, address);
> -
> -cmdline_parse_inst_t cmd_set_bond_mac_addr = {
> -		.f = cmd_set_bond_mac_addr_parsed,
> -		.data = (void *) 0,
> -		.help_str = "set bonding mac_addr <port_id> <mac_addr>",
> -		.tokens = {
> -				(void *)&cmd_set_bond_mac_addr_set,
> -				(void *)&cmd_set_bond_mac_addr_bonding,
> -				(void *)&cmd_set_bond_mac_addr_mac,
> -				(void *)&cmd_set_bond_mac_addr_portnum,
> -				(void *)&cmd_set_bond_mac_addr_addr,
> -				NULL
> -		}
> -};
> -
> -
> -/* *** SET LINK STATUS MONITORING POLLING PERIOD ON BONDED DEVICE *** */
> -struct cmd_set_bond_mon_period_result {
> -	cmdline_fixed_string_t set;
> -	cmdline_fixed_string_t bonding;
> -	cmdline_fixed_string_t mon_period;
> -	uint16_t port_num;
> -	uint32_t period_ms;
> -};
> -
> -static void cmd_set_bond_mon_period_parsed(void *parsed_result,
> -		__rte_unused  struct cmdline *cl,
> -		__rte_unused void *data)
> -{
> -	struct cmd_set_bond_mon_period_result *res = parsed_result;
> -	int ret;
> -
> -	ret = rte_eth_bond_link_monitoring_set(res->port_num, res->period_ms);
> -
> -	/* check the return value and print it if is < 0 */
> -	if (ret < 0)
> -		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
> -			strerror(-ret));
> -}
> -
> -cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
> -		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
> -				set, "set");
> -cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
> -		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
> -				bonding, "bonding");
> -cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
> -		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
> -				mon_period,	"mon_period");
> -cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
> -		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
> -				port_num, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
> -		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
> -				period_ms, RTE_UINT32);
> -
> -cmdline_parse_inst_t cmd_set_bond_mon_period = {
> -		.f = cmd_set_bond_mon_period_parsed,
> -		.data = (void *) 0,
> -		.help_str = "set bonding mon_period <port_id> <period_ms>",
> -		.tokens = {
> -				(void *)&cmd_set_bond_mon_period_set,
> -				(void *)&cmd_set_bond_mon_period_bonding,
> -				(void *)&cmd_set_bond_mon_period_mon_period,
> -				(void *)&cmd_set_bond_mon_period_portnum,
> -				(void *)&cmd_set_bond_mon_period_period_ms,
> -				NULL
> -		}
> -};
> -
> -
> -
> -struct cmd_set_bonding_agg_mode_policy_result {
> -	cmdline_fixed_string_t set;
> -	cmdline_fixed_string_t bonding;
> -	cmdline_fixed_string_t agg_mode;
> -	uint16_t port_num;
> -	cmdline_fixed_string_t policy;
> -};
> -
> -
> -static void
> -cmd_set_bonding_agg_mode(void *parsed_result,
> -		__rte_unused struct cmdline *cl,
> -		__rte_unused void *data)
> -{
> -	struct cmd_set_bonding_agg_mode_policy_result *res = parsed_result;
> -	uint8_t policy = AGG_BANDWIDTH;
> -
> -	if (!strcmp(res->policy, "bandwidth"))
> -		policy = AGG_BANDWIDTH;
> -	else if (!strcmp(res->policy, "stable"))
> -		policy = AGG_STABLE;
> -	else if (!strcmp(res->policy, "count"))
> -		policy = AGG_COUNT;
> -
> -	rte_eth_bond_8023ad_agg_selection_set(res->port_num, policy);
> -}
> -
> -
> -cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
> -	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
> -				set, "set");
> -cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
> -	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
> -				bonding, "bonding");
> -
> -cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
> -	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
> -				agg_mode, "agg_mode");
> -
> -cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
> -	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
> -				port_num, RTE_UINT16);
> -
> -cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
> -	TOKEN_STRING_INITIALIZER(
> -			struct cmd_set_bonding_balance_xmit_policy_result,
> -		policy, "stable#bandwidth#count");
> -
> -cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
> -	.f = cmd_set_bonding_agg_mode,
> -	.data = (void *) 0,
> -	.help_str = "set bonding mode IEEE802.3AD aggregator policy <port_id> <agg_name>",
> -	.tokens = {
> -			(void *)&cmd_set_bonding_agg_mode_set,
> -			(void *)&cmd_set_bonding_agg_mode_bonding,
> -			(void *)&cmd_set_bonding_agg_mode_agg_mode,
> -			(void *)&cmd_set_bonding_agg_mode_portnum,
> -			(void *)&cmd_set_bonding_agg_mode_policy_string,
> -			NULL
> -		}
> -};
> -
> -
> -#endif /* RTE_NET_BOND */
> -
>   /* *** SET FORWARDING MODE *** */
>   struct cmd_set_fwd_mode_result {
>   	cmdline_fixed_string_t set;
> @@ -17870,20 +16849,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
>   	(cmdline_parse_inst_t *)&cmd_set_bypass_event,
>   	(cmdline_parse_inst_t *)&cmd_set_bypass_timeout,
>   	(cmdline_parse_inst_t *)&cmd_show_bypass_config,
> -#ifdef RTE_NET_BOND
> -	(cmdline_parse_inst_t *) &cmd_set_bonding_mode,
> -	(cmdline_parse_inst_t *) &cmd_show_bonding_config,
> -	(cmdline_parse_inst_t *) &cmd_show_bonding_lacp_info,
> -	(cmdline_parse_inst_t *) &cmd_set_bonding_primary,
> -	(cmdline_parse_inst_t *) &cmd_add_bonding_slave,
> -	(cmdline_parse_inst_t *) &cmd_remove_bonding_slave,
> -	(cmdline_parse_inst_t *) &cmd_create_bonded_device,
> -	(cmdline_parse_inst_t *) &cmd_set_bond_mac_addr,
> -	(cmdline_parse_inst_t *) &cmd_set_balance_xmit_policy,
> -	(cmdline_parse_inst_t *) &cmd_set_bond_mon_period,
> -	(cmdline_parse_inst_t *) &cmd_set_lacp_dedicated_queues,
> -	(cmdline_parse_inst_t *) &cmd_set_bonding_agg_mode_policy,
> -#endif
>   	(cmdline_parse_inst_t *)&cmd_vlan_offload,
>   	(cmdline_parse_inst_t *)&cmd_vlan_tpid,
>   	(cmdline_parse_inst_t *)&cmd_rx_vlan_filter_all,
> diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
> index 46a7511e9a..07634332f3 100644
> --- a/app/test-pmd/meson.build
> +++ b/app/test-pmd/meson.build
> @@ -58,9 +58,6 @@ endif
>   if dpdk_conf.has('RTE_LIB_PDUMP')
>       deps += 'pdump'
>   endif
> -if dpdk_conf.has('RTE_NET_BOND')
> -    deps += 'net_bond'
> -endif
>   if dpdk_conf.has('RTE_NET_BNXT')
>       deps += 'net_bnxt'
>   endif
> diff --git a/drivers/net/bonding/meson.build b/drivers/net/bonding/meson.build
> index 402b44be1a..faea892295 100644
> --- a/drivers/net/bonding/meson.build
> +++ b/drivers/net/bonding/meson.build
> @@ -16,6 +16,7 @@ sources = files(
>           'rte_eth_bond_flow.c',
>           'rte_eth_bond_pmd.c',
>   )
> +testpmd_sources = files('rte_eth_bond_testpmd.c')
>   
>   deps += 'sched' # needed for rte_bitmap.h
>   deps += ['ip_frag']
> diff --git a/drivers/net/bonding/rte_eth_bond_testpmd.c b/drivers/net/bonding/rte_eth_bond_testpmd.c
> new file mode 100644
> index 0000000000..834e2da4e6
> --- /dev/null
> +++ b/drivers/net/bonding/rte_eth_bond_testpmd.c
> @@ -0,0 +1,1037 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2010-2016 Intel Corporation.
> + */
> +
> +#include <rte_eth_bond.h>
> +#include <rte_eth_bond_8023ad.h>
> +
> +#include <cmdline_parse.h>
> +#include <cmdline_parse_etheraddr.h>
> +#include <cmdline_parse_num.h>
> +#include <cmdline_parse_string.h>
> +
> +#include "testpmd.h"
> +
> +/* *** SET BONDING MODE *** */
> +struct cmd_set_bonding_mode_result {
> +	cmdline_fixed_string_t set;
> +	cmdline_fixed_string_t bonding;
> +	cmdline_fixed_string_t mode;
> +	uint8_t value;
> +	portid_t port_id;
> +};
> +
> +static void cmd_set_bonding_mode_parsed(void *parsed_result,
> +		__rte_unused  struct cmdline *cl,
> +		__rte_unused void *data)
> +{
> +	struct cmd_set_bonding_mode_result *res = parsed_result;
> +	portid_t port_id = res->port_id;
> +	struct rte_port *port = &ports[port_id];
> +
> +	/*
> +	 * Bonding mode changed means resources of device changed, like whether
> +	 * started rte timer or not. Device should be restarted when resources
> +	 * of device changed.
> +	 */
> +	if (port->port_status != RTE_PORT_STOPPED) {
> +		fprintf(stderr,
> +			"\t Error: Can't set bonding mode when port %d is not stopped\n",
> +			port_id);
> +		return;
> +	}
> +
> +	/* Set the bonding mode for the relevant port. */
> +	if (rte_eth_bond_mode_set(port_id, res->value) != 0)
> +		fprintf(stderr, "\t Failed to set bonding mode for port = %d.\n",
> +			port_id);
> +}
> +
> +cmdline_parse_token_string_t cmd_setbonding_mode_set =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
> +		set, "set");
> +cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
> +		bonding, "bonding");
> +cmdline_parse_token_string_t cmd_setbonding_mode_mode =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
> +		mode, "mode");
> +cmdline_parse_token_num_t cmd_setbonding_mode_value =
> +TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
> +		value, RTE_UINT8);
> +cmdline_parse_token_num_t cmd_setbonding_mode_port =
> +TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
> +		port_id, RTE_UINT16);
> +
> +cmdline_parse_inst_t cmd_set_bonding_mode = {
> +		.f = cmd_set_bonding_mode_parsed,
> +		.help_str = "set bonding mode <mode_value> <port_id>: "
> +			"Set the bonding mode for port_id",
> +		.data = NULL,
> +		.tokens = {
> +				(void *)&cmd_setbonding_mode_set,
> +				(void *)&cmd_setbonding_mode_bonding,
> +				(void *)&cmd_setbonding_mode_mode,
> +				(void *)&cmd_setbonding_mode_value,
> +				(void *)&cmd_setbonding_mode_port,
> +				NULL
> +		}
> +};
> +
> +/* *** SET BONDING SLOW_QUEUE SW/HW *** */
> +struct cmd_set_bonding_lacp_dedicated_queues_result {
> +	cmdline_fixed_string_t set;
> +	cmdline_fixed_string_t bonding;
> +	cmdline_fixed_string_t lacp;
> +	cmdline_fixed_string_t dedicated_queues;
> +	portid_t port_id;
> +	cmdline_fixed_string_t mode;
> +};
> +
> +static void cmd_set_bonding_lacp_dedicated_queues_parsed(void *parsed_result,
> +		__rte_unused  struct cmdline *cl,
> +		__rte_unused void *data)
> +{
> +	struct cmd_set_bonding_lacp_dedicated_queues_result *res = parsed_result;
> +	portid_t port_id = res->port_id;
> +	struct rte_port *port;
> +
> +	port = &ports[port_id];
> +
> +	/** Check if the port is not started **/
> +	if (port->port_status != RTE_PORT_STOPPED) {
> +		fprintf(stderr, "Please stop port %d first\n", port_id);
> +		return;
> +	}
> +
> +	if (!strcmp(res->mode, "enable")) {
> +		if (rte_eth_bond_8023ad_dedicated_queues_enable(port_id) == 0)
> +			printf("Dedicate queues for LACP control packets"
> +					" enabled\n");
> +		else
> +			printf("Enabling dedicate queues for LACP control "
> +					"packets on port %d failed\n", port_id);
> +	} else if (!strcmp(res->mode, "disable")) {
> +		if (rte_eth_bond_8023ad_dedicated_queues_disable(port_id) == 0)
> +			printf("Dedicated queues for LACP control packets "
> +					"disabled\n");
> +		else
> +			printf("Disabling dedicated queues for LACP control "
> +					"traffic on port %d failed\n", port_id);
> +	}
> +}
> +
> +cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
> +		set, "set");
> +cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
> +		bonding, "bonding");
> +cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
> +		lacp, "lacp");
> +cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
> +		dedicated_queues, "dedicated_queues");
> +cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
> +TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
> +		port_id, RTE_UINT16);
> +cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
> +		mode, "enable#disable");
> +
> +cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
> +		.f = cmd_set_bonding_lacp_dedicated_queues_parsed,
> +		.help_str = "set bonding lacp dedicated_queues <port_id> "
> +			"enable|disable: "
> +			"Enable/disable dedicated queues for LACP control traffic for port_id",
> +		.data = NULL,
> +		.tokens = {
> +			(void *)&cmd_setbonding_lacp_dedicated_queues_set,
> +			(void *)&cmd_setbonding_lacp_dedicated_queues_bonding,
> +			(void *)&cmd_setbonding_lacp_dedicated_queues_lacp,
> +			(void *)&cmd_setbonding_lacp_dedicated_queues_dedicated_queues,
> +			(void *)&cmd_setbonding_lacp_dedicated_queues_port_id,
> +			(void *)&cmd_setbonding_lacp_dedicated_queues_mode,
> +			NULL
> +		}
> +};
> +
> +/* *** SET BALANCE XMIT POLICY *** */
> +struct cmd_set_bonding_balance_xmit_policy_result {
> +	cmdline_fixed_string_t set;
> +	cmdline_fixed_string_t bonding;
> +	cmdline_fixed_string_t balance_xmit_policy;
> +	portid_t port_id;
> +	cmdline_fixed_string_t policy;
> +};
> +
> +static void cmd_set_bonding_balance_xmit_policy_parsed(void *parsed_result,
> +		__rte_unused  struct cmdline *cl,
> +		__rte_unused void *data)
> +{
> +	struct cmd_set_bonding_balance_xmit_policy_result *res = parsed_result;
> +	portid_t port_id = res->port_id;
> +	uint8_t policy;
> +
> +	if (!strcmp(res->policy, "l2")) {
> +		policy = BALANCE_XMIT_POLICY_LAYER2;
> +	} else if (!strcmp(res->policy, "l23")) {
> +		policy = BALANCE_XMIT_POLICY_LAYER23;
> +	} else if (!strcmp(res->policy, "l34")) {
> +		policy = BALANCE_XMIT_POLICY_LAYER34;
> +	} else {
> +		fprintf(stderr, "\t Invalid xmit policy selection");
> +		return;
> +	}
> +
> +	/* Set the bonding mode for the relevant port. */
> +	if (rte_eth_bond_xmit_policy_set(port_id, policy) != 0) {
> +		fprintf(stderr,
> +			"\t Failed to set bonding balance xmit policy for port = %d.\n",
> +			port_id);
> +	}
> +}
> +
> +cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
> +		set, "set");
> +cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
> +		bonding, "bonding");
> +cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
> +		balance_xmit_policy, "balance_xmit_policy");
> +cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
> +TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
> +		port_id, RTE_UINT16);
> +cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
> +		policy, "l2#l23#l34");
> +
> +cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
> +		.f = cmd_set_bonding_balance_xmit_policy_parsed,
> +		.help_str = "set bonding balance_xmit_policy <port_id> "
> +			"l2|l23|l34: "
> +			"Set the bonding balance_xmit_policy for port_id",
> +		.data = NULL,
> +		.tokens = {
> +				(void *)&cmd_setbonding_balance_xmit_policy_set,
> +				(void *)&cmd_setbonding_balance_xmit_policy_bonding,
> +				(void *)&cmd_setbonding_balance_xmit_policy_balance_xmit_policy,
> +				(void *)&cmd_setbonding_balance_xmit_policy_port,
> +				(void *)&cmd_setbonding_balance_xmit_policy_policy,
> +				NULL
> +		}
> +};
> +
> +/* *** SHOW IEEE802.3 BONDING INFORMATION *** */
> +struct cmd_show_bonding_lacp_info_result {
> +	cmdline_fixed_string_t show;
> +	cmdline_fixed_string_t bonding;
> +	cmdline_fixed_string_t lacp;
> +	cmdline_fixed_string_t info;
> +	portid_t port_id;
> +};
> +
> +static void port_param_show(struct port_params *params)
> +{
> +	char buf[RTE_ETHER_ADDR_FMT_SIZE];
> +
> +	printf("\t\tsystem priority: %u\n", params->system_priority);
> +	rte_ether_format_addr(buf, RTE_ETHER_ADDR_FMT_SIZE, &params->system);
> +	printf("\t\tsystem mac address: %s\n", buf);
> +	printf("\t\tport key: %u\n", params->key);
> +	printf("\t\tport priority: %u\n", params->port_priority);
> +	printf("\t\tport number: %u\n", params->port_number);
> +}
> +
> +static void lacp_slave_info_show(struct rte_eth_bond_8023ad_slave_info *info)
> +{
> +	char a_state[256] = { 0 };
> +	char p_state[256] = { 0 };
> +	int a_len = 0;
> +	int p_len = 0;
> +	uint32_t i;
> +
> +	static const char * const state[] = {
> +		"ACTIVE",
> +		"TIMEOUT",
> +		"AGGREGATION",
> +		"SYNCHRONIZATION",
> +		"COLLECTING",
> +		"DISTRIBUTING",
> +		"DEFAULTED",
> +		"EXPIRED"
> +	};
> +	static const char * const selection[] = {
> +		"UNSELECTED",
> +		"STANDBY",
> +		"SELECTED"
> +	};
> +
> +	for (i = 0; i < RTE_DIM(state); i++) {
> +		if ((info->actor_state >> i) & 1)
> +			a_len += snprintf(&a_state[a_len],
> +						RTE_DIM(a_state) - a_len, "%s ",
> +						state[i]);
> +
> +		if ((info->partner_state >> i) & 1)
> +			p_len += snprintf(&p_state[p_len],
> +						RTE_DIM(p_state) - p_len, "%s ",
> +						state[i]);
> +	}
> +	printf("\tAggregator port id: %u\n", info->agg_port_id);
> +	printf("\tselection: %s\n", selection[info->selected]);
> +	printf("\tActor detail info:\n");
> +	port_param_show(&info->actor);
> +	printf("\t\tport state: %s\n", a_state);
> +	printf("\tPartner detail info:\n");
> +	port_param_show(&info->partner);
> +	printf("\t\tport state: %s\n", p_state);
> +	printf("\n");
> +}
> +
> +static void lacp_conf_show(struct rte_eth_bond_8023ad_conf *conf)
> +{
> +	printf("\tfast period: %u ms\n", conf->fast_periodic_ms);
> +	printf("\tslow period: %u ms\n", conf->slow_periodic_ms);
> +	printf("\tshort timeout: %u ms\n", conf->short_timeout_ms);
> +	printf("\tlong timeout: %u ms\n", conf->long_timeout_ms);
> +	printf("\taggregate wait timeout: %u ms\n",
> +			conf->aggregate_wait_timeout_ms);
> +	printf("\ttx period: %u ms\n", conf->tx_period_ms);
> +	printf("\trx marker period: %u ms\n", conf->rx_marker_period_ms);
> +	printf("\tupdate timeout: %u ms\n", conf->update_timeout_ms);
> +	switch (conf->agg_selection) {
> +	case AGG_BANDWIDTH:
> +		printf("\taggregation mode: bandwidth\n");
> +		break;
> +	case AGG_STABLE:
> +		printf("\taggregation mode: stable\n");
> +		break;
> +	case AGG_COUNT:
> +		printf("\taggregation mode: count\n");
> +		break;
> +	default:
> +		printf("\taggregation mode: invalid\n");
> +		break;
> +	}
> +
> +	printf("\n");
> +}
> +
> +static void cmd_show_bonding_lacp_info_parsed(void *parsed_result,
> +		__rte_unused  struct cmdline *cl,
> +		__rte_unused void *data)
> +{
> +	struct cmd_show_bonding_lacp_info_result *res = parsed_result;
> +	struct rte_eth_bond_8023ad_slave_info slave_info;
> +	struct rte_eth_bond_8023ad_conf port_conf;
> +	portid_t slaves[RTE_MAX_ETHPORTS];
> +	portid_t port_id = res->port_id;
> +	int num_active_slaves;
> +	int bonding_mode;
> +	int i;
> +	int ret;
> +
> +	bonding_mode = rte_eth_bond_mode_get(port_id);
> +	if (bonding_mode != BONDING_MODE_8023AD) {
> +		fprintf(stderr, "\tBonding mode is not mode 4\n");
> +		return;
> +	}
> +
> +	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
> +			RTE_MAX_ETHPORTS);
> +	if (num_active_slaves < 0) {
> +		fprintf(stderr, "\tFailed to get active slave list for port = %u\n",
> +				port_id);
> +		return;
> +	}
> +	if (num_active_slaves == 0)
> +		fprintf(stderr, "\tIEEE802.3 port %u has no active slave\n",
> +			port_id);
> +
> +	printf("\tIEEE802.3 port: %u\n", port_id);
> +	ret = rte_eth_bond_8023ad_conf_get(port_id, &port_conf);
> +	if (ret) {
> +		fprintf(stderr, "\tGet bonded device %u info failed\n",
> +			port_id);
> +		return;
> +	}
> +	lacp_conf_show(&port_conf);
> +
> +	for (i = 0; i < num_active_slaves; i++) {
> +		ret = rte_eth_bond_8023ad_slave_info(port_id, slaves[i],
> +				&slave_info);
> +		if (ret) {
> +			fprintf(stderr, "\tGet slave device %u info failed\n",
> +				slaves[i]);
> +			return;
> +		}
> +		printf("\tSlave Port: %u\n", slaves[i]);
> +		lacp_slave_info_show(&slave_info);
> +	}
> +}
> +
> +cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
> +TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
> +		show, "show");
> +cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
> +TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
> +		bonding, "bonding");
> +cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
> +TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
> +		bonding, "lacp");
> +cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
> +TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
> +		info, "info");
> +cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
> +TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
> +		port_id, RTE_UINT16);
> +
> +cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
> +		.f = cmd_show_bonding_lacp_info_parsed,
> +		.help_str = "show bonding lacp info <port_id> : "
> +			"Show bonding IEEE802.3 information for port_id",
> +		.data = NULL,
> +		.tokens = {
> +			(void *)&cmd_show_bonding_lacp_info_show,
> +			(void *)&cmd_show_bonding_lacp_info_bonding,
> +			(void *)&cmd_show_bonding_lacp_info_lacp,
> +			(void *)&cmd_show_bonding_lacp_info_info,
> +			(void *)&cmd_show_bonding_lacp_info_port_id,
> +			NULL
> +		}
> +};
> +
> +/* *** SHOW NIC BONDING CONFIGURATION *** */
> +struct cmd_show_bonding_config_result {
> +	cmdline_fixed_string_t show;
> +	cmdline_fixed_string_t bonding;
> +	cmdline_fixed_string_t config;
> +	portid_t port_id;
> +};
> +
> +static void cmd_show_bonding_config_parsed(void *parsed_result,
> +		__rte_unused  struct cmdline *cl,
> +		__rte_unused void *data)
> +{
> +	struct cmd_show_bonding_config_result *res = parsed_result;
> +	int bonding_mode, agg_mode;
> +	portid_t slaves[RTE_MAX_ETHPORTS];
> +	int num_slaves, num_active_slaves;
> +	int primary_id;
> +	int i;
> +	portid_t port_id = res->port_id;
> +
> +	/* Display the bonding mode.*/
> +	bonding_mode = rte_eth_bond_mode_get(port_id);
> +	if (bonding_mode < 0) {
> +		fprintf(stderr, "\tFailed to get bonding mode for port = %d\n",
> +			port_id);
> +		return;
> +	}
> +	printf("\tBonding mode: %d\n", bonding_mode);
> +
> +	if (bonding_mode == BONDING_MODE_BALANCE ||
> +		bonding_mode == BONDING_MODE_8023AD) {
> +		int balance_xmit_policy;
> +
> +		balance_xmit_policy = rte_eth_bond_xmit_policy_get(port_id);
> +		if (balance_xmit_policy < 0) {
> +			fprintf(stderr,
> +				"\tFailed to get balance xmit policy for port = %d\n",
> +				port_id);
> +			return;
> +		}
> +		printf("\tBalance Xmit Policy: ");
> +
> +		switch (balance_xmit_policy) {
> +		case BALANCE_XMIT_POLICY_LAYER2:
> +			printf("BALANCE_XMIT_POLICY_LAYER2");
> +			break;
> +		case BALANCE_XMIT_POLICY_LAYER23:
> +			printf("BALANCE_XMIT_POLICY_LAYER23");
> +			break;
> +		case BALANCE_XMIT_POLICY_LAYER34:
> +			printf("BALANCE_XMIT_POLICY_LAYER34");
> +			break;
> +		}
> +		printf("\n");
> +	}
> +
> +	if (bonding_mode == BONDING_MODE_8023AD) {
> +		agg_mode = rte_eth_bond_8023ad_agg_selection_get(port_id);
> +		printf("\tIEEE802.3AD Aggregator Mode: ");
> +		switch (agg_mode) {
> +		case AGG_BANDWIDTH:
> +			printf("bandwidth");
> +			break;
> +		case AGG_STABLE:
> +			printf("stable");
> +			break;
> +		case AGG_COUNT:
> +			printf("count");
> +			break;
> +		}
> +		printf("\n");
> +	}
> +
> +	num_slaves = rte_eth_bond_slaves_get(port_id, slaves, RTE_MAX_ETHPORTS);
> +
> +	if (num_slaves < 0) {
> +		fprintf(stderr, "\tFailed to get slave list for port = %d\n",
> +			port_id);
> +		return;
> +	}
> +	if (num_slaves > 0) {
> +		printf("\tSlaves (%d): [", num_slaves);
> +		for (i = 0; i < num_slaves - 1; i++)
> +			printf("%d ", slaves[i]);
> +
> +		printf("%d]\n", slaves[num_slaves - 1]);
> +	} else {
> +		printf("\tSlaves: []\n");
> +	}
> +
> +	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
> +			RTE_MAX_ETHPORTS);
> +
> +	if (num_active_slaves < 0) {
> +		fprintf(stderr,
> +			"\tFailed to get active slave list for port = %d\n",
> +			port_id);
> +		return;
> +	}
> +	if (num_active_slaves > 0) {
> +		printf("\tActive Slaves (%d): [", num_active_slaves);
> +		for (i = 0; i < num_active_slaves - 1; i++)
> +			printf("%d ", slaves[i]);
> +
> +		printf("%d]\n", slaves[num_active_slaves - 1]);
> +
> +	} else {
> +		printf("\tActive Slaves: []\n");
> +	}
> +
> +	primary_id = rte_eth_bond_primary_get(port_id);
> +	if (primary_id < 0) {
> +		fprintf(stderr, "\tFailed to get primary slave for port = %d\n",
> +			port_id);
> +		return;
> +	}
> +	printf("\tPrimary: [%d]\n", primary_id);
> +}
> +
> +cmdline_parse_token_string_t cmd_showbonding_config_show =
> +TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
> +		show, "show");
> +cmdline_parse_token_string_t cmd_showbonding_config_bonding =
> +TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
> +		bonding, "bonding");
> +cmdline_parse_token_string_t cmd_showbonding_config_config =
> +TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
> +		config, "config");
> +cmdline_parse_token_num_t cmd_showbonding_config_port =
> +TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_config_result,
> +		port_id, RTE_UINT16);
> +
> +cmdline_parse_inst_t cmd_show_bonding_config = {
> +		.f = cmd_show_bonding_config_parsed,
> +		.help_str = "show bonding config <port_id>: "
> +			"Show the bonding config for port_id",
> +		.data = NULL,
> +		.tokens = {
> +				(void *)&cmd_showbonding_config_show,
> +				(void *)&cmd_showbonding_config_bonding,
> +				(void *)&cmd_showbonding_config_config,
> +				(void *)&cmd_showbonding_config_port,
> +				NULL
> +		}
> +};
> +
> +/* *** SET BONDING PRIMARY *** */
> +struct cmd_set_bonding_primary_result {
> +	cmdline_fixed_string_t set;
> +	cmdline_fixed_string_t bonding;
> +	cmdline_fixed_string_t primary;
> +	portid_t slave_id;
> +	portid_t port_id;
> +};
> +
> +static void cmd_set_bonding_primary_parsed(void *parsed_result,
> +		__rte_unused  struct cmdline *cl,
> +		__rte_unused void *data)
> +{
> +	struct cmd_set_bonding_primary_result *res = parsed_result;
> +	portid_t master_port_id = res->port_id;
> +	portid_t slave_port_id = res->slave_id;
> +
> +	/* Set the primary slave for a bonded device. */
> +	if (rte_eth_bond_primary_set(master_port_id, slave_port_id) != 0) {
> +		fprintf(stderr, "\t Failed to set primary slave for port = %d.\n",
> +			master_port_id);
> +		return;
> +	}
> +	init_port_config();
> +}
> +
> +cmdline_parse_token_string_t cmd_setbonding_primary_set =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
> +		set, "set");
> +cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
> +		bonding, "bonding");
> +cmdline_parse_token_string_t cmd_setbonding_primary_primary =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
> +		primary, "primary");
> +cmdline_parse_token_num_t cmd_setbonding_primary_slave =
> +TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
> +		slave_id, RTE_UINT16);
> +cmdline_parse_token_num_t cmd_setbonding_primary_port =
> +TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
> +		port_id, RTE_UINT16);
> +
> +cmdline_parse_inst_t cmd_set_bonding_primary = {
> +		.f = cmd_set_bonding_primary_parsed,
> +		.help_str = "set bonding primary <slave_id> <port_id>: "
> +			"Set the primary slave for port_id",
> +		.data = NULL,
> +		.tokens = {
> +				(void *)&cmd_setbonding_primary_set,
> +				(void *)&cmd_setbonding_primary_bonding,
> +				(void *)&cmd_setbonding_primary_primary,
> +				(void *)&cmd_setbonding_primary_slave,
> +				(void *)&cmd_setbonding_primary_port,
> +				NULL
> +		}
> +};
> +
> +/* *** ADD SLAVE *** */
> +struct cmd_add_bonding_slave_result {
> +	cmdline_fixed_string_t add;
> +	cmdline_fixed_string_t bonding;
> +	cmdline_fixed_string_t slave;
> +	portid_t slave_id;
> +	portid_t port_id;
> +};
> +
> +static void cmd_add_bonding_slave_parsed(void *parsed_result,
> +		__rte_unused  struct cmdline *cl,
> +		__rte_unused void *data)
> +{
> +	struct cmd_add_bonding_slave_result *res = parsed_result;
> +	portid_t master_port_id = res->port_id;
> +	portid_t slave_port_id = res->slave_id;
> +
> +	/* add the slave for a bonded device. */
> +	if (rte_eth_bond_slave_add(master_port_id, slave_port_id) != 0) {
> +		fprintf(stderr,
> +			"\t Failed to add slave %d to master port = %d.\n",
> +			slave_port_id, master_port_id);
> +		return;
> +	}
> +	init_port_config();
> +	set_port_slave_flag(slave_port_id);
> +}
> +
> +cmdline_parse_token_string_t cmd_addbonding_slave_add =
> +TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
> +		add, "add");
> +cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
> +TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
> +		bonding, "bonding");
> +cmdline_parse_token_string_t cmd_addbonding_slave_slave =
> +TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
> +		slave, "slave");
> +cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
> +TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
> +		slave_id, RTE_UINT16);
> +cmdline_parse_token_num_t cmd_addbonding_slave_port =
> +TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
> +		port_id, RTE_UINT16);
> +
> +cmdline_parse_inst_t cmd_add_bonding_slave = {
> +		.f = cmd_add_bonding_slave_parsed,
> +		.help_str = "add bonding slave <slave_id> <port_id>: "
> +			"Add a slave device to a bonded device",
> +		.data = NULL,
> +		.tokens = {
> +				(void *)&cmd_addbonding_slave_add,
> +				(void *)&cmd_addbonding_slave_bonding,
> +				(void *)&cmd_addbonding_slave_slave,
> +				(void *)&cmd_addbonding_slave_slaveid,
> +				(void *)&cmd_addbonding_slave_port,
> +				NULL
> +		}
> +};
> +
> +/* *** REMOVE SLAVE *** */
> +struct cmd_remove_bonding_slave_result {
> +	cmdline_fixed_string_t remove;
> +	cmdline_fixed_string_t bonding;
> +	cmdline_fixed_string_t slave;
> +	portid_t slave_id;
> +	portid_t port_id;
> +};
> +
> +static void cmd_remove_bonding_slave_parsed(void *parsed_result,
> +		__rte_unused  struct cmdline *cl,
> +		__rte_unused void *data)
> +{
> +	struct cmd_remove_bonding_slave_result *res = parsed_result;
> +	portid_t master_port_id = res->port_id;
> +	portid_t slave_port_id = res->slave_id;
> +
> +	/* remove the slave from a bonded device. */
> +	if (rte_eth_bond_slave_remove(master_port_id, slave_port_id) != 0) {
> +		fprintf(stderr,
> +			"\t Failed to remove slave %d from master port = %d.\n",
> +			slave_port_id, master_port_id);
> +		return;
> +	}
> +	init_port_config();
> +	clear_port_slave_flag(slave_port_id);
> +}
> +
> +cmdline_parse_token_string_t cmd_removebonding_slave_remove =
> +		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
> +				remove, "remove");
> +cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
> +		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
> +				bonding, "bonding");
> +cmdline_parse_token_string_t cmd_removebonding_slave_slave =
> +		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
> +				slave, "slave");
> +cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
> +		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
> +				slave_id, RTE_UINT16);
> +cmdline_parse_token_num_t cmd_removebonding_slave_port =
> +		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
> +				port_id, RTE_UINT16);
> +
> +cmdline_parse_inst_t cmd_remove_bonding_slave = {
> +		.f = cmd_remove_bonding_slave_parsed,
> +		.help_str = "remove bonding slave <slave_id> <port_id>: "
> +			"Remove a slave device from a bonded device",
> +		.data = NULL,
> +		.tokens = {
> +				(void *)&cmd_removebonding_slave_remove,
> +				(void *)&cmd_removebonding_slave_bonding,
> +				(void *)&cmd_removebonding_slave_slave,
> +				(void *)&cmd_removebonding_slave_slaveid,
> +				(void *)&cmd_removebonding_slave_port,
> +				NULL
> +		}
> +};
> +
> +/* *** CREATE BONDED DEVICE *** */
> +struct cmd_create_bonded_device_result {
> +	cmdline_fixed_string_t create;
> +	cmdline_fixed_string_t bonded;
> +	cmdline_fixed_string_t device;
> +	uint8_t mode;
> +	uint8_t socket;
> +};
> +
> +static int bond_dev_num;
> +
> +static void cmd_create_bonded_device_parsed(void *parsed_result,
> +		__rte_unused  struct cmdline *cl,
> +		__rte_unused void *data)
> +{
> +	struct cmd_create_bonded_device_result *res = parsed_result;
> +	char ethdev_name[RTE_ETH_NAME_MAX_LEN];
> +	int port_id;
> +	int ret;
> +
> +	if (test_done == 0) {
> +		fprintf(stderr, "Please stop forwarding first\n");
> +		return;
> +	}
> +
> +	snprintf(ethdev_name, RTE_ETH_NAME_MAX_LEN, "net_bonding_testpmd_%d",
> +			bond_dev_num++);
> +
> +	/* Create a new bonded device. */
> +	port_id = rte_eth_bond_create(ethdev_name, res->mode, res->socket);
> +	if (port_id < 0) {
> +		fprintf(stderr, "\t Failed to create bonded device.\n");
> +		return;
> +	}
> +	printf("Created new bonded device %s on (port %d).\n", ethdev_name,
> +		port_id);
> +
> +	/* Update number of ports */
> +	nb_ports = rte_eth_dev_count_avail();
> +	reconfig(port_id, res->socket);
> +	ret = rte_eth_promiscuous_enable(port_id);
> +	if (ret != 0)
> +		fprintf(stderr, "Failed to enable promiscuous mode for port %u: %s - ignore\n",
> +			port_id, rte_strerror(-ret));
> +
> +	ports[port_id].need_setup = 0;
> +	ports[port_id].port_status = RTE_PORT_STOPPED;
> +}
> +
> +cmdline_parse_token_string_t cmd_createbonded_device_create =
> +		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
> +				create, "create");
> +cmdline_parse_token_string_t cmd_createbonded_device_bonded =
> +		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
> +				bonded, "bonded");
> +cmdline_parse_token_string_t cmd_createbonded_device_device =
> +		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
> +				device, "device");
> +cmdline_parse_token_num_t cmd_createbonded_device_mode =
> +		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
> +				mode, RTE_UINT8);
> +cmdline_parse_token_num_t cmd_createbonded_device_socket =
> +		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
> +				socket, RTE_UINT8);
> +
> +cmdline_parse_inst_t cmd_create_bonded_device = {
> +		.f = cmd_create_bonded_device_parsed,
> +		.help_str = "create bonded device <mode> <socket>: "
> +			"Create a new bonded device with specific bonding mode and socket",
> +		.data = NULL,
> +		.tokens = {
> +				(void *)&cmd_createbonded_device_create,
> +				(void *)&cmd_createbonded_device_bonded,
> +				(void *)&cmd_createbonded_device_device,
> +				(void *)&cmd_createbonded_device_mode,
> +				(void *)&cmd_createbonded_device_socket,
> +				NULL
> +		}
> +};
> +
> +/* *** SET MAC ADDRESS IN BONDED DEVICE *** */
> +struct cmd_set_bond_mac_addr_result {
> +	cmdline_fixed_string_t set;
> +	cmdline_fixed_string_t bonding;
> +	cmdline_fixed_string_t mac_addr;
> +	uint16_t port_num;
> +	struct rte_ether_addr address;
> +};
> +
> +static void cmd_set_bond_mac_addr_parsed(void *parsed_result,
> +		__rte_unused  struct cmdline *cl,
> +		__rte_unused void *data)
> +{
> +	struct cmd_set_bond_mac_addr_result *res = parsed_result;
> +	int ret;
> +
> +	if (port_id_is_invalid(res->port_num, ENABLED_WARN))
> +		return;
> +
> +	ret = rte_eth_bond_mac_address_set(res->port_num, &res->address);
> +
> +	/* check the return value and print it if is < 0 */
> +	if (ret < 0)
> +		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
> +			strerror(-ret));
> +}
> +
> +cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
> +		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, set, "set");
> +cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
> +		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, bonding,
> +				"bonding");
> +cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
> +		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, mac_addr,
> +				"mac_addr");
> +cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
> +		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mac_addr_result,
> +				port_num, RTE_UINT16);
> +cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
> +		TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_bond_mac_addr_result, address);
> +
> +cmdline_parse_inst_t cmd_set_bond_mac_addr = {
> +		.f = cmd_set_bond_mac_addr_parsed,
> +		.data = NULL,
> +		.help_str = "set bonding mac_addr <port_id> <mac_addr>",
> +		.tokens = {
> +				(void *)&cmd_set_bond_mac_addr_set,
> +				(void *)&cmd_set_bond_mac_addr_bonding,
> +				(void *)&cmd_set_bond_mac_addr_mac,
> +				(void *)&cmd_set_bond_mac_addr_portnum,
> +				(void *)&cmd_set_bond_mac_addr_addr,
> +				NULL
> +		}
> +};
> +
> +/* *** SET LINK STATUS MONITORING POLLING PERIOD ON BONDED DEVICE *** */
> +struct cmd_set_bond_mon_period_result {
> +	cmdline_fixed_string_t set;
> +	cmdline_fixed_string_t bonding;
> +	cmdline_fixed_string_t mon_period;
> +	uint16_t port_num;
> +	uint32_t period_ms;
> +};
> +
> +static void cmd_set_bond_mon_period_parsed(void *parsed_result,
> +		__rte_unused  struct cmdline *cl,
> +		__rte_unused void *data)
> +{
> +	struct cmd_set_bond_mon_period_result *res = parsed_result;
> +	int ret;
> +
> +	ret = rte_eth_bond_link_monitoring_set(res->port_num, res->period_ms);
> +
> +	/* check the return value and print it if is < 0 */
> +	if (ret < 0)
> +		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
> +			strerror(-ret));
> +}
> +
> +cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
> +		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
> +				set, "set");
> +cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
> +		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
> +				bonding, "bonding");
> +cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
> +		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
> +				mon_period,	"mon_period");
> +cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
> +		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
> +				port_num, RTE_UINT16);
> +cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
> +		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
> +				period_ms, RTE_UINT32);
> +
> +cmdline_parse_inst_t cmd_set_bond_mon_period = {
> +		.f = cmd_set_bond_mon_period_parsed,
> +		.data = NULL,
> +		.help_str = "set bonding mon_period <port_id> <period_ms>",
> +		.tokens = {
> +				(void *)&cmd_set_bond_mon_period_set,
> +				(void *)&cmd_set_bond_mon_period_bonding,
> +				(void *)&cmd_set_bond_mon_period_mon_period,
> +				(void *)&cmd_set_bond_mon_period_portnum,
> +				(void *)&cmd_set_bond_mon_period_period_ms,
> +				NULL
> +		}
> +};
> +
> +struct cmd_set_bonding_agg_mode_policy_result {
> +	cmdline_fixed_string_t set;
> +	cmdline_fixed_string_t bonding;
> +	cmdline_fixed_string_t agg_mode;
> +	uint16_t port_num;
> +	cmdline_fixed_string_t policy;
> +};
> +
> +static void
> +cmd_set_bonding_agg_mode(void *parsed_result,
> +		__rte_unused struct cmdline *cl,
> +		__rte_unused void *data)
> +{
> +	struct cmd_set_bonding_agg_mode_policy_result *res = parsed_result;
> +	uint8_t policy = AGG_BANDWIDTH;
> +
> +	if (!strcmp(res->policy, "bandwidth"))
> +		policy = AGG_BANDWIDTH;
> +	else if (!strcmp(res->policy, "stable"))
> +		policy = AGG_STABLE;
> +	else if (!strcmp(res->policy, "count"))
> +		policy = AGG_COUNT;
> +
> +	rte_eth_bond_8023ad_agg_selection_set(res->port_num, policy);
> +}
> +
> +cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
> +	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
> +				set, "set");
> +cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
> +	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
> +				bonding, "bonding");
> +
> +cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
> +	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
> +				agg_mode, "agg_mode");
> +
> +cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
> +	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
> +				port_num, RTE_UINT16);
> +
> +cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
> +	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
> +		policy, "stable#bandwidth#count");
> +
> +cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
> +	.f = cmd_set_bonding_agg_mode,
> +	.data = NULL,
> +	.help_str = "set bonding mode IEEE802.3AD aggregator policy <port_id> <agg_name>",
> +	.tokens = {
> +			(void *)&cmd_set_bonding_agg_mode_set,
> +			(void *)&cmd_set_bonding_agg_mode_bonding,
> +			(void *)&cmd_set_bonding_agg_mode_agg_mode,
> +			(void *)&cmd_set_bonding_agg_mode_portnum,
> +			(void *)&cmd_set_bonding_agg_mode_policy_string,
> +			NULL
> +		}
> +};
> +
> +static struct testpmd_cmdline_parser driver_parser = {
> +	.ctx = (cmdline_parse_ctx_t[]) {
> +		(cmdline_parse_inst_t *)&cmd_set_bonding_mode,
> +		(cmdline_parse_inst_t *)&cmd_show_bonding_config,
> +		(cmdline_parse_inst_t *)&cmd_show_bonding_lacp_info,
> +		(cmdline_parse_inst_t *)&cmd_set_bonding_primary,
> +		(cmdline_parse_inst_t *)&cmd_add_bonding_slave,
> +		(cmdline_parse_inst_t *)&cmd_remove_bonding_slave,
> +		(cmdline_parse_inst_t *)&cmd_create_bonded_device,
> +		(cmdline_parse_inst_t *)&cmd_set_bond_mac_addr,
> +		(cmdline_parse_inst_t *)&cmd_set_balance_xmit_policy,
> +		(cmdline_parse_inst_t *)&cmd_set_bond_mon_period,
> +		(cmdline_parse_inst_t *)&cmd_set_lacp_dedicated_queues,
> +		(cmdline_parse_inst_t *)&cmd_set_bonding_agg_mode_policy,
> +		NULL
> +	},
> +	.help = {
> +		"set bonding mode (value) (port_id)\n"
> +		"	Set the bonding mode on a bonded device.\n",
> +
> +		"show bonding config (port_id)\n"
> +		"	Show the bonding config for port_id.\n",
> +
> +		"show bonding lacp info (port_id)\n"
> +		"	Show the bonding lacp information for port_id.\n",
> +
> +		"set bonding primary (slave_id) (port_id)\n"
> +		"	Set the primary slave for a bonded device.\n",
> +
> +		"add bonding slave (slave_id) (port_id)\n"
> +		"	Add a slave device to a bonded device.\n",
> +
> +		"remove bonding slave (slave_id) (port_id)\n"
> +		"	Remove a slave device from a bonded device.\n",
> +
> +		"create bonded device (mode) (socket)\n"
> +		"	Create a new bonded device with specific bonding mode and socket.\n",
> +
> +		"set bonding mac_addr (port_id) (address)\n"
> +		"	Set the MAC address of a bonded device.\n",
> +
> +		"set bonding balance_xmit_policy (port_id) (l2|l23|l34)\n"
> +		"	Set the transmit balance policy for bonded device running in balance mode.\n",
> +
> +		"set bonding mon_period (port_id) (value)\n"
> +		"	Set the bonding link status monitoring polling period in ms.\n",
> +
> +		"set bonding lacp dedicated_queues <port_id> (enable|disable)\n"
> +		"	Enable/disable dedicated queues for LACP control traffic.\n",
> +
> +		"set bonding mode IEEE802.3AD aggregator policy (port_id) (agg_name)\n"
> +		"	Set Aggregation mode for IEEE802.3AD (mode 4)\n",
> +
> +		NULL
> +	},
> +};
> +
> +RTE_INIT(bonding_testpmd)
> +{
> +	testpmd_add_commands(&driver_parser);
> +}
> 

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [RFC PATCH 1/4] app/testpmd: register driver specific commands
  2022-05-13  7:57 ` [RFC PATCH 1/4] app/testpmd: register driver specific commands David Marchand
@ 2022-05-13 10:30   ` David Marchand
  0 siblings, 0 replies; 65+ messages in thread
From: David Marchand @ 2022-05-13 10:30 UTC (permalink / raw)
  To: dev
  Cc: Thomas Monjalon, Xiaoyun Li, Aman Singh, Yuying Zhang, Bruce Richardson

On Fri, May 13, 2022 at 9:57 AM David Marchand
<david.marchand@redhat.com> wrote:
> +       TAILQ_FOREACH(parser, &cmdline_parsers, next) {
> +               for (i = 0; parser->ctx[i] != NULL; i++) {
> +                       ctx = realloc(main_ctx, (count + i + 1) * sizeof(*ctx));
> +                       if (ctx == NULL)
> +                               goto err;
> +                       ctx[count + i] = parser->ctx[i];

Strange I did not catch it earlier...

-                       ctx[count + i] = parser->ctx[i];
+                       main_ctx = ctx;
+                       main_ctx[count + i] = builtin_ctx[i];


> +               }
> +               count += i;
> +       }


-- 
David Marchand


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [RFC PATCH 2/4] net/bonding: move testpmd commands
  2022-05-13 10:09   ` Min Hu (Connor)
@ 2022-05-18 17:24     ` David Marchand
  2022-05-18 23:25       ` Konstantin Ananyev
  0 siblings, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-05-18 17:24 UTC (permalink / raw)
  To: Min Hu (Connor)
  Cc: dev, Thomas Monjalon, Xiaoyun Li, Aman Singh, Yuying Zhang,
	Chas Williams

On Fri, May 13, 2022 at 12:10 PM Min Hu (Connor) <humin29@huawei.com> wrote:
>
>   I think net/bonding offer 'API' for APP to use the bonding.
>     and use the specific PMD as slave device.
>   The software framwork is like:
>    APP
>    ethdev
>    bonding PMD
>    PMD
>    hardware
>
> so, I think cmdlines for testpmd should not put in net/bonding.

Sorry, but the distinction is vague.

Those commands are specific to this driver/library.
I don't see the problem with hosting the commands in the bonding driver/library.

This is still a RFC, I don't mind dropping this patch (in the end) if
others think it does not make sense.
For now I'll keep it in a v2 series fixing the registering issue in patch 1.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 65+ messages in thread

* [RFC PATCH v2 0/5] Split driver specific commands out of testpmd
  2022-05-13  7:57 [RFC PATCH 0/4] Split driver specific commands out of testpmd David Marchand
                   ` (3 preceding siblings ...)
  2022-05-13  7:57 ` [RFC PATCH 4/4] net/ixgbe: " David Marchand
@ 2022-05-18 19:46 ` David Marchand
  2022-05-18 19:46   ` [RFC PATCH v2 1/5] app/testpmd: mark cmdline symbols as static David Marchand
                     ` (5 more replies)
  2022-05-23  7:10 ` [PATCH 0/6] " David Marchand
  2022-05-24 20:06 ` [PATCH v2 0/2] " David Marchand
  6 siblings, 6 replies; 65+ messages in thread
From: David Marchand @ 2022-05-18 19:46 UTC (permalink / raw)
  To: dev; +Cc: thomas

Hello,

Following TB decision and recent discussions on the driver specific
commands in testpmd, here is a proposal on how the split could be done.

For now, this series simply moves the testpmd code in the driver
directory. The driver specific testpmd code is still compiled as part of
testpmd compilation via a global meson testpmd_driver_sources list.

TODO:
- ixgbe bypass commands in testpmd are "dead" code since switch to meson,
  as the RTE_LIBRTE_IXGBE_BYPASS define is not set while compiling testpmd.
  I am tempted to simply drop those, since no one complained about issue
  for the last two years. For now, this series reinstates them.

- this series keeps the command names as is. We could consolidate with a
  clear prefix so that users directly know they are exerting a special
  feature that makes no sense on other hw.
  For this, I had in mind introducing a "driver" top level prefix,
  where drivers would hook their specific stuff. For example:
  testpmd> driver ixgbe set vf split drop (port_id) (vf_id) (on|off)

- the documentation of those commands is left untouched, we should
  probably move any existing doc into the driver documentation itself.
  testpmd documentation could then have a generic
  "Driver specific commands" section pointing at all other driver docs.

Opinions?


-- 
David Marchand

Changes since RFC v1:
- added a cleanup as patch 1, to make all parser symbols static,
- fixed registering issue in patch 1,
- moved more i40e specific commands, fixed checkpatch warnings,

David Marchand (5):
  app/testpmd: mark cmdline symbols as static
  app/testpmd: register driver specific commands
  net/bonding: move testpmd commands
  net/i40e: move testpmd commands
  net/ixgbe: move testpmd commands

 app/test-pmd/cmdline.c                     | 15402 +++++++------------
 app/test-pmd/config.c                      |    43 -
 app/test-pmd/meson.build                   |     8 +-
 app/test-pmd/testpmd.c                     |    18 +-
 app/test-pmd/testpmd.h                     |    23 +-
 drivers/meson.build                        |     5 +
 drivers/net/bonding/meson.build            |     1 +
 drivers/net/bonding/rte_eth_bond_testpmd.c |  1037 ++
 drivers/net/i40e/i40e_testpmd.c            |  2718 ++++
 drivers/net/i40e/meson.build               |     2 +
 drivers/net/ixgbe/ixgbe_testpmd.c          |  1147 ++
 drivers/net/ixgbe/meson.build              |     2 +
 meson.build                                |     2 +
 13 files changed, 10272 insertions(+), 10136 deletions(-)
 create mode 100644 drivers/net/bonding/rte_eth_bond_testpmd.c
 create mode 100644 drivers/net/i40e/i40e_testpmd.c
 create mode 100644 drivers/net/ixgbe/ixgbe_testpmd.c

-- 
2.36.1


^ permalink raw reply	[flat|nested] 65+ messages in thread

* [RFC PATCH v2 1/5] app/testpmd: mark cmdline symbols as static
  2022-05-18 19:46 ` [RFC PATCH v2 0/5] Split driver specific commands out of testpmd David Marchand
@ 2022-05-18 19:46   ` David Marchand
  2022-05-20  6:28     ` Andrew Rybchenko
  2022-05-18 19:46   ` [RFC PATCH v2 2/5] app/testpmd: register driver specific commands David Marchand
                     ` (4 subsequent siblings)
  5 siblings, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-05-18 19:46 UTC (permalink / raw)
  To: dev; +Cc: thomas, Xiaoyun Li, Aman Singh, Yuying Zhang

All those symbols don't need to be global, plus it hides unused code
such as cmd_set_conntrack_dir_set and cmd_set_conntrack_dir_conntrack
tokens.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/cmdline.c | 2776 ++++++++++++++++++++--------------------
 1 file changed, 1385 insertions(+), 1391 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 91e4090582..498fe2c2b7 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -99,10 +99,10 @@ static void cmd_help_brief_parsed(__rte_unused void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_help_brief_help =
+static cmdline_parse_token_string_t cmd_help_brief_help =
 	TOKEN_STRING_INITIALIZER(struct cmd_help_brief_result, help, "help");
 
-cmdline_parse_inst_t cmd_help_brief = {
+static cmdline_parse_inst_t cmd_help_brief = {
 	.f = cmd_help_brief_parsed,
 	.data = NULL,
 	.help_str = "help: Show help",
@@ -1179,15 +1179,15 @@ static void cmd_help_long_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_help_long_help =
+static cmdline_parse_token_string_t cmd_help_long_help =
 	TOKEN_STRING_INITIALIZER(struct cmd_help_long_result, help, "help");
 
-cmdline_parse_token_string_t cmd_help_long_section =
+static cmdline_parse_token_string_t cmd_help_long_section =
 	TOKEN_STRING_INITIALIZER(struct cmd_help_long_result, section,
 			"all#control#display#config#"
 			"ports#registers#filters#traffic_management#devices");
 
-cmdline_parse_inst_t cmd_help_long = {
+static cmdline_parse_inst_t cmd_help_long = {
 	.f = cmd_help_long_parsed,
 	.data = NULL,
 	.help_str = "help all|control|display|config|ports|register|"
@@ -1226,16 +1226,16 @@ static void cmd_operate_port_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown parameter\n");
 }
 
-cmdline_parse_token_string_t cmd_operate_port_all_cmd =
+static cmdline_parse_token_string_t cmd_operate_port_all_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_port_result, keyword,
 								"port");
-cmdline_parse_token_string_t cmd_operate_port_all_port =
+static cmdline_parse_token_string_t cmd_operate_port_all_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_port_result, name,
 						"start#stop#close#reset");
-cmdline_parse_token_string_t cmd_operate_port_all_all =
+static cmdline_parse_token_string_t cmd_operate_port_all_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_port_result, value, "all");
 
-cmdline_parse_inst_t cmd_operate_port = {
+static cmdline_parse_inst_t cmd_operate_port = {
 	.f = cmd_operate_port_parsed,
 	.data = NULL,
 	.help_str = "port start|stop|close|reset all: Start/Stop/Close/Reset all ports",
@@ -1272,17 +1272,17 @@ static void cmd_operate_specific_port_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown parameter\n");
 }
 
-cmdline_parse_token_string_t cmd_operate_specific_port_cmd =
+static cmdline_parse_token_string_t cmd_operate_specific_port_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_specific_port_result,
 							keyword, "port");
-cmdline_parse_token_string_t cmd_operate_specific_port_port =
+static cmdline_parse_token_string_t cmd_operate_specific_port_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_specific_port_result,
 						name, "start#stop#close#reset");
-cmdline_parse_token_num_t cmd_operate_specific_port_id =
+static cmdline_parse_token_num_t cmd_operate_specific_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_operate_specific_port_result,
 							value, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_operate_specific_port = {
+static cmdline_parse_inst_t cmd_operate_specific_port = {
 	.f = cmd_operate_specific_port_parsed,
 	.data = NULL,
 	.help_str = "port start|stop|close|reset <port_id>: Start/Stop/Close/Reset port_id",
@@ -1317,23 +1317,23 @@ static void cmd_set_port_setup_on_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown mode\n");
 }
 
-cmdline_parse_token_string_t cmd_set_port_setup_on_set =
+static cmdline_parse_token_string_t cmd_set_port_setup_on_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
 			set, "set");
-cmdline_parse_token_string_t cmd_set_port_setup_on_port =
+static cmdline_parse_token_string_t cmd_set_port_setup_on_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_set_port_setup_on_setup =
+static cmdline_parse_token_string_t cmd_set_port_setup_on_setup =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
 			setup, "setup");
-cmdline_parse_token_string_t cmd_set_port_setup_on_on =
+static cmdline_parse_token_string_t cmd_set_port_setup_on_on =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
 			on, "on");
-cmdline_parse_token_string_t cmd_set_port_setup_on_mode =
+static cmdline_parse_token_string_t cmd_set_port_setup_on_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
 			mode, "iterator#event");
 
-cmdline_parse_inst_t cmd_set_port_setup_on = {
+static cmdline_parse_inst_t cmd_set_port_setup_on = {
 	.f = cmd_set_port_setup_on_parsed,
 	.data = NULL,
 	.help_str = "set port setup on iterator|event",
@@ -1366,17 +1366,17 @@ static void cmd_operate_attach_port_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown parameter\n");
 }
 
-cmdline_parse_token_string_t cmd_operate_attach_port_port =
+static cmdline_parse_token_string_t cmd_operate_attach_port_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_attach_port_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_operate_attach_port_keyword =
+static cmdline_parse_token_string_t cmd_operate_attach_port_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_attach_port_result,
 			keyword, "attach");
-cmdline_parse_token_string_t cmd_operate_attach_port_identifier =
+static cmdline_parse_token_string_t cmd_operate_attach_port_identifier =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_attach_port_result,
 			identifier, TOKEN_STRING_MULTI);
 
-cmdline_parse_inst_t cmd_operate_attach_port = {
+static cmdline_parse_inst_t cmd_operate_attach_port = {
 	.f = cmd_operate_attach_port_parsed,
 	.data = NULL,
 	.help_str = "port attach <identifier>: "
@@ -1410,17 +1410,17 @@ static void cmd_operate_detach_port_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_operate_detach_port_port =
+static cmdline_parse_token_string_t cmd_operate_detach_port_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_port_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_operate_detach_port_keyword =
+static cmdline_parse_token_string_t cmd_operate_detach_port_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_port_result,
 			keyword, "detach");
-cmdline_parse_token_num_t cmd_operate_detach_port_port_id =
+static cmdline_parse_token_num_t cmd_operate_detach_port_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_operate_detach_port_result,
 			port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_operate_detach_port = {
+static cmdline_parse_inst_t cmd_operate_detach_port = {
 	.f = cmd_operate_detach_port_parsed,
 	.data = NULL,
 	.help_str = "port detach <port_id>",
@@ -1451,17 +1451,17 @@ static void cmd_operate_detach_device_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown parameter\n");
 }
 
-cmdline_parse_token_string_t cmd_operate_detach_device_device =
+static cmdline_parse_token_string_t cmd_operate_detach_device_device =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_device_result,
 			device, "device");
-cmdline_parse_token_string_t cmd_operate_detach_device_keyword =
+static cmdline_parse_token_string_t cmd_operate_detach_device_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_device_result,
 			keyword, "detach");
-cmdline_parse_token_string_t cmd_operate_detach_device_identifier =
+static cmdline_parse_token_string_t cmd_operate_detach_device_identifier =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_device_result,
 			identifier, NULL);
 
-cmdline_parse_inst_t cmd_operate_detach_device = {
+static cmdline_parse_inst_t cmd_operate_detach_device = {
 	.f = cmd_operate_detach_device_parsed,
 	.data = NULL,
 	.help_str = "device detach <identifier>:"
@@ -1565,25 +1565,25 @@ cmd_config_speed_all_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_speed_all_port =
+static cmdline_parse_token_string_t cmd_config_speed_all_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, port, "port");
-cmdline_parse_token_string_t cmd_config_speed_all_keyword =
+static cmdline_parse_token_string_t cmd_config_speed_all_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, keyword,
 							"config");
-cmdline_parse_token_string_t cmd_config_speed_all_all =
+static cmdline_parse_token_string_t cmd_config_speed_all_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, all, "all");
-cmdline_parse_token_string_t cmd_config_speed_all_item1 =
+static cmdline_parse_token_string_t cmd_config_speed_all_item1 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, item1, "speed");
-cmdline_parse_token_string_t cmd_config_speed_all_value1 =
+static cmdline_parse_token_string_t cmd_config_speed_all_value1 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, value1,
 				"10#100#1000#10000#25000#40000#50000#100000#200000#auto");
-cmdline_parse_token_string_t cmd_config_speed_all_item2 =
+static cmdline_parse_token_string_t cmd_config_speed_all_item2 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, item2, "duplex");
-cmdline_parse_token_string_t cmd_config_speed_all_value2 =
+static cmdline_parse_token_string_t cmd_config_speed_all_value2 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, value2,
 						"half#full#auto");
 
-cmdline_parse_inst_t cmd_config_speed_all = {
+static cmdline_parse_inst_t cmd_config_speed_all = {
 	.f = cmd_config_speed_all_parsed,
 	.data = NULL,
 	.help_str = "port config all speed "
@@ -1638,28 +1638,28 @@ cmd_config_speed_specific_parsed(void *parsed_result,
 }
 
 
-cmdline_parse_token_string_t cmd_config_speed_specific_port =
+static cmdline_parse_token_string_t cmd_config_speed_specific_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, port,
 								"port");
-cmdline_parse_token_string_t cmd_config_speed_specific_keyword =
+static cmdline_parse_token_string_t cmd_config_speed_specific_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, keyword,
 								"config");
-cmdline_parse_token_num_t cmd_config_speed_specific_id =
+static cmdline_parse_token_num_t cmd_config_speed_specific_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_speed_specific, id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_speed_specific_item1 =
+static cmdline_parse_token_string_t cmd_config_speed_specific_item1 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, item1,
 								"speed");
-cmdline_parse_token_string_t cmd_config_speed_specific_value1 =
+static cmdline_parse_token_string_t cmd_config_speed_specific_value1 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, value1,
 				"10#100#1000#10000#25000#40000#50000#100000#200000#auto");
-cmdline_parse_token_string_t cmd_config_speed_specific_item2 =
+static cmdline_parse_token_string_t cmd_config_speed_specific_item2 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, item2,
 								"duplex");
-cmdline_parse_token_string_t cmd_config_speed_specific_value2 =
+static cmdline_parse_token_string_t cmd_config_speed_specific_value2 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, value2,
 							"half#full#auto");
 
-cmdline_parse_inst_t cmd_config_speed_specific = {
+static cmdline_parse_inst_t cmd_config_speed_specific = {
 	.f = cmd_config_speed_specific_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> speed "
@@ -1706,20 +1706,20 @@ cmd_config_loopback_all_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_loopback_all_port =
+static cmdline_parse_token_string_t cmd_config_loopback_all_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all, port, "port");
-cmdline_parse_token_string_t cmd_config_loopback_all_keyword =
+static cmdline_parse_token_string_t cmd_config_loopback_all_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all, keyword,
 							"config");
-cmdline_parse_token_string_t cmd_config_loopback_all_all =
+static cmdline_parse_token_string_t cmd_config_loopback_all_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all, all, "all");
-cmdline_parse_token_string_t cmd_config_loopback_all_item =
+static cmdline_parse_token_string_t cmd_config_loopback_all_item =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all, item,
 							"loopback");
-cmdline_parse_token_num_t cmd_config_loopback_all_mode =
+static cmdline_parse_token_num_t cmd_config_loopback_all_mode =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_loopback_all, mode, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_config_loopback_all = {
+static cmdline_parse_inst_t cmd_config_loopback_all = {
 	.f = cmd_config_loopback_all_parsed,
 	.data = NULL,
 	.help_str = "port config all loopback <mode>",
@@ -1763,23 +1763,23 @@ cmd_config_loopback_specific_parsed(void *parsed_result,
 }
 
 
-cmdline_parse_token_string_t cmd_config_loopback_specific_port =
+static cmdline_parse_token_string_t cmd_config_loopback_specific_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_specific, port,
 								"port");
-cmdline_parse_token_string_t cmd_config_loopback_specific_keyword =
+static cmdline_parse_token_string_t cmd_config_loopback_specific_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_specific, keyword,
 								"config");
-cmdline_parse_token_num_t cmd_config_loopback_specific_id =
+static cmdline_parse_token_num_t cmd_config_loopback_specific_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_loopback_specific, port_id,
 								RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_loopback_specific_item =
+static cmdline_parse_token_string_t cmd_config_loopback_specific_item =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_specific, item,
 								"loopback");
-cmdline_parse_token_num_t cmd_config_loopback_specific_mode =
+static cmdline_parse_token_num_t cmd_config_loopback_specific_mode =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_loopback_specific, mode,
 			      RTE_UINT32);
 
-cmdline_parse_inst_t cmd_config_loopback_specific = {
+static cmdline_parse_inst_t cmd_config_loopback_specific = {
 	.f = cmd_config_loopback_specific_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> loopback <mode>",
@@ -1852,19 +1852,19 @@ cmd_config_rx_tx_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_rx_tx_port =
+static cmdline_parse_token_string_t cmd_config_rx_tx_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, port, "port");
-cmdline_parse_token_string_t cmd_config_rx_tx_keyword =
+static cmdline_parse_token_string_t cmd_config_rx_tx_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, keyword, "config");
-cmdline_parse_token_string_t cmd_config_rx_tx_all =
+static cmdline_parse_token_string_t cmd_config_rx_tx_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, all, "all");
-cmdline_parse_token_string_t cmd_config_rx_tx_name =
+static cmdline_parse_token_string_t cmd_config_rx_tx_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, name,
 						"rxq#txq#rxd#txd");
-cmdline_parse_token_num_t cmd_config_rx_tx_value =
+static cmdline_parse_token_num_t cmd_config_rx_tx_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rx_tx, value, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_config_rx_tx = {
+static cmdline_parse_inst_t cmd_config_rx_tx = {
 	.f = cmd_config_rx_tx_parsed,
 	.data = NULL,
 	.help_str = "port config all rxq|txq|rxd|txd <value>",
@@ -1932,23 +1932,23 @@ cmd_config_max_pkt_len_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_max_pkt_len_port =
+static cmdline_parse_token_string_t cmd_config_max_pkt_len_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result, port,
 								"port");
-cmdline_parse_token_string_t cmd_config_max_pkt_len_keyword =
+static cmdline_parse_token_string_t cmd_config_max_pkt_len_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result, keyword,
 								"config");
-cmdline_parse_token_string_t cmd_config_max_pkt_len_all =
+static cmdline_parse_token_string_t cmd_config_max_pkt_len_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result, all,
 								"all");
-cmdline_parse_token_string_t cmd_config_max_pkt_len_name =
+static cmdline_parse_token_string_t cmd_config_max_pkt_len_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result, name,
 								"max-pkt-len");
-cmdline_parse_token_num_t cmd_config_max_pkt_len_value =
+static cmdline_parse_token_num_t cmd_config_max_pkt_len_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_max_pkt_len_result, value,
 								RTE_UINT32);
 
-cmdline_parse_inst_t cmd_config_max_pkt_len = {
+static cmdline_parse_inst_t cmd_config_max_pkt_len = {
 	.f = cmd_config_max_pkt_len_parsed,
 	.data = NULL,
 	.help_str = "port config all max-pkt-len <value>",
@@ -2004,23 +2004,23 @@ cmd_config_max_lro_pkt_size_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_port =
+static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
 				 port, "port");
-cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_keyword =
+static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
 				 keyword, "config");
-cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_all =
+static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
 				 all, "all");
-cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_name =
+static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
 				 name, "max-lro-pkt-size");
-cmdline_parse_token_num_t cmd_config_max_lro_pkt_size_value =
+static cmdline_parse_token_num_t cmd_config_max_lro_pkt_size_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
 			      value, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_config_max_lro_pkt_size = {
+static cmdline_parse_inst_t cmd_config_max_lro_pkt_size = {
 	.f = cmd_config_max_lro_pkt_size_parsed,
 	.data = NULL,
 	.help_str = "port config all max-lro-pkt-size <value>",
@@ -2053,23 +2053,23 @@ cmd_config_mtu_parsed(void *parsed_result,
 	port_mtu_set(res->port_id, res->value);
 }
 
-cmdline_parse_token_string_t cmd_config_mtu_port =
+static cmdline_parse_token_string_t cmd_config_mtu_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_mtu_result, port,
 				 "port");
-cmdline_parse_token_string_t cmd_config_mtu_keyword =
+static cmdline_parse_token_string_t cmd_config_mtu_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_mtu_result, keyword,
 				 "config");
-cmdline_parse_token_string_t cmd_config_mtu_mtu =
+static cmdline_parse_token_string_t cmd_config_mtu_mtu =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_mtu_result, keyword,
 				 "mtu");
-cmdline_parse_token_num_t cmd_config_mtu_port_id =
+static cmdline_parse_token_num_t cmd_config_mtu_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_mtu_result, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_num_t cmd_config_mtu_value =
+static cmdline_parse_token_num_t cmd_config_mtu_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_mtu_result, value,
 				 RTE_UINT16);
 
-cmdline_parse_inst_t cmd_config_mtu = {
+static cmdline_parse_inst_t cmd_config_mtu = {
 	.f = cmd_config_mtu_parsed,
 	.data = NULL,
 	.help_str = "port config mtu <port_id> <value>",
@@ -2123,21 +2123,21 @@ cmd_config_rx_mode_flag_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_rx_mode_flag_port =
+static cmdline_parse_token_string_t cmd_config_rx_mode_flag_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, port, "port");
-cmdline_parse_token_string_t cmd_config_rx_mode_flag_keyword =
+static cmdline_parse_token_string_t cmd_config_rx_mode_flag_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, keyword,
 								"config");
-cmdline_parse_token_string_t cmd_config_rx_mode_flag_all =
+static cmdline_parse_token_string_t cmd_config_rx_mode_flag_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, all, "all");
-cmdline_parse_token_string_t cmd_config_rx_mode_flag_name =
+static cmdline_parse_token_string_t cmd_config_rx_mode_flag_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, name,
 					"drop-en");
-cmdline_parse_token_string_t cmd_config_rx_mode_flag_value =
+static cmdline_parse_token_string_t cmd_config_rx_mode_flag_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, value,
 							"on#off");
 
-cmdline_parse_inst_t cmd_config_rx_mode_flag = {
+static cmdline_parse_inst_t cmd_config_rx_mode_flag = {
 	.f = cmd_config_rx_mode_flag_parsed,
 	.data = NULL,
 	.help_str = "port config all drop-en on|off",
@@ -2300,18 +2300,18 @@ cmd_config_rss_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_config_rss_port =
+static cmdline_parse_token_string_t cmd_config_rss_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, port, "port");
-cmdline_parse_token_string_t cmd_config_rss_keyword =
+static cmdline_parse_token_string_t cmd_config_rss_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, keyword, "config");
-cmdline_parse_token_string_t cmd_config_rss_all =
+static cmdline_parse_token_string_t cmd_config_rss_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, all, "all");
-cmdline_parse_token_string_t cmd_config_rss_name =
+static cmdline_parse_token_string_t cmd_config_rss_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, name, "rss");
-cmdline_parse_token_string_t cmd_config_rss_value =
+static cmdline_parse_token_string_t cmd_config_rss_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, value, NULL);
 
-cmdline_parse_inst_t cmd_config_rss = {
+static cmdline_parse_inst_t cmd_config_rss = {
 	.f = cmd_config_rss_parsed,
 	.data = NULL,
 	.help_str = "port config all rss "
@@ -2413,18 +2413,18 @@ cmd_config_rss_hash_key_parsed(void *parsed_result,
 			hash_key_size);
 }
 
-cmdline_parse_token_string_t cmd_config_rss_hash_key_port =
+static cmdline_parse_token_string_t cmd_config_rss_hash_key_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, port, "port");
-cmdline_parse_token_string_t cmd_config_rss_hash_key_config =
+static cmdline_parse_token_string_t cmd_config_rss_hash_key_config =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, config,
 				 "config");
-cmdline_parse_token_num_t cmd_config_rss_hash_key_port_id =
+static cmdline_parse_token_num_t cmd_config_rss_hash_key_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rss_hash_key, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_hash_key =
+static cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_hash_key =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key,
 				 rss_hash_key, "rss-hash-key");
-cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_type =
+static cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, rss_type,
 				 "ipv4#ipv4-frag#ipv4-tcp#ipv4-udp#ipv4-sctp#"
 				 "ipv4-other#ipv6#ipv6-frag#ipv6-tcp#ipv6-udp#"
@@ -2433,10 +2433,10 @@ cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_type =
 				 "l3-src-only#l3-dst-only#l4-src-only#l4-dst-only#"
 				 "l2-src-only#l2-dst-only#s-vlan#c-vlan#"
 				 "l2tpv3#esp#ah#pfcp#pppoe#gtpu#ecpri#mpls#l2tpv2");
-cmdline_parse_token_string_t cmd_config_rss_hash_key_value =
+static cmdline_parse_token_string_t cmd_config_rss_hash_key_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, key, NULL);
 
-cmdline_parse_inst_t cmd_config_rss_hash_key = {
+static cmdline_parse_inst_t cmd_config_rss_hash_key = {
 	.f = cmd_config_rss_hash_key_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> rss-hash-key "
@@ -2508,26 +2508,26 @@ cmd_cleanup_txq_mbufs_parsed(void *parsed_result,
 	       port_id, queue_id, ret);
 }
 
-cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_port =
+static cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, port,
 				 "port");
-cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_cleanup =
+static cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_cleanup =
 	TOKEN_STRING_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, keyword,
 				 "cleanup");
-cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_port_id =
+static cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, port_id,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_txq =
+static cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_txq =
 	TOKEN_STRING_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, name,
 				 "txq");
-cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_queue_id =
+static cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_queue_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, queue_id,
 			      RTE_UINT16);
-cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_free_cnt =
+static cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_free_cnt =
 	TOKEN_NUM_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, free_cnt,
 			      RTE_UINT32);
 
-cmdline_parse_inst_t cmd_cleanup_txq_mbufs = {
+static cmdline_parse_inst_t cmd_cleanup_txq_mbufs = {
 	.f = cmd_cleanup_txq_mbufs_parsed,
 	.data = NULL,
 	.help_str = "port cleanup <port_id> txq <queue_id> <free_cnt>",
@@ -2601,29 +2601,29 @@ cmd_config_rxtx_ring_size_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->portid, 0, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_rxtx_ring_size_port =
+static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
 				 port, "port");
-cmdline_parse_token_string_t cmd_config_rxtx_ring_size_config =
+static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_config =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
 				 config, "config");
-cmdline_parse_token_num_t cmd_config_rxtx_ring_size_portid =
+static cmdline_parse_token_num_t cmd_config_rxtx_ring_size_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_ring_size,
 				 portid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rxtxq =
+static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rxtxq =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
 				 rxtxq, "rxq#txq");
-cmdline_parse_token_num_t cmd_config_rxtx_ring_size_qid =
+static cmdline_parse_token_num_t cmd_config_rxtx_ring_size_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_ring_size,
 			      qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rsize =
+static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rsize =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
 				 rsize, "ring_size");
-cmdline_parse_token_num_t cmd_config_rxtx_ring_size_size =
+static cmdline_parse_token_num_t cmd_config_rxtx_ring_size_size =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_ring_size,
 			      size, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_config_rxtx_ring_size = {
+static cmdline_parse_inst_t cmd_config_rxtx_ring_size = {
 	.f = cmd_config_rxtx_ring_size_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> rxq|txq <queue_id> ring_size <value>",
@@ -2707,19 +2707,19 @@ cmd_config_rxtx_queue_parsed(void *parsed_result,
 		fprintf(stderr, "Function not supported in PMD\n");
 }
 
-cmdline_parse_token_string_t cmd_config_rxtx_queue_port =
+static cmdline_parse_token_string_t cmd_config_rxtx_queue_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_queue, port, "port");
-cmdline_parse_token_num_t cmd_config_rxtx_queue_portid =
+static cmdline_parse_token_num_t cmd_config_rxtx_queue_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_queue, portid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rxtx_queue_rxtxq =
+static cmdline_parse_token_string_t cmd_config_rxtx_queue_rxtxq =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_queue, rxtxq, "rxq#txq");
-cmdline_parse_token_num_t cmd_config_rxtx_queue_qid =
+static cmdline_parse_token_num_t cmd_config_rxtx_queue_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_queue, qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rxtx_queue_opname =
+static cmdline_parse_token_string_t cmd_config_rxtx_queue_opname =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_queue, opname,
 						"start#stop");
 
-cmdline_parse_inst_t cmd_config_rxtx_queue = {
+static cmdline_parse_inst_t cmd_config_rxtx_queue = {
 	.f = cmd_config_rxtx_queue_parsed,
 	.data = NULL,
 	.help_str = "port <port_id> rxq|txq <queue_id> start|stop",
@@ -2785,26 +2785,26 @@ cmd_config_deferred_start_rxtx_queue_parsed(void *parsed_result,
 		cmd_reconfig_device_queue(res->port_id, 0, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_port =
+static cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						port, "port");
-cmdline_parse_token_num_t cmd_config_deferred_start_rxtx_queue_port_id =
+static cmdline_parse_token_num_t cmd_config_deferred_start_rxtx_queue_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_rxtxq =
+static cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_rxtxq =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						rxtxq, "rxq#txq");
-cmdline_parse_token_num_t cmd_config_deferred_start_rxtx_queue_qid =
+static cmdline_parse_token_num_t cmd_config_deferred_start_rxtx_queue_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_opname =
+static cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_opname =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						opname, "deferred_start");
-cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_state =
+static cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_state =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						state, "on#off");
 
-cmdline_parse_inst_t cmd_config_deferred_start_rxtx_queue = {
+static cmdline_parse_inst_t cmd_config_deferred_start_rxtx_queue = {
 	.f = cmd_config_deferred_start_rxtx_queue_parsed,
 	.data = NULL,
 	.help_str = "port <port_id> rxq|txq <queue_id> deferred_start on|off",
@@ -2829,15 +2829,15 @@ struct cmd_setup_rxtx_queue {
 };
 
 /* Common CLI fields for queue setup */
-cmdline_parse_token_string_t cmd_setup_rxtx_queue_port =
+static cmdline_parse_token_string_t cmd_setup_rxtx_queue_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_setup_rxtx_queue, port, "port");
-cmdline_parse_token_num_t cmd_setup_rxtx_queue_portid =
+static cmdline_parse_token_num_t cmd_setup_rxtx_queue_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_setup_rxtx_queue, portid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setup_rxtx_queue_rxtxq =
+static cmdline_parse_token_string_t cmd_setup_rxtx_queue_rxtxq =
 	TOKEN_STRING_INITIALIZER(struct cmd_setup_rxtx_queue, rxtxq, "rxq#txq");
-cmdline_parse_token_num_t cmd_setup_rxtx_queue_qid =
+static cmdline_parse_token_num_t cmd_setup_rxtx_queue_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_setup_rxtx_queue, qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setup_rxtx_queue_setup =
+static cmdline_parse_token_string_t cmd_setup_rxtx_queue_setup =
 	TOKEN_STRING_INITIALIZER(struct cmd_setup_rxtx_queue, setup, "setup");
 
 static void
@@ -2919,7 +2919,7 @@ cmd_setup_rxtx_queue_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_setup_rxtx_queue = {
+static cmdline_parse_inst_t cmd_setup_rxtx_queue = {
 	.f = cmd_setup_rxtx_queue_parsed,
 	.data = NULL,
 	.help_str = "port <port_id> rxq|txq <queue_idx> setup",
@@ -3047,20 +3047,20 @@ cmd_set_rss_reta_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_config_rss_reta_port =
+static cmdline_parse_token_string_t cmd_config_rss_reta_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, port, "port");
-cmdline_parse_token_string_t cmd_config_rss_reta_keyword =
+static cmdline_parse_token_string_t cmd_config_rss_reta_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, keyword, "config");
-cmdline_parse_token_num_t cmd_config_rss_reta_port_id =
+static cmdline_parse_token_num_t cmd_config_rss_reta_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rss_reta, port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rss_reta_name =
+static cmdline_parse_token_string_t cmd_config_rss_reta_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, name, "rss");
-cmdline_parse_token_string_t cmd_config_rss_reta_list_name =
+static cmdline_parse_token_string_t cmd_config_rss_reta_list_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, list_name, "reta");
-cmdline_parse_token_string_t cmd_config_rss_reta_list_of_items =
+static cmdline_parse_token_string_t cmd_config_rss_reta_list_of_items =
         TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, list_of_items,
                                  NULL);
-cmdline_parse_inst_t cmd_config_rss_reta = {
+static cmdline_parse_inst_t cmd_config_rss_reta = {
 	.f = cmd_set_rss_reta_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> rss reta <hash,queue[,hash,queue]*>",
@@ -3160,23 +3160,23 @@ cmd_showport_reta_parsed(void *parsed_result,
 	port_rss_reta_info(res->port_id, reta_conf, res->size);
 }
 
-cmdline_parse_token_string_t cmd_showport_reta_show =
+static cmdline_parse_token_string_t cmd_showport_reta_show =
 	TOKEN_STRING_INITIALIZER(struct  cmd_showport_reta, show, "show");
-cmdline_parse_token_string_t cmd_showport_reta_port =
+static cmdline_parse_token_string_t cmd_showport_reta_port =
 	TOKEN_STRING_INITIALIZER(struct  cmd_showport_reta, port, "port");
-cmdline_parse_token_num_t cmd_showport_reta_port_id =
+static cmdline_parse_token_num_t cmd_showport_reta_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_reta, port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_showport_reta_rss =
+static cmdline_parse_token_string_t cmd_showport_reta_rss =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_reta, rss, "rss");
-cmdline_parse_token_string_t cmd_showport_reta_reta =
+static cmdline_parse_token_string_t cmd_showport_reta_reta =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_reta, reta, "reta");
-cmdline_parse_token_num_t cmd_showport_reta_size =
+static cmdline_parse_token_num_t cmd_showport_reta_size =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_reta, size, RTE_UINT16);
-cmdline_parse_token_string_t cmd_showport_reta_list_of_items =
+static cmdline_parse_token_string_t cmd_showport_reta_list_of_items =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_reta,
 					list_of_items, NULL);
 
-cmdline_parse_inst_t cmd_showport_reta = {
+static cmdline_parse_inst_t cmd_showport_reta = {
 	.f = cmd_showport_reta_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rss reta <size> <mask0[,mask1]*>",
@@ -3211,20 +3211,20 @@ static void cmd_showport_rss_hash_parsed(void *parsed_result,
 	port_rss_hash_conf_show(res->port_id, show_rss_key != NULL);
 }
 
-cmdline_parse_token_string_t cmd_showport_rss_hash_show =
+static cmdline_parse_token_string_t cmd_showport_rss_hash_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, show, "show");
-cmdline_parse_token_string_t cmd_showport_rss_hash_port =
+static cmdline_parse_token_string_t cmd_showport_rss_hash_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, port, "port");
-cmdline_parse_token_num_t cmd_showport_rss_hash_port_id =
+static cmdline_parse_token_num_t cmd_showport_rss_hash_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_rss_hash, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_string_t cmd_showport_rss_hash_rss_hash =
+static cmdline_parse_token_string_t cmd_showport_rss_hash_rss_hash =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, rss_hash,
 				 "rss-hash");
-cmdline_parse_token_string_t cmd_showport_rss_hash_rss_key =
+static cmdline_parse_token_string_t cmd_showport_rss_hash_rss_key =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, key, "key");
 
-cmdline_parse_inst_t cmd_showport_rss_hash = {
+static cmdline_parse_inst_t cmd_showport_rss_hash = {
 	.f = cmd_showport_rss_hash_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rss-hash",
@@ -3237,7 +3237,7 @@ cmdline_parse_inst_t cmd_showport_rss_hash = {
 	},
 };
 
-cmdline_parse_inst_t cmd_showport_rss_hash_key = {
+static cmdline_parse_inst_t cmd_showport_rss_hash_key = {
 	.f = cmd_showport_rss_hash_parsed,
 	.data = (void *)1,
 	.help_str = "show port <port_id> rss-hash key",
@@ -3326,26 +3326,26 @@ cmd_config_dcb_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_dcb_port =
+static cmdline_parse_token_string_t cmd_config_dcb_port =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, port, "port");
-cmdline_parse_token_string_t cmd_config_dcb_config =
+static cmdline_parse_token_string_t cmd_config_dcb_config =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, config, "config");
-cmdline_parse_token_num_t cmd_config_dcb_port_id =
+static cmdline_parse_token_num_t cmd_config_dcb_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_dcb, port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_dcb_dcb =
+static cmdline_parse_token_string_t cmd_config_dcb_dcb =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, dcb, "dcb");
-cmdline_parse_token_string_t cmd_config_dcb_vt =
+static cmdline_parse_token_string_t cmd_config_dcb_vt =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, vt, "vt");
-cmdline_parse_token_string_t cmd_config_dcb_vt_en =
+static cmdline_parse_token_string_t cmd_config_dcb_vt_en =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, vt_en, "on#off");
-cmdline_parse_token_num_t cmd_config_dcb_num_tcs =
+static cmdline_parse_token_num_t cmd_config_dcb_num_tcs =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_dcb, num_tcs, RTE_UINT8);
-cmdline_parse_token_string_t cmd_config_dcb_pfc=
+static cmdline_parse_token_string_t cmd_config_dcb_pfc =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, pfc, "pfc");
-cmdline_parse_token_string_t cmd_config_dcb_pfc_en =
+static cmdline_parse_token_string_t cmd_config_dcb_pfc_en =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, pfc_en, "on#off");
 
-cmdline_parse_inst_t cmd_config_dcb = {
+static cmdline_parse_inst_t cmd_config_dcb = {
 	.f = cmd_config_dcb_parsed,
 	.data = NULL,
 	.help_str = "port config <port-id> dcb vt on|off <num_tcs> pfc on|off",
@@ -3430,18 +3430,18 @@ cmd_config_burst_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_burst_port =
+static cmdline_parse_token_string_t cmd_config_burst_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, port, "port");
-cmdline_parse_token_string_t cmd_config_burst_keyword =
+static cmdline_parse_token_string_t cmd_config_burst_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, keyword, "config");
-cmdline_parse_token_string_t cmd_config_burst_all =
+static cmdline_parse_token_string_t cmd_config_burst_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, all, "all");
-cmdline_parse_token_string_t cmd_config_burst_name =
+static cmdline_parse_token_string_t cmd_config_burst_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, name, "burst");
-cmdline_parse_token_num_t cmd_config_burst_value =
+static cmdline_parse_token_num_t cmd_config_burst_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_burst, value, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_config_burst = {
+static cmdline_parse_inst_t cmd_config_burst = {
 	.f = cmd_config_burst_parsed,
 	.data = NULL,
 	.help_str = "port config all burst <value>",
@@ -3498,19 +3498,19 @@ cmd_config_thresh_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_thresh_port =
+static cmdline_parse_token_string_t cmd_config_thresh_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, port, "port");
-cmdline_parse_token_string_t cmd_config_thresh_keyword =
+static cmdline_parse_token_string_t cmd_config_thresh_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, keyword, "config");
-cmdline_parse_token_string_t cmd_config_thresh_all =
+static cmdline_parse_token_string_t cmd_config_thresh_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, all, "all");
-cmdline_parse_token_string_t cmd_config_thresh_name =
+static cmdline_parse_token_string_t cmd_config_thresh_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, name,
 				"txpt#txht#txwt#rxpt#rxht#rxwt");
-cmdline_parse_token_num_t cmd_config_thresh_value =
+static cmdline_parse_token_num_t cmd_config_thresh_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_thresh, value, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_config_thresh = {
+static cmdline_parse_inst_t cmd_config_thresh = {
 	.f = cmd_config_thresh_parsed,
 	.data = NULL,
 	.help_str = "port config all txpt|txht|txwt|rxpt|rxht|rxwt <value>",
@@ -3561,20 +3561,20 @@ cmd_config_threshold_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_threshold_port =
+static cmdline_parse_token_string_t cmd_config_threshold_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, port, "port");
-cmdline_parse_token_string_t cmd_config_threshold_keyword =
+static cmdline_parse_token_string_t cmd_config_threshold_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, keyword,
 								"config");
-cmdline_parse_token_string_t cmd_config_threshold_all =
+static cmdline_parse_token_string_t cmd_config_threshold_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, all, "all");
-cmdline_parse_token_string_t cmd_config_threshold_name =
+static cmdline_parse_token_string_t cmd_config_threshold_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, name,
 						"txfreet#txrst#rxfreet");
-cmdline_parse_token_num_t cmd_config_threshold_value =
+static cmdline_parse_token_num_t cmd_config_threshold_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_threshold, value, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_config_threshold = {
+static cmdline_parse_inst_t cmd_config_threshold = {
 	.f = cmd_config_threshold_parsed,
 	.data = NULL,
 	.help_str = "port config all txfreet|txrst|rxfreet <value>",
@@ -3600,10 +3600,10 @@ static void cmd_stop_parsed(__rte_unused void *parsed_result,
 	stop_packet_forwarding();
 }
 
-cmdline_parse_token_string_t cmd_stop_stop =
+static cmdline_parse_token_string_t cmd_stop_stop =
 	TOKEN_STRING_INITIALIZER(struct cmd_stop_result, stop, "stop");
 
-cmdline_parse_inst_t cmd_stop = {
+static cmdline_parse_inst_t cmd_stop = {
 	.f = cmd_stop_parsed,
 	.data = NULL,
 	.help_str = "stop: Stop packet forwarding",
@@ -3724,17 +3724,17 @@ static void cmd_set_list_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_set_list_keyword =
+static cmdline_parse_token_string_t cmd_set_list_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_list_result, cmd_keyword,
 				 "set");
-cmdline_parse_token_string_t cmd_set_list_name =
+static cmdline_parse_token_string_t cmd_set_list_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_list_result, list_name,
 				 "corelist#portlist");
-cmdline_parse_token_string_t cmd_set_list_of_items =
+static cmdline_parse_token_string_t cmd_set_list_of_items =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_list_result, list_of_items,
 				 NULL);
 
-cmdline_parse_inst_t cmd_set_fwd_list = {
+static cmdline_parse_inst_t cmd_set_fwd_list = {
 	.f = cmd_set_list_parsed,
 	.data = NULL,
 	.help_str = "set corelist|portlist <list0[,list1]*>",
@@ -3773,15 +3773,15 @@ static void cmd_set_mask_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_setmask_set =
+static cmdline_parse_token_string_t cmd_setmask_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_setmask_result, set, "set");
-cmdline_parse_token_string_t cmd_setmask_mask =
+static cmdline_parse_token_string_t cmd_setmask_mask =
 	TOKEN_STRING_INITIALIZER(struct cmd_setmask_result, mask,
 				 "coremask#portmask");
-cmdline_parse_token_num_t cmd_setmask_value =
+static cmdline_parse_token_num_t cmd_setmask_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_setmask_result, hexavalue, RTE_UINT64);
 
-cmdline_parse_inst_t cmd_set_fwd_mask = {
+static cmdline_parse_inst_t cmd_set_fwd_mask = {
 	.f = cmd_set_mask_parsed,
 	.data = NULL,
 	.help_str = "set coremask|portmask <hexadecimal value>",
@@ -3819,15 +3819,15 @@ static void cmd_set_parsed(void *parsed_result,
 		set_verbose_level(res->value);
 }
 
-cmdline_parse_token_string_t cmd_set_set =
+static cmdline_parse_token_string_t cmd_set_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_result, set, "set");
-cmdline_parse_token_string_t cmd_set_what =
+static cmdline_parse_token_string_t cmd_set_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_result, what,
 				 "nbport#nbcore#burst#verbose");
-cmdline_parse_token_num_t cmd_set_value =
+static cmdline_parse_token_num_t cmd_set_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_result, value, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_set_numbers = {
+static cmdline_parse_inst_t cmd_set_numbers = {
 	.f = cmd_set_parsed,
 	.data = NULL,
 	.help_str = "set nbport|nbcore|burst|verbose <value>",
@@ -3866,16 +3866,16 @@ cmd_set_log_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_set_log_set =
+static cmdline_parse_token_string_t cmd_set_log_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_log_result, set, "set");
-cmdline_parse_token_string_t cmd_set_log_log =
+static cmdline_parse_token_string_t cmd_set_log_log =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_log_result, log, "log");
-cmdline_parse_token_string_t cmd_set_log_type =
+static cmdline_parse_token_string_t cmd_set_log_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_log_result, type, NULL);
-cmdline_parse_token_num_t cmd_set_log_level =
+static cmdline_parse_token_num_t cmd_set_log_level =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_log_result, level, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_set_log = {
+static cmdline_parse_inst_t cmd_set_log = {
 	.f = cmd_set_log_parsed,
 	.data = NULL,
 	.help_str = "set log global|<type> <level>",
@@ -3913,17 +3913,17 @@ cmd_set_rxoffs_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 0, 1);
 }
 
-cmdline_parse_token_string_t cmd_set_rxoffs_keyword =
+static cmdline_parse_token_string_t cmd_set_rxoffs_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxoffs_result,
 				 cmd_keyword, "set");
-cmdline_parse_token_string_t cmd_set_rxoffs_name =
+static cmdline_parse_token_string_t cmd_set_rxoffs_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxoffs_result,
 				 rxoffs, "rxoffs");
-cmdline_parse_token_string_t cmd_set_rxoffs_offsets =
+static cmdline_parse_token_string_t cmd_set_rxoffs_offsets =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxoffs_result,
 				 seg_offsets, NULL);
 
-cmdline_parse_inst_t cmd_set_rxoffs = {
+static cmdline_parse_inst_t cmd_set_rxoffs = {
 	.f = cmd_set_rxoffs_parsed,
 	.data = NULL,
 	.help_str = "set rxoffs <len0[,len1]*>",
@@ -3960,17 +3960,17 @@ cmd_set_rxpkts_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 0, 1);
 }
 
-cmdline_parse_token_string_t cmd_set_rxpkts_keyword =
+static cmdline_parse_token_string_t cmd_set_rxpkts_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxpkts_result,
 				 cmd_keyword, "set");
-cmdline_parse_token_string_t cmd_set_rxpkts_name =
+static cmdline_parse_token_string_t cmd_set_rxpkts_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxpkts_result,
 				 rxpkts, "rxpkts");
-cmdline_parse_token_string_t cmd_set_rxpkts_lengths =
+static cmdline_parse_token_string_t cmd_set_rxpkts_lengths =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxpkts_result,
 				 seg_lengths, NULL);
 
-cmdline_parse_inst_t cmd_set_rxpkts = {
+static cmdline_parse_inst_t cmd_set_rxpkts = {
 	.f = cmd_set_rxpkts_parsed,
 	.data = NULL,
 	.help_str = "set rxpkts <len0[,len1]*>",
@@ -4006,17 +4006,17 @@ cmd_set_txpkts_parsed(void *parsed_result,
 		set_tx_pkt_segments(seg_lengths, nb_segs);
 }
 
-cmdline_parse_token_string_t cmd_set_txpkts_keyword =
+static cmdline_parse_token_string_t cmd_set_txpkts_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txpkts_result,
 				 cmd_keyword, "set");
-cmdline_parse_token_string_t cmd_set_txpkts_name =
+static cmdline_parse_token_string_t cmd_set_txpkts_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txpkts_result,
 				 txpkts, "txpkts");
-cmdline_parse_token_string_t cmd_set_txpkts_lengths =
+static cmdline_parse_token_string_t cmd_set_txpkts_lengths =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txpkts_result,
 				 seg_lengths, NULL);
 
-cmdline_parse_inst_t cmd_set_txpkts = {
+static cmdline_parse_inst_t cmd_set_txpkts = {
 	.f = cmd_set_txpkts_parsed,
 	.data = NULL,
 	.help_str = "set txpkts <len0[,len1]*>",
@@ -4047,17 +4047,17 @@ cmd_set_txsplit_parsed(void *parsed_result,
 	set_tx_pkt_split(res->mode);
 }
 
-cmdline_parse_token_string_t cmd_set_txsplit_keyword =
+static cmdline_parse_token_string_t cmd_set_txsplit_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txsplit_result,
 				 cmd_keyword, "set");
-cmdline_parse_token_string_t cmd_set_txsplit_name =
+static cmdline_parse_token_string_t cmd_set_txsplit_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txsplit_result,
 				 txsplit, "txsplit");
-cmdline_parse_token_string_t cmd_set_txsplit_mode =
+static cmdline_parse_token_string_t cmd_set_txsplit_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txsplit_result,
 				 mode, NULL);
 
-cmdline_parse_inst_t cmd_set_txsplit = {
+static cmdline_parse_inst_t cmd_set_txsplit = {
 	.f = cmd_set_txsplit_parsed,
 	.data = NULL,
 	.help_str = "set txsplit on|off|rand",
@@ -4093,17 +4093,17 @@ cmd_set_txtimes_parsed(void *parsed_result,
 		set_tx_pkt_times(tx_times);
 }
 
-cmdline_parse_token_string_t cmd_set_txtimes_keyword =
+static cmdline_parse_token_string_t cmd_set_txtimes_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txtimes_result,
 				 cmd_keyword, "set");
-cmdline_parse_token_string_t cmd_set_txtimes_name =
+static cmdline_parse_token_string_t cmd_set_txtimes_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txtimes_result,
 				 txtimes, "txtimes");
-cmdline_parse_token_string_t cmd_set_txtimes_value =
+static cmdline_parse_token_string_t cmd_set_txtimes_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txtimes_result,
 				 tx_times, NULL);
 
-cmdline_parse_inst_t cmd_set_txtimes = {
+static cmdline_parse_inst_t cmd_set_txtimes = {
 	.f = cmd_set_txtimes_parsed,
 	.data = NULL,
 	.help_str = "set txtimes <inter_burst>,<intra_burst>",
@@ -4136,20 +4136,20 @@ cmd_rx_vlan_filter_all_parsed(void *parsed_result,
 		rx_vlan_all_filter_set(res->port_id, 0);
 }
 
-cmdline_parse_token_string_t cmd_rx_vlan_filter_all_rx_vlan =
+static cmdline_parse_token_string_t cmd_rx_vlan_filter_all_rx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
 				 rx_vlan, "rx_vlan");
-cmdline_parse_token_string_t cmd_rx_vlan_filter_all_what =
+static cmdline_parse_token_string_t cmd_rx_vlan_filter_all_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
 				 what, "add#rm");
-cmdline_parse_token_string_t cmd_rx_vlan_filter_all_all =
+static cmdline_parse_token_string_t cmd_rx_vlan_filter_all_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
 				 all, "all");
-cmdline_parse_token_num_t cmd_rx_vlan_filter_all_portid =
+static cmdline_parse_token_num_t cmd_rx_vlan_filter_all_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_rx_vlan_filter_all = {
+static cmdline_parse_inst_t cmd_rx_vlan_filter_all = {
 	.f = cmd_rx_vlan_filter_all_parsed,
 	.data = NULL,
 	.help_str = "rx_vlan add|rm all <port_id>: "
@@ -4236,23 +4236,23 @@ cmd_vlan_offload_parsed(void *parsed_result,
 	return;
 }
 
-cmdline_parse_token_string_t cmd_vlan_offload_vlan =
+static cmdline_parse_token_string_t cmd_vlan_offload_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
 				 vlan, "vlan");
-cmdline_parse_token_string_t cmd_vlan_offload_set =
+static cmdline_parse_token_string_t cmd_vlan_offload_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
 				 set, "set");
-cmdline_parse_token_string_t cmd_vlan_offload_what =
+static cmdline_parse_token_string_t cmd_vlan_offload_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
 				what, "strip#filter#qinq_strip#extend#stripq");
-cmdline_parse_token_string_t cmd_vlan_offload_on =
+static cmdline_parse_token_string_t cmd_vlan_offload_on =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
 			      on, "on#off");
-cmdline_parse_token_string_t cmd_vlan_offload_portid =
+static cmdline_parse_token_string_t cmd_vlan_offload_portid =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
 			      port_id, NULL);
 
-cmdline_parse_inst_t cmd_vlan_offload = {
+static cmdline_parse_inst_t cmd_vlan_offload = {
 	.f = cmd_vlan_offload_parsed,
 	.data = NULL,
 	.help_str = "vlan set strip|filter|qinq_strip|extend|stripq on|off "
@@ -4297,26 +4297,26 @@ cmd_vlan_tpid_parsed(void *parsed_result,
 	vlan_tpid_set(res->port_id, vlan_type, res->tp_id);
 }
 
-cmdline_parse_token_string_t cmd_vlan_tpid_vlan =
+static cmdline_parse_token_string_t cmd_vlan_tpid_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
 				 vlan, "vlan");
-cmdline_parse_token_string_t cmd_vlan_tpid_set =
+static cmdline_parse_token_string_t cmd_vlan_tpid_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
 				 set, "set");
-cmdline_parse_token_string_t cmd_vlan_type =
+static cmdline_parse_token_string_t cmd_vlan_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
 				 vlan_type, "inner#outer");
-cmdline_parse_token_string_t cmd_vlan_tpid_what =
+static cmdline_parse_token_string_t cmd_vlan_tpid_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
 				 what, "tpid");
-cmdline_parse_token_num_t cmd_vlan_tpid_tpid =
+static cmdline_parse_token_num_t cmd_vlan_tpid_tpid =
 	TOKEN_NUM_INITIALIZER(struct cmd_vlan_tpid_result,
 			      tp_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vlan_tpid_portid =
+static cmdline_parse_token_num_t cmd_vlan_tpid_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_vlan_tpid_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_vlan_tpid = {
+static cmdline_parse_inst_t cmd_vlan_tpid = {
 	.f = cmd_vlan_tpid_parsed,
 	.data = NULL,
 	.help_str = "vlan set inner|outer tpid <tp_id> <port_id>: "
@@ -4353,20 +4353,20 @@ cmd_rx_vlan_filter_parsed(void *parsed_result,
 		rx_vft_set(res->port_id, res->vlan_id, 0);
 }
 
-cmdline_parse_token_string_t cmd_rx_vlan_filter_rx_vlan =
+static cmdline_parse_token_string_t cmd_rx_vlan_filter_rx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_result,
 				 rx_vlan, "rx_vlan");
-cmdline_parse_token_string_t cmd_rx_vlan_filter_what =
+static cmdline_parse_token_string_t cmd_rx_vlan_filter_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_result,
 				 what, "add#rm");
-cmdline_parse_token_num_t cmd_rx_vlan_filter_vlanid =
+static cmdline_parse_token_num_t cmd_rx_vlan_filter_vlanid =
 	TOKEN_NUM_INITIALIZER(struct cmd_rx_vlan_filter_result,
 			      vlan_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_rx_vlan_filter_portid =
+static cmdline_parse_token_num_t cmd_rx_vlan_filter_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_rx_vlan_filter_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_rx_vlan_filter = {
+static cmdline_parse_inst_t cmd_rx_vlan_filter = {
 	.f = cmd_rx_vlan_filter_parsed,
 	.data = NULL,
 	.help_str = "rx_vlan add|rm <vlan_id> <port_id>: "
@@ -4409,20 +4409,20 @@ cmd_tx_vlan_set_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_tx_vlan_set_tx_vlan =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_tx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_result,
 				 tx_vlan, "tx_vlan");
-cmdline_parse_token_string_t cmd_tx_vlan_set_set =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_result,
 				 set, "set");
-cmdline_parse_token_num_t cmd_tx_vlan_set_portid =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tx_vlan_set_vlanid =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_vlanid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_result,
 			      vlan_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tx_vlan_set = {
+static cmdline_parse_inst_t cmd_tx_vlan_set = {
 	.f = cmd_tx_vlan_set_parsed,
 	.data = NULL,
 	.help_str = "tx_vlan set <port_id> <vlan_id>: "
@@ -4466,23 +4466,23 @@ cmd_tx_vlan_set_qinq_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_tx_vlan =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_tx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
 		tx_vlan, "tx_vlan");
-cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_set =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
 		set, "set");
-cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_portid =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
 		port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
 		vlan_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid_outer =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid_outer =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
 		vlan_id_outer, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tx_vlan_set_qinq = {
+static cmdline_parse_inst_t cmd_tx_vlan_set_qinq = {
 	.f = cmd_tx_vlan_set_qinq_parsed,
 	.data = NULL,
 	.help_str = "tx_vlan set <port_id> <vlan_id> <outer_vlan_id>: "
@@ -4521,26 +4521,26 @@ cmd_tx_vlan_set_pvid_parsed(void *parsed_result,
 		tx_vlan_pvid_set(res->port_id, res->vlan_id, 0);
 }
 
-cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_tx_vlan =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_tx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 				 tx_vlan, "tx_vlan");
-cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_set =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 				 set, "set");
-cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_pvid =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_pvid =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 				 pvid, "pvid");
-cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_port_id =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 			     port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_vlan_id =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_vlan_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 			      vlan_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_mode =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 				 mode, "on#off");
 
-cmdline_parse_inst_t cmd_tx_vlan_set_pvid = {
+static cmdline_parse_inst_t cmd_tx_vlan_set_pvid = {
 	.f = cmd_tx_vlan_set_pvid_parsed,
 	.data = NULL,
 	.help_str = "tx_vlan set pvid <port_id> <vlan_id> on|off",
@@ -4582,17 +4582,17 @@ cmd_tx_vlan_reset_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_tx_vlan_reset_tx_vlan =
+static cmdline_parse_token_string_t cmd_tx_vlan_reset_tx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_reset_result,
 				 tx_vlan, "tx_vlan");
-cmdline_parse_token_string_t cmd_tx_vlan_reset_reset =
+static cmdline_parse_token_string_t cmd_tx_vlan_reset_reset =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_reset_result,
 				 reset, "reset");
-cmdline_parse_token_num_t cmd_tx_vlan_reset_portid =
+static cmdline_parse_token_num_t cmd_tx_vlan_reset_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_reset_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tx_vlan_reset = {
+static cmdline_parse_inst_t cmd_tx_vlan_reset = {
 	.f = cmd_tx_vlan_reset_parsed,
 	.data = NULL,
 	.help_str = "tx_vlan reset <port_id>: Disable hardware insertion of a "
@@ -4794,23 +4794,23 @@ cmd_csum_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_csum_csum =
+static cmdline_parse_token_string_t cmd_csum_csum =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
 				csum, "csum");
-cmdline_parse_token_string_t cmd_csum_mode =
+static cmdline_parse_token_string_t cmd_csum_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
 				mode, "set");
-cmdline_parse_token_string_t cmd_csum_proto =
+static cmdline_parse_token_string_t cmd_csum_proto =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
 				proto, "ip#tcp#udp#sctp#outer-ip#outer-udp");
-cmdline_parse_token_string_t cmd_csum_hwsw =
+static cmdline_parse_token_string_t cmd_csum_hwsw =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
 				hwsw, "hw#sw");
-cmdline_parse_token_num_t cmd_csum_portid =
+static cmdline_parse_token_num_t cmd_csum_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_csum_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_csum_set = {
+static cmdline_parse_inst_t cmd_csum_set = {
 	.f = cmd_csum_parsed,
 	.data = NULL,
 	.help_str = "csum set ip|tcp|udp|sctp|outer-ip|outer-udp hw|sw <port_id>: "
@@ -4826,11 +4826,11 @@ cmdline_parse_inst_t cmd_csum_set = {
 	},
 };
 
-cmdline_parse_token_string_t cmd_csum_mode_show =
+static cmdline_parse_token_string_t cmd_csum_mode_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
 				mode, "show");
 
-cmdline_parse_inst_t cmd_csum_show = {
+static cmdline_parse_inst_t cmd_csum_show = {
 	.f = cmd_csum_parsed,
 	.data = NULL,
 	.help_str = "csum show <port_id>: Show checksum offload configuration",
@@ -4868,20 +4868,20 @@ cmd_csum_tunnel_parsed(void *parsed_result,
 	csum_show(res->port_id);
 }
 
-cmdline_parse_token_string_t cmd_csum_tunnel_csum =
+static cmdline_parse_token_string_t cmd_csum_tunnel_csum =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
 				csum, "csum");
-cmdline_parse_token_string_t cmd_csum_tunnel_parse =
+static cmdline_parse_token_string_t cmd_csum_tunnel_parse =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
 				parse, "parse-tunnel");
-cmdline_parse_token_string_t cmd_csum_tunnel_onoff =
+static cmdline_parse_token_string_t cmd_csum_tunnel_onoff =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
 				onoff, "on#off");
-cmdline_parse_token_num_t cmd_csum_tunnel_portid =
+static cmdline_parse_token_num_t cmd_csum_tunnel_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_csum_tunnel_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_csum_tunnel = {
+static cmdline_parse_inst_t cmd_csum_tunnel = {
 	.f = cmd_csum_tunnel_parsed,
 	.data = NULL,
 	.help_str = "csum parse-tunnel on|off <port_id>: "
@@ -4960,20 +4960,20 @@ cmd_tso_set_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_tso_set_tso =
+static cmdline_parse_token_string_t cmd_tso_set_tso =
 	TOKEN_STRING_INITIALIZER(struct cmd_tso_set_result,
 				tso, "tso");
-cmdline_parse_token_string_t cmd_tso_set_mode =
+static cmdline_parse_token_string_t cmd_tso_set_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_tso_set_result,
 				mode, "set");
-cmdline_parse_token_num_t cmd_tso_set_tso_segsz =
+static cmdline_parse_token_num_t cmd_tso_set_tso_segsz =
 	TOKEN_NUM_INITIALIZER(struct cmd_tso_set_result,
 				tso_segsz, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tso_set_portid =
+static cmdline_parse_token_num_t cmd_tso_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tso_set_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tso_set = {
+static cmdline_parse_inst_t cmd_tso_set = {
 	.f = cmd_tso_set_parsed,
 	.data = NULL,
 	.help_str = "tso set <tso_segsz> <port_id>: "
@@ -4988,12 +4988,12 @@ cmdline_parse_inst_t cmd_tso_set = {
 	},
 };
 
-cmdline_parse_token_string_t cmd_tso_show_mode =
+static cmdline_parse_token_string_t cmd_tso_show_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_tso_set_result,
 				mode, "show");
 
 
-cmdline_parse_inst_t cmd_tso_show = {
+static cmdline_parse_inst_t cmd_tso_show = {
 	.f = cmd_tso_set_parsed,
 	.data = NULL,
 	.help_str = "tso show <port_id>: "
@@ -5115,20 +5115,20 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_tunnel_tso_set_tso =
+static cmdline_parse_token_string_t cmd_tunnel_tso_set_tso =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_tso_set_result,
 				tso, "tunnel_tso");
-cmdline_parse_token_string_t cmd_tunnel_tso_set_mode =
+static cmdline_parse_token_string_t cmd_tunnel_tso_set_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_tso_set_result,
 				mode, "set");
-cmdline_parse_token_num_t cmd_tunnel_tso_set_tso_segsz =
+static cmdline_parse_token_num_t cmd_tunnel_tso_set_tso_segsz =
 	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_tso_set_result,
 				tso_segsz, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tunnel_tso_set_portid =
+static cmdline_parse_token_num_t cmd_tunnel_tso_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_tso_set_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tunnel_tso_set = {
+static cmdline_parse_inst_t cmd_tunnel_tso_set = {
 	.f = cmd_tunnel_tso_set_parsed,
 	.data = NULL,
 	.help_str = "tunnel_tso set <tso_segsz> <port_id>: "
@@ -5143,12 +5143,12 @@ cmdline_parse_inst_t cmd_tunnel_tso_set = {
 	},
 };
 
-cmdline_parse_token_string_t cmd_tunnel_tso_show_mode =
+static cmdline_parse_token_string_t cmd_tunnel_tso_show_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_tso_set_result,
 				mode, "show");
 
 
-cmdline_parse_inst_t cmd_tunnel_tso_show = {
+static cmdline_parse_inst_t cmd_tunnel_tso_show = {
 	.f = cmd_tunnel_tso_set_parsed,
 	.data = NULL,
 	.help_str = "tunnel_tso show <port_id> "
@@ -5183,23 +5183,23 @@ cmd_gro_enable_parsed(void *parsed_result,
 		setup_gro(res->cmd_onoff, res->cmd_pid);
 }
 
-cmdline_parse_token_string_t cmd_gro_enable_set =
+static cmdline_parse_token_string_t cmd_gro_enable_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
 			cmd_set, "set");
-cmdline_parse_token_string_t cmd_gro_enable_port =
+static cmdline_parse_token_string_t cmd_gro_enable_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
 			cmd_keyword, "port");
-cmdline_parse_token_num_t cmd_gro_enable_pid =
+static cmdline_parse_token_num_t cmd_gro_enable_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_gro_enable_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_gro_enable_keyword =
+static cmdline_parse_token_string_t cmd_gro_enable_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
 			cmd_keyword, "gro");
-cmdline_parse_token_string_t cmd_gro_enable_onoff =
+static cmdline_parse_token_string_t cmd_gro_enable_onoff =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
 			cmd_onoff, "on#off");
 
-cmdline_parse_inst_t cmd_gro_enable = {
+static cmdline_parse_inst_t cmd_gro_enable = {
 	.f = cmd_gro_enable_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> gro on|off",
@@ -5233,20 +5233,20 @@ cmd_gro_show_parsed(void *parsed_result,
 		show_gro(res->cmd_pid);
 }
 
-cmdline_parse_token_string_t cmd_gro_show_show =
+static cmdline_parse_token_string_t cmd_gro_show_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_show_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_gro_show_port =
+static cmdline_parse_token_string_t cmd_gro_show_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_show_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_gro_show_pid =
+static cmdline_parse_token_num_t cmd_gro_show_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_gro_show_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_gro_show_keyword =
+static cmdline_parse_token_string_t cmd_gro_show_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_show_result,
 			cmd_keyword, "gro");
 
-cmdline_parse_inst_t cmd_gro_show = {
+static cmdline_parse_inst_t cmd_gro_show = {
 	.f = cmd_gro_show_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> gro",
@@ -5280,20 +5280,20 @@ cmd_gro_flush_parsed(void *parsed_result,
 		setup_gro_flush_cycles(res->cmd_cycles);
 }
 
-cmdline_parse_token_string_t cmd_gro_flush_set =
+static cmdline_parse_token_string_t cmd_gro_flush_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_flush_result,
 			cmd_set, "set");
-cmdline_parse_token_string_t cmd_gro_flush_keyword =
+static cmdline_parse_token_string_t cmd_gro_flush_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_flush_result,
 			cmd_keyword, "gro");
-cmdline_parse_token_string_t cmd_gro_flush_flush =
+static cmdline_parse_token_string_t cmd_gro_flush_flush =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_flush_result,
 			cmd_flush, "flush");
-cmdline_parse_token_num_t cmd_gro_flush_cycles =
+static cmdline_parse_token_num_t cmd_gro_flush_cycles =
 	TOKEN_NUM_INITIALIZER(struct cmd_gro_flush_result,
 			cmd_cycles, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_gro_flush = {
+static cmdline_parse_inst_t cmd_gro_flush = {
 	.f = cmd_gro_flush_parsed,
 	.data = NULL,
 	.help_str = "set gro flush <cycles>",
@@ -5329,23 +5329,23 @@ cmd_gso_enable_parsed(void *parsed_result,
 		setup_gso(res->cmd_mode, res->cmd_pid);
 }
 
-cmdline_parse_token_string_t cmd_gso_enable_set =
+static cmdline_parse_token_string_t cmd_gso_enable_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
 			cmd_set, "set");
-cmdline_parse_token_string_t cmd_gso_enable_port =
+static cmdline_parse_token_string_t cmd_gso_enable_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
 			cmd_port, "port");
-cmdline_parse_token_string_t cmd_gso_enable_keyword =
+static cmdline_parse_token_string_t cmd_gso_enable_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
 			cmd_keyword, "gso");
-cmdline_parse_token_string_t cmd_gso_enable_mode =
+static cmdline_parse_token_string_t cmd_gso_enable_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
 			cmd_mode, "on#off");
-cmdline_parse_token_num_t cmd_gso_enable_pid =
+static cmdline_parse_token_num_t cmd_gso_enable_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_gso_enable_result,
 			cmd_pid, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_gso_enable = {
+static cmdline_parse_inst_t cmd_gso_enable = {
 	.f = cmd_gso_enable_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> gso on|off",
@@ -5391,20 +5391,20 @@ cmd_gso_size_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_gso_size_set =
+static cmdline_parse_token_string_t cmd_gso_size_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_size_result,
 				cmd_set, "set");
-cmdline_parse_token_string_t cmd_gso_size_keyword =
+static cmdline_parse_token_string_t cmd_gso_size_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_size_result,
 				cmd_keyword, "gso");
-cmdline_parse_token_string_t cmd_gso_size_segsz =
+static cmdline_parse_token_string_t cmd_gso_size_segsz =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_size_result,
 				cmd_segsz, "segsz");
-cmdline_parse_token_num_t cmd_gso_size_size =
+static cmdline_parse_token_num_t cmd_gso_size_size =
 	TOKEN_NUM_INITIALIZER(struct cmd_gso_size_result,
 				cmd_size, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_gso_size = {
+static cmdline_parse_inst_t cmd_gso_size = {
 	.f = cmd_gso_size_parsed,
 	.data = NULL,
 	.help_str = "set gso segsz <length>",
@@ -5449,20 +5449,20 @@ cmd_gso_show_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_gso_show_show =
+static cmdline_parse_token_string_t cmd_gso_show_show =
 TOKEN_STRING_INITIALIZER(struct cmd_gso_show_result,
 		cmd_show, "show");
-cmdline_parse_token_string_t cmd_gso_show_port =
+static cmdline_parse_token_string_t cmd_gso_show_port =
 TOKEN_STRING_INITIALIZER(struct cmd_gso_show_result,
 		cmd_port, "port");
-cmdline_parse_token_string_t cmd_gso_show_keyword =
+static cmdline_parse_token_string_t cmd_gso_show_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_show_result,
 				cmd_keyword, "gso");
-cmdline_parse_token_num_t cmd_gso_show_pid =
+static cmdline_parse_token_num_t cmd_gso_show_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_gso_show_result,
 				cmd_pid, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_gso_show = {
+static cmdline_parse_inst_t cmd_gso_show = {
 	.f = cmd_gso_show_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> gso",
@@ -5498,18 +5498,18 @@ cmd_set_flush_rx_parsed(void *parsed_result,
 	no_flush_rx = (uint8_t)((strcmp(res->mode, "on") == 0) ? 0 : 1);
 }
 
-cmdline_parse_token_string_t cmd_setflushrx_set =
+static cmdline_parse_token_string_t cmd_setflushrx_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_flush_rx,
 			set, "set");
-cmdline_parse_token_string_t cmd_setflushrx_flush_rx =
+static cmdline_parse_token_string_t cmd_setflushrx_flush_rx =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_flush_rx,
 			flush_rx, "flush_rx");
-cmdline_parse_token_string_t cmd_setflushrx_mode =
+static cmdline_parse_token_string_t cmd_setflushrx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_flush_rx,
 			mode, "on#off");
 
 
-cmdline_parse_inst_t cmd_set_flush_rx = {
+static cmdline_parse_inst_t cmd_set_flush_rx = {
 	.f = cmd_set_flush_rx_parsed,
 	.help_str = "set flush_rx on|off: Enable/Disable flush on rx streams",
 	.data = NULL,
@@ -5537,18 +5537,18 @@ cmd_set_link_check_parsed(void *parsed_result,
 	no_link_check = (uint8_t)((strcmp(res->mode, "on") == 0) ? 0 : 1);
 }
 
-cmdline_parse_token_string_t cmd_setlinkcheck_set =
+static cmdline_parse_token_string_t cmd_setlinkcheck_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_check,
 			set, "set");
-cmdline_parse_token_string_t cmd_setlinkcheck_link_check =
+static cmdline_parse_token_string_t cmd_setlinkcheck_link_check =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_check,
 			link_check, "link_check");
-cmdline_parse_token_string_t cmd_setlinkcheck_mode =
+static cmdline_parse_token_string_t cmd_setlinkcheck_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_check,
 			mode, "on#off");
 
 
-cmdline_parse_inst_t cmd_set_link_check = {
+static cmdline_parse_inst_t cmd_set_link_check = {
 	.f = cmd_set_link_check_parsed,
 	.help_str = "set link_check on|off: Enable/Disable link status check "
 	            "when starting/stopping a port",
@@ -5597,23 +5597,23 @@ cmd_set_bypass_mode_parsed(void *parsed_result,
 			port_id);
 }
 
-cmdline_parse_token_string_t cmd_setbypass_mode_set =
+static cmdline_parse_token_string_t cmd_setbypass_mode_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
 			set, "set");
-cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
+static cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
 			bypass, "bypass");
-cmdline_parse_token_string_t cmd_setbypass_mode_mode =
+static cmdline_parse_token_string_t cmd_setbypass_mode_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
 			mode, "mode");
-cmdline_parse_token_string_t cmd_setbypass_mode_value =
+static cmdline_parse_token_string_t cmd_setbypass_mode_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
 			value, "normal#bypass#isolate");
-cmdline_parse_token_num_t cmd_setbypass_mode_port =
+static cmdline_parse_token_num_t cmd_setbypass_mode_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_mode_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_set_bypass_mode = {
+static cmdline_parse_inst_t cmd_set_bypass_mode = {
 	.f = cmd_set_bypass_mode_parsed,
 	.help_str = "set bypass mode normal|bypass|isolate <port_id>: "
 	            "Set the NIC bypass mode for port_id",
@@ -5697,29 +5697,29 @@ cmd_set_bypass_event_parsed(void *parsed_result,
 			port_id);
 }
 
-cmdline_parse_token_string_t cmd_setbypass_event_set =
+static cmdline_parse_token_string_t cmd_setbypass_event_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			set, "set");
-cmdline_parse_token_string_t cmd_setbypass_event_bypass =
+static cmdline_parse_token_string_t cmd_setbypass_event_bypass =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			bypass, "bypass");
-cmdline_parse_token_string_t cmd_setbypass_event_event =
+static cmdline_parse_token_string_t cmd_setbypass_event_event =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			event, "event");
-cmdline_parse_token_string_t cmd_setbypass_event_event_value =
+static cmdline_parse_token_string_t cmd_setbypass_event_event_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			event_value, "none#timeout#os_off#os_on#power_on#power_off");
-cmdline_parse_token_string_t cmd_setbypass_event_mode =
+static cmdline_parse_token_string_t cmd_setbypass_event_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			mode, "mode");
-cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
+static cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			mode_value, "normal#bypass#isolate");
-cmdline_parse_token_num_t cmd_setbypass_event_port =
+static cmdline_parse_token_num_t cmd_setbypass_event_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_event_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_set_bypass_event = {
+static cmdline_parse_inst_t cmd_set_bypass_event = {
 	.f = cmd_set_bypass_event_parsed,
 	.help_str = "set bypass event none|timeout|os_on|os_off|power_on|"
 		"power_off mode normal|bypass|isolate <port_id>: "
@@ -5773,20 +5773,20 @@ cmd_set_bypass_timeout_parsed(void *parsed_result,
 #endif
 }
 
-cmdline_parse_token_string_t cmd_setbypass_timeout_set =
+static cmdline_parse_token_string_t cmd_setbypass_timeout_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
 			set, "set");
-cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
+static cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
 			bypass, "bypass");
-cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
+static cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
 			timeout, "timeout");
-cmdline_parse_token_string_t cmd_setbypass_timeout_value =
+static cmdline_parse_token_string_t cmd_setbypass_timeout_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
 			value, "0#1.5#2#3#4#8#16#32");
 
-cmdline_parse_inst_t cmd_set_bypass_timeout = {
+static cmdline_parse_inst_t cmd_set_bypass_timeout = {
 	.f = cmd_set_bypass_timeout_parsed,
 	.help_str = "set bypass timeout 0|1.5|2|3|4|8|16|32: "
 		"Set the NIC bypass watchdog timeout in seconds",
@@ -5875,20 +5875,20 @@ cmd_show_bypass_config_parsed(void *parsed_result,
 		       port_id);
 }
 
-cmdline_parse_token_string_t cmd_showbypass_config_show =
+static cmdline_parse_token_string_t cmd_showbypass_config_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
 			show, "show");
-cmdline_parse_token_string_t cmd_showbypass_config_bypass =
+static cmdline_parse_token_string_t cmd_showbypass_config_bypass =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
 			bypass, "bypass");
-cmdline_parse_token_string_t cmd_showbypass_config_config =
+static cmdline_parse_token_string_t cmd_showbypass_config_config =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
 			config, "config");
-cmdline_parse_token_num_t cmd_showbypass_config_port =
+static cmdline_parse_token_num_t cmd_showbypass_config_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_bypass_config_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_show_bypass_config = {
+static cmdline_parse_inst_t cmd_show_bypass_config = {
 	.f = cmd_show_bypass_config_parsed,
 	.help_str = "show bypass config <port_id>: "
 	            "Show the NIC bypass config for port_id",
@@ -5938,23 +5938,23 @@ static void cmd_set_bonding_mode_parsed(void *parsed_result,
 			port_id);
 }
 
-cmdline_parse_token_string_t cmd_setbonding_mode_set =
+static cmdline_parse_token_string_t cmd_setbonding_mode_set =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
 		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
+static cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_mode_mode =
+static cmdline_parse_token_string_t cmd_setbonding_mode_mode =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
 		mode, "mode");
-cmdline_parse_token_num_t cmd_setbonding_mode_value =
+static cmdline_parse_token_num_t cmd_setbonding_mode_value =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
 		value, RTE_UINT8);
-cmdline_parse_token_num_t cmd_setbonding_mode_port =
+static cmdline_parse_token_num_t cmd_setbonding_mode_port =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
 		port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_set_bonding_mode = {
+static cmdline_parse_inst_t cmd_set_bonding_mode = {
 		.f = cmd_set_bonding_mode_parsed,
 		.help_str = "set bonding mode <mode_value> <port_id>: "
 			"Set the bonding mode for port_id",
@@ -6012,26 +6012,26 @@ static void cmd_set_bonding_lacp_dedicated_queues_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		lacp, "lacp");
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		dedicated_queues, "dedicated_queues");
-cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
+static cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		mode, "enable#disable");
 
-cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
+static cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
 		.f = cmd_set_bonding_lacp_dedicated_queues_parsed,
 		.help_str = "set bonding lacp dedicated_queues <port_id> "
 			"enable|disable: "
@@ -6084,23 +6084,23 @@ static void cmd_set_bonding_balance_xmit_policy_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
 		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
 		balance_xmit_policy, "balance_xmit_policy");
-cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
+static cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
 		port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
 		policy, "l2#l23#l34");
 
-cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
+static cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
 		.f = cmd_set_bonding_balance_xmit_policy_parsed,
 		.help_str = "set bonding balance_xmit_policy <port_id> "
 			"l2|l23|l34: "
@@ -6265,23 +6265,23 @@ static void cmd_show_bonding_lacp_info_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
 		show, "show");
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
 		bonding, "lacp");
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
 		info, "info");
-cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
+static cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
 TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
 		port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
+static cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
 		.f = cmd_show_bonding_lacp_info_parsed,
 		.help_str = "show bonding lacp info <port_id> : "
 			"Show bonding IEEE802.3 information for port_id",
@@ -6419,20 +6419,20 @@ static void cmd_show_bonding_config_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_showbonding_config_show =
+static cmdline_parse_token_string_t cmd_showbonding_config_show =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
 		show, "show");
-cmdline_parse_token_string_t cmd_showbonding_config_bonding =
+static cmdline_parse_token_string_t cmd_showbonding_config_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_showbonding_config_config =
+static cmdline_parse_token_string_t cmd_showbonding_config_config =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
 		config, "config");
-cmdline_parse_token_num_t cmd_showbonding_config_port =
+static cmdline_parse_token_num_t cmd_showbonding_config_port =
 TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_config_result,
 		port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_show_bonding_config = {
+static cmdline_parse_inst_t cmd_show_bonding_config = {
 		.f = cmd_show_bonding_config_parsed,
 		.help_str = "show bonding config <port_id>: "
 			"Show the bonding config for port_id",
@@ -6472,23 +6472,23 @@ static void cmd_set_bonding_primary_parsed(void *parsed_result,
 	init_port_config();
 }
 
-cmdline_parse_token_string_t cmd_setbonding_primary_set =
+static cmdline_parse_token_string_t cmd_setbonding_primary_set =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
 		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
+static cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_primary_primary =
+static cmdline_parse_token_string_t cmd_setbonding_primary_primary =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
 		primary, "primary");
-cmdline_parse_token_num_t cmd_setbonding_primary_slave =
+static cmdline_parse_token_num_t cmd_setbonding_primary_slave =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
 		slave_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_setbonding_primary_port =
+static cmdline_parse_token_num_t cmd_setbonding_primary_port =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
 		port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_set_bonding_primary = {
+static cmdline_parse_inst_t cmd_set_bonding_primary = {
 		.f = cmd_set_bonding_primary_parsed,
 		.help_str = "set bonding primary <slave_id> <port_id>: "
 			"Set the primary slave for port_id",
@@ -6531,23 +6531,23 @@ static void cmd_add_bonding_slave_parsed(void *parsed_result,
 	set_port_slave_flag(slave_port_id);
 }
 
-cmdline_parse_token_string_t cmd_addbonding_slave_add =
+static cmdline_parse_token_string_t cmd_addbonding_slave_add =
 TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
 		add, "add");
-cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
+static cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_addbonding_slave_slave =
+static cmdline_parse_token_string_t cmd_addbonding_slave_slave =
 TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
 		slave, "slave");
-cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
+static cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
 TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
 		slave_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_addbonding_slave_port =
+static cmdline_parse_token_num_t cmd_addbonding_slave_port =
 TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
 		port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_add_bonding_slave = {
+static cmdline_parse_inst_t cmd_add_bonding_slave = {
 		.f = cmd_add_bonding_slave_parsed,
 		.help_str = "add bonding slave <slave_id> <port_id>: "
 			"Add a slave device to a bonded device",
@@ -6590,23 +6590,23 @@ static void cmd_remove_bonding_slave_parsed(void *parsed_result,
 	clear_port_slave_flag(slave_port_id);
 }
 
-cmdline_parse_token_string_t cmd_removebonding_slave_remove =
+static cmdline_parse_token_string_t cmd_removebonding_slave_remove =
 		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
 				remove, "remove");
-cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
+static cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
 		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
 				bonding, "bonding");
-cmdline_parse_token_string_t cmd_removebonding_slave_slave =
+static cmdline_parse_token_string_t cmd_removebonding_slave_slave =
 		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
 				slave, "slave");
-cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
+static cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
 		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
 				slave_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_removebonding_slave_port =
+static cmdline_parse_token_num_t cmd_removebonding_slave_port =
 		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_remove_bonding_slave = {
+static cmdline_parse_inst_t cmd_remove_bonding_slave = {
 		.f = cmd_remove_bonding_slave_parsed,
 		.help_str = "remove bonding slave <slave_id> <port_id>: "
 			"Remove a slave device from a bonded device",
@@ -6673,23 +6673,23 @@ static void cmd_create_bonded_device_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_createbonded_device_create =
+static cmdline_parse_token_string_t cmd_createbonded_device_create =
 		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
 				create, "create");
-cmdline_parse_token_string_t cmd_createbonded_device_bonded =
+static cmdline_parse_token_string_t cmd_createbonded_device_bonded =
 		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
 				bonded, "bonded");
-cmdline_parse_token_string_t cmd_createbonded_device_device =
+static cmdline_parse_token_string_t cmd_createbonded_device_device =
 		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
 				device, "device");
-cmdline_parse_token_num_t cmd_createbonded_device_mode =
+static cmdline_parse_token_num_t cmd_createbonded_device_mode =
 		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
 				mode, RTE_UINT8);
-cmdline_parse_token_num_t cmd_createbonded_device_socket =
+static cmdline_parse_token_num_t cmd_createbonded_device_socket =
 		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
 				socket, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_create_bonded_device = {
+static cmdline_parse_inst_t cmd_create_bonded_device = {
 		.f = cmd_create_bonded_device_parsed,
 		.help_str = "create bonded device <mode> <socket>: "
 			"Create a new bonded device with specific bonding mode and socket",
@@ -6731,21 +6731,21 @@ static void cmd_set_bond_mac_addr_parsed(void *parsed_result,
 			strerror(-ret));
 }
 
-cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, set, "set");
-cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, bonding,
 				"bonding");
-cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, mac_addr,
 				"mac_addr");
-cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
+static cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
 		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mac_addr_result,
 				port_num, RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
+static cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
 		TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_bond_mac_addr_result, address);
 
-cmdline_parse_inst_t cmd_set_bond_mac_addr = {
+static cmdline_parse_inst_t cmd_set_bond_mac_addr = {
 		.f = cmd_set_bond_mac_addr_parsed,
 		.data = (void *) 0,
 		.help_str = "set bonding mac_addr <port_id> <mac_addr>",
@@ -6784,23 +6784,23 @@ static void cmd_set_bond_mon_period_parsed(void *parsed_result,
 			strerror(-ret));
 }
 
-cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
 				bonding, "bonding");
-cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
 				mon_period,	"mon_period");
-cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
+static cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
 		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
 				port_num, RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
+static cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
 		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
 				period_ms, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_set_bond_mon_period = {
+static cmdline_parse_inst_t cmd_set_bond_mon_period = {
 		.f = cmd_set_bond_mon_period_parsed,
 		.data = (void *) 0,
 		.help_str = "set bonding mon_period <port_id> <period_ms>",
@@ -6844,27 +6844,27 @@ cmd_set_bonding_agg_mode(void *parsed_result,
 }
 
 
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
 				bonding, "bonding");
 
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
 				agg_mode, "agg_mode");
 
-cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
+static cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
 				port_num, RTE_UINT16);
 
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
 	TOKEN_STRING_INITIALIZER(
 			struct cmd_set_bonding_balance_xmit_policy_result,
 		policy, "stable#bandwidth#count");
 
-cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
+static cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
 	.f = cmd_set_bonding_agg_mode,
 	.data = (void *) 0,
 	.help_str = "set bonding mode IEEE802.3AD aggregator policy <port_id> <agg_name>",
@@ -6898,15 +6898,15 @@ static void cmd_set_fwd_mode_parsed(void *parsed_result,
 	set_pkt_forwarding_mode(res->mode);
 }
 
-cmdline_parse_token_string_t cmd_setfwd_set =
+static cmdline_parse_token_string_t cmd_setfwd_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_mode_result, set, "set");
-cmdline_parse_token_string_t cmd_setfwd_fwd =
+static cmdline_parse_token_string_t cmd_setfwd_fwd =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_mode_result, fwd, "fwd");
-cmdline_parse_token_string_t cmd_setfwd_mode =
+static cmdline_parse_token_string_t cmd_setfwd_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_mode_result, mode,
 		"" /* defined at init */);
 
-cmdline_parse_inst_t cmd_set_fwd_mode = {
+static cmdline_parse_inst_t cmd_set_fwd_mode = {
 	.f = cmd_set_fwd_mode_parsed,
 	.data = NULL,
 	.help_str = NULL, /* defined at init */
@@ -6958,21 +6958,21 @@ static void cmd_set_fwd_retry_mode_parsed(void *parsed_result,
 	set_pkt_forwarding_mode(res->mode);
 }
 
-cmdline_parse_token_string_t cmd_setfwd_retry_set =
+static cmdline_parse_token_string_t cmd_setfwd_retry_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
 			set, "set");
-cmdline_parse_token_string_t cmd_setfwd_retry_fwd =
+static cmdline_parse_token_string_t cmd_setfwd_retry_fwd =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
 			fwd, "fwd");
-cmdline_parse_token_string_t cmd_setfwd_retry_mode =
+static cmdline_parse_token_string_t cmd_setfwd_retry_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
 			mode,
 		"" /* defined at init */);
-cmdline_parse_token_string_t cmd_setfwd_retry_retry =
+static cmdline_parse_token_string_t cmd_setfwd_retry_retry =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
 			retry, "retry");
 
-cmdline_parse_inst_t cmd_set_fwd_retry_mode = {
+static cmdline_parse_inst_t cmd_set_fwd_retry_mode = {
 	.f = cmd_set_fwd_retry_mode_parsed,
 	.data = NULL,
 	.help_str = NULL, /* defined at init */
@@ -7035,25 +7035,25 @@ static void cmd_set_burst_tx_retry_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_set_burst_tx_retry_set =
+static cmdline_parse_token_string_t cmd_set_burst_tx_retry_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, set, "set");
-cmdline_parse_token_string_t cmd_set_burst_tx_retry_burst =
+static cmdline_parse_token_string_t cmd_set_burst_tx_retry_burst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, burst,
 				 "burst");
-cmdline_parse_token_string_t cmd_set_burst_tx_retry_tx =
+static cmdline_parse_token_string_t cmd_set_burst_tx_retry_tx =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, tx, "tx");
-cmdline_parse_token_string_t cmd_set_burst_tx_retry_delay =
+static cmdline_parse_token_string_t cmd_set_burst_tx_retry_delay =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, delay, "delay");
-cmdline_parse_token_num_t cmd_set_burst_tx_retry_time =
+static cmdline_parse_token_num_t cmd_set_burst_tx_retry_time =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_burst_tx_retry_result, time,
 				 RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_burst_tx_retry_retry =
+static cmdline_parse_token_string_t cmd_set_burst_tx_retry_retry =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, retry, "retry");
-cmdline_parse_token_num_t cmd_set_burst_tx_retry_retry_num =
+static cmdline_parse_token_num_t cmd_set_burst_tx_retry_retry_num =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_burst_tx_retry_result, retry_num,
 				 RTE_UINT32);
 
-cmdline_parse_inst_t cmd_set_burst_tx_retry = {
+static cmdline_parse_inst_t cmd_set_burst_tx_retry = {
 	.f = cmd_set_burst_tx_retry_parsed,
 	.help_str = "set burst tx delay <delay_usec> retry <num_retry>",
 	.tokens = {
@@ -7099,22 +7099,22 @@ static void cmd_set_promisc_mode_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_setpromisc_set =
+static cmdline_parse_token_string_t cmd_setpromisc_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result, set, "set");
-cmdline_parse_token_string_t cmd_setpromisc_promisc =
+static cmdline_parse_token_string_t cmd_setpromisc_promisc =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result, promisc,
 				 "promisc");
-cmdline_parse_token_string_t cmd_setpromisc_portall =
+static cmdline_parse_token_string_t cmd_setpromisc_portall =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result, port_all,
 				 "all");
-cmdline_parse_token_num_t cmd_setpromisc_portnum =
+static cmdline_parse_token_num_t cmd_setpromisc_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_promisc_mode_result, port_num,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_setpromisc_mode =
+static cmdline_parse_token_string_t cmd_setpromisc_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result, mode,
 				 "on#off");
 
-cmdline_parse_inst_t cmd_set_promisc_mode_all = {
+static cmdline_parse_inst_t cmd_set_promisc_mode_all = {
 	.f = cmd_set_promisc_mode_parsed,
 	.data = (void *)1,
 	.help_str = "set promisc all on|off: Set promisc mode for all ports",
@@ -7127,7 +7127,7 @@ cmdline_parse_inst_t cmd_set_promisc_mode_all = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_promisc_mode_one = {
+static cmdline_parse_inst_t cmd_set_promisc_mode_one = {
 	.f = cmd_set_promisc_mode_parsed,
 	.data = (void *)0,
 	.help_str = "set promisc <port_id> on|off: Set promisc mode on port_id",
@@ -7173,22 +7173,22 @@ static void cmd_set_allmulti_mode_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_setallmulti_set =
+static cmdline_parse_token_string_t cmd_setallmulti_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result, set, "set");
-cmdline_parse_token_string_t cmd_setallmulti_allmulti =
+static cmdline_parse_token_string_t cmd_setallmulti_allmulti =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result, allmulti,
 				 "allmulti");
-cmdline_parse_token_string_t cmd_setallmulti_portall =
+static cmdline_parse_token_string_t cmd_setallmulti_portall =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result, port_all,
 				 "all");
-cmdline_parse_token_num_t cmd_setallmulti_portnum =
+static cmdline_parse_token_num_t cmd_setallmulti_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_allmulti_mode_result, port_num,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_setallmulti_mode =
+static cmdline_parse_token_string_t cmd_setallmulti_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result, mode,
 				 "on#off");
 
-cmdline_parse_inst_t cmd_set_allmulti_mode_all = {
+static cmdline_parse_inst_t cmd_set_allmulti_mode_all = {
 	.f = cmd_set_allmulti_mode_parsed,
 	.data = (void *)1,
 	.help_str = "set allmulti all on|off: Set allmulti mode for all ports",
@@ -7201,7 +7201,7 @@ cmdline_parse_inst_t cmd_set_allmulti_mode_all = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_allmulti_mode_one = {
+static cmdline_parse_inst_t cmd_set_allmulti_mode_one = {
 	.f = cmd_set_allmulti_mode_parsed,
 	.data = (void *)0,
 	.help_str = "set allmulti <port_id> on|off: "
@@ -7223,16 +7223,16 @@ struct cmd_link_flow_ctrl_show {
 	cmdline_fixed_string_t flow_ctrl;
 };
 
-cmdline_parse_token_string_t cmd_lfc_show_show =
+static cmdline_parse_token_string_t cmd_lfc_show_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_show,
 				show, "show");
-cmdline_parse_token_string_t cmd_lfc_show_port =
+static cmdline_parse_token_string_t cmd_lfc_show_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_show,
 				port, "port");
-cmdline_parse_token_num_t cmd_lfc_show_portid =
+static cmdline_parse_token_num_t cmd_lfc_show_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_show,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_lfc_show_flow_ctrl =
+static cmdline_parse_token_string_t cmd_lfc_show_flow_ctrl =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_show,
 				flow_ctrl, "flow_ctrl");
 
@@ -7277,7 +7277,7 @@ cmd_link_flow_ctrl_show_parsed(void *parsed_result,
 		info_border, info_border);
 }
 
-cmdline_parse_inst_t cmd_link_flow_control_show = {
+static cmdline_parse_inst_t cmd_link_flow_control_show = {
 	.f = cmd_link_flow_ctrl_show_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> flow_ctrl",
@@ -7313,61 +7313,61 @@ struct cmd_link_flow_ctrl_set_result {
 	portid_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_lfc_set_set =
+static cmdline_parse_token_string_t cmd_lfc_set_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_lfc_set_flow_ctrl =
+static cmdline_parse_token_string_t cmd_lfc_set_flow_ctrl =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				flow_ctrl, "flow_ctrl");
-cmdline_parse_token_string_t cmd_lfc_set_rx =
+static cmdline_parse_token_string_t cmd_lfc_set_rx =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				rx, "rx");
-cmdline_parse_token_string_t cmd_lfc_set_rx_mode =
+static cmdline_parse_token_string_t cmd_lfc_set_rx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				rx_lfc_mode, "on#off");
-cmdline_parse_token_string_t cmd_lfc_set_tx =
+static cmdline_parse_token_string_t cmd_lfc_set_tx =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				tx, "tx");
-cmdline_parse_token_string_t cmd_lfc_set_tx_mode =
+static cmdline_parse_token_string_t cmd_lfc_set_tx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				tx_lfc_mode, "on#off");
-cmdline_parse_token_string_t cmd_lfc_set_high_water_str =
+static cmdline_parse_token_string_t cmd_lfc_set_high_water_str =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				hw_str, "high_water");
-cmdline_parse_token_num_t cmd_lfc_set_high_water =
+static cmdline_parse_token_num_t cmd_lfc_set_high_water =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				high_water, RTE_UINT32);
-cmdline_parse_token_string_t cmd_lfc_set_low_water_str =
+static cmdline_parse_token_string_t cmd_lfc_set_low_water_str =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				lw_str, "low_water");
-cmdline_parse_token_num_t cmd_lfc_set_low_water =
+static cmdline_parse_token_num_t cmd_lfc_set_low_water =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				low_water, RTE_UINT32);
-cmdline_parse_token_string_t cmd_lfc_set_pause_time_str =
+static cmdline_parse_token_string_t cmd_lfc_set_pause_time_str =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				pt_str, "pause_time");
-cmdline_parse_token_num_t cmd_lfc_set_pause_time =
+static cmdline_parse_token_num_t cmd_lfc_set_pause_time =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				pause_time, RTE_UINT16);
-cmdline_parse_token_string_t cmd_lfc_set_send_xon_str =
+static cmdline_parse_token_string_t cmd_lfc_set_send_xon_str =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				xon_str, "send_xon");
-cmdline_parse_token_num_t cmd_lfc_set_send_xon =
+static cmdline_parse_token_num_t cmd_lfc_set_send_xon =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				send_xon, RTE_UINT16);
-cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd_mode =
+static cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				mac_ctrl_frame_fwd, "mac_ctrl_frame_fwd");
-cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd =
+static cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				mac_ctrl_frame_fwd_mode, "on#off");
-cmdline_parse_token_string_t cmd_lfc_set_autoneg_str =
+static cmdline_parse_token_string_t cmd_lfc_set_autoneg_str =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				autoneg_str, "autoneg");
-cmdline_parse_token_string_t cmd_lfc_set_autoneg =
+static cmdline_parse_token_string_t cmd_lfc_set_autoneg =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				autoneg, "on#off");
-cmdline_parse_token_num_t cmd_lfc_set_portid =
+static cmdline_parse_token_num_t cmd_lfc_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				port_id, RTE_UINT16);
 
@@ -7376,7 +7376,7 @@ static void
 cmd_link_flow_ctrl_set_parsed(void *parsed_result, struct cmdline *cl,
 			      void *data);
 
-cmdline_parse_inst_t cmd_link_flow_control_set = {
+static cmdline_parse_inst_t cmd_link_flow_control_set = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = NULL,
 	.help_str = "set flow_ctrl rx on|off tx on|off <high_water> "
@@ -7402,7 +7402,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_rx = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_rx = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_rx,
 	.help_str = "set flow_ctrl rx on|off <port_id>: "
@@ -7417,7 +7417,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_rx = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_tx = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_tx = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_tx,
 	.help_str = "set flow_ctrl tx on|off <port_id>: "
@@ -7432,7 +7432,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_tx = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_hw = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_hw = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_hw,
 	.help_str = "set flow_ctrl high_water <value> <port_id>: "
@@ -7447,7 +7447,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_hw = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_lw = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_lw = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_lw,
 	.help_str = "set flow_ctrl low_water <value> <port_id>: "
@@ -7462,7 +7462,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_lw = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_pt = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_pt = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_pt,
 	.help_str = "set flow_ctrl pause_time <value> <port_id>: "
@@ -7477,7 +7477,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_pt = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_xon = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_xon = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_xon,
 	.help_str = "set flow_ctrl send_xon <value> <port_id>: "
@@ -7492,7 +7492,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_xon = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_macfwd = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_macfwd = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_macfwd,
 	.help_str = "set flow_ctrl mac_ctrl_frame_fwd on|off <port_id>: "
@@ -7507,7 +7507,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_macfwd = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_autoneg = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_autoneg = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_autoneg,
 	.help_str = "set flow_ctrl autoneg on|off <port_id>: "
@@ -7650,41 +7650,41 @@ cmd_priority_flow_ctrl_set_parsed(void *parsed_result,
 			ret);
 }
 
-cmdline_parse_token_string_t cmd_pfc_set_set =
+static cmdline_parse_token_string_t cmd_pfc_set_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_pfc_set_flow_ctrl =
+static cmdline_parse_token_string_t cmd_pfc_set_flow_ctrl =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				pfc_ctrl, "pfc_ctrl");
-cmdline_parse_token_string_t cmd_pfc_set_rx =
+static cmdline_parse_token_string_t cmd_pfc_set_rx =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				rx, "rx");
-cmdline_parse_token_string_t cmd_pfc_set_rx_mode =
+static cmdline_parse_token_string_t cmd_pfc_set_rx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				rx_pfc_mode, "on#off");
-cmdline_parse_token_string_t cmd_pfc_set_tx =
+static cmdline_parse_token_string_t cmd_pfc_set_tx =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				tx, "tx");
-cmdline_parse_token_string_t cmd_pfc_set_tx_mode =
+static cmdline_parse_token_string_t cmd_pfc_set_tx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				tx_pfc_mode, "on#off");
-cmdline_parse_token_num_t cmd_pfc_set_high_water =
+static cmdline_parse_token_num_t cmd_pfc_set_high_water =
 	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				high_water, RTE_UINT32);
-cmdline_parse_token_num_t cmd_pfc_set_low_water =
+static cmdline_parse_token_num_t cmd_pfc_set_low_water =
 	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				low_water, RTE_UINT32);
-cmdline_parse_token_num_t cmd_pfc_set_pause_time =
+static cmdline_parse_token_num_t cmd_pfc_set_pause_time =
 	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				pause_time, RTE_UINT16);
-cmdline_parse_token_num_t cmd_pfc_set_priority =
+static cmdline_parse_token_num_t cmd_pfc_set_priority =
 	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				priority, RTE_UINT8);
-cmdline_parse_token_num_t cmd_pfc_set_portid =
+static cmdline_parse_token_num_t cmd_pfc_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_priority_flow_control_set = {
+static cmdline_parse_inst_t cmd_priority_flow_control_set = {
 	.f = cmd_priority_flow_ctrl_set_parsed,
 	.data = NULL,
 	.help_str = "set pfc_ctrl rx on|off tx on|off <high_water> <low_water> "
@@ -7762,44 +7762,44 @@ cmd_queue_priority_flow_ctrl_set_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_q_pfc_set_set =
+static cmdline_parse_token_string_t cmd_q_pfc_set_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_q_pfc_set_flow_ctrl =
+static cmdline_parse_token_string_t cmd_q_pfc_set_flow_ctrl =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				pfc_queue_ctrl, "pfc_queue_ctrl");
-cmdline_parse_token_num_t cmd_q_pfc_set_portid =
+static cmdline_parse_token_num_t cmd_q_pfc_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_q_pfc_set_rx =
+static cmdline_parse_token_string_t cmd_q_pfc_set_rx =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				rx, "rx");
-cmdline_parse_token_string_t cmd_q_pfc_set_rx_mode =
+static cmdline_parse_token_string_t cmd_q_pfc_set_rx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				rx_pfc_mode, "on#off");
-cmdline_parse_token_num_t cmd_q_pfc_set_tx_qid =
+static cmdline_parse_token_num_t cmd_q_pfc_set_tx_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				tx_qid, RTE_UINT16);
-cmdline_parse_token_num_t cmd_q_pfc_set_tx_tc =
+static cmdline_parse_token_num_t cmd_q_pfc_set_tx_tc =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				tx_tc, RTE_UINT8);
-cmdline_parse_token_string_t cmd_q_pfc_set_tx =
+static cmdline_parse_token_string_t cmd_q_pfc_set_tx =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				tx, "tx");
-cmdline_parse_token_string_t cmd_q_pfc_set_tx_mode =
+static cmdline_parse_token_string_t cmd_q_pfc_set_tx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				tx_pfc_mode, "on#off");
-cmdline_parse_token_num_t cmd_q_pfc_set_rx_qid =
+static cmdline_parse_token_num_t cmd_q_pfc_set_rx_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				rx_qid, RTE_UINT16);
-cmdline_parse_token_num_t cmd_q_pfc_set_rx_tc =
+static cmdline_parse_token_num_t cmd_q_pfc_set_rx_tc =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				rx_tc, RTE_UINT8);
-cmdline_parse_token_num_t cmd_q_pfc_set_pause_time =
+static cmdline_parse_token_num_t cmd_q_pfc_set_pause_time =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				pause_time, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_queue_priority_flow_control_set = {
+static cmdline_parse_inst_t cmd_queue_priority_flow_control_set = {
 	.f = cmd_queue_priority_flow_ctrl_set_parsed,
 	.data = NULL,
 	.help_str = "set pfc_queue_ctrl <port_id> rx <on|off> <tx_qid> <tx_tc> "
@@ -7836,13 +7836,13 @@ static void cmd_reset_parsed(__rte_unused void *parsed_result,
 	set_def_fwd_config();
 }
 
-cmdline_parse_token_string_t cmd_reset_set =
+static cmdline_parse_token_string_t cmd_reset_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_reset_result, reset, "set");
-cmdline_parse_token_string_t cmd_reset_def =
+static cmdline_parse_token_string_t cmd_reset_def =
 	TOKEN_STRING_INITIALIZER(struct cmd_reset_result, def,
 				 "default");
 
-cmdline_parse_inst_t cmd_reset = {
+static cmdline_parse_inst_t cmd_reset = {
 	.f = cmd_reset_parsed,
 	.data = NULL,
 	.help_str = "set default: Reset default forwarding configuration",
@@ -7858,7 +7858,7 @@ struct cmd_start_result {
 	cmdline_fixed_string_t start;
 };
 
-cmdline_parse_token_string_t cmd_start_start =
+static cmdline_parse_token_string_t cmd_start_start =
 	TOKEN_STRING_INITIALIZER(struct cmd_start_result, start, "start");
 
 static void cmd_start_parsed(__rte_unused void *parsed_result,
@@ -7868,7 +7868,7 @@ static void cmd_start_parsed(__rte_unused void *parsed_result,
 	start_packet_forwarding(0);
 }
 
-cmdline_parse_inst_t cmd_start = {
+static cmdline_parse_inst_t cmd_start = {
 	.f = cmd_start_parsed,
 	.data = NULL,
 	.help_str = "start: Start packet forwarding",
@@ -7892,14 +7892,14 @@ cmd_start_tx_first_parsed(__rte_unused void *parsed_result,
 	start_packet_forwarding(1);
 }
 
-cmdline_parse_token_string_t cmd_start_tx_first_start =
+static cmdline_parse_token_string_t cmd_start_tx_first_start =
 	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_result, start,
 				 "start");
-cmdline_parse_token_string_t cmd_start_tx_first_tx_first =
+static cmdline_parse_token_string_t cmd_start_tx_first_tx_first =
 	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_result,
 				 tx_first, "tx_first");
 
-cmdline_parse_inst_t cmd_start_tx_first = {
+static cmdline_parse_inst_t cmd_start_tx_first = {
 	.f = cmd_start_tx_first_parsed,
 	.data = NULL,
 	.help_str = "start tx_first: Start packet forwarding, "
@@ -7928,17 +7928,17 @@ cmd_start_tx_first_n_parsed(void *parsed_result,
 	start_packet_forwarding(res->tx_num);
 }
 
-cmdline_parse_token_string_t cmd_start_tx_first_n_start =
+static cmdline_parse_token_string_t cmd_start_tx_first_n_start =
 	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_n_result,
 			start, "start");
-cmdline_parse_token_string_t cmd_start_tx_first_n_tx_first =
+static cmdline_parse_token_string_t cmd_start_tx_first_n_tx_first =
 	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_n_result,
 			tx_first, "tx_first");
-cmdline_parse_token_num_t cmd_start_tx_first_n_tx_num =
+static cmdline_parse_token_num_t cmd_start_tx_first_n_tx_num =
 	TOKEN_NUM_INITIALIZER(struct cmd_start_tx_first_n_result,
 			tx_num, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_start_tx_first_n = {
+static cmdline_parse_inst_t cmd_start_tx_first_n = {
 	.f = cmd_start_tx_first_n_parsed,
 	.data = NULL,
 	.help_str = "start tx_first <num>: "
@@ -7959,14 +7959,14 @@ struct cmd_set_link_up_result {
 	portid_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_set_link_up_set =
+static cmdline_parse_token_string_t cmd_set_link_up_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_up_result, set, "set");
-cmdline_parse_token_string_t cmd_set_link_up_link_up =
+static cmdline_parse_token_string_t cmd_set_link_up_link_up =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_up_result, link_up,
 				"link-up");
-cmdline_parse_token_string_t cmd_set_link_up_port =
+static cmdline_parse_token_string_t cmd_set_link_up_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_up_result, port, "port");
-cmdline_parse_token_num_t cmd_set_link_up_port_id =
+static cmdline_parse_token_num_t cmd_set_link_up_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_link_up_result, port_id,
 				RTE_UINT16);
 
@@ -7978,7 +7978,7 @@ static void cmd_set_link_up_parsed(__rte_unused void *parsed_result,
 	dev_set_link_up(res->port_id);
 }
 
-cmdline_parse_inst_t cmd_set_link_up = {
+static cmdline_parse_inst_t cmd_set_link_up = {
 	.f = cmd_set_link_up_parsed,
 	.data = NULL,
 	.help_str = "set link-up port <port id>",
@@ -7999,14 +7999,14 @@ struct cmd_set_link_down_result {
 	portid_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_set_link_down_set =
+static cmdline_parse_token_string_t cmd_set_link_down_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_down_result, set, "set");
-cmdline_parse_token_string_t cmd_set_link_down_link_down =
+static cmdline_parse_token_string_t cmd_set_link_down_link_down =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_down_result, link_down,
 				"link-down");
-cmdline_parse_token_string_t cmd_set_link_down_port =
+static cmdline_parse_token_string_t cmd_set_link_down_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_down_result, port, "port");
-cmdline_parse_token_num_t cmd_set_link_down_port_id =
+static cmdline_parse_token_num_t cmd_set_link_down_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_link_down_result, port_id,
 				RTE_UINT16);
 
@@ -8019,7 +8019,7 @@ static void cmd_set_link_down_parsed(
 	dev_set_link_down(res->port_id);
 }
 
-cmdline_parse_inst_t cmd_set_link_down = {
+static cmdline_parse_inst_t cmd_set_link_down = {
 	.f = cmd_set_link_down_parsed,
 	.data = NULL,
 	.help_str = "set link-down port <port id>",
@@ -8060,15 +8060,15 @@ static void cmd_showcfg_parsed(void *parsed_result,
 		show_tx_pkt_times();
 }
 
-cmdline_parse_token_string_t cmd_showcfg_show =
+static cmdline_parse_token_string_t cmd_showcfg_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showcfg_result, show, "show");
-cmdline_parse_token_string_t cmd_showcfg_port =
+static cmdline_parse_token_string_t cmd_showcfg_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showcfg_result, cfg, "config");
-cmdline_parse_token_string_t cmd_showcfg_what =
+static cmdline_parse_token_string_t cmd_showcfg_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showcfg_result, what,
 				 "rxtx#cores#fwd#rxoffs#rxpkts#txpkts#txtimes");
 
-cmdline_parse_inst_t cmd_showcfg = {
+static cmdline_parse_inst_t cmd_showcfg = {
 	.f = cmd_showcfg_parsed,
 	.data = NULL,
 	.help_str = "show config rxtx|cores|fwd|rxoffs|rxpkts|txpkts|txtimes",
@@ -8126,17 +8126,17 @@ static void cmd_showportall_parsed(void *parsed_result,
 			port_dcb_info_display(i);
 }
 
-cmdline_parse_token_string_t cmd_showportall_show =
+static cmdline_parse_token_string_t cmd_showportall_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, show,
 				 "show#clear");
-cmdline_parse_token_string_t cmd_showportall_port =
+static cmdline_parse_token_string_t cmd_showportall_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, port, "port");
-cmdline_parse_token_string_t cmd_showportall_what =
+static cmdline_parse_token_string_t cmd_showportall_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, what,
 				 "info#summary#stats#xstats#fdir#dcb_tc");
-cmdline_parse_token_string_t cmd_showportall_all =
+static cmdline_parse_token_string_t cmd_showportall_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, all, "all");
-cmdline_parse_inst_t cmd_showportall = {
+static cmdline_parse_inst_t cmd_showportall = {
 	.f = cmd_showportall_parsed,
 	.data = NULL,
 	.help_str = "show|clear port "
@@ -8186,18 +8186,18 @@ static void cmd_showport_parsed(void *parsed_result,
 		port_dcb_info_display(res->portnum);
 }
 
-cmdline_parse_token_string_t cmd_showport_show =
+static cmdline_parse_token_string_t cmd_showport_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_result, show,
 				 "show#clear");
-cmdline_parse_token_string_t cmd_showport_port =
+static cmdline_parse_token_string_t cmd_showport_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_result, port, "port");
-cmdline_parse_token_string_t cmd_showport_what =
+static cmdline_parse_token_string_t cmd_showport_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_result, what,
 				 "info#summary#stats#xstats#fdir#dcb_tc");
-cmdline_parse_token_num_t cmd_showport_portnum =
+static cmdline_parse_token_num_t cmd_showport_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_result, portnum, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_showport = {
+static cmdline_parse_inst_t cmd_showport = {
 	.f = cmd_showport_parsed,
 	.data = NULL,
 	.help_str = "show|clear port "
@@ -8312,23 +8312,23 @@ cmd_representor_info_parsed(void *parsed_result,
 	free(info);
 }
 
-cmdline_parse_token_string_t cmd_representor_info_show =
+static cmdline_parse_token_string_t cmd_representor_info_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_representor_info_port =
+static cmdline_parse_token_string_t cmd_representor_info_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
 			cmd_port, "port");
-cmdline_parse_token_string_t cmd_representor_info_info =
+static cmdline_parse_token_string_t cmd_representor_info_info =
 	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
 			cmd_info, "info");
-cmdline_parse_token_num_t cmd_representor_info_pid =
+static cmdline_parse_token_num_t cmd_representor_info_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_representor_info_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_representor_info_keyword =
+static cmdline_parse_token_string_t cmd_representor_info_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
 			cmd_keyword, "representor");
 
-cmdline_parse_inst_t cmd_representor_info = {
+static cmdline_parse_inst_t cmd_representor_info = {
 	.f = cmd_representor_info_parsed,
 	.data = NULL,
 	.help_str = "show port info <port_id> representor",
@@ -8364,19 +8364,19 @@ static void cmd_showdevice_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_showdevice_show =
+static cmdline_parse_token_string_t cmd_showdevice_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result, show,
 				 "show");
-cmdline_parse_token_string_t cmd_showdevice_device =
+static cmdline_parse_token_string_t cmd_showdevice_device =
 	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result, device, "device");
-cmdline_parse_token_string_t cmd_showdevice_what =
+static cmdline_parse_token_string_t cmd_showdevice_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result, what,
 				 "info");
-cmdline_parse_token_string_t cmd_showdevice_identifier =
+static cmdline_parse_token_string_t cmd_showdevice_identifier =
 	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result,
 			identifier, NULL);
 
-cmdline_parse_inst_t cmd_showdevice = {
+static cmdline_parse_inst_t cmd_showdevice = {
 	.f = cmd_showdevice_parsed,
 	.data = NULL,
 	.help_str = "show device info <identifier>|all",
@@ -8411,17 +8411,17 @@ static void cmd_showeeprom_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown argument\n");
 }
 
-cmdline_parse_token_string_t cmd_showeeprom_show =
+static cmdline_parse_token_string_t cmd_showeeprom_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showeeprom_result, show, "show");
-cmdline_parse_token_string_t cmd_showeeprom_port =
+static cmdline_parse_token_string_t cmd_showeeprom_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showeeprom_result, port, "port");
-cmdline_parse_token_num_t cmd_showeeprom_portnum =
+static cmdline_parse_token_num_t cmd_showeeprom_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_showeeprom_result, portnum,
 			RTE_UINT16);
-cmdline_parse_token_string_t cmd_showeeprom_type =
+static cmdline_parse_token_string_t cmd_showeeprom_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_showeeprom_result, type, "module_eeprom#eeprom");
 
-cmdline_parse_inst_t cmd_showeeprom = {
+static cmdline_parse_inst_t cmd_showeeprom = {
 	.f = cmd_showeeprom_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> module_eeprom|eeprom",
@@ -8456,20 +8456,20 @@ cmd_showqueue_parsed(void *parsed_result,
 		tx_queue_infos_display(res->portnum, res->queuenum);
 }
 
-cmdline_parse_token_string_t cmd_showqueue_show =
+static cmdline_parse_token_string_t cmd_showqueue_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showqueue_result, show, "show");
-cmdline_parse_token_string_t cmd_showqueue_type =
+static cmdline_parse_token_string_t cmd_showqueue_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_showqueue_result, type, "rxq#txq");
-cmdline_parse_token_string_t cmd_showqueue_what =
+static cmdline_parse_token_string_t cmd_showqueue_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showqueue_result, what, "info");
-cmdline_parse_token_num_t cmd_showqueue_portnum =
+static cmdline_parse_token_num_t cmd_showqueue_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_showqueue_result, portnum,
 		RTE_UINT16);
-cmdline_parse_token_num_t cmd_showqueue_queuenum =
+static cmdline_parse_token_num_t cmd_showqueue_queuenum =
 	TOKEN_NUM_INITIALIZER(struct cmd_showqueue_result, queuenum,
 		RTE_UINT16);
 
-cmdline_parse_inst_t cmd_showqueue = {
+static cmdline_parse_inst_t cmd_showqueue = {
 	.f = cmd_showqueue_parsed,
 	.data = NULL,
 	.help_str = "show rxq|txq info <port_id> <queue_id>",
@@ -8491,13 +8491,13 @@ struct fwd_result {
 	cmdline_fixed_string_t all;
 };
 
-cmdline_parse_token_string_t cmd_fwd_action =
+static cmdline_parse_token_string_t cmd_fwd_action =
 	TOKEN_STRING_INITIALIZER(struct fwd_result, action, "show#clear");
-cmdline_parse_token_string_t cmd_fwd_fwd =
+static cmdline_parse_token_string_t cmd_fwd_fwd =
 	TOKEN_STRING_INITIALIZER(struct fwd_result, fwd, "fwd");
-cmdline_parse_token_string_t cmd_fwd_stats =
+static cmdline_parse_token_string_t cmd_fwd_stats =
 	TOKEN_STRING_INITIALIZER(struct fwd_result, stats, "stats");
-cmdline_parse_token_string_t cmd_fwd_all =
+static cmdline_parse_token_string_t cmd_fwd_all =
 	TOKEN_STRING_INITIALIZER(struct fwd_result, all, "all");
 
 static void
@@ -8543,16 +8543,16 @@ cmd_read_reg_parsed(void *parsed_result,
 	port_reg_display(res->port_id, res->reg_off);
 }
 
-cmdline_parse_token_string_t cmd_read_reg_read =
+static cmdline_parse_token_string_t cmd_read_reg_read =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_result, read, "read");
-cmdline_parse_token_string_t cmd_read_reg_reg =
+static cmdline_parse_token_string_t cmd_read_reg_reg =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_result, reg, "reg");
-cmdline_parse_token_num_t cmd_read_reg_port_id =
+static cmdline_parse_token_num_t cmd_read_reg_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_read_reg_reg_off =
+static cmdline_parse_token_num_t cmd_read_reg_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_result, reg_off, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_read_reg = {
+static cmdline_parse_inst_t cmd_read_reg = {
 	.f = cmd_read_reg_parsed,
 	.data = NULL,
 	.help_str = "read reg <port_id> <reg_off>",
@@ -8585,26 +8585,26 @@ cmd_read_reg_bit_field_parsed(void *parsed_result,
 				   res->bit1_pos, res->bit2_pos);
 }
 
-cmdline_parse_token_string_t cmd_read_reg_bit_field_read =
+static cmdline_parse_token_string_t cmd_read_reg_bit_field_read =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_field_result, read,
 				 "read");
-cmdline_parse_token_string_t cmd_read_reg_bit_field_regfield =
+static cmdline_parse_token_string_t cmd_read_reg_bit_field_regfield =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_field_result,
 				 regfield, "regfield");
-cmdline_parse_token_num_t cmd_read_reg_bit_field_port_id =
+static cmdline_parse_token_num_t cmd_read_reg_bit_field_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, port_id,
 			      RTE_UINT16);
-cmdline_parse_token_num_t cmd_read_reg_bit_field_reg_off =
+static cmdline_parse_token_num_t cmd_read_reg_bit_field_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, reg_off,
 			      RTE_UINT32);
-cmdline_parse_token_num_t cmd_read_reg_bit_field_bit1_pos =
+static cmdline_parse_token_num_t cmd_read_reg_bit_field_bit1_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, bit1_pos,
 			      RTE_UINT8);
-cmdline_parse_token_num_t cmd_read_reg_bit_field_bit2_pos =
+static cmdline_parse_token_num_t cmd_read_reg_bit_field_bit2_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, bit2_pos,
 			      RTE_UINT8);
 
-cmdline_parse_inst_t cmd_read_reg_bit_field = {
+static cmdline_parse_inst_t cmd_read_reg_bit_field = {
 	.f = cmd_read_reg_bit_field_parsed,
 	.data = NULL,
 	.help_str = "read regfield <port_id> <reg_off> <bit_x> <bit_y>: "
@@ -8638,22 +8638,22 @@ cmd_read_reg_bit_parsed(void *parsed_result,
 	port_reg_bit_display(res->port_id, res->reg_off, res->bit_pos);
 }
 
-cmdline_parse_token_string_t cmd_read_reg_bit_read =
+static cmdline_parse_token_string_t cmd_read_reg_bit_read =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_result, read, "read");
-cmdline_parse_token_string_t cmd_read_reg_bit_regbit =
+static cmdline_parse_token_string_t cmd_read_reg_bit_regbit =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_result,
 				 regbit, "regbit");
-cmdline_parse_token_num_t cmd_read_reg_bit_port_id =
+static cmdline_parse_token_num_t cmd_read_reg_bit_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_num_t cmd_read_reg_bit_reg_off =
+static cmdline_parse_token_num_t cmd_read_reg_bit_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, reg_off,
 				 RTE_UINT32);
-cmdline_parse_token_num_t cmd_read_reg_bit_bit_pos =
+static cmdline_parse_token_num_t cmd_read_reg_bit_bit_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, bit_pos,
 				 RTE_UINT8);
 
-cmdline_parse_inst_t cmd_read_reg_bit = {
+static cmdline_parse_inst_t cmd_read_reg_bit = {
 	.f = cmd_read_reg_bit_parsed,
 	.data = NULL,
 	.help_str = "read regbit <port_id> <reg_off> <bit_x>: 0 <= bit_x <= 31",
@@ -8685,18 +8685,18 @@ cmd_write_reg_parsed(void *parsed_result,
 	port_reg_set(res->port_id, res->reg_off, res->value);
 }
 
-cmdline_parse_token_string_t cmd_write_reg_write =
+static cmdline_parse_token_string_t cmd_write_reg_write =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_result, write, "write");
-cmdline_parse_token_string_t cmd_write_reg_reg =
+static cmdline_parse_token_string_t cmd_write_reg_reg =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_result, reg, "reg");
-cmdline_parse_token_num_t cmd_write_reg_port_id =
+static cmdline_parse_token_num_t cmd_write_reg_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_write_reg_reg_off =
+static cmdline_parse_token_num_t cmd_write_reg_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, reg_off, RTE_UINT32);
-cmdline_parse_token_num_t cmd_write_reg_value =
+static cmdline_parse_token_num_t cmd_write_reg_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, value, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_write_reg = {
+static cmdline_parse_inst_t cmd_write_reg = {
 	.f = cmd_write_reg_parsed,
 	.data = NULL,
 	.help_str = "write reg <port_id> <reg_off> <reg_value>",
@@ -8731,29 +8731,29 @@ cmd_write_reg_bit_field_parsed(void *parsed_result,
 			  res->bit1_pos, res->bit2_pos, res->value);
 }
 
-cmdline_parse_token_string_t cmd_write_reg_bit_field_write =
+static cmdline_parse_token_string_t cmd_write_reg_bit_field_write =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_field_result, write,
 				 "write");
-cmdline_parse_token_string_t cmd_write_reg_bit_field_regfield =
+static cmdline_parse_token_string_t cmd_write_reg_bit_field_regfield =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_field_result,
 				 regfield, "regfield");
-cmdline_parse_token_num_t cmd_write_reg_bit_field_port_id =
+static cmdline_parse_token_num_t cmd_write_reg_bit_field_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, port_id,
 			      RTE_UINT16);
-cmdline_parse_token_num_t cmd_write_reg_bit_field_reg_off =
+static cmdline_parse_token_num_t cmd_write_reg_bit_field_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, reg_off,
 			      RTE_UINT32);
-cmdline_parse_token_num_t cmd_write_reg_bit_field_bit1_pos =
+static cmdline_parse_token_num_t cmd_write_reg_bit_field_bit1_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, bit1_pos,
 			      RTE_UINT8);
-cmdline_parse_token_num_t cmd_write_reg_bit_field_bit2_pos =
+static cmdline_parse_token_num_t cmd_write_reg_bit_field_bit2_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, bit2_pos,
 			      RTE_UINT8);
-cmdline_parse_token_num_t cmd_write_reg_bit_field_value =
+static cmdline_parse_token_num_t cmd_write_reg_bit_field_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, value,
 			      RTE_UINT32);
 
-cmdline_parse_inst_t cmd_write_reg_bit_field = {
+static cmdline_parse_inst_t cmd_write_reg_bit_field = {
 	.f = cmd_write_reg_bit_field_parsed,
 	.data = NULL,
 	.help_str = "write regfield <port_id> <reg_off> <bit_x> <bit_y> "
@@ -8790,26 +8790,26 @@ cmd_write_reg_bit_parsed(void *parsed_result,
 	port_reg_bit_set(res->port_id, res->reg_off, res->bit_pos, res->value);
 }
 
-cmdline_parse_token_string_t cmd_write_reg_bit_write =
+static cmdline_parse_token_string_t cmd_write_reg_bit_write =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_result, write,
 				 "write");
-cmdline_parse_token_string_t cmd_write_reg_bit_regbit =
+static cmdline_parse_token_string_t cmd_write_reg_bit_regbit =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_result,
 				 regbit, "regbit");
-cmdline_parse_token_num_t cmd_write_reg_bit_port_id =
+static cmdline_parse_token_num_t cmd_write_reg_bit_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_num_t cmd_write_reg_bit_reg_off =
+static cmdline_parse_token_num_t cmd_write_reg_bit_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, reg_off,
 				 RTE_UINT32);
-cmdline_parse_token_num_t cmd_write_reg_bit_bit_pos =
+static cmdline_parse_token_num_t cmd_write_reg_bit_bit_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, bit_pos,
 				 RTE_UINT8);
-cmdline_parse_token_num_t cmd_write_reg_bit_value =
+static cmdline_parse_token_num_t cmd_write_reg_bit_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, value,
 				 RTE_UINT8);
 
-cmdline_parse_inst_t cmd_write_reg_bit = {
+static cmdline_parse_inst_t cmd_write_reg_bit = {
 	.f = cmd_write_reg_bit_parsed,
 	.data = NULL,
 	.help_str = "write regbit <port_id> <reg_off> <bit_x> 0|1: "
@@ -8847,22 +8847,22 @@ cmd_read_rxd_txd_parsed(void *parsed_result,
 		tx_ring_desc_display(res->port_id, res->queue_id, res->desc_id);
 }
 
-cmdline_parse_token_string_t cmd_read_rxd_txd_read =
+static cmdline_parse_token_string_t cmd_read_rxd_txd_read =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_rxd_txd_result, read, "read");
-cmdline_parse_token_string_t cmd_read_rxd_txd_rxd_txd =
+static cmdline_parse_token_string_t cmd_read_rxd_txd_rxd_txd =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_rxd_txd_result, rxd_txd,
 				 "rxd#txd");
-cmdline_parse_token_num_t cmd_read_rxd_txd_port_id =
+static cmdline_parse_token_num_t cmd_read_rxd_txd_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_rxd_txd_result, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_num_t cmd_read_rxd_txd_queue_id =
+static cmdline_parse_token_num_t cmd_read_rxd_txd_queue_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_rxd_txd_result, queue_id,
 				 RTE_UINT16);
-cmdline_parse_token_num_t cmd_read_rxd_txd_desc_id =
+static cmdline_parse_token_num_t cmd_read_rxd_txd_desc_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_rxd_txd_result, desc_id,
 				 RTE_UINT16);
 
-cmdline_parse_inst_t cmd_read_rxd_txd = {
+static cmdline_parse_inst_t cmd_read_rxd_txd = {
 	.f = cmd_read_rxd_txd_parsed,
 	.data = NULL,
 	.help_str = "read rxd|txd <port_id> <queue_id> <desc_id>",
@@ -8888,10 +8888,10 @@ static void cmd_quit_parsed(__rte_unused void *parsed_result,
 	cmdline_quit(cl);
 }
 
-cmdline_parse_token_string_t cmd_quit_quit =
+static cmdline_parse_token_string_t cmd_quit_quit =
 	TOKEN_STRING_INITIALIZER(struct cmd_quit_result, quit, "quit");
 
-cmdline_parse_inst_t cmd_quit = {
+static cmdline_parse_inst_t cmd_quit = {
 	.f = cmd_quit_parsed,
 	.data = NULL,
 	.help_str = "quit: Exit application",
@@ -8930,19 +8930,19 @@ static void cmd_mac_addr_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_mac_addr_cmd =
+static cmdline_parse_token_string_t cmd_mac_addr_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_mac_addr_result, mac_addr_cmd,
 				"mac_addr");
-cmdline_parse_token_string_t cmd_mac_addr_what =
+static cmdline_parse_token_string_t cmd_mac_addr_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_mac_addr_result, what,
 				"add#remove#set");
-cmdline_parse_token_num_t cmd_mac_addr_portnum =
+static cmdline_parse_token_num_t cmd_mac_addr_portnum =
 		TOKEN_NUM_INITIALIZER(struct cmd_mac_addr_result, port_num,
 					RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_mac_addr_addr =
+static cmdline_parse_token_etheraddr_t cmd_mac_addr_addr =
 		TOKEN_ETHERADDR_INITIALIZER(struct cmd_mac_addr_result, address);
 
-cmdline_parse_inst_t cmd_mac_addr = {
+static cmdline_parse_inst_t cmd_mac_addr = {
 	.f = cmd_mac_addr_parsed,
 	.data = (void *)0,
 	.help_str = "mac_addr add|remove|set <port_id> <mac_addr>: "
@@ -8979,17 +8979,17 @@ static void cmd_set_eth_peer_parsed(void *parsed_result,
 			fwd_config_setup();
 		}
 }
-cmdline_parse_token_string_t cmd_eth_peer_set =
+static cmdline_parse_token_string_t cmd_eth_peer_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_eth_peer_result, set, "set");
-cmdline_parse_token_string_t cmd_eth_peer =
+static cmdline_parse_token_string_t cmd_eth_peer =
 	TOKEN_STRING_INITIALIZER(struct cmd_eth_peer_result, eth_peer, "eth-peer");
-cmdline_parse_token_num_t cmd_eth_peer_port_id =
+static cmdline_parse_token_num_t cmd_eth_peer_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_eth_peer_result, port_id,
 		RTE_UINT16);
-cmdline_parse_token_string_t cmd_eth_peer_addr =
+static cmdline_parse_token_string_t cmd_eth_peer_addr =
 	TOKEN_STRING_INITIALIZER(struct cmd_eth_peer_result, peer_addr, NULL);
 
-cmdline_parse_inst_t cmd_set_fwd_eth_peer = {
+static cmdline_parse_inst_t cmd_set_fwd_eth_peer = {
 	.f = cmd_set_eth_peer_parsed,
 	.data = NULL,
 	.help_str = "set eth-peer <port_id> <peer_mac>",
@@ -9023,26 +9023,26 @@ cmd_set_qmap_parsed(void *parsed_result,
 	set_qmap(res->port_id, (uint8_t)is_rx, res->queue_id, res->map_value);
 }
 
-cmdline_parse_token_string_t cmd_setqmap_set =
+static cmdline_parse_token_string_t cmd_setqmap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_qmap_result,
 				 set, "set");
-cmdline_parse_token_string_t cmd_setqmap_qmap =
+static cmdline_parse_token_string_t cmd_setqmap_qmap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_qmap_result,
 				 qmap, "stat_qmap");
-cmdline_parse_token_string_t cmd_setqmap_what =
+static cmdline_parse_token_string_t cmd_setqmap_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_qmap_result,
 				 what, "tx#rx");
-cmdline_parse_token_num_t cmd_setqmap_portid =
+static cmdline_parse_token_num_t cmd_setqmap_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_qmap_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_setqmap_queueid =
+static cmdline_parse_token_num_t cmd_setqmap_queueid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_qmap_result,
 			      queue_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_setqmap_mapvalue =
+static cmdline_parse_token_num_t cmd_setqmap_mapvalue =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_qmap_result,
 			      map_value, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_set_qmap = {
+static cmdline_parse_inst_t cmd_set_qmap = {
 	.f = cmd_set_qmap_parsed,
 	.data = NULL,
 	.help_str = "set stat_qmap rx|tx <port_id> <queue_id> <map_value>: "
@@ -9078,17 +9078,17 @@ cmd_set_xstats_hide_zero_parsed(void *parsed_result,
 	set_xstats_hide_zero(on_off);
 }
 
-cmdline_parse_token_string_t cmd_set_xstats_hide_zero_keyword =
+static cmdline_parse_token_string_t cmd_set_xstats_hide_zero_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_xstats_hide_zero_result,
 				 keyword, "set");
-cmdline_parse_token_string_t cmd_set_xstats_hide_zero_name =
+static cmdline_parse_token_string_t cmd_set_xstats_hide_zero_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_xstats_hide_zero_result,
 				 name, "xstats-hide-zero");
-cmdline_parse_token_string_t cmd_set_xstats_hide_zero_on_off =
+static cmdline_parse_token_string_t cmd_set_xstats_hide_zero_on_off =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_xstats_hide_zero_result,
 				 on_off, "on#off");
 
-cmdline_parse_inst_t cmd_set_xstats_hide_zero = {
+static cmdline_parse_inst_t cmd_set_xstats_hide_zero = {
 	.f = cmd_set_xstats_hide_zero_parsed,
 	.data = NULL,
 	.help_str = "set xstats-hide-zero on|off",
@@ -9120,17 +9120,17 @@ cmd_set_record_core_cycles_parsed(void *parsed_result,
 	set_record_core_cycles(on_off);
 }
 
-cmdline_parse_token_string_t cmd_set_record_core_cycles_keyword =
+static cmdline_parse_token_string_t cmd_set_record_core_cycles_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_core_cycles_result,
 				 keyword, "set");
-cmdline_parse_token_string_t cmd_set_record_core_cycles_name =
+static cmdline_parse_token_string_t cmd_set_record_core_cycles_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_core_cycles_result,
 				 name, "record-core-cycles");
-cmdline_parse_token_string_t cmd_set_record_core_cycles_on_off =
+static cmdline_parse_token_string_t cmd_set_record_core_cycles_on_off =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_core_cycles_result,
 				 on_off, "on#off");
 
-cmdline_parse_inst_t cmd_set_record_core_cycles = {
+static cmdline_parse_inst_t cmd_set_record_core_cycles = {
 	.f = cmd_set_record_core_cycles_parsed,
 	.data = NULL,
 	.help_str = "set record-core-cycles on|off",
@@ -9162,17 +9162,17 @@ cmd_set_record_burst_stats_parsed(void *parsed_result,
 	set_record_burst_stats(on_off);
 }
 
-cmdline_parse_token_string_t cmd_set_record_burst_stats_keyword =
+static cmdline_parse_token_string_t cmd_set_record_burst_stats_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_burst_stats_result,
 				 keyword, "set");
-cmdline_parse_token_string_t cmd_set_record_burst_stats_name =
+static cmdline_parse_token_string_t cmd_set_record_burst_stats_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_burst_stats_result,
 				 name, "record-burst-stats");
-cmdline_parse_token_string_t cmd_set_record_burst_stats_on_off =
+static cmdline_parse_token_string_t cmd_set_record_burst_stats_on_off =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_burst_stats_result,
 				 on_off, "on#off");
 
-cmdline_parse_inst_t cmd_set_record_burst_stats = {
+static cmdline_parse_inst_t cmd_set_record_burst_stats = {
 	.f = cmd_set_record_burst_stats_parsed,
 	.data = NULL,
 	.help_str = "set record-burst-stats on|off",
@@ -9214,26 +9214,26 @@ cmd_set_uc_hash_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_set_uc_hash_set =
+static cmdline_parse_token_string_t cmd_set_uc_hash_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
 				 set, "set");
-cmdline_parse_token_string_t cmd_set_uc_hash_port =
+static cmdline_parse_token_string_t cmd_set_uc_hash_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
 				 port, "port");
-cmdline_parse_token_num_t cmd_set_uc_hash_portid =
+static cmdline_parse_token_num_t cmd_set_uc_hash_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_uc_hash_table,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_uc_hash_what =
+static cmdline_parse_token_string_t cmd_set_uc_hash_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
 				 what, "uta");
-cmdline_parse_token_etheraddr_t cmd_set_uc_hash_mac =
+static cmdline_parse_token_etheraddr_t cmd_set_uc_hash_mac =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_uc_hash_table,
 				address);
-cmdline_parse_token_string_t cmd_set_uc_hash_mode =
+static cmdline_parse_token_string_t cmd_set_uc_hash_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
 				 mode, "on#off");
 
-cmdline_parse_inst_t cmd_set_uc_hash_filter = {
+static cmdline_parse_inst_t cmd_set_uc_hash_filter = {
 	.f = cmd_set_uc_hash_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> uta <mac_addr> on|off)",
@@ -9276,26 +9276,26 @@ cmd_set_uc_all_hash_parsed(void *parsed_result,
 			ret);
 }
 
-cmdline_parse_token_string_t cmd_set_uc_all_hash_set =
+static cmdline_parse_token_string_t cmd_set_uc_all_hash_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
 				 set, "set");
-cmdline_parse_token_string_t cmd_set_uc_all_hash_port =
+static cmdline_parse_token_string_t cmd_set_uc_all_hash_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
 				 port, "port");
-cmdline_parse_token_num_t cmd_set_uc_all_hash_portid =
+static cmdline_parse_token_num_t cmd_set_uc_all_hash_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_uc_all_hash_table,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_uc_all_hash_what =
+static cmdline_parse_token_string_t cmd_set_uc_all_hash_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
 				 what, "uta");
-cmdline_parse_token_string_t cmd_set_uc_all_hash_value =
+static cmdline_parse_token_string_t cmd_set_uc_all_hash_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
 				value,"all");
-cmdline_parse_token_string_t cmd_set_uc_all_hash_mode =
+static cmdline_parse_token_string_t cmd_set_uc_all_hash_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
 				 mode, "on#off");
 
-cmdline_parse_inst_t cmd_set_uc_all_hash_filter = {
+static cmdline_parse_inst_t cmd_set_uc_all_hash_filter = {
 	.f = cmd_set_uc_all_hash_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> uta all on|off",
@@ -9333,29 +9333,29 @@ cmd_set_vf_traffic_parsed(void *parsed_result,
 	set_vf_traffic(res->port_id, (uint8_t)is_rx, res->vf_id,(uint8_t) is_on);
 }
 
-cmdline_parse_token_string_t cmd_setvf_traffic_set =
+static cmdline_parse_token_string_t cmd_setvf_traffic_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
 				 set, "set");
-cmdline_parse_token_string_t cmd_setvf_traffic_port =
+static cmdline_parse_token_string_t cmd_setvf_traffic_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
 				 port, "port");
-cmdline_parse_token_num_t cmd_setvf_traffic_portid =
+static cmdline_parse_token_num_t cmd_setvf_traffic_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_traffic,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setvf_traffic_vf =
+static cmdline_parse_token_string_t cmd_setvf_traffic_vf =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
 				 vf, "vf");
-cmdline_parse_token_num_t cmd_setvf_traffic_vfid =
+static cmdline_parse_token_num_t cmd_setvf_traffic_vfid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_traffic,
 			      vf_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_setvf_traffic_what =
+static cmdline_parse_token_string_t cmd_setvf_traffic_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
 				 what, "tx#rx");
-cmdline_parse_token_string_t cmd_setvf_traffic_mode =
+static cmdline_parse_token_string_t cmd_setvf_traffic_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
 				 mode, "on#off");
 
-cmdline_parse_inst_t cmd_set_vf_traffic = {
+static cmdline_parse_inst_t cmd_set_vf_traffic = {
 	.f = cmd_set_vf_traffic_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> vf <vf_id> rx|tx on|off",
@@ -9423,32 +9423,32 @@ cmd_set_vf_rxmode_parsed(void *parsed_result,
 			ret);
 }
 
-cmdline_parse_token_string_t cmd_set_vf_rxmode_set =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 set, "set");
-cmdline_parse_token_string_t cmd_set_vf_rxmode_port =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 port, "port");
-cmdline_parse_token_num_t cmd_set_vf_rxmode_portid =
+static cmdline_parse_token_num_t cmd_set_vf_rxmode_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_rxmode,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vf_rxmode_vf =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_vf =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 vf, "vf");
-cmdline_parse_token_num_t cmd_set_vf_rxmode_vfid =
+static cmdline_parse_token_num_t cmd_set_vf_rxmode_vfid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_rxmode,
 			      vf_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_vf_rxmode_what =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 what, "rxmode");
-cmdline_parse_token_string_t cmd_set_vf_rxmode_mode =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 mode, "AUPE#ROPE#BAM#MPE");
-cmdline_parse_token_string_t cmd_set_vf_rxmode_on =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_on =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 on, "on#off");
 
-cmdline_parse_inst_t cmd_set_vf_rxmode = {
+static cmdline_parse_inst_t cmd_set_vf_rxmode = {
 	.f = cmd_set_vf_rxmode_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> vf <vf_id> rxmode "
@@ -9503,29 +9503,29 @@ static void cmd_vf_mac_addr_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_vf_mac_addr_cmd =
+static cmdline_parse_token_string_t cmd_vf_mac_addr_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
 				mac_addr_cmd,"mac_addr");
-cmdline_parse_token_string_t cmd_vf_mac_addr_what =
+static cmdline_parse_token_string_t cmd_vf_mac_addr_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
 				what,"add");
-cmdline_parse_token_string_t cmd_vf_mac_addr_port =
+static cmdline_parse_token_string_t cmd_vf_mac_addr_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
 				port,"port");
-cmdline_parse_token_num_t cmd_vf_mac_addr_portnum =
+static cmdline_parse_token_num_t cmd_vf_mac_addr_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_mac_addr_result,
 				port_num, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_mac_addr_vf =
+static cmdline_parse_token_string_t cmd_vf_mac_addr_vf =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
 				vf,"vf");
-cmdline_parse_token_num_t cmd_vf_mac_addr_vfnum =
+static cmdline_parse_token_num_t cmd_vf_mac_addr_vfnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_mac_addr_result,
 				vf_num, RTE_UINT8);
-cmdline_parse_token_etheraddr_t cmd_vf_mac_addr_addr =
+static cmdline_parse_token_etheraddr_t cmd_vf_mac_addr_addr =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_vf_mac_addr_result,
 				address);
 
-cmdline_parse_inst_t cmd_vf_mac_addr_filter = {
+static cmdline_parse_inst_t cmd_vf_mac_addr_filter = {
 	.f = cmd_vf_mac_addr_parsed,
 	.data = (void *)0,
 	.help_str = "mac_addr add port <port_id> vf <vf_id> <mac_addr>: "
@@ -9597,29 +9597,29 @@ cmd_vf_rx_vlan_filter_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_rx_vlan =
+static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_rx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 				 rx_vlan, "rx_vlan");
-cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_what =
+static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 				 what, "add#rm");
-cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vlanid =
+static cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vlanid =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 			      vlan_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_port =
+static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 				 port, "port");
-cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_portid =
+static cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_vf =
+static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_vf =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 				 vf, "vf");
-cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vf_mask =
+static cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vf_mask =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 			      vf_mask, RTE_UINT64);
 
-cmdline_parse_inst_t cmd_vf_rxvlan_filter = {
+static cmdline_parse_inst_t cmd_vf_rxvlan_filter = {
 	.f = cmd_vf_rx_vlan_filter_parsed,
 	.data = NULL,
 	.help_str = "rx_vlan add|rm <vlan_id> port <port_id> vf <vf_mask>: "
@@ -9665,29 +9665,29 @@ static void cmd_queue_rate_limit_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_queue_rate_limit_set =
+static cmdline_parse_token_string_t cmd_queue_rate_limit_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_queue_rate_limit_port =
+static cmdline_parse_token_string_t cmd_queue_rate_limit_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
 				port, "port");
-cmdline_parse_token_num_t cmd_queue_rate_limit_portnum =
+static cmdline_parse_token_num_t cmd_queue_rate_limit_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_rate_limit_result,
 				port_num, RTE_UINT16);
-cmdline_parse_token_string_t cmd_queue_rate_limit_queue =
+static cmdline_parse_token_string_t cmd_queue_rate_limit_queue =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
 				queue, "queue");
-cmdline_parse_token_num_t cmd_queue_rate_limit_queuenum =
+static cmdline_parse_token_num_t cmd_queue_rate_limit_queuenum =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_rate_limit_result,
 				queue_num, RTE_UINT8);
-cmdline_parse_token_string_t cmd_queue_rate_limit_rate =
+static cmdline_parse_token_string_t cmd_queue_rate_limit_rate =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
 				rate, "rate");
-cmdline_parse_token_num_t cmd_queue_rate_limit_ratenum =
+static cmdline_parse_token_num_t cmd_queue_rate_limit_ratenum =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_rate_limit_result,
 				rate_num, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_queue_rate_limit = {
+static cmdline_parse_inst_t cmd_queue_rate_limit = {
 	.f = cmd_queue_rate_limit_parsed,
 	.data = (void *)0,
 	.help_str = "set port <port_id> queue <queue_id> rate <rate_value>: "
@@ -9736,35 +9736,35 @@ static void cmd_vf_rate_limit_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_vf_rate_limit_set =
+static cmdline_parse_token_string_t cmd_vf_rate_limit_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_vf_rate_limit_port =
+static cmdline_parse_token_string_t cmd_vf_rate_limit_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
 				port, "port");
-cmdline_parse_token_num_t cmd_vf_rate_limit_portnum =
+static cmdline_parse_token_num_t cmd_vf_rate_limit_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
 				port_num, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_rate_limit_vf =
+static cmdline_parse_token_string_t cmd_vf_rate_limit_vf =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
 				vf, "vf");
-cmdline_parse_token_num_t cmd_vf_rate_limit_vfnum =
+static cmdline_parse_token_num_t cmd_vf_rate_limit_vfnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
 				vf_num, RTE_UINT8);
-cmdline_parse_token_string_t cmd_vf_rate_limit_rate =
+static cmdline_parse_token_string_t cmd_vf_rate_limit_rate =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
 				rate, "rate");
-cmdline_parse_token_num_t cmd_vf_rate_limit_ratenum =
+static cmdline_parse_token_num_t cmd_vf_rate_limit_ratenum =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
 				rate_num, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_rate_limit_q_msk =
+static cmdline_parse_token_string_t cmd_vf_rate_limit_q_msk =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
 				q_msk, "queue_mask");
-cmdline_parse_token_num_t cmd_vf_rate_limit_q_msk_val =
+static cmdline_parse_token_num_t cmd_vf_rate_limit_q_msk_val =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
 				q_msk_val, RTE_UINT64);
 
-cmdline_parse_inst_t cmd_vf_rate_limit = {
+static cmdline_parse_inst_t cmd_vf_rate_limit = {
 	.f = cmd_vf_rate_limit_parsed,
 	.data = (void *)0,
 	.help_str = "set port <port_id> vf <vf_id> rate <rate_value> "
@@ -9816,20 +9816,20 @@ cmd_tunnel_udp_config_parsed(void *parsed_result,
 			strerror(-ret));
 }
 
-cmdline_parse_token_string_t cmd_tunnel_udp_config_rx_vxlan_port =
+static cmdline_parse_token_string_t cmd_tunnel_udp_config_rx_vxlan_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_udp_config,
 				rx_vxlan_port, "rx_vxlan_port");
-cmdline_parse_token_string_t cmd_tunnel_udp_config_what =
+static cmdline_parse_token_string_t cmd_tunnel_udp_config_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_udp_config,
 				what, "add#rm");
-cmdline_parse_token_num_t cmd_tunnel_udp_config_udp_port =
+static cmdline_parse_token_num_t cmd_tunnel_udp_config_udp_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_udp_config,
 				udp_port, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tunnel_udp_config_port_id =
+static cmdline_parse_token_num_t cmd_tunnel_udp_config_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_udp_config,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tunnel_udp_config = {
+static cmdline_parse_inst_t cmd_tunnel_udp_config = {
 	.f = cmd_tunnel_udp_config_parsed,
 	.data = (void *)0,
 	.help_str = "rx_vxlan_port add|rm <udp_port> <port_id>: "
@@ -9892,30 +9892,30 @@ cmd_cfg_tunnel_udp_port_parsed(void *parsed_result,
 			strerror(-ret));
 }
 
-cmdline_parse_token_string_t cmd_config_tunnel_udp_port_port =
+static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port, port,
 				 "port");
-cmdline_parse_token_string_t cmd_config_tunnel_udp_port_config =
+static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_config =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port, config,
 				 "config");
-cmdline_parse_token_num_t cmd_config_tunnel_udp_port_port_id =
+static cmdline_parse_token_num_t cmd_config_tunnel_udp_port_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_tunnel_udp_port, port_id,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_tunnel_udp_port_tunnel_port =
+static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_tunnel_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port,
 				 udp_tunnel_port,
 				 "udp_tunnel_port");
-cmdline_parse_token_string_t cmd_config_tunnel_udp_port_action =
+static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_action =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port, action,
 				 "add#rm");
-cmdline_parse_token_string_t cmd_config_tunnel_udp_port_tunnel_type =
+static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_tunnel_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port, tunnel_type,
 				 "vxlan#geneve#vxlan-gpe#ecpri");
-cmdline_parse_token_num_t cmd_config_tunnel_udp_port_value =
+static cmdline_parse_token_num_t cmd_config_tunnel_udp_port_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_tunnel_udp_port, udp_port,
 			      RTE_UINT16);
 
-cmdline_parse_inst_t cmd_cfg_tunnel_udp_port = {
+static cmdline_parse_inst_t cmd_cfg_tunnel_udp_port = {
 	.f = cmd_cfg_tunnel_udp_port_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> udp_tunnel_port add|rm vxlan|"
@@ -10022,7 +10022,7 @@ static void cmd_dump_parsed(void *parsed_result,
 		rte_log_dump(stdout);
 }
 
-cmdline_parse_token_string_t cmd_dump_dump =
+static cmdline_parse_token_string_t cmd_dump_dump =
 	TOKEN_STRING_INITIALIZER(struct cmd_dump_result, dump,
 		"dump_physmem#"
 		"dump_memzone#"
@@ -10033,7 +10033,7 @@ cmdline_parse_token_string_t cmd_dump_dump =
 		"dump_devargs#"
 		"dump_log_types");
 
-cmdline_parse_inst_t cmd_dump = {
+static cmdline_parse_inst_t cmd_dump = {
 	.f = cmd_dump_parsed,  /* function to call */
 	.data = NULL,      /* 2nd arg of func */
 	.help_str = "Dump status",
@@ -10074,14 +10074,14 @@ static void cmd_dump_one_parsed(void *parsed_result, struct cmdline *cl,
 	}
 }
 
-cmdline_parse_token_string_t cmd_dump_one_dump =
+static cmdline_parse_token_string_t cmd_dump_one_dump =
 	TOKEN_STRING_INITIALIZER(struct cmd_dump_one_result, dump,
 				 "dump_ring#dump_mempool");
 
-cmdline_parse_token_string_t cmd_dump_one_name =
+static cmdline_parse_token_string_t cmd_dump_one_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_dump_one_result, name, NULL);
 
-cmdline_parse_inst_t cmd_dump_one = {
+static cmdline_parse_inst_t cmd_dump_one = {
 	.f = cmd_dump_one_parsed,  /* function to call */
 	.data = NULL,      /* 2nd arg of func */
 	.help_str = "dump_ring|dump_mempool <name>: Dump one ring/mempool",
@@ -10144,37 +10144,37 @@ cmd_queue_region_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_queue_region_set =
+static cmdline_parse_token_string_t cmd_queue_region_set =
 TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
 		set, "set");
-cmdline_parse_token_string_t cmd_queue_region_port =
+static cmdline_parse_token_string_t cmd_queue_region_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result, port, "port");
-cmdline_parse_token_num_t cmd_queue_region_port_id =
+static cmdline_parse_token_num_t cmd_queue_region_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_queue_region_cmd =
+static cmdline_parse_token_string_t cmd_queue_region_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
 				 cmd, "queue-region");
-cmdline_parse_token_string_t cmd_queue_region_id =
+static cmdline_parse_token_string_t cmd_queue_region_id =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
 				region, "region_id");
-cmdline_parse_token_num_t cmd_queue_region_index =
+static cmdline_parse_token_num_t cmd_queue_region_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
 				region_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
+static cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
 				queue_start_index, "queue_start_index");
-cmdline_parse_token_num_t cmd_queue_region_queue_id =
+static cmdline_parse_token_num_t cmd_queue_region_queue_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
 				queue_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_queue_region_queue_num =
+static cmdline_parse_token_string_t cmd_queue_region_queue_num =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
 				queue_num, "queue_num");
-cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
+static cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
 				queue_num_value, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_queue_region = {
+static cmdline_parse_inst_t cmd_queue_region = {
 	.f = cmd_queue_region_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> queue-region region_id <value> "
@@ -10244,31 +10244,31 @@ cmd_region_flowtype_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_region_flowtype_set =
+static cmdline_parse_token_string_t cmd_region_flowtype_set =
 TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_region_flowtype_port =
+static cmdline_parse_token_string_t cmd_region_flowtype_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
 				port, "port");
-cmdline_parse_token_num_t cmd_region_flowtype_port_index =
+static cmdline_parse_token_num_t cmd_region_flowtype_port_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_region_flowtype_cmd =
+static cmdline_parse_token_string_t cmd_region_flowtype_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
 				cmd, "queue-region");
-cmdline_parse_token_string_t cmd_region_flowtype_index =
+static cmdline_parse_token_string_t cmd_region_flowtype_index =
 	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
 				region, "region_id");
-cmdline_parse_token_num_t cmd_region_flowtype_id =
+static cmdline_parse_token_num_t cmd_region_flowtype_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
 				region_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
+static cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
 	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
 				flowtype, "flowtype");
-cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
+static cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
 				flowtype_id, RTE_UINT8);
-cmdline_parse_inst_t cmd_region_flowtype = {
+static cmdline_parse_inst_t cmd_region_flowtype = {
 	.f = cmd_region_flowtype_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> queue-region region_id <value> "
@@ -10335,32 +10335,32 @@ cmd_user_priority_region_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_user_priority_region_set =
+static cmdline_parse_token_string_t cmd_user_priority_region_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_user_priority_region_port =
+static cmdline_parse_token_string_t cmd_user_priority_region_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
 				port, "port");
-cmdline_parse_token_num_t cmd_user_priority_region_port_index =
+static cmdline_parse_token_num_t cmd_user_priority_region_port_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_user_priority_region_cmd =
+static cmdline_parse_token_string_t cmd_user_priority_region_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
 				cmd, "queue-region");
-cmdline_parse_token_string_t cmd_user_priority_region_UP =
+static cmdline_parse_token_string_t cmd_user_priority_region_UP =
 	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
 				user_priority, "UP");
-cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
+static cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
 				user_priority_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_user_priority_region_region =
+static cmdline_parse_token_string_t cmd_user_priority_region_region =
 	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
 				region, "region_id");
-cmdline_parse_token_num_t cmd_user_priority_region_region_id =
+static cmdline_parse_token_num_t cmd_user_priority_region_region_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
 				region_id, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_user_priority_region = {
+static cmdline_parse_inst_t cmd_user_priority_region = {
 	.f = cmd_user_priority_region_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> queue-region UP <value> "
@@ -10428,26 +10428,26 @@ cmd_flush_queue_region_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_flush_queue_region_set =
+static cmdline_parse_token_string_t cmd_flush_queue_region_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_flush_queue_region_port =
+static cmdline_parse_token_string_t cmd_flush_queue_region_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
 				port, "port");
-cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
+static cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_flush_queue_region_result,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
+static cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
 				cmd, "queue-region");
-cmdline_parse_token_string_t cmd_flush_queue_region_flush =
+static cmdline_parse_token_string_t cmd_flush_queue_region_flush =
 	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
 				flush, "flush");
-cmdline_parse_token_string_t cmd_flush_queue_region_what =
+static cmdline_parse_token_string_t cmd_flush_queue_region_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
 				what, "on#off");
 
-cmdline_parse_inst_t cmd_flush_queue_region = {
+static cmdline_parse_inst_t cmd_flush_queue_region = {
 	.f = cmd_flush_queue_region_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> queue-region flush on|off"
@@ -10509,20 +10509,20 @@ cmd_show_queue_region_info_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_show_queue_region_info_get =
+static cmdline_parse_token_string_t cmd_show_queue_region_info_get =
 TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
 				show, "show");
-cmdline_parse_token_string_t cmd_show_queue_region_info_port =
+static cmdline_parse_token_string_t cmd_show_queue_region_info_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
 				port, "port");
-cmdline_parse_token_num_t cmd_show_queue_region_info_port_index =
+static cmdline_parse_token_num_t cmd_show_queue_region_info_port_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_queue_region_info,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
+static cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
 				cmd, "queue-region");
 
-cmdline_parse_inst_t cmd_show_queue_region_info_all = {
+static cmdline_parse_inst_t cmd_show_queue_region_info_all = {
 	.f = cmd_show_queue_region_info_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> queue-region"
@@ -10678,51 +10678,51 @@ cmd_flow_director_filter_parsed(void *parsed_result,
 	close_file(conf.input.packet);
 }
 
-cmdline_parse_token_string_t cmd_flow_director_filter =
+static cmdline_parse_token_string_t cmd_flow_director_filter =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 flow_director_filter, "flow_director_filter");
-cmdline_parse_token_num_t cmd_flow_director_port_id =
+static cmdline_parse_token_num_t cmd_flow_director_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_ops =
+static cmdline_parse_token_string_t cmd_flow_director_ops =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 ops, "add#del#update");
-cmdline_parse_token_string_t cmd_flow_director_flow =
+static cmdline_parse_token_string_t cmd_flow_director_flow =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 flow, "flow");
-cmdline_parse_token_string_t cmd_flow_director_flow_type =
+static cmdline_parse_token_string_t cmd_flow_director_flow_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 		flow_type, NULL);
-cmdline_parse_token_string_t cmd_flow_director_drop =
+static cmdline_parse_token_string_t cmd_flow_director_drop =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 drop, "drop#fwd");
-cmdline_parse_token_string_t cmd_flow_director_queue =
+static cmdline_parse_token_string_t cmd_flow_director_queue =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 queue, "queue");
-cmdline_parse_token_num_t cmd_flow_director_queue_id =
+static cmdline_parse_token_num_t cmd_flow_director_queue_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
 			      queue_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_fd_id =
+static cmdline_parse_token_string_t cmd_flow_director_fd_id =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 fd_id, "fd_id");
-cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
+static cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
 			      fd_id_value, RTE_UINT32);
 
-cmdline_parse_token_string_t cmd_flow_director_mode =
+static cmdline_parse_token_string_t cmd_flow_director_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 mode, "mode");
-cmdline_parse_token_string_t cmd_flow_director_mode_raw =
+static cmdline_parse_token_string_t cmd_flow_director_mode_raw =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 mode_value, "raw");
-cmdline_parse_token_string_t cmd_flow_director_packet =
+static cmdline_parse_token_string_t cmd_flow_director_packet =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 packet, "packet");
-cmdline_parse_token_string_t cmd_flow_director_filepath =
+static cmdline_parse_token_string_t cmd_flow_director_filepath =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 filepath, NULL);
 
-cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
+static cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
 	.f = cmd_flow_director_filter_parsed,
 	.data = NULL,
 	.help_str = "flow_director_filter ... : Add or delete a raw flow "
@@ -10825,75 +10825,75 @@ cmd_flow_director_mask_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_flow_director_mask =
+static cmdline_parse_token_string_t cmd_flow_director_mask =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 flow_director_mask, "flow_director_mask");
-cmdline_parse_token_num_t cmd_flow_director_mask_port_id =
+static cmdline_parse_token_num_t cmd_flow_director_mask_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_mask_vlan =
+static cmdline_parse_token_string_t cmd_flow_director_mask_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 vlan, "vlan");
-cmdline_parse_token_num_t cmd_flow_director_mask_vlan_value =
+static cmdline_parse_token_num_t cmd_flow_director_mask_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      vlan_mask, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_mask_src =
+static cmdline_parse_token_string_t cmd_flow_director_mask_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 src_mask, "src_mask");
-cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_src =
+static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_src =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
 				 ipv4_src);
-cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_src =
+static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_src =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
 				 ipv6_src);
-cmdline_parse_token_num_t cmd_flow_director_mask_port_src =
+static cmdline_parse_token_num_t cmd_flow_director_mask_port_src =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      port_src, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_mask_dst =
+static cmdline_parse_token_string_t cmd_flow_director_mask_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 dst_mask, "dst_mask");
-cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_dst =
+static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_dst =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
 				 ipv4_dst);
-cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_dst =
+static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_dst =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
 				 ipv6_dst);
-cmdline_parse_token_num_t cmd_flow_director_mask_port_dst =
+static cmdline_parse_token_num_t cmd_flow_director_mask_port_dst =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      port_dst, RTE_UINT16);
 
-cmdline_parse_token_string_t cmd_flow_director_mask_mode =
+static cmdline_parse_token_string_t cmd_flow_director_mask_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 mode, "mode");
-cmdline_parse_token_string_t cmd_flow_director_mask_mode_ip =
+static cmdline_parse_token_string_t cmd_flow_director_mask_mode_ip =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 mode_value, "IP");
-cmdline_parse_token_string_t cmd_flow_director_mask_mode_mac_vlan =
+static cmdline_parse_token_string_t cmd_flow_director_mask_mode_mac_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 mode_value, "MAC-VLAN");
-cmdline_parse_token_string_t cmd_flow_director_mask_mode_tunnel =
+static cmdline_parse_token_string_t cmd_flow_director_mask_mode_tunnel =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 mode_value, "Tunnel");
-cmdline_parse_token_string_t cmd_flow_director_mask_mac =
+static cmdline_parse_token_string_t cmd_flow_director_mask_mac =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 mac, "mac");
-cmdline_parse_token_num_t cmd_flow_director_mask_mac_value =
+static cmdline_parse_token_num_t cmd_flow_director_mask_mac_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      mac_addr_byte_mask, RTE_UINT8);
-cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_type =
+static cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 tunnel_type, "tunnel-type");
-cmdline_parse_token_num_t cmd_flow_director_mask_tunnel_type_value =
+static cmdline_parse_token_num_t cmd_flow_director_mask_tunnel_type_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      tunnel_type_mask, RTE_UINT8);
-cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_id =
+static cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_id =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 tunnel_id, "tunnel-id");
-cmdline_parse_token_num_t cmd_flow_director_mask_tunnel_id_value =
+static cmdline_parse_token_num_t cmd_flow_director_mask_tunnel_id_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      tunnel_id_mask, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_set_flow_director_ip_mask = {
+static cmdline_parse_inst_t cmd_set_flow_director_ip_mask = {
 	.f = cmd_flow_director_mask_parsed,
 	.data = NULL,
 	.help_str = "flow_director_mask ... : "
@@ -10917,7 +10917,7 @@ cmdline_parse_inst_t cmd_set_flow_director_ip_mask = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_flow_director_mac_vlan_mask = {
+static cmdline_parse_inst_t cmd_set_flow_director_mac_vlan_mask = {
 	.f = cmd_flow_director_mask_parsed,
 	.data = NULL,
 	.help_str = "flow_director_mask ... : Set MAC VLAN mode "
@@ -10933,7 +10933,7 @@ cmdline_parse_inst_t cmd_set_flow_director_mac_vlan_mask = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_flow_director_tunnel_mask = {
+static cmdline_parse_inst_t cmd_set_flow_director_tunnel_mask = {
 	.f = cmd_flow_director_mask_parsed,
 	.data = NULL,
 	.help_str = "flow_director_mask ... : Set tunnel mode "
@@ -11040,21 +11040,21 @@ cmd_flow_director_flxpld_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_flow_director_flexpayload =
+static cmdline_parse_token_string_t cmd_flow_director_flexpayload =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_flexpayload_result,
 				 flow_director_flexpayload,
 				 "flow_director_flex_payload");
-cmdline_parse_token_num_t cmd_flow_director_flexpayload_port_id =
+static cmdline_parse_token_num_t cmd_flow_director_flexpayload_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_flexpayload_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_flexpayload_payload_layer =
+static cmdline_parse_token_string_t cmd_flow_director_flexpayload_payload_layer =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_flexpayload_result,
 				 payload_layer, "raw#l2#l3#l4");
-cmdline_parse_token_string_t cmd_flow_director_flexpayload_payload_cfg =
+static cmdline_parse_token_string_t cmd_flow_director_flexpayload_payload_cfg =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_flexpayload_result,
 				 payload_cfg, NULL);
 
-cmdline_parse_inst_t cmd_set_flow_director_flex_payload = {
+static cmdline_parse_inst_t cmd_set_flow_director_flex_payload = {
 	.f = cmd_flow_director_flxpld_parsed,
 	.data = NULL,
 	.help_str = "flow_director_flexpayload ... : "
@@ -11097,19 +11097,19 @@ static void cmd_mcast_addr_parsed(void *parsed_result,
 		mcast_addr_remove(res->port_num, &res->mc_addr);
 }
 
-cmdline_parse_token_string_t cmd_mcast_addr_cmd =
+static cmdline_parse_token_string_t cmd_mcast_addr_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_mcast_addr_result,
 				 mcast_addr_cmd, "mcast_addr");
-cmdline_parse_token_string_t cmd_mcast_addr_what =
+static cmdline_parse_token_string_t cmd_mcast_addr_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_mcast_addr_result, what,
 				 "add#remove");
-cmdline_parse_token_num_t cmd_mcast_addr_portnum =
+static cmdline_parse_token_num_t cmd_mcast_addr_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_mcast_addr_result, port_num,
 				 RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_mcast_addr_addr =
+static cmdline_parse_token_etheraddr_t cmd_mcast_addr_addr =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_mac_addr_result, address);
 
-cmdline_parse_inst_t cmd_mcast_addr = {
+static cmdline_parse_inst_t cmd_mcast_addr = {
 	.f = cmd_mcast_addr_parsed,
 	.data = (void *)0,
 	.help_str = "mcast_addr add|remove <port_id> <mcast_addr>: "
@@ -11137,31 +11137,31 @@ struct cmd_vf_vlan_anti_spoof_result {
 };
 
 /* Common CLI fields for vf vlan anti spoof enable disable */
-cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_set =
+static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vf =
+static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vlan =
+static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vlan =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 vlan, "vlan");
-cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_antispoof =
+static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_antispoof =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 antispoof, "antispoof");
-cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_port_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_vf_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 vf_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_on_off =
+static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 on_off, "on#off");
@@ -11213,7 +11213,7 @@ cmd_set_vf_vlan_anti_spoof_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_vlan_anti_spoof = {
+static cmdline_parse_inst_t cmd_set_vf_vlan_anti_spoof = {
 	.f = cmd_set_vf_vlan_anti_spoof_parsed,
 	.data = NULL,
 	.help_str = "set vf vlan antispoof <port_id> <vf_id> on|off",
@@ -11243,31 +11243,31 @@ struct cmd_vf_mac_anti_spoof_result {
 };
 
 /* Common CLI fields for vf mac anti spoof enable disable */
-cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_set =
+static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_vf =
+static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_mac =
+static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_mac =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 mac, "mac");
-cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_antispoof =
+static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_antispoof =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 antispoof, "antispoof");
-cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_port_id =
+static cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_vf_id =
+static cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 vf_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_on_off =
+static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 on_off, "on#off");
@@ -11320,7 +11320,7 @@ cmd_set_vf_mac_anti_spoof_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_mac_anti_spoof = {
+static cmdline_parse_inst_t cmd_set_vf_mac_anti_spoof = {
 	.f = cmd_set_vf_mac_anti_spoof_parsed,
 	.data = NULL,
 	.help_str = "set vf mac antispoof <port_id> <vf_id> on|off",
@@ -11350,31 +11350,31 @@ struct cmd_vf_vlan_stripq_result {
 };
 
 /* Common CLI fields for vf vlan strip enable disable */
-cmdline_parse_token_string_t cmd_vf_vlan_stripq_set =
+static cmdline_parse_token_string_t cmd_vf_vlan_stripq_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_vlan_stripq_vf =
+static cmdline_parse_token_string_t cmd_vf_vlan_stripq_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_vlan_stripq_vlan =
+static cmdline_parse_token_string_t cmd_vf_vlan_stripq_vlan =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 vlan, "vlan");
-cmdline_parse_token_string_t cmd_vf_vlan_stripq_stripq =
+static cmdline_parse_token_string_t cmd_vf_vlan_stripq_stripq =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 stripq, "stripq");
-cmdline_parse_token_num_t cmd_vf_vlan_stripq_port_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_stripq_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_vlan_stripq_vf_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_stripq_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_vlan_stripq_on_off =
+static cmdline_parse_token_string_t cmd_vf_vlan_stripq_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 on_off, "on#off");
@@ -11427,7 +11427,7 @@ cmd_set_vf_vlan_stripq_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_vlan_stripq = {
+static cmdline_parse_inst_t cmd_set_vf_vlan_stripq = {
 	.f = cmd_set_vf_vlan_stripq_parsed,
 	.data = NULL,
 	.help_str = "set vf vlan stripq <port_id> <vf_id> on|off",
@@ -11457,31 +11457,31 @@ struct cmd_vf_vlan_insert_result {
 };
 
 /* Common CLI fields for vf vlan insert enable disable */
-cmdline_parse_token_string_t cmd_vf_vlan_insert_set =
+static cmdline_parse_token_string_t cmd_vf_vlan_insert_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_vlan_insert_vf =
+static cmdline_parse_token_string_t cmd_vf_vlan_insert_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_vlan_insert_vlan =
+static cmdline_parse_token_string_t cmd_vf_vlan_insert_vlan =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 vlan, "vlan");
-cmdline_parse_token_string_t cmd_vf_vlan_insert_insert =
+static cmdline_parse_token_string_t cmd_vf_vlan_insert_insert =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 insert, "insert");
-cmdline_parse_token_num_t cmd_vf_vlan_insert_port_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_insert_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_vlan_insert_vf_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_insert_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_vlan_insert_vlan_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_insert_vlan_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 vlan_id, RTE_UINT16);
@@ -11532,7 +11532,7 @@ cmd_set_vf_vlan_insert_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_vlan_insert = {
+static cmdline_parse_inst_t cmd_set_vf_vlan_insert = {
 	.f = cmd_set_vf_vlan_insert_parsed,
 	.data = NULL,
 	.help_str = "set vf vlan insert <port_id> <vf_id> <vlan_id>",
@@ -11560,23 +11560,23 @@ struct cmd_tx_loopback_result {
 };
 
 /* Common CLI fields for tx loopback enable disable */
-cmdline_parse_token_string_t cmd_tx_loopback_set =
+static cmdline_parse_token_string_t cmd_tx_loopback_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_loopback_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_tx_loopback_tx =
+static cmdline_parse_token_string_t cmd_tx_loopback_tx =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_loopback_result,
 		 tx, "tx");
-cmdline_parse_token_string_t cmd_tx_loopback_loopback =
+static cmdline_parse_token_string_t cmd_tx_loopback_loopback =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_loopback_result,
 		 loopback, "loopback");
-cmdline_parse_token_num_t cmd_tx_loopback_port_id =
+static cmdline_parse_token_num_t cmd_tx_loopback_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_tx_loopback_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_tx_loopback_on_off =
+static cmdline_parse_token_string_t cmd_tx_loopback_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_loopback_result,
 		 on_off, "on#off");
@@ -11629,7 +11629,7 @@ cmd_set_tx_loopback_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_tx_loopback = {
+static cmdline_parse_inst_t cmd_set_tx_loopback = {
 	.f = cmd_set_tx_loopback_parsed,
 	.data = NULL,
 	.help_str = "set tx loopback <port_id> on|off",
@@ -11656,27 +11656,27 @@ struct cmd_all_queues_drop_en_result {
 };
 
 /* Common CLI fields for tx loopback enable disable */
-cmdline_parse_token_string_t cmd_all_queues_drop_en_set =
+static cmdline_parse_token_string_t cmd_all_queues_drop_en_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_all_queues_drop_en_all =
+static cmdline_parse_token_string_t cmd_all_queues_drop_en_all =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 all, "all");
-cmdline_parse_token_string_t cmd_all_queues_drop_en_queues =
+static cmdline_parse_token_string_t cmd_all_queues_drop_en_queues =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 queues, "queues");
-cmdline_parse_token_string_t cmd_all_queues_drop_en_drop =
+static cmdline_parse_token_string_t cmd_all_queues_drop_en_drop =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 drop, "drop");
-cmdline_parse_token_num_t cmd_all_queues_drop_en_port_id =
+static cmdline_parse_token_num_t cmd_all_queues_drop_en_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_all_queues_drop_en_on_off =
+static cmdline_parse_token_string_t cmd_all_queues_drop_en_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 on_off, "on#off");
@@ -11719,7 +11719,7 @@ cmd_set_all_queues_drop_en_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_all_queues_drop_en = {
+static cmdline_parse_inst_t cmd_set_all_queues_drop_en = {
 	.f = cmd_set_all_queues_drop_en_parsed,
 	.data = NULL,
 	.help_str = "set all queues drop <port_id> on|off",
@@ -11748,31 +11748,31 @@ struct cmd_vf_split_drop_en_result {
 };
 
 /* Common CLI fields for vf split drop enable disable */
-cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 split, "split");
-cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 drop, "drop");
-cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 on_off, "on#off");
@@ -11812,7 +11812,7 @@ cmd_set_vf_split_drop_en_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
+static cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
 	.f = cmd_set_vf_split_drop_en_parsed,
 	.data = NULL,
 	.help_str = "set vf split drop <port_id> <vf_id> on|off",
@@ -11843,31 +11843,31 @@ struct cmd_set_vf_mac_addr_result {
 };
 
 /* Common CLI fields for vf split drop enable disable */
-cmdline_parse_token_string_t cmd_set_vf_mac_addr_set =
+static cmdline_parse_token_string_t cmd_set_vf_mac_addr_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_set_vf_mac_addr_vf =
+static cmdline_parse_token_string_t cmd_set_vf_mac_addr_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_set_vf_mac_addr_mac =
+static cmdline_parse_token_string_t cmd_set_vf_mac_addr_mac =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 mac, "mac");
-cmdline_parse_token_string_t cmd_set_vf_mac_addr_addr =
+static cmdline_parse_token_string_t cmd_set_vf_mac_addr_addr =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 addr, "addr");
-cmdline_parse_token_num_t cmd_set_vf_mac_addr_port_id =
+static cmdline_parse_token_num_t cmd_set_vf_mac_addr_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_vf_mac_addr_vf_id =
+static cmdline_parse_token_num_t cmd_set_vf_mac_addr_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_set_vf_mac_addr_mac_addr =
+static cmdline_parse_token_etheraddr_t cmd_set_vf_mac_addr_mac_addr =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vf_mac_addr_result,
 		 mac_addr);
 
@@ -11916,7 +11916,7 @@ cmd_set_vf_mac_addr_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_mac_addr = {
+static cmdline_parse_inst_t cmd_set_vf_mac_addr = {
 	.f = cmd_set_vf_mac_addr_parsed,
 	.data = NULL,
 	.help_str = "set vf mac addr <port_id> <vf_id> <mac_addr>",
@@ -11948,39 +11948,39 @@ struct cmd_macsec_offload_on_result {
 };
 
 /* Common CLI fields for MACsec offload disable */
-cmdline_parse_token_string_t cmd_macsec_offload_on_set =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 offload, "offload");
-cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
+static cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_macsec_offload_on_on =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_on =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 on, "on");
-cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 encrypt, "encrypt");
-cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 en_on_off, "on#off");
-cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 replay_protect, "replay-protect");
-cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 rp_on_off, "on#off");
@@ -12034,7 +12034,7 @@ cmd_set_macsec_offload_on_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_macsec_offload_on = {
+static cmdline_parse_inst_t cmd_set_macsec_offload_on = {
 	.f = cmd_set_macsec_offload_on_parsed,
 	.data = NULL,
 	.help_str = "set macsec offload <port_id> on "
@@ -12063,23 +12063,23 @@ struct cmd_macsec_offload_off_result {
 };
 
 /* Common CLI fields for MACsec offload disable */
-cmdline_parse_token_string_t cmd_macsec_offload_off_set =
+static cmdline_parse_token_string_t cmd_macsec_offload_off_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_off_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
+static cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_off_result,
 		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
+static cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_off_result,
 		 offload, "offload");
-cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
+static cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_offload_off_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_macsec_offload_off_off =
+static cmdline_parse_token_string_t cmd_macsec_offload_off_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_off_result,
 		 off, "off");
@@ -12128,7 +12128,7 @@ cmd_set_macsec_offload_off_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_macsec_offload_off = {
+static cmdline_parse_inst_t cmd_set_macsec_offload_off = {
 	.f = cmd_set_macsec_offload_off_parsed,
 	.data = NULL,
 	.help_str = "set macsec offload <port_id> off",
@@ -12154,31 +12154,31 @@ struct cmd_macsec_sc_result {
 };
 
 /* Common CLI fields for MACsec secure connection configure */
-cmdline_parse_token_string_t cmd_macsec_sc_set =
+static cmdline_parse_token_string_t cmd_macsec_sc_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_sc_macsec =
+static cmdline_parse_token_string_t cmd_macsec_sc_macsec =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_sc_sc =
+static cmdline_parse_token_string_t cmd_macsec_sc_sc =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 sc, "sc");
-cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
+static cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 tx_rx, "tx#rx");
-cmdline_parse_token_num_t cmd_macsec_sc_port_id =
+static cmdline_parse_token_num_t cmd_macsec_sc_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
+static cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
 	TOKEN_ETHERADDR_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 mac);
-cmdline_parse_token_num_t cmd_macsec_sc_pi =
+static cmdline_parse_token_num_t cmd_macsec_sc_pi =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 pi, RTE_UINT16);
@@ -12216,7 +12216,7 @@ cmd_set_macsec_sc_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_macsec_sc = {
+static cmdline_parse_inst_t cmd_set_macsec_sc = {
 	.f = cmd_set_macsec_sc_parsed,
 	.data = NULL,
 	.help_str = "set macsec sc tx|rx <port_id> <mac> <pi>",
@@ -12246,39 +12246,39 @@ struct cmd_macsec_sa_result {
 };
 
 /* Common CLI fields for MACsec secure connection configure */
-cmdline_parse_token_string_t cmd_macsec_sa_set =
+static cmdline_parse_token_string_t cmd_macsec_sa_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_sa_macsec =
+static cmdline_parse_token_string_t cmd_macsec_sa_macsec =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_sa_sa =
+static cmdline_parse_token_string_t cmd_macsec_sa_sa =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 sa, "sa");
-cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
+static cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 tx_rx, "tx#rx");
-cmdline_parse_token_num_t cmd_macsec_sa_port_id =
+static cmdline_parse_token_num_t cmd_macsec_sa_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_macsec_sa_idx =
+static cmdline_parse_token_num_t cmd_macsec_sa_idx =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 idx, RTE_UINT8);
-cmdline_parse_token_num_t cmd_macsec_sa_an =
+static cmdline_parse_token_num_t cmd_macsec_sa_an =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 an, RTE_UINT8);
-cmdline_parse_token_num_t cmd_macsec_sa_pn =
+static cmdline_parse_token_num_t cmd_macsec_sa_pn =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 pn, RTE_UINT32);
-cmdline_parse_token_string_t cmd_macsec_sa_key =
+static cmdline_parse_token_string_t cmd_macsec_sa_key =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 key, NULL);
@@ -12339,7 +12339,7 @@ cmd_set_macsec_sa_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_macsec_sa = {
+static cmdline_parse_inst_t cmd_set_macsec_sa = {
 	.f = cmd_set_macsec_sa_parsed,
 	.data = NULL,
 	.help_str = "set macsec sa tx|rx <port_id> <idx> <an> <pn> <key>",
@@ -12370,27 +12370,27 @@ struct cmd_vf_promisc_result {
 };
 
 /* Common CLI fields for VF unicast promiscuous mode enable disable */
-cmdline_parse_token_string_t cmd_vf_promisc_set =
+static cmdline_parse_token_string_t cmd_vf_promisc_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_promisc_vf =
+static cmdline_parse_token_string_t cmd_vf_promisc_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_promisc_promisc =
+static cmdline_parse_token_string_t cmd_vf_promisc_promisc =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 promisc, "promisc");
-cmdline_parse_token_num_t cmd_vf_promisc_port_id =
+static cmdline_parse_token_num_t cmd_vf_promisc_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_promisc_vf_id =
+static cmdline_parse_token_num_t cmd_vf_promisc_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 vf_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_vf_promisc_on_off =
+static cmdline_parse_token_string_t cmd_vf_promisc_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 on_off, "on#off");
@@ -12431,7 +12431,7 @@ cmd_set_vf_promisc_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_promisc = {
+static cmdline_parse_inst_t cmd_set_vf_promisc = {
 	.f = cmd_set_vf_promisc_parsed,
 	.data = NULL,
 	.help_str = "set vf promisc <port_id> <vf_id> on|off: "
@@ -12460,27 +12460,27 @@ struct cmd_vf_allmulti_result {
 };
 
 /* Common CLI fields for VF multicast promiscuous mode enable disable */
-cmdline_parse_token_string_t cmd_vf_allmulti_set =
+static cmdline_parse_token_string_t cmd_vf_allmulti_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_allmulti_vf =
+static cmdline_parse_token_string_t cmd_vf_allmulti_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_allmulti_allmulti =
+static cmdline_parse_token_string_t cmd_vf_allmulti_allmulti =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 allmulti, "allmulti");
-cmdline_parse_token_num_t cmd_vf_allmulti_port_id =
+static cmdline_parse_token_num_t cmd_vf_allmulti_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_allmulti_vf_id =
+static cmdline_parse_token_num_t cmd_vf_allmulti_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 vf_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_vf_allmulti_on_off =
+static cmdline_parse_token_string_t cmd_vf_allmulti_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 on_off, "on#off");
@@ -12521,7 +12521,7 @@ cmd_set_vf_allmulti_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_allmulti = {
+static cmdline_parse_inst_t cmd_set_vf_allmulti = {
 	.f = cmd_set_vf_allmulti_parsed,
 	.data = NULL,
 	.help_str = "set vf allmulti <port_id> <vf_id> on|off: "
@@ -12550,27 +12550,27 @@ struct cmd_set_vf_broadcast_result {
 };
 
 /* Common CLI fields for vf broadcast enable disable */
-cmdline_parse_token_string_t cmd_set_vf_broadcast_set =
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_set_vf_broadcast_vf =
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_set_vf_broadcast_broadcast =
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_broadcast =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 broadcast, "broadcast");
-cmdline_parse_token_num_t cmd_set_vf_broadcast_port_id =
+static cmdline_parse_token_num_t cmd_set_vf_broadcast_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_vf_broadcast_vf_id =
+static cmdline_parse_token_num_t cmd_set_vf_broadcast_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vf_broadcast_on_off =
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 on_off, "on#off");
@@ -12612,7 +12612,7 @@ cmd_set_vf_broadcast_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_broadcast = {
+static cmdline_parse_inst_t cmd_set_vf_broadcast = {
 	.f = cmd_set_vf_broadcast_parsed,
 	.data = NULL,
 	.help_str = "set vf broadcast <port_id> <vf_id> on|off",
@@ -12641,31 +12641,31 @@ struct cmd_set_vf_vlan_tag_result {
 };
 
 /* Common CLI fields for vf vlan tag enable disable */
-cmdline_parse_token_string_t cmd_set_vf_vlan_tag_set =
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vf =
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vlan =
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vlan =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 vlan, "vlan");
-cmdline_parse_token_string_t cmd_set_vf_vlan_tag_tag =
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_tag =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 tag, "tag");
-cmdline_parse_token_num_t cmd_set_vf_vlan_tag_port_id =
+static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_vf_vlan_tag_vf_id =
+static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vf_vlan_tag_on_off =
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 on_off, "on#off");
@@ -12707,7 +12707,7 @@ cmd_set_vf_vlan_tag_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_vlan_tag = {
+static cmdline_parse_inst_t cmd_set_vf_vlan_tag = {
 	.f = cmd_set_vf_vlan_tag_parsed,
 	.data = NULL,
 	.help_str = "set vf vlan tag <port_id> <vf_id> on|off",
@@ -12740,55 +12740,55 @@ struct cmd_vf_tc_bw_result {
 	uint8_t tc_map;
 };
 
-cmdline_parse_token_string_t cmd_vf_tc_bw_set =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_tc_bw_vf =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 tc, "tc");
-cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 tx, "tx");
-cmdline_parse_token_string_t cmd_vf_tc_bw_strict_link_prio =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_strict_link_prio =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 strict_link_prio, "strict-link-priority");
-cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 min_bw, "min-bandwidth");
-cmdline_parse_token_string_t cmd_vf_tc_bw_max_bw =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_max_bw =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 max_bw, "max-bandwidth");
-cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
+static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_tc_bw_vf_id =
+static cmdline_parse_token_num_t cmd_vf_tc_bw_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_tc_bw_tc_no =
+static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_no =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 tc_no, RTE_UINT8);
-cmdline_parse_token_num_t cmd_vf_tc_bw_bw =
+static cmdline_parse_token_num_t cmd_vf_tc_bw_bw =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 bw, RTE_UINT32);
-cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 bw_list, NULL);
-cmdline_parse_token_num_t cmd_vf_tc_bw_tc_map =
+static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_map =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 tc_map, RTE_UINT8);
@@ -12829,7 +12829,7 @@ cmd_vf_max_bw_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_vf_max_bw = {
+static cmdline_parse_inst_t cmd_vf_max_bw = {
 	.f = cmd_vf_max_bw_parsed,
 	.data = NULL,
 	.help_str = "set vf tx max-bandwidth <port_id> <vf_id> <bandwidth>",
@@ -12931,7 +12931,7 @@ cmd_vf_tc_min_bw_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_vf_tc_min_bw = {
+static cmdline_parse_inst_t cmd_vf_tc_min_bw = {
 	.f = cmd_vf_tc_min_bw_parsed,
 	.data = NULL,
 	.help_str = "set vf tc tx min-bandwidth <port_id> <vf_id>"
@@ -12996,7 +12996,7 @@ cmd_tc_min_bw_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_tc_min_bw = {
+static cmdline_parse_inst_t cmd_tc_min_bw = {
 	.f = cmd_tc_min_bw_parsed,
 	.data = NULL,
 	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
@@ -13048,7 +13048,7 @@ cmd_vf_tc_max_bw_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_vf_tc_max_bw = {
+static cmdline_parse_inst_t cmd_vf_tc_max_bw = {
 	.f = cmd_vf_tc_max_bw_parsed,
 	.data = NULL,
 	.help_str = "set vf tc tx max-bandwidth <port_id> <vf_id> <tc_no>"
@@ -13086,71 +13086,71 @@ struct cmd_set_vxlan_result {
 	struct rte_ether_addr eth_dst;
 };
 
-cmdline_parse_token_string_t cmd_set_vxlan_set =
+static cmdline_parse_token_string_t cmd_set_vxlan_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, set, "set");
-cmdline_parse_token_string_t cmd_set_vxlan_vxlan =
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan, "vxlan");
-cmdline_parse_token_string_t cmd_set_vxlan_vxlan_tos_ttl =
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_tos_ttl =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
 				 "vxlan-tos-ttl");
-cmdline_parse_token_string_t cmd_set_vxlan_vxlan_with_vlan =
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
 				 "vxlan-with-vlan");
-cmdline_parse_token_string_t cmd_set_vxlan_ip_version =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "ip-version");
-cmdline_parse_token_string_t cmd_set_vxlan_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, ip_version,
 				 "ipv4#ipv6");
-cmdline_parse_token_string_t cmd_set_vxlan_vni =
+static cmdline_parse_token_string_t cmd_set_vxlan_vni =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "vni");
-cmdline_parse_token_num_t cmd_set_vxlan_vni_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_vni_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, vni, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_vxlan_udp_src =
+static cmdline_parse_token_string_t cmd_set_vxlan_udp_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "udp-src");
-cmdline_parse_token_num_t cmd_set_vxlan_udp_src_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_udp_src_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_src, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vxlan_udp_dst =
+static cmdline_parse_token_string_t cmd_set_vxlan_udp_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "udp-dst");
-cmdline_parse_token_num_t cmd_set_vxlan_udp_dst_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_udp_dst_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_dst, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vxlan_ip_tos =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_tos =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "ip-tos");
-cmdline_parse_token_num_t cmd_set_vxlan_ip_tos_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_ip_tos_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tos, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_vxlan_ip_ttl =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_ttl =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "ip-ttl");
-cmdline_parse_token_num_t cmd_set_vxlan_ip_ttl_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_ip_ttl_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, ttl, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_vxlan_ip_src =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "ip-src");
-cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_src_value =
+static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_src_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_src);
-cmdline_parse_token_string_t cmd_set_vxlan_ip_dst =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "ip-dst");
-cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_dst_value =
+static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_dst_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_dst);
-cmdline_parse_token_string_t cmd_set_vxlan_vlan =
+static cmdline_parse_token_string_t cmd_set_vxlan_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "vlan-tci");
-cmdline_parse_token_num_t cmd_set_vxlan_vlan_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tci, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vxlan_eth_src =
+static cmdline_parse_token_string_t cmd_set_vxlan_eth_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "eth-src");
-cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_src_value =
+static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_src_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_src);
-cmdline_parse_token_string_t cmd_set_vxlan_eth_dst =
+static cmdline_parse_token_string_t cmd_set_vxlan_eth_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "eth-dst");
-cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_dst_value =
+static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_dst_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_dst);
 
 static void cmd_set_vxlan_parsed(void *parsed_result,
@@ -13200,7 +13200,7 @@ static void cmd_set_vxlan_parsed(void *parsed_result,
 		   RTE_ETHER_ADDR_LEN);
 }
 
-cmdline_parse_inst_t cmd_set_vxlan = {
+static cmdline_parse_inst_t cmd_set_vxlan = {
 	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
 	.help_str = "set vxlan ip-version ipv4|ipv6 vni <vni> udp-src"
@@ -13229,7 +13229,7 @@ cmdline_parse_inst_t cmd_set_vxlan = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
+static cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
 	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
 	.help_str = "set vxlan-tos-ttl ip-version ipv4|ipv6 vni <vni> udp-src"
@@ -13263,7 +13263,7 @@ cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_vxlan_with_vlan = {
+static cmdline_parse_inst_t cmd_set_vxlan_with_vlan = {
 	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
 	.help_str = "set vxlan-with-vlan ip-version ipv4|ipv6 vni <vni>"
@@ -13309,48 +13309,48 @@ struct cmd_set_nvgre_result {
 	struct rte_ether_addr eth_dst;
 };
 
-cmdline_parse_token_string_t cmd_set_nvgre_set =
+static cmdline_parse_token_string_t cmd_set_nvgre_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, set, "set");
-cmdline_parse_token_string_t cmd_set_nvgre_nvgre =
+static cmdline_parse_token_string_t cmd_set_nvgre_nvgre =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre, "nvgre");
-cmdline_parse_token_string_t cmd_set_nvgre_nvgre_with_vlan =
+static cmdline_parse_token_string_t cmd_set_nvgre_nvgre_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre,
 				 "nvgre-with-vlan");
-cmdline_parse_token_string_t cmd_set_nvgre_ip_version =
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "ip-version");
-cmdline_parse_token_string_t cmd_set_nvgre_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, ip_version,
 				 "ipv4#ipv6");
-cmdline_parse_token_string_t cmd_set_nvgre_tni =
+static cmdline_parse_token_string_t cmd_set_nvgre_tni =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "tni");
-cmdline_parse_token_num_t cmd_set_nvgre_tni_value =
+static cmdline_parse_token_num_t cmd_set_nvgre_tni_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tni, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_nvgre_ip_src =
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "ip-src");
-cmdline_parse_token_num_t cmd_set_nvgre_ip_src_value =
+static cmdline_parse_token_num_t cmd_set_nvgre_ip_src_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_src);
-cmdline_parse_token_string_t cmd_set_nvgre_ip_dst =
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "ip-dst");
-cmdline_parse_token_ipaddr_t cmd_set_nvgre_ip_dst_value =
+static cmdline_parse_token_ipaddr_t cmd_set_nvgre_ip_dst_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_dst);
-cmdline_parse_token_string_t cmd_set_nvgre_vlan =
+static cmdline_parse_token_string_t cmd_set_nvgre_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "vlan-tci");
-cmdline_parse_token_num_t cmd_set_nvgre_vlan_value =
+static cmdline_parse_token_num_t cmd_set_nvgre_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tci, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_nvgre_eth_src =
+static cmdline_parse_token_string_t cmd_set_nvgre_eth_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "eth-src");
-cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_src_value =
+static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_src_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_src);
-cmdline_parse_token_string_t cmd_set_nvgre_eth_dst =
+static cmdline_parse_token_string_t cmd_set_nvgre_eth_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "eth-dst");
-cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_dst_value =
+static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_dst_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_dst);
 
 static void cmd_set_nvgre_parsed(void *parsed_result,
@@ -13391,7 +13391,7 @@ static void cmd_set_nvgre_parsed(void *parsed_result,
 		   RTE_ETHER_ADDR_LEN);
 }
 
-cmdline_parse_inst_t cmd_set_nvgre = {
+static cmdline_parse_inst_t cmd_set_nvgre = {
 	.f = cmd_set_nvgre_parsed,
 	.data = NULL,
 	.help_str = "set nvgre ip-version <ipv4|ipv6> tni <tni> ip-src"
@@ -13416,7 +13416,7 @@ cmdline_parse_inst_t cmd_set_nvgre = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_nvgre_with_vlan = {
+static cmdline_parse_inst_t cmd_set_nvgre_with_vlan = {
 	.f = cmd_set_nvgre_parsed,
 	.data = NULL,
 	.help_str = "set nvgre-with-vlan ip-version <ipv4|ipv6> tni <tni>"
@@ -13455,33 +13455,33 @@ struct cmd_set_l2_encap_result {
 	struct rte_ether_addr eth_dst;
 };
 
-cmdline_parse_token_string_t cmd_set_l2_encap_set =
+static cmdline_parse_token_string_t cmd_set_l2_encap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, set, "set");
-cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap =
+static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap, "l2_encap");
-cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap,
 				 "l2_encap-with-vlan");
-cmdline_parse_token_string_t cmd_set_l2_encap_ip_version =
+static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
 				 "ip-version");
-cmdline_parse_token_string_t cmd_set_l2_encap_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, ip_version,
 				 "ipv4#ipv6");
-cmdline_parse_token_string_t cmd_set_l2_encap_vlan =
+static cmdline_parse_token_string_t cmd_set_l2_encap_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
 				 "vlan-tci");
-cmdline_parse_token_num_t cmd_set_l2_encap_vlan_value =
+static cmdline_parse_token_num_t cmd_set_l2_encap_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_l2_encap_result, tci, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_l2_encap_eth_src =
+static cmdline_parse_token_string_t cmd_set_l2_encap_eth_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
 				 "eth-src");
-cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_src_value =
+static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_src_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_src);
-cmdline_parse_token_string_t cmd_set_l2_encap_eth_dst =
+static cmdline_parse_token_string_t cmd_set_l2_encap_eth_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
 				 "eth-dst");
-cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_dst_value =
+static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_dst_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_dst);
 
 static void cmd_set_l2_encap_parsed(void *parsed_result,
@@ -13508,7 +13508,7 @@ static void cmd_set_l2_encap_parsed(void *parsed_result,
 		   RTE_ETHER_ADDR_LEN);
 }
 
-cmdline_parse_inst_t cmd_set_l2_encap = {
+static cmdline_parse_inst_t cmd_set_l2_encap = {
 	.f = cmd_set_l2_encap_parsed,
 	.data = NULL,
 	.help_str = "set l2_encap ip-version ipv4|ipv6"
@@ -13526,7 +13526,7 @@ cmdline_parse_inst_t cmd_set_l2_encap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_l2_encap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_l2_encap_with_vlan = {
 	.f = cmd_set_l2_encap_parsed,
 	.data = NULL,
 	.help_str = "set l2_encap-with-vlan ip-version ipv4|ipv6"
@@ -13554,12 +13554,12 @@ struct cmd_set_l2_decap_result {
 	uint32_t vlan_present:1;
 };
 
-cmdline_parse_token_string_t cmd_set_l2_decap_set =
+static cmdline_parse_token_string_t cmd_set_l2_decap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, set, "set");
-cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap =
+static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
 				 "l2_decap");
-cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
 				 "l2_decap-with-vlan");
 
@@ -13575,7 +13575,7 @@ static void cmd_set_l2_decap_parsed(void *parsed_result,
 		l2_decap_conf.select_vlan = 1;
 }
 
-cmdline_parse_inst_t cmd_set_l2_decap = {
+static cmdline_parse_inst_t cmd_set_l2_decap = {
 	.f = cmd_set_l2_decap_parsed,
 	.data = NULL,
 	.help_str = "set l2_decap",
@@ -13586,7 +13586,7 @@ cmdline_parse_inst_t cmd_set_l2_decap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_l2_decap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_l2_decap_with_vlan = {
 	.f = cmd_set_l2_decap_parsed,
 	.data = NULL,
 	.help_str = "set l2_decap-with-vlan",
@@ -13612,53 +13612,53 @@ struct cmd_set_mplsogre_encap_result {
 	struct rte_ether_addr eth_dst;
 };
 
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_set =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, set,
 				 "set");
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, mplsogre,
 				 "mplsogre_encap");
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 mplsogre, "mplsogre_encap-with-vlan");
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "ip-version");
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 ip_version, "ipv4#ipv6");
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_label =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_label =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "label");
-cmdline_parse_token_num_t cmd_set_mplsogre_encap_label_value =
+static cmdline_parse_token_num_t cmd_set_mplsogre_encap_label_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, label,
 			      RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_src =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "ip-src");
-cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_src_value =
+static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_src_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_src);
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_dst =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "ip-dst");
-cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_dst_value =
+static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_dst_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_dst);
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "vlan-tci");
-cmdline_parse_token_num_t cmd_set_mplsogre_encap_vlan_value =
+static cmdline_parse_token_num_t cmd_set_mplsogre_encap_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, tci,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_src =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "eth-src");
-cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_src_value =
+static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_src_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				    eth_src);
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_dst =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "eth-dst");
-cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_dst_value =
+static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_dst_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				    eth_dst);
 
@@ -13700,7 +13700,7 @@ static void cmd_set_mplsogre_encap_parsed(void *parsed_result,
 		   RTE_ETHER_ADDR_LEN);
 }
 
-cmdline_parse_inst_t cmd_set_mplsogre_encap = {
+static cmdline_parse_inst_t cmd_set_mplsogre_encap = {
 	.f = cmd_set_mplsogre_encap_parsed,
 	.data = NULL,
 	.help_str = "set mplsogre_encap ip-version ipv4|ipv6 label <label>"
@@ -13725,7 +13725,7 @@ cmdline_parse_inst_t cmd_set_mplsogre_encap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_mplsogre_encap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_mplsogre_encap_with_vlan = {
 	.f = cmd_set_mplsogre_encap_parsed,
 	.data = NULL,
 	.help_str = "set mplsogre_encap-with-vlan ip-version ipv4|ipv6"
@@ -13761,19 +13761,19 @@ struct cmd_set_mplsogre_decap_result {
 	uint32_t vlan_present:1;
 };
 
-cmdline_parse_token_string_t cmd_set_mplsogre_decap_set =
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, set,
 				 "set");
-cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap =
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, mplsogre,
 				 "mplsogre_decap");
-cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
 				 mplsogre, "mplsogre_decap-with-vlan");
-cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version =
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
 				 pos_token, "ip-version");
-cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
 				 ip_version, "ipv4#ipv6");
 
@@ -13793,7 +13793,7 @@ static void cmd_set_mplsogre_decap_parsed(void *parsed_result,
 		mplsogre_decap_conf.select_ipv4 = 0;
 }
 
-cmdline_parse_inst_t cmd_set_mplsogre_decap = {
+static cmdline_parse_inst_t cmd_set_mplsogre_decap = {
 	.f = cmd_set_mplsogre_decap_parsed,
 	.data = NULL,
 	.help_str = "set mplsogre_decap ip-version ipv4|ipv6",
@@ -13806,7 +13806,7 @@ cmdline_parse_inst_t cmd_set_mplsogre_decap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_mplsogre_decap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_mplsogre_decap_with_vlan = {
 	.f = cmd_set_mplsogre_decap_parsed,
 	.data = NULL,
 	.help_str = "set mplsogre_decap-with-vlan ip-version ipv4|ipv6",
@@ -13836,65 +13836,65 @@ struct cmd_set_mplsoudp_encap_result {
 	struct rte_ether_addr eth_dst;
 };
 
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_set =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, set,
 				 "set");
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, mplsoudp,
 				 "mplsoudp_encap");
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 mplsoudp, "mplsoudp_encap-with-vlan");
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "ip-version");
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 ip_version, "ipv4#ipv6");
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_label =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_label =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "label");
-cmdline_parse_token_num_t cmd_set_mplsoudp_encap_label_value =
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_label_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, label,
 			      RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_src =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "udp-src");
-cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_src_value =
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_src_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_src,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_dst =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "udp-dst");
-cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_dst_value =
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_dst_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_dst,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_src =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "ip-src");
-cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_src_value =
+static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_src_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_src);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_dst =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "ip-dst");
-cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_dst_value =
+static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_dst_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_dst);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "vlan-tci");
-cmdline_parse_token_num_t cmd_set_mplsoudp_encap_vlan_value =
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, tci,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_src =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "eth-src");
-cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_src_value =
+static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_src_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				    eth_src);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_dst =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "eth-dst");
-cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_dst_value =
+static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_dst_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				    eth_dst);
 
@@ -13938,7 +13938,7 @@ static void cmd_set_mplsoudp_encap_parsed(void *parsed_result,
 		   RTE_ETHER_ADDR_LEN);
 }
 
-cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
+static cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
 	.f = cmd_set_mplsoudp_encap_parsed,
 	.data = NULL,
 	.help_str = "set mplsoudp_encap ip-version ipv4|ipv6 label <label>"
@@ -13967,7 +13967,7 @@ cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_mplsoudp_encap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_mplsoudp_encap_with_vlan = {
 	.f = cmd_set_mplsoudp_encap_parsed,
 	.data = NULL,
 	.help_str = "set mplsoudp_encap-with-vlan ip-version ipv4|ipv6"
@@ -14008,19 +14008,19 @@ struct cmd_set_mplsoudp_decap_result {
 	uint32_t vlan_present:1;
 };
 
-cmdline_parse_token_string_t cmd_set_mplsoudp_decap_set =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, set,
 				 "set");
-cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, mplsoudp,
 				 "mplsoudp_decap");
-cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
 				 mplsoudp, "mplsoudp_decap-with-vlan");
-cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
 				 pos_token, "ip-version");
-cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
 				 ip_version, "ipv4#ipv6");
 
@@ -14040,7 +14040,7 @@ static void cmd_set_mplsoudp_decap_parsed(void *parsed_result,
 		mplsoudp_decap_conf.select_ipv4 = 0;
 }
 
-cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
+static cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
 	.f = cmd_set_mplsoudp_decap_parsed,
 	.data = NULL,
 	.help_str = "set mplsoudp_decap ip-version ipv4|ipv6",
@@ -14053,7 +14053,7 @@ cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_mplsoudp_decap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_mplsoudp_decap_with_vlan = {
 	.f = cmd_set_mplsoudp_decap_parsed,
 	.data = NULL,
 	.help_str = "set mplsoudp_decap-with-vlan ip-version ipv4|ipv6",
@@ -14105,109 +14105,109 @@ struct cmd_set_conntrack_common_result {
 	uint32_t le;
 };
 
-cmdline_parse_token_string_t cmd_set_conntrack_set =
+static cmdline_parse_token_string_t cmd_set_conntrack_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 set, "set");
-cmdline_parse_token_string_t cmd_set_conntrack_conntrack =
+static cmdline_parse_token_string_t cmd_set_conntrack_conntrack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 conntrack, "conntrack");
-cmdline_parse_token_string_t cmd_set_conntrack_common_com =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_com =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 common, "com");
-cmdline_parse_token_string_t cmd_set_conntrack_common_peer =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_peer =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 peer, "peer");
-cmdline_parse_token_num_t cmd_set_conntrack_common_peer_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_peer_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      peer_port, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_conntrack_common_is_orig =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_is_orig =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 is_orig, "is_orig");
-cmdline_parse_token_num_t cmd_set_conntrack_common_is_orig_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_is_orig_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      is_original, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_enable =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_enable =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 enable, "enable");
-cmdline_parse_token_num_t cmd_set_conntrack_common_enable_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_enable_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      en, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_live =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_live =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 live, "live");
-cmdline_parse_token_num_t cmd_set_conntrack_common_live_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_live_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      is_live, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_sack =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_sack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 sack, "sack");
-cmdline_parse_token_num_t cmd_set_conntrack_common_sack_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_sack_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      s_ack, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_cack =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_cack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 cack, "cack");
-cmdline_parse_token_num_t cmd_set_conntrack_common_cack_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_cack_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      c_ack, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_dir =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_dir =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_dir, "last_dir");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_dir_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_dir_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      ld, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_liberal =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_liberal =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 liberal, "liberal");
-cmdline_parse_token_num_t cmd_set_conntrack_common_liberal_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_liberal_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      lb, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_state =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_state =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 state, "state");
-cmdline_parse_token_num_t cmd_set_conntrack_common_state_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_state_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      stat, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_conntrack_common_max_ackwin =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_max_ackwin =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 max_ack_win, "max_ack_win");
-cmdline_parse_token_num_t cmd_set_conntrack_common_max_ackwin_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_max_ackwin_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      factor, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_conntrack_common_retrans =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_retrans =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 retrans, "r_lim");
-cmdline_parse_token_num_t cmd_set_conntrack_common_retrans_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_retrans_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      re_num, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_win =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_win =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_win, "last_win");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_win_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_win_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      lw, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_seq =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_seq =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_seq, "last_seq");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_seq_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_seq_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      ls, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_ack =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_ack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_ack, "last_ack");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_ack_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_ack_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      la, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_end =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_end =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_end, "last_end");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_end_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_end_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      le, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_index =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_index =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_index, "last_index");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_index_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_index_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      li, RTE_UINT8);
 
@@ -14237,7 +14237,7 @@ static void cmd_set_conntrack_common_parsed(void *parsed_result,
 	conntrack_context.last_end = res->le;
 }
 
-cmdline_parse_inst_t cmd_set_conntrack_common = {
+static cmdline_parse_inst_t cmd_set_conntrack_common = {
 	.f = cmd_set_conntrack_common_parsed,
 	.data = NULL,
 	.help_str = "set conntrack com peer <port_id> is_orig <dir> enable <en>"
@@ -14308,61 +14308,55 @@ struct cmd_set_conntrack_dir_result {
 	uint32_t ma;
 };
 
-cmdline_parse_token_string_t cmd_set_conntrack_dir_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 set, "set");
-cmdline_parse_token_string_t cmd_set_conntrack_dir_conntrack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 conntrack, "conntrack");
-cmdline_parse_token_string_t cmd_set_conntrack_dir_dir =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_dir =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 dir, "orig#rply");
-cmdline_parse_token_string_t cmd_set_conntrack_dir_scale =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_scale =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 scale, "scale");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_scale_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_scale_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      factor, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_fin =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_fin =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 fin, "fin");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_fin_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_fin_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      f, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_ack =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_ack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 ack_seen, "acked");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_ack_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_ack_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      as, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_unack_data =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_unack_data =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 unack, "unack_data");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_unack_data_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_unack_data_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      un, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_sent_end =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_sent_end =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 sent_end, "sent_end");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_sent_end_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_sent_end_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      se, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_reply_end =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_reply_end =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 reply_end, "reply_end");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_reply_end_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_reply_end_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      re, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_max_win =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_win =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 max_win, "max_win");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_max_win_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_win_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      mw, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_max_ack =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_ack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 max_ack, "max_ack");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_max_ack_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_ack_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      ma, RTE_UINT32);
 
@@ -14389,7 +14383,7 @@ static void cmd_set_conntrack_dir_parsed(void *parsed_result,
 	dir->max_win = res->mw;
 }
 
-cmdline_parse_inst_t cmd_set_conntrack_dir = {
+static cmdline_parse_inst_t cmd_set_conntrack_dir = {
 	.f = cmd_set_conntrack_dir_parsed,
 	.data = NULL,
 	.help_str = "set conntrack orig|rply scale <factor> fin <sent>"
@@ -14453,7 +14447,7 @@ cmd_strict_link_prio_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_strict_link_prio = {
+static cmdline_parse_inst_t cmd_strict_link_prio = {
 	.f = cmd_strict_link_prio_parsed,
 	.data = NULL,
 	.help_str = "set tx strict-link-priority <port_id> <tc_bitmap>",
@@ -14475,14 +14469,14 @@ struct cmd_ddp_add_result {
 	char filepath[];
 };
 
-cmdline_parse_token_string_t cmd_ddp_add_ddp =
+static cmdline_parse_token_string_t cmd_ddp_add_ddp =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, ddp, "ddp");
-cmdline_parse_token_string_t cmd_ddp_add_add =
+static cmdline_parse_token_string_t cmd_ddp_add_add =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, add, "add");
-cmdline_parse_token_num_t cmd_ddp_add_port_id =
+static cmdline_parse_token_num_t cmd_ddp_add_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_ddp_add_result, port_id,
 		RTE_UINT16);
-cmdline_parse_token_string_t cmd_ddp_add_filepath =
+static cmdline_parse_token_string_t cmd_ddp_add_filepath =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, filepath, NULL);
 
 static void
@@ -14535,7 +14529,7 @@ cmd_ddp_add_parsed(
 	free((void *)filepath);
 }
 
-cmdline_parse_inst_t cmd_ddp_add = {
+static cmdline_parse_inst_t cmd_ddp_add = {
 	.f = cmd_ddp_add_parsed,
 	.data = NULL,
 	.help_str = "ddp add <port_id> <profile_path[,backup_profile_path]>",
@@ -14556,13 +14550,13 @@ struct cmd_ddp_del_result {
 	char filepath[];
 };
 
-cmdline_parse_token_string_t cmd_ddp_del_ddp =
+static cmdline_parse_token_string_t cmd_ddp_del_ddp =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, ddp, "ddp");
-cmdline_parse_token_string_t cmd_ddp_del_del =
+static cmdline_parse_token_string_t cmd_ddp_del_del =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, del, "del");
-cmdline_parse_token_num_t cmd_ddp_del_port_id =
+static cmdline_parse_token_num_t cmd_ddp_del_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_ddp_del_result, port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_ddp_del_filepath =
+static cmdline_parse_token_string_t cmd_ddp_del_filepath =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, filepath, NULL);
 
 static void
@@ -14600,7 +14594,7 @@ cmd_ddp_del_parsed(
 	close_file(buff);
 }
 
-cmdline_parse_inst_t cmd_ddp_del = {
+static cmdline_parse_inst_t cmd_ddp_del = {
 	.f = cmd_ddp_del_parsed,
 	.data = NULL,
 	.help_str = "ddp del <port_id> <backup_profile_path>",
@@ -14621,13 +14615,13 @@ struct cmd_ddp_info_result {
 	char filepath[];
 };
 
-cmdline_parse_token_string_t cmd_ddp_info_ddp =
+static cmdline_parse_token_string_t cmd_ddp_info_ddp =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, ddp, "ddp");
-cmdline_parse_token_string_t cmd_ddp_info_get =
+static cmdline_parse_token_string_t cmd_ddp_info_get =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, get, "get");
-cmdline_parse_token_string_t cmd_ddp_info_info =
+static cmdline_parse_token_string_t cmd_ddp_info_info =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, info, "info");
-cmdline_parse_token_string_t cmd_ddp_info_filepath =
+static cmdline_parse_token_string_t cmd_ddp_info_filepath =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, filepath, NULL);
 
 static void
@@ -14836,7 +14830,7 @@ cmd_ddp_info_parsed(
 	close_file(pkg);
 }
 
-cmdline_parse_inst_t cmd_ddp_get_info = {
+static cmdline_parse_inst_t cmd_ddp_get_info = {
 	.f = cmd_ddp_info_parsed,
 	.data = NULL,
 	.help_str = "ddp get info <profile_path>",
@@ -14860,13 +14854,13 @@ struct cmd_ddp_get_list_result {
 	portid_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_ddp_get_list_ddp =
+static cmdline_parse_token_string_t cmd_ddp_get_list_ddp =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, ddp, "ddp");
-cmdline_parse_token_string_t cmd_ddp_get_list_get =
+static cmdline_parse_token_string_t cmd_ddp_get_list_get =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, get, "get");
-cmdline_parse_token_string_t cmd_ddp_get_list_list =
+static cmdline_parse_token_string_t cmd_ddp_get_list_list =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, list, "list");
-cmdline_parse_token_num_t cmd_ddp_get_list_port_id =
+static cmdline_parse_token_num_t cmd_ddp_get_list_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_ddp_get_list_result, port_id,
 		RTE_UINT16);
 
@@ -14922,7 +14916,7 @@ cmd_ddp_get_list_parsed(
 		fprintf(stderr, "Failed to get ddp list\n");
 }
 
-cmdline_parse_inst_t cmd_ddp_get_list = {
+static cmdline_parse_inst_t cmd_ddp_get_list = {
 	.f = cmd_ddp_get_list_parsed,
 	.data = NULL,
 	.help_str = "ddp get list <port_id>",
@@ -15011,36 +15005,36 @@ cmd_cfg_input_set_parsed(
 		fprintf(stderr, "Function not supported\n");
 }
 
-cmdline_parse_token_string_t cmd_cfg_input_set_port =
+static cmdline_parse_token_string_t cmd_cfg_input_set_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 port, "port");
-cmdline_parse_token_string_t cmd_cfg_input_set_cfg =
+static cmdline_parse_token_string_t cmd_cfg_input_set_cfg =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 cfg, "config");
-cmdline_parse_token_num_t cmd_cfg_input_set_port_id =
+static cmdline_parse_token_num_t cmd_cfg_input_set_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_cfg_input_set_pctype =
+static cmdline_parse_token_string_t cmd_cfg_input_set_pctype =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 pctype, "pctype");
-cmdline_parse_token_num_t cmd_cfg_input_set_pctype_id =
+static cmdline_parse_token_num_t cmd_cfg_input_set_pctype_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
 			      pctype_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_cfg_input_set_inset_type =
+static cmdline_parse_token_string_t cmd_cfg_input_set_inset_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 inset_type,
 				 "hash_inset#fdir_inset#fdir_flx_inset");
-cmdline_parse_token_string_t cmd_cfg_input_set_opt =
+static cmdline_parse_token_string_t cmd_cfg_input_set_opt =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 opt, "get#set#clear");
-cmdline_parse_token_string_t cmd_cfg_input_set_field =
+static cmdline_parse_token_string_t cmd_cfg_input_set_field =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 field, "field");
-cmdline_parse_token_num_t cmd_cfg_input_set_field_idx =
+static cmdline_parse_token_num_t cmd_cfg_input_set_field_idx =
 	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
 			      field_idx, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_cfg_input_set = {
+static cmdline_parse_inst_t cmd_cfg_input_set = {
 	.f = cmd_cfg_input_set_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
@@ -15112,33 +15106,33 @@ cmd_clear_input_set_parsed(
 		fprintf(stderr, "Function not supported\n");
 }
 
-cmdline_parse_token_string_t cmd_clear_input_set_port =
+static cmdline_parse_token_string_t cmd_clear_input_set_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 port, "port");
-cmdline_parse_token_string_t cmd_clear_input_set_cfg =
+static cmdline_parse_token_string_t cmd_clear_input_set_cfg =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 cfg, "config");
-cmdline_parse_token_num_t cmd_clear_input_set_port_id =
+static cmdline_parse_token_num_t cmd_clear_input_set_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_clear_input_set_pctype =
+static cmdline_parse_token_string_t cmd_clear_input_set_pctype =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 pctype, "pctype");
-cmdline_parse_token_num_t cmd_clear_input_set_pctype_id =
+static cmdline_parse_token_num_t cmd_clear_input_set_pctype_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
 			      pctype_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_clear_input_set_inset_type =
+static cmdline_parse_token_string_t cmd_clear_input_set_inset_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 inset_type,
 				 "hash_inset#fdir_inset#fdir_flx_inset");
-cmdline_parse_token_string_t cmd_clear_input_set_clear =
+static cmdline_parse_token_string_t cmd_clear_input_set_clear =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 clear, "clear");
-cmdline_parse_token_string_t cmd_clear_input_set_all =
+static cmdline_parse_token_string_t cmd_clear_input_set_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 all, "all");
 
-cmdline_parse_inst_t cmd_clear_input_set = {
+static cmdline_parse_inst_t cmd_clear_input_set = {
 	.f = cmd_clear_input_set_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
@@ -15168,23 +15162,23 @@ struct cmd_show_vf_stats_result {
 };
 
 /* Common CLI fields show vf stats*/
-cmdline_parse_token_string_t cmd_show_vf_stats_show =
+static cmdline_parse_token_string_t cmd_show_vf_stats_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_vf_stats_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_show_vf_stats_vf =
+static cmdline_parse_token_string_t cmd_show_vf_stats_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_vf_stats_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_show_vf_stats_stats =
+static cmdline_parse_token_string_t cmd_show_vf_stats_stats =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_vf_stats_result,
 		 stats, "stats");
-cmdline_parse_token_num_t cmd_show_vf_stats_port_id =
+static cmdline_parse_token_num_t cmd_show_vf_stats_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_vf_stats_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_show_vf_stats_vf_id =
+static cmdline_parse_token_num_t cmd_show_vf_stats_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_vf_stats_result,
 		 vf_id, RTE_UINT16);
@@ -15251,7 +15245,7 @@ cmd_show_vf_stats_parsed(
 			       nic_stats_border, nic_stats_border);
 }
 
-cmdline_parse_inst_t cmd_show_vf_stats = {
+static cmdline_parse_inst_t cmd_show_vf_stats = {
 	.f = cmd_show_vf_stats_parsed,
 	.data = NULL,
 	.help_str = "show vf stats <port_id> <vf_id>",
@@ -15277,23 +15271,23 @@ struct cmd_clear_vf_stats_result {
 };
 
 /* Common CLI fields clear vf stats*/
-cmdline_parse_token_string_t cmd_clear_vf_stats_clear =
+static cmdline_parse_token_string_t cmd_clear_vf_stats_clear =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_clear_vf_stats_result,
 		 clear, "clear");
-cmdline_parse_token_string_t cmd_clear_vf_stats_vf =
+static cmdline_parse_token_string_t cmd_clear_vf_stats_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_clear_vf_stats_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_clear_vf_stats_stats =
+static cmdline_parse_token_string_t cmd_clear_vf_stats_stats =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_clear_vf_stats_result,
 		 stats, "stats");
-cmdline_parse_token_num_t cmd_clear_vf_stats_port_id =
+static cmdline_parse_token_num_t cmd_clear_vf_stats_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_clear_vf_stats_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_clear_vf_stats_vf_id =
+static cmdline_parse_token_num_t cmd_clear_vf_stats_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_clear_vf_stats_result,
 		 vf_id, RTE_UINT16);
@@ -15338,7 +15332,7 @@ cmd_clear_vf_stats_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_clear_vf_stats = {
+static cmdline_parse_inst_t cmd_clear_vf_stats = {
 	.f = cmd_clear_vf_stats_parsed,
 	.data = NULL,
 	.help_str = "clear vf stats <port_id> <vf_id>",
@@ -15365,27 +15359,27 @@ struct cmd_pctype_mapping_reset_result {
 };
 
 /* Common CLI fields for port config pctype mapping reset*/
-cmdline_parse_token_string_t cmd_pctype_mapping_reset_port =
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 port, "port");
-cmdline_parse_token_string_t cmd_pctype_mapping_reset_config =
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_config =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 config, "config");
-cmdline_parse_token_num_t cmd_pctype_mapping_reset_port_id =
+static cmdline_parse_token_num_t cmd_pctype_mapping_reset_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_pctype_mapping_reset_pctype =
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_pctype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 pctype, "pctype");
-cmdline_parse_token_string_t cmd_pctype_mapping_reset_mapping =
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_pctype_mapping_reset_reset =
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_reset =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 reset, "reset");
@@ -15420,7 +15414,7 @@ cmd_pctype_mapping_reset_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_pctype_mapping_reset = {
+static cmdline_parse_inst_t cmd_pctype_mapping_reset = {
 	.f = cmd_pctype_mapping_reset_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> pctype mapping reset",
@@ -15447,23 +15441,23 @@ struct cmd_pctype_mapping_get_result {
 };
 
 /* Common CLI fields for pctype mapping get */
-cmdline_parse_token_string_t cmd_pctype_mapping_get_show =
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_get_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_pctype_mapping_get_port =
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_get_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_pctype_mapping_get_port_id =
+static cmdline_parse_token_num_t cmd_pctype_mapping_get_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_pctype_mapping_get_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_pctype_mapping_get_pctype =
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_pctype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_get_result,
 		 pctype, "pctype");
-cmdline_parse_token_string_t cmd_pctype_mapping_get_mapping =
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_get_result,
 		 mapping, "mapping");
@@ -15522,7 +15516,7 @@ cmd_pctype_mapping_get_parsed(
 #endif
 }
 
-cmdline_parse_inst_t cmd_pctype_mapping_get = {
+static cmdline_parse_inst_t cmd_pctype_mapping_get = {
 	.f = cmd_pctype_mapping_get_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> pctype mapping",
@@ -15551,35 +15545,35 @@ struct cmd_pctype_mapping_update_result {
 };
 
 /* Common CLI fields for pctype mapping update*/
-cmdline_parse_token_string_t cmd_pctype_mapping_update_port =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 port, "port");
-cmdline_parse_token_string_t cmd_pctype_mapping_update_config =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_config =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 config, "config");
-cmdline_parse_token_num_t cmd_pctype_mapping_update_port_id =
+static cmdline_parse_token_num_t cmd_pctype_mapping_update_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_pctype_mapping_update_pctype =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_pctype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 pctype, "pctype");
-cmdline_parse_token_string_t cmd_pctype_mapping_update_mapping =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_pctype_mapping_update_update =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_update =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 update, "update");
-cmdline_parse_token_string_t cmd_pctype_mapping_update_pc_type =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_pc_type =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 pctype_list, NULL);
-cmdline_parse_token_num_t cmd_pctype_mapping_update_flow_type =
+static cmdline_parse_token_num_t cmd_pctype_mapping_update_flow_type =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 flow_type, RTE_UINT16);
@@ -15631,7 +15625,7 @@ cmd_pctype_mapping_update_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_pctype_mapping_update = {
+static cmdline_parse_inst_t cmd_pctype_mapping_update = {
 	.f = cmd_pctype_mapping_update_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> pctype mapping update"
@@ -15661,23 +15655,23 @@ struct cmd_ptype_mapping_get_result {
 };
 
 /* Common CLI fields for ptype mapping get */
-cmdline_parse_token_string_t cmd_ptype_mapping_get_ptype =
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_ptype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_get_result,
 		 ptype, "ptype");
-cmdline_parse_token_string_t cmd_ptype_mapping_get_mapping =
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_get_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_ptype_mapping_get_get =
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_get =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_get_result,
 		 get, "get");
-cmdline_parse_token_num_t cmd_ptype_mapping_get_port_id =
+static cmdline_parse_token_num_t cmd_ptype_mapping_get_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_get_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_ptype_mapping_get_valid_only =
+static cmdline_parse_token_num_t cmd_ptype_mapping_get_valid_only =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_get_result,
 		 valid_only, RTE_UINT8);
@@ -15730,7 +15724,7 @@ cmd_ptype_mapping_get_parsed(
 #endif
 }
 
-cmdline_parse_inst_t cmd_ptype_mapping_get = {
+static cmdline_parse_inst_t cmd_ptype_mapping_get = {
 	.f = cmd_ptype_mapping_get_parsed,
 	.data = NULL,
 	.help_str = "ptype mapping get <port_id> <valid_only>",
@@ -15758,31 +15752,31 @@ struct cmd_ptype_mapping_replace_result {
 };
 
 /* Common CLI fields for ptype mapping replace */
-cmdline_parse_token_string_t cmd_ptype_mapping_replace_ptype =
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_ptype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 ptype, "ptype");
-cmdline_parse_token_string_t cmd_ptype_mapping_replace_mapping =
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_ptype_mapping_replace_replace =
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_replace =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 replace, "replace");
-cmdline_parse_token_num_t cmd_ptype_mapping_replace_port_id =
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_ptype_mapping_replace_target =
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_target =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 target, RTE_UINT32);
-cmdline_parse_token_num_t cmd_ptype_mapping_replace_mask =
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_mask =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 mask, RTE_UINT8);
-cmdline_parse_token_num_t cmd_ptype_mapping_replace_pkt_type =
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_pkt_type =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 pkt_type, RTE_UINT32);
@@ -15824,7 +15818,7 @@ cmd_ptype_mapping_replace_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_ptype_mapping_replace = {
+static cmdline_parse_inst_t cmd_ptype_mapping_replace = {
 	.f = cmd_ptype_mapping_replace_parsed,
 	.data = NULL,
 	.help_str =
@@ -15852,19 +15846,19 @@ struct cmd_ptype_mapping_reset_result {
 };
 
 /* Common CLI fields for ptype mapping reset*/
-cmdline_parse_token_string_t cmd_ptype_mapping_reset_ptype =
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_ptype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_reset_result,
 		 ptype, "ptype");
-cmdline_parse_token_string_t cmd_ptype_mapping_reset_mapping =
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_reset_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_ptype_mapping_reset_reset =
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_reset =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_reset_result,
 		 reset, "reset");
-cmdline_parse_token_num_t cmd_ptype_mapping_reset_port_id =
+static cmdline_parse_token_num_t cmd_ptype_mapping_reset_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_reset_result,
 		 port_id, RTE_UINT16);
@@ -15899,7 +15893,7 @@ cmd_ptype_mapping_reset_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_ptype_mapping_reset = {
+static cmdline_parse_inst_t cmd_ptype_mapping_reset = {
 	.f = cmd_ptype_mapping_reset_parsed,
 	.data = NULL,
 	.help_str = "ptype mapping reset <port_id>",
@@ -15925,27 +15919,27 @@ struct cmd_ptype_mapping_update_result {
 };
 
 /* Common CLI fields for ptype mapping update*/
-cmdline_parse_token_string_t cmd_ptype_mapping_update_ptype =
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_ptype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 ptype, "ptype");
-cmdline_parse_token_string_t cmd_ptype_mapping_update_mapping =
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_ptype_mapping_update_update =
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_update =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 reset, "update");
-cmdline_parse_token_num_t cmd_ptype_mapping_update_port_id =
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_ptype_mapping_update_hw_ptype =
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_hw_ptype =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 hw_ptype, RTE_UINT8);
-cmdline_parse_token_num_t cmd_ptype_mapping_update_sw_ptype =
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_sw_ptype =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 sw_ptype, RTE_UINT32);
@@ -15990,7 +15984,7 @@ cmd_ptype_mapping_update_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_ptype_mapping_update = {
+static cmdline_parse_inst_t cmd_ptype_mapping_update = {
 	.f = cmd_ptype_mapping_update_parsed,
 	.data = NULL,
 	.help_str = "ptype mapping update <port_id> <hw_ptype> <sw_ptype>",
@@ -16012,9 +16006,9 @@ struct cmd_cmdfile_result {
 };
 
 /* Common CLI fields for file commands */
-cmdline_parse_token_string_t cmd_load_cmdfile =
+static cmdline_parse_token_string_t cmd_load_cmdfile =
 	TOKEN_STRING_INITIALIZER(struct cmd_cmdfile_result, load, "load");
-cmdline_parse_token_string_t cmd_load_cmdfile_filename =
+static cmdline_parse_token_string_t cmd_load_cmdfile_filename =
 	TOKEN_STRING_INITIALIZER(struct cmd_cmdfile_result, filename, NULL);
 
 static void
@@ -16028,7 +16022,7 @@ cmd_load_from_file_parsed(
 	cmdline_read_from_file(res->filename);
 }
 
-cmdline_parse_inst_t cmd_load_from_file = {
+static cmdline_parse_inst_t cmd_load_from_file = {
 	.f = cmd_load_from_file_parsed,
 	.data = NULL,
 	.help_str = "load <filename>",
@@ -16048,23 +16042,23 @@ struct cmd_rx_offload_get_capa_result {
 	cmdline_fixed_string_t capabilities;
 };
 
-cmdline_parse_token_string_t cmd_rx_offload_get_capa_show =
+static cmdline_parse_token_string_t cmd_rx_offload_get_capa_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_capa_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_rx_offload_get_capa_port =
+static cmdline_parse_token_string_t cmd_rx_offload_get_capa_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_capa_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_rx_offload_get_capa_port_id =
+static cmdline_parse_token_num_t cmd_rx_offload_get_capa_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_rx_offload_get_capa_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_rx_offload_get_capa_rx_offload =
+static cmdline_parse_token_string_t cmd_rx_offload_get_capa_rx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_capa_result,
 		 rx_offload, "rx_offload");
-cmdline_parse_token_string_t cmd_rx_offload_get_capa_capabilities =
+static cmdline_parse_token_string_t cmd_rx_offload_get_capa_capabilities =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_capa_result,
 		 capabilities, "capabilities");
@@ -16122,7 +16116,7 @@ cmd_rx_offload_get_capa_parsed(
 	printf("\n\n");
 }
 
-cmdline_parse_inst_t cmd_rx_offload_get_capa = {
+static cmdline_parse_inst_t cmd_rx_offload_get_capa = {
 	.f = cmd_rx_offload_get_capa_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rx_offload capabilities",
@@ -16145,23 +16139,23 @@ struct cmd_rx_offload_get_configuration_result {
 	cmdline_fixed_string_t configuration;
 };
 
-cmdline_parse_token_string_t cmd_rx_offload_get_configuration_show =
+static cmdline_parse_token_string_t cmd_rx_offload_get_configuration_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_configuration_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_rx_offload_get_configuration_port =
+static cmdline_parse_token_string_t cmd_rx_offload_get_configuration_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_configuration_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_rx_offload_get_configuration_port_id =
+static cmdline_parse_token_num_t cmd_rx_offload_get_configuration_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_rx_offload_get_configuration_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_rx_offload_get_configuration_rx_offload =
+static cmdline_parse_token_string_t cmd_rx_offload_get_configuration_rx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_configuration_result,
 		 rx_offload, "rx_offload");
-cmdline_parse_token_string_t cmd_rx_offload_get_configuration_configuration =
+static cmdline_parse_token_string_t cmd_rx_offload_get_configuration_configuration =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_configuration_result,
 		 configuration, "configuration");
@@ -16208,7 +16202,7 @@ cmd_rx_offload_get_configuration_parsed(
 	printf("\n");
 }
 
-cmdline_parse_inst_t cmd_rx_offload_get_configuration = {
+static cmdline_parse_inst_t cmd_rx_offload_get_configuration = {
 	.f = cmd_rx_offload_get_configuration_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rx_offload configuration",
@@ -16232,23 +16226,23 @@ struct cmd_config_per_port_rx_offload_result {
 	cmdline_fixed_string_t on_off;
 };
 
-cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_port =
+static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 port, "port");
-cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_config =
+static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_config =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 config, "config");
-cmdline_parse_token_num_t cmd_config_per_port_rx_offload_result_port_id =
+static cmdline_parse_token_num_t cmd_config_per_port_rx_offload_result_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_rx_offload =
+static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_rx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 rx_offload, "rx_offload");
-cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_offload =
+static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 offload, "vlan_strip#ipv4_cksum#udp_cksum#tcp_cksum#tcp_lro#"
@@ -16256,7 +16250,7 @@ cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_offload =
 			   "header_split#vlan_filter#vlan_extend#jumbo_frame#"
 			   "scatter#buffer_split#timestamp#security#"
 			   "keep_crc#rss_hash");
-cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_on_off =
+static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 on_off, "on#off");
@@ -16330,7 +16324,7 @@ cmd_config_per_port_rx_offload_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(port_id, 1, 1);
 }
 
-cmdline_parse_inst_t cmd_config_per_port_rx_offload = {
+static cmdline_parse_inst_t cmd_config_per_port_rx_offload = {
 	.f = cmd_config_per_port_rx_offload_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> rx_offload vlan_strip|ipv4_cksum|"
@@ -16360,34 +16354,34 @@ struct cmd_config_per_queue_rx_offload_result {
 	cmdline_fixed_string_t on_off;
 };
 
-cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_port =
+static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_config_per_queue_rx_offload_result_port_id =
+static cmdline_parse_token_num_t cmd_config_per_queue_rx_offload_result_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_rxq =
+static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_rxq =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 rxq, "rxq");
-cmdline_parse_token_num_t cmd_config_per_queue_rx_offload_result_queue_id =
+static cmdline_parse_token_num_t cmd_config_per_queue_rx_offload_result_queue_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 queue_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_rxoffload =
+static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_rxoffload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 rx_offload, "rx_offload");
-cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_offload =
+static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 offload, "vlan_strip#ipv4_cksum#udp_cksum#tcp_cksum#tcp_lro#"
 			   "qinq_strip#outer_ipv4_cksum#macsec_strip#"
 			   "header_split#vlan_filter#vlan_extend#jumbo_frame#"
 			   "scatter#buffer_split#timestamp#security#keep_crc");
-cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_on_off =
+static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 on_off, "on#off");
@@ -16437,7 +16431,7 @@ cmd_config_per_queue_rx_offload_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(port_id, 1, 1);
 }
 
-cmdline_parse_inst_t cmd_config_per_queue_rx_offload = {
+static cmdline_parse_inst_t cmd_config_per_queue_rx_offload = {
 	.f = cmd_config_per_queue_rx_offload_parsed,
 	.data = NULL,
 	.help_str = "port <port_id> rxq <queue_id> rx_offload "
@@ -16467,23 +16461,23 @@ struct cmd_tx_offload_get_capa_result {
 	cmdline_fixed_string_t capabilities;
 };
 
-cmdline_parse_token_string_t cmd_tx_offload_get_capa_show =
+static cmdline_parse_token_string_t cmd_tx_offload_get_capa_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_capa_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_tx_offload_get_capa_port =
+static cmdline_parse_token_string_t cmd_tx_offload_get_capa_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_capa_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_tx_offload_get_capa_port_id =
+static cmdline_parse_token_num_t cmd_tx_offload_get_capa_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_tx_offload_get_capa_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_tx_offload_get_capa_tx_offload =
+static cmdline_parse_token_string_t cmd_tx_offload_get_capa_tx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_capa_result,
 		 tx_offload, "tx_offload");
-cmdline_parse_token_string_t cmd_tx_offload_get_capa_capabilities =
+static cmdline_parse_token_string_t cmd_tx_offload_get_capa_capabilities =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_capa_result,
 		 capabilities, "capabilities");
@@ -16541,7 +16535,7 @@ cmd_tx_offload_get_capa_parsed(
 	printf("\n\n");
 }
 
-cmdline_parse_inst_t cmd_tx_offload_get_capa = {
+static cmdline_parse_inst_t cmd_tx_offload_get_capa = {
 	.f = cmd_tx_offload_get_capa_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> tx_offload capabilities",
@@ -16564,23 +16558,23 @@ struct cmd_tx_offload_get_configuration_result {
 	cmdline_fixed_string_t configuration;
 };
 
-cmdline_parse_token_string_t cmd_tx_offload_get_configuration_show =
+static cmdline_parse_token_string_t cmd_tx_offload_get_configuration_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_configuration_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_tx_offload_get_configuration_port =
+static cmdline_parse_token_string_t cmd_tx_offload_get_configuration_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_configuration_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_tx_offload_get_configuration_port_id =
+static cmdline_parse_token_num_t cmd_tx_offload_get_configuration_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_tx_offload_get_configuration_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_tx_offload_get_configuration_tx_offload =
+static cmdline_parse_token_string_t cmd_tx_offload_get_configuration_tx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_configuration_result,
 		 tx_offload, "tx_offload");
-cmdline_parse_token_string_t cmd_tx_offload_get_configuration_configuration =
+static cmdline_parse_token_string_t cmd_tx_offload_get_configuration_configuration =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_configuration_result,
 		 configuration, "configuration");
@@ -16627,7 +16621,7 @@ cmd_tx_offload_get_configuration_parsed(
 	printf("\n");
 }
 
-cmdline_parse_inst_t cmd_tx_offload_get_configuration = {
+static cmdline_parse_inst_t cmd_tx_offload_get_configuration = {
 	.f = cmd_tx_offload_get_configuration_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> tx_offload configuration",
@@ -16651,23 +16645,23 @@ struct cmd_config_per_port_tx_offload_result {
 	cmdline_fixed_string_t on_off;
 };
 
-cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_port =
+static cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 port, "port");
-cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_config =
+static cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_config =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 config, "config");
-cmdline_parse_token_num_t cmd_config_per_port_tx_offload_result_port_id =
+static cmdline_parse_token_num_t cmd_config_per_port_tx_offload_result_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_tx_offload =
+static cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_tx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 tx_offload, "tx_offload");
-cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_offload =
+static cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 offload, "vlan_insert#ipv4_cksum#udp_cksum#tcp_cksum#"
@@ -16676,7 +16670,7 @@ cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_offload =
 			  "ipip_tnl_tso#geneve_tnl_tso#macsec_insert#"
 			  "mt_lockfree#multi_segs#mbuf_fast_free#security#"
 			  "send_on_timestamp");
-cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_on_off =
+static cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 on_off, "on#off");
@@ -16753,7 +16747,7 @@ cmd_config_per_port_tx_offload_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(port_id, 1, 1);
 }
 
-cmdline_parse_inst_t cmd_config_per_port_tx_offload = {
+static cmdline_parse_inst_t cmd_config_per_port_tx_offload = {
 	.f = cmd_config_per_port_tx_offload_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> tx_offload "
@@ -16785,27 +16779,27 @@ struct cmd_config_per_queue_tx_offload_result {
 	cmdline_fixed_string_t on_off;
 };
 
-cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_port =
+static cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_config_per_queue_tx_offload_result_port_id =
+static cmdline_parse_token_num_t cmd_config_per_queue_tx_offload_result_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_txq =
+static cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_txq =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 txq, "txq");
-cmdline_parse_token_num_t cmd_config_per_queue_tx_offload_result_queue_id =
+static cmdline_parse_token_num_t cmd_config_per_queue_tx_offload_result_queue_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 queue_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_txoffload =
+static cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_txoffload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 tx_offload, "tx_offload");
-cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_offload =
+static cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 offload, "vlan_insert#ipv4_cksum#udp_cksum#tcp_cksum#"
@@ -16813,7 +16807,7 @@ cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_offload =
 			  "qinq_insert#vxlan_tnl_tso#gre_tnl_tso#"
 			  "ipip_tnl_tso#geneve_tnl_tso#macsec_insert#"
 			  "mt_lockfree#multi_segs#mbuf_fast_free#security");
-cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_on_off =
+static cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 on_off, "on#off");
@@ -16863,7 +16857,7 @@ cmd_config_per_queue_tx_offload_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(port_id, 1, 1);
 }
 
-cmdline_parse_inst_t cmd_config_per_queue_tx_offload = {
+static cmdline_parse_inst_t cmd_config_per_queue_tx_offload = {
 	.f = cmd_config_per_queue_tx_offload_parsed,
 	.data = NULL,
 	.help_str = "port <port_id> txq <queue_id> tx_offload "
@@ -16912,23 +16906,23 @@ cmd_config_tx_metadata_specific_parsed(void *parsed_result,
 	rte_flow_dynf_metadata_register();
 }
 
-cmdline_parse_token_string_t cmd_config_tx_metadata_specific_port =
+static cmdline_parse_token_string_t cmd_config_tx_metadata_specific_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_metadata_specific_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_config_tx_metadata_specific_keyword =
+static cmdline_parse_token_string_t cmd_config_tx_metadata_specific_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_metadata_specific_result,
 			keyword, "config");
-cmdline_parse_token_num_t cmd_config_tx_metadata_specific_id =
+static cmdline_parse_token_num_t cmd_config_tx_metadata_specific_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_tx_metadata_specific_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_tx_metadata_specific_item =
+static cmdline_parse_token_string_t cmd_config_tx_metadata_specific_item =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_metadata_specific_result,
 			item, "tx_metadata");
-cmdline_parse_token_num_t cmd_config_tx_metadata_specific_value =
+static cmdline_parse_token_num_t cmd_config_tx_metadata_specific_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_tx_metadata_specific_result,
 			value, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_config_tx_metadata_specific = {
+static cmdline_parse_inst_t cmd_config_tx_metadata_specific = {
 	.f = cmd_config_tx_metadata_specific_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> tx_metadata <value>",
@@ -16991,26 +16985,26 @@ cmd_config_dynf_specific_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_config_tx_dynf_specific_port =
+static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			keyword, "port");
-cmdline_parse_token_string_t cmd_config_tx_dynf_specific_keyword =
+static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			keyword, "config");
-cmdline_parse_token_num_t cmd_config_tx_dynf_specific_port_id =
+static cmdline_parse_token_num_t cmd_config_tx_dynf_specific_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_tx_dynf_specific_item =
+static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_item =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			item, "dynf");
-cmdline_parse_token_string_t cmd_config_tx_dynf_specific_name =
+static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			name, NULL);
-cmdline_parse_token_string_t cmd_config_tx_dynf_specific_value =
+static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			value, "set#clear");
 
-cmdline_parse_inst_t cmd_config_tx_dynf_specific = {
+static cmdline_parse_inst_t cmd_config_tx_dynf_specific = {
 	.f = cmd_config_dynf_specific_parsed,
 	.data = NULL,
 	.help_str = "port config <port id> dynf <name> set|clear",
@@ -17050,20 +17044,20 @@ cmd_show_tx_metadata_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_show_tx_metadata_show =
+static cmdline_parse_token_string_t cmd_show_tx_metadata_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_tx_metadata_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_tx_metadata_port =
+static cmdline_parse_token_string_t cmd_show_tx_metadata_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_tx_metadata_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_show_tx_metadata_pid =
+static cmdline_parse_token_num_t cmd_show_tx_metadata_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_tx_metadata_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_tx_metadata_keyword =
+static cmdline_parse_token_string_t cmd_show_tx_metadata_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_tx_metadata_result,
 			cmd_keyword, "tx_metadata");
 
-cmdline_parse_inst_t cmd_show_tx_metadata = {
+static cmdline_parse_inst_t cmd_show_tx_metadata = {
 	.f = cmd_show_tx_metadata_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> tx_metadata",
@@ -17127,23 +17121,23 @@ cmd_show_fec_capability_parsed(void *parsed_result,
 	free(speed_fec_capa);
 }
 
-cmdline_parse_token_string_t cmd_show_fec_capability_show =
+static cmdline_parse_token_string_t cmd_show_fec_capability_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_fec_capability_port =
+static cmdline_parse_token_string_t cmd_show_fec_capability_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_show_fec_capability_pid =
+static cmdline_parse_token_num_t cmd_show_fec_capability_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_fec_capability_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_fec_capability_fec =
+static cmdline_parse_token_string_t cmd_show_fec_capability_fec =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
 			cmd_fec, "fec");
-cmdline_parse_token_string_t cmd_show_fec_capability_keyword =
+static cmdline_parse_token_string_t cmd_show_fec_capability_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
 			cmd_keyword, "capabilities");
 
-cmdline_parse_inst_t cmd_show_capability = {
+static cmdline_parse_inst_t cmd_show_capability = {
 	.f = cmd_show_fec_capability_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> fec capabilities",
@@ -17209,20 +17203,20 @@ cmd_show_fec_mode_parsed(void *parsed_result,
 	printf("%s\n", buf);
 }
 
-cmdline_parse_token_string_t cmd_show_fec_mode_show =
+static cmdline_parse_token_string_t cmd_show_fec_mode_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_metadata_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_fec_mode_port =
+static cmdline_parse_token_string_t cmd_show_fec_mode_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_metadata_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_show_fec_mode_pid =
+static cmdline_parse_token_num_t cmd_show_fec_mode_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_fec_metadata_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_fec_mode_keyword =
+static cmdline_parse_token_string_t cmd_show_fec_mode_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_metadata_result,
 			cmd_keyword, "fec_mode");
 
-cmdline_parse_inst_t cmd_show_fec_mode = {
+static cmdline_parse_inst_t cmd_show_fec_mode = {
 	.f = cmd_show_fec_mode_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> fec_mode",
@@ -17245,23 +17239,23 @@ struct cmd_set_port_fec_mode {
 };
 
 /* Common CLI fields for set fec mode */
-cmdline_parse_token_string_t cmd_set_port_fec_mode_set =
+static cmdline_parse_token_string_t cmd_set_port_fec_mode_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_fec_mode,
 		 set, "set");
-cmdline_parse_token_string_t cmd_set_port_fec_mode_port =
+static cmdline_parse_token_string_t cmd_set_port_fec_mode_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_fec_mode,
 		 port, "port");
-cmdline_parse_token_num_t cmd_set_port_fec_mode_port_id =
+static cmdline_parse_token_num_t cmd_set_port_fec_mode_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_port_fec_mode,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_port_fec_mode_str =
+static cmdline_parse_token_string_t cmd_set_port_fec_mode_str =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_fec_mode,
 		 fec_mode, "fec_mode");
-cmdline_parse_token_string_t cmd_set_port_fec_mode_value =
+static cmdline_parse_token_string_t cmd_set_port_fec_mode_value =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_fec_mode,
 		 fec_value, NULL);
@@ -17294,7 +17288,7 @@ cmd_set_port_fec_mode_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_fec_mode = {
+static cmdline_parse_inst_t cmd_set_fec_mode = {
 	.f = cmd_set_port_fec_mode_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> fec_mode auto|off|rs|baser",
@@ -17319,19 +17313,19 @@ struct cmd_show_port_supported_ptypes_result {
 };
 
 /* Common CLI fields for show port ptypes */
-cmdline_parse_token_string_t cmd_show_port_supported_ptypes_show =
+static cmdline_parse_token_string_t cmd_show_port_supported_ptypes_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_supported_ptypes_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_show_port_supported_ptypes_port =
+static cmdline_parse_token_string_t cmd_show_port_supported_ptypes_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_supported_ptypes_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_show_port_supported_ptypes_port_id =
+static cmdline_parse_token_num_t cmd_show_port_supported_ptypes_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_port_supported_ptypes_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_port_supported_ptypes_ptypes =
+static cmdline_parse_token_string_t cmd_show_port_supported_ptypes_ptypes =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_supported_ptypes_result,
 		 ptypes, "ptypes");
@@ -17403,7 +17397,7 @@ cmd_show_port_supported_ptypes_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_show_port_supported_ptypes = {
+static cmdline_parse_inst_t cmd_show_port_supported_ptypes = {
 	.f = cmd_show_port_supported_ptypes_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> ptypes",
@@ -17474,31 +17468,31 @@ cmd_show_rx_tx_desc_status_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_show =
+static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_port =
+static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_pid =
+static cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_keyword =
+static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_keyword, "rxq#txq");
-cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_qid =
+static cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_desc =
+static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_desc =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_desc, "desc");
-cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_did =
+static cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_did =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_did, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_status =
+static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_status =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_status, "status");
-cmdline_parse_inst_t cmd_show_rx_tx_desc_status = {
+static cmdline_parse_inst_t cmd_show_rx_tx_desc_status = {
 	.f = cmd_show_rx_tx_desc_status_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rxq|txq <queue_id> desc <desc_id> "
@@ -17549,39 +17543,39 @@ cmd_show_rx_queue_desc_used_count_parsed(void *parsed_result,
 	printf("Used desc count = %d\n", rc);
 }
 
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_show =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_port =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_port, "port");
-cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_pid =
+static cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_pid =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_rxq =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_rxq =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_rxq, "rxq");
-cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_qid =
+static cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_qid =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_desc =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_desc =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_count, "desc");
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_used =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_used =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_count, "used");
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_count =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_count =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_count, "count");
-cmdline_parse_inst_t cmd_show_rx_queue_desc_used_count = {
+static cmdline_parse_inst_t cmd_show_rx_queue_desc_used_count = {
 	.f = cmd_show_rx_queue_desc_used_count_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rxq <queue_id> desc used count",
@@ -17608,23 +17602,23 @@ struct cmd_set_port_ptypes_result {
 };
 
 /* Common CLI fields for set port ptypes */
-cmdline_parse_token_string_t cmd_set_port_ptypes_set =
+static cmdline_parse_token_string_t cmd_set_port_ptypes_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_ptypes_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_set_port_ptypes_port =
+static cmdline_parse_token_string_t cmd_set_port_ptypes_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_ptypes_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_set_port_ptypes_port_id =
+static cmdline_parse_token_num_t cmd_set_port_ptypes_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_port_ptypes_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_port_ptypes_mask_str =
+static cmdline_parse_token_string_t cmd_set_port_ptypes_mask_str =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_ptypes_result,
 		 ptype_mask, "ptype_mask");
-cmdline_parse_token_num_t cmd_set_port_ptypes_mask_u32 =
+static cmdline_parse_token_num_t cmd_set_port_ptypes_mask_u32 =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_port_ptypes_result,
 		 mask, RTE_UINT32);
@@ -17668,7 +17662,7 @@ cmd_set_port_ptypes_parsed(
 	clear_ptypes = false;
 }
 
-cmdline_parse_inst_t cmd_set_port_ptypes = {
+static cmdline_parse_inst_t cmd_set_port_ptypes = {
 	.f = cmd_set_port_ptypes_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> ptype_mask <mask>",
@@ -17706,20 +17700,20 @@ cmd_showport_macs_parsed(void *parsed_result,
 		show_mcast_macs(res->cmd_pid);
 }
 
-cmdline_parse_token_string_t cmd_showport_macs_show =
+static cmdline_parse_token_string_t cmd_showport_macs_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_macs_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_showport_macs_port =
+static cmdline_parse_token_string_t cmd_showport_macs_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_macs_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_showport_macs_pid =
+static cmdline_parse_token_num_t cmd_showport_macs_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_macs_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_showport_macs_keyword =
+static cmdline_parse_token_string_t cmd_showport_macs_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_macs_result,
 			cmd_keyword, "macs#mcast_macs");
 
-cmdline_parse_inst_t cmd_showport_macs = {
+static cmdline_parse_inst_t cmd_showport_macs = {
 	.f = cmd_showport_macs_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> macs|mcast_macs",
@@ -17742,27 +17736,27 @@ struct cmd_show_port_flow_transfer_proxy_result {
 	cmdline_fixed_string_t proxy;
 };
 
-cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_show =
+static cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_port =
+static cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_show_port_flow_transfer_proxy_port_id =
+static cmdline_parse_token_num_t cmd_show_port_flow_transfer_proxy_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_flow =
+static cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_flow =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 flow, "flow");
-cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_transfer =
+static cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_transfer =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 transfer, "transfer");
-cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_proxy =
+static cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_proxy =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 proxy, "proxy");
@@ -17788,7 +17782,7 @@ cmd_show_port_flow_transfer_proxy_parsed(void *parsed_result,
 	printf("Transfer proxy port ID: %u\n\n", proxy_port_id);
 }
 
-cmdline_parse_inst_t cmd_show_port_flow_transfer_proxy = {
+static cmdline_parse_inst_t cmd_show_port_flow_transfer_proxy = {
 	.f = cmd_show_port_flow_transfer_proxy_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> flow transfer proxy",
@@ -17806,7 +17800,7 @@ cmdline_parse_inst_t cmd_show_port_flow_transfer_proxy = {
 /* ******************************************************************************** */
 
 /* list of instructions */
-cmdline_parse_ctx_t main_ctx[] = {
+static cmdline_parse_ctx_t main_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_help_brief,
 	(cmdline_parse_inst_t *)&cmd_help_long,
 	(cmdline_parse_inst_t *)&cmd_quit,
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [RFC PATCH v2 2/5] app/testpmd: register driver specific commands
  2022-05-18 19:46 ` [RFC PATCH v2 0/5] Split driver specific commands out of testpmd David Marchand
  2022-05-18 19:46   ` [RFC PATCH v2 1/5] app/testpmd: mark cmdline symbols as static David Marchand
@ 2022-05-18 19:46   ` David Marchand
  2022-05-20  6:55     ` Andrew Rybchenko
  2022-05-18 19:46   ` [RFC PATCH v2 3/5] net/bonding: move testpmd commands David Marchand
                     ` (3 subsequent siblings)
  5 siblings, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-05-18 19:46 UTC (permalink / raw)
  To: dev; +Cc: thomas, Xiaoyun Li, Aman Singh, Yuying Zhang, Bruce Richardson

Introduce a testpmd API so that drivers can register specific commands.

A driver can list some files to compile with testpmd, by setting them
in the testpmd_sources (driver local) meson variable.
drivers/meson.build then takes care of appending this to a global meson
variable, and adding the driver to testpmd dependency.

Note: testpmd.h is fixed to that it is self sufficient when being
included.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since RFC v1:
- fixed registering issue,

---
 app/test-pmd/cmdline.c   | 83 ++++++++++++++++++++++++++++++++++++----
 app/test-pmd/meson.build |  5 +++
 app/test-pmd/testpmd.c   |  4 ++
 app/test-pmd/testpmd.h   | 16 ++++++++
 drivers/meson.build      |  5 +++
 meson.build              |  2 +
 6 files changed, 108 insertions(+), 7 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 498fe2c2b7..9de7ecdab7 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -69,6 +69,9 @@
 #include "bpf_cmd.h"
 
 static struct cmdline *testpmd_cl;
+static cmdline_parse_ctx_t *main_ctx;
+static TAILQ_HEAD(, testpmd_cmdline_parser) cmdline_parsers =
+	TAILQ_HEAD_INITIALIZER(cmdline_parsers);
 
 static void cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue);
 
@@ -94,6 +97,7 @@ static void cmd_help_brief_parsed(__rte_unused void *parsed_result,
 		"    help filters                    : Filters configuration help.\n"
 		"    help traffic_management         : Traffic Management commands.\n"
 		"    help devices                    : Device related cmds.\n"
+		"    help drivers                    : Driver specific cmds.\n"
 		"    help all                        : All of the above sections.\n\n"
 	);
 
@@ -1177,6 +1181,21 @@ static void cmd_help_long_parsed(void *parsed_result,
 		);
 	}
 
+	if (show_all || !strcmp(res->section, "drivers")) {
+		struct testpmd_cmdline_parser *parser;
+		unsigned int i;
+
+		cmdline_printf(
+			cl,
+			"\n"
+			"Driver specific:\n"
+			"----------------\n"
+		);
+		TAILQ_FOREACH(parser, &cmdline_parsers, next) {
+			for (i = 0; parser->help[i] != NULL; i++)
+				cmdline_printf(cl, "%s\n", parser->help[i]);
+		}
+	}
 }
 
 static cmdline_parse_token_string_t cmd_help_long_help =
@@ -1184,14 +1203,14 @@ static cmdline_parse_token_string_t cmd_help_long_help =
 
 static cmdline_parse_token_string_t cmd_help_long_section =
 	TOKEN_STRING_INITIALIZER(struct cmd_help_long_result, section,
-			"all#control#display#config#"
-			"ports#registers#filters#traffic_management#devices");
+		"all#control#display#config#ports#registers#"
+		"filters#traffic_management#devices#drivers");
 
 static cmdline_parse_inst_t cmd_help_long = {
 	.f = cmd_help_long_parsed,
 	.data = NULL,
 	.help_str = "help all|control|display|config|ports|register|"
-		"filters|traffic_management|devices: "
+		"filters|traffic_management|devices|drivers: "
 		"Show help",
 	.tokens = {
 		(void *)&cmd_help_long_help,
@@ -17800,7 +17819,7 @@ static cmdline_parse_inst_t cmd_show_port_flow_transfer_proxy = {
 /* ******************************************************************************** */
 
 /* list of instructions */
-static cmdline_parse_ctx_t main_ctx[] = {
+static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_help_brief,
 	(cmdline_parse_inst_t *)&cmd_help_long,
 	(cmdline_parse_inst_t *)&cmd_quit,
@@ -18086,6 +18105,59 @@ static cmdline_parse_ctx_t main_ctx[] = {
 	NULL,
 };
 
+void
+testpmd_add_commands(struct testpmd_cmdline_parser *parser)
+{
+	TAILQ_INSERT_TAIL(&cmdline_parsers, parser, next);
+}
+
+int
+init_cmdline(void)
+{
+	struct testpmd_cmdline_parser *parser;
+	cmdline_parse_ctx_t *ctx;
+	unsigned int count = 0;
+	unsigned int i;
+
+	/* initialize non-constant commands */
+	cmd_set_fwd_mode_init();
+	cmd_set_fwd_retry_mode_init();
+
+	main_ctx = NULL;
+	for (i = 0; builtin_ctx[i] != NULL; i++) {
+		ctx = realloc(main_ctx, (count + i + 1) * sizeof(*ctx));
+		if (ctx == NULL)
+			goto err;
+		main_ctx = ctx;
+		main_ctx[count + i] = builtin_ctx[i];
+	}
+	count += i;
+
+	TAILQ_FOREACH(parser, &cmdline_parsers, next) {
+		for (i = 0; parser->ctx[i] != NULL; i++) {
+			ctx = realloc(main_ctx, (count + i + 1) * sizeof(*ctx));
+			if (ctx == NULL)
+				goto err;
+			main_ctx = ctx;
+			main_ctx[count + i] = builtin_ctx[i];
+		}
+		count += i;
+	}
+
+	/* cmdline expects a NULL terminated array */
+	ctx = realloc(main_ctx, (count + 1) * sizeof(*ctx));
+	if (ctx == NULL)
+		goto err;
+	main_ctx = ctx;
+	main_ctx[count] = NULL;
+	count += 1;
+
+	return 0;
+err:
+	free(main_ctx);
+	return -1;
+}
+
 /* read cmdline commands from file */
 void
 cmdline_read_from_file(const char *filename)
@@ -18113,9 +18185,6 @@ void
 prompt(void)
 {
 	int ret;
-	/* initialize non-constant commands */
-	cmd_set_fwd_mode_init();
-	cmd_set_fwd_retry_mode_init();
 
 	testpmd_cl = cmdline_stdin_new(main_ctx, "testpmd> ");
 	if (testpmd_cl == NULL)
diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index 43130c8856..46a7511e9a 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -73,3 +73,8 @@ endif
 if dpdk_conf.has('RTE_NET_DPAA')
     deps += ['bus_dpaa', 'mempool_dpaa', 'net_dpaa']
 endif
+
+# Driver specific sources include some testpmd headers.
+includes = include_directories('.')
+sources += testpmd_drivers_sources
+deps += testpmd_drivers_deps
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 79bb23264b..93ec930b15 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -4275,6 +4275,10 @@ main(int argc, char** argv)
 	}
 #endif
 #ifdef RTE_LIB_CMDLINE
+	if (init_cmdline() != 0)
+		rte_exit(EXIT_FAILURE,
+			"Could not initialise cmdline context.\n");
+
 	if (strlen(cmdline_filename) != 0)
 		cmdline_read_from_file(cmdline_filename);
 
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index 31f766c965..b7f926cd38 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -16,7 +16,13 @@
 #include <rte_gso.h>
 #endif
 #include <rte_os_shim.h>
+#include <rte_ethdev.h>
+#include <rte_flow.h>
+#include <rte_mbuf_dyn.h>
+
 #include <cmdline.h>
+#include <cmdline_parse.h>
+
 #include <sys/queue.h>
 #ifdef RTE_HAS_JANSSON
 #include <jansson.h>
@@ -866,6 +872,7 @@ unsigned int parse_item_list(const char *str, const char *item_name,
 			unsigned int *parsed_items, int check_unique_values);
 void launch_args_parse(int argc, char** argv);
 void cmdline_read_from_file(const char *filename);
+int init_cmdline(void);
 void prompt(void);
 void prompt_exit(void);
 void nic_stats_display(portid_t port_id);
@@ -1169,6 +1176,15 @@ extern int flow_parse(const char *src, void *result, unsigned int size,
 		      struct rte_flow_item **pattern,
 		      struct rte_flow_action **actions);
 
+/* For registering commands out of testpmd sources. */
+struct testpmd_cmdline_parser {
+	TAILQ_ENTRY(testpmd_cmdline_parser) next;
+	cmdline_parse_ctx_t *ctx;
+	const char *help[];
+};
+
+extern void testpmd_add_commands(struct testpmd_cmdline_parser *parser);
+
 /*
  * Work-around of a compilation error with ICC on invocations of the
  * rte_be_to_cpu_16() function.
diff --git a/drivers/meson.build b/drivers/meson.build
index 1d8123b00c..4daa2658b7 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -102,6 +102,7 @@ foreach subpath:subdirs
         # static builds.
         ext_deps = []
         pkgconfig_extra_libs = []
+        testpmd_sources = []
 
         if not enable_drivers.contains(drv_path)
             build = false
@@ -246,6 +247,10 @@ foreach subpath:subdirs
         set_variable('shared_@0@'.format(lib_name), shared_dep)
         set_variable('static_@0@'.format(lib_name), static_dep)
         dependency_name = ''.join(lib_name.split('rte_'))
+        if testpmd_sources.length() != 0
+            testpmd_drivers_sources += testpmd_sources
+            testpmd_drivers_deps += dependency_name
+        endif
         if developer_mode
             message('drivers/@0@: Defining dependency "@1@"'.format(
                     drv_path, dependency_name))
diff --git a/meson.build b/meson.build
index 937f6110c0..5561171617 100644
--- a/meson.build
+++ b/meson.build
@@ -42,6 +42,8 @@ dpdk_drivers = []
 dpdk_extra_ldflags = []
 dpdk_libs_disabled = []
 dpdk_drvs_disabled = []
+testpmd_drivers_sources = []
+testpmd_drivers_deps = []
 abi_version_file = files('ABI_VERSION')
 
 if host_machine.cpu_family().startswith('x86')
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [RFC PATCH v2 3/5] net/bonding: move testpmd commands
  2022-05-18 19:46 ` [RFC PATCH v2 0/5] Split driver specific commands out of testpmd David Marchand
  2022-05-18 19:46   ` [RFC PATCH v2 1/5] app/testpmd: mark cmdline symbols as static David Marchand
  2022-05-18 19:46   ` [RFC PATCH v2 2/5] app/testpmd: register driver specific commands David Marchand
@ 2022-05-18 19:46   ` David Marchand
  2022-05-20  6:55     ` Andrew Rybchenko
  2022-05-18 19:46   ` [RFC PATCH v2 4/5] net/i40e: " David Marchand
                     ` (2 subsequent siblings)
  5 siblings, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-05-18 19:46 UTC (permalink / raw)
  To: dev
  Cc: thomas, Xiaoyun Li, Aman Singh, Yuying Zhang, Chas Williams,
	Min Hu (Connor)

Move related specific testpmd commands into this driver directory.
While at it, fix checkpatch warnings.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/cmdline.c                     | 1035 -------------------
 app/test-pmd/meson.build                   |    3 -
 drivers/net/bonding/meson.build            |    1 +
 drivers/net/bonding/rte_eth_bond_testpmd.c | 1037 ++++++++++++++++++++
 4 files changed, 1038 insertions(+), 1038 deletions(-)
 create mode 100644 drivers/net/bonding/rte_eth_bond_testpmd.c

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 9de7ecdab7..58bdf206d7 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -47,10 +47,6 @@
 #include <cmdline_parse_etheraddr.h>
 #include <cmdline_socket.h>
 #include <cmdline.h>
-#ifdef RTE_NET_BOND
-#include <rte_eth_bond.h>
-#include <rte_eth_bond_8023ad.h>
-#endif
 #if defined RTE_BUS_DPAA && defined RTE_NET_DPAA
 #include <rte_pmd_dpaa.h>
 #endif
@@ -614,44 +610,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"   Show the bypass configuration for a bypass enabled NIC"
 			" using the lowest port on the NIC.\n\n"
 
-#ifdef RTE_NET_BOND
-			"create bonded device (mode) (socket)\n"
-			"	Create a new bonded device with specific bonding mode and socket.\n\n"
-
-			"add bonding slave (slave_id) (port_id)\n"
-			"	Add a slave device to a bonded device.\n\n"
-
-			"remove bonding slave (slave_id) (port_id)\n"
-			"	Remove a slave device from a bonded device.\n\n"
-
-			"set bonding mode (value) (port_id)\n"
-			"	Set the bonding mode on a bonded device.\n\n"
-
-			"set bonding primary (slave_id) (port_id)\n"
-			"	Set the primary slave for a bonded device.\n\n"
-
-			"show bonding config (port_id)\n"
-			"	Show the bonding config for port_id.\n\n"
-
-			"show bonding lacp info (port_id)\n"
-			"	Show the bonding lacp information for port_id.\n\n"
-
-			"set bonding mac_addr (port_id) (address)\n"
-			"	Set the MAC address of a bonded device.\n\n"
-
-			"set bonding mode IEEE802.3AD aggregator policy (port_id) (agg_name)"
-			"	Set Aggregation mode for IEEE802.3AD (mode 4)"
-
-			"set bonding balance_xmit_policy (port_id) (l2|l23|l34)\n"
-			"	Set the transmit balance policy for bonded device running in balance mode.\n\n"
-
-			"set bonding mon_period (port_id) (value)\n"
-			"	Set the bonding link status monitoring polling period in ms.\n\n"
-
-			"set bonding lacp dedicated_queues <port_id> (enable|disable)\n"
-			"	Enable/disable dedicated queues for LACP control traffic.\n\n"
-
-#endif
 			"set link-up port (port_id)\n"
 			"	Set link up for a port.\n\n"
 
@@ -5921,985 +5879,6 @@ static cmdline_parse_inst_t cmd_show_bypass_config = {
 	},
 };
 
-#ifdef RTE_NET_BOND
-/* *** SET BONDING MODE *** */
-struct cmd_set_bonding_mode_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t mode;
-	uint8_t value;
-	portid_t port_id;
-};
-
-static void cmd_set_bonding_mode_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_mode_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	struct rte_port *port = &ports[port_id];
-
-	/*
-	 * Bonding mode changed means resources of device changed, like whether
-	 * started rte timer or not. Device should be restarted when resources
-	 * of device changed.
-	 */
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr,
-			"\t Error: Can't set bonding mode when port %d is not stopped\n",
-			port_id);
-		return;
-	}
-
-	/* Set the bonding mode for the relevant port. */
-	if (0 != rte_eth_bond_mode_set(port_id, res->value))
-		fprintf(stderr, "\t Failed to set bonding mode for port = %d.\n",
-			port_id);
-}
-
-static cmdline_parse_token_string_t cmd_setbonding_mode_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
-		set, "set");
-static cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_setbonding_mode_mode =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
-		mode, "mode");
-static cmdline_parse_token_num_t cmd_setbonding_mode_value =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
-		value, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_setbonding_mode_port =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
-		port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_set_bonding_mode = {
-		.f = cmd_set_bonding_mode_parsed,
-		.help_str = "set bonding mode <mode_value> <port_id>: "
-			"Set the bonding mode for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *) &cmd_setbonding_mode_set,
-				(void *) &cmd_setbonding_mode_bonding,
-				(void *) &cmd_setbonding_mode_mode,
-				(void *) &cmd_setbonding_mode_value,
-				(void *) &cmd_setbonding_mode_port,
-				NULL
-		}
-};
-
-/* *** SET BONDING SLOW_QUEUE SW/HW *** */
-struct cmd_set_bonding_lacp_dedicated_queues_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t lacp;
-	cmdline_fixed_string_t dedicated_queues;
-	portid_t port_id;
-	cmdline_fixed_string_t mode;
-};
-
-static void cmd_set_bonding_lacp_dedicated_queues_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_lacp_dedicated_queues_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	struct rte_port *port;
-
-	port = &ports[port_id];
-
-	/** Check if the port is not started **/
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr, "Please stop port %d first\n", port_id);
-		return;
-	}
-
-	if (!strcmp(res->mode, "enable")) {
-		if (rte_eth_bond_8023ad_dedicated_queues_enable(port_id) == 0)
-			printf("Dedicate queues for LACP control packets"
-					" enabled\n");
-		else
-			printf("Enabling dedicate queues for LACP control "
-					"packets on port %d failed\n", port_id);
-	} else if (!strcmp(res->mode, "disable")) {
-		if (rte_eth_bond_8023ad_dedicated_queues_disable(port_id) == 0)
-			printf("Dedicated queues for LACP control packets "
-					"disabled\n");
-		else
-			printf("Disabling dedicated queues for LACP control "
-					"traffic on port %d failed\n", port_id);
-	}
-}
-
-static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		set, "set");
-static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		lacp, "lacp");
-static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		dedicated_queues, "dedicated_queues");
-static cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		mode, "enable#disable");
-
-static cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
-		.f = cmd_set_bonding_lacp_dedicated_queues_parsed,
-		.help_str = "set bonding lacp dedicated_queues <port_id> "
-			"enable|disable: "
-			"Enable/disable dedicated queues for LACP control traffic for port_id",
-		.data = NULL,
-		.tokens = {
-			(void *)&cmd_setbonding_lacp_dedicated_queues_set,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_bonding,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_lacp,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_dedicated_queues,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_port_id,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_mode,
-			NULL
-		}
-};
-
-/* *** SET BALANCE XMIT POLICY *** */
-struct cmd_set_bonding_balance_xmit_policy_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t balance_xmit_policy;
-	portid_t port_id;
-	cmdline_fixed_string_t policy;
-};
-
-static void cmd_set_bonding_balance_xmit_policy_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_balance_xmit_policy_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	uint8_t policy;
-
-	if (!strcmp(res->policy, "l2")) {
-		policy = BALANCE_XMIT_POLICY_LAYER2;
-	} else if (!strcmp(res->policy, "l23")) {
-		policy = BALANCE_XMIT_POLICY_LAYER23;
-	} else if (!strcmp(res->policy, "l34")) {
-		policy = BALANCE_XMIT_POLICY_LAYER34;
-	} else {
-		fprintf(stderr, "\t Invalid xmit policy selection");
-		return;
-	}
-
-	/* Set the bonding mode for the relevant port. */
-	if (0 != rte_eth_bond_xmit_policy_set(port_id, policy)) {
-		fprintf(stderr,
-			"\t Failed to set bonding balance xmit policy for port = %d.\n",
-			port_id);
-	}
-}
-
-static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		set, "set");
-static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		balance_xmit_policy, "balance_xmit_policy");
-static cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		policy, "l2#l23#l34");
-
-static cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
-		.f = cmd_set_bonding_balance_xmit_policy_parsed,
-		.help_str = "set bonding balance_xmit_policy <port_id> "
-			"l2|l23|l34: "
-			"Set the bonding balance_xmit_policy for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_setbonding_balance_xmit_policy_set,
-				(void *)&cmd_setbonding_balance_xmit_policy_bonding,
-				(void *)&cmd_setbonding_balance_xmit_policy_balance_xmit_policy,
-				(void *)&cmd_setbonding_balance_xmit_policy_port,
-				(void *)&cmd_setbonding_balance_xmit_policy_policy,
-				NULL
-		}
-};
-
-/* *** SHOW IEEE802.3 BONDING INFORMATION *** */
-struct cmd_show_bonding_lacp_info_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t lacp;
-	cmdline_fixed_string_t info;
-	portid_t port_id;
-};
-
-static void port_param_show(struct port_params *params)
-{
-	char buf[RTE_ETHER_ADDR_FMT_SIZE];
-
-	printf("\t\tsystem priority: %u\n", params->system_priority);
-	rte_ether_format_addr(buf, RTE_ETHER_ADDR_FMT_SIZE, &params->system);
-	printf("\t\tsystem mac address: %s\n", buf);
-	printf("\t\tport key: %u\n", params->key);
-	printf("\t\tport priority: %u\n", params->port_priority);
-	printf("\t\tport number: %u\n", params->port_number);
-}
-
-static void lacp_slave_info_show(struct rte_eth_bond_8023ad_slave_info *info)
-{
-	char a_state[256] = { 0 };
-	char p_state[256] = { 0 };
-	int a_len = 0;
-	int p_len = 0;
-	uint32_t i;
-
-	static const char * const state[] = {
-		"ACTIVE",
-		"TIMEOUT",
-		"AGGREGATION",
-		"SYNCHRONIZATION",
-		"COLLECTING",
-		"DISTRIBUTING",
-		"DEFAULTED",
-		"EXPIRED"
-	};
-	static const char * const selection[] = {
-		"UNSELECTED",
-		"STANDBY",
-		"SELECTED"
-	};
-
-	for (i = 0; i < RTE_DIM(state); i++) {
-		if ((info->actor_state >> i) & 1)
-			a_len += snprintf(&a_state[a_len],
-						RTE_DIM(a_state) - a_len, "%s ",
-						state[i]);
-
-		if ((info->partner_state >> i) & 1)
-			p_len += snprintf(&p_state[p_len],
-						RTE_DIM(p_state) - p_len, "%s ",
-						state[i]);
-	}
-	printf("\tAggregator port id: %u\n", info->agg_port_id);
-	printf("\tselection: %s\n", selection[info->selected]);
-	printf("\tActor detail info:\n");
-	port_param_show(&info->actor);
-	printf("\t\tport state: %s\n", a_state);
-	printf("\tPartner detail info:\n");
-	port_param_show(&info->partner);
-	printf("\t\tport state: %s\n", p_state);
-	printf("\n");
-}
-
-static void lacp_conf_show(struct rte_eth_bond_8023ad_conf *conf)
-{
-	printf("\tfast period: %u ms\n", conf->fast_periodic_ms);
-	printf("\tslow period: %u ms\n", conf->slow_periodic_ms);
-	printf("\tshort timeout: %u ms\n", conf->short_timeout_ms);
-	printf("\tlong timeout: %u ms\n", conf->long_timeout_ms);
-	printf("\taggregate wait timeout: %u ms\n",
-			conf->aggregate_wait_timeout_ms);
-	printf("\ttx period: %u ms\n", conf->tx_period_ms);
-	printf("\trx marker period: %u ms\n", conf->rx_marker_period_ms);
-	printf("\tupdate timeout: %u ms\n", conf->update_timeout_ms);
-	switch (conf->agg_selection) {
-	case AGG_BANDWIDTH:
-		printf("\taggregation mode: bandwidth\n");
-		break;
-	case AGG_STABLE:
-		printf("\taggregation mode: stable\n");
-		break;
-	case AGG_COUNT:
-		printf("\taggregation mode: count\n");
-		break;
-	default:
-		printf("\taggregation mode: invalid\n");
-		break;
-	}
-
-	printf("\n");
-}
-
-static void cmd_show_bonding_lacp_info_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_show_bonding_lacp_info_result *res = parsed_result;
-	struct rte_eth_bond_8023ad_slave_info slave_info;
-	struct rte_eth_bond_8023ad_conf port_conf;
-	portid_t slaves[RTE_MAX_ETHPORTS];
-	portid_t port_id = res->port_id;
-	int num_active_slaves;
-	int bonding_mode;
-	int i;
-	int ret;
-
-	bonding_mode = rte_eth_bond_mode_get(port_id);
-	if (bonding_mode != BONDING_MODE_8023AD) {
-		fprintf(stderr, "\tBonding mode is not mode 4\n");
-		return;
-	}
-
-	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
-			RTE_MAX_ETHPORTS);
-	if (num_active_slaves < 0) {
-		fprintf(stderr, "\tFailed to get active slave list for port = %u\n",
-				port_id);
-		return;
-	}
-	if (num_active_slaves == 0)
-		fprintf(stderr, "\tIEEE802.3 port %u has no active slave\n",
-			port_id);
-
-	printf("\tIEEE802.3 port: %u\n", port_id);
-	ret = rte_eth_bond_8023ad_conf_get(port_id, &port_conf);
-	if (ret) {
-		fprintf(stderr, "\tGet bonded device %u info failed\n",
-			port_id);
-		return;
-	}
-	lacp_conf_show(&port_conf);
-
-	for (i = 0; i < num_active_slaves; i++) {
-		ret = rte_eth_bond_8023ad_slave_info(port_id, slaves[i],
-				&slave_info);
-		if (ret) {
-			fprintf(stderr, "\tGet slave device %u info failed\n",
-				slaves[i]);
-			return;
-		}
-		printf("\tSlave Port: %u\n", slaves[i]);
-		lacp_slave_info_show(&slave_info);
-	}
-}
-
-static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		show, "show");
-static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		bonding, "lacp");
-static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		info, "info");
-static cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
-TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
-		.f = cmd_show_bonding_lacp_info_parsed,
-		.help_str = "show bonding lacp info <port_id> : "
-			"Show bonding IEEE802.3 information for port_id",
-		.data = NULL,
-		.tokens = {
-			(void *)&cmd_show_bonding_lacp_info_show,
-			(void *)&cmd_show_bonding_lacp_info_bonding,
-			(void *)&cmd_show_bonding_lacp_info_lacp,
-			(void *)&cmd_show_bonding_lacp_info_info,
-			(void *)&cmd_show_bonding_lacp_info_port_id,
-			NULL
-		}
-};
-
-/* *** SHOW NIC BONDING CONFIGURATION *** */
-struct cmd_show_bonding_config_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t config;
-	portid_t port_id;
-};
-
-static void cmd_show_bonding_config_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_show_bonding_config_result *res = parsed_result;
-	int bonding_mode, agg_mode;
-	portid_t slaves[RTE_MAX_ETHPORTS];
-	int num_slaves, num_active_slaves;
-	int primary_id;
-	int i;
-	portid_t port_id = res->port_id;
-
-	/* Display the bonding mode.*/
-	bonding_mode = rte_eth_bond_mode_get(port_id);
-	if (bonding_mode < 0) {
-		fprintf(stderr, "\tFailed to get bonding mode for port = %d\n",
-			port_id);
-		return;
-	} else
-		printf("\tBonding mode: %d\n", bonding_mode);
-
-	if (bonding_mode == BONDING_MODE_BALANCE ||
-		bonding_mode == BONDING_MODE_8023AD) {
-		int balance_xmit_policy;
-
-		balance_xmit_policy = rte_eth_bond_xmit_policy_get(port_id);
-		if (balance_xmit_policy < 0) {
-			fprintf(stderr,
-				"\tFailed to get balance xmit policy for port = %d\n",
-				port_id);
-			return;
-		} else {
-			printf("\tBalance Xmit Policy: ");
-
-			switch (balance_xmit_policy) {
-			case BALANCE_XMIT_POLICY_LAYER2:
-				printf("BALANCE_XMIT_POLICY_LAYER2");
-				break;
-			case BALANCE_XMIT_POLICY_LAYER23:
-				printf("BALANCE_XMIT_POLICY_LAYER23");
-				break;
-			case BALANCE_XMIT_POLICY_LAYER34:
-				printf("BALANCE_XMIT_POLICY_LAYER34");
-				break;
-			}
-			printf("\n");
-		}
-	}
-
-	if (bonding_mode == BONDING_MODE_8023AD) {
-		agg_mode = rte_eth_bond_8023ad_agg_selection_get(port_id);
-		printf("\tIEEE802.3AD Aggregator Mode: ");
-		switch (agg_mode) {
-		case AGG_BANDWIDTH:
-			printf("bandwidth");
-			break;
-		case AGG_STABLE:
-			printf("stable");
-			break;
-		case AGG_COUNT:
-			printf("count");
-			break;
-		}
-		printf("\n");
-	}
-
-	num_slaves = rte_eth_bond_slaves_get(port_id, slaves, RTE_MAX_ETHPORTS);
-
-	if (num_slaves < 0) {
-		fprintf(stderr, "\tFailed to get slave list for port = %d\n",
-			port_id);
-		return;
-	}
-	if (num_slaves > 0) {
-		printf("\tSlaves (%d): [", num_slaves);
-		for (i = 0; i < num_slaves - 1; i++)
-			printf("%d ", slaves[i]);
-
-		printf("%d]\n", slaves[num_slaves - 1]);
-	} else {
-		printf("\tSlaves: []\n");
-
-	}
-
-	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
-			RTE_MAX_ETHPORTS);
-
-	if (num_active_slaves < 0) {
-		fprintf(stderr,
-			"\tFailed to get active slave list for port = %d\n",
-			port_id);
-		return;
-	}
-	if (num_active_slaves > 0) {
-		printf("\tActive Slaves (%d): [", num_active_slaves);
-		for (i = 0; i < num_active_slaves - 1; i++)
-			printf("%d ", slaves[i]);
-
-		printf("%d]\n", slaves[num_active_slaves - 1]);
-
-	} else {
-		printf("\tActive Slaves: []\n");
-
-	}
-
-	primary_id = rte_eth_bond_primary_get(port_id);
-	if (primary_id < 0) {
-		fprintf(stderr, "\tFailed to get primary slave for port = %d\n",
-			port_id);
-		return;
-	} else
-		printf("\tPrimary: [%d]\n", primary_id);
-
-}
-
-static cmdline_parse_token_string_t cmd_showbonding_config_show =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
-		show, "show");
-static cmdline_parse_token_string_t cmd_showbonding_config_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_showbonding_config_config =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
-		config, "config");
-static cmdline_parse_token_num_t cmd_showbonding_config_port =
-TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_config_result,
-		port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_show_bonding_config = {
-		.f = cmd_show_bonding_config_parsed,
-		.help_str = "show bonding config <port_id>: "
-			"Show the bonding config for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_showbonding_config_show,
-				(void *)&cmd_showbonding_config_bonding,
-				(void *)&cmd_showbonding_config_config,
-				(void *)&cmd_showbonding_config_port,
-				NULL
-		}
-};
-
-/* *** SET BONDING PRIMARY *** */
-struct cmd_set_bonding_primary_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t primary;
-	portid_t slave_id;
-	portid_t port_id;
-};
-
-static void cmd_set_bonding_primary_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_primary_result *res = parsed_result;
-	portid_t master_port_id = res->port_id;
-	portid_t slave_port_id = res->slave_id;
-
-	/* Set the primary slave for a bonded device. */
-	if (0 != rte_eth_bond_primary_set(master_port_id, slave_port_id)) {
-		fprintf(stderr, "\t Failed to set primary slave for port = %d.\n",
-			master_port_id);
-		return;
-	}
-	init_port_config();
-}
-
-static cmdline_parse_token_string_t cmd_setbonding_primary_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
-		set, "set");
-static cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_setbonding_primary_primary =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
-		primary, "primary");
-static cmdline_parse_token_num_t cmd_setbonding_primary_slave =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
-		slave_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_setbonding_primary_port =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
-		port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_set_bonding_primary = {
-		.f = cmd_set_bonding_primary_parsed,
-		.help_str = "set bonding primary <slave_id> <port_id>: "
-			"Set the primary slave for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_setbonding_primary_set,
-				(void *)&cmd_setbonding_primary_bonding,
-				(void *)&cmd_setbonding_primary_primary,
-				(void *)&cmd_setbonding_primary_slave,
-				(void *)&cmd_setbonding_primary_port,
-				NULL
-		}
-};
-
-/* *** ADD SLAVE *** */
-struct cmd_add_bonding_slave_result {
-	cmdline_fixed_string_t add;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t slave;
-	portid_t slave_id;
-	portid_t port_id;
-};
-
-static void cmd_add_bonding_slave_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_add_bonding_slave_result *res = parsed_result;
-	portid_t master_port_id = res->port_id;
-	portid_t slave_port_id = res->slave_id;
-
-	/* add the slave for a bonded device. */
-	if (0 != rte_eth_bond_slave_add(master_port_id, slave_port_id)) {
-		fprintf(stderr,
-			"\t Failed to add slave %d to master port = %d.\n",
-			slave_port_id, master_port_id);
-		return;
-	}
-	init_port_config();
-	set_port_slave_flag(slave_port_id);
-}
-
-static cmdline_parse_token_string_t cmd_addbonding_slave_add =
-TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
-		add, "add");
-static cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_addbonding_slave_slave =
-TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
-		slave, "slave");
-static cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
-TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
-		slave_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_addbonding_slave_port =
-TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
-		port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_add_bonding_slave = {
-		.f = cmd_add_bonding_slave_parsed,
-		.help_str = "add bonding slave <slave_id> <port_id>: "
-			"Add a slave device to a bonded device",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_addbonding_slave_add,
-				(void *)&cmd_addbonding_slave_bonding,
-				(void *)&cmd_addbonding_slave_slave,
-				(void *)&cmd_addbonding_slave_slaveid,
-				(void *)&cmd_addbonding_slave_port,
-				NULL
-		}
-};
-
-/* *** REMOVE SLAVE *** */
-struct cmd_remove_bonding_slave_result {
-	cmdline_fixed_string_t remove;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t slave;
-	portid_t slave_id;
-	portid_t port_id;
-};
-
-static void cmd_remove_bonding_slave_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_remove_bonding_slave_result *res = parsed_result;
-	portid_t master_port_id = res->port_id;
-	portid_t slave_port_id = res->slave_id;
-
-	/* remove the slave from a bonded device. */
-	if (0 != rte_eth_bond_slave_remove(master_port_id, slave_port_id)) {
-		fprintf(stderr,
-			"\t Failed to remove slave %d from master port = %d.\n",
-			slave_port_id, master_port_id);
-		return;
-	}
-	init_port_config();
-	clear_port_slave_flag(slave_port_id);
-}
-
-static cmdline_parse_token_string_t cmd_removebonding_slave_remove =
-		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				remove, "remove");
-static cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
-		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				bonding, "bonding");
-static cmdline_parse_token_string_t cmd_removebonding_slave_slave =
-		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				slave, "slave");
-static cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
-		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				slave_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_removebonding_slave_port =
-		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_remove_bonding_slave = {
-		.f = cmd_remove_bonding_slave_parsed,
-		.help_str = "remove bonding slave <slave_id> <port_id>: "
-			"Remove a slave device from a bonded device",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_removebonding_slave_remove,
-				(void *)&cmd_removebonding_slave_bonding,
-				(void *)&cmd_removebonding_slave_slave,
-				(void *)&cmd_removebonding_slave_slaveid,
-				(void *)&cmd_removebonding_slave_port,
-				NULL
-		}
-};
-
-/* *** CREATE BONDED DEVICE *** */
-struct cmd_create_bonded_device_result {
-	cmdline_fixed_string_t create;
-	cmdline_fixed_string_t bonded;
-	cmdline_fixed_string_t device;
-	uint8_t mode;
-	uint8_t socket;
-};
-
-static int bond_dev_num = 0;
-
-static void cmd_create_bonded_device_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_create_bonded_device_result *res = parsed_result;
-	char ethdev_name[RTE_ETH_NAME_MAX_LEN];
-	int port_id;
-	int ret;
-
-	if (test_done == 0) {
-		fprintf(stderr, "Please stop forwarding first\n");
-		return;
-	}
-
-	snprintf(ethdev_name, RTE_ETH_NAME_MAX_LEN, "net_bonding_testpmd_%d",
-			bond_dev_num++);
-
-	/* Create a new bonded device. */
-	port_id = rte_eth_bond_create(ethdev_name, res->mode, res->socket);
-	if (port_id < 0) {
-		fprintf(stderr, "\t Failed to create bonded device.\n");
-		return;
-	} else {
-		printf("Created new bonded device %s on (port %d).\n", ethdev_name,
-				port_id);
-
-		/* Update number of ports */
-		nb_ports = rte_eth_dev_count_avail();
-		reconfig(port_id, res->socket);
-		ret = rte_eth_promiscuous_enable(port_id);
-		if (ret != 0)
-			fprintf(stderr,
-				"Failed to enable promiscuous mode for port %u: %s - ignore\n",
-				port_id, rte_strerror(-ret));
-
-		ports[port_id].need_setup = 0;
-		ports[port_id].port_status = RTE_PORT_STOPPED;
-	}
-
-}
-
-static cmdline_parse_token_string_t cmd_createbonded_device_create =
-		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
-				create, "create");
-static cmdline_parse_token_string_t cmd_createbonded_device_bonded =
-		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
-				bonded, "bonded");
-static cmdline_parse_token_string_t cmd_createbonded_device_device =
-		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
-				device, "device");
-static cmdline_parse_token_num_t cmd_createbonded_device_mode =
-		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
-				mode, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_createbonded_device_socket =
-		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
-				socket, RTE_UINT8);
-
-static cmdline_parse_inst_t cmd_create_bonded_device = {
-		.f = cmd_create_bonded_device_parsed,
-		.help_str = "create bonded device <mode> <socket>: "
-			"Create a new bonded device with specific bonding mode and socket",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_createbonded_device_create,
-				(void *)&cmd_createbonded_device_bonded,
-				(void *)&cmd_createbonded_device_device,
-				(void *)&cmd_createbonded_device_mode,
-				(void *)&cmd_createbonded_device_socket,
-				NULL
-		}
-};
-
-/* *** SET MAC ADDRESS IN BONDED DEVICE *** */
-struct cmd_set_bond_mac_addr_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t mac_addr;
-	uint16_t port_num;
-	struct rte_ether_addr address;
-};
-
-static void cmd_set_bond_mac_addr_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bond_mac_addr_result *res = parsed_result;
-	int ret;
-
-	if (port_id_is_invalid(res->port_num, ENABLED_WARN))
-		return;
-
-	ret = rte_eth_bond_mac_address_set(res->port_num, &res->address);
-
-	/* check the return value and print it if is < 0 */
-	if (ret < 0)
-		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
-			strerror(-ret));
-}
-
-static cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, set, "set");
-static cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, bonding,
-				"bonding");
-static cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, mac_addr,
-				"mac_addr");
-static cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
-		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mac_addr_result,
-				port_num, RTE_UINT16);
-static cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
-		TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_bond_mac_addr_result, address);
-
-static cmdline_parse_inst_t cmd_set_bond_mac_addr = {
-		.f = cmd_set_bond_mac_addr_parsed,
-		.data = (void *) 0,
-		.help_str = "set bonding mac_addr <port_id> <mac_addr>",
-		.tokens = {
-				(void *)&cmd_set_bond_mac_addr_set,
-				(void *)&cmd_set_bond_mac_addr_bonding,
-				(void *)&cmd_set_bond_mac_addr_mac,
-				(void *)&cmd_set_bond_mac_addr_portnum,
-				(void *)&cmd_set_bond_mac_addr_addr,
-				NULL
-		}
-};
-
-
-/* *** SET LINK STATUS MONITORING POLLING PERIOD ON BONDED DEVICE *** */
-struct cmd_set_bond_mon_period_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t mon_period;
-	uint16_t port_num;
-	uint32_t period_ms;
-};
-
-static void cmd_set_bond_mon_period_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bond_mon_period_result *res = parsed_result;
-	int ret;
-
-	ret = rte_eth_bond_link_monitoring_set(res->port_num, res->period_ms);
-
-	/* check the return value and print it if is < 0 */
-	if (ret < 0)
-		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
-			strerror(-ret));
-}
-
-static cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				set, "set");
-static cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				bonding, "bonding");
-static cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				mon_period,	"mon_period");
-static cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
-		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				port_num, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
-		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				period_ms, RTE_UINT32);
-
-static cmdline_parse_inst_t cmd_set_bond_mon_period = {
-		.f = cmd_set_bond_mon_period_parsed,
-		.data = (void *) 0,
-		.help_str = "set bonding mon_period <port_id> <period_ms>",
-		.tokens = {
-				(void *)&cmd_set_bond_mon_period_set,
-				(void *)&cmd_set_bond_mon_period_bonding,
-				(void *)&cmd_set_bond_mon_period_mon_period,
-				(void *)&cmd_set_bond_mon_period_portnum,
-				(void *)&cmd_set_bond_mon_period_period_ms,
-				NULL
-		}
-};
-
-
-
-struct cmd_set_bonding_agg_mode_policy_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t agg_mode;
-	uint16_t port_num;
-	cmdline_fixed_string_t policy;
-};
-
-
-static void
-cmd_set_bonding_agg_mode(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_agg_mode_policy_result *res = parsed_result;
-	uint8_t policy = AGG_BANDWIDTH;
-
-	if (!strcmp(res->policy, "bandwidth"))
-		policy = AGG_BANDWIDTH;
-	else if (!strcmp(res->policy, "stable"))
-		policy = AGG_STABLE;
-	else if (!strcmp(res->policy, "count"))
-		policy = AGG_COUNT;
-
-	rte_eth_bond_8023ad_agg_selection_set(res->port_num, policy);
-}
-
-
-static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				set, "set");
-static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				bonding, "bonding");
-
-static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				agg_mode, "agg_mode");
-
-static cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				port_num, RTE_UINT16);
-
-static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
-	TOKEN_STRING_INITIALIZER(
-			struct cmd_set_bonding_balance_xmit_policy_result,
-		policy, "stable#bandwidth#count");
-
-static cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
-	.f = cmd_set_bonding_agg_mode,
-	.data = (void *) 0,
-	.help_str = "set bonding mode IEEE802.3AD aggregator policy <port_id> <agg_name>",
-	.tokens = {
-			(void *)&cmd_set_bonding_agg_mode_set,
-			(void *)&cmd_set_bonding_agg_mode_bonding,
-			(void *)&cmd_set_bonding_agg_mode_agg_mode,
-			(void *)&cmd_set_bonding_agg_mode_portnum,
-			(void *)&cmd_set_bonding_agg_mode_policy_string,
-			NULL
-		}
-};
-
-
-#endif /* RTE_NET_BOND */
-
 /* *** SET FORWARDING MODE *** */
 struct cmd_set_fwd_mode_result {
 	cmdline_fixed_string_t set;
@@ -17860,20 +16839,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_bypass_event,
 	(cmdline_parse_inst_t *)&cmd_set_bypass_timeout,
 	(cmdline_parse_inst_t *)&cmd_show_bypass_config,
-#ifdef RTE_NET_BOND
-	(cmdline_parse_inst_t *) &cmd_set_bonding_mode,
-	(cmdline_parse_inst_t *) &cmd_show_bonding_config,
-	(cmdline_parse_inst_t *) &cmd_show_bonding_lacp_info,
-	(cmdline_parse_inst_t *) &cmd_set_bonding_primary,
-	(cmdline_parse_inst_t *) &cmd_add_bonding_slave,
-	(cmdline_parse_inst_t *) &cmd_remove_bonding_slave,
-	(cmdline_parse_inst_t *) &cmd_create_bonded_device,
-	(cmdline_parse_inst_t *) &cmd_set_bond_mac_addr,
-	(cmdline_parse_inst_t *) &cmd_set_balance_xmit_policy,
-	(cmdline_parse_inst_t *) &cmd_set_bond_mon_period,
-	(cmdline_parse_inst_t *) &cmd_set_lacp_dedicated_queues,
-	(cmdline_parse_inst_t *) &cmd_set_bonding_agg_mode_policy,
-#endif
 	(cmdline_parse_inst_t *)&cmd_vlan_offload,
 	(cmdline_parse_inst_t *)&cmd_vlan_tpid,
 	(cmdline_parse_inst_t *)&cmd_rx_vlan_filter_all,
diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index 46a7511e9a..07634332f3 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -58,9 +58,6 @@ endif
 if dpdk_conf.has('RTE_LIB_PDUMP')
     deps += 'pdump'
 endif
-if dpdk_conf.has('RTE_NET_BOND')
-    deps += 'net_bond'
-endif
 if dpdk_conf.has('RTE_NET_BNXT')
     deps += 'net_bnxt'
 endif
diff --git a/drivers/net/bonding/meson.build b/drivers/net/bonding/meson.build
index 402b44be1a..faea892295 100644
--- a/drivers/net/bonding/meson.build
+++ b/drivers/net/bonding/meson.build
@@ -16,6 +16,7 @@ sources = files(
         'rte_eth_bond_flow.c',
         'rte_eth_bond_pmd.c',
 )
+testpmd_sources = files('rte_eth_bond_testpmd.c')
 
 deps += 'sched' # needed for rte_bitmap.h
 deps += ['ip_frag']
diff --git a/drivers/net/bonding/rte_eth_bond_testpmd.c b/drivers/net/bonding/rte_eth_bond_testpmd.c
new file mode 100644
index 0000000000..3949a8c3ca
--- /dev/null
+++ b/drivers/net/bonding/rte_eth_bond_testpmd.c
@@ -0,0 +1,1037 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2016 Intel Corporation.
+ */
+
+#include <rte_eth_bond.h>
+#include <rte_eth_bond_8023ad.h>
+
+#include <cmdline_parse.h>
+#include <cmdline_parse_etheraddr.h>
+#include <cmdline_parse_num.h>
+#include <cmdline_parse_string.h>
+
+#include "testpmd.h"
+
+/* *** SET BONDING MODE *** */
+struct cmd_set_bonding_mode_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t mode;
+	uint8_t value;
+	portid_t port_id;
+};
+
+static void cmd_set_bonding_mode_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bonding_mode_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	struct rte_port *port = &ports[port_id];
+
+	/*
+	 * Bonding mode changed means resources of device changed, like whether
+	 * started rte timer or not. Device should be restarted when resources
+	 * of device changed.
+	 */
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr,
+			"\t Error: Can't set bonding mode when port %d is not stopped\n",
+			port_id);
+		return;
+	}
+
+	/* Set the bonding mode for the relevant port. */
+	if (rte_eth_bond_mode_set(port_id, res->value) != 0)
+		fprintf(stderr, "\t Failed to set bonding mode for port = %d.\n",
+			port_id);
+}
+
+static cmdline_parse_token_string_t cmd_setbonding_mode_set =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_setbonding_mode_mode =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
+		mode, "mode");
+static cmdline_parse_token_num_t cmd_setbonding_mode_value =
+TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
+		value, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_setbonding_mode_port =
+TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_set_bonding_mode = {
+		.f = cmd_set_bonding_mode_parsed,
+		.help_str = "set bonding mode <mode_value> <port_id>: "
+			"Set the bonding mode for port_id",
+		.data = NULL,
+		.tokens = {
+				(void *)&cmd_setbonding_mode_set,
+				(void *)&cmd_setbonding_mode_bonding,
+				(void *)&cmd_setbonding_mode_mode,
+				(void *)&cmd_setbonding_mode_value,
+				(void *)&cmd_setbonding_mode_port,
+				NULL
+		}
+};
+
+/* *** SET BONDING SLOW_QUEUE SW/HW *** */
+struct cmd_set_bonding_lacp_dedicated_queues_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t lacp;
+	cmdline_fixed_string_t dedicated_queues;
+	portid_t port_id;
+	cmdline_fixed_string_t mode;
+};
+
+static void cmd_set_bonding_lacp_dedicated_queues_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bonding_lacp_dedicated_queues_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	struct rte_port *port;
+
+	port = &ports[port_id];
+
+	/** Check if the port is not started **/
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr, "Please stop port %d first\n", port_id);
+		return;
+	}
+
+	if (!strcmp(res->mode, "enable")) {
+		if (rte_eth_bond_8023ad_dedicated_queues_enable(port_id) == 0)
+			printf("Dedicate queues for LACP control packets"
+					" enabled\n");
+		else
+			printf("Enabling dedicate queues for LACP control "
+					"packets on port %d failed\n", port_id);
+	} else if (!strcmp(res->mode, "disable")) {
+		if (rte_eth_bond_8023ad_dedicated_queues_disable(port_id) == 0)
+			printf("Dedicated queues for LACP control packets "
+					"disabled\n");
+		else
+			printf("Disabling dedicated queues for LACP control "
+					"traffic on port %d failed\n", port_id);
+	}
+}
+
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		lacp, "lacp");
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		dedicated_queues, "dedicated_queues");
+static cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
+TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		mode, "enable#disable");
+
+static cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
+		.f = cmd_set_bonding_lacp_dedicated_queues_parsed,
+		.help_str = "set bonding lacp dedicated_queues <port_id> "
+			"enable|disable: "
+			"Enable/disable dedicated queues for LACP control traffic for port_id",
+		.data = NULL,
+		.tokens = {
+			(void *)&cmd_setbonding_lacp_dedicated_queues_set,
+			(void *)&cmd_setbonding_lacp_dedicated_queues_bonding,
+			(void *)&cmd_setbonding_lacp_dedicated_queues_lacp,
+			(void *)&cmd_setbonding_lacp_dedicated_queues_dedicated_queues,
+			(void *)&cmd_setbonding_lacp_dedicated_queues_port_id,
+			(void *)&cmd_setbonding_lacp_dedicated_queues_mode,
+			NULL
+		}
+};
+
+/* *** SET BALANCE XMIT POLICY *** */
+struct cmd_set_bonding_balance_xmit_policy_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t balance_xmit_policy;
+	portid_t port_id;
+	cmdline_fixed_string_t policy;
+};
+
+static void cmd_set_bonding_balance_xmit_policy_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bonding_balance_xmit_policy_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	uint8_t policy;
+
+	if (!strcmp(res->policy, "l2")) {
+		policy = BALANCE_XMIT_POLICY_LAYER2;
+	} else if (!strcmp(res->policy, "l23")) {
+		policy = BALANCE_XMIT_POLICY_LAYER23;
+	} else if (!strcmp(res->policy, "l34")) {
+		policy = BALANCE_XMIT_POLICY_LAYER34;
+	} else {
+		fprintf(stderr, "\t Invalid xmit policy selection");
+		return;
+	}
+
+	/* Set the bonding mode for the relevant port. */
+	if (rte_eth_bond_xmit_policy_set(port_id, policy) != 0) {
+		fprintf(stderr,
+			"\t Failed to set bonding balance xmit policy for port = %d.\n",
+			port_id);
+	}
+}
+
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		balance_xmit_policy, "balance_xmit_policy");
+static cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
+TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		policy, "l2#l23#l34");
+
+static cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
+		.f = cmd_set_bonding_balance_xmit_policy_parsed,
+		.help_str = "set bonding balance_xmit_policy <port_id> "
+			"l2|l23|l34: "
+			"Set the bonding balance_xmit_policy for port_id",
+		.data = NULL,
+		.tokens = {
+				(void *)&cmd_setbonding_balance_xmit_policy_set,
+				(void *)&cmd_setbonding_balance_xmit_policy_bonding,
+				(void *)&cmd_setbonding_balance_xmit_policy_balance_xmit_policy,
+				(void *)&cmd_setbonding_balance_xmit_policy_port,
+				(void *)&cmd_setbonding_balance_xmit_policy_policy,
+				NULL
+		}
+};
+
+/* *** SHOW IEEE802.3 BONDING INFORMATION *** */
+struct cmd_show_bonding_lacp_info_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t lacp;
+	cmdline_fixed_string_t info;
+	portid_t port_id;
+};
+
+static void port_param_show(struct port_params *params)
+{
+	char buf[RTE_ETHER_ADDR_FMT_SIZE];
+
+	printf("\t\tsystem priority: %u\n", params->system_priority);
+	rte_ether_format_addr(buf, RTE_ETHER_ADDR_FMT_SIZE, &params->system);
+	printf("\t\tsystem mac address: %s\n", buf);
+	printf("\t\tport key: %u\n", params->key);
+	printf("\t\tport priority: %u\n", params->port_priority);
+	printf("\t\tport number: %u\n", params->port_number);
+}
+
+static void lacp_slave_info_show(struct rte_eth_bond_8023ad_slave_info *info)
+{
+	char a_state[256] = { 0 };
+	char p_state[256] = { 0 };
+	int a_len = 0;
+	int p_len = 0;
+	uint32_t i;
+
+	static const char * const state[] = {
+		"ACTIVE",
+		"TIMEOUT",
+		"AGGREGATION",
+		"SYNCHRONIZATION",
+		"COLLECTING",
+		"DISTRIBUTING",
+		"DEFAULTED",
+		"EXPIRED"
+	};
+	static const char * const selection[] = {
+		"UNSELECTED",
+		"STANDBY",
+		"SELECTED"
+	};
+
+	for (i = 0; i < RTE_DIM(state); i++) {
+		if ((info->actor_state >> i) & 1)
+			a_len += snprintf(&a_state[a_len],
+						RTE_DIM(a_state) - a_len, "%s ",
+						state[i]);
+
+		if ((info->partner_state >> i) & 1)
+			p_len += snprintf(&p_state[p_len],
+						RTE_DIM(p_state) - p_len, "%s ",
+						state[i]);
+	}
+	printf("\tAggregator port id: %u\n", info->agg_port_id);
+	printf("\tselection: %s\n", selection[info->selected]);
+	printf("\tActor detail info:\n");
+	port_param_show(&info->actor);
+	printf("\t\tport state: %s\n", a_state);
+	printf("\tPartner detail info:\n");
+	port_param_show(&info->partner);
+	printf("\t\tport state: %s\n", p_state);
+	printf("\n");
+}
+
+static void lacp_conf_show(struct rte_eth_bond_8023ad_conf *conf)
+{
+	printf("\tfast period: %u ms\n", conf->fast_periodic_ms);
+	printf("\tslow period: %u ms\n", conf->slow_periodic_ms);
+	printf("\tshort timeout: %u ms\n", conf->short_timeout_ms);
+	printf("\tlong timeout: %u ms\n", conf->long_timeout_ms);
+	printf("\taggregate wait timeout: %u ms\n",
+			conf->aggregate_wait_timeout_ms);
+	printf("\ttx period: %u ms\n", conf->tx_period_ms);
+	printf("\trx marker period: %u ms\n", conf->rx_marker_period_ms);
+	printf("\tupdate timeout: %u ms\n", conf->update_timeout_ms);
+	switch (conf->agg_selection) {
+	case AGG_BANDWIDTH:
+		printf("\taggregation mode: bandwidth\n");
+		break;
+	case AGG_STABLE:
+		printf("\taggregation mode: stable\n");
+		break;
+	case AGG_COUNT:
+		printf("\taggregation mode: count\n");
+		break;
+	default:
+		printf("\taggregation mode: invalid\n");
+		break;
+	}
+
+	printf("\n");
+}
+
+static void cmd_show_bonding_lacp_info_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_show_bonding_lacp_info_result *res = parsed_result;
+	struct rte_eth_bond_8023ad_slave_info slave_info;
+	struct rte_eth_bond_8023ad_conf port_conf;
+	portid_t slaves[RTE_MAX_ETHPORTS];
+	portid_t port_id = res->port_id;
+	int num_active_slaves;
+	int bonding_mode;
+	int i;
+	int ret;
+
+	bonding_mode = rte_eth_bond_mode_get(port_id);
+	if (bonding_mode != BONDING_MODE_8023AD) {
+		fprintf(stderr, "\tBonding mode is not mode 4\n");
+		return;
+	}
+
+	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
+			RTE_MAX_ETHPORTS);
+	if (num_active_slaves < 0) {
+		fprintf(stderr, "\tFailed to get active slave list for port = %u\n",
+				port_id);
+		return;
+	}
+	if (num_active_slaves == 0)
+		fprintf(stderr, "\tIEEE802.3 port %u has no active slave\n",
+			port_id);
+
+	printf("\tIEEE802.3 port: %u\n", port_id);
+	ret = rte_eth_bond_8023ad_conf_get(port_id, &port_conf);
+	if (ret) {
+		fprintf(stderr, "\tGet bonded device %u info failed\n",
+			port_id);
+		return;
+	}
+	lacp_conf_show(&port_conf);
+
+	for (i = 0; i < num_active_slaves; i++) {
+		ret = rte_eth_bond_8023ad_slave_info(port_id, slaves[i],
+				&slave_info);
+		if (ret) {
+			fprintf(stderr, "\tGet slave device %u info failed\n",
+				slaves[i]);
+			return;
+		}
+		printf("\tSlave Port: %u\n", slaves[i]);
+		lacp_slave_info_show(&slave_info);
+	}
+}
+
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
+TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		show, "show");
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
+TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
+TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		bonding, "lacp");
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
+TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		info, "info");
+static cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
+TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
+		.f = cmd_show_bonding_lacp_info_parsed,
+		.help_str = "show bonding lacp info <port_id> : "
+			"Show bonding IEEE802.3 information for port_id",
+		.data = NULL,
+		.tokens = {
+			(void *)&cmd_show_bonding_lacp_info_show,
+			(void *)&cmd_show_bonding_lacp_info_bonding,
+			(void *)&cmd_show_bonding_lacp_info_lacp,
+			(void *)&cmd_show_bonding_lacp_info_info,
+			(void *)&cmd_show_bonding_lacp_info_port_id,
+			NULL
+		}
+};
+
+/* *** SHOW NIC BONDING CONFIGURATION *** */
+struct cmd_show_bonding_config_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t config;
+	portid_t port_id;
+};
+
+static void cmd_show_bonding_config_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_show_bonding_config_result *res = parsed_result;
+	int bonding_mode, agg_mode;
+	portid_t slaves[RTE_MAX_ETHPORTS];
+	int num_slaves, num_active_slaves;
+	int primary_id;
+	int i;
+	portid_t port_id = res->port_id;
+
+	/* Display the bonding mode.*/
+	bonding_mode = rte_eth_bond_mode_get(port_id);
+	if (bonding_mode < 0) {
+		fprintf(stderr, "\tFailed to get bonding mode for port = %d\n",
+			port_id);
+		return;
+	}
+	printf("\tBonding mode: %d\n", bonding_mode);
+
+	if (bonding_mode == BONDING_MODE_BALANCE ||
+		bonding_mode == BONDING_MODE_8023AD) {
+		int balance_xmit_policy;
+
+		balance_xmit_policy = rte_eth_bond_xmit_policy_get(port_id);
+		if (balance_xmit_policy < 0) {
+			fprintf(stderr,
+				"\tFailed to get balance xmit policy for port = %d\n",
+				port_id);
+			return;
+		}
+		printf("\tBalance Xmit Policy: ");
+
+		switch (balance_xmit_policy) {
+		case BALANCE_XMIT_POLICY_LAYER2:
+			printf("BALANCE_XMIT_POLICY_LAYER2");
+			break;
+		case BALANCE_XMIT_POLICY_LAYER23:
+			printf("BALANCE_XMIT_POLICY_LAYER23");
+			break;
+		case BALANCE_XMIT_POLICY_LAYER34:
+			printf("BALANCE_XMIT_POLICY_LAYER34");
+			break;
+		}
+		printf("\n");
+	}
+
+	if (bonding_mode == BONDING_MODE_8023AD) {
+		agg_mode = rte_eth_bond_8023ad_agg_selection_get(port_id);
+		printf("\tIEEE802.3AD Aggregator Mode: ");
+		switch (agg_mode) {
+		case AGG_BANDWIDTH:
+			printf("bandwidth");
+			break;
+		case AGG_STABLE:
+			printf("stable");
+			break;
+		case AGG_COUNT:
+			printf("count");
+			break;
+		}
+		printf("\n");
+	}
+
+	num_slaves = rte_eth_bond_slaves_get(port_id, slaves, RTE_MAX_ETHPORTS);
+
+	if (num_slaves < 0) {
+		fprintf(stderr, "\tFailed to get slave list for port = %d\n",
+			port_id);
+		return;
+	}
+	if (num_slaves > 0) {
+		printf("\tSlaves (%d): [", num_slaves);
+		for (i = 0; i < num_slaves - 1; i++)
+			printf("%d ", slaves[i]);
+
+		printf("%d]\n", slaves[num_slaves - 1]);
+	} else {
+		printf("\tSlaves: []\n");
+	}
+
+	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
+			RTE_MAX_ETHPORTS);
+
+	if (num_active_slaves < 0) {
+		fprintf(stderr,
+			"\tFailed to get active slave list for port = %d\n",
+			port_id);
+		return;
+	}
+	if (num_active_slaves > 0) {
+		printf("\tActive Slaves (%d): [", num_active_slaves);
+		for (i = 0; i < num_active_slaves - 1; i++)
+			printf("%d ", slaves[i]);
+
+		printf("%d]\n", slaves[num_active_slaves - 1]);
+
+	} else {
+		printf("\tActive Slaves: []\n");
+	}
+
+	primary_id = rte_eth_bond_primary_get(port_id);
+	if (primary_id < 0) {
+		fprintf(stderr, "\tFailed to get primary slave for port = %d\n",
+			port_id);
+		return;
+	}
+	printf("\tPrimary: [%d]\n", primary_id);
+}
+
+static cmdline_parse_token_string_t cmd_showbonding_config_show =
+TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
+		show, "show");
+static cmdline_parse_token_string_t cmd_showbonding_config_bonding =
+TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_showbonding_config_config =
+TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
+		config, "config");
+static cmdline_parse_token_num_t cmd_showbonding_config_port =
+TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_config_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_show_bonding_config = {
+		.f = cmd_show_bonding_config_parsed,
+		.help_str = "show bonding config <port_id>: "
+			"Show the bonding config for port_id",
+		.data = NULL,
+		.tokens = {
+				(void *)&cmd_showbonding_config_show,
+				(void *)&cmd_showbonding_config_bonding,
+				(void *)&cmd_showbonding_config_config,
+				(void *)&cmd_showbonding_config_port,
+				NULL
+		}
+};
+
+/* *** SET BONDING PRIMARY *** */
+struct cmd_set_bonding_primary_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t primary;
+	portid_t slave_id;
+	portid_t port_id;
+};
+
+static void cmd_set_bonding_primary_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bonding_primary_result *res = parsed_result;
+	portid_t master_port_id = res->port_id;
+	portid_t slave_port_id = res->slave_id;
+
+	/* Set the primary slave for a bonded device. */
+	if (rte_eth_bond_primary_set(master_port_id, slave_port_id) != 0) {
+		fprintf(stderr, "\t Failed to set primary slave for port = %d.\n",
+			master_port_id);
+		return;
+	}
+	init_port_config();
+}
+
+static cmdline_parse_token_string_t cmd_setbonding_primary_set =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_setbonding_primary_primary =
+TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
+		primary, "primary");
+static cmdline_parse_token_num_t cmd_setbonding_primary_slave =
+TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
+		slave_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_setbonding_primary_port =
+TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_set_bonding_primary = {
+		.f = cmd_set_bonding_primary_parsed,
+		.help_str = "set bonding primary <slave_id> <port_id>: "
+			"Set the primary slave for port_id",
+		.data = NULL,
+		.tokens = {
+				(void *)&cmd_setbonding_primary_set,
+				(void *)&cmd_setbonding_primary_bonding,
+				(void *)&cmd_setbonding_primary_primary,
+				(void *)&cmd_setbonding_primary_slave,
+				(void *)&cmd_setbonding_primary_port,
+				NULL
+		}
+};
+
+/* *** ADD SLAVE *** */
+struct cmd_add_bonding_slave_result {
+	cmdline_fixed_string_t add;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t slave;
+	portid_t slave_id;
+	portid_t port_id;
+};
+
+static void cmd_add_bonding_slave_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_add_bonding_slave_result *res = parsed_result;
+	portid_t master_port_id = res->port_id;
+	portid_t slave_port_id = res->slave_id;
+
+	/* add the slave for a bonded device. */
+	if (rte_eth_bond_slave_add(master_port_id, slave_port_id) != 0) {
+		fprintf(stderr,
+			"\t Failed to add slave %d to master port = %d.\n",
+			slave_port_id, master_port_id);
+		return;
+	}
+	init_port_config();
+	set_port_slave_flag(slave_port_id);
+}
+
+static cmdline_parse_token_string_t cmd_addbonding_slave_add =
+TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
+		add, "add");
+static cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
+TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_addbonding_slave_slave =
+TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
+		slave, "slave");
+static cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
+TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
+		slave_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_addbonding_slave_port =
+TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_add_bonding_slave = {
+		.f = cmd_add_bonding_slave_parsed,
+		.help_str = "add bonding slave <slave_id> <port_id>: "
+			"Add a slave device to a bonded device",
+		.data = NULL,
+		.tokens = {
+				(void *)&cmd_addbonding_slave_add,
+				(void *)&cmd_addbonding_slave_bonding,
+				(void *)&cmd_addbonding_slave_slave,
+				(void *)&cmd_addbonding_slave_slaveid,
+				(void *)&cmd_addbonding_slave_port,
+				NULL
+		}
+};
+
+/* *** REMOVE SLAVE *** */
+struct cmd_remove_bonding_slave_result {
+	cmdline_fixed_string_t remove;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t slave;
+	portid_t slave_id;
+	portid_t port_id;
+};
+
+static void cmd_remove_bonding_slave_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_remove_bonding_slave_result *res = parsed_result;
+	portid_t master_port_id = res->port_id;
+	portid_t slave_port_id = res->slave_id;
+
+	/* remove the slave from a bonded device. */
+	if (rte_eth_bond_slave_remove(master_port_id, slave_port_id) != 0) {
+		fprintf(stderr,
+			"\t Failed to remove slave %d from master port = %d.\n",
+			slave_port_id, master_port_id);
+		return;
+	}
+	init_port_config();
+	clear_port_slave_flag(slave_port_id);
+}
+
+static cmdline_parse_token_string_t cmd_removebonding_slave_remove =
+		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
+				remove, "remove");
+static cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
+		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
+				bonding, "bonding");
+static cmdline_parse_token_string_t cmd_removebonding_slave_slave =
+		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
+				slave, "slave");
+static cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
+		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
+				slave_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_removebonding_slave_port =
+		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
+				port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_remove_bonding_slave = {
+		.f = cmd_remove_bonding_slave_parsed,
+		.help_str = "remove bonding slave <slave_id> <port_id>: "
+			"Remove a slave device from a bonded device",
+		.data = NULL,
+		.tokens = {
+				(void *)&cmd_removebonding_slave_remove,
+				(void *)&cmd_removebonding_slave_bonding,
+				(void *)&cmd_removebonding_slave_slave,
+				(void *)&cmd_removebonding_slave_slaveid,
+				(void *)&cmd_removebonding_slave_port,
+				NULL
+		}
+};
+
+/* *** CREATE BONDED DEVICE *** */
+struct cmd_create_bonded_device_result {
+	cmdline_fixed_string_t create;
+	cmdline_fixed_string_t bonded;
+	cmdline_fixed_string_t device;
+	uint8_t mode;
+	uint8_t socket;
+};
+
+static int bond_dev_num;
+
+static void cmd_create_bonded_device_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_create_bonded_device_result *res = parsed_result;
+	char ethdev_name[RTE_ETH_NAME_MAX_LEN];
+	int port_id;
+	int ret;
+
+	if (test_done == 0) {
+		fprintf(stderr, "Please stop forwarding first\n");
+		return;
+	}
+
+	snprintf(ethdev_name, RTE_ETH_NAME_MAX_LEN, "net_bonding_testpmd_%d",
+			bond_dev_num++);
+
+	/* Create a new bonded device. */
+	port_id = rte_eth_bond_create(ethdev_name, res->mode, res->socket);
+	if (port_id < 0) {
+		fprintf(stderr, "\t Failed to create bonded device.\n");
+		return;
+	}
+	printf("Created new bonded device %s on (port %d).\n", ethdev_name,
+		port_id);
+
+	/* Update number of ports */
+	nb_ports = rte_eth_dev_count_avail();
+	reconfig(port_id, res->socket);
+	ret = rte_eth_promiscuous_enable(port_id);
+	if (ret != 0)
+		fprintf(stderr, "Failed to enable promiscuous mode for port %u: %s - ignore\n",
+			port_id, rte_strerror(-ret));
+
+	ports[port_id].need_setup = 0;
+	ports[port_id].port_status = RTE_PORT_STOPPED;
+}
+
+static cmdline_parse_token_string_t cmd_createbonded_device_create =
+		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
+				create, "create");
+static cmdline_parse_token_string_t cmd_createbonded_device_bonded =
+		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
+				bonded, "bonded");
+static cmdline_parse_token_string_t cmd_createbonded_device_device =
+		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
+				device, "device");
+static cmdline_parse_token_num_t cmd_createbonded_device_mode =
+		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
+				mode, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_createbonded_device_socket =
+		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
+				socket, RTE_UINT8);
+
+static cmdline_parse_inst_t cmd_create_bonded_device = {
+		.f = cmd_create_bonded_device_parsed,
+		.help_str = "create bonded device <mode> <socket>: "
+			"Create a new bonded device with specific bonding mode and socket",
+		.data = NULL,
+		.tokens = {
+				(void *)&cmd_createbonded_device_create,
+				(void *)&cmd_createbonded_device_bonded,
+				(void *)&cmd_createbonded_device_device,
+				(void *)&cmd_createbonded_device_mode,
+				(void *)&cmd_createbonded_device_socket,
+				NULL
+		}
+};
+
+/* *** SET MAC ADDRESS IN BONDED DEVICE *** */
+struct cmd_set_bond_mac_addr_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t mac_addr;
+	uint16_t port_num;
+	struct rte_ether_addr address;
+};
+
+static void cmd_set_bond_mac_addr_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bond_mac_addr_result *res = parsed_result;
+	int ret;
+
+	if (port_id_is_invalid(res->port_num, ENABLED_WARN))
+		return;
+
+	ret = rte_eth_bond_mac_address_set(res->port_num, &res->address);
+
+	/* check the return value and print it if is < 0 */
+	if (ret < 0)
+		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
+			strerror(-ret));
+}
+
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
+		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, set, "set");
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
+		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, bonding,
+				"bonding");
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
+		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, mac_addr,
+				"mac_addr");
+static cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
+		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mac_addr_result,
+				port_num, RTE_UINT16);
+static cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
+		TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_bond_mac_addr_result, address);
+
+static cmdline_parse_inst_t cmd_set_bond_mac_addr = {
+		.f = cmd_set_bond_mac_addr_parsed,
+		.data = NULL,
+		.help_str = "set bonding mac_addr <port_id> <mac_addr>",
+		.tokens = {
+				(void *)&cmd_set_bond_mac_addr_set,
+				(void *)&cmd_set_bond_mac_addr_bonding,
+				(void *)&cmd_set_bond_mac_addr_mac,
+				(void *)&cmd_set_bond_mac_addr_portnum,
+				(void *)&cmd_set_bond_mac_addr_addr,
+				NULL
+		}
+};
+
+/* *** SET LINK STATUS MONITORING POLLING PERIOD ON BONDED DEVICE *** */
+struct cmd_set_bond_mon_period_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t mon_period;
+	uint16_t port_num;
+	uint32_t period_ms;
+};
+
+static void cmd_set_bond_mon_period_parsed(void *parsed_result,
+		__rte_unused  struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bond_mon_period_result *res = parsed_result;
+	int ret;
+
+	ret = rte_eth_bond_link_monitoring_set(res->port_num, res->period_ms);
+
+	/* check the return value and print it if is < 0 */
+	if (ret < 0)
+		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
+			strerror(-ret));
+}
+
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
+		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
+				set, "set");
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
+		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
+				bonding, "bonding");
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
+		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
+				mon_period,	"mon_period");
+static cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
+		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
+				port_num, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
+		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
+				period_ms, RTE_UINT32);
+
+static cmdline_parse_inst_t cmd_set_bond_mon_period = {
+		.f = cmd_set_bond_mon_period_parsed,
+		.data = NULL,
+		.help_str = "set bonding mon_period <port_id> <period_ms>",
+		.tokens = {
+				(void *)&cmd_set_bond_mon_period_set,
+				(void *)&cmd_set_bond_mon_period_bonding,
+				(void *)&cmd_set_bond_mon_period_mon_period,
+				(void *)&cmd_set_bond_mon_period_portnum,
+				(void *)&cmd_set_bond_mon_period_period_ms,
+				NULL
+		}
+};
+
+struct cmd_set_bonding_agg_mode_policy_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t agg_mode;
+	uint16_t port_num;
+	cmdline_fixed_string_t policy;
+};
+
+static void
+cmd_set_bonding_agg_mode(void *parsed_result,
+		__rte_unused struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bonding_agg_mode_policy_result *res = parsed_result;
+	uint8_t policy = AGG_BANDWIDTH;
+
+	if (!strcmp(res->policy, "bandwidth"))
+		policy = AGG_BANDWIDTH;
+	else if (!strcmp(res->policy, "stable"))
+		policy = AGG_STABLE;
+	else if (!strcmp(res->policy, "count"))
+		policy = AGG_COUNT;
+
+	rte_eth_bond_8023ad_agg_selection_set(res->port_num, policy);
+}
+
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+				set, "set");
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+				bonding, "bonding");
+
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+				agg_mode, "agg_mode");
+
+static cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+				port_num, RTE_UINT16);
+
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		policy, "stable#bandwidth#count");
+
+static cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
+	.f = cmd_set_bonding_agg_mode,
+	.data = NULL,
+	.help_str = "set bonding mode IEEE802.3AD aggregator policy <port_id> <agg_name>",
+	.tokens = {
+			(void *)&cmd_set_bonding_agg_mode_set,
+			(void *)&cmd_set_bonding_agg_mode_bonding,
+			(void *)&cmd_set_bonding_agg_mode_agg_mode,
+			(void *)&cmd_set_bonding_agg_mode_portnum,
+			(void *)&cmd_set_bonding_agg_mode_policy_string,
+			NULL
+		}
+};
+
+static struct testpmd_cmdline_parser driver_parser = {
+	.ctx = (cmdline_parse_ctx_t[]) {
+		(cmdline_parse_inst_t *)&cmd_set_bonding_mode,
+		(cmdline_parse_inst_t *)&cmd_show_bonding_config,
+		(cmdline_parse_inst_t *)&cmd_show_bonding_lacp_info,
+		(cmdline_parse_inst_t *)&cmd_set_bonding_primary,
+		(cmdline_parse_inst_t *)&cmd_add_bonding_slave,
+		(cmdline_parse_inst_t *)&cmd_remove_bonding_slave,
+		(cmdline_parse_inst_t *)&cmd_create_bonded_device,
+		(cmdline_parse_inst_t *)&cmd_set_bond_mac_addr,
+		(cmdline_parse_inst_t *)&cmd_set_balance_xmit_policy,
+		(cmdline_parse_inst_t *)&cmd_set_bond_mon_period,
+		(cmdline_parse_inst_t *)&cmd_set_lacp_dedicated_queues,
+		(cmdline_parse_inst_t *)&cmd_set_bonding_agg_mode_policy,
+		NULL
+	},
+	.help = {
+		"set bonding mode (value) (port_id)\n"
+		"	Set the bonding mode on a bonded device.\n",
+
+		"show bonding config (port_id)\n"
+		"	Show the bonding config for port_id.\n",
+
+		"show bonding lacp info (port_id)\n"
+		"	Show the bonding lacp information for port_id.\n",
+
+		"set bonding primary (slave_id) (port_id)\n"
+		"	Set the primary slave for a bonded device.\n",
+
+		"add bonding slave (slave_id) (port_id)\n"
+		"	Add a slave device to a bonded device.\n",
+
+		"remove bonding slave (slave_id) (port_id)\n"
+		"	Remove a slave device from a bonded device.\n",
+
+		"create bonded device (mode) (socket)\n"
+		"	Create a new bonded device with specific bonding mode and socket.\n",
+
+		"set bonding mac_addr (port_id) (address)\n"
+		"	Set the MAC address of a bonded device.\n",
+
+		"set bonding balance_xmit_policy (port_id) (l2|l23|l34)\n"
+		"	Set the transmit balance policy for bonded device running in balance mode.\n",
+
+		"set bonding mon_period (port_id) (value)\n"
+		"	Set the bonding link status monitoring polling period in ms.\n",
+
+		"set bonding lacp dedicated_queues <port_id> (enable|disable)\n"
+		"	Enable/disable dedicated queues for LACP control traffic.\n",
+
+		"set bonding mode IEEE802.3AD aggregator policy (port_id) (agg_name)\n"
+		"	Set Aggregation mode for IEEE802.3AD (mode 4)\n",
+
+		NULL
+	},
+};
+
+RTE_INIT(bonding_testpmd)
+{
+	testpmd_add_commands(&driver_parser);
+}
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [RFC PATCH v2 4/5] net/i40e: move testpmd commands
  2022-05-18 19:46 ` [RFC PATCH v2 0/5] Split driver specific commands out of testpmd David Marchand
                     ` (2 preceding siblings ...)
  2022-05-18 19:46   ` [RFC PATCH v2 3/5] net/bonding: move testpmd commands David Marchand
@ 2022-05-18 19:46   ` David Marchand
  2022-05-18 19:46   ` [RFC PATCH v2 5/5] net/ixgbe: " David Marchand
  2022-05-20  7:04   ` [RFC PATCH v2 0/5] Split driver specific commands out of testpmd Andrew Rybchenko
  5 siblings, 0 replies; 65+ messages in thread
From: David Marchand @ 2022-05-18 19:46 UTC (permalink / raw)
  To: dev; +Cc: thomas, Xiaoyun Li, Aman Singh, Yuying Zhang, Beilei Xing

Move related specific testpmd commands into this driver directory.
While at it, fix checkpatch warnings.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since RFC v1:
- moved more i40e commands,
- fixed checkpatch warnings,

---
 app/test-pmd/cmdline.c          | 5422 ++++++++-----------------------
 app/test-pmd/config.c           |   43 -
 app/test-pmd/testpmd.h          |    2 -
 drivers/net/i40e/i40e_testpmd.c | 2718 ++++++++++++++++
 drivers/net/i40e/meson.build    |    2 +
 5 files changed, 4075 insertions(+), 4112 deletions(-)
 create mode 100644 drivers/net/i40e/i40e_testpmd.c

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 58bdf206d7..a009b2ec47 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -192,21 +192,12 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"read txd (port_id) (queue_id) (txd_id)\n"
 			"    Display a TX descriptor of a port TX queue.\n\n"
 
-			"ddp get list (port_id)\n"
-			"    Get ddp profile info list\n\n"
-
-			"ddp get info (profile_path)\n"
-			"    Get ddp profile information.\n\n"
-
 			"show vf stats (port_id) (vf_id)\n"
 			"    Display a VF's statistics.\n\n"
 
 			"clear vf stats (port_id) (vf_id)\n"
 			"    Reset a VF's statistics.\n\n"
 
-			"show port (port_id) pctype mapping\n"
-			"    Get flow ptype to pctype mapping on a port\n\n"
-
 			"show port meter stats (port_id) (meter_id) (clear)\n"
 			"    Get meter stats on a port\n\n"
 
@@ -362,9 +353,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)\n"
 			"    Configure MACsec secure association (SA).\n\n"
 
-			"set vf broadcast (port_id) (vf_id) (on|off)\n"
-			"    Set VF broadcast for a VF from the PF.\n\n"
-
 			"vlan set stripq (on|off) (port_id,queue_id)\n"
 			"    Set the VLAN strip for a queue on a port.\n\n"
 
@@ -377,21 +365,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set vf vlan antispoof (port_id) (vf_id) (on|off)\n"
 			"    Set VLAN antispoof for a VF from the PF.\n\n"
 
-			"set vf vlan tag (port_id) (vf_id) (on|off)\n"
-			"    Set VLAN tag for a VF from the PF.\n\n"
-
-			"set vf tx max-bandwidth (port_id) (vf_id) (bandwidth)\n"
-			"    Set a VF's max bandwidth(Mbps).\n\n"
-
-			"set vf tc tx min-bandwidth (port_id) (vf_id) (bw1, bw2, ...)\n"
-			"    Set all TCs' min bandwidth(%%) on a VF.\n\n"
-
-			"set vf tc tx max-bandwidth (port_id) (vf_id) (tc_no) (bandwidth)\n"
-			"    Set a TC's max bandwidth(Mbps) on a VF.\n\n"
-
-			"set tx strict-link-priority (port_id) (tc_bitmap)\n"
-			"    Set some TCs' strict link priority mode on a physical port.\n\n"
-
 			"set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\n"
 			"    Set all TCs' min bandwidth(%%) for all PF and VFs.\n\n"
 
@@ -520,12 +493,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set allmulti (port_id|all) (on|off)\n"
 			"    Set the allmulti mode on port_id, or all.\n\n"
 
-			"set vf promisc (port_id) (vf_id) (on|off)\n"
-			"    Set unicast promiscuous mode for a VF from the PF.\n\n"
-
-			"set vf allmulti (port_id) (vf_id) (on|off)\n"
-			"    Set multicast promiscuous mode for a VF from the PF.\n\n"
-
 			"set flow_ctrl rx (on|off) tx (on|off) (high_water)"
 			" (low_water) (pause_time) (send_xon) mac_ctrl_frame_fwd"
 			" (on|off) autoneg (on|off) (port_id)\n"
@@ -616,42 +583,9 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set link-down port (port_id)\n"
 			"	Set link down for a port.\n\n"
 
-			"ddp add (port_id) (profile_path[,backup_profile_path])\n"
-			"    Load a profile package on a port\n\n"
-
-			"ddp del (port_id) (backup_profile_path)\n"
-			"    Delete a profile package from a port\n\n"
-
-			"ptype mapping get (port_id) (valid_only)\n"
-			"    Get ptype mapping on a port\n\n"
-
-			"ptype mapping replace (port_id) (target) (mask) (pky_type)\n"
-			"    Replace target with the pkt_type in ptype mapping\n\n"
-
-			"ptype mapping reset (port_id)\n"
-			"    Reset ptype mapping on a port\n\n"
-
-			"ptype mapping update (port_id) (hw_ptype) (sw_ptype)\n"
-			"    Update a ptype mapping item on a port\n\n"
-
 			"set port (port_id) ptype_mask (ptype_mask)\n"
 			"    set packet types classification for a specific port\n\n"
 
-			"set port (port_id) queue-region region_id (value) "
-			"queue_start_index (value) queue_num (value)\n"
-			"    Set a queue region on a port\n\n"
-
-			"set port (port_id) queue-region region_id (value) "
-			"flowtype (value)\n"
-			"    Set a flowtype region index on a port\n\n"
-
-			"set port (port_id) queue-region UP (value) region_id (value)\n"
-			"    Set the mapping of User Priority to "
-			"queue region on a port\n\n"
-
-			"set port (port_id) queue-region flush (on|off)\n"
-			"    flush all queue region related configuration\n\n"
-
 			"show port meter cap (port_id)\n"
 			"    Show port meter capability information\n\n"
 
@@ -702,9 +636,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set port meter stats mask (port_id) (mtr_id) (stats_mask)\n"
 			"    meter update stats\n\n"
 
-			"show port (port_id) queue-region\n"
-			"    show all queue region related configuration info\n\n"
-
 			"set port (port_id) fec_mode auto|off|rs|baser\n"
 			"    set fec mode for a specific port\n\n"
 
@@ -801,22 +732,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"port (port_id) (rxq|txq) (queue_id) setup\n"
 			"    Setup a rx/tx queue of port X.\n\n"
 
-			"port config (port_id) pctype mapping reset\n"
-			"    Reset flow type to pctype mapping on a port\n\n"
-
-			"port config (port_id) pctype mapping update"
-			" (pctype_id_0[,pctype_id_1]*) (flow_type_id)\n"
-			"    Update a flow type to pctype mapping item on a port\n\n"
-
-			"port config (port_id) pctype (pctype_id) hash_inset|"
-			"fdir_inset|fdir_flx_inset get|set|clear field\n"
-			" (field_idx)\n"
-			"    Configure RSS|FDIR|FDIR_FLX input set for some pctype\n\n"
-
-			"port config (port_id) pctype (pctype_id) hash_inset|"
-			"fdir_inset|fdir_flx_inset clear all"
-			"    Clear RSS|FDIR|FDIR_FLX input set completely for some pctype\n\n"
-
 			"port config (port_id) udp_tunnel_port add|rm vxlan|geneve|ecpri (udp_port)\n\n"
 			"    Add/remove UDP tunnel port for tunneling offload\n\n"
 
@@ -912,13 +827,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"filters:\n"
 			"--------\n\n"
 
-#ifdef RTE_NET_I40E
-			"flow_director_filter (port_id) mode raw (add|del|update)"
-			" flow (flow_id) (drop|fwd) queue (queue_id)"
-			" fd_id (fd_id_value) packet (packet file name)\n"
-			"    Add/Del a raw type flow director filter.\n\n"
-#endif
-
 			"flow_director_mask (port_id) mode IP vlan (vlan_value)"
 			" src_mask (ipv4_src) (ipv6_src) (src_port)"
 			" dst_mask (ipv4_dst) (ipv6_dst) (dst_port)\n"
@@ -9090,450 +8998,6 @@ static cmdline_parse_inst_t cmd_dump_one = {
 	},
 };
 
-/* *** queue region set *** */
-struct cmd_queue_region_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t region;
-	uint8_t  region_id;
-	cmdline_fixed_string_t queue_start_index;
-	uint8_t  queue_id;
-	cmdline_fixed_string_t queue_num;
-	uint8_t  queue_num_value;
-};
-
-static void
-cmd_queue_region_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_queue_region_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_SET;
-	region_conf.region_id = res->region_id;
-	region_conf.queue_num = res->queue_num_value;
-	region_conf.queue_start_index = res->queue_id;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-				op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "queue region config error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-static cmdline_parse_token_string_t cmd_queue_region_set =
-TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-		set, "set");
-static cmdline_parse_token_string_t cmd_queue_region_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result, port, "port");
-static cmdline_parse_token_num_t cmd_queue_region_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_queue_region_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				 cmd, "queue-region");
-static cmdline_parse_token_string_t cmd_queue_region_id =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				region, "region_id");
-static cmdline_parse_token_num_t cmd_queue_region_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				region_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				queue_start_index, "queue_start_index");
-static cmdline_parse_token_num_t cmd_queue_region_queue_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				queue_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_queue_region_queue_num =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				queue_num, "queue_num");
-static cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				queue_num_value, RTE_UINT8);
-
-static cmdline_parse_inst_t cmd_queue_region = {
-	.f = cmd_queue_region_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region region_id <value> "
-		"queue_start_index <value> queue_num <value>: Set a queue region",
-	.tokens = {
-		(void *)&cmd_queue_region_set,
-		(void *)&cmd_queue_region_port,
-		(void *)&cmd_queue_region_port_id,
-		(void *)&cmd_queue_region_cmd,
-		(void *)&cmd_queue_region_id,
-		(void *)&cmd_queue_region_index,
-		(void *)&cmd_queue_region_queue_start_index,
-		(void *)&cmd_queue_region_queue_id,
-		(void *)&cmd_queue_region_queue_num,
-		(void *)&cmd_queue_region_queue_num_value,
-		NULL,
-	},
-};
-
-/* *** queue region and flowtype set *** */
-struct cmd_region_flowtype_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t region;
-	uint8_t  region_id;
-	cmdline_fixed_string_t flowtype;
-	uint8_t  flowtype_id;
-};
-
-static void
-cmd_region_flowtype_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_region_flowtype_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_FLOWTYPE_SET;
-	region_conf.region_id = res->region_id;
-	region_conf.hw_flowtype = res->flowtype_id;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-			op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "region flowtype config error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-static cmdline_parse_token_string_t cmd_region_flowtype_set =
-TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				set, "set");
-static cmdline_parse_token_string_t cmd_region_flowtype_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				port, "port");
-static cmdline_parse_token_num_t cmd_region_flowtype_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
-				port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_region_flowtype_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				cmd, "queue-region");
-static cmdline_parse_token_string_t cmd_region_flowtype_index =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				region, "region_id");
-static cmdline_parse_token_num_t cmd_region_flowtype_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
-				region_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				flowtype, "flowtype");
-static cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
-				flowtype_id, RTE_UINT8);
-static cmdline_parse_inst_t cmd_region_flowtype = {
-	.f = cmd_region_flowtype_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region region_id <value> "
-		"flowtype <value>: Set a flowtype region index",
-	.tokens = {
-		(void *)&cmd_region_flowtype_set,
-		(void *)&cmd_region_flowtype_port,
-		(void *)&cmd_region_flowtype_port_index,
-		(void *)&cmd_region_flowtype_cmd,
-		(void *)&cmd_region_flowtype_index,
-		(void *)&cmd_region_flowtype_id,
-		(void *)&cmd_region_flowtype_flow_index,
-		(void *)&cmd_region_flowtype_flow_id,
-		NULL,
-	},
-};
-
-/* *** User Priority (UP) to queue region (region_id) set *** */
-struct cmd_user_priority_region_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t user_priority;
-	uint8_t  user_priority_id;
-	cmdline_fixed_string_t region;
-	uint8_t  region_id;
-};
-
-static void
-cmd_user_priority_region_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_user_priority_region_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_USER_PRIORITY_SET;
-	region_conf.user_priority = res->user_priority_id;
-	region_conf.region_id = res->region_id;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-				op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "user_priority region config error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-static cmdline_parse_token_string_t cmd_user_priority_region_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				set, "set");
-static cmdline_parse_token_string_t cmd_user_priority_region_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				port, "port");
-static cmdline_parse_token_num_t cmd_user_priority_region_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
-				port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_user_priority_region_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				cmd, "queue-region");
-static cmdline_parse_token_string_t cmd_user_priority_region_UP =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				user_priority, "UP");
-static cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
-				user_priority_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_user_priority_region_region =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				region, "region_id");
-static cmdline_parse_token_num_t cmd_user_priority_region_region_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
-				region_id, RTE_UINT8);
-
-static cmdline_parse_inst_t cmd_user_priority_region = {
-	.f = cmd_user_priority_region_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region UP <value> "
-		"region_id <value>: Set the mapping of User Priority (UP) "
-		"to queue region (region_id) ",
-	.tokens = {
-		(void *)&cmd_user_priority_region_set,
-		(void *)&cmd_user_priority_region_port,
-		(void *)&cmd_user_priority_region_port_index,
-		(void *)&cmd_user_priority_region_cmd,
-		(void *)&cmd_user_priority_region_UP,
-		(void *)&cmd_user_priority_region_UP_id,
-		(void *)&cmd_user_priority_region_region,
-		(void *)&cmd_user_priority_region_region_id,
-		NULL,
-	},
-};
-
-/* *** flush all queue region related configuration *** */
-struct cmd_flush_queue_region_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t flush;
-	cmdline_fixed_string_t what;
-};
-
-static void
-cmd_flush_queue_region_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_flush_queue_region_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-
-	if (strcmp(res->what, "on") == 0)
-		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_ON;
-	else
-		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_OFF;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-				op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "queue region config flush error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-static cmdline_parse_token_string_t cmd_flush_queue_region_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				set, "set");
-static cmdline_parse_token_string_t cmd_flush_queue_region_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				port, "port");
-static cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_flush_queue_region_result,
-				port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				cmd, "queue-region");
-static cmdline_parse_token_string_t cmd_flush_queue_region_flush =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				flush, "flush");
-static cmdline_parse_token_string_t cmd_flush_queue_region_what =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				what, "on#off");
-
-static cmdline_parse_inst_t cmd_flush_queue_region = {
-	.f = cmd_flush_queue_region_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region flush on|off"
-		": flush all queue region related configuration",
-	.tokens = {
-		(void *)&cmd_flush_queue_region_set,
-		(void *)&cmd_flush_queue_region_port,
-		(void *)&cmd_flush_queue_region_port_index,
-		(void *)&cmd_flush_queue_region_cmd,
-		(void *)&cmd_flush_queue_region_flush,
-		(void *)&cmd_flush_queue_region_what,
-		NULL,
-	},
-};
-
-/* *** get all queue region related configuration info *** */
-struct cmd_show_queue_region_info {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-};
-
-static void
-cmd_show_queue_region_info_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_show_queue_region_info *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_regions rte_pmd_regions;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&rte_pmd_regions, 0, sizeof(rte_pmd_regions));
-
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_INFO_GET;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-					op_type, &rte_pmd_regions);
-
-	port_queue_region_info_display(res->port_id, &rte_pmd_regions);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "queue region config info show error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-static cmdline_parse_token_string_t cmd_show_queue_region_info_get =
-TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
-				show, "show");
-static cmdline_parse_token_string_t cmd_show_queue_region_info_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
-				port, "port");
-static cmdline_parse_token_num_t cmd_show_queue_region_info_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_show_queue_region_info,
-				port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
-				cmd, "queue-region");
-
-static cmdline_parse_inst_t cmd_show_queue_region_info_all = {
-	.f = cmd_show_queue_region_info_parsed,
-	.data = NULL,
-	.help_str = "show port <port_id> queue-region"
-		": show all queue region related configuration info",
-	.tokens = {
-		(void *)&cmd_show_queue_region_info_get,
-		(void *)&cmd_show_queue_region_info_port,
-		(void *)&cmd_show_queue_region_info_port_index,
-		(void *)&cmd_show_queue_region_info_cmd,
-		NULL,
-	},
-};
-
 /* *** Filters Control *** */
 
 #define IPV4_ADDR_TO_UINT(ip_addr, ip) \
@@ -9558,197 +9022,9 @@ do { \
 	} \
 } while (0)
 
-#ifdef RTE_NET_I40E
-
-static uint16_t
-str2flowtype(char *string)
-{
-	uint8_t i = 0;
-	static const struct {
-		char str[32];
-		uint16_t type;
-	} flowtype_str[] = {
-		{"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},
-		{"ipv6-ex", RTE_ETH_FLOW_IPV6_EX},
-		{"ipv6-tcp-ex", RTE_ETH_FLOW_IPV6_TCP_EX},
-		{"ipv6-udp-ex", RTE_ETH_FLOW_IPV6_UDP_EX},
-		{"gtpu", RTE_ETH_FLOW_GTPU},
-	};
-
-	for (i = 0; i < RTE_DIM(flowtype_str); i++) {
-		if (!strcmp(flowtype_str[i].str, string))
-			return flowtype_str[i].type;
-	}
-
-	if (isdigit(string[0]) && atoi(string) > 0 && atoi(string) < 64)
-		return (uint16_t)atoi(string);
-
-	return RTE_ETH_FLOW_UNKNOWN;
-}
-
-/* *** deal with flow director filter *** */
-struct cmd_flow_director_result {
-	cmdline_fixed_string_t flow_director_filter;
-	portid_t port_id;
-	cmdline_fixed_string_t mode;
-	cmdline_fixed_string_t mode_value;
-	cmdline_fixed_string_t ops;
-	cmdline_fixed_string_t flow;
-	cmdline_fixed_string_t flow_type;
-	cmdline_fixed_string_t drop;
-	cmdline_fixed_string_t queue;
-	uint16_t  queue_id;
-	cmdline_fixed_string_t fd_id;
-	uint32_t  fd_id_value;
-	cmdline_fixed_string_t packet;
-	char filepath[];
-};
-
-static void
-cmd_flow_director_filter_parsed(void *parsed_result,
-			  __rte_unused struct cmdline *cl,
-			  __rte_unused void *data)
-{
-	struct cmd_flow_director_result *res = parsed_result;
-	int ret = 0;
-	struct rte_pmd_i40e_flow_type_mapping
-			mapping[RTE_PMD_I40E_FLOW_TYPE_MAX];
-	struct rte_pmd_i40e_pkt_template_conf conf;
-	uint16_t flow_type = str2flowtype(res->flow_type);
-	uint16_t i, port = res->port_id;
-	uint8_t add;
-
-	memset(&conf, 0, sizeof(conf));
-
-	if (flow_type == RTE_ETH_FLOW_UNKNOWN) {
-		fprintf(stderr, "Invalid flow type specified.\n");
-		return;
-	}
-	ret = rte_pmd_i40e_flow_type_mapping_get(res->port_id,
-						 mapping);
-	if (ret)
-		return;
-	if (mapping[flow_type].pctype == 0ULL) {
-		fprintf(stderr, "Invalid flow type specified.\n");
-		return;
-	}
-	for (i = 0; i < RTE_PMD_I40E_PCTYPE_MAX; i++) {
-		if (mapping[flow_type].pctype & (1ULL << i)) {
-			conf.input.pctype = i;
-			break;
-		}
-	}
-
-	conf.input.packet = open_file(res->filepath,
-				&conf.input.length);
-	if (!conf.input.packet)
-		return;
-	if (!strcmp(res->drop, "drop"))
-		conf.action.behavior =
-			RTE_PMD_I40E_PKT_TEMPLATE_REJECT;
-	else
-		conf.action.behavior =
-			RTE_PMD_I40E_PKT_TEMPLATE_ACCEPT;
-	conf.action.report_status =
-			RTE_PMD_I40E_PKT_TEMPLATE_REPORT_ID;
-	conf.action.rx_queue = res->queue_id;
-	conf.soft_id = res->fd_id_value;
-	add  = strcmp(res->ops, "del") ? 1 : 0;
-	ret = rte_pmd_i40e_flow_add_del_packet_template(port,
-							&conf,
-							add);
-	if (ret < 0)
-		fprintf(stderr, "flow director config error: (%s)\n",
-			strerror(-ret));
-	close_file(conf.input.packet);
-}
-
-static cmdline_parse_token_string_t cmd_flow_director_filter =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 flow_director_filter, "flow_director_filter");
-static cmdline_parse_token_num_t cmd_flow_director_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
-			      port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_flow_director_ops =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 ops, "add#del#update");
-static cmdline_parse_token_string_t cmd_flow_director_flow =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 flow, "flow");
-static cmdline_parse_token_string_t cmd_flow_director_flow_type =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-		flow_type, NULL);
-static cmdline_parse_token_string_t cmd_flow_director_drop =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 drop, "drop#fwd");
-static cmdline_parse_token_string_t cmd_flow_director_queue =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 queue, "queue");
-static cmdline_parse_token_num_t cmd_flow_director_queue_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
-			      queue_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_flow_director_fd_id =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 fd_id, "fd_id");
-static cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
-			      fd_id_value, RTE_UINT32);
-
-static cmdline_parse_token_string_t cmd_flow_director_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 mode, "mode");
-static cmdline_parse_token_string_t cmd_flow_director_mode_raw =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 mode_value, "raw");
-static cmdline_parse_token_string_t cmd_flow_director_packet =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 packet, "packet");
-static cmdline_parse_token_string_t cmd_flow_director_filepath =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 filepath, NULL);
-
-static cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
-	.f = cmd_flow_director_filter_parsed,
-	.data = NULL,
-	.help_str = "flow_director_filter ... : Add or delete a raw flow "
-		"director entry on NIC",
-	.tokens = {
-		(void *)&cmd_flow_director_filter,
-		(void *)&cmd_flow_director_port_id,
-		(void *)&cmd_flow_director_mode,
-		(void *)&cmd_flow_director_mode_raw,
-		(void *)&cmd_flow_director_ops,
-		(void *)&cmd_flow_director_flow,
-		(void *)&cmd_flow_director_flow_type,
-		(void *)&cmd_flow_director_drop,
-		(void *)&cmd_flow_director_queue,
-		(void *)&cmd_flow_director_queue_id,
-		(void *)&cmd_flow_director_fd_id,
-		(void *)&cmd_flow_director_fd_id_value,
-		(void *)&cmd_flow_director_packet,
-		(void *)&cmd_flow_director_filepath,
-		NULL,
-	},
-};
-
-#endif /* RTE_NET_I40E */
-
-/* *** deal with flow director mask *** */
-struct cmd_flow_director_mask_result {
-	cmdline_fixed_string_t flow_director_mask;
+/* *** deal with flow director mask *** */
+struct cmd_flow_director_mask_result {
+	cmdline_fixed_string_t flow_director_mask;
 	portid_t port_id;
 	cmdline_fixed_string_t mode;
 	cmdline_fixed_string_t mode_value;
@@ -11355,249 +10631,121 @@ static cmdline_parse_inst_t cmd_set_macsec_sa = {
 	},
 };
 
-/* VF unicast promiscuous mode configuration */
-
-/* Common result structure for VF unicast promiscuous mode */
-struct cmd_vf_promisc_result {
+/* Common definition of VF and TC TX bandwidth configuration */
+struct cmd_vf_tc_bw_result {
 	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t promisc;
+	cmdline_fixed_string_t tc;
+	cmdline_fixed_string_t tx;
+	cmdline_fixed_string_t min_bw;
 	portid_t port_id;
-	uint32_t vf_id;
-	cmdline_fixed_string_t on_off;
+	cmdline_fixed_string_t bw_list;
 };
 
-/* Common CLI fields for VF unicast promiscuous mode enable disable */
-static cmdline_parse_token_string_t cmd_vf_promisc_set =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_promisc_result,
+		(struct cmd_vf_tc_bw_result,
 		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_promisc_vf =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_promisc_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_vf_promisc_promisc =
+		(struct cmd_vf_tc_bw_result,
+		 tc, "tc");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 tx, "tx");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_promisc_result,
-		 promisc, "promisc");
-static cmdline_parse_token_num_t cmd_vf_promisc_port_id =
+		(struct cmd_vf_tc_bw_result,
+		 min_bw, "min-bandwidth");
+static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
 	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_promisc_result,
+		(struct cmd_vf_tc_bw_result,
 		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_promisc_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_promisc_result,
-		 vf_id, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_vf_promisc_on_off =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_promisc_result,
-		 on_off, "on#off");
+		(struct cmd_vf_tc_bw_result,
+		 bw_list, NULL);
 
-static void
-cmd_set_vf_promisc_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
+static int
+vf_tc_min_bw_parse_bw_list(uint8_t *bw_list,
+			   uint8_t *tc_num,
+			   char *str)
 {
-	struct cmd_vf_promisc_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_unicast_promisc(res->port_id,
-						  res->vf_id, is_on);
-#endif
+	uint32_t size;
+	const char *p, *p0 = str;
+	char s[256];
+	char *end;
+	char *str_fld[16];
+	uint16_t i;
+	int ret;
 
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	p = strchr(p0, '(');
+	if (p == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
 	}
-}
-
-static cmdline_parse_inst_t cmd_set_vf_promisc = {
-	.f = cmd_set_vf_promisc_parsed,
-	.data = NULL,
-	.help_str = "set vf promisc <port_id> <vf_id> on|off: "
-		"Set unicast promiscuous mode for a VF from the PF",
-	.tokens = {
-		(void *)&cmd_vf_promisc_set,
-		(void *)&cmd_vf_promisc_vf,
-		(void *)&cmd_vf_promisc_promisc,
-		(void *)&cmd_vf_promisc_port_id,
-		(void *)&cmd_vf_promisc_vf_id,
-		(void *)&cmd_vf_promisc_on_off,
-		NULL,
-	},
-};
-
-/* VF multicast promiscuous mode configuration */
-
-/* Common result structure for VF multicast promiscuous mode */
-struct cmd_vf_allmulti_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t allmulti;
-	portid_t port_id;
-	uint32_t vf_id;
-	cmdline_fixed_string_t on_off;
-};
+	p++;
+	p0 = strchr(p, ')');
+	if (p0 == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	size = p0 - p;
+	if (size >= sizeof(s)) {
+		fprintf(stderr,
+			"The string size exceeds the internal buffer size\n");
+		return -1;
+	}
+	snprintf(s, sizeof(s), "%.*s", size, p);
+	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
+	if (ret <= 0) {
+		fprintf(stderr, "Failed to get the bandwidth list.\n");
+		return -1;
+	}
+	*tc_num = ret;
+	for (i = 0; i < ret; i++)
+		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
 
-/* Common CLI fields for VF multicast promiscuous mode enable disable */
-static cmdline_parse_token_string_t cmd_vf_allmulti_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_allmulti_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_vf_allmulti_allmulti =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 allmulti, "allmulti");
-static cmdline_parse_token_num_t cmd_vf_allmulti_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_allmulti_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 vf_id, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_vf_allmulti_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 on_off, "on#off");
+	return 0;
+}
 
 static void
-cmd_set_vf_allmulti_parsed(
+cmd_tc_min_bw_parsed(
 	void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_vf_allmulti_result *res = parsed_result;
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	struct rte_port *port;
+	uint8_t tc_num;
+	uint8_t bw[16];
 	int ret = -ENOTSUP;
 
-	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
 	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
 		return;
 
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_multicast_promisc(res->port_id,
-						    res->vf_id, is_on);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	port = &ports[res->port_id];
+	/** Check if the port is not started **/
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr, "Please stop port %d first\n", res->port_id);
+		return;
 	}
-}
-
-static cmdline_parse_inst_t cmd_set_vf_allmulti = {
-	.f = cmd_set_vf_allmulti_parsed,
-	.data = NULL,
-	.help_str = "set vf allmulti <port_id> <vf_id> on|off: "
-		"Set multicast promiscuous mode for a VF from the PF",
-	.tokens = {
-		(void *)&cmd_vf_allmulti_set,
-		(void *)&cmd_vf_allmulti_vf,
-		(void *)&cmd_vf_allmulti_allmulti,
-		(void *)&cmd_vf_allmulti_port_id,
-		(void *)&cmd_vf_allmulti_vf_id,
-		(void *)&cmd_vf_allmulti_on_off,
-		NULL,
-	},
-};
-
-/* vf broadcast mode configuration */
-
-/* Common result structure for vf broadcast */
-struct cmd_set_vf_broadcast_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t broadcast;
-	portid_t port_id;
-	uint16_t vf_id;
-	cmdline_fixed_string_t on_off;
-};
-
-/* Common CLI fields for vf broadcast enable disable */
-static cmdline_parse_token_string_t cmd_set_vf_broadcast_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_set_vf_broadcast_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_set_vf_broadcast_broadcast =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 broadcast, "broadcast");
-static cmdline_parse_token_num_t cmd_set_vf_broadcast_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_set_vf_broadcast_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 vf_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_vf_broadcast_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 on_off, "on#off");
-
-static void
-cmd_set_vf_broadcast_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_vf_broadcast_result *res = parsed_result;
-	int ret = -ENOTSUP;
 
-	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
+	if (ret)
 		return;
 
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_broadcast(res->port_id,
-					    res->vf_id, is_on);
+#ifdef RTE_NET_IXGBE
+	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
 #endif
 
 	switch (ret) {
 	case 0:
 		break;
 	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
-			res->vf_id, is_on);
+		fprintf(stderr, "invalid bandwidth\n");
 		break;
 	case -ENODEV:
 		fprintf(stderr, "invalid port_id %d\n", res->port_id);
@@ -11610,3200 +10758,1434 @@ cmd_set_vf_broadcast_parsed(
 	}
 }
 
-static cmdline_parse_inst_t cmd_set_vf_broadcast = {
-	.f = cmd_set_vf_broadcast_parsed,
+static cmdline_parse_inst_t cmd_tc_min_bw = {
+	.f = cmd_tc_min_bw_parsed,
 	.data = NULL,
-	.help_str = "set vf broadcast <port_id> <vf_id> on|off",
+	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
 	.tokens = {
-		(void *)&cmd_set_vf_broadcast_set,
-		(void *)&cmd_set_vf_broadcast_vf,
-		(void *)&cmd_set_vf_broadcast_broadcast,
-		(void *)&cmd_set_vf_broadcast_port_id,
-		(void *)&cmd_set_vf_broadcast_vf_id,
-		(void *)&cmd_set_vf_broadcast_on_off,
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_tc,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_min_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_bw_list,
 		NULL,
 	},
 };
 
-/* vf vlan tag configuration */
-
-/* Common result structure for vf vlan tag */
-struct cmd_set_vf_vlan_tag_result {
+/** Set VXLAN encapsulation details */
+struct cmd_set_vxlan_result {
 	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t vlan;
-	cmdline_fixed_string_t tag;
-	portid_t port_id;
-	uint16_t vf_id;
-	cmdline_fixed_string_t on_off;
-};
-
-/* Common CLI fields for vf vlan tag enable disable */
-static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vlan =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 vlan, "vlan");
-static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_tag =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 tag, "tag");
-static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 vf_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 on_off, "on#off");
-
-static void
-cmd_set_vf_vlan_tag_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_vf_vlan_tag_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_vlan_tag(res->port_id,
-					   res->vf_id, is_on);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
-			res->vf_id, is_on);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_vf_vlan_tag = {
-	.f = cmd_set_vf_vlan_tag_parsed,
-	.data = NULL,
-	.help_str = "set vf vlan tag <port_id> <vf_id> on|off",
-	.tokens = {
-		(void *)&cmd_set_vf_vlan_tag_set,
-		(void *)&cmd_set_vf_vlan_tag_vf,
-		(void *)&cmd_set_vf_vlan_tag_vlan,
-		(void *)&cmd_set_vf_vlan_tag_tag,
-		(void *)&cmd_set_vf_vlan_tag_port_id,
-		(void *)&cmd_set_vf_vlan_tag_vf_id,
-		(void *)&cmd_set_vf_vlan_tag_on_off,
-		NULL,
-	},
-};
-
-/* Common definition of VF and TC TX bandwidth configuration */
-struct cmd_vf_tc_bw_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t tc;
-	cmdline_fixed_string_t tx;
-	cmdline_fixed_string_t min_bw;
-	cmdline_fixed_string_t max_bw;
-	cmdline_fixed_string_t strict_link_prio;
-	portid_t port_id;
-	uint16_t vf_id;
-	uint8_t tc_no;
-	uint32_t bw;
-	cmdline_fixed_string_t bw_list;
-	uint8_t tc_map;
-};
-
-static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tc, "tc");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tx, "tx");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_strict_link_prio =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 strict_link_prio, "strict-link-priority");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 min_bw, "min-bandwidth");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_max_bw =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 max_bw, "max-bandwidth");
-static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_tc_bw_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 vf_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_no =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tc_no, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_vf_tc_bw_bw =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 bw, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 bw_list, NULL);
-static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_map =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tc_map, RTE_UINT8);
-
-/* VF max bandwidth setting */
-static void
-cmd_vf_max_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_max_bw(res->port_id,
-					 res->vf_id, res->bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or bandwidth %d\n",
-			res->vf_id, res->bw);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_vf_max_bw = {
-	.f = cmd_vf_max_bw_parsed,
-	.data = NULL,
-	.help_str = "set vf tx max-bandwidth <port_id> <vf_id> <bandwidth>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_vf,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_max_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_vf_id,
-		(void *)&cmd_vf_tc_bw_bw,
-		NULL,
-	},
-};
-
-static int
-vf_tc_min_bw_parse_bw_list(uint8_t *bw_list,
-			   uint8_t *tc_num,
-			   char *str)
-{
-	uint32_t size;
-	const char *p, *p0 = str;
-	char s[256];
-	char *end;
-	char *str_fld[16];
-	uint16_t i;
-	int ret;
-
-	p = strchr(p0, '(');
-	if (p == NULL) {
-		fprintf(stderr,
-			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
-		return -1;
-	}
-	p++;
-	p0 = strchr(p, ')');
-	if (p0 == NULL) {
-		fprintf(stderr,
-			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
-		return -1;
-	}
-	size = p0 - p;
-	if (size >= sizeof(s)) {
-		fprintf(stderr,
-			"The string size exceeds the internal buffer size\n");
-		return -1;
-	}
-	snprintf(s, sizeof(s), "%.*s", size, p);
-	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
-	if (ret <= 0) {
-		fprintf(stderr, "Failed to get the bandwidth list.\n");
-		return -1;
-	}
-	*tc_num = ret;
-	for (i = 0; i < ret; i++)
-		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
-
-	return 0;
-}
-
-/* TC min bandwidth setting */
-static void
-cmd_vf_tc_min_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	uint8_t tc_num;
-	uint8_t bw[16];
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
-	if (ret)
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_tc_bw_alloc(res->port_id, res->vf_id,
-					      tc_num, bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or bandwidth\n", res->vf_id);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_vf_tc_min_bw = {
-	.f = cmd_vf_tc_min_bw_parsed,
-	.data = NULL,
-	.help_str = "set vf tc tx min-bandwidth <port_id> <vf_id>"
-		    " <bw1, bw2, ...>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_vf,
-		(void *)&cmd_vf_tc_bw_tc,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_min_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_vf_id,
-		(void *)&cmd_vf_tc_bw_bw_list,
-		NULL,
-	},
-};
-
-static void
-cmd_tc_min_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	struct rte_port *port;
-	uint8_t tc_num;
-	uint8_t bw[16];
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	port = &ports[res->port_id];
-	/** Check if the port is not started **/
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr, "Please stop port %d first\n", res->port_id);
-		return;
-	}
-
-	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
-	if (ret)
-		return;
-
-#ifdef RTE_NET_IXGBE
-	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid bandwidth\n");
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_tc_min_bw = {
-	.f = cmd_tc_min_bw_parsed,
-	.data = NULL,
-	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_tc,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_min_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_bw_list,
-		NULL,
-	},
-};
-
-/* TC max bandwidth setting */
-static void
-cmd_vf_tc_max_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_tc_max_bw(res->port_id, res->vf_id,
-					    res->tc_no, res->bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr,
-			"invalid vf_id %d, tc_no %d or bandwidth %d\n",
-			res->vf_id, res->tc_no, res->bw);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_vf_tc_max_bw = {
-	.f = cmd_vf_tc_max_bw_parsed,
-	.data = NULL,
-	.help_str = "set vf tc tx max-bandwidth <port_id> <vf_id> <tc_no>"
-		    " <bandwidth>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_vf,
-		(void *)&cmd_vf_tc_bw_tc,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_max_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_vf_id,
-		(void *)&cmd_vf_tc_bw_tc_no,
-		(void *)&cmd_vf_tc_bw_bw,
-		NULL,
-	},
-};
-
-/** Set VXLAN encapsulation details */
-struct cmd_set_vxlan_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vxlan;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-	uint32_t vni;
-	uint16_t udp_src;
-	uint16_t udp_dst;
-	cmdline_ipaddr_t ip_src;
-	cmdline_ipaddr_t ip_dst;
-	uint16_t tci;
-	uint8_t tos;
-	uint8_t ttl;
-	struct rte_ether_addr eth_src;
-	struct rte_ether_addr eth_dst;
-};
-
-static cmdline_parse_token_string_t cmd_set_vxlan_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, set, "set");
-static cmdline_parse_token_string_t cmd_set_vxlan_vxlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan, "vxlan");
-static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_tos_ttl =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
-				 "vxlan-tos-ttl");
-static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
-				 "vxlan-with-vlan");
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "ip-version");
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, ip_version,
-				 "ipv4#ipv6");
-static cmdline_parse_token_string_t cmd_set_vxlan_vni =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "vni");
-static cmdline_parse_token_num_t cmd_set_vxlan_vni_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, vni, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_vxlan_udp_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "udp-src");
-static cmdline_parse_token_num_t cmd_set_vxlan_udp_src_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_src, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_vxlan_udp_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "udp-dst");
-static cmdline_parse_token_num_t cmd_set_vxlan_udp_dst_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_dst, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_tos =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "ip-tos");
-static cmdline_parse_token_num_t cmd_set_vxlan_ip_tos_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tos, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_ttl =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "ip-ttl");
-static cmdline_parse_token_num_t cmd_set_vxlan_ip_ttl_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, ttl, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "ip-src");
-static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_src_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_src);
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "ip-dst");
-static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_dst_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_dst);
-static cmdline_parse_token_string_t cmd_set_vxlan_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "vlan-tci");
-static cmdline_parse_token_num_t cmd_set_vxlan_vlan_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tci, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_vxlan_eth_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "eth-src");
-static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_src_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_src);
-static cmdline_parse_token_string_t cmd_set_vxlan_eth_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "eth-dst");
-static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_dst_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_dst);
-
-static void cmd_set_vxlan_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_vxlan_result *res = parsed_result;
-	union {
-		uint32_t vxlan_id;
-		uint8_t vni[4];
-	} id = {
-		.vxlan_id = rte_cpu_to_be_32(res->vni) & RTE_BE32(0x00ffffff),
-	};
-
-	vxlan_encap_conf.select_tos_ttl = 0;
-	if (strcmp(res->vxlan, "vxlan") == 0)
-		vxlan_encap_conf.select_vlan = 0;
-	else if (strcmp(res->vxlan, "vxlan-with-vlan") == 0)
-		vxlan_encap_conf.select_vlan = 1;
-	else if (strcmp(res->vxlan, "vxlan-tos-ttl") == 0) {
-		vxlan_encap_conf.select_vlan = 0;
-		vxlan_encap_conf.select_tos_ttl = 1;
-	}
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		vxlan_encap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		vxlan_encap_conf.select_ipv4 = 0;
-	else
-		return;
-	rte_memcpy(vxlan_encap_conf.vni, &id.vni[1], 3);
-	vxlan_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
-	vxlan_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
-	vxlan_encap_conf.ip_tos = res->tos;
-	vxlan_encap_conf.ip_ttl = res->ttl;
-	if (vxlan_encap_conf.select_ipv4) {
-		IPV4_ADDR_TO_UINT(res->ip_src, vxlan_encap_conf.ipv4_src);
-		IPV4_ADDR_TO_UINT(res->ip_dst, vxlan_encap_conf.ipv4_dst);
-	} else {
-		IPV6_ADDR_TO_ARRAY(res->ip_src, vxlan_encap_conf.ipv6_src);
-		IPV6_ADDR_TO_ARRAY(res->ip_dst, vxlan_encap_conf.ipv6_dst);
-	}
-	if (vxlan_encap_conf.select_vlan)
-		vxlan_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
-	rte_memcpy(vxlan_encap_conf.eth_src, res->eth_src.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-	rte_memcpy(vxlan_encap_conf.eth_dst, res->eth_dst.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-}
-
-static cmdline_parse_inst_t cmd_set_vxlan = {
-	.f = cmd_set_vxlan_parsed,
-	.data = NULL,
-	.help_str = "set vxlan ip-version ipv4|ipv6 vni <vni> udp-src"
-		" <udp-src> udp-dst <udp-dst> ip-src <ip-src> ip-dst <ip-dst>"
-		" eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_vxlan_set,
-		(void *)&cmd_set_vxlan_vxlan,
-		(void *)&cmd_set_vxlan_ip_version,
-		(void *)&cmd_set_vxlan_ip_version_value,
-		(void *)&cmd_set_vxlan_vni,
-		(void *)&cmd_set_vxlan_vni_value,
-		(void *)&cmd_set_vxlan_udp_src,
-		(void *)&cmd_set_vxlan_udp_src_value,
-		(void *)&cmd_set_vxlan_udp_dst,
-		(void *)&cmd_set_vxlan_udp_dst_value,
-		(void *)&cmd_set_vxlan_ip_src,
-		(void *)&cmd_set_vxlan_ip_src_value,
-		(void *)&cmd_set_vxlan_ip_dst,
-		(void *)&cmd_set_vxlan_ip_dst_value,
-		(void *)&cmd_set_vxlan_eth_src,
-		(void *)&cmd_set_vxlan_eth_src_value,
-		(void *)&cmd_set_vxlan_eth_dst,
-		(void *)&cmd_set_vxlan_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
-	.f = cmd_set_vxlan_parsed,
-	.data = NULL,
-	.help_str = "set vxlan-tos-ttl ip-version ipv4|ipv6 vni <vni> udp-src"
-		" <udp-src> udp-dst <udp-dst> ip-tos <ip-tos> ip-ttl <ip-ttl>"
-		" ip-src <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
-		" eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_vxlan_set,
-		(void *)&cmd_set_vxlan_vxlan_tos_ttl,
-		(void *)&cmd_set_vxlan_ip_version,
-		(void *)&cmd_set_vxlan_ip_version_value,
-		(void *)&cmd_set_vxlan_vni,
-		(void *)&cmd_set_vxlan_vni_value,
-		(void *)&cmd_set_vxlan_udp_src,
-		(void *)&cmd_set_vxlan_udp_src_value,
-		(void *)&cmd_set_vxlan_udp_dst,
-		(void *)&cmd_set_vxlan_udp_dst_value,
-		(void *)&cmd_set_vxlan_ip_tos,
-		(void *)&cmd_set_vxlan_ip_tos_value,
-		(void *)&cmd_set_vxlan_ip_ttl,
-		(void *)&cmd_set_vxlan_ip_ttl_value,
-		(void *)&cmd_set_vxlan_ip_src,
-		(void *)&cmd_set_vxlan_ip_src_value,
-		(void *)&cmd_set_vxlan_ip_dst,
-		(void *)&cmd_set_vxlan_ip_dst_value,
-		(void *)&cmd_set_vxlan_eth_src,
-		(void *)&cmd_set_vxlan_eth_src_value,
-		(void *)&cmd_set_vxlan_eth_dst,
-		(void *)&cmd_set_vxlan_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_vxlan_with_vlan = {
-	.f = cmd_set_vxlan_parsed,
-	.data = NULL,
-	.help_str = "set vxlan-with-vlan ip-version ipv4|ipv6 vni <vni>"
-		" udp-src <udp-src> udp-dst <udp-dst> ip-src <ip-src> ip-dst"
-		" <ip-dst> vlan-tci <vlan-tci> eth-src <eth-src> eth-dst"
-		" <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_vxlan_set,
-		(void *)&cmd_set_vxlan_vxlan_with_vlan,
-		(void *)&cmd_set_vxlan_ip_version,
-		(void *)&cmd_set_vxlan_ip_version_value,
-		(void *)&cmd_set_vxlan_vni,
-		(void *)&cmd_set_vxlan_vni_value,
-		(void *)&cmd_set_vxlan_udp_src,
-		(void *)&cmd_set_vxlan_udp_src_value,
-		(void *)&cmd_set_vxlan_udp_dst,
-		(void *)&cmd_set_vxlan_udp_dst_value,
-		(void *)&cmd_set_vxlan_ip_src,
-		(void *)&cmd_set_vxlan_ip_src_value,
-		(void *)&cmd_set_vxlan_ip_dst,
-		(void *)&cmd_set_vxlan_ip_dst_value,
-		(void *)&cmd_set_vxlan_vlan,
-		(void *)&cmd_set_vxlan_vlan_value,
-		(void *)&cmd_set_vxlan_eth_src,
-		(void *)&cmd_set_vxlan_eth_src_value,
-		(void *)&cmd_set_vxlan_eth_dst,
-		(void *)&cmd_set_vxlan_eth_dst_value,
-		NULL,
-	},
-};
-
-/** Set NVGRE encapsulation details */
-struct cmd_set_nvgre_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t nvgre;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t tni;
-	cmdline_ipaddr_t ip_src;
-	cmdline_ipaddr_t ip_dst;
-	uint16_t tci;
-	struct rte_ether_addr eth_src;
-	struct rte_ether_addr eth_dst;
-};
-
-static cmdline_parse_token_string_t cmd_set_nvgre_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, set, "set");
-static cmdline_parse_token_string_t cmd_set_nvgre_nvgre =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre, "nvgre");
-static cmdline_parse_token_string_t cmd_set_nvgre_nvgre_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre,
-				 "nvgre-with-vlan");
-static cmdline_parse_token_string_t cmd_set_nvgre_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "ip-version");
-static cmdline_parse_token_string_t cmd_set_nvgre_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, ip_version,
-				 "ipv4#ipv6");
-static cmdline_parse_token_string_t cmd_set_nvgre_tni =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "tni");
-static cmdline_parse_token_num_t cmd_set_nvgre_tni_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tni, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_nvgre_ip_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "ip-src");
-static cmdline_parse_token_num_t cmd_set_nvgre_ip_src_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_src);
-static cmdline_parse_token_string_t cmd_set_nvgre_ip_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "ip-dst");
-static cmdline_parse_token_ipaddr_t cmd_set_nvgre_ip_dst_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_dst);
-static cmdline_parse_token_string_t cmd_set_nvgre_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "vlan-tci");
-static cmdline_parse_token_num_t cmd_set_nvgre_vlan_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tci, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_nvgre_eth_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "eth-src");
-static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_src_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_src);
-static cmdline_parse_token_string_t cmd_set_nvgre_eth_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "eth-dst");
-static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_dst_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_dst);
-
-static void cmd_set_nvgre_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_nvgre_result *res = parsed_result;
-	union {
-		uint32_t nvgre_tni;
-		uint8_t tni[4];
-	} id = {
-		.nvgre_tni = rte_cpu_to_be_32(res->tni) & RTE_BE32(0x00ffffff),
-	};
-
-	if (strcmp(res->nvgre, "nvgre") == 0)
-		nvgre_encap_conf.select_vlan = 0;
-	else if (strcmp(res->nvgre, "nvgre-with-vlan") == 0)
-		nvgre_encap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		nvgre_encap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		nvgre_encap_conf.select_ipv4 = 0;
-	else
-		return;
-	rte_memcpy(nvgre_encap_conf.tni, &id.tni[1], 3);
-	if (nvgre_encap_conf.select_ipv4) {
-		IPV4_ADDR_TO_UINT(res->ip_src, nvgre_encap_conf.ipv4_src);
-		IPV4_ADDR_TO_UINT(res->ip_dst, nvgre_encap_conf.ipv4_dst);
-	} else {
-		IPV6_ADDR_TO_ARRAY(res->ip_src, nvgre_encap_conf.ipv6_src);
-		IPV6_ADDR_TO_ARRAY(res->ip_dst, nvgre_encap_conf.ipv6_dst);
-	}
-	if (nvgre_encap_conf.select_vlan)
-		nvgre_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
-	rte_memcpy(nvgre_encap_conf.eth_src, res->eth_src.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-	rte_memcpy(nvgre_encap_conf.eth_dst, res->eth_dst.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-}
-
-static cmdline_parse_inst_t cmd_set_nvgre = {
-	.f = cmd_set_nvgre_parsed,
-	.data = NULL,
-	.help_str = "set nvgre ip-version <ipv4|ipv6> tni <tni> ip-src"
-		" <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
-		" eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_nvgre_set,
-		(void *)&cmd_set_nvgre_nvgre,
-		(void *)&cmd_set_nvgre_ip_version,
-		(void *)&cmd_set_nvgre_ip_version_value,
-		(void *)&cmd_set_nvgre_tni,
-		(void *)&cmd_set_nvgre_tni_value,
-		(void *)&cmd_set_nvgre_ip_src,
-		(void *)&cmd_set_nvgre_ip_src_value,
-		(void *)&cmd_set_nvgre_ip_dst,
-		(void *)&cmd_set_nvgre_ip_dst_value,
-		(void *)&cmd_set_nvgre_eth_src,
-		(void *)&cmd_set_nvgre_eth_src_value,
-		(void *)&cmd_set_nvgre_eth_dst,
-		(void *)&cmd_set_nvgre_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_nvgre_with_vlan = {
-	.f = cmd_set_nvgre_parsed,
-	.data = NULL,
-	.help_str = "set nvgre-with-vlan ip-version <ipv4|ipv6> tni <tni>"
-		" ip-src <ip-src> ip-dst <ip-dst> vlan-tci <vlan-tci>"
-		" eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_nvgre_set,
-		(void *)&cmd_set_nvgre_nvgre_with_vlan,
-		(void *)&cmd_set_nvgre_ip_version,
-		(void *)&cmd_set_nvgre_ip_version_value,
-		(void *)&cmd_set_nvgre_tni,
-		(void *)&cmd_set_nvgre_tni_value,
-		(void *)&cmd_set_nvgre_ip_src,
-		(void *)&cmd_set_nvgre_ip_src_value,
-		(void *)&cmd_set_nvgre_ip_dst,
-		(void *)&cmd_set_nvgre_ip_dst_value,
-		(void *)&cmd_set_nvgre_vlan,
-		(void *)&cmd_set_nvgre_vlan_value,
-		(void *)&cmd_set_nvgre_eth_src,
-		(void *)&cmd_set_nvgre_eth_src_value,
-		(void *)&cmd_set_nvgre_eth_dst,
-		(void *)&cmd_set_nvgre_eth_dst_value,
-		NULL,
-	},
-};
-
-/** Set L2 encapsulation details */
-struct cmd_set_l2_encap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t l2_encap;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-	uint16_t tci;
-	struct rte_ether_addr eth_src;
-	struct rte_ether_addr eth_dst;
-};
-
-static cmdline_parse_token_string_t cmd_set_l2_encap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, set, "set");
-static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap, "l2_encap");
-static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap,
-				 "l2_encap-with-vlan");
-static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
-				 "ip-version");
-static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, ip_version,
-				 "ipv4#ipv6");
-static cmdline_parse_token_string_t cmd_set_l2_encap_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
-				 "vlan-tci");
-static cmdline_parse_token_num_t cmd_set_l2_encap_vlan_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_l2_encap_result, tci, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_l2_encap_eth_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
-				 "eth-src");
-static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_src_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_src);
-static cmdline_parse_token_string_t cmd_set_l2_encap_eth_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
-				 "eth-dst");
-static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_dst_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_dst);
-
-static void cmd_set_l2_encap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_l2_encap_result *res = parsed_result;
-
-	if (strcmp(res->l2_encap, "l2_encap") == 0)
-		l2_encap_conf.select_vlan = 0;
-	else if (strcmp(res->l2_encap, "l2_encap-with-vlan") == 0)
-		l2_encap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		l2_encap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		l2_encap_conf.select_ipv4 = 0;
-	else
-		return;
-	if (l2_encap_conf.select_vlan)
-		l2_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
-	rte_memcpy(l2_encap_conf.eth_src, res->eth_src.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-	rte_memcpy(l2_encap_conf.eth_dst, res->eth_dst.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-}
-
-static cmdline_parse_inst_t cmd_set_l2_encap = {
-	.f = cmd_set_l2_encap_parsed,
-	.data = NULL,
-	.help_str = "set l2_encap ip-version ipv4|ipv6"
-		" eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_l2_encap_set,
-		(void *)&cmd_set_l2_encap_l2_encap,
-		(void *)&cmd_set_l2_encap_ip_version,
-		(void *)&cmd_set_l2_encap_ip_version_value,
-		(void *)&cmd_set_l2_encap_eth_src,
-		(void *)&cmd_set_l2_encap_eth_src_value,
-		(void *)&cmd_set_l2_encap_eth_dst,
-		(void *)&cmd_set_l2_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_l2_encap_with_vlan = {
-	.f = cmd_set_l2_encap_parsed,
-	.data = NULL,
-	.help_str = "set l2_encap-with-vlan ip-version ipv4|ipv6"
-		" vlan-tci <vlan-tci> eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_l2_encap_set,
-		(void *)&cmd_set_l2_encap_l2_encap_with_vlan,
-		(void *)&cmd_set_l2_encap_ip_version,
-		(void *)&cmd_set_l2_encap_ip_version_value,
-		(void *)&cmd_set_l2_encap_vlan,
-		(void *)&cmd_set_l2_encap_vlan_value,
-		(void *)&cmd_set_l2_encap_eth_src,
-		(void *)&cmd_set_l2_encap_eth_src_value,
-		(void *)&cmd_set_l2_encap_eth_dst,
-		(void *)&cmd_set_l2_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-/** Set L2 decapsulation details */
-struct cmd_set_l2_decap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t l2_decap;
-	cmdline_fixed_string_t pos_token;
-	uint32_t vlan_present:1;
-};
-
-static cmdline_parse_token_string_t cmd_set_l2_decap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, set, "set");
-static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
-				 "l2_decap");
-static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
-				 "l2_decap-with-vlan");
-
-static void cmd_set_l2_decap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_l2_decap_result *res = parsed_result;
-
-	if (strcmp(res->l2_decap, "l2_decap") == 0)
-		l2_decap_conf.select_vlan = 0;
-	else if (strcmp(res->l2_decap, "l2_decap-with-vlan") == 0)
-		l2_decap_conf.select_vlan = 1;
-}
-
-static cmdline_parse_inst_t cmd_set_l2_decap = {
-	.f = cmd_set_l2_decap_parsed,
-	.data = NULL,
-	.help_str = "set l2_decap",
-	.tokens = {
-		(void *)&cmd_set_l2_decap_set,
-		(void *)&cmd_set_l2_decap_l2_decap,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_l2_decap_with_vlan = {
-	.f = cmd_set_l2_decap_parsed,
-	.data = NULL,
-	.help_str = "set l2_decap-with-vlan",
-	.tokens = {
-		(void *)&cmd_set_l2_decap_set,
-		(void *)&cmd_set_l2_decap_l2_decap_with_vlan,
-		NULL,
-	},
-};
-
-/** Set MPLSoGRE encapsulation details */
-struct cmd_set_mplsogre_encap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t mplsogre;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-	uint32_t label;
-	cmdline_ipaddr_t ip_src;
-	cmdline_ipaddr_t ip_dst;
-	uint16_t tci;
-	struct rte_ether_addr eth_src;
-	struct rte_ether_addr eth_dst;
-};
-
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, set,
-				 "set");
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, mplsogre,
-				 "mplsogre_encap");
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 mplsogre, "mplsogre_encap-with-vlan");
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "ip-version");
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 ip_version, "ipv4#ipv6");
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_label =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "label");
-static cmdline_parse_token_num_t cmd_set_mplsogre_encap_label_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, label,
-			      RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "ip-src");
-static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_src_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_src);
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "ip-dst");
-static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_dst_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_dst);
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "vlan-tci");
-static cmdline_parse_token_num_t cmd_set_mplsogre_encap_vlan_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, tci,
-			      RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "eth-src");
-static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_src_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				    eth_src);
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "eth-dst");
-static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_dst_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				    eth_dst);
-
-static void cmd_set_mplsogre_encap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_mplsogre_encap_result *res = parsed_result;
-	union {
-		uint32_t mplsogre_label;
-		uint8_t label[4];
-	} id = {
-		.mplsogre_label = rte_cpu_to_be_32(res->label<<12),
-	};
-
-	if (strcmp(res->mplsogre, "mplsogre_encap") == 0)
-		mplsogre_encap_conf.select_vlan = 0;
-	else if (strcmp(res->mplsogre, "mplsogre_encap-with-vlan") == 0)
-		mplsogre_encap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		mplsogre_encap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		mplsogre_encap_conf.select_ipv4 = 0;
-	else
-		return;
-	rte_memcpy(mplsogre_encap_conf.label, &id.label, 3);
-	if (mplsogre_encap_conf.select_ipv4) {
-		IPV4_ADDR_TO_UINT(res->ip_src, mplsogre_encap_conf.ipv4_src);
-		IPV4_ADDR_TO_UINT(res->ip_dst, mplsogre_encap_conf.ipv4_dst);
-	} else {
-		IPV6_ADDR_TO_ARRAY(res->ip_src, mplsogre_encap_conf.ipv6_src);
-		IPV6_ADDR_TO_ARRAY(res->ip_dst, mplsogre_encap_conf.ipv6_dst);
-	}
-	if (mplsogre_encap_conf.select_vlan)
-		mplsogre_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
-	rte_memcpy(mplsogre_encap_conf.eth_src, res->eth_src.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-	rte_memcpy(mplsogre_encap_conf.eth_dst, res->eth_dst.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-}
-
-static cmdline_parse_inst_t cmd_set_mplsogre_encap = {
-	.f = cmd_set_mplsogre_encap_parsed,
-	.data = NULL,
-	.help_str = "set mplsogre_encap ip-version ipv4|ipv6 label <label>"
-		" ip-src <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
-		" eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_mplsogre_encap_set,
-		(void *)&cmd_set_mplsogre_encap_mplsogre_encap,
-		(void *)&cmd_set_mplsogre_encap_ip_version,
-		(void *)&cmd_set_mplsogre_encap_ip_version_value,
-		(void *)&cmd_set_mplsogre_encap_label,
-		(void *)&cmd_set_mplsogre_encap_label_value,
-		(void *)&cmd_set_mplsogre_encap_ip_src,
-		(void *)&cmd_set_mplsogre_encap_ip_src_value,
-		(void *)&cmd_set_mplsogre_encap_ip_dst,
-		(void *)&cmd_set_mplsogre_encap_ip_dst_value,
-		(void *)&cmd_set_mplsogre_encap_eth_src,
-		(void *)&cmd_set_mplsogre_encap_eth_src_value,
-		(void *)&cmd_set_mplsogre_encap_eth_dst,
-		(void *)&cmd_set_mplsogre_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_mplsogre_encap_with_vlan = {
-	.f = cmd_set_mplsogre_encap_parsed,
-	.data = NULL,
-	.help_str = "set mplsogre_encap-with-vlan ip-version ipv4|ipv6"
-		" label <label> ip-src <ip-src> ip-dst <ip-dst>"
-		" vlan-tci <vlan-tci> eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_mplsogre_encap_set,
-		(void *)&cmd_set_mplsogre_encap_mplsogre_encap_with_vlan,
-		(void *)&cmd_set_mplsogre_encap_ip_version,
-		(void *)&cmd_set_mplsogre_encap_ip_version_value,
-		(void *)&cmd_set_mplsogre_encap_label,
-		(void *)&cmd_set_mplsogre_encap_label_value,
-		(void *)&cmd_set_mplsogre_encap_ip_src,
-		(void *)&cmd_set_mplsogre_encap_ip_src_value,
-		(void *)&cmd_set_mplsogre_encap_ip_dst,
-		(void *)&cmd_set_mplsogre_encap_ip_dst_value,
-		(void *)&cmd_set_mplsogre_encap_vlan,
-		(void *)&cmd_set_mplsogre_encap_vlan_value,
-		(void *)&cmd_set_mplsogre_encap_eth_src,
-		(void *)&cmd_set_mplsogre_encap_eth_src_value,
-		(void *)&cmd_set_mplsogre_encap_eth_dst,
-		(void *)&cmd_set_mplsogre_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-/** Set MPLSoGRE decapsulation details */
-struct cmd_set_mplsogre_decap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t mplsogre;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-};
-
-static cmdline_parse_token_string_t cmd_set_mplsogre_decap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, set,
-				 "set");
-static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, mplsogre,
-				 "mplsogre_decap");
-static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
-				 mplsogre, "mplsogre_decap-with-vlan");
-static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
-				 pos_token, "ip-version");
-static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
-				 ip_version, "ipv4#ipv6");
-
-static void cmd_set_mplsogre_decap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_mplsogre_decap_result *res = parsed_result;
-
-	if (strcmp(res->mplsogre, "mplsogre_decap") == 0)
-		mplsogre_decap_conf.select_vlan = 0;
-	else if (strcmp(res->mplsogre, "mplsogre_decap-with-vlan") == 0)
-		mplsogre_decap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		mplsogre_decap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		mplsogre_decap_conf.select_ipv4 = 0;
-}
-
-static cmdline_parse_inst_t cmd_set_mplsogre_decap = {
-	.f = cmd_set_mplsogre_decap_parsed,
-	.data = NULL,
-	.help_str = "set mplsogre_decap ip-version ipv4|ipv6",
-	.tokens = {
-		(void *)&cmd_set_mplsogre_decap_set,
-		(void *)&cmd_set_mplsogre_decap_mplsogre_decap,
-		(void *)&cmd_set_mplsogre_decap_ip_version,
-		(void *)&cmd_set_mplsogre_decap_ip_version_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_mplsogre_decap_with_vlan = {
-	.f = cmd_set_mplsogre_decap_parsed,
-	.data = NULL,
-	.help_str = "set mplsogre_decap-with-vlan ip-version ipv4|ipv6",
-	.tokens = {
-		(void *)&cmd_set_mplsogre_decap_set,
-		(void *)&cmd_set_mplsogre_decap_mplsogre_decap_with_vlan,
-		(void *)&cmd_set_mplsogre_decap_ip_version,
-		(void *)&cmd_set_mplsogre_decap_ip_version_value,
-		NULL,
-	},
-};
-
-/** Set MPLSoUDP encapsulation details */
-struct cmd_set_mplsoudp_encap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t mplsoudp;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-	uint32_t label;
-	uint16_t udp_src;
-	uint16_t udp_dst;
-	cmdline_ipaddr_t ip_src;
-	cmdline_ipaddr_t ip_dst;
-	uint16_t tci;
-	struct rte_ether_addr eth_src;
-	struct rte_ether_addr eth_dst;
-};
-
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, set,
-				 "set");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, mplsoudp,
-				 "mplsoudp_encap");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 mplsoudp, "mplsoudp_encap-with-vlan");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "ip-version");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 ip_version, "ipv4#ipv6");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_label =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "label");
-static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_label_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, label,
-			      RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "udp-src");
-static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_src_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_src,
-			      RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "udp-dst");
-static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_dst_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_dst,
-			      RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "ip-src");
-static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_src_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_src);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "ip-dst");
-static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_dst_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_dst);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "vlan-tci");
-static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_vlan_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, tci,
-			      RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "eth-src");
-static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_src_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				    eth_src);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "eth-dst");
-static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_dst_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				    eth_dst);
-
-static void cmd_set_mplsoudp_encap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_mplsoudp_encap_result *res = parsed_result;
-	union {
-		uint32_t mplsoudp_label;
-		uint8_t label[4];
-	} id = {
-		.mplsoudp_label = rte_cpu_to_be_32(res->label<<12),
-	};
-
-	if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
-		mplsoudp_encap_conf.select_vlan = 0;
-	else if (strcmp(res->mplsoudp, "mplsoudp_encap-with-vlan") == 0)
-		mplsoudp_encap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		mplsoudp_encap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		mplsoudp_encap_conf.select_ipv4 = 0;
-	else
-		return;
-	rte_memcpy(mplsoudp_encap_conf.label, &id.label, 3);
-	mplsoudp_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
-	mplsoudp_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
-	if (mplsoudp_encap_conf.select_ipv4) {
-		IPV4_ADDR_TO_UINT(res->ip_src, mplsoudp_encap_conf.ipv4_src);
-		IPV4_ADDR_TO_UINT(res->ip_dst, mplsoudp_encap_conf.ipv4_dst);
-	} else {
-		IPV6_ADDR_TO_ARRAY(res->ip_src, mplsoudp_encap_conf.ipv6_src);
-		IPV6_ADDR_TO_ARRAY(res->ip_dst, mplsoudp_encap_conf.ipv6_dst);
-	}
-	if (mplsoudp_encap_conf.select_vlan)
-		mplsoudp_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
-	rte_memcpy(mplsoudp_encap_conf.eth_src, res->eth_src.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-	rte_memcpy(mplsoudp_encap_conf.eth_dst, res->eth_dst.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-}
-
-static cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
-	.f = cmd_set_mplsoudp_encap_parsed,
-	.data = NULL,
-	.help_str = "set mplsoudp_encap ip-version ipv4|ipv6 label <label>"
-		" udp-src <udp-src> udp-dst <udp-dst> ip-src <ip-src>"
-		" ip-dst <ip-dst> eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_mplsoudp_encap_set,
-		(void *)&cmd_set_mplsoudp_encap_mplsoudp_encap,
-		(void *)&cmd_set_mplsoudp_encap_ip_version,
-		(void *)&cmd_set_mplsoudp_encap_ip_version_value,
-		(void *)&cmd_set_mplsoudp_encap_label,
-		(void *)&cmd_set_mplsoudp_encap_label_value,
-		(void *)&cmd_set_mplsoudp_encap_udp_src,
-		(void *)&cmd_set_mplsoudp_encap_udp_src_value,
-		(void *)&cmd_set_mplsoudp_encap_udp_dst,
-		(void *)&cmd_set_mplsoudp_encap_udp_dst_value,
-		(void *)&cmd_set_mplsoudp_encap_ip_src,
-		(void *)&cmd_set_mplsoudp_encap_ip_src_value,
-		(void *)&cmd_set_mplsoudp_encap_ip_dst,
-		(void *)&cmd_set_mplsoudp_encap_ip_dst_value,
-		(void *)&cmd_set_mplsoudp_encap_eth_src,
-		(void *)&cmd_set_mplsoudp_encap_eth_src_value,
-		(void *)&cmd_set_mplsoudp_encap_eth_dst,
-		(void *)&cmd_set_mplsoudp_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_mplsoudp_encap_with_vlan = {
-	.f = cmd_set_mplsoudp_encap_parsed,
-	.data = NULL,
-	.help_str = "set mplsoudp_encap-with-vlan ip-version ipv4|ipv6"
-		" label <label> udp-src <udp-src> udp-dst <udp-dst>"
-		" ip-src <ip-src> ip-dst <ip-dst> vlan-tci <vlan-tci>"
-		" eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_mplsoudp_encap_set,
-		(void *)&cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan,
-		(void *)&cmd_set_mplsoudp_encap_ip_version,
-		(void *)&cmd_set_mplsoudp_encap_ip_version_value,
-		(void *)&cmd_set_mplsoudp_encap_label,
-		(void *)&cmd_set_mplsoudp_encap_label_value,
-		(void *)&cmd_set_mplsoudp_encap_udp_src,
-		(void *)&cmd_set_mplsoudp_encap_udp_src_value,
-		(void *)&cmd_set_mplsoudp_encap_udp_dst,
-		(void *)&cmd_set_mplsoudp_encap_udp_dst_value,
-		(void *)&cmd_set_mplsoudp_encap_ip_src,
-		(void *)&cmd_set_mplsoudp_encap_ip_src_value,
-		(void *)&cmd_set_mplsoudp_encap_ip_dst,
-		(void *)&cmd_set_mplsoudp_encap_ip_dst_value,
-		(void *)&cmd_set_mplsoudp_encap_vlan,
-		(void *)&cmd_set_mplsoudp_encap_vlan_value,
-		(void *)&cmd_set_mplsoudp_encap_eth_src,
-		(void *)&cmd_set_mplsoudp_encap_eth_src_value,
-		(void *)&cmd_set_mplsoudp_encap_eth_dst,
-		(void *)&cmd_set_mplsoudp_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-/** Set MPLSoUDP decapsulation details */
-struct cmd_set_mplsoudp_decap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t mplsoudp;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-};
-
-static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, set,
-				 "set");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, mplsoudp,
-				 "mplsoudp_decap");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
-				 mplsoudp, "mplsoudp_decap-with-vlan");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
-				 pos_token, "ip-version");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
-				 ip_version, "ipv4#ipv6");
-
-static void cmd_set_mplsoudp_decap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_mplsoudp_decap_result *res = parsed_result;
-
-	if (strcmp(res->mplsoudp, "mplsoudp_decap") == 0)
-		mplsoudp_decap_conf.select_vlan = 0;
-	else if (strcmp(res->mplsoudp, "mplsoudp_decap-with-vlan") == 0)
-		mplsoudp_decap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		mplsoudp_decap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		mplsoudp_decap_conf.select_ipv4 = 0;
-}
-
-static cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
-	.f = cmd_set_mplsoudp_decap_parsed,
-	.data = NULL,
-	.help_str = "set mplsoudp_decap ip-version ipv4|ipv6",
-	.tokens = {
-		(void *)&cmd_set_mplsoudp_decap_set,
-		(void *)&cmd_set_mplsoudp_decap_mplsoudp_decap,
-		(void *)&cmd_set_mplsoudp_decap_ip_version,
-		(void *)&cmd_set_mplsoudp_decap_ip_version_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_mplsoudp_decap_with_vlan = {
-	.f = cmd_set_mplsoudp_decap_parsed,
-	.data = NULL,
-	.help_str = "set mplsoudp_decap-with-vlan ip-version ipv4|ipv6",
-	.tokens = {
-		(void *)&cmd_set_mplsoudp_decap_set,
-		(void *)&cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan,
-		(void *)&cmd_set_mplsoudp_decap_ip_version,
-		(void *)&cmd_set_mplsoudp_decap_ip_version_value,
-		NULL,
-	},
-};
-
-/** Set connection tracking object common details */
-struct cmd_set_conntrack_common_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t conntrack;
-	cmdline_fixed_string_t common;
-	cmdline_fixed_string_t peer;
-	cmdline_fixed_string_t is_orig;
-	cmdline_fixed_string_t enable;
-	cmdline_fixed_string_t live;
-	cmdline_fixed_string_t sack;
-	cmdline_fixed_string_t cack;
-	cmdline_fixed_string_t last_dir;
-	cmdline_fixed_string_t liberal;
-	cmdline_fixed_string_t state;
-	cmdline_fixed_string_t max_ack_win;
-	cmdline_fixed_string_t retrans;
-	cmdline_fixed_string_t last_win;
-	cmdline_fixed_string_t last_seq;
-	cmdline_fixed_string_t last_ack;
-	cmdline_fixed_string_t last_end;
-	cmdline_fixed_string_t last_index;
-	uint8_t stat;
-	uint8_t factor;
-	uint16_t peer_port;
-	uint32_t is_original;
-	uint32_t en;
-	uint32_t is_live;
-	uint32_t s_ack;
-	uint32_t c_ack;
-	uint32_t ld;
-	uint32_t lb;
-	uint8_t re_num;
-	uint8_t li;
-	uint16_t lw;
-	uint32_t ls;
-	uint32_t la;
-	uint32_t le;
-};
-
-static cmdline_parse_token_string_t cmd_set_conntrack_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 set, "set");
-static cmdline_parse_token_string_t cmd_set_conntrack_conntrack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 conntrack, "conntrack");
-static cmdline_parse_token_string_t cmd_set_conntrack_common_com =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 common, "com");
-static cmdline_parse_token_string_t cmd_set_conntrack_common_peer =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 peer, "peer");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_peer_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      peer_port, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_is_orig =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 is_orig, "is_orig");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_is_orig_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      is_original, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_enable =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 enable, "enable");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_enable_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      en, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_live =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 live, "live");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_live_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      is_live, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_sack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 sack, "sack");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_sack_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      s_ack, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_cack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 cack, "cack");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_cack_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      c_ack, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_dir =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_dir, "last_dir");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_dir_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      ld, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_liberal =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 liberal, "liberal");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_liberal_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      lb, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_state =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 state, "state");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_state_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      stat, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_max_ackwin =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 max_ack_win, "max_ack_win");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_max_ackwin_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      factor, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_retrans =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 retrans, "r_lim");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_retrans_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      re_num, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_win =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_win, "last_win");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_win_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      lw, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_seq =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_seq, "last_seq");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_seq_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      ls, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_ack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_ack, "last_ack");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_ack_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      la, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_end =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_end, "last_end");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_end_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      le, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_index =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_index, "last_index");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_index_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      li, RTE_UINT8);
-
-static void cmd_set_conntrack_common_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_conntrack_common_result *res = parsed_result;
-
-	/* No need to swap to big endian. */
-	conntrack_context.peer_port = res->peer_port;
-	conntrack_context.is_original_dir = res->is_original;
-	conntrack_context.enable = res->en;
-	conntrack_context.live_connection = res->is_live;
-	conntrack_context.selective_ack = res->s_ack;
-	conntrack_context.challenge_ack_passed = res->c_ack;
-	conntrack_context.last_direction = res->ld;
-	conntrack_context.liberal_mode = res->lb;
-	conntrack_context.state = (enum rte_flow_conntrack_state)res->stat;
-	conntrack_context.max_ack_window = res->factor;
-	conntrack_context.retransmission_limit = res->re_num;
-	conntrack_context.last_window = res->lw;
-	conntrack_context.last_index =
-		(enum rte_flow_conntrack_tcp_last_index)res->li;
-	conntrack_context.last_seq = res->ls;
-	conntrack_context.last_ack = res->la;
-	conntrack_context.last_end = res->le;
-}
-
-static cmdline_parse_inst_t cmd_set_conntrack_common = {
-	.f = cmd_set_conntrack_common_parsed,
-	.data = NULL,
-	.help_str = "set conntrack com peer <port_id> is_orig <dir> enable <en>"
-		" live <ack_seen> sack <en> cack <passed> last_dir <dir>"
-		" liberal <en> state <s> max_ack_win <factor> r_lim <num>"
-		" last_win <win> last_seq <seq> last_ack <ack> last_end <end>"
-		" last_index <flag>",
-	.tokens = {
-		(void *)&cmd_set_conntrack_set,
-		(void *)&cmd_set_conntrack_conntrack,
-		(void *)&cmd_set_conntrack_common_com,
-		(void *)&cmd_set_conntrack_common_peer,
-		(void *)&cmd_set_conntrack_common_peer_value,
-		(void *)&cmd_set_conntrack_common_is_orig,
-		(void *)&cmd_set_conntrack_common_is_orig_value,
-		(void *)&cmd_set_conntrack_common_enable,
-		(void *)&cmd_set_conntrack_common_enable_value,
-		(void *)&cmd_set_conntrack_common_live,
-		(void *)&cmd_set_conntrack_common_live_value,
-		(void *)&cmd_set_conntrack_common_sack,
-		(void *)&cmd_set_conntrack_common_sack_value,
-		(void *)&cmd_set_conntrack_common_cack,
-		(void *)&cmd_set_conntrack_common_cack_value,
-		(void *)&cmd_set_conntrack_common_last_dir,
-		(void *)&cmd_set_conntrack_common_last_dir_value,
-		(void *)&cmd_set_conntrack_common_liberal,
-		(void *)&cmd_set_conntrack_common_liberal_value,
-		(void *)&cmd_set_conntrack_common_state,
-		(void *)&cmd_set_conntrack_common_state_value,
-		(void *)&cmd_set_conntrack_common_max_ackwin,
-		(void *)&cmd_set_conntrack_common_max_ackwin_value,
-		(void *)&cmd_set_conntrack_common_retrans,
-		(void *)&cmd_set_conntrack_common_retrans_value,
-		(void *)&cmd_set_conntrack_common_last_win,
-		(void *)&cmd_set_conntrack_common_last_win_value,
-		(void *)&cmd_set_conntrack_common_last_seq,
-		(void *)&cmd_set_conntrack_common_last_seq_value,
-		(void *)&cmd_set_conntrack_common_last_ack,
-		(void *)&cmd_set_conntrack_common_last_ack_value,
-		(void *)&cmd_set_conntrack_common_last_end,
-		(void *)&cmd_set_conntrack_common_last_end_value,
-		(void *)&cmd_set_conntrack_common_last_index,
-		(void *)&cmd_set_conntrack_common_last_index_value,
-		NULL,
-	},
-};
-
-/** Set connection tracking object both directions' details */
-struct cmd_set_conntrack_dir_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t conntrack;
-	cmdline_fixed_string_t dir;
-	cmdline_fixed_string_t scale;
-	cmdline_fixed_string_t fin;
-	cmdline_fixed_string_t ack_seen;
-	cmdline_fixed_string_t unack;
-	cmdline_fixed_string_t sent_end;
-	cmdline_fixed_string_t reply_end;
-	cmdline_fixed_string_t max_win;
-	cmdline_fixed_string_t max_ack;
-	uint32_t factor;
-	uint32_t f;
-	uint32_t as;
-	uint32_t un;
-	uint32_t se;
-	uint32_t re;
-	uint32_t mw;
-	uint32_t ma;
+	cmdline_fixed_string_t vxlan;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
+	uint32_t vni;
+	uint16_t udp_src;
+	uint16_t udp_dst;
+	cmdline_ipaddr_t ip_src;
+	cmdline_ipaddr_t ip_dst;
+	uint16_t tci;
+	uint8_t tos;
+	uint8_t ttl;
+	struct rte_ether_addr eth_src;
+	struct rte_ether_addr eth_dst;
 };
 
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_dir =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 dir, "orig#rply");
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_scale =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 scale, "scale");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_scale_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      factor, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_fin =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 fin, "fin");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_fin_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      f, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_ack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 ack_seen, "acked");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_ack_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      as, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_unack_data =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 unack, "unack_data");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_unack_data_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      un, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_sent_end =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 sent_end, "sent_end");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_sent_end_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      se, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_reply_end =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 reply_end, "reply_end");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_reply_end_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      re, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_win =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 max_win, "max_win");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_win_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      mw, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_ack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 max_ack, "max_ack");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_ack_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      ma, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_vxlan_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, set, "set");
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan, "vxlan");
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_tos_ttl =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
+				 "vxlan-tos-ttl");
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
+				 "vxlan-with-vlan");
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "ip-version");
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, ip_version,
+				 "ipv4#ipv6");
+static cmdline_parse_token_string_t cmd_set_vxlan_vni =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "vni");
+static cmdline_parse_token_num_t cmd_set_vxlan_vni_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, vni, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_vxlan_udp_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "udp-src");
+static cmdline_parse_token_num_t cmd_set_vxlan_udp_src_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_src, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_vxlan_udp_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "udp-dst");
+static cmdline_parse_token_num_t cmd_set_vxlan_udp_dst_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_dst, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_tos =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "ip-tos");
+static cmdline_parse_token_num_t cmd_set_vxlan_ip_tos_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tos, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_ttl =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "ip-ttl");
+static cmdline_parse_token_num_t cmd_set_vxlan_ip_ttl_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, ttl, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "ip-src");
+static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_src_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_src);
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "ip-dst");
+static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_dst_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_dst);
+static cmdline_parse_token_string_t cmd_set_vxlan_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "vlan-tci");
+static cmdline_parse_token_num_t cmd_set_vxlan_vlan_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tci, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_vxlan_eth_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "eth-src");
+static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_src_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_src);
+static cmdline_parse_token_string_t cmd_set_vxlan_eth_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "eth-dst");
+static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_dst_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_dst);
 
-static void cmd_set_conntrack_dir_parsed(void *parsed_result,
+static void cmd_set_vxlan_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
-{
-	struct cmd_set_conntrack_dir_result *res = parsed_result;
-	struct rte_flow_tcp_dir_param *dir = NULL;
+{
+	struct cmd_set_vxlan_result *res = parsed_result;
+	union {
+		uint32_t vxlan_id;
+		uint8_t vni[4];
+	} id = {
+		.vxlan_id = rte_cpu_to_be_32(res->vni) & RTE_BE32(0x00ffffff),
+	};
 
-	if (strcmp(res->dir, "orig") == 0)
-		dir = &conntrack_context.original_dir;
-	else if (strcmp(res->dir, "rply") == 0)
-		dir = &conntrack_context.reply_dir;
+	vxlan_encap_conf.select_tos_ttl = 0;
+	if (strcmp(res->vxlan, "vxlan") == 0)
+		vxlan_encap_conf.select_vlan = 0;
+	else if (strcmp(res->vxlan, "vxlan-with-vlan") == 0)
+		vxlan_encap_conf.select_vlan = 1;
+	else if (strcmp(res->vxlan, "vxlan-tos-ttl") == 0) {
+		vxlan_encap_conf.select_vlan = 0;
+		vxlan_encap_conf.select_tos_ttl = 1;
+	}
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		vxlan_encap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		vxlan_encap_conf.select_ipv4 = 0;
 	else
 		return;
-	dir->scale = res->factor;
-	dir->close_initiated = res->f;
-	dir->last_ack_seen = res->as;
-	dir->data_unacked = res->un;
-	dir->sent_end = res->se;
-	dir->reply_end = res->re;
-	dir->max_ack = res->ma;
-	dir->max_win = res->mw;
+	rte_memcpy(vxlan_encap_conf.vni, &id.vni[1], 3);
+	vxlan_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
+	vxlan_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
+	vxlan_encap_conf.ip_tos = res->tos;
+	vxlan_encap_conf.ip_ttl = res->ttl;
+	if (vxlan_encap_conf.select_ipv4) {
+		IPV4_ADDR_TO_UINT(res->ip_src, vxlan_encap_conf.ipv4_src);
+		IPV4_ADDR_TO_UINT(res->ip_dst, vxlan_encap_conf.ipv4_dst);
+	} else {
+		IPV6_ADDR_TO_ARRAY(res->ip_src, vxlan_encap_conf.ipv6_src);
+		IPV6_ADDR_TO_ARRAY(res->ip_dst, vxlan_encap_conf.ipv6_dst);
+	}
+	if (vxlan_encap_conf.select_vlan)
+		vxlan_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
+	rte_memcpy(vxlan_encap_conf.eth_src, res->eth_src.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
+	rte_memcpy(vxlan_encap_conf.eth_dst, res->eth_dst.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
 }
 
-static cmdline_parse_inst_t cmd_set_conntrack_dir = {
-	.f = cmd_set_conntrack_dir_parsed,
+static cmdline_parse_inst_t cmd_set_vxlan = {
+	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
-	.help_str = "set conntrack orig|rply scale <factor> fin <sent>"
-		    " acked <seen> unack_data <unack> sent_end <sent>"
-		    " reply_end <reply> max_win <win> max_ack <ack>",
+	.help_str = "set vxlan ip-version ipv4|ipv6 vni <vni> udp-src"
+		" <udp-src> udp-dst <udp-dst> ip-src <ip-src> ip-dst <ip-dst>"
+		" eth-src <eth-src> eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_set_conntrack_set,
-		(void *)&cmd_set_conntrack_conntrack,
-		(void *)&cmd_set_conntrack_dir_dir,
-		(void *)&cmd_set_conntrack_dir_scale,
-		(void *)&cmd_set_conntrack_dir_scale_value,
-		(void *)&cmd_set_conntrack_dir_fin,
-		(void *)&cmd_set_conntrack_dir_fin_value,
-		(void *)&cmd_set_conntrack_dir_ack,
-		(void *)&cmd_set_conntrack_dir_ack_value,
-		(void *)&cmd_set_conntrack_dir_unack_data,
-		(void *)&cmd_set_conntrack_dir_unack_data_value,
-		(void *)&cmd_set_conntrack_dir_sent_end,
-		(void *)&cmd_set_conntrack_dir_sent_end_value,
-		(void *)&cmd_set_conntrack_dir_reply_end,
-		(void *)&cmd_set_conntrack_dir_reply_end_value,
-		(void *)&cmd_set_conntrack_dir_max_win,
-		(void *)&cmd_set_conntrack_dir_max_win_value,
-		(void *)&cmd_set_conntrack_dir_max_ack,
-		(void *)&cmd_set_conntrack_dir_max_ack_value,
+		(void *)&cmd_set_vxlan_set,
+		(void *)&cmd_set_vxlan_vxlan,
+		(void *)&cmd_set_vxlan_ip_version,
+		(void *)&cmd_set_vxlan_ip_version_value,
+		(void *)&cmd_set_vxlan_vni,
+		(void *)&cmd_set_vxlan_vni_value,
+		(void *)&cmd_set_vxlan_udp_src,
+		(void *)&cmd_set_vxlan_udp_src_value,
+		(void *)&cmd_set_vxlan_udp_dst,
+		(void *)&cmd_set_vxlan_udp_dst_value,
+		(void *)&cmd_set_vxlan_ip_src,
+		(void *)&cmd_set_vxlan_ip_src_value,
+		(void *)&cmd_set_vxlan_ip_dst,
+		(void *)&cmd_set_vxlan_ip_dst_value,
+		(void *)&cmd_set_vxlan_eth_src,
+		(void *)&cmd_set_vxlan_eth_src_value,
+		(void *)&cmd_set_vxlan_eth_dst,
+		(void *)&cmd_set_vxlan_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Strict link priority scheduling mode setting */
-static void
-cmd_strict_link_prio_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_tc_strict_prio(res->port_id, res->tc_map);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid tc_bitmap 0x%x\n", res->tc_map);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_strict_link_prio = {
-	.f = cmd_strict_link_prio_parsed,
+static cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
+	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
-	.help_str = "set tx strict-link-priority <port_id> <tc_bitmap>",
+	.help_str = "set vxlan-tos-ttl ip-version ipv4|ipv6 vni <vni> udp-src"
+		" <udp-src> udp-dst <udp-dst> ip-tos <ip-tos> ip-ttl <ip-ttl>"
+		" ip-src <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
+		" eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_strict_link_prio,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_tc_map,
+		(void *)&cmd_set_vxlan_set,
+		(void *)&cmd_set_vxlan_vxlan_tos_ttl,
+		(void *)&cmd_set_vxlan_ip_version,
+		(void *)&cmd_set_vxlan_ip_version_value,
+		(void *)&cmd_set_vxlan_vni,
+		(void *)&cmd_set_vxlan_vni_value,
+		(void *)&cmd_set_vxlan_udp_src,
+		(void *)&cmd_set_vxlan_udp_src_value,
+		(void *)&cmd_set_vxlan_udp_dst,
+		(void *)&cmd_set_vxlan_udp_dst_value,
+		(void *)&cmd_set_vxlan_ip_tos,
+		(void *)&cmd_set_vxlan_ip_tos_value,
+		(void *)&cmd_set_vxlan_ip_ttl,
+		(void *)&cmd_set_vxlan_ip_ttl_value,
+		(void *)&cmd_set_vxlan_ip_src,
+		(void *)&cmd_set_vxlan_ip_src_value,
+		(void *)&cmd_set_vxlan_ip_dst,
+		(void *)&cmd_set_vxlan_ip_dst_value,
+		(void *)&cmd_set_vxlan_eth_src,
+		(void *)&cmd_set_vxlan_eth_src_value,
+		(void *)&cmd_set_vxlan_eth_dst,
+		(void *)&cmd_set_vxlan_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Load dynamic device personalization*/
-struct cmd_ddp_add_result {
-	cmdline_fixed_string_t ddp;
-	cmdline_fixed_string_t add;
-	portid_t port_id;
-	char filepath[];
+static cmdline_parse_inst_t cmd_set_vxlan_with_vlan = {
+	.f = cmd_set_vxlan_parsed,
+	.data = NULL,
+	.help_str = "set vxlan-with-vlan ip-version ipv4|ipv6 vni <vni>"
+		" udp-src <udp-src> udp-dst <udp-dst> ip-src <ip-src> ip-dst"
+		" <ip-dst> vlan-tci <vlan-tci> eth-src <eth-src> eth-dst"
+		" <eth-dst>",
+	.tokens = {
+		(void *)&cmd_set_vxlan_set,
+		(void *)&cmd_set_vxlan_vxlan_with_vlan,
+		(void *)&cmd_set_vxlan_ip_version,
+		(void *)&cmd_set_vxlan_ip_version_value,
+		(void *)&cmd_set_vxlan_vni,
+		(void *)&cmd_set_vxlan_vni_value,
+		(void *)&cmd_set_vxlan_udp_src,
+		(void *)&cmd_set_vxlan_udp_src_value,
+		(void *)&cmd_set_vxlan_udp_dst,
+		(void *)&cmd_set_vxlan_udp_dst_value,
+		(void *)&cmd_set_vxlan_ip_src,
+		(void *)&cmd_set_vxlan_ip_src_value,
+		(void *)&cmd_set_vxlan_ip_dst,
+		(void *)&cmd_set_vxlan_ip_dst_value,
+		(void *)&cmd_set_vxlan_vlan,
+		(void *)&cmd_set_vxlan_vlan_value,
+		(void *)&cmd_set_vxlan_eth_src,
+		(void *)&cmd_set_vxlan_eth_src_value,
+		(void *)&cmd_set_vxlan_eth_dst,
+		(void *)&cmd_set_vxlan_eth_dst_value,
+		NULL,
+	},
 };
 
-static cmdline_parse_token_string_t cmd_ddp_add_ddp =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, ddp, "ddp");
-static cmdline_parse_token_string_t cmd_ddp_add_add =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, add, "add");
-static cmdline_parse_token_num_t cmd_ddp_add_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_ddp_add_result, port_id,
-		RTE_UINT16);
-static cmdline_parse_token_string_t cmd_ddp_add_filepath =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, filepath, NULL);
-
-static void
-cmd_ddp_add_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_ddp_add_result *res = parsed_result;
-	uint8_t *buff;
-	uint32_t size;
-	char *filepath;
-	char *file_fld[2];
-	int file_num;
-	int ret = -ENOTSUP;
+/** Set NVGRE encapsulation details */
+struct cmd_set_nvgre_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t nvgre;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t tni;
+	cmdline_ipaddr_t ip_src;
+	cmdline_ipaddr_t ip_dst;
+	uint16_t tci;
+	struct rte_ether_addr eth_src;
+	struct rte_ether_addr eth_dst;
+};
 
-	if (!all_ports_stopped()) {
-		fprintf(stderr, "Please stop all ports first\n");
-		return;
-	}
+static cmdline_parse_token_string_t cmd_set_nvgre_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, set, "set");
+static cmdline_parse_token_string_t cmd_set_nvgre_nvgre =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre, "nvgre");
+static cmdline_parse_token_string_t cmd_set_nvgre_nvgre_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre,
+				 "nvgre-with-vlan");
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "ip-version");
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, ip_version,
+				 "ipv4#ipv6");
+static cmdline_parse_token_string_t cmd_set_nvgre_tni =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "tni");
+static cmdline_parse_token_num_t cmd_set_nvgre_tni_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tni, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "ip-src");
+static cmdline_parse_token_num_t cmd_set_nvgre_ip_src_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_src);
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "ip-dst");
+static cmdline_parse_token_ipaddr_t cmd_set_nvgre_ip_dst_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_dst);
+static cmdline_parse_token_string_t cmd_set_nvgre_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "vlan-tci");
+static cmdline_parse_token_num_t cmd_set_nvgre_vlan_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tci, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_nvgre_eth_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "eth-src");
+static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_src_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_src);
+static cmdline_parse_token_string_t cmd_set_nvgre_eth_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "eth-dst");
+static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_dst_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_dst);
 
-	filepath = strdup(res->filepath);
-	if (filepath == NULL) {
-		fprintf(stderr, "Failed to allocate memory\n");
-		return;
-	}
-	file_num = rte_strsplit(filepath, strlen(filepath), file_fld, 2, ',');
+static void cmd_set_nvgre_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_set_nvgre_result *res = parsed_result;
+	union {
+		uint32_t nvgre_tni;
+		uint8_t tni[4];
+	} id = {
+		.nvgre_tni = rte_cpu_to_be_32(res->tni) & RTE_BE32(0x00ffffff),
+	};
 
-	buff = open_file(file_fld[0], &size);
-	if (!buff) {
-		free((void *)filepath);
+	if (strcmp(res->nvgre, "nvgre") == 0)
+		nvgre_encap_conf.select_vlan = 0;
+	else if (strcmp(res->nvgre, "nvgre-with-vlan") == 0)
+		nvgre_encap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		nvgre_encap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		nvgre_encap_conf.select_ipv4 = 0;
+	else
 		return;
+	rte_memcpy(nvgre_encap_conf.tni, &id.tni[1], 3);
+	if (nvgre_encap_conf.select_ipv4) {
+		IPV4_ADDR_TO_UINT(res->ip_src, nvgre_encap_conf.ipv4_src);
+		IPV4_ADDR_TO_UINT(res->ip_dst, nvgre_encap_conf.ipv4_dst);
+	} else {
+		IPV6_ADDR_TO_ARRAY(res->ip_src, nvgre_encap_conf.ipv6_src);
+		IPV6_ADDR_TO_ARRAY(res->ip_dst, nvgre_encap_conf.ipv6_dst);
 	}
-
-#ifdef RTE_NET_I40E
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_i40e_process_ddp_package(res->port_id,
-					       buff, size,
-					       RTE_PMD_I40E_PKG_OP_WR_ADD);
-#endif
-
-	if (ret == -EEXIST)
-		fprintf(stderr, "Profile has already existed.\n");
-	else if (ret < 0)
-		fprintf(stderr, "Failed to load profile.\n");
-	else if (file_num == 2)
-		save_file(file_fld[1], buff, size);
-
-	close_file(buff);
-	free((void *)filepath);
+	if (nvgre_encap_conf.select_vlan)
+		nvgre_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
+	rte_memcpy(nvgre_encap_conf.eth_src, res->eth_src.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
+	rte_memcpy(nvgre_encap_conf.eth_dst, res->eth_dst.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
 }
 
-static cmdline_parse_inst_t cmd_ddp_add = {
-	.f = cmd_ddp_add_parsed,
+static cmdline_parse_inst_t cmd_set_nvgre = {
+	.f = cmd_set_nvgre_parsed,
 	.data = NULL,
-	.help_str = "ddp add <port_id> <profile_path[,backup_profile_path]>",
+	.help_str = "set nvgre ip-version <ipv4|ipv6> tni <tni> ip-src"
+		" <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
+		" eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_ddp_add_ddp,
-		(void *)&cmd_ddp_add_add,
-		(void *)&cmd_ddp_add_port_id,
-		(void *)&cmd_ddp_add_filepath,
+		(void *)&cmd_set_nvgre_set,
+		(void *)&cmd_set_nvgre_nvgre,
+		(void *)&cmd_set_nvgre_ip_version,
+		(void *)&cmd_set_nvgre_ip_version_value,
+		(void *)&cmd_set_nvgre_tni,
+		(void *)&cmd_set_nvgre_tni_value,
+		(void *)&cmd_set_nvgre_ip_src,
+		(void *)&cmd_set_nvgre_ip_src_value,
+		(void *)&cmd_set_nvgre_ip_dst,
+		(void *)&cmd_set_nvgre_ip_dst_value,
+		(void *)&cmd_set_nvgre_eth_src,
+		(void *)&cmd_set_nvgre_eth_src_value,
+		(void *)&cmd_set_nvgre_eth_dst,
+		(void *)&cmd_set_nvgre_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Delete dynamic device personalization*/
-struct cmd_ddp_del_result {
-	cmdline_fixed_string_t ddp;
-	cmdline_fixed_string_t del;
-	portid_t port_id;
-	char filepath[];
-};
-
-static cmdline_parse_token_string_t cmd_ddp_del_ddp =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, ddp, "ddp");
-static cmdline_parse_token_string_t cmd_ddp_del_del =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, del, "del");
-static cmdline_parse_token_num_t cmd_ddp_del_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_ddp_del_result, port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_ddp_del_filepath =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, filepath, NULL);
-
-static void
-cmd_ddp_del_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_ddp_del_result *res = parsed_result;
-	uint8_t *buff;
-	uint32_t size;
-	int ret = -ENOTSUP;
-
-	if (!all_ports_stopped()) {
-		fprintf(stderr, "Please stop all ports first\n");
-		return;
-	}
-
-	buff = open_file(res->filepath, &size);
-	if (!buff)
-		return;
-
-#ifdef RTE_NET_I40E
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_i40e_process_ddp_package(res->port_id,
-					       buff, size,
-					       RTE_PMD_I40E_PKG_OP_WR_DEL);
-#endif
-
-	if (ret == -EACCES)
-		fprintf(stderr, "Profile does not exist.\n");
-	else if (ret < 0)
-		fprintf(stderr, "Failed to delete profile.\n");
-
-	close_file(buff);
-}
-
-static cmdline_parse_inst_t cmd_ddp_del = {
-	.f = cmd_ddp_del_parsed,
+static cmdline_parse_inst_t cmd_set_nvgre_with_vlan = {
+	.f = cmd_set_nvgre_parsed,
 	.data = NULL,
-	.help_str = "ddp del <port_id> <backup_profile_path>",
+	.help_str = "set nvgre-with-vlan ip-version <ipv4|ipv6> tni <tni>"
+		" ip-src <ip-src> ip-dst <ip-dst> vlan-tci <vlan-tci>"
+		" eth-src <eth-src> eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_ddp_del_ddp,
-		(void *)&cmd_ddp_del_del,
-		(void *)&cmd_ddp_del_port_id,
-		(void *)&cmd_ddp_del_filepath,
+		(void *)&cmd_set_nvgre_set,
+		(void *)&cmd_set_nvgre_nvgre_with_vlan,
+		(void *)&cmd_set_nvgre_ip_version,
+		(void *)&cmd_set_nvgre_ip_version_value,
+		(void *)&cmd_set_nvgre_tni,
+		(void *)&cmd_set_nvgre_tni_value,
+		(void *)&cmd_set_nvgre_ip_src,
+		(void *)&cmd_set_nvgre_ip_src_value,
+		(void *)&cmd_set_nvgre_ip_dst,
+		(void *)&cmd_set_nvgre_ip_dst_value,
+		(void *)&cmd_set_nvgre_vlan,
+		(void *)&cmd_set_nvgre_vlan_value,
+		(void *)&cmd_set_nvgre_eth_src,
+		(void *)&cmd_set_nvgre_eth_src_value,
+		(void *)&cmd_set_nvgre_eth_dst,
+		(void *)&cmd_set_nvgre_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Get dynamic device personalization profile info */
-struct cmd_ddp_info_result {
-	cmdline_fixed_string_t ddp;
-	cmdline_fixed_string_t get;
-	cmdline_fixed_string_t info;
-	char filepath[];
+/** Set L2 encapsulation details */
+struct cmd_set_l2_encap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t l2_encap;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
+	uint16_t tci;
+	struct rte_ether_addr eth_src;
+	struct rte_ether_addr eth_dst;
 };
 
-static cmdline_parse_token_string_t cmd_ddp_info_ddp =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, ddp, "ddp");
-static cmdline_parse_token_string_t cmd_ddp_info_get =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, get, "get");
-static cmdline_parse_token_string_t cmd_ddp_info_info =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, info, "info");
-static cmdline_parse_token_string_t cmd_ddp_info_filepath =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, filepath, NULL);
+static cmdline_parse_token_string_t cmd_set_l2_encap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, set, "set");
+static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap, "l2_encap");
+static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap,
+				 "l2_encap-with-vlan");
+static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
+				 "ip-version");
+static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, ip_version,
+				 "ipv4#ipv6");
+static cmdline_parse_token_string_t cmd_set_l2_encap_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
+				 "vlan-tci");
+static cmdline_parse_token_num_t cmd_set_l2_encap_vlan_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_l2_encap_result, tci, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_l2_encap_eth_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
+				 "eth-src");
+static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_src_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_src);
+static cmdline_parse_token_string_t cmd_set_l2_encap_eth_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
+				 "eth-dst");
+static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_dst_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_dst);
 
-static void
-cmd_ddp_info_parsed(
-	void *parsed_result,
+static void cmd_set_l2_encap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_ddp_info_result *res = parsed_result;
-	uint8_t *pkg;
-	uint32_t pkg_size;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	uint32_t i, j, n;
-	uint8_t *buff;
-	uint32_t buff_size = 0;
-	struct rte_pmd_i40e_profile_info info;
-	uint32_t dev_num = 0;
-	struct rte_pmd_i40e_ddp_device_id *devs;
-	uint32_t proto_num = 0;
-	struct rte_pmd_i40e_proto_info *proto = NULL;
-	uint32_t pctype_num = 0;
-	struct rte_pmd_i40e_ptype_info *pctype;
-	uint32_t ptype_num = 0;
-	struct rte_pmd_i40e_ptype_info *ptype;
-	uint8_t proto_id;
-
-#endif
+	struct cmd_set_l2_encap_result *res = parsed_result;
 
-	pkg = open_file(res->filepath, &pkg_size);
-	if (!pkg)
+	if (strcmp(res->l2_encap, "l2_encap") == 0)
+		l2_encap_conf.select_vlan = 0;
+	else if (strcmp(res->l2_encap, "l2_encap-with-vlan") == 0)
+		l2_encap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		l2_encap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		l2_encap_conf.select_ipv4 = 0;
+	else
 		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-				(uint8_t *)&info, sizeof(info),
-				RTE_PMD_I40E_PKG_INFO_GLOBAL_HEADER);
-	if (!ret) {
-		printf("Global Track id:       0x%x\n", info.track_id);
-		printf("Global Version:        %d.%d.%d.%d\n",
-			info.version.major,
-			info.version.minor,
-			info.version.update,
-			info.version.draft);
-		printf("Global Package name:   %s\n\n", info.name);
-	}
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-				(uint8_t *)&info, sizeof(info),
-				RTE_PMD_I40E_PKG_INFO_HEADER);
-	if (!ret) {
-		printf("i40e Profile Track id: 0x%x\n", info.track_id);
-		printf("i40e Profile Version:  %d.%d.%d.%d\n",
-			info.version.major,
-			info.version.minor,
-			info.version.update,
-			info.version.draft);
-		printf("i40e Profile name:     %s\n\n", info.name);
-	}
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-				(uint8_t *)&buff_size, sizeof(buff_size),
-				RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES_SIZE);
-	if (!ret && buff_size) {
-		buff = (uint8_t *)malloc(buff_size);
-		if (buff) {
-			ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-						buff, buff_size,
-						RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES);
-			if (!ret)
-				printf("Package Notes:\n%s\n\n", buff);
-			free(buff);
-		}
-	}
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-				(uint8_t *)&dev_num, sizeof(dev_num),
-				RTE_PMD_I40E_PKG_INFO_DEVID_NUM);
-	if (!ret && dev_num) {
-		buff_size = dev_num * sizeof(struct rte_pmd_i40e_ddp_device_id);
-		devs = (struct rte_pmd_i40e_ddp_device_id *)malloc(buff_size);
-		if (devs) {
-			ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-						(uint8_t *)devs, buff_size,
-						RTE_PMD_I40E_PKG_INFO_DEVID_LIST);
-			if (!ret) {
-				printf("List of supported devices:\n");
-				for (i = 0; i < dev_num; i++) {
-					printf("  %04X:%04X %04X:%04X\n",
-						devs[i].vendor_dev_id >> 16,
-						devs[i].vendor_dev_id & 0xFFFF,
-						devs[i].sub_vendor_dev_id >> 16,
-						devs[i].sub_vendor_dev_id & 0xFFFF);
-				}
-				printf("\n");
-			}
-			free(devs);
-		}
-	}
-
-	/* get information about protocols and packet types */
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-		(uint8_t *)&proto_num, sizeof(proto_num),
-		RTE_PMD_I40E_PKG_INFO_PROTOCOL_NUM);
-	if (ret || !proto_num)
-		goto no_print_return;
-
-	buff_size = proto_num * sizeof(struct rte_pmd_i40e_proto_info);
-	proto = (struct rte_pmd_i40e_proto_info *)malloc(buff_size);
-	if (!proto)
-		goto no_print_return;
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)proto,
-					buff_size,
-					RTE_PMD_I40E_PKG_INFO_PROTOCOL_LIST);
-	if (!ret) {
-		printf("List of used protocols:\n");
-		for (i = 0; i < proto_num; i++)
-			printf("  %2u: %s\n", proto[i].proto_id,
-			       proto[i].name);
-		printf("\n");
-	}
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-		(uint8_t *)&pctype_num, sizeof(pctype_num),
-		RTE_PMD_I40E_PKG_INFO_PCTYPE_NUM);
-	if (ret || !pctype_num)
-		goto no_print_pctypes;
-
-	buff_size = pctype_num * sizeof(struct rte_pmd_i40e_ptype_info);
-	pctype = (struct rte_pmd_i40e_ptype_info *)malloc(buff_size);
-	if (!pctype)
-		goto no_print_pctypes;
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)pctype,
-					buff_size,
-					RTE_PMD_I40E_PKG_INFO_PCTYPE_LIST);
-	if (ret) {
-		free(pctype);
-		goto no_print_pctypes;
-	}
-
-	printf("List of defined packet classification types:\n");
-	for (i = 0; i < pctype_num; i++) {
-		printf("  %2u:", pctype[i].ptype_id);
-		for (j = 0; j < RTE_PMD_I40E_PROTO_NUM; j++) {
-			proto_id = pctype[i].protocols[j];
-			if (proto_id != RTE_PMD_I40E_PROTO_UNUSED) {
-				for (n = 0; n < proto_num; n++) {
-					if (proto[n].proto_id == proto_id) {
-						printf(" %s", proto[n].name);
-						break;
-					}
-				}
-			}
-		}
-		printf("\n");
-	}
-	printf("\n");
-	free(pctype);
-
-no_print_pctypes:
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)&ptype_num,
-					sizeof(ptype_num),
-					RTE_PMD_I40E_PKG_INFO_PTYPE_NUM);
-	if (ret || !ptype_num)
-		goto no_print_return;
-
-	buff_size = ptype_num * sizeof(struct rte_pmd_i40e_ptype_info);
-	ptype = (struct rte_pmd_i40e_ptype_info *)malloc(buff_size);
-	if (!ptype)
-		goto no_print_return;
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)ptype,
-					buff_size,
-					RTE_PMD_I40E_PKG_INFO_PTYPE_LIST);
-	if (ret) {
-		free(ptype);
-		goto no_print_return;
-	}
-	printf("List of defined packet types:\n");
-	for (i = 0; i < ptype_num; i++) {
-		printf("  %2u:", ptype[i].ptype_id);
-		for (j = 0; j < RTE_PMD_I40E_PROTO_NUM; j++) {
-			proto_id = ptype[i].protocols[j];
-			if (proto_id != RTE_PMD_I40E_PROTO_UNUSED) {
-				for (n = 0; n < proto_num; n++) {
-					if (proto[n].proto_id == proto_id) {
-						printf(" %s", proto[n].name);
-						break;
-					}
-				}
-			}
-		}
-		printf("\n");
-	}
-	free(ptype);
-	printf("\n");
-
-	ret = 0;
-no_print_return:
-	free(proto);
-#endif
-	if (ret == -ENOTSUP)
-		fprintf(stderr, "Function not supported in PMD\n");
-	close_file(pkg);
+	if (l2_encap_conf.select_vlan)
+		l2_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
+	rte_memcpy(l2_encap_conf.eth_src, res->eth_src.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
+	rte_memcpy(l2_encap_conf.eth_dst, res->eth_dst.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
 }
 
-static cmdline_parse_inst_t cmd_ddp_get_info = {
-	.f = cmd_ddp_info_parsed,
+static cmdline_parse_inst_t cmd_set_l2_encap = {
+	.f = cmd_set_l2_encap_parsed,
 	.data = NULL,
-	.help_str = "ddp get info <profile_path>",
+	.help_str = "set l2_encap ip-version ipv4|ipv6"
+		" eth-src <eth-src> eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_ddp_info_ddp,
-		(void *)&cmd_ddp_info_get,
-		(void *)&cmd_ddp_info_info,
-		(void *)&cmd_ddp_info_filepath,
+		(void *)&cmd_set_l2_encap_set,
+		(void *)&cmd_set_l2_encap_l2_encap,
+		(void *)&cmd_set_l2_encap_ip_version,
+		(void *)&cmd_set_l2_encap_ip_version_value,
+		(void *)&cmd_set_l2_encap_eth_src,
+		(void *)&cmd_set_l2_encap_eth_src_value,
+		(void *)&cmd_set_l2_encap_eth_dst,
+		(void *)&cmd_set_l2_encap_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Get dynamic device personalization profile info list*/
-#define PROFILE_INFO_SIZE 48
-#define MAX_PROFILE_NUM 16
-
-struct cmd_ddp_get_list_result {
-	cmdline_fixed_string_t ddp;
-	cmdline_fixed_string_t get;
-	cmdline_fixed_string_t list;
-	portid_t port_id;
-};
-
-static cmdline_parse_token_string_t cmd_ddp_get_list_ddp =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, ddp, "ddp");
-static cmdline_parse_token_string_t cmd_ddp_get_list_get =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, get, "get");
-static cmdline_parse_token_string_t cmd_ddp_get_list_list =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, list, "list");
-static cmdline_parse_token_num_t cmd_ddp_get_list_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_ddp_get_list_result, port_id,
-		RTE_UINT16);
-
-static void
-cmd_ddp_get_list_parsed(
-	__rte_unused void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-#ifdef RTE_NET_I40E
-	struct cmd_ddp_get_list_result *res = parsed_result;
-	struct rte_pmd_i40e_profile_list *p_list;
-	struct rte_pmd_i40e_profile_info *p_info;
-	uint32_t p_num;
-	uint32_t size;
-	uint32_t i;
-#endif
-	int ret = -ENOTSUP;
-
-#ifdef RTE_NET_I40E
-	size = PROFILE_INFO_SIZE * MAX_PROFILE_NUM + 4;
-	p_list = (struct rte_pmd_i40e_profile_list *)malloc(size);
-	if (!p_list) {
-		fprintf(stderr, "%s: Failed to malloc buffer\n", __func__);
-		return;
-	}
-
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_i40e_get_ddp_list(res->port_id,
-						(uint8_t *)p_list, size);
-
-	if (!ret) {
-		p_num = p_list->p_count;
-		printf("Profile number is: %d\n\n", p_num);
-
-		for (i = 0; i < p_num; i++) {
-			p_info = &p_list->p_info[i];
-			printf("Profile %d:\n", i);
-			printf("Track id:     0x%x\n", p_info->track_id);
-			printf("Version:      %d.%d.%d.%d\n",
-			       p_info->version.major,
-			       p_info->version.minor,
-			       p_info->version.update,
-			       p_info->version.draft);
-			printf("Profile name: %s\n\n", p_info->name);
-		}
-	}
-
-	free(p_list);
-#endif
-
-	if (ret < 0)
-		fprintf(stderr, "Failed to get ddp list\n");
-}
-
-static cmdline_parse_inst_t cmd_ddp_get_list = {
-	.f = cmd_ddp_get_list_parsed,
+static cmdline_parse_inst_t cmd_set_l2_encap_with_vlan = {
+	.f = cmd_set_l2_encap_parsed,
 	.data = NULL,
-	.help_str = "ddp get list <port_id>",
+	.help_str = "set l2_encap-with-vlan ip-version ipv4|ipv6"
+		" vlan-tci <vlan-tci> eth-src <eth-src> eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_ddp_get_list_ddp,
-		(void *)&cmd_ddp_get_list_get,
-		(void *)&cmd_ddp_get_list_list,
-		(void *)&cmd_ddp_get_list_port_id,
+		(void *)&cmd_set_l2_encap_set,
+		(void *)&cmd_set_l2_encap_l2_encap_with_vlan,
+		(void *)&cmd_set_l2_encap_ip_version,
+		(void *)&cmd_set_l2_encap_ip_version_value,
+		(void *)&cmd_set_l2_encap_vlan,
+		(void *)&cmd_set_l2_encap_vlan_value,
+		(void *)&cmd_set_l2_encap_eth_src,
+		(void *)&cmd_set_l2_encap_eth_src_value,
+		(void *)&cmd_set_l2_encap_eth_dst,
+		(void *)&cmd_set_l2_encap_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Configure input set */
-struct cmd_cfg_input_set_result {
-	cmdline_fixed_string_t port;
-	cmdline_fixed_string_t cfg;
-	portid_t port_id;
-	cmdline_fixed_string_t pctype;
-	uint8_t pctype_id;
-	cmdline_fixed_string_t inset_type;
-	cmdline_fixed_string_t opt;
-	cmdline_fixed_string_t field;
-	uint8_t field_idx;
+/** Set L2 decapsulation details */
+struct cmd_set_l2_decap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t l2_decap;
+	cmdline_fixed_string_t pos_token;
+	uint32_t vlan_present:1;
 };
 
-static void
-cmd_cfg_input_set_parsed(
-	__rte_unused void *parsed_result,
+static cmdline_parse_token_string_t cmd_set_l2_decap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, set, "set");
+static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
+				 "l2_decap");
+static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
+				 "l2_decap-with-vlan");
+
+static void cmd_set_l2_decap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-#ifdef RTE_NET_I40E
-	struct cmd_cfg_input_set_result *res = parsed_result;
-	enum rte_pmd_i40e_inset_type inset_type = INSET_NONE;
-	struct rte_pmd_i40e_inset inset;
-#endif
-	int ret = -ENOTSUP;
-
-	if (!all_ports_stopped()) {
-		fprintf(stderr, "Please stop all ports first\n");
-		return;
-	}
-
-#ifdef RTE_NET_I40E
-	if (!strcmp(res->inset_type, "hash_inset"))
-		inset_type = INSET_HASH;
-	else if (!strcmp(res->inset_type, "fdir_inset"))
-		inset_type = INSET_FDIR;
-	else if (!strcmp(res->inset_type, "fdir_flx_inset"))
-		inset_type = INSET_FDIR_FLX;
-	ret = rte_pmd_i40e_inset_get(res->port_id, res->pctype_id,
-				     &inset, inset_type);
-	if (ret) {
-		fprintf(stderr, "Failed to get input set.\n");
-		return;
-	}
-
-	if (!strcmp(res->opt, "get")) {
-		ret = rte_pmd_i40e_inset_field_get(inset.inset,
-						   res->field_idx);
-		if (ret)
-			printf("Field index %d is enabled.\n", res->field_idx);
-		else
-			printf("Field index %d is disabled.\n", res->field_idx);
-		return;
-	} else if (!strcmp(res->opt, "set"))
-		ret = rte_pmd_i40e_inset_field_set(&inset.inset,
-						   res->field_idx);
-	else if (!strcmp(res->opt, "clear"))
-		ret = rte_pmd_i40e_inset_field_clear(&inset.inset,
-						     res->field_idx);
-	if (ret) {
-		fprintf(stderr, "Failed to configure input set field.\n");
-		return;
-	}
-
-	ret = rte_pmd_i40e_inset_set(res->port_id, res->pctype_id,
-				     &inset, inset_type);
-	if (ret) {
-		fprintf(stderr, "Failed to set input set.\n");
-		return;
-	}
-#endif
+	struct cmd_set_l2_decap_result *res = parsed_result;
 
-	if (ret == -ENOTSUP)
-		fprintf(stderr, "Function not supported\n");
+	if (strcmp(res->l2_decap, "l2_decap") == 0)
+		l2_decap_conf.select_vlan = 0;
+	else if (strcmp(res->l2_decap, "l2_decap-with-vlan") == 0)
+		l2_decap_conf.select_vlan = 1;
 }
 
-static cmdline_parse_token_string_t cmd_cfg_input_set_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 port, "port");
-static cmdline_parse_token_string_t cmd_cfg_input_set_cfg =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 cfg, "config");
-static cmdline_parse_token_num_t cmd_cfg_input_set_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
-			      port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_cfg_input_set_pctype =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 pctype, "pctype");
-static cmdline_parse_token_num_t cmd_cfg_input_set_pctype_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
-			      pctype_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_cfg_input_set_inset_type =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 inset_type,
-				 "hash_inset#fdir_inset#fdir_flx_inset");
-static cmdline_parse_token_string_t cmd_cfg_input_set_opt =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 opt, "get#set#clear");
-static cmdline_parse_token_string_t cmd_cfg_input_set_field =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 field, "field");
-static cmdline_parse_token_num_t cmd_cfg_input_set_field_idx =
-	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
-			      field_idx, RTE_UINT8);
-
-static cmdline_parse_inst_t cmd_cfg_input_set = {
-	.f = cmd_cfg_input_set_parsed,
+static cmdline_parse_inst_t cmd_set_l2_decap = {
+	.f = cmd_set_l2_decap_parsed,
 	.data = NULL,
-	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
-		    "fdir_inset|fdir_flx_inset get|set|clear field <field_idx>",
+	.help_str = "set l2_decap",
 	.tokens = {
-		(void *)&cmd_cfg_input_set_port,
-		(void *)&cmd_cfg_input_set_cfg,
-		(void *)&cmd_cfg_input_set_port_id,
-		(void *)&cmd_cfg_input_set_pctype,
-		(void *)&cmd_cfg_input_set_pctype_id,
-		(void *)&cmd_cfg_input_set_inset_type,
-		(void *)&cmd_cfg_input_set_opt,
-		(void *)&cmd_cfg_input_set_field,
-		(void *)&cmd_cfg_input_set_field_idx,
+		(void *)&cmd_set_l2_decap_set,
+		(void *)&cmd_set_l2_decap_l2_decap,
 		NULL,
 	},
 };
 
-/* Clear input set */
-struct cmd_clear_input_set_result {
-	cmdline_fixed_string_t port;
-	cmdline_fixed_string_t cfg;
-	portid_t port_id;
-	cmdline_fixed_string_t pctype;
-	uint8_t pctype_id;
-	cmdline_fixed_string_t inset_type;
-	cmdline_fixed_string_t clear;
-	cmdline_fixed_string_t all;
-};
-
-static void
-cmd_clear_input_set_parsed(
-	__rte_unused void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-#ifdef RTE_NET_I40E
-	struct cmd_clear_input_set_result *res = parsed_result;
-	enum rte_pmd_i40e_inset_type inset_type = INSET_NONE;
-	struct rte_pmd_i40e_inset inset;
-#endif
-	int ret = -ENOTSUP;
-
-	if (!all_ports_stopped()) {
-		fprintf(stderr, "Please stop all ports first\n");
-		return;
-	}
-
-#ifdef RTE_NET_I40E
-	if (!strcmp(res->inset_type, "hash_inset"))
-		inset_type = INSET_HASH;
-	else if (!strcmp(res->inset_type, "fdir_inset"))
-		inset_type = INSET_FDIR;
-	else if (!strcmp(res->inset_type, "fdir_flx_inset"))
-		inset_type = INSET_FDIR_FLX;
-
-	memset(&inset, 0, sizeof(inset));
-
-	ret = rte_pmd_i40e_inset_set(res->port_id, res->pctype_id,
-				     &inset, inset_type);
-	if (ret) {
-		fprintf(stderr, "Failed to clear input set.\n");
-		return;
-	}
-
-#endif
-
-	if (ret == -ENOTSUP)
-		fprintf(stderr, "Function not supported\n");
-}
-
-static cmdline_parse_token_string_t cmd_clear_input_set_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 port, "port");
-static cmdline_parse_token_string_t cmd_clear_input_set_cfg =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 cfg, "config");
-static cmdline_parse_token_num_t cmd_clear_input_set_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
-			      port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_clear_input_set_pctype =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 pctype, "pctype");
-static cmdline_parse_token_num_t cmd_clear_input_set_pctype_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
-			      pctype_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_clear_input_set_inset_type =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 inset_type,
-				 "hash_inset#fdir_inset#fdir_flx_inset");
-static cmdline_parse_token_string_t cmd_clear_input_set_clear =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 clear, "clear");
-static cmdline_parse_token_string_t cmd_clear_input_set_all =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 all, "all");
-
-static cmdline_parse_inst_t cmd_clear_input_set = {
-	.f = cmd_clear_input_set_parsed,
+static cmdline_parse_inst_t cmd_set_l2_decap_with_vlan = {
+	.f = cmd_set_l2_decap_parsed,
 	.data = NULL,
-	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
-		    "fdir_inset|fdir_flx_inset clear all",
+	.help_str = "set l2_decap-with-vlan",
 	.tokens = {
-		(void *)&cmd_clear_input_set_port,
-		(void *)&cmd_clear_input_set_cfg,
-		(void *)&cmd_clear_input_set_port_id,
-		(void *)&cmd_clear_input_set_pctype,
-		(void *)&cmd_clear_input_set_pctype_id,
-		(void *)&cmd_clear_input_set_inset_type,
-		(void *)&cmd_clear_input_set_clear,
-		(void *)&cmd_clear_input_set_all,
+		(void *)&cmd_set_l2_decap_set,
+		(void *)&cmd_set_l2_decap_l2_decap_with_vlan,
 		NULL,
 	},
 };
 
-/* show vf stats */
-
-/* Common result structure for show vf stats */
-struct cmd_show_vf_stats_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t stats;
-	portid_t port_id;
-	uint16_t vf_id;
+/** Set MPLSoGRE encapsulation details */
+struct cmd_set_mplsogre_encap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t mplsogre;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
+	uint32_t label;
+	cmdline_ipaddr_t ip_src;
+	cmdline_ipaddr_t ip_dst;
+	uint16_t tci;
+	struct rte_ether_addr eth_src;
+	struct rte_ether_addr eth_dst;
 };
 
-/* Common CLI fields show vf stats*/
-static cmdline_parse_token_string_t cmd_show_vf_stats_show =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_show_vf_stats_result,
-		 show, "show");
-static cmdline_parse_token_string_t cmd_show_vf_stats_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_show_vf_stats_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_show_vf_stats_stats =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_show_vf_stats_result,
-		 stats, "stats");
-static cmdline_parse_token_num_t cmd_show_vf_stats_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_show_vf_stats_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_show_vf_stats_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_show_vf_stats_result,
-		 vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, set,
+				 "set");
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, mplsogre,
+				 "mplsogre_encap");
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 mplsogre, "mplsogre_encap-with-vlan");
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "ip-version");
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 ip_version, "ipv4#ipv6");
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_label =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "label");
+static cmdline_parse_token_num_t cmd_set_mplsogre_encap_label_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, label,
+			      RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "ip-src");
+static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_src_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_src);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "ip-dst");
+static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_dst_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_dst);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "vlan-tci");
+static cmdline_parse_token_num_t cmd_set_mplsogre_encap_vlan_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, tci,
+			      RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "eth-src");
+static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_src_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				    eth_src);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "eth-dst");
+static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_dst_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				    eth_dst);
 
-static void
-cmd_show_vf_stats_parsed(
-	void *parsed_result,
+static void cmd_set_mplsogre_encap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_show_vf_stats_result *res = parsed_result;
-	struct rte_eth_stats stats;
-	int ret = -ENOTSUP;
-	static const char *nic_stats_border = "########################";
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	memset(&stats, 0, sizeof(stats));
-
-#ifdef RTE_NET_I40E
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_i40e_get_vf_stats(res->port_id,
-						res->vf_id,
-						&stats);
-#endif
-#ifdef RTE_NET_BNXT
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_bnxt_get_vf_stats(res->port_id,
-						res->vf_id,
-						&stats);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-
-	printf("\n  %s NIC statistics for port %-2d vf %-2d %s\n",
-		nic_stats_border, res->port_id, res->vf_id, nic_stats_border);
-
-	printf("  RX-packets: %-10"PRIu64" RX-missed: %-10"PRIu64" RX-bytes:  "
-	       "%-"PRIu64"\n",
-	       stats.ipackets, stats.imissed, stats.ibytes);
-	printf("  RX-errors: %-"PRIu64"\n", stats.ierrors);
-	printf("  RX-nombuf:  %-10"PRIu64"\n",
-	       stats.rx_nombuf);
-	printf("  TX-packets: %-10"PRIu64" TX-errors: %-10"PRIu64" TX-bytes:  "
-	       "%-"PRIu64"\n",
-	       stats.opackets, stats.oerrors, stats.obytes);
+	struct cmd_set_mplsogre_encap_result *res = parsed_result;
+	union {
+		uint32_t mplsogre_label;
+		uint8_t label[4];
+	} id = {
+		.mplsogre_label = rte_cpu_to_be_32(res->label<<12),
+	};
 
-	printf("  %s############################%s\n",
-			       nic_stats_border, nic_stats_border);
+	if (strcmp(res->mplsogre, "mplsogre_encap") == 0)
+		mplsogre_encap_conf.select_vlan = 0;
+	else if (strcmp(res->mplsogre, "mplsogre_encap-with-vlan") == 0)
+		mplsogre_encap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		mplsogre_encap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		mplsogre_encap_conf.select_ipv4 = 0;
+	else
+		return;
+	rte_memcpy(mplsogre_encap_conf.label, &id.label, 3);
+	if (mplsogre_encap_conf.select_ipv4) {
+		IPV4_ADDR_TO_UINT(res->ip_src, mplsogre_encap_conf.ipv4_src);
+		IPV4_ADDR_TO_UINT(res->ip_dst, mplsogre_encap_conf.ipv4_dst);
+	} else {
+		IPV6_ADDR_TO_ARRAY(res->ip_src, mplsogre_encap_conf.ipv6_src);
+		IPV6_ADDR_TO_ARRAY(res->ip_dst, mplsogre_encap_conf.ipv6_dst);
+	}
+	if (mplsogre_encap_conf.select_vlan)
+		mplsogre_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
+	rte_memcpy(mplsogre_encap_conf.eth_src, res->eth_src.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
+	rte_memcpy(mplsogre_encap_conf.eth_dst, res->eth_dst.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
 }
 
-static cmdline_parse_inst_t cmd_show_vf_stats = {
-	.f = cmd_show_vf_stats_parsed,
+static cmdline_parse_inst_t cmd_set_mplsogre_encap = {
+	.f = cmd_set_mplsogre_encap_parsed,
 	.data = NULL,
-	.help_str = "show vf stats <port_id> <vf_id>",
+	.help_str = "set mplsogre_encap ip-version ipv4|ipv6 label <label>"
+		" ip-src <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
+		" eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_show_vf_stats_show,
-		(void *)&cmd_show_vf_stats_vf,
-		(void *)&cmd_show_vf_stats_stats,
-		(void *)&cmd_show_vf_stats_port_id,
-		(void *)&cmd_show_vf_stats_vf_id,
+		(void *)&cmd_set_mplsogre_encap_set,
+		(void *)&cmd_set_mplsogre_encap_mplsogre_encap,
+		(void *)&cmd_set_mplsogre_encap_ip_version,
+		(void *)&cmd_set_mplsogre_encap_ip_version_value,
+		(void *)&cmd_set_mplsogre_encap_label,
+		(void *)&cmd_set_mplsogre_encap_label_value,
+		(void *)&cmd_set_mplsogre_encap_ip_src,
+		(void *)&cmd_set_mplsogre_encap_ip_src_value,
+		(void *)&cmd_set_mplsogre_encap_ip_dst,
+		(void *)&cmd_set_mplsogre_encap_ip_dst_value,
+		(void *)&cmd_set_mplsogre_encap_eth_src,
+		(void *)&cmd_set_mplsogre_encap_eth_src_value,
+		(void *)&cmd_set_mplsogre_encap_eth_dst,
+		(void *)&cmd_set_mplsogre_encap_eth_dst_value,
 		NULL,
 	},
 };
 
-/* clear vf stats */
+static cmdline_parse_inst_t cmd_set_mplsogre_encap_with_vlan = {
+	.f = cmd_set_mplsogre_encap_parsed,
+	.data = NULL,
+	.help_str = "set mplsogre_encap-with-vlan ip-version ipv4|ipv6"
+		" label <label> ip-src <ip-src> ip-dst <ip-dst>"
+		" vlan-tci <vlan-tci> eth-src <eth-src> eth-dst <eth-dst>",
+	.tokens = {
+		(void *)&cmd_set_mplsogre_encap_set,
+		(void *)&cmd_set_mplsogre_encap_mplsogre_encap_with_vlan,
+		(void *)&cmd_set_mplsogre_encap_ip_version,
+		(void *)&cmd_set_mplsogre_encap_ip_version_value,
+		(void *)&cmd_set_mplsogre_encap_label,
+		(void *)&cmd_set_mplsogre_encap_label_value,
+		(void *)&cmd_set_mplsogre_encap_ip_src,
+		(void *)&cmd_set_mplsogre_encap_ip_src_value,
+		(void *)&cmd_set_mplsogre_encap_ip_dst,
+		(void *)&cmd_set_mplsogre_encap_ip_dst_value,
+		(void *)&cmd_set_mplsogre_encap_vlan,
+		(void *)&cmd_set_mplsogre_encap_vlan_value,
+		(void *)&cmd_set_mplsogre_encap_eth_src,
+		(void *)&cmd_set_mplsogre_encap_eth_src_value,
+		(void *)&cmd_set_mplsogre_encap_eth_dst,
+		(void *)&cmd_set_mplsogre_encap_eth_dst_value,
+		NULL,
+	},
+};
 
-/* Common result structure for clear vf stats */
-struct cmd_clear_vf_stats_result {
-	cmdline_fixed_string_t clear;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t stats;
-	portid_t port_id;
-	uint16_t vf_id;
+/** Set MPLSoGRE decapsulation details */
+struct cmd_set_mplsogre_decap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t mplsogre;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
 };
 
-/* Common CLI fields clear vf stats*/
-static cmdline_parse_token_string_t cmd_clear_vf_stats_clear =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_clear_vf_stats_result,
-		 clear, "clear");
-static cmdline_parse_token_string_t cmd_clear_vf_stats_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_clear_vf_stats_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_clear_vf_stats_stats =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_clear_vf_stats_result,
-		 stats, "stats");
-static cmdline_parse_token_num_t cmd_clear_vf_stats_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_clear_vf_stats_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_clear_vf_stats_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_clear_vf_stats_result,
-		 vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, set,
+				 "set");
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, mplsogre,
+				 "mplsogre_decap");
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
+				 mplsogre, "mplsogre_decap-with-vlan");
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
+				 pos_token, "ip-version");
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
+				 ip_version, "ipv4#ipv6");
 
-static void
-cmd_clear_vf_stats_parsed(
-	void *parsed_result,
+static void cmd_set_mplsogre_decap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_clear_vf_stats_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_i40e_reset_vf_stats(res->port_id,
-						  res->vf_id);
-#endif
-#ifdef RTE_NET_BNXT
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_bnxt_reset_vf_stats(res->port_id,
-						  res->vf_id);
-#endif
+	struct cmd_set_mplsogre_decap_result *res = parsed_result;
 
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
+	if (strcmp(res->mplsogre, "mplsogre_decap") == 0)
+		mplsogre_decap_conf.select_vlan = 0;
+	else if (strcmp(res->mplsogre, "mplsogre_decap-with-vlan") == 0)
+		mplsogre_decap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		mplsogre_decap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		mplsogre_decap_conf.select_ipv4 = 0;
 }
 
-static cmdline_parse_inst_t cmd_clear_vf_stats = {
-	.f = cmd_clear_vf_stats_parsed,
+static cmdline_parse_inst_t cmd_set_mplsogre_decap = {
+	.f = cmd_set_mplsogre_decap_parsed,
 	.data = NULL,
-	.help_str = "clear vf stats <port_id> <vf_id>",
+	.help_str = "set mplsogre_decap ip-version ipv4|ipv6",
 	.tokens = {
-		(void *)&cmd_clear_vf_stats_clear,
-		(void *)&cmd_clear_vf_stats_vf,
-		(void *)&cmd_clear_vf_stats_stats,
-		(void *)&cmd_clear_vf_stats_port_id,
-		(void *)&cmd_clear_vf_stats_vf_id,
+		(void *)&cmd_set_mplsogre_decap_set,
+		(void *)&cmd_set_mplsogre_decap_mplsogre_decap,
+		(void *)&cmd_set_mplsogre_decap_ip_version,
+		(void *)&cmd_set_mplsogre_decap_ip_version_value,
 		NULL,
 	},
 };
 
-/* port config pctype mapping reset */
+static cmdline_parse_inst_t cmd_set_mplsogre_decap_with_vlan = {
+	.f = cmd_set_mplsogre_decap_parsed,
+	.data = NULL,
+	.help_str = "set mplsogre_decap-with-vlan ip-version ipv4|ipv6",
+	.tokens = {
+		(void *)&cmd_set_mplsogre_decap_set,
+		(void *)&cmd_set_mplsogre_decap_mplsogre_decap_with_vlan,
+		(void *)&cmd_set_mplsogre_decap_ip_version,
+		(void *)&cmd_set_mplsogre_decap_ip_version_value,
+		NULL,
+	},
+};
 
-/* Common result structure for port config pctype mapping reset */
-struct cmd_pctype_mapping_reset_result {
-	cmdline_fixed_string_t port;
-	cmdline_fixed_string_t config;
-	portid_t port_id;
-	cmdline_fixed_string_t pctype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t reset;
+/** Set MPLSoUDP encapsulation details */
+struct cmd_set_mplsoudp_encap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t mplsoudp;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
+	uint32_t label;
+	uint16_t udp_src;
+	uint16_t udp_dst;
+	cmdline_ipaddr_t ip_src;
+	cmdline_ipaddr_t ip_dst;
+	uint16_t tci;
+	struct rte_ether_addr eth_src;
+	struct rte_ether_addr eth_dst;
 };
 
-/* Common CLI fields for port config pctype mapping reset*/
-static cmdline_parse_token_string_t cmd_pctype_mapping_reset_port =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 port, "port");
-static cmdline_parse_token_string_t cmd_pctype_mapping_reset_config =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 config, "config");
-static cmdline_parse_token_num_t cmd_pctype_mapping_reset_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_pctype_mapping_reset_pctype =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 pctype, "pctype");
-static cmdline_parse_token_string_t cmd_pctype_mapping_reset_mapping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_pctype_mapping_reset_reset =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 reset, "reset");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, set,
+				 "set");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, mplsoudp,
+				 "mplsoudp_encap");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 mplsoudp, "mplsoudp_encap-with-vlan");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "ip-version");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 ip_version, "ipv4#ipv6");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_label =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "label");
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_label_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, label,
+			      RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "udp-src");
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_src_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_src,
+			      RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "udp-dst");
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_dst_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_dst,
+			      RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "ip-src");
+static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_src_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_src);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "ip-dst");
+static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_dst_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_dst);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "vlan-tci");
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_vlan_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, tci,
+			      RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "eth-src");
+static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_src_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				    eth_src);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "eth-dst");
+static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_dst_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				    eth_dst);
 
-static void
-cmd_pctype_mapping_reset_parsed(
-	void *parsed_result,
+static void cmd_set_mplsoudp_encap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_pctype_mapping_reset_result *res = parsed_result;
-	int ret = -ENOTSUP;
+	struct cmd_set_mplsoudp_encap_result *res = parsed_result;
+	union {
+		uint32_t mplsoudp_label;
+		uint8_t label[4];
+	} id = {
+		.mplsoudp_label = rte_cpu_to_be_32(res->label<<12),
+	};
 
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+	if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
+		mplsoudp_encap_conf.select_vlan = 0;
+	else if (strcmp(res->mplsoudp, "mplsoudp_encap-with-vlan") == 0)
+		mplsoudp_encap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		mplsoudp_encap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		mplsoudp_encap_conf.select_ipv4 = 0;
+	else
 		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_flow_type_mapping_reset(res->port_id);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	rte_memcpy(mplsoudp_encap_conf.label, &id.label, 3);
+	mplsoudp_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
+	mplsoudp_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
+	if (mplsoudp_encap_conf.select_ipv4) {
+		IPV4_ADDR_TO_UINT(res->ip_src, mplsoudp_encap_conf.ipv4_src);
+		IPV4_ADDR_TO_UINT(res->ip_dst, mplsoudp_encap_conf.ipv4_dst);
+	} else {
+		IPV6_ADDR_TO_ARRAY(res->ip_src, mplsoudp_encap_conf.ipv6_src);
+		IPV6_ADDR_TO_ARRAY(res->ip_dst, mplsoudp_encap_conf.ipv6_dst);
 	}
+	if (mplsoudp_encap_conf.select_vlan)
+		mplsoudp_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
+	rte_memcpy(mplsoudp_encap_conf.eth_src, res->eth_src.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
+	rte_memcpy(mplsoudp_encap_conf.eth_dst, res->eth_dst.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
 }
 
-static cmdline_parse_inst_t cmd_pctype_mapping_reset = {
-	.f = cmd_pctype_mapping_reset_parsed,
+static cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
+	.f = cmd_set_mplsoudp_encap_parsed,
 	.data = NULL,
-	.help_str = "port config <port_id> pctype mapping reset",
+	.help_str = "set mplsoudp_encap ip-version ipv4|ipv6 label <label>"
+		" udp-src <udp-src> udp-dst <udp-dst> ip-src <ip-src>"
+		" ip-dst <ip-dst> eth-src <eth-src> eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_pctype_mapping_reset_port,
-		(void *)&cmd_pctype_mapping_reset_config,
-		(void *)&cmd_pctype_mapping_reset_port_id,
-		(void *)&cmd_pctype_mapping_reset_pctype,
-		(void *)&cmd_pctype_mapping_reset_mapping,
-		(void *)&cmd_pctype_mapping_reset_reset,
+		(void *)&cmd_set_mplsoudp_encap_set,
+		(void *)&cmd_set_mplsoudp_encap_mplsoudp_encap,
+		(void *)&cmd_set_mplsoudp_encap_ip_version,
+		(void *)&cmd_set_mplsoudp_encap_ip_version_value,
+		(void *)&cmd_set_mplsoudp_encap_label,
+		(void *)&cmd_set_mplsoudp_encap_label_value,
+		(void *)&cmd_set_mplsoudp_encap_udp_src,
+		(void *)&cmd_set_mplsoudp_encap_udp_src_value,
+		(void *)&cmd_set_mplsoudp_encap_udp_dst,
+		(void *)&cmd_set_mplsoudp_encap_udp_dst_value,
+		(void *)&cmd_set_mplsoudp_encap_ip_src,
+		(void *)&cmd_set_mplsoudp_encap_ip_src_value,
+		(void *)&cmd_set_mplsoudp_encap_ip_dst,
+		(void *)&cmd_set_mplsoudp_encap_ip_dst_value,
+		(void *)&cmd_set_mplsoudp_encap_eth_src,
+		(void *)&cmd_set_mplsoudp_encap_eth_src_value,
+		(void *)&cmd_set_mplsoudp_encap_eth_dst,
+		(void *)&cmd_set_mplsoudp_encap_eth_dst_value,
 		NULL,
 	},
 };
 
-/* show port pctype mapping */
+static cmdline_parse_inst_t cmd_set_mplsoudp_encap_with_vlan = {
+	.f = cmd_set_mplsoudp_encap_parsed,
+	.data = NULL,
+	.help_str = "set mplsoudp_encap-with-vlan ip-version ipv4|ipv6"
+		" label <label> udp-src <udp-src> udp-dst <udp-dst>"
+		" ip-src <ip-src> ip-dst <ip-dst> vlan-tci <vlan-tci>"
+		" eth-src <eth-src> eth-dst <eth-dst>",
+	.tokens = {
+		(void *)&cmd_set_mplsoudp_encap_set,
+		(void *)&cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan,
+		(void *)&cmd_set_mplsoudp_encap_ip_version,
+		(void *)&cmd_set_mplsoudp_encap_ip_version_value,
+		(void *)&cmd_set_mplsoudp_encap_label,
+		(void *)&cmd_set_mplsoudp_encap_label_value,
+		(void *)&cmd_set_mplsoudp_encap_udp_src,
+		(void *)&cmd_set_mplsoudp_encap_udp_src_value,
+		(void *)&cmd_set_mplsoudp_encap_udp_dst,
+		(void *)&cmd_set_mplsoudp_encap_udp_dst_value,
+		(void *)&cmd_set_mplsoudp_encap_ip_src,
+		(void *)&cmd_set_mplsoudp_encap_ip_src_value,
+		(void *)&cmd_set_mplsoudp_encap_ip_dst,
+		(void *)&cmd_set_mplsoudp_encap_ip_dst_value,
+		(void *)&cmd_set_mplsoudp_encap_vlan,
+		(void *)&cmd_set_mplsoudp_encap_vlan_value,
+		(void *)&cmd_set_mplsoudp_encap_eth_src,
+		(void *)&cmd_set_mplsoudp_encap_eth_src_value,
+		(void *)&cmd_set_mplsoudp_encap_eth_dst,
+		(void *)&cmd_set_mplsoudp_encap_eth_dst_value,
+		NULL,
+	},
+};
 
-/* Common result structure for show port pctype mapping */
-struct cmd_pctype_mapping_get_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t pctype;
-	cmdline_fixed_string_t mapping;
+/** Set MPLSoUDP decapsulation details */
+struct cmd_set_mplsoudp_decap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t mplsoudp;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
 };
 
-/* Common CLI fields for pctype mapping get */
-static cmdline_parse_token_string_t cmd_pctype_mapping_get_show =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_get_result,
-		 show, "show");
-static cmdline_parse_token_string_t cmd_pctype_mapping_get_port =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_get_result,
-		 port, "port");
-static cmdline_parse_token_num_t cmd_pctype_mapping_get_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_pctype_mapping_get_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_pctype_mapping_get_pctype =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_get_result,
-		 pctype, "pctype");
-static cmdline_parse_token_string_t cmd_pctype_mapping_get_mapping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_get_result,
-		 mapping, "mapping");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, set,
+				 "set");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, mplsoudp,
+				 "mplsoudp_decap");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
+				 mplsoudp, "mplsoudp_decap-with-vlan");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
+				 pos_token, "ip-version");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
+				 ip_version, "ipv4#ipv6");
 
-static void
-cmd_pctype_mapping_get_parsed(
-	void *parsed_result,
+static void cmd_set_mplsoudp_decap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_pctype_mapping_get_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_flow_type_mapping
-				mapping[RTE_PMD_I40E_FLOW_TYPE_MAX];
-	int i, j, first_pctype;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_flow_type_mapping_get(res->port_id, mapping);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		return;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		return;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-		return;
-	}
+	struct cmd_set_mplsoudp_decap_result *res = parsed_result;
 
-#ifdef RTE_NET_I40E
-	for (i = 0; i < RTE_PMD_I40E_FLOW_TYPE_MAX; i++) {
-		if (mapping[i].pctype != 0ULL) {
-			first_pctype = 1;
-
-			printf("pctype: ");
-			for (j = 0; j < RTE_PMD_I40E_PCTYPE_MAX; j++) {
-				if (mapping[i].pctype & (1ULL << j)) {
-					printf(first_pctype ?
-					       "%02d" : ",%02d", j);
-					first_pctype = 0;
-				}
-			}
-			printf("  ->  flowtype: %02d\n", mapping[i].flow_type);
-		}
-	}
-#endif
+	if (strcmp(res->mplsoudp, "mplsoudp_decap") == 0)
+		mplsoudp_decap_conf.select_vlan = 0;
+	else if (strcmp(res->mplsoudp, "mplsoudp_decap-with-vlan") == 0)
+		mplsoudp_decap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		mplsoudp_decap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		mplsoudp_decap_conf.select_ipv4 = 0;
 }
 
-static cmdline_parse_inst_t cmd_pctype_mapping_get = {
-	.f = cmd_pctype_mapping_get_parsed,
+static cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
+	.f = cmd_set_mplsoudp_decap_parsed,
 	.data = NULL,
-	.help_str = "show port <port_id> pctype mapping",
+	.help_str = "set mplsoudp_decap ip-version ipv4|ipv6",
 	.tokens = {
-		(void *)&cmd_pctype_mapping_get_show,
-		(void *)&cmd_pctype_mapping_get_port,
-		(void *)&cmd_pctype_mapping_get_port_id,
-		(void *)&cmd_pctype_mapping_get_pctype,
-		(void *)&cmd_pctype_mapping_get_mapping,
+		(void *)&cmd_set_mplsoudp_decap_set,
+		(void *)&cmd_set_mplsoudp_decap_mplsoudp_decap,
+		(void *)&cmd_set_mplsoudp_decap_ip_version,
+		(void *)&cmd_set_mplsoudp_decap_ip_version_value,
 		NULL,
 	},
 };
 
-/* port config pctype mapping update */
+static cmdline_parse_inst_t cmd_set_mplsoudp_decap_with_vlan = {
+	.f = cmd_set_mplsoudp_decap_parsed,
+	.data = NULL,
+	.help_str = "set mplsoudp_decap-with-vlan ip-version ipv4|ipv6",
+	.tokens = {
+		(void *)&cmd_set_mplsoudp_decap_set,
+		(void *)&cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan,
+		(void *)&cmd_set_mplsoudp_decap_ip_version,
+		(void *)&cmd_set_mplsoudp_decap_ip_version_value,
+		NULL,
+	},
+};
 
-/* Common result structure for port config pctype mapping update */
-struct cmd_pctype_mapping_update_result {
-	cmdline_fixed_string_t port;
-	cmdline_fixed_string_t config;
-	portid_t port_id;
-	cmdline_fixed_string_t pctype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t update;
-	cmdline_fixed_string_t pctype_list;
-	uint16_t flow_type;
+/** Set connection tracking object common details */
+struct cmd_set_conntrack_common_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t conntrack;
+	cmdline_fixed_string_t common;
+	cmdline_fixed_string_t peer;
+	cmdline_fixed_string_t is_orig;
+	cmdline_fixed_string_t enable;
+	cmdline_fixed_string_t live;
+	cmdline_fixed_string_t sack;
+	cmdline_fixed_string_t cack;
+	cmdline_fixed_string_t last_dir;
+	cmdline_fixed_string_t liberal;
+	cmdline_fixed_string_t state;
+	cmdline_fixed_string_t max_ack_win;
+	cmdline_fixed_string_t retrans;
+	cmdline_fixed_string_t last_win;
+	cmdline_fixed_string_t last_seq;
+	cmdline_fixed_string_t last_ack;
+	cmdline_fixed_string_t last_end;
+	cmdline_fixed_string_t last_index;
+	uint8_t stat;
+	uint8_t factor;
+	uint16_t peer_port;
+	uint32_t is_original;
+	uint32_t en;
+	uint32_t is_live;
+	uint32_t s_ack;
+	uint32_t c_ack;
+	uint32_t ld;
+	uint32_t lb;
+	uint8_t re_num;
+	uint8_t li;
+	uint16_t lw;
+	uint32_t ls;
+	uint32_t la;
+	uint32_t le;
 };
 
-/* Common CLI fields for pctype mapping update*/
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_port =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 port, "port");
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_config =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 config, "config");
-static cmdline_parse_token_num_t cmd_pctype_mapping_update_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_pctype =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 pctype, "pctype");
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_mapping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_update =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 update, "update");
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_pc_type =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 pctype_list, NULL);
-static cmdline_parse_token_num_t cmd_pctype_mapping_update_flow_type =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 flow_type, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_conntrack_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 set, "set");
+static cmdline_parse_token_string_t cmd_set_conntrack_conntrack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 conntrack, "conntrack");
+static cmdline_parse_token_string_t cmd_set_conntrack_common_com =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 common, "com");
+static cmdline_parse_token_string_t cmd_set_conntrack_common_peer =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 peer, "peer");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_peer_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      peer_port, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_is_orig =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 is_orig, "is_orig");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_is_orig_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      is_original, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_enable =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 enable, "enable");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_enable_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      en, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_live =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 live, "live");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_live_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      is_live, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_sack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 sack, "sack");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_sack_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      s_ack, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_cack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 cack, "cack");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_cack_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      c_ack, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_dir =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_dir, "last_dir");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_dir_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      ld, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_liberal =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 liberal, "liberal");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_liberal_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      lb, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_state =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 state, "state");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_state_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      stat, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_max_ackwin =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 max_ack_win, "max_ack_win");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_max_ackwin_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      factor, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_retrans =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 retrans, "r_lim");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_retrans_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      re_num, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_win =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_win, "last_win");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_win_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      lw, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_seq =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_seq, "last_seq");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_seq_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      ls, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_ack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_ack, "last_ack");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_ack_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      la, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_end =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_end, "last_end");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_end_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      le, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_index =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_index, "last_index");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_index_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      li, RTE_UINT8);
 
-static void
-cmd_pctype_mapping_update_parsed(
-	void *parsed_result,
+static void cmd_set_conntrack_common_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_pctype_mapping_update_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_flow_type_mapping mapping;
-	unsigned int i;
-	unsigned int nb_item;
-	unsigned int pctype_list[RTE_PMD_I40E_PCTYPE_MAX];
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	nb_item = parse_item_list(res->pctype_list, "pctypes",
-				  RTE_PMD_I40E_PCTYPE_MAX, pctype_list, 1);
-	mapping.flow_type = res->flow_type;
-	for (i = 0, mapping.pctype = 0ULL; i < nb_item; i++)
-		mapping.pctype |= (1ULL << pctype_list[i]);
-	ret = rte_pmd_i40e_flow_type_mapping_update(res->port_id,
-						&mapping,
-						1,
-						0);
-#endif
+	struct cmd_set_conntrack_common_result *res = parsed_result;
 
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid pctype or flow type\n");
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
+	/* No need to swap to big endian. */
+	conntrack_context.peer_port = res->peer_port;
+	conntrack_context.is_original_dir = res->is_original;
+	conntrack_context.enable = res->en;
+	conntrack_context.live_connection = res->is_live;
+	conntrack_context.selective_ack = res->s_ack;
+	conntrack_context.challenge_ack_passed = res->c_ack;
+	conntrack_context.last_direction = res->ld;
+	conntrack_context.liberal_mode = res->lb;
+	conntrack_context.state = (enum rte_flow_conntrack_state)res->stat;
+	conntrack_context.max_ack_window = res->factor;
+	conntrack_context.retransmission_limit = res->re_num;
+	conntrack_context.last_window = res->lw;
+	conntrack_context.last_index =
+		(enum rte_flow_conntrack_tcp_last_index)res->li;
+	conntrack_context.last_seq = res->ls;
+	conntrack_context.last_ack = res->la;
+	conntrack_context.last_end = res->le;
 }
 
-static cmdline_parse_inst_t cmd_pctype_mapping_update = {
-	.f = cmd_pctype_mapping_update_parsed,
+static cmdline_parse_inst_t cmd_set_conntrack_common = {
+	.f = cmd_set_conntrack_common_parsed,
 	.data = NULL,
-	.help_str = "port config <port_id> pctype mapping update"
-	" <pctype_id_0,[pctype_id_1]*> <flowtype_id>",
+	.help_str = "set conntrack com peer <port_id> is_orig <dir> enable <en>"
+		" live <ack_seen> sack <en> cack <passed> last_dir <dir>"
+		" liberal <en> state <s> max_ack_win <factor> r_lim <num>"
+		" last_win <win> last_seq <seq> last_ack <ack> last_end <end>"
+		" last_index <flag>",
 	.tokens = {
-		(void *)&cmd_pctype_mapping_update_port,
-		(void *)&cmd_pctype_mapping_update_config,
-		(void *)&cmd_pctype_mapping_update_port_id,
-		(void *)&cmd_pctype_mapping_update_pctype,
-		(void *)&cmd_pctype_mapping_update_mapping,
-		(void *)&cmd_pctype_mapping_update_update,
-		(void *)&cmd_pctype_mapping_update_pc_type,
-		(void *)&cmd_pctype_mapping_update_flow_type,
+		(void *)&cmd_set_conntrack_set,
+		(void *)&cmd_set_conntrack_conntrack,
+		(void *)&cmd_set_conntrack_common_com,
+		(void *)&cmd_set_conntrack_common_peer,
+		(void *)&cmd_set_conntrack_common_peer_value,
+		(void *)&cmd_set_conntrack_common_is_orig,
+		(void *)&cmd_set_conntrack_common_is_orig_value,
+		(void *)&cmd_set_conntrack_common_enable,
+		(void *)&cmd_set_conntrack_common_enable_value,
+		(void *)&cmd_set_conntrack_common_live,
+		(void *)&cmd_set_conntrack_common_live_value,
+		(void *)&cmd_set_conntrack_common_sack,
+		(void *)&cmd_set_conntrack_common_sack_value,
+		(void *)&cmd_set_conntrack_common_cack,
+		(void *)&cmd_set_conntrack_common_cack_value,
+		(void *)&cmd_set_conntrack_common_last_dir,
+		(void *)&cmd_set_conntrack_common_last_dir_value,
+		(void *)&cmd_set_conntrack_common_liberal,
+		(void *)&cmd_set_conntrack_common_liberal_value,
+		(void *)&cmd_set_conntrack_common_state,
+		(void *)&cmd_set_conntrack_common_state_value,
+		(void *)&cmd_set_conntrack_common_max_ackwin,
+		(void *)&cmd_set_conntrack_common_max_ackwin_value,
+		(void *)&cmd_set_conntrack_common_retrans,
+		(void *)&cmd_set_conntrack_common_retrans_value,
+		(void *)&cmd_set_conntrack_common_last_win,
+		(void *)&cmd_set_conntrack_common_last_win_value,
+		(void *)&cmd_set_conntrack_common_last_seq,
+		(void *)&cmd_set_conntrack_common_last_seq_value,
+		(void *)&cmd_set_conntrack_common_last_ack,
+		(void *)&cmd_set_conntrack_common_last_ack_value,
+		(void *)&cmd_set_conntrack_common_last_end,
+		(void *)&cmd_set_conntrack_common_last_end_value,
+		(void *)&cmd_set_conntrack_common_last_index,
+		(void *)&cmd_set_conntrack_common_last_index_value,
 		NULL,
 	},
 };
 
-/* ptype mapping get */
-
-/* Common result structure for ptype mapping get */
-struct cmd_ptype_mapping_get_result {
-	cmdline_fixed_string_t ptype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t get;
-	portid_t port_id;
-	uint8_t valid_only;
+/** Set connection tracking object both directions' details */
+struct cmd_set_conntrack_dir_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t conntrack;
+	cmdline_fixed_string_t dir;
+	cmdline_fixed_string_t scale;
+	cmdline_fixed_string_t fin;
+	cmdline_fixed_string_t ack_seen;
+	cmdline_fixed_string_t unack;
+	cmdline_fixed_string_t sent_end;
+	cmdline_fixed_string_t reply_end;
+	cmdline_fixed_string_t max_win;
+	cmdline_fixed_string_t max_ack;
+	uint32_t factor;
+	uint32_t f;
+	uint32_t as;
+	uint32_t un;
+	uint32_t se;
+	uint32_t re;
+	uint32_t mw;
+	uint32_t ma;
 };
 
-/* Common CLI fields for ptype mapping get */
-static cmdline_parse_token_string_t cmd_ptype_mapping_get_ptype =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_get_result,
-		 ptype, "ptype");
-static cmdline_parse_token_string_t cmd_ptype_mapping_get_mapping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_get_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_ptype_mapping_get_get =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_get_result,
-		 get, "get");
-static cmdline_parse_token_num_t cmd_ptype_mapping_get_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_get_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_ptype_mapping_get_valid_only =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_get_result,
-		 valid_only, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_dir =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 dir, "orig#rply");
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_scale =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 scale, "scale");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_scale_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      factor, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_fin =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 fin, "fin");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_fin_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      f, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_ack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 ack_seen, "acked");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_ack_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      as, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_unack_data =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 unack, "unack_data");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_unack_data_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      un, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_sent_end =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 sent_end, "sent_end");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_sent_end_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      se, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_reply_end =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 reply_end, "reply_end");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_reply_end_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      re, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_win =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 max_win, "max_win");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_win_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      mw, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_ack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 max_ack, "max_ack");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_ack_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      ma, RTE_UINT32);
 
-static void
-cmd_ptype_mapping_get_parsed(
-	void *parsed_result,
+static void cmd_set_conntrack_dir_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_ptype_mapping_get_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	int max_ptype_num = 256;
-	struct rte_pmd_i40e_ptype_mapping mapping[max_ptype_num];
-	uint16_t count;
-	int i;
-#endif
+	struct cmd_set_conntrack_dir_result *res = parsed_result;
+	struct rte_flow_tcp_dir_param *dir = NULL;
 
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+	if (strcmp(res->dir, "orig") == 0)
+		dir = &conntrack_context.original_dir;
+	else if (strcmp(res->dir, "rply") == 0)
+		dir = &conntrack_context.reply_dir;
+	else
 		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_ptype_mapping_get(res->port_id,
-					mapping,
-					max_ptype_num,
-					&count,
-					res->valid_only);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-
-#ifdef RTE_NET_I40E
-	if (!ret) {
-		for (i = 0; i < count; i++)
-			printf("%3d\t0x%08x\n",
-				mapping[i].hw_ptype, mapping[i].sw_ptype);
-	}
-#endif
+	dir->scale = res->factor;
+	dir->close_initiated = res->f;
+	dir->last_ack_seen = res->as;
+	dir->data_unacked = res->un;
+	dir->sent_end = res->se;
+	dir->reply_end = res->re;
+	dir->max_ack = res->ma;
+	dir->max_win = res->mw;
 }
 
-static cmdline_parse_inst_t cmd_ptype_mapping_get = {
-	.f = cmd_ptype_mapping_get_parsed,
+static cmdline_parse_inst_t cmd_set_conntrack_dir = {
+	.f = cmd_set_conntrack_dir_parsed,
 	.data = NULL,
-	.help_str = "ptype mapping get <port_id> <valid_only>",
+	.help_str = "set conntrack orig|rply scale <factor> fin <sent>"
+		    " acked <seen> unack_data <unack> sent_end <sent>"
+		    " reply_end <reply> max_win <win> max_ack <ack>",
 	.tokens = {
-		(void *)&cmd_ptype_mapping_get_ptype,
-		(void *)&cmd_ptype_mapping_get_mapping,
-		(void *)&cmd_ptype_mapping_get_get,
-		(void *)&cmd_ptype_mapping_get_port_id,
-		(void *)&cmd_ptype_mapping_get_valid_only,
+		(void *)&cmd_set_conntrack_set,
+		(void *)&cmd_set_conntrack_conntrack,
+		(void *)&cmd_set_conntrack_dir_dir,
+		(void *)&cmd_set_conntrack_dir_scale,
+		(void *)&cmd_set_conntrack_dir_scale_value,
+		(void *)&cmd_set_conntrack_dir_fin,
+		(void *)&cmd_set_conntrack_dir_fin_value,
+		(void *)&cmd_set_conntrack_dir_ack,
+		(void *)&cmd_set_conntrack_dir_ack_value,
+		(void *)&cmd_set_conntrack_dir_unack_data,
+		(void *)&cmd_set_conntrack_dir_unack_data_value,
+		(void *)&cmd_set_conntrack_dir_sent_end,
+		(void *)&cmd_set_conntrack_dir_sent_end_value,
+		(void *)&cmd_set_conntrack_dir_reply_end,
+		(void *)&cmd_set_conntrack_dir_reply_end_value,
+		(void *)&cmd_set_conntrack_dir_max_win,
+		(void *)&cmd_set_conntrack_dir_max_win_value,
+		(void *)&cmd_set_conntrack_dir_max_ack,
+		(void *)&cmd_set_conntrack_dir_max_ack_value,
 		NULL,
 	},
 };
 
-/* ptype mapping replace */
+/* show vf stats */
 
-/* Common result structure for ptype mapping replace */
-struct cmd_ptype_mapping_replace_result {
-	cmdline_fixed_string_t ptype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t replace;
+/* Common result structure for show vf stats */
+struct cmd_show_vf_stats_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t stats;
 	portid_t port_id;
-	uint32_t target;
-	uint8_t mask;
-	uint32_t pkt_type;
+	uint16_t vf_id;
 };
 
-/* Common CLI fields for ptype mapping replace */
-static cmdline_parse_token_string_t cmd_ptype_mapping_replace_ptype =
+/* Common CLI fields show vf stats*/
+static cmdline_parse_token_string_t cmd_show_vf_stats_show =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 ptype, "ptype");
-static cmdline_parse_token_string_t cmd_ptype_mapping_replace_mapping =
+		(struct cmd_show_vf_stats_result,
+		 show, "show");
+static cmdline_parse_token_string_t cmd_show_vf_stats_vf =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_ptype_mapping_replace_replace =
+		(struct cmd_show_vf_stats_result,
+		 vf, "vf");
+static cmdline_parse_token_string_t cmd_show_vf_stats_stats =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 replace, "replace");
-static cmdline_parse_token_num_t cmd_ptype_mapping_replace_port_id =
+		(struct cmd_show_vf_stats_result,
+		 stats, "stats");
+static cmdline_parse_token_num_t cmd_show_vf_stats_port_id =
 	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
+		(struct cmd_show_vf_stats_result,
 		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_ptype_mapping_replace_target =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 target, RTE_UINT32);
-static cmdline_parse_token_num_t cmd_ptype_mapping_replace_mask =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 mask, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_ptype_mapping_replace_pkt_type =
+static cmdline_parse_token_num_t cmd_show_vf_stats_vf_id =
 	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 pkt_type, RTE_UINT32);
+		(struct cmd_show_vf_stats_result,
+		 vf_id, RTE_UINT16);
 
 static void
-cmd_ptype_mapping_replace_parsed(
+cmd_show_vf_stats_parsed(
 	void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_ptype_mapping_replace_result *res = parsed_result;
+	struct cmd_show_vf_stats_result *res = parsed_result;
+	struct rte_eth_stats stats;
 	int ret = -ENOTSUP;
+	static const char *nic_stats_border = "########################";
 
 	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
 		return;
 
+	memset(&stats, 0, sizeof(stats));
+
 #ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_ptype_mapping_replace(res->port_id,
-					res->target,
-					res->mask,
-					res->pkt_type);
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_i40e_get_vf_stats(res->port_id,
+						res->vf_id,
+						&stats);
+#endif
+#ifdef RTE_NET_BNXT
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_bnxt_get_vf_stats(res->port_id,
+						res->vf_id,
+						&stats);
 #endif
 
 	switch (ret) {
 	case 0:
 		break;
 	case -EINVAL:
-		fprintf(stderr, "invalid ptype 0x%8x or 0x%8x\n",
-			res->target, res->pkt_type);
+		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
 		break;
 	case -ENODEV:
 		fprintf(stderr, "invalid port_id %d\n", res->port_id);
@@ -14814,162 +12196,99 @@ cmd_ptype_mapping_replace_parsed(
 	default:
 		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
 	}
-}
-
-static cmdline_parse_inst_t cmd_ptype_mapping_replace = {
-	.f = cmd_ptype_mapping_replace_parsed,
-	.data = NULL,
-	.help_str =
-		"ptype mapping replace <port_id> <target> <mask> <pkt_type>",
-	.tokens = {
-		(void *)&cmd_ptype_mapping_replace_ptype,
-		(void *)&cmd_ptype_mapping_replace_mapping,
-		(void *)&cmd_ptype_mapping_replace_replace,
-		(void *)&cmd_ptype_mapping_replace_port_id,
-		(void *)&cmd_ptype_mapping_replace_target,
-		(void *)&cmd_ptype_mapping_replace_mask,
-		(void *)&cmd_ptype_mapping_replace_pkt_type,
-		NULL,
-	},
-};
-
-/* ptype mapping reset */
-
-/* Common result structure for ptype mapping reset */
-struct cmd_ptype_mapping_reset_result {
-	cmdline_fixed_string_t ptype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t reset;
-	portid_t port_id;
-};
-
-/* Common CLI fields for ptype mapping reset*/
-static cmdline_parse_token_string_t cmd_ptype_mapping_reset_ptype =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_reset_result,
-		 ptype, "ptype");
-static cmdline_parse_token_string_t cmd_ptype_mapping_reset_mapping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_reset_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_ptype_mapping_reset_reset =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_reset_result,
-		 reset, "reset");
-static cmdline_parse_token_num_t cmd_ptype_mapping_reset_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_reset_result,
-		 port_id, RTE_UINT16);
-
-static void
-cmd_ptype_mapping_reset_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_ptype_mapping_reset_result *res = parsed_result;
-	int ret = -ENOTSUP;
 
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
+	printf("\n  %s NIC statistics for port %-2d vf %-2d %s\n",
+		nic_stats_border, res->port_id, res->vf_id, nic_stats_border);
 
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_ptype_mapping_reset(res->port_id);
-#endif
+	printf("  RX-packets: %-10"PRIu64" RX-missed: %-10"PRIu64" RX-bytes:  "
+	       "%-"PRIu64"\n",
+	       stats.ipackets, stats.imissed, stats.ibytes);
+	printf("  RX-errors: %-"PRIu64"\n", stats.ierrors);
+	printf("  RX-nombuf:  %-10"PRIu64"\n",
+	       stats.rx_nombuf);
+	printf("  TX-packets: %-10"PRIu64" TX-errors: %-10"PRIu64" TX-bytes:  "
+	       "%-"PRIu64"\n",
+	       stats.opackets, stats.oerrors, stats.obytes);
 
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
+	printf("  %s############################%s\n",
+			       nic_stats_border, nic_stats_border);
 }
 
-static cmdline_parse_inst_t cmd_ptype_mapping_reset = {
-	.f = cmd_ptype_mapping_reset_parsed,
+static cmdline_parse_inst_t cmd_show_vf_stats = {
+	.f = cmd_show_vf_stats_parsed,
 	.data = NULL,
-	.help_str = "ptype mapping reset <port_id>",
+	.help_str = "show vf stats <port_id> <vf_id>",
 	.tokens = {
-		(void *)&cmd_ptype_mapping_reset_ptype,
-		(void *)&cmd_ptype_mapping_reset_mapping,
-		(void *)&cmd_ptype_mapping_reset_reset,
-		(void *)&cmd_ptype_mapping_reset_port_id,
+		(void *)&cmd_show_vf_stats_show,
+		(void *)&cmd_show_vf_stats_vf,
+		(void *)&cmd_show_vf_stats_stats,
+		(void *)&cmd_show_vf_stats_port_id,
+		(void *)&cmd_show_vf_stats_vf_id,
 		NULL,
 	},
 };
 
-/* ptype mapping update */
+/* clear vf stats */
 
-/* Common result structure for ptype mapping update */
-struct cmd_ptype_mapping_update_result {
-	cmdline_fixed_string_t ptype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t reset;
+/* Common result structure for clear vf stats */
+struct cmd_clear_vf_stats_result {
+	cmdline_fixed_string_t clear;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t stats;
 	portid_t port_id;
-	uint8_t hw_ptype;
-	uint32_t sw_ptype;
+	uint16_t vf_id;
 };
 
-/* Common CLI fields for ptype mapping update*/
-static cmdline_parse_token_string_t cmd_ptype_mapping_update_ptype =
+/* Common CLI fields clear vf stats*/
+static cmdline_parse_token_string_t cmd_clear_vf_stats_clear =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
-		 ptype, "ptype");
-static cmdline_parse_token_string_t cmd_ptype_mapping_update_mapping =
+		(struct cmd_clear_vf_stats_result,
+		 clear, "clear");
+static cmdline_parse_token_string_t cmd_clear_vf_stats_vf =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_ptype_mapping_update_update =
+		(struct cmd_clear_vf_stats_result,
+		 vf, "vf");
+static cmdline_parse_token_string_t cmd_clear_vf_stats_stats =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
-		 reset, "update");
-static cmdline_parse_token_num_t cmd_ptype_mapping_update_port_id =
+		(struct cmd_clear_vf_stats_result,
+		 stats, "stats");
+static cmdline_parse_token_num_t cmd_clear_vf_stats_port_id =
 	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
+		(struct cmd_clear_vf_stats_result,
 		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_ptype_mapping_update_hw_ptype =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
-		 hw_ptype, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_ptype_mapping_update_sw_ptype =
+static cmdline_parse_token_num_t cmd_clear_vf_stats_vf_id =
 	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
-		 sw_ptype, RTE_UINT32);
+		(struct cmd_clear_vf_stats_result,
+		 vf_id, RTE_UINT16);
 
 static void
-cmd_ptype_mapping_update_parsed(
+cmd_clear_vf_stats_parsed(
 	void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_ptype_mapping_update_result *res = parsed_result;
+	struct cmd_clear_vf_stats_result *res = parsed_result;
 	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_ptype_mapping mapping;
-#endif
+
 	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
 		return;
 
 #ifdef RTE_NET_I40E
-	mapping.hw_ptype = res->hw_ptype;
-	mapping.sw_ptype = res->sw_ptype;
-	ret = rte_pmd_i40e_ptype_mapping_update(res->port_id,
-						&mapping,
-						1,
-						0);
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_i40e_reset_vf_stats(res->port_id,
+						  res->vf_id);
+#endif
+#ifdef RTE_NET_BNXT
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_bnxt_reset_vf_stats(res->port_id,
+						  res->vf_id);
 #endif
 
 	switch (ret) {
 	case 0:
 		break;
 	case -EINVAL:
-		fprintf(stderr, "invalid ptype 0x%8x\n", res->sw_ptype);
+		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
 		break;
 	case -ENODEV:
 		fprintf(stderr, "invalid port_id %d\n", res->port_id);
@@ -14982,17 +12301,16 @@ cmd_ptype_mapping_update_parsed(
 	}
 }
 
-static cmdline_parse_inst_t cmd_ptype_mapping_update = {
-	.f = cmd_ptype_mapping_update_parsed,
+static cmdline_parse_inst_t cmd_clear_vf_stats = {
+	.f = cmd_clear_vf_stats_parsed,
 	.data = NULL,
-	.help_str = "ptype mapping update <port_id> <hw_ptype> <sw_ptype>",
+	.help_str = "clear vf stats <port_id> <vf_id>",
 	.tokens = {
-		(void *)&cmd_ptype_mapping_update_ptype,
-		(void *)&cmd_ptype_mapping_update_mapping,
-		(void *)&cmd_ptype_mapping_update_update,
-		(void *)&cmd_ptype_mapping_update_port_id,
-		(void *)&cmd_ptype_mapping_update_hw_ptype,
-		(void *)&cmd_ptype_mapping_update_sw_ptype,
+		(void *)&cmd_clear_vf_stats_clear,
+		(void *)&cmd_clear_vf_stats_vf,
+		(void *)&cmd_clear_vf_stats_stats,
+		(void *)&cmd_clear_vf_stats_port_id,
+		(void *)&cmd_clear_vf_stats_vf_id,
 		NULL,
 	},
 };
@@ -16929,9 +14247,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_cleanup_txq_mbufs,
 	(cmdline_parse_inst_t *)&cmd_dump,
 	(cmdline_parse_inst_t *)&cmd_dump_one,
-#ifdef RTE_NET_I40E
-	(cmdline_parse_inst_t *)&cmd_add_del_raw_flow_director,
-#endif
 	(cmdline_parse_inst_t *)&cmd_set_flow_director_ip_mask,
 	(cmdline_parse_inst_t *)&cmd_set_flow_director_mac_vlan_mask,
 	(cmdline_parse_inst_t *)&cmd_set_flow_director_tunnel_mask,
@@ -16967,14 +14282,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_vf_rate_limit,
 	(cmdline_parse_inst_t *)&cmd_vf_rxvlan_filter,
 	(cmdline_parse_inst_t *)&cmd_set_vf_mac_addr,
-	(cmdline_parse_inst_t *)&cmd_set_vf_promisc,
-	(cmdline_parse_inst_t *)&cmd_set_vf_allmulti,
-	(cmdline_parse_inst_t *)&cmd_set_vf_broadcast,
-	(cmdline_parse_inst_t *)&cmd_set_vf_vlan_tag,
-	(cmdline_parse_inst_t *)&cmd_vf_max_bw,
-	(cmdline_parse_inst_t *)&cmd_vf_tc_min_bw,
-	(cmdline_parse_inst_t *)&cmd_vf_tc_max_bw,
-	(cmdline_parse_inst_t *)&cmd_strict_link_prio,
 	(cmdline_parse_inst_t *)&cmd_tc_min_bw,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan_tos_ttl,
@@ -16995,29 +14302,10 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_mplsoudp_decap_with_vlan,
 	(cmdline_parse_inst_t *)&cmd_set_conntrack_common,
 	(cmdline_parse_inst_t *)&cmd_set_conntrack_dir,
-	(cmdline_parse_inst_t *)&cmd_ddp_add,
-	(cmdline_parse_inst_t *)&cmd_ddp_del,
-	(cmdline_parse_inst_t *)&cmd_ddp_get_list,
-	(cmdline_parse_inst_t *)&cmd_ddp_get_info,
-	(cmdline_parse_inst_t *)&cmd_cfg_input_set,
-	(cmdline_parse_inst_t *)&cmd_clear_input_set,
 	(cmdline_parse_inst_t *)&cmd_show_vf_stats,
 	(cmdline_parse_inst_t *)&cmd_clear_vf_stats,
 	(cmdline_parse_inst_t *)&cmd_show_port_supported_ptypes,
 	(cmdline_parse_inst_t *)&cmd_set_port_ptypes,
-	(cmdline_parse_inst_t *)&cmd_ptype_mapping_get,
-	(cmdline_parse_inst_t *)&cmd_ptype_mapping_replace,
-	(cmdline_parse_inst_t *)&cmd_ptype_mapping_reset,
-	(cmdline_parse_inst_t *)&cmd_ptype_mapping_update,
-
-	(cmdline_parse_inst_t *)&cmd_pctype_mapping_get,
-	(cmdline_parse_inst_t *)&cmd_pctype_mapping_reset,
-	(cmdline_parse_inst_t *)&cmd_pctype_mapping_update,
-	(cmdline_parse_inst_t *)&cmd_queue_region,
-	(cmdline_parse_inst_t *)&cmd_region_flowtype,
-	(cmdline_parse_inst_t *)&cmd_user_priority_region,
-	(cmdline_parse_inst_t *)&cmd_flush_queue_region,
-	(cmdline_parse_inst_t *)&cmd_show_queue_region_info_all,
 	(cmdline_parse_inst_t *)&cmd_show_port_tm_cap,
 	(cmdline_parse_inst_t *)&cmd_show_port_tm_level_cap,
 	(cmdline_parse_inst_t *)&cmd_show_port_tm_node_cap,
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 1b1e738f83..2e5c631e8d 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -6243,49 +6243,6 @@ close_file(uint8_t *buf)
 	return -1;
 }
 
-void
-port_queue_region_info_display(portid_t port_id, void *buf)
-{
-#ifdef RTE_NET_I40E
-	uint16_t i, j;
-	struct rte_pmd_i40e_queue_regions *info =
-		(struct rte_pmd_i40e_queue_regions *)buf;
-	static const char *queue_region_info_stats_border = "-------";
-
-	if (!info->queue_region_number)
-		printf("there is no region has been set before");
-
-	printf("\n	%s All queue region info for port=%2d %s",
-			queue_region_info_stats_border, port_id,
-			queue_region_info_stats_border);
-	printf("\n	queue_region_number: %-14u \n",
-			info->queue_region_number);
-
-	for (i = 0; i < info->queue_region_number; i++) {
-		printf("\n	region_id: %-14u queue_number: %-14u "
-			"queue_start_index: %-14u \n",
-			info->region[i].region_id,
-			info->region[i].queue_num,
-			info->region[i].queue_start_index);
-
-		printf("  user_priority_num is	%-14u :",
-					info->region[i].user_priority_num);
-		for (j = 0; j < info->region[i].user_priority_num; j++)
-			printf(" %-14u ", info->region[i].user_priority[j]);
-
-		printf("\n	flowtype_num is  %-14u :",
-				info->region[i].flowtype_num);
-		for (j = 0; j < info->region[i].flowtype_num; j++)
-			printf(" %-14u ", info->region[i].hw_flowtype[j]);
-	}
-#else
-	RTE_SET_USED(port_id);
-	RTE_SET_USED(buf);
-#endif
-
-	printf("\n\n");
-}
-
 void
 show_macs(portid_t port_id)
 {
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index b7f926cd38..71aa168c6e 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -1122,8 +1122,6 @@ uint8_t *open_file(const char *file_path, uint32_t *size);
 int save_file(const char *file_path, uint8_t *buf, uint32_t size);
 int close_file(uint8_t *buf);
 
-void port_queue_region_info_display(portid_t port_id, void *buf);
-
 enum print_warning {
 	ENABLED_WARN = 0,
 	DISABLED_WARN
diff --git a/drivers/net/i40e/i40e_testpmd.c b/drivers/net/i40e/i40e_testpmd.c
new file mode 100644
index 0000000000..fd74352a07
--- /dev/null
+++ b/drivers/net/i40e/i40e_testpmd.c
@@ -0,0 +1,2718 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2016 Intel Corporation.
+ */
+#include <rte_pmd_i40e.h>
+
+#include <cmdline_parse_num.h>
+#include <cmdline_parse_string.h>
+
+#include "testpmd.h"
+
+/* *** queue region set *** */
+struct cmd_queue_region_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t region;
+	uint8_t  region_id;
+	cmdline_fixed_string_t queue_start_index;
+	uint8_t  queue_id;
+	cmdline_fixed_string_t queue_num;
+	uint8_t  queue_num_value;
+};
+
+static void
+cmd_queue_region_parsed(void *parsed_result,
+			__rte_unused struct cmdline *cl,
+			__rte_unused void *data)
+{
+	struct cmd_queue_region_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_SET;
+	region_conf.region_id = res->region_id;
+	region_conf.queue_num = res->queue_num_value;
+	region_conf.queue_start_index = res->queue_id;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+				op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "queue region config error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+static cmdline_parse_token_string_t cmd_queue_region_set =
+TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_queue_region_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result, port, "port");
+static cmdline_parse_token_num_t cmd_queue_region_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+				port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_queue_region_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+				 cmd, "queue-region");
+static cmdline_parse_token_string_t cmd_queue_region_id =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+				region, "region_id");
+static cmdline_parse_token_num_t cmd_queue_region_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+				region_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+				queue_start_index, "queue_start_index");
+static cmdline_parse_token_num_t cmd_queue_region_queue_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+				queue_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_queue_region_queue_num =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+				queue_num, "queue_num");
+static cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+				queue_num_value, RTE_UINT8);
+
+static cmdline_parse_inst_t cmd_queue_region = {
+	.f = cmd_queue_region_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region region_id <value> "
+		"queue_start_index <value> queue_num <value>: Set a queue region",
+	.tokens = {
+		(void *)&cmd_queue_region_set,
+		(void *)&cmd_queue_region_port,
+		(void *)&cmd_queue_region_port_id,
+		(void *)&cmd_queue_region_cmd,
+		(void *)&cmd_queue_region_id,
+		(void *)&cmd_queue_region_index,
+		(void *)&cmd_queue_region_queue_start_index,
+		(void *)&cmd_queue_region_queue_id,
+		(void *)&cmd_queue_region_queue_num,
+		(void *)&cmd_queue_region_queue_num_value,
+		NULL,
+	},
+};
+
+/* *** queue region and flowtype set *** */
+struct cmd_region_flowtype_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t region;
+	uint8_t  region_id;
+	cmdline_fixed_string_t flowtype;
+	uint8_t  flowtype_id;
+};
+
+static void
+cmd_region_flowtype_parsed(void *parsed_result,
+			__rte_unused struct cmdline *cl,
+			__rte_unused void *data)
+{
+	struct cmd_region_flowtype_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_FLOWTYPE_SET;
+	region_conf.region_id = res->region_id;
+	region_conf.hw_flowtype = res->flowtype_id;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+			op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "region flowtype config error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+static cmdline_parse_token_string_t cmd_region_flowtype_set =
+TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+				set, "set");
+static cmdline_parse_token_string_t cmd_region_flowtype_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+				port, "port");
+static cmdline_parse_token_num_t cmd_region_flowtype_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
+				port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_region_flowtype_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+				cmd, "queue-region");
+static cmdline_parse_token_string_t cmd_region_flowtype_index =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+				region, "region_id");
+static cmdline_parse_token_num_t cmd_region_flowtype_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
+				region_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+				flowtype, "flowtype");
+static cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
+				flowtype_id, RTE_UINT8);
+static cmdline_parse_inst_t cmd_region_flowtype = {
+	.f = cmd_region_flowtype_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region region_id <value> "
+		"flowtype <value>: Set a flowtype region index",
+	.tokens = {
+		(void *)&cmd_region_flowtype_set,
+		(void *)&cmd_region_flowtype_port,
+		(void *)&cmd_region_flowtype_port_index,
+		(void *)&cmd_region_flowtype_cmd,
+		(void *)&cmd_region_flowtype_index,
+		(void *)&cmd_region_flowtype_id,
+		(void *)&cmd_region_flowtype_flow_index,
+		(void *)&cmd_region_flowtype_flow_id,
+		NULL,
+	},
+};
+
+/* *** User Priority (UP) to queue region (region_id) set *** */
+struct cmd_user_priority_region_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t user_priority;
+	uint8_t  user_priority_id;
+	cmdline_fixed_string_t region;
+	uint8_t  region_id;
+};
+
+static void
+cmd_user_priority_region_parsed(void *parsed_result,
+			__rte_unused struct cmdline *cl,
+			__rte_unused void *data)
+{
+	struct cmd_user_priority_region_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_USER_PRIORITY_SET;
+	region_conf.user_priority = res->user_priority_id;
+	region_conf.region_id = res->region_id;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+				op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "user_priority region config error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+static cmdline_parse_token_string_t cmd_user_priority_region_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+				set, "set");
+static cmdline_parse_token_string_t cmd_user_priority_region_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+				port, "port");
+static cmdline_parse_token_num_t cmd_user_priority_region_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
+				port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_user_priority_region_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+				cmd, "queue-region");
+static cmdline_parse_token_string_t cmd_user_priority_region_UP =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+				user_priority, "UP");
+static cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
+				user_priority_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_user_priority_region_region =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+				region, "region_id");
+static cmdline_parse_token_num_t cmd_user_priority_region_region_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
+				region_id, RTE_UINT8);
+
+static cmdline_parse_inst_t cmd_user_priority_region = {
+	.f = cmd_user_priority_region_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region UP <value> "
+		"region_id <value>: Set the mapping of User Priority (UP) "
+		"to queue region (region_id) ",
+	.tokens = {
+		(void *)&cmd_user_priority_region_set,
+		(void *)&cmd_user_priority_region_port,
+		(void *)&cmd_user_priority_region_port_index,
+		(void *)&cmd_user_priority_region_cmd,
+		(void *)&cmd_user_priority_region_UP,
+		(void *)&cmd_user_priority_region_UP_id,
+		(void *)&cmd_user_priority_region_region,
+		(void *)&cmd_user_priority_region_region_id,
+		NULL,
+	},
+};
+
+/* *** flush all queue region related configuration *** */
+struct cmd_flush_queue_region_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t flush;
+	cmdline_fixed_string_t what;
+};
+
+static void
+cmd_flush_queue_region_parsed(void *parsed_result,
+			__rte_unused struct cmdline *cl,
+			__rte_unused void *data)
+{
+	struct cmd_flush_queue_region_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+
+	if (strcmp(res->what, "on") == 0)
+		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_ON;
+	else
+		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_OFF;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+				op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "queue region config flush error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+static cmdline_parse_token_string_t cmd_flush_queue_region_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+				set, "set");
+static cmdline_parse_token_string_t cmd_flush_queue_region_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+				port, "port");
+static cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_flush_queue_region_result,
+				port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+				cmd, "queue-region");
+static cmdline_parse_token_string_t cmd_flush_queue_region_flush =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+				flush, "flush");
+static cmdline_parse_token_string_t cmd_flush_queue_region_what =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+				what, "on#off");
+
+static cmdline_parse_inst_t cmd_flush_queue_region = {
+	.f = cmd_flush_queue_region_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region flush on|off"
+		": flush all queue region related configuration",
+	.tokens = {
+		(void *)&cmd_flush_queue_region_set,
+		(void *)&cmd_flush_queue_region_port,
+		(void *)&cmd_flush_queue_region_port_index,
+		(void *)&cmd_flush_queue_region_cmd,
+		(void *)&cmd_flush_queue_region_flush,
+		(void *)&cmd_flush_queue_region_what,
+		NULL,
+	},
+};
+
+/* *** get all queue region related configuration info *** */
+struct cmd_show_queue_region_info {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+};
+
+static void
+port_queue_region_info_display(portid_t port_id, void *buf)
+{
+	uint16_t i, j;
+	struct rte_pmd_i40e_queue_regions *info =
+		(struct rte_pmd_i40e_queue_regions *)buf;
+	static const char *queue_region_info_stats_border = "-------";
+
+	if (!info->queue_region_number)
+		printf("there is no region has been set before");
+
+	printf("\n	%s All queue region info for port=%2d %s",
+			queue_region_info_stats_border, port_id,
+			queue_region_info_stats_border);
+	printf("\n	queue_region_number: %-14u\n",
+			info->queue_region_number);
+
+	for (i = 0; i < info->queue_region_number; i++) {
+		printf("\n	region_id: %-14u queue_number: %-14u "
+			"queue_start_index: %-14u\n",
+			info->region[i].region_id,
+			info->region[i].queue_num,
+			info->region[i].queue_start_index);
+
+		printf("  user_priority_num is	%-14u :",
+					info->region[i].user_priority_num);
+		for (j = 0; j < info->region[i].user_priority_num; j++)
+			printf(" %-14u ", info->region[i].user_priority[j]);
+
+		printf("\n	flowtype_num is  %-14u :",
+				info->region[i].flowtype_num);
+		for (j = 0; j < info->region[i].flowtype_num; j++)
+			printf(" %-14u ", info->region[i].hw_flowtype[j]);
+	}
+
+	printf("\n\n");
+}
+
+static void
+cmd_show_queue_region_info_parsed(void *parsed_result,
+			__rte_unused struct cmdline *cl,
+			__rte_unused void *data)
+{
+	struct cmd_show_queue_region_info *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_regions rte_pmd_regions;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&rte_pmd_regions, 0, sizeof(rte_pmd_regions));
+
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_INFO_GET;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+					op_type, &rte_pmd_regions);
+
+	port_queue_region_info_display(res->port_id, &rte_pmd_regions);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "queue region config info show error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+static cmdline_parse_token_string_t cmd_show_queue_region_info_get =
+TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
+				show, "show");
+static cmdline_parse_token_string_t cmd_show_queue_region_info_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
+				port, "port");
+static cmdline_parse_token_num_t cmd_show_queue_region_info_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_show_queue_region_info,
+				port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
+				cmd, "queue-region");
+
+static cmdline_parse_inst_t cmd_show_queue_region_info_all = {
+	.f = cmd_show_queue_region_info_parsed,
+	.data = NULL,
+	.help_str = "show port <port_id> queue-region"
+		": show all queue region related configuration info",
+	.tokens = {
+		(void *)&cmd_show_queue_region_info_get,
+		(void *)&cmd_show_queue_region_info_port,
+		(void *)&cmd_show_queue_region_info_port_index,
+		(void *)&cmd_show_queue_region_info_cmd,
+		NULL,
+	},
+};
+
+static uint16_t
+str2flowtype(char *string)
+{
+	uint8_t i = 0;
+	static const struct {
+		char str[32];
+		uint16_t type;
+	} flowtype_str[] = {
+		{"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},
+		{"ipv6-ex", RTE_ETH_FLOW_IPV6_EX},
+		{"ipv6-tcp-ex", RTE_ETH_FLOW_IPV6_TCP_EX},
+		{"ipv6-udp-ex", RTE_ETH_FLOW_IPV6_UDP_EX},
+		{"gtpu", RTE_ETH_FLOW_GTPU},
+	};
+
+	for (i = 0; i < RTE_DIM(flowtype_str); i++) {
+		if (!strcmp(flowtype_str[i].str, string))
+			return flowtype_str[i].type;
+	}
+
+	if (isdigit(string[0]) && atoi(string) > 0 && atoi(string) < 64)
+		return (uint16_t)atoi(string);
+
+	return RTE_ETH_FLOW_UNKNOWN;
+}
+
+/* *** deal with flow director filter *** */
+struct cmd_flow_director_result {
+	cmdline_fixed_string_t flow_director_filter;
+	portid_t port_id;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t mode_value;
+	cmdline_fixed_string_t ops;
+	cmdline_fixed_string_t flow;
+	cmdline_fixed_string_t flow_type;
+	cmdline_fixed_string_t drop;
+	cmdline_fixed_string_t queue;
+	uint16_t  queue_id;
+	cmdline_fixed_string_t fd_id;
+	uint32_t  fd_id_value;
+	cmdline_fixed_string_t packet;
+	char filepath[];
+};
+
+static void
+cmd_flow_director_filter_parsed(void *parsed_result,
+			  __rte_unused struct cmdline *cl,
+			  __rte_unused void *data)
+{
+	struct cmd_flow_director_result *res = parsed_result;
+	int ret = 0;
+	struct rte_pmd_i40e_flow_type_mapping
+			mapping[RTE_PMD_I40E_FLOW_TYPE_MAX];
+	struct rte_pmd_i40e_pkt_template_conf conf;
+	uint16_t flow_type = str2flowtype(res->flow_type);
+	uint16_t i, port = res->port_id;
+	uint8_t add;
+
+	memset(&conf, 0, sizeof(conf));
+
+	if (flow_type == RTE_ETH_FLOW_UNKNOWN) {
+		fprintf(stderr, "Invalid flow type specified.\n");
+		return;
+	}
+	ret = rte_pmd_i40e_flow_type_mapping_get(res->port_id,
+						 mapping);
+	if (ret)
+		return;
+	if (mapping[flow_type].pctype == 0ULL) {
+		fprintf(stderr, "Invalid flow type specified.\n");
+		return;
+	}
+	for (i = 0; i < RTE_PMD_I40E_PCTYPE_MAX; i++) {
+		if (mapping[flow_type].pctype & (1ULL << i)) {
+			conf.input.pctype = i;
+			break;
+		}
+	}
+
+	conf.input.packet = open_file(res->filepath,
+				&conf.input.length);
+	if (!conf.input.packet)
+		return;
+	if (!strcmp(res->drop, "drop"))
+		conf.action.behavior =
+			RTE_PMD_I40E_PKT_TEMPLATE_REJECT;
+	else
+		conf.action.behavior =
+			RTE_PMD_I40E_PKT_TEMPLATE_ACCEPT;
+	conf.action.report_status =
+			RTE_PMD_I40E_PKT_TEMPLATE_REPORT_ID;
+	conf.action.rx_queue = res->queue_id;
+	conf.soft_id = res->fd_id_value;
+	add  = strcmp(res->ops, "del") ? 1 : 0;
+	ret = rte_pmd_i40e_flow_add_del_packet_template(port,
+							&conf,
+							add);
+	if (ret < 0)
+		fprintf(stderr, "flow director config error: (%s)\n",
+			strerror(-ret));
+	close_file(conf.input.packet);
+}
+
+static cmdline_parse_token_string_t cmd_flow_director_filter =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 flow_director_filter, "flow_director_filter");
+static cmdline_parse_token_num_t cmd_flow_director_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+			      port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_flow_director_ops =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 ops, "add#del#update");
+static cmdline_parse_token_string_t cmd_flow_director_flow =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 flow, "flow");
+static cmdline_parse_token_string_t cmd_flow_director_flow_type =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		flow_type, NULL);
+static cmdline_parse_token_string_t cmd_flow_director_drop =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 drop, "drop#fwd");
+static cmdline_parse_token_string_t cmd_flow_director_queue =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 queue, "queue");
+static cmdline_parse_token_num_t cmd_flow_director_queue_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+			      queue_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_flow_director_fd_id =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 fd_id, "fd_id");
+static cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+			      fd_id_value, RTE_UINT32);
+
+static cmdline_parse_token_string_t cmd_flow_director_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 mode, "mode");
+static cmdline_parse_token_string_t cmd_flow_director_mode_raw =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 mode_value, "raw");
+static cmdline_parse_token_string_t cmd_flow_director_packet =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 packet, "packet");
+static cmdline_parse_token_string_t cmd_flow_director_filepath =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+				 filepath, NULL);
+
+static cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
+	.f = cmd_flow_director_filter_parsed,
+	.data = NULL,
+	.help_str = "flow_director_filter ... : Add or delete a raw flow "
+		"director entry on NIC",
+	.tokens = {
+		(void *)&cmd_flow_director_filter,
+		(void *)&cmd_flow_director_port_id,
+		(void *)&cmd_flow_director_mode,
+		(void *)&cmd_flow_director_mode_raw,
+		(void *)&cmd_flow_director_ops,
+		(void *)&cmd_flow_director_flow,
+		(void *)&cmd_flow_director_flow_type,
+		(void *)&cmd_flow_director_drop,
+		(void *)&cmd_flow_director_queue,
+		(void *)&cmd_flow_director_queue_id,
+		(void *)&cmd_flow_director_fd_id,
+		(void *)&cmd_flow_director_fd_id_value,
+		(void *)&cmd_flow_director_packet,
+		(void *)&cmd_flow_director_filepath,
+		NULL,
+	},
+};
+
+/* VF unicast promiscuous mode configuration */
+
+/* Common result structure for VF unicast promiscuous mode */
+struct cmd_vf_promisc_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t promisc;
+	portid_t port_id;
+	uint32_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for VF unicast promiscuous mode enable disable */
+static cmdline_parse_token_string_t cmd_vf_promisc_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_promisc_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_vf_promisc_vf =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_promisc_result,
+		 vf, "vf");
+static cmdline_parse_token_string_t cmd_vf_promisc_promisc =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_promisc_result,
+		 promisc, "promisc");
+static cmdline_parse_token_num_t cmd_vf_promisc_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_vf_promisc_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_promisc_vf_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_vf_promisc_result,
+		 vf_id, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_vf_promisc_on_off =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_promisc_result,
+		 on_off, "on#off");
+
+static void
+cmd_set_vf_promisc_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_promisc_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_unicast_promisc(res->port_id,
+						  res->vf_id, is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_promisc = {
+	.f = cmd_set_vf_promisc_parsed,
+	.data = NULL,
+	.help_str = "set vf promisc <port_id> <vf_id> on|off: "
+		"Set unicast promiscuous mode for a VF from the PF",
+	.tokens = {
+		(void *)&cmd_vf_promisc_set,
+		(void *)&cmd_vf_promisc_vf,
+		(void *)&cmd_vf_promisc_promisc,
+		(void *)&cmd_vf_promisc_port_id,
+		(void *)&cmd_vf_promisc_vf_id,
+		(void *)&cmd_vf_promisc_on_off,
+		NULL,
+	},
+};
+
+/* VF multicast promiscuous mode configuration */
+
+/* Common result structure for VF multicast promiscuous mode */
+struct cmd_vf_allmulti_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t allmulti;
+	portid_t port_id;
+	uint32_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for VF multicast promiscuous mode enable disable */
+static cmdline_parse_token_string_t cmd_vf_allmulti_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_allmulti_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_vf_allmulti_vf =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_allmulti_result,
+		 vf, "vf");
+static cmdline_parse_token_string_t cmd_vf_allmulti_allmulti =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_allmulti_result,
+		 allmulti, "allmulti");
+static cmdline_parse_token_num_t cmd_vf_allmulti_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_vf_allmulti_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_allmulti_vf_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_vf_allmulti_result,
+		 vf_id, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_vf_allmulti_on_off =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_allmulti_result,
+		 on_off, "on#off");
+
+static void
+cmd_set_vf_allmulti_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_allmulti_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_multicast_promisc(res->port_id,
+						    res->vf_id, is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_allmulti = {
+	.f = cmd_set_vf_allmulti_parsed,
+	.data = NULL,
+	.help_str = "set vf allmulti <port_id> <vf_id> on|off: "
+		"Set multicast promiscuous mode for a VF from the PF",
+	.tokens = {
+		(void *)&cmd_vf_allmulti_set,
+		(void *)&cmd_vf_allmulti_vf,
+		(void *)&cmd_vf_allmulti_allmulti,
+		(void *)&cmd_vf_allmulti_port_id,
+		(void *)&cmd_vf_allmulti_vf_id,
+		(void *)&cmd_vf_allmulti_on_off,
+		NULL,
+	},
+};
+
+/* vf broadcast mode configuration */
+
+/* Common result structure for vf broadcast */
+struct cmd_set_vf_broadcast_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t broadcast;
+	portid_t port_id;
+	uint16_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for vf broadcast enable disable */
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_set_vf_broadcast_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_vf =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_set_vf_broadcast_result,
+		 vf, "vf");
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_broadcast =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_set_vf_broadcast_result,
+		 broadcast, "broadcast");
+static cmdline_parse_token_num_t cmd_set_vf_broadcast_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_set_vf_broadcast_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_set_vf_broadcast_vf_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_set_vf_broadcast_result,
+		 vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_on_off =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_set_vf_broadcast_result,
+		 on_off, "on#off");
+
+static void
+cmd_set_vf_broadcast_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_set_vf_broadcast_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_broadcast(res->port_id,
+					    res->vf_id, is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
+			res->vf_id, is_on);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_broadcast = {
+	.f = cmd_set_vf_broadcast_parsed,
+	.data = NULL,
+	.help_str = "set vf broadcast <port_id> <vf_id> on|off",
+	.tokens = {
+		(void *)&cmd_set_vf_broadcast_set,
+		(void *)&cmd_set_vf_broadcast_vf,
+		(void *)&cmd_set_vf_broadcast_broadcast,
+		(void *)&cmd_set_vf_broadcast_port_id,
+		(void *)&cmd_set_vf_broadcast_vf_id,
+		(void *)&cmd_set_vf_broadcast_on_off,
+		NULL,
+	},
+};
+
+/* vf vlan tag configuration */
+
+/* Common result structure for vf vlan tag */
+struct cmd_set_vf_vlan_tag_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t vlan;
+	cmdline_fixed_string_t tag;
+	portid_t port_id;
+	uint16_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for vf vlan tag enable disable */
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_set_vf_vlan_tag_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vf =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_set_vf_vlan_tag_result,
+		 vf, "vf");
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vlan =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_set_vf_vlan_tag_result,
+		 vlan, "vlan");
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_tag =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_set_vf_vlan_tag_result,
+		 tag, "tag");
+static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_set_vf_vlan_tag_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_vf_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_set_vf_vlan_tag_result,
+		 vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_on_off =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_set_vf_vlan_tag_result,
+		 on_off, "on#off");
+
+static void
+cmd_set_vf_vlan_tag_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_set_vf_vlan_tag_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_vlan_tag(res->port_id,
+					   res->vf_id, is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
+			res->vf_id, is_on);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_vlan_tag = {
+	.f = cmd_set_vf_vlan_tag_parsed,
+	.data = NULL,
+	.help_str = "set vf vlan tag <port_id> <vf_id> on|off",
+	.tokens = {
+		(void *)&cmd_set_vf_vlan_tag_set,
+		(void *)&cmd_set_vf_vlan_tag_vf,
+		(void *)&cmd_set_vf_vlan_tag_vlan,
+		(void *)&cmd_set_vf_vlan_tag_tag,
+		(void *)&cmd_set_vf_vlan_tag_port_id,
+		(void *)&cmd_set_vf_vlan_tag_vf_id,
+		(void *)&cmd_set_vf_vlan_tag_on_off,
+		NULL,
+	},
+};
+
+/* Common definition of VF and TC TX bandwidth configuration */
+struct cmd_vf_tc_bw_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t tc;
+	cmdline_fixed_string_t tx;
+	cmdline_fixed_string_t max_bw;
+	cmdline_fixed_string_t min_bw;
+	cmdline_fixed_string_t strict_link_prio;
+	portid_t port_id;
+	uint16_t vf_id;
+	uint8_t tc_no;
+	uint32_t bw;
+	cmdline_fixed_string_t bw_list;
+	uint8_t tc_map;
+};
+
+static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 tc, "tc");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 tx, "tx");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_strict_link_prio =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 strict_link_prio, "strict-link-priority");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_max_bw =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 max_bw, "max-bandwidth");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 min_bw, "min-bandwidth");
+static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_tc_bw_vf_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 vf_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_no =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 tc_no, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_vf_tc_bw_bw =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 bw, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 bw_list, NULL);
+static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_map =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 tc_map, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_vf_tc_bw_vf =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 vf, "vf");
+
+/* VF max bandwidth setting */
+static void
+cmd_vf_max_bw_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_max_bw(res->port_id,
+					 res->vf_id, res->bw);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or bandwidth %d\n",
+			res->vf_id, res->bw);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_vf_max_bw = {
+	.f = cmd_vf_max_bw_parsed,
+	.data = NULL,
+	.help_str = "set vf tx max-bandwidth <port_id> <vf_id> <bandwidth>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_vf,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_max_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_vf_id,
+		(void *)&cmd_vf_tc_bw_bw,
+		NULL,
+	},
+};
+
+static int
+vf_tc_min_bw_parse_bw_list(uint8_t *bw_list,
+			   uint8_t *tc_num,
+			   char *str)
+{
+	uint32_t size;
+	const char *p, *p0 = str;
+	char s[256];
+	char *end;
+	char *str_fld[16];
+	uint16_t i;
+	int ret;
+
+	p = strchr(p0, '(');
+	if (p == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	p++;
+	p0 = strchr(p, ')');
+	if (p0 == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	size = p0 - p;
+	if (size >= sizeof(s)) {
+		fprintf(stderr,
+			"The string size exceeds the internal buffer size\n");
+		return -1;
+	}
+	snprintf(s, sizeof(s), "%.*s", size, p);
+	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
+	if (ret <= 0) {
+		fprintf(stderr, "Failed to get the bandwidth list.\n");
+		return -1;
+	}
+	*tc_num = ret;
+	for (i = 0; i < ret; i++)
+		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
+
+	return 0;
+}
+
+/* TC min bandwidth setting */
+static void
+cmd_vf_tc_min_bw_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	uint8_t tc_num;
+	uint8_t bw[16];
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
+	if (ret)
+		return;
+
+	ret = rte_pmd_i40e_set_vf_tc_bw_alloc(res->port_id, res->vf_id,
+					      tc_num, bw);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or bandwidth\n", res->vf_id);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_vf_tc_min_bw = {
+	.f = cmd_vf_tc_min_bw_parsed,
+	.data = NULL,
+	.help_str = "set vf tc tx min-bandwidth <port_id> <vf_id>"
+		    " <bw1, bw2, ...>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_vf,
+		(void *)&cmd_vf_tc_bw_tc,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_min_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_vf_id,
+		(void *)&cmd_vf_tc_bw_bw_list,
+		NULL,
+	},
+};
+
+/* TC max bandwidth setting */
+static void
+cmd_vf_tc_max_bw_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_tc_max_bw(res->port_id, res->vf_id,
+					    res->tc_no, res->bw);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr,
+			"invalid vf_id %d, tc_no %d or bandwidth %d\n",
+			res->vf_id, res->tc_no, res->bw);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_vf_tc_max_bw = {
+	.f = cmd_vf_tc_max_bw_parsed,
+	.data = NULL,
+	.help_str = "set vf tc tx max-bandwidth <port_id> <vf_id> <tc_no>"
+		    " <bandwidth>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_vf,
+		(void *)&cmd_vf_tc_bw_tc,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_max_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_vf_id,
+		(void *)&cmd_vf_tc_bw_tc_no,
+		(void *)&cmd_vf_tc_bw_bw,
+		NULL,
+	},
+};
+
+/* Strict link priority scheduling mode setting */
+static void
+cmd_strict_link_prio_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_tc_strict_prio(res->port_id, res->tc_map);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid tc_bitmap 0x%x\n", res->tc_map);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_strict_link_prio = {
+	.f = cmd_strict_link_prio_parsed,
+	.data = NULL,
+	.help_str = "set tx strict-link-priority <port_id> <tc_bitmap>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_strict_link_prio,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_tc_map,
+		NULL,
+	},
+};
+
+/* Load dynamic device personalization*/
+struct cmd_ddp_add_result {
+	cmdline_fixed_string_t ddp;
+	cmdline_fixed_string_t add;
+	portid_t port_id;
+	char filepath[];
+};
+
+static cmdline_parse_token_string_t cmd_ddp_add_ddp =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, ddp, "ddp");
+static cmdline_parse_token_string_t cmd_ddp_add_add =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, add, "add");
+static cmdline_parse_token_num_t cmd_ddp_add_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ddp_add_result, port_id,
+		RTE_UINT16);
+static cmdline_parse_token_string_t cmd_ddp_add_filepath =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, filepath, NULL);
+
+static void
+cmd_ddp_add_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ddp_add_result *res = parsed_result;
+	uint8_t *buff;
+	uint32_t size;
+	char *filepath;
+	char *file_fld[2];
+	int file_num;
+	int ret = -ENOTSUP;
+
+	if (!all_ports_stopped()) {
+		fprintf(stderr, "Please stop all ports first\n");
+		return;
+	}
+
+	filepath = strdup(res->filepath);
+	if (filepath == NULL) {
+		fprintf(stderr, "Failed to allocate memory\n");
+		return;
+	}
+	file_num = rte_strsplit(filepath, strlen(filepath), file_fld, 2, ',');
+
+	buff = open_file(file_fld[0], &size);
+	if (!buff) {
+		free((void *)filepath);
+		return;
+	}
+
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_i40e_process_ddp_package(res->port_id,
+					       buff, size,
+					       RTE_PMD_I40E_PKG_OP_WR_ADD);
+	if (ret == -EEXIST)
+		fprintf(stderr, "Profile has already existed.\n");
+	else if (ret < 0)
+		fprintf(stderr, "Failed to load profile.\n");
+	else if (file_num == 2)
+		save_file(file_fld[1], buff, size);
+
+	close_file(buff);
+	free((void *)filepath);
+}
+
+static cmdline_parse_inst_t cmd_ddp_add = {
+	.f = cmd_ddp_add_parsed,
+	.data = NULL,
+	.help_str = "ddp add <port_id> <profile_path[,backup_profile_path]>",
+	.tokens = {
+		(void *)&cmd_ddp_add_ddp,
+		(void *)&cmd_ddp_add_add,
+		(void *)&cmd_ddp_add_port_id,
+		(void *)&cmd_ddp_add_filepath,
+		NULL,
+	},
+};
+
+/* Delete dynamic device personalization*/
+struct cmd_ddp_del_result {
+	cmdline_fixed_string_t ddp;
+	cmdline_fixed_string_t del;
+	portid_t port_id;
+	char filepath[];
+};
+
+static cmdline_parse_token_string_t cmd_ddp_del_ddp =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, ddp, "ddp");
+static cmdline_parse_token_string_t cmd_ddp_del_del =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, del, "del");
+static cmdline_parse_token_num_t cmd_ddp_del_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ddp_del_result, port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_ddp_del_filepath =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, filepath, NULL);
+
+static void
+cmd_ddp_del_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ddp_del_result *res = parsed_result;
+	uint8_t *buff;
+	uint32_t size;
+	int ret = -ENOTSUP;
+
+	if (!all_ports_stopped()) {
+		fprintf(stderr, "Please stop all ports first\n");
+		return;
+	}
+
+	buff = open_file(res->filepath, &size);
+	if (!buff)
+		return;
+
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_i40e_process_ddp_package(res->port_id,
+					       buff, size,
+					       RTE_PMD_I40E_PKG_OP_WR_DEL);
+	if (ret == -EACCES)
+		fprintf(stderr, "Profile does not exist.\n");
+	else if (ret < 0)
+		fprintf(stderr, "Failed to delete profile.\n");
+
+	close_file(buff);
+}
+
+static cmdline_parse_inst_t cmd_ddp_del = {
+	.f = cmd_ddp_del_parsed,
+	.data = NULL,
+	.help_str = "ddp del <port_id> <backup_profile_path>",
+	.tokens = {
+		(void *)&cmd_ddp_del_ddp,
+		(void *)&cmd_ddp_del_del,
+		(void *)&cmd_ddp_del_port_id,
+		(void *)&cmd_ddp_del_filepath,
+		NULL,
+	},
+};
+
+/* Get dynamic device personalization profile info */
+struct cmd_ddp_info_result {
+	cmdline_fixed_string_t ddp;
+	cmdline_fixed_string_t get;
+	cmdline_fixed_string_t info;
+	char filepath[];
+};
+
+static cmdline_parse_token_string_t cmd_ddp_info_ddp =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, ddp, "ddp");
+static cmdline_parse_token_string_t cmd_ddp_info_get =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, get, "get");
+static cmdline_parse_token_string_t cmd_ddp_info_info =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, info, "info");
+static cmdline_parse_token_string_t cmd_ddp_info_filepath =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, filepath, NULL);
+
+static void
+cmd_ddp_info_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ddp_info_result *res = parsed_result;
+	uint8_t *pkg;
+	uint32_t pkg_size;
+	int ret = -ENOTSUP;
+	uint32_t i, j, n;
+	uint8_t *buff;
+	uint32_t buff_size = 0;
+	struct rte_pmd_i40e_profile_info info;
+	uint32_t dev_num = 0;
+	struct rte_pmd_i40e_ddp_device_id *devs;
+	uint32_t proto_num = 0;
+	struct rte_pmd_i40e_proto_info *proto = NULL;
+	uint32_t pctype_num = 0;
+	struct rte_pmd_i40e_ptype_info *pctype;
+	uint32_t ptype_num = 0;
+	struct rte_pmd_i40e_ptype_info *ptype;
+	uint8_t proto_id;
+
+	pkg = open_file(res->filepath, &pkg_size);
+	if (!pkg)
+		return;
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+				(uint8_t *)&info, sizeof(info),
+				RTE_PMD_I40E_PKG_INFO_GLOBAL_HEADER);
+	if (!ret) {
+		printf("Global Track id:       0x%x\n", info.track_id);
+		printf("Global Version:        %d.%d.%d.%d\n",
+			info.version.major,
+			info.version.minor,
+			info.version.update,
+			info.version.draft);
+		printf("Global Package name:   %s\n\n", info.name);
+	}
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+				(uint8_t *)&info, sizeof(info),
+				RTE_PMD_I40E_PKG_INFO_HEADER);
+	if (!ret) {
+		printf("i40e Profile Track id: 0x%x\n", info.track_id);
+		printf("i40e Profile Version:  %d.%d.%d.%d\n",
+			info.version.major,
+			info.version.minor,
+			info.version.update,
+			info.version.draft);
+		printf("i40e Profile name:     %s\n\n", info.name);
+	}
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+				(uint8_t *)&buff_size, sizeof(buff_size),
+				RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES_SIZE);
+	if (!ret && buff_size) {
+		buff = (uint8_t *)malloc(buff_size);
+		if (buff) {
+			ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+						buff, buff_size,
+						RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES);
+			if (!ret)
+				printf("Package Notes:\n%s\n\n", buff);
+			free(buff);
+		}
+	}
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+				(uint8_t *)&dev_num, sizeof(dev_num),
+				RTE_PMD_I40E_PKG_INFO_DEVID_NUM);
+	if (!ret && dev_num) {
+		buff_size = dev_num * sizeof(struct rte_pmd_i40e_ddp_device_id);
+		devs = (struct rte_pmd_i40e_ddp_device_id *)malloc(buff_size);
+		if (devs) {
+			ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+						(uint8_t *)devs, buff_size,
+						RTE_PMD_I40E_PKG_INFO_DEVID_LIST);
+			if (!ret) {
+				printf("List of supported devices:\n");
+				for (i = 0; i < dev_num; i++) {
+					printf("  %04X:%04X %04X:%04X\n",
+						devs[i].vendor_dev_id >> 16,
+						devs[i].vendor_dev_id & 0xFFFF,
+						devs[i].sub_vendor_dev_id >> 16,
+						devs[i].sub_vendor_dev_id & 0xFFFF);
+				}
+				printf("\n");
+			}
+			free(devs);
+		}
+	}
+
+	/* get information about protocols and packet types */
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+		(uint8_t *)&proto_num, sizeof(proto_num),
+		RTE_PMD_I40E_PKG_INFO_PROTOCOL_NUM);
+	if (ret || !proto_num)
+		goto no_print_return;
+
+	buff_size = proto_num * sizeof(struct rte_pmd_i40e_proto_info);
+	proto = (struct rte_pmd_i40e_proto_info *)malloc(buff_size);
+	if (!proto)
+		goto no_print_return;
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)proto,
+					buff_size,
+					RTE_PMD_I40E_PKG_INFO_PROTOCOL_LIST);
+	if (!ret) {
+		printf("List of used protocols:\n");
+		for (i = 0; i < proto_num; i++)
+			printf("  %2u: %s\n", proto[i].proto_id,
+			       proto[i].name);
+		printf("\n");
+	}
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+		(uint8_t *)&pctype_num, sizeof(pctype_num),
+		RTE_PMD_I40E_PKG_INFO_PCTYPE_NUM);
+	if (ret || !pctype_num)
+		goto no_print_pctypes;
+
+	buff_size = pctype_num * sizeof(struct rte_pmd_i40e_ptype_info);
+	pctype = (struct rte_pmd_i40e_ptype_info *)malloc(buff_size);
+	if (!pctype)
+		goto no_print_pctypes;
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)pctype,
+					buff_size,
+					RTE_PMD_I40E_PKG_INFO_PCTYPE_LIST);
+	if (ret) {
+		free(pctype);
+		goto no_print_pctypes;
+	}
+
+	printf("List of defined packet classification types:\n");
+	for (i = 0; i < pctype_num; i++) {
+		printf("  %2u:", pctype[i].ptype_id);
+		for (j = 0; j < RTE_PMD_I40E_PROTO_NUM; j++) {
+			proto_id = pctype[i].protocols[j];
+			if (proto_id != RTE_PMD_I40E_PROTO_UNUSED) {
+				for (n = 0; n < proto_num; n++) {
+					if (proto[n].proto_id == proto_id) {
+						printf(" %s", proto[n].name);
+						break;
+					}
+				}
+			}
+		}
+		printf("\n");
+	}
+	printf("\n");
+	free(pctype);
+
+no_print_pctypes:
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)&ptype_num,
+					sizeof(ptype_num),
+					RTE_PMD_I40E_PKG_INFO_PTYPE_NUM);
+	if (ret || !ptype_num)
+		goto no_print_return;
+
+	buff_size = ptype_num * sizeof(struct rte_pmd_i40e_ptype_info);
+	ptype = (struct rte_pmd_i40e_ptype_info *)malloc(buff_size);
+	if (!ptype)
+		goto no_print_return;
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)ptype,
+					buff_size,
+					RTE_PMD_I40E_PKG_INFO_PTYPE_LIST);
+	if (ret) {
+		free(ptype);
+		goto no_print_return;
+	}
+	printf("List of defined packet types:\n");
+	for (i = 0; i < ptype_num; i++) {
+		printf("  %2u:", ptype[i].ptype_id);
+		for (j = 0; j < RTE_PMD_I40E_PROTO_NUM; j++) {
+			proto_id = ptype[i].protocols[j];
+			if (proto_id != RTE_PMD_I40E_PROTO_UNUSED) {
+				for (n = 0; n < proto_num; n++) {
+					if (proto[n].proto_id == proto_id) {
+						printf(" %s", proto[n].name);
+						break;
+					}
+				}
+			}
+		}
+		printf("\n");
+	}
+	free(ptype);
+	printf("\n");
+
+	ret = 0;
+no_print_return:
+	free(proto);
+	if (ret == -ENOTSUP)
+		fprintf(stderr, "Function not supported in PMD\n");
+	close_file(pkg);
+}
+
+static cmdline_parse_inst_t cmd_ddp_get_info = {
+	.f = cmd_ddp_info_parsed,
+	.data = NULL,
+	.help_str = "ddp get info <profile_path>",
+	.tokens = {
+		(void *)&cmd_ddp_info_ddp,
+		(void *)&cmd_ddp_info_get,
+		(void *)&cmd_ddp_info_info,
+		(void *)&cmd_ddp_info_filepath,
+		NULL,
+	},
+};
+
+/* Get dynamic device personalization profile info list*/
+#define PROFILE_INFO_SIZE 48
+#define MAX_PROFILE_NUM 16
+
+struct cmd_ddp_get_list_result {
+	cmdline_fixed_string_t ddp;
+	cmdline_fixed_string_t get;
+	cmdline_fixed_string_t list;
+	portid_t port_id;
+};
+
+static cmdline_parse_token_string_t cmd_ddp_get_list_ddp =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, ddp, "ddp");
+static cmdline_parse_token_string_t cmd_ddp_get_list_get =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, get, "get");
+static cmdline_parse_token_string_t cmd_ddp_get_list_list =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, list, "list");
+static cmdline_parse_token_num_t cmd_ddp_get_list_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ddp_get_list_result, port_id,
+		RTE_UINT16);
+
+static void
+cmd_ddp_get_list_parsed(__rte_unused void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ddp_get_list_result *res = parsed_result;
+	struct rte_pmd_i40e_profile_list *p_list;
+	struct rte_pmd_i40e_profile_info *p_info;
+	uint32_t p_num;
+	uint32_t size;
+	uint32_t i;
+	int ret = -ENOTSUP;
+
+	size = PROFILE_INFO_SIZE * MAX_PROFILE_NUM + 4;
+	p_list = (struct rte_pmd_i40e_profile_list *)malloc(size);
+	if (!p_list) {
+		fprintf(stderr, "%s: Failed to malloc buffer\n", __func__);
+		return;
+	}
+
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_i40e_get_ddp_list(res->port_id,
+						(uint8_t *)p_list, size);
+
+	if (!ret) {
+		p_num = p_list->p_count;
+		printf("Profile number is: %d\n\n", p_num);
+
+		for (i = 0; i < p_num; i++) {
+			p_info = &p_list->p_info[i];
+			printf("Profile %d:\n", i);
+			printf("Track id:     0x%x\n", p_info->track_id);
+			printf("Version:      %d.%d.%d.%d\n",
+			       p_info->version.major,
+			       p_info->version.minor,
+			       p_info->version.update,
+			       p_info->version.draft);
+			printf("Profile name: %s\n\n", p_info->name);
+		}
+	}
+
+	free(p_list);
+
+	if (ret < 0)
+		fprintf(stderr, "Failed to get ddp list\n");
+}
+
+static cmdline_parse_inst_t cmd_ddp_get_list = {
+	.f = cmd_ddp_get_list_parsed,
+	.data = NULL,
+	.help_str = "ddp get list <port_id>",
+	.tokens = {
+		(void *)&cmd_ddp_get_list_ddp,
+		(void *)&cmd_ddp_get_list_get,
+		(void *)&cmd_ddp_get_list_list,
+		(void *)&cmd_ddp_get_list_port_id,
+		NULL,
+	},
+};
+
+/* Configure input set */
+struct cmd_cfg_input_set_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t cfg;
+	portid_t port_id;
+	cmdline_fixed_string_t pctype;
+	uint8_t pctype_id;
+	cmdline_fixed_string_t inset_type;
+	cmdline_fixed_string_t opt;
+	cmdline_fixed_string_t field;
+	uint8_t field_idx;
+};
+
+static void
+cmd_cfg_input_set_parsed(__rte_unused void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_cfg_input_set_result *res = parsed_result;
+	enum rte_pmd_i40e_inset_type inset_type = INSET_NONE;
+	struct rte_pmd_i40e_inset inset;
+	int ret = -ENOTSUP;
+
+	if (!all_ports_stopped()) {
+		fprintf(stderr, "Please stop all ports first\n");
+		return;
+	}
+
+	if (!strcmp(res->inset_type, "hash_inset"))
+		inset_type = INSET_HASH;
+	else if (!strcmp(res->inset_type, "fdir_inset"))
+		inset_type = INSET_FDIR;
+	else if (!strcmp(res->inset_type, "fdir_flx_inset"))
+		inset_type = INSET_FDIR_FLX;
+	ret = rte_pmd_i40e_inset_get(res->port_id, res->pctype_id,
+				     &inset, inset_type);
+	if (ret) {
+		fprintf(stderr, "Failed to get input set.\n");
+		return;
+	}
+
+	if (!strcmp(res->opt, "get")) {
+		ret = rte_pmd_i40e_inset_field_get(inset.inset,
+						   res->field_idx);
+		if (ret)
+			printf("Field index %d is enabled.\n", res->field_idx);
+		else
+			printf("Field index %d is disabled.\n", res->field_idx);
+		return;
+	} else if (!strcmp(res->opt, "set"))
+		ret = rte_pmd_i40e_inset_field_set(&inset.inset,
+						   res->field_idx);
+	else if (!strcmp(res->opt, "clear"))
+		ret = rte_pmd_i40e_inset_field_clear(&inset.inset,
+						     res->field_idx);
+	if (ret) {
+		fprintf(stderr, "Failed to configure input set field.\n");
+		return;
+	}
+
+	ret = rte_pmd_i40e_inset_set(res->port_id, res->pctype_id,
+				     &inset, inset_type);
+	if (ret) {
+		fprintf(stderr, "Failed to set input set.\n");
+		return;
+	}
+
+	if (ret == -ENOTSUP)
+		fprintf(stderr, "Function not supported\n");
+}
+
+static cmdline_parse_token_string_t cmd_cfg_input_set_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+				 port, "port");
+static cmdline_parse_token_string_t cmd_cfg_input_set_cfg =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+				 cfg, "config");
+static cmdline_parse_token_num_t cmd_cfg_input_set_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
+			      port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_cfg_input_set_pctype =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+				 pctype, "pctype");
+static cmdline_parse_token_num_t cmd_cfg_input_set_pctype_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
+			      pctype_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_cfg_input_set_inset_type =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+				 inset_type,
+				 "hash_inset#fdir_inset#fdir_flx_inset");
+static cmdline_parse_token_string_t cmd_cfg_input_set_opt =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+				 opt, "get#set#clear");
+static cmdline_parse_token_string_t cmd_cfg_input_set_field =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+				 field, "field");
+static cmdline_parse_token_num_t cmd_cfg_input_set_field_idx =
+	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
+			      field_idx, RTE_UINT8);
+
+static cmdline_parse_inst_t cmd_cfg_input_set = {
+	.f = cmd_cfg_input_set_parsed,
+	.data = NULL,
+	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
+		    "fdir_inset|fdir_flx_inset get|set|clear field <field_idx>",
+	.tokens = {
+		(void *)&cmd_cfg_input_set_port,
+		(void *)&cmd_cfg_input_set_cfg,
+		(void *)&cmd_cfg_input_set_port_id,
+		(void *)&cmd_cfg_input_set_pctype,
+		(void *)&cmd_cfg_input_set_pctype_id,
+		(void *)&cmd_cfg_input_set_inset_type,
+		(void *)&cmd_cfg_input_set_opt,
+		(void *)&cmd_cfg_input_set_field,
+		(void *)&cmd_cfg_input_set_field_idx,
+		NULL,
+	},
+};
+
+/* Clear input set */
+struct cmd_clear_input_set_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t cfg;
+	portid_t port_id;
+	cmdline_fixed_string_t pctype;
+	uint8_t pctype_id;
+	cmdline_fixed_string_t inset_type;
+	cmdline_fixed_string_t clear;
+	cmdline_fixed_string_t all;
+};
+
+static void
+cmd_clear_input_set_parsed(__rte_unused void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_clear_input_set_result *res = parsed_result;
+	enum rte_pmd_i40e_inset_type inset_type = INSET_NONE;
+	struct rte_pmd_i40e_inset inset;
+	int ret = -ENOTSUP;
+
+	if (!all_ports_stopped()) {
+		fprintf(stderr, "Please stop all ports first\n");
+		return;
+	}
+
+	if (!strcmp(res->inset_type, "hash_inset"))
+		inset_type = INSET_HASH;
+	else if (!strcmp(res->inset_type, "fdir_inset"))
+		inset_type = INSET_FDIR;
+	else if (!strcmp(res->inset_type, "fdir_flx_inset"))
+		inset_type = INSET_FDIR_FLX;
+
+	memset(&inset, 0, sizeof(inset));
+
+	ret = rte_pmd_i40e_inset_set(res->port_id, res->pctype_id,
+				     &inset, inset_type);
+	if (ret) {
+		fprintf(stderr, "Failed to clear input set.\n");
+		return;
+	}
+
+	if (ret == -ENOTSUP)
+		fprintf(stderr, "Function not supported\n");
+}
+
+static cmdline_parse_token_string_t cmd_clear_input_set_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+				 port, "port");
+static cmdline_parse_token_string_t cmd_clear_input_set_cfg =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+				 cfg, "config");
+static cmdline_parse_token_num_t cmd_clear_input_set_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
+			      port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_clear_input_set_pctype =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+				 pctype, "pctype");
+static cmdline_parse_token_num_t cmd_clear_input_set_pctype_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
+			      pctype_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_clear_input_set_inset_type =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+				 inset_type,
+				 "hash_inset#fdir_inset#fdir_flx_inset");
+static cmdline_parse_token_string_t cmd_clear_input_set_clear =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+				 clear, "clear");
+static cmdline_parse_token_string_t cmd_clear_input_set_all =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+				 all, "all");
+
+static cmdline_parse_inst_t cmd_clear_input_set = {
+	.f = cmd_clear_input_set_parsed,
+	.data = NULL,
+	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
+		    "fdir_inset|fdir_flx_inset clear all",
+	.tokens = {
+		(void *)&cmd_clear_input_set_port,
+		(void *)&cmd_clear_input_set_cfg,
+		(void *)&cmd_clear_input_set_port_id,
+		(void *)&cmd_clear_input_set_pctype,
+		(void *)&cmd_clear_input_set_pctype_id,
+		(void *)&cmd_clear_input_set_inset_type,
+		(void *)&cmd_clear_input_set_clear,
+		(void *)&cmd_clear_input_set_all,
+		NULL,
+	},
+};
+
+/* port config pctype mapping reset */
+
+/* Common result structure for port config pctype mapping reset */
+struct cmd_pctype_mapping_reset_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t config;
+	portid_t port_id;
+	cmdline_fixed_string_t pctype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t reset;
+};
+
+/* Common CLI fields for port config pctype mapping reset*/
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_port =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_pctype_mapping_reset_result,
+		 port, "port");
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_config =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_pctype_mapping_reset_result,
+		 config, "config");
+static cmdline_parse_token_num_t cmd_pctype_mapping_reset_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_pctype_mapping_reset_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_pctype =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_pctype_mapping_reset_result,
+		 pctype, "pctype");
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_mapping =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_pctype_mapping_reset_result,
+		 mapping, "mapping");
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_reset =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_pctype_mapping_reset_result,
+		 reset, "reset");
+
+static void
+cmd_pctype_mapping_reset_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_pctype_mapping_reset_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_flow_type_mapping_reset(res->port_id);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_pctype_mapping_reset = {
+	.f = cmd_pctype_mapping_reset_parsed,
+	.data = NULL,
+	.help_str = "port config <port_id> pctype mapping reset",
+	.tokens = {
+		(void *)&cmd_pctype_mapping_reset_port,
+		(void *)&cmd_pctype_mapping_reset_config,
+		(void *)&cmd_pctype_mapping_reset_port_id,
+		(void *)&cmd_pctype_mapping_reset_pctype,
+		(void *)&cmd_pctype_mapping_reset_mapping,
+		(void *)&cmd_pctype_mapping_reset_reset,
+		NULL,
+	},
+};
+
+/* show port pctype mapping */
+
+/* Common result structure for show port pctype mapping */
+struct cmd_pctype_mapping_get_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t pctype;
+	cmdline_fixed_string_t mapping;
+};
+
+/* Common CLI fields for pctype mapping get */
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_show =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_pctype_mapping_get_result,
+		 show, "show");
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_port =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_pctype_mapping_get_result,
+		 port, "port");
+static cmdline_parse_token_num_t cmd_pctype_mapping_get_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_pctype_mapping_get_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_pctype =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_pctype_mapping_get_result,
+		 pctype, "pctype");
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_mapping =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_pctype_mapping_get_result,
+		 mapping, "mapping");
+
+static void
+cmd_pctype_mapping_get_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_pctype_mapping_get_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_flow_type_mapping
+				mapping[RTE_PMD_I40E_FLOW_TYPE_MAX];
+	int i, j, first_pctype;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_flow_type_mapping_get(res->port_id, mapping);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		return;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		return;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+		return;
+	}
+
+	for (i = 0; i < RTE_PMD_I40E_FLOW_TYPE_MAX; i++) {
+		if (mapping[i].pctype != 0ULL) {
+			first_pctype = 1;
+
+			printf("pctype: ");
+			for (j = 0; j < RTE_PMD_I40E_PCTYPE_MAX; j++) {
+				if (mapping[i].pctype & (1ULL << j)) {
+					printf(first_pctype ?
+					       "%02d" : ",%02d", j);
+					first_pctype = 0;
+				}
+			}
+			printf("  ->  flowtype: %02d\n", mapping[i].flow_type);
+		}
+	}
+}
+
+static cmdline_parse_inst_t cmd_pctype_mapping_get = {
+	.f = cmd_pctype_mapping_get_parsed,
+	.data = NULL,
+	.help_str = "show port <port_id> pctype mapping",
+	.tokens = {
+		(void *)&cmd_pctype_mapping_get_show,
+		(void *)&cmd_pctype_mapping_get_port,
+		(void *)&cmd_pctype_mapping_get_port_id,
+		(void *)&cmd_pctype_mapping_get_pctype,
+		(void *)&cmd_pctype_mapping_get_mapping,
+		NULL,
+	},
+};
+
+/* port config pctype mapping update */
+
+/* Common result structure for port config pctype mapping update */
+struct cmd_pctype_mapping_update_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t config;
+	portid_t port_id;
+	cmdline_fixed_string_t pctype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t update;
+	cmdline_fixed_string_t pctype_list;
+	uint16_t flow_type;
+};
+
+/* Common CLI fields for pctype mapping update*/
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_port =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_pctype_mapping_update_result,
+		 port, "port");
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_config =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_pctype_mapping_update_result,
+		 config, "config");
+static cmdline_parse_token_num_t cmd_pctype_mapping_update_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_pctype_mapping_update_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_pctype =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_pctype_mapping_update_result,
+		 pctype, "pctype");
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_mapping =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_pctype_mapping_update_result,
+		 mapping, "mapping");
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_update =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_pctype_mapping_update_result,
+		 update, "update");
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_pc_type =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_pctype_mapping_update_result,
+		 pctype_list, NULL);
+static cmdline_parse_token_num_t cmd_pctype_mapping_update_flow_type =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_pctype_mapping_update_result,
+		 flow_type, RTE_UINT16);
+
+static void
+cmd_pctype_mapping_update_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_pctype_mapping_update_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_flow_type_mapping mapping;
+	unsigned int i;
+	unsigned int nb_item;
+	unsigned int pctype_list[RTE_PMD_I40E_PCTYPE_MAX];
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	nb_item = parse_item_list(res->pctype_list, "pctypes",
+				  RTE_PMD_I40E_PCTYPE_MAX, pctype_list, 1);
+	mapping.flow_type = res->flow_type;
+	for (i = 0, mapping.pctype = 0ULL; i < nb_item; i++)
+		mapping.pctype |= (1ULL << pctype_list[i]);
+	ret = rte_pmd_i40e_flow_type_mapping_update(res->port_id,
+						&mapping,
+						1,
+						0);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid pctype or flow type\n");
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_pctype_mapping_update = {
+	.f = cmd_pctype_mapping_update_parsed,
+	.data = NULL,
+	.help_str = "port config <port_id> pctype mapping update"
+	" <pctype_id_0,[pctype_id_1]*> <flowtype_id>",
+	.tokens = {
+		(void *)&cmd_pctype_mapping_update_port,
+		(void *)&cmd_pctype_mapping_update_config,
+		(void *)&cmd_pctype_mapping_update_port_id,
+		(void *)&cmd_pctype_mapping_update_pctype,
+		(void *)&cmd_pctype_mapping_update_mapping,
+		(void *)&cmd_pctype_mapping_update_update,
+		(void *)&cmd_pctype_mapping_update_pc_type,
+		(void *)&cmd_pctype_mapping_update_flow_type,
+		NULL,
+	},
+};
+
+/* ptype mapping get */
+
+/* Common result structure for ptype mapping get */
+struct cmd_ptype_mapping_get_result {
+	cmdline_fixed_string_t ptype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t get;
+	portid_t port_id;
+	uint8_t valid_only;
+};
+
+/* Common CLI fields for ptype mapping get */
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_ptype =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_ptype_mapping_get_result,
+		 ptype, "ptype");
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_mapping =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_ptype_mapping_get_result,
+		 mapping, "mapping");
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_get =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_ptype_mapping_get_result,
+		 get, "get");
+static cmdline_parse_token_num_t cmd_ptype_mapping_get_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_ptype_mapping_get_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_ptype_mapping_get_valid_only =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_ptype_mapping_get_result,
+		 valid_only, RTE_UINT8);
+
+static void
+cmd_ptype_mapping_get_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ptype_mapping_get_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int max_ptype_num = 256;
+	struct rte_pmd_i40e_ptype_mapping mapping[max_ptype_num];
+	uint16_t count;
+	int i;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_ptype_mapping_get(res->port_id,
+					mapping,
+					max_ptype_num,
+					&count,
+					res->valid_only);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+
+	if (!ret) {
+		for (i = 0; i < count; i++)
+			printf("%3d\t0x%08x\n",
+				mapping[i].hw_ptype, mapping[i].sw_ptype);
+	}
+}
+
+static cmdline_parse_inst_t cmd_ptype_mapping_get = {
+	.f = cmd_ptype_mapping_get_parsed,
+	.data = NULL,
+	.help_str = "ptype mapping get <port_id> <valid_only>",
+	.tokens = {
+		(void *)&cmd_ptype_mapping_get_ptype,
+		(void *)&cmd_ptype_mapping_get_mapping,
+		(void *)&cmd_ptype_mapping_get_get,
+		(void *)&cmd_ptype_mapping_get_port_id,
+		(void *)&cmd_ptype_mapping_get_valid_only,
+		NULL,
+	},
+};
+
+/* ptype mapping replace */
+
+/* Common result structure for ptype mapping replace */
+struct cmd_ptype_mapping_replace_result {
+	cmdline_fixed_string_t ptype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t replace;
+	portid_t port_id;
+	uint32_t target;
+	uint8_t mask;
+	uint32_t pkt_type;
+};
+
+/* Common CLI fields for ptype mapping replace */
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_ptype =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_ptype_mapping_replace_result,
+		 ptype, "ptype");
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_mapping =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_ptype_mapping_replace_result,
+		 mapping, "mapping");
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_replace =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_ptype_mapping_replace_result,
+		 replace, "replace");
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_ptype_mapping_replace_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_target =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_ptype_mapping_replace_result,
+		 target, RTE_UINT32);
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_mask =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_ptype_mapping_replace_result,
+		 mask, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_pkt_type =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_ptype_mapping_replace_result,
+		 pkt_type, RTE_UINT32);
+
+static void
+cmd_ptype_mapping_replace_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ptype_mapping_replace_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_ptype_mapping_replace(res->port_id,
+					res->target,
+					res->mask,
+					res->pkt_type);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid ptype 0x%8x or 0x%8x\n",
+			res->target, res->pkt_type);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_ptype_mapping_replace = {
+	.f = cmd_ptype_mapping_replace_parsed,
+	.data = NULL,
+	.help_str =
+		"ptype mapping replace <port_id> <target> <mask> <pkt_type>",
+	.tokens = {
+		(void *)&cmd_ptype_mapping_replace_ptype,
+		(void *)&cmd_ptype_mapping_replace_mapping,
+		(void *)&cmd_ptype_mapping_replace_replace,
+		(void *)&cmd_ptype_mapping_replace_port_id,
+		(void *)&cmd_ptype_mapping_replace_target,
+		(void *)&cmd_ptype_mapping_replace_mask,
+		(void *)&cmd_ptype_mapping_replace_pkt_type,
+		NULL,
+	},
+};
+
+/* ptype mapping reset */
+
+/* Common result structure for ptype mapping reset */
+struct cmd_ptype_mapping_reset_result {
+	cmdline_fixed_string_t ptype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t reset;
+	portid_t port_id;
+};
+
+/* Common CLI fields for ptype mapping reset*/
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_ptype =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_ptype_mapping_reset_result,
+		 ptype, "ptype");
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_mapping =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_ptype_mapping_reset_result,
+		 mapping, "mapping");
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_reset =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_ptype_mapping_reset_result,
+		 reset, "reset");
+static cmdline_parse_token_num_t cmd_ptype_mapping_reset_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_ptype_mapping_reset_result,
+		 port_id, RTE_UINT16);
+
+static void
+cmd_ptype_mapping_reset_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ptype_mapping_reset_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_ptype_mapping_reset(res->port_id);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_ptype_mapping_reset = {
+	.f = cmd_ptype_mapping_reset_parsed,
+	.data = NULL,
+	.help_str = "ptype mapping reset <port_id>",
+	.tokens = {
+		(void *)&cmd_ptype_mapping_reset_ptype,
+		(void *)&cmd_ptype_mapping_reset_mapping,
+		(void *)&cmd_ptype_mapping_reset_reset,
+		(void *)&cmd_ptype_mapping_reset_port_id,
+		NULL,
+	},
+};
+
+/* ptype mapping update */
+
+/* Common result structure for ptype mapping update */
+struct cmd_ptype_mapping_update_result {
+	cmdline_fixed_string_t ptype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t reset;
+	portid_t port_id;
+	uint8_t hw_ptype;
+	uint32_t sw_ptype;
+};
+
+/* Common CLI fields for ptype mapping update*/
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_ptype =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_ptype_mapping_update_result,
+		 ptype, "ptype");
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_mapping =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_ptype_mapping_update_result,
+		 mapping, "mapping");
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_update =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_ptype_mapping_update_result,
+		 reset, "update");
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_ptype_mapping_update_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_hw_ptype =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_ptype_mapping_update_result,
+		 hw_ptype, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_sw_ptype =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_ptype_mapping_update_result,
+		 sw_ptype, RTE_UINT32);
+
+static void
+cmd_ptype_mapping_update_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ptype_mapping_update_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_ptype_mapping mapping;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	mapping.hw_ptype = res->hw_ptype;
+	mapping.sw_ptype = res->sw_ptype;
+	ret = rte_pmd_i40e_ptype_mapping_update(res->port_id,
+						&mapping,
+						1,
+						0);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid ptype 0x%8x\n", res->sw_ptype);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_ptype_mapping_update = {
+	.f = cmd_ptype_mapping_update_parsed,
+	.data = NULL,
+	.help_str = "ptype mapping update <port_id> <hw_ptype> <sw_ptype>",
+	.tokens = {
+		(void *)&cmd_ptype_mapping_update_ptype,
+		(void *)&cmd_ptype_mapping_update_mapping,
+		(void *)&cmd_ptype_mapping_update_update,
+		(void *)&cmd_ptype_mapping_update_port_id,
+		(void *)&cmd_ptype_mapping_update_hw_ptype,
+		(void *)&cmd_ptype_mapping_update_sw_ptype,
+		NULL,
+	},
+};
+
+static struct testpmd_cmdline_parser driver_parser = {
+	.ctx = (cmdline_parse_ctx_t[]) {
+		(cmdline_parse_inst_t *)&cmd_queue_region,
+		(cmdline_parse_inst_t *)&cmd_region_flowtype,
+		(cmdline_parse_inst_t *)&cmd_user_priority_region,
+		(cmdline_parse_inst_t *)&cmd_flush_queue_region,
+		(cmdline_parse_inst_t *)&cmd_show_queue_region_info_all,
+		(cmdline_parse_inst_t *)&cmd_add_del_raw_flow_director,
+		(cmdline_parse_inst_t *)&cmd_set_vf_promisc,
+		(cmdline_parse_inst_t *)&cmd_set_vf_allmulti,
+		(cmdline_parse_inst_t *)&cmd_set_vf_broadcast,
+		(cmdline_parse_inst_t *)&cmd_set_vf_vlan_tag,
+		(cmdline_parse_inst_t *)&cmd_vf_max_bw,
+		(cmdline_parse_inst_t *)&cmd_vf_tc_min_bw,
+		(cmdline_parse_inst_t *)&cmd_vf_tc_max_bw,
+		(cmdline_parse_inst_t *)&cmd_strict_link_prio,
+		(cmdline_parse_inst_t *)&cmd_ddp_add,
+		(cmdline_parse_inst_t *)&cmd_ddp_del,
+		(cmdline_parse_inst_t *)&cmd_ddp_get_list,
+		(cmdline_parse_inst_t *)&cmd_ddp_get_info,
+		(cmdline_parse_inst_t *)&cmd_cfg_input_set,
+		(cmdline_parse_inst_t *)&cmd_clear_input_set,
+		(cmdline_parse_inst_t *)&cmd_ptype_mapping_get,
+		(cmdline_parse_inst_t *)&cmd_ptype_mapping_replace,
+		(cmdline_parse_inst_t *)&cmd_ptype_mapping_reset,
+		(cmdline_parse_inst_t *)&cmd_ptype_mapping_update,
+		(cmdline_parse_inst_t *)&cmd_pctype_mapping_get,
+		(cmdline_parse_inst_t *)&cmd_pctype_mapping_reset,
+		(cmdline_parse_inst_t *)&cmd_pctype_mapping_update,
+		NULL
+	},
+	.help = {
+		"set port (port_id) queue-region region_id (value) "
+		"queue_start_index (value) queue_num (value)\n"
+		"    Set a queue region on a port\n",
+
+		"set port (port_id) queue-region region_id (value) "
+		"flowtype (value)\n"
+		"    Set a flowtype region index on a port\n",
+
+		"set port (port_id) queue-region UP (value) region_id (value)\n"
+		"    Set the mapping of User Priority to "
+		"queue region on a port\n",
+
+		"set port (port_id) queue-region flush (on|off)\n"
+		"    flush all queue region related configuration\n",
+
+		"show port (port_id) queue-region\n"
+		"    show all queue region related configuration info\n",
+
+		"flow_director_filter (port_id) mode raw (add|del|update)"
+		" flow (flow_id) (drop|fwd) queue (queue_id)"
+		" fd_id (fd_id_value) packet (packet file name)\n"
+		"    Add/Del a raw type flow director filter.\n",
+
+		"set vf promisc (port_id) (vf_id) (on|off)\n"
+		"    Set unicast promiscuous mode for a VF from the PF.\n",
+
+		"set vf allmulti (port_id) (vf_id) (on|off)\n"
+		"    Set multicast promiscuous mode for a VF from the PF.\n",
+
+		"set vf broadcast (port_id) (vf_id) (on|off)\n"
+		"    Set VF broadcast for a VF from the PF.\n",
+
+		"set vf vlan tag (port_id) (vf_id) (on|off)\n"
+		"    Set VLAN tag for a VF from the PF.\n",
+
+		"set vf tx max-bandwidth (port_id) (vf_id) (bandwidth)\n"
+		"    Set a VF's max bandwidth(Mbps).\n",
+
+		"set vf tc tx min-bandwidth (port_id) (vf_id) (bw1, bw2, ...)\n"
+		"    Set all TCs' min bandwidth(%%) on a VF.\n",
+
+		"set vf tc tx max-bandwidth (port_id) (vf_id) (tc_no) (bandwidth)\n"
+		"    Set a TC's max bandwidth(Mbps) on a VF.\n",
+
+		"set tx strict-link-priority (port_id) (tc_bitmap)\n"
+		"    Set some TCs' strict link priority mode on a physical port.\n",
+
+		"ddp add (port_id) (profile_path[,backup_profile_path])\n"
+		"    Load a profile package on a port\n",
+
+		"ddp del (port_id) (backup_profile_path)\n"
+		"    Delete a profile package from a port\n",
+
+		"ddp get list (port_id)\n"
+		"    Get ddp profile info list\n",
+
+		"ddp get info (profile_path)\n"
+		"    Get ddp profile information.\n",
+
+		"port config (port_id) pctype (pctype_id) hash_inset|"
+		"fdir_inset|fdir_flx_inset get|set|clear field\n"
+		" (field_idx)\n"
+		"    Configure RSS|FDIR|FDIR_FLX input set for some pctype\n",
+
+		"port config (port_id) pctype (pctype_id) hash_inset|"
+		"fdir_inset|fdir_flx_inset clear all"
+		"    Clear RSS|FDIR|FDIR_FLX input set completely for some pctype\n",
+
+		"ptype mapping get (port_id) (valid_only)\n"
+		"    Get ptype mapping on a port\n",
+
+		"ptype mapping replace (port_id) (target) (mask) (pky_type)\n"
+		"    Replace target with the pkt_type in ptype mapping\n",
+
+		"ptype mapping reset (port_id)\n"
+		"    Reset ptype mapping on a port\n",
+
+		"ptype mapping update (port_id) (hw_ptype) (sw_ptype)\n"
+		"    Update a ptype mapping item on a port\n",
+
+		"show port (port_id) pctype mapping\n"
+		"    Get flow ptype to pctype mapping on a port\n",
+
+		"port config (port_id) pctype mapping reset\n"
+		"    Reset flow type to pctype mapping on a port\n",
+
+		"port config (port_id) pctype mapping update"
+		" (pctype_id_0[,pctype_id_1]*) (flow_type_id)\n"
+		"    Update a flow type to pctype mapping item on a port\n",
+
+		NULL
+	},
+};
+
+RTE_INIT(i40e_testpmd)
+{
+	testpmd_add_commands(&driver_parser);
+}
diff --git a/drivers/net/i40e/meson.build b/drivers/net/i40e/meson.build
index efc5f93e35..b282ec7213 100644
--- a/drivers/net/i40e/meson.build
+++ b/drivers/net/i40e/meson.build
@@ -21,6 +21,8 @@ sources = files(
         'rte_pmd_i40e.c',
 )
 
+testpmd_sources = files('i40e_testpmd.c')
+
 deps += ['hash']
 includes += include_directories('base')
 
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [RFC PATCH v2 5/5] net/ixgbe: move testpmd commands
  2022-05-18 19:46 ` [RFC PATCH v2 0/5] Split driver specific commands out of testpmd David Marchand
                     ` (3 preceding siblings ...)
  2022-05-18 19:46   ` [RFC PATCH v2 4/5] net/i40e: " David Marchand
@ 2022-05-18 19:46   ` David Marchand
  2022-05-20  7:04   ` [RFC PATCH v2 0/5] Split driver specific commands out of testpmd Andrew Rybchenko
  5 siblings, 0 replies; 65+ messages in thread
From: David Marchand @ 2022-05-18 19:46 UTC (permalink / raw)
  To: dev; +Cc: thomas, Xiaoyun Li, Aman Singh, Yuying Zhang, Qiming Yang, Wenjun Wu

Move related specific testpmd commands into this driver directory.
While at it, fix checkpatch warnings.

The bypass code required some special init code before starting a port.
This is removed from testpmd itself and a new (*untested*) command is
added.

Note: bypass commands were not compiled since the switch to meson.
This change reinstates them, though I am really tempted to drop them
since we had no complaint for such a long time.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/cmdline.c            | 1056 +-------------------------
 app/test-pmd/testpmd.c            |   14 -
 app/test-pmd/testpmd.h            |    5 +-
 drivers/net/ixgbe/ixgbe_testpmd.c | 1147 +++++++++++++++++++++++++++++
 drivers/net/ixgbe/meson.build     |    2 +
 5 files changed, 1151 insertions(+), 1073 deletions(-)
 create mode 100644 drivers/net/ixgbe/ixgbe_testpmd.c

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index a009b2ec47..3883ca1129 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -69,8 +69,6 @@ static cmdline_parse_ctx_t *main_ctx;
 static TAILQ_HEAD(, testpmd_cmdline_parser) cmdline_parsers =
 	TAILQ_HEAD_INITIALIZER(cmdline_parsers);
 
-static void cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue);
-
 /* *** Help command with introduction. *** */
 struct cmd_help_brief_result {
 	cmdline_fixed_string_t help;
@@ -335,24 +333,9 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set all queues drop (port_id) (on|off)\n"
 			"    Set drop enable bit for all queues.\n\n"
 
-			"set vf split drop (port_id) (vf_id) (on|off)\n"
-			"    Set split drop enable bit for a VF from the PF.\n\n"
-
 			"set vf mac antispoof (port_id) (vf_id) (on|off).\n"
 			"    Set MAC antispoof for a VF from the PF.\n\n"
 
-			"set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)\n"
-			"    Enable MACsec offload.\n\n"
-
-			"set macsec offload (port_id) off\n"
-			"    Disable MACsec offload.\n\n"
-
-			"set macsec sc (tx|rx) (port_id) (mac) (pi)\n"
-			"    Configure MACsec secure connection (SC).\n\n"
-
-			"set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)\n"
-			"    Configure MACsec secure association (SA).\n\n"
-
 			"vlan set stripq (on|off) (port_id,queue_id)\n"
 			"    Set the VLAN strip for a queue on a port.\n\n"
 
@@ -365,8 +348,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set vf vlan antispoof (port_id) (vf_id) (on|off)\n"
 			"    Set VLAN antispoof for a VF from the PF.\n\n"
 
-			"set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\n"
-			"    Set all TCs' min bandwidth(%%) for all PF and VFs.\n\n"
 
 			"vlan set (strip|filter|qinq_strip|extend) (on|off) (port_id)\n"
 			"    Set the VLAN strip or filter or qinq strip or extend\n\n"
@@ -554,29 +535,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"   Flush (default) or don't flush RX streams before"
 			" forwarding. Mainly used with PCAP drivers.\n\n"
 
-			"set bypass mode (normal|bypass|isolate) (port_id)\n"
-			"   Set the bypass mode for the lowest port on bypass enabled"
-			" NIC.\n\n"
-
-			"set bypass event (timeout|os_on|os_off|power_on|power_off) "
-			"mode (normal|bypass|isolate) (port_id)\n"
-			"   Set the event required to initiate specified bypass mode for"
-			" the lowest port on a bypass enabled NIC where:\n"
-			"       timeout   = enable bypass after watchdog timeout.\n"
-			"       os_on     = enable bypass when OS/board is powered on.\n"
-			"       os_off    = enable bypass when OS/board is powered off.\n"
-			"       power_on  = enable bypass when power supply is turned on.\n"
-			"       power_off = enable bypass when power supply is turned off."
-			"\n\n"
-
-			"set bypass timeout (0|1.5|2|3|4|8|16|32)\n"
-			"   Set the bypass watchdog timeout to 'n' seconds"
-			" where 0 = instant.\n\n"
-
-			"show bypass config (port_id)\n"
-			"   Show the bypass configuration for a bypass enabled NIC"
-			" using the lowest port on the NIC.\n\n"
-
 			"set link-up port (port_id)\n"
 			"	Set link up for a port.\n\n"
 
@@ -5446,347 +5404,6 @@ static cmdline_parse_inst_t cmd_set_link_check = {
 	},
 };
 
-/* *** SET NIC BYPASS MODE *** */
-struct cmd_set_bypass_mode_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t mode;
-	cmdline_fixed_string_t value;
-	portid_t port_id;
-};
-
-static void
-cmd_set_bypass_mode_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bypass_mode_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	int32_t rc = -EINVAL;
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	if (!strcmp(res->value, "bypass"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
-	else if (!strcmp(res->value, "isolate"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
-	else
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	/* Set the bypass mode for the relevant port. */
-	rc = rte_pmd_ixgbe_bypass_state_set(port_id, &bypass_mode);
-#endif
-	if (rc != 0)
-		fprintf(stderr, "\t Failed to set bypass mode for port = %d.\n",
-			port_id);
-}
-
-static cmdline_parse_token_string_t cmd_setbypass_mode_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			set, "set");
-static cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_setbypass_mode_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			mode, "mode");
-static cmdline_parse_token_string_t cmd_setbypass_mode_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			value, "normal#bypass#isolate");
-static cmdline_parse_token_num_t cmd_setbypass_mode_port =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_mode_result,
-				port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_set_bypass_mode = {
-	.f = cmd_set_bypass_mode_parsed,
-	.help_str = "set bypass mode normal|bypass|isolate <port_id>: "
-	            "Set the NIC bypass mode for port_id",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_setbypass_mode_set,
-		(void *)&cmd_setbypass_mode_bypass,
-		(void *)&cmd_setbypass_mode_mode,
-		(void *)&cmd_setbypass_mode_value,
-		(void *)&cmd_setbypass_mode_port,
-		NULL,
-	},
-};
-
-/* *** SET NIC BYPASS EVENT *** */
-struct cmd_set_bypass_event_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t event;
-	cmdline_fixed_string_t event_value;
-	cmdline_fixed_string_t mode;
-	cmdline_fixed_string_t mode_value;
-	portid_t port_id;
-};
-
-static void
-cmd_set_bypass_event_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	int32_t rc = -EINVAL;
-	struct cmd_set_bypass_event_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	uint32_t bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
-	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	if (!strcmp(res->event_value, "timeout"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT;
-	else if (!strcmp(res->event_value, "os_on"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_ON;
-	else if (!strcmp(res->event_value, "os_off"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_OFF;
-	else if (!strcmp(res->event_value, "power_on"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_ON;
-	else if (!strcmp(res->event_value, "power_off"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_OFF;
-	else
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
-
-	if (!strcmp(res->mode_value, "bypass"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
-	else if (!strcmp(res->mode_value, "isolate"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
-	else
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	/* Set the watchdog timeout. */
-	if (bypass_event == RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT) {
-
-		rc = -EINVAL;
-		if (RTE_PMD_IXGBE_BYPASS_TMT_VALID(bypass_timeout)) {
-			rc = rte_pmd_ixgbe_bypass_wd_timeout_store(port_id,
-							   bypass_timeout);
-		}
-		if (rc != 0) {
-			fprintf(stderr,
-				"Failed to set timeout value %u for port %d, errto code: %d.\n",
-				bypass_timeout, port_id, rc);
-		}
-	}
-
-	/* Set the bypass event to transition to bypass mode. */
-	rc = rte_pmd_ixgbe_bypass_event_store(port_id, bypass_event,
-					      bypass_mode);
-#endif
-
-	if (rc != 0)
-		fprintf(stderr, "\t Failed to set bypass event for port = %d.\n",
-			port_id);
-}
-
-static cmdline_parse_token_string_t cmd_setbypass_event_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			set, "set");
-static cmdline_parse_token_string_t cmd_setbypass_event_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_setbypass_event_event =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			event, "event");
-static cmdline_parse_token_string_t cmd_setbypass_event_event_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			event_value, "none#timeout#os_off#os_on#power_on#power_off");
-static cmdline_parse_token_string_t cmd_setbypass_event_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			mode, "mode");
-static cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			mode_value, "normal#bypass#isolate");
-static cmdline_parse_token_num_t cmd_setbypass_event_port =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_event_result,
-				port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_set_bypass_event = {
-	.f = cmd_set_bypass_event_parsed,
-	.help_str = "set bypass event none|timeout|os_on|os_off|power_on|"
-		"power_off mode normal|bypass|isolate <port_id>: "
-		"Set the NIC bypass event mode for port_id",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_setbypass_event_set,
-		(void *)&cmd_setbypass_event_bypass,
-		(void *)&cmd_setbypass_event_event,
-		(void *)&cmd_setbypass_event_event_value,
-		(void *)&cmd_setbypass_event_mode,
-		(void *)&cmd_setbypass_event_mode_value,
-		(void *)&cmd_setbypass_event_port,
-		NULL,
-	},
-};
-
-
-/* *** SET NIC BYPASS TIMEOUT *** */
-struct cmd_set_bypass_timeout_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t timeout;
-	cmdline_fixed_string_t value;
-};
-
-static void
-cmd_set_bypass_timeout_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	__rte_unused struct cmd_set_bypass_timeout_result *res = parsed_result;
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	if (!strcmp(res->value, "1.5"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_1_5_SEC;
-	else if (!strcmp(res->value, "2"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_2_SEC;
-	else if (!strcmp(res->value, "3"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_3_SEC;
-	else if (!strcmp(res->value, "4"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_4_SEC;
-	else if (!strcmp(res->value, "8"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_8_SEC;
-	else if (!strcmp(res->value, "16"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_16_SEC;
-	else if (!strcmp(res->value, "32"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_32_SEC;
-	else
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
-#endif
-}
-
-static cmdline_parse_token_string_t cmd_setbypass_timeout_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			set, "set");
-static cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			timeout, "timeout");
-static cmdline_parse_token_string_t cmd_setbypass_timeout_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			value, "0#1.5#2#3#4#8#16#32");
-
-static cmdline_parse_inst_t cmd_set_bypass_timeout = {
-	.f = cmd_set_bypass_timeout_parsed,
-	.help_str = "set bypass timeout 0|1.5|2|3|4|8|16|32: "
-		"Set the NIC bypass watchdog timeout in seconds",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_setbypass_timeout_set,
-		(void *)&cmd_setbypass_timeout_bypass,
-		(void *)&cmd_setbypass_timeout_timeout,
-		(void *)&cmd_setbypass_timeout_value,
-		NULL,
-	},
-};
-
-/* *** SHOW NIC BYPASS MODE *** */
-struct cmd_show_bypass_config_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t config;
-	portid_t port_id;
-};
-
-static void
-cmd_show_bypass_config_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_show_bypass_config_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	int rc = -EINVAL;
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	uint32_t event_mode;
-	uint32_t bypass_mode;
-	uint32_t timeout = bypass_timeout;
-	unsigned int i;
-
-	static const char * const timeouts[RTE_PMD_IXGBE_BYPASS_TMT_NUM] =
-		{"off", "1.5", "2", "3", "4", "8", "16", "32"};
-	static const char * const modes[RTE_PMD_IXGBE_BYPASS_MODE_NUM] =
-		{"UNKNOWN", "normal", "bypass", "isolate"};
-	static const char * const events[RTE_PMD_IXGBE_BYPASS_EVENT_NUM] = {
-		"NONE",
-		"OS/board on",
-		"power supply on",
-		"OS/board off",
-		"power supply off",
-		"timeout"};
-
-	/* Display the bypass mode.*/
-	if (rte_pmd_ixgbe_bypass_state_show(port_id, &bypass_mode) != 0) {
-		fprintf(stderr, "\tFailed to get bypass mode for port = %d\n",
-			port_id);
-		return;
-	}
-	else {
-		if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(bypass_mode))
-			bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
-
-		printf("\tbypass mode    = %s\n",  modes[bypass_mode]);
-	}
-
-	/* Display the bypass timeout.*/
-	if (!RTE_PMD_IXGBE_BYPASS_TMT_VALID(timeout))
-		timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
-
-	printf("\tbypass timeout = %s\n", timeouts[timeout]);
-
-	/* Display the bypass events and associated modes. */
-	for (i = RTE_PMD_IXGBE_BYPASS_EVENT_START; i < RTE_DIM(events); i++) {
-
-		if (rte_pmd_ixgbe_bypass_event_show(port_id, i, &event_mode)) {
-			fprintf(stderr,
-				"\tFailed to get bypass mode for event = %s\n",
-				events[i]);
-		} else {
-			if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(event_mode))
-				event_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
-
-			printf("\tbypass event: %-16s = %s\n", events[i],
-				modes[event_mode]);
-		}
-	}
-#endif
-	if (rc != 0)
-		fprintf(stderr,
-			"\tFailed to get bypass configuration for port = %d\n",
-		       port_id);
-}
-
-static cmdline_parse_token_string_t cmd_showbypass_config_show =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
-			show, "show");
-static cmdline_parse_token_string_t cmd_showbypass_config_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_showbypass_config_config =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
-			config, "config");
-static cmdline_parse_token_num_t cmd_showbypass_config_port =
-	TOKEN_NUM_INITIALIZER(struct cmd_show_bypass_config_result,
-				port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_show_bypass_config = {
-	.f = cmd_show_bypass_config_parsed,
-	.help_str = "show bypass config <port_id>: "
-	            "Show the NIC bypass config for port_id",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_showbypass_config_show,
-		(void *)&cmd_showbypass_config_bypass,
-		(void *)&cmd_showbypass_config_config,
-		(void *)&cmd_showbypass_config_port,
-		NULL,
-	},
-};
-
 /* *** SET FORWARDING MODE *** */
 struct cmd_set_fwd_mode_result {
 	cmdline_fixed_string_t set;
@@ -10008,100 +9625,6 @@ static cmdline_parse_inst_t cmd_set_all_queues_drop_en = {
 	},
 };
 
-/* vf split drop enable configuration */
-
-/* Common result structure for vf split drop enable */
-struct cmd_vf_split_drop_en_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t split;
-	cmdline_fixed_string_t drop;
-	portid_t port_id;
-	uint16_t vf_id;
-	cmdline_fixed_string_t on_off;
-};
-
-/* Common CLI fields for vf split drop enable disable */
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 split, "split");
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 drop, "drop");
-static cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 vf_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 on_off, "on#off");
-
-static void
-cmd_set_vf_split_drop_en_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_split_drop_en_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_IXGBE
-	ret = rte_pmd_ixgbe_set_vf_split_drop_en(res->port_id, res->vf_id,
-			is_on);
-#endif
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
-			res->vf_id, is_on);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", res->port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
-	.f = cmd_set_vf_split_drop_en_parsed,
-	.data = NULL,
-	.help_str = "set vf split drop <port_id> <vf_id> on|off",
-	.tokens = {
-		(void *)&cmd_vf_split_drop_en_set,
-		(void *)&cmd_vf_split_drop_en_vf,
-		(void *)&cmd_vf_split_drop_en_split,
-		(void *)&cmd_vf_split_drop_en_drop,
-		(void *)&cmd_vf_split_drop_en_port_id,
-		(void *)&cmd_vf_split_drop_en_vf_id,
-		(void *)&cmd_vf_split_drop_en_on_off,
-		NULL,
-	},
-};
-
 /* vf mac address configuration */
 
 /* Common result structure for vf mac address */
@@ -10206,573 +9729,6 @@ static cmdline_parse_inst_t cmd_set_vf_mac_addr = {
 	},
 };
 
-/* MACsec configuration */
-
-/* Common result structure for MACsec offload enable */
-struct cmd_macsec_offload_on_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t offload;
-	portid_t port_id;
-	cmdline_fixed_string_t on;
-	cmdline_fixed_string_t encrypt;
-	cmdline_fixed_string_t en_on_off;
-	cmdline_fixed_string_t replay_protect;
-	cmdline_fixed_string_t rp_on_off;
-};
-
-/* Common CLI fields for MACsec offload disable */
-static cmdline_parse_token_string_t cmd_macsec_offload_on_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 offload, "offload");
-static cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_macsec_offload_on_on =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 on, "on");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 encrypt, "encrypt");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 en_on_off, "on#off");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 replay_protect, "replay-protect");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 rp_on_off, "on#off");
-
-static void
-cmd_set_macsec_offload_on_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_offload_on_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	portid_t port_id = res->port_id;
-	int en = (strcmp(res->en_on_off, "on") == 0) ? 1 : 0;
-	int rp = (strcmp(res->rp_on_off, "on") == 0) ? 1 : 0;
-	struct rte_eth_dev_info dev_info;
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (!port_is_stopped(port_id)) {
-		fprintf(stderr, "Please stop port %d first\n", port_id);
-		return;
-	}
-
-	ret = eth_dev_info_get_print_err(port_id, &dev_info);
-	if (ret != 0)
-		return;
-
-	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT) {
-#ifdef RTE_NET_IXGBE
-		ret = rte_pmd_ixgbe_macsec_enable(port_id, en, rp);
-#endif
-	}
-	RTE_SET_USED(en);
-	RTE_SET_USED(rp);
-
-	switch (ret) {
-	case 0:
-		ports[port_id].dev_conf.txmode.offloads |=
-						RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
-		cmd_reconfig_device_queue(port_id, 1, 1);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_offload_on = {
-	.f = cmd_set_macsec_offload_on_parsed,
-	.data = NULL,
-	.help_str = "set macsec offload <port_id> on "
-		"encrypt on|off replay-protect on|off",
-	.tokens = {
-		(void *)&cmd_macsec_offload_on_set,
-		(void *)&cmd_macsec_offload_on_macsec,
-		(void *)&cmd_macsec_offload_on_offload,
-		(void *)&cmd_macsec_offload_on_port_id,
-		(void *)&cmd_macsec_offload_on_on,
-		(void *)&cmd_macsec_offload_on_encrypt,
-		(void *)&cmd_macsec_offload_on_en_on_off,
-		(void *)&cmd_macsec_offload_on_replay_protect,
-		(void *)&cmd_macsec_offload_on_rp_on_off,
-		NULL,
-	},
-};
-
-/* Common result structure for MACsec offload disable */
-struct cmd_macsec_offload_off_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t offload;
-	portid_t port_id;
-	cmdline_fixed_string_t off;
-};
-
-/* Common CLI fields for MACsec offload disable */
-static cmdline_parse_token_string_t cmd_macsec_offload_off_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 offload, "offload");
-static cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_macsec_offload_off_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 off, "off");
-
-static void
-cmd_set_macsec_offload_off_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_offload_off_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	struct rte_eth_dev_info dev_info;
-	portid_t port_id = res->port_id;
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (!port_is_stopped(port_id)) {
-		fprintf(stderr, "Please stop port %d first\n", port_id);
-		return;
-	}
-
-	ret = eth_dev_info_get_print_err(port_id, &dev_info);
-	if (ret != 0)
-		return;
-
-	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT) {
-#ifdef RTE_NET_IXGBE
-		ret = rte_pmd_ixgbe_macsec_disable(port_id);
-#endif
-	}
-	switch (ret) {
-	case 0:
-		ports[port_id].dev_conf.txmode.offloads &=
-						~RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
-		cmd_reconfig_device_queue(port_id, 1, 1);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_offload_off = {
-	.f = cmd_set_macsec_offload_off_parsed,
-	.data = NULL,
-	.help_str = "set macsec offload <port_id> off",
-	.tokens = {
-		(void *)&cmd_macsec_offload_off_set,
-		(void *)&cmd_macsec_offload_off_macsec,
-		(void *)&cmd_macsec_offload_off_offload,
-		(void *)&cmd_macsec_offload_off_port_id,
-		(void *)&cmd_macsec_offload_off_off,
-		NULL,
-	},
-};
-
-/* Common result structure for MACsec secure connection configure */
-struct cmd_macsec_sc_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t sc;
-	cmdline_fixed_string_t tx_rx;
-	portid_t port_id;
-	struct rte_ether_addr mac;
-	uint16_t pi;
-};
-
-/* Common CLI fields for MACsec secure connection configure */
-static cmdline_parse_token_string_t cmd_macsec_sc_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_sc_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_sc_sc =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 sc, "sc");
-static cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 tx_rx, "tx#rx");
-static cmdline_parse_token_num_t cmd_macsec_sc_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
-	TOKEN_ETHERADDR_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 mac);
-static cmdline_parse_token_num_t cmd_macsec_sc_pi =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 pi, RTE_UINT16);
-
-static void
-cmd_set_macsec_sc_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_sc_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
-
-#ifdef RTE_NET_IXGBE
-	ret = is_tx ?
-		rte_pmd_ixgbe_macsec_config_txsc(res->port_id,
-				res->mac.addr_bytes) :
-		rte_pmd_ixgbe_macsec_config_rxsc(res->port_id,
-				res->mac.addr_bytes, res->pi);
-#endif
-	RTE_SET_USED(is_tx);
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", res->port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_sc = {
-	.f = cmd_set_macsec_sc_parsed,
-	.data = NULL,
-	.help_str = "set macsec sc tx|rx <port_id> <mac> <pi>",
-	.tokens = {
-		(void *)&cmd_macsec_sc_set,
-		(void *)&cmd_macsec_sc_macsec,
-		(void *)&cmd_macsec_sc_sc,
-		(void *)&cmd_macsec_sc_tx_rx,
-		(void *)&cmd_macsec_sc_port_id,
-		(void *)&cmd_macsec_sc_mac,
-		(void *)&cmd_macsec_sc_pi,
-		NULL,
-	},
-};
-
-/* Common result structure for MACsec secure connection configure */
-struct cmd_macsec_sa_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t sa;
-	cmdline_fixed_string_t tx_rx;
-	portid_t port_id;
-	uint8_t idx;
-	uint8_t an;
-	uint32_t pn;
-	cmdline_fixed_string_t key;
-};
-
-/* Common CLI fields for MACsec secure connection configure */
-static cmdline_parse_token_string_t cmd_macsec_sa_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_sa_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_sa_sa =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 sa, "sa");
-static cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 tx_rx, "tx#rx");
-static cmdline_parse_token_num_t cmd_macsec_sa_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_macsec_sa_idx =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 idx, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_macsec_sa_an =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 an, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_macsec_sa_pn =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 pn, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_macsec_sa_key =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 key, NULL);
-
-static void
-cmd_set_macsec_sa_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_sa_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
-	uint8_t key[16] = { 0 };
-	uint8_t xdgt0;
-	uint8_t xdgt1;
-	int key_len;
-	int i;
-
-	key_len = strlen(res->key) / 2;
-	if (key_len > 16)
-		key_len = 16;
-
-	for (i = 0; i < key_len; i++) {
-		xdgt0 = parse_and_check_key_hexa_digit(res->key, (i * 2));
-		if (xdgt0 == 0xFF)
-			return;
-		xdgt1 = parse_and_check_key_hexa_digit(res->key, (i * 2) + 1);
-		if (xdgt1 == 0xFF)
-			return;
-		key[i] = (uint8_t) ((xdgt0 * 16) + xdgt1);
-	}
-
-#ifdef RTE_NET_IXGBE
-	ret = is_tx ?
-		rte_pmd_ixgbe_macsec_select_txsa(res->port_id,
-			res->idx, res->an, res->pn, key) :
-		rte_pmd_ixgbe_macsec_select_rxsa(res->port_id,
-			res->idx, res->an, res->pn, key);
-#endif
-	RTE_SET_USED(is_tx);
-	RTE_SET_USED(key);
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid idx %d or an %d\n", res->idx, res->an);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", res->port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_sa = {
-	.f = cmd_set_macsec_sa_parsed,
-	.data = NULL,
-	.help_str = "set macsec sa tx|rx <port_id> <idx> <an> <pn> <key>",
-	.tokens = {
-		(void *)&cmd_macsec_sa_set,
-		(void *)&cmd_macsec_sa_macsec,
-		(void *)&cmd_macsec_sa_sa,
-		(void *)&cmd_macsec_sa_tx_rx,
-		(void *)&cmd_macsec_sa_port_id,
-		(void *)&cmd_macsec_sa_idx,
-		(void *)&cmd_macsec_sa_an,
-		(void *)&cmd_macsec_sa_pn,
-		(void *)&cmd_macsec_sa_key,
-		NULL,
-	},
-};
-
-/* Common definition of VF and TC TX bandwidth configuration */
-struct cmd_vf_tc_bw_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t tc;
-	cmdline_fixed_string_t tx;
-	cmdline_fixed_string_t min_bw;
-	portid_t port_id;
-	cmdline_fixed_string_t bw_list;
-};
-
-static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tc, "tc");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tx, "tx");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 min_bw, "min-bandwidth");
-static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 bw_list, NULL);
-
-static int
-vf_tc_min_bw_parse_bw_list(uint8_t *bw_list,
-			   uint8_t *tc_num,
-			   char *str)
-{
-	uint32_t size;
-	const char *p, *p0 = str;
-	char s[256];
-	char *end;
-	char *str_fld[16];
-	uint16_t i;
-	int ret;
-
-	p = strchr(p0, '(');
-	if (p == NULL) {
-		fprintf(stderr,
-			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
-		return -1;
-	}
-	p++;
-	p0 = strchr(p, ')');
-	if (p0 == NULL) {
-		fprintf(stderr,
-			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
-		return -1;
-	}
-	size = p0 - p;
-	if (size >= sizeof(s)) {
-		fprintf(stderr,
-			"The string size exceeds the internal buffer size\n");
-		return -1;
-	}
-	snprintf(s, sizeof(s), "%.*s", size, p);
-	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
-	if (ret <= 0) {
-		fprintf(stderr, "Failed to get the bandwidth list.\n");
-		return -1;
-	}
-	*tc_num = ret;
-	for (i = 0; i < ret; i++)
-		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
-
-	return 0;
-}
-
-static void
-cmd_tc_min_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	struct rte_port *port;
-	uint8_t tc_num;
-	uint8_t bw[16];
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	port = &ports[res->port_id];
-	/** Check if the port is not started **/
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr, "Please stop port %d first\n", res->port_id);
-		return;
-	}
-
-	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
-	if (ret)
-		return;
-
-#ifdef RTE_NET_IXGBE
-	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid bandwidth\n");
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_tc_min_bw = {
-	.f = cmd_tc_min_bw_parsed,
-	.data = NULL,
-	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_tc,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_min_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_bw_list,
-		NULL,
-	},
-};
-
 /** Set VXLAN encapsulation details */
 struct cmd_set_vxlan_result {
 	cmdline_fixed_string_t set;
@@ -14153,10 +13109,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_allmulti_mode_all,
 	(cmdline_parse_inst_t *)&cmd_set_flush_rx,
 	(cmdline_parse_inst_t *)&cmd_set_link_check,
-	(cmdline_parse_inst_t *)&cmd_set_bypass_mode,
-	(cmdline_parse_inst_t *)&cmd_set_bypass_event,
-	(cmdline_parse_inst_t *)&cmd_set_bypass_timeout,
-	(cmdline_parse_inst_t *)&cmd_show_bypass_config,
 	(cmdline_parse_inst_t *)&cmd_vlan_offload,
 	(cmdline_parse_inst_t *)&cmd_vlan_tpid,
 	(cmdline_parse_inst_t *)&cmd_rx_vlan_filter_all,
@@ -14272,17 +13224,11 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_vf_vlan_insert,
 	(cmdline_parse_inst_t *)&cmd_set_tx_loopback,
 	(cmdline_parse_inst_t *)&cmd_set_all_queues_drop_en,
-	(cmdline_parse_inst_t *)&cmd_set_vf_split_drop_en,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_offload_on,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_offload_off,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_sc,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_sa,
 	(cmdline_parse_inst_t *)&cmd_set_vf_traffic,
 	(cmdline_parse_inst_t *)&cmd_set_vf_rxmode,
 	(cmdline_parse_inst_t *)&cmd_vf_rate_limit,
 	(cmdline_parse_inst_t *)&cmd_vf_rxvlan_filter,
 	(cmdline_parse_inst_t *)&cmd_set_vf_mac_addr,
-	(cmdline_parse_inst_t *)&cmd_tc_min_bw,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan_tos_ttl,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan_with_vlan,
@@ -14461,7 +13407,7 @@ prompt_exit(void)
 	}
 }
 
-static void
+void
 cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue)
 {
 	if (id == (portid_t)RTE_PORT_ALL) {
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 93ec930b15..caf691a09a 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -437,16 +437,6 @@ uint32_t event_print_mask = (UINT32_C(1) << RTE_ETH_EVENT_UNKNOWN) |
  */
 int do_mlockall = 0;
 
-/*
- * NIC bypass mode configuration options.
- */
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-/* The NIC bypass watchdog timeout. */
-uint32_t bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
-#endif
-
-
 #ifdef RTE_LIB_LATENCYSTATS
 
 /*
@@ -3812,10 +3802,6 @@ init_port_config(void)
 		if (ret != 0)
 			return;
 
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-		rte_pmd_ixgbe_bypass_init(pid);
-#endif
-
 		if (lsc_interrupt && (*port->dev_info.dev_flags & RTE_ETH_DEV_INTR_LSC))
 			port->dev_conf.intr_conf.lsc = 1;
 		if (rmv_interrupt && (*port->dev_info.dev_flags & RTE_ETH_DEV_INTR_RMV))
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index 71aa168c6e..4b2da3e28f 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -439,10 +439,6 @@ extern uint8_t hot_plug; /**< enable by "--hot-plug" parameter */
 extern int do_mlockall; /**< set by "--mlockall" or "--no-mlockall" parameter */
 extern uint8_t clear_ptypes; /**< disabled by set ptype cmd */
 
-#ifdef RTE_LIBRTE_IXGBE_BYPASS
-extern uint32_t bypass_timeout; /**< Store the NIC bypass watchdog timeout */
-#endif
-
 /*
  * Store specified sockets on which memory pool to be used by ports
  * is allocated.
@@ -871,6 +867,7 @@ 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);
+void cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue);
 void cmdline_read_from_file(const char *filename);
 int init_cmdline(void);
 void prompt(void);
diff --git a/drivers/net/ixgbe/ixgbe_testpmd.c b/drivers/net/ixgbe/ixgbe_testpmd.c
new file mode 100644
index 0000000000..58c695f9d8
--- /dev/null
+++ b/drivers/net/ixgbe/ixgbe_testpmd.c
@@ -0,0 +1,1147 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2016 Intel Corporation.
+ */
+
+#define RTE_LIBRTE_IXGBE_BYPASS
+
+#include <ethdev_driver.h>
+#include "ixgbe_ethdev.h"
+#include "rte_pmd_ixgbe.h"
+
+#include <cmdline_parse_etheraddr.h>
+#include <cmdline_parse_num.h>
+#include <cmdline_parse_string.h>
+
+#include "testpmd.h"
+
+static uint8_t
+hexa_digit_to_value(char hexa_digit)
+{
+	if ((hexa_digit >= '0') && (hexa_digit <= '9'))
+		return (uint8_t)(hexa_digit - '0');
+	if ((hexa_digit >= 'a') && (hexa_digit <= 'f'))
+		return (uint8_t)((hexa_digit - 'a') + 10);
+	if ((hexa_digit >= 'A') && (hexa_digit <= 'F'))
+		return (uint8_t)((hexa_digit - 'A') + 10);
+	/* Invalid hexa digit */
+	return 0xFF;
+}
+
+static uint8_t
+parse_and_check_key_hexa_digit(char *key, int idx)
+{
+	uint8_t hexa_v;
+
+	hexa_v = hexa_digit_to_value(key[idx]);
+	if (hexa_v == 0xFF)
+		fprintf(stderr,
+			"invalid key: character %c at position %d is not a valid hexa digit\n",
+			key[idx], idx);
+	return hexa_v;
+}
+
+static int
+vf_tc_min_bw_parse_bw_list(uint8_t *bw_list,
+			   uint8_t *tc_num,
+			   char *str)
+{
+	uint32_t size;
+	const char *p, *p0 = str;
+	char s[256];
+	char *end;
+	char *str_fld[16];
+	uint16_t i;
+	int ret;
+
+	p = strchr(p0, '(');
+	if (p == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	p++;
+	p0 = strchr(p, ')');
+	if (p0 == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	size = p0 - p;
+	if (size >= sizeof(s)) {
+		fprintf(stderr,
+			"The string size exceeds the internal buffer size\n");
+		return -1;
+	}
+	snprintf(s, sizeof(s), "%.*s", size, p);
+	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
+	if (ret <= 0) {
+		fprintf(stderr, "Failed to get the bandwidth list.\n");
+		return -1;
+	}
+	*tc_num = ret;
+	for (i = 0; i < ret; i++)
+		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
+
+	return 0;
+}
+
+/* The NIC bypass watchdog timeout. */
+uint32_t bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
+
+static inline bool
+check_bypass_enabled(portid_t port_id)
+{
+	struct ixgbe_adapter *adapter;
+
+	adapter = rte_eth_devices[port_id].data->dev_private;
+	if (adapter->bps.ops.bypass_rw == NULL) {
+		fprintf(stderr, "Bypass is not enabled on this port.\n");
+		return false;
+	}
+
+	return true;
+}
+
+/* Enable bypass mode */
+struct cmd_config_bypass_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t config;
+	cmdline_fixed_string_t bypass;
+	portid_t port_id;
+	cmdline_fixed_string_t value;
+};
+
+static void
+cmd_config_bypass_parsed(void *parsed_result,
+		      __rte_unused struct cmdline *cl,
+		      __rte_unused void *data)
+{
+	struct cmd_config_bypass_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+
+	if (ports[port_id].port_status == RTE_PORT_STARTED) {
+		fprintf(stderr, "Cannot change bypass configuration while port is started, please stop it and retry\n");
+		return;
+	}
+
+	if (strcmp(res->value, "on") == 0)
+		rte_pmd_ixgbe_bypass_init(port_id);
+}
+
+static cmdline_parse_token_string_t cmd_config_bypass_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, port, "port");
+static cmdline_parse_token_string_t cmd_config_bypass_config =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, config, "config");
+static cmdline_parse_token_string_t cmd_config_bypass_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, bypass, "bypass");
+static cmdline_parse_token_num_t cmd_config_bypass_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_config_bypass_result, port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_config_bypass_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, value, "on#off");
+
+static cmdline_parse_inst_t cmd_config_bypass = {
+	.f = cmd_config_bypass_parsed,
+	.data = NULL,
+	.help_str = "port config bypass <port_id> on|off",
+	.tokens = {
+		(void *)&cmd_config_bypass_port,
+		(void *)&cmd_config_bypass_config,
+		(void *)&cmd_config_bypass_bypass,
+		(void *)&cmd_config_bypass_port_id,
+		(void *)&cmd_config_bypass_value,
+		NULL,
+	},
+};
+
+/* *** SET NIC BYPASS MODE *** */
+struct cmd_set_bypass_mode_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t value;
+	portid_t port_id;
+};
+
+static void
+cmd_set_bypass_mode_parsed(void *parsed_result,
+		__rte_unused struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bypass_mode_result *res = parsed_result;
+	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+	portid_t port_id = res->port_id;
+	int32_t rc = -EINVAL;
+
+	if (!check_bypass_enabled(port_id))
+		return;
+
+	if (!strcmp(res->value, "bypass"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
+	else if (!strcmp(res->value, "isolate"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
+	else
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+
+	/* Set the bypass mode for the relevant port. */
+	rc = rte_pmd_ixgbe_bypass_state_set(port_id, &bypass_mode);
+	if (rc != 0)
+		fprintf(stderr, "\t Failed to set bypass mode for port = %d.\n",
+			port_id);
+}
+
+static cmdline_parse_token_string_t cmd_setbypass_mode_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+			set, "set");
+static cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+			bypass, "bypass");
+static cmdline_parse_token_string_t cmd_setbypass_mode_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+			mode, "mode");
+static cmdline_parse_token_string_t cmd_setbypass_mode_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+			value, "normal#bypass#isolate");
+static cmdline_parse_token_num_t cmd_setbypass_mode_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_mode_result,
+				port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_set_bypass_mode = {
+	.f = cmd_set_bypass_mode_parsed,
+	.help_str = "set bypass mode normal|bypass|isolate <port_id>: "
+		"Set the NIC bypass mode for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbypass_mode_set,
+		(void *)&cmd_setbypass_mode_bypass,
+		(void *)&cmd_setbypass_mode_mode,
+		(void *)&cmd_setbypass_mode_value,
+		(void *)&cmd_setbypass_mode_port,
+		NULL,
+	},
+};
+
+/* *** SET NIC BYPASS EVENT *** */
+struct cmd_set_bypass_event_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t event;
+	cmdline_fixed_string_t event_value;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t mode_value;
+	portid_t port_id;
+};
+
+static void
+cmd_set_bypass_event_parsed(void *parsed_result,
+		__rte_unused struct cmdline *cl,
+		__rte_unused void *data)
+{
+	int32_t rc = -EINVAL;
+	struct cmd_set_bypass_event_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	uint32_t bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
+	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+
+	if (!check_bypass_enabled(port_id))
+		return;
+
+	if (!strcmp(res->event_value, "timeout"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT;
+	else if (!strcmp(res->event_value, "os_on"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_ON;
+	else if (!strcmp(res->event_value, "os_off"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_OFF;
+	else if (!strcmp(res->event_value, "power_on"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_ON;
+	else if (!strcmp(res->event_value, "power_off"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_OFF;
+	else
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
+
+	if (!strcmp(res->mode_value, "bypass"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
+	else if (!strcmp(res->mode_value, "isolate"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
+	else
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+
+	/* Set the watchdog timeout. */
+	if (bypass_event == RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT) {
+		rc = -EINVAL;
+		if (RTE_PMD_IXGBE_BYPASS_TMT_VALID(bypass_timeout)) {
+			rc = rte_pmd_ixgbe_bypass_wd_timeout_store(port_id,
+							   bypass_timeout);
+		}
+		if (rc != 0) {
+			fprintf(stderr,
+				"Failed to set timeout value %u for port %d, errto code: %d.\n",
+				bypass_timeout, port_id, rc);
+		}
+	}
+
+	/* Set the bypass event to transition to bypass mode. */
+	rc = rte_pmd_ixgbe_bypass_event_store(port_id, bypass_event,
+					      bypass_mode);
+	if (rc != 0)
+		fprintf(stderr, "\t Failed to set bypass event for port = %d.\n",
+			port_id);
+}
+
+static cmdline_parse_token_string_t cmd_setbypass_event_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+			set, "set");
+static cmdline_parse_token_string_t cmd_setbypass_event_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+			bypass, "bypass");
+static cmdline_parse_token_string_t cmd_setbypass_event_event =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+			event, "event");
+static cmdline_parse_token_string_t cmd_setbypass_event_event_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+			event_value, "none#timeout#os_off#os_on#power_on#power_off");
+static cmdline_parse_token_string_t cmd_setbypass_event_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+			mode, "mode");
+static cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+			mode_value, "normal#bypass#isolate");
+static cmdline_parse_token_num_t cmd_setbypass_event_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_event_result,
+				port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_set_bypass_event = {
+	.f = cmd_set_bypass_event_parsed,
+	.help_str = "set bypass event none|timeout|os_on|os_off|power_on|"
+		"power_off mode normal|bypass|isolate <port_id>: "
+		"Set the NIC bypass event mode for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbypass_event_set,
+		(void *)&cmd_setbypass_event_bypass,
+		(void *)&cmd_setbypass_event_event,
+		(void *)&cmd_setbypass_event_event_value,
+		(void *)&cmd_setbypass_event_mode,
+		(void *)&cmd_setbypass_event_mode_value,
+		(void *)&cmd_setbypass_event_port,
+		NULL,
+	},
+};
+
+
+/* *** SET NIC BYPASS TIMEOUT *** */
+struct cmd_set_bypass_timeout_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t timeout;
+	cmdline_fixed_string_t value;
+};
+
+static void
+cmd_set_bypass_timeout_parsed(void *parsed_result,
+		__rte_unused struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_set_bypass_timeout_result *res = parsed_result;
+
+	if (!strcmp(res->value, "1.5"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_1_5_SEC;
+	else if (!strcmp(res->value, "2"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_2_SEC;
+	else if (!strcmp(res->value, "3"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_3_SEC;
+	else if (!strcmp(res->value, "4"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_4_SEC;
+	else if (!strcmp(res->value, "8"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_8_SEC;
+	else if (!strcmp(res->value, "16"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_16_SEC;
+	else if (!strcmp(res->value, "32"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_32_SEC;
+	else
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
+}
+
+static cmdline_parse_token_string_t cmd_setbypass_timeout_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+			set, "set");
+static cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+			bypass, "bypass");
+static cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+			timeout, "timeout");
+static cmdline_parse_token_string_t cmd_setbypass_timeout_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+			value, "0#1.5#2#3#4#8#16#32");
+
+static cmdline_parse_inst_t cmd_set_bypass_timeout = {
+	.f = cmd_set_bypass_timeout_parsed,
+	.help_str = "set bypass timeout 0|1.5|2|3|4|8|16|32: "
+		"Set the NIC bypass watchdog timeout in seconds",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbypass_timeout_set,
+		(void *)&cmd_setbypass_timeout_bypass,
+		(void *)&cmd_setbypass_timeout_timeout,
+		(void *)&cmd_setbypass_timeout_value,
+		NULL,
+	},
+};
+
+/* *** SHOW NIC BYPASS MODE *** */
+struct cmd_show_bypass_config_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t config;
+	portid_t port_id;
+};
+
+static void
+cmd_show_bypass_config_parsed(void *parsed_result,
+		__rte_unused struct cmdline *cl,
+		__rte_unused void *data)
+{
+	struct cmd_show_bypass_config_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	int rc = -EINVAL;
+	uint32_t event_mode;
+	uint32_t bypass_mode;
+	uint32_t timeout = bypass_timeout;
+	unsigned int i;
+
+	static const char * const timeouts[RTE_PMD_IXGBE_BYPASS_TMT_NUM] = {
+		"off", "1.5", "2", "3", "4", "8", "16", "32"
+	};
+	static const char * const modes[RTE_PMD_IXGBE_BYPASS_MODE_NUM] = {
+		"UNKNOWN", "normal", "bypass", "isolate"
+	};
+	static const char * const events[RTE_PMD_IXGBE_BYPASS_EVENT_NUM] = {
+		"NONE",
+		"OS/board on",
+		"power supply on",
+		"OS/board off",
+		"power supply off",
+		"timeout"};
+
+	if (!check_bypass_enabled(port_id))
+		return;
+
+	/* Display the bypass mode.*/
+	if (rte_pmd_ixgbe_bypass_state_show(port_id, &bypass_mode) != 0) {
+		fprintf(stderr, "\tFailed to get bypass mode for port = %d\n",
+			port_id);
+		return;
+	}
+	if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(bypass_mode))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
+
+	printf("\tbypass mode    = %s\n",  modes[bypass_mode]);
+
+	/* Display the bypass timeout.*/
+	if (!RTE_PMD_IXGBE_BYPASS_TMT_VALID(timeout))
+		timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
+
+	printf("\tbypass timeout = %s\n", timeouts[timeout]);
+
+	/* Display the bypass events and associated modes. */
+	for (i = RTE_PMD_IXGBE_BYPASS_EVENT_START; i < RTE_DIM(events); i++) {
+		if (rte_pmd_ixgbe_bypass_event_show(port_id, i, &event_mode)) {
+			fprintf(stderr,
+				"\tFailed to get bypass mode for event = %s\n",
+				events[i]);
+		} else {
+			if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(event_mode))
+				event_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
+
+			printf("\tbypass event: %-16s = %s\n", events[i],
+				modes[event_mode]);
+		}
+	}
+	if (rc != 0)
+		fprintf(stderr,
+			"\tFailed to get bypass configuration for port = %d\n",
+		       port_id);
+}
+
+static cmdline_parse_token_string_t cmd_showbypass_config_show =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
+			show, "show");
+static cmdline_parse_token_string_t cmd_showbypass_config_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
+			bypass, "bypass");
+static cmdline_parse_token_string_t cmd_showbypass_config_config =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
+			config, "config");
+static cmdline_parse_token_num_t cmd_showbypass_config_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_show_bypass_config_result,
+				port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_show_bypass_config = {
+	.f = cmd_show_bypass_config_parsed,
+	.help_str = "show bypass config <port_id>: "
+		"Show the NIC bypass config for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_showbypass_config_show,
+		(void *)&cmd_showbypass_config_bypass,
+		(void *)&cmd_showbypass_config_config,
+		(void *)&cmd_showbypass_config_port,
+		NULL,
+	},
+};
+
+/* Common result structure for vf split drop enable */
+struct cmd_vf_split_drop_en_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t split;
+	cmdline_fixed_string_t drop;
+	portid_t port_id;
+	uint16_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for vf split drop enable disable */
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_split_drop_en_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_split_drop_en_result,
+		 vf, "vf");
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_split_drop_en_result,
+		 split, "split");
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_split_drop_en_result,
+		 drop, "drop");
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_vf_split_drop_en_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_vf_split_drop_en_result,
+		 vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_split_drop_en_result,
+		 on_off, "on#off");
+
+static void
+cmd_set_vf_split_drop_en_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_split_drop_en_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_ixgbe_set_vf_split_drop_en(res->port_id, res->vf_id,
+			is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
+			res->vf_id, is_on);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", res->port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
+	.f = cmd_set_vf_split_drop_en_parsed,
+	.data = NULL,
+	.help_str = "set vf split drop <port_id> <vf_id> on|off",
+	.tokens = {
+		(void *)&cmd_vf_split_drop_en_set,
+		(void *)&cmd_vf_split_drop_en_vf,
+		(void *)&cmd_vf_split_drop_en_split,
+		(void *)&cmd_vf_split_drop_en_drop,
+		(void *)&cmd_vf_split_drop_en_port_id,
+		(void *)&cmd_vf_split_drop_en_vf_id,
+		(void *)&cmd_vf_split_drop_en_on_off,
+		NULL,
+	},
+};
+
+/* MACsec configuration */
+
+/* Common result structure for MACsec offload enable */
+struct cmd_macsec_offload_on_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t offload;
+	portid_t port_id;
+	cmdline_fixed_string_t on;
+	cmdline_fixed_string_t encrypt;
+	cmdline_fixed_string_t en_on_off;
+	cmdline_fixed_string_t replay_protect;
+	cmdline_fixed_string_t rp_on_off;
+};
+
+/* Common CLI fields for MACsec offload disable */
+static cmdline_parse_token_string_t cmd_macsec_offload_on_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 offload, "offload");
+static cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_macsec_offload_on_on =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 on, "on");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 encrypt, "encrypt");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 en_on_off, "on#off");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 replay_protect, "replay-protect");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_on_result,
+		 rp_on_off, "on#off");
+
+static void
+cmd_set_macsec_offload_on_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_macsec_offload_on_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	portid_t port_id = res->port_id;
+	int en = (strcmp(res->en_on_off, "on") == 0) ? 1 : 0;
+	int rp = (strcmp(res->rp_on_off, "on") == 0) ? 1 : 0;
+	struct rte_eth_dev_info dev_info;
+
+	if (port_id_is_invalid(port_id, ENABLED_WARN))
+		return;
+	if (!port_is_stopped(port_id)) {
+		fprintf(stderr, "Please stop port %d first\n", port_id);
+		return;
+	}
+
+	ret = eth_dev_info_get_print_err(port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT)
+		ret = rte_pmd_ixgbe_macsec_enable(port_id, en, rp);
+
+	switch (ret) {
+	case 0:
+		ports[port_id].dev_conf.txmode.offloads |=
+						RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
+		cmd_reconfig_device_queue(port_id, 1, 1);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_macsec_offload_on = {
+	.f = cmd_set_macsec_offload_on_parsed,
+	.data = NULL,
+	.help_str = "set macsec offload <port_id> on "
+		"encrypt on|off replay-protect on|off",
+	.tokens = {
+		(void *)&cmd_macsec_offload_on_set,
+		(void *)&cmd_macsec_offload_on_macsec,
+		(void *)&cmd_macsec_offload_on_offload,
+		(void *)&cmd_macsec_offload_on_port_id,
+		(void *)&cmd_macsec_offload_on_on,
+		(void *)&cmd_macsec_offload_on_encrypt,
+		(void *)&cmd_macsec_offload_on_en_on_off,
+		(void *)&cmd_macsec_offload_on_replay_protect,
+		(void *)&cmd_macsec_offload_on_rp_on_off,
+		NULL,
+	},
+};
+
+/* Common result structure for MACsec offload disable */
+struct cmd_macsec_offload_off_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t offload;
+	portid_t port_id;
+	cmdline_fixed_string_t off;
+};
+
+/* Common CLI fields for MACsec offload disable */
+static cmdline_parse_token_string_t cmd_macsec_offload_off_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_off_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_off_result,
+		 macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_off_result,
+		 offload, "offload");
+static cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_offload_off_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_macsec_offload_off_off =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_offload_off_result,
+		 off, "off");
+
+static void
+cmd_set_macsec_offload_off_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_macsec_offload_off_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_eth_dev_info dev_info;
+	portid_t port_id = res->port_id;
+
+	if (port_id_is_invalid(port_id, ENABLED_WARN))
+		return;
+	if (!port_is_stopped(port_id)) {
+		fprintf(stderr, "Please stop port %d first\n", port_id);
+		return;
+	}
+
+	ret = eth_dev_info_get_print_err(port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT)
+		ret = rte_pmd_ixgbe_macsec_disable(port_id);
+	switch (ret) {
+	case 0:
+		ports[port_id].dev_conf.txmode.offloads &=
+						~RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
+		cmd_reconfig_device_queue(port_id, 1, 1);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_macsec_offload_off = {
+	.f = cmd_set_macsec_offload_off_parsed,
+	.data = NULL,
+	.help_str = "set macsec offload <port_id> off",
+	.tokens = {
+		(void *)&cmd_macsec_offload_off_set,
+		(void *)&cmd_macsec_offload_off_macsec,
+		(void *)&cmd_macsec_offload_off_offload,
+		(void *)&cmd_macsec_offload_off_port_id,
+		(void *)&cmd_macsec_offload_off_off,
+		NULL,
+	},
+};
+
+/* Common result structure for MACsec secure connection configure */
+struct cmd_macsec_sc_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t sc;
+	cmdline_fixed_string_t tx_rx;
+	portid_t port_id;
+	struct rte_ether_addr mac;
+	uint16_t pi;
+};
+
+/* Common CLI fields for MACsec secure connection configure */
+static cmdline_parse_token_string_t cmd_macsec_sc_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sc_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_macsec_sc_macsec =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sc_result,
+		 macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_sc_sc =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sc_result,
+		 sc, "sc");
+static cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sc_result,
+		 tx_rx, "tx#rx");
+static cmdline_parse_token_num_t cmd_macsec_sc_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_sc_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
+	TOKEN_ETHERADDR_INITIALIZER
+		(struct cmd_macsec_sc_result,
+		 mac);
+static cmdline_parse_token_num_t cmd_macsec_sc_pi =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_sc_result,
+		 pi, RTE_UINT16);
+
+static void
+cmd_set_macsec_sc_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_macsec_sc_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
+
+	ret = is_tx ?
+		rte_pmd_ixgbe_macsec_config_txsc(res->port_id,
+				res->mac.addr_bytes) :
+		rte_pmd_ixgbe_macsec_config_rxsc(res->port_id,
+				res->mac.addr_bytes, res->pi);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", res->port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_macsec_sc = {
+	.f = cmd_set_macsec_sc_parsed,
+	.data = NULL,
+	.help_str = "set macsec sc tx|rx <port_id> <mac> <pi>",
+	.tokens = {
+		(void *)&cmd_macsec_sc_set,
+		(void *)&cmd_macsec_sc_macsec,
+		(void *)&cmd_macsec_sc_sc,
+		(void *)&cmd_macsec_sc_tx_rx,
+		(void *)&cmd_macsec_sc_port_id,
+		(void *)&cmd_macsec_sc_mac,
+		(void *)&cmd_macsec_sc_pi,
+		NULL,
+	},
+};
+
+/* Common result structure for MACsec secure connection configure */
+struct cmd_macsec_sa_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t sa;
+	cmdline_fixed_string_t tx_rx;
+	portid_t port_id;
+	uint8_t idx;
+	uint8_t an;
+	uint32_t pn;
+	cmdline_fixed_string_t key;
+};
+
+/* Common CLI fields for MACsec secure connection configure */
+static cmdline_parse_token_string_t cmd_macsec_sa_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_macsec_sa_macsec =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_sa_sa =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 sa, "sa");
+static cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 tx_rx, "tx#rx");
+static cmdline_parse_token_num_t cmd_macsec_sa_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_macsec_sa_idx =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 idx, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_macsec_sa_an =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 an, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_macsec_sa_pn =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 pn, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_macsec_sa_key =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_macsec_sa_result,
+		 key, NULL);
+
+static void
+cmd_set_macsec_sa_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_macsec_sa_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
+	uint8_t key[16] = { 0 };
+	uint8_t xdgt0;
+	uint8_t xdgt1;
+	int key_len;
+	int i;
+
+	key_len = strlen(res->key) / 2;
+	if (key_len > 16)
+		key_len = 16;
+
+	for (i = 0; i < key_len; i++) {
+		xdgt0 = parse_and_check_key_hexa_digit(res->key, (i * 2));
+		if (xdgt0 == 0xFF)
+			return;
+		xdgt1 = parse_and_check_key_hexa_digit(res->key, (i * 2) + 1);
+		if (xdgt1 == 0xFF)
+			return;
+		key[i] = (uint8_t)((xdgt0 * 16) + xdgt1);
+	}
+
+	ret = is_tx ?
+		rte_pmd_ixgbe_macsec_select_txsa(res->port_id,
+			res->idx, res->an, res->pn, key) :
+		rte_pmd_ixgbe_macsec_select_rxsa(res->port_id,
+			res->idx, res->an, res->pn, key);
+
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid idx %d or an %d\n", res->idx, res->an);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", res->port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+struct cmd_vf_tc_bw_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t tc;
+	cmdline_fixed_string_t tx;
+	cmdline_fixed_string_t min_bw;
+	portid_t port_id;
+	cmdline_fixed_string_t bw_list;
+};
+
+static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 set, "set");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 tc, "tc");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 tx, "tx");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 min_bw, "min-bandwidth");
+static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 bw_list, NULL);
+
+static cmdline_parse_inst_t cmd_set_macsec_sa = {
+	.f = cmd_set_macsec_sa_parsed,
+	.data = NULL,
+	.help_str = "set macsec sa tx|rx <port_id> <idx> <an> <pn> <key>",
+	.tokens = {
+		(void *)&cmd_macsec_sa_set,
+		(void *)&cmd_macsec_sa_macsec,
+		(void *)&cmd_macsec_sa_sa,
+		(void *)&cmd_macsec_sa_tx_rx,
+		(void *)&cmd_macsec_sa_port_id,
+		(void *)&cmd_macsec_sa_idx,
+		(void *)&cmd_macsec_sa_an,
+		(void *)&cmd_macsec_sa_pn,
+		(void *)&cmd_macsec_sa_key,
+		NULL,
+	},
+};
+
+static void
+cmd_tc_min_bw_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	struct rte_port *port;
+	uint8_t tc_num;
+	uint8_t bw[16];
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	port = &ports[res->port_id];
+	/** Check if the port is not started **/
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr, "Please stop port %d first\n", res->port_id);
+		return;
+	}
+
+	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
+	if (ret)
+		return;
+
+	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
+
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid bandwidth\n");
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_tc_min_bw = {
+	.f = cmd_tc_min_bw_parsed,
+	.data = NULL,
+	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_tc,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_min_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_bw_list,
+		NULL,
+	},
+};
+
+static struct testpmd_cmdline_parser driver_parser = {
+	.ctx = (cmdline_parse_ctx_t[]) {
+		(cmdline_parse_inst_t *)&cmd_config_bypass,
+		(cmdline_parse_inst_t *)&cmd_set_bypass_mode,
+		(cmdline_parse_inst_t *)&cmd_set_bypass_event,
+		(cmdline_parse_inst_t *)&cmd_set_bypass_timeout,
+		(cmdline_parse_inst_t *)&cmd_show_bypass_config,
+		(cmdline_parse_inst_t *)&cmd_set_vf_split_drop_en,
+		(cmdline_parse_inst_t *)&cmd_set_macsec_offload_on,
+		(cmdline_parse_inst_t *)&cmd_set_macsec_offload_off,
+		(cmdline_parse_inst_t *)&cmd_set_macsec_sc,
+		(cmdline_parse_inst_t *)&cmd_set_macsec_sa,
+		(cmdline_parse_inst_t *)&cmd_tc_min_bw,
+		NULL
+	},
+	.help = {
+		"port config bypass (port_id) (on|off)\n"
+		"   Enable/disable bypass before starting the port\n",
+
+		"set bypass mode (normal|bypass|isolate) (port_id)\n"
+		"   Set the bypass mode for the lowest port on bypass enabled"
+		" NIC.\n",
+
+		"set bypass event (timeout|os_on|os_off|power_on|power_off) "
+		"mode (normal|bypass|isolate) (port_id)\n"
+		"   Set the event required to initiate specified bypass mode for"
+		" the lowest port on a bypass enabled NIC where:\n"
+		"       timeout   = enable bypass after watchdog timeout.\n"
+		"       os_on     = enable bypass when OS/board is powered on.\n"
+		"       os_off    = enable bypass when OS/board is powered off.\n"
+		"       power_on  = enable bypass when power supply is turned on.\n"
+		"       power_off = enable bypass when power supply is turned off."
+		"\n",
+
+		"set bypass timeout (0|1.5|2|3|4|8|16|32)\n"
+		"   Set the bypass watchdog timeout to 'n' seconds"
+		" where 0 = instant.\n",
+
+		"show bypass config (port_id)\n"
+		"   Show the bypass configuration for a bypass enabled NIC"
+		" using the lowest port on the NIC.\n",
+
+		"set vf split drop (port_id) (vf_id) (on|off)\n"
+		"    Set split drop enable bit for a VF from the PF.\n",
+
+		"set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)\n"
+		"    Enable MACsec offload.\n",
+
+		"set macsec offload (port_id) off\n"
+		"    Disable MACsec offload.\n",
+
+		"set macsec sc (tx|rx) (port_id) (mac) (pi)\n"
+		"    Configure MACsec secure connection (SC).\n",
+
+		"set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)\n"
+		"    Configure MACsec secure association (SA).\n",
+
+		"set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\n"
+		"    Set all TCs' min bandwidth(%%) for all PF and VFs.\n",
+
+		NULL
+	},
+};
+
+RTE_INIT(ixgbe_testpmd)
+{
+	testpmd_add_commands(&driver_parser);
+}
diff --git a/drivers/net/ixgbe/meson.build b/drivers/net/ixgbe/meson.build
index 162f8d5f46..a18908ef7c 100644
--- a/drivers/net/ixgbe/meson.build
+++ b/drivers/net/ixgbe/meson.build
@@ -20,6 +20,8 @@ sources = files(
         'rte_pmd_ixgbe.c',
 )
 
+testpmd_sources = files('ixgbe_testpmd.c')
+
 deps += ['hash', 'security']
 
 if arch_subdir == 'x86'
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* Re: [RFC PATCH 2/4] net/bonding: move testpmd commands
  2022-05-18 17:24     ` David Marchand
@ 2022-05-18 23:25       ` Konstantin Ananyev
  2022-05-19  7:40         ` David Marchand
  0 siblings, 1 reply; 65+ messages in thread
From: Konstantin Ananyev @ 2022-05-18 23:25 UTC (permalink / raw)
  To: David Marchand, Min Hu (Connor)
  Cc: dev, Thomas Monjalon, Xiaoyun Li, Aman Singh, Yuying Zhang,
	Chas Williams

18/05/2022 18:24, David Marchand пишет:
> On Fri, May 13, 2022 at 12:10 PM Min Hu (Connor) <humin29@huawei.com> wrote:
>>
>>    I think net/bonding offer 'API' for APP to use the bonding.
>>      and use the specific PMD as slave device.
>>    The software framwork is like:
>>     APP
>>     ethdev
>>     bonding PMD
>>     PMD
>>     hardware
>>
>> so, I think cmdlines for testpmd should not put in net/bonding.be

Actually, I feel the same.
I do understand the intention, and I do realize it is just location,
but still doesn't look right for me.
can't we have a special sub-folder in testpmd instead?
Something like app/testpmd/driver_specific/(ixgbe)|(i40e)|(bonding)...


> 
> Sorry, but the distinction is vague.
> 
> Those commands are specific to this driver/library.
> I don't see the problem with hosting the commands in the bonding driver/library.
> 
> This is still a RFC, I don't mind dropping this patch (in the end) if
> others think it does not make sense.
> For now I'll keep it in a v2 series fixing the registering issue in patch 1.
> 
> 


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [RFC PATCH 2/4] net/bonding: move testpmd commands
  2022-05-18 23:25       ` Konstantin Ananyev
@ 2022-05-19  7:40         ` David Marchand
  2022-05-19 11:26           ` Thomas Monjalon
  0 siblings, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-05-19  7:40 UTC (permalink / raw)
  To: Konstantin Ananyev
  Cc: Min Hu (Connor),
	dev, Thomas Monjalon, Xiaoyun Li, Aman Singh, Yuying Zhang,
	Chas Williams

On Thu, May 19, 2022 at 1:25 AM Konstantin Ananyev
<konstantin.v.ananyev@yandex.ru> wrote:
> 18/05/2022 18:24, David Marchand пишет:
> > On Fri, May 13, 2022 at 12:10 PM Min Hu (Connor) <humin29@huawei.com> wrote:
> >>
> >>    I think net/bonding offer 'API' for APP to use the bonding.
> >>      and use the specific PMD as slave device.
> >>    The software framwork is like:
> >>     APP
> >>     ethdev
> >>     bonding PMD
> >>     PMD
> >>     hardware
> >>
> >> so, I think cmdlines for testpmd should not put in net/bonding.be
>
> Actually, I feel the same.
> I do understand the intention, and I do realize it is just location,
> but still doesn't look right for me.
> can't we have a special sub-folder in testpmd instead?
> Something like app/testpmd/driver_specific/(ixgbe)|(i40e)|(bonding)...

That should not pose a problem, indeed.
And, on the plus side, it avoids putting some testpmd global variables
in meson (which I was not entirely happy with).


But, on the other side, I have a concern about MAINTAINERS updates.

(almost) everything in app/test-pmd has been under the testpmd
maintainer responsibility.
Separating the driver specific code from testpmd is a way to clearly
shift this responsibility to the driver maintenance.
One advantage of moving the code to the driver directory is that there
is no MAINTAINERS update needed.

If we keep those in app/test-pmd, it is still possible to mark the
driver-specific sources in MAINTAINERS, but such updates are often
missed.
I can probably add something in devtools/ to catch those updates in
the future...

I'll try for RFC v3.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [RFC PATCH 2/4] net/bonding: move testpmd commands
  2022-05-19  7:40         ` David Marchand
@ 2022-05-19 11:26           ` Thomas Monjalon
  2022-05-20  6:59             ` Andrew Rybchenko
  0 siblings, 1 reply; 65+ messages in thread
From: Thomas Monjalon @ 2022-05-19 11:26 UTC (permalink / raw)
  To: Konstantin Ananyev, David Marchand
  Cc: dev, Min Hu (Connor),
	dev, Xiaoyun Li, Aman Singh, Yuying Zhang, Chas Williams, jerinj

19/05/2022 09:40, David Marchand:
> On Thu, May 19, 2022 at 1:25 AM Konstantin Ananyev
> <konstantin.v.ananyev@yandex.ru> wrote:
> > 18/05/2022 18:24, David Marchand пишет:
> > > On Fri, May 13, 2022 at 12:10 PM Min Hu (Connor) <humin29@huawei.com> wrote:
> > >>
> > >>    I think net/bonding offer 'API' for APP to use the bonding.
> > >>      and use the specific PMD as slave device.
> > >>    The software framwork is like:
> > >>     APP
> > >>     ethdev
> > >>     bonding PMD
> > >>     PMD
> > >>     hardware
> > >>
> > >> so, I think cmdlines for testpmd should not put in net/bonding.be

The bonding API is specific to drivers/net/bonding/,
so according to the techboard decision,
the testpmd code should go in the driver directory.

> > Actually, I feel the same.
> > I do understand the intention, and I do realize it is just location,
> > but still doesn't look right for me.
> > can't we have a special sub-folder in testpmd instead?
> > Something like app/testpmd/driver_specific/(ixgbe)|(i40e)|(bonding)...
> 
> That should not pose a problem, indeed.
> And, on the plus side, it avoids putting some testpmd global variables
> in meson (which I was not entirely happy with).

I like the global variables approach.

> But, on the other side, I have a concern about MAINTAINERS updates.
> 
> (almost) everything in app/test-pmd has been under the testpmd
> maintainer responsibility.
> Separating the driver specific code from testpmd is a way to clearly
> shift this responsibility to the driver maintenance.

I agree.

> One advantage of moving the code to the driver directory is that there
> is no MAINTAINERS update needed.

Yes I think moving test code in the driver directory is smart.
We already have this approach for some self tests run with app/test.
And more important, the techboard has decided to move code in the driver
or lib directory:
	https://mails.dpdk.org/archives/dev/2022-April/239191.html

> If we keep those in app/test-pmd, it is still possible to mark the
> driver-specific sources in MAINTAINERS, but such updates are often
> missed.
> I can probably add something in devtools/ to catch those updates in
> the future...
> 
> I'll try for RFC v3.




^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [RFC PATCH v2 1/5] app/testpmd: mark cmdline symbols as static
  2022-05-18 19:46   ` [RFC PATCH v2 1/5] app/testpmd: mark cmdline symbols as static David Marchand
@ 2022-05-20  6:28     ` Andrew Rybchenko
  0 siblings, 0 replies; 65+ messages in thread
From: Andrew Rybchenko @ 2022-05-20  6:28 UTC (permalink / raw)
  To: David Marchand, dev; +Cc: thomas, Xiaoyun Li, Aman Singh, Yuying Zhang

On 5/18/22 22:46, David Marchand wrote:
> All those symbols don't need to be global, plus it hides unused code
> such as cmd_set_conntrack_dir_set and cmd_set_conntrack_dir_conntrack
> tokens.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>

Very good idea. A couple of days ago I was wondering why these
symbols are global when I found few unused symbols in mtr
commands: cmd_create_port_meter_g_action,
cmd_create_port_meter_y_action and
cmd_create_port_meter_r_action.

So, it would be good to apply it to other similar files as
well.

Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>



^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [RFC PATCH v2 2/5] app/testpmd: register driver specific commands
  2022-05-18 19:46   ` [RFC PATCH v2 2/5] app/testpmd: register driver specific commands David Marchand
@ 2022-05-20  6:55     ` Andrew Rybchenko
  0 siblings, 0 replies; 65+ messages in thread
From: Andrew Rybchenko @ 2022-05-20  6:55 UTC (permalink / raw)
  To: David Marchand, dev
  Cc: thomas, Xiaoyun Li, Aman Singh, Yuying Zhang, Bruce Richardson

On 5/18/22 22:46, David Marchand wrote:
> Introduce a testpmd API so that drivers can register specific commands.
> 
> A driver can list some files to compile with testpmd, by setting them
> in the testpmd_sources (driver local) meson variable.
> drivers/meson.build then takes care of appending this to a global meson
> variable, and adding the driver to testpmd dependency.
> 
> Note: testpmd.h is fixed to that it is self sufficient when being
> included.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>

LGTM, just one nit below.

Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>

[snip]

> @@ -94,6 +97,7 @@ static void cmd_help_brief_parsed(__rte_unused void *parsed_result,
>   		"    help filters                    : Filters configuration help.\n"
>   		"    help traffic_management         : Traffic Management commands.\n"
>   		"    help devices                    : Device related cmds.\n"
> +		"    help drivers                    : Driver specific cmds.\n"

I'd not mimic the previous line here and use full "commands"
instead as two lines above.

>   		"    help all                        : All of the above sections.\n\n"
>   	);
>   

[snip]

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [RFC PATCH v2 3/5] net/bonding: move testpmd commands
  2022-05-18 19:46   ` [RFC PATCH v2 3/5] net/bonding: move testpmd commands David Marchand
@ 2022-05-20  6:55     ` Andrew Rybchenko
  0 siblings, 0 replies; 65+ messages in thread
From: Andrew Rybchenko @ 2022-05-20  6:55 UTC (permalink / raw)
  To: David Marchand, dev
  Cc: thomas, Xiaoyun Li, Aman Singh, Yuying Zhang, Chas Williams,
	Min Hu (Connor)

On 5/18/22 22:46, David Marchand wrote:
> Move related specific testpmd commands into this driver directory.
> While at it, fix checkpatch warnings.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>

LGTM, just a couple of nits below. Anyway

Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>

[snip]

> diff --git a/drivers/net/bonding/meson.build b/drivers/net/bonding/meson.build
> index 402b44be1a..faea892295 100644
> --- a/drivers/net/bonding/meson.build
> +++ b/drivers/net/bonding/meson.build
> @@ -16,6 +16,7 @@ sources = files(
>           'rte_eth_bond_flow.c',
>           'rte_eth_bond_pmd.c',
>   )
> +testpmd_sources = files('rte_eth_bond_testpmd.c')

I'd not follow bonding naming conventions above and
name the file as you do for i40e and ixgbe: bond_testpmd.c
I think naming scheme used in bonding and some other PMDs is
legacy.

>   
>   deps += 'sched' # needed for rte_bitmap.h
>   deps += ['ip_frag']
> diff --git a/drivers/net/bonding/rte_eth_bond_testpmd.c b/drivers/net/bonding/rte_eth_bond_testpmd.c
> new file mode 100644

[snip]

> +static cmdline_parse_token_string_t cmd_setbonding_mode_set =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
> +		set, "set");

I think TOKEN should be one TAB aligned above as it is done
for the most of cases in the code.

> +static cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
> +		bonding, "bonding");
> +static cmdline_parse_token_string_t cmd_setbonding_mode_mode =
> +TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
> +		mode, "mode");
> +static cmdline_parse_token_num_t cmd_setbonding_mode_value =
> +TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
> +		value, RTE_UINT8);
> +static cmdline_parse_token_num_t cmd_setbonding_mode_port =
> +TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
> +		port_id, RTE_UINT16);
> +
> +static cmdline_parse_inst_t cmd_set_bonding_mode = {
> +		.f = cmd_set_bonding_mode_parsed,
> +		.help_str = "set bonding mode <mode_value> <port_id>: "
> +			"Set the bonding mode for port_id",
> +		.data = NULL,
> +		.tokens = {
> +				(void *)&cmd_setbonding_mode_set,
> +				(void *)&cmd_setbonding_mode_bonding,
> +				(void *)&cmd_setbonding_mode_mode,
> +				(void *)&cmd_setbonding_mode_value,
> +				(void *)&cmd_setbonding_mode_port,
> +				NULL
> +		}

While on it, I'd fix above alignments to be just one TAB per
level. I don't understand why 2 TABs per level is used above.

[snip]

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [RFC PATCH 2/4] net/bonding: move testpmd commands
  2022-05-19 11:26           ` Thomas Monjalon
@ 2022-05-20  6:59             ` Andrew Rybchenko
  2022-05-24  9:40               ` Konstantin Ananyev
  0 siblings, 1 reply; 65+ messages in thread
From: Andrew Rybchenko @ 2022-05-20  6:59 UTC (permalink / raw)
  To: Thomas Monjalon, Konstantin Ananyev, David Marchand
  Cc: dev, Min Hu (Connor),
	Xiaoyun Li, Aman Singh, Yuying Zhang, Chas Williams, jerinj

On 5/19/22 14:26, Thomas Monjalon wrote:
> 19/05/2022 09:40, David Marchand:
>> On Thu, May 19, 2022 at 1:25 AM Konstantin Ananyev
>> <konstantin.v.ananyev@yandex.ru> wrote:
>>> 18/05/2022 18:24, David Marchand пишет:
>>>> On Fri, May 13, 2022 at 12:10 PM Min Hu (Connor) <humin29@huawei.com> wrote:
>>>>>
>>>>>     I think net/bonding offer 'API' for APP to use the bonding.
>>>>>       and use the specific PMD as slave device.
>>>>>     The software framwork is like:
>>>>>      APP
>>>>>      ethdev
>>>>>      bonding PMD
>>>>>      PMD
>>>>>      hardware
>>>>>
>>>>> so, I think cmdlines for testpmd should not put in net/bonding.be
> 
> The bonding API is specific to drivers/net/bonding/,
> so according to the techboard decision,
> the testpmd code should go in the driver directory.

+1

> 
>>> Actually, I feel the same.
>>> I do understand the intention, and I do realize it is just location,
>>> but still doesn't look right for me.
>>> can't we have a special sub-folder in testpmd instead?
>>> Something like app/testpmd/driver_specific/(ixgbe)|(i40e)|(bonding)...
>>
>> That should not pose a problem, indeed.
>> And, on the plus side, it avoids putting some testpmd global variables
>> in meson (which I was not entirely happy with).
> 
> I like the global variables approach.

+1

> 
>> But, on the other side, I have a concern about MAINTAINERS updates.
>>
>> (almost) everything in app/test-pmd has been under the testpmd
>> maintainer responsibility.
>> Separating the driver specific code from testpmd is a way to clearly
>> shift this responsibility to the driver maintenance.
> 
> I agree.

+1

> 
>> One advantage of moving the code to the driver directory is that there
>> is no MAINTAINERS update needed.
> 
> Yes I think moving test code in the driver directory is smart.
> We already have this approach for some self tests run with app/test.
> And more important, the techboard has decided to move code in the driver
> or lib directory:
> 	https://mails.dpdk.org/archives/dev/2022-April/239191.html
> 
>> If we keep those in app/test-pmd, it is still possible to mark the
>> driver-specific sources in MAINTAINERS, but such updates are often
>> missed.
>> I can probably add something in devtools/ to catch those updates in
>> the future...
>>
>> I'll try for RFC v3.
> 
> 
> 


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [RFC PATCH v2 0/5] Split driver specific commands out of testpmd
  2022-05-18 19:46 ` [RFC PATCH v2 0/5] Split driver specific commands out of testpmd David Marchand
                     ` (4 preceding siblings ...)
  2022-05-18 19:46   ` [RFC PATCH v2 5/5] net/ixgbe: " David Marchand
@ 2022-05-20  7:04   ` Andrew Rybchenko
  5 siblings, 0 replies; 65+ messages in thread
From: Andrew Rybchenko @ 2022-05-20  7:04 UTC (permalink / raw)
  To: David Marchand, dev; +Cc: thomas

On 5/18/22 22:46, David Marchand wrote:
> Hello,
> 
> Following TB decision and recent discussions on the driver specific
> commands in testpmd, here is a proposal on how the split could be done.
> 
> For now, this series simply moves the testpmd code in the driver
> directory. The driver specific testpmd code is still compiled as part of
> testpmd compilation via a global meson testpmd_driver_sources list.

I like the approach suggested in the RFC. It is simple and it
makes absolutely clear who is responsible for corresponding
testpmd code maintenance.

> 
> TODO:
> - ixgbe bypass commands in testpmd are "dead" code since switch to meson,
>    as the RTE_LIBRTE_IXGBE_BYPASS define is not set while compiling testpmd.
>    I am tempted to simply drop those, since no one complained about issue
>    for the last two years. For now, this series reinstates them.

IMHO two years is sufficient period to say that it is unused
and remove it.

> 
> - this series keeps the command names as is. We could consolidate with a
>    clear prefix so that users directly know they are exerting a special
>    feature that makes no sense on other hw.
>    For this, I had in mind introducing a "driver" top level prefix,
>    where drivers would hook their specific stuff. For example:
>    testpmd> driver ixgbe set vf split drop (port_id) (vf_id) (on|off)

Good idea and I think that it should be fixed in a separate
follow up patches.

> 
> - the documentation of those commands is left untouched, we should
>    probably move any existing doc into the driver documentation itself.
>    testpmd documentation could then have a generic
>    "Driver specific commands" section pointing at all other driver docs.

Yes, it would be good to move documentation as well.

> 
> Opinions?
> 
> 


^ permalink raw reply	[flat|nested] 65+ messages in thread

* [PATCH 0/6] Split driver specific commands out of testpmd
  2022-05-13  7:57 [RFC PATCH 0/4] Split driver specific commands out of testpmd David Marchand
                   ` (4 preceding siblings ...)
  2022-05-18 19:46 ` [RFC PATCH v2 0/5] Split driver specific commands out of testpmd David Marchand
@ 2022-05-23  7:10 ` David Marchand
  2022-05-23  7:10   ` [PATCH 1/6] app/testpmd: mark most cmdline symbols as static David Marchand
                     ` (6 more replies)
  2022-05-24 20:06 ` [PATCH v2 0/2] " David Marchand
  6 siblings, 7 replies; 65+ messages in thread
From: David Marchand @ 2022-05-23  7:10 UTC (permalink / raw)
  To: dev; +Cc: thomas, andrew.rybchenko, ferruh.yigit

Hello,

Following TB decision [1] and recent discussions on the driver specific
commands in testpmd, here is a proposal on how the split could be done.

For now, this series simply moves the testpmd code in the driver
directory. The driver specific testpmd code is still compiled as part of
testpmd compilation via a global meson testpmd_driver_sources list.

Notes:
- ixgbe bypass commands in testpmd were "dead" code since switch to meson,
  as the RTE_LIBRTE_IXGBE_BYPASS define is not set while compiling testpmd.
  No one complained about issue for the last two years, so those commands
  are dropped.


1: https://mails.dpdk.org/archives/dev/2022-April/239191.html

-- 
David Marchand

Changes since RFC v2:
- extended cleanup patch 1,
- fixed command registration (again..),
- dropped ixgbe bypass commands,
- fixed some indent,
- updated documentation,

Changes since RFC v1:
- added a cleanup as patch 1, to make all parser symbols static,
- fixed registering issue in patch 1,
- moved more i40e specific commands, fixed checkpatch warnings,

David Marchand (6):
  app/testpmd: mark most cmdline symbols as static
  app/testpmd: register driver specific commands
  net/bonding: move testpmd commands
  net/i40e: move testpmd commands
  app/testpmd: drop ixgbe bypass commands
  net/ixgbe: move testpmd commands

 app/test-pmd/bpf_cmd.c                        |    20 +-
 app/test-pmd/cmdline.c                        | 15404 ++++++----------
 app/test-pmd/cmdline_flow.c                   |     8 +-
 app/test-pmd/cmdline_mtr.c                    |   219 +-
 app/test-pmd/cmdline_tm.c                     |   442 +-
 app/test-pmd/config.c                         |    43 -
 app/test-pmd/meson.build                      |     8 +-
 app/test-pmd/testpmd.c                        |    18 +-
 app/test-pmd/testpmd.h                        |    30 +-
 doc/guides/nics/i40e.rst                      |   184 +-
 doc/guides/nics/ixgbe.rst                     |    51 +
 .../link_bonding_poll_mode_drv_lib.rst        |   143 +
 doc/guides/testpmd_app_ug/testpmd_funcs.rst   |   433 +-
 drivers/meson.build                           |     5 +
 drivers/net/bonding/bonding_testpmd.c         |  1029 ++
 drivers/net/bonding/meson.build               |     1 +
 drivers/net/i40e/i40e_testpmd.c               |  2634 +++
 drivers/net/i40e/meson.build                  |     2 +
 drivers/net/ixgbe/ixgbe_testpmd.c             |   657 +
 drivers/net/ixgbe/meson.build                 |     2 +
 meson.build                                   |     2 +
 21 files changed, 10437 insertions(+), 10898 deletions(-)
 create mode 100644 drivers/net/bonding/bonding_testpmd.c
 create mode 100644 drivers/net/i40e/i40e_testpmd.c
 create mode 100644 drivers/net/ixgbe/ixgbe_testpmd.c

-- 
2.36.1


^ permalink raw reply	[flat|nested] 65+ messages in thread

* [PATCH 1/6] app/testpmd: mark most cmdline symbols as static
  2022-05-23  7:10 ` [PATCH 0/6] " David Marchand
@ 2022-05-23  7:10   ` David Marchand
  2022-05-23 10:19     ` Dumitrescu, Cristian
  2022-05-23  7:10   ` [PATCH 2/6] app/testpmd: register driver specific commands David Marchand
                     ` (5 subsequent siblings)
  6 siblings, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-05-23  7:10 UTC (permalink / raw)
  To: dev
  Cc: thomas, andrew.rybchenko, ferruh.yigit, Konstantin Ananyev,
	Xiaoyun Li, Aman Singh, Yuying Zhang, Ori Kam,
	Cristian Dumitrescu

All those symbols don't need to be global, plus it was hiding unused
code such as:
- cmd_set_conntrack_dir_set and cmd_set_conntrack_dir_conntrack in
  cmdline.c,
- cmd_create_port_meter_g_action, cmd_create_port_meter_r_action,
  cmd_create_port_meter_y_action in cmdline_mtr.c,

Mark those symbols as static.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since RFC v2:
- extended to other code units in testpmd,

---
 app/test-pmd/bpf_cmd.c      |   20 +-
 app/test-pmd/cmdline.c      | 2776 +++++++++++++++++------------------
 app/test-pmd/cmdline_flow.c |    8 +-
 app/test-pmd/cmdline_mtr.c  |  219 ++-
 app/test-pmd/cmdline_tm.c   |  442 +++---
 5 files changed, 1725 insertions(+), 1740 deletions(-)

diff --git a/app/test-pmd/bpf_cmd.c b/app/test-pmd/bpf_cmd.c
index 09c8aec0c0..648e0e9294 100644
--- a/app/test-pmd/bpf_cmd.c
+++ b/app/test-pmd/bpf_cmd.c
@@ -117,20 +117,20 @@ static void cmd_operate_bpf_ld_parsed(void *parsed_result,
 		fprintf(stderr, "invalid value: %s\n", res->dir);
 }
 
-cmdline_parse_token_string_t cmd_load_bpf_start =
+static cmdline_parse_token_string_t cmd_load_bpf_start =
 	TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
 			bpf, "bpf-load");
-cmdline_parse_token_string_t cmd_load_bpf_dir =
+static cmdline_parse_token_string_t cmd_load_bpf_dir =
 	TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
 			dir, "rx#tx");
-cmdline_parse_token_num_t cmd_load_bpf_port =
+static cmdline_parse_token_num_t cmd_load_bpf_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_bpf_ld_result, port, RTE_UINT8);
-cmdline_parse_token_num_t cmd_load_bpf_queue =
+static cmdline_parse_token_num_t cmd_load_bpf_queue =
 	TOKEN_NUM_INITIALIZER(struct cmd_bpf_ld_result, queue, RTE_UINT16);
-cmdline_parse_token_string_t cmd_load_bpf_flags =
+static cmdline_parse_token_string_t cmd_load_bpf_flags =
 	TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
 			flags, NULL);
-cmdline_parse_token_string_t cmd_load_bpf_prm =
+static cmdline_parse_token_string_t cmd_load_bpf_prm =
 	TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
 			prm, NULL);
 
@@ -173,15 +173,15 @@ static void cmd_operate_bpf_unld_parsed(void *parsed_result,
 		fprintf(stderr, "invalid value: %s\n", res->dir);
 }
 
-cmdline_parse_token_string_t cmd_unload_bpf_start =
+static cmdline_parse_token_string_t cmd_unload_bpf_start =
 	TOKEN_STRING_INITIALIZER(struct cmd_bpf_unld_result,
 			bpf, "bpf-unload");
-cmdline_parse_token_string_t cmd_unload_bpf_dir =
+static cmdline_parse_token_string_t cmd_unload_bpf_dir =
 	TOKEN_STRING_INITIALIZER(struct cmd_bpf_unld_result,
 			dir, "rx#tx");
-cmdline_parse_token_num_t cmd_unload_bpf_port =
+static cmdline_parse_token_num_t cmd_unload_bpf_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_bpf_unld_result, port, RTE_UINT8);
-cmdline_parse_token_num_t cmd_unload_bpf_queue =
+static cmdline_parse_token_num_t cmd_unload_bpf_queue =
 	TOKEN_NUM_INITIALIZER(struct cmd_bpf_unld_result, queue, RTE_UINT16);
 
 cmdline_parse_inst_t cmd_operate_bpf_unld_parse = {
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 91e4090582..498fe2c2b7 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -99,10 +99,10 @@ static void cmd_help_brief_parsed(__rte_unused void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_help_brief_help =
+static cmdline_parse_token_string_t cmd_help_brief_help =
 	TOKEN_STRING_INITIALIZER(struct cmd_help_brief_result, help, "help");
 
-cmdline_parse_inst_t cmd_help_brief = {
+static cmdline_parse_inst_t cmd_help_brief = {
 	.f = cmd_help_brief_parsed,
 	.data = NULL,
 	.help_str = "help: Show help",
@@ -1179,15 +1179,15 @@ static void cmd_help_long_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_help_long_help =
+static cmdline_parse_token_string_t cmd_help_long_help =
 	TOKEN_STRING_INITIALIZER(struct cmd_help_long_result, help, "help");
 
-cmdline_parse_token_string_t cmd_help_long_section =
+static cmdline_parse_token_string_t cmd_help_long_section =
 	TOKEN_STRING_INITIALIZER(struct cmd_help_long_result, section,
 			"all#control#display#config#"
 			"ports#registers#filters#traffic_management#devices");
 
-cmdline_parse_inst_t cmd_help_long = {
+static cmdline_parse_inst_t cmd_help_long = {
 	.f = cmd_help_long_parsed,
 	.data = NULL,
 	.help_str = "help all|control|display|config|ports|register|"
@@ -1226,16 +1226,16 @@ static void cmd_operate_port_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown parameter\n");
 }
 
-cmdline_parse_token_string_t cmd_operate_port_all_cmd =
+static cmdline_parse_token_string_t cmd_operate_port_all_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_port_result, keyword,
 								"port");
-cmdline_parse_token_string_t cmd_operate_port_all_port =
+static cmdline_parse_token_string_t cmd_operate_port_all_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_port_result, name,
 						"start#stop#close#reset");
-cmdline_parse_token_string_t cmd_operate_port_all_all =
+static cmdline_parse_token_string_t cmd_operate_port_all_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_port_result, value, "all");
 
-cmdline_parse_inst_t cmd_operate_port = {
+static cmdline_parse_inst_t cmd_operate_port = {
 	.f = cmd_operate_port_parsed,
 	.data = NULL,
 	.help_str = "port start|stop|close|reset all: Start/Stop/Close/Reset all ports",
@@ -1272,17 +1272,17 @@ static void cmd_operate_specific_port_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown parameter\n");
 }
 
-cmdline_parse_token_string_t cmd_operate_specific_port_cmd =
+static cmdline_parse_token_string_t cmd_operate_specific_port_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_specific_port_result,
 							keyword, "port");
-cmdline_parse_token_string_t cmd_operate_specific_port_port =
+static cmdline_parse_token_string_t cmd_operate_specific_port_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_specific_port_result,
 						name, "start#stop#close#reset");
-cmdline_parse_token_num_t cmd_operate_specific_port_id =
+static cmdline_parse_token_num_t cmd_operate_specific_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_operate_specific_port_result,
 							value, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_operate_specific_port = {
+static cmdline_parse_inst_t cmd_operate_specific_port = {
 	.f = cmd_operate_specific_port_parsed,
 	.data = NULL,
 	.help_str = "port start|stop|close|reset <port_id>: Start/Stop/Close/Reset port_id",
@@ -1317,23 +1317,23 @@ static void cmd_set_port_setup_on_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown mode\n");
 }
 
-cmdline_parse_token_string_t cmd_set_port_setup_on_set =
+static cmdline_parse_token_string_t cmd_set_port_setup_on_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
 			set, "set");
-cmdline_parse_token_string_t cmd_set_port_setup_on_port =
+static cmdline_parse_token_string_t cmd_set_port_setup_on_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_set_port_setup_on_setup =
+static cmdline_parse_token_string_t cmd_set_port_setup_on_setup =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
 			setup, "setup");
-cmdline_parse_token_string_t cmd_set_port_setup_on_on =
+static cmdline_parse_token_string_t cmd_set_port_setup_on_on =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
 			on, "on");
-cmdline_parse_token_string_t cmd_set_port_setup_on_mode =
+static cmdline_parse_token_string_t cmd_set_port_setup_on_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
 			mode, "iterator#event");
 
-cmdline_parse_inst_t cmd_set_port_setup_on = {
+static cmdline_parse_inst_t cmd_set_port_setup_on = {
 	.f = cmd_set_port_setup_on_parsed,
 	.data = NULL,
 	.help_str = "set port setup on iterator|event",
@@ -1366,17 +1366,17 @@ static void cmd_operate_attach_port_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown parameter\n");
 }
 
-cmdline_parse_token_string_t cmd_operate_attach_port_port =
+static cmdline_parse_token_string_t cmd_operate_attach_port_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_attach_port_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_operate_attach_port_keyword =
+static cmdline_parse_token_string_t cmd_operate_attach_port_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_attach_port_result,
 			keyword, "attach");
-cmdline_parse_token_string_t cmd_operate_attach_port_identifier =
+static cmdline_parse_token_string_t cmd_operate_attach_port_identifier =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_attach_port_result,
 			identifier, TOKEN_STRING_MULTI);
 
-cmdline_parse_inst_t cmd_operate_attach_port = {
+static cmdline_parse_inst_t cmd_operate_attach_port = {
 	.f = cmd_operate_attach_port_parsed,
 	.data = NULL,
 	.help_str = "port attach <identifier>: "
@@ -1410,17 +1410,17 @@ static void cmd_operate_detach_port_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_operate_detach_port_port =
+static cmdline_parse_token_string_t cmd_operate_detach_port_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_port_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_operate_detach_port_keyword =
+static cmdline_parse_token_string_t cmd_operate_detach_port_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_port_result,
 			keyword, "detach");
-cmdline_parse_token_num_t cmd_operate_detach_port_port_id =
+static cmdline_parse_token_num_t cmd_operate_detach_port_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_operate_detach_port_result,
 			port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_operate_detach_port = {
+static cmdline_parse_inst_t cmd_operate_detach_port = {
 	.f = cmd_operate_detach_port_parsed,
 	.data = NULL,
 	.help_str = "port detach <port_id>",
@@ -1451,17 +1451,17 @@ static void cmd_operate_detach_device_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown parameter\n");
 }
 
-cmdline_parse_token_string_t cmd_operate_detach_device_device =
+static cmdline_parse_token_string_t cmd_operate_detach_device_device =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_device_result,
 			device, "device");
-cmdline_parse_token_string_t cmd_operate_detach_device_keyword =
+static cmdline_parse_token_string_t cmd_operate_detach_device_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_device_result,
 			keyword, "detach");
-cmdline_parse_token_string_t cmd_operate_detach_device_identifier =
+static cmdline_parse_token_string_t cmd_operate_detach_device_identifier =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_device_result,
 			identifier, NULL);
 
-cmdline_parse_inst_t cmd_operate_detach_device = {
+static cmdline_parse_inst_t cmd_operate_detach_device = {
 	.f = cmd_operate_detach_device_parsed,
 	.data = NULL,
 	.help_str = "device detach <identifier>:"
@@ -1565,25 +1565,25 @@ cmd_config_speed_all_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_speed_all_port =
+static cmdline_parse_token_string_t cmd_config_speed_all_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, port, "port");
-cmdline_parse_token_string_t cmd_config_speed_all_keyword =
+static cmdline_parse_token_string_t cmd_config_speed_all_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, keyword,
 							"config");
-cmdline_parse_token_string_t cmd_config_speed_all_all =
+static cmdline_parse_token_string_t cmd_config_speed_all_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, all, "all");
-cmdline_parse_token_string_t cmd_config_speed_all_item1 =
+static cmdline_parse_token_string_t cmd_config_speed_all_item1 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, item1, "speed");
-cmdline_parse_token_string_t cmd_config_speed_all_value1 =
+static cmdline_parse_token_string_t cmd_config_speed_all_value1 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, value1,
 				"10#100#1000#10000#25000#40000#50000#100000#200000#auto");
-cmdline_parse_token_string_t cmd_config_speed_all_item2 =
+static cmdline_parse_token_string_t cmd_config_speed_all_item2 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, item2, "duplex");
-cmdline_parse_token_string_t cmd_config_speed_all_value2 =
+static cmdline_parse_token_string_t cmd_config_speed_all_value2 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, value2,
 						"half#full#auto");
 
-cmdline_parse_inst_t cmd_config_speed_all = {
+static cmdline_parse_inst_t cmd_config_speed_all = {
 	.f = cmd_config_speed_all_parsed,
 	.data = NULL,
 	.help_str = "port config all speed "
@@ -1638,28 +1638,28 @@ cmd_config_speed_specific_parsed(void *parsed_result,
 }
 
 
-cmdline_parse_token_string_t cmd_config_speed_specific_port =
+static cmdline_parse_token_string_t cmd_config_speed_specific_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, port,
 								"port");
-cmdline_parse_token_string_t cmd_config_speed_specific_keyword =
+static cmdline_parse_token_string_t cmd_config_speed_specific_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, keyword,
 								"config");
-cmdline_parse_token_num_t cmd_config_speed_specific_id =
+static cmdline_parse_token_num_t cmd_config_speed_specific_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_speed_specific, id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_speed_specific_item1 =
+static cmdline_parse_token_string_t cmd_config_speed_specific_item1 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, item1,
 								"speed");
-cmdline_parse_token_string_t cmd_config_speed_specific_value1 =
+static cmdline_parse_token_string_t cmd_config_speed_specific_value1 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, value1,
 				"10#100#1000#10000#25000#40000#50000#100000#200000#auto");
-cmdline_parse_token_string_t cmd_config_speed_specific_item2 =
+static cmdline_parse_token_string_t cmd_config_speed_specific_item2 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, item2,
 								"duplex");
-cmdline_parse_token_string_t cmd_config_speed_specific_value2 =
+static cmdline_parse_token_string_t cmd_config_speed_specific_value2 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, value2,
 							"half#full#auto");
 
-cmdline_parse_inst_t cmd_config_speed_specific = {
+static cmdline_parse_inst_t cmd_config_speed_specific = {
 	.f = cmd_config_speed_specific_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> speed "
@@ -1706,20 +1706,20 @@ cmd_config_loopback_all_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_loopback_all_port =
+static cmdline_parse_token_string_t cmd_config_loopback_all_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all, port, "port");
-cmdline_parse_token_string_t cmd_config_loopback_all_keyword =
+static cmdline_parse_token_string_t cmd_config_loopback_all_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all, keyword,
 							"config");
-cmdline_parse_token_string_t cmd_config_loopback_all_all =
+static cmdline_parse_token_string_t cmd_config_loopback_all_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all, all, "all");
-cmdline_parse_token_string_t cmd_config_loopback_all_item =
+static cmdline_parse_token_string_t cmd_config_loopback_all_item =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all, item,
 							"loopback");
-cmdline_parse_token_num_t cmd_config_loopback_all_mode =
+static cmdline_parse_token_num_t cmd_config_loopback_all_mode =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_loopback_all, mode, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_config_loopback_all = {
+static cmdline_parse_inst_t cmd_config_loopback_all = {
 	.f = cmd_config_loopback_all_parsed,
 	.data = NULL,
 	.help_str = "port config all loopback <mode>",
@@ -1763,23 +1763,23 @@ cmd_config_loopback_specific_parsed(void *parsed_result,
 }
 
 
-cmdline_parse_token_string_t cmd_config_loopback_specific_port =
+static cmdline_parse_token_string_t cmd_config_loopback_specific_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_specific, port,
 								"port");
-cmdline_parse_token_string_t cmd_config_loopback_specific_keyword =
+static cmdline_parse_token_string_t cmd_config_loopback_specific_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_specific, keyword,
 								"config");
-cmdline_parse_token_num_t cmd_config_loopback_specific_id =
+static cmdline_parse_token_num_t cmd_config_loopback_specific_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_loopback_specific, port_id,
 								RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_loopback_specific_item =
+static cmdline_parse_token_string_t cmd_config_loopback_specific_item =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_specific, item,
 								"loopback");
-cmdline_parse_token_num_t cmd_config_loopback_specific_mode =
+static cmdline_parse_token_num_t cmd_config_loopback_specific_mode =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_loopback_specific, mode,
 			      RTE_UINT32);
 
-cmdline_parse_inst_t cmd_config_loopback_specific = {
+static cmdline_parse_inst_t cmd_config_loopback_specific = {
 	.f = cmd_config_loopback_specific_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> loopback <mode>",
@@ -1852,19 +1852,19 @@ cmd_config_rx_tx_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_rx_tx_port =
+static cmdline_parse_token_string_t cmd_config_rx_tx_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, port, "port");
-cmdline_parse_token_string_t cmd_config_rx_tx_keyword =
+static cmdline_parse_token_string_t cmd_config_rx_tx_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, keyword, "config");
-cmdline_parse_token_string_t cmd_config_rx_tx_all =
+static cmdline_parse_token_string_t cmd_config_rx_tx_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, all, "all");
-cmdline_parse_token_string_t cmd_config_rx_tx_name =
+static cmdline_parse_token_string_t cmd_config_rx_tx_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, name,
 						"rxq#txq#rxd#txd");
-cmdline_parse_token_num_t cmd_config_rx_tx_value =
+static cmdline_parse_token_num_t cmd_config_rx_tx_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rx_tx, value, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_config_rx_tx = {
+static cmdline_parse_inst_t cmd_config_rx_tx = {
 	.f = cmd_config_rx_tx_parsed,
 	.data = NULL,
 	.help_str = "port config all rxq|txq|rxd|txd <value>",
@@ -1932,23 +1932,23 @@ cmd_config_max_pkt_len_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_max_pkt_len_port =
+static cmdline_parse_token_string_t cmd_config_max_pkt_len_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result, port,
 								"port");
-cmdline_parse_token_string_t cmd_config_max_pkt_len_keyword =
+static cmdline_parse_token_string_t cmd_config_max_pkt_len_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result, keyword,
 								"config");
-cmdline_parse_token_string_t cmd_config_max_pkt_len_all =
+static cmdline_parse_token_string_t cmd_config_max_pkt_len_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result, all,
 								"all");
-cmdline_parse_token_string_t cmd_config_max_pkt_len_name =
+static cmdline_parse_token_string_t cmd_config_max_pkt_len_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result, name,
 								"max-pkt-len");
-cmdline_parse_token_num_t cmd_config_max_pkt_len_value =
+static cmdline_parse_token_num_t cmd_config_max_pkt_len_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_max_pkt_len_result, value,
 								RTE_UINT32);
 
-cmdline_parse_inst_t cmd_config_max_pkt_len = {
+static cmdline_parse_inst_t cmd_config_max_pkt_len = {
 	.f = cmd_config_max_pkt_len_parsed,
 	.data = NULL,
 	.help_str = "port config all max-pkt-len <value>",
@@ -2004,23 +2004,23 @@ cmd_config_max_lro_pkt_size_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_port =
+static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
 				 port, "port");
-cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_keyword =
+static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
 				 keyword, "config");
-cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_all =
+static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
 				 all, "all");
-cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_name =
+static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
 				 name, "max-lro-pkt-size");
-cmdline_parse_token_num_t cmd_config_max_lro_pkt_size_value =
+static cmdline_parse_token_num_t cmd_config_max_lro_pkt_size_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
 			      value, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_config_max_lro_pkt_size = {
+static cmdline_parse_inst_t cmd_config_max_lro_pkt_size = {
 	.f = cmd_config_max_lro_pkt_size_parsed,
 	.data = NULL,
 	.help_str = "port config all max-lro-pkt-size <value>",
@@ -2053,23 +2053,23 @@ cmd_config_mtu_parsed(void *parsed_result,
 	port_mtu_set(res->port_id, res->value);
 }
 
-cmdline_parse_token_string_t cmd_config_mtu_port =
+static cmdline_parse_token_string_t cmd_config_mtu_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_mtu_result, port,
 				 "port");
-cmdline_parse_token_string_t cmd_config_mtu_keyword =
+static cmdline_parse_token_string_t cmd_config_mtu_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_mtu_result, keyword,
 				 "config");
-cmdline_parse_token_string_t cmd_config_mtu_mtu =
+static cmdline_parse_token_string_t cmd_config_mtu_mtu =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_mtu_result, keyword,
 				 "mtu");
-cmdline_parse_token_num_t cmd_config_mtu_port_id =
+static cmdline_parse_token_num_t cmd_config_mtu_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_mtu_result, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_num_t cmd_config_mtu_value =
+static cmdline_parse_token_num_t cmd_config_mtu_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_mtu_result, value,
 				 RTE_UINT16);
 
-cmdline_parse_inst_t cmd_config_mtu = {
+static cmdline_parse_inst_t cmd_config_mtu = {
 	.f = cmd_config_mtu_parsed,
 	.data = NULL,
 	.help_str = "port config mtu <port_id> <value>",
@@ -2123,21 +2123,21 @@ cmd_config_rx_mode_flag_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_rx_mode_flag_port =
+static cmdline_parse_token_string_t cmd_config_rx_mode_flag_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, port, "port");
-cmdline_parse_token_string_t cmd_config_rx_mode_flag_keyword =
+static cmdline_parse_token_string_t cmd_config_rx_mode_flag_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, keyword,
 								"config");
-cmdline_parse_token_string_t cmd_config_rx_mode_flag_all =
+static cmdline_parse_token_string_t cmd_config_rx_mode_flag_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, all, "all");
-cmdline_parse_token_string_t cmd_config_rx_mode_flag_name =
+static cmdline_parse_token_string_t cmd_config_rx_mode_flag_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, name,
 					"drop-en");
-cmdline_parse_token_string_t cmd_config_rx_mode_flag_value =
+static cmdline_parse_token_string_t cmd_config_rx_mode_flag_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, value,
 							"on#off");
 
-cmdline_parse_inst_t cmd_config_rx_mode_flag = {
+static cmdline_parse_inst_t cmd_config_rx_mode_flag = {
 	.f = cmd_config_rx_mode_flag_parsed,
 	.data = NULL,
 	.help_str = "port config all drop-en on|off",
@@ -2300,18 +2300,18 @@ cmd_config_rss_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_config_rss_port =
+static cmdline_parse_token_string_t cmd_config_rss_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, port, "port");
-cmdline_parse_token_string_t cmd_config_rss_keyword =
+static cmdline_parse_token_string_t cmd_config_rss_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, keyword, "config");
-cmdline_parse_token_string_t cmd_config_rss_all =
+static cmdline_parse_token_string_t cmd_config_rss_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, all, "all");
-cmdline_parse_token_string_t cmd_config_rss_name =
+static cmdline_parse_token_string_t cmd_config_rss_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, name, "rss");
-cmdline_parse_token_string_t cmd_config_rss_value =
+static cmdline_parse_token_string_t cmd_config_rss_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, value, NULL);
 
-cmdline_parse_inst_t cmd_config_rss = {
+static cmdline_parse_inst_t cmd_config_rss = {
 	.f = cmd_config_rss_parsed,
 	.data = NULL,
 	.help_str = "port config all rss "
@@ -2413,18 +2413,18 @@ cmd_config_rss_hash_key_parsed(void *parsed_result,
 			hash_key_size);
 }
 
-cmdline_parse_token_string_t cmd_config_rss_hash_key_port =
+static cmdline_parse_token_string_t cmd_config_rss_hash_key_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, port, "port");
-cmdline_parse_token_string_t cmd_config_rss_hash_key_config =
+static cmdline_parse_token_string_t cmd_config_rss_hash_key_config =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, config,
 				 "config");
-cmdline_parse_token_num_t cmd_config_rss_hash_key_port_id =
+static cmdline_parse_token_num_t cmd_config_rss_hash_key_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rss_hash_key, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_hash_key =
+static cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_hash_key =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key,
 				 rss_hash_key, "rss-hash-key");
-cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_type =
+static cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, rss_type,
 				 "ipv4#ipv4-frag#ipv4-tcp#ipv4-udp#ipv4-sctp#"
 				 "ipv4-other#ipv6#ipv6-frag#ipv6-tcp#ipv6-udp#"
@@ -2433,10 +2433,10 @@ cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_type =
 				 "l3-src-only#l3-dst-only#l4-src-only#l4-dst-only#"
 				 "l2-src-only#l2-dst-only#s-vlan#c-vlan#"
 				 "l2tpv3#esp#ah#pfcp#pppoe#gtpu#ecpri#mpls#l2tpv2");
-cmdline_parse_token_string_t cmd_config_rss_hash_key_value =
+static cmdline_parse_token_string_t cmd_config_rss_hash_key_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, key, NULL);
 
-cmdline_parse_inst_t cmd_config_rss_hash_key = {
+static cmdline_parse_inst_t cmd_config_rss_hash_key = {
 	.f = cmd_config_rss_hash_key_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> rss-hash-key "
@@ -2508,26 +2508,26 @@ cmd_cleanup_txq_mbufs_parsed(void *parsed_result,
 	       port_id, queue_id, ret);
 }
 
-cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_port =
+static cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, port,
 				 "port");
-cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_cleanup =
+static cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_cleanup =
 	TOKEN_STRING_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, keyword,
 				 "cleanup");
-cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_port_id =
+static cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, port_id,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_txq =
+static cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_txq =
 	TOKEN_STRING_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, name,
 				 "txq");
-cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_queue_id =
+static cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_queue_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, queue_id,
 			      RTE_UINT16);
-cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_free_cnt =
+static cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_free_cnt =
 	TOKEN_NUM_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, free_cnt,
 			      RTE_UINT32);
 
-cmdline_parse_inst_t cmd_cleanup_txq_mbufs = {
+static cmdline_parse_inst_t cmd_cleanup_txq_mbufs = {
 	.f = cmd_cleanup_txq_mbufs_parsed,
 	.data = NULL,
 	.help_str = "port cleanup <port_id> txq <queue_id> <free_cnt>",
@@ -2601,29 +2601,29 @@ cmd_config_rxtx_ring_size_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->portid, 0, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_rxtx_ring_size_port =
+static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
 				 port, "port");
-cmdline_parse_token_string_t cmd_config_rxtx_ring_size_config =
+static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_config =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
 				 config, "config");
-cmdline_parse_token_num_t cmd_config_rxtx_ring_size_portid =
+static cmdline_parse_token_num_t cmd_config_rxtx_ring_size_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_ring_size,
 				 portid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rxtxq =
+static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rxtxq =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
 				 rxtxq, "rxq#txq");
-cmdline_parse_token_num_t cmd_config_rxtx_ring_size_qid =
+static cmdline_parse_token_num_t cmd_config_rxtx_ring_size_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_ring_size,
 			      qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rsize =
+static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rsize =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
 				 rsize, "ring_size");
-cmdline_parse_token_num_t cmd_config_rxtx_ring_size_size =
+static cmdline_parse_token_num_t cmd_config_rxtx_ring_size_size =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_ring_size,
 			      size, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_config_rxtx_ring_size = {
+static cmdline_parse_inst_t cmd_config_rxtx_ring_size = {
 	.f = cmd_config_rxtx_ring_size_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> rxq|txq <queue_id> ring_size <value>",
@@ -2707,19 +2707,19 @@ cmd_config_rxtx_queue_parsed(void *parsed_result,
 		fprintf(stderr, "Function not supported in PMD\n");
 }
 
-cmdline_parse_token_string_t cmd_config_rxtx_queue_port =
+static cmdline_parse_token_string_t cmd_config_rxtx_queue_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_queue, port, "port");
-cmdline_parse_token_num_t cmd_config_rxtx_queue_portid =
+static cmdline_parse_token_num_t cmd_config_rxtx_queue_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_queue, portid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rxtx_queue_rxtxq =
+static cmdline_parse_token_string_t cmd_config_rxtx_queue_rxtxq =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_queue, rxtxq, "rxq#txq");
-cmdline_parse_token_num_t cmd_config_rxtx_queue_qid =
+static cmdline_parse_token_num_t cmd_config_rxtx_queue_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_queue, qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rxtx_queue_opname =
+static cmdline_parse_token_string_t cmd_config_rxtx_queue_opname =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_queue, opname,
 						"start#stop");
 
-cmdline_parse_inst_t cmd_config_rxtx_queue = {
+static cmdline_parse_inst_t cmd_config_rxtx_queue = {
 	.f = cmd_config_rxtx_queue_parsed,
 	.data = NULL,
 	.help_str = "port <port_id> rxq|txq <queue_id> start|stop",
@@ -2785,26 +2785,26 @@ cmd_config_deferred_start_rxtx_queue_parsed(void *parsed_result,
 		cmd_reconfig_device_queue(res->port_id, 0, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_port =
+static cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						port, "port");
-cmdline_parse_token_num_t cmd_config_deferred_start_rxtx_queue_port_id =
+static cmdline_parse_token_num_t cmd_config_deferred_start_rxtx_queue_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_rxtxq =
+static cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_rxtxq =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						rxtxq, "rxq#txq");
-cmdline_parse_token_num_t cmd_config_deferred_start_rxtx_queue_qid =
+static cmdline_parse_token_num_t cmd_config_deferred_start_rxtx_queue_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_opname =
+static cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_opname =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						opname, "deferred_start");
-cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_state =
+static cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_state =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						state, "on#off");
 
-cmdline_parse_inst_t cmd_config_deferred_start_rxtx_queue = {
+static cmdline_parse_inst_t cmd_config_deferred_start_rxtx_queue = {
 	.f = cmd_config_deferred_start_rxtx_queue_parsed,
 	.data = NULL,
 	.help_str = "port <port_id> rxq|txq <queue_id> deferred_start on|off",
@@ -2829,15 +2829,15 @@ struct cmd_setup_rxtx_queue {
 };
 
 /* Common CLI fields for queue setup */
-cmdline_parse_token_string_t cmd_setup_rxtx_queue_port =
+static cmdline_parse_token_string_t cmd_setup_rxtx_queue_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_setup_rxtx_queue, port, "port");
-cmdline_parse_token_num_t cmd_setup_rxtx_queue_portid =
+static cmdline_parse_token_num_t cmd_setup_rxtx_queue_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_setup_rxtx_queue, portid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setup_rxtx_queue_rxtxq =
+static cmdline_parse_token_string_t cmd_setup_rxtx_queue_rxtxq =
 	TOKEN_STRING_INITIALIZER(struct cmd_setup_rxtx_queue, rxtxq, "rxq#txq");
-cmdline_parse_token_num_t cmd_setup_rxtx_queue_qid =
+static cmdline_parse_token_num_t cmd_setup_rxtx_queue_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_setup_rxtx_queue, qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setup_rxtx_queue_setup =
+static cmdline_parse_token_string_t cmd_setup_rxtx_queue_setup =
 	TOKEN_STRING_INITIALIZER(struct cmd_setup_rxtx_queue, setup, "setup");
 
 static void
@@ -2919,7 +2919,7 @@ cmd_setup_rxtx_queue_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_setup_rxtx_queue = {
+static cmdline_parse_inst_t cmd_setup_rxtx_queue = {
 	.f = cmd_setup_rxtx_queue_parsed,
 	.data = NULL,
 	.help_str = "port <port_id> rxq|txq <queue_idx> setup",
@@ -3047,20 +3047,20 @@ cmd_set_rss_reta_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_config_rss_reta_port =
+static cmdline_parse_token_string_t cmd_config_rss_reta_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, port, "port");
-cmdline_parse_token_string_t cmd_config_rss_reta_keyword =
+static cmdline_parse_token_string_t cmd_config_rss_reta_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, keyword, "config");
-cmdline_parse_token_num_t cmd_config_rss_reta_port_id =
+static cmdline_parse_token_num_t cmd_config_rss_reta_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rss_reta, port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rss_reta_name =
+static cmdline_parse_token_string_t cmd_config_rss_reta_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, name, "rss");
-cmdline_parse_token_string_t cmd_config_rss_reta_list_name =
+static cmdline_parse_token_string_t cmd_config_rss_reta_list_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, list_name, "reta");
-cmdline_parse_token_string_t cmd_config_rss_reta_list_of_items =
+static cmdline_parse_token_string_t cmd_config_rss_reta_list_of_items =
         TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, list_of_items,
                                  NULL);
-cmdline_parse_inst_t cmd_config_rss_reta = {
+static cmdline_parse_inst_t cmd_config_rss_reta = {
 	.f = cmd_set_rss_reta_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> rss reta <hash,queue[,hash,queue]*>",
@@ -3160,23 +3160,23 @@ cmd_showport_reta_parsed(void *parsed_result,
 	port_rss_reta_info(res->port_id, reta_conf, res->size);
 }
 
-cmdline_parse_token_string_t cmd_showport_reta_show =
+static cmdline_parse_token_string_t cmd_showport_reta_show =
 	TOKEN_STRING_INITIALIZER(struct  cmd_showport_reta, show, "show");
-cmdline_parse_token_string_t cmd_showport_reta_port =
+static cmdline_parse_token_string_t cmd_showport_reta_port =
 	TOKEN_STRING_INITIALIZER(struct  cmd_showport_reta, port, "port");
-cmdline_parse_token_num_t cmd_showport_reta_port_id =
+static cmdline_parse_token_num_t cmd_showport_reta_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_reta, port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_showport_reta_rss =
+static cmdline_parse_token_string_t cmd_showport_reta_rss =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_reta, rss, "rss");
-cmdline_parse_token_string_t cmd_showport_reta_reta =
+static cmdline_parse_token_string_t cmd_showport_reta_reta =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_reta, reta, "reta");
-cmdline_parse_token_num_t cmd_showport_reta_size =
+static cmdline_parse_token_num_t cmd_showport_reta_size =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_reta, size, RTE_UINT16);
-cmdline_parse_token_string_t cmd_showport_reta_list_of_items =
+static cmdline_parse_token_string_t cmd_showport_reta_list_of_items =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_reta,
 					list_of_items, NULL);
 
-cmdline_parse_inst_t cmd_showport_reta = {
+static cmdline_parse_inst_t cmd_showport_reta = {
 	.f = cmd_showport_reta_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rss reta <size> <mask0[,mask1]*>",
@@ -3211,20 +3211,20 @@ static void cmd_showport_rss_hash_parsed(void *parsed_result,
 	port_rss_hash_conf_show(res->port_id, show_rss_key != NULL);
 }
 
-cmdline_parse_token_string_t cmd_showport_rss_hash_show =
+static cmdline_parse_token_string_t cmd_showport_rss_hash_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, show, "show");
-cmdline_parse_token_string_t cmd_showport_rss_hash_port =
+static cmdline_parse_token_string_t cmd_showport_rss_hash_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, port, "port");
-cmdline_parse_token_num_t cmd_showport_rss_hash_port_id =
+static cmdline_parse_token_num_t cmd_showport_rss_hash_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_rss_hash, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_string_t cmd_showport_rss_hash_rss_hash =
+static cmdline_parse_token_string_t cmd_showport_rss_hash_rss_hash =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, rss_hash,
 				 "rss-hash");
-cmdline_parse_token_string_t cmd_showport_rss_hash_rss_key =
+static cmdline_parse_token_string_t cmd_showport_rss_hash_rss_key =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, key, "key");
 
-cmdline_parse_inst_t cmd_showport_rss_hash = {
+static cmdline_parse_inst_t cmd_showport_rss_hash = {
 	.f = cmd_showport_rss_hash_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rss-hash",
@@ -3237,7 +3237,7 @@ cmdline_parse_inst_t cmd_showport_rss_hash = {
 	},
 };
 
-cmdline_parse_inst_t cmd_showport_rss_hash_key = {
+static cmdline_parse_inst_t cmd_showport_rss_hash_key = {
 	.f = cmd_showport_rss_hash_parsed,
 	.data = (void *)1,
 	.help_str = "show port <port_id> rss-hash key",
@@ -3326,26 +3326,26 @@ cmd_config_dcb_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_dcb_port =
+static cmdline_parse_token_string_t cmd_config_dcb_port =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, port, "port");
-cmdline_parse_token_string_t cmd_config_dcb_config =
+static cmdline_parse_token_string_t cmd_config_dcb_config =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, config, "config");
-cmdline_parse_token_num_t cmd_config_dcb_port_id =
+static cmdline_parse_token_num_t cmd_config_dcb_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_dcb, port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_dcb_dcb =
+static cmdline_parse_token_string_t cmd_config_dcb_dcb =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, dcb, "dcb");
-cmdline_parse_token_string_t cmd_config_dcb_vt =
+static cmdline_parse_token_string_t cmd_config_dcb_vt =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, vt, "vt");
-cmdline_parse_token_string_t cmd_config_dcb_vt_en =
+static cmdline_parse_token_string_t cmd_config_dcb_vt_en =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, vt_en, "on#off");
-cmdline_parse_token_num_t cmd_config_dcb_num_tcs =
+static cmdline_parse_token_num_t cmd_config_dcb_num_tcs =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_dcb, num_tcs, RTE_UINT8);
-cmdline_parse_token_string_t cmd_config_dcb_pfc=
+static cmdline_parse_token_string_t cmd_config_dcb_pfc =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, pfc, "pfc");
-cmdline_parse_token_string_t cmd_config_dcb_pfc_en =
+static cmdline_parse_token_string_t cmd_config_dcb_pfc_en =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, pfc_en, "on#off");
 
-cmdline_parse_inst_t cmd_config_dcb = {
+static cmdline_parse_inst_t cmd_config_dcb = {
 	.f = cmd_config_dcb_parsed,
 	.data = NULL,
 	.help_str = "port config <port-id> dcb vt on|off <num_tcs> pfc on|off",
@@ -3430,18 +3430,18 @@ cmd_config_burst_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_burst_port =
+static cmdline_parse_token_string_t cmd_config_burst_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, port, "port");
-cmdline_parse_token_string_t cmd_config_burst_keyword =
+static cmdline_parse_token_string_t cmd_config_burst_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, keyword, "config");
-cmdline_parse_token_string_t cmd_config_burst_all =
+static cmdline_parse_token_string_t cmd_config_burst_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, all, "all");
-cmdline_parse_token_string_t cmd_config_burst_name =
+static cmdline_parse_token_string_t cmd_config_burst_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, name, "burst");
-cmdline_parse_token_num_t cmd_config_burst_value =
+static cmdline_parse_token_num_t cmd_config_burst_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_burst, value, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_config_burst = {
+static cmdline_parse_inst_t cmd_config_burst = {
 	.f = cmd_config_burst_parsed,
 	.data = NULL,
 	.help_str = "port config all burst <value>",
@@ -3498,19 +3498,19 @@ cmd_config_thresh_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_thresh_port =
+static cmdline_parse_token_string_t cmd_config_thresh_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, port, "port");
-cmdline_parse_token_string_t cmd_config_thresh_keyword =
+static cmdline_parse_token_string_t cmd_config_thresh_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, keyword, "config");
-cmdline_parse_token_string_t cmd_config_thresh_all =
+static cmdline_parse_token_string_t cmd_config_thresh_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, all, "all");
-cmdline_parse_token_string_t cmd_config_thresh_name =
+static cmdline_parse_token_string_t cmd_config_thresh_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, name,
 				"txpt#txht#txwt#rxpt#rxht#rxwt");
-cmdline_parse_token_num_t cmd_config_thresh_value =
+static cmdline_parse_token_num_t cmd_config_thresh_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_thresh, value, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_config_thresh = {
+static cmdline_parse_inst_t cmd_config_thresh = {
 	.f = cmd_config_thresh_parsed,
 	.data = NULL,
 	.help_str = "port config all txpt|txht|txwt|rxpt|rxht|rxwt <value>",
@@ -3561,20 +3561,20 @@ cmd_config_threshold_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_threshold_port =
+static cmdline_parse_token_string_t cmd_config_threshold_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, port, "port");
-cmdline_parse_token_string_t cmd_config_threshold_keyword =
+static cmdline_parse_token_string_t cmd_config_threshold_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, keyword,
 								"config");
-cmdline_parse_token_string_t cmd_config_threshold_all =
+static cmdline_parse_token_string_t cmd_config_threshold_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, all, "all");
-cmdline_parse_token_string_t cmd_config_threshold_name =
+static cmdline_parse_token_string_t cmd_config_threshold_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, name,
 						"txfreet#txrst#rxfreet");
-cmdline_parse_token_num_t cmd_config_threshold_value =
+static cmdline_parse_token_num_t cmd_config_threshold_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_threshold, value, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_config_threshold = {
+static cmdline_parse_inst_t cmd_config_threshold = {
 	.f = cmd_config_threshold_parsed,
 	.data = NULL,
 	.help_str = "port config all txfreet|txrst|rxfreet <value>",
@@ -3600,10 +3600,10 @@ static void cmd_stop_parsed(__rte_unused void *parsed_result,
 	stop_packet_forwarding();
 }
 
-cmdline_parse_token_string_t cmd_stop_stop =
+static cmdline_parse_token_string_t cmd_stop_stop =
 	TOKEN_STRING_INITIALIZER(struct cmd_stop_result, stop, "stop");
 
-cmdline_parse_inst_t cmd_stop = {
+static cmdline_parse_inst_t cmd_stop = {
 	.f = cmd_stop_parsed,
 	.data = NULL,
 	.help_str = "stop: Stop packet forwarding",
@@ -3724,17 +3724,17 @@ static void cmd_set_list_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_set_list_keyword =
+static cmdline_parse_token_string_t cmd_set_list_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_list_result, cmd_keyword,
 				 "set");
-cmdline_parse_token_string_t cmd_set_list_name =
+static cmdline_parse_token_string_t cmd_set_list_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_list_result, list_name,
 				 "corelist#portlist");
-cmdline_parse_token_string_t cmd_set_list_of_items =
+static cmdline_parse_token_string_t cmd_set_list_of_items =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_list_result, list_of_items,
 				 NULL);
 
-cmdline_parse_inst_t cmd_set_fwd_list = {
+static cmdline_parse_inst_t cmd_set_fwd_list = {
 	.f = cmd_set_list_parsed,
 	.data = NULL,
 	.help_str = "set corelist|portlist <list0[,list1]*>",
@@ -3773,15 +3773,15 @@ static void cmd_set_mask_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_setmask_set =
+static cmdline_parse_token_string_t cmd_setmask_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_setmask_result, set, "set");
-cmdline_parse_token_string_t cmd_setmask_mask =
+static cmdline_parse_token_string_t cmd_setmask_mask =
 	TOKEN_STRING_INITIALIZER(struct cmd_setmask_result, mask,
 				 "coremask#portmask");
-cmdline_parse_token_num_t cmd_setmask_value =
+static cmdline_parse_token_num_t cmd_setmask_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_setmask_result, hexavalue, RTE_UINT64);
 
-cmdline_parse_inst_t cmd_set_fwd_mask = {
+static cmdline_parse_inst_t cmd_set_fwd_mask = {
 	.f = cmd_set_mask_parsed,
 	.data = NULL,
 	.help_str = "set coremask|portmask <hexadecimal value>",
@@ -3819,15 +3819,15 @@ static void cmd_set_parsed(void *parsed_result,
 		set_verbose_level(res->value);
 }
 
-cmdline_parse_token_string_t cmd_set_set =
+static cmdline_parse_token_string_t cmd_set_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_result, set, "set");
-cmdline_parse_token_string_t cmd_set_what =
+static cmdline_parse_token_string_t cmd_set_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_result, what,
 				 "nbport#nbcore#burst#verbose");
-cmdline_parse_token_num_t cmd_set_value =
+static cmdline_parse_token_num_t cmd_set_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_result, value, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_set_numbers = {
+static cmdline_parse_inst_t cmd_set_numbers = {
 	.f = cmd_set_parsed,
 	.data = NULL,
 	.help_str = "set nbport|nbcore|burst|verbose <value>",
@@ -3866,16 +3866,16 @@ cmd_set_log_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_set_log_set =
+static cmdline_parse_token_string_t cmd_set_log_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_log_result, set, "set");
-cmdline_parse_token_string_t cmd_set_log_log =
+static cmdline_parse_token_string_t cmd_set_log_log =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_log_result, log, "log");
-cmdline_parse_token_string_t cmd_set_log_type =
+static cmdline_parse_token_string_t cmd_set_log_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_log_result, type, NULL);
-cmdline_parse_token_num_t cmd_set_log_level =
+static cmdline_parse_token_num_t cmd_set_log_level =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_log_result, level, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_set_log = {
+static cmdline_parse_inst_t cmd_set_log = {
 	.f = cmd_set_log_parsed,
 	.data = NULL,
 	.help_str = "set log global|<type> <level>",
@@ -3913,17 +3913,17 @@ cmd_set_rxoffs_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 0, 1);
 }
 
-cmdline_parse_token_string_t cmd_set_rxoffs_keyword =
+static cmdline_parse_token_string_t cmd_set_rxoffs_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxoffs_result,
 				 cmd_keyword, "set");
-cmdline_parse_token_string_t cmd_set_rxoffs_name =
+static cmdline_parse_token_string_t cmd_set_rxoffs_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxoffs_result,
 				 rxoffs, "rxoffs");
-cmdline_parse_token_string_t cmd_set_rxoffs_offsets =
+static cmdline_parse_token_string_t cmd_set_rxoffs_offsets =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxoffs_result,
 				 seg_offsets, NULL);
 
-cmdline_parse_inst_t cmd_set_rxoffs = {
+static cmdline_parse_inst_t cmd_set_rxoffs = {
 	.f = cmd_set_rxoffs_parsed,
 	.data = NULL,
 	.help_str = "set rxoffs <len0[,len1]*>",
@@ -3960,17 +3960,17 @@ cmd_set_rxpkts_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 0, 1);
 }
 
-cmdline_parse_token_string_t cmd_set_rxpkts_keyword =
+static cmdline_parse_token_string_t cmd_set_rxpkts_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxpkts_result,
 				 cmd_keyword, "set");
-cmdline_parse_token_string_t cmd_set_rxpkts_name =
+static cmdline_parse_token_string_t cmd_set_rxpkts_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxpkts_result,
 				 rxpkts, "rxpkts");
-cmdline_parse_token_string_t cmd_set_rxpkts_lengths =
+static cmdline_parse_token_string_t cmd_set_rxpkts_lengths =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxpkts_result,
 				 seg_lengths, NULL);
 
-cmdline_parse_inst_t cmd_set_rxpkts = {
+static cmdline_parse_inst_t cmd_set_rxpkts = {
 	.f = cmd_set_rxpkts_parsed,
 	.data = NULL,
 	.help_str = "set rxpkts <len0[,len1]*>",
@@ -4006,17 +4006,17 @@ cmd_set_txpkts_parsed(void *parsed_result,
 		set_tx_pkt_segments(seg_lengths, nb_segs);
 }
 
-cmdline_parse_token_string_t cmd_set_txpkts_keyword =
+static cmdline_parse_token_string_t cmd_set_txpkts_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txpkts_result,
 				 cmd_keyword, "set");
-cmdline_parse_token_string_t cmd_set_txpkts_name =
+static cmdline_parse_token_string_t cmd_set_txpkts_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txpkts_result,
 				 txpkts, "txpkts");
-cmdline_parse_token_string_t cmd_set_txpkts_lengths =
+static cmdline_parse_token_string_t cmd_set_txpkts_lengths =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txpkts_result,
 				 seg_lengths, NULL);
 
-cmdline_parse_inst_t cmd_set_txpkts = {
+static cmdline_parse_inst_t cmd_set_txpkts = {
 	.f = cmd_set_txpkts_parsed,
 	.data = NULL,
 	.help_str = "set txpkts <len0[,len1]*>",
@@ -4047,17 +4047,17 @@ cmd_set_txsplit_parsed(void *parsed_result,
 	set_tx_pkt_split(res->mode);
 }
 
-cmdline_parse_token_string_t cmd_set_txsplit_keyword =
+static cmdline_parse_token_string_t cmd_set_txsplit_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txsplit_result,
 				 cmd_keyword, "set");
-cmdline_parse_token_string_t cmd_set_txsplit_name =
+static cmdline_parse_token_string_t cmd_set_txsplit_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txsplit_result,
 				 txsplit, "txsplit");
-cmdline_parse_token_string_t cmd_set_txsplit_mode =
+static cmdline_parse_token_string_t cmd_set_txsplit_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txsplit_result,
 				 mode, NULL);
 
-cmdline_parse_inst_t cmd_set_txsplit = {
+static cmdline_parse_inst_t cmd_set_txsplit = {
 	.f = cmd_set_txsplit_parsed,
 	.data = NULL,
 	.help_str = "set txsplit on|off|rand",
@@ -4093,17 +4093,17 @@ cmd_set_txtimes_parsed(void *parsed_result,
 		set_tx_pkt_times(tx_times);
 }
 
-cmdline_parse_token_string_t cmd_set_txtimes_keyword =
+static cmdline_parse_token_string_t cmd_set_txtimes_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txtimes_result,
 				 cmd_keyword, "set");
-cmdline_parse_token_string_t cmd_set_txtimes_name =
+static cmdline_parse_token_string_t cmd_set_txtimes_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txtimes_result,
 				 txtimes, "txtimes");
-cmdline_parse_token_string_t cmd_set_txtimes_value =
+static cmdline_parse_token_string_t cmd_set_txtimes_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txtimes_result,
 				 tx_times, NULL);
 
-cmdline_parse_inst_t cmd_set_txtimes = {
+static cmdline_parse_inst_t cmd_set_txtimes = {
 	.f = cmd_set_txtimes_parsed,
 	.data = NULL,
 	.help_str = "set txtimes <inter_burst>,<intra_burst>",
@@ -4136,20 +4136,20 @@ cmd_rx_vlan_filter_all_parsed(void *parsed_result,
 		rx_vlan_all_filter_set(res->port_id, 0);
 }
 
-cmdline_parse_token_string_t cmd_rx_vlan_filter_all_rx_vlan =
+static cmdline_parse_token_string_t cmd_rx_vlan_filter_all_rx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
 				 rx_vlan, "rx_vlan");
-cmdline_parse_token_string_t cmd_rx_vlan_filter_all_what =
+static cmdline_parse_token_string_t cmd_rx_vlan_filter_all_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
 				 what, "add#rm");
-cmdline_parse_token_string_t cmd_rx_vlan_filter_all_all =
+static cmdline_parse_token_string_t cmd_rx_vlan_filter_all_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
 				 all, "all");
-cmdline_parse_token_num_t cmd_rx_vlan_filter_all_portid =
+static cmdline_parse_token_num_t cmd_rx_vlan_filter_all_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_rx_vlan_filter_all = {
+static cmdline_parse_inst_t cmd_rx_vlan_filter_all = {
 	.f = cmd_rx_vlan_filter_all_parsed,
 	.data = NULL,
 	.help_str = "rx_vlan add|rm all <port_id>: "
@@ -4236,23 +4236,23 @@ cmd_vlan_offload_parsed(void *parsed_result,
 	return;
 }
 
-cmdline_parse_token_string_t cmd_vlan_offload_vlan =
+static cmdline_parse_token_string_t cmd_vlan_offload_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
 				 vlan, "vlan");
-cmdline_parse_token_string_t cmd_vlan_offload_set =
+static cmdline_parse_token_string_t cmd_vlan_offload_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
 				 set, "set");
-cmdline_parse_token_string_t cmd_vlan_offload_what =
+static cmdline_parse_token_string_t cmd_vlan_offload_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
 				what, "strip#filter#qinq_strip#extend#stripq");
-cmdline_parse_token_string_t cmd_vlan_offload_on =
+static cmdline_parse_token_string_t cmd_vlan_offload_on =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
 			      on, "on#off");
-cmdline_parse_token_string_t cmd_vlan_offload_portid =
+static cmdline_parse_token_string_t cmd_vlan_offload_portid =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
 			      port_id, NULL);
 
-cmdline_parse_inst_t cmd_vlan_offload = {
+static cmdline_parse_inst_t cmd_vlan_offload = {
 	.f = cmd_vlan_offload_parsed,
 	.data = NULL,
 	.help_str = "vlan set strip|filter|qinq_strip|extend|stripq on|off "
@@ -4297,26 +4297,26 @@ cmd_vlan_tpid_parsed(void *parsed_result,
 	vlan_tpid_set(res->port_id, vlan_type, res->tp_id);
 }
 
-cmdline_parse_token_string_t cmd_vlan_tpid_vlan =
+static cmdline_parse_token_string_t cmd_vlan_tpid_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
 				 vlan, "vlan");
-cmdline_parse_token_string_t cmd_vlan_tpid_set =
+static cmdline_parse_token_string_t cmd_vlan_tpid_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
 				 set, "set");
-cmdline_parse_token_string_t cmd_vlan_type =
+static cmdline_parse_token_string_t cmd_vlan_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
 				 vlan_type, "inner#outer");
-cmdline_parse_token_string_t cmd_vlan_tpid_what =
+static cmdline_parse_token_string_t cmd_vlan_tpid_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
 				 what, "tpid");
-cmdline_parse_token_num_t cmd_vlan_tpid_tpid =
+static cmdline_parse_token_num_t cmd_vlan_tpid_tpid =
 	TOKEN_NUM_INITIALIZER(struct cmd_vlan_tpid_result,
 			      tp_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vlan_tpid_portid =
+static cmdline_parse_token_num_t cmd_vlan_tpid_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_vlan_tpid_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_vlan_tpid = {
+static cmdline_parse_inst_t cmd_vlan_tpid = {
 	.f = cmd_vlan_tpid_parsed,
 	.data = NULL,
 	.help_str = "vlan set inner|outer tpid <tp_id> <port_id>: "
@@ -4353,20 +4353,20 @@ cmd_rx_vlan_filter_parsed(void *parsed_result,
 		rx_vft_set(res->port_id, res->vlan_id, 0);
 }
 
-cmdline_parse_token_string_t cmd_rx_vlan_filter_rx_vlan =
+static cmdline_parse_token_string_t cmd_rx_vlan_filter_rx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_result,
 				 rx_vlan, "rx_vlan");
-cmdline_parse_token_string_t cmd_rx_vlan_filter_what =
+static cmdline_parse_token_string_t cmd_rx_vlan_filter_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_result,
 				 what, "add#rm");
-cmdline_parse_token_num_t cmd_rx_vlan_filter_vlanid =
+static cmdline_parse_token_num_t cmd_rx_vlan_filter_vlanid =
 	TOKEN_NUM_INITIALIZER(struct cmd_rx_vlan_filter_result,
 			      vlan_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_rx_vlan_filter_portid =
+static cmdline_parse_token_num_t cmd_rx_vlan_filter_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_rx_vlan_filter_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_rx_vlan_filter = {
+static cmdline_parse_inst_t cmd_rx_vlan_filter = {
 	.f = cmd_rx_vlan_filter_parsed,
 	.data = NULL,
 	.help_str = "rx_vlan add|rm <vlan_id> <port_id>: "
@@ -4409,20 +4409,20 @@ cmd_tx_vlan_set_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_tx_vlan_set_tx_vlan =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_tx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_result,
 				 tx_vlan, "tx_vlan");
-cmdline_parse_token_string_t cmd_tx_vlan_set_set =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_result,
 				 set, "set");
-cmdline_parse_token_num_t cmd_tx_vlan_set_portid =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tx_vlan_set_vlanid =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_vlanid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_result,
 			      vlan_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tx_vlan_set = {
+static cmdline_parse_inst_t cmd_tx_vlan_set = {
 	.f = cmd_tx_vlan_set_parsed,
 	.data = NULL,
 	.help_str = "tx_vlan set <port_id> <vlan_id>: "
@@ -4466,23 +4466,23 @@ cmd_tx_vlan_set_qinq_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_tx_vlan =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_tx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
 		tx_vlan, "tx_vlan");
-cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_set =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
 		set, "set");
-cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_portid =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
 		port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
 		vlan_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid_outer =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid_outer =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
 		vlan_id_outer, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tx_vlan_set_qinq = {
+static cmdline_parse_inst_t cmd_tx_vlan_set_qinq = {
 	.f = cmd_tx_vlan_set_qinq_parsed,
 	.data = NULL,
 	.help_str = "tx_vlan set <port_id> <vlan_id> <outer_vlan_id>: "
@@ -4521,26 +4521,26 @@ cmd_tx_vlan_set_pvid_parsed(void *parsed_result,
 		tx_vlan_pvid_set(res->port_id, res->vlan_id, 0);
 }
 
-cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_tx_vlan =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_tx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 				 tx_vlan, "tx_vlan");
-cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_set =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 				 set, "set");
-cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_pvid =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_pvid =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 				 pvid, "pvid");
-cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_port_id =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 			     port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_vlan_id =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_vlan_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 			      vlan_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_mode =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 				 mode, "on#off");
 
-cmdline_parse_inst_t cmd_tx_vlan_set_pvid = {
+static cmdline_parse_inst_t cmd_tx_vlan_set_pvid = {
 	.f = cmd_tx_vlan_set_pvid_parsed,
 	.data = NULL,
 	.help_str = "tx_vlan set pvid <port_id> <vlan_id> on|off",
@@ -4582,17 +4582,17 @@ cmd_tx_vlan_reset_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_tx_vlan_reset_tx_vlan =
+static cmdline_parse_token_string_t cmd_tx_vlan_reset_tx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_reset_result,
 				 tx_vlan, "tx_vlan");
-cmdline_parse_token_string_t cmd_tx_vlan_reset_reset =
+static cmdline_parse_token_string_t cmd_tx_vlan_reset_reset =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_reset_result,
 				 reset, "reset");
-cmdline_parse_token_num_t cmd_tx_vlan_reset_portid =
+static cmdline_parse_token_num_t cmd_tx_vlan_reset_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_reset_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tx_vlan_reset = {
+static cmdline_parse_inst_t cmd_tx_vlan_reset = {
 	.f = cmd_tx_vlan_reset_parsed,
 	.data = NULL,
 	.help_str = "tx_vlan reset <port_id>: Disable hardware insertion of a "
@@ -4794,23 +4794,23 @@ cmd_csum_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_csum_csum =
+static cmdline_parse_token_string_t cmd_csum_csum =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
 				csum, "csum");
-cmdline_parse_token_string_t cmd_csum_mode =
+static cmdline_parse_token_string_t cmd_csum_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
 				mode, "set");
-cmdline_parse_token_string_t cmd_csum_proto =
+static cmdline_parse_token_string_t cmd_csum_proto =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
 				proto, "ip#tcp#udp#sctp#outer-ip#outer-udp");
-cmdline_parse_token_string_t cmd_csum_hwsw =
+static cmdline_parse_token_string_t cmd_csum_hwsw =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
 				hwsw, "hw#sw");
-cmdline_parse_token_num_t cmd_csum_portid =
+static cmdline_parse_token_num_t cmd_csum_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_csum_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_csum_set = {
+static cmdline_parse_inst_t cmd_csum_set = {
 	.f = cmd_csum_parsed,
 	.data = NULL,
 	.help_str = "csum set ip|tcp|udp|sctp|outer-ip|outer-udp hw|sw <port_id>: "
@@ -4826,11 +4826,11 @@ cmdline_parse_inst_t cmd_csum_set = {
 	},
 };
 
-cmdline_parse_token_string_t cmd_csum_mode_show =
+static cmdline_parse_token_string_t cmd_csum_mode_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
 				mode, "show");
 
-cmdline_parse_inst_t cmd_csum_show = {
+static cmdline_parse_inst_t cmd_csum_show = {
 	.f = cmd_csum_parsed,
 	.data = NULL,
 	.help_str = "csum show <port_id>: Show checksum offload configuration",
@@ -4868,20 +4868,20 @@ cmd_csum_tunnel_parsed(void *parsed_result,
 	csum_show(res->port_id);
 }
 
-cmdline_parse_token_string_t cmd_csum_tunnel_csum =
+static cmdline_parse_token_string_t cmd_csum_tunnel_csum =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
 				csum, "csum");
-cmdline_parse_token_string_t cmd_csum_tunnel_parse =
+static cmdline_parse_token_string_t cmd_csum_tunnel_parse =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
 				parse, "parse-tunnel");
-cmdline_parse_token_string_t cmd_csum_tunnel_onoff =
+static cmdline_parse_token_string_t cmd_csum_tunnel_onoff =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
 				onoff, "on#off");
-cmdline_parse_token_num_t cmd_csum_tunnel_portid =
+static cmdline_parse_token_num_t cmd_csum_tunnel_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_csum_tunnel_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_csum_tunnel = {
+static cmdline_parse_inst_t cmd_csum_tunnel = {
 	.f = cmd_csum_tunnel_parsed,
 	.data = NULL,
 	.help_str = "csum parse-tunnel on|off <port_id>: "
@@ -4960,20 +4960,20 @@ cmd_tso_set_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_tso_set_tso =
+static cmdline_parse_token_string_t cmd_tso_set_tso =
 	TOKEN_STRING_INITIALIZER(struct cmd_tso_set_result,
 				tso, "tso");
-cmdline_parse_token_string_t cmd_tso_set_mode =
+static cmdline_parse_token_string_t cmd_tso_set_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_tso_set_result,
 				mode, "set");
-cmdline_parse_token_num_t cmd_tso_set_tso_segsz =
+static cmdline_parse_token_num_t cmd_tso_set_tso_segsz =
 	TOKEN_NUM_INITIALIZER(struct cmd_tso_set_result,
 				tso_segsz, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tso_set_portid =
+static cmdline_parse_token_num_t cmd_tso_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tso_set_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tso_set = {
+static cmdline_parse_inst_t cmd_tso_set = {
 	.f = cmd_tso_set_parsed,
 	.data = NULL,
 	.help_str = "tso set <tso_segsz> <port_id>: "
@@ -4988,12 +4988,12 @@ cmdline_parse_inst_t cmd_tso_set = {
 	},
 };
 
-cmdline_parse_token_string_t cmd_tso_show_mode =
+static cmdline_parse_token_string_t cmd_tso_show_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_tso_set_result,
 				mode, "show");
 
 
-cmdline_parse_inst_t cmd_tso_show = {
+static cmdline_parse_inst_t cmd_tso_show = {
 	.f = cmd_tso_set_parsed,
 	.data = NULL,
 	.help_str = "tso show <port_id>: "
@@ -5115,20 +5115,20 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_tunnel_tso_set_tso =
+static cmdline_parse_token_string_t cmd_tunnel_tso_set_tso =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_tso_set_result,
 				tso, "tunnel_tso");
-cmdline_parse_token_string_t cmd_tunnel_tso_set_mode =
+static cmdline_parse_token_string_t cmd_tunnel_tso_set_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_tso_set_result,
 				mode, "set");
-cmdline_parse_token_num_t cmd_tunnel_tso_set_tso_segsz =
+static cmdline_parse_token_num_t cmd_tunnel_tso_set_tso_segsz =
 	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_tso_set_result,
 				tso_segsz, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tunnel_tso_set_portid =
+static cmdline_parse_token_num_t cmd_tunnel_tso_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_tso_set_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tunnel_tso_set = {
+static cmdline_parse_inst_t cmd_tunnel_tso_set = {
 	.f = cmd_tunnel_tso_set_parsed,
 	.data = NULL,
 	.help_str = "tunnel_tso set <tso_segsz> <port_id>: "
@@ -5143,12 +5143,12 @@ cmdline_parse_inst_t cmd_tunnel_tso_set = {
 	},
 };
 
-cmdline_parse_token_string_t cmd_tunnel_tso_show_mode =
+static cmdline_parse_token_string_t cmd_tunnel_tso_show_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_tso_set_result,
 				mode, "show");
 
 
-cmdline_parse_inst_t cmd_tunnel_tso_show = {
+static cmdline_parse_inst_t cmd_tunnel_tso_show = {
 	.f = cmd_tunnel_tso_set_parsed,
 	.data = NULL,
 	.help_str = "tunnel_tso show <port_id> "
@@ -5183,23 +5183,23 @@ cmd_gro_enable_parsed(void *parsed_result,
 		setup_gro(res->cmd_onoff, res->cmd_pid);
 }
 
-cmdline_parse_token_string_t cmd_gro_enable_set =
+static cmdline_parse_token_string_t cmd_gro_enable_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
 			cmd_set, "set");
-cmdline_parse_token_string_t cmd_gro_enable_port =
+static cmdline_parse_token_string_t cmd_gro_enable_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
 			cmd_keyword, "port");
-cmdline_parse_token_num_t cmd_gro_enable_pid =
+static cmdline_parse_token_num_t cmd_gro_enable_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_gro_enable_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_gro_enable_keyword =
+static cmdline_parse_token_string_t cmd_gro_enable_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
 			cmd_keyword, "gro");
-cmdline_parse_token_string_t cmd_gro_enable_onoff =
+static cmdline_parse_token_string_t cmd_gro_enable_onoff =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
 			cmd_onoff, "on#off");
 
-cmdline_parse_inst_t cmd_gro_enable = {
+static cmdline_parse_inst_t cmd_gro_enable = {
 	.f = cmd_gro_enable_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> gro on|off",
@@ -5233,20 +5233,20 @@ cmd_gro_show_parsed(void *parsed_result,
 		show_gro(res->cmd_pid);
 }
 
-cmdline_parse_token_string_t cmd_gro_show_show =
+static cmdline_parse_token_string_t cmd_gro_show_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_show_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_gro_show_port =
+static cmdline_parse_token_string_t cmd_gro_show_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_show_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_gro_show_pid =
+static cmdline_parse_token_num_t cmd_gro_show_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_gro_show_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_gro_show_keyword =
+static cmdline_parse_token_string_t cmd_gro_show_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_show_result,
 			cmd_keyword, "gro");
 
-cmdline_parse_inst_t cmd_gro_show = {
+static cmdline_parse_inst_t cmd_gro_show = {
 	.f = cmd_gro_show_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> gro",
@@ -5280,20 +5280,20 @@ cmd_gro_flush_parsed(void *parsed_result,
 		setup_gro_flush_cycles(res->cmd_cycles);
 }
 
-cmdline_parse_token_string_t cmd_gro_flush_set =
+static cmdline_parse_token_string_t cmd_gro_flush_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_flush_result,
 			cmd_set, "set");
-cmdline_parse_token_string_t cmd_gro_flush_keyword =
+static cmdline_parse_token_string_t cmd_gro_flush_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_flush_result,
 			cmd_keyword, "gro");
-cmdline_parse_token_string_t cmd_gro_flush_flush =
+static cmdline_parse_token_string_t cmd_gro_flush_flush =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_flush_result,
 			cmd_flush, "flush");
-cmdline_parse_token_num_t cmd_gro_flush_cycles =
+static cmdline_parse_token_num_t cmd_gro_flush_cycles =
 	TOKEN_NUM_INITIALIZER(struct cmd_gro_flush_result,
 			cmd_cycles, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_gro_flush = {
+static cmdline_parse_inst_t cmd_gro_flush = {
 	.f = cmd_gro_flush_parsed,
 	.data = NULL,
 	.help_str = "set gro flush <cycles>",
@@ -5329,23 +5329,23 @@ cmd_gso_enable_parsed(void *parsed_result,
 		setup_gso(res->cmd_mode, res->cmd_pid);
 }
 
-cmdline_parse_token_string_t cmd_gso_enable_set =
+static cmdline_parse_token_string_t cmd_gso_enable_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
 			cmd_set, "set");
-cmdline_parse_token_string_t cmd_gso_enable_port =
+static cmdline_parse_token_string_t cmd_gso_enable_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
 			cmd_port, "port");
-cmdline_parse_token_string_t cmd_gso_enable_keyword =
+static cmdline_parse_token_string_t cmd_gso_enable_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
 			cmd_keyword, "gso");
-cmdline_parse_token_string_t cmd_gso_enable_mode =
+static cmdline_parse_token_string_t cmd_gso_enable_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
 			cmd_mode, "on#off");
-cmdline_parse_token_num_t cmd_gso_enable_pid =
+static cmdline_parse_token_num_t cmd_gso_enable_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_gso_enable_result,
 			cmd_pid, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_gso_enable = {
+static cmdline_parse_inst_t cmd_gso_enable = {
 	.f = cmd_gso_enable_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> gso on|off",
@@ -5391,20 +5391,20 @@ cmd_gso_size_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_gso_size_set =
+static cmdline_parse_token_string_t cmd_gso_size_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_size_result,
 				cmd_set, "set");
-cmdline_parse_token_string_t cmd_gso_size_keyword =
+static cmdline_parse_token_string_t cmd_gso_size_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_size_result,
 				cmd_keyword, "gso");
-cmdline_parse_token_string_t cmd_gso_size_segsz =
+static cmdline_parse_token_string_t cmd_gso_size_segsz =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_size_result,
 				cmd_segsz, "segsz");
-cmdline_parse_token_num_t cmd_gso_size_size =
+static cmdline_parse_token_num_t cmd_gso_size_size =
 	TOKEN_NUM_INITIALIZER(struct cmd_gso_size_result,
 				cmd_size, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_gso_size = {
+static cmdline_parse_inst_t cmd_gso_size = {
 	.f = cmd_gso_size_parsed,
 	.data = NULL,
 	.help_str = "set gso segsz <length>",
@@ -5449,20 +5449,20 @@ cmd_gso_show_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_gso_show_show =
+static cmdline_parse_token_string_t cmd_gso_show_show =
 TOKEN_STRING_INITIALIZER(struct cmd_gso_show_result,
 		cmd_show, "show");
-cmdline_parse_token_string_t cmd_gso_show_port =
+static cmdline_parse_token_string_t cmd_gso_show_port =
 TOKEN_STRING_INITIALIZER(struct cmd_gso_show_result,
 		cmd_port, "port");
-cmdline_parse_token_string_t cmd_gso_show_keyword =
+static cmdline_parse_token_string_t cmd_gso_show_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_show_result,
 				cmd_keyword, "gso");
-cmdline_parse_token_num_t cmd_gso_show_pid =
+static cmdline_parse_token_num_t cmd_gso_show_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_gso_show_result,
 				cmd_pid, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_gso_show = {
+static cmdline_parse_inst_t cmd_gso_show = {
 	.f = cmd_gso_show_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> gso",
@@ -5498,18 +5498,18 @@ cmd_set_flush_rx_parsed(void *parsed_result,
 	no_flush_rx = (uint8_t)((strcmp(res->mode, "on") == 0) ? 0 : 1);
 }
 
-cmdline_parse_token_string_t cmd_setflushrx_set =
+static cmdline_parse_token_string_t cmd_setflushrx_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_flush_rx,
 			set, "set");
-cmdline_parse_token_string_t cmd_setflushrx_flush_rx =
+static cmdline_parse_token_string_t cmd_setflushrx_flush_rx =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_flush_rx,
 			flush_rx, "flush_rx");
-cmdline_parse_token_string_t cmd_setflushrx_mode =
+static cmdline_parse_token_string_t cmd_setflushrx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_flush_rx,
 			mode, "on#off");
 
 
-cmdline_parse_inst_t cmd_set_flush_rx = {
+static cmdline_parse_inst_t cmd_set_flush_rx = {
 	.f = cmd_set_flush_rx_parsed,
 	.help_str = "set flush_rx on|off: Enable/Disable flush on rx streams",
 	.data = NULL,
@@ -5537,18 +5537,18 @@ cmd_set_link_check_parsed(void *parsed_result,
 	no_link_check = (uint8_t)((strcmp(res->mode, "on") == 0) ? 0 : 1);
 }
 
-cmdline_parse_token_string_t cmd_setlinkcheck_set =
+static cmdline_parse_token_string_t cmd_setlinkcheck_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_check,
 			set, "set");
-cmdline_parse_token_string_t cmd_setlinkcheck_link_check =
+static cmdline_parse_token_string_t cmd_setlinkcheck_link_check =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_check,
 			link_check, "link_check");
-cmdline_parse_token_string_t cmd_setlinkcheck_mode =
+static cmdline_parse_token_string_t cmd_setlinkcheck_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_check,
 			mode, "on#off");
 
 
-cmdline_parse_inst_t cmd_set_link_check = {
+static cmdline_parse_inst_t cmd_set_link_check = {
 	.f = cmd_set_link_check_parsed,
 	.help_str = "set link_check on|off: Enable/Disable link status check "
 	            "when starting/stopping a port",
@@ -5597,23 +5597,23 @@ cmd_set_bypass_mode_parsed(void *parsed_result,
 			port_id);
 }
 
-cmdline_parse_token_string_t cmd_setbypass_mode_set =
+static cmdline_parse_token_string_t cmd_setbypass_mode_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
 			set, "set");
-cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
+static cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
 			bypass, "bypass");
-cmdline_parse_token_string_t cmd_setbypass_mode_mode =
+static cmdline_parse_token_string_t cmd_setbypass_mode_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
 			mode, "mode");
-cmdline_parse_token_string_t cmd_setbypass_mode_value =
+static cmdline_parse_token_string_t cmd_setbypass_mode_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
 			value, "normal#bypass#isolate");
-cmdline_parse_token_num_t cmd_setbypass_mode_port =
+static cmdline_parse_token_num_t cmd_setbypass_mode_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_mode_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_set_bypass_mode = {
+static cmdline_parse_inst_t cmd_set_bypass_mode = {
 	.f = cmd_set_bypass_mode_parsed,
 	.help_str = "set bypass mode normal|bypass|isolate <port_id>: "
 	            "Set the NIC bypass mode for port_id",
@@ -5697,29 +5697,29 @@ cmd_set_bypass_event_parsed(void *parsed_result,
 			port_id);
 }
 
-cmdline_parse_token_string_t cmd_setbypass_event_set =
+static cmdline_parse_token_string_t cmd_setbypass_event_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			set, "set");
-cmdline_parse_token_string_t cmd_setbypass_event_bypass =
+static cmdline_parse_token_string_t cmd_setbypass_event_bypass =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			bypass, "bypass");
-cmdline_parse_token_string_t cmd_setbypass_event_event =
+static cmdline_parse_token_string_t cmd_setbypass_event_event =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			event, "event");
-cmdline_parse_token_string_t cmd_setbypass_event_event_value =
+static cmdline_parse_token_string_t cmd_setbypass_event_event_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			event_value, "none#timeout#os_off#os_on#power_on#power_off");
-cmdline_parse_token_string_t cmd_setbypass_event_mode =
+static cmdline_parse_token_string_t cmd_setbypass_event_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			mode, "mode");
-cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
+static cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			mode_value, "normal#bypass#isolate");
-cmdline_parse_token_num_t cmd_setbypass_event_port =
+static cmdline_parse_token_num_t cmd_setbypass_event_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_event_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_set_bypass_event = {
+static cmdline_parse_inst_t cmd_set_bypass_event = {
 	.f = cmd_set_bypass_event_parsed,
 	.help_str = "set bypass event none|timeout|os_on|os_off|power_on|"
 		"power_off mode normal|bypass|isolate <port_id>: "
@@ -5773,20 +5773,20 @@ cmd_set_bypass_timeout_parsed(void *parsed_result,
 #endif
 }
 
-cmdline_parse_token_string_t cmd_setbypass_timeout_set =
+static cmdline_parse_token_string_t cmd_setbypass_timeout_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
 			set, "set");
-cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
+static cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
 			bypass, "bypass");
-cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
+static cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
 			timeout, "timeout");
-cmdline_parse_token_string_t cmd_setbypass_timeout_value =
+static cmdline_parse_token_string_t cmd_setbypass_timeout_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
 			value, "0#1.5#2#3#4#8#16#32");
 
-cmdline_parse_inst_t cmd_set_bypass_timeout = {
+static cmdline_parse_inst_t cmd_set_bypass_timeout = {
 	.f = cmd_set_bypass_timeout_parsed,
 	.help_str = "set bypass timeout 0|1.5|2|3|4|8|16|32: "
 		"Set the NIC bypass watchdog timeout in seconds",
@@ -5875,20 +5875,20 @@ cmd_show_bypass_config_parsed(void *parsed_result,
 		       port_id);
 }
 
-cmdline_parse_token_string_t cmd_showbypass_config_show =
+static cmdline_parse_token_string_t cmd_showbypass_config_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
 			show, "show");
-cmdline_parse_token_string_t cmd_showbypass_config_bypass =
+static cmdline_parse_token_string_t cmd_showbypass_config_bypass =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
 			bypass, "bypass");
-cmdline_parse_token_string_t cmd_showbypass_config_config =
+static cmdline_parse_token_string_t cmd_showbypass_config_config =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
 			config, "config");
-cmdline_parse_token_num_t cmd_showbypass_config_port =
+static cmdline_parse_token_num_t cmd_showbypass_config_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_bypass_config_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_show_bypass_config = {
+static cmdline_parse_inst_t cmd_show_bypass_config = {
 	.f = cmd_show_bypass_config_parsed,
 	.help_str = "show bypass config <port_id>: "
 	            "Show the NIC bypass config for port_id",
@@ -5938,23 +5938,23 @@ static void cmd_set_bonding_mode_parsed(void *parsed_result,
 			port_id);
 }
 
-cmdline_parse_token_string_t cmd_setbonding_mode_set =
+static cmdline_parse_token_string_t cmd_setbonding_mode_set =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
 		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
+static cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_mode_mode =
+static cmdline_parse_token_string_t cmd_setbonding_mode_mode =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
 		mode, "mode");
-cmdline_parse_token_num_t cmd_setbonding_mode_value =
+static cmdline_parse_token_num_t cmd_setbonding_mode_value =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
 		value, RTE_UINT8);
-cmdline_parse_token_num_t cmd_setbonding_mode_port =
+static cmdline_parse_token_num_t cmd_setbonding_mode_port =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
 		port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_set_bonding_mode = {
+static cmdline_parse_inst_t cmd_set_bonding_mode = {
 		.f = cmd_set_bonding_mode_parsed,
 		.help_str = "set bonding mode <mode_value> <port_id>: "
 			"Set the bonding mode for port_id",
@@ -6012,26 +6012,26 @@ static void cmd_set_bonding_lacp_dedicated_queues_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		lacp, "lacp");
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		dedicated_queues, "dedicated_queues");
-cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
+static cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		mode, "enable#disable");
 
-cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
+static cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
 		.f = cmd_set_bonding_lacp_dedicated_queues_parsed,
 		.help_str = "set bonding lacp dedicated_queues <port_id> "
 			"enable|disable: "
@@ -6084,23 +6084,23 @@ static void cmd_set_bonding_balance_xmit_policy_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
 		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
 		balance_xmit_policy, "balance_xmit_policy");
-cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
+static cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
 		port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
 		policy, "l2#l23#l34");
 
-cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
+static cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
 		.f = cmd_set_bonding_balance_xmit_policy_parsed,
 		.help_str = "set bonding balance_xmit_policy <port_id> "
 			"l2|l23|l34: "
@@ -6265,23 +6265,23 @@ static void cmd_show_bonding_lacp_info_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
 		show, "show");
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
 		bonding, "lacp");
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
 		info, "info");
-cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
+static cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
 TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
 		port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
+static cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
 		.f = cmd_show_bonding_lacp_info_parsed,
 		.help_str = "show bonding lacp info <port_id> : "
 			"Show bonding IEEE802.3 information for port_id",
@@ -6419,20 +6419,20 @@ static void cmd_show_bonding_config_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_showbonding_config_show =
+static cmdline_parse_token_string_t cmd_showbonding_config_show =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
 		show, "show");
-cmdline_parse_token_string_t cmd_showbonding_config_bonding =
+static cmdline_parse_token_string_t cmd_showbonding_config_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_showbonding_config_config =
+static cmdline_parse_token_string_t cmd_showbonding_config_config =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
 		config, "config");
-cmdline_parse_token_num_t cmd_showbonding_config_port =
+static cmdline_parse_token_num_t cmd_showbonding_config_port =
 TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_config_result,
 		port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_show_bonding_config = {
+static cmdline_parse_inst_t cmd_show_bonding_config = {
 		.f = cmd_show_bonding_config_parsed,
 		.help_str = "show bonding config <port_id>: "
 			"Show the bonding config for port_id",
@@ -6472,23 +6472,23 @@ static void cmd_set_bonding_primary_parsed(void *parsed_result,
 	init_port_config();
 }
 
-cmdline_parse_token_string_t cmd_setbonding_primary_set =
+static cmdline_parse_token_string_t cmd_setbonding_primary_set =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
 		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
+static cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_primary_primary =
+static cmdline_parse_token_string_t cmd_setbonding_primary_primary =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
 		primary, "primary");
-cmdline_parse_token_num_t cmd_setbonding_primary_slave =
+static cmdline_parse_token_num_t cmd_setbonding_primary_slave =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
 		slave_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_setbonding_primary_port =
+static cmdline_parse_token_num_t cmd_setbonding_primary_port =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
 		port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_set_bonding_primary = {
+static cmdline_parse_inst_t cmd_set_bonding_primary = {
 		.f = cmd_set_bonding_primary_parsed,
 		.help_str = "set bonding primary <slave_id> <port_id>: "
 			"Set the primary slave for port_id",
@@ -6531,23 +6531,23 @@ static void cmd_add_bonding_slave_parsed(void *parsed_result,
 	set_port_slave_flag(slave_port_id);
 }
 
-cmdline_parse_token_string_t cmd_addbonding_slave_add =
+static cmdline_parse_token_string_t cmd_addbonding_slave_add =
 TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
 		add, "add");
-cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
+static cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_addbonding_slave_slave =
+static cmdline_parse_token_string_t cmd_addbonding_slave_slave =
 TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
 		slave, "slave");
-cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
+static cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
 TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
 		slave_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_addbonding_slave_port =
+static cmdline_parse_token_num_t cmd_addbonding_slave_port =
 TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
 		port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_add_bonding_slave = {
+static cmdline_parse_inst_t cmd_add_bonding_slave = {
 		.f = cmd_add_bonding_slave_parsed,
 		.help_str = "add bonding slave <slave_id> <port_id>: "
 			"Add a slave device to a bonded device",
@@ -6590,23 +6590,23 @@ static void cmd_remove_bonding_slave_parsed(void *parsed_result,
 	clear_port_slave_flag(slave_port_id);
 }
 
-cmdline_parse_token_string_t cmd_removebonding_slave_remove =
+static cmdline_parse_token_string_t cmd_removebonding_slave_remove =
 		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
 				remove, "remove");
-cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
+static cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
 		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
 				bonding, "bonding");
-cmdline_parse_token_string_t cmd_removebonding_slave_slave =
+static cmdline_parse_token_string_t cmd_removebonding_slave_slave =
 		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
 				slave, "slave");
-cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
+static cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
 		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
 				slave_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_removebonding_slave_port =
+static cmdline_parse_token_num_t cmd_removebonding_slave_port =
 		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_remove_bonding_slave = {
+static cmdline_parse_inst_t cmd_remove_bonding_slave = {
 		.f = cmd_remove_bonding_slave_parsed,
 		.help_str = "remove bonding slave <slave_id> <port_id>: "
 			"Remove a slave device from a bonded device",
@@ -6673,23 +6673,23 @@ static void cmd_create_bonded_device_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_createbonded_device_create =
+static cmdline_parse_token_string_t cmd_createbonded_device_create =
 		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
 				create, "create");
-cmdline_parse_token_string_t cmd_createbonded_device_bonded =
+static cmdline_parse_token_string_t cmd_createbonded_device_bonded =
 		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
 				bonded, "bonded");
-cmdline_parse_token_string_t cmd_createbonded_device_device =
+static cmdline_parse_token_string_t cmd_createbonded_device_device =
 		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
 				device, "device");
-cmdline_parse_token_num_t cmd_createbonded_device_mode =
+static cmdline_parse_token_num_t cmd_createbonded_device_mode =
 		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
 				mode, RTE_UINT8);
-cmdline_parse_token_num_t cmd_createbonded_device_socket =
+static cmdline_parse_token_num_t cmd_createbonded_device_socket =
 		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
 				socket, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_create_bonded_device = {
+static cmdline_parse_inst_t cmd_create_bonded_device = {
 		.f = cmd_create_bonded_device_parsed,
 		.help_str = "create bonded device <mode> <socket>: "
 			"Create a new bonded device with specific bonding mode and socket",
@@ -6731,21 +6731,21 @@ static void cmd_set_bond_mac_addr_parsed(void *parsed_result,
 			strerror(-ret));
 }
 
-cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, set, "set");
-cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, bonding,
 				"bonding");
-cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, mac_addr,
 				"mac_addr");
-cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
+static cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
 		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mac_addr_result,
 				port_num, RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
+static cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
 		TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_bond_mac_addr_result, address);
 
-cmdline_parse_inst_t cmd_set_bond_mac_addr = {
+static cmdline_parse_inst_t cmd_set_bond_mac_addr = {
 		.f = cmd_set_bond_mac_addr_parsed,
 		.data = (void *) 0,
 		.help_str = "set bonding mac_addr <port_id> <mac_addr>",
@@ -6784,23 +6784,23 @@ static void cmd_set_bond_mon_period_parsed(void *parsed_result,
 			strerror(-ret));
 }
 
-cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
 				bonding, "bonding");
-cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
 				mon_period,	"mon_period");
-cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
+static cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
 		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
 				port_num, RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
+static cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
 		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
 				period_ms, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_set_bond_mon_period = {
+static cmdline_parse_inst_t cmd_set_bond_mon_period = {
 		.f = cmd_set_bond_mon_period_parsed,
 		.data = (void *) 0,
 		.help_str = "set bonding mon_period <port_id> <period_ms>",
@@ -6844,27 +6844,27 @@ cmd_set_bonding_agg_mode(void *parsed_result,
 }
 
 
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
 				bonding, "bonding");
 
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
 				agg_mode, "agg_mode");
 
-cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
+static cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
 				port_num, RTE_UINT16);
 
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
 	TOKEN_STRING_INITIALIZER(
 			struct cmd_set_bonding_balance_xmit_policy_result,
 		policy, "stable#bandwidth#count");
 
-cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
+static cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
 	.f = cmd_set_bonding_agg_mode,
 	.data = (void *) 0,
 	.help_str = "set bonding mode IEEE802.3AD aggregator policy <port_id> <agg_name>",
@@ -6898,15 +6898,15 @@ static void cmd_set_fwd_mode_parsed(void *parsed_result,
 	set_pkt_forwarding_mode(res->mode);
 }
 
-cmdline_parse_token_string_t cmd_setfwd_set =
+static cmdline_parse_token_string_t cmd_setfwd_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_mode_result, set, "set");
-cmdline_parse_token_string_t cmd_setfwd_fwd =
+static cmdline_parse_token_string_t cmd_setfwd_fwd =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_mode_result, fwd, "fwd");
-cmdline_parse_token_string_t cmd_setfwd_mode =
+static cmdline_parse_token_string_t cmd_setfwd_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_mode_result, mode,
 		"" /* defined at init */);
 
-cmdline_parse_inst_t cmd_set_fwd_mode = {
+static cmdline_parse_inst_t cmd_set_fwd_mode = {
 	.f = cmd_set_fwd_mode_parsed,
 	.data = NULL,
 	.help_str = NULL, /* defined at init */
@@ -6958,21 +6958,21 @@ static void cmd_set_fwd_retry_mode_parsed(void *parsed_result,
 	set_pkt_forwarding_mode(res->mode);
 }
 
-cmdline_parse_token_string_t cmd_setfwd_retry_set =
+static cmdline_parse_token_string_t cmd_setfwd_retry_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
 			set, "set");
-cmdline_parse_token_string_t cmd_setfwd_retry_fwd =
+static cmdline_parse_token_string_t cmd_setfwd_retry_fwd =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
 			fwd, "fwd");
-cmdline_parse_token_string_t cmd_setfwd_retry_mode =
+static cmdline_parse_token_string_t cmd_setfwd_retry_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
 			mode,
 		"" /* defined at init */);
-cmdline_parse_token_string_t cmd_setfwd_retry_retry =
+static cmdline_parse_token_string_t cmd_setfwd_retry_retry =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
 			retry, "retry");
 
-cmdline_parse_inst_t cmd_set_fwd_retry_mode = {
+static cmdline_parse_inst_t cmd_set_fwd_retry_mode = {
 	.f = cmd_set_fwd_retry_mode_parsed,
 	.data = NULL,
 	.help_str = NULL, /* defined at init */
@@ -7035,25 +7035,25 @@ static void cmd_set_burst_tx_retry_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_set_burst_tx_retry_set =
+static cmdline_parse_token_string_t cmd_set_burst_tx_retry_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, set, "set");
-cmdline_parse_token_string_t cmd_set_burst_tx_retry_burst =
+static cmdline_parse_token_string_t cmd_set_burst_tx_retry_burst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, burst,
 				 "burst");
-cmdline_parse_token_string_t cmd_set_burst_tx_retry_tx =
+static cmdline_parse_token_string_t cmd_set_burst_tx_retry_tx =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, tx, "tx");
-cmdline_parse_token_string_t cmd_set_burst_tx_retry_delay =
+static cmdline_parse_token_string_t cmd_set_burst_tx_retry_delay =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, delay, "delay");
-cmdline_parse_token_num_t cmd_set_burst_tx_retry_time =
+static cmdline_parse_token_num_t cmd_set_burst_tx_retry_time =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_burst_tx_retry_result, time,
 				 RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_burst_tx_retry_retry =
+static cmdline_parse_token_string_t cmd_set_burst_tx_retry_retry =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, retry, "retry");
-cmdline_parse_token_num_t cmd_set_burst_tx_retry_retry_num =
+static cmdline_parse_token_num_t cmd_set_burst_tx_retry_retry_num =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_burst_tx_retry_result, retry_num,
 				 RTE_UINT32);
 
-cmdline_parse_inst_t cmd_set_burst_tx_retry = {
+static cmdline_parse_inst_t cmd_set_burst_tx_retry = {
 	.f = cmd_set_burst_tx_retry_parsed,
 	.help_str = "set burst tx delay <delay_usec> retry <num_retry>",
 	.tokens = {
@@ -7099,22 +7099,22 @@ static void cmd_set_promisc_mode_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_setpromisc_set =
+static cmdline_parse_token_string_t cmd_setpromisc_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result, set, "set");
-cmdline_parse_token_string_t cmd_setpromisc_promisc =
+static cmdline_parse_token_string_t cmd_setpromisc_promisc =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result, promisc,
 				 "promisc");
-cmdline_parse_token_string_t cmd_setpromisc_portall =
+static cmdline_parse_token_string_t cmd_setpromisc_portall =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result, port_all,
 				 "all");
-cmdline_parse_token_num_t cmd_setpromisc_portnum =
+static cmdline_parse_token_num_t cmd_setpromisc_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_promisc_mode_result, port_num,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_setpromisc_mode =
+static cmdline_parse_token_string_t cmd_setpromisc_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result, mode,
 				 "on#off");
 
-cmdline_parse_inst_t cmd_set_promisc_mode_all = {
+static cmdline_parse_inst_t cmd_set_promisc_mode_all = {
 	.f = cmd_set_promisc_mode_parsed,
 	.data = (void *)1,
 	.help_str = "set promisc all on|off: Set promisc mode for all ports",
@@ -7127,7 +7127,7 @@ cmdline_parse_inst_t cmd_set_promisc_mode_all = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_promisc_mode_one = {
+static cmdline_parse_inst_t cmd_set_promisc_mode_one = {
 	.f = cmd_set_promisc_mode_parsed,
 	.data = (void *)0,
 	.help_str = "set promisc <port_id> on|off: Set promisc mode on port_id",
@@ -7173,22 +7173,22 @@ static void cmd_set_allmulti_mode_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_setallmulti_set =
+static cmdline_parse_token_string_t cmd_setallmulti_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result, set, "set");
-cmdline_parse_token_string_t cmd_setallmulti_allmulti =
+static cmdline_parse_token_string_t cmd_setallmulti_allmulti =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result, allmulti,
 				 "allmulti");
-cmdline_parse_token_string_t cmd_setallmulti_portall =
+static cmdline_parse_token_string_t cmd_setallmulti_portall =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result, port_all,
 				 "all");
-cmdline_parse_token_num_t cmd_setallmulti_portnum =
+static cmdline_parse_token_num_t cmd_setallmulti_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_allmulti_mode_result, port_num,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_setallmulti_mode =
+static cmdline_parse_token_string_t cmd_setallmulti_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result, mode,
 				 "on#off");
 
-cmdline_parse_inst_t cmd_set_allmulti_mode_all = {
+static cmdline_parse_inst_t cmd_set_allmulti_mode_all = {
 	.f = cmd_set_allmulti_mode_parsed,
 	.data = (void *)1,
 	.help_str = "set allmulti all on|off: Set allmulti mode for all ports",
@@ -7201,7 +7201,7 @@ cmdline_parse_inst_t cmd_set_allmulti_mode_all = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_allmulti_mode_one = {
+static cmdline_parse_inst_t cmd_set_allmulti_mode_one = {
 	.f = cmd_set_allmulti_mode_parsed,
 	.data = (void *)0,
 	.help_str = "set allmulti <port_id> on|off: "
@@ -7223,16 +7223,16 @@ struct cmd_link_flow_ctrl_show {
 	cmdline_fixed_string_t flow_ctrl;
 };
 
-cmdline_parse_token_string_t cmd_lfc_show_show =
+static cmdline_parse_token_string_t cmd_lfc_show_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_show,
 				show, "show");
-cmdline_parse_token_string_t cmd_lfc_show_port =
+static cmdline_parse_token_string_t cmd_lfc_show_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_show,
 				port, "port");
-cmdline_parse_token_num_t cmd_lfc_show_portid =
+static cmdline_parse_token_num_t cmd_lfc_show_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_show,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_lfc_show_flow_ctrl =
+static cmdline_parse_token_string_t cmd_lfc_show_flow_ctrl =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_show,
 				flow_ctrl, "flow_ctrl");
 
@@ -7277,7 +7277,7 @@ cmd_link_flow_ctrl_show_parsed(void *parsed_result,
 		info_border, info_border);
 }
 
-cmdline_parse_inst_t cmd_link_flow_control_show = {
+static cmdline_parse_inst_t cmd_link_flow_control_show = {
 	.f = cmd_link_flow_ctrl_show_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> flow_ctrl",
@@ -7313,61 +7313,61 @@ struct cmd_link_flow_ctrl_set_result {
 	portid_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_lfc_set_set =
+static cmdline_parse_token_string_t cmd_lfc_set_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_lfc_set_flow_ctrl =
+static cmdline_parse_token_string_t cmd_lfc_set_flow_ctrl =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				flow_ctrl, "flow_ctrl");
-cmdline_parse_token_string_t cmd_lfc_set_rx =
+static cmdline_parse_token_string_t cmd_lfc_set_rx =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				rx, "rx");
-cmdline_parse_token_string_t cmd_lfc_set_rx_mode =
+static cmdline_parse_token_string_t cmd_lfc_set_rx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				rx_lfc_mode, "on#off");
-cmdline_parse_token_string_t cmd_lfc_set_tx =
+static cmdline_parse_token_string_t cmd_lfc_set_tx =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				tx, "tx");
-cmdline_parse_token_string_t cmd_lfc_set_tx_mode =
+static cmdline_parse_token_string_t cmd_lfc_set_tx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				tx_lfc_mode, "on#off");
-cmdline_parse_token_string_t cmd_lfc_set_high_water_str =
+static cmdline_parse_token_string_t cmd_lfc_set_high_water_str =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				hw_str, "high_water");
-cmdline_parse_token_num_t cmd_lfc_set_high_water =
+static cmdline_parse_token_num_t cmd_lfc_set_high_water =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				high_water, RTE_UINT32);
-cmdline_parse_token_string_t cmd_lfc_set_low_water_str =
+static cmdline_parse_token_string_t cmd_lfc_set_low_water_str =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				lw_str, "low_water");
-cmdline_parse_token_num_t cmd_lfc_set_low_water =
+static cmdline_parse_token_num_t cmd_lfc_set_low_water =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				low_water, RTE_UINT32);
-cmdline_parse_token_string_t cmd_lfc_set_pause_time_str =
+static cmdline_parse_token_string_t cmd_lfc_set_pause_time_str =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				pt_str, "pause_time");
-cmdline_parse_token_num_t cmd_lfc_set_pause_time =
+static cmdline_parse_token_num_t cmd_lfc_set_pause_time =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				pause_time, RTE_UINT16);
-cmdline_parse_token_string_t cmd_lfc_set_send_xon_str =
+static cmdline_parse_token_string_t cmd_lfc_set_send_xon_str =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				xon_str, "send_xon");
-cmdline_parse_token_num_t cmd_lfc_set_send_xon =
+static cmdline_parse_token_num_t cmd_lfc_set_send_xon =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				send_xon, RTE_UINT16);
-cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd_mode =
+static cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				mac_ctrl_frame_fwd, "mac_ctrl_frame_fwd");
-cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd =
+static cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				mac_ctrl_frame_fwd_mode, "on#off");
-cmdline_parse_token_string_t cmd_lfc_set_autoneg_str =
+static cmdline_parse_token_string_t cmd_lfc_set_autoneg_str =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				autoneg_str, "autoneg");
-cmdline_parse_token_string_t cmd_lfc_set_autoneg =
+static cmdline_parse_token_string_t cmd_lfc_set_autoneg =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				autoneg, "on#off");
-cmdline_parse_token_num_t cmd_lfc_set_portid =
+static cmdline_parse_token_num_t cmd_lfc_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				port_id, RTE_UINT16);
 
@@ -7376,7 +7376,7 @@ static void
 cmd_link_flow_ctrl_set_parsed(void *parsed_result, struct cmdline *cl,
 			      void *data);
 
-cmdline_parse_inst_t cmd_link_flow_control_set = {
+static cmdline_parse_inst_t cmd_link_flow_control_set = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = NULL,
 	.help_str = "set flow_ctrl rx on|off tx on|off <high_water> "
@@ -7402,7 +7402,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_rx = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_rx = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_rx,
 	.help_str = "set flow_ctrl rx on|off <port_id>: "
@@ -7417,7 +7417,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_rx = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_tx = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_tx = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_tx,
 	.help_str = "set flow_ctrl tx on|off <port_id>: "
@@ -7432,7 +7432,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_tx = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_hw = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_hw = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_hw,
 	.help_str = "set flow_ctrl high_water <value> <port_id>: "
@@ -7447,7 +7447,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_hw = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_lw = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_lw = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_lw,
 	.help_str = "set flow_ctrl low_water <value> <port_id>: "
@@ -7462,7 +7462,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_lw = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_pt = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_pt = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_pt,
 	.help_str = "set flow_ctrl pause_time <value> <port_id>: "
@@ -7477,7 +7477,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_pt = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_xon = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_xon = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_xon,
 	.help_str = "set flow_ctrl send_xon <value> <port_id>: "
@@ -7492,7 +7492,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_xon = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_macfwd = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_macfwd = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_macfwd,
 	.help_str = "set flow_ctrl mac_ctrl_frame_fwd on|off <port_id>: "
@@ -7507,7 +7507,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_macfwd = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_autoneg = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_autoneg = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_autoneg,
 	.help_str = "set flow_ctrl autoneg on|off <port_id>: "
@@ -7650,41 +7650,41 @@ cmd_priority_flow_ctrl_set_parsed(void *parsed_result,
 			ret);
 }
 
-cmdline_parse_token_string_t cmd_pfc_set_set =
+static cmdline_parse_token_string_t cmd_pfc_set_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_pfc_set_flow_ctrl =
+static cmdline_parse_token_string_t cmd_pfc_set_flow_ctrl =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				pfc_ctrl, "pfc_ctrl");
-cmdline_parse_token_string_t cmd_pfc_set_rx =
+static cmdline_parse_token_string_t cmd_pfc_set_rx =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				rx, "rx");
-cmdline_parse_token_string_t cmd_pfc_set_rx_mode =
+static cmdline_parse_token_string_t cmd_pfc_set_rx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				rx_pfc_mode, "on#off");
-cmdline_parse_token_string_t cmd_pfc_set_tx =
+static cmdline_parse_token_string_t cmd_pfc_set_tx =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				tx, "tx");
-cmdline_parse_token_string_t cmd_pfc_set_tx_mode =
+static cmdline_parse_token_string_t cmd_pfc_set_tx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				tx_pfc_mode, "on#off");
-cmdline_parse_token_num_t cmd_pfc_set_high_water =
+static cmdline_parse_token_num_t cmd_pfc_set_high_water =
 	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				high_water, RTE_UINT32);
-cmdline_parse_token_num_t cmd_pfc_set_low_water =
+static cmdline_parse_token_num_t cmd_pfc_set_low_water =
 	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				low_water, RTE_UINT32);
-cmdline_parse_token_num_t cmd_pfc_set_pause_time =
+static cmdline_parse_token_num_t cmd_pfc_set_pause_time =
 	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				pause_time, RTE_UINT16);
-cmdline_parse_token_num_t cmd_pfc_set_priority =
+static cmdline_parse_token_num_t cmd_pfc_set_priority =
 	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				priority, RTE_UINT8);
-cmdline_parse_token_num_t cmd_pfc_set_portid =
+static cmdline_parse_token_num_t cmd_pfc_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_priority_flow_control_set = {
+static cmdline_parse_inst_t cmd_priority_flow_control_set = {
 	.f = cmd_priority_flow_ctrl_set_parsed,
 	.data = NULL,
 	.help_str = "set pfc_ctrl rx on|off tx on|off <high_water> <low_water> "
@@ -7762,44 +7762,44 @@ cmd_queue_priority_flow_ctrl_set_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_q_pfc_set_set =
+static cmdline_parse_token_string_t cmd_q_pfc_set_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_q_pfc_set_flow_ctrl =
+static cmdline_parse_token_string_t cmd_q_pfc_set_flow_ctrl =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				pfc_queue_ctrl, "pfc_queue_ctrl");
-cmdline_parse_token_num_t cmd_q_pfc_set_portid =
+static cmdline_parse_token_num_t cmd_q_pfc_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_q_pfc_set_rx =
+static cmdline_parse_token_string_t cmd_q_pfc_set_rx =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				rx, "rx");
-cmdline_parse_token_string_t cmd_q_pfc_set_rx_mode =
+static cmdline_parse_token_string_t cmd_q_pfc_set_rx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				rx_pfc_mode, "on#off");
-cmdline_parse_token_num_t cmd_q_pfc_set_tx_qid =
+static cmdline_parse_token_num_t cmd_q_pfc_set_tx_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				tx_qid, RTE_UINT16);
-cmdline_parse_token_num_t cmd_q_pfc_set_tx_tc =
+static cmdline_parse_token_num_t cmd_q_pfc_set_tx_tc =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				tx_tc, RTE_UINT8);
-cmdline_parse_token_string_t cmd_q_pfc_set_tx =
+static cmdline_parse_token_string_t cmd_q_pfc_set_tx =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				tx, "tx");
-cmdline_parse_token_string_t cmd_q_pfc_set_tx_mode =
+static cmdline_parse_token_string_t cmd_q_pfc_set_tx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				tx_pfc_mode, "on#off");
-cmdline_parse_token_num_t cmd_q_pfc_set_rx_qid =
+static cmdline_parse_token_num_t cmd_q_pfc_set_rx_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				rx_qid, RTE_UINT16);
-cmdline_parse_token_num_t cmd_q_pfc_set_rx_tc =
+static cmdline_parse_token_num_t cmd_q_pfc_set_rx_tc =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				rx_tc, RTE_UINT8);
-cmdline_parse_token_num_t cmd_q_pfc_set_pause_time =
+static cmdline_parse_token_num_t cmd_q_pfc_set_pause_time =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				pause_time, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_queue_priority_flow_control_set = {
+static cmdline_parse_inst_t cmd_queue_priority_flow_control_set = {
 	.f = cmd_queue_priority_flow_ctrl_set_parsed,
 	.data = NULL,
 	.help_str = "set pfc_queue_ctrl <port_id> rx <on|off> <tx_qid> <tx_tc> "
@@ -7836,13 +7836,13 @@ static void cmd_reset_parsed(__rte_unused void *parsed_result,
 	set_def_fwd_config();
 }
 
-cmdline_parse_token_string_t cmd_reset_set =
+static cmdline_parse_token_string_t cmd_reset_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_reset_result, reset, "set");
-cmdline_parse_token_string_t cmd_reset_def =
+static cmdline_parse_token_string_t cmd_reset_def =
 	TOKEN_STRING_INITIALIZER(struct cmd_reset_result, def,
 				 "default");
 
-cmdline_parse_inst_t cmd_reset = {
+static cmdline_parse_inst_t cmd_reset = {
 	.f = cmd_reset_parsed,
 	.data = NULL,
 	.help_str = "set default: Reset default forwarding configuration",
@@ -7858,7 +7858,7 @@ struct cmd_start_result {
 	cmdline_fixed_string_t start;
 };
 
-cmdline_parse_token_string_t cmd_start_start =
+static cmdline_parse_token_string_t cmd_start_start =
 	TOKEN_STRING_INITIALIZER(struct cmd_start_result, start, "start");
 
 static void cmd_start_parsed(__rte_unused void *parsed_result,
@@ -7868,7 +7868,7 @@ static void cmd_start_parsed(__rte_unused void *parsed_result,
 	start_packet_forwarding(0);
 }
 
-cmdline_parse_inst_t cmd_start = {
+static cmdline_parse_inst_t cmd_start = {
 	.f = cmd_start_parsed,
 	.data = NULL,
 	.help_str = "start: Start packet forwarding",
@@ -7892,14 +7892,14 @@ cmd_start_tx_first_parsed(__rte_unused void *parsed_result,
 	start_packet_forwarding(1);
 }
 
-cmdline_parse_token_string_t cmd_start_tx_first_start =
+static cmdline_parse_token_string_t cmd_start_tx_first_start =
 	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_result, start,
 				 "start");
-cmdline_parse_token_string_t cmd_start_tx_first_tx_first =
+static cmdline_parse_token_string_t cmd_start_tx_first_tx_first =
 	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_result,
 				 tx_first, "tx_first");
 
-cmdline_parse_inst_t cmd_start_tx_first = {
+static cmdline_parse_inst_t cmd_start_tx_first = {
 	.f = cmd_start_tx_first_parsed,
 	.data = NULL,
 	.help_str = "start tx_first: Start packet forwarding, "
@@ -7928,17 +7928,17 @@ cmd_start_tx_first_n_parsed(void *parsed_result,
 	start_packet_forwarding(res->tx_num);
 }
 
-cmdline_parse_token_string_t cmd_start_tx_first_n_start =
+static cmdline_parse_token_string_t cmd_start_tx_first_n_start =
 	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_n_result,
 			start, "start");
-cmdline_parse_token_string_t cmd_start_tx_first_n_tx_first =
+static cmdline_parse_token_string_t cmd_start_tx_first_n_tx_first =
 	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_n_result,
 			tx_first, "tx_first");
-cmdline_parse_token_num_t cmd_start_tx_first_n_tx_num =
+static cmdline_parse_token_num_t cmd_start_tx_first_n_tx_num =
 	TOKEN_NUM_INITIALIZER(struct cmd_start_tx_first_n_result,
 			tx_num, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_start_tx_first_n = {
+static cmdline_parse_inst_t cmd_start_tx_first_n = {
 	.f = cmd_start_tx_first_n_parsed,
 	.data = NULL,
 	.help_str = "start tx_first <num>: "
@@ -7959,14 +7959,14 @@ struct cmd_set_link_up_result {
 	portid_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_set_link_up_set =
+static cmdline_parse_token_string_t cmd_set_link_up_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_up_result, set, "set");
-cmdline_parse_token_string_t cmd_set_link_up_link_up =
+static cmdline_parse_token_string_t cmd_set_link_up_link_up =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_up_result, link_up,
 				"link-up");
-cmdline_parse_token_string_t cmd_set_link_up_port =
+static cmdline_parse_token_string_t cmd_set_link_up_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_up_result, port, "port");
-cmdline_parse_token_num_t cmd_set_link_up_port_id =
+static cmdline_parse_token_num_t cmd_set_link_up_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_link_up_result, port_id,
 				RTE_UINT16);
 
@@ -7978,7 +7978,7 @@ static void cmd_set_link_up_parsed(__rte_unused void *parsed_result,
 	dev_set_link_up(res->port_id);
 }
 
-cmdline_parse_inst_t cmd_set_link_up = {
+static cmdline_parse_inst_t cmd_set_link_up = {
 	.f = cmd_set_link_up_parsed,
 	.data = NULL,
 	.help_str = "set link-up port <port id>",
@@ -7999,14 +7999,14 @@ struct cmd_set_link_down_result {
 	portid_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_set_link_down_set =
+static cmdline_parse_token_string_t cmd_set_link_down_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_down_result, set, "set");
-cmdline_parse_token_string_t cmd_set_link_down_link_down =
+static cmdline_parse_token_string_t cmd_set_link_down_link_down =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_down_result, link_down,
 				"link-down");
-cmdline_parse_token_string_t cmd_set_link_down_port =
+static cmdline_parse_token_string_t cmd_set_link_down_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_down_result, port, "port");
-cmdline_parse_token_num_t cmd_set_link_down_port_id =
+static cmdline_parse_token_num_t cmd_set_link_down_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_link_down_result, port_id,
 				RTE_UINT16);
 
@@ -8019,7 +8019,7 @@ static void cmd_set_link_down_parsed(
 	dev_set_link_down(res->port_id);
 }
 
-cmdline_parse_inst_t cmd_set_link_down = {
+static cmdline_parse_inst_t cmd_set_link_down = {
 	.f = cmd_set_link_down_parsed,
 	.data = NULL,
 	.help_str = "set link-down port <port id>",
@@ -8060,15 +8060,15 @@ static void cmd_showcfg_parsed(void *parsed_result,
 		show_tx_pkt_times();
 }
 
-cmdline_parse_token_string_t cmd_showcfg_show =
+static cmdline_parse_token_string_t cmd_showcfg_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showcfg_result, show, "show");
-cmdline_parse_token_string_t cmd_showcfg_port =
+static cmdline_parse_token_string_t cmd_showcfg_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showcfg_result, cfg, "config");
-cmdline_parse_token_string_t cmd_showcfg_what =
+static cmdline_parse_token_string_t cmd_showcfg_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showcfg_result, what,
 				 "rxtx#cores#fwd#rxoffs#rxpkts#txpkts#txtimes");
 
-cmdline_parse_inst_t cmd_showcfg = {
+static cmdline_parse_inst_t cmd_showcfg = {
 	.f = cmd_showcfg_parsed,
 	.data = NULL,
 	.help_str = "show config rxtx|cores|fwd|rxoffs|rxpkts|txpkts|txtimes",
@@ -8126,17 +8126,17 @@ static void cmd_showportall_parsed(void *parsed_result,
 			port_dcb_info_display(i);
 }
 
-cmdline_parse_token_string_t cmd_showportall_show =
+static cmdline_parse_token_string_t cmd_showportall_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, show,
 				 "show#clear");
-cmdline_parse_token_string_t cmd_showportall_port =
+static cmdline_parse_token_string_t cmd_showportall_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, port, "port");
-cmdline_parse_token_string_t cmd_showportall_what =
+static cmdline_parse_token_string_t cmd_showportall_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, what,
 				 "info#summary#stats#xstats#fdir#dcb_tc");
-cmdline_parse_token_string_t cmd_showportall_all =
+static cmdline_parse_token_string_t cmd_showportall_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, all, "all");
-cmdline_parse_inst_t cmd_showportall = {
+static cmdline_parse_inst_t cmd_showportall = {
 	.f = cmd_showportall_parsed,
 	.data = NULL,
 	.help_str = "show|clear port "
@@ -8186,18 +8186,18 @@ static void cmd_showport_parsed(void *parsed_result,
 		port_dcb_info_display(res->portnum);
 }
 
-cmdline_parse_token_string_t cmd_showport_show =
+static cmdline_parse_token_string_t cmd_showport_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_result, show,
 				 "show#clear");
-cmdline_parse_token_string_t cmd_showport_port =
+static cmdline_parse_token_string_t cmd_showport_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_result, port, "port");
-cmdline_parse_token_string_t cmd_showport_what =
+static cmdline_parse_token_string_t cmd_showport_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_result, what,
 				 "info#summary#stats#xstats#fdir#dcb_tc");
-cmdline_parse_token_num_t cmd_showport_portnum =
+static cmdline_parse_token_num_t cmd_showport_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_result, portnum, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_showport = {
+static cmdline_parse_inst_t cmd_showport = {
 	.f = cmd_showport_parsed,
 	.data = NULL,
 	.help_str = "show|clear port "
@@ -8312,23 +8312,23 @@ cmd_representor_info_parsed(void *parsed_result,
 	free(info);
 }
 
-cmdline_parse_token_string_t cmd_representor_info_show =
+static cmdline_parse_token_string_t cmd_representor_info_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_representor_info_port =
+static cmdline_parse_token_string_t cmd_representor_info_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
 			cmd_port, "port");
-cmdline_parse_token_string_t cmd_representor_info_info =
+static cmdline_parse_token_string_t cmd_representor_info_info =
 	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
 			cmd_info, "info");
-cmdline_parse_token_num_t cmd_representor_info_pid =
+static cmdline_parse_token_num_t cmd_representor_info_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_representor_info_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_representor_info_keyword =
+static cmdline_parse_token_string_t cmd_representor_info_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
 			cmd_keyword, "representor");
 
-cmdline_parse_inst_t cmd_representor_info = {
+static cmdline_parse_inst_t cmd_representor_info = {
 	.f = cmd_representor_info_parsed,
 	.data = NULL,
 	.help_str = "show port info <port_id> representor",
@@ -8364,19 +8364,19 @@ static void cmd_showdevice_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_showdevice_show =
+static cmdline_parse_token_string_t cmd_showdevice_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result, show,
 				 "show");
-cmdline_parse_token_string_t cmd_showdevice_device =
+static cmdline_parse_token_string_t cmd_showdevice_device =
 	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result, device, "device");
-cmdline_parse_token_string_t cmd_showdevice_what =
+static cmdline_parse_token_string_t cmd_showdevice_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result, what,
 				 "info");
-cmdline_parse_token_string_t cmd_showdevice_identifier =
+static cmdline_parse_token_string_t cmd_showdevice_identifier =
 	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result,
 			identifier, NULL);
 
-cmdline_parse_inst_t cmd_showdevice = {
+static cmdline_parse_inst_t cmd_showdevice = {
 	.f = cmd_showdevice_parsed,
 	.data = NULL,
 	.help_str = "show device info <identifier>|all",
@@ -8411,17 +8411,17 @@ static void cmd_showeeprom_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown argument\n");
 }
 
-cmdline_parse_token_string_t cmd_showeeprom_show =
+static cmdline_parse_token_string_t cmd_showeeprom_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showeeprom_result, show, "show");
-cmdline_parse_token_string_t cmd_showeeprom_port =
+static cmdline_parse_token_string_t cmd_showeeprom_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showeeprom_result, port, "port");
-cmdline_parse_token_num_t cmd_showeeprom_portnum =
+static cmdline_parse_token_num_t cmd_showeeprom_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_showeeprom_result, portnum,
 			RTE_UINT16);
-cmdline_parse_token_string_t cmd_showeeprom_type =
+static cmdline_parse_token_string_t cmd_showeeprom_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_showeeprom_result, type, "module_eeprom#eeprom");
 
-cmdline_parse_inst_t cmd_showeeprom = {
+static cmdline_parse_inst_t cmd_showeeprom = {
 	.f = cmd_showeeprom_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> module_eeprom|eeprom",
@@ -8456,20 +8456,20 @@ cmd_showqueue_parsed(void *parsed_result,
 		tx_queue_infos_display(res->portnum, res->queuenum);
 }
 
-cmdline_parse_token_string_t cmd_showqueue_show =
+static cmdline_parse_token_string_t cmd_showqueue_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showqueue_result, show, "show");
-cmdline_parse_token_string_t cmd_showqueue_type =
+static cmdline_parse_token_string_t cmd_showqueue_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_showqueue_result, type, "rxq#txq");
-cmdline_parse_token_string_t cmd_showqueue_what =
+static cmdline_parse_token_string_t cmd_showqueue_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showqueue_result, what, "info");
-cmdline_parse_token_num_t cmd_showqueue_portnum =
+static cmdline_parse_token_num_t cmd_showqueue_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_showqueue_result, portnum,
 		RTE_UINT16);
-cmdline_parse_token_num_t cmd_showqueue_queuenum =
+static cmdline_parse_token_num_t cmd_showqueue_queuenum =
 	TOKEN_NUM_INITIALIZER(struct cmd_showqueue_result, queuenum,
 		RTE_UINT16);
 
-cmdline_parse_inst_t cmd_showqueue = {
+static cmdline_parse_inst_t cmd_showqueue = {
 	.f = cmd_showqueue_parsed,
 	.data = NULL,
 	.help_str = "show rxq|txq info <port_id> <queue_id>",
@@ -8491,13 +8491,13 @@ struct fwd_result {
 	cmdline_fixed_string_t all;
 };
 
-cmdline_parse_token_string_t cmd_fwd_action =
+static cmdline_parse_token_string_t cmd_fwd_action =
 	TOKEN_STRING_INITIALIZER(struct fwd_result, action, "show#clear");
-cmdline_parse_token_string_t cmd_fwd_fwd =
+static cmdline_parse_token_string_t cmd_fwd_fwd =
 	TOKEN_STRING_INITIALIZER(struct fwd_result, fwd, "fwd");
-cmdline_parse_token_string_t cmd_fwd_stats =
+static cmdline_parse_token_string_t cmd_fwd_stats =
 	TOKEN_STRING_INITIALIZER(struct fwd_result, stats, "stats");
-cmdline_parse_token_string_t cmd_fwd_all =
+static cmdline_parse_token_string_t cmd_fwd_all =
 	TOKEN_STRING_INITIALIZER(struct fwd_result, all, "all");
 
 static void
@@ -8543,16 +8543,16 @@ cmd_read_reg_parsed(void *parsed_result,
 	port_reg_display(res->port_id, res->reg_off);
 }
 
-cmdline_parse_token_string_t cmd_read_reg_read =
+static cmdline_parse_token_string_t cmd_read_reg_read =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_result, read, "read");
-cmdline_parse_token_string_t cmd_read_reg_reg =
+static cmdline_parse_token_string_t cmd_read_reg_reg =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_result, reg, "reg");
-cmdline_parse_token_num_t cmd_read_reg_port_id =
+static cmdline_parse_token_num_t cmd_read_reg_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_read_reg_reg_off =
+static cmdline_parse_token_num_t cmd_read_reg_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_result, reg_off, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_read_reg = {
+static cmdline_parse_inst_t cmd_read_reg = {
 	.f = cmd_read_reg_parsed,
 	.data = NULL,
 	.help_str = "read reg <port_id> <reg_off>",
@@ -8585,26 +8585,26 @@ cmd_read_reg_bit_field_parsed(void *parsed_result,
 				   res->bit1_pos, res->bit2_pos);
 }
 
-cmdline_parse_token_string_t cmd_read_reg_bit_field_read =
+static cmdline_parse_token_string_t cmd_read_reg_bit_field_read =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_field_result, read,
 				 "read");
-cmdline_parse_token_string_t cmd_read_reg_bit_field_regfield =
+static cmdline_parse_token_string_t cmd_read_reg_bit_field_regfield =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_field_result,
 				 regfield, "regfield");
-cmdline_parse_token_num_t cmd_read_reg_bit_field_port_id =
+static cmdline_parse_token_num_t cmd_read_reg_bit_field_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, port_id,
 			      RTE_UINT16);
-cmdline_parse_token_num_t cmd_read_reg_bit_field_reg_off =
+static cmdline_parse_token_num_t cmd_read_reg_bit_field_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, reg_off,
 			      RTE_UINT32);
-cmdline_parse_token_num_t cmd_read_reg_bit_field_bit1_pos =
+static cmdline_parse_token_num_t cmd_read_reg_bit_field_bit1_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, bit1_pos,
 			      RTE_UINT8);
-cmdline_parse_token_num_t cmd_read_reg_bit_field_bit2_pos =
+static cmdline_parse_token_num_t cmd_read_reg_bit_field_bit2_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, bit2_pos,
 			      RTE_UINT8);
 
-cmdline_parse_inst_t cmd_read_reg_bit_field = {
+static cmdline_parse_inst_t cmd_read_reg_bit_field = {
 	.f = cmd_read_reg_bit_field_parsed,
 	.data = NULL,
 	.help_str = "read regfield <port_id> <reg_off> <bit_x> <bit_y>: "
@@ -8638,22 +8638,22 @@ cmd_read_reg_bit_parsed(void *parsed_result,
 	port_reg_bit_display(res->port_id, res->reg_off, res->bit_pos);
 }
 
-cmdline_parse_token_string_t cmd_read_reg_bit_read =
+static cmdline_parse_token_string_t cmd_read_reg_bit_read =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_result, read, "read");
-cmdline_parse_token_string_t cmd_read_reg_bit_regbit =
+static cmdline_parse_token_string_t cmd_read_reg_bit_regbit =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_result,
 				 regbit, "regbit");
-cmdline_parse_token_num_t cmd_read_reg_bit_port_id =
+static cmdline_parse_token_num_t cmd_read_reg_bit_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_num_t cmd_read_reg_bit_reg_off =
+static cmdline_parse_token_num_t cmd_read_reg_bit_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, reg_off,
 				 RTE_UINT32);
-cmdline_parse_token_num_t cmd_read_reg_bit_bit_pos =
+static cmdline_parse_token_num_t cmd_read_reg_bit_bit_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, bit_pos,
 				 RTE_UINT8);
 
-cmdline_parse_inst_t cmd_read_reg_bit = {
+static cmdline_parse_inst_t cmd_read_reg_bit = {
 	.f = cmd_read_reg_bit_parsed,
 	.data = NULL,
 	.help_str = "read regbit <port_id> <reg_off> <bit_x>: 0 <= bit_x <= 31",
@@ -8685,18 +8685,18 @@ cmd_write_reg_parsed(void *parsed_result,
 	port_reg_set(res->port_id, res->reg_off, res->value);
 }
 
-cmdline_parse_token_string_t cmd_write_reg_write =
+static cmdline_parse_token_string_t cmd_write_reg_write =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_result, write, "write");
-cmdline_parse_token_string_t cmd_write_reg_reg =
+static cmdline_parse_token_string_t cmd_write_reg_reg =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_result, reg, "reg");
-cmdline_parse_token_num_t cmd_write_reg_port_id =
+static cmdline_parse_token_num_t cmd_write_reg_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_write_reg_reg_off =
+static cmdline_parse_token_num_t cmd_write_reg_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, reg_off, RTE_UINT32);
-cmdline_parse_token_num_t cmd_write_reg_value =
+static cmdline_parse_token_num_t cmd_write_reg_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, value, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_write_reg = {
+static cmdline_parse_inst_t cmd_write_reg = {
 	.f = cmd_write_reg_parsed,
 	.data = NULL,
 	.help_str = "write reg <port_id> <reg_off> <reg_value>",
@@ -8731,29 +8731,29 @@ cmd_write_reg_bit_field_parsed(void *parsed_result,
 			  res->bit1_pos, res->bit2_pos, res->value);
 }
 
-cmdline_parse_token_string_t cmd_write_reg_bit_field_write =
+static cmdline_parse_token_string_t cmd_write_reg_bit_field_write =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_field_result, write,
 				 "write");
-cmdline_parse_token_string_t cmd_write_reg_bit_field_regfield =
+static cmdline_parse_token_string_t cmd_write_reg_bit_field_regfield =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_field_result,
 				 regfield, "regfield");
-cmdline_parse_token_num_t cmd_write_reg_bit_field_port_id =
+static cmdline_parse_token_num_t cmd_write_reg_bit_field_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, port_id,
 			      RTE_UINT16);
-cmdline_parse_token_num_t cmd_write_reg_bit_field_reg_off =
+static cmdline_parse_token_num_t cmd_write_reg_bit_field_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, reg_off,
 			      RTE_UINT32);
-cmdline_parse_token_num_t cmd_write_reg_bit_field_bit1_pos =
+static cmdline_parse_token_num_t cmd_write_reg_bit_field_bit1_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, bit1_pos,
 			      RTE_UINT8);
-cmdline_parse_token_num_t cmd_write_reg_bit_field_bit2_pos =
+static cmdline_parse_token_num_t cmd_write_reg_bit_field_bit2_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, bit2_pos,
 			      RTE_UINT8);
-cmdline_parse_token_num_t cmd_write_reg_bit_field_value =
+static cmdline_parse_token_num_t cmd_write_reg_bit_field_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, value,
 			      RTE_UINT32);
 
-cmdline_parse_inst_t cmd_write_reg_bit_field = {
+static cmdline_parse_inst_t cmd_write_reg_bit_field = {
 	.f = cmd_write_reg_bit_field_parsed,
 	.data = NULL,
 	.help_str = "write regfield <port_id> <reg_off> <bit_x> <bit_y> "
@@ -8790,26 +8790,26 @@ cmd_write_reg_bit_parsed(void *parsed_result,
 	port_reg_bit_set(res->port_id, res->reg_off, res->bit_pos, res->value);
 }
 
-cmdline_parse_token_string_t cmd_write_reg_bit_write =
+static cmdline_parse_token_string_t cmd_write_reg_bit_write =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_result, write,
 				 "write");
-cmdline_parse_token_string_t cmd_write_reg_bit_regbit =
+static cmdline_parse_token_string_t cmd_write_reg_bit_regbit =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_result,
 				 regbit, "regbit");
-cmdline_parse_token_num_t cmd_write_reg_bit_port_id =
+static cmdline_parse_token_num_t cmd_write_reg_bit_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_num_t cmd_write_reg_bit_reg_off =
+static cmdline_parse_token_num_t cmd_write_reg_bit_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, reg_off,
 				 RTE_UINT32);
-cmdline_parse_token_num_t cmd_write_reg_bit_bit_pos =
+static cmdline_parse_token_num_t cmd_write_reg_bit_bit_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, bit_pos,
 				 RTE_UINT8);
-cmdline_parse_token_num_t cmd_write_reg_bit_value =
+static cmdline_parse_token_num_t cmd_write_reg_bit_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, value,
 				 RTE_UINT8);
 
-cmdline_parse_inst_t cmd_write_reg_bit = {
+static cmdline_parse_inst_t cmd_write_reg_bit = {
 	.f = cmd_write_reg_bit_parsed,
 	.data = NULL,
 	.help_str = "write regbit <port_id> <reg_off> <bit_x> 0|1: "
@@ -8847,22 +8847,22 @@ cmd_read_rxd_txd_parsed(void *parsed_result,
 		tx_ring_desc_display(res->port_id, res->queue_id, res->desc_id);
 }
 
-cmdline_parse_token_string_t cmd_read_rxd_txd_read =
+static cmdline_parse_token_string_t cmd_read_rxd_txd_read =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_rxd_txd_result, read, "read");
-cmdline_parse_token_string_t cmd_read_rxd_txd_rxd_txd =
+static cmdline_parse_token_string_t cmd_read_rxd_txd_rxd_txd =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_rxd_txd_result, rxd_txd,
 				 "rxd#txd");
-cmdline_parse_token_num_t cmd_read_rxd_txd_port_id =
+static cmdline_parse_token_num_t cmd_read_rxd_txd_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_rxd_txd_result, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_num_t cmd_read_rxd_txd_queue_id =
+static cmdline_parse_token_num_t cmd_read_rxd_txd_queue_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_rxd_txd_result, queue_id,
 				 RTE_UINT16);
-cmdline_parse_token_num_t cmd_read_rxd_txd_desc_id =
+static cmdline_parse_token_num_t cmd_read_rxd_txd_desc_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_rxd_txd_result, desc_id,
 				 RTE_UINT16);
 
-cmdline_parse_inst_t cmd_read_rxd_txd = {
+static cmdline_parse_inst_t cmd_read_rxd_txd = {
 	.f = cmd_read_rxd_txd_parsed,
 	.data = NULL,
 	.help_str = "read rxd|txd <port_id> <queue_id> <desc_id>",
@@ -8888,10 +8888,10 @@ static void cmd_quit_parsed(__rte_unused void *parsed_result,
 	cmdline_quit(cl);
 }
 
-cmdline_parse_token_string_t cmd_quit_quit =
+static cmdline_parse_token_string_t cmd_quit_quit =
 	TOKEN_STRING_INITIALIZER(struct cmd_quit_result, quit, "quit");
 
-cmdline_parse_inst_t cmd_quit = {
+static cmdline_parse_inst_t cmd_quit = {
 	.f = cmd_quit_parsed,
 	.data = NULL,
 	.help_str = "quit: Exit application",
@@ -8930,19 +8930,19 @@ static void cmd_mac_addr_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_mac_addr_cmd =
+static cmdline_parse_token_string_t cmd_mac_addr_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_mac_addr_result, mac_addr_cmd,
 				"mac_addr");
-cmdline_parse_token_string_t cmd_mac_addr_what =
+static cmdline_parse_token_string_t cmd_mac_addr_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_mac_addr_result, what,
 				"add#remove#set");
-cmdline_parse_token_num_t cmd_mac_addr_portnum =
+static cmdline_parse_token_num_t cmd_mac_addr_portnum =
 		TOKEN_NUM_INITIALIZER(struct cmd_mac_addr_result, port_num,
 					RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_mac_addr_addr =
+static cmdline_parse_token_etheraddr_t cmd_mac_addr_addr =
 		TOKEN_ETHERADDR_INITIALIZER(struct cmd_mac_addr_result, address);
 
-cmdline_parse_inst_t cmd_mac_addr = {
+static cmdline_parse_inst_t cmd_mac_addr = {
 	.f = cmd_mac_addr_parsed,
 	.data = (void *)0,
 	.help_str = "mac_addr add|remove|set <port_id> <mac_addr>: "
@@ -8979,17 +8979,17 @@ static void cmd_set_eth_peer_parsed(void *parsed_result,
 			fwd_config_setup();
 		}
 }
-cmdline_parse_token_string_t cmd_eth_peer_set =
+static cmdline_parse_token_string_t cmd_eth_peer_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_eth_peer_result, set, "set");
-cmdline_parse_token_string_t cmd_eth_peer =
+static cmdline_parse_token_string_t cmd_eth_peer =
 	TOKEN_STRING_INITIALIZER(struct cmd_eth_peer_result, eth_peer, "eth-peer");
-cmdline_parse_token_num_t cmd_eth_peer_port_id =
+static cmdline_parse_token_num_t cmd_eth_peer_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_eth_peer_result, port_id,
 		RTE_UINT16);
-cmdline_parse_token_string_t cmd_eth_peer_addr =
+static cmdline_parse_token_string_t cmd_eth_peer_addr =
 	TOKEN_STRING_INITIALIZER(struct cmd_eth_peer_result, peer_addr, NULL);
 
-cmdline_parse_inst_t cmd_set_fwd_eth_peer = {
+static cmdline_parse_inst_t cmd_set_fwd_eth_peer = {
 	.f = cmd_set_eth_peer_parsed,
 	.data = NULL,
 	.help_str = "set eth-peer <port_id> <peer_mac>",
@@ -9023,26 +9023,26 @@ cmd_set_qmap_parsed(void *parsed_result,
 	set_qmap(res->port_id, (uint8_t)is_rx, res->queue_id, res->map_value);
 }
 
-cmdline_parse_token_string_t cmd_setqmap_set =
+static cmdline_parse_token_string_t cmd_setqmap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_qmap_result,
 				 set, "set");
-cmdline_parse_token_string_t cmd_setqmap_qmap =
+static cmdline_parse_token_string_t cmd_setqmap_qmap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_qmap_result,
 				 qmap, "stat_qmap");
-cmdline_parse_token_string_t cmd_setqmap_what =
+static cmdline_parse_token_string_t cmd_setqmap_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_qmap_result,
 				 what, "tx#rx");
-cmdline_parse_token_num_t cmd_setqmap_portid =
+static cmdline_parse_token_num_t cmd_setqmap_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_qmap_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_setqmap_queueid =
+static cmdline_parse_token_num_t cmd_setqmap_queueid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_qmap_result,
 			      queue_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_setqmap_mapvalue =
+static cmdline_parse_token_num_t cmd_setqmap_mapvalue =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_qmap_result,
 			      map_value, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_set_qmap = {
+static cmdline_parse_inst_t cmd_set_qmap = {
 	.f = cmd_set_qmap_parsed,
 	.data = NULL,
 	.help_str = "set stat_qmap rx|tx <port_id> <queue_id> <map_value>: "
@@ -9078,17 +9078,17 @@ cmd_set_xstats_hide_zero_parsed(void *parsed_result,
 	set_xstats_hide_zero(on_off);
 }
 
-cmdline_parse_token_string_t cmd_set_xstats_hide_zero_keyword =
+static cmdline_parse_token_string_t cmd_set_xstats_hide_zero_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_xstats_hide_zero_result,
 				 keyword, "set");
-cmdline_parse_token_string_t cmd_set_xstats_hide_zero_name =
+static cmdline_parse_token_string_t cmd_set_xstats_hide_zero_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_xstats_hide_zero_result,
 				 name, "xstats-hide-zero");
-cmdline_parse_token_string_t cmd_set_xstats_hide_zero_on_off =
+static cmdline_parse_token_string_t cmd_set_xstats_hide_zero_on_off =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_xstats_hide_zero_result,
 				 on_off, "on#off");
 
-cmdline_parse_inst_t cmd_set_xstats_hide_zero = {
+static cmdline_parse_inst_t cmd_set_xstats_hide_zero = {
 	.f = cmd_set_xstats_hide_zero_parsed,
 	.data = NULL,
 	.help_str = "set xstats-hide-zero on|off",
@@ -9120,17 +9120,17 @@ cmd_set_record_core_cycles_parsed(void *parsed_result,
 	set_record_core_cycles(on_off);
 }
 
-cmdline_parse_token_string_t cmd_set_record_core_cycles_keyword =
+static cmdline_parse_token_string_t cmd_set_record_core_cycles_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_core_cycles_result,
 				 keyword, "set");
-cmdline_parse_token_string_t cmd_set_record_core_cycles_name =
+static cmdline_parse_token_string_t cmd_set_record_core_cycles_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_core_cycles_result,
 				 name, "record-core-cycles");
-cmdline_parse_token_string_t cmd_set_record_core_cycles_on_off =
+static cmdline_parse_token_string_t cmd_set_record_core_cycles_on_off =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_core_cycles_result,
 				 on_off, "on#off");
 
-cmdline_parse_inst_t cmd_set_record_core_cycles = {
+static cmdline_parse_inst_t cmd_set_record_core_cycles = {
 	.f = cmd_set_record_core_cycles_parsed,
 	.data = NULL,
 	.help_str = "set record-core-cycles on|off",
@@ -9162,17 +9162,17 @@ cmd_set_record_burst_stats_parsed(void *parsed_result,
 	set_record_burst_stats(on_off);
 }
 
-cmdline_parse_token_string_t cmd_set_record_burst_stats_keyword =
+static cmdline_parse_token_string_t cmd_set_record_burst_stats_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_burst_stats_result,
 				 keyword, "set");
-cmdline_parse_token_string_t cmd_set_record_burst_stats_name =
+static cmdline_parse_token_string_t cmd_set_record_burst_stats_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_burst_stats_result,
 				 name, "record-burst-stats");
-cmdline_parse_token_string_t cmd_set_record_burst_stats_on_off =
+static cmdline_parse_token_string_t cmd_set_record_burst_stats_on_off =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_burst_stats_result,
 				 on_off, "on#off");
 
-cmdline_parse_inst_t cmd_set_record_burst_stats = {
+static cmdline_parse_inst_t cmd_set_record_burst_stats = {
 	.f = cmd_set_record_burst_stats_parsed,
 	.data = NULL,
 	.help_str = "set record-burst-stats on|off",
@@ -9214,26 +9214,26 @@ cmd_set_uc_hash_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_set_uc_hash_set =
+static cmdline_parse_token_string_t cmd_set_uc_hash_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
 				 set, "set");
-cmdline_parse_token_string_t cmd_set_uc_hash_port =
+static cmdline_parse_token_string_t cmd_set_uc_hash_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
 				 port, "port");
-cmdline_parse_token_num_t cmd_set_uc_hash_portid =
+static cmdline_parse_token_num_t cmd_set_uc_hash_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_uc_hash_table,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_uc_hash_what =
+static cmdline_parse_token_string_t cmd_set_uc_hash_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
 				 what, "uta");
-cmdline_parse_token_etheraddr_t cmd_set_uc_hash_mac =
+static cmdline_parse_token_etheraddr_t cmd_set_uc_hash_mac =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_uc_hash_table,
 				address);
-cmdline_parse_token_string_t cmd_set_uc_hash_mode =
+static cmdline_parse_token_string_t cmd_set_uc_hash_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
 				 mode, "on#off");
 
-cmdline_parse_inst_t cmd_set_uc_hash_filter = {
+static cmdline_parse_inst_t cmd_set_uc_hash_filter = {
 	.f = cmd_set_uc_hash_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> uta <mac_addr> on|off)",
@@ -9276,26 +9276,26 @@ cmd_set_uc_all_hash_parsed(void *parsed_result,
 			ret);
 }
 
-cmdline_parse_token_string_t cmd_set_uc_all_hash_set =
+static cmdline_parse_token_string_t cmd_set_uc_all_hash_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
 				 set, "set");
-cmdline_parse_token_string_t cmd_set_uc_all_hash_port =
+static cmdline_parse_token_string_t cmd_set_uc_all_hash_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
 				 port, "port");
-cmdline_parse_token_num_t cmd_set_uc_all_hash_portid =
+static cmdline_parse_token_num_t cmd_set_uc_all_hash_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_uc_all_hash_table,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_uc_all_hash_what =
+static cmdline_parse_token_string_t cmd_set_uc_all_hash_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
 				 what, "uta");
-cmdline_parse_token_string_t cmd_set_uc_all_hash_value =
+static cmdline_parse_token_string_t cmd_set_uc_all_hash_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
 				value,"all");
-cmdline_parse_token_string_t cmd_set_uc_all_hash_mode =
+static cmdline_parse_token_string_t cmd_set_uc_all_hash_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
 				 mode, "on#off");
 
-cmdline_parse_inst_t cmd_set_uc_all_hash_filter = {
+static cmdline_parse_inst_t cmd_set_uc_all_hash_filter = {
 	.f = cmd_set_uc_all_hash_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> uta all on|off",
@@ -9333,29 +9333,29 @@ cmd_set_vf_traffic_parsed(void *parsed_result,
 	set_vf_traffic(res->port_id, (uint8_t)is_rx, res->vf_id,(uint8_t) is_on);
 }
 
-cmdline_parse_token_string_t cmd_setvf_traffic_set =
+static cmdline_parse_token_string_t cmd_setvf_traffic_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
 				 set, "set");
-cmdline_parse_token_string_t cmd_setvf_traffic_port =
+static cmdline_parse_token_string_t cmd_setvf_traffic_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
 				 port, "port");
-cmdline_parse_token_num_t cmd_setvf_traffic_portid =
+static cmdline_parse_token_num_t cmd_setvf_traffic_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_traffic,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setvf_traffic_vf =
+static cmdline_parse_token_string_t cmd_setvf_traffic_vf =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
 				 vf, "vf");
-cmdline_parse_token_num_t cmd_setvf_traffic_vfid =
+static cmdline_parse_token_num_t cmd_setvf_traffic_vfid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_traffic,
 			      vf_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_setvf_traffic_what =
+static cmdline_parse_token_string_t cmd_setvf_traffic_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
 				 what, "tx#rx");
-cmdline_parse_token_string_t cmd_setvf_traffic_mode =
+static cmdline_parse_token_string_t cmd_setvf_traffic_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
 				 mode, "on#off");
 
-cmdline_parse_inst_t cmd_set_vf_traffic = {
+static cmdline_parse_inst_t cmd_set_vf_traffic = {
 	.f = cmd_set_vf_traffic_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> vf <vf_id> rx|tx on|off",
@@ -9423,32 +9423,32 @@ cmd_set_vf_rxmode_parsed(void *parsed_result,
 			ret);
 }
 
-cmdline_parse_token_string_t cmd_set_vf_rxmode_set =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 set, "set");
-cmdline_parse_token_string_t cmd_set_vf_rxmode_port =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 port, "port");
-cmdline_parse_token_num_t cmd_set_vf_rxmode_portid =
+static cmdline_parse_token_num_t cmd_set_vf_rxmode_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_rxmode,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vf_rxmode_vf =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_vf =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 vf, "vf");
-cmdline_parse_token_num_t cmd_set_vf_rxmode_vfid =
+static cmdline_parse_token_num_t cmd_set_vf_rxmode_vfid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_rxmode,
 			      vf_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_vf_rxmode_what =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 what, "rxmode");
-cmdline_parse_token_string_t cmd_set_vf_rxmode_mode =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 mode, "AUPE#ROPE#BAM#MPE");
-cmdline_parse_token_string_t cmd_set_vf_rxmode_on =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_on =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 on, "on#off");
 
-cmdline_parse_inst_t cmd_set_vf_rxmode = {
+static cmdline_parse_inst_t cmd_set_vf_rxmode = {
 	.f = cmd_set_vf_rxmode_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> vf <vf_id> rxmode "
@@ -9503,29 +9503,29 @@ static void cmd_vf_mac_addr_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_vf_mac_addr_cmd =
+static cmdline_parse_token_string_t cmd_vf_mac_addr_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
 				mac_addr_cmd,"mac_addr");
-cmdline_parse_token_string_t cmd_vf_mac_addr_what =
+static cmdline_parse_token_string_t cmd_vf_mac_addr_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
 				what,"add");
-cmdline_parse_token_string_t cmd_vf_mac_addr_port =
+static cmdline_parse_token_string_t cmd_vf_mac_addr_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
 				port,"port");
-cmdline_parse_token_num_t cmd_vf_mac_addr_portnum =
+static cmdline_parse_token_num_t cmd_vf_mac_addr_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_mac_addr_result,
 				port_num, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_mac_addr_vf =
+static cmdline_parse_token_string_t cmd_vf_mac_addr_vf =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
 				vf,"vf");
-cmdline_parse_token_num_t cmd_vf_mac_addr_vfnum =
+static cmdline_parse_token_num_t cmd_vf_mac_addr_vfnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_mac_addr_result,
 				vf_num, RTE_UINT8);
-cmdline_parse_token_etheraddr_t cmd_vf_mac_addr_addr =
+static cmdline_parse_token_etheraddr_t cmd_vf_mac_addr_addr =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_vf_mac_addr_result,
 				address);
 
-cmdline_parse_inst_t cmd_vf_mac_addr_filter = {
+static cmdline_parse_inst_t cmd_vf_mac_addr_filter = {
 	.f = cmd_vf_mac_addr_parsed,
 	.data = (void *)0,
 	.help_str = "mac_addr add port <port_id> vf <vf_id> <mac_addr>: "
@@ -9597,29 +9597,29 @@ cmd_vf_rx_vlan_filter_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_rx_vlan =
+static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_rx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 				 rx_vlan, "rx_vlan");
-cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_what =
+static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 				 what, "add#rm");
-cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vlanid =
+static cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vlanid =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 			      vlan_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_port =
+static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 				 port, "port");
-cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_portid =
+static cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_vf =
+static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_vf =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 				 vf, "vf");
-cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vf_mask =
+static cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vf_mask =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 			      vf_mask, RTE_UINT64);
 
-cmdline_parse_inst_t cmd_vf_rxvlan_filter = {
+static cmdline_parse_inst_t cmd_vf_rxvlan_filter = {
 	.f = cmd_vf_rx_vlan_filter_parsed,
 	.data = NULL,
 	.help_str = "rx_vlan add|rm <vlan_id> port <port_id> vf <vf_mask>: "
@@ -9665,29 +9665,29 @@ static void cmd_queue_rate_limit_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_queue_rate_limit_set =
+static cmdline_parse_token_string_t cmd_queue_rate_limit_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_queue_rate_limit_port =
+static cmdline_parse_token_string_t cmd_queue_rate_limit_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
 				port, "port");
-cmdline_parse_token_num_t cmd_queue_rate_limit_portnum =
+static cmdline_parse_token_num_t cmd_queue_rate_limit_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_rate_limit_result,
 				port_num, RTE_UINT16);
-cmdline_parse_token_string_t cmd_queue_rate_limit_queue =
+static cmdline_parse_token_string_t cmd_queue_rate_limit_queue =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
 				queue, "queue");
-cmdline_parse_token_num_t cmd_queue_rate_limit_queuenum =
+static cmdline_parse_token_num_t cmd_queue_rate_limit_queuenum =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_rate_limit_result,
 				queue_num, RTE_UINT8);
-cmdline_parse_token_string_t cmd_queue_rate_limit_rate =
+static cmdline_parse_token_string_t cmd_queue_rate_limit_rate =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
 				rate, "rate");
-cmdline_parse_token_num_t cmd_queue_rate_limit_ratenum =
+static cmdline_parse_token_num_t cmd_queue_rate_limit_ratenum =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_rate_limit_result,
 				rate_num, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_queue_rate_limit = {
+static cmdline_parse_inst_t cmd_queue_rate_limit = {
 	.f = cmd_queue_rate_limit_parsed,
 	.data = (void *)0,
 	.help_str = "set port <port_id> queue <queue_id> rate <rate_value>: "
@@ -9736,35 +9736,35 @@ static void cmd_vf_rate_limit_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_vf_rate_limit_set =
+static cmdline_parse_token_string_t cmd_vf_rate_limit_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_vf_rate_limit_port =
+static cmdline_parse_token_string_t cmd_vf_rate_limit_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
 				port, "port");
-cmdline_parse_token_num_t cmd_vf_rate_limit_portnum =
+static cmdline_parse_token_num_t cmd_vf_rate_limit_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
 				port_num, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_rate_limit_vf =
+static cmdline_parse_token_string_t cmd_vf_rate_limit_vf =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
 				vf, "vf");
-cmdline_parse_token_num_t cmd_vf_rate_limit_vfnum =
+static cmdline_parse_token_num_t cmd_vf_rate_limit_vfnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
 				vf_num, RTE_UINT8);
-cmdline_parse_token_string_t cmd_vf_rate_limit_rate =
+static cmdline_parse_token_string_t cmd_vf_rate_limit_rate =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
 				rate, "rate");
-cmdline_parse_token_num_t cmd_vf_rate_limit_ratenum =
+static cmdline_parse_token_num_t cmd_vf_rate_limit_ratenum =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
 				rate_num, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_rate_limit_q_msk =
+static cmdline_parse_token_string_t cmd_vf_rate_limit_q_msk =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
 				q_msk, "queue_mask");
-cmdline_parse_token_num_t cmd_vf_rate_limit_q_msk_val =
+static cmdline_parse_token_num_t cmd_vf_rate_limit_q_msk_val =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
 				q_msk_val, RTE_UINT64);
 
-cmdline_parse_inst_t cmd_vf_rate_limit = {
+static cmdline_parse_inst_t cmd_vf_rate_limit = {
 	.f = cmd_vf_rate_limit_parsed,
 	.data = (void *)0,
 	.help_str = "set port <port_id> vf <vf_id> rate <rate_value> "
@@ -9816,20 +9816,20 @@ cmd_tunnel_udp_config_parsed(void *parsed_result,
 			strerror(-ret));
 }
 
-cmdline_parse_token_string_t cmd_tunnel_udp_config_rx_vxlan_port =
+static cmdline_parse_token_string_t cmd_tunnel_udp_config_rx_vxlan_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_udp_config,
 				rx_vxlan_port, "rx_vxlan_port");
-cmdline_parse_token_string_t cmd_tunnel_udp_config_what =
+static cmdline_parse_token_string_t cmd_tunnel_udp_config_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_udp_config,
 				what, "add#rm");
-cmdline_parse_token_num_t cmd_tunnel_udp_config_udp_port =
+static cmdline_parse_token_num_t cmd_tunnel_udp_config_udp_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_udp_config,
 				udp_port, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tunnel_udp_config_port_id =
+static cmdline_parse_token_num_t cmd_tunnel_udp_config_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_udp_config,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tunnel_udp_config = {
+static cmdline_parse_inst_t cmd_tunnel_udp_config = {
 	.f = cmd_tunnel_udp_config_parsed,
 	.data = (void *)0,
 	.help_str = "rx_vxlan_port add|rm <udp_port> <port_id>: "
@@ -9892,30 +9892,30 @@ cmd_cfg_tunnel_udp_port_parsed(void *parsed_result,
 			strerror(-ret));
 }
 
-cmdline_parse_token_string_t cmd_config_tunnel_udp_port_port =
+static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port, port,
 				 "port");
-cmdline_parse_token_string_t cmd_config_tunnel_udp_port_config =
+static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_config =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port, config,
 				 "config");
-cmdline_parse_token_num_t cmd_config_tunnel_udp_port_port_id =
+static cmdline_parse_token_num_t cmd_config_tunnel_udp_port_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_tunnel_udp_port, port_id,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_tunnel_udp_port_tunnel_port =
+static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_tunnel_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port,
 				 udp_tunnel_port,
 				 "udp_tunnel_port");
-cmdline_parse_token_string_t cmd_config_tunnel_udp_port_action =
+static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_action =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port, action,
 				 "add#rm");
-cmdline_parse_token_string_t cmd_config_tunnel_udp_port_tunnel_type =
+static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_tunnel_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port, tunnel_type,
 				 "vxlan#geneve#vxlan-gpe#ecpri");
-cmdline_parse_token_num_t cmd_config_tunnel_udp_port_value =
+static cmdline_parse_token_num_t cmd_config_tunnel_udp_port_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_tunnel_udp_port, udp_port,
 			      RTE_UINT16);
 
-cmdline_parse_inst_t cmd_cfg_tunnel_udp_port = {
+static cmdline_parse_inst_t cmd_cfg_tunnel_udp_port = {
 	.f = cmd_cfg_tunnel_udp_port_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> udp_tunnel_port add|rm vxlan|"
@@ -10022,7 +10022,7 @@ static void cmd_dump_parsed(void *parsed_result,
 		rte_log_dump(stdout);
 }
 
-cmdline_parse_token_string_t cmd_dump_dump =
+static cmdline_parse_token_string_t cmd_dump_dump =
 	TOKEN_STRING_INITIALIZER(struct cmd_dump_result, dump,
 		"dump_physmem#"
 		"dump_memzone#"
@@ -10033,7 +10033,7 @@ cmdline_parse_token_string_t cmd_dump_dump =
 		"dump_devargs#"
 		"dump_log_types");
 
-cmdline_parse_inst_t cmd_dump = {
+static cmdline_parse_inst_t cmd_dump = {
 	.f = cmd_dump_parsed,  /* function to call */
 	.data = NULL,      /* 2nd arg of func */
 	.help_str = "Dump status",
@@ -10074,14 +10074,14 @@ static void cmd_dump_one_parsed(void *parsed_result, struct cmdline *cl,
 	}
 }
 
-cmdline_parse_token_string_t cmd_dump_one_dump =
+static cmdline_parse_token_string_t cmd_dump_one_dump =
 	TOKEN_STRING_INITIALIZER(struct cmd_dump_one_result, dump,
 				 "dump_ring#dump_mempool");
 
-cmdline_parse_token_string_t cmd_dump_one_name =
+static cmdline_parse_token_string_t cmd_dump_one_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_dump_one_result, name, NULL);
 
-cmdline_parse_inst_t cmd_dump_one = {
+static cmdline_parse_inst_t cmd_dump_one = {
 	.f = cmd_dump_one_parsed,  /* function to call */
 	.data = NULL,      /* 2nd arg of func */
 	.help_str = "dump_ring|dump_mempool <name>: Dump one ring/mempool",
@@ -10144,37 +10144,37 @@ cmd_queue_region_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_queue_region_set =
+static cmdline_parse_token_string_t cmd_queue_region_set =
 TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
 		set, "set");
-cmdline_parse_token_string_t cmd_queue_region_port =
+static cmdline_parse_token_string_t cmd_queue_region_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result, port, "port");
-cmdline_parse_token_num_t cmd_queue_region_port_id =
+static cmdline_parse_token_num_t cmd_queue_region_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_queue_region_cmd =
+static cmdline_parse_token_string_t cmd_queue_region_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
 				 cmd, "queue-region");
-cmdline_parse_token_string_t cmd_queue_region_id =
+static cmdline_parse_token_string_t cmd_queue_region_id =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
 				region, "region_id");
-cmdline_parse_token_num_t cmd_queue_region_index =
+static cmdline_parse_token_num_t cmd_queue_region_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
 				region_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
+static cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
 				queue_start_index, "queue_start_index");
-cmdline_parse_token_num_t cmd_queue_region_queue_id =
+static cmdline_parse_token_num_t cmd_queue_region_queue_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
 				queue_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_queue_region_queue_num =
+static cmdline_parse_token_string_t cmd_queue_region_queue_num =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
 				queue_num, "queue_num");
-cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
+static cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
 				queue_num_value, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_queue_region = {
+static cmdline_parse_inst_t cmd_queue_region = {
 	.f = cmd_queue_region_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> queue-region region_id <value> "
@@ -10244,31 +10244,31 @@ cmd_region_flowtype_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_region_flowtype_set =
+static cmdline_parse_token_string_t cmd_region_flowtype_set =
 TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_region_flowtype_port =
+static cmdline_parse_token_string_t cmd_region_flowtype_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
 				port, "port");
-cmdline_parse_token_num_t cmd_region_flowtype_port_index =
+static cmdline_parse_token_num_t cmd_region_flowtype_port_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_region_flowtype_cmd =
+static cmdline_parse_token_string_t cmd_region_flowtype_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
 				cmd, "queue-region");
-cmdline_parse_token_string_t cmd_region_flowtype_index =
+static cmdline_parse_token_string_t cmd_region_flowtype_index =
 	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
 				region, "region_id");
-cmdline_parse_token_num_t cmd_region_flowtype_id =
+static cmdline_parse_token_num_t cmd_region_flowtype_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
 				region_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
+static cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
 	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
 				flowtype, "flowtype");
-cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
+static cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
 				flowtype_id, RTE_UINT8);
-cmdline_parse_inst_t cmd_region_flowtype = {
+static cmdline_parse_inst_t cmd_region_flowtype = {
 	.f = cmd_region_flowtype_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> queue-region region_id <value> "
@@ -10335,32 +10335,32 @@ cmd_user_priority_region_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_user_priority_region_set =
+static cmdline_parse_token_string_t cmd_user_priority_region_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_user_priority_region_port =
+static cmdline_parse_token_string_t cmd_user_priority_region_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
 				port, "port");
-cmdline_parse_token_num_t cmd_user_priority_region_port_index =
+static cmdline_parse_token_num_t cmd_user_priority_region_port_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_user_priority_region_cmd =
+static cmdline_parse_token_string_t cmd_user_priority_region_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
 				cmd, "queue-region");
-cmdline_parse_token_string_t cmd_user_priority_region_UP =
+static cmdline_parse_token_string_t cmd_user_priority_region_UP =
 	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
 				user_priority, "UP");
-cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
+static cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
 				user_priority_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_user_priority_region_region =
+static cmdline_parse_token_string_t cmd_user_priority_region_region =
 	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
 				region, "region_id");
-cmdline_parse_token_num_t cmd_user_priority_region_region_id =
+static cmdline_parse_token_num_t cmd_user_priority_region_region_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
 				region_id, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_user_priority_region = {
+static cmdline_parse_inst_t cmd_user_priority_region = {
 	.f = cmd_user_priority_region_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> queue-region UP <value> "
@@ -10428,26 +10428,26 @@ cmd_flush_queue_region_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_flush_queue_region_set =
+static cmdline_parse_token_string_t cmd_flush_queue_region_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_flush_queue_region_port =
+static cmdline_parse_token_string_t cmd_flush_queue_region_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
 				port, "port");
-cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
+static cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_flush_queue_region_result,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
+static cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
 				cmd, "queue-region");
-cmdline_parse_token_string_t cmd_flush_queue_region_flush =
+static cmdline_parse_token_string_t cmd_flush_queue_region_flush =
 	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
 				flush, "flush");
-cmdline_parse_token_string_t cmd_flush_queue_region_what =
+static cmdline_parse_token_string_t cmd_flush_queue_region_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
 				what, "on#off");
 
-cmdline_parse_inst_t cmd_flush_queue_region = {
+static cmdline_parse_inst_t cmd_flush_queue_region = {
 	.f = cmd_flush_queue_region_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> queue-region flush on|off"
@@ -10509,20 +10509,20 @@ cmd_show_queue_region_info_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_show_queue_region_info_get =
+static cmdline_parse_token_string_t cmd_show_queue_region_info_get =
 TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
 				show, "show");
-cmdline_parse_token_string_t cmd_show_queue_region_info_port =
+static cmdline_parse_token_string_t cmd_show_queue_region_info_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
 				port, "port");
-cmdline_parse_token_num_t cmd_show_queue_region_info_port_index =
+static cmdline_parse_token_num_t cmd_show_queue_region_info_port_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_queue_region_info,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
+static cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
 				cmd, "queue-region");
 
-cmdline_parse_inst_t cmd_show_queue_region_info_all = {
+static cmdline_parse_inst_t cmd_show_queue_region_info_all = {
 	.f = cmd_show_queue_region_info_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> queue-region"
@@ -10678,51 +10678,51 @@ cmd_flow_director_filter_parsed(void *parsed_result,
 	close_file(conf.input.packet);
 }
 
-cmdline_parse_token_string_t cmd_flow_director_filter =
+static cmdline_parse_token_string_t cmd_flow_director_filter =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 flow_director_filter, "flow_director_filter");
-cmdline_parse_token_num_t cmd_flow_director_port_id =
+static cmdline_parse_token_num_t cmd_flow_director_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_ops =
+static cmdline_parse_token_string_t cmd_flow_director_ops =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 ops, "add#del#update");
-cmdline_parse_token_string_t cmd_flow_director_flow =
+static cmdline_parse_token_string_t cmd_flow_director_flow =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 flow, "flow");
-cmdline_parse_token_string_t cmd_flow_director_flow_type =
+static cmdline_parse_token_string_t cmd_flow_director_flow_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 		flow_type, NULL);
-cmdline_parse_token_string_t cmd_flow_director_drop =
+static cmdline_parse_token_string_t cmd_flow_director_drop =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 drop, "drop#fwd");
-cmdline_parse_token_string_t cmd_flow_director_queue =
+static cmdline_parse_token_string_t cmd_flow_director_queue =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 queue, "queue");
-cmdline_parse_token_num_t cmd_flow_director_queue_id =
+static cmdline_parse_token_num_t cmd_flow_director_queue_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
 			      queue_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_fd_id =
+static cmdline_parse_token_string_t cmd_flow_director_fd_id =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 fd_id, "fd_id");
-cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
+static cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
 			      fd_id_value, RTE_UINT32);
 
-cmdline_parse_token_string_t cmd_flow_director_mode =
+static cmdline_parse_token_string_t cmd_flow_director_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 mode, "mode");
-cmdline_parse_token_string_t cmd_flow_director_mode_raw =
+static cmdline_parse_token_string_t cmd_flow_director_mode_raw =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 mode_value, "raw");
-cmdline_parse_token_string_t cmd_flow_director_packet =
+static cmdline_parse_token_string_t cmd_flow_director_packet =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 packet, "packet");
-cmdline_parse_token_string_t cmd_flow_director_filepath =
+static cmdline_parse_token_string_t cmd_flow_director_filepath =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 filepath, NULL);
 
-cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
+static cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
 	.f = cmd_flow_director_filter_parsed,
 	.data = NULL,
 	.help_str = "flow_director_filter ... : Add or delete a raw flow "
@@ -10825,75 +10825,75 @@ cmd_flow_director_mask_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_flow_director_mask =
+static cmdline_parse_token_string_t cmd_flow_director_mask =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 flow_director_mask, "flow_director_mask");
-cmdline_parse_token_num_t cmd_flow_director_mask_port_id =
+static cmdline_parse_token_num_t cmd_flow_director_mask_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_mask_vlan =
+static cmdline_parse_token_string_t cmd_flow_director_mask_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 vlan, "vlan");
-cmdline_parse_token_num_t cmd_flow_director_mask_vlan_value =
+static cmdline_parse_token_num_t cmd_flow_director_mask_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      vlan_mask, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_mask_src =
+static cmdline_parse_token_string_t cmd_flow_director_mask_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 src_mask, "src_mask");
-cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_src =
+static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_src =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
 				 ipv4_src);
-cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_src =
+static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_src =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
 				 ipv6_src);
-cmdline_parse_token_num_t cmd_flow_director_mask_port_src =
+static cmdline_parse_token_num_t cmd_flow_director_mask_port_src =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      port_src, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_mask_dst =
+static cmdline_parse_token_string_t cmd_flow_director_mask_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 dst_mask, "dst_mask");
-cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_dst =
+static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_dst =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
 				 ipv4_dst);
-cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_dst =
+static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_dst =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
 				 ipv6_dst);
-cmdline_parse_token_num_t cmd_flow_director_mask_port_dst =
+static cmdline_parse_token_num_t cmd_flow_director_mask_port_dst =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      port_dst, RTE_UINT16);
 
-cmdline_parse_token_string_t cmd_flow_director_mask_mode =
+static cmdline_parse_token_string_t cmd_flow_director_mask_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 mode, "mode");
-cmdline_parse_token_string_t cmd_flow_director_mask_mode_ip =
+static cmdline_parse_token_string_t cmd_flow_director_mask_mode_ip =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 mode_value, "IP");
-cmdline_parse_token_string_t cmd_flow_director_mask_mode_mac_vlan =
+static cmdline_parse_token_string_t cmd_flow_director_mask_mode_mac_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 mode_value, "MAC-VLAN");
-cmdline_parse_token_string_t cmd_flow_director_mask_mode_tunnel =
+static cmdline_parse_token_string_t cmd_flow_director_mask_mode_tunnel =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 mode_value, "Tunnel");
-cmdline_parse_token_string_t cmd_flow_director_mask_mac =
+static cmdline_parse_token_string_t cmd_flow_director_mask_mac =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 mac, "mac");
-cmdline_parse_token_num_t cmd_flow_director_mask_mac_value =
+static cmdline_parse_token_num_t cmd_flow_director_mask_mac_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      mac_addr_byte_mask, RTE_UINT8);
-cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_type =
+static cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 tunnel_type, "tunnel-type");
-cmdline_parse_token_num_t cmd_flow_director_mask_tunnel_type_value =
+static cmdline_parse_token_num_t cmd_flow_director_mask_tunnel_type_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      tunnel_type_mask, RTE_UINT8);
-cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_id =
+static cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_id =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 tunnel_id, "tunnel-id");
-cmdline_parse_token_num_t cmd_flow_director_mask_tunnel_id_value =
+static cmdline_parse_token_num_t cmd_flow_director_mask_tunnel_id_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      tunnel_id_mask, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_set_flow_director_ip_mask = {
+static cmdline_parse_inst_t cmd_set_flow_director_ip_mask = {
 	.f = cmd_flow_director_mask_parsed,
 	.data = NULL,
 	.help_str = "flow_director_mask ... : "
@@ -10917,7 +10917,7 @@ cmdline_parse_inst_t cmd_set_flow_director_ip_mask = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_flow_director_mac_vlan_mask = {
+static cmdline_parse_inst_t cmd_set_flow_director_mac_vlan_mask = {
 	.f = cmd_flow_director_mask_parsed,
 	.data = NULL,
 	.help_str = "flow_director_mask ... : Set MAC VLAN mode "
@@ -10933,7 +10933,7 @@ cmdline_parse_inst_t cmd_set_flow_director_mac_vlan_mask = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_flow_director_tunnel_mask = {
+static cmdline_parse_inst_t cmd_set_flow_director_tunnel_mask = {
 	.f = cmd_flow_director_mask_parsed,
 	.data = NULL,
 	.help_str = "flow_director_mask ... : Set tunnel mode "
@@ -11040,21 +11040,21 @@ cmd_flow_director_flxpld_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_flow_director_flexpayload =
+static cmdline_parse_token_string_t cmd_flow_director_flexpayload =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_flexpayload_result,
 				 flow_director_flexpayload,
 				 "flow_director_flex_payload");
-cmdline_parse_token_num_t cmd_flow_director_flexpayload_port_id =
+static cmdline_parse_token_num_t cmd_flow_director_flexpayload_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_flexpayload_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_flexpayload_payload_layer =
+static cmdline_parse_token_string_t cmd_flow_director_flexpayload_payload_layer =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_flexpayload_result,
 				 payload_layer, "raw#l2#l3#l4");
-cmdline_parse_token_string_t cmd_flow_director_flexpayload_payload_cfg =
+static cmdline_parse_token_string_t cmd_flow_director_flexpayload_payload_cfg =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_flexpayload_result,
 				 payload_cfg, NULL);
 
-cmdline_parse_inst_t cmd_set_flow_director_flex_payload = {
+static cmdline_parse_inst_t cmd_set_flow_director_flex_payload = {
 	.f = cmd_flow_director_flxpld_parsed,
 	.data = NULL,
 	.help_str = "flow_director_flexpayload ... : "
@@ -11097,19 +11097,19 @@ static void cmd_mcast_addr_parsed(void *parsed_result,
 		mcast_addr_remove(res->port_num, &res->mc_addr);
 }
 
-cmdline_parse_token_string_t cmd_mcast_addr_cmd =
+static cmdline_parse_token_string_t cmd_mcast_addr_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_mcast_addr_result,
 				 mcast_addr_cmd, "mcast_addr");
-cmdline_parse_token_string_t cmd_mcast_addr_what =
+static cmdline_parse_token_string_t cmd_mcast_addr_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_mcast_addr_result, what,
 				 "add#remove");
-cmdline_parse_token_num_t cmd_mcast_addr_portnum =
+static cmdline_parse_token_num_t cmd_mcast_addr_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_mcast_addr_result, port_num,
 				 RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_mcast_addr_addr =
+static cmdline_parse_token_etheraddr_t cmd_mcast_addr_addr =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_mac_addr_result, address);
 
-cmdline_parse_inst_t cmd_mcast_addr = {
+static cmdline_parse_inst_t cmd_mcast_addr = {
 	.f = cmd_mcast_addr_parsed,
 	.data = (void *)0,
 	.help_str = "mcast_addr add|remove <port_id> <mcast_addr>: "
@@ -11137,31 +11137,31 @@ struct cmd_vf_vlan_anti_spoof_result {
 };
 
 /* Common CLI fields for vf vlan anti spoof enable disable */
-cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_set =
+static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vf =
+static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vlan =
+static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vlan =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 vlan, "vlan");
-cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_antispoof =
+static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_antispoof =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 antispoof, "antispoof");
-cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_port_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_vf_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 vf_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_on_off =
+static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 on_off, "on#off");
@@ -11213,7 +11213,7 @@ cmd_set_vf_vlan_anti_spoof_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_vlan_anti_spoof = {
+static cmdline_parse_inst_t cmd_set_vf_vlan_anti_spoof = {
 	.f = cmd_set_vf_vlan_anti_spoof_parsed,
 	.data = NULL,
 	.help_str = "set vf vlan antispoof <port_id> <vf_id> on|off",
@@ -11243,31 +11243,31 @@ struct cmd_vf_mac_anti_spoof_result {
 };
 
 /* Common CLI fields for vf mac anti spoof enable disable */
-cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_set =
+static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_vf =
+static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_mac =
+static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_mac =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 mac, "mac");
-cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_antispoof =
+static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_antispoof =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 antispoof, "antispoof");
-cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_port_id =
+static cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_vf_id =
+static cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 vf_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_on_off =
+static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 on_off, "on#off");
@@ -11320,7 +11320,7 @@ cmd_set_vf_mac_anti_spoof_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_mac_anti_spoof = {
+static cmdline_parse_inst_t cmd_set_vf_mac_anti_spoof = {
 	.f = cmd_set_vf_mac_anti_spoof_parsed,
 	.data = NULL,
 	.help_str = "set vf mac antispoof <port_id> <vf_id> on|off",
@@ -11350,31 +11350,31 @@ struct cmd_vf_vlan_stripq_result {
 };
 
 /* Common CLI fields for vf vlan strip enable disable */
-cmdline_parse_token_string_t cmd_vf_vlan_stripq_set =
+static cmdline_parse_token_string_t cmd_vf_vlan_stripq_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_vlan_stripq_vf =
+static cmdline_parse_token_string_t cmd_vf_vlan_stripq_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_vlan_stripq_vlan =
+static cmdline_parse_token_string_t cmd_vf_vlan_stripq_vlan =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 vlan, "vlan");
-cmdline_parse_token_string_t cmd_vf_vlan_stripq_stripq =
+static cmdline_parse_token_string_t cmd_vf_vlan_stripq_stripq =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 stripq, "stripq");
-cmdline_parse_token_num_t cmd_vf_vlan_stripq_port_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_stripq_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_vlan_stripq_vf_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_stripq_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_vlan_stripq_on_off =
+static cmdline_parse_token_string_t cmd_vf_vlan_stripq_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 on_off, "on#off");
@@ -11427,7 +11427,7 @@ cmd_set_vf_vlan_stripq_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_vlan_stripq = {
+static cmdline_parse_inst_t cmd_set_vf_vlan_stripq = {
 	.f = cmd_set_vf_vlan_stripq_parsed,
 	.data = NULL,
 	.help_str = "set vf vlan stripq <port_id> <vf_id> on|off",
@@ -11457,31 +11457,31 @@ struct cmd_vf_vlan_insert_result {
 };
 
 /* Common CLI fields for vf vlan insert enable disable */
-cmdline_parse_token_string_t cmd_vf_vlan_insert_set =
+static cmdline_parse_token_string_t cmd_vf_vlan_insert_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_vlan_insert_vf =
+static cmdline_parse_token_string_t cmd_vf_vlan_insert_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_vlan_insert_vlan =
+static cmdline_parse_token_string_t cmd_vf_vlan_insert_vlan =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 vlan, "vlan");
-cmdline_parse_token_string_t cmd_vf_vlan_insert_insert =
+static cmdline_parse_token_string_t cmd_vf_vlan_insert_insert =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 insert, "insert");
-cmdline_parse_token_num_t cmd_vf_vlan_insert_port_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_insert_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_vlan_insert_vf_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_insert_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_vlan_insert_vlan_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_insert_vlan_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 vlan_id, RTE_UINT16);
@@ -11532,7 +11532,7 @@ cmd_set_vf_vlan_insert_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_vlan_insert = {
+static cmdline_parse_inst_t cmd_set_vf_vlan_insert = {
 	.f = cmd_set_vf_vlan_insert_parsed,
 	.data = NULL,
 	.help_str = "set vf vlan insert <port_id> <vf_id> <vlan_id>",
@@ -11560,23 +11560,23 @@ struct cmd_tx_loopback_result {
 };
 
 /* Common CLI fields for tx loopback enable disable */
-cmdline_parse_token_string_t cmd_tx_loopback_set =
+static cmdline_parse_token_string_t cmd_tx_loopback_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_loopback_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_tx_loopback_tx =
+static cmdline_parse_token_string_t cmd_tx_loopback_tx =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_loopback_result,
 		 tx, "tx");
-cmdline_parse_token_string_t cmd_tx_loopback_loopback =
+static cmdline_parse_token_string_t cmd_tx_loopback_loopback =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_loopback_result,
 		 loopback, "loopback");
-cmdline_parse_token_num_t cmd_tx_loopback_port_id =
+static cmdline_parse_token_num_t cmd_tx_loopback_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_tx_loopback_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_tx_loopback_on_off =
+static cmdline_parse_token_string_t cmd_tx_loopback_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_loopback_result,
 		 on_off, "on#off");
@@ -11629,7 +11629,7 @@ cmd_set_tx_loopback_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_tx_loopback = {
+static cmdline_parse_inst_t cmd_set_tx_loopback = {
 	.f = cmd_set_tx_loopback_parsed,
 	.data = NULL,
 	.help_str = "set tx loopback <port_id> on|off",
@@ -11656,27 +11656,27 @@ struct cmd_all_queues_drop_en_result {
 };
 
 /* Common CLI fields for tx loopback enable disable */
-cmdline_parse_token_string_t cmd_all_queues_drop_en_set =
+static cmdline_parse_token_string_t cmd_all_queues_drop_en_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_all_queues_drop_en_all =
+static cmdline_parse_token_string_t cmd_all_queues_drop_en_all =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 all, "all");
-cmdline_parse_token_string_t cmd_all_queues_drop_en_queues =
+static cmdline_parse_token_string_t cmd_all_queues_drop_en_queues =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 queues, "queues");
-cmdline_parse_token_string_t cmd_all_queues_drop_en_drop =
+static cmdline_parse_token_string_t cmd_all_queues_drop_en_drop =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 drop, "drop");
-cmdline_parse_token_num_t cmd_all_queues_drop_en_port_id =
+static cmdline_parse_token_num_t cmd_all_queues_drop_en_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_all_queues_drop_en_on_off =
+static cmdline_parse_token_string_t cmd_all_queues_drop_en_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 on_off, "on#off");
@@ -11719,7 +11719,7 @@ cmd_set_all_queues_drop_en_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_all_queues_drop_en = {
+static cmdline_parse_inst_t cmd_set_all_queues_drop_en = {
 	.f = cmd_set_all_queues_drop_en_parsed,
 	.data = NULL,
 	.help_str = "set all queues drop <port_id> on|off",
@@ -11748,31 +11748,31 @@ struct cmd_vf_split_drop_en_result {
 };
 
 /* Common CLI fields for vf split drop enable disable */
-cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 split, "split");
-cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 drop, "drop");
-cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 on_off, "on#off");
@@ -11812,7 +11812,7 @@ cmd_set_vf_split_drop_en_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
+static cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
 	.f = cmd_set_vf_split_drop_en_parsed,
 	.data = NULL,
 	.help_str = "set vf split drop <port_id> <vf_id> on|off",
@@ -11843,31 +11843,31 @@ struct cmd_set_vf_mac_addr_result {
 };
 
 /* Common CLI fields for vf split drop enable disable */
-cmdline_parse_token_string_t cmd_set_vf_mac_addr_set =
+static cmdline_parse_token_string_t cmd_set_vf_mac_addr_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_set_vf_mac_addr_vf =
+static cmdline_parse_token_string_t cmd_set_vf_mac_addr_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_set_vf_mac_addr_mac =
+static cmdline_parse_token_string_t cmd_set_vf_mac_addr_mac =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 mac, "mac");
-cmdline_parse_token_string_t cmd_set_vf_mac_addr_addr =
+static cmdline_parse_token_string_t cmd_set_vf_mac_addr_addr =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 addr, "addr");
-cmdline_parse_token_num_t cmd_set_vf_mac_addr_port_id =
+static cmdline_parse_token_num_t cmd_set_vf_mac_addr_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_vf_mac_addr_vf_id =
+static cmdline_parse_token_num_t cmd_set_vf_mac_addr_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_set_vf_mac_addr_mac_addr =
+static cmdline_parse_token_etheraddr_t cmd_set_vf_mac_addr_mac_addr =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vf_mac_addr_result,
 		 mac_addr);
 
@@ -11916,7 +11916,7 @@ cmd_set_vf_mac_addr_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_mac_addr = {
+static cmdline_parse_inst_t cmd_set_vf_mac_addr = {
 	.f = cmd_set_vf_mac_addr_parsed,
 	.data = NULL,
 	.help_str = "set vf mac addr <port_id> <vf_id> <mac_addr>",
@@ -11948,39 +11948,39 @@ struct cmd_macsec_offload_on_result {
 };
 
 /* Common CLI fields for MACsec offload disable */
-cmdline_parse_token_string_t cmd_macsec_offload_on_set =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 offload, "offload");
-cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
+static cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_macsec_offload_on_on =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_on =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 on, "on");
-cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 encrypt, "encrypt");
-cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 en_on_off, "on#off");
-cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 replay_protect, "replay-protect");
-cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 rp_on_off, "on#off");
@@ -12034,7 +12034,7 @@ cmd_set_macsec_offload_on_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_macsec_offload_on = {
+static cmdline_parse_inst_t cmd_set_macsec_offload_on = {
 	.f = cmd_set_macsec_offload_on_parsed,
 	.data = NULL,
 	.help_str = "set macsec offload <port_id> on "
@@ -12063,23 +12063,23 @@ struct cmd_macsec_offload_off_result {
 };
 
 /* Common CLI fields for MACsec offload disable */
-cmdline_parse_token_string_t cmd_macsec_offload_off_set =
+static cmdline_parse_token_string_t cmd_macsec_offload_off_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_off_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
+static cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_off_result,
 		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
+static cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_off_result,
 		 offload, "offload");
-cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
+static cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_offload_off_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_macsec_offload_off_off =
+static cmdline_parse_token_string_t cmd_macsec_offload_off_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_off_result,
 		 off, "off");
@@ -12128,7 +12128,7 @@ cmd_set_macsec_offload_off_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_macsec_offload_off = {
+static cmdline_parse_inst_t cmd_set_macsec_offload_off = {
 	.f = cmd_set_macsec_offload_off_parsed,
 	.data = NULL,
 	.help_str = "set macsec offload <port_id> off",
@@ -12154,31 +12154,31 @@ struct cmd_macsec_sc_result {
 };
 
 /* Common CLI fields for MACsec secure connection configure */
-cmdline_parse_token_string_t cmd_macsec_sc_set =
+static cmdline_parse_token_string_t cmd_macsec_sc_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_sc_macsec =
+static cmdline_parse_token_string_t cmd_macsec_sc_macsec =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_sc_sc =
+static cmdline_parse_token_string_t cmd_macsec_sc_sc =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 sc, "sc");
-cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
+static cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 tx_rx, "tx#rx");
-cmdline_parse_token_num_t cmd_macsec_sc_port_id =
+static cmdline_parse_token_num_t cmd_macsec_sc_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
+static cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
 	TOKEN_ETHERADDR_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 mac);
-cmdline_parse_token_num_t cmd_macsec_sc_pi =
+static cmdline_parse_token_num_t cmd_macsec_sc_pi =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 pi, RTE_UINT16);
@@ -12216,7 +12216,7 @@ cmd_set_macsec_sc_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_macsec_sc = {
+static cmdline_parse_inst_t cmd_set_macsec_sc = {
 	.f = cmd_set_macsec_sc_parsed,
 	.data = NULL,
 	.help_str = "set macsec sc tx|rx <port_id> <mac> <pi>",
@@ -12246,39 +12246,39 @@ struct cmd_macsec_sa_result {
 };
 
 /* Common CLI fields for MACsec secure connection configure */
-cmdline_parse_token_string_t cmd_macsec_sa_set =
+static cmdline_parse_token_string_t cmd_macsec_sa_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_sa_macsec =
+static cmdline_parse_token_string_t cmd_macsec_sa_macsec =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_sa_sa =
+static cmdline_parse_token_string_t cmd_macsec_sa_sa =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 sa, "sa");
-cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
+static cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 tx_rx, "tx#rx");
-cmdline_parse_token_num_t cmd_macsec_sa_port_id =
+static cmdline_parse_token_num_t cmd_macsec_sa_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_macsec_sa_idx =
+static cmdline_parse_token_num_t cmd_macsec_sa_idx =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 idx, RTE_UINT8);
-cmdline_parse_token_num_t cmd_macsec_sa_an =
+static cmdline_parse_token_num_t cmd_macsec_sa_an =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 an, RTE_UINT8);
-cmdline_parse_token_num_t cmd_macsec_sa_pn =
+static cmdline_parse_token_num_t cmd_macsec_sa_pn =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 pn, RTE_UINT32);
-cmdline_parse_token_string_t cmd_macsec_sa_key =
+static cmdline_parse_token_string_t cmd_macsec_sa_key =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 key, NULL);
@@ -12339,7 +12339,7 @@ cmd_set_macsec_sa_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_macsec_sa = {
+static cmdline_parse_inst_t cmd_set_macsec_sa = {
 	.f = cmd_set_macsec_sa_parsed,
 	.data = NULL,
 	.help_str = "set macsec sa tx|rx <port_id> <idx> <an> <pn> <key>",
@@ -12370,27 +12370,27 @@ struct cmd_vf_promisc_result {
 };
 
 /* Common CLI fields for VF unicast promiscuous mode enable disable */
-cmdline_parse_token_string_t cmd_vf_promisc_set =
+static cmdline_parse_token_string_t cmd_vf_promisc_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_promisc_vf =
+static cmdline_parse_token_string_t cmd_vf_promisc_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_promisc_promisc =
+static cmdline_parse_token_string_t cmd_vf_promisc_promisc =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 promisc, "promisc");
-cmdline_parse_token_num_t cmd_vf_promisc_port_id =
+static cmdline_parse_token_num_t cmd_vf_promisc_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_promisc_vf_id =
+static cmdline_parse_token_num_t cmd_vf_promisc_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 vf_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_vf_promisc_on_off =
+static cmdline_parse_token_string_t cmd_vf_promisc_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 on_off, "on#off");
@@ -12431,7 +12431,7 @@ cmd_set_vf_promisc_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_promisc = {
+static cmdline_parse_inst_t cmd_set_vf_promisc = {
 	.f = cmd_set_vf_promisc_parsed,
 	.data = NULL,
 	.help_str = "set vf promisc <port_id> <vf_id> on|off: "
@@ -12460,27 +12460,27 @@ struct cmd_vf_allmulti_result {
 };
 
 /* Common CLI fields for VF multicast promiscuous mode enable disable */
-cmdline_parse_token_string_t cmd_vf_allmulti_set =
+static cmdline_parse_token_string_t cmd_vf_allmulti_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_allmulti_vf =
+static cmdline_parse_token_string_t cmd_vf_allmulti_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_allmulti_allmulti =
+static cmdline_parse_token_string_t cmd_vf_allmulti_allmulti =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 allmulti, "allmulti");
-cmdline_parse_token_num_t cmd_vf_allmulti_port_id =
+static cmdline_parse_token_num_t cmd_vf_allmulti_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_allmulti_vf_id =
+static cmdline_parse_token_num_t cmd_vf_allmulti_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 vf_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_vf_allmulti_on_off =
+static cmdline_parse_token_string_t cmd_vf_allmulti_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 on_off, "on#off");
@@ -12521,7 +12521,7 @@ cmd_set_vf_allmulti_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_allmulti = {
+static cmdline_parse_inst_t cmd_set_vf_allmulti = {
 	.f = cmd_set_vf_allmulti_parsed,
 	.data = NULL,
 	.help_str = "set vf allmulti <port_id> <vf_id> on|off: "
@@ -12550,27 +12550,27 @@ struct cmd_set_vf_broadcast_result {
 };
 
 /* Common CLI fields for vf broadcast enable disable */
-cmdline_parse_token_string_t cmd_set_vf_broadcast_set =
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_set_vf_broadcast_vf =
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_set_vf_broadcast_broadcast =
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_broadcast =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 broadcast, "broadcast");
-cmdline_parse_token_num_t cmd_set_vf_broadcast_port_id =
+static cmdline_parse_token_num_t cmd_set_vf_broadcast_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_vf_broadcast_vf_id =
+static cmdline_parse_token_num_t cmd_set_vf_broadcast_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vf_broadcast_on_off =
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 on_off, "on#off");
@@ -12612,7 +12612,7 @@ cmd_set_vf_broadcast_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_broadcast = {
+static cmdline_parse_inst_t cmd_set_vf_broadcast = {
 	.f = cmd_set_vf_broadcast_parsed,
 	.data = NULL,
 	.help_str = "set vf broadcast <port_id> <vf_id> on|off",
@@ -12641,31 +12641,31 @@ struct cmd_set_vf_vlan_tag_result {
 };
 
 /* Common CLI fields for vf vlan tag enable disable */
-cmdline_parse_token_string_t cmd_set_vf_vlan_tag_set =
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vf =
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vlan =
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vlan =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 vlan, "vlan");
-cmdline_parse_token_string_t cmd_set_vf_vlan_tag_tag =
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_tag =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 tag, "tag");
-cmdline_parse_token_num_t cmd_set_vf_vlan_tag_port_id =
+static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_vf_vlan_tag_vf_id =
+static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vf_vlan_tag_on_off =
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 on_off, "on#off");
@@ -12707,7 +12707,7 @@ cmd_set_vf_vlan_tag_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_vlan_tag = {
+static cmdline_parse_inst_t cmd_set_vf_vlan_tag = {
 	.f = cmd_set_vf_vlan_tag_parsed,
 	.data = NULL,
 	.help_str = "set vf vlan tag <port_id> <vf_id> on|off",
@@ -12740,55 +12740,55 @@ struct cmd_vf_tc_bw_result {
 	uint8_t tc_map;
 };
 
-cmdline_parse_token_string_t cmd_vf_tc_bw_set =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_tc_bw_vf =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 tc, "tc");
-cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 tx, "tx");
-cmdline_parse_token_string_t cmd_vf_tc_bw_strict_link_prio =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_strict_link_prio =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 strict_link_prio, "strict-link-priority");
-cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 min_bw, "min-bandwidth");
-cmdline_parse_token_string_t cmd_vf_tc_bw_max_bw =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_max_bw =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 max_bw, "max-bandwidth");
-cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
+static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_tc_bw_vf_id =
+static cmdline_parse_token_num_t cmd_vf_tc_bw_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_tc_bw_tc_no =
+static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_no =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 tc_no, RTE_UINT8);
-cmdline_parse_token_num_t cmd_vf_tc_bw_bw =
+static cmdline_parse_token_num_t cmd_vf_tc_bw_bw =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 bw, RTE_UINT32);
-cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 bw_list, NULL);
-cmdline_parse_token_num_t cmd_vf_tc_bw_tc_map =
+static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_map =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 tc_map, RTE_UINT8);
@@ -12829,7 +12829,7 @@ cmd_vf_max_bw_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_vf_max_bw = {
+static cmdline_parse_inst_t cmd_vf_max_bw = {
 	.f = cmd_vf_max_bw_parsed,
 	.data = NULL,
 	.help_str = "set vf tx max-bandwidth <port_id> <vf_id> <bandwidth>",
@@ -12931,7 +12931,7 @@ cmd_vf_tc_min_bw_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_vf_tc_min_bw = {
+static cmdline_parse_inst_t cmd_vf_tc_min_bw = {
 	.f = cmd_vf_tc_min_bw_parsed,
 	.data = NULL,
 	.help_str = "set vf tc tx min-bandwidth <port_id> <vf_id>"
@@ -12996,7 +12996,7 @@ cmd_tc_min_bw_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_tc_min_bw = {
+static cmdline_parse_inst_t cmd_tc_min_bw = {
 	.f = cmd_tc_min_bw_parsed,
 	.data = NULL,
 	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
@@ -13048,7 +13048,7 @@ cmd_vf_tc_max_bw_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_vf_tc_max_bw = {
+static cmdline_parse_inst_t cmd_vf_tc_max_bw = {
 	.f = cmd_vf_tc_max_bw_parsed,
 	.data = NULL,
 	.help_str = "set vf tc tx max-bandwidth <port_id> <vf_id> <tc_no>"
@@ -13086,71 +13086,71 @@ struct cmd_set_vxlan_result {
 	struct rte_ether_addr eth_dst;
 };
 
-cmdline_parse_token_string_t cmd_set_vxlan_set =
+static cmdline_parse_token_string_t cmd_set_vxlan_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, set, "set");
-cmdline_parse_token_string_t cmd_set_vxlan_vxlan =
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan, "vxlan");
-cmdline_parse_token_string_t cmd_set_vxlan_vxlan_tos_ttl =
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_tos_ttl =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
 				 "vxlan-tos-ttl");
-cmdline_parse_token_string_t cmd_set_vxlan_vxlan_with_vlan =
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
 				 "vxlan-with-vlan");
-cmdline_parse_token_string_t cmd_set_vxlan_ip_version =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "ip-version");
-cmdline_parse_token_string_t cmd_set_vxlan_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, ip_version,
 				 "ipv4#ipv6");
-cmdline_parse_token_string_t cmd_set_vxlan_vni =
+static cmdline_parse_token_string_t cmd_set_vxlan_vni =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "vni");
-cmdline_parse_token_num_t cmd_set_vxlan_vni_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_vni_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, vni, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_vxlan_udp_src =
+static cmdline_parse_token_string_t cmd_set_vxlan_udp_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "udp-src");
-cmdline_parse_token_num_t cmd_set_vxlan_udp_src_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_udp_src_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_src, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vxlan_udp_dst =
+static cmdline_parse_token_string_t cmd_set_vxlan_udp_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "udp-dst");
-cmdline_parse_token_num_t cmd_set_vxlan_udp_dst_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_udp_dst_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_dst, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vxlan_ip_tos =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_tos =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "ip-tos");
-cmdline_parse_token_num_t cmd_set_vxlan_ip_tos_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_ip_tos_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tos, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_vxlan_ip_ttl =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_ttl =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "ip-ttl");
-cmdline_parse_token_num_t cmd_set_vxlan_ip_ttl_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_ip_ttl_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, ttl, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_vxlan_ip_src =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "ip-src");
-cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_src_value =
+static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_src_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_src);
-cmdline_parse_token_string_t cmd_set_vxlan_ip_dst =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "ip-dst");
-cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_dst_value =
+static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_dst_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_dst);
-cmdline_parse_token_string_t cmd_set_vxlan_vlan =
+static cmdline_parse_token_string_t cmd_set_vxlan_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "vlan-tci");
-cmdline_parse_token_num_t cmd_set_vxlan_vlan_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tci, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vxlan_eth_src =
+static cmdline_parse_token_string_t cmd_set_vxlan_eth_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "eth-src");
-cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_src_value =
+static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_src_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_src);
-cmdline_parse_token_string_t cmd_set_vxlan_eth_dst =
+static cmdline_parse_token_string_t cmd_set_vxlan_eth_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "eth-dst");
-cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_dst_value =
+static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_dst_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_dst);
 
 static void cmd_set_vxlan_parsed(void *parsed_result,
@@ -13200,7 +13200,7 @@ static void cmd_set_vxlan_parsed(void *parsed_result,
 		   RTE_ETHER_ADDR_LEN);
 }
 
-cmdline_parse_inst_t cmd_set_vxlan = {
+static cmdline_parse_inst_t cmd_set_vxlan = {
 	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
 	.help_str = "set vxlan ip-version ipv4|ipv6 vni <vni> udp-src"
@@ -13229,7 +13229,7 @@ cmdline_parse_inst_t cmd_set_vxlan = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
+static cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
 	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
 	.help_str = "set vxlan-tos-ttl ip-version ipv4|ipv6 vni <vni> udp-src"
@@ -13263,7 +13263,7 @@ cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_vxlan_with_vlan = {
+static cmdline_parse_inst_t cmd_set_vxlan_with_vlan = {
 	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
 	.help_str = "set vxlan-with-vlan ip-version ipv4|ipv6 vni <vni>"
@@ -13309,48 +13309,48 @@ struct cmd_set_nvgre_result {
 	struct rte_ether_addr eth_dst;
 };
 
-cmdline_parse_token_string_t cmd_set_nvgre_set =
+static cmdline_parse_token_string_t cmd_set_nvgre_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, set, "set");
-cmdline_parse_token_string_t cmd_set_nvgre_nvgre =
+static cmdline_parse_token_string_t cmd_set_nvgre_nvgre =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre, "nvgre");
-cmdline_parse_token_string_t cmd_set_nvgre_nvgre_with_vlan =
+static cmdline_parse_token_string_t cmd_set_nvgre_nvgre_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre,
 				 "nvgre-with-vlan");
-cmdline_parse_token_string_t cmd_set_nvgre_ip_version =
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "ip-version");
-cmdline_parse_token_string_t cmd_set_nvgre_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, ip_version,
 				 "ipv4#ipv6");
-cmdline_parse_token_string_t cmd_set_nvgre_tni =
+static cmdline_parse_token_string_t cmd_set_nvgre_tni =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "tni");
-cmdline_parse_token_num_t cmd_set_nvgre_tni_value =
+static cmdline_parse_token_num_t cmd_set_nvgre_tni_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tni, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_nvgre_ip_src =
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "ip-src");
-cmdline_parse_token_num_t cmd_set_nvgre_ip_src_value =
+static cmdline_parse_token_num_t cmd_set_nvgre_ip_src_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_src);
-cmdline_parse_token_string_t cmd_set_nvgre_ip_dst =
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "ip-dst");
-cmdline_parse_token_ipaddr_t cmd_set_nvgre_ip_dst_value =
+static cmdline_parse_token_ipaddr_t cmd_set_nvgre_ip_dst_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_dst);
-cmdline_parse_token_string_t cmd_set_nvgre_vlan =
+static cmdline_parse_token_string_t cmd_set_nvgre_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "vlan-tci");
-cmdline_parse_token_num_t cmd_set_nvgre_vlan_value =
+static cmdline_parse_token_num_t cmd_set_nvgre_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tci, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_nvgre_eth_src =
+static cmdline_parse_token_string_t cmd_set_nvgre_eth_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "eth-src");
-cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_src_value =
+static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_src_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_src);
-cmdline_parse_token_string_t cmd_set_nvgre_eth_dst =
+static cmdline_parse_token_string_t cmd_set_nvgre_eth_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "eth-dst");
-cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_dst_value =
+static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_dst_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_dst);
 
 static void cmd_set_nvgre_parsed(void *parsed_result,
@@ -13391,7 +13391,7 @@ static void cmd_set_nvgre_parsed(void *parsed_result,
 		   RTE_ETHER_ADDR_LEN);
 }
 
-cmdline_parse_inst_t cmd_set_nvgre = {
+static cmdline_parse_inst_t cmd_set_nvgre = {
 	.f = cmd_set_nvgre_parsed,
 	.data = NULL,
 	.help_str = "set nvgre ip-version <ipv4|ipv6> tni <tni> ip-src"
@@ -13416,7 +13416,7 @@ cmdline_parse_inst_t cmd_set_nvgre = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_nvgre_with_vlan = {
+static cmdline_parse_inst_t cmd_set_nvgre_with_vlan = {
 	.f = cmd_set_nvgre_parsed,
 	.data = NULL,
 	.help_str = "set nvgre-with-vlan ip-version <ipv4|ipv6> tni <tni>"
@@ -13455,33 +13455,33 @@ struct cmd_set_l2_encap_result {
 	struct rte_ether_addr eth_dst;
 };
 
-cmdline_parse_token_string_t cmd_set_l2_encap_set =
+static cmdline_parse_token_string_t cmd_set_l2_encap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, set, "set");
-cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap =
+static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap, "l2_encap");
-cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap,
 				 "l2_encap-with-vlan");
-cmdline_parse_token_string_t cmd_set_l2_encap_ip_version =
+static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
 				 "ip-version");
-cmdline_parse_token_string_t cmd_set_l2_encap_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, ip_version,
 				 "ipv4#ipv6");
-cmdline_parse_token_string_t cmd_set_l2_encap_vlan =
+static cmdline_parse_token_string_t cmd_set_l2_encap_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
 				 "vlan-tci");
-cmdline_parse_token_num_t cmd_set_l2_encap_vlan_value =
+static cmdline_parse_token_num_t cmd_set_l2_encap_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_l2_encap_result, tci, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_l2_encap_eth_src =
+static cmdline_parse_token_string_t cmd_set_l2_encap_eth_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
 				 "eth-src");
-cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_src_value =
+static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_src_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_src);
-cmdline_parse_token_string_t cmd_set_l2_encap_eth_dst =
+static cmdline_parse_token_string_t cmd_set_l2_encap_eth_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
 				 "eth-dst");
-cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_dst_value =
+static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_dst_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_dst);
 
 static void cmd_set_l2_encap_parsed(void *parsed_result,
@@ -13508,7 +13508,7 @@ static void cmd_set_l2_encap_parsed(void *parsed_result,
 		   RTE_ETHER_ADDR_LEN);
 }
 
-cmdline_parse_inst_t cmd_set_l2_encap = {
+static cmdline_parse_inst_t cmd_set_l2_encap = {
 	.f = cmd_set_l2_encap_parsed,
 	.data = NULL,
 	.help_str = "set l2_encap ip-version ipv4|ipv6"
@@ -13526,7 +13526,7 @@ cmdline_parse_inst_t cmd_set_l2_encap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_l2_encap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_l2_encap_with_vlan = {
 	.f = cmd_set_l2_encap_parsed,
 	.data = NULL,
 	.help_str = "set l2_encap-with-vlan ip-version ipv4|ipv6"
@@ -13554,12 +13554,12 @@ struct cmd_set_l2_decap_result {
 	uint32_t vlan_present:1;
 };
 
-cmdline_parse_token_string_t cmd_set_l2_decap_set =
+static cmdline_parse_token_string_t cmd_set_l2_decap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, set, "set");
-cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap =
+static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
 				 "l2_decap");
-cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
 				 "l2_decap-with-vlan");
 
@@ -13575,7 +13575,7 @@ static void cmd_set_l2_decap_parsed(void *parsed_result,
 		l2_decap_conf.select_vlan = 1;
 }
 
-cmdline_parse_inst_t cmd_set_l2_decap = {
+static cmdline_parse_inst_t cmd_set_l2_decap = {
 	.f = cmd_set_l2_decap_parsed,
 	.data = NULL,
 	.help_str = "set l2_decap",
@@ -13586,7 +13586,7 @@ cmdline_parse_inst_t cmd_set_l2_decap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_l2_decap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_l2_decap_with_vlan = {
 	.f = cmd_set_l2_decap_parsed,
 	.data = NULL,
 	.help_str = "set l2_decap-with-vlan",
@@ -13612,53 +13612,53 @@ struct cmd_set_mplsogre_encap_result {
 	struct rte_ether_addr eth_dst;
 };
 
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_set =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, set,
 				 "set");
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, mplsogre,
 				 "mplsogre_encap");
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 mplsogre, "mplsogre_encap-with-vlan");
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "ip-version");
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 ip_version, "ipv4#ipv6");
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_label =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_label =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "label");
-cmdline_parse_token_num_t cmd_set_mplsogre_encap_label_value =
+static cmdline_parse_token_num_t cmd_set_mplsogre_encap_label_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, label,
 			      RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_src =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "ip-src");
-cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_src_value =
+static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_src_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_src);
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_dst =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "ip-dst");
-cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_dst_value =
+static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_dst_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_dst);
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "vlan-tci");
-cmdline_parse_token_num_t cmd_set_mplsogre_encap_vlan_value =
+static cmdline_parse_token_num_t cmd_set_mplsogre_encap_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, tci,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_src =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "eth-src");
-cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_src_value =
+static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_src_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				    eth_src);
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_dst =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "eth-dst");
-cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_dst_value =
+static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_dst_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				    eth_dst);
 
@@ -13700,7 +13700,7 @@ static void cmd_set_mplsogre_encap_parsed(void *parsed_result,
 		   RTE_ETHER_ADDR_LEN);
 }
 
-cmdline_parse_inst_t cmd_set_mplsogre_encap = {
+static cmdline_parse_inst_t cmd_set_mplsogre_encap = {
 	.f = cmd_set_mplsogre_encap_parsed,
 	.data = NULL,
 	.help_str = "set mplsogre_encap ip-version ipv4|ipv6 label <label>"
@@ -13725,7 +13725,7 @@ cmdline_parse_inst_t cmd_set_mplsogre_encap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_mplsogre_encap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_mplsogre_encap_with_vlan = {
 	.f = cmd_set_mplsogre_encap_parsed,
 	.data = NULL,
 	.help_str = "set mplsogre_encap-with-vlan ip-version ipv4|ipv6"
@@ -13761,19 +13761,19 @@ struct cmd_set_mplsogre_decap_result {
 	uint32_t vlan_present:1;
 };
 
-cmdline_parse_token_string_t cmd_set_mplsogre_decap_set =
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, set,
 				 "set");
-cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap =
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, mplsogre,
 				 "mplsogre_decap");
-cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
 				 mplsogre, "mplsogre_decap-with-vlan");
-cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version =
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
 				 pos_token, "ip-version");
-cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
 				 ip_version, "ipv4#ipv6");
 
@@ -13793,7 +13793,7 @@ static void cmd_set_mplsogre_decap_parsed(void *parsed_result,
 		mplsogre_decap_conf.select_ipv4 = 0;
 }
 
-cmdline_parse_inst_t cmd_set_mplsogre_decap = {
+static cmdline_parse_inst_t cmd_set_mplsogre_decap = {
 	.f = cmd_set_mplsogre_decap_parsed,
 	.data = NULL,
 	.help_str = "set mplsogre_decap ip-version ipv4|ipv6",
@@ -13806,7 +13806,7 @@ cmdline_parse_inst_t cmd_set_mplsogre_decap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_mplsogre_decap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_mplsogre_decap_with_vlan = {
 	.f = cmd_set_mplsogre_decap_parsed,
 	.data = NULL,
 	.help_str = "set mplsogre_decap-with-vlan ip-version ipv4|ipv6",
@@ -13836,65 +13836,65 @@ struct cmd_set_mplsoudp_encap_result {
 	struct rte_ether_addr eth_dst;
 };
 
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_set =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, set,
 				 "set");
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, mplsoudp,
 				 "mplsoudp_encap");
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 mplsoudp, "mplsoudp_encap-with-vlan");
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "ip-version");
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 ip_version, "ipv4#ipv6");
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_label =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_label =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "label");
-cmdline_parse_token_num_t cmd_set_mplsoudp_encap_label_value =
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_label_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, label,
 			      RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_src =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "udp-src");
-cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_src_value =
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_src_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_src,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_dst =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "udp-dst");
-cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_dst_value =
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_dst_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_dst,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_src =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "ip-src");
-cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_src_value =
+static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_src_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_src);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_dst =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "ip-dst");
-cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_dst_value =
+static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_dst_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_dst);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "vlan-tci");
-cmdline_parse_token_num_t cmd_set_mplsoudp_encap_vlan_value =
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, tci,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_src =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "eth-src");
-cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_src_value =
+static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_src_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				    eth_src);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_dst =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "eth-dst");
-cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_dst_value =
+static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_dst_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				    eth_dst);
 
@@ -13938,7 +13938,7 @@ static void cmd_set_mplsoudp_encap_parsed(void *parsed_result,
 		   RTE_ETHER_ADDR_LEN);
 }
 
-cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
+static cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
 	.f = cmd_set_mplsoudp_encap_parsed,
 	.data = NULL,
 	.help_str = "set mplsoudp_encap ip-version ipv4|ipv6 label <label>"
@@ -13967,7 +13967,7 @@ cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_mplsoudp_encap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_mplsoudp_encap_with_vlan = {
 	.f = cmd_set_mplsoudp_encap_parsed,
 	.data = NULL,
 	.help_str = "set mplsoudp_encap-with-vlan ip-version ipv4|ipv6"
@@ -14008,19 +14008,19 @@ struct cmd_set_mplsoudp_decap_result {
 	uint32_t vlan_present:1;
 };
 
-cmdline_parse_token_string_t cmd_set_mplsoudp_decap_set =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, set,
 				 "set");
-cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, mplsoudp,
 				 "mplsoudp_decap");
-cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
 				 mplsoudp, "mplsoudp_decap-with-vlan");
-cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
 				 pos_token, "ip-version");
-cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
 				 ip_version, "ipv4#ipv6");
 
@@ -14040,7 +14040,7 @@ static void cmd_set_mplsoudp_decap_parsed(void *parsed_result,
 		mplsoudp_decap_conf.select_ipv4 = 0;
 }
 
-cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
+static cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
 	.f = cmd_set_mplsoudp_decap_parsed,
 	.data = NULL,
 	.help_str = "set mplsoudp_decap ip-version ipv4|ipv6",
@@ -14053,7 +14053,7 @@ cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_mplsoudp_decap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_mplsoudp_decap_with_vlan = {
 	.f = cmd_set_mplsoudp_decap_parsed,
 	.data = NULL,
 	.help_str = "set mplsoudp_decap-with-vlan ip-version ipv4|ipv6",
@@ -14105,109 +14105,109 @@ struct cmd_set_conntrack_common_result {
 	uint32_t le;
 };
 
-cmdline_parse_token_string_t cmd_set_conntrack_set =
+static cmdline_parse_token_string_t cmd_set_conntrack_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 set, "set");
-cmdline_parse_token_string_t cmd_set_conntrack_conntrack =
+static cmdline_parse_token_string_t cmd_set_conntrack_conntrack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 conntrack, "conntrack");
-cmdline_parse_token_string_t cmd_set_conntrack_common_com =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_com =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 common, "com");
-cmdline_parse_token_string_t cmd_set_conntrack_common_peer =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_peer =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 peer, "peer");
-cmdline_parse_token_num_t cmd_set_conntrack_common_peer_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_peer_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      peer_port, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_conntrack_common_is_orig =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_is_orig =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 is_orig, "is_orig");
-cmdline_parse_token_num_t cmd_set_conntrack_common_is_orig_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_is_orig_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      is_original, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_enable =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_enable =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 enable, "enable");
-cmdline_parse_token_num_t cmd_set_conntrack_common_enable_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_enable_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      en, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_live =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_live =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 live, "live");
-cmdline_parse_token_num_t cmd_set_conntrack_common_live_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_live_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      is_live, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_sack =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_sack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 sack, "sack");
-cmdline_parse_token_num_t cmd_set_conntrack_common_sack_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_sack_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      s_ack, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_cack =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_cack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 cack, "cack");
-cmdline_parse_token_num_t cmd_set_conntrack_common_cack_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_cack_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      c_ack, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_dir =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_dir =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_dir, "last_dir");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_dir_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_dir_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      ld, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_liberal =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_liberal =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 liberal, "liberal");
-cmdline_parse_token_num_t cmd_set_conntrack_common_liberal_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_liberal_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      lb, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_state =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_state =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 state, "state");
-cmdline_parse_token_num_t cmd_set_conntrack_common_state_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_state_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      stat, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_conntrack_common_max_ackwin =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_max_ackwin =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 max_ack_win, "max_ack_win");
-cmdline_parse_token_num_t cmd_set_conntrack_common_max_ackwin_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_max_ackwin_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      factor, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_conntrack_common_retrans =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_retrans =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 retrans, "r_lim");
-cmdline_parse_token_num_t cmd_set_conntrack_common_retrans_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_retrans_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      re_num, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_win =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_win =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_win, "last_win");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_win_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_win_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      lw, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_seq =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_seq =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_seq, "last_seq");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_seq_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_seq_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      ls, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_ack =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_ack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_ack, "last_ack");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_ack_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_ack_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      la, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_end =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_end =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_end, "last_end");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_end_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_end_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      le, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_index =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_index =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_index, "last_index");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_index_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_index_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      li, RTE_UINT8);
 
@@ -14237,7 +14237,7 @@ static void cmd_set_conntrack_common_parsed(void *parsed_result,
 	conntrack_context.last_end = res->le;
 }
 
-cmdline_parse_inst_t cmd_set_conntrack_common = {
+static cmdline_parse_inst_t cmd_set_conntrack_common = {
 	.f = cmd_set_conntrack_common_parsed,
 	.data = NULL,
 	.help_str = "set conntrack com peer <port_id> is_orig <dir> enable <en>"
@@ -14308,61 +14308,55 @@ struct cmd_set_conntrack_dir_result {
 	uint32_t ma;
 };
 
-cmdline_parse_token_string_t cmd_set_conntrack_dir_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 set, "set");
-cmdline_parse_token_string_t cmd_set_conntrack_dir_conntrack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 conntrack, "conntrack");
-cmdline_parse_token_string_t cmd_set_conntrack_dir_dir =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_dir =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 dir, "orig#rply");
-cmdline_parse_token_string_t cmd_set_conntrack_dir_scale =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_scale =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 scale, "scale");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_scale_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_scale_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      factor, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_fin =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_fin =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 fin, "fin");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_fin_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_fin_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      f, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_ack =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_ack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 ack_seen, "acked");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_ack_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_ack_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      as, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_unack_data =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_unack_data =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 unack, "unack_data");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_unack_data_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_unack_data_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      un, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_sent_end =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_sent_end =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 sent_end, "sent_end");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_sent_end_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_sent_end_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      se, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_reply_end =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_reply_end =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 reply_end, "reply_end");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_reply_end_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_reply_end_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      re, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_max_win =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_win =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 max_win, "max_win");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_max_win_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_win_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      mw, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_max_ack =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_ack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 max_ack, "max_ack");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_max_ack_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_ack_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      ma, RTE_UINT32);
 
@@ -14389,7 +14383,7 @@ static void cmd_set_conntrack_dir_parsed(void *parsed_result,
 	dir->max_win = res->mw;
 }
 
-cmdline_parse_inst_t cmd_set_conntrack_dir = {
+static cmdline_parse_inst_t cmd_set_conntrack_dir = {
 	.f = cmd_set_conntrack_dir_parsed,
 	.data = NULL,
 	.help_str = "set conntrack orig|rply scale <factor> fin <sent>"
@@ -14453,7 +14447,7 @@ cmd_strict_link_prio_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_strict_link_prio = {
+static cmdline_parse_inst_t cmd_strict_link_prio = {
 	.f = cmd_strict_link_prio_parsed,
 	.data = NULL,
 	.help_str = "set tx strict-link-priority <port_id> <tc_bitmap>",
@@ -14475,14 +14469,14 @@ struct cmd_ddp_add_result {
 	char filepath[];
 };
 
-cmdline_parse_token_string_t cmd_ddp_add_ddp =
+static cmdline_parse_token_string_t cmd_ddp_add_ddp =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, ddp, "ddp");
-cmdline_parse_token_string_t cmd_ddp_add_add =
+static cmdline_parse_token_string_t cmd_ddp_add_add =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, add, "add");
-cmdline_parse_token_num_t cmd_ddp_add_port_id =
+static cmdline_parse_token_num_t cmd_ddp_add_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_ddp_add_result, port_id,
 		RTE_UINT16);
-cmdline_parse_token_string_t cmd_ddp_add_filepath =
+static cmdline_parse_token_string_t cmd_ddp_add_filepath =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, filepath, NULL);
 
 static void
@@ -14535,7 +14529,7 @@ cmd_ddp_add_parsed(
 	free((void *)filepath);
 }
 
-cmdline_parse_inst_t cmd_ddp_add = {
+static cmdline_parse_inst_t cmd_ddp_add = {
 	.f = cmd_ddp_add_parsed,
 	.data = NULL,
 	.help_str = "ddp add <port_id> <profile_path[,backup_profile_path]>",
@@ -14556,13 +14550,13 @@ struct cmd_ddp_del_result {
 	char filepath[];
 };
 
-cmdline_parse_token_string_t cmd_ddp_del_ddp =
+static cmdline_parse_token_string_t cmd_ddp_del_ddp =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, ddp, "ddp");
-cmdline_parse_token_string_t cmd_ddp_del_del =
+static cmdline_parse_token_string_t cmd_ddp_del_del =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, del, "del");
-cmdline_parse_token_num_t cmd_ddp_del_port_id =
+static cmdline_parse_token_num_t cmd_ddp_del_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_ddp_del_result, port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_ddp_del_filepath =
+static cmdline_parse_token_string_t cmd_ddp_del_filepath =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, filepath, NULL);
 
 static void
@@ -14600,7 +14594,7 @@ cmd_ddp_del_parsed(
 	close_file(buff);
 }
 
-cmdline_parse_inst_t cmd_ddp_del = {
+static cmdline_parse_inst_t cmd_ddp_del = {
 	.f = cmd_ddp_del_parsed,
 	.data = NULL,
 	.help_str = "ddp del <port_id> <backup_profile_path>",
@@ -14621,13 +14615,13 @@ struct cmd_ddp_info_result {
 	char filepath[];
 };
 
-cmdline_parse_token_string_t cmd_ddp_info_ddp =
+static cmdline_parse_token_string_t cmd_ddp_info_ddp =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, ddp, "ddp");
-cmdline_parse_token_string_t cmd_ddp_info_get =
+static cmdline_parse_token_string_t cmd_ddp_info_get =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, get, "get");
-cmdline_parse_token_string_t cmd_ddp_info_info =
+static cmdline_parse_token_string_t cmd_ddp_info_info =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, info, "info");
-cmdline_parse_token_string_t cmd_ddp_info_filepath =
+static cmdline_parse_token_string_t cmd_ddp_info_filepath =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, filepath, NULL);
 
 static void
@@ -14836,7 +14830,7 @@ cmd_ddp_info_parsed(
 	close_file(pkg);
 }
 
-cmdline_parse_inst_t cmd_ddp_get_info = {
+static cmdline_parse_inst_t cmd_ddp_get_info = {
 	.f = cmd_ddp_info_parsed,
 	.data = NULL,
 	.help_str = "ddp get info <profile_path>",
@@ -14860,13 +14854,13 @@ struct cmd_ddp_get_list_result {
 	portid_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_ddp_get_list_ddp =
+static cmdline_parse_token_string_t cmd_ddp_get_list_ddp =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, ddp, "ddp");
-cmdline_parse_token_string_t cmd_ddp_get_list_get =
+static cmdline_parse_token_string_t cmd_ddp_get_list_get =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, get, "get");
-cmdline_parse_token_string_t cmd_ddp_get_list_list =
+static cmdline_parse_token_string_t cmd_ddp_get_list_list =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, list, "list");
-cmdline_parse_token_num_t cmd_ddp_get_list_port_id =
+static cmdline_parse_token_num_t cmd_ddp_get_list_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_ddp_get_list_result, port_id,
 		RTE_UINT16);
 
@@ -14922,7 +14916,7 @@ cmd_ddp_get_list_parsed(
 		fprintf(stderr, "Failed to get ddp list\n");
 }
 
-cmdline_parse_inst_t cmd_ddp_get_list = {
+static cmdline_parse_inst_t cmd_ddp_get_list = {
 	.f = cmd_ddp_get_list_parsed,
 	.data = NULL,
 	.help_str = "ddp get list <port_id>",
@@ -15011,36 +15005,36 @@ cmd_cfg_input_set_parsed(
 		fprintf(stderr, "Function not supported\n");
 }
 
-cmdline_parse_token_string_t cmd_cfg_input_set_port =
+static cmdline_parse_token_string_t cmd_cfg_input_set_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 port, "port");
-cmdline_parse_token_string_t cmd_cfg_input_set_cfg =
+static cmdline_parse_token_string_t cmd_cfg_input_set_cfg =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 cfg, "config");
-cmdline_parse_token_num_t cmd_cfg_input_set_port_id =
+static cmdline_parse_token_num_t cmd_cfg_input_set_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_cfg_input_set_pctype =
+static cmdline_parse_token_string_t cmd_cfg_input_set_pctype =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 pctype, "pctype");
-cmdline_parse_token_num_t cmd_cfg_input_set_pctype_id =
+static cmdline_parse_token_num_t cmd_cfg_input_set_pctype_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
 			      pctype_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_cfg_input_set_inset_type =
+static cmdline_parse_token_string_t cmd_cfg_input_set_inset_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 inset_type,
 				 "hash_inset#fdir_inset#fdir_flx_inset");
-cmdline_parse_token_string_t cmd_cfg_input_set_opt =
+static cmdline_parse_token_string_t cmd_cfg_input_set_opt =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 opt, "get#set#clear");
-cmdline_parse_token_string_t cmd_cfg_input_set_field =
+static cmdline_parse_token_string_t cmd_cfg_input_set_field =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 field, "field");
-cmdline_parse_token_num_t cmd_cfg_input_set_field_idx =
+static cmdline_parse_token_num_t cmd_cfg_input_set_field_idx =
 	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
 			      field_idx, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_cfg_input_set = {
+static cmdline_parse_inst_t cmd_cfg_input_set = {
 	.f = cmd_cfg_input_set_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
@@ -15112,33 +15106,33 @@ cmd_clear_input_set_parsed(
 		fprintf(stderr, "Function not supported\n");
 }
 
-cmdline_parse_token_string_t cmd_clear_input_set_port =
+static cmdline_parse_token_string_t cmd_clear_input_set_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 port, "port");
-cmdline_parse_token_string_t cmd_clear_input_set_cfg =
+static cmdline_parse_token_string_t cmd_clear_input_set_cfg =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 cfg, "config");
-cmdline_parse_token_num_t cmd_clear_input_set_port_id =
+static cmdline_parse_token_num_t cmd_clear_input_set_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_clear_input_set_pctype =
+static cmdline_parse_token_string_t cmd_clear_input_set_pctype =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 pctype, "pctype");
-cmdline_parse_token_num_t cmd_clear_input_set_pctype_id =
+static cmdline_parse_token_num_t cmd_clear_input_set_pctype_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
 			      pctype_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_clear_input_set_inset_type =
+static cmdline_parse_token_string_t cmd_clear_input_set_inset_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 inset_type,
 				 "hash_inset#fdir_inset#fdir_flx_inset");
-cmdline_parse_token_string_t cmd_clear_input_set_clear =
+static cmdline_parse_token_string_t cmd_clear_input_set_clear =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 clear, "clear");
-cmdline_parse_token_string_t cmd_clear_input_set_all =
+static cmdline_parse_token_string_t cmd_clear_input_set_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 all, "all");
 
-cmdline_parse_inst_t cmd_clear_input_set = {
+static cmdline_parse_inst_t cmd_clear_input_set = {
 	.f = cmd_clear_input_set_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
@@ -15168,23 +15162,23 @@ struct cmd_show_vf_stats_result {
 };
 
 /* Common CLI fields show vf stats*/
-cmdline_parse_token_string_t cmd_show_vf_stats_show =
+static cmdline_parse_token_string_t cmd_show_vf_stats_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_vf_stats_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_show_vf_stats_vf =
+static cmdline_parse_token_string_t cmd_show_vf_stats_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_vf_stats_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_show_vf_stats_stats =
+static cmdline_parse_token_string_t cmd_show_vf_stats_stats =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_vf_stats_result,
 		 stats, "stats");
-cmdline_parse_token_num_t cmd_show_vf_stats_port_id =
+static cmdline_parse_token_num_t cmd_show_vf_stats_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_vf_stats_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_show_vf_stats_vf_id =
+static cmdline_parse_token_num_t cmd_show_vf_stats_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_vf_stats_result,
 		 vf_id, RTE_UINT16);
@@ -15251,7 +15245,7 @@ cmd_show_vf_stats_parsed(
 			       nic_stats_border, nic_stats_border);
 }
 
-cmdline_parse_inst_t cmd_show_vf_stats = {
+static cmdline_parse_inst_t cmd_show_vf_stats = {
 	.f = cmd_show_vf_stats_parsed,
 	.data = NULL,
 	.help_str = "show vf stats <port_id> <vf_id>",
@@ -15277,23 +15271,23 @@ struct cmd_clear_vf_stats_result {
 };
 
 /* Common CLI fields clear vf stats*/
-cmdline_parse_token_string_t cmd_clear_vf_stats_clear =
+static cmdline_parse_token_string_t cmd_clear_vf_stats_clear =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_clear_vf_stats_result,
 		 clear, "clear");
-cmdline_parse_token_string_t cmd_clear_vf_stats_vf =
+static cmdline_parse_token_string_t cmd_clear_vf_stats_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_clear_vf_stats_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_clear_vf_stats_stats =
+static cmdline_parse_token_string_t cmd_clear_vf_stats_stats =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_clear_vf_stats_result,
 		 stats, "stats");
-cmdline_parse_token_num_t cmd_clear_vf_stats_port_id =
+static cmdline_parse_token_num_t cmd_clear_vf_stats_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_clear_vf_stats_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_clear_vf_stats_vf_id =
+static cmdline_parse_token_num_t cmd_clear_vf_stats_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_clear_vf_stats_result,
 		 vf_id, RTE_UINT16);
@@ -15338,7 +15332,7 @@ cmd_clear_vf_stats_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_clear_vf_stats = {
+static cmdline_parse_inst_t cmd_clear_vf_stats = {
 	.f = cmd_clear_vf_stats_parsed,
 	.data = NULL,
 	.help_str = "clear vf stats <port_id> <vf_id>",
@@ -15365,27 +15359,27 @@ struct cmd_pctype_mapping_reset_result {
 };
 
 /* Common CLI fields for port config pctype mapping reset*/
-cmdline_parse_token_string_t cmd_pctype_mapping_reset_port =
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 port, "port");
-cmdline_parse_token_string_t cmd_pctype_mapping_reset_config =
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_config =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 config, "config");
-cmdline_parse_token_num_t cmd_pctype_mapping_reset_port_id =
+static cmdline_parse_token_num_t cmd_pctype_mapping_reset_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_pctype_mapping_reset_pctype =
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_pctype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 pctype, "pctype");
-cmdline_parse_token_string_t cmd_pctype_mapping_reset_mapping =
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_pctype_mapping_reset_reset =
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_reset =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 reset, "reset");
@@ -15420,7 +15414,7 @@ cmd_pctype_mapping_reset_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_pctype_mapping_reset = {
+static cmdline_parse_inst_t cmd_pctype_mapping_reset = {
 	.f = cmd_pctype_mapping_reset_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> pctype mapping reset",
@@ -15447,23 +15441,23 @@ struct cmd_pctype_mapping_get_result {
 };
 
 /* Common CLI fields for pctype mapping get */
-cmdline_parse_token_string_t cmd_pctype_mapping_get_show =
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_get_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_pctype_mapping_get_port =
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_get_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_pctype_mapping_get_port_id =
+static cmdline_parse_token_num_t cmd_pctype_mapping_get_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_pctype_mapping_get_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_pctype_mapping_get_pctype =
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_pctype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_get_result,
 		 pctype, "pctype");
-cmdline_parse_token_string_t cmd_pctype_mapping_get_mapping =
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_get_result,
 		 mapping, "mapping");
@@ -15522,7 +15516,7 @@ cmd_pctype_mapping_get_parsed(
 #endif
 }
 
-cmdline_parse_inst_t cmd_pctype_mapping_get = {
+static cmdline_parse_inst_t cmd_pctype_mapping_get = {
 	.f = cmd_pctype_mapping_get_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> pctype mapping",
@@ -15551,35 +15545,35 @@ struct cmd_pctype_mapping_update_result {
 };
 
 /* Common CLI fields for pctype mapping update*/
-cmdline_parse_token_string_t cmd_pctype_mapping_update_port =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 port, "port");
-cmdline_parse_token_string_t cmd_pctype_mapping_update_config =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_config =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 config, "config");
-cmdline_parse_token_num_t cmd_pctype_mapping_update_port_id =
+static cmdline_parse_token_num_t cmd_pctype_mapping_update_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_pctype_mapping_update_pctype =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_pctype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 pctype, "pctype");
-cmdline_parse_token_string_t cmd_pctype_mapping_update_mapping =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_pctype_mapping_update_update =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_update =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 update, "update");
-cmdline_parse_token_string_t cmd_pctype_mapping_update_pc_type =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_pc_type =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 pctype_list, NULL);
-cmdline_parse_token_num_t cmd_pctype_mapping_update_flow_type =
+static cmdline_parse_token_num_t cmd_pctype_mapping_update_flow_type =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 flow_type, RTE_UINT16);
@@ -15631,7 +15625,7 @@ cmd_pctype_mapping_update_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_pctype_mapping_update = {
+static cmdline_parse_inst_t cmd_pctype_mapping_update = {
 	.f = cmd_pctype_mapping_update_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> pctype mapping update"
@@ -15661,23 +15655,23 @@ struct cmd_ptype_mapping_get_result {
 };
 
 /* Common CLI fields for ptype mapping get */
-cmdline_parse_token_string_t cmd_ptype_mapping_get_ptype =
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_ptype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_get_result,
 		 ptype, "ptype");
-cmdline_parse_token_string_t cmd_ptype_mapping_get_mapping =
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_get_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_ptype_mapping_get_get =
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_get =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_get_result,
 		 get, "get");
-cmdline_parse_token_num_t cmd_ptype_mapping_get_port_id =
+static cmdline_parse_token_num_t cmd_ptype_mapping_get_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_get_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_ptype_mapping_get_valid_only =
+static cmdline_parse_token_num_t cmd_ptype_mapping_get_valid_only =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_get_result,
 		 valid_only, RTE_UINT8);
@@ -15730,7 +15724,7 @@ cmd_ptype_mapping_get_parsed(
 #endif
 }
 
-cmdline_parse_inst_t cmd_ptype_mapping_get = {
+static cmdline_parse_inst_t cmd_ptype_mapping_get = {
 	.f = cmd_ptype_mapping_get_parsed,
 	.data = NULL,
 	.help_str = "ptype mapping get <port_id> <valid_only>",
@@ -15758,31 +15752,31 @@ struct cmd_ptype_mapping_replace_result {
 };
 
 /* Common CLI fields for ptype mapping replace */
-cmdline_parse_token_string_t cmd_ptype_mapping_replace_ptype =
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_ptype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 ptype, "ptype");
-cmdline_parse_token_string_t cmd_ptype_mapping_replace_mapping =
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_ptype_mapping_replace_replace =
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_replace =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 replace, "replace");
-cmdline_parse_token_num_t cmd_ptype_mapping_replace_port_id =
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_ptype_mapping_replace_target =
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_target =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 target, RTE_UINT32);
-cmdline_parse_token_num_t cmd_ptype_mapping_replace_mask =
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_mask =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 mask, RTE_UINT8);
-cmdline_parse_token_num_t cmd_ptype_mapping_replace_pkt_type =
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_pkt_type =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 pkt_type, RTE_UINT32);
@@ -15824,7 +15818,7 @@ cmd_ptype_mapping_replace_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_ptype_mapping_replace = {
+static cmdline_parse_inst_t cmd_ptype_mapping_replace = {
 	.f = cmd_ptype_mapping_replace_parsed,
 	.data = NULL,
 	.help_str =
@@ -15852,19 +15846,19 @@ struct cmd_ptype_mapping_reset_result {
 };
 
 /* Common CLI fields for ptype mapping reset*/
-cmdline_parse_token_string_t cmd_ptype_mapping_reset_ptype =
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_ptype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_reset_result,
 		 ptype, "ptype");
-cmdline_parse_token_string_t cmd_ptype_mapping_reset_mapping =
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_reset_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_ptype_mapping_reset_reset =
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_reset =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_reset_result,
 		 reset, "reset");
-cmdline_parse_token_num_t cmd_ptype_mapping_reset_port_id =
+static cmdline_parse_token_num_t cmd_ptype_mapping_reset_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_reset_result,
 		 port_id, RTE_UINT16);
@@ -15899,7 +15893,7 @@ cmd_ptype_mapping_reset_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_ptype_mapping_reset = {
+static cmdline_parse_inst_t cmd_ptype_mapping_reset = {
 	.f = cmd_ptype_mapping_reset_parsed,
 	.data = NULL,
 	.help_str = "ptype mapping reset <port_id>",
@@ -15925,27 +15919,27 @@ struct cmd_ptype_mapping_update_result {
 };
 
 /* Common CLI fields for ptype mapping update*/
-cmdline_parse_token_string_t cmd_ptype_mapping_update_ptype =
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_ptype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 ptype, "ptype");
-cmdline_parse_token_string_t cmd_ptype_mapping_update_mapping =
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_ptype_mapping_update_update =
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_update =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 reset, "update");
-cmdline_parse_token_num_t cmd_ptype_mapping_update_port_id =
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_ptype_mapping_update_hw_ptype =
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_hw_ptype =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 hw_ptype, RTE_UINT8);
-cmdline_parse_token_num_t cmd_ptype_mapping_update_sw_ptype =
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_sw_ptype =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 sw_ptype, RTE_UINT32);
@@ -15990,7 +15984,7 @@ cmd_ptype_mapping_update_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_ptype_mapping_update = {
+static cmdline_parse_inst_t cmd_ptype_mapping_update = {
 	.f = cmd_ptype_mapping_update_parsed,
 	.data = NULL,
 	.help_str = "ptype mapping update <port_id> <hw_ptype> <sw_ptype>",
@@ -16012,9 +16006,9 @@ struct cmd_cmdfile_result {
 };
 
 /* Common CLI fields for file commands */
-cmdline_parse_token_string_t cmd_load_cmdfile =
+static cmdline_parse_token_string_t cmd_load_cmdfile =
 	TOKEN_STRING_INITIALIZER(struct cmd_cmdfile_result, load, "load");
-cmdline_parse_token_string_t cmd_load_cmdfile_filename =
+static cmdline_parse_token_string_t cmd_load_cmdfile_filename =
 	TOKEN_STRING_INITIALIZER(struct cmd_cmdfile_result, filename, NULL);
 
 static void
@@ -16028,7 +16022,7 @@ cmd_load_from_file_parsed(
 	cmdline_read_from_file(res->filename);
 }
 
-cmdline_parse_inst_t cmd_load_from_file = {
+static cmdline_parse_inst_t cmd_load_from_file = {
 	.f = cmd_load_from_file_parsed,
 	.data = NULL,
 	.help_str = "load <filename>",
@@ -16048,23 +16042,23 @@ struct cmd_rx_offload_get_capa_result {
 	cmdline_fixed_string_t capabilities;
 };
 
-cmdline_parse_token_string_t cmd_rx_offload_get_capa_show =
+static cmdline_parse_token_string_t cmd_rx_offload_get_capa_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_capa_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_rx_offload_get_capa_port =
+static cmdline_parse_token_string_t cmd_rx_offload_get_capa_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_capa_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_rx_offload_get_capa_port_id =
+static cmdline_parse_token_num_t cmd_rx_offload_get_capa_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_rx_offload_get_capa_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_rx_offload_get_capa_rx_offload =
+static cmdline_parse_token_string_t cmd_rx_offload_get_capa_rx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_capa_result,
 		 rx_offload, "rx_offload");
-cmdline_parse_token_string_t cmd_rx_offload_get_capa_capabilities =
+static cmdline_parse_token_string_t cmd_rx_offload_get_capa_capabilities =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_capa_result,
 		 capabilities, "capabilities");
@@ -16122,7 +16116,7 @@ cmd_rx_offload_get_capa_parsed(
 	printf("\n\n");
 }
 
-cmdline_parse_inst_t cmd_rx_offload_get_capa = {
+static cmdline_parse_inst_t cmd_rx_offload_get_capa = {
 	.f = cmd_rx_offload_get_capa_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rx_offload capabilities",
@@ -16145,23 +16139,23 @@ struct cmd_rx_offload_get_configuration_result {
 	cmdline_fixed_string_t configuration;
 };
 
-cmdline_parse_token_string_t cmd_rx_offload_get_configuration_show =
+static cmdline_parse_token_string_t cmd_rx_offload_get_configuration_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_configuration_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_rx_offload_get_configuration_port =
+static cmdline_parse_token_string_t cmd_rx_offload_get_configuration_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_configuration_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_rx_offload_get_configuration_port_id =
+static cmdline_parse_token_num_t cmd_rx_offload_get_configuration_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_rx_offload_get_configuration_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_rx_offload_get_configuration_rx_offload =
+static cmdline_parse_token_string_t cmd_rx_offload_get_configuration_rx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_configuration_result,
 		 rx_offload, "rx_offload");
-cmdline_parse_token_string_t cmd_rx_offload_get_configuration_configuration =
+static cmdline_parse_token_string_t cmd_rx_offload_get_configuration_configuration =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_configuration_result,
 		 configuration, "configuration");
@@ -16208,7 +16202,7 @@ cmd_rx_offload_get_configuration_parsed(
 	printf("\n");
 }
 
-cmdline_parse_inst_t cmd_rx_offload_get_configuration = {
+static cmdline_parse_inst_t cmd_rx_offload_get_configuration = {
 	.f = cmd_rx_offload_get_configuration_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rx_offload configuration",
@@ -16232,23 +16226,23 @@ struct cmd_config_per_port_rx_offload_result {
 	cmdline_fixed_string_t on_off;
 };
 
-cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_port =
+static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 port, "port");
-cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_config =
+static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_config =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 config, "config");
-cmdline_parse_token_num_t cmd_config_per_port_rx_offload_result_port_id =
+static cmdline_parse_token_num_t cmd_config_per_port_rx_offload_result_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_rx_offload =
+static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_rx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 rx_offload, "rx_offload");
-cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_offload =
+static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 offload, "vlan_strip#ipv4_cksum#udp_cksum#tcp_cksum#tcp_lro#"
@@ -16256,7 +16250,7 @@ cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_offload =
 			   "header_split#vlan_filter#vlan_extend#jumbo_frame#"
 			   "scatter#buffer_split#timestamp#security#"
 			   "keep_crc#rss_hash");
-cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_on_off =
+static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 on_off, "on#off");
@@ -16330,7 +16324,7 @@ cmd_config_per_port_rx_offload_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(port_id, 1, 1);
 }
 
-cmdline_parse_inst_t cmd_config_per_port_rx_offload = {
+static cmdline_parse_inst_t cmd_config_per_port_rx_offload = {
 	.f = cmd_config_per_port_rx_offload_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> rx_offload vlan_strip|ipv4_cksum|"
@@ -16360,34 +16354,34 @@ struct cmd_config_per_queue_rx_offload_result {
 	cmdline_fixed_string_t on_off;
 };
 
-cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_port =
+static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_config_per_queue_rx_offload_result_port_id =
+static cmdline_parse_token_num_t cmd_config_per_queue_rx_offload_result_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_rxq =
+static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_rxq =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 rxq, "rxq");
-cmdline_parse_token_num_t cmd_config_per_queue_rx_offload_result_queue_id =
+static cmdline_parse_token_num_t cmd_config_per_queue_rx_offload_result_queue_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 queue_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_rxoffload =
+static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_rxoffload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 rx_offload, "rx_offload");
-cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_offload =
+static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 offload, "vlan_strip#ipv4_cksum#udp_cksum#tcp_cksum#tcp_lro#"
 			   "qinq_strip#outer_ipv4_cksum#macsec_strip#"
 			   "header_split#vlan_filter#vlan_extend#jumbo_frame#"
 			   "scatter#buffer_split#timestamp#security#keep_crc");
-cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_on_off =
+static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 on_off, "on#off");
@@ -16437,7 +16431,7 @@ cmd_config_per_queue_rx_offload_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(port_id, 1, 1);
 }
 
-cmdline_parse_inst_t cmd_config_per_queue_rx_offload = {
+static cmdline_parse_inst_t cmd_config_per_queue_rx_offload = {
 	.f = cmd_config_per_queue_rx_offload_parsed,
 	.data = NULL,
 	.help_str = "port <port_id> rxq <queue_id> rx_offload "
@@ -16467,23 +16461,23 @@ struct cmd_tx_offload_get_capa_result {
 	cmdline_fixed_string_t capabilities;
 };
 
-cmdline_parse_token_string_t cmd_tx_offload_get_capa_show =
+static cmdline_parse_token_string_t cmd_tx_offload_get_capa_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_capa_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_tx_offload_get_capa_port =
+static cmdline_parse_token_string_t cmd_tx_offload_get_capa_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_capa_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_tx_offload_get_capa_port_id =
+static cmdline_parse_token_num_t cmd_tx_offload_get_capa_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_tx_offload_get_capa_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_tx_offload_get_capa_tx_offload =
+static cmdline_parse_token_string_t cmd_tx_offload_get_capa_tx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_capa_result,
 		 tx_offload, "tx_offload");
-cmdline_parse_token_string_t cmd_tx_offload_get_capa_capabilities =
+static cmdline_parse_token_string_t cmd_tx_offload_get_capa_capabilities =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_capa_result,
 		 capabilities, "capabilities");
@@ -16541,7 +16535,7 @@ cmd_tx_offload_get_capa_parsed(
 	printf("\n\n");
 }
 
-cmdline_parse_inst_t cmd_tx_offload_get_capa = {
+static cmdline_parse_inst_t cmd_tx_offload_get_capa = {
 	.f = cmd_tx_offload_get_capa_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> tx_offload capabilities",
@@ -16564,23 +16558,23 @@ struct cmd_tx_offload_get_configuration_result {
 	cmdline_fixed_string_t configuration;
 };
 
-cmdline_parse_token_string_t cmd_tx_offload_get_configuration_show =
+static cmdline_parse_token_string_t cmd_tx_offload_get_configuration_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_configuration_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_tx_offload_get_configuration_port =
+static cmdline_parse_token_string_t cmd_tx_offload_get_configuration_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_configuration_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_tx_offload_get_configuration_port_id =
+static cmdline_parse_token_num_t cmd_tx_offload_get_configuration_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_tx_offload_get_configuration_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_tx_offload_get_configuration_tx_offload =
+static cmdline_parse_token_string_t cmd_tx_offload_get_configuration_tx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_configuration_result,
 		 tx_offload, "tx_offload");
-cmdline_parse_token_string_t cmd_tx_offload_get_configuration_configuration =
+static cmdline_parse_token_string_t cmd_tx_offload_get_configuration_configuration =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_configuration_result,
 		 configuration, "configuration");
@@ -16627,7 +16621,7 @@ cmd_tx_offload_get_configuration_parsed(
 	printf("\n");
 }
 
-cmdline_parse_inst_t cmd_tx_offload_get_configuration = {
+static cmdline_parse_inst_t cmd_tx_offload_get_configuration = {
 	.f = cmd_tx_offload_get_configuration_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> tx_offload configuration",
@@ -16651,23 +16645,23 @@ struct cmd_config_per_port_tx_offload_result {
 	cmdline_fixed_string_t on_off;
 };
 
-cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_port =
+static cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 port, "port");
-cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_config =
+static cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_config =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 config, "config");
-cmdline_parse_token_num_t cmd_config_per_port_tx_offload_result_port_id =
+static cmdline_parse_token_num_t cmd_config_per_port_tx_offload_result_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_tx_offload =
+static cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_tx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 tx_offload, "tx_offload");
-cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_offload =
+static cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 offload, "vlan_insert#ipv4_cksum#udp_cksum#tcp_cksum#"
@@ -16676,7 +16670,7 @@ cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_offload =
 			  "ipip_tnl_tso#geneve_tnl_tso#macsec_insert#"
 			  "mt_lockfree#multi_segs#mbuf_fast_free#security#"
 			  "send_on_timestamp");
-cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_on_off =
+static cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 on_off, "on#off");
@@ -16753,7 +16747,7 @@ cmd_config_per_port_tx_offload_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(port_id, 1, 1);
 }
 
-cmdline_parse_inst_t cmd_config_per_port_tx_offload = {
+static cmdline_parse_inst_t cmd_config_per_port_tx_offload = {
 	.f = cmd_config_per_port_tx_offload_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> tx_offload "
@@ -16785,27 +16779,27 @@ struct cmd_config_per_queue_tx_offload_result {
 	cmdline_fixed_string_t on_off;
 };
 
-cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_port =
+static cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_config_per_queue_tx_offload_result_port_id =
+static cmdline_parse_token_num_t cmd_config_per_queue_tx_offload_result_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_txq =
+static cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_txq =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 txq, "txq");
-cmdline_parse_token_num_t cmd_config_per_queue_tx_offload_result_queue_id =
+static cmdline_parse_token_num_t cmd_config_per_queue_tx_offload_result_queue_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 queue_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_txoffload =
+static cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_txoffload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 tx_offload, "tx_offload");
-cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_offload =
+static cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 offload, "vlan_insert#ipv4_cksum#udp_cksum#tcp_cksum#"
@@ -16813,7 +16807,7 @@ cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_offload =
 			  "qinq_insert#vxlan_tnl_tso#gre_tnl_tso#"
 			  "ipip_tnl_tso#geneve_tnl_tso#macsec_insert#"
 			  "mt_lockfree#multi_segs#mbuf_fast_free#security");
-cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_on_off =
+static cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 on_off, "on#off");
@@ -16863,7 +16857,7 @@ cmd_config_per_queue_tx_offload_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(port_id, 1, 1);
 }
 
-cmdline_parse_inst_t cmd_config_per_queue_tx_offload = {
+static cmdline_parse_inst_t cmd_config_per_queue_tx_offload = {
 	.f = cmd_config_per_queue_tx_offload_parsed,
 	.data = NULL,
 	.help_str = "port <port_id> txq <queue_id> tx_offload "
@@ -16912,23 +16906,23 @@ cmd_config_tx_metadata_specific_parsed(void *parsed_result,
 	rte_flow_dynf_metadata_register();
 }
 
-cmdline_parse_token_string_t cmd_config_tx_metadata_specific_port =
+static cmdline_parse_token_string_t cmd_config_tx_metadata_specific_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_metadata_specific_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_config_tx_metadata_specific_keyword =
+static cmdline_parse_token_string_t cmd_config_tx_metadata_specific_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_metadata_specific_result,
 			keyword, "config");
-cmdline_parse_token_num_t cmd_config_tx_metadata_specific_id =
+static cmdline_parse_token_num_t cmd_config_tx_metadata_specific_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_tx_metadata_specific_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_tx_metadata_specific_item =
+static cmdline_parse_token_string_t cmd_config_tx_metadata_specific_item =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_metadata_specific_result,
 			item, "tx_metadata");
-cmdline_parse_token_num_t cmd_config_tx_metadata_specific_value =
+static cmdline_parse_token_num_t cmd_config_tx_metadata_specific_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_tx_metadata_specific_result,
 			value, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_config_tx_metadata_specific = {
+static cmdline_parse_inst_t cmd_config_tx_metadata_specific = {
 	.f = cmd_config_tx_metadata_specific_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> tx_metadata <value>",
@@ -16991,26 +16985,26 @@ cmd_config_dynf_specific_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_config_tx_dynf_specific_port =
+static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			keyword, "port");
-cmdline_parse_token_string_t cmd_config_tx_dynf_specific_keyword =
+static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			keyword, "config");
-cmdline_parse_token_num_t cmd_config_tx_dynf_specific_port_id =
+static cmdline_parse_token_num_t cmd_config_tx_dynf_specific_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_tx_dynf_specific_item =
+static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_item =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			item, "dynf");
-cmdline_parse_token_string_t cmd_config_tx_dynf_specific_name =
+static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			name, NULL);
-cmdline_parse_token_string_t cmd_config_tx_dynf_specific_value =
+static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			value, "set#clear");
 
-cmdline_parse_inst_t cmd_config_tx_dynf_specific = {
+static cmdline_parse_inst_t cmd_config_tx_dynf_specific = {
 	.f = cmd_config_dynf_specific_parsed,
 	.data = NULL,
 	.help_str = "port config <port id> dynf <name> set|clear",
@@ -17050,20 +17044,20 @@ cmd_show_tx_metadata_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_show_tx_metadata_show =
+static cmdline_parse_token_string_t cmd_show_tx_metadata_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_tx_metadata_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_tx_metadata_port =
+static cmdline_parse_token_string_t cmd_show_tx_metadata_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_tx_metadata_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_show_tx_metadata_pid =
+static cmdline_parse_token_num_t cmd_show_tx_metadata_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_tx_metadata_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_tx_metadata_keyword =
+static cmdline_parse_token_string_t cmd_show_tx_metadata_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_tx_metadata_result,
 			cmd_keyword, "tx_metadata");
 
-cmdline_parse_inst_t cmd_show_tx_metadata = {
+static cmdline_parse_inst_t cmd_show_tx_metadata = {
 	.f = cmd_show_tx_metadata_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> tx_metadata",
@@ -17127,23 +17121,23 @@ cmd_show_fec_capability_parsed(void *parsed_result,
 	free(speed_fec_capa);
 }
 
-cmdline_parse_token_string_t cmd_show_fec_capability_show =
+static cmdline_parse_token_string_t cmd_show_fec_capability_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_fec_capability_port =
+static cmdline_parse_token_string_t cmd_show_fec_capability_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_show_fec_capability_pid =
+static cmdline_parse_token_num_t cmd_show_fec_capability_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_fec_capability_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_fec_capability_fec =
+static cmdline_parse_token_string_t cmd_show_fec_capability_fec =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
 			cmd_fec, "fec");
-cmdline_parse_token_string_t cmd_show_fec_capability_keyword =
+static cmdline_parse_token_string_t cmd_show_fec_capability_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
 			cmd_keyword, "capabilities");
 
-cmdline_parse_inst_t cmd_show_capability = {
+static cmdline_parse_inst_t cmd_show_capability = {
 	.f = cmd_show_fec_capability_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> fec capabilities",
@@ -17209,20 +17203,20 @@ cmd_show_fec_mode_parsed(void *parsed_result,
 	printf("%s\n", buf);
 }
 
-cmdline_parse_token_string_t cmd_show_fec_mode_show =
+static cmdline_parse_token_string_t cmd_show_fec_mode_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_metadata_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_fec_mode_port =
+static cmdline_parse_token_string_t cmd_show_fec_mode_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_metadata_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_show_fec_mode_pid =
+static cmdline_parse_token_num_t cmd_show_fec_mode_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_fec_metadata_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_fec_mode_keyword =
+static cmdline_parse_token_string_t cmd_show_fec_mode_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_metadata_result,
 			cmd_keyword, "fec_mode");
 
-cmdline_parse_inst_t cmd_show_fec_mode = {
+static cmdline_parse_inst_t cmd_show_fec_mode = {
 	.f = cmd_show_fec_mode_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> fec_mode",
@@ -17245,23 +17239,23 @@ struct cmd_set_port_fec_mode {
 };
 
 /* Common CLI fields for set fec mode */
-cmdline_parse_token_string_t cmd_set_port_fec_mode_set =
+static cmdline_parse_token_string_t cmd_set_port_fec_mode_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_fec_mode,
 		 set, "set");
-cmdline_parse_token_string_t cmd_set_port_fec_mode_port =
+static cmdline_parse_token_string_t cmd_set_port_fec_mode_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_fec_mode,
 		 port, "port");
-cmdline_parse_token_num_t cmd_set_port_fec_mode_port_id =
+static cmdline_parse_token_num_t cmd_set_port_fec_mode_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_port_fec_mode,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_port_fec_mode_str =
+static cmdline_parse_token_string_t cmd_set_port_fec_mode_str =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_fec_mode,
 		 fec_mode, "fec_mode");
-cmdline_parse_token_string_t cmd_set_port_fec_mode_value =
+static cmdline_parse_token_string_t cmd_set_port_fec_mode_value =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_fec_mode,
 		 fec_value, NULL);
@@ -17294,7 +17288,7 @@ cmd_set_port_fec_mode_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_fec_mode = {
+static cmdline_parse_inst_t cmd_set_fec_mode = {
 	.f = cmd_set_port_fec_mode_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> fec_mode auto|off|rs|baser",
@@ -17319,19 +17313,19 @@ struct cmd_show_port_supported_ptypes_result {
 };
 
 /* Common CLI fields for show port ptypes */
-cmdline_parse_token_string_t cmd_show_port_supported_ptypes_show =
+static cmdline_parse_token_string_t cmd_show_port_supported_ptypes_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_supported_ptypes_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_show_port_supported_ptypes_port =
+static cmdline_parse_token_string_t cmd_show_port_supported_ptypes_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_supported_ptypes_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_show_port_supported_ptypes_port_id =
+static cmdline_parse_token_num_t cmd_show_port_supported_ptypes_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_port_supported_ptypes_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_port_supported_ptypes_ptypes =
+static cmdline_parse_token_string_t cmd_show_port_supported_ptypes_ptypes =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_supported_ptypes_result,
 		 ptypes, "ptypes");
@@ -17403,7 +17397,7 @@ cmd_show_port_supported_ptypes_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_show_port_supported_ptypes = {
+static cmdline_parse_inst_t cmd_show_port_supported_ptypes = {
 	.f = cmd_show_port_supported_ptypes_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> ptypes",
@@ -17474,31 +17468,31 @@ cmd_show_rx_tx_desc_status_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_show =
+static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_port =
+static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_pid =
+static cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_keyword =
+static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_keyword, "rxq#txq");
-cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_qid =
+static cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_desc =
+static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_desc =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_desc, "desc");
-cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_did =
+static cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_did =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_did, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_status =
+static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_status =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_status, "status");
-cmdline_parse_inst_t cmd_show_rx_tx_desc_status = {
+static cmdline_parse_inst_t cmd_show_rx_tx_desc_status = {
 	.f = cmd_show_rx_tx_desc_status_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rxq|txq <queue_id> desc <desc_id> "
@@ -17549,39 +17543,39 @@ cmd_show_rx_queue_desc_used_count_parsed(void *parsed_result,
 	printf("Used desc count = %d\n", rc);
 }
 
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_show =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_port =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_port, "port");
-cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_pid =
+static cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_pid =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_rxq =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_rxq =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_rxq, "rxq");
-cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_qid =
+static cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_qid =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_desc =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_desc =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_count, "desc");
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_used =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_used =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_count, "used");
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_count =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_count =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_count, "count");
-cmdline_parse_inst_t cmd_show_rx_queue_desc_used_count = {
+static cmdline_parse_inst_t cmd_show_rx_queue_desc_used_count = {
 	.f = cmd_show_rx_queue_desc_used_count_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rxq <queue_id> desc used count",
@@ -17608,23 +17602,23 @@ struct cmd_set_port_ptypes_result {
 };
 
 /* Common CLI fields for set port ptypes */
-cmdline_parse_token_string_t cmd_set_port_ptypes_set =
+static cmdline_parse_token_string_t cmd_set_port_ptypes_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_ptypes_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_set_port_ptypes_port =
+static cmdline_parse_token_string_t cmd_set_port_ptypes_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_ptypes_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_set_port_ptypes_port_id =
+static cmdline_parse_token_num_t cmd_set_port_ptypes_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_port_ptypes_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_port_ptypes_mask_str =
+static cmdline_parse_token_string_t cmd_set_port_ptypes_mask_str =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_ptypes_result,
 		 ptype_mask, "ptype_mask");
-cmdline_parse_token_num_t cmd_set_port_ptypes_mask_u32 =
+static cmdline_parse_token_num_t cmd_set_port_ptypes_mask_u32 =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_port_ptypes_result,
 		 mask, RTE_UINT32);
@@ -17668,7 +17662,7 @@ cmd_set_port_ptypes_parsed(
 	clear_ptypes = false;
 }
 
-cmdline_parse_inst_t cmd_set_port_ptypes = {
+static cmdline_parse_inst_t cmd_set_port_ptypes = {
 	.f = cmd_set_port_ptypes_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> ptype_mask <mask>",
@@ -17706,20 +17700,20 @@ cmd_showport_macs_parsed(void *parsed_result,
 		show_mcast_macs(res->cmd_pid);
 }
 
-cmdline_parse_token_string_t cmd_showport_macs_show =
+static cmdline_parse_token_string_t cmd_showport_macs_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_macs_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_showport_macs_port =
+static cmdline_parse_token_string_t cmd_showport_macs_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_macs_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_showport_macs_pid =
+static cmdline_parse_token_num_t cmd_showport_macs_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_macs_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_showport_macs_keyword =
+static cmdline_parse_token_string_t cmd_showport_macs_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_macs_result,
 			cmd_keyword, "macs#mcast_macs");
 
-cmdline_parse_inst_t cmd_showport_macs = {
+static cmdline_parse_inst_t cmd_showport_macs = {
 	.f = cmd_showport_macs_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> macs|mcast_macs",
@@ -17742,27 +17736,27 @@ struct cmd_show_port_flow_transfer_proxy_result {
 	cmdline_fixed_string_t proxy;
 };
 
-cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_show =
+static cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_port =
+static cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_show_port_flow_transfer_proxy_port_id =
+static cmdline_parse_token_num_t cmd_show_port_flow_transfer_proxy_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_flow =
+static cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_flow =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 flow, "flow");
-cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_transfer =
+static cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_transfer =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 transfer, "transfer");
-cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_proxy =
+static cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_proxy =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 proxy, "proxy");
@@ -17788,7 +17782,7 @@ cmd_show_port_flow_transfer_proxy_parsed(void *parsed_result,
 	printf("Transfer proxy port ID: %u\n\n", proxy_port_id);
 }
 
-cmdline_parse_inst_t cmd_show_port_flow_transfer_proxy = {
+static cmdline_parse_inst_t cmd_show_port_flow_transfer_proxy = {
 	.f = cmd_show_port_flow_transfer_proxy_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> flow transfer proxy",
@@ -17806,7 +17800,7 @@ cmdline_parse_inst_t cmd_show_port_flow_transfer_proxy = {
 /* ******************************************************************************** */
 
 /* list of instructions */
-cmdline_parse_ctx_t main_ctx[] = {
+static cmdline_parse_ctx_t main_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_help_brief,
 	(cmdline_parse_inst_t *)&cmd_help_long,
 	(cmdline_parse_inst_t *)&cmd_quit,
diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index fc4a6d9cca..eabe936bbd 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -11232,16 +11232,16 @@ cmd_show_set_raw_parsed(void *parsed_result, struct cmdline *cl, void *data)
 	} while (all && ++index < RAW_ENCAP_CONFS_MAX_NUM);
 }
 
-cmdline_parse_token_string_t cmd_show_set_raw_cmd_show =
+static cmdline_parse_token_string_t cmd_show_set_raw_cmd_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_set_raw_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_set_raw_cmd_what =
+static cmdline_parse_token_string_t cmd_show_set_raw_cmd_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_set_raw_result,
 			cmd_what, "raw_encap#raw_decap");
-cmdline_parse_token_num_t cmd_show_set_raw_cmd_index =
+static cmdline_parse_token_num_t cmd_show_set_raw_cmd_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_set_raw_result,
 			cmd_index, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_set_raw_cmd_all =
+static cmdline_parse_token_string_t cmd_show_set_raw_cmd_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_set_raw_result,
 			cmd_all, "all");
 cmdline_parse_inst_t cmd_show_set_raw = {
diff --git a/app/test-pmd/cmdline_mtr.c b/app/test-pmd/cmdline_mtr.c
index ad7ef6ad98..5e62e82a37 100644
--- a/app/test-pmd/cmdline_mtr.c
+++ b/app/test-pmd/cmdline_mtr.c
@@ -201,19 +201,19 @@ struct cmd_show_port_meter_cap_result {
 	uint16_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_show_port_meter_cap_show =
+static cmdline_parse_token_string_t cmd_show_port_meter_cap_show =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_cap_result, show, "show");
-cmdline_parse_token_string_t cmd_show_port_meter_cap_port =
+static cmdline_parse_token_string_t cmd_show_port_meter_cap_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_cap_result, port, "port");
-cmdline_parse_token_string_t cmd_show_port_meter_cap_meter =
+static cmdline_parse_token_string_t cmd_show_port_meter_cap_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_cap_result, meter, "meter");
-cmdline_parse_token_string_t cmd_show_port_meter_cap_cap =
+static cmdline_parse_token_string_t cmd_show_port_meter_cap_cap =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_cap_result, cap, "cap");
-cmdline_parse_token_num_t cmd_show_port_meter_cap_port_id =
+static cmdline_parse_token_num_t cmd_show_port_meter_cap_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_show_port_meter_cap_result, port_id, RTE_UINT16);
 
@@ -308,46 +308,46 @@ struct cmd_add_port_meter_profile_srtcm_result {
 	int packet_mode;
 };
 
-cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_add =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result, add, "add");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_port =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_meter =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			meter, "meter");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_profile =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			profile, "profile");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_srtcm_rfc2697 =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_srtcm_rfc2697 =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			srtcm_rfc2697, "srtcm_rfc2697");
-cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_port_id =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			profile_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_cir =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_cir =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			cir, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_cbs =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_cbs =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			cbs, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_ebs =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_ebs =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			ebs, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_packet_mode =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_packet_mode =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			packet_mode, RTE_UINT32);
@@ -417,50 +417,50 @@ struct cmd_add_port_meter_profile_trtcm_result {
 	int packet_mode;
 };
 
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_add =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result, add, "add");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_port =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_meter =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			meter, "meter");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_profile =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			profile, "profile");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_trtcm_rfc2698 =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_trtcm_rfc2698 =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			trtcm_rfc2698, "trtcm_rfc2698");
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_port_id =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			profile_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_cir =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_cir =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			cir, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_pir =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_pir =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			pir, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_cbs =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_cbs =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			cbs, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_pbs =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_pbs =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			pbs, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_packet_mode =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_packet_mode =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			packet_mode, RTE_UINT32);
@@ -532,52 +532,52 @@ struct cmd_add_port_meter_profile_trtcm_rfc4115_result {
 	int packet_mode;
 };
 
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_add =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result, add,
 		"add");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_port =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_meter =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			meter, "meter");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_profile =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			profile, "profile");
-cmdline_parse_token_string_t
+static cmdline_parse_token_string_t
 	cmd_add_port_meter_profile_trtcm_rfc4115_trtcm_rfc4115 =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			trtcm_rfc4115, "trtcm_rfc4115");
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_port_id =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			profile_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_cir =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_cir =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			cir, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_eir =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_eir =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			eir, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_cbs =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_cbs =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			cbs, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_ebs =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_ebs =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			ebs, RTE_UINT64);
-cmdline_parse_token_num_t
+static cmdline_parse_token_num_t
 	cmd_add_port_meter_profile_trtcm_rfc4115_packet_mode =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
@@ -646,26 +646,26 @@ struct cmd_del_port_meter_profile_result {
 	uint32_t profile_id;
 };
 
-cmdline_parse_token_string_t cmd_del_port_meter_profile_del =
+static cmdline_parse_token_string_t cmd_del_port_meter_profile_del =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_profile_result, del, "del");
-cmdline_parse_token_string_t cmd_del_port_meter_profile_port =
+static cmdline_parse_token_string_t cmd_del_port_meter_profile_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_profile_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_del_port_meter_profile_meter =
+static cmdline_parse_token_string_t cmd_del_port_meter_profile_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_profile_result,
 			meter, "meter");
-cmdline_parse_token_string_t cmd_del_port_meter_profile_profile =
+static cmdline_parse_token_string_t cmd_del_port_meter_profile_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_profile_result,
 			profile, "profile");
-cmdline_parse_token_num_t cmd_del_port_meter_profile_port_id =
+static cmdline_parse_token_num_t cmd_del_port_meter_profile_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_meter_profile_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_del_port_meter_profile_profile_id =
+static cmdline_parse_token_num_t cmd_del_port_meter_profile_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_meter_profile_result,
 			profile_id, RTE_UINT32);
@@ -724,46 +724,37 @@ struct cmd_create_port_meter_result {
 	cmdline_multi_string_t meter_input_color;
 };
 
-cmdline_parse_token_string_t cmd_create_port_meter_create =
+static cmdline_parse_token_string_t cmd_create_port_meter_create =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_create_port_meter_result, create, "create");
-cmdline_parse_token_string_t cmd_create_port_meter_port =
+static cmdline_parse_token_string_t cmd_create_port_meter_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_create_port_meter_result, port, "port");
-cmdline_parse_token_string_t cmd_create_port_meter_meter =
+static cmdline_parse_token_string_t cmd_create_port_meter_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_create_port_meter_result, meter, "meter");
-cmdline_parse_token_num_t cmd_create_port_meter_port_id =
+static cmdline_parse_token_num_t cmd_create_port_meter_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_create_port_meter_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_create_port_meter_mtr_id =
+static cmdline_parse_token_num_t cmd_create_port_meter_mtr_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_create_port_meter_result, mtr_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_create_port_meter_profile_id =
+static cmdline_parse_token_num_t cmd_create_port_meter_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_create_port_meter_result, profile_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_create_port_meter_policy_id =
+static cmdline_parse_token_num_t cmd_create_port_meter_policy_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_create_port_meter_result, policy_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_create_port_meter_meter_enable =
+static cmdline_parse_token_string_t cmd_create_port_meter_meter_enable =
 	TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
 		meter_enable, "yes#no");
-cmdline_parse_token_string_t cmd_create_port_meter_g_action =
-	TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
-		g_action, "R#Y#G#D#r#y#g#d");
-cmdline_parse_token_string_t cmd_create_port_meter_y_action =
-	TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
-		y_action, "R#Y#G#D#r#y#g#d");
-cmdline_parse_token_string_t cmd_create_port_meter_r_action =
-	TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
-		r_action, "R#Y#G#D#r#y#g#d");
-cmdline_parse_token_num_t cmd_create_port_meter_statistics_mask =
+static cmdline_parse_token_num_t cmd_create_port_meter_statistics_mask =
 	TOKEN_NUM_INITIALIZER(struct cmd_create_port_meter_result,
 		statistics_mask, RTE_UINT64);
-cmdline_parse_token_num_t cmd_create_port_meter_shared =
+static cmdline_parse_token_num_t cmd_create_port_meter_shared =
 	TOKEN_NUM_INITIALIZER(struct cmd_create_port_meter_result,
 		shared, RTE_UINT32);
-cmdline_parse_token_string_t cmd_create_port_meter_input_color =
+static cmdline_parse_token_string_t cmd_create_port_meter_input_color =
 	TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
 		meter_input_color, TOKEN_STRING_MULTI);
 
@@ -845,19 +836,19 @@ struct cmd_enable_port_meter_result {
 	uint32_t mtr_id;
 };
 
-cmdline_parse_token_string_t cmd_enable_port_meter_enable =
+static cmdline_parse_token_string_t cmd_enable_port_meter_enable =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_enable_port_meter_result, enable, "enable");
-cmdline_parse_token_string_t cmd_enable_port_meter_port =
+static cmdline_parse_token_string_t cmd_enable_port_meter_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_enable_port_meter_result, port, "port");
-cmdline_parse_token_string_t cmd_enable_port_meter_meter =
+static cmdline_parse_token_string_t cmd_enable_port_meter_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_enable_port_meter_result, meter, "meter");
-cmdline_parse_token_num_t cmd_enable_port_meter_port_id =
+static cmdline_parse_token_num_t cmd_enable_port_meter_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_enable_port_meter_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_enable_port_meter_mtr_id =
+static cmdline_parse_token_num_t cmd_enable_port_meter_mtr_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_enable_port_meter_result, mtr_id, RTE_UINT32);
 
@@ -906,19 +897,19 @@ struct cmd_disable_port_meter_result {
 	uint32_t mtr_id;
 };
 
-cmdline_parse_token_string_t cmd_disable_port_meter_disable =
+static cmdline_parse_token_string_t cmd_disable_port_meter_disable =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_disable_port_meter_result, disable, "disable");
-cmdline_parse_token_string_t cmd_disable_port_meter_port =
+static cmdline_parse_token_string_t cmd_disable_port_meter_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_disable_port_meter_result, port, "port");
-cmdline_parse_token_string_t cmd_disable_port_meter_meter =
+static cmdline_parse_token_string_t cmd_disable_port_meter_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_disable_port_meter_result, meter, "meter");
-cmdline_parse_token_num_t cmd_disable_port_meter_port_id =
+static cmdline_parse_token_num_t cmd_disable_port_meter_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_disable_port_meter_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_disable_port_meter_mtr_id =
+static cmdline_parse_token_num_t cmd_disable_port_meter_mtr_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_disable_port_meter_result, mtr_id, RTE_UINT32);
 
@@ -968,22 +959,22 @@ struct cmd_del_port_meter_policy_result {
 	uint32_t policy_id;
 };
 
-cmdline_parse_token_string_t cmd_del_port_meter_policy_del =
+static cmdline_parse_token_string_t cmd_del_port_meter_policy_del =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_policy_result, del, "del");
-cmdline_parse_token_string_t cmd_del_port_meter_policy_port =
+static cmdline_parse_token_string_t cmd_del_port_meter_policy_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_policy_result, port, "port");
-cmdline_parse_token_string_t cmd_del_port_meter_policy_meter =
+static cmdline_parse_token_string_t cmd_del_port_meter_policy_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_policy_result, meter, "meter");
-cmdline_parse_token_string_t cmd_del_port_meter_policy_policy =
+static cmdline_parse_token_string_t cmd_del_port_meter_policy_policy =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_policy_result, policy, "policy");
-cmdline_parse_token_num_t cmd_del_port_meter_policy_port_id =
+static cmdline_parse_token_num_t cmd_del_port_meter_policy_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_meter_policy_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_del_port_meter_policy_policy_id =
+static cmdline_parse_token_num_t cmd_del_port_meter_policy_policy_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_meter_policy_result, policy_id, RTE_UINT32);
 
@@ -1032,19 +1023,19 @@ struct cmd_del_port_meter_result {
 	uint32_t mtr_id;
 };
 
-cmdline_parse_token_string_t cmd_del_port_meter_del =
+static cmdline_parse_token_string_t cmd_del_port_meter_del =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_result, del, "del");
-cmdline_parse_token_string_t cmd_del_port_meter_port =
+static cmdline_parse_token_string_t cmd_del_port_meter_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_result, port, "port");
-cmdline_parse_token_string_t cmd_del_port_meter_meter =
+static cmdline_parse_token_string_t cmd_del_port_meter_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_result, meter, "meter");
-cmdline_parse_token_num_t cmd_del_port_meter_port_id =
+static cmdline_parse_token_num_t cmd_del_port_meter_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_meter_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_del_port_meter_mtr_id =
+static cmdline_parse_token_num_t cmd_del_port_meter_mtr_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_meter_result, mtr_id, RTE_UINT32);
 
@@ -1095,27 +1086,27 @@ struct cmd_set_port_meter_profile_result {
 	uint32_t profile_id;
 };
 
-cmdline_parse_token_string_t cmd_set_port_meter_profile_set =
+static cmdline_parse_token_string_t cmd_set_port_meter_profile_set =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_profile_result, set, "set");
-cmdline_parse_token_string_t cmd_set_port_meter_profile_port =
+static cmdline_parse_token_string_t cmd_set_port_meter_profile_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_profile_result, port, "port");
-cmdline_parse_token_string_t cmd_set_port_meter_profile_meter =
+static cmdline_parse_token_string_t cmd_set_port_meter_profile_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_profile_result, meter, "meter");
-cmdline_parse_token_string_t cmd_set_port_meter_profile_profile =
+static cmdline_parse_token_string_t cmd_set_port_meter_profile_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_profile_result, profile, "profile");
-cmdline_parse_token_num_t cmd_set_port_meter_profile_port_id =
+static cmdline_parse_token_num_t cmd_set_port_meter_profile_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_meter_profile_result, port_id,
 		RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_port_meter_profile_mtr_id =
+static cmdline_parse_token_num_t cmd_set_port_meter_profile_mtr_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_meter_profile_result, mtr_id,
 		RTE_UINT32);
-cmdline_parse_token_num_t cmd_set_port_meter_profile_profile_id =
+static cmdline_parse_token_num_t cmd_set_port_meter_profile_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_meter_profile_result, profile_id,
 		RTE_UINT32);
@@ -1169,20 +1160,20 @@ struct cmd_set_port_meter_dscp_table_result {
 	cmdline_multi_string_t token_string;
 };
 
-cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_set =
+static cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_set =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_dscp_table_result, set, "set");
-cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_port =
+static cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_dscp_table_result, port, "port");
-cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_meter =
+static cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_dscp_table_result, meter, "meter");
-cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_dscp_table =
+static cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_dscp_table =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_dscp_table_result,
 		dscp_table, "dscp table");
-cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_token_string =
+static cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_token_string =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_meter_dscp_table_result,
 		token_string, TOKEN_STRING_MULTI);
 
@@ -1245,30 +1236,30 @@ struct cmd_set_port_meter_stats_mask_result {
 	uint64_t stats_mask;
 };
 
-cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_set =
+static cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_set =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, set, "set");
-cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_port =
+static cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, port, "port");
-cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_meter =
+static cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, meter, "meter");
-cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_stats =
+static cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_stats =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, stats, "stats");
-cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_mask =
+static cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_mask =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, mask, "mask");
-cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_port_id =
+static cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, port_id,
 		RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_mtr_id =
+static cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_mtr_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, mtr_id,
 		RTE_UINT32);
-cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_stats_mask =
+static cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_stats_mask =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, stats_mask,
 		RTE_UINT64);
@@ -1322,25 +1313,25 @@ struct cmd_show_port_meter_stats_result {
 	cmdline_fixed_string_t clear;
 };
 
-cmdline_parse_token_string_t cmd_show_port_meter_stats_show =
+static cmdline_parse_token_string_t cmd_show_port_meter_stats_show =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_stats_result, show, "show");
-cmdline_parse_token_string_t cmd_show_port_meter_stats_port =
+static cmdline_parse_token_string_t cmd_show_port_meter_stats_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_stats_result, port, "port");
-cmdline_parse_token_string_t cmd_show_port_meter_stats_meter =
+static cmdline_parse_token_string_t cmd_show_port_meter_stats_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_stats_result, meter, "meter");
-cmdline_parse_token_string_t cmd_show_port_meter_stats_stats =
+static cmdline_parse_token_string_t cmd_show_port_meter_stats_stats =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_stats_result, stats, "stats");
-cmdline_parse_token_num_t cmd_show_port_meter_stats_port_id =
+static cmdline_parse_token_num_t cmd_show_port_meter_stats_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_show_port_meter_stats_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_show_port_meter_stats_mtr_id =
+static cmdline_parse_token_num_t cmd_show_port_meter_stats_mtr_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_show_port_meter_stats_result, mtr_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_show_port_meter_stats_clear =
+static cmdline_parse_token_string_t cmd_show_port_meter_stats_clear =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_stats_result, clear, "yes#no");
 
diff --git a/app/test-pmd/cmdline_tm.c b/app/test-pmd/cmdline_tm.c
index c058b8946e..fb56a234c5 100644
--- a/app/test-pmd/cmdline_tm.c
+++ b/app/test-pmd/cmdline_tm.c
@@ -207,19 +207,19 @@ struct cmd_show_port_tm_cap_result {
 	uint16_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_show_port_tm_cap_show =
+static cmdline_parse_token_string_t cmd_show_port_tm_cap_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_cap_result,
 		show, "show");
-cmdline_parse_token_string_t cmd_show_port_tm_cap_port =
+static cmdline_parse_token_string_t cmd_show_port_tm_cap_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_cap_result,
 		port, "port");
-cmdline_parse_token_string_t cmd_show_port_tm_cap_tm =
+static cmdline_parse_token_string_t cmd_show_port_tm_cap_tm =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_cap_result,
 		tm, "tm");
-cmdline_parse_token_string_t cmd_show_port_tm_cap_cap =
+static cmdline_parse_token_string_t cmd_show_port_tm_cap_cap =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_cap_result,
 		cap, "cap");
-cmdline_parse_token_num_t cmd_show_port_tm_cap_port_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_cap_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_port_tm_cap_result,
 		 port_id, RTE_UINT16);
 
@@ -353,25 +353,25 @@ struct cmd_show_port_tm_level_cap_result {
 	uint32_t level_id;
 };
 
-cmdline_parse_token_string_t cmd_show_port_tm_level_cap_show =
+static cmdline_parse_token_string_t cmd_show_port_tm_level_cap_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_level_cap_result,
 		show, "show");
-cmdline_parse_token_string_t cmd_show_port_tm_level_cap_port =
+static cmdline_parse_token_string_t cmd_show_port_tm_level_cap_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_level_cap_result,
 		port, "port");
-cmdline_parse_token_string_t cmd_show_port_tm_level_cap_tm =
+static cmdline_parse_token_string_t cmd_show_port_tm_level_cap_tm =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_level_cap_result,
 		tm, "tm");
-cmdline_parse_token_string_t cmd_show_port_tm_level_cap_level =
+static cmdline_parse_token_string_t cmd_show_port_tm_level_cap_level =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_level_cap_result,
 		level, "level");
-cmdline_parse_token_string_t cmd_show_port_tm_level_cap_cap =
+static cmdline_parse_token_string_t cmd_show_port_tm_level_cap_cap =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_level_cap_result,
 		cap, "cap");
-cmdline_parse_token_num_t cmd_show_port_tm_level_cap_port_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_level_cap_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_port_tm_level_cap_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_show_port_tm_level_cap_level_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_level_cap_level_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_port_tm_level_cap_result,
 		 level_id, RTE_UINT32);
 
@@ -503,25 +503,25 @@ struct cmd_show_port_tm_node_cap_result {
 	uint32_t node_id;
 };
 
-cmdline_parse_token_string_t cmd_show_port_tm_node_cap_show =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_cap_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_node_cap_result,
 		show, "show");
-cmdline_parse_token_string_t cmd_show_port_tm_node_cap_port =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_cap_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_node_cap_result,
 		port, "port");
-cmdline_parse_token_string_t cmd_show_port_tm_node_cap_tm =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_cap_tm =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_node_cap_result,
 		tm, "tm");
-cmdline_parse_token_string_t cmd_show_port_tm_node_cap_node =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_cap_node =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_node_cap_result,
 		node, "node");
-cmdline_parse_token_string_t cmd_show_port_tm_node_cap_cap =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_cap_cap =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_node_cap_result,
 		cap, "cap");
-cmdline_parse_token_num_t cmd_show_port_tm_node_cap_port_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_node_cap_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_port_tm_node_cap_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_show_port_tm_node_cap_node_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_node_cap_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_port_tm_node_cap_result,
 		 node_id, RTE_UINT32);
 
@@ -627,29 +627,29 @@ struct cmd_show_port_tm_node_stats_result {
 	uint32_t clear;
 };
 
-cmdline_parse_token_string_t cmd_show_port_tm_node_stats_show =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_stats_show =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_stats_result, show, "show");
-cmdline_parse_token_string_t cmd_show_port_tm_node_stats_port =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_stats_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_stats_result, port, "port");
-cmdline_parse_token_string_t cmd_show_port_tm_node_stats_tm =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_stats_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_stats_result, tm, "tm");
-cmdline_parse_token_string_t cmd_show_port_tm_node_stats_node =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_stats_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_stats_result, node, "node");
-cmdline_parse_token_string_t cmd_show_port_tm_node_stats_stats =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_stats_stats =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_stats_result, stats, "stats");
-cmdline_parse_token_num_t cmd_show_port_tm_node_stats_port_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_node_stats_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_port_tm_node_stats_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_show_port_tm_node_stats_node_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_node_stats_node_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_show_port_tm_node_stats_result,
 			node_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_show_port_tm_node_stats_clear =
+static cmdline_parse_token_num_t cmd_show_port_tm_node_stats_clear =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_show_port_tm_node_stats_result, clear, RTE_UINT32);
 
@@ -745,26 +745,26 @@ struct cmd_show_port_tm_node_type_result {
 	uint32_t node_id;
 };
 
-cmdline_parse_token_string_t cmd_show_port_tm_node_type_show =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_type_show =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_type_result, show, "show");
-cmdline_parse_token_string_t cmd_show_port_tm_node_type_port =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_type_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_type_result, port, "port");
-cmdline_parse_token_string_t cmd_show_port_tm_node_type_tm =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_type_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_type_result, tm, "tm");
-cmdline_parse_token_string_t cmd_show_port_tm_node_type_node =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_type_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_type_result, node, "node");
-cmdline_parse_token_string_t cmd_show_port_tm_node_type_type =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_type_type =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_type_result, type, "type");
-cmdline_parse_token_num_t cmd_show_port_tm_node_type_port_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_node_type_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_show_port_tm_node_type_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_show_port_tm_node_type_node_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_node_type_node_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_show_port_tm_node_type_result,
 			node_id, RTE_UINT32);
@@ -830,58 +830,58 @@ struct cmd_add_port_tm_node_shaper_profile_result {
 	int pkt_mode;
 };
 
-cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_add =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result, add, "add");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_port =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_tm =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			tm, "tm");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_node =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			node, "node");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_shaper =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_shaper =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			shaper, "shaper");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_profile =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			profile, "profile");
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_port_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_shaper_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_shaper_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			shaper_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_cmit_tb_rate =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_cmit_tb_rate =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			cmit_tb_rate, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_cmit_tb_size =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_cmit_tb_size =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			cmit_tb_size, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_peak_tb_rate =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_peak_tb_rate =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			peak_tb_rate, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_peak_tb_size =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_peak_tb_size =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			peak_tb_size, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_pktlen_adjust =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_pktlen_adjust =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			pktlen_adjust, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_packet_mode =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_packet_mode =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			pkt_mode, RTE_UINT32);
@@ -953,33 +953,33 @@ struct cmd_del_port_tm_node_shaper_profile_result {
 	uint32_t shaper_id;
 };
 
-cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_del =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_del =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result, del, "del");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_port =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_tm =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result, tm, "tm");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_node =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result,
 			node, "node");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_shaper =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_shaper =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result,
 			shaper, "shaper");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_profile =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result,
 			profile, "profile");
-cmdline_parse_token_num_t cmd_del_port_tm_node_shaper_profile_port_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_shaper_profile_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_del_port_tm_node_shaper_profile_shaper_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_shaper_profile_shaper_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result,
 			shaper_id, RTE_UINT32);
@@ -1035,36 +1035,36 @@ struct cmd_add_port_tm_node_shared_shaper_result {
 	uint32_t shaper_profile_id;
 };
 
-cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_cmd_type =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_cmd_type =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result,
 			cmd_type, "add#set");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_port =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result, port, "port");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_tm =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result, tm, "tm");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_node =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result, node, "node");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_shared =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_shared =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result,
 			shared, "shared");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_shaper =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_shaper =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result,
 			shaper, "shaper");
-cmdline_parse_token_num_t cmd_add_port_tm_node_shared_shaper_port_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shared_shaper_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shared_shaper_shared_shaper_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shared_shaper_shared_shaper_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result,
 			shared_shaper_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shared_shaper_shaper_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shared_shaper_shaper_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result,
 			shaper_profile_id, RTE_UINT32);
@@ -1136,31 +1136,31 @@ struct cmd_del_port_tm_node_shared_shaper_result {
 	uint32_t shared_shaper_id;
 };
 
-cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_del =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_del =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result, del, "del");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_port =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result, port, "port");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_tm =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result, tm, "tm");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_node =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result, node, "node");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_shared =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_shared =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result,
 			shared, "shared");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_shaper =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_shaper =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result,
 			shaper, "shaper");
-cmdline_parse_token_num_t cmd_del_port_tm_node_shared_shaper_port_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_shared_shaper_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_del_port_tm_node_shared_shaper_shared_shaper_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_shared_shaper_shared_shaper_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result,
 			shared_shaper_id, RTE_UINT32);
@@ -1230,90 +1230,90 @@ struct cmd_add_port_tm_node_wred_profile_result {
 	uint16_t wq_log2_r;
 };
 
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_add =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result, add, "add");
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_port =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result, port, "port");
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_tm =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result, tm, "tm");
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_node =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result, node, "node");
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_wred =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_wred =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result, wred, "wred");
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_profile =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			profile, "profile");
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_port_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wred_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wred_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			wred_profile_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_g =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_g =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			color_g, "G#g");
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_min_th_g =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_min_th_g =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			min_th_g, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_g =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_g =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			max_th_g, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_maxp_inv_g =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_maxp_inv_g =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			maxp_inv_g, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wq_log2_g =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wq_log2_g =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			wq_log2_g, RTE_UINT16);
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_y =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_y =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			color_y, "Y#y");
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_min_th_y =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_min_th_y =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			min_th_y, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_y =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_y =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			max_th_y, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_maxp_inv_y =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_maxp_inv_y =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			maxp_inv_y, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wq_log2_y =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wq_log2_y =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			wq_log2_y, RTE_UINT16);
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_r =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_r =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			color_r, "R#r");
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_min_th_r =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_min_th_r =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			min_th_r, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_r =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_r =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			max_th_r, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_maxp_inv_r =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_maxp_inv_r =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			maxp_inv_r, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wq_log2_r =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wq_log2_r =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			wq_log2_r, RTE_UINT16);
@@ -1410,30 +1410,30 @@ struct cmd_del_port_tm_node_wred_profile_result {
 	uint32_t wred_profile_id;
 };
 
-cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_del =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_del =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result, del, "del");
-cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_port =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result, port, "port");
-cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_tm =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result, tm, "tm");
-cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_node =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result, node, "node");
-cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_wred =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_wred =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result, wred, "wred");
-cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_profile =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result,
 			profile, "profile");
-cmdline_parse_token_num_t cmd_del_port_tm_node_wred_profile_port_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_wred_profile_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_del_port_tm_node_wred_profile_wred_profile_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_wred_profile_wred_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result,
 			wred_profile_id, RTE_UINT32);
@@ -1489,36 +1489,36 @@ struct cmd_set_port_tm_node_shaper_profile_result {
 	uint32_t shaper_profile_id;
 };
 
-cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_set =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_set =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_shaper_profile_result, set, "set");
-cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_port =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_shaper_profile_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_tm =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_shaper_profile_result, tm, "tm");
-cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_node =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_shaper_profile_result,
 			node, "node");
-cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_shaper =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_shaper =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_shaper_profile_result,
 			shaper, "shaper");
-cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_profile =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_shaper_profile_result,
 			profile, "profile");
-cmdline_parse_token_num_t cmd_set_port_tm_node_shaper_profile_port_id =
+static cmdline_parse_token_num_t cmd_set_port_tm_node_shaper_profile_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_tm_node_shaper_profile_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_port_tm_node_shaper_profile_node_id =
+static cmdline_parse_token_num_t cmd_set_port_tm_node_shaper_profile_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_port_tm_node_shaper_profile_result,
 		node_id, RTE_UINT32);
-cmdline_parse_token_num_t
+static cmdline_parse_token_num_t
 	cmd_set_port_tm_node_shaper_shaper_profile_profile_id =
 		TOKEN_NUM_INITIALIZER(
 			struct cmd_set_port_tm_node_shaper_profile_result,
@@ -1590,50 +1590,50 @@ struct cmd_add_port_tm_nonleaf_node_result {
 	cmdline_multi_string_t multi_shared_shaper_id;
 };
 
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_add =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_result, add, "add");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_port =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_result, port, "port");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_tm =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_result, tm, "tm");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_nonleaf =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_nonleaf =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_result, nonleaf, "nonleaf");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_node =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_result, node, "node");
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_port_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_node_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 node_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_parent_node_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_parent_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 parent_node_id, RTE_INT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_priority =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_priority =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 priority, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_weight =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_weight =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 weight, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_level_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_level_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 level_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_shaper_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_shaper_profile_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 shaper_profile_id, RTE_INT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_n_sp_priorities =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_n_sp_priorities =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 n_sp_priorities, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_stats_mask =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_stats_mask =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 stats_mask, RTE_UINT64);
-cmdline_parse_token_string_t
+static cmdline_parse_token_string_t
 	cmd_add_port_tm_nonleaf_node_multi_shared_shaper_id =
 	TOKEN_STRING_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 multi_shared_shaper_id, TOKEN_STRING_MULTI);
@@ -1749,53 +1749,53 @@ struct cmd_add_port_tm_nonleaf_node_pmode_result {
 	cmdline_multi_string_t multi_shared_shaper_id;
 };
 
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_add =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_pmode_result, add, "add");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_port =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_pmode_result, port, "port");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_tm =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_pmode_result, tm, "tm");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_nonleaf =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_nonleaf =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_pmode_result, nonleaf, "nonleaf");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_node =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_pmode_result, node, "node");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_pktmode =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_pktmode =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_pmode_result, node, "pktmode");
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_port_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_node_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 node_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_parent_node_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_parent_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 parent_node_id, RTE_INT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_priority =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_priority =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 priority, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_weight =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_weight =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 weight, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_level_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_level_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 level_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_shaper_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_shaper_profile_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 shaper_profile_id, RTE_INT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_n_sp_priorities =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_n_sp_priorities =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 n_sp_priorities, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_stats_mask =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_stats_mask =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 stats_mask, RTE_UINT64);
-cmdline_parse_token_string_t
+static cmdline_parse_token_string_t
 	cmd_add_port_tm_nonleaf_node_pmode_multi_shrd_shpr_id =
 	TOKEN_STRING_INITIALIZER(
 			struct cmd_add_port_tm_nonleaf_node_pmode_result,
@@ -1917,52 +1917,52 @@ struct cmd_add_port_tm_leaf_node_result {
 	cmdline_multi_string_t multi_shared_shaper_id;
 };
 
-cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_add =
+static cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_leaf_node_result, add, "add");
-cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_port =
+static cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_leaf_node_result, port, "port");
-cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_tm =
+static cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_leaf_node_result, tm, "tm");
-cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_nonleaf =
+static cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_nonleaf =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_leaf_node_result, leaf, "leaf");
-cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_node =
+static cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_leaf_node_result, node, "node");
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_port_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_node_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 node_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_parent_node_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_parent_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 parent_node_id, RTE_INT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_priority =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_priority =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 priority, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_weight =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_weight =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 weight, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_level_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_level_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 level_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_shaper_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_shaper_profile_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 shaper_profile_id, RTE_INT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_cman_mode =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_cman_mode =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 cman_mode, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_wred_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_wred_profile_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 wred_profile_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_stats_mask =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_stats_mask =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 stats_mask, RTE_UINT64);
-cmdline_parse_token_string_t
+static cmdline_parse_token_string_t
 	cmd_add_port_tm_leaf_node_multi_shared_shaper_id =
 	TOKEN_STRING_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 multi_shared_shaper_id, TOKEN_STRING_MULTI);
@@ -2071,22 +2071,22 @@ struct cmd_del_port_tm_node_result {
 	uint32_t node_id;
 };
 
-cmdline_parse_token_string_t cmd_del_port_tm_node_del =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_del =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_result, del, "del");
-cmdline_parse_token_string_t cmd_del_port_tm_node_port =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_result, port, "port");
-cmdline_parse_token_string_t cmd_del_port_tm_node_tm =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_result, tm, "tm");
-cmdline_parse_token_string_t cmd_del_port_tm_node_node =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_result, node, "node");
-cmdline_parse_token_num_t cmd_del_port_tm_node_port_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_del_port_tm_node_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_del_port_tm_node_node_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_del_port_tm_node_result,
 		node_id, RTE_UINT32);
 
@@ -2146,36 +2146,36 @@ struct cmd_set_port_tm_node_parent_result {
 	uint32_t weight;
 };
 
-cmdline_parse_token_string_t cmd_set_port_tm_node_parent_set =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_parent_set =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_parent_result, set, "set");
-cmdline_parse_token_string_t cmd_set_port_tm_node_parent_port =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_parent_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_parent_result, port, "port");
-cmdline_parse_token_string_t cmd_set_port_tm_node_parent_tm =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_parent_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_parent_result, tm, "tm");
-cmdline_parse_token_string_t cmd_set_port_tm_node_parent_node =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_parent_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_parent_result, node, "node");
-cmdline_parse_token_string_t cmd_set_port_tm_node_parent_parent =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_parent_parent =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_parent_result, parent, "parent");
-cmdline_parse_token_num_t cmd_set_port_tm_node_parent_port_id =
+static cmdline_parse_token_num_t cmd_set_port_tm_node_parent_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_tm_node_parent_result, port_id,
 		RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_port_tm_node_parent_node_id =
+static cmdline_parse_token_num_t cmd_set_port_tm_node_parent_node_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_tm_node_parent_result, node_id,
 		RTE_UINT32);
-cmdline_parse_token_num_t cmd_set_port_tm_node_parent_parent_id =
+static cmdline_parse_token_num_t cmd_set_port_tm_node_parent_parent_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_port_tm_node_parent_result,
 		parent_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_set_port_tm_node_parent_priority =
+static cmdline_parse_token_num_t cmd_set_port_tm_node_parent_priority =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_port_tm_node_parent_result,
 		priority, RTE_UINT32);
-cmdline_parse_token_num_t cmd_set_port_tm_node_parent_weight =
+static cmdline_parse_token_num_t cmd_set_port_tm_node_parent_weight =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_port_tm_node_parent_result,
 		weight, RTE_UINT32);
 
@@ -2239,23 +2239,23 @@ struct cmd_suspend_port_tm_node_result {
 	uint32_t node_id;
 };
 
-cmdline_parse_token_string_t cmd_suspend_port_tm_node_suspend =
+static cmdline_parse_token_string_t cmd_suspend_port_tm_node_suspend =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_suspend_port_tm_node_result, suspend, "suspend");
-cmdline_parse_token_string_t cmd_suspend_port_tm_node_port =
+static cmdline_parse_token_string_t cmd_suspend_port_tm_node_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_suspend_port_tm_node_result, port, "port");
-cmdline_parse_token_string_t cmd_suspend_port_tm_node_tm =
+static cmdline_parse_token_string_t cmd_suspend_port_tm_node_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_suspend_port_tm_node_result, tm, "tm");
-cmdline_parse_token_string_t cmd_suspend_port_tm_node_node =
+static cmdline_parse_token_string_t cmd_suspend_port_tm_node_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_suspend_port_tm_node_result, node, "node");
-cmdline_parse_token_num_t cmd_suspend_port_tm_node_port_id =
+static cmdline_parse_token_num_t cmd_suspend_port_tm_node_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_suspend_port_tm_node_result, port_id,
 		RTE_UINT16);
-cmdline_parse_token_num_t cmd_suspend_port_tm_node_node_id =
+static cmdline_parse_token_num_t cmd_suspend_port_tm_node_node_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_suspend_port_tm_node_result, node_id,
 		RTE_UINT32);
@@ -2306,22 +2306,22 @@ struct cmd_resume_port_tm_node_result {
 	uint32_t node_id;
 };
 
-cmdline_parse_token_string_t cmd_resume_port_tm_node_resume =
+static cmdline_parse_token_string_t cmd_resume_port_tm_node_resume =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_resume_port_tm_node_result, resume, "resume");
-cmdline_parse_token_string_t cmd_resume_port_tm_node_port =
+static cmdline_parse_token_string_t cmd_resume_port_tm_node_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_resume_port_tm_node_result, port, "port");
-cmdline_parse_token_string_t cmd_resume_port_tm_node_tm =
+static cmdline_parse_token_string_t cmd_resume_port_tm_node_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_resume_port_tm_node_result, tm, "tm");
-cmdline_parse_token_string_t cmd_resume_port_tm_node_node =
+static cmdline_parse_token_string_t cmd_resume_port_tm_node_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_resume_port_tm_node_result, node, "node");
-cmdline_parse_token_num_t cmd_resume_port_tm_node_port_id =
+static cmdline_parse_token_num_t cmd_resume_port_tm_node_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_resume_port_tm_node_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_resume_port_tm_node_node_id =
+static cmdline_parse_token_num_t cmd_resume_port_tm_node_node_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_resume_port_tm_node_result, node_id, RTE_UINT32);
 
@@ -2371,24 +2371,24 @@ struct cmd_port_tm_hierarchy_commit_result {
 	cmdline_fixed_string_t clean_on_fail;
 };
 
-cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_port =
+static cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_port_tm_hierarchy_commit_result, port, "port");
-cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_tm =
+static cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_port_tm_hierarchy_commit_result, tm, "tm");
-cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_hierarchy =
+static cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_hierarchy =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_port_tm_hierarchy_commit_result,
 			hierarchy, "hierarchy");
-cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_commit =
+static cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_commit =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_port_tm_hierarchy_commit_result, commit, "commit");
-cmdline_parse_token_num_t cmd_port_tm_hierarchy_commit_port_id =
+static cmdline_parse_token_num_t cmd_port_tm_hierarchy_commit_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_port_tm_hierarchy_commit_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_clean_on_fail =
+static cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_clean_on_fail =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_hierarchy_commit_result,
 		 clean_on_fail, "yes#no");
 
@@ -2446,36 +2446,36 @@ struct cmd_port_tm_mark_ip_ecn_result {
 	uint16_t red;
 };
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_set =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 				 set, "set");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_port =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 				 port, "port");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_tm =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_tm =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result, tm,
 				 "tm");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_mark =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_mark =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 				 mark, "mark");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_ip_ecn =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_ip_ecn =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 				 ip_ecn, "ip_ecn");
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_port_id =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_green =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_green =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 			      green, RTE_UINT16);
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_yellow =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_yellow =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 			      yellow, RTE_UINT16);
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_red =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_red =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 				red, RTE_UINT16);
 
@@ -2533,36 +2533,36 @@ struct cmd_port_tm_mark_ip_dscp_result {
 	uint16_t red;
 };
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_set =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 				 set, "set");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_port =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 				 port, "port");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_tm =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_tm =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result, tm,
 				 "tm");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_mark =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_mark =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 				 mark, "mark");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_ip_dscp =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_ip_dscp =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 				 ip_dscp, "ip_dscp");
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_port_id =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_green =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_green =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 				green, RTE_UINT16);
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_yellow =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_yellow =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 				yellow, RTE_UINT16);
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_red =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_red =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 				red, RTE_UINT16);
 
@@ -2620,36 +2620,36 @@ struct cmd_port_tm_mark_vlan_dei_result {
 	uint16_t red;
 };
 
-cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_set =
+static cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 				 set, "set");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_port =
+static cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 				 port, "port");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_tm =
+static cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_tm =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result, tm,
 				 "tm");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_mark =
+static cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_mark =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 				 mark, "mark");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_vlan_dei =
+static cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_vlan_dei =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 				 vlan_dei, "vlan_dei");
-cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_port_id =
+static cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_green =
+static cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_green =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 				green, RTE_UINT16);
-cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_yellow =
+static cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_yellow =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 				yellow, RTE_UINT16);
-cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_red =
+static cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_red =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 				red, RTE_UINT16);
 
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [PATCH 2/6] app/testpmd: register driver specific commands
  2022-05-23  7:10 ` [PATCH 0/6] " David Marchand
  2022-05-23  7:10   ` [PATCH 1/6] app/testpmd: mark most cmdline symbols as static David Marchand
@ 2022-05-23  7:10   ` David Marchand
  2022-05-23 18:10     ` Ferruh Yigit
  2022-05-24 17:21     ` Thomas Monjalon
  2022-05-23  7:10   ` [PATCH 3/6] net/bonding: move testpmd commands David Marchand
                     ` (4 subsequent siblings)
  6 siblings, 2 replies; 65+ messages in thread
From: David Marchand @ 2022-05-23  7:10 UTC (permalink / raw)
  To: dev
  Cc: thomas, andrew.rybchenko, ferruh.yigit, Xiaoyun Li, Aman Singh,
	Yuying Zhang, Bruce Richardson

Introduce a testpmd API so that drivers can register specific commands.

A driver can list some files to compile with testpmd, by setting them
in the testpmd_sources (driver local) meson variable.
drivers/meson.build then takes care of appending this to a global meson
variable, and adding the driver to testpmd dependency.

Note: testpmd.h is fixed to that it is self sufficient when being
included.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since RFC v2:
- fixed registering issue (again..),
- updated internals and names of structure so that a usage string is
  associated to each cmdline ctx,
- updated documentation,

Changes since RFC v1:
- fixed registering issue,

---
 app/test-pmd/cmdline.c                      | 85 +++++++++++++++++++--
 app/test-pmd/meson.build                    |  5 ++
 app/test-pmd/testpmd.c                      |  4 +
 app/test-pmd/testpmd.h                      | 23 ++++++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst | 27 ++++---
 drivers/meson.build                         |  5 ++
 meson.build                                 |  2 +
 7 files changed, 134 insertions(+), 17 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 498fe2c2b7..cd7724d4e3 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -69,6 +69,9 @@
 #include "bpf_cmd.h"
 
 static struct cmdline *testpmd_cl;
+static cmdline_parse_ctx_t *main_ctx;
+static TAILQ_HEAD(, testpmd_commands) commands_head =
+	TAILQ_HEAD_INITIALIZER(commands_head);
 
 static void cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue);
 
@@ -93,7 +96,8 @@ static void cmd_help_brief_parsed(__rte_unused void *parsed_result,
 		"    help registers                  : Reading and setting port registers.\n"
 		"    help filters                    : Filters configuration help.\n"
 		"    help traffic_management         : Traffic Management commands.\n"
-		"    help devices                    : Device related cmds.\n"
+		"    help devices                    : Device related commands.\n"
+		"    help drivers                    : Driver specific commands.\n"
 		"    help all                        : All of the above sections.\n\n"
 	);
 
@@ -1177,6 +1181,21 @@ static void cmd_help_long_parsed(void *parsed_result,
 		);
 	}
 
+	if (show_all || !strcmp(res->section, "drivers")) {
+		struct testpmd_commands *c;
+		unsigned int i;
+
+		cmdline_printf(
+			cl,
+			"\n"
+			"Driver specific:\n"
+			"----------------\n"
+		);
+		TAILQ_FOREACH(c, &commands_head, next) {
+			for (i = 0; c->commands[i].ctx != NULL; i++)
+				cmdline_printf(cl, "%s\n", c->commands[i].help);
+		}
+	}
 }
 
 static cmdline_parse_token_string_t cmd_help_long_help =
@@ -1184,14 +1203,14 @@ static cmdline_parse_token_string_t cmd_help_long_help =
 
 static cmdline_parse_token_string_t cmd_help_long_section =
 	TOKEN_STRING_INITIALIZER(struct cmd_help_long_result, section,
-			"all#control#display#config#"
-			"ports#registers#filters#traffic_management#devices");
+		"all#control#display#config#ports#registers#"
+		"filters#traffic_management#devices#drivers");
 
 static cmdline_parse_inst_t cmd_help_long = {
 	.f = cmd_help_long_parsed,
 	.data = NULL,
 	.help_str = "help all|control|display|config|ports|register|"
-		"filters|traffic_management|devices: "
+		"filters|traffic_management|devices|drivers: "
 		"Show help",
 	.tokens = {
 		(void *)&cmd_help_long_help,
@@ -17800,7 +17819,7 @@ static cmdline_parse_inst_t cmd_show_port_flow_transfer_proxy = {
 /* ******************************************************************************** */
 
 /* list of instructions */
-static cmdline_parse_ctx_t main_ctx[] = {
+static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_help_brief,
 	(cmdline_parse_inst_t *)&cmd_help_long,
 	(cmdline_parse_inst_t *)&cmd_quit,
@@ -18086,6 +18105,59 @@ static cmdline_parse_ctx_t main_ctx[] = {
 	NULL,
 };
 
+void
+testpmd_add_commands(struct testpmd_commands *c)
+{
+	TAILQ_INSERT_TAIL(&commands_head, c, next);
+}
+
+int
+init_cmdline(void)
+{
+	struct testpmd_commands *c;
+	cmdline_parse_ctx_t *ctx;
+	unsigned int count = 0;
+	unsigned int i;
+
+	/* initialize non-constant commands */
+	cmd_set_fwd_mode_init();
+	cmd_set_fwd_retry_mode_init();
+
+	main_ctx = NULL;
+	for (i = 0; builtin_ctx[i] != NULL; i++) {
+		ctx = realloc(main_ctx, (count + i + 1) * sizeof(*ctx));
+		if (ctx == NULL)
+			goto err;
+		main_ctx = ctx;
+		main_ctx[count + i] = builtin_ctx[i];
+	}
+	count += i;
+
+	TAILQ_FOREACH(c, &commands_head, next) {
+		for (i = 0; c->commands[i].ctx != NULL; i++) {
+			ctx = realloc(main_ctx, (count + i + 1) * sizeof(*ctx));
+			if (ctx == NULL)
+				goto err;
+			main_ctx = ctx;
+			main_ctx[count + i] = c->commands[i].ctx;
+		}
+		count += i;
+	}
+
+	/* cmdline expects a NULL terminated array */
+	ctx = realloc(main_ctx, (count + 1) * sizeof(*ctx));
+	if (ctx == NULL)
+		goto err;
+	main_ctx = ctx;
+	main_ctx[count] = NULL;
+	count += 1;
+
+	return 0;
+err:
+	free(main_ctx);
+	return -1;
+}
+
 /* read cmdline commands from file */
 void
 cmdline_read_from_file(const char *filename)
@@ -18113,9 +18185,6 @@ void
 prompt(void)
 {
 	int ret;
-	/* initialize non-constant commands */
-	cmd_set_fwd_mode_init();
-	cmd_set_fwd_retry_mode_init();
 
 	testpmd_cl = cmdline_stdin_new(main_ctx, "testpmd> ");
 	if (testpmd_cl == NULL)
diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index 43130c8856..46a7511e9a 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -73,3 +73,8 @@ endif
 if dpdk_conf.has('RTE_NET_DPAA')
     deps += ['bus_dpaa', 'mempool_dpaa', 'net_dpaa']
 endif
+
+# Driver specific sources include some testpmd headers.
+includes = include_directories('.')
+sources += testpmd_drivers_sources
+deps += testpmd_drivers_deps
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 79bb23264b..93ec930b15 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -4275,6 +4275,10 @@ main(int argc, char** argv)
 	}
 #endif
 #ifdef RTE_LIB_CMDLINE
+	if (init_cmdline() != 0)
+		rte_exit(EXIT_FAILURE,
+			"Could not initialise cmdline context.\n");
+
 	if (strlen(cmdline_filename) != 0)
 		cmdline_read_from_file(cmdline_filename);
 
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index 31f766c965..54d2cd09e9 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -16,7 +16,13 @@
 #include <rte_gso.h>
 #endif
 #include <rte_os_shim.h>
+#include <rte_ethdev.h>
+#include <rte_flow.h>
+#include <rte_mbuf_dyn.h>
+
 #include <cmdline.h>
+#include <cmdline_parse.h>
+
 #include <sys/queue.h>
 #ifdef RTE_HAS_JANSSON
 #include <jansson.h>
@@ -866,6 +872,7 @@ unsigned int parse_item_list(const char *str, const char *item_name,
 			unsigned int *parsed_items, int check_unique_values);
 void launch_args_parse(int argc, char** argv);
 void cmdline_read_from_file(const char *filename);
+int init_cmdline(void);
 void prompt(void);
 void prompt_exit(void);
 void nic_stats_display(portid_t port_id);
@@ -1169,6 +1176,22 @@ extern int flow_parse(const char *src, void *result, unsigned int size,
 		      struct rte_flow_item **pattern,
 		      struct rte_flow_action **actions);
 
+/* For registering testpmd commands. */
+struct testpmd_commands {
+	TAILQ_ENTRY(testpmd_commands) next;
+	struct {
+		cmdline_parse_inst_t *ctx;
+		const char *help;
+	} commands[];
+};
+
+extern void testpmd_add_commands(struct testpmd_commands *c);
+#define TESTPMD_ADD_DRIVER_COMMANDS(c) \
+RTE_INIT(__##c) \
+{ \
+	testpmd_add_commands(&c); \
+}
+
 /*
  * Work-around of a compilation error with ICC on invocations of the
  * rte_be_to_cpu_16() function.
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index 1083c6d538..bbeba554eb 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -49,15 +49,18 @@ These are divided into sections and can be accessed using help, help section or
 .. code-block:: console
 
    testpmd> help
-
-       help control    : Start and stop forwarding.
-       help display    : Displaying port, stats and config information.
-       help config     : Configuration information.
-       help ports      : Configuring ports.
-       help registers  : Reading and setting port registers.
-       help filters    : Filters configuration help.
-       help all        : All of the above sections.
-
+       Help is available for the following sections:
+
+           help control                    : Start and stop forwarding.
+           help display                    : Displaying port, stats and config information.
+           help config                     : Configuration information.
+           help ports                      : Configuring ports.
+           help registers                  : Reading and setting port registers.
+           help filters                    : Filters configuration help.
+           help traffic_management         : Traffic Management commands.
+           help devices                    : Device related commands.
+           help drivers                    : Driver specific commands.
+           help all                        : All of the above sections.
 
 Command File Functions
 ----------------------
@@ -5702,3 +5705,9 @@ Flex pattern can be shared between ports.
 
    testpmd> flow create 0 ingress pattern eth / ipv4 / udp / flex item is 3 pattern is 2 / end actions mark id 1 / queue index 0 / end
    Flow rule #0 created
+
+Driver specific commands
+------------------------
+
+Some drivers provide specific features.
+See:
diff --git a/drivers/meson.build b/drivers/meson.build
index 1d8123b00c..4daa2658b7 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -102,6 +102,7 @@ foreach subpath:subdirs
         # static builds.
         ext_deps = []
         pkgconfig_extra_libs = []
+        testpmd_sources = []
 
         if not enable_drivers.contains(drv_path)
             build = false
@@ -246,6 +247,10 @@ foreach subpath:subdirs
         set_variable('shared_@0@'.format(lib_name), shared_dep)
         set_variable('static_@0@'.format(lib_name), static_dep)
         dependency_name = ''.join(lib_name.split('rte_'))
+        if testpmd_sources.length() != 0
+            testpmd_drivers_sources += testpmd_sources
+            testpmd_drivers_deps += dependency_name
+        endif
         if developer_mode
             message('drivers/@0@: Defining dependency "@1@"'.format(
                     drv_path, dependency_name))
diff --git a/meson.build b/meson.build
index 937f6110c0..5561171617 100644
--- a/meson.build
+++ b/meson.build
@@ -42,6 +42,8 @@ dpdk_drivers = []
 dpdk_extra_ldflags = []
 dpdk_libs_disabled = []
 dpdk_drvs_disabled = []
+testpmd_drivers_sources = []
+testpmd_drivers_deps = []
 abi_version_file = files('ABI_VERSION')
 
 if host_machine.cpu_family().startswith('x86')
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [PATCH 3/6] net/bonding: move testpmd commands
  2022-05-23  7:10 ` [PATCH 0/6] " David Marchand
  2022-05-23  7:10   ` [PATCH 1/6] app/testpmd: mark most cmdline symbols as static David Marchand
  2022-05-23  7:10   ` [PATCH 2/6] app/testpmd: register driver specific commands David Marchand
@ 2022-05-23  7:10   ` David Marchand
  2022-05-23 18:10     ` Ferruh Yigit
  2022-06-17  5:06     ` [PATCH v2] " David Marchand
  2022-05-23  7:10   ` [PATCH 4/6] net/i40e: " David Marchand
                     ` (3 subsequent siblings)
  6 siblings, 2 replies; 65+ messages in thread
From: David Marchand @ 2022-05-23  7:10 UTC (permalink / raw)
  To: dev
  Cc: thomas, andrew.rybchenko, ferruh.yigit, Xiaoyun Li, Aman Singh,
	Yuying Zhang, Chas Williams, Min Hu (Connor)

Move related specific testpmd commands into this driver directory.
While at it, fix checkpatch warnings.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since RFC v2
- renamed file in net/bonding,
- fixed some indent,
- updated documentation,

---
 app/test-pmd/cmdline.c                        | 1035 -----------------
 app/test-pmd/meson.build                      |    3 -
 .../link_bonding_poll_mode_drv_lib.rst        |  143 +++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst   |  140 +--
 drivers/net/bonding/bonding_testpmd.c         | 1029 ++++++++++++++++
 drivers/net/bonding/meson.build               |    1 +
 6 files changed, 1176 insertions(+), 1175 deletions(-)
 create mode 100644 drivers/net/bonding/bonding_testpmd.c

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index cd7724d4e3..439b6b062c 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -47,10 +47,6 @@
 #include <cmdline_parse_etheraddr.h>
 #include <cmdline_socket.h>
 #include <cmdline.h>
-#ifdef RTE_NET_BOND
-#include <rte_eth_bond.h>
-#include <rte_eth_bond_8023ad.h>
-#endif
 #if defined RTE_BUS_DPAA && defined RTE_NET_DPAA
 #include <rte_pmd_dpaa.h>
 #endif
@@ -614,44 +610,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"   Show the bypass configuration for a bypass enabled NIC"
 			" using the lowest port on the NIC.\n\n"
 
-#ifdef RTE_NET_BOND
-			"create bonded device (mode) (socket)\n"
-			"	Create a new bonded device with specific bonding mode and socket.\n\n"
-
-			"add bonding slave (slave_id) (port_id)\n"
-			"	Add a slave device to a bonded device.\n\n"
-
-			"remove bonding slave (slave_id) (port_id)\n"
-			"	Remove a slave device from a bonded device.\n\n"
-
-			"set bonding mode (value) (port_id)\n"
-			"	Set the bonding mode on a bonded device.\n\n"
-
-			"set bonding primary (slave_id) (port_id)\n"
-			"	Set the primary slave for a bonded device.\n\n"
-
-			"show bonding config (port_id)\n"
-			"	Show the bonding config for port_id.\n\n"
-
-			"show bonding lacp info (port_id)\n"
-			"	Show the bonding lacp information for port_id.\n\n"
-
-			"set bonding mac_addr (port_id) (address)\n"
-			"	Set the MAC address of a bonded device.\n\n"
-
-			"set bonding mode IEEE802.3AD aggregator policy (port_id) (agg_name)"
-			"	Set Aggregation mode for IEEE802.3AD (mode 4)"
-
-			"set bonding balance_xmit_policy (port_id) (l2|l23|l34)\n"
-			"	Set the transmit balance policy for bonded device running in balance mode.\n\n"
-
-			"set bonding mon_period (port_id) (value)\n"
-			"	Set the bonding link status monitoring polling period in ms.\n\n"
-
-			"set bonding lacp dedicated_queues <port_id> (enable|disable)\n"
-			"	Enable/disable dedicated queues for LACP control traffic.\n\n"
-
-#endif
 			"set link-up port (port_id)\n"
 			"	Set link up for a port.\n\n"
 
@@ -5921,985 +5879,6 @@ static cmdline_parse_inst_t cmd_show_bypass_config = {
 	},
 };
 
-#ifdef RTE_NET_BOND
-/* *** SET BONDING MODE *** */
-struct cmd_set_bonding_mode_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t mode;
-	uint8_t value;
-	portid_t port_id;
-};
-
-static void cmd_set_bonding_mode_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_mode_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	struct rte_port *port = &ports[port_id];
-
-	/*
-	 * Bonding mode changed means resources of device changed, like whether
-	 * started rte timer or not. Device should be restarted when resources
-	 * of device changed.
-	 */
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr,
-			"\t Error: Can't set bonding mode when port %d is not stopped\n",
-			port_id);
-		return;
-	}
-
-	/* Set the bonding mode for the relevant port. */
-	if (0 != rte_eth_bond_mode_set(port_id, res->value))
-		fprintf(stderr, "\t Failed to set bonding mode for port = %d.\n",
-			port_id);
-}
-
-static cmdline_parse_token_string_t cmd_setbonding_mode_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
-		set, "set");
-static cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_setbonding_mode_mode =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
-		mode, "mode");
-static cmdline_parse_token_num_t cmd_setbonding_mode_value =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
-		value, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_setbonding_mode_port =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
-		port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_set_bonding_mode = {
-		.f = cmd_set_bonding_mode_parsed,
-		.help_str = "set bonding mode <mode_value> <port_id>: "
-			"Set the bonding mode for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *) &cmd_setbonding_mode_set,
-				(void *) &cmd_setbonding_mode_bonding,
-				(void *) &cmd_setbonding_mode_mode,
-				(void *) &cmd_setbonding_mode_value,
-				(void *) &cmd_setbonding_mode_port,
-				NULL
-		}
-};
-
-/* *** SET BONDING SLOW_QUEUE SW/HW *** */
-struct cmd_set_bonding_lacp_dedicated_queues_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t lacp;
-	cmdline_fixed_string_t dedicated_queues;
-	portid_t port_id;
-	cmdline_fixed_string_t mode;
-};
-
-static void cmd_set_bonding_lacp_dedicated_queues_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_lacp_dedicated_queues_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	struct rte_port *port;
-
-	port = &ports[port_id];
-
-	/** Check if the port is not started **/
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr, "Please stop port %d first\n", port_id);
-		return;
-	}
-
-	if (!strcmp(res->mode, "enable")) {
-		if (rte_eth_bond_8023ad_dedicated_queues_enable(port_id) == 0)
-			printf("Dedicate queues for LACP control packets"
-					" enabled\n");
-		else
-			printf("Enabling dedicate queues for LACP control "
-					"packets on port %d failed\n", port_id);
-	} else if (!strcmp(res->mode, "disable")) {
-		if (rte_eth_bond_8023ad_dedicated_queues_disable(port_id) == 0)
-			printf("Dedicated queues for LACP control packets "
-					"disabled\n");
-		else
-			printf("Disabling dedicated queues for LACP control "
-					"traffic on port %d failed\n", port_id);
-	}
-}
-
-static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		set, "set");
-static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		lacp, "lacp");
-static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		dedicated_queues, "dedicated_queues");
-static cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		mode, "enable#disable");
-
-static cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
-		.f = cmd_set_bonding_lacp_dedicated_queues_parsed,
-		.help_str = "set bonding lacp dedicated_queues <port_id> "
-			"enable|disable: "
-			"Enable/disable dedicated queues for LACP control traffic for port_id",
-		.data = NULL,
-		.tokens = {
-			(void *)&cmd_setbonding_lacp_dedicated_queues_set,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_bonding,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_lacp,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_dedicated_queues,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_port_id,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_mode,
-			NULL
-		}
-};
-
-/* *** SET BALANCE XMIT POLICY *** */
-struct cmd_set_bonding_balance_xmit_policy_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t balance_xmit_policy;
-	portid_t port_id;
-	cmdline_fixed_string_t policy;
-};
-
-static void cmd_set_bonding_balance_xmit_policy_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_balance_xmit_policy_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	uint8_t policy;
-
-	if (!strcmp(res->policy, "l2")) {
-		policy = BALANCE_XMIT_POLICY_LAYER2;
-	} else if (!strcmp(res->policy, "l23")) {
-		policy = BALANCE_XMIT_POLICY_LAYER23;
-	} else if (!strcmp(res->policy, "l34")) {
-		policy = BALANCE_XMIT_POLICY_LAYER34;
-	} else {
-		fprintf(stderr, "\t Invalid xmit policy selection");
-		return;
-	}
-
-	/* Set the bonding mode for the relevant port. */
-	if (0 != rte_eth_bond_xmit_policy_set(port_id, policy)) {
-		fprintf(stderr,
-			"\t Failed to set bonding balance xmit policy for port = %d.\n",
-			port_id);
-	}
-}
-
-static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		set, "set");
-static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		balance_xmit_policy, "balance_xmit_policy");
-static cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		policy, "l2#l23#l34");
-
-static cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
-		.f = cmd_set_bonding_balance_xmit_policy_parsed,
-		.help_str = "set bonding balance_xmit_policy <port_id> "
-			"l2|l23|l34: "
-			"Set the bonding balance_xmit_policy for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_setbonding_balance_xmit_policy_set,
-				(void *)&cmd_setbonding_balance_xmit_policy_bonding,
-				(void *)&cmd_setbonding_balance_xmit_policy_balance_xmit_policy,
-				(void *)&cmd_setbonding_balance_xmit_policy_port,
-				(void *)&cmd_setbonding_balance_xmit_policy_policy,
-				NULL
-		}
-};
-
-/* *** SHOW IEEE802.3 BONDING INFORMATION *** */
-struct cmd_show_bonding_lacp_info_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t lacp;
-	cmdline_fixed_string_t info;
-	portid_t port_id;
-};
-
-static void port_param_show(struct port_params *params)
-{
-	char buf[RTE_ETHER_ADDR_FMT_SIZE];
-
-	printf("\t\tsystem priority: %u\n", params->system_priority);
-	rte_ether_format_addr(buf, RTE_ETHER_ADDR_FMT_SIZE, &params->system);
-	printf("\t\tsystem mac address: %s\n", buf);
-	printf("\t\tport key: %u\n", params->key);
-	printf("\t\tport priority: %u\n", params->port_priority);
-	printf("\t\tport number: %u\n", params->port_number);
-}
-
-static void lacp_slave_info_show(struct rte_eth_bond_8023ad_slave_info *info)
-{
-	char a_state[256] = { 0 };
-	char p_state[256] = { 0 };
-	int a_len = 0;
-	int p_len = 0;
-	uint32_t i;
-
-	static const char * const state[] = {
-		"ACTIVE",
-		"TIMEOUT",
-		"AGGREGATION",
-		"SYNCHRONIZATION",
-		"COLLECTING",
-		"DISTRIBUTING",
-		"DEFAULTED",
-		"EXPIRED"
-	};
-	static const char * const selection[] = {
-		"UNSELECTED",
-		"STANDBY",
-		"SELECTED"
-	};
-
-	for (i = 0; i < RTE_DIM(state); i++) {
-		if ((info->actor_state >> i) & 1)
-			a_len += snprintf(&a_state[a_len],
-						RTE_DIM(a_state) - a_len, "%s ",
-						state[i]);
-
-		if ((info->partner_state >> i) & 1)
-			p_len += snprintf(&p_state[p_len],
-						RTE_DIM(p_state) - p_len, "%s ",
-						state[i]);
-	}
-	printf("\tAggregator port id: %u\n", info->agg_port_id);
-	printf("\tselection: %s\n", selection[info->selected]);
-	printf("\tActor detail info:\n");
-	port_param_show(&info->actor);
-	printf("\t\tport state: %s\n", a_state);
-	printf("\tPartner detail info:\n");
-	port_param_show(&info->partner);
-	printf("\t\tport state: %s\n", p_state);
-	printf("\n");
-}
-
-static void lacp_conf_show(struct rte_eth_bond_8023ad_conf *conf)
-{
-	printf("\tfast period: %u ms\n", conf->fast_periodic_ms);
-	printf("\tslow period: %u ms\n", conf->slow_periodic_ms);
-	printf("\tshort timeout: %u ms\n", conf->short_timeout_ms);
-	printf("\tlong timeout: %u ms\n", conf->long_timeout_ms);
-	printf("\taggregate wait timeout: %u ms\n",
-			conf->aggregate_wait_timeout_ms);
-	printf("\ttx period: %u ms\n", conf->tx_period_ms);
-	printf("\trx marker period: %u ms\n", conf->rx_marker_period_ms);
-	printf("\tupdate timeout: %u ms\n", conf->update_timeout_ms);
-	switch (conf->agg_selection) {
-	case AGG_BANDWIDTH:
-		printf("\taggregation mode: bandwidth\n");
-		break;
-	case AGG_STABLE:
-		printf("\taggregation mode: stable\n");
-		break;
-	case AGG_COUNT:
-		printf("\taggregation mode: count\n");
-		break;
-	default:
-		printf("\taggregation mode: invalid\n");
-		break;
-	}
-
-	printf("\n");
-}
-
-static void cmd_show_bonding_lacp_info_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_show_bonding_lacp_info_result *res = parsed_result;
-	struct rte_eth_bond_8023ad_slave_info slave_info;
-	struct rte_eth_bond_8023ad_conf port_conf;
-	portid_t slaves[RTE_MAX_ETHPORTS];
-	portid_t port_id = res->port_id;
-	int num_active_slaves;
-	int bonding_mode;
-	int i;
-	int ret;
-
-	bonding_mode = rte_eth_bond_mode_get(port_id);
-	if (bonding_mode != BONDING_MODE_8023AD) {
-		fprintf(stderr, "\tBonding mode is not mode 4\n");
-		return;
-	}
-
-	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
-			RTE_MAX_ETHPORTS);
-	if (num_active_slaves < 0) {
-		fprintf(stderr, "\tFailed to get active slave list for port = %u\n",
-				port_id);
-		return;
-	}
-	if (num_active_slaves == 0)
-		fprintf(stderr, "\tIEEE802.3 port %u has no active slave\n",
-			port_id);
-
-	printf("\tIEEE802.3 port: %u\n", port_id);
-	ret = rte_eth_bond_8023ad_conf_get(port_id, &port_conf);
-	if (ret) {
-		fprintf(stderr, "\tGet bonded device %u info failed\n",
-			port_id);
-		return;
-	}
-	lacp_conf_show(&port_conf);
-
-	for (i = 0; i < num_active_slaves; i++) {
-		ret = rte_eth_bond_8023ad_slave_info(port_id, slaves[i],
-				&slave_info);
-		if (ret) {
-			fprintf(stderr, "\tGet slave device %u info failed\n",
-				slaves[i]);
-			return;
-		}
-		printf("\tSlave Port: %u\n", slaves[i]);
-		lacp_slave_info_show(&slave_info);
-	}
-}
-
-static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		show, "show");
-static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		bonding, "lacp");
-static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		info, "info");
-static cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
-TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
-		.f = cmd_show_bonding_lacp_info_parsed,
-		.help_str = "show bonding lacp info <port_id> : "
-			"Show bonding IEEE802.3 information for port_id",
-		.data = NULL,
-		.tokens = {
-			(void *)&cmd_show_bonding_lacp_info_show,
-			(void *)&cmd_show_bonding_lacp_info_bonding,
-			(void *)&cmd_show_bonding_lacp_info_lacp,
-			(void *)&cmd_show_bonding_lacp_info_info,
-			(void *)&cmd_show_bonding_lacp_info_port_id,
-			NULL
-		}
-};
-
-/* *** SHOW NIC BONDING CONFIGURATION *** */
-struct cmd_show_bonding_config_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t config;
-	portid_t port_id;
-};
-
-static void cmd_show_bonding_config_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_show_bonding_config_result *res = parsed_result;
-	int bonding_mode, agg_mode;
-	portid_t slaves[RTE_MAX_ETHPORTS];
-	int num_slaves, num_active_slaves;
-	int primary_id;
-	int i;
-	portid_t port_id = res->port_id;
-
-	/* Display the bonding mode.*/
-	bonding_mode = rte_eth_bond_mode_get(port_id);
-	if (bonding_mode < 0) {
-		fprintf(stderr, "\tFailed to get bonding mode for port = %d\n",
-			port_id);
-		return;
-	} else
-		printf("\tBonding mode: %d\n", bonding_mode);
-
-	if (bonding_mode == BONDING_MODE_BALANCE ||
-		bonding_mode == BONDING_MODE_8023AD) {
-		int balance_xmit_policy;
-
-		balance_xmit_policy = rte_eth_bond_xmit_policy_get(port_id);
-		if (balance_xmit_policy < 0) {
-			fprintf(stderr,
-				"\tFailed to get balance xmit policy for port = %d\n",
-				port_id);
-			return;
-		} else {
-			printf("\tBalance Xmit Policy: ");
-
-			switch (balance_xmit_policy) {
-			case BALANCE_XMIT_POLICY_LAYER2:
-				printf("BALANCE_XMIT_POLICY_LAYER2");
-				break;
-			case BALANCE_XMIT_POLICY_LAYER23:
-				printf("BALANCE_XMIT_POLICY_LAYER23");
-				break;
-			case BALANCE_XMIT_POLICY_LAYER34:
-				printf("BALANCE_XMIT_POLICY_LAYER34");
-				break;
-			}
-			printf("\n");
-		}
-	}
-
-	if (bonding_mode == BONDING_MODE_8023AD) {
-		agg_mode = rte_eth_bond_8023ad_agg_selection_get(port_id);
-		printf("\tIEEE802.3AD Aggregator Mode: ");
-		switch (agg_mode) {
-		case AGG_BANDWIDTH:
-			printf("bandwidth");
-			break;
-		case AGG_STABLE:
-			printf("stable");
-			break;
-		case AGG_COUNT:
-			printf("count");
-			break;
-		}
-		printf("\n");
-	}
-
-	num_slaves = rte_eth_bond_slaves_get(port_id, slaves, RTE_MAX_ETHPORTS);
-
-	if (num_slaves < 0) {
-		fprintf(stderr, "\tFailed to get slave list for port = %d\n",
-			port_id);
-		return;
-	}
-	if (num_slaves > 0) {
-		printf("\tSlaves (%d): [", num_slaves);
-		for (i = 0; i < num_slaves - 1; i++)
-			printf("%d ", slaves[i]);
-
-		printf("%d]\n", slaves[num_slaves - 1]);
-	} else {
-		printf("\tSlaves: []\n");
-
-	}
-
-	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
-			RTE_MAX_ETHPORTS);
-
-	if (num_active_slaves < 0) {
-		fprintf(stderr,
-			"\tFailed to get active slave list for port = %d\n",
-			port_id);
-		return;
-	}
-	if (num_active_slaves > 0) {
-		printf("\tActive Slaves (%d): [", num_active_slaves);
-		for (i = 0; i < num_active_slaves - 1; i++)
-			printf("%d ", slaves[i]);
-
-		printf("%d]\n", slaves[num_active_slaves - 1]);
-
-	} else {
-		printf("\tActive Slaves: []\n");
-
-	}
-
-	primary_id = rte_eth_bond_primary_get(port_id);
-	if (primary_id < 0) {
-		fprintf(stderr, "\tFailed to get primary slave for port = %d\n",
-			port_id);
-		return;
-	} else
-		printf("\tPrimary: [%d]\n", primary_id);
-
-}
-
-static cmdline_parse_token_string_t cmd_showbonding_config_show =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
-		show, "show");
-static cmdline_parse_token_string_t cmd_showbonding_config_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_showbonding_config_config =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
-		config, "config");
-static cmdline_parse_token_num_t cmd_showbonding_config_port =
-TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_config_result,
-		port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_show_bonding_config = {
-		.f = cmd_show_bonding_config_parsed,
-		.help_str = "show bonding config <port_id>: "
-			"Show the bonding config for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_showbonding_config_show,
-				(void *)&cmd_showbonding_config_bonding,
-				(void *)&cmd_showbonding_config_config,
-				(void *)&cmd_showbonding_config_port,
-				NULL
-		}
-};
-
-/* *** SET BONDING PRIMARY *** */
-struct cmd_set_bonding_primary_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t primary;
-	portid_t slave_id;
-	portid_t port_id;
-};
-
-static void cmd_set_bonding_primary_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_primary_result *res = parsed_result;
-	portid_t master_port_id = res->port_id;
-	portid_t slave_port_id = res->slave_id;
-
-	/* Set the primary slave for a bonded device. */
-	if (0 != rte_eth_bond_primary_set(master_port_id, slave_port_id)) {
-		fprintf(stderr, "\t Failed to set primary slave for port = %d.\n",
-			master_port_id);
-		return;
-	}
-	init_port_config();
-}
-
-static cmdline_parse_token_string_t cmd_setbonding_primary_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
-		set, "set");
-static cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_setbonding_primary_primary =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
-		primary, "primary");
-static cmdline_parse_token_num_t cmd_setbonding_primary_slave =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
-		slave_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_setbonding_primary_port =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
-		port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_set_bonding_primary = {
-		.f = cmd_set_bonding_primary_parsed,
-		.help_str = "set bonding primary <slave_id> <port_id>: "
-			"Set the primary slave for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_setbonding_primary_set,
-				(void *)&cmd_setbonding_primary_bonding,
-				(void *)&cmd_setbonding_primary_primary,
-				(void *)&cmd_setbonding_primary_slave,
-				(void *)&cmd_setbonding_primary_port,
-				NULL
-		}
-};
-
-/* *** ADD SLAVE *** */
-struct cmd_add_bonding_slave_result {
-	cmdline_fixed_string_t add;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t slave;
-	portid_t slave_id;
-	portid_t port_id;
-};
-
-static void cmd_add_bonding_slave_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_add_bonding_slave_result *res = parsed_result;
-	portid_t master_port_id = res->port_id;
-	portid_t slave_port_id = res->slave_id;
-
-	/* add the slave for a bonded device. */
-	if (0 != rte_eth_bond_slave_add(master_port_id, slave_port_id)) {
-		fprintf(stderr,
-			"\t Failed to add slave %d to master port = %d.\n",
-			slave_port_id, master_port_id);
-		return;
-	}
-	init_port_config();
-	set_port_slave_flag(slave_port_id);
-}
-
-static cmdline_parse_token_string_t cmd_addbonding_slave_add =
-TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
-		add, "add");
-static cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_addbonding_slave_slave =
-TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
-		slave, "slave");
-static cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
-TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
-		slave_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_addbonding_slave_port =
-TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
-		port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_add_bonding_slave = {
-		.f = cmd_add_bonding_slave_parsed,
-		.help_str = "add bonding slave <slave_id> <port_id>: "
-			"Add a slave device to a bonded device",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_addbonding_slave_add,
-				(void *)&cmd_addbonding_slave_bonding,
-				(void *)&cmd_addbonding_slave_slave,
-				(void *)&cmd_addbonding_slave_slaveid,
-				(void *)&cmd_addbonding_slave_port,
-				NULL
-		}
-};
-
-/* *** REMOVE SLAVE *** */
-struct cmd_remove_bonding_slave_result {
-	cmdline_fixed_string_t remove;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t slave;
-	portid_t slave_id;
-	portid_t port_id;
-};
-
-static void cmd_remove_bonding_slave_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_remove_bonding_slave_result *res = parsed_result;
-	portid_t master_port_id = res->port_id;
-	portid_t slave_port_id = res->slave_id;
-
-	/* remove the slave from a bonded device. */
-	if (0 != rte_eth_bond_slave_remove(master_port_id, slave_port_id)) {
-		fprintf(stderr,
-			"\t Failed to remove slave %d from master port = %d.\n",
-			slave_port_id, master_port_id);
-		return;
-	}
-	init_port_config();
-	clear_port_slave_flag(slave_port_id);
-}
-
-static cmdline_parse_token_string_t cmd_removebonding_slave_remove =
-		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				remove, "remove");
-static cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
-		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				bonding, "bonding");
-static cmdline_parse_token_string_t cmd_removebonding_slave_slave =
-		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				slave, "slave");
-static cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
-		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				slave_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_removebonding_slave_port =
-		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_remove_bonding_slave = {
-		.f = cmd_remove_bonding_slave_parsed,
-		.help_str = "remove bonding slave <slave_id> <port_id>: "
-			"Remove a slave device from a bonded device",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_removebonding_slave_remove,
-				(void *)&cmd_removebonding_slave_bonding,
-				(void *)&cmd_removebonding_slave_slave,
-				(void *)&cmd_removebonding_slave_slaveid,
-				(void *)&cmd_removebonding_slave_port,
-				NULL
-		}
-};
-
-/* *** CREATE BONDED DEVICE *** */
-struct cmd_create_bonded_device_result {
-	cmdline_fixed_string_t create;
-	cmdline_fixed_string_t bonded;
-	cmdline_fixed_string_t device;
-	uint8_t mode;
-	uint8_t socket;
-};
-
-static int bond_dev_num = 0;
-
-static void cmd_create_bonded_device_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_create_bonded_device_result *res = parsed_result;
-	char ethdev_name[RTE_ETH_NAME_MAX_LEN];
-	int port_id;
-	int ret;
-
-	if (test_done == 0) {
-		fprintf(stderr, "Please stop forwarding first\n");
-		return;
-	}
-
-	snprintf(ethdev_name, RTE_ETH_NAME_MAX_LEN, "net_bonding_testpmd_%d",
-			bond_dev_num++);
-
-	/* Create a new bonded device. */
-	port_id = rte_eth_bond_create(ethdev_name, res->mode, res->socket);
-	if (port_id < 0) {
-		fprintf(stderr, "\t Failed to create bonded device.\n");
-		return;
-	} else {
-		printf("Created new bonded device %s on (port %d).\n", ethdev_name,
-				port_id);
-
-		/* Update number of ports */
-		nb_ports = rte_eth_dev_count_avail();
-		reconfig(port_id, res->socket);
-		ret = rte_eth_promiscuous_enable(port_id);
-		if (ret != 0)
-			fprintf(stderr,
-				"Failed to enable promiscuous mode for port %u: %s - ignore\n",
-				port_id, rte_strerror(-ret));
-
-		ports[port_id].need_setup = 0;
-		ports[port_id].port_status = RTE_PORT_STOPPED;
-	}
-
-}
-
-static cmdline_parse_token_string_t cmd_createbonded_device_create =
-		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
-				create, "create");
-static cmdline_parse_token_string_t cmd_createbonded_device_bonded =
-		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
-				bonded, "bonded");
-static cmdline_parse_token_string_t cmd_createbonded_device_device =
-		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
-				device, "device");
-static cmdline_parse_token_num_t cmd_createbonded_device_mode =
-		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
-				mode, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_createbonded_device_socket =
-		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
-				socket, RTE_UINT8);
-
-static cmdline_parse_inst_t cmd_create_bonded_device = {
-		.f = cmd_create_bonded_device_parsed,
-		.help_str = "create bonded device <mode> <socket>: "
-			"Create a new bonded device with specific bonding mode and socket",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_createbonded_device_create,
-				(void *)&cmd_createbonded_device_bonded,
-				(void *)&cmd_createbonded_device_device,
-				(void *)&cmd_createbonded_device_mode,
-				(void *)&cmd_createbonded_device_socket,
-				NULL
-		}
-};
-
-/* *** SET MAC ADDRESS IN BONDED DEVICE *** */
-struct cmd_set_bond_mac_addr_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t mac_addr;
-	uint16_t port_num;
-	struct rte_ether_addr address;
-};
-
-static void cmd_set_bond_mac_addr_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bond_mac_addr_result *res = parsed_result;
-	int ret;
-
-	if (port_id_is_invalid(res->port_num, ENABLED_WARN))
-		return;
-
-	ret = rte_eth_bond_mac_address_set(res->port_num, &res->address);
-
-	/* check the return value and print it if is < 0 */
-	if (ret < 0)
-		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
-			strerror(-ret));
-}
-
-static cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, set, "set");
-static cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, bonding,
-				"bonding");
-static cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, mac_addr,
-				"mac_addr");
-static cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
-		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mac_addr_result,
-				port_num, RTE_UINT16);
-static cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
-		TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_bond_mac_addr_result, address);
-
-static cmdline_parse_inst_t cmd_set_bond_mac_addr = {
-		.f = cmd_set_bond_mac_addr_parsed,
-		.data = (void *) 0,
-		.help_str = "set bonding mac_addr <port_id> <mac_addr>",
-		.tokens = {
-				(void *)&cmd_set_bond_mac_addr_set,
-				(void *)&cmd_set_bond_mac_addr_bonding,
-				(void *)&cmd_set_bond_mac_addr_mac,
-				(void *)&cmd_set_bond_mac_addr_portnum,
-				(void *)&cmd_set_bond_mac_addr_addr,
-				NULL
-		}
-};
-
-
-/* *** SET LINK STATUS MONITORING POLLING PERIOD ON BONDED DEVICE *** */
-struct cmd_set_bond_mon_period_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t mon_period;
-	uint16_t port_num;
-	uint32_t period_ms;
-};
-
-static void cmd_set_bond_mon_period_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bond_mon_period_result *res = parsed_result;
-	int ret;
-
-	ret = rte_eth_bond_link_monitoring_set(res->port_num, res->period_ms);
-
-	/* check the return value and print it if is < 0 */
-	if (ret < 0)
-		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
-			strerror(-ret));
-}
-
-static cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				set, "set");
-static cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				bonding, "bonding");
-static cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				mon_period,	"mon_period");
-static cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
-		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				port_num, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
-		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				period_ms, RTE_UINT32);
-
-static cmdline_parse_inst_t cmd_set_bond_mon_period = {
-		.f = cmd_set_bond_mon_period_parsed,
-		.data = (void *) 0,
-		.help_str = "set bonding mon_period <port_id> <period_ms>",
-		.tokens = {
-				(void *)&cmd_set_bond_mon_period_set,
-				(void *)&cmd_set_bond_mon_period_bonding,
-				(void *)&cmd_set_bond_mon_period_mon_period,
-				(void *)&cmd_set_bond_mon_period_portnum,
-				(void *)&cmd_set_bond_mon_period_period_ms,
-				NULL
-		}
-};
-
-
-
-struct cmd_set_bonding_agg_mode_policy_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t agg_mode;
-	uint16_t port_num;
-	cmdline_fixed_string_t policy;
-};
-
-
-static void
-cmd_set_bonding_agg_mode(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_agg_mode_policy_result *res = parsed_result;
-	uint8_t policy = AGG_BANDWIDTH;
-
-	if (!strcmp(res->policy, "bandwidth"))
-		policy = AGG_BANDWIDTH;
-	else if (!strcmp(res->policy, "stable"))
-		policy = AGG_STABLE;
-	else if (!strcmp(res->policy, "count"))
-		policy = AGG_COUNT;
-
-	rte_eth_bond_8023ad_agg_selection_set(res->port_num, policy);
-}
-
-
-static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				set, "set");
-static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				bonding, "bonding");
-
-static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				agg_mode, "agg_mode");
-
-static cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				port_num, RTE_UINT16);
-
-static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
-	TOKEN_STRING_INITIALIZER(
-			struct cmd_set_bonding_balance_xmit_policy_result,
-		policy, "stable#bandwidth#count");
-
-static cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
-	.f = cmd_set_bonding_agg_mode,
-	.data = (void *) 0,
-	.help_str = "set bonding mode IEEE802.3AD aggregator policy <port_id> <agg_name>",
-	.tokens = {
-			(void *)&cmd_set_bonding_agg_mode_set,
-			(void *)&cmd_set_bonding_agg_mode_bonding,
-			(void *)&cmd_set_bonding_agg_mode_agg_mode,
-			(void *)&cmd_set_bonding_agg_mode_portnum,
-			(void *)&cmd_set_bonding_agg_mode_policy_string,
-			NULL
-		}
-};
-
-
-#endif /* RTE_NET_BOND */
-
 /* *** SET FORWARDING MODE *** */
 struct cmd_set_fwd_mode_result {
 	cmdline_fixed_string_t set;
@@ -17860,20 +16839,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_bypass_event,
 	(cmdline_parse_inst_t *)&cmd_set_bypass_timeout,
 	(cmdline_parse_inst_t *)&cmd_show_bypass_config,
-#ifdef RTE_NET_BOND
-	(cmdline_parse_inst_t *) &cmd_set_bonding_mode,
-	(cmdline_parse_inst_t *) &cmd_show_bonding_config,
-	(cmdline_parse_inst_t *) &cmd_show_bonding_lacp_info,
-	(cmdline_parse_inst_t *) &cmd_set_bonding_primary,
-	(cmdline_parse_inst_t *) &cmd_add_bonding_slave,
-	(cmdline_parse_inst_t *) &cmd_remove_bonding_slave,
-	(cmdline_parse_inst_t *) &cmd_create_bonded_device,
-	(cmdline_parse_inst_t *) &cmd_set_bond_mac_addr,
-	(cmdline_parse_inst_t *) &cmd_set_balance_xmit_policy,
-	(cmdline_parse_inst_t *) &cmd_set_bond_mon_period,
-	(cmdline_parse_inst_t *) &cmd_set_lacp_dedicated_queues,
-	(cmdline_parse_inst_t *) &cmd_set_bonding_agg_mode_policy,
-#endif
 	(cmdline_parse_inst_t *)&cmd_vlan_offload,
 	(cmdline_parse_inst_t *)&cmd_vlan_tpid,
 	(cmdline_parse_inst_t *)&cmd_rx_vlan_filter_all,
diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index 46a7511e9a..07634332f3 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -58,9 +58,6 @@ endif
 if dpdk_conf.has('RTE_LIB_PDUMP')
     deps += 'pdump'
 endif
-if dpdk_conf.has('RTE_NET_BOND')
-    deps += 'net_bond'
-endif
 if dpdk_conf.has('RTE_NET_BNXT')
     deps += 'net_bnxt'
 endif
diff --git a/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst b/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
index 55ec06a46e..9781343031 100644
--- a/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
+++ b/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
@@ -497,3 +497,146 @@ Create a bonded device in balance mode with two slaves specified by their PCI ad
 .. code-block:: console
 
     ./<build_dir>/app/dpdk-testpmd -l 0-3 -n 4 --vdev 'net_bonding0,mode=2,slave=0000:0a:00.01,slave=0000:04:00.00,xmit_policy=l34' -- --port-topology=chained
+
+Testpmd driver specific commands
+--------------------------------
+
+Some bonding driver specific features are integrated in testpmd.
+
+create bonded device
+~~~~~~~~~~~~~~~~~~~~
+
+Create a new bonding device::
+
+   testpmd> create bonded device (mode) (socket)
+
+For example, to create a bonded device in mode 1 on socket 0::
+
+   testpmd> create bonded device 1 0
+   created new bonded device (port X)
+
+add bonding slave
+~~~~~~~~~~~~~~~~~
+
+Adds Ethernet device to a Link Bonding device::
+
+   testpmd> add bonding slave (slave id) (port id)
+
+For example, to add Ethernet device (port 6) to a Link Bonding device (port 10)::
+
+   testpmd> add bonding slave 6 10
+
+
+remove bonding slave
+~~~~~~~~~~~~~~~~~~~~
+
+Removes an Ethernet slave device from a Link Bonding device::
+
+   testpmd> remove bonding slave (slave id) (port id)
+
+For example, to remove Ethernet slave device (port 6) to a Link Bonding device (port 10)::
+
+   testpmd> remove bonding slave 6 10
+
+set bonding mode
+~~~~~~~~~~~~~~~~
+
+Set the Link Bonding mode of a Link Bonding device::
+
+   testpmd> set bonding mode (value) (port id)
+
+For example, to set the bonding mode of a Link Bonding device (port 10) to broadcast (mode 3)::
+
+   testpmd> set bonding mode 3 10
+
+set bonding primary
+~~~~~~~~~~~~~~~~~~~
+
+Set an Ethernet slave device as the primary device on a Link Bonding device::
+
+   testpmd> set bonding primary (slave id) (port id)
+
+For example, to set the Ethernet slave device (port 6) as the primary port of a Link Bonding device (port 10)::
+
+   testpmd> set bonding primary 6 10
+
+set bonding mac
+~~~~~~~~~~~~~~~
+
+Set the MAC address of a Link Bonding device::
+
+   testpmd> set bonding mac (port id) (mac)
+
+For example, to set the MAC address of a Link Bonding device (port 10) to 00:00:00:00:00:01::
+
+   testpmd> set bonding mac 10 00:00:00:00:00:01
+
+set bonding balance_xmit_policy
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set the transmission policy for a Link Bonding device when it is in Balance XOR mode::
+
+   testpmd> set bonding balance_xmit_policy (port_id) (l2|l23|l34)
+
+For example, set a Link Bonding device (port 10) to use a balance policy of layer 3+4 (IP addresses & UDP ports)::
+
+   testpmd> set bonding balance_xmit_policy 10 l34
+
+
+set bonding mon_period
+~~~~~~~~~~~~~~~~~~~~~~
+
+Set the link status monitoring polling period in milliseconds for a bonding device.
+
+This adds support for PMD slave devices which do not support link status interrupts.
+When the mon_period is set to a value greater than 0 then all PMD's which do not support
+link status ISR will be queried every polling interval to check if their link status has changed::
+
+   testpmd> set bonding mon_period (port_id) (value)
+
+For example, to set the link status monitoring polling period of bonded device (port 5) to 150ms::
+
+   testpmd> set bonding mon_period 5 150
+
+
+set bonding lacp dedicated_queue
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Enable dedicated tx/rx queues on bonding devices slaves to handle LACP control plane traffic
+when in mode 4 (link-aggregation-802.3ad)::
+
+   testpmd> set bonding lacp dedicated_queues (port_id) (enable|disable)
+
+
+set bonding agg_mode
+~~~~~~~~~~~~~~~~~~~~
+
+Enable one of the specific aggregators mode when in mode 4 (link-aggregation-802.3ad)::
+
+   testpmd> set bonding agg_mode (port_id) (bandwidth|count|stable)
+
+
+show bonding config
+~~~~~~~~~~~~~~~~~~~
+
+Show the current configuration of a Link Bonding device::
+
+   testpmd> show bonding config (port id)
+
+For example,
+to show the configuration a Link Bonding device (port 9) with 3 slave devices (1, 3, 4)
+in balance mode with a transmission policy of layer 2+3::
+
+   testpmd> show bonding config 9
+        Bonding mode: 2
+        Balance Xmit Policy: BALANCE_XMIT_POLICY_LAYER23
+        Slaves (3): [1 3 4]
+        Active Slaves (3): [1 3 4]
+        Primary: [3]
+
+show bonding lacp info
+~~~~~~~~~~~~~~~~~~~~~~
+
+Show information about the Link Bonding device in mode 4 (link-aggregation-802.3ad)::
+
+   testpmd> show bonding lacp info (port_id)
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index bbeba554eb..ed0d413574 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -2512,143 +2512,7 @@ Link Bonding Functions
 The Link Bonding functions make it possible to dynamically create and
 manage link bonding devices from within testpmd interactive prompt.
 
-create bonded device
-~~~~~~~~~~~~~~~~~~~~
-
-Create a new bonding device::
-
-   testpmd> create bonded device (mode) (socket)
-
-For example, to create a bonded device in mode 1 on socket 0::
-
-   testpmd> create bonded device 1 0
-   created new bonded device (port X)
-
-add bonding slave
-~~~~~~~~~~~~~~~~~
-
-Adds Ethernet device to a Link Bonding device::
-
-   testpmd> add bonding slave (slave id) (port id)
-
-For example, to add Ethernet device (port 6) to a Link Bonding device (port 10)::
-
-   testpmd> add bonding slave 6 10
-
-
-remove bonding slave
-~~~~~~~~~~~~~~~~~~~~
-
-Removes an Ethernet slave device from a Link Bonding device::
-
-   testpmd> remove bonding slave (slave id) (port id)
-
-For example, to remove Ethernet slave device (port 6) to a Link Bonding device (port 10)::
-
-   testpmd> remove bonding slave 6 10
-
-set bonding mode
-~~~~~~~~~~~~~~~~
-
-Set the Link Bonding mode of a Link Bonding device::
-
-   testpmd> set bonding mode (value) (port id)
-
-For example, to set the bonding mode of a Link Bonding device (port 10) to broadcast (mode 3)::
-
-   testpmd> set bonding mode 3 10
-
-set bonding primary
-~~~~~~~~~~~~~~~~~~~
-
-Set an Ethernet slave device as the primary device on a Link Bonding device::
-
-   testpmd> set bonding primary (slave id) (port id)
-
-For example, to set the Ethernet slave device (port 6) as the primary port of a Link Bonding device (port 10)::
-
-   testpmd> set bonding primary 6 10
-
-set bonding mac
-~~~~~~~~~~~~~~~
-
-Set the MAC address of a Link Bonding device::
-
-   testpmd> set bonding mac (port id) (mac)
-
-For example, to set the MAC address of a Link Bonding device (port 10) to 00:00:00:00:00:01::
-
-   testpmd> set bonding mac 10 00:00:00:00:00:01
-
-set bonding balance_xmit_policy
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set the transmission policy for a Link Bonding device when it is in Balance XOR mode::
-
-   testpmd> set bonding balance_xmit_policy (port_id) (l2|l23|l34)
-
-For example, set a Link Bonding device (port 10) to use a balance policy of layer 3+4 (IP addresses & UDP ports)::
-
-   testpmd> set bonding balance_xmit_policy 10 l34
-
-
-set bonding mon_period
-~~~~~~~~~~~~~~~~~~~~~~
-
-Set the link status monitoring polling period in milliseconds for a bonding device.
-
-This adds support for PMD slave devices which do not support link status interrupts.
-When the mon_period is set to a value greater than 0 then all PMD's which do not support
-link status ISR will be queried every polling interval to check if their link status has changed::
-
-   testpmd> set bonding mon_period (port_id) (value)
-
-For example, to set the link status monitoring polling period of bonded device (port 5) to 150ms::
-
-   testpmd> set bonding mon_period 5 150
-
-
-set bonding lacp dedicated_queue
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Enable dedicated tx/rx queues on bonding devices slaves to handle LACP control plane traffic
-when in mode 4 (link-aggregation-802.3ad)::
-
-   testpmd> set bonding lacp dedicated_queues (port_id) (enable|disable)
-
-
-set bonding agg_mode
-~~~~~~~~~~~~~~~~~~~~
-
-Enable one of the specific aggregators mode when in mode 4 (link-aggregation-802.3ad)::
-
-   testpmd> set bonding agg_mode (port_id) (bandwidth|count|stable)
-
-
-show bonding config
-~~~~~~~~~~~~~~~~~~~
-
-Show the current configuration of a Link Bonding device::
-
-   testpmd> show bonding config (port id)
-
-For example,
-to show the configuration a Link Bonding device (port 9) with 3 slave devices (1, 3, 4)
-in balance mode with a transmission policy of layer 2+3::
-
-   testpmd> show bonding config 9
-        Bonding mode: 2
-        Balance Xmit Policy: BALANCE_XMIT_POLICY_LAYER23
-        Slaves (3): [1 3 4]
-        Active Slaves (3): [1 3 4]
-        Primary: [3]
-
-show bonding lacp info
-~~~~~~~~~~~~~~~~~~~~~~
-
-Show information about the Link Bonding device in mode 4 (link-aggregation-802.3ad)::
-
-   testpmd> show bonding lacp info (port_id)
+See :doc:`../prog_guide/link_bonding_poll_mode_drv_lib` for more information.
 
 Register Functions
 ------------------
@@ -5711,3 +5575,5 @@ Driver specific commands
 
 Some drivers provide specific features.
 See:
+
+- :doc:`../prog_guide/link_bonding_poll_mode_drv_lib`
diff --git a/drivers/net/bonding/bonding_testpmd.c b/drivers/net/bonding/bonding_testpmd.c
new file mode 100644
index 0000000000..c2f03e0934
--- /dev/null
+++ b/drivers/net/bonding/bonding_testpmd.c
@@ -0,0 +1,1029 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2016 Intel Corporation.
+ */
+
+#include <rte_eth_bond.h>
+#include <rte_eth_bond_8023ad.h>
+
+#include <cmdline_parse.h>
+#include <cmdline_parse_etheraddr.h>
+#include <cmdline_parse_num.h>
+#include <cmdline_parse_string.h>
+
+#include "testpmd.h"
+
+/* *** SET BONDING MODE *** */
+struct cmd_set_bonding_mode_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t mode;
+	uint8_t value;
+	portid_t port_id;
+};
+
+static void cmd_set_bonding_mode_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bonding_mode_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	struct rte_port *port = &ports[port_id];
+
+	/*
+	 * Bonding mode changed means resources of device changed, like whether
+	 * started rte timer or not. Device should be restarted when resources
+	 * of device changed.
+	 */
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr,
+			"\t Error: Can't set bonding mode when port %d is not stopped\n",
+			port_id);
+		return;
+	}
+
+	/* Set the bonding mode for the relevant port. */
+	if (rte_eth_bond_mode_set(port_id, res->value) != 0)
+		fprintf(stderr, "\t Failed to set bonding mode for port = %d.\n",
+			port_id);
+}
+
+static cmdline_parse_token_string_t cmd_setbonding_mode_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_setbonding_mode_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
+		mode, "mode");
+static cmdline_parse_token_num_t cmd_setbonding_mode_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
+		value, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_setbonding_mode_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_set_bonding_mode = {
+	.f = cmd_set_bonding_mode_parsed,
+	.help_str = "set bonding mode <mode_value> <port_id>: "
+		"Set the bonding mode for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbonding_mode_set,
+		(void *)&cmd_setbonding_mode_bonding,
+		(void *)&cmd_setbonding_mode_mode,
+		(void *)&cmd_setbonding_mode_value,
+		(void *)&cmd_setbonding_mode_port,
+		NULL
+	}
+};
+
+/* *** SET BONDING SLOW_QUEUE SW/HW *** */
+struct cmd_set_bonding_lacp_dedicated_queues_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t lacp;
+	cmdline_fixed_string_t dedicated_queues;
+	portid_t port_id;
+	cmdline_fixed_string_t mode;
+};
+
+static void cmd_set_bonding_lacp_dedicated_queues_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bonding_lacp_dedicated_queues_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	struct rte_port *port;
+
+	port = &ports[port_id];
+
+	/** Check if the port is not started **/
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr, "Please stop port %d first\n", port_id);
+		return;
+	}
+
+	if (!strcmp(res->mode, "enable")) {
+		if (rte_eth_bond_8023ad_dedicated_queues_enable(port_id) == 0)
+			printf("Dedicate queues for LACP control packets"
+					" enabled\n");
+		else
+			printf("Enabling dedicate queues for LACP control "
+					"packets on port %d failed\n", port_id);
+	} else if (!strcmp(res->mode, "disable")) {
+		if (rte_eth_bond_8023ad_dedicated_queues_disable(port_id) == 0)
+			printf("Dedicated queues for LACP control packets "
+					"disabled\n");
+		else
+			printf("Disabling dedicated queues for LACP control "
+					"traffic on port %d failed\n", port_id);
+	}
+}
+
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		lacp, "lacp");
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		dedicated_queues, "dedicated_queues");
+static cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		mode, "enable#disable");
+
+static cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
+	.f = cmd_set_bonding_lacp_dedicated_queues_parsed,
+	.help_str = "set bonding lacp dedicated_queues <port_id> "
+		"enable|disable: "
+		"Enable/disable dedicated queues for LACP control traffic for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbonding_lacp_dedicated_queues_set,
+		(void *)&cmd_setbonding_lacp_dedicated_queues_bonding,
+		(void *)&cmd_setbonding_lacp_dedicated_queues_lacp,
+		(void *)&cmd_setbonding_lacp_dedicated_queues_dedicated_queues,
+		(void *)&cmd_setbonding_lacp_dedicated_queues_port_id,
+		(void *)&cmd_setbonding_lacp_dedicated_queues_mode,
+		NULL
+	}
+};
+
+/* *** SET BALANCE XMIT POLICY *** */
+struct cmd_set_bonding_balance_xmit_policy_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t balance_xmit_policy;
+	portid_t port_id;
+	cmdline_fixed_string_t policy;
+};
+
+static void cmd_set_bonding_balance_xmit_policy_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bonding_balance_xmit_policy_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	uint8_t policy;
+
+	if (!strcmp(res->policy, "l2")) {
+		policy = BALANCE_XMIT_POLICY_LAYER2;
+	} else if (!strcmp(res->policy, "l23")) {
+		policy = BALANCE_XMIT_POLICY_LAYER23;
+	} else if (!strcmp(res->policy, "l34")) {
+		policy = BALANCE_XMIT_POLICY_LAYER34;
+	} else {
+		fprintf(stderr, "\t Invalid xmit policy selection");
+		return;
+	}
+
+	/* Set the bonding mode for the relevant port. */
+	if (rte_eth_bond_xmit_policy_set(port_id, policy) != 0) {
+		fprintf(stderr,
+			"\t Failed to set bonding balance xmit policy for port = %d.\n",
+			port_id);
+	}
+}
+
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		balance_xmit_policy, "balance_xmit_policy");
+static cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		policy, "l2#l23#l34");
+
+static cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
+	.f = cmd_set_bonding_balance_xmit_policy_parsed,
+	.help_str = "set bonding balance_xmit_policy <port_id> "
+		"l2|l23|l34: "
+		"Set the bonding balance_xmit_policy for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbonding_balance_xmit_policy_set,
+		(void *)&cmd_setbonding_balance_xmit_policy_bonding,
+		(void *)&cmd_setbonding_balance_xmit_policy_balance_xmit_policy,
+		(void *)&cmd_setbonding_balance_xmit_policy_port,
+		(void *)&cmd_setbonding_balance_xmit_policy_policy,
+		NULL
+	}
+};
+
+/* *** SHOW IEEE802.3 BONDING INFORMATION *** */
+struct cmd_show_bonding_lacp_info_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t lacp;
+	cmdline_fixed_string_t info;
+	portid_t port_id;
+};
+
+static void port_param_show(struct port_params *params)
+{
+	char buf[RTE_ETHER_ADDR_FMT_SIZE];
+
+	printf("\t\tsystem priority: %u\n", params->system_priority);
+	rte_ether_format_addr(buf, RTE_ETHER_ADDR_FMT_SIZE, &params->system);
+	printf("\t\tsystem mac address: %s\n", buf);
+	printf("\t\tport key: %u\n", params->key);
+	printf("\t\tport priority: %u\n", params->port_priority);
+	printf("\t\tport number: %u\n", params->port_number);
+}
+
+static void lacp_slave_info_show(struct rte_eth_bond_8023ad_slave_info *info)
+{
+	char a_state[256] = { 0 };
+	char p_state[256] = { 0 };
+	int a_len = 0;
+	int p_len = 0;
+	uint32_t i;
+
+	static const char * const state[] = {
+		"ACTIVE",
+		"TIMEOUT",
+		"AGGREGATION",
+		"SYNCHRONIZATION",
+		"COLLECTING",
+		"DISTRIBUTING",
+		"DEFAULTED",
+		"EXPIRED"
+	};
+	static const char * const selection[] = {
+		"UNSELECTED",
+		"STANDBY",
+		"SELECTED"
+	};
+
+	for (i = 0; i < RTE_DIM(state); i++) {
+		if ((info->actor_state >> i) & 1)
+			a_len += snprintf(&a_state[a_len],
+						RTE_DIM(a_state) - a_len, "%s ",
+						state[i]);
+
+		if ((info->partner_state >> i) & 1)
+			p_len += snprintf(&p_state[p_len],
+						RTE_DIM(p_state) - p_len, "%s ",
+						state[i]);
+	}
+	printf("\tAggregator port id: %u\n", info->agg_port_id);
+	printf("\tselection: %s\n", selection[info->selected]);
+	printf("\tActor detail info:\n");
+	port_param_show(&info->actor);
+	printf("\t\tport state: %s\n", a_state);
+	printf("\tPartner detail info:\n");
+	port_param_show(&info->partner);
+	printf("\t\tport state: %s\n", p_state);
+	printf("\n");
+}
+
+static void lacp_conf_show(struct rte_eth_bond_8023ad_conf *conf)
+{
+	printf("\tfast period: %u ms\n", conf->fast_periodic_ms);
+	printf("\tslow period: %u ms\n", conf->slow_periodic_ms);
+	printf("\tshort timeout: %u ms\n", conf->short_timeout_ms);
+	printf("\tlong timeout: %u ms\n", conf->long_timeout_ms);
+	printf("\taggregate wait timeout: %u ms\n",
+			conf->aggregate_wait_timeout_ms);
+	printf("\ttx period: %u ms\n", conf->tx_period_ms);
+	printf("\trx marker period: %u ms\n", conf->rx_marker_period_ms);
+	printf("\tupdate timeout: %u ms\n", conf->update_timeout_ms);
+	switch (conf->agg_selection) {
+	case AGG_BANDWIDTH:
+		printf("\taggregation mode: bandwidth\n");
+		break;
+	case AGG_STABLE:
+		printf("\taggregation mode: stable\n");
+		break;
+	case AGG_COUNT:
+		printf("\taggregation mode: count\n");
+		break;
+	default:
+		printf("\taggregation mode: invalid\n");
+		break;
+	}
+
+	printf("\n");
+}
+
+static void cmd_show_bonding_lacp_info_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_show_bonding_lacp_info_result *res = parsed_result;
+	struct rte_eth_bond_8023ad_slave_info slave_info;
+	struct rte_eth_bond_8023ad_conf port_conf;
+	portid_t slaves[RTE_MAX_ETHPORTS];
+	portid_t port_id = res->port_id;
+	int num_active_slaves;
+	int bonding_mode;
+	int i;
+	int ret;
+
+	bonding_mode = rte_eth_bond_mode_get(port_id);
+	if (bonding_mode != BONDING_MODE_8023AD) {
+		fprintf(stderr, "\tBonding mode is not mode 4\n");
+		return;
+	}
+
+	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
+			RTE_MAX_ETHPORTS);
+	if (num_active_slaves < 0) {
+		fprintf(stderr, "\tFailed to get active slave list for port = %u\n",
+				port_id);
+		return;
+	}
+	if (num_active_slaves == 0)
+		fprintf(stderr, "\tIEEE802.3 port %u has no active slave\n",
+			port_id);
+
+	printf("\tIEEE802.3 port: %u\n", port_id);
+	ret = rte_eth_bond_8023ad_conf_get(port_id, &port_conf);
+	if (ret) {
+		fprintf(stderr, "\tGet bonded device %u info failed\n",
+			port_id);
+		return;
+	}
+	lacp_conf_show(&port_conf);
+
+	for (i = 0; i < num_active_slaves; i++) {
+		ret = rte_eth_bond_8023ad_slave_info(port_id, slaves[i],
+				&slave_info);
+		if (ret) {
+			fprintf(stderr, "\tGet slave device %u info failed\n",
+				slaves[i]);
+			return;
+		}
+		printf("\tSlave Port: %u\n", slaves[i]);
+		lacp_slave_info_show(&slave_info);
+	}
+}
+
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		show, "show");
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		bonding, "lacp");
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		info, "info");
+static cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
+	.f = cmd_show_bonding_lacp_info_parsed,
+	.help_str = "show bonding lacp info <port_id> : "
+		"Show bonding IEEE802.3 information for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_show_bonding_lacp_info_show,
+		(void *)&cmd_show_bonding_lacp_info_bonding,
+		(void *)&cmd_show_bonding_lacp_info_lacp,
+		(void *)&cmd_show_bonding_lacp_info_info,
+		(void *)&cmd_show_bonding_lacp_info_port_id,
+		NULL
+	}
+};
+
+/* *** SHOW NIC BONDING CONFIGURATION *** */
+struct cmd_show_bonding_config_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t config;
+	portid_t port_id;
+};
+
+static void cmd_show_bonding_config_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_show_bonding_config_result *res = parsed_result;
+	int bonding_mode, agg_mode;
+	portid_t slaves[RTE_MAX_ETHPORTS];
+	int num_slaves, num_active_slaves;
+	int primary_id;
+	int i;
+	portid_t port_id = res->port_id;
+
+	/* Display the bonding mode.*/
+	bonding_mode = rte_eth_bond_mode_get(port_id);
+	if (bonding_mode < 0) {
+		fprintf(stderr, "\tFailed to get bonding mode for port = %d\n",
+			port_id);
+		return;
+	}
+	printf("\tBonding mode: %d\n", bonding_mode);
+
+	if (bonding_mode == BONDING_MODE_BALANCE ||
+		bonding_mode == BONDING_MODE_8023AD) {
+		int balance_xmit_policy;
+
+		balance_xmit_policy = rte_eth_bond_xmit_policy_get(port_id);
+		if (balance_xmit_policy < 0) {
+			fprintf(stderr,
+				"\tFailed to get balance xmit policy for port = %d\n",
+				port_id);
+			return;
+		}
+		printf("\tBalance Xmit Policy: ");
+
+		switch (balance_xmit_policy) {
+		case BALANCE_XMIT_POLICY_LAYER2:
+			printf("BALANCE_XMIT_POLICY_LAYER2");
+			break;
+		case BALANCE_XMIT_POLICY_LAYER23:
+			printf("BALANCE_XMIT_POLICY_LAYER23");
+			break;
+		case BALANCE_XMIT_POLICY_LAYER34:
+			printf("BALANCE_XMIT_POLICY_LAYER34");
+			break;
+		}
+		printf("\n");
+	}
+
+	if (bonding_mode == BONDING_MODE_8023AD) {
+		agg_mode = rte_eth_bond_8023ad_agg_selection_get(port_id);
+		printf("\tIEEE802.3AD Aggregator Mode: ");
+		switch (agg_mode) {
+		case AGG_BANDWIDTH:
+			printf("bandwidth");
+			break;
+		case AGG_STABLE:
+			printf("stable");
+			break;
+		case AGG_COUNT:
+			printf("count");
+			break;
+		}
+		printf("\n");
+	}
+
+	num_slaves = rte_eth_bond_slaves_get(port_id, slaves, RTE_MAX_ETHPORTS);
+
+	if (num_slaves < 0) {
+		fprintf(stderr, "\tFailed to get slave list for port = %d\n",
+			port_id);
+		return;
+	}
+	if (num_slaves > 0) {
+		printf("\tSlaves (%d): [", num_slaves);
+		for (i = 0; i < num_slaves - 1; i++)
+			printf("%d ", slaves[i]);
+
+		printf("%d]\n", slaves[num_slaves - 1]);
+	} else {
+		printf("\tSlaves: []\n");
+	}
+
+	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
+			RTE_MAX_ETHPORTS);
+
+	if (num_active_slaves < 0) {
+		fprintf(stderr,
+			"\tFailed to get active slave list for port = %d\n",
+			port_id);
+		return;
+	}
+	if (num_active_slaves > 0) {
+		printf("\tActive Slaves (%d): [", num_active_slaves);
+		for (i = 0; i < num_active_slaves - 1; i++)
+			printf("%d ", slaves[i]);
+
+		printf("%d]\n", slaves[num_active_slaves - 1]);
+
+	} else {
+		printf("\tActive Slaves: []\n");
+	}
+
+	primary_id = rte_eth_bond_primary_get(port_id);
+	if (primary_id < 0) {
+		fprintf(stderr, "\tFailed to get primary slave for port = %d\n",
+			port_id);
+		return;
+	}
+	printf("\tPrimary: [%d]\n", primary_id);
+}
+
+static cmdline_parse_token_string_t cmd_showbonding_config_show =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
+		show, "show");
+static cmdline_parse_token_string_t cmd_showbonding_config_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_showbonding_config_config =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
+		config, "config");
+static cmdline_parse_token_num_t cmd_showbonding_config_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_config_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_show_bonding_config = {
+	.f = cmd_show_bonding_config_parsed,
+	.help_str = "show bonding config <port_id>: "
+		"Show the bonding config for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_showbonding_config_show,
+		(void *)&cmd_showbonding_config_bonding,
+		(void *)&cmd_showbonding_config_config,
+		(void *)&cmd_showbonding_config_port,
+		NULL
+	}
+};
+
+/* *** SET BONDING PRIMARY *** */
+struct cmd_set_bonding_primary_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t primary;
+	portid_t slave_id;
+	portid_t port_id;
+};
+
+static void cmd_set_bonding_primary_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bonding_primary_result *res = parsed_result;
+	portid_t master_port_id = res->port_id;
+	portid_t slave_port_id = res->slave_id;
+
+	/* Set the primary slave for a bonded device. */
+	if (rte_eth_bond_primary_set(master_port_id, slave_port_id) != 0) {
+		fprintf(stderr, "\t Failed to set primary slave for port = %d.\n",
+			master_port_id);
+		return;
+	}
+	init_port_config();
+}
+
+static cmdline_parse_token_string_t cmd_setbonding_primary_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_setbonding_primary_primary =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
+		primary, "primary");
+static cmdline_parse_token_num_t cmd_setbonding_primary_slave =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
+		slave_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_setbonding_primary_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_set_bonding_primary = {
+	.f = cmd_set_bonding_primary_parsed,
+	.help_str = "set bonding primary <slave_id> <port_id>: "
+		"Set the primary slave for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbonding_primary_set,
+		(void *)&cmd_setbonding_primary_bonding,
+		(void *)&cmd_setbonding_primary_primary,
+		(void *)&cmd_setbonding_primary_slave,
+		(void *)&cmd_setbonding_primary_port,
+		NULL
+	}
+};
+
+/* *** ADD SLAVE *** */
+struct cmd_add_bonding_slave_result {
+	cmdline_fixed_string_t add;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t slave;
+	portid_t slave_id;
+	portid_t port_id;
+};
+
+static void cmd_add_bonding_slave_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_add_bonding_slave_result *res = parsed_result;
+	portid_t master_port_id = res->port_id;
+	portid_t slave_port_id = res->slave_id;
+
+	/* add the slave for a bonded device. */
+	if (rte_eth_bond_slave_add(master_port_id, slave_port_id) != 0) {
+		fprintf(stderr,
+			"\t Failed to add slave %d to master port = %d.\n",
+			slave_port_id, master_port_id);
+		return;
+	}
+	init_port_config();
+	set_port_slave_flag(slave_port_id);
+}
+
+static cmdline_parse_token_string_t cmd_addbonding_slave_add =
+	TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
+		add, "add");
+static cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_addbonding_slave_slave =
+	TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
+		slave, "slave");
+static cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
+	TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
+		slave_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_addbonding_slave_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_add_bonding_slave = {
+	.f = cmd_add_bonding_slave_parsed,
+	.help_str = "add bonding slave <slave_id> <port_id>: "
+		"Add a slave device to a bonded device",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_addbonding_slave_add,
+		(void *)&cmd_addbonding_slave_bonding,
+		(void *)&cmd_addbonding_slave_slave,
+		(void *)&cmd_addbonding_slave_slaveid,
+		(void *)&cmd_addbonding_slave_port,
+		NULL
+	}
+};
+
+/* *** REMOVE SLAVE *** */
+struct cmd_remove_bonding_slave_result {
+	cmdline_fixed_string_t remove;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t slave;
+	portid_t slave_id;
+	portid_t port_id;
+};
+
+static void cmd_remove_bonding_slave_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_remove_bonding_slave_result *res = parsed_result;
+	portid_t master_port_id = res->port_id;
+	portid_t slave_port_id = res->slave_id;
+
+	/* remove the slave from a bonded device. */
+	if (rte_eth_bond_slave_remove(master_port_id, slave_port_id) != 0) {
+		fprintf(stderr,
+			"\t Failed to remove slave %d from master port = %d.\n",
+			slave_port_id, master_port_id);
+		return;
+	}
+	init_port_config();
+	clear_port_slave_flag(slave_port_id);
+}
+
+static cmdline_parse_token_string_t cmd_removebonding_slave_remove =
+	TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
+		remove, "remove");
+static cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_removebonding_slave_slave =
+	TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
+		slave, "slave");
+static cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
+	TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
+		slave_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_removebonding_slave_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_remove_bonding_slave = {
+	.f = cmd_remove_bonding_slave_parsed,
+	.help_str = "remove bonding slave <slave_id> <port_id>: "
+		"Remove a slave device from a bonded device",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_removebonding_slave_remove,
+		(void *)&cmd_removebonding_slave_bonding,
+		(void *)&cmd_removebonding_slave_slave,
+		(void *)&cmd_removebonding_slave_slaveid,
+		(void *)&cmd_removebonding_slave_port,
+		NULL
+	}
+};
+
+/* *** CREATE BONDED DEVICE *** */
+struct cmd_create_bonded_device_result {
+	cmdline_fixed_string_t create;
+	cmdline_fixed_string_t bonded;
+	cmdline_fixed_string_t device;
+	uint8_t mode;
+	uint8_t socket;
+};
+
+static int bond_dev_num;
+
+static void cmd_create_bonded_device_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_create_bonded_device_result *res = parsed_result;
+	char ethdev_name[RTE_ETH_NAME_MAX_LEN];
+	int port_id;
+	int ret;
+
+	if (test_done == 0) {
+		fprintf(stderr, "Please stop forwarding first\n");
+		return;
+	}
+
+	snprintf(ethdev_name, RTE_ETH_NAME_MAX_LEN, "net_bonding_testpmd_%d",
+			bond_dev_num++);
+
+	/* Create a new bonded device. */
+	port_id = rte_eth_bond_create(ethdev_name, res->mode, res->socket);
+	if (port_id < 0) {
+		fprintf(stderr, "\t Failed to create bonded device.\n");
+		return;
+	}
+	printf("Created new bonded device %s on (port %d).\n", ethdev_name,
+		port_id);
+
+	/* Update number of ports */
+	nb_ports = rte_eth_dev_count_avail();
+	reconfig(port_id, res->socket);
+	ret = rte_eth_promiscuous_enable(port_id);
+	if (ret != 0)
+		fprintf(stderr, "Failed to enable promiscuous mode for port %u: %s - ignore\n",
+			port_id, rte_strerror(-ret));
+
+	ports[port_id].need_setup = 0;
+	ports[port_id].port_status = RTE_PORT_STOPPED;
+}
+
+static cmdline_parse_token_string_t cmd_createbonded_device_create =
+	TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
+		create, "create");
+static cmdline_parse_token_string_t cmd_createbonded_device_bonded =
+	TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
+		bonded, "bonded");
+static cmdline_parse_token_string_t cmd_createbonded_device_device =
+	TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
+		device, "device");
+static cmdline_parse_token_num_t cmd_createbonded_device_mode =
+	TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
+		mode, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_createbonded_device_socket =
+	TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
+		socket, RTE_UINT8);
+
+static cmdline_parse_inst_t cmd_create_bonded_device = {
+	.f = cmd_create_bonded_device_parsed,
+	.help_str = "create bonded device <mode> <socket>: "
+		"Create a new bonded device with specific bonding mode and socket",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_createbonded_device_create,
+		(void *)&cmd_createbonded_device_bonded,
+		(void *)&cmd_createbonded_device_device,
+		(void *)&cmd_createbonded_device_mode,
+		(void *)&cmd_createbonded_device_socket,
+		NULL
+	}
+};
+
+/* *** SET MAC ADDRESS IN BONDED DEVICE *** */
+struct cmd_set_bond_mac_addr_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t mac_addr;
+	uint16_t port_num;
+	struct rte_ether_addr address;
+};
+
+static void cmd_set_bond_mac_addr_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bond_mac_addr_result *res = parsed_result;
+	int ret;
+
+	if (port_id_is_invalid(res->port_num, ENABLED_WARN))
+		return;
+
+	ret = rte_eth_bond_mac_address_set(res->port_num, &res->address);
+
+	/* check the return value and print it if is < 0 */
+	if (ret < 0)
+		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
+			strerror(-ret));
+}
+
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result,
+		mac_addr, "mac_addr");
+static cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mac_addr_result,
+		port_num, RTE_UINT16);
+static cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_bond_mac_addr_result,
+		address);
+
+static cmdline_parse_inst_t cmd_set_bond_mac_addr = {
+	.f = cmd_set_bond_mac_addr_parsed,
+	.data = NULL,
+	.help_str = "set bonding mac_addr <port_id> <mac_addr>",
+	.tokens = {
+		(void *)&cmd_set_bond_mac_addr_set,
+		(void *)&cmd_set_bond_mac_addr_bonding,
+		(void *)&cmd_set_bond_mac_addr_mac,
+		(void *)&cmd_set_bond_mac_addr_portnum,
+		(void *)&cmd_set_bond_mac_addr_addr,
+		NULL
+	}
+};
+
+/* *** SET LINK STATUS MONITORING POLLING PERIOD ON BONDED DEVICE *** */
+struct cmd_set_bond_mon_period_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t mon_period;
+	uint16_t port_num;
+	uint32_t period_ms;
+};
+
+static void cmd_set_bond_mon_period_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bond_mon_period_result *res = parsed_result;
+	int ret;
+
+	ret = rte_eth_bond_link_monitoring_set(res->port_num, res->period_ms);
+
+	/* check the return value and print it if is < 0 */
+	if (ret < 0)
+		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
+			strerror(-ret));
+}
+
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
+		mon_period,	"mon_period");
+static cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
+		port_num, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
+		period_ms, RTE_UINT32);
+
+static cmdline_parse_inst_t cmd_set_bond_mon_period = {
+	.f = cmd_set_bond_mon_period_parsed,
+	.data = NULL,
+	.help_str = "set bonding mon_period <port_id> <period_ms>",
+	.tokens = {
+		(void *)&cmd_set_bond_mon_period_set,
+		(void *)&cmd_set_bond_mon_period_bonding,
+		(void *)&cmd_set_bond_mon_period_mon_period,
+		(void *)&cmd_set_bond_mon_period_portnum,
+		(void *)&cmd_set_bond_mon_period_period_ms,
+		NULL
+	}
+};
+
+struct cmd_set_bonding_agg_mode_policy_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t agg_mode;
+	uint16_t port_num;
+	cmdline_fixed_string_t policy;
+};
+
+static void
+cmd_set_bonding_agg_mode(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bonding_agg_mode_policy_result *res = parsed_result;
+	uint8_t policy = AGG_BANDWIDTH;
+
+	if (!strcmp(res->policy, "bandwidth"))
+		policy = AGG_BANDWIDTH;
+	else if (!strcmp(res->policy, "stable"))
+		policy = AGG_STABLE;
+	else if (!strcmp(res->policy, "count"))
+		policy = AGG_COUNT;
+
+	rte_eth_bond_8023ad_agg_selection_set(res->port_num, policy);
+}
+
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+		agg_mode, "agg_mode");
+static cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+		port_num, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		policy, "stable#bandwidth#count");
+
+static cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
+	.f = cmd_set_bonding_agg_mode,
+	.data = NULL,
+	.help_str = "set bonding mode IEEE802.3AD aggregator policy <port_id> <agg_name>",
+	.tokens = {
+		(void *)&cmd_set_bonding_agg_mode_set,
+		(void *)&cmd_set_bonding_agg_mode_bonding,
+		(void *)&cmd_set_bonding_agg_mode_agg_mode,
+		(void *)&cmd_set_bonding_agg_mode_portnum,
+		(void *)&cmd_set_bonding_agg_mode_policy_string,
+		NULL
+	}
+};
+
+static struct testpmd_commands bonding_cmds = {
+	.commands = {
+	{
+		&cmd_set_bonding_mode,
+		"set bonding mode (value) (port_id)\n"
+		"	Set the bonding mode on a bonded device.\n",
+	},
+	{
+		&cmd_show_bonding_config,
+		"show bonding config (port_id)\n"
+		"	Show the bonding config for port_id.\n",
+	},
+	{
+		&cmd_show_bonding_lacp_info,
+		"show bonding lacp info (port_id)\n"
+		"	Show the bonding lacp information for port_id.\n",
+	},
+	{
+		&cmd_set_bonding_primary,
+		"set bonding primary (slave_id) (port_id)\n"
+		"	Set the primary slave for a bonded device.\n",
+	},
+	{
+		&cmd_add_bonding_slave,
+		"add bonding slave (slave_id) (port_id)\n"
+		"	Add a slave device to a bonded device.\n",
+	},
+	{
+		&cmd_remove_bonding_slave,
+		"remove bonding slave (slave_id) (port_id)\n"
+		"	Remove a slave device from a bonded device.\n",
+	},
+	{
+		&cmd_create_bonded_device,
+		"create bonded device (mode) (socket)\n"
+		"	Create a new bonded device with specific bonding mode and socket.\n",
+	},
+	{
+		&cmd_set_bond_mac_addr,
+		"set bonding mac_addr (port_id) (address)\n"
+		"	Set the MAC address of a bonded device.\n",
+	},
+	{
+		&cmd_set_balance_xmit_policy,
+		"set bonding balance_xmit_policy (port_id) (l2|l23|l34)\n"
+		"	Set the transmit balance policy for bonded device running in balance mode.\n",
+	},
+	{
+		&cmd_set_bond_mon_period,
+		"set bonding mon_period (port_id) (value)\n"
+		"	Set the bonding link status monitoring polling period in ms.\n",
+	},
+	{
+		&cmd_set_lacp_dedicated_queues,
+		"set bonding lacp dedicated_queues <port_id> (enable|disable)\n"
+		"	Enable/disable dedicated queues for LACP control traffic.\n",
+	},
+	{
+		&cmd_set_bonding_agg_mode_policy,
+		"set bonding mode IEEE802.3AD aggregator policy (port_id) (agg_name)\n"
+		"	Set Aggregation mode for IEEE802.3AD (mode 4)\n",
+	},
+	{ NULL, NULL },
+	},
+};
+TESTPMD_ADD_DRIVER_COMMANDS(bonding_cmds)
diff --git a/drivers/net/bonding/meson.build b/drivers/net/bonding/meson.build
index 402b44be1a..18ad7e21f3 100644
--- a/drivers/net/bonding/meson.build
+++ b/drivers/net/bonding/meson.build
@@ -16,6 +16,7 @@ sources = files(
         'rte_eth_bond_flow.c',
         'rte_eth_bond_pmd.c',
 )
+testpmd_sources = files('bonding_testpmd.c')
 
 deps += 'sched' # needed for rte_bitmap.h
 deps += ['ip_frag']
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [PATCH 4/6] net/i40e: move testpmd commands
  2022-05-23  7:10 ` [PATCH 0/6] " David Marchand
                     ` (2 preceding siblings ...)
  2022-05-23  7:10   ` [PATCH 3/6] net/bonding: move testpmd commands David Marchand
@ 2022-05-23  7:10   ` David Marchand
  2022-06-17  5:07     ` [PATCH v2] " David Marchand
  2022-05-23  7:10   ` [PATCH 5/6] app/testpmd: drop ixgbe bypass commands David Marchand
                     ` (2 subsequent siblings)
  6 siblings, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-05-23  7:10 UTC (permalink / raw)
  To: dev
  Cc: thomas, andrew.rybchenko, ferruh.yigit, Xiaoyun Li, Aman Singh,
	Yuying Zhang, Beilei Xing

Move related specific testpmd commands into this driver directory.
While at it, fix checkpatch warnings.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since RFC v2:
- updated documentation,
- fixed some indent,

Changes since RFC v1:
- moved more i40e commands,
- fixed checkpatch warnings,

---
 app/test-pmd/cmdline.c                      | 5422 +++++--------------
 app/test-pmd/config.c                       |   43 -
 app/test-pmd/testpmd.h                      |    2 -
 doc/guides/nics/i40e.rst                    |  184 +-
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  177 +-
 drivers/net/i40e/i40e_testpmd.c             | 2634 +++++++++
 drivers/net/i40e/meson.build                |    2 +
 7 files changed, 4174 insertions(+), 4290 deletions(-)
 create mode 100644 drivers/net/i40e/i40e_testpmd.c

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 439b6b062c..17778c2275 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -192,21 +192,12 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"read txd (port_id) (queue_id) (txd_id)\n"
 			"    Display a TX descriptor of a port TX queue.\n\n"
 
-			"ddp get list (port_id)\n"
-			"    Get ddp profile info list\n\n"
-
-			"ddp get info (profile_path)\n"
-			"    Get ddp profile information.\n\n"
-
 			"show vf stats (port_id) (vf_id)\n"
 			"    Display a VF's statistics.\n\n"
 
 			"clear vf stats (port_id) (vf_id)\n"
 			"    Reset a VF's statistics.\n\n"
 
-			"show port (port_id) pctype mapping\n"
-			"    Get flow ptype to pctype mapping on a port\n\n"
-
 			"show port meter stats (port_id) (meter_id) (clear)\n"
 			"    Get meter stats on a port\n\n"
 
@@ -362,9 +353,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)\n"
 			"    Configure MACsec secure association (SA).\n\n"
 
-			"set vf broadcast (port_id) (vf_id) (on|off)\n"
-			"    Set VF broadcast for a VF from the PF.\n\n"
-
 			"vlan set stripq (on|off) (port_id,queue_id)\n"
 			"    Set the VLAN strip for a queue on a port.\n\n"
 
@@ -377,21 +365,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set vf vlan antispoof (port_id) (vf_id) (on|off)\n"
 			"    Set VLAN antispoof for a VF from the PF.\n\n"
 
-			"set vf vlan tag (port_id) (vf_id) (on|off)\n"
-			"    Set VLAN tag for a VF from the PF.\n\n"
-
-			"set vf tx max-bandwidth (port_id) (vf_id) (bandwidth)\n"
-			"    Set a VF's max bandwidth(Mbps).\n\n"
-
-			"set vf tc tx min-bandwidth (port_id) (vf_id) (bw1, bw2, ...)\n"
-			"    Set all TCs' min bandwidth(%%) on a VF.\n\n"
-
-			"set vf tc tx max-bandwidth (port_id) (vf_id) (tc_no) (bandwidth)\n"
-			"    Set a TC's max bandwidth(Mbps) on a VF.\n\n"
-
-			"set tx strict-link-priority (port_id) (tc_bitmap)\n"
-			"    Set some TCs' strict link priority mode on a physical port.\n\n"
-
 			"set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\n"
 			"    Set all TCs' min bandwidth(%%) for all PF and VFs.\n\n"
 
@@ -520,12 +493,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set allmulti (port_id|all) (on|off)\n"
 			"    Set the allmulti mode on port_id, or all.\n\n"
 
-			"set vf promisc (port_id) (vf_id) (on|off)\n"
-			"    Set unicast promiscuous mode for a VF from the PF.\n\n"
-
-			"set vf allmulti (port_id) (vf_id) (on|off)\n"
-			"    Set multicast promiscuous mode for a VF from the PF.\n\n"
-
 			"set flow_ctrl rx (on|off) tx (on|off) (high_water)"
 			" (low_water) (pause_time) (send_xon) mac_ctrl_frame_fwd"
 			" (on|off) autoneg (on|off) (port_id)\n"
@@ -616,42 +583,9 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set link-down port (port_id)\n"
 			"	Set link down for a port.\n\n"
 
-			"ddp add (port_id) (profile_path[,backup_profile_path])\n"
-			"    Load a profile package on a port\n\n"
-
-			"ddp del (port_id) (backup_profile_path)\n"
-			"    Delete a profile package from a port\n\n"
-
-			"ptype mapping get (port_id) (valid_only)\n"
-			"    Get ptype mapping on a port\n\n"
-
-			"ptype mapping replace (port_id) (target) (mask) (pky_type)\n"
-			"    Replace target with the pkt_type in ptype mapping\n\n"
-
-			"ptype mapping reset (port_id)\n"
-			"    Reset ptype mapping on a port\n\n"
-
-			"ptype mapping update (port_id) (hw_ptype) (sw_ptype)\n"
-			"    Update a ptype mapping item on a port\n\n"
-
 			"set port (port_id) ptype_mask (ptype_mask)\n"
 			"    set packet types classification for a specific port\n\n"
 
-			"set port (port_id) queue-region region_id (value) "
-			"queue_start_index (value) queue_num (value)\n"
-			"    Set a queue region on a port\n\n"
-
-			"set port (port_id) queue-region region_id (value) "
-			"flowtype (value)\n"
-			"    Set a flowtype region index on a port\n\n"
-
-			"set port (port_id) queue-region UP (value) region_id (value)\n"
-			"    Set the mapping of User Priority to "
-			"queue region on a port\n\n"
-
-			"set port (port_id) queue-region flush (on|off)\n"
-			"    flush all queue region related configuration\n\n"
-
 			"show port meter cap (port_id)\n"
 			"    Show port meter capability information\n\n"
 
@@ -702,9 +636,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set port meter stats mask (port_id) (mtr_id) (stats_mask)\n"
 			"    meter update stats\n\n"
 
-			"show port (port_id) queue-region\n"
-			"    show all queue region related configuration info\n\n"
-
 			"set port (port_id) fec_mode auto|off|rs|baser\n"
 			"    set fec mode for a specific port\n\n"
 
@@ -801,22 +732,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"port (port_id) (rxq|txq) (queue_id) setup\n"
 			"    Setup a rx/tx queue of port X.\n\n"
 
-			"port config (port_id) pctype mapping reset\n"
-			"    Reset flow type to pctype mapping on a port\n\n"
-
-			"port config (port_id) pctype mapping update"
-			" (pctype_id_0[,pctype_id_1]*) (flow_type_id)\n"
-			"    Update a flow type to pctype mapping item on a port\n\n"
-
-			"port config (port_id) pctype (pctype_id) hash_inset|"
-			"fdir_inset|fdir_flx_inset get|set|clear field\n"
-			" (field_idx)\n"
-			"    Configure RSS|FDIR|FDIR_FLX input set for some pctype\n\n"
-
-			"port config (port_id) pctype (pctype_id) hash_inset|"
-			"fdir_inset|fdir_flx_inset clear all"
-			"    Clear RSS|FDIR|FDIR_FLX input set completely for some pctype\n\n"
-
 			"port config (port_id) udp_tunnel_port add|rm vxlan|geneve|ecpri (udp_port)\n\n"
 			"    Add/remove UDP tunnel port for tunneling offload\n\n"
 
@@ -912,13 +827,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"filters:\n"
 			"--------\n\n"
 
-#ifdef RTE_NET_I40E
-			"flow_director_filter (port_id) mode raw (add|del|update)"
-			" flow (flow_id) (drop|fwd) queue (queue_id)"
-			" fd_id (fd_id_value) packet (packet file name)\n"
-			"    Add/Del a raw type flow director filter.\n\n"
-#endif
-
 			"flow_director_mask (port_id) mode IP vlan (vlan_value)"
 			" src_mask (ipv4_src) (ipv6_src) (src_port)"
 			" dst_mask (ipv4_dst) (ipv6_dst) (dst_port)\n"
@@ -9090,450 +8998,6 @@ static cmdline_parse_inst_t cmd_dump_one = {
 	},
 };
 
-/* *** queue region set *** */
-struct cmd_queue_region_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t region;
-	uint8_t  region_id;
-	cmdline_fixed_string_t queue_start_index;
-	uint8_t  queue_id;
-	cmdline_fixed_string_t queue_num;
-	uint8_t  queue_num_value;
-};
-
-static void
-cmd_queue_region_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_queue_region_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_SET;
-	region_conf.region_id = res->region_id;
-	region_conf.queue_num = res->queue_num_value;
-	region_conf.queue_start_index = res->queue_id;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-				op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "queue region config error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-static cmdline_parse_token_string_t cmd_queue_region_set =
-TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-		set, "set");
-static cmdline_parse_token_string_t cmd_queue_region_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result, port, "port");
-static cmdline_parse_token_num_t cmd_queue_region_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_queue_region_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				 cmd, "queue-region");
-static cmdline_parse_token_string_t cmd_queue_region_id =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				region, "region_id");
-static cmdline_parse_token_num_t cmd_queue_region_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				region_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				queue_start_index, "queue_start_index");
-static cmdline_parse_token_num_t cmd_queue_region_queue_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				queue_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_queue_region_queue_num =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				queue_num, "queue_num");
-static cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				queue_num_value, RTE_UINT8);
-
-static cmdline_parse_inst_t cmd_queue_region = {
-	.f = cmd_queue_region_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region region_id <value> "
-		"queue_start_index <value> queue_num <value>: Set a queue region",
-	.tokens = {
-		(void *)&cmd_queue_region_set,
-		(void *)&cmd_queue_region_port,
-		(void *)&cmd_queue_region_port_id,
-		(void *)&cmd_queue_region_cmd,
-		(void *)&cmd_queue_region_id,
-		(void *)&cmd_queue_region_index,
-		(void *)&cmd_queue_region_queue_start_index,
-		(void *)&cmd_queue_region_queue_id,
-		(void *)&cmd_queue_region_queue_num,
-		(void *)&cmd_queue_region_queue_num_value,
-		NULL,
-	},
-};
-
-/* *** queue region and flowtype set *** */
-struct cmd_region_flowtype_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t region;
-	uint8_t  region_id;
-	cmdline_fixed_string_t flowtype;
-	uint8_t  flowtype_id;
-};
-
-static void
-cmd_region_flowtype_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_region_flowtype_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_FLOWTYPE_SET;
-	region_conf.region_id = res->region_id;
-	region_conf.hw_flowtype = res->flowtype_id;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-			op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "region flowtype config error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-static cmdline_parse_token_string_t cmd_region_flowtype_set =
-TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				set, "set");
-static cmdline_parse_token_string_t cmd_region_flowtype_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				port, "port");
-static cmdline_parse_token_num_t cmd_region_flowtype_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
-				port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_region_flowtype_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				cmd, "queue-region");
-static cmdline_parse_token_string_t cmd_region_flowtype_index =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				region, "region_id");
-static cmdline_parse_token_num_t cmd_region_flowtype_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
-				region_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				flowtype, "flowtype");
-static cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
-				flowtype_id, RTE_UINT8);
-static cmdline_parse_inst_t cmd_region_flowtype = {
-	.f = cmd_region_flowtype_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region region_id <value> "
-		"flowtype <value>: Set a flowtype region index",
-	.tokens = {
-		(void *)&cmd_region_flowtype_set,
-		(void *)&cmd_region_flowtype_port,
-		(void *)&cmd_region_flowtype_port_index,
-		(void *)&cmd_region_flowtype_cmd,
-		(void *)&cmd_region_flowtype_index,
-		(void *)&cmd_region_flowtype_id,
-		(void *)&cmd_region_flowtype_flow_index,
-		(void *)&cmd_region_flowtype_flow_id,
-		NULL,
-	},
-};
-
-/* *** User Priority (UP) to queue region (region_id) set *** */
-struct cmd_user_priority_region_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t user_priority;
-	uint8_t  user_priority_id;
-	cmdline_fixed_string_t region;
-	uint8_t  region_id;
-};
-
-static void
-cmd_user_priority_region_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_user_priority_region_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_USER_PRIORITY_SET;
-	region_conf.user_priority = res->user_priority_id;
-	region_conf.region_id = res->region_id;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-				op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "user_priority region config error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-static cmdline_parse_token_string_t cmd_user_priority_region_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				set, "set");
-static cmdline_parse_token_string_t cmd_user_priority_region_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				port, "port");
-static cmdline_parse_token_num_t cmd_user_priority_region_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
-				port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_user_priority_region_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				cmd, "queue-region");
-static cmdline_parse_token_string_t cmd_user_priority_region_UP =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				user_priority, "UP");
-static cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
-				user_priority_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_user_priority_region_region =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				region, "region_id");
-static cmdline_parse_token_num_t cmd_user_priority_region_region_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
-				region_id, RTE_UINT8);
-
-static cmdline_parse_inst_t cmd_user_priority_region = {
-	.f = cmd_user_priority_region_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region UP <value> "
-		"region_id <value>: Set the mapping of User Priority (UP) "
-		"to queue region (region_id) ",
-	.tokens = {
-		(void *)&cmd_user_priority_region_set,
-		(void *)&cmd_user_priority_region_port,
-		(void *)&cmd_user_priority_region_port_index,
-		(void *)&cmd_user_priority_region_cmd,
-		(void *)&cmd_user_priority_region_UP,
-		(void *)&cmd_user_priority_region_UP_id,
-		(void *)&cmd_user_priority_region_region,
-		(void *)&cmd_user_priority_region_region_id,
-		NULL,
-	},
-};
-
-/* *** flush all queue region related configuration *** */
-struct cmd_flush_queue_region_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t flush;
-	cmdline_fixed_string_t what;
-};
-
-static void
-cmd_flush_queue_region_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_flush_queue_region_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-
-	if (strcmp(res->what, "on") == 0)
-		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_ON;
-	else
-		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_OFF;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-				op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "queue region config flush error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-static cmdline_parse_token_string_t cmd_flush_queue_region_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				set, "set");
-static cmdline_parse_token_string_t cmd_flush_queue_region_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				port, "port");
-static cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_flush_queue_region_result,
-				port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				cmd, "queue-region");
-static cmdline_parse_token_string_t cmd_flush_queue_region_flush =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				flush, "flush");
-static cmdline_parse_token_string_t cmd_flush_queue_region_what =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				what, "on#off");
-
-static cmdline_parse_inst_t cmd_flush_queue_region = {
-	.f = cmd_flush_queue_region_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region flush on|off"
-		": flush all queue region related configuration",
-	.tokens = {
-		(void *)&cmd_flush_queue_region_set,
-		(void *)&cmd_flush_queue_region_port,
-		(void *)&cmd_flush_queue_region_port_index,
-		(void *)&cmd_flush_queue_region_cmd,
-		(void *)&cmd_flush_queue_region_flush,
-		(void *)&cmd_flush_queue_region_what,
-		NULL,
-	},
-};
-
-/* *** get all queue region related configuration info *** */
-struct cmd_show_queue_region_info {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-};
-
-static void
-cmd_show_queue_region_info_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_show_queue_region_info *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_regions rte_pmd_regions;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&rte_pmd_regions, 0, sizeof(rte_pmd_regions));
-
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_INFO_GET;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-					op_type, &rte_pmd_regions);
-
-	port_queue_region_info_display(res->port_id, &rte_pmd_regions);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "queue region config info show error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-static cmdline_parse_token_string_t cmd_show_queue_region_info_get =
-TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
-				show, "show");
-static cmdline_parse_token_string_t cmd_show_queue_region_info_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
-				port, "port");
-static cmdline_parse_token_num_t cmd_show_queue_region_info_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_show_queue_region_info,
-				port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
-				cmd, "queue-region");
-
-static cmdline_parse_inst_t cmd_show_queue_region_info_all = {
-	.f = cmd_show_queue_region_info_parsed,
-	.data = NULL,
-	.help_str = "show port <port_id> queue-region"
-		": show all queue region related configuration info",
-	.tokens = {
-		(void *)&cmd_show_queue_region_info_get,
-		(void *)&cmd_show_queue_region_info_port,
-		(void *)&cmd_show_queue_region_info_port_index,
-		(void *)&cmd_show_queue_region_info_cmd,
-		NULL,
-	},
-};
-
 /* *** Filters Control *** */
 
 #define IPV4_ADDR_TO_UINT(ip_addr, ip) \
@@ -9558,197 +9022,9 @@ do { \
 	} \
 } while (0)
 
-#ifdef RTE_NET_I40E
-
-static uint16_t
-str2flowtype(char *string)
-{
-	uint8_t i = 0;
-	static const struct {
-		char str[32];
-		uint16_t type;
-	} flowtype_str[] = {
-		{"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},
-		{"ipv6-ex", RTE_ETH_FLOW_IPV6_EX},
-		{"ipv6-tcp-ex", RTE_ETH_FLOW_IPV6_TCP_EX},
-		{"ipv6-udp-ex", RTE_ETH_FLOW_IPV6_UDP_EX},
-		{"gtpu", RTE_ETH_FLOW_GTPU},
-	};
-
-	for (i = 0; i < RTE_DIM(flowtype_str); i++) {
-		if (!strcmp(flowtype_str[i].str, string))
-			return flowtype_str[i].type;
-	}
-
-	if (isdigit(string[0]) && atoi(string) > 0 && atoi(string) < 64)
-		return (uint16_t)atoi(string);
-
-	return RTE_ETH_FLOW_UNKNOWN;
-}
-
-/* *** deal with flow director filter *** */
-struct cmd_flow_director_result {
-	cmdline_fixed_string_t flow_director_filter;
-	portid_t port_id;
-	cmdline_fixed_string_t mode;
-	cmdline_fixed_string_t mode_value;
-	cmdline_fixed_string_t ops;
-	cmdline_fixed_string_t flow;
-	cmdline_fixed_string_t flow_type;
-	cmdline_fixed_string_t drop;
-	cmdline_fixed_string_t queue;
-	uint16_t  queue_id;
-	cmdline_fixed_string_t fd_id;
-	uint32_t  fd_id_value;
-	cmdline_fixed_string_t packet;
-	char filepath[];
-};
-
-static void
-cmd_flow_director_filter_parsed(void *parsed_result,
-			  __rte_unused struct cmdline *cl,
-			  __rte_unused void *data)
-{
-	struct cmd_flow_director_result *res = parsed_result;
-	int ret = 0;
-	struct rte_pmd_i40e_flow_type_mapping
-			mapping[RTE_PMD_I40E_FLOW_TYPE_MAX];
-	struct rte_pmd_i40e_pkt_template_conf conf;
-	uint16_t flow_type = str2flowtype(res->flow_type);
-	uint16_t i, port = res->port_id;
-	uint8_t add;
-
-	memset(&conf, 0, sizeof(conf));
-
-	if (flow_type == RTE_ETH_FLOW_UNKNOWN) {
-		fprintf(stderr, "Invalid flow type specified.\n");
-		return;
-	}
-	ret = rte_pmd_i40e_flow_type_mapping_get(res->port_id,
-						 mapping);
-	if (ret)
-		return;
-	if (mapping[flow_type].pctype == 0ULL) {
-		fprintf(stderr, "Invalid flow type specified.\n");
-		return;
-	}
-	for (i = 0; i < RTE_PMD_I40E_PCTYPE_MAX; i++) {
-		if (mapping[flow_type].pctype & (1ULL << i)) {
-			conf.input.pctype = i;
-			break;
-		}
-	}
-
-	conf.input.packet = open_file(res->filepath,
-				&conf.input.length);
-	if (!conf.input.packet)
-		return;
-	if (!strcmp(res->drop, "drop"))
-		conf.action.behavior =
-			RTE_PMD_I40E_PKT_TEMPLATE_REJECT;
-	else
-		conf.action.behavior =
-			RTE_PMD_I40E_PKT_TEMPLATE_ACCEPT;
-	conf.action.report_status =
-			RTE_PMD_I40E_PKT_TEMPLATE_REPORT_ID;
-	conf.action.rx_queue = res->queue_id;
-	conf.soft_id = res->fd_id_value;
-	add  = strcmp(res->ops, "del") ? 1 : 0;
-	ret = rte_pmd_i40e_flow_add_del_packet_template(port,
-							&conf,
-							add);
-	if (ret < 0)
-		fprintf(stderr, "flow director config error: (%s)\n",
-			strerror(-ret));
-	close_file(conf.input.packet);
-}
-
-static cmdline_parse_token_string_t cmd_flow_director_filter =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 flow_director_filter, "flow_director_filter");
-static cmdline_parse_token_num_t cmd_flow_director_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
-			      port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_flow_director_ops =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 ops, "add#del#update");
-static cmdline_parse_token_string_t cmd_flow_director_flow =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 flow, "flow");
-static cmdline_parse_token_string_t cmd_flow_director_flow_type =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-		flow_type, NULL);
-static cmdline_parse_token_string_t cmd_flow_director_drop =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 drop, "drop#fwd");
-static cmdline_parse_token_string_t cmd_flow_director_queue =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 queue, "queue");
-static cmdline_parse_token_num_t cmd_flow_director_queue_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
-			      queue_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_flow_director_fd_id =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 fd_id, "fd_id");
-static cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
-			      fd_id_value, RTE_UINT32);
-
-static cmdline_parse_token_string_t cmd_flow_director_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 mode, "mode");
-static cmdline_parse_token_string_t cmd_flow_director_mode_raw =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 mode_value, "raw");
-static cmdline_parse_token_string_t cmd_flow_director_packet =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 packet, "packet");
-static cmdline_parse_token_string_t cmd_flow_director_filepath =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 filepath, NULL);
-
-static cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
-	.f = cmd_flow_director_filter_parsed,
-	.data = NULL,
-	.help_str = "flow_director_filter ... : Add or delete a raw flow "
-		"director entry on NIC",
-	.tokens = {
-		(void *)&cmd_flow_director_filter,
-		(void *)&cmd_flow_director_port_id,
-		(void *)&cmd_flow_director_mode,
-		(void *)&cmd_flow_director_mode_raw,
-		(void *)&cmd_flow_director_ops,
-		(void *)&cmd_flow_director_flow,
-		(void *)&cmd_flow_director_flow_type,
-		(void *)&cmd_flow_director_drop,
-		(void *)&cmd_flow_director_queue,
-		(void *)&cmd_flow_director_queue_id,
-		(void *)&cmd_flow_director_fd_id,
-		(void *)&cmd_flow_director_fd_id_value,
-		(void *)&cmd_flow_director_packet,
-		(void *)&cmd_flow_director_filepath,
-		NULL,
-	},
-};
-
-#endif /* RTE_NET_I40E */
-
-/* *** deal with flow director mask *** */
-struct cmd_flow_director_mask_result {
-	cmdline_fixed_string_t flow_director_mask;
+/* *** deal with flow director mask *** */
+struct cmd_flow_director_mask_result {
+	cmdline_fixed_string_t flow_director_mask;
 	portid_t port_id;
 	cmdline_fixed_string_t mode;
 	cmdline_fixed_string_t mode_value;
@@ -11355,249 +10631,121 @@ static cmdline_parse_inst_t cmd_set_macsec_sa = {
 	},
 };
 
-/* VF unicast promiscuous mode configuration */
-
-/* Common result structure for VF unicast promiscuous mode */
-struct cmd_vf_promisc_result {
+/* Common definition of VF and TC TX bandwidth configuration */
+struct cmd_vf_tc_bw_result {
 	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t promisc;
+	cmdline_fixed_string_t tc;
+	cmdline_fixed_string_t tx;
+	cmdline_fixed_string_t min_bw;
 	portid_t port_id;
-	uint32_t vf_id;
-	cmdline_fixed_string_t on_off;
+	cmdline_fixed_string_t bw_list;
 };
 
-/* Common CLI fields for VF unicast promiscuous mode enable disable */
-static cmdline_parse_token_string_t cmd_vf_promisc_set =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_promisc_result,
+		(struct cmd_vf_tc_bw_result,
 		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_promisc_vf =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_promisc_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_vf_promisc_promisc =
+		(struct cmd_vf_tc_bw_result,
+		 tc, "tc");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 tx, "tx");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_promisc_result,
-		 promisc, "promisc");
-static cmdline_parse_token_num_t cmd_vf_promisc_port_id =
+		(struct cmd_vf_tc_bw_result,
+		 min_bw, "min-bandwidth");
+static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
 	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_promisc_result,
+		(struct cmd_vf_tc_bw_result,
 		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_promisc_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_promisc_result,
-		 vf_id, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_vf_promisc_on_off =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_promisc_result,
-		 on_off, "on#off");
+		(struct cmd_vf_tc_bw_result,
+		 bw_list, NULL);
 
-static void
-cmd_set_vf_promisc_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
+static int
+vf_tc_min_bw_parse_bw_list(uint8_t *bw_list,
+			   uint8_t *tc_num,
+			   char *str)
 {
-	struct cmd_vf_promisc_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_unicast_promisc(res->port_id,
-						  res->vf_id, is_on);
-#endif
+	uint32_t size;
+	const char *p, *p0 = str;
+	char s[256];
+	char *end;
+	char *str_fld[16];
+	uint16_t i;
+	int ret;
 
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	p = strchr(p0, '(');
+	if (p == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
 	}
-}
-
-static cmdline_parse_inst_t cmd_set_vf_promisc = {
-	.f = cmd_set_vf_promisc_parsed,
-	.data = NULL,
-	.help_str = "set vf promisc <port_id> <vf_id> on|off: "
-		"Set unicast promiscuous mode for a VF from the PF",
-	.tokens = {
-		(void *)&cmd_vf_promisc_set,
-		(void *)&cmd_vf_promisc_vf,
-		(void *)&cmd_vf_promisc_promisc,
-		(void *)&cmd_vf_promisc_port_id,
-		(void *)&cmd_vf_promisc_vf_id,
-		(void *)&cmd_vf_promisc_on_off,
-		NULL,
-	},
-};
-
-/* VF multicast promiscuous mode configuration */
-
-/* Common result structure for VF multicast promiscuous mode */
-struct cmd_vf_allmulti_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t allmulti;
-	portid_t port_id;
-	uint32_t vf_id;
-	cmdline_fixed_string_t on_off;
-};
+	p++;
+	p0 = strchr(p, ')');
+	if (p0 == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	size = p0 - p;
+	if (size >= sizeof(s)) {
+		fprintf(stderr,
+			"The string size exceeds the internal buffer size\n");
+		return -1;
+	}
+	snprintf(s, sizeof(s), "%.*s", size, p);
+	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
+	if (ret <= 0) {
+		fprintf(stderr, "Failed to get the bandwidth list.\n");
+		return -1;
+	}
+	*tc_num = ret;
+	for (i = 0; i < ret; i++)
+		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
 
-/* Common CLI fields for VF multicast promiscuous mode enable disable */
-static cmdline_parse_token_string_t cmd_vf_allmulti_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_allmulti_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_vf_allmulti_allmulti =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 allmulti, "allmulti");
-static cmdline_parse_token_num_t cmd_vf_allmulti_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_allmulti_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 vf_id, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_vf_allmulti_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 on_off, "on#off");
+	return 0;
+}
 
 static void
-cmd_set_vf_allmulti_parsed(
+cmd_tc_min_bw_parsed(
 	void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_vf_allmulti_result *res = parsed_result;
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	struct rte_port *port;
+	uint8_t tc_num;
+	uint8_t bw[16];
 	int ret = -ENOTSUP;
 
-	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
 	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
 		return;
 
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_multicast_promisc(res->port_id,
-						    res->vf_id, is_on);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	port = &ports[res->port_id];
+	/** Check if the port is not started **/
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr, "Please stop port %d first\n", res->port_id);
+		return;
 	}
-}
-
-static cmdline_parse_inst_t cmd_set_vf_allmulti = {
-	.f = cmd_set_vf_allmulti_parsed,
-	.data = NULL,
-	.help_str = "set vf allmulti <port_id> <vf_id> on|off: "
-		"Set multicast promiscuous mode for a VF from the PF",
-	.tokens = {
-		(void *)&cmd_vf_allmulti_set,
-		(void *)&cmd_vf_allmulti_vf,
-		(void *)&cmd_vf_allmulti_allmulti,
-		(void *)&cmd_vf_allmulti_port_id,
-		(void *)&cmd_vf_allmulti_vf_id,
-		(void *)&cmd_vf_allmulti_on_off,
-		NULL,
-	},
-};
-
-/* vf broadcast mode configuration */
-
-/* Common result structure for vf broadcast */
-struct cmd_set_vf_broadcast_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t broadcast;
-	portid_t port_id;
-	uint16_t vf_id;
-	cmdline_fixed_string_t on_off;
-};
-
-/* Common CLI fields for vf broadcast enable disable */
-static cmdline_parse_token_string_t cmd_set_vf_broadcast_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_set_vf_broadcast_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_set_vf_broadcast_broadcast =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 broadcast, "broadcast");
-static cmdline_parse_token_num_t cmd_set_vf_broadcast_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_set_vf_broadcast_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 vf_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_vf_broadcast_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 on_off, "on#off");
-
-static void
-cmd_set_vf_broadcast_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_vf_broadcast_result *res = parsed_result;
-	int ret = -ENOTSUP;
 
-	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
+	if (ret)
 		return;
 
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_broadcast(res->port_id,
-					    res->vf_id, is_on);
+#ifdef RTE_NET_IXGBE
+	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
 #endif
 
 	switch (ret) {
 	case 0:
 		break;
 	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
-			res->vf_id, is_on);
+		fprintf(stderr, "invalid bandwidth\n");
 		break;
 	case -ENODEV:
 		fprintf(stderr, "invalid port_id %d\n", res->port_id);
@@ -11610,3200 +10758,1434 @@ cmd_set_vf_broadcast_parsed(
 	}
 }
 
-static cmdline_parse_inst_t cmd_set_vf_broadcast = {
-	.f = cmd_set_vf_broadcast_parsed,
+static cmdline_parse_inst_t cmd_tc_min_bw = {
+	.f = cmd_tc_min_bw_parsed,
 	.data = NULL,
-	.help_str = "set vf broadcast <port_id> <vf_id> on|off",
+	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
 	.tokens = {
-		(void *)&cmd_set_vf_broadcast_set,
-		(void *)&cmd_set_vf_broadcast_vf,
-		(void *)&cmd_set_vf_broadcast_broadcast,
-		(void *)&cmd_set_vf_broadcast_port_id,
-		(void *)&cmd_set_vf_broadcast_vf_id,
-		(void *)&cmd_set_vf_broadcast_on_off,
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_tc,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_min_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_bw_list,
 		NULL,
 	},
 };
 
-/* vf vlan tag configuration */
-
-/* Common result structure for vf vlan tag */
-struct cmd_set_vf_vlan_tag_result {
+/** Set VXLAN encapsulation details */
+struct cmd_set_vxlan_result {
 	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t vlan;
-	cmdline_fixed_string_t tag;
-	portid_t port_id;
-	uint16_t vf_id;
-	cmdline_fixed_string_t on_off;
-};
-
-/* Common CLI fields for vf vlan tag enable disable */
-static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vlan =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 vlan, "vlan");
-static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_tag =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 tag, "tag");
-static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 vf_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 on_off, "on#off");
-
-static void
-cmd_set_vf_vlan_tag_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_vf_vlan_tag_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_vlan_tag(res->port_id,
-					   res->vf_id, is_on);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
-			res->vf_id, is_on);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_vf_vlan_tag = {
-	.f = cmd_set_vf_vlan_tag_parsed,
-	.data = NULL,
-	.help_str = "set vf vlan tag <port_id> <vf_id> on|off",
-	.tokens = {
-		(void *)&cmd_set_vf_vlan_tag_set,
-		(void *)&cmd_set_vf_vlan_tag_vf,
-		(void *)&cmd_set_vf_vlan_tag_vlan,
-		(void *)&cmd_set_vf_vlan_tag_tag,
-		(void *)&cmd_set_vf_vlan_tag_port_id,
-		(void *)&cmd_set_vf_vlan_tag_vf_id,
-		(void *)&cmd_set_vf_vlan_tag_on_off,
-		NULL,
-	},
-};
-
-/* Common definition of VF and TC TX bandwidth configuration */
-struct cmd_vf_tc_bw_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t tc;
-	cmdline_fixed_string_t tx;
-	cmdline_fixed_string_t min_bw;
-	cmdline_fixed_string_t max_bw;
-	cmdline_fixed_string_t strict_link_prio;
-	portid_t port_id;
-	uint16_t vf_id;
-	uint8_t tc_no;
-	uint32_t bw;
-	cmdline_fixed_string_t bw_list;
-	uint8_t tc_map;
-};
-
-static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tc, "tc");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tx, "tx");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_strict_link_prio =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 strict_link_prio, "strict-link-priority");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 min_bw, "min-bandwidth");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_max_bw =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 max_bw, "max-bandwidth");
-static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_tc_bw_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 vf_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_no =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tc_no, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_vf_tc_bw_bw =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 bw, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 bw_list, NULL);
-static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_map =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tc_map, RTE_UINT8);
-
-/* VF max bandwidth setting */
-static void
-cmd_vf_max_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_max_bw(res->port_id,
-					 res->vf_id, res->bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or bandwidth %d\n",
-			res->vf_id, res->bw);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_vf_max_bw = {
-	.f = cmd_vf_max_bw_parsed,
-	.data = NULL,
-	.help_str = "set vf tx max-bandwidth <port_id> <vf_id> <bandwidth>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_vf,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_max_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_vf_id,
-		(void *)&cmd_vf_tc_bw_bw,
-		NULL,
-	},
-};
-
-static int
-vf_tc_min_bw_parse_bw_list(uint8_t *bw_list,
-			   uint8_t *tc_num,
-			   char *str)
-{
-	uint32_t size;
-	const char *p, *p0 = str;
-	char s[256];
-	char *end;
-	char *str_fld[16];
-	uint16_t i;
-	int ret;
-
-	p = strchr(p0, '(');
-	if (p == NULL) {
-		fprintf(stderr,
-			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
-		return -1;
-	}
-	p++;
-	p0 = strchr(p, ')');
-	if (p0 == NULL) {
-		fprintf(stderr,
-			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
-		return -1;
-	}
-	size = p0 - p;
-	if (size >= sizeof(s)) {
-		fprintf(stderr,
-			"The string size exceeds the internal buffer size\n");
-		return -1;
-	}
-	snprintf(s, sizeof(s), "%.*s", size, p);
-	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
-	if (ret <= 0) {
-		fprintf(stderr, "Failed to get the bandwidth list.\n");
-		return -1;
-	}
-	*tc_num = ret;
-	for (i = 0; i < ret; i++)
-		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
-
-	return 0;
-}
-
-/* TC min bandwidth setting */
-static void
-cmd_vf_tc_min_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	uint8_t tc_num;
-	uint8_t bw[16];
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
-	if (ret)
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_tc_bw_alloc(res->port_id, res->vf_id,
-					      tc_num, bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or bandwidth\n", res->vf_id);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_vf_tc_min_bw = {
-	.f = cmd_vf_tc_min_bw_parsed,
-	.data = NULL,
-	.help_str = "set vf tc tx min-bandwidth <port_id> <vf_id>"
-		    " <bw1, bw2, ...>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_vf,
-		(void *)&cmd_vf_tc_bw_tc,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_min_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_vf_id,
-		(void *)&cmd_vf_tc_bw_bw_list,
-		NULL,
-	},
-};
-
-static void
-cmd_tc_min_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	struct rte_port *port;
-	uint8_t tc_num;
-	uint8_t bw[16];
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	port = &ports[res->port_id];
-	/** Check if the port is not started **/
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr, "Please stop port %d first\n", res->port_id);
-		return;
-	}
-
-	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
-	if (ret)
-		return;
-
-#ifdef RTE_NET_IXGBE
-	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid bandwidth\n");
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_tc_min_bw = {
-	.f = cmd_tc_min_bw_parsed,
-	.data = NULL,
-	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_tc,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_min_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_bw_list,
-		NULL,
-	},
-};
-
-/* TC max bandwidth setting */
-static void
-cmd_vf_tc_max_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_tc_max_bw(res->port_id, res->vf_id,
-					    res->tc_no, res->bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr,
-			"invalid vf_id %d, tc_no %d or bandwidth %d\n",
-			res->vf_id, res->tc_no, res->bw);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_vf_tc_max_bw = {
-	.f = cmd_vf_tc_max_bw_parsed,
-	.data = NULL,
-	.help_str = "set vf tc tx max-bandwidth <port_id> <vf_id> <tc_no>"
-		    " <bandwidth>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_vf,
-		(void *)&cmd_vf_tc_bw_tc,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_max_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_vf_id,
-		(void *)&cmd_vf_tc_bw_tc_no,
-		(void *)&cmd_vf_tc_bw_bw,
-		NULL,
-	},
-};
-
-/** Set VXLAN encapsulation details */
-struct cmd_set_vxlan_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vxlan;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-	uint32_t vni;
-	uint16_t udp_src;
-	uint16_t udp_dst;
-	cmdline_ipaddr_t ip_src;
-	cmdline_ipaddr_t ip_dst;
-	uint16_t tci;
-	uint8_t tos;
-	uint8_t ttl;
-	struct rte_ether_addr eth_src;
-	struct rte_ether_addr eth_dst;
-};
-
-static cmdline_parse_token_string_t cmd_set_vxlan_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, set, "set");
-static cmdline_parse_token_string_t cmd_set_vxlan_vxlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan, "vxlan");
-static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_tos_ttl =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
-				 "vxlan-tos-ttl");
-static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
-				 "vxlan-with-vlan");
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "ip-version");
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, ip_version,
-				 "ipv4#ipv6");
-static cmdline_parse_token_string_t cmd_set_vxlan_vni =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "vni");
-static cmdline_parse_token_num_t cmd_set_vxlan_vni_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, vni, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_vxlan_udp_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "udp-src");
-static cmdline_parse_token_num_t cmd_set_vxlan_udp_src_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_src, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_vxlan_udp_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "udp-dst");
-static cmdline_parse_token_num_t cmd_set_vxlan_udp_dst_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_dst, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_tos =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "ip-tos");
-static cmdline_parse_token_num_t cmd_set_vxlan_ip_tos_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tos, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_ttl =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "ip-ttl");
-static cmdline_parse_token_num_t cmd_set_vxlan_ip_ttl_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, ttl, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "ip-src");
-static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_src_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_src);
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "ip-dst");
-static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_dst_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_dst);
-static cmdline_parse_token_string_t cmd_set_vxlan_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "vlan-tci");
-static cmdline_parse_token_num_t cmd_set_vxlan_vlan_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tci, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_vxlan_eth_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "eth-src");
-static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_src_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_src);
-static cmdline_parse_token_string_t cmd_set_vxlan_eth_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "eth-dst");
-static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_dst_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_dst);
-
-static void cmd_set_vxlan_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_vxlan_result *res = parsed_result;
-	union {
-		uint32_t vxlan_id;
-		uint8_t vni[4];
-	} id = {
-		.vxlan_id = rte_cpu_to_be_32(res->vni) & RTE_BE32(0x00ffffff),
-	};
-
-	vxlan_encap_conf.select_tos_ttl = 0;
-	if (strcmp(res->vxlan, "vxlan") == 0)
-		vxlan_encap_conf.select_vlan = 0;
-	else if (strcmp(res->vxlan, "vxlan-with-vlan") == 0)
-		vxlan_encap_conf.select_vlan = 1;
-	else if (strcmp(res->vxlan, "vxlan-tos-ttl") == 0) {
-		vxlan_encap_conf.select_vlan = 0;
-		vxlan_encap_conf.select_tos_ttl = 1;
-	}
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		vxlan_encap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		vxlan_encap_conf.select_ipv4 = 0;
-	else
-		return;
-	rte_memcpy(vxlan_encap_conf.vni, &id.vni[1], 3);
-	vxlan_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
-	vxlan_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
-	vxlan_encap_conf.ip_tos = res->tos;
-	vxlan_encap_conf.ip_ttl = res->ttl;
-	if (vxlan_encap_conf.select_ipv4) {
-		IPV4_ADDR_TO_UINT(res->ip_src, vxlan_encap_conf.ipv4_src);
-		IPV4_ADDR_TO_UINT(res->ip_dst, vxlan_encap_conf.ipv4_dst);
-	} else {
-		IPV6_ADDR_TO_ARRAY(res->ip_src, vxlan_encap_conf.ipv6_src);
-		IPV6_ADDR_TO_ARRAY(res->ip_dst, vxlan_encap_conf.ipv6_dst);
-	}
-	if (vxlan_encap_conf.select_vlan)
-		vxlan_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
-	rte_memcpy(vxlan_encap_conf.eth_src, res->eth_src.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-	rte_memcpy(vxlan_encap_conf.eth_dst, res->eth_dst.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-}
-
-static cmdline_parse_inst_t cmd_set_vxlan = {
-	.f = cmd_set_vxlan_parsed,
-	.data = NULL,
-	.help_str = "set vxlan ip-version ipv4|ipv6 vni <vni> udp-src"
-		" <udp-src> udp-dst <udp-dst> ip-src <ip-src> ip-dst <ip-dst>"
-		" eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_vxlan_set,
-		(void *)&cmd_set_vxlan_vxlan,
-		(void *)&cmd_set_vxlan_ip_version,
-		(void *)&cmd_set_vxlan_ip_version_value,
-		(void *)&cmd_set_vxlan_vni,
-		(void *)&cmd_set_vxlan_vni_value,
-		(void *)&cmd_set_vxlan_udp_src,
-		(void *)&cmd_set_vxlan_udp_src_value,
-		(void *)&cmd_set_vxlan_udp_dst,
-		(void *)&cmd_set_vxlan_udp_dst_value,
-		(void *)&cmd_set_vxlan_ip_src,
-		(void *)&cmd_set_vxlan_ip_src_value,
-		(void *)&cmd_set_vxlan_ip_dst,
-		(void *)&cmd_set_vxlan_ip_dst_value,
-		(void *)&cmd_set_vxlan_eth_src,
-		(void *)&cmd_set_vxlan_eth_src_value,
-		(void *)&cmd_set_vxlan_eth_dst,
-		(void *)&cmd_set_vxlan_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
-	.f = cmd_set_vxlan_parsed,
-	.data = NULL,
-	.help_str = "set vxlan-tos-ttl ip-version ipv4|ipv6 vni <vni> udp-src"
-		" <udp-src> udp-dst <udp-dst> ip-tos <ip-tos> ip-ttl <ip-ttl>"
-		" ip-src <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
-		" eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_vxlan_set,
-		(void *)&cmd_set_vxlan_vxlan_tos_ttl,
-		(void *)&cmd_set_vxlan_ip_version,
-		(void *)&cmd_set_vxlan_ip_version_value,
-		(void *)&cmd_set_vxlan_vni,
-		(void *)&cmd_set_vxlan_vni_value,
-		(void *)&cmd_set_vxlan_udp_src,
-		(void *)&cmd_set_vxlan_udp_src_value,
-		(void *)&cmd_set_vxlan_udp_dst,
-		(void *)&cmd_set_vxlan_udp_dst_value,
-		(void *)&cmd_set_vxlan_ip_tos,
-		(void *)&cmd_set_vxlan_ip_tos_value,
-		(void *)&cmd_set_vxlan_ip_ttl,
-		(void *)&cmd_set_vxlan_ip_ttl_value,
-		(void *)&cmd_set_vxlan_ip_src,
-		(void *)&cmd_set_vxlan_ip_src_value,
-		(void *)&cmd_set_vxlan_ip_dst,
-		(void *)&cmd_set_vxlan_ip_dst_value,
-		(void *)&cmd_set_vxlan_eth_src,
-		(void *)&cmd_set_vxlan_eth_src_value,
-		(void *)&cmd_set_vxlan_eth_dst,
-		(void *)&cmd_set_vxlan_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_vxlan_with_vlan = {
-	.f = cmd_set_vxlan_parsed,
-	.data = NULL,
-	.help_str = "set vxlan-with-vlan ip-version ipv4|ipv6 vni <vni>"
-		" udp-src <udp-src> udp-dst <udp-dst> ip-src <ip-src> ip-dst"
-		" <ip-dst> vlan-tci <vlan-tci> eth-src <eth-src> eth-dst"
-		" <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_vxlan_set,
-		(void *)&cmd_set_vxlan_vxlan_with_vlan,
-		(void *)&cmd_set_vxlan_ip_version,
-		(void *)&cmd_set_vxlan_ip_version_value,
-		(void *)&cmd_set_vxlan_vni,
-		(void *)&cmd_set_vxlan_vni_value,
-		(void *)&cmd_set_vxlan_udp_src,
-		(void *)&cmd_set_vxlan_udp_src_value,
-		(void *)&cmd_set_vxlan_udp_dst,
-		(void *)&cmd_set_vxlan_udp_dst_value,
-		(void *)&cmd_set_vxlan_ip_src,
-		(void *)&cmd_set_vxlan_ip_src_value,
-		(void *)&cmd_set_vxlan_ip_dst,
-		(void *)&cmd_set_vxlan_ip_dst_value,
-		(void *)&cmd_set_vxlan_vlan,
-		(void *)&cmd_set_vxlan_vlan_value,
-		(void *)&cmd_set_vxlan_eth_src,
-		(void *)&cmd_set_vxlan_eth_src_value,
-		(void *)&cmd_set_vxlan_eth_dst,
-		(void *)&cmd_set_vxlan_eth_dst_value,
-		NULL,
-	},
-};
-
-/** Set NVGRE encapsulation details */
-struct cmd_set_nvgre_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t nvgre;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t tni;
-	cmdline_ipaddr_t ip_src;
-	cmdline_ipaddr_t ip_dst;
-	uint16_t tci;
-	struct rte_ether_addr eth_src;
-	struct rte_ether_addr eth_dst;
-};
-
-static cmdline_parse_token_string_t cmd_set_nvgre_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, set, "set");
-static cmdline_parse_token_string_t cmd_set_nvgre_nvgre =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre, "nvgre");
-static cmdline_parse_token_string_t cmd_set_nvgre_nvgre_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre,
-				 "nvgre-with-vlan");
-static cmdline_parse_token_string_t cmd_set_nvgre_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "ip-version");
-static cmdline_parse_token_string_t cmd_set_nvgre_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, ip_version,
-				 "ipv4#ipv6");
-static cmdline_parse_token_string_t cmd_set_nvgre_tni =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "tni");
-static cmdline_parse_token_num_t cmd_set_nvgre_tni_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tni, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_nvgre_ip_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "ip-src");
-static cmdline_parse_token_num_t cmd_set_nvgre_ip_src_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_src);
-static cmdline_parse_token_string_t cmd_set_nvgre_ip_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "ip-dst");
-static cmdline_parse_token_ipaddr_t cmd_set_nvgre_ip_dst_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_dst);
-static cmdline_parse_token_string_t cmd_set_nvgre_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "vlan-tci");
-static cmdline_parse_token_num_t cmd_set_nvgre_vlan_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tci, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_nvgre_eth_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "eth-src");
-static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_src_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_src);
-static cmdline_parse_token_string_t cmd_set_nvgre_eth_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "eth-dst");
-static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_dst_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_dst);
-
-static void cmd_set_nvgre_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_nvgre_result *res = parsed_result;
-	union {
-		uint32_t nvgre_tni;
-		uint8_t tni[4];
-	} id = {
-		.nvgre_tni = rte_cpu_to_be_32(res->tni) & RTE_BE32(0x00ffffff),
-	};
-
-	if (strcmp(res->nvgre, "nvgre") == 0)
-		nvgre_encap_conf.select_vlan = 0;
-	else if (strcmp(res->nvgre, "nvgre-with-vlan") == 0)
-		nvgre_encap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		nvgre_encap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		nvgre_encap_conf.select_ipv4 = 0;
-	else
-		return;
-	rte_memcpy(nvgre_encap_conf.tni, &id.tni[1], 3);
-	if (nvgre_encap_conf.select_ipv4) {
-		IPV4_ADDR_TO_UINT(res->ip_src, nvgre_encap_conf.ipv4_src);
-		IPV4_ADDR_TO_UINT(res->ip_dst, nvgre_encap_conf.ipv4_dst);
-	} else {
-		IPV6_ADDR_TO_ARRAY(res->ip_src, nvgre_encap_conf.ipv6_src);
-		IPV6_ADDR_TO_ARRAY(res->ip_dst, nvgre_encap_conf.ipv6_dst);
-	}
-	if (nvgre_encap_conf.select_vlan)
-		nvgre_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
-	rte_memcpy(nvgre_encap_conf.eth_src, res->eth_src.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-	rte_memcpy(nvgre_encap_conf.eth_dst, res->eth_dst.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-}
-
-static cmdline_parse_inst_t cmd_set_nvgre = {
-	.f = cmd_set_nvgre_parsed,
-	.data = NULL,
-	.help_str = "set nvgre ip-version <ipv4|ipv6> tni <tni> ip-src"
-		" <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
-		" eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_nvgre_set,
-		(void *)&cmd_set_nvgre_nvgre,
-		(void *)&cmd_set_nvgre_ip_version,
-		(void *)&cmd_set_nvgre_ip_version_value,
-		(void *)&cmd_set_nvgre_tni,
-		(void *)&cmd_set_nvgre_tni_value,
-		(void *)&cmd_set_nvgre_ip_src,
-		(void *)&cmd_set_nvgre_ip_src_value,
-		(void *)&cmd_set_nvgre_ip_dst,
-		(void *)&cmd_set_nvgre_ip_dst_value,
-		(void *)&cmd_set_nvgre_eth_src,
-		(void *)&cmd_set_nvgre_eth_src_value,
-		(void *)&cmd_set_nvgre_eth_dst,
-		(void *)&cmd_set_nvgre_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_nvgre_with_vlan = {
-	.f = cmd_set_nvgre_parsed,
-	.data = NULL,
-	.help_str = "set nvgre-with-vlan ip-version <ipv4|ipv6> tni <tni>"
-		" ip-src <ip-src> ip-dst <ip-dst> vlan-tci <vlan-tci>"
-		" eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_nvgre_set,
-		(void *)&cmd_set_nvgre_nvgre_with_vlan,
-		(void *)&cmd_set_nvgre_ip_version,
-		(void *)&cmd_set_nvgre_ip_version_value,
-		(void *)&cmd_set_nvgre_tni,
-		(void *)&cmd_set_nvgre_tni_value,
-		(void *)&cmd_set_nvgre_ip_src,
-		(void *)&cmd_set_nvgre_ip_src_value,
-		(void *)&cmd_set_nvgre_ip_dst,
-		(void *)&cmd_set_nvgre_ip_dst_value,
-		(void *)&cmd_set_nvgre_vlan,
-		(void *)&cmd_set_nvgre_vlan_value,
-		(void *)&cmd_set_nvgre_eth_src,
-		(void *)&cmd_set_nvgre_eth_src_value,
-		(void *)&cmd_set_nvgre_eth_dst,
-		(void *)&cmd_set_nvgre_eth_dst_value,
-		NULL,
-	},
-};
-
-/** Set L2 encapsulation details */
-struct cmd_set_l2_encap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t l2_encap;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-	uint16_t tci;
-	struct rte_ether_addr eth_src;
-	struct rte_ether_addr eth_dst;
-};
-
-static cmdline_parse_token_string_t cmd_set_l2_encap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, set, "set");
-static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap, "l2_encap");
-static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap,
-				 "l2_encap-with-vlan");
-static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
-				 "ip-version");
-static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, ip_version,
-				 "ipv4#ipv6");
-static cmdline_parse_token_string_t cmd_set_l2_encap_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
-				 "vlan-tci");
-static cmdline_parse_token_num_t cmd_set_l2_encap_vlan_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_l2_encap_result, tci, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_l2_encap_eth_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
-				 "eth-src");
-static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_src_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_src);
-static cmdline_parse_token_string_t cmd_set_l2_encap_eth_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
-				 "eth-dst");
-static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_dst_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_dst);
-
-static void cmd_set_l2_encap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_l2_encap_result *res = parsed_result;
-
-	if (strcmp(res->l2_encap, "l2_encap") == 0)
-		l2_encap_conf.select_vlan = 0;
-	else if (strcmp(res->l2_encap, "l2_encap-with-vlan") == 0)
-		l2_encap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		l2_encap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		l2_encap_conf.select_ipv4 = 0;
-	else
-		return;
-	if (l2_encap_conf.select_vlan)
-		l2_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
-	rte_memcpy(l2_encap_conf.eth_src, res->eth_src.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-	rte_memcpy(l2_encap_conf.eth_dst, res->eth_dst.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-}
-
-static cmdline_parse_inst_t cmd_set_l2_encap = {
-	.f = cmd_set_l2_encap_parsed,
-	.data = NULL,
-	.help_str = "set l2_encap ip-version ipv4|ipv6"
-		" eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_l2_encap_set,
-		(void *)&cmd_set_l2_encap_l2_encap,
-		(void *)&cmd_set_l2_encap_ip_version,
-		(void *)&cmd_set_l2_encap_ip_version_value,
-		(void *)&cmd_set_l2_encap_eth_src,
-		(void *)&cmd_set_l2_encap_eth_src_value,
-		(void *)&cmd_set_l2_encap_eth_dst,
-		(void *)&cmd_set_l2_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_l2_encap_with_vlan = {
-	.f = cmd_set_l2_encap_parsed,
-	.data = NULL,
-	.help_str = "set l2_encap-with-vlan ip-version ipv4|ipv6"
-		" vlan-tci <vlan-tci> eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_l2_encap_set,
-		(void *)&cmd_set_l2_encap_l2_encap_with_vlan,
-		(void *)&cmd_set_l2_encap_ip_version,
-		(void *)&cmd_set_l2_encap_ip_version_value,
-		(void *)&cmd_set_l2_encap_vlan,
-		(void *)&cmd_set_l2_encap_vlan_value,
-		(void *)&cmd_set_l2_encap_eth_src,
-		(void *)&cmd_set_l2_encap_eth_src_value,
-		(void *)&cmd_set_l2_encap_eth_dst,
-		(void *)&cmd_set_l2_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-/** Set L2 decapsulation details */
-struct cmd_set_l2_decap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t l2_decap;
-	cmdline_fixed_string_t pos_token;
-	uint32_t vlan_present:1;
-};
-
-static cmdline_parse_token_string_t cmd_set_l2_decap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, set, "set");
-static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
-				 "l2_decap");
-static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
-				 "l2_decap-with-vlan");
-
-static void cmd_set_l2_decap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_l2_decap_result *res = parsed_result;
-
-	if (strcmp(res->l2_decap, "l2_decap") == 0)
-		l2_decap_conf.select_vlan = 0;
-	else if (strcmp(res->l2_decap, "l2_decap-with-vlan") == 0)
-		l2_decap_conf.select_vlan = 1;
-}
-
-static cmdline_parse_inst_t cmd_set_l2_decap = {
-	.f = cmd_set_l2_decap_parsed,
-	.data = NULL,
-	.help_str = "set l2_decap",
-	.tokens = {
-		(void *)&cmd_set_l2_decap_set,
-		(void *)&cmd_set_l2_decap_l2_decap,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_l2_decap_with_vlan = {
-	.f = cmd_set_l2_decap_parsed,
-	.data = NULL,
-	.help_str = "set l2_decap-with-vlan",
-	.tokens = {
-		(void *)&cmd_set_l2_decap_set,
-		(void *)&cmd_set_l2_decap_l2_decap_with_vlan,
-		NULL,
-	},
-};
-
-/** Set MPLSoGRE encapsulation details */
-struct cmd_set_mplsogre_encap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t mplsogre;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-	uint32_t label;
-	cmdline_ipaddr_t ip_src;
-	cmdline_ipaddr_t ip_dst;
-	uint16_t tci;
-	struct rte_ether_addr eth_src;
-	struct rte_ether_addr eth_dst;
-};
-
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, set,
-				 "set");
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, mplsogre,
-				 "mplsogre_encap");
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 mplsogre, "mplsogre_encap-with-vlan");
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "ip-version");
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 ip_version, "ipv4#ipv6");
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_label =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "label");
-static cmdline_parse_token_num_t cmd_set_mplsogre_encap_label_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, label,
-			      RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "ip-src");
-static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_src_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_src);
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "ip-dst");
-static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_dst_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_dst);
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "vlan-tci");
-static cmdline_parse_token_num_t cmd_set_mplsogre_encap_vlan_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, tci,
-			      RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "eth-src");
-static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_src_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				    eth_src);
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "eth-dst");
-static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_dst_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				    eth_dst);
-
-static void cmd_set_mplsogre_encap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_mplsogre_encap_result *res = parsed_result;
-	union {
-		uint32_t mplsogre_label;
-		uint8_t label[4];
-	} id = {
-		.mplsogre_label = rte_cpu_to_be_32(res->label<<12),
-	};
-
-	if (strcmp(res->mplsogre, "mplsogre_encap") == 0)
-		mplsogre_encap_conf.select_vlan = 0;
-	else if (strcmp(res->mplsogre, "mplsogre_encap-with-vlan") == 0)
-		mplsogre_encap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		mplsogre_encap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		mplsogre_encap_conf.select_ipv4 = 0;
-	else
-		return;
-	rte_memcpy(mplsogre_encap_conf.label, &id.label, 3);
-	if (mplsogre_encap_conf.select_ipv4) {
-		IPV4_ADDR_TO_UINT(res->ip_src, mplsogre_encap_conf.ipv4_src);
-		IPV4_ADDR_TO_UINT(res->ip_dst, mplsogre_encap_conf.ipv4_dst);
-	} else {
-		IPV6_ADDR_TO_ARRAY(res->ip_src, mplsogre_encap_conf.ipv6_src);
-		IPV6_ADDR_TO_ARRAY(res->ip_dst, mplsogre_encap_conf.ipv6_dst);
-	}
-	if (mplsogre_encap_conf.select_vlan)
-		mplsogre_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
-	rte_memcpy(mplsogre_encap_conf.eth_src, res->eth_src.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-	rte_memcpy(mplsogre_encap_conf.eth_dst, res->eth_dst.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-}
-
-static cmdline_parse_inst_t cmd_set_mplsogre_encap = {
-	.f = cmd_set_mplsogre_encap_parsed,
-	.data = NULL,
-	.help_str = "set mplsogre_encap ip-version ipv4|ipv6 label <label>"
-		" ip-src <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
-		" eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_mplsogre_encap_set,
-		(void *)&cmd_set_mplsogre_encap_mplsogre_encap,
-		(void *)&cmd_set_mplsogre_encap_ip_version,
-		(void *)&cmd_set_mplsogre_encap_ip_version_value,
-		(void *)&cmd_set_mplsogre_encap_label,
-		(void *)&cmd_set_mplsogre_encap_label_value,
-		(void *)&cmd_set_mplsogre_encap_ip_src,
-		(void *)&cmd_set_mplsogre_encap_ip_src_value,
-		(void *)&cmd_set_mplsogre_encap_ip_dst,
-		(void *)&cmd_set_mplsogre_encap_ip_dst_value,
-		(void *)&cmd_set_mplsogre_encap_eth_src,
-		(void *)&cmd_set_mplsogre_encap_eth_src_value,
-		(void *)&cmd_set_mplsogre_encap_eth_dst,
-		(void *)&cmd_set_mplsogre_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_mplsogre_encap_with_vlan = {
-	.f = cmd_set_mplsogre_encap_parsed,
-	.data = NULL,
-	.help_str = "set mplsogre_encap-with-vlan ip-version ipv4|ipv6"
-		" label <label> ip-src <ip-src> ip-dst <ip-dst>"
-		" vlan-tci <vlan-tci> eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_mplsogre_encap_set,
-		(void *)&cmd_set_mplsogre_encap_mplsogre_encap_with_vlan,
-		(void *)&cmd_set_mplsogre_encap_ip_version,
-		(void *)&cmd_set_mplsogre_encap_ip_version_value,
-		(void *)&cmd_set_mplsogre_encap_label,
-		(void *)&cmd_set_mplsogre_encap_label_value,
-		(void *)&cmd_set_mplsogre_encap_ip_src,
-		(void *)&cmd_set_mplsogre_encap_ip_src_value,
-		(void *)&cmd_set_mplsogre_encap_ip_dst,
-		(void *)&cmd_set_mplsogre_encap_ip_dst_value,
-		(void *)&cmd_set_mplsogre_encap_vlan,
-		(void *)&cmd_set_mplsogre_encap_vlan_value,
-		(void *)&cmd_set_mplsogre_encap_eth_src,
-		(void *)&cmd_set_mplsogre_encap_eth_src_value,
-		(void *)&cmd_set_mplsogre_encap_eth_dst,
-		(void *)&cmd_set_mplsogre_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-/** Set MPLSoGRE decapsulation details */
-struct cmd_set_mplsogre_decap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t mplsogre;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-};
-
-static cmdline_parse_token_string_t cmd_set_mplsogre_decap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, set,
-				 "set");
-static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, mplsogre,
-				 "mplsogre_decap");
-static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
-				 mplsogre, "mplsogre_decap-with-vlan");
-static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
-				 pos_token, "ip-version");
-static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
-				 ip_version, "ipv4#ipv6");
-
-static void cmd_set_mplsogre_decap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_mplsogre_decap_result *res = parsed_result;
-
-	if (strcmp(res->mplsogre, "mplsogre_decap") == 0)
-		mplsogre_decap_conf.select_vlan = 0;
-	else if (strcmp(res->mplsogre, "mplsogre_decap-with-vlan") == 0)
-		mplsogre_decap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		mplsogre_decap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		mplsogre_decap_conf.select_ipv4 = 0;
-}
-
-static cmdline_parse_inst_t cmd_set_mplsogre_decap = {
-	.f = cmd_set_mplsogre_decap_parsed,
-	.data = NULL,
-	.help_str = "set mplsogre_decap ip-version ipv4|ipv6",
-	.tokens = {
-		(void *)&cmd_set_mplsogre_decap_set,
-		(void *)&cmd_set_mplsogre_decap_mplsogre_decap,
-		(void *)&cmd_set_mplsogre_decap_ip_version,
-		(void *)&cmd_set_mplsogre_decap_ip_version_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_mplsogre_decap_with_vlan = {
-	.f = cmd_set_mplsogre_decap_parsed,
-	.data = NULL,
-	.help_str = "set mplsogre_decap-with-vlan ip-version ipv4|ipv6",
-	.tokens = {
-		(void *)&cmd_set_mplsogre_decap_set,
-		(void *)&cmd_set_mplsogre_decap_mplsogre_decap_with_vlan,
-		(void *)&cmd_set_mplsogre_decap_ip_version,
-		(void *)&cmd_set_mplsogre_decap_ip_version_value,
-		NULL,
-	},
-};
-
-/** Set MPLSoUDP encapsulation details */
-struct cmd_set_mplsoudp_encap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t mplsoudp;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-	uint32_t label;
-	uint16_t udp_src;
-	uint16_t udp_dst;
-	cmdline_ipaddr_t ip_src;
-	cmdline_ipaddr_t ip_dst;
-	uint16_t tci;
-	struct rte_ether_addr eth_src;
-	struct rte_ether_addr eth_dst;
-};
-
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, set,
-				 "set");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, mplsoudp,
-				 "mplsoudp_encap");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 mplsoudp, "mplsoudp_encap-with-vlan");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "ip-version");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 ip_version, "ipv4#ipv6");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_label =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "label");
-static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_label_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, label,
-			      RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "udp-src");
-static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_src_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_src,
-			      RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "udp-dst");
-static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_dst_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_dst,
-			      RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "ip-src");
-static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_src_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_src);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "ip-dst");
-static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_dst_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_dst);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "vlan-tci");
-static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_vlan_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, tci,
-			      RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "eth-src");
-static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_src_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				    eth_src);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "eth-dst");
-static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_dst_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				    eth_dst);
-
-static void cmd_set_mplsoudp_encap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_mplsoudp_encap_result *res = parsed_result;
-	union {
-		uint32_t mplsoudp_label;
-		uint8_t label[4];
-	} id = {
-		.mplsoudp_label = rte_cpu_to_be_32(res->label<<12),
-	};
-
-	if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
-		mplsoudp_encap_conf.select_vlan = 0;
-	else if (strcmp(res->mplsoudp, "mplsoudp_encap-with-vlan") == 0)
-		mplsoudp_encap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		mplsoudp_encap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		mplsoudp_encap_conf.select_ipv4 = 0;
-	else
-		return;
-	rte_memcpy(mplsoudp_encap_conf.label, &id.label, 3);
-	mplsoudp_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
-	mplsoudp_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
-	if (mplsoudp_encap_conf.select_ipv4) {
-		IPV4_ADDR_TO_UINT(res->ip_src, mplsoudp_encap_conf.ipv4_src);
-		IPV4_ADDR_TO_UINT(res->ip_dst, mplsoudp_encap_conf.ipv4_dst);
-	} else {
-		IPV6_ADDR_TO_ARRAY(res->ip_src, mplsoudp_encap_conf.ipv6_src);
-		IPV6_ADDR_TO_ARRAY(res->ip_dst, mplsoudp_encap_conf.ipv6_dst);
-	}
-	if (mplsoudp_encap_conf.select_vlan)
-		mplsoudp_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
-	rte_memcpy(mplsoudp_encap_conf.eth_src, res->eth_src.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-	rte_memcpy(mplsoudp_encap_conf.eth_dst, res->eth_dst.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-}
-
-static cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
-	.f = cmd_set_mplsoudp_encap_parsed,
-	.data = NULL,
-	.help_str = "set mplsoudp_encap ip-version ipv4|ipv6 label <label>"
-		" udp-src <udp-src> udp-dst <udp-dst> ip-src <ip-src>"
-		" ip-dst <ip-dst> eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_mplsoudp_encap_set,
-		(void *)&cmd_set_mplsoudp_encap_mplsoudp_encap,
-		(void *)&cmd_set_mplsoudp_encap_ip_version,
-		(void *)&cmd_set_mplsoudp_encap_ip_version_value,
-		(void *)&cmd_set_mplsoudp_encap_label,
-		(void *)&cmd_set_mplsoudp_encap_label_value,
-		(void *)&cmd_set_mplsoudp_encap_udp_src,
-		(void *)&cmd_set_mplsoudp_encap_udp_src_value,
-		(void *)&cmd_set_mplsoudp_encap_udp_dst,
-		(void *)&cmd_set_mplsoudp_encap_udp_dst_value,
-		(void *)&cmd_set_mplsoudp_encap_ip_src,
-		(void *)&cmd_set_mplsoudp_encap_ip_src_value,
-		(void *)&cmd_set_mplsoudp_encap_ip_dst,
-		(void *)&cmd_set_mplsoudp_encap_ip_dst_value,
-		(void *)&cmd_set_mplsoudp_encap_eth_src,
-		(void *)&cmd_set_mplsoudp_encap_eth_src_value,
-		(void *)&cmd_set_mplsoudp_encap_eth_dst,
-		(void *)&cmd_set_mplsoudp_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_mplsoudp_encap_with_vlan = {
-	.f = cmd_set_mplsoudp_encap_parsed,
-	.data = NULL,
-	.help_str = "set mplsoudp_encap-with-vlan ip-version ipv4|ipv6"
-		" label <label> udp-src <udp-src> udp-dst <udp-dst>"
-		" ip-src <ip-src> ip-dst <ip-dst> vlan-tci <vlan-tci>"
-		" eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_mplsoudp_encap_set,
-		(void *)&cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan,
-		(void *)&cmd_set_mplsoudp_encap_ip_version,
-		(void *)&cmd_set_mplsoudp_encap_ip_version_value,
-		(void *)&cmd_set_mplsoudp_encap_label,
-		(void *)&cmd_set_mplsoudp_encap_label_value,
-		(void *)&cmd_set_mplsoudp_encap_udp_src,
-		(void *)&cmd_set_mplsoudp_encap_udp_src_value,
-		(void *)&cmd_set_mplsoudp_encap_udp_dst,
-		(void *)&cmd_set_mplsoudp_encap_udp_dst_value,
-		(void *)&cmd_set_mplsoudp_encap_ip_src,
-		(void *)&cmd_set_mplsoudp_encap_ip_src_value,
-		(void *)&cmd_set_mplsoudp_encap_ip_dst,
-		(void *)&cmd_set_mplsoudp_encap_ip_dst_value,
-		(void *)&cmd_set_mplsoudp_encap_vlan,
-		(void *)&cmd_set_mplsoudp_encap_vlan_value,
-		(void *)&cmd_set_mplsoudp_encap_eth_src,
-		(void *)&cmd_set_mplsoudp_encap_eth_src_value,
-		(void *)&cmd_set_mplsoudp_encap_eth_dst,
-		(void *)&cmd_set_mplsoudp_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-/** Set MPLSoUDP decapsulation details */
-struct cmd_set_mplsoudp_decap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t mplsoudp;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-};
-
-static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, set,
-				 "set");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, mplsoudp,
-				 "mplsoudp_decap");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
-				 mplsoudp, "mplsoudp_decap-with-vlan");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
-				 pos_token, "ip-version");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
-				 ip_version, "ipv4#ipv6");
-
-static void cmd_set_mplsoudp_decap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_mplsoudp_decap_result *res = parsed_result;
-
-	if (strcmp(res->mplsoudp, "mplsoudp_decap") == 0)
-		mplsoudp_decap_conf.select_vlan = 0;
-	else if (strcmp(res->mplsoudp, "mplsoudp_decap-with-vlan") == 0)
-		mplsoudp_decap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		mplsoudp_decap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		mplsoudp_decap_conf.select_ipv4 = 0;
-}
-
-static cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
-	.f = cmd_set_mplsoudp_decap_parsed,
-	.data = NULL,
-	.help_str = "set mplsoudp_decap ip-version ipv4|ipv6",
-	.tokens = {
-		(void *)&cmd_set_mplsoudp_decap_set,
-		(void *)&cmd_set_mplsoudp_decap_mplsoudp_decap,
-		(void *)&cmd_set_mplsoudp_decap_ip_version,
-		(void *)&cmd_set_mplsoudp_decap_ip_version_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_mplsoudp_decap_with_vlan = {
-	.f = cmd_set_mplsoudp_decap_parsed,
-	.data = NULL,
-	.help_str = "set mplsoudp_decap-with-vlan ip-version ipv4|ipv6",
-	.tokens = {
-		(void *)&cmd_set_mplsoudp_decap_set,
-		(void *)&cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan,
-		(void *)&cmd_set_mplsoudp_decap_ip_version,
-		(void *)&cmd_set_mplsoudp_decap_ip_version_value,
-		NULL,
-	},
-};
-
-/** Set connection tracking object common details */
-struct cmd_set_conntrack_common_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t conntrack;
-	cmdline_fixed_string_t common;
-	cmdline_fixed_string_t peer;
-	cmdline_fixed_string_t is_orig;
-	cmdline_fixed_string_t enable;
-	cmdline_fixed_string_t live;
-	cmdline_fixed_string_t sack;
-	cmdline_fixed_string_t cack;
-	cmdline_fixed_string_t last_dir;
-	cmdline_fixed_string_t liberal;
-	cmdline_fixed_string_t state;
-	cmdline_fixed_string_t max_ack_win;
-	cmdline_fixed_string_t retrans;
-	cmdline_fixed_string_t last_win;
-	cmdline_fixed_string_t last_seq;
-	cmdline_fixed_string_t last_ack;
-	cmdline_fixed_string_t last_end;
-	cmdline_fixed_string_t last_index;
-	uint8_t stat;
-	uint8_t factor;
-	uint16_t peer_port;
-	uint32_t is_original;
-	uint32_t en;
-	uint32_t is_live;
-	uint32_t s_ack;
-	uint32_t c_ack;
-	uint32_t ld;
-	uint32_t lb;
-	uint8_t re_num;
-	uint8_t li;
-	uint16_t lw;
-	uint32_t ls;
-	uint32_t la;
-	uint32_t le;
-};
-
-static cmdline_parse_token_string_t cmd_set_conntrack_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 set, "set");
-static cmdline_parse_token_string_t cmd_set_conntrack_conntrack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 conntrack, "conntrack");
-static cmdline_parse_token_string_t cmd_set_conntrack_common_com =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 common, "com");
-static cmdline_parse_token_string_t cmd_set_conntrack_common_peer =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 peer, "peer");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_peer_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      peer_port, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_is_orig =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 is_orig, "is_orig");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_is_orig_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      is_original, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_enable =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 enable, "enable");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_enable_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      en, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_live =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 live, "live");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_live_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      is_live, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_sack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 sack, "sack");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_sack_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      s_ack, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_cack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 cack, "cack");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_cack_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      c_ack, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_dir =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_dir, "last_dir");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_dir_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      ld, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_liberal =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 liberal, "liberal");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_liberal_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      lb, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_state =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 state, "state");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_state_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      stat, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_max_ackwin =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 max_ack_win, "max_ack_win");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_max_ackwin_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      factor, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_retrans =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 retrans, "r_lim");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_retrans_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      re_num, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_win =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_win, "last_win");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_win_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      lw, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_seq =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_seq, "last_seq");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_seq_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      ls, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_ack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_ack, "last_ack");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_ack_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      la, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_end =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_end, "last_end");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_end_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      le, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_index =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_index, "last_index");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_index_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      li, RTE_UINT8);
-
-static void cmd_set_conntrack_common_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_conntrack_common_result *res = parsed_result;
-
-	/* No need to swap to big endian. */
-	conntrack_context.peer_port = res->peer_port;
-	conntrack_context.is_original_dir = res->is_original;
-	conntrack_context.enable = res->en;
-	conntrack_context.live_connection = res->is_live;
-	conntrack_context.selective_ack = res->s_ack;
-	conntrack_context.challenge_ack_passed = res->c_ack;
-	conntrack_context.last_direction = res->ld;
-	conntrack_context.liberal_mode = res->lb;
-	conntrack_context.state = (enum rte_flow_conntrack_state)res->stat;
-	conntrack_context.max_ack_window = res->factor;
-	conntrack_context.retransmission_limit = res->re_num;
-	conntrack_context.last_window = res->lw;
-	conntrack_context.last_index =
-		(enum rte_flow_conntrack_tcp_last_index)res->li;
-	conntrack_context.last_seq = res->ls;
-	conntrack_context.last_ack = res->la;
-	conntrack_context.last_end = res->le;
-}
-
-static cmdline_parse_inst_t cmd_set_conntrack_common = {
-	.f = cmd_set_conntrack_common_parsed,
-	.data = NULL,
-	.help_str = "set conntrack com peer <port_id> is_orig <dir> enable <en>"
-		" live <ack_seen> sack <en> cack <passed> last_dir <dir>"
-		" liberal <en> state <s> max_ack_win <factor> r_lim <num>"
-		" last_win <win> last_seq <seq> last_ack <ack> last_end <end>"
-		" last_index <flag>",
-	.tokens = {
-		(void *)&cmd_set_conntrack_set,
-		(void *)&cmd_set_conntrack_conntrack,
-		(void *)&cmd_set_conntrack_common_com,
-		(void *)&cmd_set_conntrack_common_peer,
-		(void *)&cmd_set_conntrack_common_peer_value,
-		(void *)&cmd_set_conntrack_common_is_orig,
-		(void *)&cmd_set_conntrack_common_is_orig_value,
-		(void *)&cmd_set_conntrack_common_enable,
-		(void *)&cmd_set_conntrack_common_enable_value,
-		(void *)&cmd_set_conntrack_common_live,
-		(void *)&cmd_set_conntrack_common_live_value,
-		(void *)&cmd_set_conntrack_common_sack,
-		(void *)&cmd_set_conntrack_common_sack_value,
-		(void *)&cmd_set_conntrack_common_cack,
-		(void *)&cmd_set_conntrack_common_cack_value,
-		(void *)&cmd_set_conntrack_common_last_dir,
-		(void *)&cmd_set_conntrack_common_last_dir_value,
-		(void *)&cmd_set_conntrack_common_liberal,
-		(void *)&cmd_set_conntrack_common_liberal_value,
-		(void *)&cmd_set_conntrack_common_state,
-		(void *)&cmd_set_conntrack_common_state_value,
-		(void *)&cmd_set_conntrack_common_max_ackwin,
-		(void *)&cmd_set_conntrack_common_max_ackwin_value,
-		(void *)&cmd_set_conntrack_common_retrans,
-		(void *)&cmd_set_conntrack_common_retrans_value,
-		(void *)&cmd_set_conntrack_common_last_win,
-		(void *)&cmd_set_conntrack_common_last_win_value,
-		(void *)&cmd_set_conntrack_common_last_seq,
-		(void *)&cmd_set_conntrack_common_last_seq_value,
-		(void *)&cmd_set_conntrack_common_last_ack,
-		(void *)&cmd_set_conntrack_common_last_ack_value,
-		(void *)&cmd_set_conntrack_common_last_end,
-		(void *)&cmd_set_conntrack_common_last_end_value,
-		(void *)&cmd_set_conntrack_common_last_index,
-		(void *)&cmd_set_conntrack_common_last_index_value,
-		NULL,
-	},
-};
-
-/** Set connection tracking object both directions' details */
-struct cmd_set_conntrack_dir_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t conntrack;
-	cmdline_fixed_string_t dir;
-	cmdline_fixed_string_t scale;
-	cmdline_fixed_string_t fin;
-	cmdline_fixed_string_t ack_seen;
-	cmdline_fixed_string_t unack;
-	cmdline_fixed_string_t sent_end;
-	cmdline_fixed_string_t reply_end;
-	cmdline_fixed_string_t max_win;
-	cmdline_fixed_string_t max_ack;
-	uint32_t factor;
-	uint32_t f;
-	uint32_t as;
-	uint32_t un;
-	uint32_t se;
-	uint32_t re;
-	uint32_t mw;
-	uint32_t ma;
+	cmdline_fixed_string_t vxlan;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
+	uint32_t vni;
+	uint16_t udp_src;
+	uint16_t udp_dst;
+	cmdline_ipaddr_t ip_src;
+	cmdline_ipaddr_t ip_dst;
+	uint16_t tci;
+	uint8_t tos;
+	uint8_t ttl;
+	struct rte_ether_addr eth_src;
+	struct rte_ether_addr eth_dst;
 };
 
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_dir =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 dir, "orig#rply");
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_scale =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 scale, "scale");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_scale_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      factor, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_fin =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 fin, "fin");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_fin_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      f, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_ack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 ack_seen, "acked");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_ack_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      as, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_unack_data =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 unack, "unack_data");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_unack_data_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      un, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_sent_end =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 sent_end, "sent_end");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_sent_end_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      se, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_reply_end =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 reply_end, "reply_end");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_reply_end_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      re, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_win =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 max_win, "max_win");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_win_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      mw, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_ack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 max_ack, "max_ack");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_ack_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      ma, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_vxlan_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, set, "set");
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan, "vxlan");
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_tos_ttl =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
+				 "vxlan-tos-ttl");
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
+				 "vxlan-with-vlan");
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "ip-version");
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, ip_version,
+				 "ipv4#ipv6");
+static cmdline_parse_token_string_t cmd_set_vxlan_vni =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "vni");
+static cmdline_parse_token_num_t cmd_set_vxlan_vni_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, vni, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_vxlan_udp_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "udp-src");
+static cmdline_parse_token_num_t cmd_set_vxlan_udp_src_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_src, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_vxlan_udp_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "udp-dst");
+static cmdline_parse_token_num_t cmd_set_vxlan_udp_dst_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_dst, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_tos =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "ip-tos");
+static cmdline_parse_token_num_t cmd_set_vxlan_ip_tos_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tos, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_ttl =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "ip-ttl");
+static cmdline_parse_token_num_t cmd_set_vxlan_ip_ttl_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, ttl, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "ip-src");
+static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_src_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_src);
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "ip-dst");
+static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_dst_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_dst);
+static cmdline_parse_token_string_t cmd_set_vxlan_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "vlan-tci");
+static cmdline_parse_token_num_t cmd_set_vxlan_vlan_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tci, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_vxlan_eth_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "eth-src");
+static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_src_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_src);
+static cmdline_parse_token_string_t cmd_set_vxlan_eth_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "eth-dst");
+static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_dst_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_dst);
 
-static void cmd_set_conntrack_dir_parsed(void *parsed_result,
+static void cmd_set_vxlan_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
-{
-	struct cmd_set_conntrack_dir_result *res = parsed_result;
-	struct rte_flow_tcp_dir_param *dir = NULL;
+{
+	struct cmd_set_vxlan_result *res = parsed_result;
+	union {
+		uint32_t vxlan_id;
+		uint8_t vni[4];
+	} id = {
+		.vxlan_id = rte_cpu_to_be_32(res->vni) & RTE_BE32(0x00ffffff),
+	};
 
-	if (strcmp(res->dir, "orig") == 0)
-		dir = &conntrack_context.original_dir;
-	else if (strcmp(res->dir, "rply") == 0)
-		dir = &conntrack_context.reply_dir;
+	vxlan_encap_conf.select_tos_ttl = 0;
+	if (strcmp(res->vxlan, "vxlan") == 0)
+		vxlan_encap_conf.select_vlan = 0;
+	else if (strcmp(res->vxlan, "vxlan-with-vlan") == 0)
+		vxlan_encap_conf.select_vlan = 1;
+	else if (strcmp(res->vxlan, "vxlan-tos-ttl") == 0) {
+		vxlan_encap_conf.select_vlan = 0;
+		vxlan_encap_conf.select_tos_ttl = 1;
+	}
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		vxlan_encap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		vxlan_encap_conf.select_ipv4 = 0;
 	else
 		return;
-	dir->scale = res->factor;
-	dir->close_initiated = res->f;
-	dir->last_ack_seen = res->as;
-	dir->data_unacked = res->un;
-	dir->sent_end = res->se;
-	dir->reply_end = res->re;
-	dir->max_ack = res->ma;
-	dir->max_win = res->mw;
+	rte_memcpy(vxlan_encap_conf.vni, &id.vni[1], 3);
+	vxlan_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
+	vxlan_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
+	vxlan_encap_conf.ip_tos = res->tos;
+	vxlan_encap_conf.ip_ttl = res->ttl;
+	if (vxlan_encap_conf.select_ipv4) {
+		IPV4_ADDR_TO_UINT(res->ip_src, vxlan_encap_conf.ipv4_src);
+		IPV4_ADDR_TO_UINT(res->ip_dst, vxlan_encap_conf.ipv4_dst);
+	} else {
+		IPV6_ADDR_TO_ARRAY(res->ip_src, vxlan_encap_conf.ipv6_src);
+		IPV6_ADDR_TO_ARRAY(res->ip_dst, vxlan_encap_conf.ipv6_dst);
+	}
+	if (vxlan_encap_conf.select_vlan)
+		vxlan_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
+	rte_memcpy(vxlan_encap_conf.eth_src, res->eth_src.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
+	rte_memcpy(vxlan_encap_conf.eth_dst, res->eth_dst.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
 }
 
-static cmdline_parse_inst_t cmd_set_conntrack_dir = {
-	.f = cmd_set_conntrack_dir_parsed,
+static cmdline_parse_inst_t cmd_set_vxlan = {
+	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
-	.help_str = "set conntrack orig|rply scale <factor> fin <sent>"
-		    " acked <seen> unack_data <unack> sent_end <sent>"
-		    " reply_end <reply> max_win <win> max_ack <ack>",
+	.help_str = "set vxlan ip-version ipv4|ipv6 vni <vni> udp-src"
+		" <udp-src> udp-dst <udp-dst> ip-src <ip-src> ip-dst <ip-dst>"
+		" eth-src <eth-src> eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_set_conntrack_set,
-		(void *)&cmd_set_conntrack_conntrack,
-		(void *)&cmd_set_conntrack_dir_dir,
-		(void *)&cmd_set_conntrack_dir_scale,
-		(void *)&cmd_set_conntrack_dir_scale_value,
-		(void *)&cmd_set_conntrack_dir_fin,
-		(void *)&cmd_set_conntrack_dir_fin_value,
-		(void *)&cmd_set_conntrack_dir_ack,
-		(void *)&cmd_set_conntrack_dir_ack_value,
-		(void *)&cmd_set_conntrack_dir_unack_data,
-		(void *)&cmd_set_conntrack_dir_unack_data_value,
-		(void *)&cmd_set_conntrack_dir_sent_end,
-		(void *)&cmd_set_conntrack_dir_sent_end_value,
-		(void *)&cmd_set_conntrack_dir_reply_end,
-		(void *)&cmd_set_conntrack_dir_reply_end_value,
-		(void *)&cmd_set_conntrack_dir_max_win,
-		(void *)&cmd_set_conntrack_dir_max_win_value,
-		(void *)&cmd_set_conntrack_dir_max_ack,
-		(void *)&cmd_set_conntrack_dir_max_ack_value,
+		(void *)&cmd_set_vxlan_set,
+		(void *)&cmd_set_vxlan_vxlan,
+		(void *)&cmd_set_vxlan_ip_version,
+		(void *)&cmd_set_vxlan_ip_version_value,
+		(void *)&cmd_set_vxlan_vni,
+		(void *)&cmd_set_vxlan_vni_value,
+		(void *)&cmd_set_vxlan_udp_src,
+		(void *)&cmd_set_vxlan_udp_src_value,
+		(void *)&cmd_set_vxlan_udp_dst,
+		(void *)&cmd_set_vxlan_udp_dst_value,
+		(void *)&cmd_set_vxlan_ip_src,
+		(void *)&cmd_set_vxlan_ip_src_value,
+		(void *)&cmd_set_vxlan_ip_dst,
+		(void *)&cmd_set_vxlan_ip_dst_value,
+		(void *)&cmd_set_vxlan_eth_src,
+		(void *)&cmd_set_vxlan_eth_src_value,
+		(void *)&cmd_set_vxlan_eth_dst,
+		(void *)&cmd_set_vxlan_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Strict link priority scheduling mode setting */
-static void
-cmd_strict_link_prio_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_tc_strict_prio(res->port_id, res->tc_map);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid tc_bitmap 0x%x\n", res->tc_map);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_strict_link_prio = {
-	.f = cmd_strict_link_prio_parsed,
+static cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
+	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
-	.help_str = "set tx strict-link-priority <port_id> <tc_bitmap>",
+	.help_str = "set vxlan-tos-ttl ip-version ipv4|ipv6 vni <vni> udp-src"
+		" <udp-src> udp-dst <udp-dst> ip-tos <ip-tos> ip-ttl <ip-ttl>"
+		" ip-src <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
+		" eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_strict_link_prio,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_tc_map,
+		(void *)&cmd_set_vxlan_set,
+		(void *)&cmd_set_vxlan_vxlan_tos_ttl,
+		(void *)&cmd_set_vxlan_ip_version,
+		(void *)&cmd_set_vxlan_ip_version_value,
+		(void *)&cmd_set_vxlan_vni,
+		(void *)&cmd_set_vxlan_vni_value,
+		(void *)&cmd_set_vxlan_udp_src,
+		(void *)&cmd_set_vxlan_udp_src_value,
+		(void *)&cmd_set_vxlan_udp_dst,
+		(void *)&cmd_set_vxlan_udp_dst_value,
+		(void *)&cmd_set_vxlan_ip_tos,
+		(void *)&cmd_set_vxlan_ip_tos_value,
+		(void *)&cmd_set_vxlan_ip_ttl,
+		(void *)&cmd_set_vxlan_ip_ttl_value,
+		(void *)&cmd_set_vxlan_ip_src,
+		(void *)&cmd_set_vxlan_ip_src_value,
+		(void *)&cmd_set_vxlan_ip_dst,
+		(void *)&cmd_set_vxlan_ip_dst_value,
+		(void *)&cmd_set_vxlan_eth_src,
+		(void *)&cmd_set_vxlan_eth_src_value,
+		(void *)&cmd_set_vxlan_eth_dst,
+		(void *)&cmd_set_vxlan_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Load dynamic device personalization*/
-struct cmd_ddp_add_result {
-	cmdline_fixed_string_t ddp;
-	cmdline_fixed_string_t add;
-	portid_t port_id;
-	char filepath[];
+static cmdline_parse_inst_t cmd_set_vxlan_with_vlan = {
+	.f = cmd_set_vxlan_parsed,
+	.data = NULL,
+	.help_str = "set vxlan-with-vlan ip-version ipv4|ipv6 vni <vni>"
+		" udp-src <udp-src> udp-dst <udp-dst> ip-src <ip-src> ip-dst"
+		" <ip-dst> vlan-tci <vlan-tci> eth-src <eth-src> eth-dst"
+		" <eth-dst>",
+	.tokens = {
+		(void *)&cmd_set_vxlan_set,
+		(void *)&cmd_set_vxlan_vxlan_with_vlan,
+		(void *)&cmd_set_vxlan_ip_version,
+		(void *)&cmd_set_vxlan_ip_version_value,
+		(void *)&cmd_set_vxlan_vni,
+		(void *)&cmd_set_vxlan_vni_value,
+		(void *)&cmd_set_vxlan_udp_src,
+		(void *)&cmd_set_vxlan_udp_src_value,
+		(void *)&cmd_set_vxlan_udp_dst,
+		(void *)&cmd_set_vxlan_udp_dst_value,
+		(void *)&cmd_set_vxlan_ip_src,
+		(void *)&cmd_set_vxlan_ip_src_value,
+		(void *)&cmd_set_vxlan_ip_dst,
+		(void *)&cmd_set_vxlan_ip_dst_value,
+		(void *)&cmd_set_vxlan_vlan,
+		(void *)&cmd_set_vxlan_vlan_value,
+		(void *)&cmd_set_vxlan_eth_src,
+		(void *)&cmd_set_vxlan_eth_src_value,
+		(void *)&cmd_set_vxlan_eth_dst,
+		(void *)&cmd_set_vxlan_eth_dst_value,
+		NULL,
+	},
 };
 
-static cmdline_parse_token_string_t cmd_ddp_add_ddp =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, ddp, "ddp");
-static cmdline_parse_token_string_t cmd_ddp_add_add =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, add, "add");
-static cmdline_parse_token_num_t cmd_ddp_add_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_ddp_add_result, port_id,
-		RTE_UINT16);
-static cmdline_parse_token_string_t cmd_ddp_add_filepath =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, filepath, NULL);
-
-static void
-cmd_ddp_add_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_ddp_add_result *res = parsed_result;
-	uint8_t *buff;
-	uint32_t size;
-	char *filepath;
-	char *file_fld[2];
-	int file_num;
-	int ret = -ENOTSUP;
+/** Set NVGRE encapsulation details */
+struct cmd_set_nvgre_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t nvgre;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t tni;
+	cmdline_ipaddr_t ip_src;
+	cmdline_ipaddr_t ip_dst;
+	uint16_t tci;
+	struct rte_ether_addr eth_src;
+	struct rte_ether_addr eth_dst;
+};
 
-	if (!all_ports_stopped()) {
-		fprintf(stderr, "Please stop all ports first\n");
-		return;
-	}
+static cmdline_parse_token_string_t cmd_set_nvgre_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, set, "set");
+static cmdline_parse_token_string_t cmd_set_nvgre_nvgre =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre, "nvgre");
+static cmdline_parse_token_string_t cmd_set_nvgre_nvgre_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre,
+				 "nvgre-with-vlan");
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "ip-version");
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, ip_version,
+				 "ipv4#ipv6");
+static cmdline_parse_token_string_t cmd_set_nvgre_tni =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "tni");
+static cmdline_parse_token_num_t cmd_set_nvgre_tni_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tni, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "ip-src");
+static cmdline_parse_token_num_t cmd_set_nvgre_ip_src_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_src);
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "ip-dst");
+static cmdline_parse_token_ipaddr_t cmd_set_nvgre_ip_dst_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_dst);
+static cmdline_parse_token_string_t cmd_set_nvgre_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "vlan-tci");
+static cmdline_parse_token_num_t cmd_set_nvgre_vlan_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tci, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_nvgre_eth_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "eth-src");
+static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_src_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_src);
+static cmdline_parse_token_string_t cmd_set_nvgre_eth_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "eth-dst");
+static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_dst_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_dst);
 
-	filepath = strdup(res->filepath);
-	if (filepath == NULL) {
-		fprintf(stderr, "Failed to allocate memory\n");
-		return;
-	}
-	file_num = rte_strsplit(filepath, strlen(filepath), file_fld, 2, ',');
+static void cmd_set_nvgre_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_set_nvgre_result *res = parsed_result;
+	union {
+		uint32_t nvgre_tni;
+		uint8_t tni[4];
+	} id = {
+		.nvgre_tni = rte_cpu_to_be_32(res->tni) & RTE_BE32(0x00ffffff),
+	};
 
-	buff = open_file(file_fld[0], &size);
-	if (!buff) {
-		free((void *)filepath);
+	if (strcmp(res->nvgre, "nvgre") == 0)
+		nvgre_encap_conf.select_vlan = 0;
+	else if (strcmp(res->nvgre, "nvgre-with-vlan") == 0)
+		nvgre_encap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		nvgre_encap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		nvgre_encap_conf.select_ipv4 = 0;
+	else
 		return;
+	rte_memcpy(nvgre_encap_conf.tni, &id.tni[1], 3);
+	if (nvgre_encap_conf.select_ipv4) {
+		IPV4_ADDR_TO_UINT(res->ip_src, nvgre_encap_conf.ipv4_src);
+		IPV4_ADDR_TO_UINT(res->ip_dst, nvgre_encap_conf.ipv4_dst);
+	} else {
+		IPV6_ADDR_TO_ARRAY(res->ip_src, nvgre_encap_conf.ipv6_src);
+		IPV6_ADDR_TO_ARRAY(res->ip_dst, nvgre_encap_conf.ipv6_dst);
 	}
-
-#ifdef RTE_NET_I40E
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_i40e_process_ddp_package(res->port_id,
-					       buff, size,
-					       RTE_PMD_I40E_PKG_OP_WR_ADD);
-#endif
-
-	if (ret == -EEXIST)
-		fprintf(stderr, "Profile has already existed.\n");
-	else if (ret < 0)
-		fprintf(stderr, "Failed to load profile.\n");
-	else if (file_num == 2)
-		save_file(file_fld[1], buff, size);
-
-	close_file(buff);
-	free((void *)filepath);
+	if (nvgre_encap_conf.select_vlan)
+		nvgre_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
+	rte_memcpy(nvgre_encap_conf.eth_src, res->eth_src.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
+	rte_memcpy(nvgre_encap_conf.eth_dst, res->eth_dst.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
 }
 
-static cmdline_parse_inst_t cmd_ddp_add = {
-	.f = cmd_ddp_add_parsed,
+static cmdline_parse_inst_t cmd_set_nvgre = {
+	.f = cmd_set_nvgre_parsed,
 	.data = NULL,
-	.help_str = "ddp add <port_id> <profile_path[,backup_profile_path]>",
+	.help_str = "set nvgre ip-version <ipv4|ipv6> tni <tni> ip-src"
+		" <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
+		" eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_ddp_add_ddp,
-		(void *)&cmd_ddp_add_add,
-		(void *)&cmd_ddp_add_port_id,
-		(void *)&cmd_ddp_add_filepath,
+		(void *)&cmd_set_nvgre_set,
+		(void *)&cmd_set_nvgre_nvgre,
+		(void *)&cmd_set_nvgre_ip_version,
+		(void *)&cmd_set_nvgre_ip_version_value,
+		(void *)&cmd_set_nvgre_tni,
+		(void *)&cmd_set_nvgre_tni_value,
+		(void *)&cmd_set_nvgre_ip_src,
+		(void *)&cmd_set_nvgre_ip_src_value,
+		(void *)&cmd_set_nvgre_ip_dst,
+		(void *)&cmd_set_nvgre_ip_dst_value,
+		(void *)&cmd_set_nvgre_eth_src,
+		(void *)&cmd_set_nvgre_eth_src_value,
+		(void *)&cmd_set_nvgre_eth_dst,
+		(void *)&cmd_set_nvgre_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Delete dynamic device personalization*/
-struct cmd_ddp_del_result {
-	cmdline_fixed_string_t ddp;
-	cmdline_fixed_string_t del;
-	portid_t port_id;
-	char filepath[];
-};
-
-static cmdline_parse_token_string_t cmd_ddp_del_ddp =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, ddp, "ddp");
-static cmdline_parse_token_string_t cmd_ddp_del_del =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, del, "del");
-static cmdline_parse_token_num_t cmd_ddp_del_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_ddp_del_result, port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_ddp_del_filepath =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, filepath, NULL);
-
-static void
-cmd_ddp_del_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_ddp_del_result *res = parsed_result;
-	uint8_t *buff;
-	uint32_t size;
-	int ret = -ENOTSUP;
-
-	if (!all_ports_stopped()) {
-		fprintf(stderr, "Please stop all ports first\n");
-		return;
-	}
-
-	buff = open_file(res->filepath, &size);
-	if (!buff)
-		return;
-
-#ifdef RTE_NET_I40E
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_i40e_process_ddp_package(res->port_id,
-					       buff, size,
-					       RTE_PMD_I40E_PKG_OP_WR_DEL);
-#endif
-
-	if (ret == -EACCES)
-		fprintf(stderr, "Profile does not exist.\n");
-	else if (ret < 0)
-		fprintf(stderr, "Failed to delete profile.\n");
-
-	close_file(buff);
-}
-
-static cmdline_parse_inst_t cmd_ddp_del = {
-	.f = cmd_ddp_del_parsed,
+static cmdline_parse_inst_t cmd_set_nvgre_with_vlan = {
+	.f = cmd_set_nvgre_parsed,
 	.data = NULL,
-	.help_str = "ddp del <port_id> <backup_profile_path>",
+	.help_str = "set nvgre-with-vlan ip-version <ipv4|ipv6> tni <tni>"
+		" ip-src <ip-src> ip-dst <ip-dst> vlan-tci <vlan-tci>"
+		" eth-src <eth-src> eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_ddp_del_ddp,
-		(void *)&cmd_ddp_del_del,
-		(void *)&cmd_ddp_del_port_id,
-		(void *)&cmd_ddp_del_filepath,
+		(void *)&cmd_set_nvgre_set,
+		(void *)&cmd_set_nvgre_nvgre_with_vlan,
+		(void *)&cmd_set_nvgre_ip_version,
+		(void *)&cmd_set_nvgre_ip_version_value,
+		(void *)&cmd_set_nvgre_tni,
+		(void *)&cmd_set_nvgre_tni_value,
+		(void *)&cmd_set_nvgre_ip_src,
+		(void *)&cmd_set_nvgre_ip_src_value,
+		(void *)&cmd_set_nvgre_ip_dst,
+		(void *)&cmd_set_nvgre_ip_dst_value,
+		(void *)&cmd_set_nvgre_vlan,
+		(void *)&cmd_set_nvgre_vlan_value,
+		(void *)&cmd_set_nvgre_eth_src,
+		(void *)&cmd_set_nvgre_eth_src_value,
+		(void *)&cmd_set_nvgre_eth_dst,
+		(void *)&cmd_set_nvgre_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Get dynamic device personalization profile info */
-struct cmd_ddp_info_result {
-	cmdline_fixed_string_t ddp;
-	cmdline_fixed_string_t get;
-	cmdline_fixed_string_t info;
-	char filepath[];
+/** Set L2 encapsulation details */
+struct cmd_set_l2_encap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t l2_encap;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
+	uint16_t tci;
+	struct rte_ether_addr eth_src;
+	struct rte_ether_addr eth_dst;
 };
 
-static cmdline_parse_token_string_t cmd_ddp_info_ddp =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, ddp, "ddp");
-static cmdline_parse_token_string_t cmd_ddp_info_get =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, get, "get");
-static cmdline_parse_token_string_t cmd_ddp_info_info =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, info, "info");
-static cmdline_parse_token_string_t cmd_ddp_info_filepath =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, filepath, NULL);
+static cmdline_parse_token_string_t cmd_set_l2_encap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, set, "set");
+static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap, "l2_encap");
+static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap,
+				 "l2_encap-with-vlan");
+static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
+				 "ip-version");
+static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, ip_version,
+				 "ipv4#ipv6");
+static cmdline_parse_token_string_t cmd_set_l2_encap_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
+				 "vlan-tci");
+static cmdline_parse_token_num_t cmd_set_l2_encap_vlan_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_l2_encap_result, tci, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_l2_encap_eth_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
+				 "eth-src");
+static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_src_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_src);
+static cmdline_parse_token_string_t cmd_set_l2_encap_eth_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
+				 "eth-dst");
+static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_dst_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_dst);
 
-static void
-cmd_ddp_info_parsed(
-	void *parsed_result,
+static void cmd_set_l2_encap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_ddp_info_result *res = parsed_result;
-	uint8_t *pkg;
-	uint32_t pkg_size;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	uint32_t i, j, n;
-	uint8_t *buff;
-	uint32_t buff_size = 0;
-	struct rte_pmd_i40e_profile_info info;
-	uint32_t dev_num = 0;
-	struct rte_pmd_i40e_ddp_device_id *devs;
-	uint32_t proto_num = 0;
-	struct rte_pmd_i40e_proto_info *proto = NULL;
-	uint32_t pctype_num = 0;
-	struct rte_pmd_i40e_ptype_info *pctype;
-	uint32_t ptype_num = 0;
-	struct rte_pmd_i40e_ptype_info *ptype;
-	uint8_t proto_id;
-
-#endif
+	struct cmd_set_l2_encap_result *res = parsed_result;
 
-	pkg = open_file(res->filepath, &pkg_size);
-	if (!pkg)
+	if (strcmp(res->l2_encap, "l2_encap") == 0)
+		l2_encap_conf.select_vlan = 0;
+	else if (strcmp(res->l2_encap, "l2_encap-with-vlan") == 0)
+		l2_encap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		l2_encap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		l2_encap_conf.select_ipv4 = 0;
+	else
 		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-				(uint8_t *)&info, sizeof(info),
-				RTE_PMD_I40E_PKG_INFO_GLOBAL_HEADER);
-	if (!ret) {
-		printf("Global Track id:       0x%x\n", info.track_id);
-		printf("Global Version:        %d.%d.%d.%d\n",
-			info.version.major,
-			info.version.minor,
-			info.version.update,
-			info.version.draft);
-		printf("Global Package name:   %s\n\n", info.name);
-	}
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-				(uint8_t *)&info, sizeof(info),
-				RTE_PMD_I40E_PKG_INFO_HEADER);
-	if (!ret) {
-		printf("i40e Profile Track id: 0x%x\n", info.track_id);
-		printf("i40e Profile Version:  %d.%d.%d.%d\n",
-			info.version.major,
-			info.version.minor,
-			info.version.update,
-			info.version.draft);
-		printf("i40e Profile name:     %s\n\n", info.name);
-	}
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-				(uint8_t *)&buff_size, sizeof(buff_size),
-				RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES_SIZE);
-	if (!ret && buff_size) {
-		buff = (uint8_t *)malloc(buff_size);
-		if (buff) {
-			ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-						buff, buff_size,
-						RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES);
-			if (!ret)
-				printf("Package Notes:\n%s\n\n", buff);
-			free(buff);
-		}
-	}
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-				(uint8_t *)&dev_num, sizeof(dev_num),
-				RTE_PMD_I40E_PKG_INFO_DEVID_NUM);
-	if (!ret && dev_num) {
-		buff_size = dev_num * sizeof(struct rte_pmd_i40e_ddp_device_id);
-		devs = (struct rte_pmd_i40e_ddp_device_id *)malloc(buff_size);
-		if (devs) {
-			ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-						(uint8_t *)devs, buff_size,
-						RTE_PMD_I40E_PKG_INFO_DEVID_LIST);
-			if (!ret) {
-				printf("List of supported devices:\n");
-				for (i = 0; i < dev_num; i++) {
-					printf("  %04X:%04X %04X:%04X\n",
-						devs[i].vendor_dev_id >> 16,
-						devs[i].vendor_dev_id & 0xFFFF,
-						devs[i].sub_vendor_dev_id >> 16,
-						devs[i].sub_vendor_dev_id & 0xFFFF);
-				}
-				printf("\n");
-			}
-			free(devs);
-		}
-	}
-
-	/* get information about protocols and packet types */
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-		(uint8_t *)&proto_num, sizeof(proto_num),
-		RTE_PMD_I40E_PKG_INFO_PROTOCOL_NUM);
-	if (ret || !proto_num)
-		goto no_print_return;
-
-	buff_size = proto_num * sizeof(struct rte_pmd_i40e_proto_info);
-	proto = (struct rte_pmd_i40e_proto_info *)malloc(buff_size);
-	if (!proto)
-		goto no_print_return;
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)proto,
-					buff_size,
-					RTE_PMD_I40E_PKG_INFO_PROTOCOL_LIST);
-	if (!ret) {
-		printf("List of used protocols:\n");
-		for (i = 0; i < proto_num; i++)
-			printf("  %2u: %s\n", proto[i].proto_id,
-			       proto[i].name);
-		printf("\n");
-	}
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-		(uint8_t *)&pctype_num, sizeof(pctype_num),
-		RTE_PMD_I40E_PKG_INFO_PCTYPE_NUM);
-	if (ret || !pctype_num)
-		goto no_print_pctypes;
-
-	buff_size = pctype_num * sizeof(struct rte_pmd_i40e_ptype_info);
-	pctype = (struct rte_pmd_i40e_ptype_info *)malloc(buff_size);
-	if (!pctype)
-		goto no_print_pctypes;
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)pctype,
-					buff_size,
-					RTE_PMD_I40E_PKG_INFO_PCTYPE_LIST);
-	if (ret) {
-		free(pctype);
-		goto no_print_pctypes;
-	}
-
-	printf("List of defined packet classification types:\n");
-	for (i = 0; i < pctype_num; i++) {
-		printf("  %2u:", pctype[i].ptype_id);
-		for (j = 0; j < RTE_PMD_I40E_PROTO_NUM; j++) {
-			proto_id = pctype[i].protocols[j];
-			if (proto_id != RTE_PMD_I40E_PROTO_UNUSED) {
-				for (n = 0; n < proto_num; n++) {
-					if (proto[n].proto_id == proto_id) {
-						printf(" %s", proto[n].name);
-						break;
-					}
-				}
-			}
-		}
-		printf("\n");
-	}
-	printf("\n");
-	free(pctype);
-
-no_print_pctypes:
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)&ptype_num,
-					sizeof(ptype_num),
-					RTE_PMD_I40E_PKG_INFO_PTYPE_NUM);
-	if (ret || !ptype_num)
-		goto no_print_return;
-
-	buff_size = ptype_num * sizeof(struct rte_pmd_i40e_ptype_info);
-	ptype = (struct rte_pmd_i40e_ptype_info *)malloc(buff_size);
-	if (!ptype)
-		goto no_print_return;
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)ptype,
-					buff_size,
-					RTE_PMD_I40E_PKG_INFO_PTYPE_LIST);
-	if (ret) {
-		free(ptype);
-		goto no_print_return;
-	}
-	printf("List of defined packet types:\n");
-	for (i = 0; i < ptype_num; i++) {
-		printf("  %2u:", ptype[i].ptype_id);
-		for (j = 0; j < RTE_PMD_I40E_PROTO_NUM; j++) {
-			proto_id = ptype[i].protocols[j];
-			if (proto_id != RTE_PMD_I40E_PROTO_UNUSED) {
-				for (n = 0; n < proto_num; n++) {
-					if (proto[n].proto_id == proto_id) {
-						printf(" %s", proto[n].name);
-						break;
-					}
-				}
-			}
-		}
-		printf("\n");
-	}
-	free(ptype);
-	printf("\n");
-
-	ret = 0;
-no_print_return:
-	free(proto);
-#endif
-	if (ret == -ENOTSUP)
-		fprintf(stderr, "Function not supported in PMD\n");
-	close_file(pkg);
+	if (l2_encap_conf.select_vlan)
+		l2_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
+	rte_memcpy(l2_encap_conf.eth_src, res->eth_src.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
+	rte_memcpy(l2_encap_conf.eth_dst, res->eth_dst.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
 }
 
-static cmdline_parse_inst_t cmd_ddp_get_info = {
-	.f = cmd_ddp_info_parsed,
+static cmdline_parse_inst_t cmd_set_l2_encap = {
+	.f = cmd_set_l2_encap_parsed,
 	.data = NULL,
-	.help_str = "ddp get info <profile_path>",
+	.help_str = "set l2_encap ip-version ipv4|ipv6"
+		" eth-src <eth-src> eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_ddp_info_ddp,
-		(void *)&cmd_ddp_info_get,
-		(void *)&cmd_ddp_info_info,
-		(void *)&cmd_ddp_info_filepath,
+		(void *)&cmd_set_l2_encap_set,
+		(void *)&cmd_set_l2_encap_l2_encap,
+		(void *)&cmd_set_l2_encap_ip_version,
+		(void *)&cmd_set_l2_encap_ip_version_value,
+		(void *)&cmd_set_l2_encap_eth_src,
+		(void *)&cmd_set_l2_encap_eth_src_value,
+		(void *)&cmd_set_l2_encap_eth_dst,
+		(void *)&cmd_set_l2_encap_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Get dynamic device personalization profile info list*/
-#define PROFILE_INFO_SIZE 48
-#define MAX_PROFILE_NUM 16
-
-struct cmd_ddp_get_list_result {
-	cmdline_fixed_string_t ddp;
-	cmdline_fixed_string_t get;
-	cmdline_fixed_string_t list;
-	portid_t port_id;
-};
-
-static cmdline_parse_token_string_t cmd_ddp_get_list_ddp =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, ddp, "ddp");
-static cmdline_parse_token_string_t cmd_ddp_get_list_get =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, get, "get");
-static cmdline_parse_token_string_t cmd_ddp_get_list_list =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, list, "list");
-static cmdline_parse_token_num_t cmd_ddp_get_list_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_ddp_get_list_result, port_id,
-		RTE_UINT16);
-
-static void
-cmd_ddp_get_list_parsed(
-	__rte_unused void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-#ifdef RTE_NET_I40E
-	struct cmd_ddp_get_list_result *res = parsed_result;
-	struct rte_pmd_i40e_profile_list *p_list;
-	struct rte_pmd_i40e_profile_info *p_info;
-	uint32_t p_num;
-	uint32_t size;
-	uint32_t i;
-#endif
-	int ret = -ENOTSUP;
-
-#ifdef RTE_NET_I40E
-	size = PROFILE_INFO_SIZE * MAX_PROFILE_NUM + 4;
-	p_list = (struct rte_pmd_i40e_profile_list *)malloc(size);
-	if (!p_list) {
-		fprintf(stderr, "%s: Failed to malloc buffer\n", __func__);
-		return;
-	}
-
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_i40e_get_ddp_list(res->port_id,
-						(uint8_t *)p_list, size);
-
-	if (!ret) {
-		p_num = p_list->p_count;
-		printf("Profile number is: %d\n\n", p_num);
-
-		for (i = 0; i < p_num; i++) {
-			p_info = &p_list->p_info[i];
-			printf("Profile %d:\n", i);
-			printf("Track id:     0x%x\n", p_info->track_id);
-			printf("Version:      %d.%d.%d.%d\n",
-			       p_info->version.major,
-			       p_info->version.minor,
-			       p_info->version.update,
-			       p_info->version.draft);
-			printf("Profile name: %s\n\n", p_info->name);
-		}
-	}
-
-	free(p_list);
-#endif
-
-	if (ret < 0)
-		fprintf(stderr, "Failed to get ddp list\n");
-}
-
-static cmdline_parse_inst_t cmd_ddp_get_list = {
-	.f = cmd_ddp_get_list_parsed,
+static cmdline_parse_inst_t cmd_set_l2_encap_with_vlan = {
+	.f = cmd_set_l2_encap_parsed,
 	.data = NULL,
-	.help_str = "ddp get list <port_id>",
+	.help_str = "set l2_encap-with-vlan ip-version ipv4|ipv6"
+		" vlan-tci <vlan-tci> eth-src <eth-src> eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_ddp_get_list_ddp,
-		(void *)&cmd_ddp_get_list_get,
-		(void *)&cmd_ddp_get_list_list,
-		(void *)&cmd_ddp_get_list_port_id,
+		(void *)&cmd_set_l2_encap_set,
+		(void *)&cmd_set_l2_encap_l2_encap_with_vlan,
+		(void *)&cmd_set_l2_encap_ip_version,
+		(void *)&cmd_set_l2_encap_ip_version_value,
+		(void *)&cmd_set_l2_encap_vlan,
+		(void *)&cmd_set_l2_encap_vlan_value,
+		(void *)&cmd_set_l2_encap_eth_src,
+		(void *)&cmd_set_l2_encap_eth_src_value,
+		(void *)&cmd_set_l2_encap_eth_dst,
+		(void *)&cmd_set_l2_encap_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Configure input set */
-struct cmd_cfg_input_set_result {
-	cmdline_fixed_string_t port;
-	cmdline_fixed_string_t cfg;
-	portid_t port_id;
-	cmdline_fixed_string_t pctype;
-	uint8_t pctype_id;
-	cmdline_fixed_string_t inset_type;
-	cmdline_fixed_string_t opt;
-	cmdline_fixed_string_t field;
-	uint8_t field_idx;
+/** Set L2 decapsulation details */
+struct cmd_set_l2_decap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t l2_decap;
+	cmdline_fixed_string_t pos_token;
+	uint32_t vlan_present:1;
 };
 
-static void
-cmd_cfg_input_set_parsed(
-	__rte_unused void *parsed_result,
+static cmdline_parse_token_string_t cmd_set_l2_decap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, set, "set");
+static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
+				 "l2_decap");
+static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
+				 "l2_decap-with-vlan");
+
+static void cmd_set_l2_decap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-#ifdef RTE_NET_I40E
-	struct cmd_cfg_input_set_result *res = parsed_result;
-	enum rte_pmd_i40e_inset_type inset_type = INSET_NONE;
-	struct rte_pmd_i40e_inset inset;
-#endif
-	int ret = -ENOTSUP;
-
-	if (!all_ports_stopped()) {
-		fprintf(stderr, "Please stop all ports first\n");
-		return;
-	}
-
-#ifdef RTE_NET_I40E
-	if (!strcmp(res->inset_type, "hash_inset"))
-		inset_type = INSET_HASH;
-	else if (!strcmp(res->inset_type, "fdir_inset"))
-		inset_type = INSET_FDIR;
-	else if (!strcmp(res->inset_type, "fdir_flx_inset"))
-		inset_type = INSET_FDIR_FLX;
-	ret = rte_pmd_i40e_inset_get(res->port_id, res->pctype_id,
-				     &inset, inset_type);
-	if (ret) {
-		fprintf(stderr, "Failed to get input set.\n");
-		return;
-	}
-
-	if (!strcmp(res->opt, "get")) {
-		ret = rte_pmd_i40e_inset_field_get(inset.inset,
-						   res->field_idx);
-		if (ret)
-			printf("Field index %d is enabled.\n", res->field_idx);
-		else
-			printf("Field index %d is disabled.\n", res->field_idx);
-		return;
-	} else if (!strcmp(res->opt, "set"))
-		ret = rte_pmd_i40e_inset_field_set(&inset.inset,
-						   res->field_idx);
-	else if (!strcmp(res->opt, "clear"))
-		ret = rte_pmd_i40e_inset_field_clear(&inset.inset,
-						     res->field_idx);
-	if (ret) {
-		fprintf(stderr, "Failed to configure input set field.\n");
-		return;
-	}
-
-	ret = rte_pmd_i40e_inset_set(res->port_id, res->pctype_id,
-				     &inset, inset_type);
-	if (ret) {
-		fprintf(stderr, "Failed to set input set.\n");
-		return;
-	}
-#endif
+	struct cmd_set_l2_decap_result *res = parsed_result;
 
-	if (ret == -ENOTSUP)
-		fprintf(stderr, "Function not supported\n");
+	if (strcmp(res->l2_decap, "l2_decap") == 0)
+		l2_decap_conf.select_vlan = 0;
+	else if (strcmp(res->l2_decap, "l2_decap-with-vlan") == 0)
+		l2_decap_conf.select_vlan = 1;
 }
 
-static cmdline_parse_token_string_t cmd_cfg_input_set_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 port, "port");
-static cmdline_parse_token_string_t cmd_cfg_input_set_cfg =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 cfg, "config");
-static cmdline_parse_token_num_t cmd_cfg_input_set_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
-			      port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_cfg_input_set_pctype =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 pctype, "pctype");
-static cmdline_parse_token_num_t cmd_cfg_input_set_pctype_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
-			      pctype_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_cfg_input_set_inset_type =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 inset_type,
-				 "hash_inset#fdir_inset#fdir_flx_inset");
-static cmdline_parse_token_string_t cmd_cfg_input_set_opt =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 opt, "get#set#clear");
-static cmdline_parse_token_string_t cmd_cfg_input_set_field =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 field, "field");
-static cmdline_parse_token_num_t cmd_cfg_input_set_field_idx =
-	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
-			      field_idx, RTE_UINT8);
-
-static cmdline_parse_inst_t cmd_cfg_input_set = {
-	.f = cmd_cfg_input_set_parsed,
+static cmdline_parse_inst_t cmd_set_l2_decap = {
+	.f = cmd_set_l2_decap_parsed,
 	.data = NULL,
-	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
-		    "fdir_inset|fdir_flx_inset get|set|clear field <field_idx>",
+	.help_str = "set l2_decap",
 	.tokens = {
-		(void *)&cmd_cfg_input_set_port,
-		(void *)&cmd_cfg_input_set_cfg,
-		(void *)&cmd_cfg_input_set_port_id,
-		(void *)&cmd_cfg_input_set_pctype,
-		(void *)&cmd_cfg_input_set_pctype_id,
-		(void *)&cmd_cfg_input_set_inset_type,
-		(void *)&cmd_cfg_input_set_opt,
-		(void *)&cmd_cfg_input_set_field,
-		(void *)&cmd_cfg_input_set_field_idx,
+		(void *)&cmd_set_l2_decap_set,
+		(void *)&cmd_set_l2_decap_l2_decap,
 		NULL,
 	},
 };
 
-/* Clear input set */
-struct cmd_clear_input_set_result {
-	cmdline_fixed_string_t port;
-	cmdline_fixed_string_t cfg;
-	portid_t port_id;
-	cmdline_fixed_string_t pctype;
-	uint8_t pctype_id;
-	cmdline_fixed_string_t inset_type;
-	cmdline_fixed_string_t clear;
-	cmdline_fixed_string_t all;
-};
-
-static void
-cmd_clear_input_set_parsed(
-	__rte_unused void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-#ifdef RTE_NET_I40E
-	struct cmd_clear_input_set_result *res = parsed_result;
-	enum rte_pmd_i40e_inset_type inset_type = INSET_NONE;
-	struct rte_pmd_i40e_inset inset;
-#endif
-	int ret = -ENOTSUP;
-
-	if (!all_ports_stopped()) {
-		fprintf(stderr, "Please stop all ports first\n");
-		return;
-	}
-
-#ifdef RTE_NET_I40E
-	if (!strcmp(res->inset_type, "hash_inset"))
-		inset_type = INSET_HASH;
-	else if (!strcmp(res->inset_type, "fdir_inset"))
-		inset_type = INSET_FDIR;
-	else if (!strcmp(res->inset_type, "fdir_flx_inset"))
-		inset_type = INSET_FDIR_FLX;
-
-	memset(&inset, 0, sizeof(inset));
-
-	ret = rte_pmd_i40e_inset_set(res->port_id, res->pctype_id,
-				     &inset, inset_type);
-	if (ret) {
-		fprintf(stderr, "Failed to clear input set.\n");
-		return;
-	}
-
-#endif
-
-	if (ret == -ENOTSUP)
-		fprintf(stderr, "Function not supported\n");
-}
-
-static cmdline_parse_token_string_t cmd_clear_input_set_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 port, "port");
-static cmdline_parse_token_string_t cmd_clear_input_set_cfg =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 cfg, "config");
-static cmdline_parse_token_num_t cmd_clear_input_set_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
-			      port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_clear_input_set_pctype =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 pctype, "pctype");
-static cmdline_parse_token_num_t cmd_clear_input_set_pctype_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
-			      pctype_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_clear_input_set_inset_type =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 inset_type,
-				 "hash_inset#fdir_inset#fdir_flx_inset");
-static cmdline_parse_token_string_t cmd_clear_input_set_clear =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 clear, "clear");
-static cmdline_parse_token_string_t cmd_clear_input_set_all =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 all, "all");
-
-static cmdline_parse_inst_t cmd_clear_input_set = {
-	.f = cmd_clear_input_set_parsed,
+static cmdline_parse_inst_t cmd_set_l2_decap_with_vlan = {
+	.f = cmd_set_l2_decap_parsed,
 	.data = NULL,
-	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
-		    "fdir_inset|fdir_flx_inset clear all",
+	.help_str = "set l2_decap-with-vlan",
 	.tokens = {
-		(void *)&cmd_clear_input_set_port,
-		(void *)&cmd_clear_input_set_cfg,
-		(void *)&cmd_clear_input_set_port_id,
-		(void *)&cmd_clear_input_set_pctype,
-		(void *)&cmd_clear_input_set_pctype_id,
-		(void *)&cmd_clear_input_set_inset_type,
-		(void *)&cmd_clear_input_set_clear,
-		(void *)&cmd_clear_input_set_all,
+		(void *)&cmd_set_l2_decap_set,
+		(void *)&cmd_set_l2_decap_l2_decap_with_vlan,
 		NULL,
 	},
 };
 
-/* show vf stats */
-
-/* Common result structure for show vf stats */
-struct cmd_show_vf_stats_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t stats;
-	portid_t port_id;
-	uint16_t vf_id;
+/** Set MPLSoGRE encapsulation details */
+struct cmd_set_mplsogre_encap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t mplsogre;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
+	uint32_t label;
+	cmdline_ipaddr_t ip_src;
+	cmdline_ipaddr_t ip_dst;
+	uint16_t tci;
+	struct rte_ether_addr eth_src;
+	struct rte_ether_addr eth_dst;
 };
 
-/* Common CLI fields show vf stats*/
-static cmdline_parse_token_string_t cmd_show_vf_stats_show =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_show_vf_stats_result,
-		 show, "show");
-static cmdline_parse_token_string_t cmd_show_vf_stats_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_show_vf_stats_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_show_vf_stats_stats =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_show_vf_stats_result,
-		 stats, "stats");
-static cmdline_parse_token_num_t cmd_show_vf_stats_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_show_vf_stats_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_show_vf_stats_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_show_vf_stats_result,
-		 vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, set,
+				 "set");
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, mplsogre,
+				 "mplsogre_encap");
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 mplsogre, "mplsogre_encap-with-vlan");
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "ip-version");
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 ip_version, "ipv4#ipv6");
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_label =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "label");
+static cmdline_parse_token_num_t cmd_set_mplsogre_encap_label_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, label,
+			      RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "ip-src");
+static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_src_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_src);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "ip-dst");
+static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_dst_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_dst);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "vlan-tci");
+static cmdline_parse_token_num_t cmd_set_mplsogre_encap_vlan_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, tci,
+			      RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "eth-src");
+static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_src_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				    eth_src);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "eth-dst");
+static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_dst_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				    eth_dst);
 
-static void
-cmd_show_vf_stats_parsed(
-	void *parsed_result,
+static void cmd_set_mplsogre_encap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_show_vf_stats_result *res = parsed_result;
-	struct rte_eth_stats stats;
-	int ret = -ENOTSUP;
-	static const char *nic_stats_border = "########################";
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	memset(&stats, 0, sizeof(stats));
-
-#ifdef RTE_NET_I40E
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_i40e_get_vf_stats(res->port_id,
-						res->vf_id,
-						&stats);
-#endif
-#ifdef RTE_NET_BNXT
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_bnxt_get_vf_stats(res->port_id,
-						res->vf_id,
-						&stats);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-
-	printf("\n  %s NIC statistics for port %-2d vf %-2d %s\n",
-		nic_stats_border, res->port_id, res->vf_id, nic_stats_border);
-
-	printf("  RX-packets: %-10"PRIu64" RX-missed: %-10"PRIu64" RX-bytes:  "
-	       "%-"PRIu64"\n",
-	       stats.ipackets, stats.imissed, stats.ibytes);
-	printf("  RX-errors: %-"PRIu64"\n", stats.ierrors);
-	printf("  RX-nombuf:  %-10"PRIu64"\n",
-	       stats.rx_nombuf);
-	printf("  TX-packets: %-10"PRIu64" TX-errors: %-10"PRIu64" TX-bytes:  "
-	       "%-"PRIu64"\n",
-	       stats.opackets, stats.oerrors, stats.obytes);
+	struct cmd_set_mplsogre_encap_result *res = parsed_result;
+	union {
+		uint32_t mplsogre_label;
+		uint8_t label[4];
+	} id = {
+		.mplsogre_label = rte_cpu_to_be_32(res->label<<12),
+	};
 
-	printf("  %s############################%s\n",
-			       nic_stats_border, nic_stats_border);
+	if (strcmp(res->mplsogre, "mplsogre_encap") == 0)
+		mplsogre_encap_conf.select_vlan = 0;
+	else if (strcmp(res->mplsogre, "mplsogre_encap-with-vlan") == 0)
+		mplsogre_encap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		mplsogre_encap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		mplsogre_encap_conf.select_ipv4 = 0;
+	else
+		return;
+	rte_memcpy(mplsogre_encap_conf.label, &id.label, 3);
+	if (mplsogre_encap_conf.select_ipv4) {
+		IPV4_ADDR_TO_UINT(res->ip_src, mplsogre_encap_conf.ipv4_src);
+		IPV4_ADDR_TO_UINT(res->ip_dst, mplsogre_encap_conf.ipv4_dst);
+	} else {
+		IPV6_ADDR_TO_ARRAY(res->ip_src, mplsogre_encap_conf.ipv6_src);
+		IPV6_ADDR_TO_ARRAY(res->ip_dst, mplsogre_encap_conf.ipv6_dst);
+	}
+	if (mplsogre_encap_conf.select_vlan)
+		mplsogre_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
+	rte_memcpy(mplsogre_encap_conf.eth_src, res->eth_src.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
+	rte_memcpy(mplsogre_encap_conf.eth_dst, res->eth_dst.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
 }
 
-static cmdline_parse_inst_t cmd_show_vf_stats = {
-	.f = cmd_show_vf_stats_parsed,
+static cmdline_parse_inst_t cmd_set_mplsogre_encap = {
+	.f = cmd_set_mplsogre_encap_parsed,
 	.data = NULL,
-	.help_str = "show vf stats <port_id> <vf_id>",
+	.help_str = "set mplsogre_encap ip-version ipv4|ipv6 label <label>"
+		" ip-src <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
+		" eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_show_vf_stats_show,
-		(void *)&cmd_show_vf_stats_vf,
-		(void *)&cmd_show_vf_stats_stats,
-		(void *)&cmd_show_vf_stats_port_id,
-		(void *)&cmd_show_vf_stats_vf_id,
+		(void *)&cmd_set_mplsogre_encap_set,
+		(void *)&cmd_set_mplsogre_encap_mplsogre_encap,
+		(void *)&cmd_set_mplsogre_encap_ip_version,
+		(void *)&cmd_set_mplsogre_encap_ip_version_value,
+		(void *)&cmd_set_mplsogre_encap_label,
+		(void *)&cmd_set_mplsogre_encap_label_value,
+		(void *)&cmd_set_mplsogre_encap_ip_src,
+		(void *)&cmd_set_mplsogre_encap_ip_src_value,
+		(void *)&cmd_set_mplsogre_encap_ip_dst,
+		(void *)&cmd_set_mplsogre_encap_ip_dst_value,
+		(void *)&cmd_set_mplsogre_encap_eth_src,
+		(void *)&cmd_set_mplsogre_encap_eth_src_value,
+		(void *)&cmd_set_mplsogre_encap_eth_dst,
+		(void *)&cmd_set_mplsogre_encap_eth_dst_value,
 		NULL,
 	},
 };
 
-/* clear vf stats */
+static cmdline_parse_inst_t cmd_set_mplsogre_encap_with_vlan = {
+	.f = cmd_set_mplsogre_encap_parsed,
+	.data = NULL,
+	.help_str = "set mplsogre_encap-with-vlan ip-version ipv4|ipv6"
+		" label <label> ip-src <ip-src> ip-dst <ip-dst>"
+		" vlan-tci <vlan-tci> eth-src <eth-src> eth-dst <eth-dst>",
+	.tokens = {
+		(void *)&cmd_set_mplsogre_encap_set,
+		(void *)&cmd_set_mplsogre_encap_mplsogre_encap_with_vlan,
+		(void *)&cmd_set_mplsogre_encap_ip_version,
+		(void *)&cmd_set_mplsogre_encap_ip_version_value,
+		(void *)&cmd_set_mplsogre_encap_label,
+		(void *)&cmd_set_mplsogre_encap_label_value,
+		(void *)&cmd_set_mplsogre_encap_ip_src,
+		(void *)&cmd_set_mplsogre_encap_ip_src_value,
+		(void *)&cmd_set_mplsogre_encap_ip_dst,
+		(void *)&cmd_set_mplsogre_encap_ip_dst_value,
+		(void *)&cmd_set_mplsogre_encap_vlan,
+		(void *)&cmd_set_mplsogre_encap_vlan_value,
+		(void *)&cmd_set_mplsogre_encap_eth_src,
+		(void *)&cmd_set_mplsogre_encap_eth_src_value,
+		(void *)&cmd_set_mplsogre_encap_eth_dst,
+		(void *)&cmd_set_mplsogre_encap_eth_dst_value,
+		NULL,
+	},
+};
 
-/* Common result structure for clear vf stats */
-struct cmd_clear_vf_stats_result {
-	cmdline_fixed_string_t clear;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t stats;
-	portid_t port_id;
-	uint16_t vf_id;
+/** Set MPLSoGRE decapsulation details */
+struct cmd_set_mplsogre_decap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t mplsogre;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
 };
 
-/* Common CLI fields clear vf stats*/
-static cmdline_parse_token_string_t cmd_clear_vf_stats_clear =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_clear_vf_stats_result,
-		 clear, "clear");
-static cmdline_parse_token_string_t cmd_clear_vf_stats_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_clear_vf_stats_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_clear_vf_stats_stats =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_clear_vf_stats_result,
-		 stats, "stats");
-static cmdline_parse_token_num_t cmd_clear_vf_stats_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_clear_vf_stats_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_clear_vf_stats_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_clear_vf_stats_result,
-		 vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, set,
+				 "set");
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, mplsogre,
+				 "mplsogre_decap");
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
+				 mplsogre, "mplsogre_decap-with-vlan");
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
+				 pos_token, "ip-version");
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
+				 ip_version, "ipv4#ipv6");
 
-static void
-cmd_clear_vf_stats_parsed(
-	void *parsed_result,
+static void cmd_set_mplsogre_decap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_clear_vf_stats_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_i40e_reset_vf_stats(res->port_id,
-						  res->vf_id);
-#endif
-#ifdef RTE_NET_BNXT
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_bnxt_reset_vf_stats(res->port_id,
-						  res->vf_id);
-#endif
+	struct cmd_set_mplsogre_decap_result *res = parsed_result;
 
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
+	if (strcmp(res->mplsogre, "mplsogre_decap") == 0)
+		mplsogre_decap_conf.select_vlan = 0;
+	else if (strcmp(res->mplsogre, "mplsogre_decap-with-vlan") == 0)
+		mplsogre_decap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		mplsogre_decap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		mplsogre_decap_conf.select_ipv4 = 0;
 }
 
-static cmdline_parse_inst_t cmd_clear_vf_stats = {
-	.f = cmd_clear_vf_stats_parsed,
+static cmdline_parse_inst_t cmd_set_mplsogre_decap = {
+	.f = cmd_set_mplsogre_decap_parsed,
 	.data = NULL,
-	.help_str = "clear vf stats <port_id> <vf_id>",
+	.help_str = "set mplsogre_decap ip-version ipv4|ipv6",
 	.tokens = {
-		(void *)&cmd_clear_vf_stats_clear,
-		(void *)&cmd_clear_vf_stats_vf,
-		(void *)&cmd_clear_vf_stats_stats,
-		(void *)&cmd_clear_vf_stats_port_id,
-		(void *)&cmd_clear_vf_stats_vf_id,
+		(void *)&cmd_set_mplsogre_decap_set,
+		(void *)&cmd_set_mplsogre_decap_mplsogre_decap,
+		(void *)&cmd_set_mplsogre_decap_ip_version,
+		(void *)&cmd_set_mplsogre_decap_ip_version_value,
 		NULL,
 	},
 };
 
-/* port config pctype mapping reset */
+static cmdline_parse_inst_t cmd_set_mplsogre_decap_with_vlan = {
+	.f = cmd_set_mplsogre_decap_parsed,
+	.data = NULL,
+	.help_str = "set mplsogre_decap-with-vlan ip-version ipv4|ipv6",
+	.tokens = {
+		(void *)&cmd_set_mplsogre_decap_set,
+		(void *)&cmd_set_mplsogre_decap_mplsogre_decap_with_vlan,
+		(void *)&cmd_set_mplsogre_decap_ip_version,
+		(void *)&cmd_set_mplsogre_decap_ip_version_value,
+		NULL,
+	},
+};
 
-/* Common result structure for port config pctype mapping reset */
-struct cmd_pctype_mapping_reset_result {
-	cmdline_fixed_string_t port;
-	cmdline_fixed_string_t config;
-	portid_t port_id;
-	cmdline_fixed_string_t pctype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t reset;
+/** Set MPLSoUDP encapsulation details */
+struct cmd_set_mplsoudp_encap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t mplsoudp;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
+	uint32_t label;
+	uint16_t udp_src;
+	uint16_t udp_dst;
+	cmdline_ipaddr_t ip_src;
+	cmdline_ipaddr_t ip_dst;
+	uint16_t tci;
+	struct rte_ether_addr eth_src;
+	struct rte_ether_addr eth_dst;
 };
 
-/* Common CLI fields for port config pctype mapping reset*/
-static cmdline_parse_token_string_t cmd_pctype_mapping_reset_port =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 port, "port");
-static cmdline_parse_token_string_t cmd_pctype_mapping_reset_config =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 config, "config");
-static cmdline_parse_token_num_t cmd_pctype_mapping_reset_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_pctype_mapping_reset_pctype =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 pctype, "pctype");
-static cmdline_parse_token_string_t cmd_pctype_mapping_reset_mapping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_pctype_mapping_reset_reset =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 reset, "reset");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, set,
+				 "set");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, mplsoudp,
+				 "mplsoudp_encap");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 mplsoudp, "mplsoudp_encap-with-vlan");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "ip-version");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 ip_version, "ipv4#ipv6");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_label =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "label");
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_label_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, label,
+			      RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "udp-src");
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_src_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_src,
+			      RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "udp-dst");
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_dst_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_dst,
+			      RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "ip-src");
+static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_src_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_src);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "ip-dst");
+static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_dst_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_dst);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "vlan-tci");
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_vlan_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, tci,
+			      RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "eth-src");
+static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_src_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				    eth_src);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "eth-dst");
+static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_dst_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				    eth_dst);
 
-static void
-cmd_pctype_mapping_reset_parsed(
-	void *parsed_result,
+static void cmd_set_mplsoudp_encap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_pctype_mapping_reset_result *res = parsed_result;
-	int ret = -ENOTSUP;
+	struct cmd_set_mplsoudp_encap_result *res = parsed_result;
+	union {
+		uint32_t mplsoudp_label;
+		uint8_t label[4];
+	} id = {
+		.mplsoudp_label = rte_cpu_to_be_32(res->label<<12),
+	};
 
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+	if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
+		mplsoudp_encap_conf.select_vlan = 0;
+	else if (strcmp(res->mplsoudp, "mplsoudp_encap-with-vlan") == 0)
+		mplsoudp_encap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		mplsoudp_encap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		mplsoudp_encap_conf.select_ipv4 = 0;
+	else
 		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_flow_type_mapping_reset(res->port_id);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	rte_memcpy(mplsoudp_encap_conf.label, &id.label, 3);
+	mplsoudp_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
+	mplsoudp_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
+	if (mplsoudp_encap_conf.select_ipv4) {
+		IPV4_ADDR_TO_UINT(res->ip_src, mplsoudp_encap_conf.ipv4_src);
+		IPV4_ADDR_TO_UINT(res->ip_dst, mplsoudp_encap_conf.ipv4_dst);
+	} else {
+		IPV6_ADDR_TO_ARRAY(res->ip_src, mplsoudp_encap_conf.ipv6_src);
+		IPV6_ADDR_TO_ARRAY(res->ip_dst, mplsoudp_encap_conf.ipv6_dst);
 	}
+	if (mplsoudp_encap_conf.select_vlan)
+		mplsoudp_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
+	rte_memcpy(mplsoudp_encap_conf.eth_src, res->eth_src.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
+	rte_memcpy(mplsoudp_encap_conf.eth_dst, res->eth_dst.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
 }
 
-static cmdline_parse_inst_t cmd_pctype_mapping_reset = {
-	.f = cmd_pctype_mapping_reset_parsed,
+static cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
+	.f = cmd_set_mplsoudp_encap_parsed,
 	.data = NULL,
-	.help_str = "port config <port_id> pctype mapping reset",
+	.help_str = "set mplsoudp_encap ip-version ipv4|ipv6 label <label>"
+		" udp-src <udp-src> udp-dst <udp-dst> ip-src <ip-src>"
+		" ip-dst <ip-dst> eth-src <eth-src> eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_pctype_mapping_reset_port,
-		(void *)&cmd_pctype_mapping_reset_config,
-		(void *)&cmd_pctype_mapping_reset_port_id,
-		(void *)&cmd_pctype_mapping_reset_pctype,
-		(void *)&cmd_pctype_mapping_reset_mapping,
-		(void *)&cmd_pctype_mapping_reset_reset,
+		(void *)&cmd_set_mplsoudp_encap_set,
+		(void *)&cmd_set_mplsoudp_encap_mplsoudp_encap,
+		(void *)&cmd_set_mplsoudp_encap_ip_version,
+		(void *)&cmd_set_mplsoudp_encap_ip_version_value,
+		(void *)&cmd_set_mplsoudp_encap_label,
+		(void *)&cmd_set_mplsoudp_encap_label_value,
+		(void *)&cmd_set_mplsoudp_encap_udp_src,
+		(void *)&cmd_set_mplsoudp_encap_udp_src_value,
+		(void *)&cmd_set_mplsoudp_encap_udp_dst,
+		(void *)&cmd_set_mplsoudp_encap_udp_dst_value,
+		(void *)&cmd_set_mplsoudp_encap_ip_src,
+		(void *)&cmd_set_mplsoudp_encap_ip_src_value,
+		(void *)&cmd_set_mplsoudp_encap_ip_dst,
+		(void *)&cmd_set_mplsoudp_encap_ip_dst_value,
+		(void *)&cmd_set_mplsoudp_encap_eth_src,
+		(void *)&cmd_set_mplsoudp_encap_eth_src_value,
+		(void *)&cmd_set_mplsoudp_encap_eth_dst,
+		(void *)&cmd_set_mplsoudp_encap_eth_dst_value,
 		NULL,
 	},
 };
 
-/* show port pctype mapping */
+static cmdline_parse_inst_t cmd_set_mplsoudp_encap_with_vlan = {
+	.f = cmd_set_mplsoudp_encap_parsed,
+	.data = NULL,
+	.help_str = "set mplsoudp_encap-with-vlan ip-version ipv4|ipv6"
+		" label <label> udp-src <udp-src> udp-dst <udp-dst>"
+		" ip-src <ip-src> ip-dst <ip-dst> vlan-tci <vlan-tci>"
+		" eth-src <eth-src> eth-dst <eth-dst>",
+	.tokens = {
+		(void *)&cmd_set_mplsoudp_encap_set,
+		(void *)&cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan,
+		(void *)&cmd_set_mplsoudp_encap_ip_version,
+		(void *)&cmd_set_mplsoudp_encap_ip_version_value,
+		(void *)&cmd_set_mplsoudp_encap_label,
+		(void *)&cmd_set_mplsoudp_encap_label_value,
+		(void *)&cmd_set_mplsoudp_encap_udp_src,
+		(void *)&cmd_set_mplsoudp_encap_udp_src_value,
+		(void *)&cmd_set_mplsoudp_encap_udp_dst,
+		(void *)&cmd_set_mplsoudp_encap_udp_dst_value,
+		(void *)&cmd_set_mplsoudp_encap_ip_src,
+		(void *)&cmd_set_mplsoudp_encap_ip_src_value,
+		(void *)&cmd_set_mplsoudp_encap_ip_dst,
+		(void *)&cmd_set_mplsoudp_encap_ip_dst_value,
+		(void *)&cmd_set_mplsoudp_encap_vlan,
+		(void *)&cmd_set_mplsoudp_encap_vlan_value,
+		(void *)&cmd_set_mplsoudp_encap_eth_src,
+		(void *)&cmd_set_mplsoudp_encap_eth_src_value,
+		(void *)&cmd_set_mplsoudp_encap_eth_dst,
+		(void *)&cmd_set_mplsoudp_encap_eth_dst_value,
+		NULL,
+	},
+};
 
-/* Common result structure for show port pctype mapping */
-struct cmd_pctype_mapping_get_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t pctype;
-	cmdline_fixed_string_t mapping;
+/** Set MPLSoUDP decapsulation details */
+struct cmd_set_mplsoudp_decap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t mplsoudp;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
 };
 
-/* Common CLI fields for pctype mapping get */
-static cmdline_parse_token_string_t cmd_pctype_mapping_get_show =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_get_result,
-		 show, "show");
-static cmdline_parse_token_string_t cmd_pctype_mapping_get_port =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_get_result,
-		 port, "port");
-static cmdline_parse_token_num_t cmd_pctype_mapping_get_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_pctype_mapping_get_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_pctype_mapping_get_pctype =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_get_result,
-		 pctype, "pctype");
-static cmdline_parse_token_string_t cmd_pctype_mapping_get_mapping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_get_result,
-		 mapping, "mapping");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, set,
+				 "set");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, mplsoudp,
+				 "mplsoudp_decap");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
+				 mplsoudp, "mplsoudp_decap-with-vlan");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
+				 pos_token, "ip-version");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
+				 ip_version, "ipv4#ipv6");
 
-static void
-cmd_pctype_mapping_get_parsed(
-	void *parsed_result,
+static void cmd_set_mplsoudp_decap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_pctype_mapping_get_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_flow_type_mapping
-				mapping[RTE_PMD_I40E_FLOW_TYPE_MAX];
-	int i, j, first_pctype;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_flow_type_mapping_get(res->port_id, mapping);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		return;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		return;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-		return;
-	}
+	struct cmd_set_mplsoudp_decap_result *res = parsed_result;
 
-#ifdef RTE_NET_I40E
-	for (i = 0; i < RTE_PMD_I40E_FLOW_TYPE_MAX; i++) {
-		if (mapping[i].pctype != 0ULL) {
-			first_pctype = 1;
-
-			printf("pctype: ");
-			for (j = 0; j < RTE_PMD_I40E_PCTYPE_MAX; j++) {
-				if (mapping[i].pctype & (1ULL << j)) {
-					printf(first_pctype ?
-					       "%02d" : ",%02d", j);
-					first_pctype = 0;
-				}
-			}
-			printf("  ->  flowtype: %02d\n", mapping[i].flow_type);
-		}
-	}
-#endif
+	if (strcmp(res->mplsoudp, "mplsoudp_decap") == 0)
+		mplsoudp_decap_conf.select_vlan = 0;
+	else if (strcmp(res->mplsoudp, "mplsoudp_decap-with-vlan") == 0)
+		mplsoudp_decap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		mplsoudp_decap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		mplsoudp_decap_conf.select_ipv4 = 0;
 }
 
-static cmdline_parse_inst_t cmd_pctype_mapping_get = {
-	.f = cmd_pctype_mapping_get_parsed,
+static cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
+	.f = cmd_set_mplsoudp_decap_parsed,
 	.data = NULL,
-	.help_str = "show port <port_id> pctype mapping",
+	.help_str = "set mplsoudp_decap ip-version ipv4|ipv6",
 	.tokens = {
-		(void *)&cmd_pctype_mapping_get_show,
-		(void *)&cmd_pctype_mapping_get_port,
-		(void *)&cmd_pctype_mapping_get_port_id,
-		(void *)&cmd_pctype_mapping_get_pctype,
-		(void *)&cmd_pctype_mapping_get_mapping,
+		(void *)&cmd_set_mplsoudp_decap_set,
+		(void *)&cmd_set_mplsoudp_decap_mplsoudp_decap,
+		(void *)&cmd_set_mplsoudp_decap_ip_version,
+		(void *)&cmd_set_mplsoudp_decap_ip_version_value,
 		NULL,
 	},
 };
 
-/* port config pctype mapping update */
+static cmdline_parse_inst_t cmd_set_mplsoudp_decap_with_vlan = {
+	.f = cmd_set_mplsoudp_decap_parsed,
+	.data = NULL,
+	.help_str = "set mplsoudp_decap-with-vlan ip-version ipv4|ipv6",
+	.tokens = {
+		(void *)&cmd_set_mplsoudp_decap_set,
+		(void *)&cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan,
+		(void *)&cmd_set_mplsoudp_decap_ip_version,
+		(void *)&cmd_set_mplsoudp_decap_ip_version_value,
+		NULL,
+	},
+};
 
-/* Common result structure for port config pctype mapping update */
-struct cmd_pctype_mapping_update_result {
-	cmdline_fixed_string_t port;
-	cmdline_fixed_string_t config;
-	portid_t port_id;
-	cmdline_fixed_string_t pctype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t update;
-	cmdline_fixed_string_t pctype_list;
-	uint16_t flow_type;
+/** Set connection tracking object common details */
+struct cmd_set_conntrack_common_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t conntrack;
+	cmdline_fixed_string_t common;
+	cmdline_fixed_string_t peer;
+	cmdline_fixed_string_t is_orig;
+	cmdline_fixed_string_t enable;
+	cmdline_fixed_string_t live;
+	cmdline_fixed_string_t sack;
+	cmdline_fixed_string_t cack;
+	cmdline_fixed_string_t last_dir;
+	cmdline_fixed_string_t liberal;
+	cmdline_fixed_string_t state;
+	cmdline_fixed_string_t max_ack_win;
+	cmdline_fixed_string_t retrans;
+	cmdline_fixed_string_t last_win;
+	cmdline_fixed_string_t last_seq;
+	cmdline_fixed_string_t last_ack;
+	cmdline_fixed_string_t last_end;
+	cmdline_fixed_string_t last_index;
+	uint8_t stat;
+	uint8_t factor;
+	uint16_t peer_port;
+	uint32_t is_original;
+	uint32_t en;
+	uint32_t is_live;
+	uint32_t s_ack;
+	uint32_t c_ack;
+	uint32_t ld;
+	uint32_t lb;
+	uint8_t re_num;
+	uint8_t li;
+	uint16_t lw;
+	uint32_t ls;
+	uint32_t la;
+	uint32_t le;
 };
 
-/* Common CLI fields for pctype mapping update*/
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_port =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 port, "port");
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_config =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 config, "config");
-static cmdline_parse_token_num_t cmd_pctype_mapping_update_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_pctype =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 pctype, "pctype");
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_mapping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_update =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 update, "update");
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_pc_type =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 pctype_list, NULL);
-static cmdline_parse_token_num_t cmd_pctype_mapping_update_flow_type =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 flow_type, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_conntrack_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 set, "set");
+static cmdline_parse_token_string_t cmd_set_conntrack_conntrack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 conntrack, "conntrack");
+static cmdline_parse_token_string_t cmd_set_conntrack_common_com =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 common, "com");
+static cmdline_parse_token_string_t cmd_set_conntrack_common_peer =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 peer, "peer");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_peer_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      peer_port, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_is_orig =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 is_orig, "is_orig");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_is_orig_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      is_original, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_enable =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 enable, "enable");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_enable_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      en, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_live =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 live, "live");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_live_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      is_live, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_sack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 sack, "sack");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_sack_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      s_ack, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_cack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 cack, "cack");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_cack_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      c_ack, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_dir =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_dir, "last_dir");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_dir_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      ld, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_liberal =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 liberal, "liberal");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_liberal_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      lb, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_state =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 state, "state");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_state_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      stat, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_max_ackwin =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 max_ack_win, "max_ack_win");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_max_ackwin_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      factor, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_retrans =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 retrans, "r_lim");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_retrans_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      re_num, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_win =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_win, "last_win");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_win_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      lw, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_seq =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_seq, "last_seq");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_seq_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      ls, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_ack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_ack, "last_ack");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_ack_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      la, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_end =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_end, "last_end");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_end_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      le, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_index =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_index, "last_index");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_index_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      li, RTE_UINT8);
 
-static void
-cmd_pctype_mapping_update_parsed(
-	void *parsed_result,
+static void cmd_set_conntrack_common_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_pctype_mapping_update_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_flow_type_mapping mapping;
-	unsigned int i;
-	unsigned int nb_item;
-	unsigned int pctype_list[RTE_PMD_I40E_PCTYPE_MAX];
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	nb_item = parse_item_list(res->pctype_list, "pctypes",
-				  RTE_PMD_I40E_PCTYPE_MAX, pctype_list, 1);
-	mapping.flow_type = res->flow_type;
-	for (i = 0, mapping.pctype = 0ULL; i < nb_item; i++)
-		mapping.pctype |= (1ULL << pctype_list[i]);
-	ret = rte_pmd_i40e_flow_type_mapping_update(res->port_id,
-						&mapping,
-						1,
-						0);
-#endif
+	struct cmd_set_conntrack_common_result *res = parsed_result;
 
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid pctype or flow type\n");
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
+	/* No need to swap to big endian. */
+	conntrack_context.peer_port = res->peer_port;
+	conntrack_context.is_original_dir = res->is_original;
+	conntrack_context.enable = res->en;
+	conntrack_context.live_connection = res->is_live;
+	conntrack_context.selective_ack = res->s_ack;
+	conntrack_context.challenge_ack_passed = res->c_ack;
+	conntrack_context.last_direction = res->ld;
+	conntrack_context.liberal_mode = res->lb;
+	conntrack_context.state = (enum rte_flow_conntrack_state)res->stat;
+	conntrack_context.max_ack_window = res->factor;
+	conntrack_context.retransmission_limit = res->re_num;
+	conntrack_context.last_window = res->lw;
+	conntrack_context.last_index =
+		(enum rte_flow_conntrack_tcp_last_index)res->li;
+	conntrack_context.last_seq = res->ls;
+	conntrack_context.last_ack = res->la;
+	conntrack_context.last_end = res->le;
 }
 
-static cmdline_parse_inst_t cmd_pctype_mapping_update = {
-	.f = cmd_pctype_mapping_update_parsed,
+static cmdline_parse_inst_t cmd_set_conntrack_common = {
+	.f = cmd_set_conntrack_common_parsed,
 	.data = NULL,
-	.help_str = "port config <port_id> pctype mapping update"
-	" <pctype_id_0,[pctype_id_1]*> <flowtype_id>",
+	.help_str = "set conntrack com peer <port_id> is_orig <dir> enable <en>"
+		" live <ack_seen> sack <en> cack <passed> last_dir <dir>"
+		" liberal <en> state <s> max_ack_win <factor> r_lim <num>"
+		" last_win <win> last_seq <seq> last_ack <ack> last_end <end>"
+		" last_index <flag>",
 	.tokens = {
-		(void *)&cmd_pctype_mapping_update_port,
-		(void *)&cmd_pctype_mapping_update_config,
-		(void *)&cmd_pctype_mapping_update_port_id,
-		(void *)&cmd_pctype_mapping_update_pctype,
-		(void *)&cmd_pctype_mapping_update_mapping,
-		(void *)&cmd_pctype_mapping_update_update,
-		(void *)&cmd_pctype_mapping_update_pc_type,
-		(void *)&cmd_pctype_mapping_update_flow_type,
+		(void *)&cmd_set_conntrack_set,
+		(void *)&cmd_set_conntrack_conntrack,
+		(void *)&cmd_set_conntrack_common_com,
+		(void *)&cmd_set_conntrack_common_peer,
+		(void *)&cmd_set_conntrack_common_peer_value,
+		(void *)&cmd_set_conntrack_common_is_orig,
+		(void *)&cmd_set_conntrack_common_is_orig_value,
+		(void *)&cmd_set_conntrack_common_enable,
+		(void *)&cmd_set_conntrack_common_enable_value,
+		(void *)&cmd_set_conntrack_common_live,
+		(void *)&cmd_set_conntrack_common_live_value,
+		(void *)&cmd_set_conntrack_common_sack,
+		(void *)&cmd_set_conntrack_common_sack_value,
+		(void *)&cmd_set_conntrack_common_cack,
+		(void *)&cmd_set_conntrack_common_cack_value,
+		(void *)&cmd_set_conntrack_common_last_dir,
+		(void *)&cmd_set_conntrack_common_last_dir_value,
+		(void *)&cmd_set_conntrack_common_liberal,
+		(void *)&cmd_set_conntrack_common_liberal_value,
+		(void *)&cmd_set_conntrack_common_state,
+		(void *)&cmd_set_conntrack_common_state_value,
+		(void *)&cmd_set_conntrack_common_max_ackwin,
+		(void *)&cmd_set_conntrack_common_max_ackwin_value,
+		(void *)&cmd_set_conntrack_common_retrans,
+		(void *)&cmd_set_conntrack_common_retrans_value,
+		(void *)&cmd_set_conntrack_common_last_win,
+		(void *)&cmd_set_conntrack_common_last_win_value,
+		(void *)&cmd_set_conntrack_common_last_seq,
+		(void *)&cmd_set_conntrack_common_last_seq_value,
+		(void *)&cmd_set_conntrack_common_last_ack,
+		(void *)&cmd_set_conntrack_common_last_ack_value,
+		(void *)&cmd_set_conntrack_common_last_end,
+		(void *)&cmd_set_conntrack_common_last_end_value,
+		(void *)&cmd_set_conntrack_common_last_index,
+		(void *)&cmd_set_conntrack_common_last_index_value,
 		NULL,
 	},
 };
 
-/* ptype mapping get */
-
-/* Common result structure for ptype mapping get */
-struct cmd_ptype_mapping_get_result {
-	cmdline_fixed_string_t ptype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t get;
-	portid_t port_id;
-	uint8_t valid_only;
+/** Set connection tracking object both directions' details */
+struct cmd_set_conntrack_dir_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t conntrack;
+	cmdline_fixed_string_t dir;
+	cmdline_fixed_string_t scale;
+	cmdline_fixed_string_t fin;
+	cmdline_fixed_string_t ack_seen;
+	cmdline_fixed_string_t unack;
+	cmdline_fixed_string_t sent_end;
+	cmdline_fixed_string_t reply_end;
+	cmdline_fixed_string_t max_win;
+	cmdline_fixed_string_t max_ack;
+	uint32_t factor;
+	uint32_t f;
+	uint32_t as;
+	uint32_t un;
+	uint32_t se;
+	uint32_t re;
+	uint32_t mw;
+	uint32_t ma;
 };
 
-/* Common CLI fields for ptype mapping get */
-static cmdline_parse_token_string_t cmd_ptype_mapping_get_ptype =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_get_result,
-		 ptype, "ptype");
-static cmdline_parse_token_string_t cmd_ptype_mapping_get_mapping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_get_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_ptype_mapping_get_get =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_get_result,
-		 get, "get");
-static cmdline_parse_token_num_t cmd_ptype_mapping_get_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_get_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_ptype_mapping_get_valid_only =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_get_result,
-		 valid_only, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_dir =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 dir, "orig#rply");
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_scale =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 scale, "scale");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_scale_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      factor, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_fin =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 fin, "fin");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_fin_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      f, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_ack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 ack_seen, "acked");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_ack_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      as, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_unack_data =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 unack, "unack_data");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_unack_data_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      un, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_sent_end =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 sent_end, "sent_end");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_sent_end_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      se, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_reply_end =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 reply_end, "reply_end");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_reply_end_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      re, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_win =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 max_win, "max_win");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_win_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      mw, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_ack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 max_ack, "max_ack");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_ack_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      ma, RTE_UINT32);
 
-static void
-cmd_ptype_mapping_get_parsed(
-	void *parsed_result,
+static void cmd_set_conntrack_dir_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_ptype_mapping_get_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	int max_ptype_num = 256;
-	struct rte_pmd_i40e_ptype_mapping mapping[max_ptype_num];
-	uint16_t count;
-	int i;
-#endif
+	struct cmd_set_conntrack_dir_result *res = parsed_result;
+	struct rte_flow_tcp_dir_param *dir = NULL;
 
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+	if (strcmp(res->dir, "orig") == 0)
+		dir = &conntrack_context.original_dir;
+	else if (strcmp(res->dir, "rply") == 0)
+		dir = &conntrack_context.reply_dir;
+	else
 		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_ptype_mapping_get(res->port_id,
-					mapping,
-					max_ptype_num,
-					&count,
-					res->valid_only);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-
-#ifdef RTE_NET_I40E
-	if (!ret) {
-		for (i = 0; i < count; i++)
-			printf("%3d\t0x%08x\n",
-				mapping[i].hw_ptype, mapping[i].sw_ptype);
-	}
-#endif
+	dir->scale = res->factor;
+	dir->close_initiated = res->f;
+	dir->last_ack_seen = res->as;
+	dir->data_unacked = res->un;
+	dir->sent_end = res->se;
+	dir->reply_end = res->re;
+	dir->max_ack = res->ma;
+	dir->max_win = res->mw;
 }
 
-static cmdline_parse_inst_t cmd_ptype_mapping_get = {
-	.f = cmd_ptype_mapping_get_parsed,
+static cmdline_parse_inst_t cmd_set_conntrack_dir = {
+	.f = cmd_set_conntrack_dir_parsed,
 	.data = NULL,
-	.help_str = "ptype mapping get <port_id> <valid_only>",
+	.help_str = "set conntrack orig|rply scale <factor> fin <sent>"
+		    " acked <seen> unack_data <unack> sent_end <sent>"
+		    " reply_end <reply> max_win <win> max_ack <ack>",
 	.tokens = {
-		(void *)&cmd_ptype_mapping_get_ptype,
-		(void *)&cmd_ptype_mapping_get_mapping,
-		(void *)&cmd_ptype_mapping_get_get,
-		(void *)&cmd_ptype_mapping_get_port_id,
-		(void *)&cmd_ptype_mapping_get_valid_only,
+		(void *)&cmd_set_conntrack_set,
+		(void *)&cmd_set_conntrack_conntrack,
+		(void *)&cmd_set_conntrack_dir_dir,
+		(void *)&cmd_set_conntrack_dir_scale,
+		(void *)&cmd_set_conntrack_dir_scale_value,
+		(void *)&cmd_set_conntrack_dir_fin,
+		(void *)&cmd_set_conntrack_dir_fin_value,
+		(void *)&cmd_set_conntrack_dir_ack,
+		(void *)&cmd_set_conntrack_dir_ack_value,
+		(void *)&cmd_set_conntrack_dir_unack_data,
+		(void *)&cmd_set_conntrack_dir_unack_data_value,
+		(void *)&cmd_set_conntrack_dir_sent_end,
+		(void *)&cmd_set_conntrack_dir_sent_end_value,
+		(void *)&cmd_set_conntrack_dir_reply_end,
+		(void *)&cmd_set_conntrack_dir_reply_end_value,
+		(void *)&cmd_set_conntrack_dir_max_win,
+		(void *)&cmd_set_conntrack_dir_max_win_value,
+		(void *)&cmd_set_conntrack_dir_max_ack,
+		(void *)&cmd_set_conntrack_dir_max_ack_value,
 		NULL,
 	},
 };
 
-/* ptype mapping replace */
+/* show vf stats */
 
-/* Common result structure for ptype mapping replace */
-struct cmd_ptype_mapping_replace_result {
-	cmdline_fixed_string_t ptype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t replace;
+/* Common result structure for show vf stats */
+struct cmd_show_vf_stats_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t stats;
 	portid_t port_id;
-	uint32_t target;
-	uint8_t mask;
-	uint32_t pkt_type;
+	uint16_t vf_id;
 };
 
-/* Common CLI fields for ptype mapping replace */
-static cmdline_parse_token_string_t cmd_ptype_mapping_replace_ptype =
+/* Common CLI fields show vf stats*/
+static cmdline_parse_token_string_t cmd_show_vf_stats_show =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 ptype, "ptype");
-static cmdline_parse_token_string_t cmd_ptype_mapping_replace_mapping =
+		(struct cmd_show_vf_stats_result,
+		 show, "show");
+static cmdline_parse_token_string_t cmd_show_vf_stats_vf =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_ptype_mapping_replace_replace =
+		(struct cmd_show_vf_stats_result,
+		 vf, "vf");
+static cmdline_parse_token_string_t cmd_show_vf_stats_stats =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 replace, "replace");
-static cmdline_parse_token_num_t cmd_ptype_mapping_replace_port_id =
+		(struct cmd_show_vf_stats_result,
+		 stats, "stats");
+static cmdline_parse_token_num_t cmd_show_vf_stats_port_id =
 	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
+		(struct cmd_show_vf_stats_result,
 		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_ptype_mapping_replace_target =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 target, RTE_UINT32);
-static cmdline_parse_token_num_t cmd_ptype_mapping_replace_mask =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 mask, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_ptype_mapping_replace_pkt_type =
+static cmdline_parse_token_num_t cmd_show_vf_stats_vf_id =
 	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 pkt_type, RTE_UINT32);
+		(struct cmd_show_vf_stats_result,
+		 vf_id, RTE_UINT16);
 
 static void
-cmd_ptype_mapping_replace_parsed(
+cmd_show_vf_stats_parsed(
 	void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_ptype_mapping_replace_result *res = parsed_result;
+	struct cmd_show_vf_stats_result *res = parsed_result;
+	struct rte_eth_stats stats;
 	int ret = -ENOTSUP;
+	static const char *nic_stats_border = "########################";
 
 	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
 		return;
 
+	memset(&stats, 0, sizeof(stats));
+
 #ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_ptype_mapping_replace(res->port_id,
-					res->target,
-					res->mask,
-					res->pkt_type);
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_i40e_get_vf_stats(res->port_id,
+						res->vf_id,
+						&stats);
+#endif
+#ifdef RTE_NET_BNXT
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_bnxt_get_vf_stats(res->port_id,
+						res->vf_id,
+						&stats);
 #endif
 
 	switch (ret) {
 	case 0:
 		break;
 	case -EINVAL:
-		fprintf(stderr, "invalid ptype 0x%8x or 0x%8x\n",
-			res->target, res->pkt_type);
+		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
 		break;
 	case -ENODEV:
 		fprintf(stderr, "invalid port_id %d\n", res->port_id);
@@ -14814,162 +12196,99 @@ cmd_ptype_mapping_replace_parsed(
 	default:
 		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
 	}
-}
-
-static cmdline_parse_inst_t cmd_ptype_mapping_replace = {
-	.f = cmd_ptype_mapping_replace_parsed,
-	.data = NULL,
-	.help_str =
-		"ptype mapping replace <port_id> <target> <mask> <pkt_type>",
-	.tokens = {
-		(void *)&cmd_ptype_mapping_replace_ptype,
-		(void *)&cmd_ptype_mapping_replace_mapping,
-		(void *)&cmd_ptype_mapping_replace_replace,
-		(void *)&cmd_ptype_mapping_replace_port_id,
-		(void *)&cmd_ptype_mapping_replace_target,
-		(void *)&cmd_ptype_mapping_replace_mask,
-		(void *)&cmd_ptype_mapping_replace_pkt_type,
-		NULL,
-	},
-};
-
-/* ptype mapping reset */
-
-/* Common result structure for ptype mapping reset */
-struct cmd_ptype_mapping_reset_result {
-	cmdline_fixed_string_t ptype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t reset;
-	portid_t port_id;
-};
-
-/* Common CLI fields for ptype mapping reset*/
-static cmdline_parse_token_string_t cmd_ptype_mapping_reset_ptype =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_reset_result,
-		 ptype, "ptype");
-static cmdline_parse_token_string_t cmd_ptype_mapping_reset_mapping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_reset_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_ptype_mapping_reset_reset =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_reset_result,
-		 reset, "reset");
-static cmdline_parse_token_num_t cmd_ptype_mapping_reset_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_reset_result,
-		 port_id, RTE_UINT16);
-
-static void
-cmd_ptype_mapping_reset_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_ptype_mapping_reset_result *res = parsed_result;
-	int ret = -ENOTSUP;
 
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
+	printf("\n  %s NIC statistics for port %-2d vf %-2d %s\n",
+		nic_stats_border, res->port_id, res->vf_id, nic_stats_border);
 
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_ptype_mapping_reset(res->port_id);
-#endif
+	printf("  RX-packets: %-10"PRIu64" RX-missed: %-10"PRIu64" RX-bytes:  "
+	       "%-"PRIu64"\n",
+	       stats.ipackets, stats.imissed, stats.ibytes);
+	printf("  RX-errors: %-"PRIu64"\n", stats.ierrors);
+	printf("  RX-nombuf:  %-10"PRIu64"\n",
+	       stats.rx_nombuf);
+	printf("  TX-packets: %-10"PRIu64" TX-errors: %-10"PRIu64" TX-bytes:  "
+	       "%-"PRIu64"\n",
+	       stats.opackets, stats.oerrors, stats.obytes);
 
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
+	printf("  %s############################%s\n",
+			       nic_stats_border, nic_stats_border);
 }
 
-static cmdline_parse_inst_t cmd_ptype_mapping_reset = {
-	.f = cmd_ptype_mapping_reset_parsed,
+static cmdline_parse_inst_t cmd_show_vf_stats = {
+	.f = cmd_show_vf_stats_parsed,
 	.data = NULL,
-	.help_str = "ptype mapping reset <port_id>",
+	.help_str = "show vf stats <port_id> <vf_id>",
 	.tokens = {
-		(void *)&cmd_ptype_mapping_reset_ptype,
-		(void *)&cmd_ptype_mapping_reset_mapping,
-		(void *)&cmd_ptype_mapping_reset_reset,
-		(void *)&cmd_ptype_mapping_reset_port_id,
+		(void *)&cmd_show_vf_stats_show,
+		(void *)&cmd_show_vf_stats_vf,
+		(void *)&cmd_show_vf_stats_stats,
+		(void *)&cmd_show_vf_stats_port_id,
+		(void *)&cmd_show_vf_stats_vf_id,
 		NULL,
 	},
 };
 
-/* ptype mapping update */
+/* clear vf stats */
 
-/* Common result structure for ptype mapping update */
-struct cmd_ptype_mapping_update_result {
-	cmdline_fixed_string_t ptype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t reset;
+/* Common result structure for clear vf stats */
+struct cmd_clear_vf_stats_result {
+	cmdline_fixed_string_t clear;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t stats;
 	portid_t port_id;
-	uint8_t hw_ptype;
-	uint32_t sw_ptype;
+	uint16_t vf_id;
 };
 
-/* Common CLI fields for ptype mapping update*/
-static cmdline_parse_token_string_t cmd_ptype_mapping_update_ptype =
+/* Common CLI fields clear vf stats*/
+static cmdline_parse_token_string_t cmd_clear_vf_stats_clear =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
-		 ptype, "ptype");
-static cmdline_parse_token_string_t cmd_ptype_mapping_update_mapping =
+		(struct cmd_clear_vf_stats_result,
+		 clear, "clear");
+static cmdline_parse_token_string_t cmd_clear_vf_stats_vf =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_ptype_mapping_update_update =
+		(struct cmd_clear_vf_stats_result,
+		 vf, "vf");
+static cmdline_parse_token_string_t cmd_clear_vf_stats_stats =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
-		 reset, "update");
-static cmdline_parse_token_num_t cmd_ptype_mapping_update_port_id =
+		(struct cmd_clear_vf_stats_result,
+		 stats, "stats");
+static cmdline_parse_token_num_t cmd_clear_vf_stats_port_id =
 	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
+		(struct cmd_clear_vf_stats_result,
 		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_ptype_mapping_update_hw_ptype =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
-		 hw_ptype, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_ptype_mapping_update_sw_ptype =
+static cmdline_parse_token_num_t cmd_clear_vf_stats_vf_id =
 	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
-		 sw_ptype, RTE_UINT32);
+		(struct cmd_clear_vf_stats_result,
+		 vf_id, RTE_UINT16);
 
 static void
-cmd_ptype_mapping_update_parsed(
+cmd_clear_vf_stats_parsed(
 	void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_ptype_mapping_update_result *res = parsed_result;
+	struct cmd_clear_vf_stats_result *res = parsed_result;
 	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_ptype_mapping mapping;
-#endif
+
 	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
 		return;
 
 #ifdef RTE_NET_I40E
-	mapping.hw_ptype = res->hw_ptype;
-	mapping.sw_ptype = res->sw_ptype;
-	ret = rte_pmd_i40e_ptype_mapping_update(res->port_id,
-						&mapping,
-						1,
-						0);
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_i40e_reset_vf_stats(res->port_id,
+						  res->vf_id);
+#endif
+#ifdef RTE_NET_BNXT
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_bnxt_reset_vf_stats(res->port_id,
+						  res->vf_id);
 #endif
 
 	switch (ret) {
 	case 0:
 		break;
 	case -EINVAL:
-		fprintf(stderr, "invalid ptype 0x%8x\n", res->sw_ptype);
+		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
 		break;
 	case -ENODEV:
 		fprintf(stderr, "invalid port_id %d\n", res->port_id);
@@ -14982,17 +12301,16 @@ cmd_ptype_mapping_update_parsed(
 	}
 }
 
-static cmdline_parse_inst_t cmd_ptype_mapping_update = {
-	.f = cmd_ptype_mapping_update_parsed,
+static cmdline_parse_inst_t cmd_clear_vf_stats = {
+	.f = cmd_clear_vf_stats_parsed,
 	.data = NULL,
-	.help_str = "ptype mapping update <port_id> <hw_ptype> <sw_ptype>",
+	.help_str = "clear vf stats <port_id> <vf_id>",
 	.tokens = {
-		(void *)&cmd_ptype_mapping_update_ptype,
-		(void *)&cmd_ptype_mapping_update_mapping,
-		(void *)&cmd_ptype_mapping_update_update,
-		(void *)&cmd_ptype_mapping_update_port_id,
-		(void *)&cmd_ptype_mapping_update_hw_ptype,
-		(void *)&cmd_ptype_mapping_update_sw_ptype,
+		(void *)&cmd_clear_vf_stats_clear,
+		(void *)&cmd_clear_vf_stats_vf,
+		(void *)&cmd_clear_vf_stats_stats,
+		(void *)&cmd_clear_vf_stats_port_id,
+		(void *)&cmd_clear_vf_stats_vf_id,
 		NULL,
 	},
 };
@@ -16929,9 +14247,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_cleanup_txq_mbufs,
 	(cmdline_parse_inst_t *)&cmd_dump,
 	(cmdline_parse_inst_t *)&cmd_dump_one,
-#ifdef RTE_NET_I40E
-	(cmdline_parse_inst_t *)&cmd_add_del_raw_flow_director,
-#endif
 	(cmdline_parse_inst_t *)&cmd_set_flow_director_ip_mask,
 	(cmdline_parse_inst_t *)&cmd_set_flow_director_mac_vlan_mask,
 	(cmdline_parse_inst_t *)&cmd_set_flow_director_tunnel_mask,
@@ -16967,14 +14282,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_vf_rate_limit,
 	(cmdline_parse_inst_t *)&cmd_vf_rxvlan_filter,
 	(cmdline_parse_inst_t *)&cmd_set_vf_mac_addr,
-	(cmdline_parse_inst_t *)&cmd_set_vf_promisc,
-	(cmdline_parse_inst_t *)&cmd_set_vf_allmulti,
-	(cmdline_parse_inst_t *)&cmd_set_vf_broadcast,
-	(cmdline_parse_inst_t *)&cmd_set_vf_vlan_tag,
-	(cmdline_parse_inst_t *)&cmd_vf_max_bw,
-	(cmdline_parse_inst_t *)&cmd_vf_tc_min_bw,
-	(cmdline_parse_inst_t *)&cmd_vf_tc_max_bw,
-	(cmdline_parse_inst_t *)&cmd_strict_link_prio,
 	(cmdline_parse_inst_t *)&cmd_tc_min_bw,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan_tos_ttl,
@@ -16995,29 +14302,10 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_mplsoudp_decap_with_vlan,
 	(cmdline_parse_inst_t *)&cmd_set_conntrack_common,
 	(cmdline_parse_inst_t *)&cmd_set_conntrack_dir,
-	(cmdline_parse_inst_t *)&cmd_ddp_add,
-	(cmdline_parse_inst_t *)&cmd_ddp_del,
-	(cmdline_parse_inst_t *)&cmd_ddp_get_list,
-	(cmdline_parse_inst_t *)&cmd_ddp_get_info,
-	(cmdline_parse_inst_t *)&cmd_cfg_input_set,
-	(cmdline_parse_inst_t *)&cmd_clear_input_set,
 	(cmdline_parse_inst_t *)&cmd_show_vf_stats,
 	(cmdline_parse_inst_t *)&cmd_clear_vf_stats,
 	(cmdline_parse_inst_t *)&cmd_show_port_supported_ptypes,
 	(cmdline_parse_inst_t *)&cmd_set_port_ptypes,
-	(cmdline_parse_inst_t *)&cmd_ptype_mapping_get,
-	(cmdline_parse_inst_t *)&cmd_ptype_mapping_replace,
-	(cmdline_parse_inst_t *)&cmd_ptype_mapping_reset,
-	(cmdline_parse_inst_t *)&cmd_ptype_mapping_update,
-
-	(cmdline_parse_inst_t *)&cmd_pctype_mapping_get,
-	(cmdline_parse_inst_t *)&cmd_pctype_mapping_reset,
-	(cmdline_parse_inst_t *)&cmd_pctype_mapping_update,
-	(cmdline_parse_inst_t *)&cmd_queue_region,
-	(cmdline_parse_inst_t *)&cmd_region_flowtype,
-	(cmdline_parse_inst_t *)&cmd_user_priority_region,
-	(cmdline_parse_inst_t *)&cmd_flush_queue_region,
-	(cmdline_parse_inst_t *)&cmd_show_queue_region_info_all,
 	(cmdline_parse_inst_t *)&cmd_show_port_tm_cap,
 	(cmdline_parse_inst_t *)&cmd_show_port_tm_level_cap,
 	(cmdline_parse_inst_t *)&cmd_show_port_tm_node_cap,
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 1b1e738f83..2e5c631e8d 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -6243,49 +6243,6 @@ close_file(uint8_t *buf)
 	return -1;
 }
 
-void
-port_queue_region_info_display(portid_t port_id, void *buf)
-{
-#ifdef RTE_NET_I40E
-	uint16_t i, j;
-	struct rte_pmd_i40e_queue_regions *info =
-		(struct rte_pmd_i40e_queue_regions *)buf;
-	static const char *queue_region_info_stats_border = "-------";
-
-	if (!info->queue_region_number)
-		printf("there is no region has been set before");
-
-	printf("\n	%s All queue region info for port=%2d %s",
-			queue_region_info_stats_border, port_id,
-			queue_region_info_stats_border);
-	printf("\n	queue_region_number: %-14u \n",
-			info->queue_region_number);
-
-	for (i = 0; i < info->queue_region_number; i++) {
-		printf("\n	region_id: %-14u queue_number: %-14u "
-			"queue_start_index: %-14u \n",
-			info->region[i].region_id,
-			info->region[i].queue_num,
-			info->region[i].queue_start_index);
-
-		printf("  user_priority_num is	%-14u :",
-					info->region[i].user_priority_num);
-		for (j = 0; j < info->region[i].user_priority_num; j++)
-			printf(" %-14u ", info->region[i].user_priority[j]);
-
-		printf("\n	flowtype_num is  %-14u :",
-				info->region[i].flowtype_num);
-		for (j = 0; j < info->region[i].flowtype_num; j++)
-			printf(" %-14u ", info->region[i].hw_flowtype[j]);
-	}
-#else
-	RTE_SET_USED(port_id);
-	RTE_SET_USED(buf);
-#endif
-
-	printf("\n\n");
-}
-
 void
 show_macs(portid_t port_id)
 {
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index 54d2cd09e9..6955c46654 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -1122,8 +1122,6 @@ uint8_t *open_file(const char *file_path, uint32_t *size);
 int save_file(const char *file_path, uint8_t *buf, uint32_t size);
 int close_file(uint8_t *buf);
 
-void port_queue_region_info_display(portid_t port_id, void *buf);
-
 enum print_warning {
 	ENABLED_WARN = 0,
 	DISABLED_WARN
diff --git a/doc/guides/nics/i40e.rst b/doc/guides/nics/i40e.rst
index ef91b3a1ac..033e3a8183 100644
--- a/doc/guides/nics/i40e.rst
+++ b/doc/guides/nics/i40e.rst
@@ -552,8 +552,7 @@ of the region index, queue number, queue start index, user priority, traffic
 classes and so on. Depending on commands from the command line, it will call
 i40e private APIs and start the process of setting or flushing the queue
 region configuration. As this feature is specific for i40e only private
-APIs are used. These new ``test_pmd`` commands are as shown below. For
-details please refer to :doc:`../testpmd_app_ug/index`.
+APIs are used.
 
 .. code-block:: console
 
@@ -745,6 +744,187 @@ Mirror rule limitation for X722
 
 Due to firmware restriction of X722, the same VSI cannot have more than one mirror rule.
 
+Testpmd driver specific commands
+--------------------------------
+
+Some i40e driver specific features are integrated in testpmd.
+
+RSS queue region
+~~~~~~~~~~~~~~~~
+
+Set RSS queue region span on a port::
+
+   testpmd> set port (port_id) queue-region region_id (value) \
+		queue_start_index (value) queue_num (value)
+
+Set flowtype mapping on a RSS queue region on a port::
+
+   testpmd> set port (port_id) queue-region region_id (value) flowtype (value)
+
+where:
+
+* For the flowtype(pctype) of packet,the specific index for each type has
+  been defined in file i40e_type.h as enum i40e_filter_pctype.
+
+Set user priority mapping on a RSS queue region on a port::
+
+   testpmd> set port (port_id) queue-region UP (value) region_id (value)
+
+Flush all queue region related configuration on a port::
+
+   testpmd> set port (port_id) queue-region flush (on|off)
+
+where:
+
+* ``on``: is just an enable function which server for other configuration,
+  it is for all configuration about queue region from up layer,
+  at first will only keep in DPDK software stored in driver,
+  only after "flush on", it commit all configuration to HW.
+
+* ``"off``: is just clean all configuration about queue region just now,
+  and restore all to DPDK i40e driver default config when start up.
+
+Show all queue region related configuration info on a port::
+
+   testpmd> show port (port_id) queue-region
+
+.. note::
+
+  Queue region only support on PF by now, so these command is
+  only for configuration of queue region on PF port.
+
+set promisc (for VF)
+~~~~~~~~~~~~~~~~~~~~
+
+Set the unicast promiscuous mode for a VF from PF.
+It's supported by Intel i40e NICs now.
+In promiscuous mode packets are not dropped if they aren't for the specified MAC address::
+
+   testpmd> set vf promisc (port_id) (vf_id) (on|off)
+
+set allmulticast (for VF)
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set the multicast promiscuous mode for a VF from PF.
+It's supported by Intel i40e NICs now.
+In promiscuous mode packets are not dropped if they aren't for the specified MAC address::
+
+   testpmd> set vf allmulti (port_id) (vf_id) (on|off)
+
+set broadcast mode (for VF)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set broadcast mode for a VF from the PF::
+
+   testpmd> set vf broadcast (port_id) (vf_id) (on|off)
+
+vlan set tag (for VF)
+~~~~~~~~~~~~~~~~~~~~~
+
+Set VLAN tag for a VF from the PF::
+
+   testpmd> set vf vlan tag (port_id) (vf_id) (on|off)
+
+set tx max bandwidth (for VF)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set TX max absolute bandwidth (Mbps) for a VF from PF::
+
+   testpmd> set vf tx max-bandwidth (port_id) (vf_id) (max_bandwidth)
+
+set tc tx min bandwidth (for VF)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set all TCs' TX min relative bandwidth (%) for a VF from PF::
+
+   testpmd> set vf tc tx min-bandwidth (port_id) (vf_id) (bw1, bw2, ...)
+
+set tc tx max bandwidth (for VF)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set a TC's TX max absolute bandwidth (Mbps) for a VF from PF::
+
+   testpmd> set vf tc tx max-bandwidth (port_id) (vf_id) (tc_no) (max_bandwidth)
+
+set tc strict link priority mode
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set some TCs' strict link priority mode on a physical port::
+
+   testpmd> set tx strict-link-priority (port_id) (tc_bitmap)
+
+ddp add
+~~~~~~~
+
+Load a dynamic device personalization (DDP) profile and store backup profile::
+
+   testpmd> ddp add (port_id) (profile_path[,backup_profile_path])
+
+ddp del
+~~~~~~~
+
+Delete a dynamic device personalization profile and restore backup profile::
+
+   testpmd> ddp del (port_id) (backup_profile_path)
+
+ddp get list
+~~~~~~~~~~~~
+
+Get loaded dynamic device personalization (DDP) package info list::
+
+   testpmd> ddp get list (port_id)
+
+ddp get info
+~~~~~~~~~~~~
+
+Display information about dynamic device personalization (DDP) profile::
+
+   testpmd> ddp get info (profile_path)
+
+ptype mapping
+~~~~~~~~~~~~~
+
+List all items from the ptype mapping table::
+
+   testpmd> ptype mapping get (port_id) (valid_only)
+
+Where:
+
+* ``valid_only``: A flag indicates if only list valid items(=1) or all items(=0).
+
+Replace a specific or a group of software defined ptype with a new one::
+
+   testpmd> ptype mapping replace  (port_id) (target) (mask) (pkt_type)
+
+where:
+
+* ``target``: A specific software ptype or a mask to represent a group of software ptypes.
+
+* ``mask``: A flag indicate if "target" is a specific software ptype(=0) or a ptype mask(=1).
+
+* ``pkt_type``: The new software ptype to replace the old ones.
+
+Update hardware defined ptype to software defined packet type mapping table::
+
+   testpmd> ptype mapping update (port_id) (hw_ptype) (sw_ptype)
+
+where:
+
+* ``hw_ptype``: hardware ptype as the index of the ptype mapping table.
+
+* ``sw_ptype``: software ptype as the value of the ptype mapping table.
+
+Reset ptype mapping table::
+
+   testpmd> ptype mapping reset (port_id)
+
+show port pctype mapping
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+List all items from the pctype mapping table::
+
+   testpmd> show port (port_id) pctype mapping
+
 High Performance of Small Packets on 40GbE NIC
 ----------------------------------------------
 
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index ed0d413574..6394aa42bd 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -431,20 +431,6 @@ For example::
    testpmd> read txd 0 0 4
         0x00000001 - 0x24C3C440 / 0x000F0000 - 0x2330003C
 
-ddp get list
-~~~~~~~~~~~~
-
-Get loaded dynamic device personalization (DDP) package info list::
-
-   testpmd> ddp get list (port_id)
-
-ddp get info
-~~~~~~~~~~~~
-
-Display information about dynamic device personalization (DDP) profile::
-
-   testpmd> ddp get info (profile_path)
-
 show vf stats
 ~~~~~~~~~~~~~
 
@@ -459,13 +445,6 @@ Reset VF statistics::
 
    testpmd> clear vf stats (port_id) (vf_id)
 
-show port pctype mapping
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-List all items from the pctype mapping table::
-
-   testpmd> show port (port_id) pctype mapping
-
 show rx offloading capabilities
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -997,13 +976,6 @@ Configure MACsec secure association (SA)::
    The IDX value must be 0 or 1.
    Check the NIC Datasheet for hardware limits.
 
-set broadcast mode (for VF)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set broadcast mode for a VF from the PF::
-
-   testpmd> set vf broadcast (port_id) (vf_id) (on|off)
-
 vlan set stripq
 ~~~~~~~~~~~~~~~
 
@@ -1025,13 +997,6 @@ Set VLAN insert for a VF from the PF::
 
    testpmd> set vf vlan insert (port_id) (vf_id) (vlan_id)
 
-vlan set tag (for VF)
-~~~~~~~~~~~~~~~~~~~~~
-
-Set VLAN tag for a VF from the PF::
-
-   testpmd> set vf vlan tag (port_id) (vf_id) (on|off)
-
 vlan set antispoof (for VF)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -1158,50 +1123,6 @@ Where:
 
    Check the NIC Datasheet for hardware limits.
 
-RSS queue region
-~~~~~~~~~~~~~~~~
-
-Set RSS queue region span on a port::
-
-   testpmd> set port (port_id) queue-region region_id (value) \
-		queue_start_index (value) queue_num (value)
-
-Set flowtype mapping on a RSS queue region on a port::
-
-   testpmd> set port (port_id) queue-region region_id (value) flowtype (value)
-
-where:
-
-* For the flowtype(pctype) of packet,the specific index for each type has
-  been defined in file i40e_type.h as enum i40e_filter_pctype.
-
-Set user priority mapping on a RSS queue region on a port::
-
-   testpmd> set port (port_id) queue-region UP (value) region_id (value)
-
-Flush all queue region related configuration on a port::
-
-   testpmd> set port (port_id) queue-region flush (on|off)
-
-where:
-
-* ``on``: is just an enable function which server for other configuration,
-  it is for all configuration about queue region from up layer,
-  at first will only keep in DPDK software stored in driver,
-  only after "flush on", it commit all configuration to HW.
-
-* ``"off``: is just clean all configuration about queue region just now,
-  and restore all to DPDK i40e driver default config when start up.
-
-Show all queue region related configuration info on a port::
-
-   testpmd> show port (port_id) queue-region
-
-.. note::
-
-  Queue region only support on PF by now, so these command is
-  only for configuration of queue region on PF port.
-
 csum parse-tunnel
 ~~~~~~~~~~~~~~~~~
 
@@ -1463,52 +1384,6 @@ Set the allmulti mode for a port or for all ports::
 
 Same as the ifconfig (8) option. Controls how multicast packets are handled.
 
-set promisc (for VF)
-~~~~~~~~~~~~~~~~~~~~
-
-Set the unicast promiscuous mode for a VF from PF.
-It's supported by Intel i40e NICs now.
-In promiscuous mode packets are not dropped if they aren't for the specified MAC address::
-
-   testpmd> set vf promisc (port_id) (vf_id) (on|off)
-
-set allmulticast (for VF)
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set the multicast promiscuous mode for a VF from PF.
-It's supported by Intel i40e NICs now.
-In promiscuous mode packets are not dropped if they aren't for the specified MAC address::
-
-   testpmd> set vf allmulti (port_id) (vf_id) (on|off)
-
-set tx max bandwidth (for VF)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set TX max absolute bandwidth (Mbps) for a VF from PF::
-
-   testpmd> set vf tx max-bandwidth (port_id) (vf_id) (max_bandwidth)
-
-set tc tx min bandwidth (for VF)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set all TCs' TX min relative bandwidth (%) for a VF from PF::
-
-   testpmd> set vf tc tx min-bandwidth (port_id) (vf_id) (bw1, bw2, ...)
-
-set tc tx max bandwidth (for VF)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set a TC's TX max absolute bandwidth (Mbps) for a VF from PF::
-
-   testpmd> set vf tc tx max-bandwidth (port_id) (vf_id) (tc_no) (max_bandwidth)
-
-set tc strict link priority mode
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set some TCs' strict link priority mode on a physical port::
-
-   testpmd> set tx strict-link-priority (port_id) (tc_bitmap)
-
 set tc tx min bandwidth
 ~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -1732,57 +1607,6 @@ Enable/disable E-tag based forwarding on a port::
 
    testpmd> E-tag set forwarding (on|off) port (port_id)
 
-ddp add
-~~~~~~~
-
-Load a dynamic device personalization (DDP) profile and store backup profile::
-
-   testpmd> ddp add (port_id) (profile_path[,backup_profile_path])
-
-ddp del
-~~~~~~~
-
-Delete a dynamic device personalization profile and restore backup profile::
-
-   testpmd> ddp del (port_id) (backup_profile_path)
-
-ptype mapping
-~~~~~~~~~~~~~
-
-List all items from the ptype mapping table::
-
-   testpmd> ptype mapping get (port_id) (valid_only)
-
-Where:
-
-* ``valid_only``: A flag indicates if only list valid items(=1) or all items(=0).
-
-Replace a specific or a group of software defined ptype with a new one::
-
-   testpmd> ptype mapping replace  (port_id) (target) (mask) (pkt_type)
-
-where:
-
-* ``target``: A specific software ptype or a mask to represent a group of software ptypes.
-
-* ``mask``: A flag indicate if "target" is a specific software ptype(=0) or a ptype mask(=1).
-
-* ``pkt_type``: The new software ptype to replace the old ones.
-
-Update hardware defined ptype to software defined packet type mapping table::
-
-   testpmd> ptype mapping update (port_id) (hw_ptype) (sw_ptype)
-
-where:
-
-* ``hw_ptype``: hardware ptype as the index of the ptype mapping table.
-
-* ``sw_ptype``: software ptype as the value of the ptype mapping table.
-
-Reset ptype mapping table::
-
-   testpmd> ptype mapping reset (port_id)
-
 config per port Rx offloading
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -5577,3 +5401,4 @@ Some drivers provide specific features.
 See:
 
 - :doc:`../prog_guide/link_bonding_poll_mode_drv_lib`
+- :doc:`../nics/i40e`
diff --git a/drivers/net/i40e/i40e_testpmd.c b/drivers/net/i40e/i40e_testpmd.c
new file mode 100644
index 0000000000..1adf714c5d
--- /dev/null
+++ b/drivers/net/i40e/i40e_testpmd.c
@@ -0,0 +1,2634 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2016 Intel Corporation.
+ */
+#include <rte_pmd_i40e.h>
+
+#include <cmdline_parse_num.h>
+#include <cmdline_parse_string.h>
+
+#include "testpmd.h"
+
+/* *** queue region set *** */
+struct cmd_queue_region_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t region;
+	uint8_t region_id;
+	cmdline_fixed_string_t queue_start_index;
+	uint8_t queue_id;
+	cmdline_fixed_string_t queue_num;
+	uint8_t queue_num_value;
+};
+
+static void
+cmd_queue_region_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_queue_region_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_SET;
+	region_conf.region_id = res->region_id;
+	region_conf.queue_num = res->queue_num_value;
+	region_conf.queue_start_index = res->queue_id;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+				op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "queue region config error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+static cmdline_parse_token_string_t cmd_queue_region_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_queue_region_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+		port, "port");
+static cmdline_parse_token_num_t cmd_queue_region_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_queue_region_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+		cmd, "queue-region");
+static cmdline_parse_token_string_t cmd_queue_region_id =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+		region, "region_id");
+static cmdline_parse_token_num_t cmd_queue_region_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+		region_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+		queue_start_index, "queue_start_index");
+static cmdline_parse_token_num_t cmd_queue_region_queue_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+		queue_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_queue_region_queue_num =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+		queue_num, "queue_num");
+static cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+		queue_num_value, RTE_UINT8);
+
+static cmdline_parse_inst_t cmd_queue_region = {
+	.f = cmd_queue_region_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region region_id <value> "
+		"queue_start_index <value> queue_num <value>: Set a queue region",
+	.tokens = {
+		(void *)&cmd_queue_region_set,
+		(void *)&cmd_queue_region_port,
+		(void *)&cmd_queue_region_port_id,
+		(void *)&cmd_queue_region_cmd,
+		(void *)&cmd_queue_region_id,
+		(void *)&cmd_queue_region_index,
+		(void *)&cmd_queue_region_queue_start_index,
+		(void *)&cmd_queue_region_queue_id,
+		(void *)&cmd_queue_region_queue_num,
+		(void *)&cmd_queue_region_queue_num_value,
+		NULL,
+	},
+};
+
+/* *** queue region and flowtype set *** */
+struct cmd_region_flowtype_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t region;
+	uint8_t region_id;
+	cmdline_fixed_string_t flowtype;
+	uint8_t flowtype_id;
+};
+
+static void
+cmd_region_flowtype_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_region_flowtype_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_FLOWTYPE_SET;
+	region_conf.region_id = res->region_id;
+	region_conf.hw_flowtype = res->flowtype_id;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+			op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "region flowtype config error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+static cmdline_parse_token_string_t cmd_region_flowtype_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_region_flowtype_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+		port, "port");
+static cmdline_parse_token_num_t cmd_region_flowtype_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_region_flowtype_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+		cmd, "queue-region");
+static cmdline_parse_token_string_t cmd_region_flowtype_index =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+		region, "region_id");
+static cmdline_parse_token_num_t cmd_region_flowtype_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
+		region_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+		flowtype, "flowtype");
+static cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
+		flowtype_id, RTE_UINT8);
+static cmdline_parse_inst_t cmd_region_flowtype = {
+	.f = cmd_region_flowtype_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region region_id <value> "
+		"flowtype <value>: Set a flowtype region index",
+	.tokens = {
+		(void *)&cmd_region_flowtype_set,
+		(void *)&cmd_region_flowtype_port,
+		(void *)&cmd_region_flowtype_port_index,
+		(void *)&cmd_region_flowtype_cmd,
+		(void *)&cmd_region_flowtype_index,
+		(void *)&cmd_region_flowtype_id,
+		(void *)&cmd_region_flowtype_flow_index,
+		(void *)&cmd_region_flowtype_flow_id,
+		NULL,
+	},
+};
+
+/* *** User Priority (UP) to queue region (region_id) set *** */
+struct cmd_user_priority_region_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t user_priority;
+	uint8_t user_priority_id;
+	cmdline_fixed_string_t region;
+	uint8_t region_id;
+};
+
+static void
+cmd_user_priority_region_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_user_priority_region_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_USER_PRIORITY_SET;
+	region_conf.user_priority = res->user_priority_id;
+	region_conf.region_id = res->region_id;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+				op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "user_priority region config error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+static cmdline_parse_token_string_t cmd_user_priority_region_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_user_priority_region_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+		port, "port");
+static cmdline_parse_token_num_t cmd_user_priority_region_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_user_priority_region_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+		cmd, "queue-region");
+static cmdline_parse_token_string_t cmd_user_priority_region_UP =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+		user_priority, "UP");
+static cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
+		user_priority_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_user_priority_region_region =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+		region, "region_id");
+static cmdline_parse_token_num_t cmd_user_priority_region_region_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
+		region_id, RTE_UINT8);
+
+static cmdline_parse_inst_t cmd_user_priority_region = {
+	.f = cmd_user_priority_region_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region UP <value> "
+		"region_id <value>: Set the mapping of User Priority (UP) "
+		"to queue region (region_id) ",
+	.tokens = {
+		(void *)&cmd_user_priority_region_set,
+		(void *)&cmd_user_priority_region_port,
+		(void *)&cmd_user_priority_region_port_index,
+		(void *)&cmd_user_priority_region_cmd,
+		(void *)&cmd_user_priority_region_UP,
+		(void *)&cmd_user_priority_region_UP_id,
+		(void *)&cmd_user_priority_region_region,
+		(void *)&cmd_user_priority_region_region_id,
+		NULL,
+	},
+};
+
+/* *** flush all queue region related configuration *** */
+struct cmd_flush_queue_region_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t flush;
+	cmdline_fixed_string_t what;
+};
+
+static void
+cmd_flush_queue_region_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_flush_queue_region_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+
+	if (strcmp(res->what, "on") == 0)
+		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_ON;
+	else
+		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_OFF;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+				op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "queue region config flush error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+static cmdline_parse_token_string_t cmd_flush_queue_region_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_flush_queue_region_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+		port, "port");
+static cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_flush_queue_region_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+		cmd, "queue-region");
+static cmdline_parse_token_string_t cmd_flush_queue_region_flush =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+		flush, "flush");
+static cmdline_parse_token_string_t cmd_flush_queue_region_what =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+		what, "on#off");
+
+static cmdline_parse_inst_t cmd_flush_queue_region = {
+	.f = cmd_flush_queue_region_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region flush on|off"
+		": flush all queue region related configuration",
+	.tokens = {
+		(void *)&cmd_flush_queue_region_set,
+		(void *)&cmd_flush_queue_region_port,
+		(void *)&cmd_flush_queue_region_port_index,
+		(void *)&cmd_flush_queue_region_cmd,
+		(void *)&cmd_flush_queue_region_flush,
+		(void *)&cmd_flush_queue_region_what,
+		NULL,
+	},
+};
+
+/* *** get all queue region related configuration info *** */
+struct cmd_show_queue_region_info {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+};
+
+static void
+port_queue_region_info_display(portid_t port_id, void *buf)
+{
+	uint16_t i, j;
+	struct rte_pmd_i40e_queue_regions *info =
+		(struct rte_pmd_i40e_queue_regions *)buf;
+	static const char *queue_region_info_stats_border = "-------";
+
+	if (!info->queue_region_number)
+		printf("there is no region has been set before");
+
+	printf("\n	%s All queue region info for port=%2d %s",
+			queue_region_info_stats_border, port_id,
+			queue_region_info_stats_border);
+	printf("\n	queue_region_number: %-14u\n",
+			info->queue_region_number);
+
+	for (i = 0; i < info->queue_region_number; i++) {
+		printf("\n	region_id: %-14u queue_number: %-14u "
+			"queue_start_index: %-14u\n",
+			info->region[i].region_id,
+			info->region[i].queue_num,
+			info->region[i].queue_start_index);
+
+		printf("  user_priority_num is	%-14u :",
+					info->region[i].user_priority_num);
+		for (j = 0; j < info->region[i].user_priority_num; j++)
+			printf(" %-14u ", info->region[i].user_priority[j]);
+
+		printf("\n	flowtype_num is  %-14u :",
+				info->region[i].flowtype_num);
+		for (j = 0; j < info->region[i].flowtype_num; j++)
+			printf(" %-14u ", info->region[i].hw_flowtype[j]);
+	}
+
+	printf("\n\n");
+}
+
+static void
+cmd_show_queue_region_info_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_show_queue_region_info *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_regions rte_pmd_regions;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&rte_pmd_regions, 0, sizeof(rte_pmd_regions));
+
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_INFO_GET;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+					op_type, &rte_pmd_regions);
+
+	port_queue_region_info_display(res->port_id, &rte_pmd_regions);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "queue region config info show error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+static cmdline_parse_token_string_t cmd_show_queue_region_info_get =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
+		show, "show");
+static cmdline_parse_token_string_t cmd_show_queue_region_info_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
+		port, "port");
+static cmdline_parse_token_num_t cmd_show_queue_region_info_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_show_queue_region_info,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
+		cmd, "queue-region");
+
+static cmdline_parse_inst_t cmd_show_queue_region_info_all = {
+	.f = cmd_show_queue_region_info_parsed,
+	.data = NULL,
+	.help_str = "show port <port_id> queue-region"
+		": show all queue region related configuration info",
+	.tokens = {
+		(void *)&cmd_show_queue_region_info_get,
+		(void *)&cmd_show_queue_region_info_port,
+		(void *)&cmd_show_queue_region_info_port_index,
+		(void *)&cmd_show_queue_region_info_cmd,
+		NULL,
+	},
+};
+
+static uint16_t
+str2flowtype(char *string)
+{
+	uint8_t i = 0;
+	static const struct {
+		char str[32];
+		uint16_t type;
+	} flowtype_str[] = {
+		{"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},
+		{"ipv6-ex", RTE_ETH_FLOW_IPV6_EX},
+		{"ipv6-tcp-ex", RTE_ETH_FLOW_IPV6_TCP_EX},
+		{"ipv6-udp-ex", RTE_ETH_FLOW_IPV6_UDP_EX},
+		{"gtpu", RTE_ETH_FLOW_GTPU},
+	};
+
+	for (i = 0; i < RTE_DIM(flowtype_str); i++) {
+		if (!strcmp(flowtype_str[i].str, string))
+			return flowtype_str[i].type;
+	}
+
+	if (isdigit(string[0]) && atoi(string) > 0 && atoi(string) < 64)
+		return (uint16_t)atoi(string);
+
+	return RTE_ETH_FLOW_UNKNOWN;
+}
+
+/* *** deal with flow director filter *** */
+struct cmd_flow_director_result {
+	cmdline_fixed_string_t flow_director_filter;
+	portid_t port_id;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t mode_value;
+	cmdline_fixed_string_t ops;
+	cmdline_fixed_string_t flow;
+	cmdline_fixed_string_t flow_type;
+	cmdline_fixed_string_t drop;
+	cmdline_fixed_string_t queue;
+	uint16_t queue_id;
+	cmdline_fixed_string_t fd_id;
+	uint32_t fd_id_value;
+	cmdline_fixed_string_t packet;
+	char filepath[];
+};
+
+static void
+cmd_flow_director_filter_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_flow_director_result *res = parsed_result;
+	int ret = 0;
+	struct rte_pmd_i40e_flow_type_mapping
+			mapping[RTE_PMD_I40E_FLOW_TYPE_MAX];
+	struct rte_pmd_i40e_pkt_template_conf conf;
+	uint16_t flow_type = str2flowtype(res->flow_type);
+	uint16_t i, port = res->port_id;
+	uint8_t add;
+
+	memset(&conf, 0, sizeof(conf));
+
+	if (flow_type == RTE_ETH_FLOW_UNKNOWN) {
+		fprintf(stderr, "Invalid flow type specified.\n");
+		return;
+	}
+	ret = rte_pmd_i40e_flow_type_mapping_get(res->port_id,
+						 mapping);
+	if (ret)
+		return;
+	if (mapping[flow_type].pctype == 0ULL) {
+		fprintf(stderr, "Invalid flow type specified.\n");
+		return;
+	}
+	for (i = 0; i < RTE_PMD_I40E_PCTYPE_MAX; i++) {
+		if (mapping[flow_type].pctype & (1ULL << i)) {
+			conf.input.pctype = i;
+			break;
+		}
+	}
+
+	conf.input.packet = open_file(res->filepath,
+				&conf.input.length);
+	if (!conf.input.packet)
+		return;
+	if (!strcmp(res->drop, "drop"))
+		conf.action.behavior =
+			RTE_PMD_I40E_PKT_TEMPLATE_REJECT;
+	else
+		conf.action.behavior =
+			RTE_PMD_I40E_PKT_TEMPLATE_ACCEPT;
+	conf.action.report_status =
+			RTE_PMD_I40E_PKT_TEMPLATE_REPORT_ID;
+	conf.action.rx_queue = res->queue_id;
+	conf.soft_id = res->fd_id_value;
+	add = strcmp(res->ops, "del") ? 1 : 0;
+	ret = rte_pmd_i40e_flow_add_del_packet_template(port,
+							&conf,
+							add);
+	if (ret < 0)
+		fprintf(stderr, "flow director config error: (%s)\n",
+			strerror(-ret));
+	close_file(conf.input.packet);
+}
+
+static cmdline_parse_token_string_t cmd_flow_director_filter =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		flow_director_filter, "flow_director_filter");
+static cmdline_parse_token_num_t cmd_flow_director_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_flow_director_ops =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		ops, "add#del#update");
+static cmdline_parse_token_string_t cmd_flow_director_flow =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		flow, "flow");
+static cmdline_parse_token_string_t cmd_flow_director_flow_type =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		flow_type, NULL);
+static cmdline_parse_token_string_t cmd_flow_director_drop =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		drop, "drop#fwd");
+static cmdline_parse_token_string_t cmd_flow_director_queue =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		queue, "queue");
+static cmdline_parse_token_num_t cmd_flow_director_queue_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+		queue_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_flow_director_fd_id =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		fd_id, "fd_id");
+static cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+		fd_id_value, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_flow_director_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		mode, "mode");
+static cmdline_parse_token_string_t cmd_flow_director_mode_raw =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		mode_value, "raw");
+static cmdline_parse_token_string_t cmd_flow_director_packet =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		packet, "packet");
+static cmdline_parse_token_string_t cmd_flow_director_filepath =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		filepath, NULL);
+
+static cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
+	.f = cmd_flow_director_filter_parsed,
+	.data = NULL,
+	.help_str = "flow_director_filter ... : Add or delete a raw flow "
+		"director entry on NIC",
+	.tokens = {
+		(void *)&cmd_flow_director_filter,
+		(void *)&cmd_flow_director_port_id,
+		(void *)&cmd_flow_director_mode,
+		(void *)&cmd_flow_director_mode_raw,
+		(void *)&cmd_flow_director_ops,
+		(void *)&cmd_flow_director_flow,
+		(void *)&cmd_flow_director_flow_type,
+		(void *)&cmd_flow_director_drop,
+		(void *)&cmd_flow_director_queue,
+		(void *)&cmd_flow_director_queue_id,
+		(void *)&cmd_flow_director_fd_id,
+		(void *)&cmd_flow_director_fd_id_value,
+		(void *)&cmd_flow_director_packet,
+		(void *)&cmd_flow_director_filepath,
+		NULL,
+	},
+};
+
+/* VF unicast promiscuous mode configuration */
+
+/* Common result structure for VF unicast promiscuous mode */
+struct cmd_vf_promisc_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t promisc;
+	portid_t port_id;
+	uint32_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for VF unicast promiscuous mode enable disable */
+static cmdline_parse_token_string_t cmd_vf_promisc_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_promisc_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_vf_promisc_vf =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_promisc_result,
+		vf, "vf");
+static cmdline_parse_token_string_t cmd_vf_promisc_promisc =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_promisc_result,
+		promisc, "promisc");
+static cmdline_parse_token_num_t cmd_vf_promisc_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_promisc_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_promisc_vf_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_promisc_result,
+		vf_id, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_vf_promisc_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_promisc_result,
+		on_off, "on#off");
+
+static void
+cmd_set_vf_promisc_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_promisc_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_unicast_promisc(res->port_id, res->vf_id, is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_promisc = {
+	.f = cmd_set_vf_promisc_parsed,
+	.data = NULL,
+	.help_str = "set vf promisc <port_id> <vf_id> on|off: "
+		"Set unicast promiscuous mode for a VF from the PF",
+	.tokens = {
+		(void *)&cmd_vf_promisc_set,
+		(void *)&cmd_vf_promisc_vf,
+		(void *)&cmd_vf_promisc_promisc,
+		(void *)&cmd_vf_promisc_port_id,
+		(void *)&cmd_vf_promisc_vf_id,
+		(void *)&cmd_vf_promisc_on_off,
+		NULL,
+	},
+};
+
+/* VF multicast promiscuous mode configuration */
+
+/* Common result structure for VF multicast promiscuous mode */
+struct cmd_vf_allmulti_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t allmulti;
+	portid_t port_id;
+	uint32_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for VF multicast promiscuous mode enable disable */
+static cmdline_parse_token_string_t cmd_vf_allmulti_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_allmulti_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_vf_allmulti_vf =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_allmulti_result,
+		vf, "vf");
+static cmdline_parse_token_string_t cmd_vf_allmulti_allmulti =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_allmulti_result,
+		allmulti, "allmulti");
+static cmdline_parse_token_num_t cmd_vf_allmulti_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_allmulti_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_allmulti_vf_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_allmulti_result,
+		vf_id, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_vf_allmulti_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_allmulti_result,
+		on_off, "on#off");
+
+static void
+cmd_set_vf_allmulti_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_allmulti_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_multicast_promisc(res->port_id, res->vf_id, is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_allmulti = {
+	.f = cmd_set_vf_allmulti_parsed,
+	.data = NULL,
+	.help_str = "set vf allmulti <port_id> <vf_id> on|off: "
+		"Set multicast promiscuous mode for a VF from the PF",
+	.tokens = {
+		(void *)&cmd_vf_allmulti_set,
+		(void *)&cmd_vf_allmulti_vf,
+		(void *)&cmd_vf_allmulti_allmulti,
+		(void *)&cmd_vf_allmulti_port_id,
+		(void *)&cmd_vf_allmulti_vf_id,
+		(void *)&cmd_vf_allmulti_on_off,
+		NULL,
+	},
+};
+
+/* vf broadcast mode configuration */
+
+/* Common result structure for vf broadcast */
+struct cmd_set_vf_broadcast_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t broadcast;
+	portid_t port_id;
+	uint16_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for vf broadcast enable disable */
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_broadcast_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_vf =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_broadcast_result,
+		vf, "vf");
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_broadcast =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_broadcast_result,
+		broadcast, "broadcast");
+static cmdline_parse_token_num_t cmd_set_vf_broadcast_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_broadcast_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_set_vf_broadcast_vf_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_broadcast_result,
+		vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_broadcast_result,
+		on_off, "on#off");
+
+static void
+cmd_set_vf_broadcast_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_set_vf_broadcast_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_broadcast(res->port_id, res->vf_id, is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
+			res->vf_id, is_on);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_broadcast = {
+	.f = cmd_set_vf_broadcast_parsed,
+	.data = NULL,
+	.help_str = "set vf broadcast <port_id> <vf_id> on|off",
+	.tokens = {
+		(void *)&cmd_set_vf_broadcast_set,
+		(void *)&cmd_set_vf_broadcast_vf,
+		(void *)&cmd_set_vf_broadcast_broadcast,
+		(void *)&cmd_set_vf_broadcast_port_id,
+		(void *)&cmd_set_vf_broadcast_vf_id,
+		(void *)&cmd_set_vf_broadcast_on_off,
+		NULL,
+	},
+};
+
+/* vf vlan tag configuration */
+
+/* Common result structure for vf vlan tag */
+struct cmd_set_vf_vlan_tag_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t vlan;
+	cmdline_fixed_string_t tag;
+	portid_t port_id;
+	uint16_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for vf vlan tag enable disable */
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_vlan_tag_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vf =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_vlan_tag_result,
+		vf, "vf");
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_vlan_tag_result,
+		vlan, "vlan");
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_tag =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_vlan_tag_result,
+		tag, "tag");
+static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_vlan_tag_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_vf_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_vlan_tag_result,
+		vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_vlan_tag_result,
+		on_off, "on#off");
+
+static void
+cmd_set_vf_vlan_tag_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_set_vf_vlan_tag_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_vlan_tag(res->port_id, res->vf_id, is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
+			res->vf_id, is_on);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_vlan_tag = {
+	.f = cmd_set_vf_vlan_tag_parsed,
+	.data = NULL,
+	.help_str = "set vf vlan tag <port_id> <vf_id> on|off",
+	.tokens = {
+		(void *)&cmd_set_vf_vlan_tag_set,
+		(void *)&cmd_set_vf_vlan_tag_vf,
+		(void *)&cmd_set_vf_vlan_tag_vlan,
+		(void *)&cmd_set_vf_vlan_tag_tag,
+		(void *)&cmd_set_vf_vlan_tag_port_id,
+		(void *)&cmd_set_vf_vlan_tag_vf_id,
+		(void *)&cmd_set_vf_vlan_tag_on_off,
+		NULL,
+	},
+};
+
+/* Common definition of VF and TC TX bandwidth configuration */
+struct cmd_vf_tc_bw_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t tc;
+	cmdline_fixed_string_t tx;
+	cmdline_fixed_string_t max_bw;
+	cmdline_fixed_string_t min_bw;
+	cmdline_fixed_string_t strict_link_prio;
+	portid_t port_id;
+	uint16_t vf_id;
+	uint8_t tc_no;
+	uint32_t bw;
+	cmdline_fixed_string_t bw_list;
+	uint8_t tc_map;
+};
+
+static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		tc, "tc");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		tx, "tx");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_strict_link_prio =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		strict_link_prio, "strict-link-priority");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_max_bw =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		max_bw, "max-bandwidth");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		min_bw, "min-bandwidth");
+static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_tc_bw_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_tc_bw_vf_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_tc_bw_result,
+		vf_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_no =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_tc_bw_result,
+		tc_no, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_vf_tc_bw_bw =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_tc_bw_result,
+		bw, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		bw_list, NULL);
+static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_map =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_tc_bw_result,
+		tc_map, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_vf_tc_bw_vf =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		vf, "vf");
+
+/* VF max bandwidth setting */
+static void
+cmd_vf_max_bw_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_max_bw(res->port_id,
+					 res->vf_id, res->bw);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or bandwidth %d\n",
+			res->vf_id, res->bw);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_vf_max_bw = {
+	.f = cmd_vf_max_bw_parsed,
+	.data = NULL,
+	.help_str = "set vf tx max-bandwidth <port_id> <vf_id> <bandwidth>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_vf,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_max_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_vf_id,
+		(void *)&cmd_vf_tc_bw_bw,
+		NULL,
+	},
+};
+
+static int
+vf_tc_min_bw_parse_bw_list(uint8_t *bw_list, uint8_t *tc_num, char *str)
+{
+	uint32_t size;
+	const char *p, *p0 = str;
+	char s[256];
+	char *end;
+	char *str_fld[16];
+	uint16_t i;
+	int ret;
+
+	p = strchr(p0, '(');
+	if (p == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	p++;
+	p0 = strchr(p, ')');
+	if (p0 == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	size = p0 - p;
+	if (size >= sizeof(s)) {
+		fprintf(stderr,
+			"The string size exceeds the internal buffer size\n");
+		return -1;
+	}
+	snprintf(s, sizeof(s), "%.*s", size, p);
+	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
+	if (ret <= 0) {
+		fprintf(stderr, "Failed to get the bandwidth list.\n");
+		return -1;
+	}
+	*tc_num = ret;
+	for (i = 0; i < ret; i++)
+		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
+
+	return 0;
+}
+
+/* TC min bandwidth setting */
+static void
+cmd_vf_tc_min_bw_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	uint8_t tc_num;
+	uint8_t bw[16];
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
+	if (ret)
+		return;
+
+	ret = rte_pmd_i40e_set_vf_tc_bw_alloc(res->port_id, res->vf_id, tc_num, bw);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or bandwidth\n", res->vf_id);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_vf_tc_min_bw = {
+	.f = cmd_vf_tc_min_bw_parsed,
+	.data = NULL,
+	.help_str = "set vf tc tx min-bandwidth <port_id> <vf_id>"
+		" <bw1, bw2, ...>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_vf,
+		(void *)&cmd_vf_tc_bw_tc,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_min_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_vf_id,
+		(void *)&cmd_vf_tc_bw_bw_list,
+		NULL,
+	},
+};
+
+/* TC max bandwidth setting */
+static void
+cmd_vf_tc_max_bw_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_tc_max_bw(res->port_id, res->vf_id, res->tc_no, res->bw);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr,
+			"invalid vf_id %d, tc_no %d or bandwidth %d\n",
+			res->vf_id, res->tc_no, res->bw);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_vf_tc_max_bw = {
+	.f = cmd_vf_tc_max_bw_parsed,
+	.data = NULL,
+	.help_str = "set vf tc tx max-bandwidth <port_id> <vf_id> <tc_no>"
+		" <bandwidth>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_vf,
+		(void *)&cmd_vf_tc_bw_tc,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_max_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_vf_id,
+		(void *)&cmd_vf_tc_bw_tc_no,
+		(void *)&cmd_vf_tc_bw_bw,
+		NULL,
+	},
+};
+
+/* Strict link priority scheduling mode setting */
+static void
+cmd_strict_link_prio_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_tc_strict_prio(res->port_id, res->tc_map);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid tc_bitmap 0x%x\n", res->tc_map);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_strict_link_prio = {
+	.f = cmd_strict_link_prio_parsed,
+	.data = NULL,
+	.help_str = "set tx strict-link-priority <port_id> <tc_bitmap>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_strict_link_prio,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_tc_map,
+		NULL,
+	},
+};
+
+/* Load dynamic device personalization*/
+struct cmd_ddp_add_result {
+	cmdline_fixed_string_t ddp;
+	cmdline_fixed_string_t add;
+	portid_t port_id;
+	char filepath[];
+};
+
+static cmdline_parse_token_string_t cmd_ddp_add_ddp =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, ddp, "ddp");
+static cmdline_parse_token_string_t cmd_ddp_add_add =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, add, "add");
+static cmdline_parse_token_num_t cmd_ddp_add_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ddp_add_result, port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_ddp_add_filepath =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, filepath, NULL);
+
+static void
+cmd_ddp_add_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ddp_add_result *res = parsed_result;
+	uint8_t *buff;
+	uint32_t size;
+	char *filepath;
+	char *file_fld[2];
+	int file_num;
+	int ret = -ENOTSUP;
+
+	if (!all_ports_stopped()) {
+		fprintf(stderr, "Please stop all ports first\n");
+		return;
+	}
+
+	filepath = strdup(res->filepath);
+	if (filepath == NULL) {
+		fprintf(stderr, "Failed to allocate memory\n");
+		return;
+	}
+	file_num = rte_strsplit(filepath, strlen(filepath), file_fld, 2, ',');
+
+	buff = open_file(file_fld[0], &size);
+	if (!buff) {
+		free((void *)filepath);
+		return;
+	}
+
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_i40e_process_ddp_package(res->port_id, buff, size,
+			RTE_PMD_I40E_PKG_OP_WR_ADD);
+	if (ret == -EEXIST)
+		fprintf(stderr, "Profile has already existed.\n");
+	else if (ret < 0)
+		fprintf(stderr, "Failed to load profile.\n");
+	else if (file_num == 2)
+		save_file(file_fld[1], buff, size);
+
+	close_file(buff);
+	free((void *)filepath);
+}
+
+static cmdline_parse_inst_t cmd_ddp_add = {
+	.f = cmd_ddp_add_parsed,
+	.data = NULL,
+	.help_str = "ddp add <port_id> <profile_path[,backup_profile_path]>",
+	.tokens = {
+		(void *)&cmd_ddp_add_ddp,
+		(void *)&cmd_ddp_add_add,
+		(void *)&cmd_ddp_add_port_id,
+		(void *)&cmd_ddp_add_filepath,
+		NULL,
+	},
+};
+
+/* Delete dynamic device personalization*/
+struct cmd_ddp_del_result {
+	cmdline_fixed_string_t ddp;
+	cmdline_fixed_string_t del;
+	portid_t port_id;
+	char filepath[];
+};
+
+static cmdline_parse_token_string_t cmd_ddp_del_ddp =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, ddp, "ddp");
+static cmdline_parse_token_string_t cmd_ddp_del_del =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, del, "del");
+static cmdline_parse_token_num_t cmd_ddp_del_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ddp_del_result, port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_ddp_del_filepath =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, filepath, NULL);
+
+static void
+cmd_ddp_del_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ddp_del_result *res = parsed_result;
+	uint8_t *buff;
+	uint32_t size;
+	int ret = -ENOTSUP;
+
+	if (!all_ports_stopped()) {
+		fprintf(stderr, "Please stop all ports first\n");
+		return;
+	}
+
+	buff = open_file(res->filepath, &size);
+	if (!buff)
+		return;
+
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_i40e_process_ddp_package(res->port_id, buff, size,
+			RTE_PMD_I40E_PKG_OP_WR_DEL);
+	if (ret == -EACCES)
+		fprintf(stderr, "Profile does not exist.\n");
+	else if (ret < 0)
+		fprintf(stderr, "Failed to delete profile.\n");
+
+	close_file(buff);
+}
+
+static cmdline_parse_inst_t cmd_ddp_del = {
+	.f = cmd_ddp_del_parsed,
+	.data = NULL,
+	.help_str = "ddp del <port_id> <backup_profile_path>",
+	.tokens = {
+		(void *)&cmd_ddp_del_ddp,
+		(void *)&cmd_ddp_del_del,
+		(void *)&cmd_ddp_del_port_id,
+		(void *)&cmd_ddp_del_filepath,
+		NULL,
+	},
+};
+
+/* Get dynamic device personalization profile info */
+struct cmd_ddp_info_result {
+	cmdline_fixed_string_t ddp;
+	cmdline_fixed_string_t get;
+	cmdline_fixed_string_t info;
+	char filepath[];
+};
+
+static cmdline_parse_token_string_t cmd_ddp_info_ddp =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, ddp, "ddp");
+static cmdline_parse_token_string_t cmd_ddp_info_get =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, get, "get");
+static cmdline_parse_token_string_t cmd_ddp_info_info =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, info, "info");
+static cmdline_parse_token_string_t cmd_ddp_info_filepath =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, filepath, NULL);
+
+static void
+cmd_ddp_info_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ddp_info_result *res = parsed_result;
+	uint8_t *pkg;
+	uint32_t pkg_size;
+	int ret = -ENOTSUP;
+	uint32_t i, j, n;
+	uint8_t *buff;
+	uint32_t buff_size = 0;
+	struct rte_pmd_i40e_profile_info info;
+	uint32_t dev_num = 0;
+	struct rte_pmd_i40e_ddp_device_id *devs;
+	uint32_t proto_num = 0;
+	struct rte_pmd_i40e_proto_info *proto = NULL;
+	uint32_t pctype_num = 0;
+	struct rte_pmd_i40e_ptype_info *pctype;
+	uint32_t ptype_num = 0;
+	struct rte_pmd_i40e_ptype_info *ptype;
+	uint8_t proto_id;
+
+	pkg = open_file(res->filepath, &pkg_size);
+	if (!pkg)
+		return;
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+				(uint8_t *)&info, sizeof(info),
+				RTE_PMD_I40E_PKG_INFO_GLOBAL_HEADER);
+	if (!ret) {
+		printf("Global Track id:       0x%x\n", info.track_id);
+		printf("Global Version:        %d.%d.%d.%d\n",
+			info.version.major,
+			info.version.minor,
+			info.version.update,
+			info.version.draft);
+		printf("Global Package name:   %s\n\n", info.name);
+	}
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+				(uint8_t *)&info, sizeof(info),
+				RTE_PMD_I40E_PKG_INFO_HEADER);
+	if (!ret) {
+		printf("i40e Profile Track id: 0x%x\n", info.track_id);
+		printf("i40e Profile Version:  %d.%d.%d.%d\n",
+			info.version.major,
+			info.version.minor,
+			info.version.update,
+			info.version.draft);
+		printf("i40e Profile name:     %s\n\n", info.name);
+	}
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+				(uint8_t *)&buff_size, sizeof(buff_size),
+				RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES_SIZE);
+	if (!ret && buff_size) {
+		buff = (uint8_t *)malloc(buff_size);
+		if (buff) {
+			ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+						buff, buff_size,
+						RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES);
+			if (!ret)
+				printf("Package Notes:\n%s\n\n", buff);
+			free(buff);
+		}
+	}
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+				(uint8_t *)&dev_num, sizeof(dev_num),
+				RTE_PMD_I40E_PKG_INFO_DEVID_NUM);
+	if (!ret && dev_num) {
+		buff_size = dev_num * sizeof(struct rte_pmd_i40e_ddp_device_id);
+		devs = (struct rte_pmd_i40e_ddp_device_id *)malloc(buff_size);
+		if (devs) {
+			ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+						(uint8_t *)devs, buff_size,
+						RTE_PMD_I40E_PKG_INFO_DEVID_LIST);
+			if (!ret) {
+				printf("List of supported devices:\n");
+				for (i = 0; i < dev_num; i++) {
+					printf("  %04X:%04X %04X:%04X\n",
+						devs[i].vendor_dev_id >> 16,
+						devs[i].vendor_dev_id & 0xFFFF,
+						devs[i].sub_vendor_dev_id >> 16,
+						devs[i].sub_vendor_dev_id & 0xFFFF);
+				}
+				printf("\n");
+			}
+			free(devs);
+		}
+	}
+
+	/* get information about protocols and packet types */
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+		(uint8_t *)&proto_num, sizeof(proto_num),
+		RTE_PMD_I40E_PKG_INFO_PROTOCOL_NUM);
+	if (ret || !proto_num)
+		goto no_print_return;
+
+	buff_size = proto_num * sizeof(struct rte_pmd_i40e_proto_info);
+	proto = (struct rte_pmd_i40e_proto_info *)malloc(buff_size);
+	if (!proto)
+		goto no_print_return;
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)proto,
+					buff_size,
+					RTE_PMD_I40E_PKG_INFO_PROTOCOL_LIST);
+	if (!ret) {
+		printf("List of used protocols:\n");
+		for (i = 0; i < proto_num; i++)
+			printf("  %2u: %s\n", proto[i].proto_id, proto[i].name);
+		printf("\n");
+	}
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+		(uint8_t *)&pctype_num, sizeof(pctype_num),
+		RTE_PMD_I40E_PKG_INFO_PCTYPE_NUM);
+	if (ret || !pctype_num)
+		goto no_print_pctypes;
+
+	buff_size = pctype_num * sizeof(struct rte_pmd_i40e_ptype_info);
+	pctype = (struct rte_pmd_i40e_ptype_info *)malloc(buff_size);
+	if (!pctype)
+		goto no_print_pctypes;
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)pctype,
+					buff_size,
+					RTE_PMD_I40E_PKG_INFO_PCTYPE_LIST);
+	if (ret) {
+		free(pctype);
+		goto no_print_pctypes;
+	}
+
+	printf("List of defined packet classification types:\n");
+	for (i = 0; i < pctype_num; i++) {
+		printf("  %2u:", pctype[i].ptype_id);
+		for (j = 0; j < RTE_PMD_I40E_PROTO_NUM; j++) {
+			proto_id = pctype[i].protocols[j];
+			if (proto_id != RTE_PMD_I40E_PROTO_UNUSED) {
+				for (n = 0; n < proto_num; n++) {
+					if (proto[n].proto_id == proto_id) {
+						printf(" %s", proto[n].name);
+						break;
+					}
+				}
+			}
+		}
+		printf("\n");
+	}
+	printf("\n");
+	free(pctype);
+
+no_print_pctypes:
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)&ptype_num,
+					sizeof(ptype_num),
+					RTE_PMD_I40E_PKG_INFO_PTYPE_NUM);
+	if (ret || !ptype_num)
+		goto no_print_return;
+
+	buff_size = ptype_num * sizeof(struct rte_pmd_i40e_ptype_info);
+	ptype = (struct rte_pmd_i40e_ptype_info *)malloc(buff_size);
+	if (!ptype)
+		goto no_print_return;
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)ptype,
+					buff_size,
+					RTE_PMD_I40E_PKG_INFO_PTYPE_LIST);
+	if (ret) {
+		free(ptype);
+		goto no_print_return;
+	}
+	printf("List of defined packet types:\n");
+	for (i = 0; i < ptype_num; i++) {
+		printf("  %2u:", ptype[i].ptype_id);
+		for (j = 0; j < RTE_PMD_I40E_PROTO_NUM; j++) {
+			proto_id = ptype[i].protocols[j];
+			if (proto_id != RTE_PMD_I40E_PROTO_UNUSED) {
+				for (n = 0; n < proto_num; n++) {
+					if (proto[n].proto_id == proto_id) {
+						printf(" %s", proto[n].name);
+						break;
+					}
+				}
+			}
+		}
+		printf("\n");
+	}
+	free(ptype);
+	printf("\n");
+
+	ret = 0;
+no_print_return:
+	free(proto);
+	if (ret == -ENOTSUP)
+		fprintf(stderr, "Function not supported in PMD\n");
+	close_file(pkg);
+}
+
+static cmdline_parse_inst_t cmd_ddp_get_info = {
+	.f = cmd_ddp_info_parsed,
+	.data = NULL,
+	.help_str = "ddp get info <profile_path>",
+	.tokens = {
+		(void *)&cmd_ddp_info_ddp,
+		(void *)&cmd_ddp_info_get,
+		(void *)&cmd_ddp_info_info,
+		(void *)&cmd_ddp_info_filepath,
+		NULL,
+	},
+};
+
+/* Get dynamic device personalization profile info list*/
+#define PROFILE_INFO_SIZE 48
+#define MAX_PROFILE_NUM 16
+
+struct cmd_ddp_get_list_result {
+	cmdline_fixed_string_t ddp;
+	cmdline_fixed_string_t get;
+	cmdline_fixed_string_t list;
+	portid_t port_id;
+};
+
+static cmdline_parse_token_string_t cmd_ddp_get_list_ddp =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, ddp, "ddp");
+static cmdline_parse_token_string_t cmd_ddp_get_list_get =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, get, "get");
+static cmdline_parse_token_string_t cmd_ddp_get_list_list =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, list, "list");
+static cmdline_parse_token_num_t cmd_ddp_get_list_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ddp_get_list_result, port_id,
+		RTE_UINT16);
+
+static void
+cmd_ddp_get_list_parsed(__rte_unused void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ddp_get_list_result *res = parsed_result;
+	struct rte_pmd_i40e_profile_list *p_list;
+	struct rte_pmd_i40e_profile_info *p_info;
+	uint32_t p_num;
+	uint32_t size;
+	uint32_t i;
+	int ret = -ENOTSUP;
+
+	size = PROFILE_INFO_SIZE * MAX_PROFILE_NUM + 4;
+	p_list = (struct rte_pmd_i40e_profile_list *)malloc(size);
+	if (!p_list) {
+		fprintf(stderr, "%s: Failed to malloc buffer\n", __func__);
+		return;
+	}
+
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_i40e_get_ddp_list(res->port_id,
+						(uint8_t *)p_list, size);
+
+	if (!ret) {
+		p_num = p_list->p_count;
+		printf("Profile number is: %d\n\n", p_num);
+
+		for (i = 0; i < p_num; i++) {
+			p_info = &p_list->p_info[i];
+			printf("Profile %d:\n", i);
+			printf("Track id:     0x%x\n", p_info->track_id);
+			printf("Version:      %d.%d.%d.%d\n",
+				p_info->version.major,
+				p_info->version.minor,
+				p_info->version.update,
+				p_info->version.draft);
+			printf("Profile name: %s\n\n", p_info->name);
+		}
+	}
+
+	free(p_list);
+
+	if (ret < 0)
+		fprintf(stderr, "Failed to get ddp list\n");
+}
+
+static cmdline_parse_inst_t cmd_ddp_get_list = {
+	.f = cmd_ddp_get_list_parsed,
+	.data = NULL,
+	.help_str = "ddp get list <port_id>",
+	.tokens = {
+		(void *)&cmd_ddp_get_list_ddp,
+		(void *)&cmd_ddp_get_list_get,
+		(void *)&cmd_ddp_get_list_list,
+		(void *)&cmd_ddp_get_list_port_id,
+		NULL,
+	},
+};
+
+/* Configure input set */
+struct cmd_cfg_input_set_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t cfg;
+	portid_t port_id;
+	cmdline_fixed_string_t pctype;
+	uint8_t pctype_id;
+	cmdline_fixed_string_t inset_type;
+	cmdline_fixed_string_t opt;
+	cmdline_fixed_string_t field;
+	uint8_t field_idx;
+};
+
+static void
+cmd_cfg_input_set_parsed(__rte_unused void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_cfg_input_set_result *res = parsed_result;
+	enum rte_pmd_i40e_inset_type inset_type = INSET_NONE;
+	struct rte_pmd_i40e_inset inset;
+	int ret = -ENOTSUP;
+
+	if (!all_ports_stopped()) {
+		fprintf(stderr, "Please stop all ports first\n");
+		return;
+	}
+
+	if (!strcmp(res->inset_type, "hash_inset"))
+		inset_type = INSET_HASH;
+	else if (!strcmp(res->inset_type, "fdir_inset"))
+		inset_type = INSET_FDIR;
+	else if (!strcmp(res->inset_type, "fdir_flx_inset"))
+		inset_type = INSET_FDIR_FLX;
+	ret = rte_pmd_i40e_inset_get(res->port_id, res->pctype_id, &inset, inset_type);
+	if (ret) {
+		fprintf(stderr, "Failed to get input set.\n");
+		return;
+	}
+
+	if (!strcmp(res->opt, "get")) {
+		ret = rte_pmd_i40e_inset_field_get(inset.inset, res->field_idx);
+		if (ret)
+			printf("Field index %d is enabled.\n", res->field_idx);
+		else
+			printf("Field index %d is disabled.\n", res->field_idx);
+		return;
+	}
+
+	if (!strcmp(res->opt, "set"))
+		ret = rte_pmd_i40e_inset_field_set(&inset.inset, res->field_idx);
+	else if (!strcmp(res->opt, "clear"))
+		ret = rte_pmd_i40e_inset_field_clear(&inset.inset, res->field_idx);
+	if (ret) {
+		fprintf(stderr, "Failed to configure input set field.\n");
+		return;
+	}
+
+	ret = rte_pmd_i40e_inset_set(res->port_id, res->pctype_id, &inset, inset_type);
+	if (ret) {
+		fprintf(stderr, "Failed to set input set.\n");
+		return;
+	}
+
+	if (ret == -ENOTSUP)
+		fprintf(stderr, "Function not supported\n");
+}
+
+static cmdline_parse_token_string_t cmd_cfg_input_set_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+		port, "port");
+static cmdline_parse_token_string_t cmd_cfg_input_set_cfg =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+		cfg, "config");
+static cmdline_parse_token_num_t cmd_cfg_input_set_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_cfg_input_set_pctype =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+		pctype, "pctype");
+static cmdline_parse_token_num_t cmd_cfg_input_set_pctype_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
+		pctype_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_cfg_input_set_inset_type =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+		inset_type, "hash_inset#fdir_inset#fdir_flx_inset");
+static cmdline_parse_token_string_t cmd_cfg_input_set_opt =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+		opt, "get#set#clear");
+static cmdline_parse_token_string_t cmd_cfg_input_set_field =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+		field, "field");
+static cmdline_parse_token_num_t cmd_cfg_input_set_field_idx =
+	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
+		field_idx, RTE_UINT8);
+
+static cmdline_parse_inst_t cmd_cfg_input_set = {
+	.f = cmd_cfg_input_set_parsed,
+	.data = NULL,
+	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
+		"fdir_inset|fdir_flx_inset get|set|clear field <field_idx>",
+	.tokens = {
+		(void *)&cmd_cfg_input_set_port,
+		(void *)&cmd_cfg_input_set_cfg,
+		(void *)&cmd_cfg_input_set_port_id,
+		(void *)&cmd_cfg_input_set_pctype,
+		(void *)&cmd_cfg_input_set_pctype_id,
+		(void *)&cmd_cfg_input_set_inset_type,
+		(void *)&cmd_cfg_input_set_opt,
+		(void *)&cmd_cfg_input_set_field,
+		(void *)&cmd_cfg_input_set_field_idx,
+		NULL,
+	},
+};
+
+/* Clear input set */
+struct cmd_clear_input_set_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t cfg;
+	portid_t port_id;
+	cmdline_fixed_string_t pctype;
+	uint8_t pctype_id;
+	cmdline_fixed_string_t inset_type;
+	cmdline_fixed_string_t clear;
+	cmdline_fixed_string_t all;
+};
+
+static void
+cmd_clear_input_set_parsed(__rte_unused void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_clear_input_set_result *res = parsed_result;
+	enum rte_pmd_i40e_inset_type inset_type = INSET_NONE;
+	struct rte_pmd_i40e_inset inset;
+	int ret = -ENOTSUP;
+
+	if (!all_ports_stopped()) {
+		fprintf(stderr, "Please stop all ports first\n");
+		return;
+	}
+
+	if (!strcmp(res->inset_type, "hash_inset"))
+		inset_type = INSET_HASH;
+	else if (!strcmp(res->inset_type, "fdir_inset"))
+		inset_type = INSET_FDIR;
+	else if (!strcmp(res->inset_type, "fdir_flx_inset"))
+		inset_type = INSET_FDIR_FLX;
+
+	memset(&inset, 0, sizeof(inset));
+
+	ret = rte_pmd_i40e_inset_set(res->port_id, res->pctype_id, &inset, inset_type);
+	if (ret) {
+		fprintf(stderr, "Failed to clear input set.\n");
+		return;
+	}
+
+	if (ret == -ENOTSUP)
+		fprintf(stderr, "Function not supported\n");
+}
+
+static cmdline_parse_token_string_t cmd_clear_input_set_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+		port, "port");
+static cmdline_parse_token_string_t cmd_clear_input_set_cfg =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+		cfg, "config");
+static cmdline_parse_token_num_t cmd_clear_input_set_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_clear_input_set_pctype =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+		pctype, "pctype");
+static cmdline_parse_token_num_t cmd_clear_input_set_pctype_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
+		pctype_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_clear_input_set_inset_type =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+		inset_type, "hash_inset#fdir_inset#fdir_flx_inset");
+static cmdline_parse_token_string_t cmd_clear_input_set_clear =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+		clear, "clear");
+static cmdline_parse_token_string_t cmd_clear_input_set_all =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+		all, "all");
+
+static cmdline_parse_inst_t cmd_clear_input_set = {
+	.f = cmd_clear_input_set_parsed,
+	.data = NULL,
+	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
+		"fdir_inset|fdir_flx_inset clear all",
+	.tokens = {
+		(void *)&cmd_clear_input_set_port,
+		(void *)&cmd_clear_input_set_cfg,
+		(void *)&cmd_clear_input_set_port_id,
+		(void *)&cmd_clear_input_set_pctype,
+		(void *)&cmd_clear_input_set_pctype_id,
+		(void *)&cmd_clear_input_set_inset_type,
+		(void *)&cmd_clear_input_set_clear,
+		(void *)&cmd_clear_input_set_all,
+		NULL,
+	},
+};
+
+/* port config pctype mapping reset */
+
+/* Common result structure for port config pctype mapping reset */
+struct cmd_pctype_mapping_reset_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t config;
+	portid_t port_id;
+	cmdline_fixed_string_t pctype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t reset;
+};
+
+/* Common CLI fields for port config pctype mapping reset*/
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_reset_result,
+		port, "port");
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_config =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_reset_result,
+		config, "config");
+static cmdline_parse_token_num_t cmd_pctype_mapping_reset_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_pctype_mapping_reset_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_pctype =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_reset_result,
+		pctype, "pctype");
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_mapping =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_reset_result,
+		mapping, "mapping");
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_reset =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_reset_result,
+		reset, "reset");
+
+static void
+cmd_pctype_mapping_reset_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_pctype_mapping_reset_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_flow_type_mapping_reset(res->port_id);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_pctype_mapping_reset = {
+	.f = cmd_pctype_mapping_reset_parsed,
+	.data = NULL,
+	.help_str = "port config <port_id> pctype mapping reset",
+	.tokens = {
+		(void *)&cmd_pctype_mapping_reset_port,
+		(void *)&cmd_pctype_mapping_reset_config,
+		(void *)&cmd_pctype_mapping_reset_port_id,
+		(void *)&cmd_pctype_mapping_reset_pctype,
+		(void *)&cmd_pctype_mapping_reset_mapping,
+		(void *)&cmd_pctype_mapping_reset_reset,
+		NULL,
+	},
+};
+
+/* show port pctype mapping */
+
+/* Common result structure for show port pctype mapping */
+struct cmd_pctype_mapping_get_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t pctype;
+	cmdline_fixed_string_t mapping;
+};
+
+/* Common CLI fields for pctype mapping get */
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_show =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_get_result,
+		show, "show");
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_get_result,
+		port, "port");
+static cmdline_parse_token_num_t cmd_pctype_mapping_get_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_pctype_mapping_get_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_pctype =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_get_result,
+		pctype, "pctype");
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_mapping =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_get_result,
+		mapping, "mapping");
+
+static void
+cmd_pctype_mapping_get_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_pctype_mapping_get_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_flow_type_mapping
+				mapping[RTE_PMD_I40E_FLOW_TYPE_MAX];
+	int i, j, first_pctype;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_flow_type_mapping_get(res->port_id, mapping);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		return;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		return;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+		return;
+	}
+
+	for (i = 0; i < RTE_PMD_I40E_FLOW_TYPE_MAX; i++) {
+		if (mapping[i].pctype != 0ULL) {
+			first_pctype = 1;
+
+			printf("pctype: ");
+			for (j = 0; j < RTE_PMD_I40E_PCTYPE_MAX; j++) {
+				if (mapping[i].pctype & (1ULL << j)) {
+					printf(first_pctype ?  "%02d" : ",%02d", j);
+					first_pctype = 0;
+				}
+			}
+			printf("  ->  flowtype: %02d\n", mapping[i].flow_type);
+		}
+	}
+}
+
+static cmdline_parse_inst_t cmd_pctype_mapping_get = {
+	.f = cmd_pctype_mapping_get_parsed,
+	.data = NULL,
+	.help_str = "show port <port_id> pctype mapping",
+	.tokens = {
+		(void *)&cmd_pctype_mapping_get_show,
+		(void *)&cmd_pctype_mapping_get_port,
+		(void *)&cmd_pctype_mapping_get_port_id,
+		(void *)&cmd_pctype_mapping_get_pctype,
+		(void *)&cmd_pctype_mapping_get_mapping,
+		NULL,
+	},
+};
+
+/* port config pctype mapping update */
+
+/* Common result structure for port config pctype mapping update */
+struct cmd_pctype_mapping_update_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t config;
+	portid_t port_id;
+	cmdline_fixed_string_t pctype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t update;
+	cmdline_fixed_string_t pctype_list;
+	uint16_t flow_type;
+};
+
+/* Common CLI fields for pctype mapping update*/
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		port, "port");
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_config =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		config, "config");
+static cmdline_parse_token_num_t cmd_pctype_mapping_update_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_pctype =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		pctype, "pctype");
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_mapping =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		mapping, "mapping");
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_update =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		update, "update");
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_pc_type =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		pctype_list, NULL);
+static cmdline_parse_token_num_t cmd_pctype_mapping_update_flow_type =
+	TOKEN_NUM_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		flow_type, RTE_UINT16);
+
+static void
+cmd_pctype_mapping_update_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_pctype_mapping_update_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_flow_type_mapping mapping;
+	unsigned int i;
+	unsigned int nb_item;
+	unsigned int pctype_list[RTE_PMD_I40E_PCTYPE_MAX];
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	nb_item = parse_item_list(res->pctype_list, "pctypes", RTE_PMD_I40E_PCTYPE_MAX,
+		pctype_list, 1);
+	mapping.flow_type = res->flow_type;
+	for (i = 0, mapping.pctype = 0ULL; i < nb_item; i++)
+		mapping.pctype |= (1ULL << pctype_list[i]);
+	ret = rte_pmd_i40e_flow_type_mapping_update(res->port_id,
+						&mapping,
+						1,
+						0);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid pctype or flow type\n");
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_pctype_mapping_update = {
+	.f = cmd_pctype_mapping_update_parsed,
+	.data = NULL,
+	.help_str = "port config <port_id> pctype mapping update"
+	" <pctype_id_0,[pctype_id_1]*> <flowtype_id>",
+	.tokens = {
+		(void *)&cmd_pctype_mapping_update_port,
+		(void *)&cmd_pctype_mapping_update_config,
+		(void *)&cmd_pctype_mapping_update_port_id,
+		(void *)&cmd_pctype_mapping_update_pctype,
+		(void *)&cmd_pctype_mapping_update_mapping,
+		(void *)&cmd_pctype_mapping_update_update,
+		(void *)&cmd_pctype_mapping_update_pc_type,
+		(void *)&cmd_pctype_mapping_update_flow_type,
+		NULL,
+	},
+};
+
+/* ptype mapping get */
+
+/* Common result structure for ptype mapping get */
+struct cmd_ptype_mapping_get_result {
+	cmdline_fixed_string_t ptype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t get;
+	portid_t port_id;
+	uint8_t valid_only;
+};
+
+/* Common CLI fields for ptype mapping get */
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_ptype =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_get_result,
+		ptype, "ptype");
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_mapping =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_get_result,
+		mapping, "mapping");
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_get =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_get_result,
+		get, "get");
+static cmdline_parse_token_num_t cmd_ptype_mapping_get_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_get_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_ptype_mapping_get_valid_only =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_get_result,
+		valid_only, RTE_UINT8);
+
+static void
+cmd_ptype_mapping_get_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ptype_mapping_get_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int max_ptype_num = 256;
+	struct rte_pmd_i40e_ptype_mapping mapping[max_ptype_num];
+	uint16_t count;
+	int i;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_ptype_mapping_get(res->port_id,
+					mapping,
+					max_ptype_num,
+					&count,
+					res->valid_only);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+
+	if (!ret) {
+		for (i = 0; i < count; i++)
+			printf("%3d\t0x%08x\n",
+				mapping[i].hw_ptype, mapping[i].sw_ptype);
+	}
+}
+
+static cmdline_parse_inst_t cmd_ptype_mapping_get = {
+	.f = cmd_ptype_mapping_get_parsed,
+	.data = NULL,
+	.help_str = "ptype mapping get <port_id> <valid_only>",
+	.tokens = {
+		(void *)&cmd_ptype_mapping_get_ptype,
+		(void *)&cmd_ptype_mapping_get_mapping,
+		(void *)&cmd_ptype_mapping_get_get,
+		(void *)&cmd_ptype_mapping_get_port_id,
+		(void *)&cmd_ptype_mapping_get_valid_only,
+		NULL,
+	},
+};
+
+/* ptype mapping replace */
+
+/* Common result structure for ptype mapping replace */
+struct cmd_ptype_mapping_replace_result {
+	cmdline_fixed_string_t ptype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t replace;
+	portid_t port_id;
+	uint32_t target;
+	uint8_t mask;
+	uint32_t pkt_type;
+};
+
+/* Common CLI fields for ptype mapping replace */
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_ptype =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_replace_result,
+		ptype, "ptype");
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_mapping =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_replace_result,
+		mapping, "mapping");
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_replace =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_replace_result,
+		replace, "replace");
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_replace_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_target =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_replace_result,
+		target, RTE_UINT32);
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_mask =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_replace_result,
+		mask, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_pkt_type =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_replace_result,
+		pkt_type, RTE_UINT32);
+
+static void
+cmd_ptype_mapping_replace_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ptype_mapping_replace_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_ptype_mapping_replace(res->port_id,
+					res->target,
+					res->mask,
+					res->pkt_type);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid ptype 0x%8x or 0x%8x\n",
+			res->target, res->pkt_type);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_ptype_mapping_replace = {
+	.f = cmd_ptype_mapping_replace_parsed,
+	.data = NULL,
+	.help_str =
+		"ptype mapping replace <port_id> <target> <mask> <pkt_type>",
+	.tokens = {
+		(void *)&cmd_ptype_mapping_replace_ptype,
+		(void *)&cmd_ptype_mapping_replace_mapping,
+		(void *)&cmd_ptype_mapping_replace_replace,
+		(void *)&cmd_ptype_mapping_replace_port_id,
+		(void *)&cmd_ptype_mapping_replace_target,
+		(void *)&cmd_ptype_mapping_replace_mask,
+		(void *)&cmd_ptype_mapping_replace_pkt_type,
+		NULL,
+	},
+};
+
+/* ptype mapping reset */
+
+/* Common result structure for ptype mapping reset */
+struct cmd_ptype_mapping_reset_result {
+	cmdline_fixed_string_t ptype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t reset;
+	portid_t port_id;
+};
+
+/* Common CLI fields for ptype mapping reset*/
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_ptype =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_reset_result,
+		ptype, "ptype");
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_mapping =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_reset_result,
+		mapping, "mapping");
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_reset =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_reset_result,
+		reset, "reset");
+static cmdline_parse_token_num_t cmd_ptype_mapping_reset_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_reset_result,
+		port_id, RTE_UINT16);
+
+static void
+cmd_ptype_mapping_reset_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ptype_mapping_reset_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_ptype_mapping_reset(res->port_id);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_ptype_mapping_reset = {
+	.f = cmd_ptype_mapping_reset_parsed,
+	.data = NULL,
+	.help_str = "ptype mapping reset <port_id>",
+	.tokens = {
+		(void *)&cmd_ptype_mapping_reset_ptype,
+		(void *)&cmd_ptype_mapping_reset_mapping,
+		(void *)&cmd_ptype_mapping_reset_reset,
+		(void *)&cmd_ptype_mapping_reset_port_id,
+		NULL,
+	},
+};
+
+/* ptype mapping update */
+
+/* Common result structure for ptype mapping update */
+struct cmd_ptype_mapping_update_result {
+	cmdline_fixed_string_t ptype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t reset;
+	portid_t port_id;
+	uint8_t hw_ptype;
+	uint32_t sw_ptype;
+};
+
+/* Common CLI fields for ptype mapping update*/
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_ptype =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_update_result,
+		ptype, "ptype");
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_mapping =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_update_result,
+		mapping, "mapping");
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_update =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_update_result,
+		reset, "update");
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_update_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_hw_ptype =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_update_result,
+		hw_ptype, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_sw_ptype =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_update_result,
+		sw_ptype, RTE_UINT32);
+
+static void
+cmd_ptype_mapping_update_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ptype_mapping_update_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_ptype_mapping mapping;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	mapping.hw_ptype = res->hw_ptype;
+	mapping.sw_ptype = res->sw_ptype;
+	ret = rte_pmd_i40e_ptype_mapping_update(res->port_id,
+						&mapping,
+						1,
+						0);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid ptype 0x%8x\n", res->sw_ptype);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_ptype_mapping_update = {
+	.f = cmd_ptype_mapping_update_parsed,
+	.data = NULL,
+	.help_str = "ptype mapping update <port_id> <hw_ptype> <sw_ptype>",
+	.tokens = {
+		(void *)&cmd_ptype_mapping_update_ptype,
+		(void *)&cmd_ptype_mapping_update_mapping,
+		(void *)&cmd_ptype_mapping_update_update,
+		(void *)&cmd_ptype_mapping_update_port_id,
+		(void *)&cmd_ptype_mapping_update_hw_ptype,
+		(void *)&cmd_ptype_mapping_update_sw_ptype,
+		NULL,
+	},
+};
+
+static struct testpmd_commands i40e_cmds = {
+	.commands = {
+	{
+		&cmd_queue_region,
+		"set port (port_id) queue-region region_id (value) "
+		"queue_start_index (value) queue_num (value)\n"
+		"    Set a queue region on a port\n",
+	},
+	{
+		&cmd_region_flowtype,
+		"set port (port_id) queue-region region_id (value) "
+		"flowtype (value)\n"
+		"    Set a flowtype region index on a port\n",
+	},
+	{
+		&cmd_user_priority_region,
+		"set port (port_id) queue-region UP (value) region_id (value)\n"
+		"    Set the mapping of User Priority to "
+		"queue region on a port\n",
+	},
+	{
+		&cmd_flush_queue_region,
+		"set port (port_id) queue-region flush (on|off)\n"
+		"    flush all queue region related configuration\n",
+	},
+	{
+		&cmd_show_queue_region_info_all,
+		"show port (port_id) queue-region\n"
+		"    show all queue region related configuration info\n",
+	},
+	{
+		&cmd_add_del_raw_flow_director,
+		"flow_director_filter (port_id) mode raw (add|del|update)"
+		" flow (flow_id) (drop|fwd) queue (queue_id)"
+		" fd_id (fd_id_value) packet (packet file name)\n"
+		"    Add/Del a raw type flow director filter.\n",
+	},
+	{
+		&cmd_set_vf_promisc,
+		"set vf promisc (port_id) (vf_id) (on|off)\n"
+		"    Set unicast promiscuous mode for a VF from the PF.\n",
+	},
+	{
+		&cmd_set_vf_allmulti,
+		"set vf allmulti (port_id) (vf_id) (on|off)\n"
+		"    Set multicast promiscuous mode for a VF from the PF.\n",
+	},
+	{
+		&cmd_set_vf_broadcast,
+		"set vf broadcast (port_id) (vf_id) (on|off)\n"
+		"    Set VF broadcast for a VF from the PF.\n",
+	},
+	{
+		&cmd_set_vf_vlan_tag,
+		"set vf vlan tag (port_id) (vf_id) (on|off)\n"
+		"    Set VLAN tag for a VF from the PF.\n",
+	},
+	{
+		&cmd_vf_max_bw,
+		"set vf tx max-bandwidth (port_id) (vf_id) (bandwidth)\n"
+		"    Set a VF's max bandwidth(Mbps).\n",
+	},
+	{
+		&cmd_vf_tc_min_bw,
+		"set vf tc tx min-bandwidth (port_id) (vf_id) (bw1, bw2, ...)\n"
+		"    Set all TCs' min bandwidth(%%) on a VF.\n",
+	},
+	{
+		&cmd_vf_tc_max_bw,
+		"set vf tc tx max-bandwidth (port_id) (vf_id) (tc_no) (bandwidth)\n"
+		"    Set a TC's max bandwidth(Mbps) on a VF.\n",
+	},
+	{
+		&cmd_strict_link_prio,
+		"set tx strict-link-priority (port_id) (tc_bitmap)\n"
+		"    Set some TCs' strict link priority mode on a physical port.\n",
+	},
+	{
+		&cmd_ddp_add,
+		"ddp add (port_id) (profile_path[,backup_profile_path])\n"
+		"    Load a profile package on a port\n",
+	},
+	{
+		&cmd_ddp_del,
+		"ddp del (port_id) (backup_profile_path)\n"
+		"    Delete a profile package from a port\n",
+	},
+	{
+		&cmd_ddp_get_list,
+		"ddp get list (port_id)\n"
+		"    Get ddp profile info list\n",
+	},
+	{
+		&cmd_ddp_get_info,
+		"ddp get info (profile_path)\n"
+		"    Get ddp profile information.\n",
+	},
+	{
+		&cmd_cfg_input_set,
+		"port config (port_id) pctype (pctype_id) hash_inset|"
+		"fdir_inset|fdir_flx_inset get|set|clear field\n"
+		" (field_idx)\n"
+		"    Configure RSS|FDIR|FDIR_FLX input set for some pctype\n",
+	},
+	{
+		&cmd_clear_input_set,
+		"port config (port_id) pctype (pctype_id) hash_inset|"
+		"fdir_inset|fdir_flx_inset clear all\n"
+		"    Clear RSS|FDIR|FDIR_FLX input set completely for some pctype\n",
+	},
+	{
+		&cmd_ptype_mapping_get,
+		"ptype mapping get (port_id) (valid_only)\n"
+		"    Get ptype mapping on a port\n",
+	},
+	{
+		&cmd_ptype_mapping_replace,
+		"ptype mapping replace (port_id) (target) (mask) (pky_type)\n"
+		"    Replace target with the pkt_type in ptype mapping\n",
+	},
+	{
+		&cmd_ptype_mapping_reset,
+		"ptype mapping reset (port_id)\n"
+		"    Reset ptype mapping on a port\n",
+	},
+	{
+		&cmd_ptype_mapping_update,
+		"ptype mapping update (port_id) (hw_ptype) (sw_ptype)\n"
+		"    Update a ptype mapping item on a port\n",
+	},
+	{
+		&cmd_pctype_mapping_get,
+		"show port (port_id) pctype mapping\n"
+		"    Get flow ptype to pctype mapping on a port\n",
+	},
+	{
+		&cmd_pctype_mapping_reset,
+		"port config (port_id) pctype mapping reset\n"
+		"    Reset flow type to pctype mapping on a port\n",
+	},
+	{
+		&cmd_pctype_mapping_update,
+		"port config (port_id) pctype mapping update"
+		" (pctype_id_0[,pctype_id_1]*) (flow_type_id)\n"
+		"    Update a flow type to pctype mapping item on a port\n",
+	},
+	{ NULL, NULL },
+	},
+};
+TESTPMD_ADD_DRIVER_COMMANDS(i40e_cmds)
diff --git a/drivers/net/i40e/meson.build b/drivers/net/i40e/meson.build
index efc5f93e35..b282ec7213 100644
--- a/drivers/net/i40e/meson.build
+++ b/drivers/net/i40e/meson.build
@@ -21,6 +21,8 @@ sources = files(
         'rte_pmd_i40e.c',
 )
 
+testpmd_sources = files('i40e_testpmd.c')
+
 deps += ['hash']
 includes += include_directories('base')
 
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [PATCH 5/6] app/testpmd: drop ixgbe bypass commands
  2022-05-23  7:10 ` [PATCH 0/6] " David Marchand
                     ` (3 preceding siblings ...)
  2022-05-23  7:10   ` [PATCH 4/6] net/i40e: " David Marchand
@ 2022-05-23  7:10   ` David Marchand
  2022-05-23 18:10     ` Ferruh Yigit
                       ` (2 more replies)
  2022-05-23  7:10   ` [PATCH 6/6] net/ixgbe: move testpmd commands David Marchand
  2022-05-23 18:09   ` [PATCH 0/6] Split driver specific commands out of testpmd Ferruh Yigit
  6 siblings, 3 replies; 65+ messages in thread
From: David Marchand @ 2022-05-23  7:10 UTC (permalink / raw)
  To: dev
  Cc: thomas, andrew.rybchenko, ferruh.yigit, Xiaoyun Li, Aman Singh,
	Yuying Zhang

This code is dead from the moment we switched to meson, because
RTE_LIBRTE_IXGBE_BYPASS is never defined at build time.
There was no complaint about the loss of those commands, drop all
associated code and documentation.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/cmdline.c                      | 368 --------------------
 app/test-pmd/testpmd.c                      |  14 -
 app/test-pmd/testpmd.h                      |   4 -
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  42 ---
 4 files changed, 428 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 17778c2275..e496fa1d14 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -554,29 +554,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"   Flush (default) or don't flush RX streams before"
 			" forwarding. Mainly used with PCAP drivers.\n\n"
 
-			"set bypass mode (normal|bypass|isolate) (port_id)\n"
-			"   Set the bypass mode for the lowest port on bypass enabled"
-			" NIC.\n\n"
-
-			"set bypass event (timeout|os_on|os_off|power_on|power_off) "
-			"mode (normal|bypass|isolate) (port_id)\n"
-			"   Set the event required to initiate specified bypass mode for"
-			" the lowest port on a bypass enabled NIC where:\n"
-			"       timeout   = enable bypass after watchdog timeout.\n"
-			"       os_on     = enable bypass when OS/board is powered on.\n"
-			"       os_off    = enable bypass when OS/board is powered off.\n"
-			"       power_on  = enable bypass when power supply is turned on.\n"
-			"       power_off = enable bypass when power supply is turned off."
-			"\n\n"
-
-			"set bypass timeout (0|1.5|2|3|4|8|16|32)\n"
-			"   Set the bypass watchdog timeout to 'n' seconds"
-			" where 0 = instant.\n\n"
-
-			"show bypass config (port_id)\n"
-			"   Show the bypass configuration for a bypass enabled NIC"
-			" using the lowest port on the NIC.\n\n"
-
 			"set link-up port (port_id)\n"
 			"	Set link up for a port.\n\n"
 
@@ -5446,347 +5423,6 @@ static cmdline_parse_inst_t cmd_set_link_check = {
 	},
 };
 
-/* *** SET NIC BYPASS MODE *** */
-struct cmd_set_bypass_mode_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t mode;
-	cmdline_fixed_string_t value;
-	portid_t port_id;
-};
-
-static void
-cmd_set_bypass_mode_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bypass_mode_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	int32_t rc = -EINVAL;
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	if (!strcmp(res->value, "bypass"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
-	else if (!strcmp(res->value, "isolate"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
-	else
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	/* Set the bypass mode for the relevant port. */
-	rc = rte_pmd_ixgbe_bypass_state_set(port_id, &bypass_mode);
-#endif
-	if (rc != 0)
-		fprintf(stderr, "\t Failed to set bypass mode for port = %d.\n",
-			port_id);
-}
-
-static cmdline_parse_token_string_t cmd_setbypass_mode_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			set, "set");
-static cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_setbypass_mode_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			mode, "mode");
-static cmdline_parse_token_string_t cmd_setbypass_mode_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			value, "normal#bypass#isolate");
-static cmdline_parse_token_num_t cmd_setbypass_mode_port =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_mode_result,
-				port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_set_bypass_mode = {
-	.f = cmd_set_bypass_mode_parsed,
-	.help_str = "set bypass mode normal|bypass|isolate <port_id>: "
-	            "Set the NIC bypass mode for port_id",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_setbypass_mode_set,
-		(void *)&cmd_setbypass_mode_bypass,
-		(void *)&cmd_setbypass_mode_mode,
-		(void *)&cmd_setbypass_mode_value,
-		(void *)&cmd_setbypass_mode_port,
-		NULL,
-	},
-};
-
-/* *** SET NIC BYPASS EVENT *** */
-struct cmd_set_bypass_event_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t event;
-	cmdline_fixed_string_t event_value;
-	cmdline_fixed_string_t mode;
-	cmdline_fixed_string_t mode_value;
-	portid_t port_id;
-};
-
-static void
-cmd_set_bypass_event_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	int32_t rc = -EINVAL;
-	struct cmd_set_bypass_event_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	uint32_t bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
-	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	if (!strcmp(res->event_value, "timeout"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT;
-	else if (!strcmp(res->event_value, "os_on"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_ON;
-	else if (!strcmp(res->event_value, "os_off"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_OFF;
-	else if (!strcmp(res->event_value, "power_on"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_ON;
-	else if (!strcmp(res->event_value, "power_off"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_OFF;
-	else
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
-
-	if (!strcmp(res->mode_value, "bypass"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
-	else if (!strcmp(res->mode_value, "isolate"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
-	else
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	/* Set the watchdog timeout. */
-	if (bypass_event == RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT) {
-
-		rc = -EINVAL;
-		if (RTE_PMD_IXGBE_BYPASS_TMT_VALID(bypass_timeout)) {
-			rc = rte_pmd_ixgbe_bypass_wd_timeout_store(port_id,
-							   bypass_timeout);
-		}
-		if (rc != 0) {
-			fprintf(stderr,
-				"Failed to set timeout value %u for port %d, errto code: %d.\n",
-				bypass_timeout, port_id, rc);
-		}
-	}
-
-	/* Set the bypass event to transition to bypass mode. */
-	rc = rte_pmd_ixgbe_bypass_event_store(port_id, bypass_event,
-					      bypass_mode);
-#endif
-
-	if (rc != 0)
-		fprintf(stderr, "\t Failed to set bypass event for port = %d.\n",
-			port_id);
-}
-
-static cmdline_parse_token_string_t cmd_setbypass_event_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			set, "set");
-static cmdline_parse_token_string_t cmd_setbypass_event_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_setbypass_event_event =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			event, "event");
-static cmdline_parse_token_string_t cmd_setbypass_event_event_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			event_value, "none#timeout#os_off#os_on#power_on#power_off");
-static cmdline_parse_token_string_t cmd_setbypass_event_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			mode, "mode");
-static cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			mode_value, "normal#bypass#isolate");
-static cmdline_parse_token_num_t cmd_setbypass_event_port =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_event_result,
-				port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_set_bypass_event = {
-	.f = cmd_set_bypass_event_parsed,
-	.help_str = "set bypass event none|timeout|os_on|os_off|power_on|"
-		"power_off mode normal|bypass|isolate <port_id>: "
-		"Set the NIC bypass event mode for port_id",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_setbypass_event_set,
-		(void *)&cmd_setbypass_event_bypass,
-		(void *)&cmd_setbypass_event_event,
-		(void *)&cmd_setbypass_event_event_value,
-		(void *)&cmd_setbypass_event_mode,
-		(void *)&cmd_setbypass_event_mode_value,
-		(void *)&cmd_setbypass_event_port,
-		NULL,
-	},
-};
-
-
-/* *** SET NIC BYPASS TIMEOUT *** */
-struct cmd_set_bypass_timeout_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t timeout;
-	cmdline_fixed_string_t value;
-};
-
-static void
-cmd_set_bypass_timeout_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	__rte_unused struct cmd_set_bypass_timeout_result *res = parsed_result;
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	if (!strcmp(res->value, "1.5"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_1_5_SEC;
-	else if (!strcmp(res->value, "2"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_2_SEC;
-	else if (!strcmp(res->value, "3"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_3_SEC;
-	else if (!strcmp(res->value, "4"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_4_SEC;
-	else if (!strcmp(res->value, "8"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_8_SEC;
-	else if (!strcmp(res->value, "16"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_16_SEC;
-	else if (!strcmp(res->value, "32"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_32_SEC;
-	else
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
-#endif
-}
-
-static cmdline_parse_token_string_t cmd_setbypass_timeout_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			set, "set");
-static cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			timeout, "timeout");
-static cmdline_parse_token_string_t cmd_setbypass_timeout_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			value, "0#1.5#2#3#4#8#16#32");
-
-static cmdline_parse_inst_t cmd_set_bypass_timeout = {
-	.f = cmd_set_bypass_timeout_parsed,
-	.help_str = "set bypass timeout 0|1.5|2|3|4|8|16|32: "
-		"Set the NIC bypass watchdog timeout in seconds",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_setbypass_timeout_set,
-		(void *)&cmd_setbypass_timeout_bypass,
-		(void *)&cmd_setbypass_timeout_timeout,
-		(void *)&cmd_setbypass_timeout_value,
-		NULL,
-	},
-};
-
-/* *** SHOW NIC BYPASS MODE *** */
-struct cmd_show_bypass_config_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t config;
-	portid_t port_id;
-};
-
-static void
-cmd_show_bypass_config_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_show_bypass_config_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	int rc = -EINVAL;
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	uint32_t event_mode;
-	uint32_t bypass_mode;
-	uint32_t timeout = bypass_timeout;
-	unsigned int i;
-
-	static const char * const timeouts[RTE_PMD_IXGBE_BYPASS_TMT_NUM] =
-		{"off", "1.5", "2", "3", "4", "8", "16", "32"};
-	static const char * const modes[RTE_PMD_IXGBE_BYPASS_MODE_NUM] =
-		{"UNKNOWN", "normal", "bypass", "isolate"};
-	static const char * const events[RTE_PMD_IXGBE_BYPASS_EVENT_NUM] = {
-		"NONE",
-		"OS/board on",
-		"power supply on",
-		"OS/board off",
-		"power supply off",
-		"timeout"};
-
-	/* Display the bypass mode.*/
-	if (rte_pmd_ixgbe_bypass_state_show(port_id, &bypass_mode) != 0) {
-		fprintf(stderr, "\tFailed to get bypass mode for port = %d\n",
-			port_id);
-		return;
-	}
-	else {
-		if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(bypass_mode))
-			bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
-
-		printf("\tbypass mode    = %s\n",  modes[bypass_mode]);
-	}
-
-	/* Display the bypass timeout.*/
-	if (!RTE_PMD_IXGBE_BYPASS_TMT_VALID(timeout))
-		timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
-
-	printf("\tbypass timeout = %s\n", timeouts[timeout]);
-
-	/* Display the bypass events and associated modes. */
-	for (i = RTE_PMD_IXGBE_BYPASS_EVENT_START; i < RTE_DIM(events); i++) {
-
-		if (rte_pmd_ixgbe_bypass_event_show(port_id, i, &event_mode)) {
-			fprintf(stderr,
-				"\tFailed to get bypass mode for event = %s\n",
-				events[i]);
-		} else {
-			if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(event_mode))
-				event_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
-
-			printf("\tbypass event: %-16s = %s\n", events[i],
-				modes[event_mode]);
-		}
-	}
-#endif
-	if (rc != 0)
-		fprintf(stderr,
-			"\tFailed to get bypass configuration for port = %d\n",
-		       port_id);
-}
-
-static cmdline_parse_token_string_t cmd_showbypass_config_show =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
-			show, "show");
-static cmdline_parse_token_string_t cmd_showbypass_config_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_showbypass_config_config =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
-			config, "config");
-static cmdline_parse_token_num_t cmd_showbypass_config_port =
-	TOKEN_NUM_INITIALIZER(struct cmd_show_bypass_config_result,
-				port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_show_bypass_config = {
-	.f = cmd_show_bypass_config_parsed,
-	.help_str = "show bypass config <port_id>: "
-	            "Show the NIC bypass config for port_id",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_showbypass_config_show,
-		(void *)&cmd_showbypass_config_bypass,
-		(void *)&cmd_showbypass_config_config,
-		(void *)&cmd_showbypass_config_port,
-		NULL,
-	},
-};
-
 /* *** SET FORWARDING MODE *** */
 struct cmd_set_fwd_mode_result {
 	cmdline_fixed_string_t set;
@@ -14153,10 +13789,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_allmulti_mode_all,
 	(cmdline_parse_inst_t *)&cmd_set_flush_rx,
 	(cmdline_parse_inst_t *)&cmd_set_link_check,
-	(cmdline_parse_inst_t *)&cmd_set_bypass_mode,
-	(cmdline_parse_inst_t *)&cmd_set_bypass_event,
-	(cmdline_parse_inst_t *)&cmd_set_bypass_timeout,
-	(cmdline_parse_inst_t *)&cmd_show_bypass_config,
 	(cmdline_parse_inst_t *)&cmd_vlan_offload,
 	(cmdline_parse_inst_t *)&cmd_vlan_tpid,
 	(cmdline_parse_inst_t *)&cmd_rx_vlan_filter_all,
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 93ec930b15..caf691a09a 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -437,16 +437,6 @@ uint32_t event_print_mask = (UINT32_C(1) << RTE_ETH_EVENT_UNKNOWN) |
  */
 int do_mlockall = 0;
 
-/*
- * NIC bypass mode configuration options.
- */
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-/* The NIC bypass watchdog timeout. */
-uint32_t bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
-#endif
-
-
 #ifdef RTE_LIB_LATENCYSTATS
 
 /*
@@ -3812,10 +3802,6 @@ init_port_config(void)
 		if (ret != 0)
 			return;
 
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-		rte_pmd_ixgbe_bypass_init(pid);
-#endif
-
 		if (lsc_interrupt && (*port->dev_info.dev_flags & RTE_ETH_DEV_INTR_LSC))
 			port->dev_conf.intr_conf.lsc = 1;
 		if (rmv_interrupt && (*port->dev_info.dev_flags & RTE_ETH_DEV_INTR_RMV))
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index 6955c46654..8252daef95 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -439,10 +439,6 @@ extern uint8_t hot_plug; /**< enable by "--hot-plug" parameter */
 extern int do_mlockall; /**< set by "--mlockall" or "--no-mlockall" parameter */
 extern uint8_t clear_ptypes; /**< disabled by set ptype cmd */
 
-#ifdef RTE_LIBRTE_IXGBE_BYPASS
-extern uint32_t bypass_timeout; /**< Store the NIC bypass watchdog timeout */
-#endif
-
 /*
  * Store specified sockets on which memory pool to be used by ports
  * is allocated.
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index 6394aa42bd..55009507ed 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -1532,48 +1532,6 @@ Mainly used with PCAP drivers to turn off the default behavior of flushing the f
 
    testpmd> set flush_rx off
 
-set bypass mode
-~~~~~~~~~~~~~~~
-
-Set the bypass mode for the lowest port on bypass enabled NIC::
-
-   testpmd> set bypass mode (normal|bypass|isolate) (port_id)
-
-set bypass event
-~~~~~~~~~~~~~~~~
-
-Set the event required to initiate specified bypass mode for the lowest port on a bypass enabled::
-
-   testpmd> set bypass event (timeout|os_on|os_off|power_on|power_off) \
-            mode (normal|bypass|isolate) (port_id)
-
-Where:
-
-* ``timeout``: Enable bypass after watchdog timeout.
-
-* ``os_on``: Enable bypass when OS/board is powered on.
-
-* ``os_off``: Enable bypass when OS/board is powered off.
-
-* ``power_on``: Enable bypass when power supply is turned on.
-
-* ``power_off``: Enable bypass when power supply is turned off.
-
-
-set bypass timeout
-~~~~~~~~~~~~~~~~~~
-
-Set the bypass watchdog timeout to ``n`` seconds where 0 = instant::
-
-   testpmd> set bypass timeout (0|1.5|2|3|4|8|16|32)
-
-show bypass config
-~~~~~~~~~~~~~~~~~~
-
-Show the bypass configuration for a bypass enabled NIC using the lowest port on the NIC::
-
-   testpmd> show bypass config (port_id)
-
 set link up
 ~~~~~~~~~~~
 
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [PATCH 6/6] net/ixgbe: move testpmd commands
  2022-05-23  7:10 ` [PATCH 0/6] " David Marchand
                     ` (4 preceding siblings ...)
  2022-05-23  7:10   ` [PATCH 5/6] app/testpmd: drop ixgbe bypass commands David Marchand
@ 2022-05-23  7:10   ` David Marchand
  2022-05-23 18:09   ` [PATCH 0/6] Split driver specific commands out of testpmd Ferruh Yigit
  6 siblings, 0 replies; 65+ messages in thread
From: David Marchand @ 2022-05-23  7:10 UTC (permalink / raw)
  To: dev
  Cc: thomas, andrew.rybchenko, ferruh.yigit, Xiaoyun Li, Aman Singh,
	Yuying Zhang, Qiming Yang, Wenjun Wu

Move related specific testpmd commands into this driver directory.
While at it, fix checkpatch warnings.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since RFC v2:
- dropped bypass commands,
- updated documentation,
- fixed some indent,

---
 app/test-pmd/cmdline.c                      | 688 +-------------------
 app/test-pmd/testpmd.h                      |   1 +
 doc/guides/nics/ixgbe.rst                   |  51 ++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  47 +-
 drivers/net/ixgbe/ixgbe_testpmd.c           | 657 +++++++++++++++++++
 drivers/net/ixgbe/meson.build               |   2 +
 6 files changed, 713 insertions(+), 733 deletions(-)
 create mode 100644 drivers/net/ixgbe/ixgbe_testpmd.c

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index e496fa1d14..75e6c805d2 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -69,8 +69,6 @@ static cmdline_parse_ctx_t *main_ctx;
 static TAILQ_HEAD(, testpmd_commands) commands_head =
 	TAILQ_HEAD_INITIALIZER(commands_head);
 
-static void cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue);
-
 /* *** Help command with introduction. *** */
 struct cmd_help_brief_result {
 	cmdline_fixed_string_t help;
@@ -335,24 +333,9 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set all queues drop (port_id) (on|off)\n"
 			"    Set drop enable bit for all queues.\n\n"
 
-			"set vf split drop (port_id) (vf_id) (on|off)\n"
-			"    Set split drop enable bit for a VF from the PF.\n\n"
-
 			"set vf mac antispoof (port_id) (vf_id) (on|off).\n"
 			"    Set MAC antispoof for a VF from the PF.\n\n"
 
-			"set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)\n"
-			"    Enable MACsec offload.\n\n"
-
-			"set macsec offload (port_id) off\n"
-			"    Disable MACsec offload.\n\n"
-
-			"set macsec sc (tx|rx) (port_id) (mac) (pi)\n"
-			"    Configure MACsec secure connection (SC).\n\n"
-
-			"set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)\n"
-			"    Configure MACsec secure association (SA).\n\n"
-
 			"vlan set stripq (on|off) (port_id,queue_id)\n"
 			"    Set the VLAN strip for a queue on a port.\n\n"
 
@@ -365,8 +348,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set vf vlan antispoof (port_id) (vf_id) (on|off)\n"
 			"    Set VLAN antispoof for a VF from the PF.\n\n"
 
-			"set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\n"
-			"    Set all TCs' min bandwidth(%%) for all PF and VFs.\n\n"
 
 			"vlan set (strip|filter|qinq_strip|extend) (on|off) (port_id)\n"
 			"    Set the VLAN strip or filter or qinq strip or extend\n\n"
@@ -9644,100 +9625,6 @@ static cmdline_parse_inst_t cmd_set_all_queues_drop_en = {
 	},
 };
 
-/* vf split drop enable configuration */
-
-/* Common result structure for vf split drop enable */
-struct cmd_vf_split_drop_en_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t split;
-	cmdline_fixed_string_t drop;
-	portid_t port_id;
-	uint16_t vf_id;
-	cmdline_fixed_string_t on_off;
-};
-
-/* Common CLI fields for vf split drop enable disable */
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 split, "split");
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 drop, "drop");
-static cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 vf_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 on_off, "on#off");
-
-static void
-cmd_set_vf_split_drop_en_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_split_drop_en_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_IXGBE
-	ret = rte_pmd_ixgbe_set_vf_split_drop_en(res->port_id, res->vf_id,
-			is_on);
-#endif
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
-			res->vf_id, is_on);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", res->port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
-	.f = cmd_set_vf_split_drop_en_parsed,
-	.data = NULL,
-	.help_str = "set vf split drop <port_id> <vf_id> on|off",
-	.tokens = {
-		(void *)&cmd_vf_split_drop_en_set,
-		(void *)&cmd_vf_split_drop_en_vf,
-		(void *)&cmd_vf_split_drop_en_split,
-		(void *)&cmd_vf_split_drop_en_drop,
-		(void *)&cmd_vf_split_drop_en_port_id,
-		(void *)&cmd_vf_split_drop_en_vf_id,
-		(void *)&cmd_vf_split_drop_en_on_off,
-		NULL,
-	},
-};
-
 /* vf mac address configuration */
 
 /* Common result structure for vf mac address */
@@ -9842,573 +9729,6 @@ static cmdline_parse_inst_t cmd_set_vf_mac_addr = {
 	},
 };
 
-/* MACsec configuration */
-
-/* Common result structure for MACsec offload enable */
-struct cmd_macsec_offload_on_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t offload;
-	portid_t port_id;
-	cmdline_fixed_string_t on;
-	cmdline_fixed_string_t encrypt;
-	cmdline_fixed_string_t en_on_off;
-	cmdline_fixed_string_t replay_protect;
-	cmdline_fixed_string_t rp_on_off;
-};
-
-/* Common CLI fields for MACsec offload disable */
-static cmdline_parse_token_string_t cmd_macsec_offload_on_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 offload, "offload");
-static cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_macsec_offload_on_on =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 on, "on");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 encrypt, "encrypt");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 en_on_off, "on#off");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 replay_protect, "replay-protect");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 rp_on_off, "on#off");
-
-static void
-cmd_set_macsec_offload_on_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_offload_on_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	portid_t port_id = res->port_id;
-	int en = (strcmp(res->en_on_off, "on") == 0) ? 1 : 0;
-	int rp = (strcmp(res->rp_on_off, "on") == 0) ? 1 : 0;
-	struct rte_eth_dev_info dev_info;
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (!port_is_stopped(port_id)) {
-		fprintf(stderr, "Please stop port %d first\n", port_id);
-		return;
-	}
-
-	ret = eth_dev_info_get_print_err(port_id, &dev_info);
-	if (ret != 0)
-		return;
-
-	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT) {
-#ifdef RTE_NET_IXGBE
-		ret = rte_pmd_ixgbe_macsec_enable(port_id, en, rp);
-#endif
-	}
-	RTE_SET_USED(en);
-	RTE_SET_USED(rp);
-
-	switch (ret) {
-	case 0:
-		ports[port_id].dev_conf.txmode.offloads |=
-						RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
-		cmd_reconfig_device_queue(port_id, 1, 1);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_offload_on = {
-	.f = cmd_set_macsec_offload_on_parsed,
-	.data = NULL,
-	.help_str = "set macsec offload <port_id> on "
-		"encrypt on|off replay-protect on|off",
-	.tokens = {
-		(void *)&cmd_macsec_offload_on_set,
-		(void *)&cmd_macsec_offload_on_macsec,
-		(void *)&cmd_macsec_offload_on_offload,
-		(void *)&cmd_macsec_offload_on_port_id,
-		(void *)&cmd_macsec_offload_on_on,
-		(void *)&cmd_macsec_offload_on_encrypt,
-		(void *)&cmd_macsec_offload_on_en_on_off,
-		(void *)&cmd_macsec_offload_on_replay_protect,
-		(void *)&cmd_macsec_offload_on_rp_on_off,
-		NULL,
-	},
-};
-
-/* Common result structure for MACsec offload disable */
-struct cmd_macsec_offload_off_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t offload;
-	portid_t port_id;
-	cmdline_fixed_string_t off;
-};
-
-/* Common CLI fields for MACsec offload disable */
-static cmdline_parse_token_string_t cmd_macsec_offload_off_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 offload, "offload");
-static cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_macsec_offload_off_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 off, "off");
-
-static void
-cmd_set_macsec_offload_off_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_offload_off_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	struct rte_eth_dev_info dev_info;
-	portid_t port_id = res->port_id;
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (!port_is_stopped(port_id)) {
-		fprintf(stderr, "Please stop port %d first\n", port_id);
-		return;
-	}
-
-	ret = eth_dev_info_get_print_err(port_id, &dev_info);
-	if (ret != 0)
-		return;
-
-	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT) {
-#ifdef RTE_NET_IXGBE
-		ret = rte_pmd_ixgbe_macsec_disable(port_id);
-#endif
-	}
-	switch (ret) {
-	case 0:
-		ports[port_id].dev_conf.txmode.offloads &=
-						~RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
-		cmd_reconfig_device_queue(port_id, 1, 1);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_offload_off = {
-	.f = cmd_set_macsec_offload_off_parsed,
-	.data = NULL,
-	.help_str = "set macsec offload <port_id> off",
-	.tokens = {
-		(void *)&cmd_macsec_offload_off_set,
-		(void *)&cmd_macsec_offload_off_macsec,
-		(void *)&cmd_macsec_offload_off_offload,
-		(void *)&cmd_macsec_offload_off_port_id,
-		(void *)&cmd_macsec_offload_off_off,
-		NULL,
-	},
-};
-
-/* Common result structure for MACsec secure connection configure */
-struct cmd_macsec_sc_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t sc;
-	cmdline_fixed_string_t tx_rx;
-	portid_t port_id;
-	struct rte_ether_addr mac;
-	uint16_t pi;
-};
-
-/* Common CLI fields for MACsec secure connection configure */
-static cmdline_parse_token_string_t cmd_macsec_sc_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_sc_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_sc_sc =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 sc, "sc");
-static cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 tx_rx, "tx#rx");
-static cmdline_parse_token_num_t cmd_macsec_sc_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
-	TOKEN_ETHERADDR_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 mac);
-static cmdline_parse_token_num_t cmd_macsec_sc_pi =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 pi, RTE_UINT16);
-
-static void
-cmd_set_macsec_sc_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_sc_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
-
-#ifdef RTE_NET_IXGBE
-	ret = is_tx ?
-		rte_pmd_ixgbe_macsec_config_txsc(res->port_id,
-				res->mac.addr_bytes) :
-		rte_pmd_ixgbe_macsec_config_rxsc(res->port_id,
-				res->mac.addr_bytes, res->pi);
-#endif
-	RTE_SET_USED(is_tx);
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", res->port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_sc = {
-	.f = cmd_set_macsec_sc_parsed,
-	.data = NULL,
-	.help_str = "set macsec sc tx|rx <port_id> <mac> <pi>",
-	.tokens = {
-		(void *)&cmd_macsec_sc_set,
-		(void *)&cmd_macsec_sc_macsec,
-		(void *)&cmd_macsec_sc_sc,
-		(void *)&cmd_macsec_sc_tx_rx,
-		(void *)&cmd_macsec_sc_port_id,
-		(void *)&cmd_macsec_sc_mac,
-		(void *)&cmd_macsec_sc_pi,
-		NULL,
-	},
-};
-
-/* Common result structure for MACsec secure connection configure */
-struct cmd_macsec_sa_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t sa;
-	cmdline_fixed_string_t tx_rx;
-	portid_t port_id;
-	uint8_t idx;
-	uint8_t an;
-	uint32_t pn;
-	cmdline_fixed_string_t key;
-};
-
-/* Common CLI fields for MACsec secure connection configure */
-static cmdline_parse_token_string_t cmd_macsec_sa_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_sa_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_sa_sa =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 sa, "sa");
-static cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 tx_rx, "tx#rx");
-static cmdline_parse_token_num_t cmd_macsec_sa_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_macsec_sa_idx =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 idx, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_macsec_sa_an =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 an, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_macsec_sa_pn =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 pn, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_macsec_sa_key =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 key, NULL);
-
-static void
-cmd_set_macsec_sa_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_sa_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
-	uint8_t key[16] = { 0 };
-	uint8_t xdgt0;
-	uint8_t xdgt1;
-	int key_len;
-	int i;
-
-	key_len = strlen(res->key) / 2;
-	if (key_len > 16)
-		key_len = 16;
-
-	for (i = 0; i < key_len; i++) {
-		xdgt0 = parse_and_check_key_hexa_digit(res->key, (i * 2));
-		if (xdgt0 == 0xFF)
-			return;
-		xdgt1 = parse_and_check_key_hexa_digit(res->key, (i * 2) + 1);
-		if (xdgt1 == 0xFF)
-			return;
-		key[i] = (uint8_t) ((xdgt0 * 16) + xdgt1);
-	}
-
-#ifdef RTE_NET_IXGBE
-	ret = is_tx ?
-		rte_pmd_ixgbe_macsec_select_txsa(res->port_id,
-			res->idx, res->an, res->pn, key) :
-		rte_pmd_ixgbe_macsec_select_rxsa(res->port_id,
-			res->idx, res->an, res->pn, key);
-#endif
-	RTE_SET_USED(is_tx);
-	RTE_SET_USED(key);
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid idx %d or an %d\n", res->idx, res->an);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", res->port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_sa = {
-	.f = cmd_set_macsec_sa_parsed,
-	.data = NULL,
-	.help_str = "set macsec sa tx|rx <port_id> <idx> <an> <pn> <key>",
-	.tokens = {
-		(void *)&cmd_macsec_sa_set,
-		(void *)&cmd_macsec_sa_macsec,
-		(void *)&cmd_macsec_sa_sa,
-		(void *)&cmd_macsec_sa_tx_rx,
-		(void *)&cmd_macsec_sa_port_id,
-		(void *)&cmd_macsec_sa_idx,
-		(void *)&cmd_macsec_sa_an,
-		(void *)&cmd_macsec_sa_pn,
-		(void *)&cmd_macsec_sa_key,
-		NULL,
-	},
-};
-
-/* Common definition of VF and TC TX bandwidth configuration */
-struct cmd_vf_tc_bw_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t tc;
-	cmdline_fixed_string_t tx;
-	cmdline_fixed_string_t min_bw;
-	portid_t port_id;
-	cmdline_fixed_string_t bw_list;
-};
-
-static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tc, "tc");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tx, "tx");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 min_bw, "min-bandwidth");
-static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 bw_list, NULL);
-
-static int
-vf_tc_min_bw_parse_bw_list(uint8_t *bw_list,
-			   uint8_t *tc_num,
-			   char *str)
-{
-	uint32_t size;
-	const char *p, *p0 = str;
-	char s[256];
-	char *end;
-	char *str_fld[16];
-	uint16_t i;
-	int ret;
-
-	p = strchr(p0, '(');
-	if (p == NULL) {
-		fprintf(stderr,
-			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
-		return -1;
-	}
-	p++;
-	p0 = strchr(p, ')');
-	if (p0 == NULL) {
-		fprintf(stderr,
-			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
-		return -1;
-	}
-	size = p0 - p;
-	if (size >= sizeof(s)) {
-		fprintf(stderr,
-			"The string size exceeds the internal buffer size\n");
-		return -1;
-	}
-	snprintf(s, sizeof(s), "%.*s", size, p);
-	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
-	if (ret <= 0) {
-		fprintf(stderr, "Failed to get the bandwidth list.\n");
-		return -1;
-	}
-	*tc_num = ret;
-	for (i = 0; i < ret; i++)
-		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
-
-	return 0;
-}
-
-static void
-cmd_tc_min_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	struct rte_port *port;
-	uint8_t tc_num;
-	uint8_t bw[16];
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	port = &ports[res->port_id];
-	/** Check if the port is not started **/
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr, "Please stop port %d first\n", res->port_id);
-		return;
-	}
-
-	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
-	if (ret)
-		return;
-
-#ifdef RTE_NET_IXGBE
-	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid bandwidth\n");
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_tc_min_bw = {
-	.f = cmd_tc_min_bw_parsed,
-	.data = NULL,
-	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_tc,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_min_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_bw_list,
-		NULL,
-	},
-};
-
 /** Set VXLAN encapsulation details */
 struct cmd_set_vxlan_result {
 	cmdline_fixed_string_t set;
@@ -13904,17 +13224,11 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_vf_vlan_insert,
 	(cmdline_parse_inst_t *)&cmd_set_tx_loopback,
 	(cmdline_parse_inst_t *)&cmd_set_all_queues_drop_en,
-	(cmdline_parse_inst_t *)&cmd_set_vf_split_drop_en,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_offload_on,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_offload_off,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_sc,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_sa,
 	(cmdline_parse_inst_t *)&cmd_set_vf_traffic,
 	(cmdline_parse_inst_t *)&cmd_set_vf_rxmode,
 	(cmdline_parse_inst_t *)&cmd_vf_rate_limit,
 	(cmdline_parse_inst_t *)&cmd_vf_rxvlan_filter,
 	(cmdline_parse_inst_t *)&cmd_set_vf_mac_addr,
-	(cmdline_parse_inst_t *)&cmd_tc_min_bw,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan_tos_ttl,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan_with_vlan,
@@ -14093,7 +13407,7 @@ prompt_exit(void)
 	}
 }
 
-static void
+void
 cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue)
 {
 	if (id == (portid_t)RTE_PORT_ALL) {
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index 8252daef95..7eb147c611 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -867,6 +867,7 @@ 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);
+void cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue);
 void cmdline_read_from_file(const char *filename);
 int init_cmdline(void);
 void prompt(void);
diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index 82fa453fa2..893ce71baa 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -317,6 +317,57 @@ the VFs which are required.::
 Currently hot-plugging of representor ports is not supported so all required
 representors must be specified on the creation of the PF.
 
+Testpmd driver specific commands
+--------------------------------
+
+Some ixgbe driver specific features are integrated in testpmd.
+
+set split drop enable (for VF)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set split drop enable bit for VF from PF::
+
+   testpmd> set vf split drop (port_id) (vf_id) (on|off)
+
+set macsec offload
+~~~~~~~~~~~~~~~~~~
+
+Enable/disable MACsec offload::
+
+   testpmd> set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)
+   testpmd> set macsec offload (port_id) off
+
+set macsec sc
+~~~~~~~~~~~~~
+
+Configure MACsec secure connection (SC)::
+
+   testpmd> set macsec sc (tx|rx) (port_id) (mac) (pi)
+
+.. note::
+
+   The pi argument is ignored for tx.
+   Check the NIC Datasheet for hardware limitations.
+
+set macsec sa
+~~~~~~~~~~~~~
+
+Configure MACsec secure association (SA)::
+
+   testpmd> set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)
+
+.. note::
+
+   The IDX value must be 0 or 1.
+   Check the NIC Datasheet for hardware limitations.
+
+set tc tx min bandwidth
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Set all TCs' TX min relative bandwidth (%) globally for all PF and VFs::
+
+   testpmd> set tc tx min-bandwidth (port_id) (bw1, bw2, ...)
+
 Supported Chipsets and NICs
 ---------------------------
 
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index 55009507ed..047ea4e46c 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -930,13 +930,6 @@ set drop enable bit for all queues::
 
    testpmd> set all queues drop (port_id) (on|off)
 
-set split drop enable (for VF)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-set split drop enable bit for VF from PF::
-
-   testpmd> set vf split drop (port_id) (vf_id) (on|off)
-
 set mac antispoof (for VF)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -944,38 +937,6 @@ Set mac antispoof for a VF from the PF::
 
    testpmd> set vf mac antispoof  (port_id) (vf_id) (on|off)
 
-set macsec offload
-~~~~~~~~~~~~~~~~~~
-
-Enable/disable MACsec offload::
-
-   testpmd> set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)
-   testpmd> set macsec offload (port_id) off
-
-set macsec sc
-~~~~~~~~~~~~~
-
-Configure MACsec secure connection (SC)::
-
-   testpmd> set macsec sc (tx|rx) (port_id) (mac) (pi)
-
-.. note::
-
-   The pi argument is ignored for tx.
-   Check the NIC Datasheet for hardware limits.
-
-set macsec sa
-~~~~~~~~~~~~~
-
-Configure MACsec secure association (SA)::
-
-   testpmd> set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)
-
-.. note::
-
-   The IDX value must be 0 or 1.
-   Check the NIC Datasheet for hardware limits.
-
 vlan set stripq
 ~~~~~~~~~~~~~~~
 
@@ -1384,13 +1345,6 @@ Set the allmulti mode for a port or for all ports::
 
 Same as the ifconfig (8) option. Controls how multicast packets are handled.
 
-set tc tx min bandwidth
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Set all TCs' TX min relative bandwidth (%) globally for all PF and VFs::
-
-   testpmd> set tc tx min-bandwidth (port_id) (bw1, bw2, ...)
-
 set flow_ctrl rx
 ~~~~~~~~~~~~~~~~
 
@@ -5360,3 +5314,4 @@ See:
 
 - :doc:`../prog_guide/link_bonding_poll_mode_drv_lib`
 - :doc:`../nics/i40e`
+- :doc:`../nics/ixgbe`
diff --git a/drivers/net/ixgbe/ixgbe_testpmd.c b/drivers/net/ixgbe/ixgbe_testpmd.c
new file mode 100644
index 0000000000..7d221a3eb0
--- /dev/null
+++ b/drivers/net/ixgbe/ixgbe_testpmd.c
@@ -0,0 +1,657 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2016 Intel Corporation.
+ */
+
+#include <ethdev_driver.h>
+#include "ixgbe_ethdev.h"
+#include "rte_pmd_ixgbe.h"
+
+#include <cmdline_parse_etheraddr.h>
+#include <cmdline_parse_num.h>
+#include <cmdline_parse_string.h>
+
+#include "testpmd.h"
+
+static uint8_t
+hexa_digit_to_value(char hexa_digit)
+{
+	if ((hexa_digit >= '0') && (hexa_digit <= '9'))
+		return (uint8_t)(hexa_digit - '0');
+	if ((hexa_digit >= 'a') && (hexa_digit <= 'f'))
+		return (uint8_t)((hexa_digit - 'a') + 10);
+	if ((hexa_digit >= 'A') && (hexa_digit <= 'F'))
+		return (uint8_t)((hexa_digit - 'A') + 10);
+	/* Invalid hexa digit */
+	return 0xFF;
+}
+
+static uint8_t
+parse_and_check_key_hexa_digit(char *key, int idx)
+{
+	uint8_t hexa_v;
+
+	hexa_v = hexa_digit_to_value(key[idx]);
+	if (hexa_v == 0xFF)
+		fprintf(stderr,
+			"invalid key: character %c at position %d is not a valid hexa digit\n",
+			key[idx], idx);
+	return hexa_v;
+}
+
+static int
+vf_tc_min_bw_parse_bw_list(uint8_t *bw_list, uint8_t *tc_num, char *str)
+{
+	uint32_t size;
+	const char *p, *p0 = str;
+	char s[256];
+	char *end;
+	char *str_fld[16];
+	uint16_t i;
+	int ret;
+
+	p = strchr(p0, '(');
+	if (p == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	p++;
+	p0 = strchr(p, ')');
+	if (p0 == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	size = p0 - p;
+	if (size >= sizeof(s)) {
+		fprintf(stderr,
+			"The string size exceeds the internal buffer size\n");
+		return -1;
+	}
+	snprintf(s, sizeof(s), "%.*s", size, p);
+	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
+	if (ret <= 0) {
+		fprintf(stderr, "Failed to get the bandwidth list.\n");
+		return -1;
+	}
+	*tc_num = ret;
+	for (i = 0; i < ret; i++)
+		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
+
+	return 0;
+}
+
+/* Common result structure for vf split drop enable */
+struct cmd_vf_split_drop_en_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t split;
+	cmdline_fixed_string_t drop;
+	portid_t port_id;
+	uint16_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for vf split drop enable disable */
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		vf, "vf");
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		split, "split");
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		drop, "drop");
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		on_off, "on#off");
+
+static void
+cmd_set_vf_split_drop_en_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_vf_split_drop_en_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_ixgbe_set_vf_split_drop_en(res->port_id, res->vf_id,
+			is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
+			res->vf_id, is_on);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", res->port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
+	.f = cmd_set_vf_split_drop_en_parsed,
+	.data = NULL,
+	.help_str = "set vf split drop <port_id> <vf_id> on|off",
+	.tokens = {
+		(void *)&cmd_vf_split_drop_en_set,
+		(void *)&cmd_vf_split_drop_en_vf,
+		(void *)&cmd_vf_split_drop_en_split,
+		(void *)&cmd_vf_split_drop_en_drop,
+		(void *)&cmd_vf_split_drop_en_port_id,
+		(void *)&cmd_vf_split_drop_en_vf_id,
+		(void *)&cmd_vf_split_drop_en_on_off,
+		NULL,
+	},
+};
+
+/* MACsec configuration */
+
+/* Common result structure for MACsec offload enable */
+struct cmd_macsec_offload_on_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t offload;
+	portid_t port_id;
+	cmdline_fixed_string_t on;
+	cmdline_fixed_string_t encrypt;
+	cmdline_fixed_string_t en_on_off;
+	cmdline_fixed_string_t replay_protect;
+	cmdline_fixed_string_t rp_on_off;
+};
+
+/* Common CLI fields for MACsec offload disable */
+static cmdline_parse_token_string_t cmd_macsec_offload_on_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		offload, "offload");
+static cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_offload_on_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_macsec_offload_on_on =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		on, "on");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		encrypt, "encrypt");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		en_on_off, "on#off");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		replay_protect, "replay-protect");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		rp_on_off, "on#off");
+
+static void
+cmd_set_macsec_offload_on_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_macsec_offload_on_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	portid_t port_id = res->port_id;
+	int en = (strcmp(res->en_on_off, "on") == 0) ? 1 : 0;
+	int rp = (strcmp(res->rp_on_off, "on") == 0) ? 1 : 0;
+	struct rte_eth_dev_info dev_info;
+
+	if (port_id_is_invalid(port_id, ENABLED_WARN))
+		return;
+	if (!port_is_stopped(port_id)) {
+		fprintf(stderr, "Please stop port %d first\n", port_id);
+		return;
+	}
+
+	ret = eth_dev_info_get_print_err(port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT)
+		ret = rte_pmd_ixgbe_macsec_enable(port_id, en, rp);
+
+	switch (ret) {
+	case 0:
+		ports[port_id].dev_conf.txmode.offloads |=
+						RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
+		cmd_reconfig_device_queue(port_id, 1, 1);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_macsec_offload_on = {
+	.f = cmd_set_macsec_offload_on_parsed,
+	.data = NULL,
+	.help_str = "set macsec offload <port_id> on "
+		"encrypt on|off replay-protect on|off",
+	.tokens = {
+		(void *)&cmd_macsec_offload_on_set,
+		(void *)&cmd_macsec_offload_on_macsec,
+		(void *)&cmd_macsec_offload_on_offload,
+		(void *)&cmd_macsec_offload_on_port_id,
+		(void *)&cmd_macsec_offload_on_on,
+		(void *)&cmd_macsec_offload_on_encrypt,
+		(void *)&cmd_macsec_offload_on_en_on_off,
+		(void *)&cmd_macsec_offload_on_replay_protect,
+		(void *)&cmd_macsec_offload_on_rp_on_off,
+		NULL,
+	},
+};
+
+/* Common result structure for MACsec offload disable */
+struct cmd_macsec_offload_off_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t offload;
+	portid_t port_id;
+	cmdline_fixed_string_t off;
+};
+
+/* Common CLI fields for MACsec offload disable */
+static cmdline_parse_token_string_t cmd_macsec_offload_off_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_off_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_off_result,
+		macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_off_result,
+		offload, "offload");
+static cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_offload_off_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_macsec_offload_off_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_off_result,
+		off, "off");
+
+static void
+cmd_set_macsec_offload_off_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_macsec_offload_off_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_eth_dev_info dev_info;
+	portid_t port_id = res->port_id;
+
+	if (port_id_is_invalid(port_id, ENABLED_WARN))
+		return;
+	if (!port_is_stopped(port_id)) {
+		fprintf(stderr, "Please stop port %d first\n", port_id);
+		return;
+	}
+
+	ret = eth_dev_info_get_print_err(port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT)
+		ret = rte_pmd_ixgbe_macsec_disable(port_id);
+	switch (ret) {
+	case 0:
+		ports[port_id].dev_conf.txmode.offloads &=
+						~RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
+		cmd_reconfig_device_queue(port_id, 1, 1);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_macsec_offload_off = {
+	.f = cmd_set_macsec_offload_off_parsed,
+	.data = NULL,
+	.help_str = "set macsec offload <port_id> off",
+	.tokens = {
+		(void *)&cmd_macsec_offload_off_set,
+		(void *)&cmd_macsec_offload_off_macsec,
+		(void *)&cmd_macsec_offload_off_offload,
+		(void *)&cmd_macsec_offload_off_port_id,
+		(void *)&cmd_macsec_offload_off_off,
+		NULL,
+	},
+};
+
+/* Common result structure for MACsec secure connection configure */
+struct cmd_macsec_sc_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t sc;
+	cmdline_fixed_string_t tx_rx;
+	portid_t port_id;
+	struct rte_ether_addr mac;
+	uint16_t pi;
+};
+
+/* Common CLI fields for MACsec secure connection configure */
+static cmdline_parse_token_string_t cmd_macsec_sc_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sc_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_macsec_sc_macsec =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sc_result,
+		macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_sc_sc =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sc_result,
+		sc, "sc");
+static cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sc_result,
+		tx_rx, "tx#rx");
+static cmdline_parse_token_num_t cmd_macsec_sc_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sc_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_macsec_sc_result,
+		mac);
+static cmdline_parse_token_num_t cmd_macsec_sc_pi =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sc_result,
+		pi, RTE_UINT16);
+
+static void
+cmd_set_macsec_sc_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_macsec_sc_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
+
+	ret = is_tx ?
+		rte_pmd_ixgbe_macsec_config_txsc(res->port_id,
+				res->mac.addr_bytes) :
+		rte_pmd_ixgbe_macsec_config_rxsc(res->port_id,
+				res->mac.addr_bytes, res->pi);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", res->port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_macsec_sc = {
+	.f = cmd_set_macsec_sc_parsed,
+	.data = NULL,
+	.help_str = "set macsec sc tx|rx <port_id> <mac> <pi>",
+	.tokens = {
+		(void *)&cmd_macsec_sc_set,
+		(void *)&cmd_macsec_sc_macsec,
+		(void *)&cmd_macsec_sc_sc,
+		(void *)&cmd_macsec_sc_tx_rx,
+		(void *)&cmd_macsec_sc_port_id,
+		(void *)&cmd_macsec_sc_mac,
+		(void *)&cmd_macsec_sc_pi,
+		NULL,
+	},
+};
+
+/* Common result structure for MACsec secure connection configure */
+struct cmd_macsec_sa_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t sa;
+	cmdline_fixed_string_t tx_rx;
+	portid_t port_id;
+	uint8_t idx;
+	uint8_t an;
+	uint32_t pn;
+	cmdline_fixed_string_t key;
+};
+
+/* Common CLI fields for MACsec secure connection configure */
+static cmdline_parse_token_string_t cmd_macsec_sa_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sa_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_macsec_sa_macsec =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sa_result,
+		macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_sa_sa =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sa_result,
+		sa, "sa");
+static cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sa_result,
+		tx_rx, "tx#rx");
+static cmdline_parse_token_num_t cmd_macsec_sa_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sa_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_macsec_sa_idx =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sa_result,
+		idx, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_macsec_sa_an =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sa_result,
+		an, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_macsec_sa_pn =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sa_result,
+		pn, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_macsec_sa_key =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sa_result,
+		key, NULL);
+
+static void
+cmd_set_macsec_sa_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_macsec_sa_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
+	uint8_t key[16] = { 0 };
+	uint8_t xdgt0;
+	uint8_t xdgt1;
+	int key_len;
+	int i;
+
+	key_len = strlen(res->key) / 2;
+	if (key_len > 16)
+		key_len = 16;
+
+	for (i = 0; i < key_len; i++) {
+		xdgt0 = parse_and_check_key_hexa_digit(res->key, (i * 2));
+		if (xdgt0 == 0xFF)
+			return;
+		xdgt1 = parse_and_check_key_hexa_digit(res->key, (i * 2) + 1);
+		if (xdgt1 == 0xFF)
+			return;
+		key[i] = (uint8_t)((xdgt0 * 16) + xdgt1);
+	}
+
+	ret = is_tx ?
+		rte_pmd_ixgbe_macsec_select_txsa(res->port_id,
+			res->idx, res->an, res->pn, key) :
+		rte_pmd_ixgbe_macsec_select_rxsa(res->port_id,
+			res->idx, res->an, res->pn, key);
+
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid idx %d or an %d\n", res->idx, res->an);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", res->port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+struct cmd_vf_tc_bw_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t tc;
+	cmdline_fixed_string_t tx;
+	cmdline_fixed_string_t min_bw;
+	portid_t port_id;
+	cmdline_fixed_string_t bw_list;
+};
+
+static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		tc, "tc");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		tx, "tx");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		min_bw, "min-bandwidth");
+static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_tc_bw_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		bw_list, NULL);
+
+static cmdline_parse_inst_t cmd_set_macsec_sa = {
+	.f = cmd_set_macsec_sa_parsed,
+	.data = NULL,
+	.help_str = "set macsec sa tx|rx <port_id> <idx> <an> <pn> <key>",
+	.tokens = {
+		(void *)&cmd_macsec_sa_set,
+		(void *)&cmd_macsec_sa_macsec,
+		(void *)&cmd_macsec_sa_sa,
+		(void *)&cmd_macsec_sa_tx_rx,
+		(void *)&cmd_macsec_sa_port_id,
+		(void *)&cmd_macsec_sa_idx,
+		(void *)&cmd_macsec_sa_an,
+		(void *)&cmd_macsec_sa_pn,
+		(void *)&cmd_macsec_sa_key,
+		NULL,
+	},
+};
+
+static void
+cmd_tc_min_bw_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	struct rte_port *port;
+	uint8_t tc_num;
+	uint8_t bw[16];
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	port = &ports[res->port_id];
+	/** Check if the port is not started **/
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr, "Please stop port %d first\n", res->port_id);
+		return;
+	}
+
+	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
+	if (ret)
+		return;
+
+	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
+
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid bandwidth\n");
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_tc_min_bw = {
+	.f = cmd_tc_min_bw_parsed,
+	.data = NULL,
+	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_tc,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_min_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_bw_list,
+		NULL,
+	},
+};
+
+static struct testpmd_commands ixgbe_cmds = {
+	.commands = {
+	{
+		&cmd_set_vf_split_drop_en,
+		"set vf split drop (port_id) (vf_id) (on|off)\n"
+		"    Set split drop enable bit for a VF from the PF.\n",
+	},
+	{
+		&cmd_set_macsec_offload_on,
+		"set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)\n"
+		"    Enable MACsec offload.\n",
+	},
+	{
+		&cmd_set_macsec_offload_off,
+		"set macsec offload (port_id) off\n"
+		"    Disable MACsec offload.\n",
+	},
+	{
+		&cmd_set_macsec_sc,
+		"set macsec sc (tx|rx) (port_id) (mac) (pi)\n"
+		"    Configure MACsec secure connection (SC).\n",
+	},
+	{
+		&cmd_set_macsec_sa,
+		"set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)\n"
+		"    Configure MACsec secure association (SA).\n",
+	},
+	{
+		&cmd_tc_min_bw,
+		"set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\n"
+		"    Set all TCs' min bandwidth(%%) for all PF and VFs.\n",
+	},
+	{ NULL, NULL },
+	},
+};
+TESTPMD_ADD_DRIVER_COMMANDS(ixgbe_cmds)
diff --git a/drivers/net/ixgbe/meson.build b/drivers/net/ixgbe/meson.build
index 162f8d5f46..a18908ef7c 100644
--- a/drivers/net/ixgbe/meson.build
+++ b/drivers/net/ixgbe/meson.build
@@ -20,6 +20,8 @@ sources = files(
         'rte_pmd_ixgbe.c',
 )
 
+testpmd_sources = files('ixgbe_testpmd.c')
+
 deps += ['hash', 'security']
 
 if arch_subdir == 'x86'
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* RE: [PATCH 1/6] app/testpmd: mark most cmdline symbols as static
  2022-05-23  7:10   ` [PATCH 1/6] app/testpmd: mark most cmdline symbols as static David Marchand
@ 2022-05-23 10:19     ` Dumitrescu, Cristian
  2022-05-23 18:09       ` Ferruh Yigit
  0 siblings, 1 reply; 65+ messages in thread
From: Dumitrescu, Cristian @ 2022-05-23 10:19 UTC (permalink / raw)
  To: David Marchand, dev
  Cc: thomas, andrew.rybchenko, ferruh.yigit, Konstantin Ananyev, Li,
	Xiaoyun, Singh, Aman Deep, Zhang, Yuying, Ori Kam



> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Monday, May 23, 2022 8:10 AM
> To: dev@dpdk.org
> Cc: thomas@monjalon.net; andrew.rybchenko@oktetlabs.ru;
> ferruh.yigit@xilinx.com; Konstantin Ananyev
> <konstantin.v.ananyev@yandex.ru>; Li, Xiaoyun <xiaoyun.li@intel.com>; Singh,
> Aman Deep <aman.deep.singh@intel.com>; Zhang, Yuying
> <yuying.zhang@intel.com>; Ori Kam <orika@nvidia.com>; Dumitrescu, Cristian
> <cristian.dumitrescu@intel.com>
> Subject: [PATCH 1/6] app/testpmd: mark most cmdline symbols as static
> 
> All those symbols don't need to be global, plus it was hiding unused
> code such as:
> - cmd_set_conntrack_dir_set and cmd_set_conntrack_dir_conntrack in
>   cmdline.c,
> - cmd_create_port_meter_g_action, cmd_create_port_meter_r_action,
>   cmd_create_port_meter_y_action in cmdline_mtr.c,
> 
> Mark those symbols as static.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
> Changes since RFC v2:
> - extended to other code units in testpmd,
> 
> ---
>  app/test-pmd/bpf_cmd.c      |   20 +-
>  app/test-pmd/cmdline.c      | 2776 +++++++++++++++++------------------
>  app/test-pmd/cmdline_flow.c |    8 +-
>  app/test-pmd/cmdline_mtr.c  |  219 ++-
>  app/test-pmd/cmdline_tm.c   |  442 +++---
>  5 files changed, 1725 insertions(+), 1740 deletions(-)
> 
> diff --git a/app/test-pmd/bpf_cmd.c b/app/test-pmd/bpf_cmd.c
> index 09c8aec0c0..648e0e9294 100644
> --- a/app/test-pmd/bpf_cmd.c
> +++ b/app/test-pmd/bpf_cmd.c
> @@ -117,20 +117,20 @@ static void cmd_operate_bpf_ld_parsed(void
> *parsed_result,
>  		fprintf(stderr, "invalid value: %s\n", res->dir);
>  }
> 
> -cmdline_parse_token_string_t cmd_load_bpf_start =
> +static cmdline_parse_token_string_t cmd_load_bpf_start =
>  	TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
>  			bpf, "bpf-load");
> -cmdline_parse_token_string_t cmd_load_bpf_dir =
> +static cmdline_parse_token_string_t cmd_load_bpf_dir =
>  	TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
>  			dir, "rx#tx");
> -cmdline_parse_token_num_t cmd_load_bpf_port =
> +static cmdline_parse_token_num_t cmd_load_bpf_port =
>  	TOKEN_NUM_INITIALIZER(struct cmd_bpf_ld_result, port, RTE_UINT8);
> -cmdline_parse_token_num_t cmd_load_bpf_queue =
> +static cmdline_parse_token_num_t cmd_load_bpf_queue =
>  	TOKEN_NUM_INITIALIZER(struct cmd_bpf_ld_result, queue,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_load_bpf_flags =
> +static cmdline_parse_token_string_t cmd_load_bpf_flags =
>  	TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
>  			flags, NULL);
> -cmdline_parse_token_string_t cmd_load_bpf_prm =
> +static cmdline_parse_token_string_t cmd_load_bpf_prm =
>  	TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
>  			prm, NULL);
> 
> @@ -173,15 +173,15 @@ static void cmd_operate_bpf_unld_parsed(void
> *parsed_result,
>  		fprintf(stderr, "invalid value: %s\n", res->dir);
>  }
> 
> -cmdline_parse_token_string_t cmd_unload_bpf_start =
> +static cmdline_parse_token_string_t cmd_unload_bpf_start =
>  	TOKEN_STRING_INITIALIZER(struct cmd_bpf_unld_result,
>  			bpf, "bpf-unload");
> -cmdline_parse_token_string_t cmd_unload_bpf_dir =
> +static cmdline_parse_token_string_t cmd_unload_bpf_dir =
>  	TOKEN_STRING_INITIALIZER(struct cmd_bpf_unld_result,
>  			dir, "rx#tx");
> -cmdline_parse_token_num_t cmd_unload_bpf_port =
> +static cmdline_parse_token_num_t cmd_unload_bpf_port =
>  	TOKEN_NUM_INITIALIZER(struct cmd_bpf_unld_result, port,
> RTE_UINT8);
> -cmdline_parse_token_num_t cmd_unload_bpf_queue =
> +static cmdline_parse_token_num_t cmd_unload_bpf_queue =
>  	TOKEN_NUM_INITIALIZER(struct cmd_bpf_unld_result, queue,
> RTE_UINT16);
> 
>  cmdline_parse_inst_t cmd_operate_bpf_unld_parse = {
> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
> index 91e4090582..498fe2c2b7 100644
> --- a/app/test-pmd/cmdline.c
> +++ b/app/test-pmd/cmdline.c
> @@ -99,10 +99,10 @@ static void cmd_help_brief_parsed(__rte_unused void
> *parsed_result,
> 
>  }
> 
> -cmdline_parse_token_string_t cmd_help_brief_help =
> +static cmdline_parse_token_string_t cmd_help_brief_help =
>  	TOKEN_STRING_INITIALIZER(struct cmd_help_brief_result, help,
> "help");
> 
> -cmdline_parse_inst_t cmd_help_brief = {
> +static cmdline_parse_inst_t cmd_help_brief = {
>  	.f = cmd_help_brief_parsed,
>  	.data = NULL,
>  	.help_str = "help: Show help",
> @@ -1179,15 +1179,15 @@ static void cmd_help_long_parsed(void
> *parsed_result,
> 
>  }
> 
> -cmdline_parse_token_string_t cmd_help_long_help =
> +static cmdline_parse_token_string_t cmd_help_long_help =
>  	TOKEN_STRING_INITIALIZER(struct cmd_help_long_result, help,
> "help");
> 
> -cmdline_parse_token_string_t cmd_help_long_section =
> +static cmdline_parse_token_string_t cmd_help_long_section =
>  	TOKEN_STRING_INITIALIZER(struct cmd_help_long_result, section,
>  			"all#control#display#config#"
> 
> 	"ports#registers#filters#traffic_management#devices");
> 
> -cmdline_parse_inst_t cmd_help_long = {
> +static cmdline_parse_inst_t cmd_help_long = {
>  	.f = cmd_help_long_parsed,
>  	.data = NULL,
>  	.help_str = "help all|control|display|config|ports|register|"
> @@ -1226,16 +1226,16 @@ static void cmd_operate_port_parsed(void
> *parsed_result,
>  		fprintf(stderr, "Unknown parameter\n");
>  }
> 
> -cmdline_parse_token_string_t cmd_operate_port_all_cmd =
> +static cmdline_parse_token_string_t cmd_operate_port_all_cmd =
>  	TOKEN_STRING_INITIALIZER(struct cmd_operate_port_result,
> keyword,
>  								"port");
> -cmdline_parse_token_string_t cmd_operate_port_all_port =
> +static cmdline_parse_token_string_t cmd_operate_port_all_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_operate_port_result, name,
>  						"start#stop#close#reset");
> -cmdline_parse_token_string_t cmd_operate_port_all_all =
> +static cmdline_parse_token_string_t cmd_operate_port_all_all =
>  	TOKEN_STRING_INITIALIZER(struct cmd_operate_port_result, value,
> "all");
> 
> -cmdline_parse_inst_t cmd_operate_port = {
> +static cmdline_parse_inst_t cmd_operate_port = {
>  	.f = cmd_operate_port_parsed,
>  	.data = NULL,
>  	.help_str = "port start|stop|close|reset all: Start/Stop/Close/Reset all
> ports",
> @@ -1272,17 +1272,17 @@ static void
> cmd_operate_specific_port_parsed(void *parsed_result,
>  		fprintf(stderr, "Unknown parameter\n");
>  }
> 
> -cmdline_parse_token_string_t cmd_operate_specific_port_cmd =
> +static cmdline_parse_token_string_t cmd_operate_specific_port_cmd =
>  	TOKEN_STRING_INITIALIZER(struct cmd_operate_specific_port_result,
>  							keyword, "port");
> -cmdline_parse_token_string_t cmd_operate_specific_port_port =
> +static cmdline_parse_token_string_t cmd_operate_specific_port_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_operate_specific_port_result,
>  						name,
> "start#stop#close#reset");
> -cmdline_parse_token_num_t cmd_operate_specific_port_id =
> +static cmdline_parse_token_num_t cmd_operate_specific_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_operate_specific_port_result,
>  							value, RTE_UINT8);
> 
> -cmdline_parse_inst_t cmd_operate_specific_port = {
> +static cmdline_parse_inst_t cmd_operate_specific_port = {
>  	.f = cmd_operate_specific_port_parsed,
>  	.data = NULL,
>  	.help_str = "port start|stop|close|reset <port_id>:
> Start/Stop/Close/Reset port_id",
> @@ -1317,23 +1317,23 @@ static void cmd_set_port_setup_on_parsed(void
> *parsed_result,
>  		fprintf(stderr, "Unknown mode\n");
>  }
> 
> -cmdline_parse_token_string_t cmd_set_port_setup_on_set =
> +static cmdline_parse_token_string_t cmd_set_port_setup_on_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
>  			set, "set");
> -cmdline_parse_token_string_t cmd_set_port_setup_on_port =
> +static cmdline_parse_token_string_t cmd_set_port_setup_on_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
>  			port, "port");
> -cmdline_parse_token_string_t cmd_set_port_setup_on_setup =
> +static cmdline_parse_token_string_t cmd_set_port_setup_on_setup =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
>  			setup, "setup");
> -cmdline_parse_token_string_t cmd_set_port_setup_on_on =
> +static cmdline_parse_token_string_t cmd_set_port_setup_on_on =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
>  			on, "on");
> -cmdline_parse_token_string_t cmd_set_port_setup_on_mode =
> +static cmdline_parse_token_string_t cmd_set_port_setup_on_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
>  			mode, "iterator#event");
> 
> -cmdline_parse_inst_t cmd_set_port_setup_on = {
> +static cmdline_parse_inst_t cmd_set_port_setup_on = {
>  	.f = cmd_set_port_setup_on_parsed,
>  	.data = NULL,
>  	.help_str = "set port setup on iterator|event",
> @@ -1366,17 +1366,17 @@ static void
> cmd_operate_attach_port_parsed(void *parsed_result,
>  		fprintf(stderr, "Unknown parameter\n");
>  }
> 
> -cmdline_parse_token_string_t cmd_operate_attach_port_port =
> +static cmdline_parse_token_string_t cmd_operate_attach_port_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_operate_attach_port_result,
>  			port, "port");
> -cmdline_parse_token_string_t cmd_operate_attach_port_keyword =
> +static cmdline_parse_token_string_t cmd_operate_attach_port_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_operate_attach_port_result,
>  			keyword, "attach");
> -cmdline_parse_token_string_t cmd_operate_attach_port_identifier =
> +static cmdline_parse_token_string_t cmd_operate_attach_port_identifier =
>  	TOKEN_STRING_INITIALIZER(struct cmd_operate_attach_port_result,
>  			identifier, TOKEN_STRING_MULTI);
> 
> -cmdline_parse_inst_t cmd_operate_attach_port = {
> +static cmdline_parse_inst_t cmd_operate_attach_port = {
>  	.f = cmd_operate_attach_port_parsed,
>  	.data = NULL,
>  	.help_str = "port attach <identifier>: "
> @@ -1410,17 +1410,17 @@ static void
> cmd_operate_detach_port_parsed(void *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_operate_detach_port_port =
> +static cmdline_parse_token_string_t cmd_operate_detach_port_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_port_result,
>  			port, "port");
> -cmdline_parse_token_string_t cmd_operate_detach_port_keyword =
> +static cmdline_parse_token_string_t cmd_operate_detach_port_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_port_result,
>  			keyword, "detach");
> -cmdline_parse_token_num_t cmd_operate_detach_port_port_id =
> +static cmdline_parse_token_num_t cmd_operate_detach_port_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_operate_detach_port_result,
>  			port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_operate_detach_port = {
> +static cmdline_parse_inst_t cmd_operate_detach_port = {
>  	.f = cmd_operate_detach_port_parsed,
>  	.data = NULL,
>  	.help_str = "port detach <port_id>",
> @@ -1451,17 +1451,17 @@ static void
> cmd_operate_detach_device_parsed(void *parsed_result,
>  		fprintf(stderr, "Unknown parameter\n");
>  }
> 
> -cmdline_parse_token_string_t cmd_operate_detach_device_device =
> +static cmdline_parse_token_string_t cmd_operate_detach_device_device =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_operate_detach_device_result,
>  			device, "device");
> -cmdline_parse_token_string_t cmd_operate_detach_device_keyword =
> +static cmdline_parse_token_string_t cmd_operate_detach_device_keyword =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_operate_detach_device_result,
>  			keyword, "detach");
> -cmdline_parse_token_string_t cmd_operate_detach_device_identifier =
> +static cmdline_parse_token_string_t cmd_operate_detach_device_identifier =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_operate_detach_device_result,
>  			identifier, NULL);
> 
> -cmdline_parse_inst_t cmd_operate_detach_device = {
> +static cmdline_parse_inst_t cmd_operate_detach_device = {
>  	.f = cmd_operate_detach_device_parsed,
>  	.data = NULL,
>  	.help_str = "device detach <identifier>:"
> @@ -1565,25 +1565,25 @@ cmd_config_speed_all_parsed(void
> *parsed_result,
>  	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_config_speed_all_port =
> +static cmdline_parse_token_string_t cmd_config_speed_all_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, port,
> "port");
> -cmdline_parse_token_string_t cmd_config_speed_all_keyword =
> +static cmdline_parse_token_string_t cmd_config_speed_all_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, keyword,
>  							"config");
> -cmdline_parse_token_string_t cmd_config_speed_all_all =
> +static cmdline_parse_token_string_t cmd_config_speed_all_all =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, all, "all");
> -cmdline_parse_token_string_t cmd_config_speed_all_item1 =
> +static cmdline_parse_token_string_t cmd_config_speed_all_item1 =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, item1,
> "speed");
> -cmdline_parse_token_string_t cmd_config_speed_all_value1 =
> +static cmdline_parse_token_string_t cmd_config_speed_all_value1 =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, value1,
> 
> 	"10#100#1000#10000#25000#40000#50000#100000#200000#auto
> ");
> -cmdline_parse_token_string_t cmd_config_speed_all_item2 =
> +static cmdline_parse_token_string_t cmd_config_speed_all_item2 =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, item2,
> "duplex");
> -cmdline_parse_token_string_t cmd_config_speed_all_value2 =
> +static cmdline_parse_token_string_t cmd_config_speed_all_value2 =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, value2,
>  						"half#full#auto");
> 
> -cmdline_parse_inst_t cmd_config_speed_all = {
> +static cmdline_parse_inst_t cmd_config_speed_all = {
>  	.f = cmd_config_speed_all_parsed,
>  	.data = NULL,
>  	.help_str = "port config all speed "
> @@ -1638,28 +1638,28 @@ cmd_config_speed_specific_parsed(void
> *parsed_result,
>  }
> 
> 
> -cmdline_parse_token_string_t cmd_config_speed_specific_port =
> +static cmdline_parse_token_string_t cmd_config_speed_specific_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, port,
>  								"port");
> -cmdline_parse_token_string_t cmd_config_speed_specific_keyword =
> +static cmdline_parse_token_string_t cmd_config_speed_specific_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific,
> keyword,
>  								"config");
> -cmdline_parse_token_num_t cmd_config_speed_specific_id =
> +static cmdline_parse_token_num_t cmd_config_speed_specific_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_speed_specific, id,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_config_speed_specific_item1 =
> +static cmdline_parse_token_string_t cmd_config_speed_specific_item1 =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, item1,
>  								"speed");
> -cmdline_parse_token_string_t cmd_config_speed_specific_value1 =
> +static cmdline_parse_token_string_t cmd_config_speed_specific_value1 =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, value1,
> 
> 	"10#100#1000#10000#25000#40000#50000#100000#200000#auto
> ");
> -cmdline_parse_token_string_t cmd_config_speed_specific_item2 =
> +static cmdline_parse_token_string_t cmd_config_speed_specific_item2 =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, item2,
>  								"duplex");
> -cmdline_parse_token_string_t cmd_config_speed_specific_value2 =
> +static cmdline_parse_token_string_t cmd_config_speed_specific_value2 =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, value2,
>  							"half#full#auto");
> 
> -cmdline_parse_inst_t cmd_config_speed_specific = {
> +static cmdline_parse_inst_t cmd_config_speed_specific = {
>  	.f = cmd_config_speed_specific_parsed,
>  	.data = NULL,
>  	.help_str = "port config <port_id> speed "
> @@ -1706,20 +1706,20 @@ cmd_config_loopback_all_parsed(void
> *parsed_result,
>  	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_config_loopback_all_port =
> +static cmdline_parse_token_string_t cmd_config_loopback_all_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all, port,
> "port");
> -cmdline_parse_token_string_t cmd_config_loopback_all_keyword =
> +static cmdline_parse_token_string_t cmd_config_loopback_all_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all,
> keyword,
>  							"config");
> -cmdline_parse_token_string_t cmd_config_loopback_all_all =
> +static cmdline_parse_token_string_t cmd_config_loopback_all_all =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all, all, "all");
> -cmdline_parse_token_string_t cmd_config_loopback_all_item =
> +static cmdline_parse_token_string_t cmd_config_loopback_all_item =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all, item,
>  							"loopback");
> -cmdline_parse_token_num_t cmd_config_loopback_all_mode =
> +static cmdline_parse_token_num_t cmd_config_loopback_all_mode =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_loopback_all, mode,
> RTE_UINT32);
> 
> -cmdline_parse_inst_t cmd_config_loopback_all = {
> +static cmdline_parse_inst_t cmd_config_loopback_all = {
>  	.f = cmd_config_loopback_all_parsed,
>  	.data = NULL,
>  	.help_str = "port config all loopback <mode>",
> @@ -1763,23 +1763,23 @@ cmd_config_loopback_specific_parsed(void
> *parsed_result,
>  }
> 
> 
> -cmdline_parse_token_string_t cmd_config_loopback_specific_port =
> +static cmdline_parse_token_string_t cmd_config_loopback_specific_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_specific,
> port,
>  								"port");
> -cmdline_parse_token_string_t cmd_config_loopback_specific_keyword =
> +static cmdline_parse_token_string_t cmd_config_loopback_specific_keyword
> =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_specific,
> keyword,
>  								"config");
> -cmdline_parse_token_num_t cmd_config_loopback_specific_id =
> +static cmdline_parse_token_num_t cmd_config_loopback_specific_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_loopback_specific,
> port_id,
>  								RTE_UINT16);
> -cmdline_parse_token_string_t cmd_config_loopback_specific_item =
> +static cmdline_parse_token_string_t cmd_config_loopback_specific_item =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_specific,
> item,
>  								"loopback");
> -cmdline_parse_token_num_t cmd_config_loopback_specific_mode =
> +static cmdline_parse_token_num_t cmd_config_loopback_specific_mode =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_loopback_specific, mode,
>  			      RTE_UINT32);
> 
> -cmdline_parse_inst_t cmd_config_loopback_specific = {
> +static cmdline_parse_inst_t cmd_config_loopback_specific = {
>  	.f = cmd_config_loopback_specific_parsed,
>  	.data = NULL,
>  	.help_str = "port config <port_id> loopback <mode>",
> @@ -1852,19 +1852,19 @@ cmd_config_rx_tx_parsed(void *parsed_result,
>  	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_config_rx_tx_port =
> +static cmdline_parse_token_string_t cmd_config_rx_tx_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, port, "port");
> -cmdline_parse_token_string_t cmd_config_rx_tx_keyword =
> +static cmdline_parse_token_string_t cmd_config_rx_tx_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, keyword,
> "config");
> -cmdline_parse_token_string_t cmd_config_rx_tx_all =
> +static cmdline_parse_token_string_t cmd_config_rx_tx_all =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, all, "all");
> -cmdline_parse_token_string_t cmd_config_rx_tx_name =
> +static cmdline_parse_token_string_t cmd_config_rx_tx_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, name,
>  						"rxq#txq#rxd#txd");
> -cmdline_parse_token_num_t cmd_config_rx_tx_value =
> +static cmdline_parse_token_num_t cmd_config_rx_tx_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_rx_tx, value,
> RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_config_rx_tx = {
> +static cmdline_parse_inst_t cmd_config_rx_tx = {
>  	.f = cmd_config_rx_tx_parsed,
>  	.data = NULL,
>  	.help_str = "port config all rxq|txq|rxd|txd <value>",
> @@ -1932,23 +1932,23 @@ cmd_config_max_pkt_len_parsed(void
> *parsed_result,
>  	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_config_max_pkt_len_port =
> +static cmdline_parse_token_string_t cmd_config_max_pkt_len_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result,
> port,
>  								"port");
> -cmdline_parse_token_string_t cmd_config_max_pkt_len_keyword =
> +static cmdline_parse_token_string_t cmd_config_max_pkt_len_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result,
> keyword,
>  								"config");
> -cmdline_parse_token_string_t cmd_config_max_pkt_len_all =
> +static cmdline_parse_token_string_t cmd_config_max_pkt_len_all =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result,
> all,
>  								"all");
> -cmdline_parse_token_string_t cmd_config_max_pkt_len_name =
> +static cmdline_parse_token_string_t cmd_config_max_pkt_len_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result,
> name,
>  								"max-pkt-
> len");
> -cmdline_parse_token_num_t cmd_config_max_pkt_len_value =
> +static cmdline_parse_token_num_t cmd_config_max_pkt_len_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_max_pkt_len_result,
> value,
>  								RTE_UINT32);
> 
> -cmdline_parse_inst_t cmd_config_max_pkt_len = {
> +static cmdline_parse_inst_t cmd_config_max_pkt_len = {
>  	.f = cmd_config_max_pkt_len_parsed,
>  	.data = NULL,
>  	.help_str = "port config all max-pkt-len <value>",
> @@ -2004,23 +2004,23 @@ cmd_config_max_lro_pkt_size_parsed(void
> *parsed_result,
>  	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_port =
> +static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_port =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_max_lro_pkt_size_result,
>  				 port, "port");
> -cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_keyword =
> +static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_keyword
> =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_max_lro_pkt_size_result,
>  				 keyword, "config");
> -cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_all =
> +static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_all =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_max_lro_pkt_size_result,
>  				 all, "all");
> -cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_name =
> +static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_name =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_max_lro_pkt_size_result,
>  				 name, "max-lro-pkt-size");
> -cmdline_parse_token_num_t cmd_config_max_lro_pkt_size_value =
> +static cmdline_parse_token_num_t cmd_config_max_lro_pkt_size_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
>  			      value, RTE_UINT32);
> 
> -cmdline_parse_inst_t cmd_config_max_lro_pkt_size = {
> +static cmdline_parse_inst_t cmd_config_max_lro_pkt_size = {
>  	.f = cmd_config_max_lro_pkt_size_parsed,
>  	.data = NULL,
>  	.help_str = "port config all max-lro-pkt-size <value>",
> @@ -2053,23 +2053,23 @@ cmd_config_mtu_parsed(void *parsed_result,
>  	port_mtu_set(res->port_id, res->value);
>  }
> 
> -cmdline_parse_token_string_t cmd_config_mtu_port =
> +static cmdline_parse_token_string_t cmd_config_mtu_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_mtu_result, port,
>  				 "port");
> -cmdline_parse_token_string_t cmd_config_mtu_keyword =
> +static cmdline_parse_token_string_t cmd_config_mtu_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_mtu_result, keyword,
>  				 "config");
> -cmdline_parse_token_string_t cmd_config_mtu_mtu =
> +static cmdline_parse_token_string_t cmd_config_mtu_mtu =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_mtu_result, keyword,
>  				 "mtu");
> -cmdline_parse_token_num_t cmd_config_mtu_port_id =
> +static cmdline_parse_token_num_t cmd_config_mtu_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_mtu_result, port_id,
>  				 RTE_UINT16);
> -cmdline_parse_token_num_t cmd_config_mtu_value =
> +static cmdline_parse_token_num_t cmd_config_mtu_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_mtu_result, value,
>  				 RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_config_mtu = {
> +static cmdline_parse_inst_t cmd_config_mtu = {
>  	.f = cmd_config_mtu_parsed,
>  	.data = NULL,
>  	.help_str = "port config mtu <port_id> <value>",
> @@ -2123,21 +2123,21 @@ cmd_config_rx_mode_flag_parsed(void
> *parsed_result,
>  	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_config_rx_mode_flag_port =
> +static cmdline_parse_token_string_t cmd_config_rx_mode_flag_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, port,
> "port");
> -cmdline_parse_token_string_t cmd_config_rx_mode_flag_keyword =
> +static cmdline_parse_token_string_t cmd_config_rx_mode_flag_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag,
> keyword,
>  								"config");
> -cmdline_parse_token_string_t cmd_config_rx_mode_flag_all =
> +static cmdline_parse_token_string_t cmd_config_rx_mode_flag_all =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, all,
> "all");
> -cmdline_parse_token_string_t cmd_config_rx_mode_flag_name =
> +static cmdline_parse_token_string_t cmd_config_rx_mode_flag_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, name,
>  					"drop-en");
> -cmdline_parse_token_string_t cmd_config_rx_mode_flag_value =
> +static cmdline_parse_token_string_t cmd_config_rx_mode_flag_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, value,
>  							"on#off");
> 
> -cmdline_parse_inst_t cmd_config_rx_mode_flag = {
> +static cmdline_parse_inst_t cmd_config_rx_mode_flag = {
>  	.f = cmd_config_rx_mode_flag_parsed,
>  	.data = NULL,
>  	.help_str = "port config all drop-en on|off",
> @@ -2300,18 +2300,18 @@ cmd_config_rss_parsed(void *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_config_rss_port =
> +static cmdline_parse_token_string_t cmd_config_rss_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, port, "port");
> -cmdline_parse_token_string_t cmd_config_rss_keyword =
> +static cmdline_parse_token_string_t cmd_config_rss_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, keyword,
> "config");
> -cmdline_parse_token_string_t cmd_config_rss_all =
> +static cmdline_parse_token_string_t cmd_config_rss_all =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, all, "all");
> -cmdline_parse_token_string_t cmd_config_rss_name =
> +static cmdline_parse_token_string_t cmd_config_rss_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, name, "rss");
> -cmdline_parse_token_string_t cmd_config_rss_value =
> +static cmdline_parse_token_string_t cmd_config_rss_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, value, NULL);
> 
> -cmdline_parse_inst_t cmd_config_rss = {
> +static cmdline_parse_inst_t cmd_config_rss = {
>  	.f = cmd_config_rss_parsed,
>  	.data = NULL,
>  	.help_str = "port config all rss "
> @@ -2413,18 +2413,18 @@ cmd_config_rss_hash_key_parsed(void
> *parsed_result,
>  			hash_key_size);
>  }
> 
> -cmdline_parse_token_string_t cmd_config_rss_hash_key_port =
> +static cmdline_parse_token_string_t cmd_config_rss_hash_key_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, port,
> "port");
> -cmdline_parse_token_string_t cmd_config_rss_hash_key_config =
> +static cmdline_parse_token_string_t cmd_config_rss_hash_key_config =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, config,
>  				 "config");
> -cmdline_parse_token_num_t cmd_config_rss_hash_key_port_id =
> +static cmdline_parse_token_num_t cmd_config_rss_hash_key_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_rss_hash_key, port_id,
>  				 RTE_UINT16);
> -cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_hash_key =
> +static cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_hash_key
> =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key,
>  				 rss_hash_key, "rss-hash-key");
> -cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_type =
> +static cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_type =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key,
> rss_type,
>  				 "ipv4#ipv4-frag#ipv4-tcp#ipv4-udp#ipv4-
> sctp#"
>  				 "ipv4-other#ipv6#ipv6-frag#ipv6-tcp#ipv6-
> udp#"
> @@ -2433,10 +2433,10 @@ cmdline_parse_token_string_t
> cmd_config_rss_hash_key_rss_type =
>  				 "l3-src-only#l3-dst-only#l4-src-only#l4-dst-
> only#"
>  				 "l2-src-only#l2-dst-only#s-vlan#c-vlan#"
> 
> "l2tpv3#esp#ah#pfcp#pppoe#gtpu#ecpri#mpls#l2tpv2");
> -cmdline_parse_token_string_t cmd_config_rss_hash_key_value =
> +static cmdline_parse_token_string_t cmd_config_rss_hash_key_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, key,
> NULL);
> 
> -cmdline_parse_inst_t cmd_config_rss_hash_key = {
> +static cmdline_parse_inst_t cmd_config_rss_hash_key = {
>  	.f = cmd_config_rss_hash_key_parsed,
>  	.data = NULL,
>  	.help_str = "port config <port_id> rss-hash-key "
> @@ -2508,26 +2508,26 @@ cmd_cleanup_txq_mbufs_parsed(void
> *parsed_result,
>  	       port_id, queue_id, ret);
>  }
> 
> -cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_port =
> +static cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_cleanup_txq_mbufs_result,
> port,
>  				 "port");
> -cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_cleanup =
> +static cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_cleanup =
>  	TOKEN_STRING_INITIALIZER(struct cmd_cleanup_txq_mbufs_result,
> keyword,
>  				 "cleanup");
> -cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_port_id =
> +static cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_cleanup_txq_mbufs_result,
> port_id,
>  			      RTE_UINT16);
> -cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_txq =
> +static cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_txq =
>  	TOKEN_STRING_INITIALIZER(struct cmd_cleanup_txq_mbufs_result,
> name,
>  				 "txq");
> -cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_queue_id =
> +static cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_queue_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_cleanup_txq_mbufs_result,
> queue_id,
>  			      RTE_UINT16);
> -cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_free_cnt =
> +static cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_free_cnt =
>  	TOKEN_NUM_INITIALIZER(struct cmd_cleanup_txq_mbufs_result,
> free_cnt,
>  			      RTE_UINT32);
> 
> -cmdline_parse_inst_t cmd_cleanup_txq_mbufs = {
> +static cmdline_parse_inst_t cmd_cleanup_txq_mbufs = {
>  	.f = cmd_cleanup_txq_mbufs_parsed,
>  	.data = NULL,
>  	.help_str = "port cleanup <port_id> txq <queue_id> <free_cnt>",
> @@ -2601,29 +2601,29 @@ cmd_config_rxtx_ring_size_parsed(void
> *parsed_result,
>  	cmd_reconfig_device_queue(res->portid, 0, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_config_rxtx_ring_size_port =
> +static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
>  				 port, "port");
> -cmdline_parse_token_string_t cmd_config_rxtx_ring_size_config =
> +static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_config =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
>  				 config, "config");
> -cmdline_parse_token_num_t cmd_config_rxtx_ring_size_portid =
> +static cmdline_parse_token_num_t cmd_config_rxtx_ring_size_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_ring_size,
>  				 portid, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rxtxq =
> +static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rxtxq =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
>  				 rxtxq, "rxq#txq");
> -cmdline_parse_token_num_t cmd_config_rxtx_ring_size_qid =
> +static cmdline_parse_token_num_t cmd_config_rxtx_ring_size_qid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_ring_size,
>  			      qid, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rsize =
> +static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rsize =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
>  				 rsize, "ring_size");
> -cmdline_parse_token_num_t cmd_config_rxtx_ring_size_size =
> +static cmdline_parse_token_num_t cmd_config_rxtx_ring_size_size =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_ring_size,
>  			      size, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_config_rxtx_ring_size = {
> +static cmdline_parse_inst_t cmd_config_rxtx_ring_size = {
>  	.f = cmd_config_rxtx_ring_size_parsed,
>  	.data = NULL,
>  	.help_str = "port config <port_id> rxq|txq <queue_id> ring_size
> <value>",
> @@ -2707,19 +2707,19 @@ cmd_config_rxtx_queue_parsed(void
> *parsed_result,
>  		fprintf(stderr, "Function not supported in PMD\n");
>  }
> 
> -cmdline_parse_token_string_t cmd_config_rxtx_queue_port =
> +static cmdline_parse_token_string_t cmd_config_rxtx_queue_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_queue, port,
> "port");
> -cmdline_parse_token_num_t cmd_config_rxtx_queue_portid =
> +static cmdline_parse_token_num_t cmd_config_rxtx_queue_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_queue, portid,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_config_rxtx_queue_rxtxq =
> +static cmdline_parse_token_string_t cmd_config_rxtx_queue_rxtxq =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_queue, rxtxq,
> "rxq#txq");
> -cmdline_parse_token_num_t cmd_config_rxtx_queue_qid =
> +static cmdline_parse_token_num_t cmd_config_rxtx_queue_qid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_queue, qid,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_config_rxtx_queue_opname =
> +static cmdline_parse_token_string_t cmd_config_rxtx_queue_opname =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_queue, opname,
>  						"start#stop");
> 
> -cmdline_parse_inst_t cmd_config_rxtx_queue = {
> +static cmdline_parse_inst_t cmd_config_rxtx_queue = {
>  	.f = cmd_config_rxtx_queue_parsed,
>  	.data = NULL,
>  	.help_str = "port <port_id> rxq|txq <queue_id> start|stop",
> @@ -2785,26 +2785,26 @@
> cmd_config_deferred_start_rxtx_queue_parsed(void *parsed_result,
>  		cmd_reconfig_device_queue(res->port_id, 0, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_port =
> +static cmdline_parse_token_string_t
> cmd_config_deferred_start_rxtx_queue_port =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_deferred_start_rxtx_queue,
>  						port, "port");
> -cmdline_parse_token_num_t
> cmd_config_deferred_start_rxtx_queue_port_id =
> +static cmdline_parse_token_num_t
> cmd_config_deferred_start_rxtx_queue_port_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_config_deferred_start_rxtx_queue,
>  						port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_rxtxq
> =
> +static cmdline_parse_token_string_t
> cmd_config_deferred_start_rxtx_queue_rxtxq =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_deferred_start_rxtx_queue,
>  						rxtxq, "rxq#txq");
> -cmdline_parse_token_num_t cmd_config_deferred_start_rxtx_queue_qid =
> +static cmdline_parse_token_num_t
> cmd_config_deferred_start_rxtx_queue_qid =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_config_deferred_start_rxtx_queue,
>  						qid, RTE_UINT16);
> -cmdline_parse_token_string_t
> cmd_config_deferred_start_rxtx_queue_opname =
> +static cmdline_parse_token_string_t
> cmd_config_deferred_start_rxtx_queue_opname =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_deferred_start_rxtx_queue,
>  						opname, "deferred_start");
> -cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_state
> =
> +static cmdline_parse_token_string_t
> cmd_config_deferred_start_rxtx_queue_state =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_deferred_start_rxtx_queue,
>  						state, "on#off");
> 
> -cmdline_parse_inst_t cmd_config_deferred_start_rxtx_queue = {
> +static cmdline_parse_inst_t cmd_config_deferred_start_rxtx_queue = {
>  	.f = cmd_config_deferred_start_rxtx_queue_parsed,
>  	.data = NULL,
>  	.help_str = "port <port_id> rxq|txq <queue_id> deferred_start
> on|off",
> @@ -2829,15 +2829,15 @@ struct cmd_setup_rxtx_queue {
>  };
> 
>  /* Common CLI fields for queue setup */
> -cmdline_parse_token_string_t cmd_setup_rxtx_queue_port =
> +static cmdline_parse_token_string_t cmd_setup_rxtx_queue_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_setup_rxtx_queue, port,
> "port");
> -cmdline_parse_token_num_t cmd_setup_rxtx_queue_portid =
> +static cmdline_parse_token_num_t cmd_setup_rxtx_queue_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_setup_rxtx_queue, portid,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_setup_rxtx_queue_rxtxq =
> +static cmdline_parse_token_string_t cmd_setup_rxtx_queue_rxtxq =
>  	TOKEN_STRING_INITIALIZER(struct cmd_setup_rxtx_queue, rxtxq,
> "rxq#txq");
> -cmdline_parse_token_num_t cmd_setup_rxtx_queue_qid =
> +static cmdline_parse_token_num_t cmd_setup_rxtx_queue_qid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_setup_rxtx_queue, qid,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_setup_rxtx_queue_setup =
> +static cmdline_parse_token_string_t cmd_setup_rxtx_queue_setup =
>  	TOKEN_STRING_INITIALIZER(struct cmd_setup_rxtx_queue, setup,
> "setup");
> 
>  static void
> @@ -2919,7 +2919,7 @@ cmd_setup_rxtx_queue_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_setup_rxtx_queue = {
> +static cmdline_parse_inst_t cmd_setup_rxtx_queue = {
>  	.f = cmd_setup_rxtx_queue_parsed,
>  	.data = NULL,
>  	.help_str = "port <port_id> rxq|txq <queue_idx> setup",
> @@ -3047,20 +3047,20 @@ cmd_set_rss_reta_parsed(void *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_config_rss_reta_port =
> +static cmdline_parse_token_string_t cmd_config_rss_reta_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, port, "port");
> -cmdline_parse_token_string_t cmd_config_rss_reta_keyword =
> +static cmdline_parse_token_string_t cmd_config_rss_reta_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, keyword,
> "config");
> -cmdline_parse_token_num_t cmd_config_rss_reta_port_id =
> +static cmdline_parse_token_num_t cmd_config_rss_reta_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_rss_reta, port_id,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_config_rss_reta_name =
> +static cmdline_parse_token_string_t cmd_config_rss_reta_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, name, "rss");
> -cmdline_parse_token_string_t cmd_config_rss_reta_list_name =
> +static cmdline_parse_token_string_t cmd_config_rss_reta_list_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, list_name,
> "reta");
> -cmdline_parse_token_string_t cmd_config_rss_reta_list_of_items =
> +static cmdline_parse_token_string_t cmd_config_rss_reta_list_of_items =
>          TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, list_of_items,
>                                   NULL);
> -cmdline_parse_inst_t cmd_config_rss_reta = {
> +static cmdline_parse_inst_t cmd_config_rss_reta = {
>  	.f = cmd_set_rss_reta_parsed,
>  	.data = NULL,
>  	.help_str = "port config <port_id> rss reta
> <hash,queue[,hash,queue]*>",
> @@ -3160,23 +3160,23 @@ cmd_showport_reta_parsed(void
> *parsed_result,
>  	port_rss_reta_info(res->port_id, reta_conf, res->size);
>  }
> 
> -cmdline_parse_token_string_t cmd_showport_reta_show =
> +static cmdline_parse_token_string_t cmd_showport_reta_show =
>  	TOKEN_STRING_INITIALIZER(struct  cmd_showport_reta, show,
> "show");
> -cmdline_parse_token_string_t cmd_showport_reta_port =
> +static cmdline_parse_token_string_t cmd_showport_reta_port =
>  	TOKEN_STRING_INITIALIZER(struct  cmd_showport_reta, port, "port");
> -cmdline_parse_token_num_t cmd_showport_reta_port_id =
> +static cmdline_parse_token_num_t cmd_showport_reta_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_showport_reta, port_id,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_showport_reta_rss =
> +static cmdline_parse_token_string_t cmd_showport_reta_rss =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showport_reta, rss, "rss");
> -cmdline_parse_token_string_t cmd_showport_reta_reta =
> +static cmdline_parse_token_string_t cmd_showport_reta_reta =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showport_reta, reta, "reta");
> -cmdline_parse_token_num_t cmd_showport_reta_size =
> +static cmdline_parse_token_num_t cmd_showport_reta_size =
>  	TOKEN_NUM_INITIALIZER(struct cmd_showport_reta, size,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_showport_reta_list_of_items =
> +static cmdline_parse_token_string_t cmd_showport_reta_list_of_items =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showport_reta,
>  					list_of_items, NULL);
> 
> -cmdline_parse_inst_t cmd_showport_reta = {
> +static cmdline_parse_inst_t cmd_showport_reta = {
>  	.f = cmd_showport_reta_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> rss reta <size> <mask0[,mask1]*>",
> @@ -3211,20 +3211,20 @@ static void cmd_showport_rss_hash_parsed(void
> *parsed_result,
>  	port_rss_hash_conf_show(res->port_id, show_rss_key != NULL);
>  }
> 
> -cmdline_parse_token_string_t cmd_showport_rss_hash_show =
> +static cmdline_parse_token_string_t cmd_showport_rss_hash_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, show,
> "show");
> -cmdline_parse_token_string_t cmd_showport_rss_hash_port =
> +static cmdline_parse_token_string_t cmd_showport_rss_hash_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, port,
> "port");
> -cmdline_parse_token_num_t cmd_showport_rss_hash_port_id =
> +static cmdline_parse_token_num_t cmd_showport_rss_hash_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_showport_rss_hash, port_id,
>  				 RTE_UINT16);
> -cmdline_parse_token_string_t cmd_showport_rss_hash_rss_hash =
> +static cmdline_parse_token_string_t cmd_showport_rss_hash_rss_hash =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, rss_hash,
>  				 "rss-hash");
> -cmdline_parse_token_string_t cmd_showport_rss_hash_rss_key =
> +static cmdline_parse_token_string_t cmd_showport_rss_hash_rss_key =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, key,
> "key");
> 
> -cmdline_parse_inst_t cmd_showport_rss_hash = {
> +static cmdline_parse_inst_t cmd_showport_rss_hash = {
>  	.f = cmd_showport_rss_hash_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> rss-hash",
> @@ -3237,7 +3237,7 @@ cmdline_parse_inst_t cmd_showport_rss_hash = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_showport_rss_hash_key = {
> +static cmdline_parse_inst_t cmd_showport_rss_hash_key = {
>  	.f = cmd_showport_rss_hash_parsed,
>  	.data = (void *)1,
>  	.help_str = "show port <port_id> rss-hash key",
> @@ -3326,26 +3326,26 @@ cmd_config_dcb_parsed(void *parsed_result,
>  	cmd_reconfig_device_queue(port_id, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_config_dcb_port =
> +static cmdline_parse_token_string_t cmd_config_dcb_port =
>          TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, port, "port");
> -cmdline_parse_token_string_t cmd_config_dcb_config =
> +static cmdline_parse_token_string_t cmd_config_dcb_config =
>          TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, config, "config");
> -cmdline_parse_token_num_t cmd_config_dcb_port_id =
> +static cmdline_parse_token_num_t cmd_config_dcb_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_dcb, port_id,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_config_dcb_dcb =
> +static cmdline_parse_token_string_t cmd_config_dcb_dcb =
>          TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, dcb, "dcb");
> -cmdline_parse_token_string_t cmd_config_dcb_vt =
> +static cmdline_parse_token_string_t cmd_config_dcb_vt =
>          TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, vt, "vt");
> -cmdline_parse_token_string_t cmd_config_dcb_vt_en =
> +static cmdline_parse_token_string_t cmd_config_dcb_vt_en =
>          TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, vt_en, "on#off");
> -cmdline_parse_token_num_t cmd_config_dcb_num_tcs =
> +static cmdline_parse_token_num_t cmd_config_dcb_num_tcs =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_dcb, num_tcs,
> RTE_UINT8);
> -cmdline_parse_token_string_t cmd_config_dcb_pfc=
> +static cmdline_parse_token_string_t cmd_config_dcb_pfc =
>          TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, pfc, "pfc");
> -cmdline_parse_token_string_t cmd_config_dcb_pfc_en =
> +static cmdline_parse_token_string_t cmd_config_dcb_pfc_en =
>          TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, pfc_en, "on#off");
> 
> -cmdline_parse_inst_t cmd_config_dcb = {
> +static cmdline_parse_inst_t cmd_config_dcb = {
>  	.f = cmd_config_dcb_parsed,
>  	.data = NULL,
>  	.help_str = "port config <port-id> dcb vt on|off <num_tcs> pfc on|off",
> @@ -3430,18 +3430,18 @@ cmd_config_burst_parsed(void *parsed_result,
>  	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_config_burst_port =
> +static cmdline_parse_token_string_t cmd_config_burst_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, port, "port");
> -cmdline_parse_token_string_t cmd_config_burst_keyword =
> +static cmdline_parse_token_string_t cmd_config_burst_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, keyword,
> "config");
> -cmdline_parse_token_string_t cmd_config_burst_all =
> +static cmdline_parse_token_string_t cmd_config_burst_all =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, all, "all");
> -cmdline_parse_token_string_t cmd_config_burst_name =
> +static cmdline_parse_token_string_t cmd_config_burst_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, name, "burst");
> -cmdline_parse_token_num_t cmd_config_burst_value =
> +static cmdline_parse_token_num_t cmd_config_burst_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_burst, value,
> RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_config_burst = {
> +static cmdline_parse_inst_t cmd_config_burst = {
>  	.f = cmd_config_burst_parsed,
>  	.data = NULL,
>  	.help_str = "port config all burst <value>",
> @@ -3498,19 +3498,19 @@ cmd_config_thresh_parsed(void *parsed_result,
>  	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_config_thresh_port =
> +static cmdline_parse_token_string_t cmd_config_thresh_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, port, "port");
> -cmdline_parse_token_string_t cmd_config_thresh_keyword =
> +static cmdline_parse_token_string_t cmd_config_thresh_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, keyword,
> "config");
> -cmdline_parse_token_string_t cmd_config_thresh_all =
> +static cmdline_parse_token_string_t cmd_config_thresh_all =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, all, "all");
> -cmdline_parse_token_string_t cmd_config_thresh_name =
> +static cmdline_parse_token_string_t cmd_config_thresh_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, name,
>  				"txpt#txht#txwt#rxpt#rxht#rxwt");
> -cmdline_parse_token_num_t cmd_config_thresh_value =
> +static cmdline_parse_token_num_t cmd_config_thresh_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_thresh, value,
> RTE_UINT8);
> 
> -cmdline_parse_inst_t cmd_config_thresh = {
> +static cmdline_parse_inst_t cmd_config_thresh = {
>  	.f = cmd_config_thresh_parsed,
>  	.data = NULL,
>  	.help_str = "port config all txpt|txht|txwt|rxpt|rxht|rxwt <value>",
> @@ -3561,20 +3561,20 @@ cmd_config_threshold_parsed(void
> *parsed_result,
>  	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_config_threshold_port =
> +static cmdline_parse_token_string_t cmd_config_threshold_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, port,
> "port");
> -cmdline_parse_token_string_t cmd_config_threshold_keyword =
> +static cmdline_parse_token_string_t cmd_config_threshold_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, keyword,
>  								"config");
> -cmdline_parse_token_string_t cmd_config_threshold_all =
> +static cmdline_parse_token_string_t cmd_config_threshold_all =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, all, "all");
> -cmdline_parse_token_string_t cmd_config_threshold_name =
> +static cmdline_parse_token_string_t cmd_config_threshold_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, name,
>  						"txfreet#txrst#rxfreet");
> -cmdline_parse_token_num_t cmd_config_threshold_value =
> +static cmdline_parse_token_num_t cmd_config_threshold_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_threshold, value,
> RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_config_threshold = {
> +static cmdline_parse_inst_t cmd_config_threshold = {
>  	.f = cmd_config_threshold_parsed,
>  	.data = NULL,
>  	.help_str = "port config all txfreet|txrst|rxfreet <value>",
> @@ -3600,10 +3600,10 @@ static void cmd_stop_parsed(__rte_unused void
> *parsed_result,
>  	stop_packet_forwarding();
>  }
> 
> -cmdline_parse_token_string_t cmd_stop_stop =
> +static cmdline_parse_token_string_t cmd_stop_stop =
>  	TOKEN_STRING_INITIALIZER(struct cmd_stop_result, stop, "stop");
> 
> -cmdline_parse_inst_t cmd_stop = {
> +static cmdline_parse_inst_t cmd_stop = {
>  	.f = cmd_stop_parsed,
>  	.data = NULL,
>  	.help_str = "stop: Stop packet forwarding",
> @@ -3724,17 +3724,17 @@ static void cmd_set_list_parsed(void
> *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_set_list_keyword =
> +static cmdline_parse_token_string_t cmd_set_list_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_list_result, cmd_keyword,
>  				 "set");
> -cmdline_parse_token_string_t cmd_set_list_name =
> +static cmdline_parse_token_string_t cmd_set_list_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_list_result, list_name,
>  				 "corelist#portlist");
> -cmdline_parse_token_string_t cmd_set_list_of_items =
> +static cmdline_parse_token_string_t cmd_set_list_of_items =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_list_result, list_of_items,
>  				 NULL);
> 
> -cmdline_parse_inst_t cmd_set_fwd_list = {
> +static cmdline_parse_inst_t cmd_set_fwd_list = {
>  	.f = cmd_set_list_parsed,
>  	.data = NULL,
>  	.help_str = "set corelist|portlist <list0[,list1]*>",
> @@ -3773,15 +3773,15 @@ static void cmd_set_mask_parsed(void
> *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_setmask_set =
> +static cmdline_parse_token_string_t cmd_setmask_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_setmask_result, set, "set");
> -cmdline_parse_token_string_t cmd_setmask_mask =
> +static cmdline_parse_token_string_t cmd_setmask_mask =
>  	TOKEN_STRING_INITIALIZER(struct cmd_setmask_result, mask,
>  				 "coremask#portmask");
> -cmdline_parse_token_num_t cmd_setmask_value =
> +static cmdline_parse_token_num_t cmd_setmask_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_setmask_result, hexavalue,
> RTE_UINT64);
> 
> -cmdline_parse_inst_t cmd_set_fwd_mask = {
> +static cmdline_parse_inst_t cmd_set_fwd_mask = {
>  	.f = cmd_set_mask_parsed,
>  	.data = NULL,
>  	.help_str = "set coremask|portmask <hexadecimal value>",
> @@ -3819,15 +3819,15 @@ static void cmd_set_parsed(void *parsed_result,
>  		set_verbose_level(res->value);
>  }
> 
> -cmdline_parse_token_string_t cmd_set_set =
> +static cmdline_parse_token_string_t cmd_set_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_result, set, "set");
> -cmdline_parse_token_string_t cmd_set_what =
> +static cmdline_parse_token_string_t cmd_set_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_result, what,
>  				 "nbport#nbcore#burst#verbose");
> -cmdline_parse_token_num_t cmd_set_value =
> +static cmdline_parse_token_num_t cmd_set_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_result, value, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_set_numbers = {
> +static cmdline_parse_inst_t cmd_set_numbers = {
>  	.f = cmd_set_parsed,
>  	.data = NULL,
>  	.help_str = "set nbport|nbcore|burst|verbose <value>",
> @@ -3866,16 +3866,16 @@ cmd_set_log_parsed(void *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_set_log_set =
> +static cmdline_parse_token_string_t cmd_set_log_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_log_result, set, "set");
> -cmdline_parse_token_string_t cmd_set_log_log =
> +static cmdline_parse_token_string_t cmd_set_log_log =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_log_result, log, "log");
> -cmdline_parse_token_string_t cmd_set_log_type =
> +static cmdline_parse_token_string_t cmd_set_log_type =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_log_result, type, NULL);
> -cmdline_parse_token_num_t cmd_set_log_level =
> +static cmdline_parse_token_num_t cmd_set_log_level =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_log_result, level,
> RTE_UINT32);
> 
> -cmdline_parse_inst_t cmd_set_log = {
> +static cmdline_parse_inst_t cmd_set_log = {
>  	.f = cmd_set_log_parsed,
>  	.data = NULL,
>  	.help_str = "set log global|<type> <level>",
> @@ -3913,17 +3913,17 @@ cmd_set_rxoffs_parsed(void *parsed_result,
>  	cmd_reconfig_device_queue(RTE_PORT_ALL, 0, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_set_rxoffs_keyword =
> +static cmdline_parse_token_string_t cmd_set_rxoffs_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_rxoffs_result,
>  				 cmd_keyword, "set");
> -cmdline_parse_token_string_t cmd_set_rxoffs_name =
> +static cmdline_parse_token_string_t cmd_set_rxoffs_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_rxoffs_result,
>  				 rxoffs, "rxoffs");
> -cmdline_parse_token_string_t cmd_set_rxoffs_offsets =
> +static cmdline_parse_token_string_t cmd_set_rxoffs_offsets =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_rxoffs_result,
>  				 seg_offsets, NULL);
> 
> -cmdline_parse_inst_t cmd_set_rxoffs = {
> +static cmdline_parse_inst_t cmd_set_rxoffs = {
>  	.f = cmd_set_rxoffs_parsed,
>  	.data = NULL,
>  	.help_str = "set rxoffs <len0[,len1]*>",
> @@ -3960,17 +3960,17 @@ cmd_set_rxpkts_parsed(void *parsed_result,
>  	cmd_reconfig_device_queue(RTE_PORT_ALL, 0, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_set_rxpkts_keyword =
> +static cmdline_parse_token_string_t cmd_set_rxpkts_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_rxpkts_result,
>  				 cmd_keyword, "set");
> -cmdline_parse_token_string_t cmd_set_rxpkts_name =
> +static cmdline_parse_token_string_t cmd_set_rxpkts_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_rxpkts_result,
>  				 rxpkts, "rxpkts");
> -cmdline_parse_token_string_t cmd_set_rxpkts_lengths =
> +static cmdline_parse_token_string_t cmd_set_rxpkts_lengths =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_rxpkts_result,
>  				 seg_lengths, NULL);
> 
> -cmdline_parse_inst_t cmd_set_rxpkts = {
> +static cmdline_parse_inst_t cmd_set_rxpkts = {
>  	.f = cmd_set_rxpkts_parsed,
>  	.data = NULL,
>  	.help_str = "set rxpkts <len0[,len1]*>",
> @@ -4006,17 +4006,17 @@ cmd_set_txpkts_parsed(void *parsed_result,
>  		set_tx_pkt_segments(seg_lengths, nb_segs);
>  }
> 
> -cmdline_parse_token_string_t cmd_set_txpkts_keyword =
> +static cmdline_parse_token_string_t cmd_set_txpkts_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_txpkts_result,
>  				 cmd_keyword, "set");
> -cmdline_parse_token_string_t cmd_set_txpkts_name =
> +static cmdline_parse_token_string_t cmd_set_txpkts_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_txpkts_result,
>  				 txpkts, "txpkts");
> -cmdline_parse_token_string_t cmd_set_txpkts_lengths =
> +static cmdline_parse_token_string_t cmd_set_txpkts_lengths =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_txpkts_result,
>  				 seg_lengths, NULL);
> 
> -cmdline_parse_inst_t cmd_set_txpkts = {
> +static cmdline_parse_inst_t cmd_set_txpkts = {
>  	.f = cmd_set_txpkts_parsed,
>  	.data = NULL,
>  	.help_str = "set txpkts <len0[,len1]*>",
> @@ -4047,17 +4047,17 @@ cmd_set_txsplit_parsed(void *parsed_result,
>  	set_tx_pkt_split(res->mode);
>  }
> 
> -cmdline_parse_token_string_t cmd_set_txsplit_keyword =
> +static cmdline_parse_token_string_t cmd_set_txsplit_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_txsplit_result,
>  				 cmd_keyword, "set");
> -cmdline_parse_token_string_t cmd_set_txsplit_name =
> +static cmdline_parse_token_string_t cmd_set_txsplit_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_txsplit_result,
>  				 txsplit, "txsplit");
> -cmdline_parse_token_string_t cmd_set_txsplit_mode =
> +static cmdline_parse_token_string_t cmd_set_txsplit_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_txsplit_result,
>  				 mode, NULL);
> 
> -cmdline_parse_inst_t cmd_set_txsplit = {
> +static cmdline_parse_inst_t cmd_set_txsplit = {
>  	.f = cmd_set_txsplit_parsed,
>  	.data = NULL,
>  	.help_str = "set txsplit on|off|rand",
> @@ -4093,17 +4093,17 @@ cmd_set_txtimes_parsed(void *parsed_result,
>  		set_tx_pkt_times(tx_times);
>  }
> 
> -cmdline_parse_token_string_t cmd_set_txtimes_keyword =
> +static cmdline_parse_token_string_t cmd_set_txtimes_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_txtimes_result,
>  				 cmd_keyword, "set");
> -cmdline_parse_token_string_t cmd_set_txtimes_name =
> +static cmdline_parse_token_string_t cmd_set_txtimes_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_txtimes_result,
>  				 txtimes, "txtimes");
> -cmdline_parse_token_string_t cmd_set_txtimes_value =
> +static cmdline_parse_token_string_t cmd_set_txtimes_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_txtimes_result,
>  				 tx_times, NULL);
> 
> -cmdline_parse_inst_t cmd_set_txtimes = {
> +static cmdline_parse_inst_t cmd_set_txtimes = {
>  	.f = cmd_set_txtimes_parsed,
>  	.data = NULL,
>  	.help_str = "set txtimes <inter_burst>,<intra_burst>",
> @@ -4136,20 +4136,20 @@ cmd_rx_vlan_filter_all_parsed(void
> *parsed_result,
>  		rx_vlan_all_filter_set(res->port_id, 0);
>  }
> 
> -cmdline_parse_token_string_t cmd_rx_vlan_filter_all_rx_vlan =
> +static cmdline_parse_token_string_t cmd_rx_vlan_filter_all_rx_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
>  				 rx_vlan, "rx_vlan");
> -cmdline_parse_token_string_t cmd_rx_vlan_filter_all_what =
> +static cmdline_parse_token_string_t cmd_rx_vlan_filter_all_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
>  				 what, "add#rm");
> -cmdline_parse_token_string_t cmd_rx_vlan_filter_all_all =
> +static cmdline_parse_token_string_t cmd_rx_vlan_filter_all_all =
>  	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
>  				 all, "all");
> -cmdline_parse_token_num_t cmd_rx_vlan_filter_all_portid =
> +static cmdline_parse_token_num_t cmd_rx_vlan_filter_all_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
>  			      port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_rx_vlan_filter_all = {
> +static cmdline_parse_inst_t cmd_rx_vlan_filter_all = {
>  	.f = cmd_rx_vlan_filter_all_parsed,
>  	.data = NULL,
>  	.help_str = "rx_vlan add|rm all <port_id>: "
> @@ -4236,23 +4236,23 @@ cmd_vlan_offload_parsed(void *parsed_result,
>  	return;
>  }
> 
> -cmdline_parse_token_string_t cmd_vlan_offload_vlan =
> +static cmdline_parse_token_string_t cmd_vlan_offload_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
>  				 vlan, "vlan");
> -cmdline_parse_token_string_t cmd_vlan_offload_set =
> +static cmdline_parse_token_string_t cmd_vlan_offload_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
>  				 set, "set");
> -cmdline_parse_token_string_t cmd_vlan_offload_what =
> +static cmdline_parse_token_string_t cmd_vlan_offload_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
>  				what, "strip#filter#qinq_strip#extend#stripq");
> -cmdline_parse_token_string_t cmd_vlan_offload_on =
> +static cmdline_parse_token_string_t cmd_vlan_offload_on =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
>  			      on, "on#off");
> -cmdline_parse_token_string_t cmd_vlan_offload_portid =
> +static cmdline_parse_token_string_t cmd_vlan_offload_portid =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
>  			      port_id, NULL);
> 
> -cmdline_parse_inst_t cmd_vlan_offload = {
> +static cmdline_parse_inst_t cmd_vlan_offload = {
>  	.f = cmd_vlan_offload_parsed,
>  	.data = NULL,
>  	.help_str = "vlan set strip|filter|qinq_strip|extend|stripq on|off "
> @@ -4297,26 +4297,26 @@ cmd_vlan_tpid_parsed(void *parsed_result,
>  	vlan_tpid_set(res->port_id, vlan_type, res->tp_id);
>  }
> 
> -cmdline_parse_token_string_t cmd_vlan_tpid_vlan =
> +static cmdline_parse_token_string_t cmd_vlan_tpid_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
>  				 vlan, "vlan");
> -cmdline_parse_token_string_t cmd_vlan_tpid_set =
> +static cmdline_parse_token_string_t cmd_vlan_tpid_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
>  				 set, "set");
> -cmdline_parse_token_string_t cmd_vlan_type =
> +static cmdline_parse_token_string_t cmd_vlan_type =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
>  				 vlan_type, "inner#outer");
> -cmdline_parse_token_string_t cmd_vlan_tpid_what =
> +static cmdline_parse_token_string_t cmd_vlan_tpid_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
>  				 what, "tpid");
> -cmdline_parse_token_num_t cmd_vlan_tpid_tpid =
> +static cmdline_parse_token_num_t cmd_vlan_tpid_tpid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_vlan_tpid_result,
>  			      tp_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_vlan_tpid_portid =
> +static cmdline_parse_token_num_t cmd_vlan_tpid_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_vlan_tpid_result,
>  			      port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_vlan_tpid = {
> +static cmdline_parse_inst_t cmd_vlan_tpid = {
>  	.f = cmd_vlan_tpid_parsed,
>  	.data = NULL,
>  	.help_str = "vlan set inner|outer tpid <tp_id> <port_id>: "
> @@ -4353,20 +4353,20 @@ cmd_rx_vlan_filter_parsed(void *parsed_result,
>  		rx_vft_set(res->port_id, res->vlan_id, 0);
>  }
> 
> -cmdline_parse_token_string_t cmd_rx_vlan_filter_rx_vlan =
> +static cmdline_parse_token_string_t cmd_rx_vlan_filter_rx_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_result,
>  				 rx_vlan, "rx_vlan");
> -cmdline_parse_token_string_t cmd_rx_vlan_filter_what =
> +static cmdline_parse_token_string_t cmd_rx_vlan_filter_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_result,
>  				 what, "add#rm");
> -cmdline_parse_token_num_t cmd_rx_vlan_filter_vlanid =
> +static cmdline_parse_token_num_t cmd_rx_vlan_filter_vlanid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_rx_vlan_filter_result,
>  			      vlan_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_rx_vlan_filter_portid =
> +static cmdline_parse_token_num_t cmd_rx_vlan_filter_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_rx_vlan_filter_result,
>  			      port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_rx_vlan_filter = {
> +static cmdline_parse_inst_t cmd_rx_vlan_filter = {
>  	.f = cmd_rx_vlan_filter_parsed,
>  	.data = NULL,
>  	.help_str = "rx_vlan add|rm <vlan_id> <port_id>: "
> @@ -4409,20 +4409,20 @@ cmd_tx_vlan_set_parsed(void *parsed_result,
>  	cmd_reconfig_device_queue(res->port_id, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_tx_vlan_set_tx_vlan =
> +static cmdline_parse_token_string_t cmd_tx_vlan_set_tx_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_result,
>  				 tx_vlan, "tx_vlan");
> -cmdline_parse_token_string_t cmd_tx_vlan_set_set =
> +static cmdline_parse_token_string_t cmd_tx_vlan_set_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_result,
>  				 set, "set");
> -cmdline_parse_token_num_t cmd_tx_vlan_set_portid =
> +static cmdline_parse_token_num_t cmd_tx_vlan_set_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_result,
>  			      port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_tx_vlan_set_vlanid =
> +static cmdline_parse_token_num_t cmd_tx_vlan_set_vlanid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_result,
>  			      vlan_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_tx_vlan_set = {
> +static cmdline_parse_inst_t cmd_tx_vlan_set = {
>  	.f = cmd_tx_vlan_set_parsed,
>  	.data = NULL,
>  	.help_str = "tx_vlan set <port_id> <vlan_id>: "
> @@ -4466,23 +4466,23 @@ cmd_tx_vlan_set_qinq_parsed(void
> *parsed_result,
>  	cmd_reconfig_device_queue(res->port_id, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_tx_vlan =
> +static cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_tx_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
>  		tx_vlan, "tx_vlan");
> -cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_set =
> +static cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
>  		set, "set");
> -cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_portid =
> +static cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
>  		port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid =
> +static cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
>  		vlan_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid_outer =
> +static cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid_outer =
>  	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
>  		vlan_id_outer, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_tx_vlan_set_qinq = {
> +static cmdline_parse_inst_t cmd_tx_vlan_set_qinq = {
>  	.f = cmd_tx_vlan_set_qinq_parsed,
>  	.data = NULL,
>  	.help_str = "tx_vlan set <port_id> <vlan_id> <outer_vlan_id>: "
> @@ -4521,26 +4521,26 @@ cmd_tx_vlan_set_pvid_parsed(void
> *parsed_result,
>  		tx_vlan_pvid_set(res->port_id, res->vlan_id, 0);
>  }
> 
> -cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_tx_vlan =
> +static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_tx_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
>  				 tx_vlan, "tx_vlan");
> -cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_set =
> +static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
>  				 set, "set");
> -cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_pvid =
> +static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_pvid =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
>  				 pvid, "pvid");
> -cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_port_id =
> +static cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
>  			     port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_vlan_id =
> +static cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_vlan_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
>  			      vlan_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_mode =
> +static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
>  				 mode, "on#off");
> 
> -cmdline_parse_inst_t cmd_tx_vlan_set_pvid = {
> +static cmdline_parse_inst_t cmd_tx_vlan_set_pvid = {
>  	.f = cmd_tx_vlan_set_pvid_parsed,
>  	.data = NULL,
>  	.help_str = "tx_vlan set pvid <port_id> <vlan_id> on|off",
> @@ -4582,17 +4582,17 @@ cmd_tx_vlan_reset_parsed(void *parsed_result,
>  	cmd_reconfig_device_queue(res->port_id, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_tx_vlan_reset_tx_vlan =
> +static cmdline_parse_token_string_t cmd_tx_vlan_reset_tx_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_reset_result,
>  				 tx_vlan, "tx_vlan");
> -cmdline_parse_token_string_t cmd_tx_vlan_reset_reset =
> +static cmdline_parse_token_string_t cmd_tx_vlan_reset_reset =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_reset_result,
>  				 reset, "reset");
> -cmdline_parse_token_num_t cmd_tx_vlan_reset_portid =
> +static cmdline_parse_token_num_t cmd_tx_vlan_reset_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_reset_result,
>  			      port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_tx_vlan_reset = {
> +static cmdline_parse_inst_t cmd_tx_vlan_reset = {
>  	.f = cmd_tx_vlan_reset_parsed,
>  	.data = NULL,
>  	.help_str = "tx_vlan reset <port_id>: Disable hardware insertion of a "
> @@ -4794,23 +4794,23 @@ cmd_csum_parsed(void *parsed_result,
>  	cmd_reconfig_device_queue(res->port_id, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_csum_csum =
> +static cmdline_parse_token_string_t cmd_csum_csum =
>  	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
>  				csum, "csum");
> -cmdline_parse_token_string_t cmd_csum_mode =
> +static cmdline_parse_token_string_t cmd_csum_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
>  				mode, "set");
> -cmdline_parse_token_string_t cmd_csum_proto =
> +static cmdline_parse_token_string_t cmd_csum_proto =
>  	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
>  				proto, "ip#tcp#udp#sctp#outer-ip#outer-
> udp");
> -cmdline_parse_token_string_t cmd_csum_hwsw =
> +static cmdline_parse_token_string_t cmd_csum_hwsw =
>  	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
>  				hwsw, "hw#sw");
> -cmdline_parse_token_num_t cmd_csum_portid =
> +static cmdline_parse_token_num_t cmd_csum_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_csum_result,
>  				port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_csum_set = {
> +static cmdline_parse_inst_t cmd_csum_set = {
>  	.f = cmd_csum_parsed,
>  	.data = NULL,
>  	.help_str = "csum set ip|tcp|udp|sctp|outer-ip|outer-udp hw|sw
> <port_id>: "
> @@ -4826,11 +4826,11 @@ cmdline_parse_inst_t cmd_csum_set = {
>  	},
>  };
> 
> -cmdline_parse_token_string_t cmd_csum_mode_show =
> +static cmdline_parse_token_string_t cmd_csum_mode_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
>  				mode, "show");
> 
> -cmdline_parse_inst_t cmd_csum_show = {
> +static cmdline_parse_inst_t cmd_csum_show = {
>  	.f = cmd_csum_parsed,
>  	.data = NULL,
>  	.help_str = "csum show <port_id>: Show checksum offload
> configuration",
> @@ -4868,20 +4868,20 @@ cmd_csum_tunnel_parsed(void *parsed_result,
>  	csum_show(res->port_id);
>  }
> 
> -cmdline_parse_token_string_t cmd_csum_tunnel_csum =
> +static cmdline_parse_token_string_t cmd_csum_tunnel_csum =
>  	TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
>  				csum, "csum");
> -cmdline_parse_token_string_t cmd_csum_tunnel_parse =
> +static cmdline_parse_token_string_t cmd_csum_tunnel_parse =
>  	TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
>  				parse, "parse-tunnel");
> -cmdline_parse_token_string_t cmd_csum_tunnel_onoff =
> +static cmdline_parse_token_string_t cmd_csum_tunnel_onoff =
>  	TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
>  				onoff, "on#off");
> -cmdline_parse_token_num_t cmd_csum_tunnel_portid =
> +static cmdline_parse_token_num_t cmd_csum_tunnel_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_csum_tunnel_result,
>  				port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_csum_tunnel = {
> +static cmdline_parse_inst_t cmd_csum_tunnel = {
>  	.f = cmd_csum_tunnel_parsed,
>  	.data = NULL,
>  	.help_str = "csum parse-tunnel on|off <port_id>: "
> @@ -4960,20 +4960,20 @@ cmd_tso_set_parsed(void *parsed_result,
>  	cmd_reconfig_device_queue(res->port_id, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_tso_set_tso =
> +static cmdline_parse_token_string_t cmd_tso_set_tso =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tso_set_result,
>  				tso, "tso");
> -cmdline_parse_token_string_t cmd_tso_set_mode =
> +static cmdline_parse_token_string_t cmd_tso_set_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tso_set_result,
>  				mode, "set");
> -cmdline_parse_token_num_t cmd_tso_set_tso_segsz =
> +static cmdline_parse_token_num_t cmd_tso_set_tso_segsz =
>  	TOKEN_NUM_INITIALIZER(struct cmd_tso_set_result,
>  				tso_segsz, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_tso_set_portid =
> +static cmdline_parse_token_num_t cmd_tso_set_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_tso_set_result,
>  				port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_tso_set = {
> +static cmdline_parse_inst_t cmd_tso_set = {
>  	.f = cmd_tso_set_parsed,
>  	.data = NULL,
>  	.help_str = "tso set <tso_segsz> <port_id>: "
> @@ -4988,12 +4988,12 @@ cmdline_parse_inst_t cmd_tso_set = {
>  	},
>  };
> 
> -cmdline_parse_token_string_t cmd_tso_show_mode =
> +static cmdline_parse_token_string_t cmd_tso_show_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tso_set_result,
>  				mode, "show");
> 
> 
> -cmdline_parse_inst_t cmd_tso_show = {
> +static cmdline_parse_inst_t cmd_tso_show = {
>  	.f = cmd_tso_set_parsed,
>  	.data = NULL,
>  	.help_str = "tso show <port_id>: "
> @@ -5115,20 +5115,20 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
>  	cmd_reconfig_device_queue(res->port_id, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_tunnel_tso_set_tso =
> +static cmdline_parse_token_string_t cmd_tunnel_tso_set_tso =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_tso_set_result,
>  				tso, "tunnel_tso");
> -cmdline_parse_token_string_t cmd_tunnel_tso_set_mode =
> +static cmdline_parse_token_string_t cmd_tunnel_tso_set_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_tso_set_result,
>  				mode, "set");
> -cmdline_parse_token_num_t cmd_tunnel_tso_set_tso_segsz =
> +static cmdline_parse_token_num_t cmd_tunnel_tso_set_tso_segsz =
>  	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_tso_set_result,
>  				tso_segsz, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_tunnel_tso_set_portid =
> +static cmdline_parse_token_num_t cmd_tunnel_tso_set_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_tso_set_result,
>  				port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_tunnel_tso_set = {
> +static cmdline_parse_inst_t cmd_tunnel_tso_set = {
>  	.f = cmd_tunnel_tso_set_parsed,
>  	.data = NULL,
>  	.help_str = "tunnel_tso set <tso_segsz> <port_id>: "
> @@ -5143,12 +5143,12 @@ cmdline_parse_inst_t cmd_tunnel_tso_set = {
>  	},
>  };
> 
> -cmdline_parse_token_string_t cmd_tunnel_tso_show_mode =
> +static cmdline_parse_token_string_t cmd_tunnel_tso_show_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_tso_set_result,
>  				mode, "show");
> 
> 
> -cmdline_parse_inst_t cmd_tunnel_tso_show = {
> +static cmdline_parse_inst_t cmd_tunnel_tso_show = {
>  	.f = cmd_tunnel_tso_set_parsed,
>  	.data = NULL,
>  	.help_str = "tunnel_tso show <port_id> "
> @@ -5183,23 +5183,23 @@ cmd_gro_enable_parsed(void *parsed_result,
>  		setup_gro(res->cmd_onoff, res->cmd_pid);
>  }
> 
> -cmdline_parse_token_string_t cmd_gro_enable_set =
> +static cmdline_parse_token_string_t cmd_gro_enable_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
>  			cmd_set, "set");
> -cmdline_parse_token_string_t cmd_gro_enable_port =
> +static cmdline_parse_token_string_t cmd_gro_enable_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
>  			cmd_keyword, "port");
> -cmdline_parse_token_num_t cmd_gro_enable_pid =
> +static cmdline_parse_token_num_t cmd_gro_enable_pid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_gro_enable_result,
>  			cmd_pid, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_gro_enable_keyword =
> +static cmdline_parse_token_string_t cmd_gro_enable_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
>  			cmd_keyword, "gro");
> -cmdline_parse_token_string_t cmd_gro_enable_onoff =
> +static cmdline_parse_token_string_t cmd_gro_enable_onoff =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
>  			cmd_onoff, "on#off");
> 
> -cmdline_parse_inst_t cmd_gro_enable = {
> +static cmdline_parse_inst_t cmd_gro_enable = {
>  	.f = cmd_gro_enable_parsed,
>  	.data = NULL,
>  	.help_str = "set port <port_id> gro on|off",
> @@ -5233,20 +5233,20 @@ cmd_gro_show_parsed(void *parsed_result,
>  		show_gro(res->cmd_pid);
>  }
> 
> -cmdline_parse_token_string_t cmd_gro_show_show =
> +static cmdline_parse_token_string_t cmd_gro_show_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gro_show_result,
>  			cmd_show, "show");
> -cmdline_parse_token_string_t cmd_gro_show_port =
> +static cmdline_parse_token_string_t cmd_gro_show_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gro_show_result,
>  			cmd_port, "port");
> -cmdline_parse_token_num_t cmd_gro_show_pid =
> +static cmdline_parse_token_num_t cmd_gro_show_pid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_gro_show_result,
>  			cmd_pid, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_gro_show_keyword =
> +static cmdline_parse_token_string_t cmd_gro_show_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gro_show_result,
>  			cmd_keyword, "gro");
> 
> -cmdline_parse_inst_t cmd_gro_show = {
> +static cmdline_parse_inst_t cmd_gro_show = {
>  	.f = cmd_gro_show_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> gro",
> @@ -5280,20 +5280,20 @@ cmd_gro_flush_parsed(void *parsed_result,
>  		setup_gro_flush_cycles(res->cmd_cycles);
>  }
> 
> -cmdline_parse_token_string_t cmd_gro_flush_set =
> +static cmdline_parse_token_string_t cmd_gro_flush_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gro_flush_result,
>  			cmd_set, "set");
> -cmdline_parse_token_string_t cmd_gro_flush_keyword =
> +static cmdline_parse_token_string_t cmd_gro_flush_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gro_flush_result,
>  			cmd_keyword, "gro");
> -cmdline_parse_token_string_t cmd_gro_flush_flush =
> +static cmdline_parse_token_string_t cmd_gro_flush_flush =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gro_flush_result,
>  			cmd_flush, "flush");
> -cmdline_parse_token_num_t cmd_gro_flush_cycles =
> +static cmdline_parse_token_num_t cmd_gro_flush_cycles =
>  	TOKEN_NUM_INITIALIZER(struct cmd_gro_flush_result,
>  			cmd_cycles, RTE_UINT8);
> 
> -cmdline_parse_inst_t cmd_gro_flush = {
> +static cmdline_parse_inst_t cmd_gro_flush = {
>  	.f = cmd_gro_flush_parsed,
>  	.data = NULL,
>  	.help_str = "set gro flush <cycles>",
> @@ -5329,23 +5329,23 @@ cmd_gso_enable_parsed(void *parsed_result,
>  		setup_gso(res->cmd_mode, res->cmd_pid);
>  }
> 
> -cmdline_parse_token_string_t cmd_gso_enable_set =
> +static cmdline_parse_token_string_t cmd_gso_enable_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
>  			cmd_set, "set");
> -cmdline_parse_token_string_t cmd_gso_enable_port =
> +static cmdline_parse_token_string_t cmd_gso_enable_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
>  			cmd_port, "port");
> -cmdline_parse_token_string_t cmd_gso_enable_keyword =
> +static cmdline_parse_token_string_t cmd_gso_enable_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
>  			cmd_keyword, "gso");
> -cmdline_parse_token_string_t cmd_gso_enable_mode =
> +static cmdline_parse_token_string_t cmd_gso_enable_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
>  			cmd_mode, "on#off");
> -cmdline_parse_token_num_t cmd_gso_enable_pid =
> +static cmdline_parse_token_num_t cmd_gso_enable_pid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_gso_enable_result,
>  			cmd_pid, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_gso_enable = {
> +static cmdline_parse_inst_t cmd_gso_enable = {
>  	.f = cmd_gso_enable_parsed,
>  	.data = NULL,
>  	.help_str = "set port <port_id> gso on|off",
> @@ -5391,20 +5391,20 @@ cmd_gso_size_parsed(void *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_gso_size_set =
> +static cmdline_parse_token_string_t cmd_gso_size_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gso_size_result,
>  				cmd_set, "set");
> -cmdline_parse_token_string_t cmd_gso_size_keyword =
> +static cmdline_parse_token_string_t cmd_gso_size_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gso_size_result,
>  				cmd_keyword, "gso");
> -cmdline_parse_token_string_t cmd_gso_size_segsz =
> +static cmdline_parse_token_string_t cmd_gso_size_segsz =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gso_size_result,
>  				cmd_segsz, "segsz");
> -cmdline_parse_token_num_t cmd_gso_size_size =
> +static cmdline_parse_token_num_t cmd_gso_size_size =
>  	TOKEN_NUM_INITIALIZER(struct cmd_gso_size_result,
>  				cmd_size, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_gso_size = {
> +static cmdline_parse_inst_t cmd_gso_size = {
>  	.f = cmd_gso_size_parsed,
>  	.data = NULL,
>  	.help_str = "set gso segsz <length>",
> @@ -5449,20 +5449,20 @@ cmd_gso_show_parsed(void *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_gso_show_show =
> +static cmdline_parse_token_string_t cmd_gso_show_show =
>  TOKEN_STRING_INITIALIZER(struct cmd_gso_show_result,
>  		cmd_show, "show");
> -cmdline_parse_token_string_t cmd_gso_show_port =
> +static cmdline_parse_token_string_t cmd_gso_show_port =
>  TOKEN_STRING_INITIALIZER(struct cmd_gso_show_result,
>  		cmd_port, "port");
> -cmdline_parse_token_string_t cmd_gso_show_keyword =
> +static cmdline_parse_token_string_t cmd_gso_show_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_gso_show_result,
>  				cmd_keyword, "gso");
> -cmdline_parse_token_num_t cmd_gso_show_pid =
> +static cmdline_parse_token_num_t cmd_gso_show_pid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_gso_show_result,
>  				cmd_pid, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_gso_show = {
> +static cmdline_parse_inst_t cmd_gso_show = {
>  	.f = cmd_gso_show_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> gso",
> @@ -5498,18 +5498,18 @@ cmd_set_flush_rx_parsed(void *parsed_result,
>  	no_flush_rx = (uint8_t)((strcmp(res->mode, "on") == 0) ? 0 : 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_setflushrx_set =
> +static cmdline_parse_token_string_t cmd_setflushrx_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_flush_rx,
>  			set, "set");
> -cmdline_parse_token_string_t cmd_setflushrx_flush_rx =
> +static cmdline_parse_token_string_t cmd_setflushrx_flush_rx =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_flush_rx,
>  			flush_rx, "flush_rx");
> -cmdline_parse_token_string_t cmd_setflushrx_mode =
> +static cmdline_parse_token_string_t cmd_setflushrx_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_flush_rx,
>  			mode, "on#off");
> 
> 
> -cmdline_parse_inst_t cmd_set_flush_rx = {
> +static cmdline_parse_inst_t cmd_set_flush_rx = {
>  	.f = cmd_set_flush_rx_parsed,
>  	.help_str = "set flush_rx on|off: Enable/Disable flush on rx streams",
>  	.data = NULL,
> @@ -5537,18 +5537,18 @@ cmd_set_link_check_parsed(void *parsed_result,
>  	no_link_check = (uint8_t)((strcmp(res->mode, "on") == 0) ? 0 : 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_setlinkcheck_set =
> +static cmdline_parse_token_string_t cmd_setlinkcheck_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_link_check,
>  			set, "set");
> -cmdline_parse_token_string_t cmd_setlinkcheck_link_check =
> +static cmdline_parse_token_string_t cmd_setlinkcheck_link_check =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_link_check,
>  			link_check, "link_check");
> -cmdline_parse_token_string_t cmd_setlinkcheck_mode =
> +static cmdline_parse_token_string_t cmd_setlinkcheck_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_link_check,
>  			mode, "on#off");
> 
> 
> -cmdline_parse_inst_t cmd_set_link_check = {
> +static cmdline_parse_inst_t cmd_set_link_check = {
>  	.f = cmd_set_link_check_parsed,
>  	.help_str = "set link_check on|off: Enable/Disable link status check "
>  	            "when starting/stopping a port",
> @@ -5597,23 +5597,23 @@ cmd_set_bypass_mode_parsed(void
> *parsed_result,
>  			port_id);
>  }
> 
> -cmdline_parse_token_string_t cmd_setbypass_mode_set =
> +static cmdline_parse_token_string_t cmd_setbypass_mode_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
>  			set, "set");
> -cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
> +static cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
>  			bypass, "bypass");
> -cmdline_parse_token_string_t cmd_setbypass_mode_mode =
> +static cmdline_parse_token_string_t cmd_setbypass_mode_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
>  			mode, "mode");
> -cmdline_parse_token_string_t cmd_setbypass_mode_value =
> +static cmdline_parse_token_string_t cmd_setbypass_mode_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
>  			value, "normal#bypass#isolate");
> -cmdline_parse_token_num_t cmd_setbypass_mode_port =
> +static cmdline_parse_token_num_t cmd_setbypass_mode_port =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_mode_result,
>  				port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_set_bypass_mode = {
> +static cmdline_parse_inst_t cmd_set_bypass_mode = {
>  	.f = cmd_set_bypass_mode_parsed,
>  	.help_str = "set bypass mode normal|bypass|isolate <port_id>: "
>  	            "Set the NIC bypass mode for port_id",
> @@ -5697,29 +5697,29 @@ cmd_set_bypass_event_parsed(void
> *parsed_result,
>  			port_id);
>  }
> 
> -cmdline_parse_token_string_t cmd_setbypass_event_set =
> +static cmdline_parse_token_string_t cmd_setbypass_event_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
>  			set, "set");
> -cmdline_parse_token_string_t cmd_setbypass_event_bypass =
> +static cmdline_parse_token_string_t cmd_setbypass_event_bypass =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
>  			bypass, "bypass");
> -cmdline_parse_token_string_t cmd_setbypass_event_event =
> +static cmdline_parse_token_string_t cmd_setbypass_event_event =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
>  			event, "event");
> -cmdline_parse_token_string_t cmd_setbypass_event_event_value =
> +static cmdline_parse_token_string_t cmd_setbypass_event_event_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
>  			event_value,
> "none#timeout#os_off#os_on#power_on#power_off");
> -cmdline_parse_token_string_t cmd_setbypass_event_mode =
> +static cmdline_parse_token_string_t cmd_setbypass_event_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
>  			mode, "mode");
> -cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
> +static cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
>  			mode_value, "normal#bypass#isolate");
> -cmdline_parse_token_num_t cmd_setbypass_event_port =
> +static cmdline_parse_token_num_t cmd_setbypass_event_port =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_event_result,
>  				port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_set_bypass_event = {
> +static cmdline_parse_inst_t cmd_set_bypass_event = {
>  	.f = cmd_set_bypass_event_parsed,
>  	.help_str = "set bypass event
> none|timeout|os_on|os_off|power_on|"
>  		"power_off mode normal|bypass|isolate <port_id>: "
> @@ -5773,20 +5773,20 @@ cmd_set_bypass_timeout_parsed(void
> *parsed_result,
>  #endif
>  }
> 
> -cmdline_parse_token_string_t cmd_setbypass_timeout_set =
> +static cmdline_parse_token_string_t cmd_setbypass_timeout_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
>  			set, "set");
> -cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
> +static cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
>  			bypass, "bypass");
> -cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
> +static cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
>  			timeout, "timeout");
> -cmdline_parse_token_string_t cmd_setbypass_timeout_value =
> +static cmdline_parse_token_string_t cmd_setbypass_timeout_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
>  			value, "0#1.5#2#3#4#8#16#32");
> 
> -cmdline_parse_inst_t cmd_set_bypass_timeout = {
> +static cmdline_parse_inst_t cmd_set_bypass_timeout = {
>  	.f = cmd_set_bypass_timeout_parsed,
>  	.help_str = "set bypass timeout 0|1.5|2|3|4|8|16|32: "
>  		"Set the NIC bypass watchdog timeout in seconds",
> @@ -5875,20 +5875,20 @@ cmd_show_bypass_config_parsed(void
> *parsed_result,
>  		       port_id);
>  }
> 
> -cmdline_parse_token_string_t cmd_showbypass_config_show =
> +static cmdline_parse_token_string_t cmd_showbypass_config_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
>  			show, "show");
> -cmdline_parse_token_string_t cmd_showbypass_config_bypass =
> +static cmdline_parse_token_string_t cmd_showbypass_config_bypass =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
>  			bypass, "bypass");
> -cmdline_parse_token_string_t cmd_showbypass_config_config =
> +static cmdline_parse_token_string_t cmd_showbypass_config_config =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
>  			config, "config");
> -cmdline_parse_token_num_t cmd_showbypass_config_port =
> +static cmdline_parse_token_num_t cmd_showbypass_config_port =
>  	TOKEN_NUM_INITIALIZER(struct cmd_show_bypass_config_result,
>  				port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_show_bypass_config = {
> +static cmdline_parse_inst_t cmd_show_bypass_config = {
>  	.f = cmd_show_bypass_config_parsed,
>  	.help_str = "show bypass config <port_id>: "
>  	            "Show the NIC bypass config for port_id",
> @@ -5938,23 +5938,23 @@ static void cmd_set_bonding_mode_parsed(void
> *parsed_result,
>  			port_id);
>  }
> 
> -cmdline_parse_token_string_t cmd_setbonding_mode_set =
> +static cmdline_parse_token_string_t cmd_setbonding_mode_set =
>  TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
>  		set, "set");
> -cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
> +static cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
>  TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
>  		bonding, "bonding");
> -cmdline_parse_token_string_t cmd_setbonding_mode_mode =
> +static cmdline_parse_token_string_t cmd_setbonding_mode_mode =
>  TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
>  		mode, "mode");
> -cmdline_parse_token_num_t cmd_setbonding_mode_value =
> +static cmdline_parse_token_num_t cmd_setbonding_mode_value =
>  TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
>  		value, RTE_UINT8);
> -cmdline_parse_token_num_t cmd_setbonding_mode_port =
> +static cmdline_parse_token_num_t cmd_setbonding_mode_port =
>  TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
>  		port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_set_bonding_mode = {
> +static cmdline_parse_inst_t cmd_set_bonding_mode = {
>  		.f = cmd_set_bonding_mode_parsed,
>  		.help_str = "set bonding mode <mode_value> <port_id>: "
>  			"Set the bonding mode for port_id",
> @@ -6012,26 +6012,26 @@ static void
> cmd_set_bonding_lacp_dedicated_queues_parsed(void *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
> +static cmdline_parse_token_string_t
> cmd_setbonding_lacp_dedicated_queues_set =
>  TOKEN_STRING_INITIALIZER(struct
> cmd_set_bonding_lacp_dedicated_queues_result,
>  		set, "set");
> -cmdline_parse_token_string_t
> cmd_setbonding_lacp_dedicated_queues_bonding =
> +static cmdline_parse_token_string_t
> cmd_setbonding_lacp_dedicated_queues_bonding =
>  TOKEN_STRING_INITIALIZER(struct
> cmd_set_bonding_lacp_dedicated_queues_result,
>  		bonding, "bonding");
> -cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp
> =
> +static cmdline_parse_token_string_t
> cmd_setbonding_lacp_dedicated_queues_lacp =
>  TOKEN_STRING_INITIALIZER(struct
> cmd_set_bonding_lacp_dedicated_queues_result,
>  		lacp, "lacp");
> -cmdline_parse_token_string_t
> cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
> +static cmdline_parse_token_string_t
> cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
>  TOKEN_STRING_INITIALIZER(struct
> cmd_set_bonding_lacp_dedicated_queues_result,
>  		dedicated_queues, "dedicated_queues");
> -cmdline_parse_token_num_t
> cmd_setbonding_lacp_dedicated_queues_port_id =
> +static cmdline_parse_token_num_t
> cmd_setbonding_lacp_dedicated_queues_port_id =
>  TOKEN_NUM_INITIALIZER(struct
> cmd_set_bonding_lacp_dedicated_queues_result,
>  		port_id, RTE_UINT16);
> -cmdline_parse_token_string_t
> cmd_setbonding_lacp_dedicated_queues_mode =
> +static cmdline_parse_token_string_t
> cmd_setbonding_lacp_dedicated_queues_mode =
>  TOKEN_STRING_INITIALIZER(struct
> cmd_set_bonding_lacp_dedicated_queues_result,
>  		mode, "enable#disable");
> 
> -cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
> +static cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
>  		.f = cmd_set_bonding_lacp_dedicated_queues_parsed,
>  		.help_str = "set bonding lacp dedicated_queues <port_id> "
>  			"enable|disable: "
> @@ -6084,23 +6084,23 @@ static void
> cmd_set_bonding_balance_xmit_policy_parsed(void *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
> +static cmdline_parse_token_string_t
> cmd_setbonding_balance_xmit_policy_set =
>  TOKEN_STRING_INITIALIZER(struct
> cmd_set_bonding_balance_xmit_policy_result,
>  		set, "set");
> -cmdline_parse_token_string_t
> cmd_setbonding_balance_xmit_policy_bonding =
> +static cmdline_parse_token_string_t
> cmd_setbonding_balance_xmit_policy_bonding =
>  TOKEN_STRING_INITIALIZER(struct
> cmd_set_bonding_balance_xmit_policy_result,
>  		bonding, "bonding");
> -cmdline_parse_token_string_t
> cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
> +static cmdline_parse_token_string_t
> cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
>  TOKEN_STRING_INITIALIZER(struct
> cmd_set_bonding_balance_xmit_policy_result,
>  		balance_xmit_policy, "balance_xmit_policy");
> -cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
> +static cmdline_parse_token_num_t
> cmd_setbonding_balance_xmit_policy_port =
>  TOKEN_NUM_INITIALIZER(struct
> cmd_set_bonding_balance_xmit_policy_result,
>  		port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
> +static cmdline_parse_token_string_t
> cmd_setbonding_balance_xmit_policy_policy =
>  TOKEN_STRING_INITIALIZER(struct
> cmd_set_bonding_balance_xmit_policy_result,
>  		policy, "l2#l23#l34");
> 
> -cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
> +static cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
>  		.f = cmd_set_bonding_balance_xmit_policy_parsed,
>  		.help_str = "set bonding balance_xmit_policy <port_id> "
>  			"l2|l23|l34: "
> @@ -6265,23 +6265,23 @@ static void
> cmd_show_bonding_lacp_info_parsed(void *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
> +static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
>  TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
>  		show, "show");
> -cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
> +static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding
> =
>  TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
>  		bonding, "bonding");
> -cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
> +static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
>  TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
>  		bonding, "lacp");
> -cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
> +static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
>  TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
>  		info, "info");
> -cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
> +static cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
>  TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
>  		port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
> +static cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
>  		.f = cmd_show_bonding_lacp_info_parsed,
>  		.help_str = "show bonding lacp info <port_id> : "
>  			"Show bonding IEEE802.3 information for port_id",
> @@ -6419,20 +6419,20 @@ static void
> cmd_show_bonding_config_parsed(void *parsed_result,
> 
>  }
> 
> -cmdline_parse_token_string_t cmd_showbonding_config_show =
> +static cmdline_parse_token_string_t cmd_showbonding_config_show =
>  TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
>  		show, "show");
> -cmdline_parse_token_string_t cmd_showbonding_config_bonding =
> +static cmdline_parse_token_string_t cmd_showbonding_config_bonding =
>  TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
>  		bonding, "bonding");
> -cmdline_parse_token_string_t cmd_showbonding_config_config =
> +static cmdline_parse_token_string_t cmd_showbonding_config_config =
>  TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
>  		config, "config");
> -cmdline_parse_token_num_t cmd_showbonding_config_port =
> +static cmdline_parse_token_num_t cmd_showbonding_config_port =
>  TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_config_result,
>  		port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_show_bonding_config = {
> +static cmdline_parse_inst_t cmd_show_bonding_config = {
>  		.f = cmd_show_bonding_config_parsed,
>  		.help_str = "show bonding config <port_id>: "
>  			"Show the bonding config for port_id",
> @@ -6472,23 +6472,23 @@ static void
> cmd_set_bonding_primary_parsed(void *parsed_result,
>  	init_port_config();
>  }
> 
> -cmdline_parse_token_string_t cmd_setbonding_primary_set =
> +static cmdline_parse_token_string_t cmd_setbonding_primary_set =
>  TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
>  		set, "set");
> -cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
> +static cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
>  TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
>  		bonding, "bonding");
> -cmdline_parse_token_string_t cmd_setbonding_primary_primary =
> +static cmdline_parse_token_string_t cmd_setbonding_primary_primary =
>  TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
>  		primary, "primary");
> -cmdline_parse_token_num_t cmd_setbonding_primary_slave =
> +static cmdline_parse_token_num_t cmd_setbonding_primary_slave =
>  TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
>  		slave_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_setbonding_primary_port =
> +static cmdline_parse_token_num_t cmd_setbonding_primary_port =
>  TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
>  		port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_set_bonding_primary = {
> +static cmdline_parse_inst_t cmd_set_bonding_primary = {
>  		.f = cmd_set_bonding_primary_parsed,
>  		.help_str = "set bonding primary <slave_id> <port_id>: "
>  			"Set the primary slave for port_id",
> @@ -6531,23 +6531,23 @@ static void cmd_add_bonding_slave_parsed(void
> *parsed_result,
>  	set_port_slave_flag(slave_port_id);
>  }
> 
> -cmdline_parse_token_string_t cmd_addbonding_slave_add =
> +static cmdline_parse_token_string_t cmd_addbonding_slave_add =
>  TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
>  		add, "add");
> -cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
> +static cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
>  TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
>  		bonding, "bonding");
> -cmdline_parse_token_string_t cmd_addbonding_slave_slave =
> +static cmdline_parse_token_string_t cmd_addbonding_slave_slave =
>  TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
>  		slave, "slave");
> -cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
> +static cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
>  TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
>  		slave_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_addbonding_slave_port =
> +static cmdline_parse_token_num_t cmd_addbonding_slave_port =
>  TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
>  		port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_add_bonding_slave = {
> +static cmdline_parse_inst_t cmd_add_bonding_slave = {
>  		.f = cmd_add_bonding_slave_parsed,
>  		.help_str = "add bonding slave <slave_id> <port_id>: "
>  			"Add a slave device to a bonded device",
> @@ -6590,23 +6590,23 @@ static void
> cmd_remove_bonding_slave_parsed(void *parsed_result,
>  	clear_port_slave_flag(slave_port_id);
>  }
> 
> -cmdline_parse_token_string_t cmd_removebonding_slave_remove =
> +static cmdline_parse_token_string_t cmd_removebonding_slave_remove =
>  		TOKEN_STRING_INITIALIZER(struct
> cmd_remove_bonding_slave_result,
>  				remove, "remove");
> -cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
> +static cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
>  		TOKEN_STRING_INITIALIZER(struct
> cmd_remove_bonding_slave_result,
>  				bonding, "bonding");
> -cmdline_parse_token_string_t cmd_removebonding_slave_slave =
> +static cmdline_parse_token_string_t cmd_removebonding_slave_slave =
>  		TOKEN_STRING_INITIALIZER(struct
> cmd_remove_bonding_slave_result,
>  				slave, "slave");
> -cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
> +static cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
>  		TOKEN_NUM_INITIALIZER(struct
> cmd_remove_bonding_slave_result,
>  				slave_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_removebonding_slave_port =
> +static cmdline_parse_token_num_t cmd_removebonding_slave_port =
>  		TOKEN_NUM_INITIALIZER(struct
> cmd_remove_bonding_slave_result,
>  				port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_remove_bonding_slave = {
> +static cmdline_parse_inst_t cmd_remove_bonding_slave = {
>  		.f = cmd_remove_bonding_slave_parsed,
>  		.help_str = "remove bonding slave <slave_id> <port_id>: "
>  			"Remove a slave device from a bonded device",
> @@ -6673,23 +6673,23 @@ static void
> cmd_create_bonded_device_parsed(void *parsed_result,
> 
>  }
> 
> -cmdline_parse_token_string_t cmd_createbonded_device_create =
> +static cmdline_parse_token_string_t cmd_createbonded_device_create =
>  		TOKEN_STRING_INITIALIZER(struct
> cmd_create_bonded_device_result,
>  				create, "create");
> -cmdline_parse_token_string_t cmd_createbonded_device_bonded =
> +static cmdline_parse_token_string_t cmd_createbonded_device_bonded =
>  		TOKEN_STRING_INITIALIZER(struct
> cmd_create_bonded_device_result,
>  				bonded, "bonded");
> -cmdline_parse_token_string_t cmd_createbonded_device_device =
> +static cmdline_parse_token_string_t cmd_createbonded_device_device =
>  		TOKEN_STRING_INITIALIZER(struct
> cmd_create_bonded_device_result,
>  				device, "device");
> -cmdline_parse_token_num_t cmd_createbonded_device_mode =
> +static cmdline_parse_token_num_t cmd_createbonded_device_mode =
>  		TOKEN_NUM_INITIALIZER(struct
> cmd_create_bonded_device_result,
>  				mode, RTE_UINT8);
> -cmdline_parse_token_num_t cmd_createbonded_device_socket =
> +static cmdline_parse_token_num_t cmd_createbonded_device_socket =
>  		TOKEN_NUM_INITIALIZER(struct
> cmd_create_bonded_device_result,
>  				socket, RTE_UINT8);
> 
> -cmdline_parse_inst_t cmd_create_bonded_device = {
> +static cmdline_parse_inst_t cmd_create_bonded_device = {
>  		.f = cmd_create_bonded_device_parsed,
>  		.help_str = "create bonded device <mode> <socket>: "
>  			"Create a new bonded device with specific bonding
> mode and socket",
> @@ -6731,21 +6731,21 @@ static void
> cmd_set_bond_mac_addr_parsed(void *parsed_result,
>  			strerror(-ret));
>  }
> 
> -cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
> +static cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
>  		TOKEN_STRING_INITIALIZER(struct
> cmd_set_bond_mac_addr_result, set, "set");
> -cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
> +static cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
>  		TOKEN_STRING_INITIALIZER(struct
> cmd_set_bond_mac_addr_result, bonding,
>  				"bonding");
> -cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
> +static cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
>  		TOKEN_STRING_INITIALIZER(struct
> cmd_set_bond_mac_addr_result, mac_addr,
>  				"mac_addr");
> -cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
> +static cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
>  		TOKEN_NUM_INITIALIZER(struct
> cmd_set_bond_mac_addr_result,
>  				port_num, RTE_UINT16);
> -cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
> +static cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
>  		TOKEN_ETHERADDR_INITIALIZER(struct
> cmd_set_bond_mac_addr_result, address);
> 
> -cmdline_parse_inst_t cmd_set_bond_mac_addr = {
> +static cmdline_parse_inst_t cmd_set_bond_mac_addr = {
>  		.f = cmd_set_bond_mac_addr_parsed,
>  		.data = (void *) 0,
>  		.help_str = "set bonding mac_addr <port_id> <mac_addr>",
> @@ -6784,23 +6784,23 @@ static void
> cmd_set_bond_mon_period_parsed(void *parsed_result,
>  			strerror(-ret));
>  }
> 
> -cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
> +static cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
>  		TOKEN_STRING_INITIALIZER(struct
> cmd_set_bond_mon_period_result,
>  				set, "set");
> -cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
> +static cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
>  		TOKEN_STRING_INITIALIZER(struct
> cmd_set_bond_mon_period_result,
>  				bonding, "bonding");
> -cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
> +static cmdline_parse_token_string_t
> cmd_set_bond_mon_period_mon_period =
>  		TOKEN_STRING_INITIALIZER(struct
> cmd_set_bond_mon_period_result,
>  				mon_period,	"mon_period");
> -cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
> +static cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
>  		TOKEN_NUM_INITIALIZER(struct
> cmd_set_bond_mon_period_result,
>  				port_num, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
> +static cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
>  		TOKEN_NUM_INITIALIZER(struct
> cmd_set_bond_mon_period_result,
>  				period_ms, RTE_UINT32);
> 
> -cmdline_parse_inst_t cmd_set_bond_mon_period = {
> +static cmdline_parse_inst_t cmd_set_bond_mon_period = {
>  		.f = cmd_set_bond_mon_period_parsed,
>  		.data = (void *) 0,
>  		.help_str = "set bonding mon_period <port_id> <period_ms>",
> @@ -6844,27 +6844,27 @@ cmd_set_bonding_agg_mode(void
> *parsed_result,
>  }
> 
> 
> -cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
> +static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_bonding_agg_mode_policy_result,
>  				set, "set");
> -cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
> +static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_bonding_agg_mode_policy_result,
>  				bonding, "bonding");
> 
> -cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
> +static cmdline_parse_token_string_t
> cmd_set_bonding_agg_mode_agg_mode =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_bonding_agg_mode_policy_result,
>  				agg_mode, "agg_mode");
> 
> -cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
> +static cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_set_bonding_agg_mode_policy_result,
>  				port_num, RTE_UINT16);
> 
> -cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
> +static cmdline_parse_token_string_t
> cmd_set_bonding_agg_mode_policy_string =
>  	TOKEN_STRING_INITIALIZER(
>  			struct cmd_set_bonding_balance_xmit_policy_result,
>  		policy, "stable#bandwidth#count");
> 
> -cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
> +static cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
>  	.f = cmd_set_bonding_agg_mode,
>  	.data = (void *) 0,
>  	.help_str = "set bonding mode IEEE802.3AD aggregator policy
> <port_id> <agg_name>",
> @@ -6898,15 +6898,15 @@ static void cmd_set_fwd_mode_parsed(void
> *parsed_result,
>  	set_pkt_forwarding_mode(res->mode);
>  }
> 
> -cmdline_parse_token_string_t cmd_setfwd_set =
> +static cmdline_parse_token_string_t cmd_setfwd_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_mode_result, set,
> "set");
> -cmdline_parse_token_string_t cmd_setfwd_fwd =
> +static cmdline_parse_token_string_t cmd_setfwd_fwd =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_mode_result, fwd,
> "fwd");
> -cmdline_parse_token_string_t cmd_setfwd_mode =
> +static cmdline_parse_token_string_t cmd_setfwd_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_mode_result, mode,
>  		"" /* defined at init */);
> 
> -cmdline_parse_inst_t cmd_set_fwd_mode = {
> +static cmdline_parse_inst_t cmd_set_fwd_mode = {
>  	.f = cmd_set_fwd_mode_parsed,
>  	.data = NULL,
>  	.help_str = NULL, /* defined at init */
> @@ -6958,21 +6958,21 @@ static void
> cmd_set_fwd_retry_mode_parsed(void *parsed_result,
>  	set_pkt_forwarding_mode(res->mode);
>  }
> 
> -cmdline_parse_token_string_t cmd_setfwd_retry_set =
> +static cmdline_parse_token_string_t cmd_setfwd_retry_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
>  			set, "set");
> -cmdline_parse_token_string_t cmd_setfwd_retry_fwd =
> +static cmdline_parse_token_string_t cmd_setfwd_retry_fwd =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
>  			fwd, "fwd");
> -cmdline_parse_token_string_t cmd_setfwd_retry_mode =
> +static cmdline_parse_token_string_t cmd_setfwd_retry_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
>  			mode,
>  		"" /* defined at init */);
> -cmdline_parse_token_string_t cmd_setfwd_retry_retry =
> +static cmdline_parse_token_string_t cmd_setfwd_retry_retry =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
>  			retry, "retry");
> 
> -cmdline_parse_inst_t cmd_set_fwd_retry_mode = {
> +static cmdline_parse_inst_t cmd_set_fwd_retry_mode = {
>  	.f = cmd_set_fwd_retry_mode_parsed,
>  	.data = NULL,
>  	.help_str = NULL, /* defined at init */
> @@ -7035,25 +7035,25 @@ static void cmd_set_burst_tx_retry_parsed(void
> *parsed_result,
> 
>  }
> 
> -cmdline_parse_token_string_t cmd_set_burst_tx_retry_set =
> +static cmdline_parse_token_string_t cmd_set_burst_tx_retry_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, set,
> "set");
> -cmdline_parse_token_string_t cmd_set_burst_tx_retry_burst =
> +static cmdline_parse_token_string_t cmd_set_burst_tx_retry_burst =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result,
> burst,
>  				 "burst");
> -cmdline_parse_token_string_t cmd_set_burst_tx_retry_tx =
> +static cmdline_parse_token_string_t cmd_set_burst_tx_retry_tx =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, tx,
> "tx");
> -cmdline_parse_token_string_t cmd_set_burst_tx_retry_delay =
> +static cmdline_parse_token_string_t cmd_set_burst_tx_retry_delay =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result,
> delay, "delay");
> -cmdline_parse_token_num_t cmd_set_burst_tx_retry_time =
> +static cmdline_parse_token_num_t cmd_set_burst_tx_retry_time =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_burst_tx_retry_result, time,
>  				 RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_burst_tx_retry_retry =
> +static cmdline_parse_token_string_t cmd_set_burst_tx_retry_retry =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result,
> retry, "retry");
> -cmdline_parse_token_num_t cmd_set_burst_tx_retry_retry_num =
> +static cmdline_parse_token_num_t cmd_set_burst_tx_retry_retry_num =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_burst_tx_retry_result,
> retry_num,
>  				 RTE_UINT32);
> 
> -cmdline_parse_inst_t cmd_set_burst_tx_retry = {
> +static cmdline_parse_inst_t cmd_set_burst_tx_retry = {
>  	.f = cmd_set_burst_tx_retry_parsed,
>  	.help_str = "set burst tx delay <delay_usec> retry <num_retry>",
>  	.tokens = {
> @@ -7099,22 +7099,22 @@ static void cmd_set_promisc_mode_parsed(void
> *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_setpromisc_set =
> +static cmdline_parse_token_string_t cmd_setpromisc_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result,
> set, "set");
> -cmdline_parse_token_string_t cmd_setpromisc_promisc =
> +static cmdline_parse_token_string_t cmd_setpromisc_promisc =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result,
> promisc,
>  				 "promisc");
> -cmdline_parse_token_string_t cmd_setpromisc_portall =
> +static cmdline_parse_token_string_t cmd_setpromisc_portall =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result,
> port_all,
>  				 "all");
> -cmdline_parse_token_num_t cmd_setpromisc_portnum =
> +static cmdline_parse_token_num_t cmd_setpromisc_portnum =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_promisc_mode_result,
> port_num,
>  			      RTE_UINT16);
> -cmdline_parse_token_string_t cmd_setpromisc_mode =
> +static cmdline_parse_token_string_t cmd_setpromisc_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result,
> mode,
>  				 "on#off");
> 
> -cmdline_parse_inst_t cmd_set_promisc_mode_all = {
> +static cmdline_parse_inst_t cmd_set_promisc_mode_all = {
>  	.f = cmd_set_promisc_mode_parsed,
>  	.data = (void *)1,
>  	.help_str = "set promisc all on|off: Set promisc mode for all ports",
> @@ -7127,7 +7127,7 @@ cmdline_parse_inst_t cmd_set_promisc_mode_all =
> {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_set_promisc_mode_one = {
> +static cmdline_parse_inst_t cmd_set_promisc_mode_one = {
>  	.f = cmd_set_promisc_mode_parsed,
>  	.data = (void *)0,
>  	.help_str = "set promisc <port_id> on|off: Set promisc mode on
> port_id",
> @@ -7173,22 +7173,22 @@ static void cmd_set_allmulti_mode_parsed(void
> *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_setallmulti_set =
> +static cmdline_parse_token_string_t cmd_setallmulti_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result, set,
> "set");
> -cmdline_parse_token_string_t cmd_setallmulti_allmulti =
> +static cmdline_parse_token_string_t cmd_setallmulti_allmulti =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result,
> allmulti,
>  				 "allmulti");
> -cmdline_parse_token_string_t cmd_setallmulti_portall =
> +static cmdline_parse_token_string_t cmd_setallmulti_portall =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result,
> port_all,
>  				 "all");
> -cmdline_parse_token_num_t cmd_setallmulti_portnum =
> +static cmdline_parse_token_num_t cmd_setallmulti_portnum =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_allmulti_mode_result,
> port_num,
>  			      RTE_UINT16);
> -cmdline_parse_token_string_t cmd_setallmulti_mode =
> +static cmdline_parse_token_string_t cmd_setallmulti_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result,
> mode,
>  				 "on#off");
> 
> -cmdline_parse_inst_t cmd_set_allmulti_mode_all = {
> +static cmdline_parse_inst_t cmd_set_allmulti_mode_all = {
>  	.f = cmd_set_allmulti_mode_parsed,
>  	.data = (void *)1,
>  	.help_str = "set allmulti all on|off: Set allmulti mode for all ports",
> @@ -7201,7 +7201,7 @@ cmdline_parse_inst_t cmd_set_allmulti_mode_all =
> {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_set_allmulti_mode_one = {
> +static cmdline_parse_inst_t cmd_set_allmulti_mode_one = {
>  	.f = cmd_set_allmulti_mode_parsed,
>  	.data = (void *)0,
>  	.help_str = "set allmulti <port_id> on|off: "
> @@ -7223,16 +7223,16 @@ struct cmd_link_flow_ctrl_show {
>  	cmdline_fixed_string_t flow_ctrl;
>  };
> 
> -cmdline_parse_token_string_t cmd_lfc_show_show =
> +static cmdline_parse_token_string_t cmd_lfc_show_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_show,
>  				show, "show");
> -cmdline_parse_token_string_t cmd_lfc_show_port =
> +static cmdline_parse_token_string_t cmd_lfc_show_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_show,
>  				port, "port");
> -cmdline_parse_token_num_t cmd_lfc_show_portid =
> +static cmdline_parse_token_num_t cmd_lfc_show_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_show,
>  				port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_lfc_show_flow_ctrl =
> +static cmdline_parse_token_string_t cmd_lfc_show_flow_ctrl =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_show,
>  				flow_ctrl, "flow_ctrl");
> 
> @@ -7277,7 +7277,7 @@ cmd_link_flow_ctrl_show_parsed(void
> *parsed_result,
>  		info_border, info_border);
>  }
> 
> -cmdline_parse_inst_t cmd_link_flow_control_show = {
> +static cmdline_parse_inst_t cmd_link_flow_control_show = {
>  	.f = cmd_link_flow_ctrl_show_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> flow_ctrl",
> @@ -7313,61 +7313,61 @@ struct cmd_link_flow_ctrl_set_result {
>  	portid_t port_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_lfc_set_set =
> +static cmdline_parse_token_string_t cmd_lfc_set_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				set, "set");
> -cmdline_parse_token_string_t cmd_lfc_set_flow_ctrl =
> +static cmdline_parse_token_string_t cmd_lfc_set_flow_ctrl =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				flow_ctrl, "flow_ctrl");
> -cmdline_parse_token_string_t cmd_lfc_set_rx =
> +static cmdline_parse_token_string_t cmd_lfc_set_rx =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				rx, "rx");
> -cmdline_parse_token_string_t cmd_lfc_set_rx_mode =
> +static cmdline_parse_token_string_t cmd_lfc_set_rx_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				rx_lfc_mode, "on#off");
> -cmdline_parse_token_string_t cmd_lfc_set_tx =
> +static cmdline_parse_token_string_t cmd_lfc_set_tx =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				tx, "tx");
> -cmdline_parse_token_string_t cmd_lfc_set_tx_mode =
> +static cmdline_parse_token_string_t cmd_lfc_set_tx_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				tx_lfc_mode, "on#off");
> -cmdline_parse_token_string_t cmd_lfc_set_high_water_str =
> +static cmdline_parse_token_string_t cmd_lfc_set_high_water_str =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				hw_str, "high_water");
> -cmdline_parse_token_num_t cmd_lfc_set_high_water =
> +static cmdline_parse_token_num_t cmd_lfc_set_high_water =
>  	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				high_water, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_lfc_set_low_water_str =
> +static cmdline_parse_token_string_t cmd_lfc_set_low_water_str =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				lw_str, "low_water");
> -cmdline_parse_token_num_t cmd_lfc_set_low_water =
> +static cmdline_parse_token_num_t cmd_lfc_set_low_water =
>  	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				low_water, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_lfc_set_pause_time_str =
> +static cmdline_parse_token_string_t cmd_lfc_set_pause_time_str =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				pt_str, "pause_time");
> -cmdline_parse_token_num_t cmd_lfc_set_pause_time =
> +static cmdline_parse_token_num_t cmd_lfc_set_pause_time =
>  	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				pause_time, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_lfc_set_send_xon_str =
> +static cmdline_parse_token_string_t cmd_lfc_set_send_xon_str =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				xon_str, "send_xon");
> -cmdline_parse_token_num_t cmd_lfc_set_send_xon =
> +static cmdline_parse_token_num_t cmd_lfc_set_send_xon =
>  	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				send_xon, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd_mode =
> +static cmdline_parse_token_string_t
> cmd_lfc_set_mac_ctrl_frame_fwd_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				mac_ctrl_frame_fwd,
> "mac_ctrl_frame_fwd");
> -cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd =
> +static cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				mac_ctrl_frame_fwd_mode, "on#off");
> -cmdline_parse_token_string_t cmd_lfc_set_autoneg_str =
> +static cmdline_parse_token_string_t cmd_lfc_set_autoneg_str =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				autoneg_str, "autoneg");
> -cmdline_parse_token_string_t cmd_lfc_set_autoneg =
> +static cmdline_parse_token_string_t cmd_lfc_set_autoneg =
>  	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				autoneg, "on#off");
> -cmdline_parse_token_num_t cmd_lfc_set_portid =
> +static cmdline_parse_token_num_t cmd_lfc_set_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
>  				port_id, RTE_UINT16);
> 
> @@ -7376,7 +7376,7 @@ static void
>  cmd_link_flow_ctrl_set_parsed(void *parsed_result, struct cmdline *cl,
>  			      void *data);
> 
> -cmdline_parse_inst_t cmd_link_flow_control_set = {
> +static cmdline_parse_inst_t cmd_link_flow_control_set = {
>  	.f = cmd_link_flow_ctrl_set_parsed,
>  	.data = NULL,
>  	.help_str = "set flow_ctrl rx on|off tx on|off <high_water> "
> @@ -7402,7 +7402,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set =
> {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_link_flow_control_set_rx = {
> +static cmdline_parse_inst_t cmd_link_flow_control_set_rx = {
>  	.f = cmd_link_flow_ctrl_set_parsed,
>  	.data = (void *)&cmd_link_flow_control_set_rx,
>  	.help_str = "set flow_ctrl rx on|off <port_id>: "
> @@ -7417,7 +7417,7 @@ cmdline_parse_inst_t
> cmd_link_flow_control_set_rx = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_link_flow_control_set_tx = {
> +static cmdline_parse_inst_t cmd_link_flow_control_set_tx = {
>  	.f = cmd_link_flow_ctrl_set_parsed,
>  	.data = (void *)&cmd_link_flow_control_set_tx,
>  	.help_str = "set flow_ctrl tx on|off <port_id>: "
> @@ -7432,7 +7432,7 @@ cmdline_parse_inst_t
> cmd_link_flow_control_set_tx = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_link_flow_control_set_hw = {
> +static cmdline_parse_inst_t cmd_link_flow_control_set_hw = {
>  	.f = cmd_link_flow_ctrl_set_parsed,
>  	.data = (void *)&cmd_link_flow_control_set_hw,
>  	.help_str = "set flow_ctrl high_water <value> <port_id>: "
> @@ -7447,7 +7447,7 @@ cmdline_parse_inst_t
> cmd_link_flow_control_set_hw = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_link_flow_control_set_lw = {
> +static cmdline_parse_inst_t cmd_link_flow_control_set_lw = {
>  	.f = cmd_link_flow_ctrl_set_parsed,
>  	.data = (void *)&cmd_link_flow_control_set_lw,
>  	.help_str = "set flow_ctrl low_water <value> <port_id>: "
> @@ -7462,7 +7462,7 @@ cmdline_parse_inst_t
> cmd_link_flow_control_set_lw = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_link_flow_control_set_pt = {
> +static cmdline_parse_inst_t cmd_link_flow_control_set_pt = {
>  	.f = cmd_link_flow_ctrl_set_parsed,
>  	.data = (void *)&cmd_link_flow_control_set_pt,
>  	.help_str = "set flow_ctrl pause_time <value> <port_id>: "
> @@ -7477,7 +7477,7 @@ cmdline_parse_inst_t
> cmd_link_flow_control_set_pt = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_link_flow_control_set_xon = {
> +static cmdline_parse_inst_t cmd_link_flow_control_set_xon = {
>  	.f = cmd_link_flow_ctrl_set_parsed,
>  	.data = (void *)&cmd_link_flow_control_set_xon,
>  	.help_str = "set flow_ctrl send_xon <value> <port_id>: "
> @@ -7492,7 +7492,7 @@ cmdline_parse_inst_t
> cmd_link_flow_control_set_xon = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_link_flow_control_set_macfwd = {
> +static cmdline_parse_inst_t cmd_link_flow_control_set_macfwd = {
>  	.f = cmd_link_flow_ctrl_set_parsed,
>  	.data = (void *)&cmd_link_flow_control_set_macfwd,
>  	.help_str = "set flow_ctrl mac_ctrl_frame_fwd on|off <port_id>: "
> @@ -7507,7 +7507,7 @@ cmdline_parse_inst_t
> cmd_link_flow_control_set_macfwd = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_link_flow_control_set_autoneg = {
> +static cmdline_parse_inst_t cmd_link_flow_control_set_autoneg = {
>  	.f = cmd_link_flow_ctrl_set_parsed,
>  	.data = (void *)&cmd_link_flow_control_set_autoneg,
>  	.help_str = "set flow_ctrl autoneg on|off <port_id>: "
> @@ -7650,41 +7650,41 @@ cmd_priority_flow_ctrl_set_parsed(void
> *parsed_result,
>  			ret);
>  }
> 
> -cmdline_parse_token_string_t cmd_pfc_set_set =
> +static cmdline_parse_token_string_t cmd_pfc_set_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
>  				set, "set");
> -cmdline_parse_token_string_t cmd_pfc_set_flow_ctrl =
> +static cmdline_parse_token_string_t cmd_pfc_set_flow_ctrl =
>  	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
>  				pfc_ctrl, "pfc_ctrl");
> -cmdline_parse_token_string_t cmd_pfc_set_rx =
> +static cmdline_parse_token_string_t cmd_pfc_set_rx =
>  	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
>  				rx, "rx");
> -cmdline_parse_token_string_t cmd_pfc_set_rx_mode =
> +static cmdline_parse_token_string_t cmd_pfc_set_rx_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
>  				rx_pfc_mode, "on#off");
> -cmdline_parse_token_string_t cmd_pfc_set_tx =
> +static cmdline_parse_token_string_t cmd_pfc_set_tx =
>  	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
>  				tx, "tx");
> -cmdline_parse_token_string_t cmd_pfc_set_tx_mode =
> +static cmdline_parse_token_string_t cmd_pfc_set_tx_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
>  				tx_pfc_mode, "on#off");
> -cmdline_parse_token_num_t cmd_pfc_set_high_water =
> +static cmdline_parse_token_num_t cmd_pfc_set_high_water =
>  	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
>  				high_water, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_pfc_set_low_water =
> +static cmdline_parse_token_num_t cmd_pfc_set_low_water =
>  	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
>  				low_water, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_pfc_set_pause_time =
> +static cmdline_parse_token_num_t cmd_pfc_set_pause_time =
>  	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
>  				pause_time, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_pfc_set_priority =
> +static cmdline_parse_token_num_t cmd_pfc_set_priority =
>  	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
>  				priority, RTE_UINT8);
> -cmdline_parse_token_num_t cmd_pfc_set_portid =
> +static cmdline_parse_token_num_t cmd_pfc_set_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
>  				port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_priority_flow_control_set = {
> +static cmdline_parse_inst_t cmd_priority_flow_control_set = {
>  	.f = cmd_priority_flow_ctrl_set_parsed,
>  	.data = NULL,
>  	.help_str = "set pfc_ctrl rx on|off tx on|off <high_water> <low_water>
> "
> @@ -7762,44 +7762,44 @@ cmd_queue_priority_flow_ctrl_set_parsed(void
> *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_q_pfc_set_set =
> +static cmdline_parse_token_string_t cmd_q_pfc_set_set =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_queue_priority_flow_ctrl_set_result,
>  				set, "set");
> -cmdline_parse_token_string_t cmd_q_pfc_set_flow_ctrl =
> +static cmdline_parse_token_string_t cmd_q_pfc_set_flow_ctrl =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_queue_priority_flow_ctrl_set_result,
>  				pfc_queue_ctrl, "pfc_queue_ctrl");
> -cmdline_parse_token_num_t cmd_q_pfc_set_portid =
> +static cmdline_parse_token_num_t cmd_q_pfc_set_portid =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_queue_priority_flow_ctrl_set_result,
>  				port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_q_pfc_set_rx =
> +static cmdline_parse_token_string_t cmd_q_pfc_set_rx =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_queue_priority_flow_ctrl_set_result,
>  				rx, "rx");
> -cmdline_parse_token_string_t cmd_q_pfc_set_rx_mode =
> +static cmdline_parse_token_string_t cmd_q_pfc_set_rx_mode =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_queue_priority_flow_ctrl_set_result,
>  				rx_pfc_mode, "on#off");
> -cmdline_parse_token_num_t cmd_q_pfc_set_tx_qid =
> +static cmdline_parse_token_num_t cmd_q_pfc_set_tx_qid =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_queue_priority_flow_ctrl_set_result,
>  				tx_qid, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_q_pfc_set_tx_tc =
> +static cmdline_parse_token_num_t cmd_q_pfc_set_tx_tc =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_queue_priority_flow_ctrl_set_result,
>  				tx_tc, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_q_pfc_set_tx =
> +static cmdline_parse_token_string_t cmd_q_pfc_set_tx =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_queue_priority_flow_ctrl_set_result,
>  				tx, "tx");
> -cmdline_parse_token_string_t cmd_q_pfc_set_tx_mode =
> +static cmdline_parse_token_string_t cmd_q_pfc_set_tx_mode =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_queue_priority_flow_ctrl_set_result,
>  				tx_pfc_mode, "on#off");
> -cmdline_parse_token_num_t cmd_q_pfc_set_rx_qid =
> +static cmdline_parse_token_num_t cmd_q_pfc_set_rx_qid =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_queue_priority_flow_ctrl_set_result,
>  				rx_qid, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_q_pfc_set_rx_tc =
> +static cmdline_parse_token_num_t cmd_q_pfc_set_rx_tc =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_queue_priority_flow_ctrl_set_result,
>  				rx_tc, RTE_UINT8);
> -cmdline_parse_token_num_t cmd_q_pfc_set_pause_time =
> +static cmdline_parse_token_num_t cmd_q_pfc_set_pause_time =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_queue_priority_flow_ctrl_set_result,
>  				pause_time, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_queue_priority_flow_control_set = {
> +static cmdline_parse_inst_t cmd_queue_priority_flow_control_set = {
>  	.f = cmd_queue_priority_flow_ctrl_set_parsed,
>  	.data = NULL,
>  	.help_str = "set pfc_queue_ctrl <port_id> rx <on|off> <tx_qid> <tx_tc>
> "
> @@ -7836,13 +7836,13 @@ static void cmd_reset_parsed(__rte_unused void
> *parsed_result,
>  	set_def_fwd_config();
>  }
> 
> -cmdline_parse_token_string_t cmd_reset_set =
> +static cmdline_parse_token_string_t cmd_reset_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_reset_result, reset, "set");
> -cmdline_parse_token_string_t cmd_reset_def =
> +static cmdline_parse_token_string_t cmd_reset_def =
>  	TOKEN_STRING_INITIALIZER(struct cmd_reset_result, def,
>  				 "default");
> 
> -cmdline_parse_inst_t cmd_reset = {
> +static cmdline_parse_inst_t cmd_reset = {
>  	.f = cmd_reset_parsed,
>  	.data = NULL,
>  	.help_str = "set default: Reset default forwarding configuration",
> @@ -7858,7 +7858,7 @@ struct cmd_start_result {
>  	cmdline_fixed_string_t start;
>  };
> 
> -cmdline_parse_token_string_t cmd_start_start =
> +static cmdline_parse_token_string_t cmd_start_start =
>  	TOKEN_STRING_INITIALIZER(struct cmd_start_result, start, "start");
> 
>  static void cmd_start_parsed(__rte_unused void *parsed_result,
> @@ -7868,7 +7868,7 @@ static void cmd_start_parsed(__rte_unused void
> *parsed_result,
>  	start_packet_forwarding(0);
>  }
> 
> -cmdline_parse_inst_t cmd_start = {
> +static cmdline_parse_inst_t cmd_start = {
>  	.f = cmd_start_parsed,
>  	.data = NULL,
>  	.help_str = "start: Start packet forwarding",
> @@ -7892,14 +7892,14 @@ cmd_start_tx_first_parsed(__rte_unused void
> *parsed_result,
>  	start_packet_forwarding(1);
>  }
> 
> -cmdline_parse_token_string_t cmd_start_tx_first_start =
> +static cmdline_parse_token_string_t cmd_start_tx_first_start =
>  	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_result, start,
>  				 "start");
> -cmdline_parse_token_string_t cmd_start_tx_first_tx_first =
> +static cmdline_parse_token_string_t cmd_start_tx_first_tx_first =
>  	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_result,
>  				 tx_first, "tx_first");
> 
> -cmdline_parse_inst_t cmd_start_tx_first = {
> +static cmdline_parse_inst_t cmd_start_tx_first = {
>  	.f = cmd_start_tx_first_parsed,
>  	.data = NULL,
>  	.help_str = "start tx_first: Start packet forwarding, "
> @@ -7928,17 +7928,17 @@ cmd_start_tx_first_n_parsed(void
> *parsed_result,
>  	start_packet_forwarding(res->tx_num);
>  }
> 
> -cmdline_parse_token_string_t cmd_start_tx_first_n_start =
> +static cmdline_parse_token_string_t cmd_start_tx_first_n_start =
>  	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_n_result,
>  			start, "start");
> -cmdline_parse_token_string_t cmd_start_tx_first_n_tx_first =
> +static cmdline_parse_token_string_t cmd_start_tx_first_n_tx_first =
>  	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_n_result,
>  			tx_first, "tx_first");
> -cmdline_parse_token_num_t cmd_start_tx_first_n_tx_num =
> +static cmdline_parse_token_num_t cmd_start_tx_first_n_tx_num =
>  	TOKEN_NUM_INITIALIZER(struct cmd_start_tx_first_n_result,
>  			tx_num, RTE_UINT32);
> 
> -cmdline_parse_inst_t cmd_start_tx_first_n = {
> +static cmdline_parse_inst_t cmd_start_tx_first_n = {
>  	.f = cmd_start_tx_first_n_parsed,
>  	.data = NULL,
>  	.help_str = "start tx_first <num>: "
> @@ -7959,14 +7959,14 @@ struct cmd_set_link_up_result {
>  	portid_t port_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_link_up_set =
> +static cmdline_parse_token_string_t cmd_set_link_up_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_link_up_result, set, "set");
> -cmdline_parse_token_string_t cmd_set_link_up_link_up =
> +static cmdline_parse_token_string_t cmd_set_link_up_link_up =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_link_up_result, link_up,
>  				"link-up");
> -cmdline_parse_token_string_t cmd_set_link_up_port =
> +static cmdline_parse_token_string_t cmd_set_link_up_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_link_up_result, port,
> "port");
> -cmdline_parse_token_num_t cmd_set_link_up_port_id =
> +static cmdline_parse_token_num_t cmd_set_link_up_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_link_up_result, port_id,
>  				RTE_UINT16);
> 
> @@ -7978,7 +7978,7 @@ static void cmd_set_link_up_parsed(__rte_unused
> void *parsed_result,
>  	dev_set_link_up(res->port_id);
>  }
> 
> -cmdline_parse_inst_t cmd_set_link_up = {
> +static cmdline_parse_inst_t cmd_set_link_up = {
>  	.f = cmd_set_link_up_parsed,
>  	.data = NULL,
>  	.help_str = "set link-up port <port id>",
> @@ -7999,14 +7999,14 @@ struct cmd_set_link_down_result {
>  	portid_t port_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_link_down_set =
> +static cmdline_parse_token_string_t cmd_set_link_down_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_link_down_result, set,
> "set");
> -cmdline_parse_token_string_t cmd_set_link_down_link_down =
> +static cmdline_parse_token_string_t cmd_set_link_down_link_down =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_link_down_result,
> link_down,
>  				"link-down");
> -cmdline_parse_token_string_t cmd_set_link_down_port =
> +static cmdline_parse_token_string_t cmd_set_link_down_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_link_down_result, port,
> "port");
> -cmdline_parse_token_num_t cmd_set_link_down_port_id =
> +static cmdline_parse_token_num_t cmd_set_link_down_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_link_down_result, port_id,
>  				RTE_UINT16);
> 
> @@ -8019,7 +8019,7 @@ static void cmd_set_link_down_parsed(
>  	dev_set_link_down(res->port_id);
>  }
> 
> -cmdline_parse_inst_t cmd_set_link_down = {
> +static cmdline_parse_inst_t cmd_set_link_down = {
>  	.f = cmd_set_link_down_parsed,
>  	.data = NULL,
>  	.help_str = "set link-down port <port id>",
> @@ -8060,15 +8060,15 @@ static void cmd_showcfg_parsed(void
> *parsed_result,
>  		show_tx_pkt_times();
>  }
> 
> -cmdline_parse_token_string_t cmd_showcfg_show =
> +static cmdline_parse_token_string_t cmd_showcfg_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showcfg_result, show,
> "show");
> -cmdline_parse_token_string_t cmd_showcfg_port =
> +static cmdline_parse_token_string_t cmd_showcfg_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showcfg_result, cfg, "config");
> -cmdline_parse_token_string_t cmd_showcfg_what =
> +static cmdline_parse_token_string_t cmd_showcfg_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showcfg_result, what,
> 
> "rxtx#cores#fwd#rxoffs#rxpkts#txpkts#txtimes");
> 
> -cmdline_parse_inst_t cmd_showcfg = {
> +static cmdline_parse_inst_t cmd_showcfg = {
>  	.f = cmd_showcfg_parsed,
>  	.data = NULL,
>  	.help_str = "show config rxtx|cores|fwd|rxoffs|rxpkts|txpkts|txtimes",
> @@ -8126,17 +8126,17 @@ static void cmd_showportall_parsed(void
> *parsed_result,
>  			port_dcb_info_display(i);
>  }
> 
> -cmdline_parse_token_string_t cmd_showportall_show =
> +static cmdline_parse_token_string_t cmd_showportall_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, show,
>  				 "show#clear");
> -cmdline_parse_token_string_t cmd_showportall_port =
> +static cmdline_parse_token_string_t cmd_showportall_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, port,
> "port");
> -cmdline_parse_token_string_t cmd_showportall_what =
> +static cmdline_parse_token_string_t cmd_showportall_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, what,
>  				 "info#summary#stats#xstats#fdir#dcb_tc");
> -cmdline_parse_token_string_t cmd_showportall_all =
> +static cmdline_parse_token_string_t cmd_showportall_all =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, all, "all");
> -cmdline_parse_inst_t cmd_showportall = {
> +static cmdline_parse_inst_t cmd_showportall = {
>  	.f = cmd_showportall_parsed,
>  	.data = NULL,
>  	.help_str = "show|clear port "
> @@ -8186,18 +8186,18 @@ static void cmd_showport_parsed(void
> *parsed_result,
>  		port_dcb_info_display(res->portnum);
>  }
> 
> -cmdline_parse_token_string_t cmd_showport_show =
> +static cmdline_parse_token_string_t cmd_showport_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showport_result, show,
>  				 "show#clear");
> -cmdline_parse_token_string_t cmd_showport_port =
> +static cmdline_parse_token_string_t cmd_showport_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showport_result, port,
> "port");
> -cmdline_parse_token_string_t cmd_showport_what =
> +static cmdline_parse_token_string_t cmd_showport_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showport_result, what,
>  				 "info#summary#stats#xstats#fdir#dcb_tc");
> -cmdline_parse_token_num_t cmd_showport_portnum =
> +static cmdline_parse_token_num_t cmd_showport_portnum =
>  	TOKEN_NUM_INITIALIZER(struct cmd_showport_result, portnum,
> RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_showport = {
> +static cmdline_parse_inst_t cmd_showport = {
>  	.f = cmd_showport_parsed,
>  	.data = NULL,
>  	.help_str = "show|clear port "
> @@ -8312,23 +8312,23 @@ cmd_representor_info_parsed(void
> *parsed_result,
>  	free(info);
>  }
> 
> -cmdline_parse_token_string_t cmd_representor_info_show =
> +static cmdline_parse_token_string_t cmd_representor_info_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
>  			cmd_show, "show");
> -cmdline_parse_token_string_t cmd_representor_info_port =
> +static cmdline_parse_token_string_t cmd_representor_info_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
>  			cmd_port, "port");
> -cmdline_parse_token_string_t cmd_representor_info_info =
> +static cmdline_parse_token_string_t cmd_representor_info_info =
>  	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
>  			cmd_info, "info");
> -cmdline_parse_token_num_t cmd_representor_info_pid =
> +static cmdline_parse_token_num_t cmd_representor_info_pid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_representor_info_result,
>  			cmd_pid, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_representor_info_keyword =
> +static cmdline_parse_token_string_t cmd_representor_info_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
>  			cmd_keyword, "representor");
> 
> -cmdline_parse_inst_t cmd_representor_info = {
> +static cmdline_parse_inst_t cmd_representor_info = {
>  	.f = cmd_representor_info_parsed,
>  	.data = NULL,
>  	.help_str = "show port info <port_id> representor",
> @@ -8364,19 +8364,19 @@ static void cmd_showdevice_parsed(void
> *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_showdevice_show =
> +static cmdline_parse_token_string_t cmd_showdevice_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result, show,
>  				 "show");
> -cmdline_parse_token_string_t cmd_showdevice_device =
> +static cmdline_parse_token_string_t cmd_showdevice_device =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result, device,
> "device");
> -cmdline_parse_token_string_t cmd_showdevice_what =
> +static cmdline_parse_token_string_t cmd_showdevice_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result, what,
>  				 "info");
> -cmdline_parse_token_string_t cmd_showdevice_identifier =
> +static cmdline_parse_token_string_t cmd_showdevice_identifier =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result,
>  			identifier, NULL);
> 
> -cmdline_parse_inst_t cmd_showdevice = {
> +static cmdline_parse_inst_t cmd_showdevice = {
>  	.f = cmd_showdevice_parsed,
>  	.data = NULL,
>  	.help_str = "show device info <identifier>|all",
> @@ -8411,17 +8411,17 @@ static void cmd_showeeprom_parsed(void
> *parsed_result,
>  		fprintf(stderr, "Unknown argument\n");
>  }
> 
> -cmdline_parse_token_string_t cmd_showeeprom_show =
> +static cmdline_parse_token_string_t cmd_showeeprom_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showeeprom_result, show,
> "show");
> -cmdline_parse_token_string_t cmd_showeeprom_port =
> +static cmdline_parse_token_string_t cmd_showeeprom_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showeeprom_result, port,
> "port");
> -cmdline_parse_token_num_t cmd_showeeprom_portnum =
> +static cmdline_parse_token_num_t cmd_showeeprom_portnum =
>  	TOKEN_NUM_INITIALIZER(struct cmd_showeeprom_result, portnum,
>  			RTE_UINT16);
> -cmdline_parse_token_string_t cmd_showeeprom_type =
> +static cmdline_parse_token_string_t cmd_showeeprom_type =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showeeprom_result, type,
> "module_eeprom#eeprom");
> 
> -cmdline_parse_inst_t cmd_showeeprom = {
> +static cmdline_parse_inst_t cmd_showeeprom = {
>  	.f = cmd_showeeprom_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> module_eeprom|eeprom",
> @@ -8456,20 +8456,20 @@ cmd_showqueue_parsed(void *parsed_result,
>  		tx_queue_infos_display(res->portnum, res->queuenum);
>  }
> 
> -cmdline_parse_token_string_t cmd_showqueue_show =
> +static cmdline_parse_token_string_t cmd_showqueue_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showqueue_result, show,
> "show");
> -cmdline_parse_token_string_t cmd_showqueue_type =
> +static cmdline_parse_token_string_t cmd_showqueue_type =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showqueue_result, type,
> "rxq#txq");
> -cmdline_parse_token_string_t cmd_showqueue_what =
> +static cmdline_parse_token_string_t cmd_showqueue_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showqueue_result, what,
> "info");
> -cmdline_parse_token_num_t cmd_showqueue_portnum =
> +static cmdline_parse_token_num_t cmd_showqueue_portnum =
>  	TOKEN_NUM_INITIALIZER(struct cmd_showqueue_result, portnum,
>  		RTE_UINT16);
> -cmdline_parse_token_num_t cmd_showqueue_queuenum =
> +static cmdline_parse_token_num_t cmd_showqueue_queuenum =
>  	TOKEN_NUM_INITIALIZER(struct cmd_showqueue_result, queuenum,
>  		RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_showqueue = {
> +static cmdline_parse_inst_t cmd_showqueue = {
>  	.f = cmd_showqueue_parsed,
>  	.data = NULL,
>  	.help_str = "show rxq|txq info <port_id> <queue_id>",
> @@ -8491,13 +8491,13 @@ struct fwd_result {
>  	cmdline_fixed_string_t all;
>  };
> 
> -cmdline_parse_token_string_t cmd_fwd_action =
> +static cmdline_parse_token_string_t cmd_fwd_action =
>  	TOKEN_STRING_INITIALIZER(struct fwd_result, action, "show#clear");
> -cmdline_parse_token_string_t cmd_fwd_fwd =
> +static cmdline_parse_token_string_t cmd_fwd_fwd =
>  	TOKEN_STRING_INITIALIZER(struct fwd_result, fwd, "fwd");
> -cmdline_parse_token_string_t cmd_fwd_stats =
> +static cmdline_parse_token_string_t cmd_fwd_stats =
>  	TOKEN_STRING_INITIALIZER(struct fwd_result, stats, "stats");
> -cmdline_parse_token_string_t cmd_fwd_all =
> +static cmdline_parse_token_string_t cmd_fwd_all =
>  	TOKEN_STRING_INITIALIZER(struct fwd_result, all, "all");
> 
>  static void
> @@ -8543,16 +8543,16 @@ cmd_read_reg_parsed(void *parsed_result,
>  	port_reg_display(res->port_id, res->reg_off);
>  }
> 
> -cmdline_parse_token_string_t cmd_read_reg_read =
> +static cmdline_parse_token_string_t cmd_read_reg_read =
>  	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_result, read,
> "read");
> -cmdline_parse_token_string_t cmd_read_reg_reg =
> +static cmdline_parse_token_string_t cmd_read_reg_reg =
>  	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_result, reg, "reg");
> -cmdline_parse_token_num_t cmd_read_reg_port_id =
> +static cmdline_parse_token_num_t cmd_read_reg_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_result, port_id,
> RTE_UINT16);
> -cmdline_parse_token_num_t cmd_read_reg_reg_off =
> +static cmdline_parse_token_num_t cmd_read_reg_reg_off =
>  	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_result, reg_off,
> RTE_UINT32);
> 
> -cmdline_parse_inst_t cmd_read_reg = {
> +static cmdline_parse_inst_t cmd_read_reg = {
>  	.f = cmd_read_reg_parsed,
>  	.data = NULL,
>  	.help_str = "read reg <port_id> <reg_off>",
> @@ -8585,26 +8585,26 @@ cmd_read_reg_bit_field_parsed(void
> *parsed_result,
>  				   res->bit1_pos, res->bit2_pos);
>  }
> 
> -cmdline_parse_token_string_t cmd_read_reg_bit_field_read =
> +static cmdline_parse_token_string_t cmd_read_reg_bit_field_read =
>  	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_field_result,
> read,
>  				 "read");
> -cmdline_parse_token_string_t cmd_read_reg_bit_field_regfield =
> +static cmdline_parse_token_string_t cmd_read_reg_bit_field_regfield =
>  	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_field_result,
>  				 regfield, "regfield");
> -cmdline_parse_token_num_t cmd_read_reg_bit_field_port_id =
> +static cmdline_parse_token_num_t cmd_read_reg_bit_field_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result,
> port_id,
>  			      RTE_UINT16);
> -cmdline_parse_token_num_t cmd_read_reg_bit_field_reg_off =
> +static cmdline_parse_token_num_t cmd_read_reg_bit_field_reg_off =
>  	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result,
> reg_off,
>  			      RTE_UINT32);
> -cmdline_parse_token_num_t cmd_read_reg_bit_field_bit1_pos =
> +static cmdline_parse_token_num_t cmd_read_reg_bit_field_bit1_pos =
>  	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result,
> bit1_pos,
>  			      RTE_UINT8);
> -cmdline_parse_token_num_t cmd_read_reg_bit_field_bit2_pos =
> +static cmdline_parse_token_num_t cmd_read_reg_bit_field_bit2_pos =
>  	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result,
> bit2_pos,
>  			      RTE_UINT8);
> 
> -cmdline_parse_inst_t cmd_read_reg_bit_field = {
> +static cmdline_parse_inst_t cmd_read_reg_bit_field = {
>  	.f = cmd_read_reg_bit_field_parsed,
>  	.data = NULL,
>  	.help_str = "read regfield <port_id> <reg_off> <bit_x> <bit_y>: "
> @@ -8638,22 +8638,22 @@ cmd_read_reg_bit_parsed(void *parsed_result,
>  	port_reg_bit_display(res->port_id, res->reg_off, res->bit_pos);
>  }
> 
> -cmdline_parse_token_string_t cmd_read_reg_bit_read =
> +static cmdline_parse_token_string_t cmd_read_reg_bit_read =
>  	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_result, read,
> "read");
> -cmdline_parse_token_string_t cmd_read_reg_bit_regbit =
> +static cmdline_parse_token_string_t cmd_read_reg_bit_regbit =
>  	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_result,
>  				 regbit, "regbit");
> -cmdline_parse_token_num_t cmd_read_reg_bit_port_id =
> +static cmdline_parse_token_num_t cmd_read_reg_bit_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, port_id,
>  				 RTE_UINT16);
> -cmdline_parse_token_num_t cmd_read_reg_bit_reg_off =
> +static cmdline_parse_token_num_t cmd_read_reg_bit_reg_off =
>  	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, reg_off,
>  				 RTE_UINT32);
> -cmdline_parse_token_num_t cmd_read_reg_bit_bit_pos =
> +static cmdline_parse_token_num_t cmd_read_reg_bit_bit_pos =
>  	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, bit_pos,
>  				 RTE_UINT8);
> 
> -cmdline_parse_inst_t cmd_read_reg_bit = {
> +static cmdline_parse_inst_t cmd_read_reg_bit = {
>  	.f = cmd_read_reg_bit_parsed,
>  	.data = NULL,
>  	.help_str = "read regbit <port_id> <reg_off> <bit_x>: 0 <= bit_x <= 31",
> @@ -8685,18 +8685,18 @@ cmd_write_reg_parsed(void *parsed_result,
>  	port_reg_set(res->port_id, res->reg_off, res->value);
>  }
> 
> -cmdline_parse_token_string_t cmd_write_reg_write =
> +static cmdline_parse_token_string_t cmd_write_reg_write =
>  	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_result, write,
> "write");
> -cmdline_parse_token_string_t cmd_write_reg_reg =
> +static cmdline_parse_token_string_t cmd_write_reg_reg =
>  	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_result, reg, "reg");
> -cmdline_parse_token_num_t cmd_write_reg_port_id =
> +static cmdline_parse_token_num_t cmd_write_reg_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, port_id,
> RTE_UINT16);
> -cmdline_parse_token_num_t cmd_write_reg_reg_off =
> +static cmdline_parse_token_num_t cmd_write_reg_reg_off =
>  	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, reg_off,
> RTE_UINT32);
> -cmdline_parse_token_num_t cmd_write_reg_value =
> +static cmdline_parse_token_num_t cmd_write_reg_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, value,
> RTE_UINT32);
> 
> -cmdline_parse_inst_t cmd_write_reg = {
> +static cmdline_parse_inst_t cmd_write_reg = {
>  	.f = cmd_write_reg_parsed,
>  	.data = NULL,
>  	.help_str = "write reg <port_id> <reg_off> <reg_value>",
> @@ -8731,29 +8731,29 @@ cmd_write_reg_bit_field_parsed(void
> *parsed_result,
>  			  res->bit1_pos, res->bit2_pos, res->value);
>  }
> 
> -cmdline_parse_token_string_t cmd_write_reg_bit_field_write =
> +static cmdline_parse_token_string_t cmd_write_reg_bit_field_write =
>  	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_field_result,
> write,
>  				 "write");
> -cmdline_parse_token_string_t cmd_write_reg_bit_field_regfield =
> +static cmdline_parse_token_string_t cmd_write_reg_bit_field_regfield =
>  	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_field_result,
>  				 regfield, "regfield");
> -cmdline_parse_token_num_t cmd_write_reg_bit_field_port_id =
> +static cmdline_parse_token_num_t cmd_write_reg_bit_field_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result,
> port_id,
>  			      RTE_UINT16);
> -cmdline_parse_token_num_t cmd_write_reg_bit_field_reg_off =
> +static cmdline_parse_token_num_t cmd_write_reg_bit_field_reg_off =
>  	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result,
> reg_off,
>  			      RTE_UINT32);
> -cmdline_parse_token_num_t cmd_write_reg_bit_field_bit1_pos =
> +static cmdline_parse_token_num_t cmd_write_reg_bit_field_bit1_pos =
>  	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result,
> bit1_pos,
>  			      RTE_UINT8);
> -cmdline_parse_token_num_t cmd_write_reg_bit_field_bit2_pos =
> +static cmdline_parse_token_num_t cmd_write_reg_bit_field_bit2_pos =
>  	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result,
> bit2_pos,
>  			      RTE_UINT8);
> -cmdline_parse_token_num_t cmd_write_reg_bit_field_value =
> +static cmdline_parse_token_num_t cmd_write_reg_bit_field_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result,
> value,
>  			      RTE_UINT32);
> 
> -cmdline_parse_inst_t cmd_write_reg_bit_field = {
> +static cmdline_parse_inst_t cmd_write_reg_bit_field = {
>  	.f = cmd_write_reg_bit_field_parsed,
>  	.data = NULL,
>  	.help_str = "write regfield <port_id> <reg_off> <bit_x> <bit_y> "
> @@ -8790,26 +8790,26 @@ cmd_write_reg_bit_parsed(void *parsed_result,
>  	port_reg_bit_set(res->port_id, res->reg_off, res->bit_pos, res->value);
>  }
> 
> -cmdline_parse_token_string_t cmd_write_reg_bit_write =
> +static cmdline_parse_token_string_t cmd_write_reg_bit_write =
>  	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_result, write,
>  				 "write");
> -cmdline_parse_token_string_t cmd_write_reg_bit_regbit =
> +static cmdline_parse_token_string_t cmd_write_reg_bit_regbit =
>  	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_result,
>  				 regbit, "regbit");
> -cmdline_parse_token_num_t cmd_write_reg_bit_port_id =
> +static cmdline_parse_token_num_t cmd_write_reg_bit_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, port_id,
>  				 RTE_UINT16);
> -cmdline_parse_token_num_t cmd_write_reg_bit_reg_off =
> +static cmdline_parse_token_num_t cmd_write_reg_bit_reg_off =
>  	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, reg_off,
>  				 RTE_UINT32);
> -cmdline_parse_token_num_t cmd_write_reg_bit_bit_pos =
> +static cmdline_parse_token_num_t cmd_write_reg_bit_bit_pos =
>  	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, bit_pos,
>  				 RTE_UINT8);
> -cmdline_parse_token_num_t cmd_write_reg_bit_value =
> +static cmdline_parse_token_num_t cmd_write_reg_bit_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, value,
>  				 RTE_UINT8);
> 
> -cmdline_parse_inst_t cmd_write_reg_bit = {
> +static cmdline_parse_inst_t cmd_write_reg_bit = {
>  	.f = cmd_write_reg_bit_parsed,
>  	.data = NULL,
>  	.help_str = "write regbit <port_id> <reg_off> <bit_x> 0|1: "
> @@ -8847,22 +8847,22 @@ cmd_read_rxd_txd_parsed(void *parsed_result,
>  		tx_ring_desc_display(res->port_id, res->queue_id, res-
> >desc_id);
>  }
> 
> -cmdline_parse_token_string_t cmd_read_rxd_txd_read =
> +static cmdline_parse_token_string_t cmd_read_rxd_txd_read =
>  	TOKEN_STRING_INITIALIZER(struct cmd_read_rxd_txd_result, read,
> "read");
> -cmdline_parse_token_string_t cmd_read_rxd_txd_rxd_txd =
> +static cmdline_parse_token_string_t cmd_read_rxd_txd_rxd_txd =
>  	TOKEN_STRING_INITIALIZER(struct cmd_read_rxd_txd_result, rxd_txd,
>  				 "rxd#txd");
> -cmdline_parse_token_num_t cmd_read_rxd_txd_port_id =
> +static cmdline_parse_token_num_t cmd_read_rxd_txd_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_read_rxd_txd_result, port_id,
>  				 RTE_UINT16);
> -cmdline_parse_token_num_t cmd_read_rxd_txd_queue_id =
> +static cmdline_parse_token_num_t cmd_read_rxd_txd_queue_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_read_rxd_txd_result, queue_id,
>  				 RTE_UINT16);
> -cmdline_parse_token_num_t cmd_read_rxd_txd_desc_id =
> +static cmdline_parse_token_num_t cmd_read_rxd_txd_desc_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_read_rxd_txd_result, desc_id,
>  				 RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_read_rxd_txd = {
> +static cmdline_parse_inst_t cmd_read_rxd_txd = {
>  	.f = cmd_read_rxd_txd_parsed,
>  	.data = NULL,
>  	.help_str = "read rxd|txd <port_id> <queue_id> <desc_id>",
> @@ -8888,10 +8888,10 @@ static void cmd_quit_parsed(__rte_unused void
> *parsed_result,
>  	cmdline_quit(cl);
>  }
> 
> -cmdline_parse_token_string_t cmd_quit_quit =
> +static cmdline_parse_token_string_t cmd_quit_quit =
>  	TOKEN_STRING_INITIALIZER(struct cmd_quit_result, quit, "quit");
> 
> -cmdline_parse_inst_t cmd_quit = {
> +static cmdline_parse_inst_t cmd_quit = {
>  	.f = cmd_quit_parsed,
>  	.data = NULL,
>  	.help_str = "quit: Exit application",
> @@ -8930,19 +8930,19 @@ static void cmd_mac_addr_parsed(void
> *parsed_result,
> 
>  }
> 
> -cmdline_parse_token_string_t cmd_mac_addr_cmd =
> +static cmdline_parse_token_string_t cmd_mac_addr_cmd =
>  	TOKEN_STRING_INITIALIZER(struct cmd_mac_addr_result,
> mac_addr_cmd,
>  				"mac_addr");
> -cmdline_parse_token_string_t cmd_mac_addr_what =
> +static cmdline_parse_token_string_t cmd_mac_addr_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_mac_addr_result, what,
>  				"add#remove#set");
> -cmdline_parse_token_num_t cmd_mac_addr_portnum =
> +static cmdline_parse_token_num_t cmd_mac_addr_portnum =
>  		TOKEN_NUM_INITIALIZER(struct cmd_mac_addr_result,
> port_num,
>  					RTE_UINT16);
> -cmdline_parse_token_etheraddr_t cmd_mac_addr_addr =
> +static cmdline_parse_token_etheraddr_t cmd_mac_addr_addr =
>  		TOKEN_ETHERADDR_INITIALIZER(struct
> cmd_mac_addr_result, address);
> 
> -cmdline_parse_inst_t cmd_mac_addr = {
> +static cmdline_parse_inst_t cmd_mac_addr = {
>  	.f = cmd_mac_addr_parsed,
>  	.data = (void *)0,
>  	.help_str = "mac_addr add|remove|set <port_id> <mac_addr>: "
> @@ -8979,17 +8979,17 @@ static void cmd_set_eth_peer_parsed(void
> *parsed_result,
>  			fwd_config_setup();
>  		}
>  }
> -cmdline_parse_token_string_t cmd_eth_peer_set =
> +static cmdline_parse_token_string_t cmd_eth_peer_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_eth_peer_result, set, "set");
> -cmdline_parse_token_string_t cmd_eth_peer =
> +static cmdline_parse_token_string_t cmd_eth_peer =
>  	TOKEN_STRING_INITIALIZER(struct cmd_eth_peer_result, eth_peer,
> "eth-peer");
> -cmdline_parse_token_num_t cmd_eth_peer_port_id =
> +static cmdline_parse_token_num_t cmd_eth_peer_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_eth_peer_result, port_id,
>  		RTE_UINT16);
> -cmdline_parse_token_string_t cmd_eth_peer_addr =
> +static cmdline_parse_token_string_t cmd_eth_peer_addr =
>  	TOKEN_STRING_INITIALIZER(struct cmd_eth_peer_result, peer_addr,
> NULL);
> 
> -cmdline_parse_inst_t cmd_set_fwd_eth_peer = {
> +static cmdline_parse_inst_t cmd_set_fwd_eth_peer = {
>  	.f = cmd_set_eth_peer_parsed,
>  	.data = NULL,
>  	.help_str = "set eth-peer <port_id> <peer_mac>",
> @@ -9023,26 +9023,26 @@ cmd_set_qmap_parsed(void *parsed_result,
>  	set_qmap(res->port_id, (uint8_t)is_rx, res->queue_id, res-
> >map_value);
>  }
> 
> -cmdline_parse_token_string_t cmd_setqmap_set =
> +static cmdline_parse_token_string_t cmd_setqmap_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_qmap_result,
>  				 set, "set");
> -cmdline_parse_token_string_t cmd_setqmap_qmap =
> +static cmdline_parse_token_string_t cmd_setqmap_qmap =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_qmap_result,
>  				 qmap, "stat_qmap");
> -cmdline_parse_token_string_t cmd_setqmap_what =
> +static cmdline_parse_token_string_t cmd_setqmap_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_qmap_result,
>  				 what, "tx#rx");
> -cmdline_parse_token_num_t cmd_setqmap_portid =
> +static cmdline_parse_token_num_t cmd_setqmap_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_qmap_result,
>  			      port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_setqmap_queueid =
> +static cmdline_parse_token_num_t cmd_setqmap_queueid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_qmap_result,
>  			      queue_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_setqmap_mapvalue =
> +static cmdline_parse_token_num_t cmd_setqmap_mapvalue =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_qmap_result,
>  			      map_value, RTE_UINT8);
> 
> -cmdline_parse_inst_t cmd_set_qmap = {
> +static cmdline_parse_inst_t cmd_set_qmap = {
>  	.f = cmd_set_qmap_parsed,
>  	.data = NULL,
>  	.help_str = "set stat_qmap rx|tx <port_id> <queue_id> <map_value>: "
> @@ -9078,17 +9078,17 @@ cmd_set_xstats_hide_zero_parsed(void
> *parsed_result,
>  	set_xstats_hide_zero(on_off);
>  }
> 
> -cmdline_parse_token_string_t cmd_set_xstats_hide_zero_keyword =
> +static cmdline_parse_token_string_t cmd_set_xstats_hide_zero_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_xstats_hide_zero_result,
>  				 keyword, "set");
> -cmdline_parse_token_string_t cmd_set_xstats_hide_zero_name =
> +static cmdline_parse_token_string_t cmd_set_xstats_hide_zero_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_xstats_hide_zero_result,
>  				 name, "xstats-hide-zero");
> -cmdline_parse_token_string_t cmd_set_xstats_hide_zero_on_off =
> +static cmdline_parse_token_string_t cmd_set_xstats_hide_zero_on_off =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_xstats_hide_zero_result,
>  				 on_off, "on#off");
> 
> -cmdline_parse_inst_t cmd_set_xstats_hide_zero = {
> +static cmdline_parse_inst_t cmd_set_xstats_hide_zero = {
>  	.f = cmd_set_xstats_hide_zero_parsed,
>  	.data = NULL,
>  	.help_str = "set xstats-hide-zero on|off",
> @@ -9120,17 +9120,17 @@ cmd_set_record_core_cycles_parsed(void
> *parsed_result,
>  	set_record_core_cycles(on_off);
>  }
> 
> -cmdline_parse_token_string_t cmd_set_record_core_cycles_keyword =
> +static cmdline_parse_token_string_t cmd_set_record_core_cycles_keyword =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_record_core_cycles_result,
>  				 keyword, "set");
> -cmdline_parse_token_string_t cmd_set_record_core_cycles_name =
> +static cmdline_parse_token_string_t cmd_set_record_core_cycles_name =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_record_core_cycles_result,
>  				 name, "record-core-cycles");
> -cmdline_parse_token_string_t cmd_set_record_core_cycles_on_off =
> +static cmdline_parse_token_string_t cmd_set_record_core_cycles_on_off =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_record_core_cycles_result,
>  				 on_off, "on#off");
> 
> -cmdline_parse_inst_t cmd_set_record_core_cycles = {
> +static cmdline_parse_inst_t cmd_set_record_core_cycles = {
>  	.f = cmd_set_record_core_cycles_parsed,
>  	.data = NULL,
>  	.help_str = "set record-core-cycles on|off",
> @@ -9162,17 +9162,17 @@ cmd_set_record_burst_stats_parsed(void
> *parsed_result,
>  	set_record_burst_stats(on_off);
>  }
> 
> -cmdline_parse_token_string_t cmd_set_record_burst_stats_keyword =
> +static cmdline_parse_token_string_t cmd_set_record_burst_stats_keyword =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_record_burst_stats_result,
>  				 keyword, "set");
> -cmdline_parse_token_string_t cmd_set_record_burst_stats_name =
> +static cmdline_parse_token_string_t cmd_set_record_burst_stats_name =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_record_burst_stats_result,
>  				 name, "record-burst-stats");
> -cmdline_parse_token_string_t cmd_set_record_burst_stats_on_off =
> +static cmdline_parse_token_string_t cmd_set_record_burst_stats_on_off =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_record_burst_stats_result,
>  				 on_off, "on#off");
> 
> -cmdline_parse_inst_t cmd_set_record_burst_stats = {
> +static cmdline_parse_inst_t cmd_set_record_burst_stats = {
>  	.f = cmd_set_record_burst_stats_parsed,
>  	.data = NULL,
>  	.help_str = "set record-burst-stats on|off",
> @@ -9214,26 +9214,26 @@ cmd_set_uc_hash_parsed(void *parsed_result,
> 
>  }
> 
> -cmdline_parse_token_string_t cmd_set_uc_hash_set =
> +static cmdline_parse_token_string_t cmd_set_uc_hash_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
>  				 set, "set");
> -cmdline_parse_token_string_t cmd_set_uc_hash_port =
> +static cmdline_parse_token_string_t cmd_set_uc_hash_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
>  				 port, "port");
> -cmdline_parse_token_num_t cmd_set_uc_hash_portid =
> +static cmdline_parse_token_num_t cmd_set_uc_hash_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_uc_hash_table,
>  			      port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_uc_hash_what =
> +static cmdline_parse_token_string_t cmd_set_uc_hash_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
>  				 what, "uta");
> -cmdline_parse_token_etheraddr_t cmd_set_uc_hash_mac =
> +static cmdline_parse_token_etheraddr_t cmd_set_uc_hash_mac =
>  	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_uc_hash_table,
>  				address);
> -cmdline_parse_token_string_t cmd_set_uc_hash_mode =
> +static cmdline_parse_token_string_t cmd_set_uc_hash_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
>  				 mode, "on#off");
> 
> -cmdline_parse_inst_t cmd_set_uc_hash_filter = {
> +static cmdline_parse_inst_t cmd_set_uc_hash_filter = {
>  	.f = cmd_set_uc_hash_parsed,
>  	.data = NULL,
>  	.help_str = "set port <port_id> uta <mac_addr> on|off)",
> @@ -9276,26 +9276,26 @@ cmd_set_uc_all_hash_parsed(void
> *parsed_result,
>  			ret);
>  }
> 
> -cmdline_parse_token_string_t cmd_set_uc_all_hash_set =
> +static cmdline_parse_token_string_t cmd_set_uc_all_hash_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
>  				 set, "set");
> -cmdline_parse_token_string_t cmd_set_uc_all_hash_port =
> +static cmdline_parse_token_string_t cmd_set_uc_all_hash_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
>  				 port, "port");
> -cmdline_parse_token_num_t cmd_set_uc_all_hash_portid =
> +static cmdline_parse_token_num_t cmd_set_uc_all_hash_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_uc_all_hash_table,
>  			      port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_uc_all_hash_what =
> +static cmdline_parse_token_string_t cmd_set_uc_all_hash_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
>  				 what, "uta");
> -cmdline_parse_token_string_t cmd_set_uc_all_hash_value =
> +static cmdline_parse_token_string_t cmd_set_uc_all_hash_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
>  				value,"all");
> -cmdline_parse_token_string_t cmd_set_uc_all_hash_mode =
> +static cmdline_parse_token_string_t cmd_set_uc_all_hash_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
>  				 mode, "on#off");
> 
> -cmdline_parse_inst_t cmd_set_uc_all_hash_filter = {
> +static cmdline_parse_inst_t cmd_set_uc_all_hash_filter = {
>  	.f = cmd_set_uc_all_hash_parsed,
>  	.data = NULL,
>  	.help_str = "set port <port_id> uta all on|off",
> @@ -9333,29 +9333,29 @@ cmd_set_vf_traffic_parsed(void *parsed_result,
>  	set_vf_traffic(res->port_id, (uint8_t)is_rx, res->vf_id,(uint8_t) is_on);
>  }
> 
> -cmdline_parse_token_string_t cmd_setvf_traffic_set =
> +static cmdline_parse_token_string_t cmd_setvf_traffic_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
>  				 set, "set");
> -cmdline_parse_token_string_t cmd_setvf_traffic_port =
> +static cmdline_parse_token_string_t cmd_setvf_traffic_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
>  				 port, "port");
> -cmdline_parse_token_num_t cmd_setvf_traffic_portid =
> +static cmdline_parse_token_num_t cmd_setvf_traffic_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_traffic,
>  			      port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_setvf_traffic_vf =
> +static cmdline_parse_token_string_t cmd_setvf_traffic_vf =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
>  				 vf, "vf");
> -cmdline_parse_token_num_t cmd_setvf_traffic_vfid =
> +static cmdline_parse_token_num_t cmd_setvf_traffic_vfid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_traffic,
>  			      vf_id, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_setvf_traffic_what =
> +static cmdline_parse_token_string_t cmd_setvf_traffic_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
>  				 what, "tx#rx");
> -cmdline_parse_token_string_t cmd_setvf_traffic_mode =
> +static cmdline_parse_token_string_t cmd_setvf_traffic_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
>  				 mode, "on#off");
> 
> -cmdline_parse_inst_t cmd_set_vf_traffic = {
> +static cmdline_parse_inst_t cmd_set_vf_traffic = {
>  	.f = cmd_set_vf_traffic_parsed,
>  	.data = NULL,
>  	.help_str = "set port <port_id> vf <vf_id> rx|tx on|off",
> @@ -9423,32 +9423,32 @@ cmd_set_vf_rxmode_parsed(void
> *parsed_result,
>  			ret);
>  }
> 
> -cmdline_parse_token_string_t cmd_set_vf_rxmode_set =
> +static cmdline_parse_token_string_t cmd_set_vf_rxmode_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
>  				 set, "set");
> -cmdline_parse_token_string_t cmd_set_vf_rxmode_port =
> +static cmdline_parse_token_string_t cmd_set_vf_rxmode_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
>  				 port, "port");
> -cmdline_parse_token_num_t cmd_set_vf_rxmode_portid =
> +static cmdline_parse_token_num_t cmd_set_vf_rxmode_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_rxmode,
>  			      port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_vf_rxmode_vf =
> +static cmdline_parse_token_string_t cmd_set_vf_rxmode_vf =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
>  				 vf, "vf");
> -cmdline_parse_token_num_t cmd_set_vf_rxmode_vfid =
> +static cmdline_parse_token_num_t cmd_set_vf_rxmode_vfid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_rxmode,
>  			      vf_id, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_set_vf_rxmode_what =
> +static cmdline_parse_token_string_t cmd_set_vf_rxmode_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
>  				 what, "rxmode");
> -cmdline_parse_token_string_t cmd_set_vf_rxmode_mode =
> +static cmdline_parse_token_string_t cmd_set_vf_rxmode_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
>  				 mode, "AUPE#ROPE#BAM#MPE");
> -cmdline_parse_token_string_t cmd_set_vf_rxmode_on =
> +static cmdline_parse_token_string_t cmd_set_vf_rxmode_on =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
>  				 on, "on#off");
> 
> -cmdline_parse_inst_t cmd_set_vf_rxmode = {
> +static cmdline_parse_inst_t cmd_set_vf_rxmode = {
>  	.f = cmd_set_vf_rxmode_parsed,
>  	.data = NULL,
>  	.help_str = "set port <port_id> vf <vf_id> rxmode "
> @@ -9503,29 +9503,29 @@ static void cmd_vf_mac_addr_parsed(void
> *parsed_result,
> 
>  }
> 
> -cmdline_parse_token_string_t cmd_vf_mac_addr_cmd =
> +static cmdline_parse_token_string_t cmd_vf_mac_addr_cmd =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
>  				mac_addr_cmd,"mac_addr");
> -cmdline_parse_token_string_t cmd_vf_mac_addr_what =
> +static cmdline_parse_token_string_t cmd_vf_mac_addr_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
>  				what,"add");
> -cmdline_parse_token_string_t cmd_vf_mac_addr_port =
> +static cmdline_parse_token_string_t cmd_vf_mac_addr_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
>  				port,"port");
> -cmdline_parse_token_num_t cmd_vf_mac_addr_portnum =
> +static cmdline_parse_token_num_t cmd_vf_mac_addr_portnum =
>  	TOKEN_NUM_INITIALIZER(struct cmd_vf_mac_addr_result,
>  				port_num, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_vf_mac_addr_vf =
> +static cmdline_parse_token_string_t cmd_vf_mac_addr_vf =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
>  				vf,"vf");
> -cmdline_parse_token_num_t cmd_vf_mac_addr_vfnum =
> +static cmdline_parse_token_num_t cmd_vf_mac_addr_vfnum =
>  	TOKEN_NUM_INITIALIZER(struct cmd_vf_mac_addr_result,
>  				vf_num, RTE_UINT8);
> -cmdline_parse_token_etheraddr_t cmd_vf_mac_addr_addr =
> +static cmdline_parse_token_etheraddr_t cmd_vf_mac_addr_addr =
>  	TOKEN_ETHERADDR_INITIALIZER(struct cmd_vf_mac_addr_result,
>  				address);
> 
> -cmdline_parse_inst_t cmd_vf_mac_addr_filter = {
> +static cmdline_parse_inst_t cmd_vf_mac_addr_filter = {
>  	.f = cmd_vf_mac_addr_parsed,
>  	.data = (void *)0,
>  	.help_str = "mac_addr add port <port_id> vf <vf_id> <mac_addr>: "
> @@ -9597,29 +9597,29 @@ cmd_vf_rx_vlan_filter_parsed(void
> *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_rx_vlan =
> +static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_rx_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
>  				 rx_vlan, "rx_vlan");
> -cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_what =
> +static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
>  				 what, "add#rm");
> -cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vlanid =
> +static cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vlanid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_vf_rx_vlan_filter,
>  			      vlan_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_port =
> +static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
>  				 port, "port");
> -cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_portid =
> +static cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_portid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_vf_rx_vlan_filter,
>  			      port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_vf =
> +static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_vf =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
>  				 vf, "vf");
> -cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vf_mask =
> +static cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vf_mask =
>  	TOKEN_NUM_INITIALIZER(struct cmd_vf_rx_vlan_filter,
>  			      vf_mask, RTE_UINT64);
> 
> -cmdline_parse_inst_t cmd_vf_rxvlan_filter = {
> +static cmdline_parse_inst_t cmd_vf_rxvlan_filter = {
>  	.f = cmd_vf_rx_vlan_filter_parsed,
>  	.data = NULL,
>  	.help_str = "rx_vlan add|rm <vlan_id> port <port_id> vf <vf_mask>: "
> @@ -9665,29 +9665,29 @@ static void cmd_queue_rate_limit_parsed(void
> *parsed_result,
> 
>  }
> 
> -cmdline_parse_token_string_t cmd_queue_rate_limit_set =
> +static cmdline_parse_token_string_t cmd_queue_rate_limit_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
>  				set, "set");
> -cmdline_parse_token_string_t cmd_queue_rate_limit_port =
> +static cmdline_parse_token_string_t cmd_queue_rate_limit_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
>  				port, "port");
> -cmdline_parse_token_num_t cmd_queue_rate_limit_portnum =
> +static cmdline_parse_token_num_t cmd_queue_rate_limit_portnum =
>  	TOKEN_NUM_INITIALIZER(struct cmd_queue_rate_limit_result,
>  				port_num, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_queue_rate_limit_queue =
> +static cmdline_parse_token_string_t cmd_queue_rate_limit_queue =
>  	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
>  				queue, "queue");
> -cmdline_parse_token_num_t cmd_queue_rate_limit_queuenum =
> +static cmdline_parse_token_num_t cmd_queue_rate_limit_queuenum =
>  	TOKEN_NUM_INITIALIZER(struct cmd_queue_rate_limit_result,
>  				queue_num, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_queue_rate_limit_rate =
> +static cmdline_parse_token_string_t cmd_queue_rate_limit_rate =
>  	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
>  				rate, "rate");
> -cmdline_parse_token_num_t cmd_queue_rate_limit_ratenum =
> +static cmdline_parse_token_num_t cmd_queue_rate_limit_ratenum =
>  	TOKEN_NUM_INITIALIZER(struct cmd_queue_rate_limit_result,
>  				rate_num, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_queue_rate_limit = {
> +static cmdline_parse_inst_t cmd_queue_rate_limit = {
>  	.f = cmd_queue_rate_limit_parsed,
>  	.data = (void *)0,
>  	.help_str = "set port <port_id> queue <queue_id> rate <rate_value>: "
> @@ -9736,35 +9736,35 @@ static void cmd_vf_rate_limit_parsed(void
> *parsed_result,
> 
>  }
> 
> -cmdline_parse_token_string_t cmd_vf_rate_limit_set =
> +static cmdline_parse_token_string_t cmd_vf_rate_limit_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
>  				set, "set");
> -cmdline_parse_token_string_t cmd_vf_rate_limit_port =
> +static cmdline_parse_token_string_t cmd_vf_rate_limit_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
>  				port, "port");
> -cmdline_parse_token_num_t cmd_vf_rate_limit_portnum =
> +static cmdline_parse_token_num_t cmd_vf_rate_limit_portnum =
>  	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
>  				port_num, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_vf_rate_limit_vf =
> +static cmdline_parse_token_string_t cmd_vf_rate_limit_vf =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
>  				vf, "vf");
> -cmdline_parse_token_num_t cmd_vf_rate_limit_vfnum =
> +static cmdline_parse_token_num_t cmd_vf_rate_limit_vfnum =
>  	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
>  				vf_num, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_vf_rate_limit_rate =
> +static cmdline_parse_token_string_t cmd_vf_rate_limit_rate =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
>  				rate, "rate");
> -cmdline_parse_token_num_t cmd_vf_rate_limit_ratenum =
> +static cmdline_parse_token_num_t cmd_vf_rate_limit_ratenum =
>  	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
>  				rate_num, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_vf_rate_limit_q_msk =
> +static cmdline_parse_token_string_t cmd_vf_rate_limit_q_msk =
>  	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
>  				q_msk, "queue_mask");
> -cmdline_parse_token_num_t cmd_vf_rate_limit_q_msk_val =
> +static cmdline_parse_token_num_t cmd_vf_rate_limit_q_msk_val =
>  	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
>  				q_msk_val, RTE_UINT64);
> 
> -cmdline_parse_inst_t cmd_vf_rate_limit = {
> +static cmdline_parse_inst_t cmd_vf_rate_limit = {
>  	.f = cmd_vf_rate_limit_parsed,
>  	.data = (void *)0,
>  	.help_str = "set port <port_id> vf <vf_id> rate <rate_value> "
> @@ -9816,20 +9816,20 @@ cmd_tunnel_udp_config_parsed(void
> *parsed_result,
>  			strerror(-ret));
>  }
> 
> -cmdline_parse_token_string_t cmd_tunnel_udp_config_rx_vxlan_port =
> +static cmdline_parse_token_string_t cmd_tunnel_udp_config_rx_vxlan_port
> =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_udp_config,
>  				rx_vxlan_port, "rx_vxlan_port");
> -cmdline_parse_token_string_t cmd_tunnel_udp_config_what =
> +static cmdline_parse_token_string_t cmd_tunnel_udp_config_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_udp_config,
>  				what, "add#rm");
> -cmdline_parse_token_num_t cmd_tunnel_udp_config_udp_port =
> +static cmdline_parse_token_num_t cmd_tunnel_udp_config_udp_port =
>  	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_udp_config,
>  				udp_port, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_tunnel_udp_config_port_id =
> +static cmdline_parse_token_num_t cmd_tunnel_udp_config_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_udp_config,
>  				port_id, RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_tunnel_udp_config = {
> +static cmdline_parse_inst_t cmd_tunnel_udp_config = {
>  	.f = cmd_tunnel_udp_config_parsed,
>  	.data = (void *)0,
>  	.help_str = "rx_vxlan_port add|rm <udp_port> <port_id>: "
> @@ -9892,30 +9892,30 @@ cmd_cfg_tunnel_udp_port_parsed(void
> *parsed_result,
>  			strerror(-ret));
>  }
> 
> -cmdline_parse_token_string_t cmd_config_tunnel_udp_port_port =
> +static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port,
> port,
>  				 "port");
> -cmdline_parse_token_string_t cmd_config_tunnel_udp_port_config =
> +static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_config =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port,
> config,
>  				 "config");
> -cmdline_parse_token_num_t cmd_config_tunnel_udp_port_port_id =
> +static cmdline_parse_token_num_t cmd_config_tunnel_udp_port_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_tunnel_udp_port,
> port_id,
>  			      RTE_UINT16);
> -cmdline_parse_token_string_t cmd_config_tunnel_udp_port_tunnel_port =
> +static cmdline_parse_token_string_t
> cmd_config_tunnel_udp_port_tunnel_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port,
>  				 udp_tunnel_port,
>  				 "udp_tunnel_port");
> -cmdline_parse_token_string_t cmd_config_tunnel_udp_port_action =
> +static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_action =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port,
> action,
>  				 "add#rm");
> -cmdline_parse_token_string_t cmd_config_tunnel_udp_port_tunnel_type =
> +static cmdline_parse_token_string_t
> cmd_config_tunnel_udp_port_tunnel_type =
>  	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port,
> tunnel_type,
>  				 "vxlan#geneve#vxlan-gpe#ecpri");
> -cmdline_parse_token_num_t cmd_config_tunnel_udp_port_value =
> +static cmdline_parse_token_num_t cmd_config_tunnel_udp_port_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_tunnel_udp_port,
> udp_port,
>  			      RTE_UINT16);
> 
> -cmdline_parse_inst_t cmd_cfg_tunnel_udp_port = {
> +static cmdline_parse_inst_t cmd_cfg_tunnel_udp_port = {
>  	.f = cmd_cfg_tunnel_udp_port_parsed,
>  	.data = NULL,
>  	.help_str = "port config <port_id> udp_tunnel_port add|rm vxlan|"
> @@ -10022,7 +10022,7 @@ static void cmd_dump_parsed(void
> *parsed_result,
>  		rte_log_dump(stdout);
>  }
> 
> -cmdline_parse_token_string_t cmd_dump_dump =
> +static cmdline_parse_token_string_t cmd_dump_dump =
>  	TOKEN_STRING_INITIALIZER(struct cmd_dump_result, dump,
>  		"dump_physmem#"
>  		"dump_memzone#"
> @@ -10033,7 +10033,7 @@ cmdline_parse_token_string_t cmd_dump_dump
> =
>  		"dump_devargs#"
>  		"dump_log_types");
> 
> -cmdline_parse_inst_t cmd_dump = {
> +static cmdline_parse_inst_t cmd_dump = {
>  	.f = cmd_dump_parsed,  /* function to call */
>  	.data = NULL,      /* 2nd arg of func */
>  	.help_str = "Dump status",
> @@ -10074,14 +10074,14 @@ static void cmd_dump_one_parsed(void
> *parsed_result, struct cmdline *cl,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_dump_one_dump =
> +static cmdline_parse_token_string_t cmd_dump_one_dump =
>  	TOKEN_STRING_INITIALIZER(struct cmd_dump_one_result, dump,
>  				 "dump_ring#dump_mempool");
> 
> -cmdline_parse_token_string_t cmd_dump_one_name =
> +static cmdline_parse_token_string_t cmd_dump_one_name =
>  	TOKEN_STRING_INITIALIZER(struct cmd_dump_one_result, name,
> NULL);
> 
> -cmdline_parse_inst_t cmd_dump_one = {
> +static cmdline_parse_inst_t cmd_dump_one = {
>  	.f = cmd_dump_one_parsed,  /* function to call */
>  	.data = NULL,      /* 2nd arg of func */
>  	.help_str = "dump_ring|dump_mempool <name>: Dump one
> ring/mempool",
> @@ -10144,37 +10144,37 @@ cmd_queue_region_parsed(void
> *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_queue_region_set =
> +static cmdline_parse_token_string_t cmd_queue_region_set =
>  TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
>  		set, "set");
> -cmdline_parse_token_string_t cmd_queue_region_port =
> +static cmdline_parse_token_string_t cmd_queue_region_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result, port,
> "port");
> -cmdline_parse_token_num_t cmd_queue_region_port_id =
> +static cmdline_parse_token_num_t cmd_queue_region_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
>  				port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_queue_region_cmd =
> +static cmdline_parse_token_string_t cmd_queue_region_cmd =
>  	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
>  				 cmd, "queue-region");
> -cmdline_parse_token_string_t cmd_queue_region_id =
> +static cmdline_parse_token_string_t cmd_queue_region_id =
>  	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
>  				region, "region_id");
> -cmdline_parse_token_num_t cmd_queue_region_index =
> +static cmdline_parse_token_num_t cmd_queue_region_index =
>  	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
>  				region_id, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
> +static cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
>  	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
>  				queue_start_index, "queue_start_index");
> -cmdline_parse_token_num_t cmd_queue_region_queue_id =
> +static cmdline_parse_token_num_t cmd_queue_region_queue_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
>  				queue_id, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_queue_region_queue_num =
> +static cmdline_parse_token_string_t cmd_queue_region_queue_num =
>  	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
>  				queue_num, "queue_num");
> -cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
> +static cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
>  				queue_num_value, RTE_UINT8);
> 
> -cmdline_parse_inst_t cmd_queue_region = {
> +static cmdline_parse_inst_t cmd_queue_region = {
>  	.f = cmd_queue_region_parsed,
>  	.data = NULL,
>  	.help_str = "set port <port_id> queue-region region_id <value> "
> @@ -10244,31 +10244,31 @@ cmd_region_flowtype_parsed(void
> *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_region_flowtype_set =
> +static cmdline_parse_token_string_t cmd_region_flowtype_set =
>  TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
>  				set, "set");
> -cmdline_parse_token_string_t cmd_region_flowtype_port =
> +static cmdline_parse_token_string_t cmd_region_flowtype_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
>  				port, "port");
> -cmdline_parse_token_num_t cmd_region_flowtype_port_index =
> +static cmdline_parse_token_num_t cmd_region_flowtype_port_index =
>  	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
>  				port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_region_flowtype_cmd =
> +static cmdline_parse_token_string_t cmd_region_flowtype_cmd =
>  	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
>  				cmd, "queue-region");
> -cmdline_parse_token_string_t cmd_region_flowtype_index =
> +static cmdline_parse_token_string_t cmd_region_flowtype_index =
>  	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
>  				region, "region_id");
> -cmdline_parse_token_num_t cmd_region_flowtype_id =
> +static cmdline_parse_token_num_t cmd_region_flowtype_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
>  				region_id, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
> +static cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
>  	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
>  				flowtype, "flowtype");
> -cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
> +static cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
>  				flowtype_id, RTE_UINT8);
> -cmdline_parse_inst_t cmd_region_flowtype = {
> +static cmdline_parse_inst_t cmd_region_flowtype = {
>  	.f = cmd_region_flowtype_parsed,
>  	.data = NULL,
>  	.help_str = "set port <port_id> queue-region region_id <value> "
> @@ -10335,32 +10335,32 @@ cmd_user_priority_region_parsed(void
> *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_user_priority_region_set =
> +static cmdline_parse_token_string_t cmd_user_priority_region_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
>  				set, "set");
> -cmdline_parse_token_string_t cmd_user_priority_region_port =
> +static cmdline_parse_token_string_t cmd_user_priority_region_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
>  				port, "port");
> -cmdline_parse_token_num_t cmd_user_priority_region_port_index =
> +static cmdline_parse_token_num_t cmd_user_priority_region_port_index =
>  	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
>  				port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_user_priority_region_cmd =
> +static cmdline_parse_token_string_t cmd_user_priority_region_cmd =
>  	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
>  				cmd, "queue-region");
> -cmdline_parse_token_string_t cmd_user_priority_region_UP =
> +static cmdline_parse_token_string_t cmd_user_priority_region_UP =
>  	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
>  				user_priority, "UP");
> -cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
> +static cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
>  				user_priority_id, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_user_priority_region_region =
> +static cmdline_parse_token_string_t cmd_user_priority_region_region =
>  	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
>  				region, "region_id");
> -cmdline_parse_token_num_t cmd_user_priority_region_region_id =
> +static cmdline_parse_token_num_t cmd_user_priority_region_region_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
>  				region_id, RTE_UINT8);
> 
> -cmdline_parse_inst_t cmd_user_priority_region = {
> +static cmdline_parse_inst_t cmd_user_priority_region = {
>  	.f = cmd_user_priority_region_parsed,
>  	.data = NULL,
>  	.help_str = "set port <port_id> queue-region UP <value> "
> @@ -10428,26 +10428,26 @@ cmd_flush_queue_region_parsed(void
> *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_flush_queue_region_set =
> +static cmdline_parse_token_string_t cmd_flush_queue_region_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
>  				set, "set");
> -cmdline_parse_token_string_t cmd_flush_queue_region_port =
> +static cmdline_parse_token_string_t cmd_flush_queue_region_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
>  				port, "port");
> -cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
> +static cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
>  	TOKEN_NUM_INITIALIZER(struct cmd_flush_queue_region_result,
>  				port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
> +static cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
>  				cmd, "queue-region");
> -cmdline_parse_token_string_t cmd_flush_queue_region_flush =
> +static cmdline_parse_token_string_t cmd_flush_queue_region_flush =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
>  				flush, "flush");
> -cmdline_parse_token_string_t cmd_flush_queue_region_what =
> +static cmdline_parse_token_string_t cmd_flush_queue_region_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
>  				what, "on#off");
> 
> -cmdline_parse_inst_t cmd_flush_queue_region = {
> +static cmdline_parse_inst_t cmd_flush_queue_region = {
>  	.f = cmd_flush_queue_region_parsed,
>  	.data = NULL,
>  	.help_str = "set port <port_id> queue-region flush on|off"
> @@ -10509,20 +10509,20 @@ cmd_show_queue_region_info_parsed(void
> *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_show_queue_region_info_get =
> +static cmdline_parse_token_string_t cmd_show_queue_region_info_get =
>  TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
>  				show, "show");
> -cmdline_parse_token_string_t cmd_show_queue_region_info_port =
> +static cmdline_parse_token_string_t cmd_show_queue_region_info_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
>  				port, "port");
> -cmdline_parse_token_num_t cmd_show_queue_region_info_port_index =
> +static cmdline_parse_token_num_t
> cmd_show_queue_region_info_port_index =
>  	TOKEN_NUM_INITIALIZER(struct cmd_show_queue_region_info,
>  				port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
> +static cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
>  				cmd, "queue-region");
> 
> -cmdline_parse_inst_t cmd_show_queue_region_info_all = {
> +static cmdline_parse_inst_t cmd_show_queue_region_info_all = {
>  	.f = cmd_show_queue_region_info_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> queue-region"
> @@ -10678,51 +10678,51 @@ cmd_flow_director_filter_parsed(void
> *parsed_result,
>  	close_file(conf.input.packet);
>  }
> 
> -cmdline_parse_token_string_t cmd_flow_director_filter =
> +static cmdline_parse_token_string_t cmd_flow_director_filter =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
>  				 flow_director_filter, "flow_director_filter");
> -cmdline_parse_token_num_t cmd_flow_director_port_id =
> +static cmdline_parse_token_num_t cmd_flow_director_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
>  			      port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_flow_director_ops =
> +static cmdline_parse_token_string_t cmd_flow_director_ops =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
>  				 ops, "add#del#update");
> -cmdline_parse_token_string_t cmd_flow_director_flow =
> +static cmdline_parse_token_string_t cmd_flow_director_flow =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
>  				 flow, "flow");
> -cmdline_parse_token_string_t cmd_flow_director_flow_type =
> +static cmdline_parse_token_string_t cmd_flow_director_flow_type =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
>  		flow_type, NULL);
> -cmdline_parse_token_string_t cmd_flow_director_drop =
> +static cmdline_parse_token_string_t cmd_flow_director_drop =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
>  				 drop, "drop#fwd");
> -cmdline_parse_token_string_t cmd_flow_director_queue =
> +static cmdline_parse_token_string_t cmd_flow_director_queue =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
>  				 queue, "queue");
> -cmdline_parse_token_num_t cmd_flow_director_queue_id =
> +static cmdline_parse_token_num_t cmd_flow_director_queue_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
>  			      queue_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_flow_director_fd_id =
> +static cmdline_parse_token_string_t cmd_flow_director_fd_id =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
>  				 fd_id, "fd_id");
> -cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
> +static cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
>  			      fd_id_value, RTE_UINT32);
> 
> -cmdline_parse_token_string_t cmd_flow_director_mode =
> +static cmdline_parse_token_string_t cmd_flow_director_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
>  				 mode, "mode");
> -cmdline_parse_token_string_t cmd_flow_director_mode_raw =
> +static cmdline_parse_token_string_t cmd_flow_director_mode_raw =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
>  				 mode_value, "raw");
> -cmdline_parse_token_string_t cmd_flow_director_packet =
> +static cmdline_parse_token_string_t cmd_flow_director_packet =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
>  				 packet, "packet");
> -cmdline_parse_token_string_t cmd_flow_director_filepath =
> +static cmdline_parse_token_string_t cmd_flow_director_filepath =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
>  				 filepath, NULL);
> 
> -cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
> +static cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
>  	.f = cmd_flow_director_filter_parsed,
>  	.data = NULL,
>  	.help_str = "flow_director_filter ... : Add or delete a raw flow "
> @@ -10825,75 +10825,75 @@ cmd_flow_director_mask_parsed(void
> *parsed_result,
>  	cmd_reconfig_device_queue(res->port_id, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_flow_director_mask =
> +static cmdline_parse_token_string_t cmd_flow_director_mask =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
>  				 flow_director_mask, "flow_director_mask");
> -cmdline_parse_token_num_t cmd_flow_director_mask_port_id =
> +static cmdline_parse_token_num_t cmd_flow_director_mask_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
>  			      port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_flow_director_mask_vlan =
> +static cmdline_parse_token_string_t cmd_flow_director_mask_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
>  				 vlan, "vlan");
> -cmdline_parse_token_num_t cmd_flow_director_mask_vlan_value =
> +static cmdline_parse_token_num_t cmd_flow_director_mask_vlan_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
>  			      vlan_mask, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_flow_director_mask_src =
> +static cmdline_parse_token_string_t cmd_flow_director_mask_src =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
>  				 src_mask, "src_mask");
> -cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_src =
> +static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_src =
>  	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
>  				 ipv4_src);
> -cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_src =
> +static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_src =
>  	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
>  				 ipv6_src);
> -cmdline_parse_token_num_t cmd_flow_director_mask_port_src =
> +static cmdline_parse_token_num_t cmd_flow_director_mask_port_src =
>  	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
>  			      port_src, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_flow_director_mask_dst =
> +static cmdline_parse_token_string_t cmd_flow_director_mask_dst =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
>  				 dst_mask, "dst_mask");
> -cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_dst =
> +static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_dst =
>  	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
>  				 ipv4_dst);
> -cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_dst =
> +static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_dst =
>  	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
>  				 ipv6_dst);
> -cmdline_parse_token_num_t cmd_flow_director_mask_port_dst =
> +static cmdline_parse_token_num_t cmd_flow_director_mask_port_dst =
>  	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
>  			      port_dst, RTE_UINT16);
> 
> -cmdline_parse_token_string_t cmd_flow_director_mask_mode =
> +static cmdline_parse_token_string_t cmd_flow_director_mask_mode =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
>  				 mode, "mode");
> -cmdline_parse_token_string_t cmd_flow_director_mask_mode_ip =
> +static cmdline_parse_token_string_t cmd_flow_director_mask_mode_ip =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
>  				 mode_value, "IP");
> -cmdline_parse_token_string_t cmd_flow_director_mask_mode_mac_vlan =
> +static cmdline_parse_token_string_t
> cmd_flow_director_mask_mode_mac_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
>  				 mode_value, "MAC-VLAN");
> -cmdline_parse_token_string_t cmd_flow_director_mask_mode_tunnel =
> +static cmdline_parse_token_string_t cmd_flow_director_mask_mode_tunnel
> =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
>  				 mode_value, "Tunnel");
> -cmdline_parse_token_string_t cmd_flow_director_mask_mac =
> +static cmdline_parse_token_string_t cmd_flow_director_mask_mac =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
>  				 mac, "mac");
> -cmdline_parse_token_num_t cmd_flow_director_mask_mac_value =
> +static cmdline_parse_token_num_t cmd_flow_director_mask_mac_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
>  			      mac_addr_byte_mask, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_type =
> +static cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_type =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
>  				 tunnel_type, "tunnel-type");
> -cmdline_parse_token_num_t cmd_flow_director_mask_tunnel_type_value =
> +static cmdline_parse_token_num_t
> cmd_flow_director_mask_tunnel_type_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
>  			      tunnel_type_mask, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_id =
> +static cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_id =
>  	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
>  				 tunnel_id, "tunnel-id");
> -cmdline_parse_token_num_t cmd_flow_director_mask_tunnel_id_value =
> +static cmdline_parse_token_num_t
> cmd_flow_director_mask_tunnel_id_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
>  			      tunnel_id_mask, RTE_UINT32);
> 
> -cmdline_parse_inst_t cmd_set_flow_director_ip_mask = {
> +static cmdline_parse_inst_t cmd_set_flow_director_ip_mask = {
>  	.f = cmd_flow_director_mask_parsed,
>  	.data = NULL,
>  	.help_str = "flow_director_mask ... : "
> @@ -10917,7 +10917,7 @@ cmdline_parse_inst_t
> cmd_set_flow_director_ip_mask = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_set_flow_director_mac_vlan_mask = {
> +static cmdline_parse_inst_t cmd_set_flow_director_mac_vlan_mask = {
>  	.f = cmd_flow_director_mask_parsed,
>  	.data = NULL,
>  	.help_str = "flow_director_mask ... : Set MAC VLAN mode "
> @@ -10933,7 +10933,7 @@ cmdline_parse_inst_t
> cmd_set_flow_director_mac_vlan_mask = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_set_flow_director_tunnel_mask = {
> +static cmdline_parse_inst_t cmd_set_flow_director_tunnel_mask = {
>  	.f = cmd_flow_director_mask_parsed,
>  	.data = NULL,
>  	.help_str = "flow_director_mask ... : Set tunnel mode "
> @@ -11040,21 +11040,21 @@ cmd_flow_director_flxpld_parsed(void
> *parsed_result,
>  	cmd_reconfig_device_queue(res->port_id, 1, 1);
>  }
> 
> -cmdline_parse_token_string_t cmd_flow_director_flexpayload =
> +static cmdline_parse_token_string_t cmd_flow_director_flexpayload =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_flow_director_flexpayload_result,
>  				 flow_director_flexpayload,
>  				 "flow_director_flex_payload");
> -cmdline_parse_token_num_t cmd_flow_director_flexpayload_port_id =
> +static cmdline_parse_token_num_t cmd_flow_director_flexpayload_port_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_flow_director_flexpayload_result,
>  			      port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_flow_director_flexpayload_payload_layer
> =
> +static cmdline_parse_token_string_t
> cmd_flow_director_flexpayload_payload_layer =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_flow_director_flexpayload_result,
>  				 payload_layer, "raw#l2#l3#l4");
> -cmdline_parse_token_string_t cmd_flow_director_flexpayload_payload_cfg =
> +static cmdline_parse_token_string_t
> cmd_flow_director_flexpayload_payload_cfg =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_flow_director_flexpayload_result,
>  				 payload_cfg, NULL);
> 
> -cmdline_parse_inst_t cmd_set_flow_director_flex_payload = {
> +static cmdline_parse_inst_t cmd_set_flow_director_flex_payload = {
>  	.f = cmd_flow_director_flxpld_parsed,
>  	.data = NULL,
>  	.help_str = "flow_director_flexpayload ... : "
> @@ -11097,19 +11097,19 @@ static void cmd_mcast_addr_parsed(void
> *parsed_result,
>  		mcast_addr_remove(res->port_num, &res->mc_addr);
>  }
> 
> -cmdline_parse_token_string_t cmd_mcast_addr_cmd =
> +static cmdline_parse_token_string_t cmd_mcast_addr_cmd =
>  	TOKEN_STRING_INITIALIZER(struct cmd_mcast_addr_result,
>  				 mcast_addr_cmd, "mcast_addr");
> -cmdline_parse_token_string_t cmd_mcast_addr_what =
> +static cmdline_parse_token_string_t cmd_mcast_addr_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_mcast_addr_result, what,
>  				 "add#remove");
> -cmdline_parse_token_num_t cmd_mcast_addr_portnum =
> +static cmdline_parse_token_num_t cmd_mcast_addr_portnum =
>  	TOKEN_NUM_INITIALIZER(struct cmd_mcast_addr_result, port_num,
>  				 RTE_UINT16);
> -cmdline_parse_token_etheraddr_t cmd_mcast_addr_addr =
> +static cmdline_parse_token_etheraddr_t cmd_mcast_addr_addr =
>  	TOKEN_ETHERADDR_INITIALIZER(struct cmd_mac_addr_result,
> address);
> 
> -cmdline_parse_inst_t cmd_mcast_addr = {
> +static cmdline_parse_inst_t cmd_mcast_addr = {
>  	.f = cmd_mcast_addr_parsed,
>  	.data = (void *)0,
>  	.help_str = "mcast_addr add|remove <port_id> <mcast_addr>: "
> @@ -11137,31 +11137,31 @@ struct cmd_vf_vlan_anti_spoof_result {
>  };
> 
>  /* Common CLI fields for vf vlan anti spoof enable disable */
> -cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_set =
> +static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_vlan_anti_spoof_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vf =
> +static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vf =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_vlan_anti_spoof_result,
>  		 vf, "vf");
> -cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vlan =
> +static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vlan =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_vlan_anti_spoof_result,
>  		 vlan, "vlan");
> -cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_antispoof =
> +static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_antispoof =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_vlan_anti_spoof_result,
>  		 antispoof, "antispoof");
> -cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_port_id =
> +static cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_vlan_anti_spoof_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_vf_id =
> +static cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_vf_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_vlan_anti_spoof_result,
>  		 vf_id, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_on_off =
> +static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_vlan_anti_spoof_result,
>  		 on_off, "on#off");
> @@ -11213,7 +11213,7 @@ cmd_set_vf_vlan_anti_spoof_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_vf_vlan_anti_spoof = {
> +static cmdline_parse_inst_t cmd_set_vf_vlan_anti_spoof = {
>  	.f = cmd_set_vf_vlan_anti_spoof_parsed,
>  	.data = NULL,
>  	.help_str = "set vf vlan antispoof <port_id> <vf_id> on|off",
> @@ -11243,31 +11243,31 @@ struct cmd_vf_mac_anti_spoof_result {
>  };
> 
>  /* Common CLI fields for vf mac anti spoof enable disable */
> -cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_set =
> +static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_mac_anti_spoof_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_vf =
> +static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_vf =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_mac_anti_spoof_result,
>  		 vf, "vf");
> -cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_mac =
> +static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_mac =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_mac_anti_spoof_result,
>  		 mac, "mac");
> -cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_antispoof =
> +static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_antispoof =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_mac_anti_spoof_result,
>  		 antispoof, "antispoof");
> -cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_port_id =
> +static cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_mac_anti_spoof_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_vf_id =
> +static cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_vf_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_mac_anti_spoof_result,
>  		 vf_id, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_on_off =
> +static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_mac_anti_spoof_result,
>  		 on_off, "on#off");
> @@ -11320,7 +11320,7 @@ cmd_set_vf_mac_anti_spoof_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_vf_mac_anti_spoof = {
> +static cmdline_parse_inst_t cmd_set_vf_mac_anti_spoof = {
>  	.f = cmd_set_vf_mac_anti_spoof_parsed,
>  	.data = NULL,
>  	.help_str = "set vf mac antispoof <port_id> <vf_id> on|off",
> @@ -11350,31 +11350,31 @@ struct cmd_vf_vlan_stripq_result {
>  };
> 
>  /* Common CLI fields for vf vlan strip enable disable */
> -cmdline_parse_token_string_t cmd_vf_vlan_stripq_set =
> +static cmdline_parse_token_string_t cmd_vf_vlan_stripq_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_vlan_stripq_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_vf_vlan_stripq_vf =
> +static cmdline_parse_token_string_t cmd_vf_vlan_stripq_vf =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_vlan_stripq_result,
>  		 vf, "vf");
> -cmdline_parse_token_string_t cmd_vf_vlan_stripq_vlan =
> +static cmdline_parse_token_string_t cmd_vf_vlan_stripq_vlan =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_vlan_stripq_result,
>  		 vlan, "vlan");
> -cmdline_parse_token_string_t cmd_vf_vlan_stripq_stripq =
> +static cmdline_parse_token_string_t cmd_vf_vlan_stripq_stripq =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_vlan_stripq_result,
>  		 stripq, "stripq");
> -cmdline_parse_token_num_t cmd_vf_vlan_stripq_port_id =
> +static cmdline_parse_token_num_t cmd_vf_vlan_stripq_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_vlan_stripq_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_vf_vlan_stripq_vf_id =
> +static cmdline_parse_token_num_t cmd_vf_vlan_stripq_vf_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_vlan_stripq_result,
>  		 vf_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_vf_vlan_stripq_on_off =
> +static cmdline_parse_token_string_t cmd_vf_vlan_stripq_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_vlan_stripq_result,
>  		 on_off, "on#off");
> @@ -11427,7 +11427,7 @@ cmd_set_vf_vlan_stripq_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_vf_vlan_stripq = {
> +static cmdline_parse_inst_t cmd_set_vf_vlan_stripq = {
>  	.f = cmd_set_vf_vlan_stripq_parsed,
>  	.data = NULL,
>  	.help_str = "set vf vlan stripq <port_id> <vf_id> on|off",
> @@ -11457,31 +11457,31 @@ struct cmd_vf_vlan_insert_result {
>  };
> 
>  /* Common CLI fields for vf vlan insert enable disable */
> -cmdline_parse_token_string_t cmd_vf_vlan_insert_set =
> +static cmdline_parse_token_string_t cmd_vf_vlan_insert_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_vlan_insert_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_vf_vlan_insert_vf =
> +static cmdline_parse_token_string_t cmd_vf_vlan_insert_vf =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_vlan_insert_result,
>  		 vf, "vf");
> -cmdline_parse_token_string_t cmd_vf_vlan_insert_vlan =
> +static cmdline_parse_token_string_t cmd_vf_vlan_insert_vlan =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_vlan_insert_result,
>  		 vlan, "vlan");
> -cmdline_parse_token_string_t cmd_vf_vlan_insert_insert =
> +static cmdline_parse_token_string_t cmd_vf_vlan_insert_insert =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_vlan_insert_result,
>  		 insert, "insert");
> -cmdline_parse_token_num_t cmd_vf_vlan_insert_port_id =
> +static cmdline_parse_token_num_t cmd_vf_vlan_insert_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_vlan_insert_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_vf_vlan_insert_vf_id =
> +static cmdline_parse_token_num_t cmd_vf_vlan_insert_vf_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_vlan_insert_result,
>  		 vf_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_vf_vlan_insert_vlan_id =
> +static cmdline_parse_token_num_t cmd_vf_vlan_insert_vlan_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_vlan_insert_result,
>  		 vlan_id, RTE_UINT16);
> @@ -11532,7 +11532,7 @@ cmd_set_vf_vlan_insert_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_vf_vlan_insert = {
> +static cmdline_parse_inst_t cmd_set_vf_vlan_insert = {
>  	.f = cmd_set_vf_vlan_insert_parsed,
>  	.data = NULL,
>  	.help_str = "set vf vlan insert <port_id> <vf_id> <vlan_id>",
> @@ -11560,23 +11560,23 @@ struct cmd_tx_loopback_result {
>  };
> 
>  /* Common CLI fields for tx loopback enable disable */
> -cmdline_parse_token_string_t cmd_tx_loopback_set =
> +static cmdline_parse_token_string_t cmd_tx_loopback_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_tx_loopback_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_tx_loopback_tx =
> +static cmdline_parse_token_string_t cmd_tx_loopback_tx =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_tx_loopback_result,
>  		 tx, "tx");
> -cmdline_parse_token_string_t cmd_tx_loopback_loopback =
> +static cmdline_parse_token_string_t cmd_tx_loopback_loopback =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_tx_loopback_result,
>  		 loopback, "loopback");
> -cmdline_parse_token_num_t cmd_tx_loopback_port_id =
> +static cmdline_parse_token_num_t cmd_tx_loopback_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_tx_loopback_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_tx_loopback_on_off =
> +static cmdline_parse_token_string_t cmd_tx_loopback_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_tx_loopback_result,
>  		 on_off, "on#off");
> @@ -11629,7 +11629,7 @@ cmd_set_tx_loopback_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_tx_loopback = {
> +static cmdline_parse_inst_t cmd_set_tx_loopback = {
>  	.f = cmd_set_tx_loopback_parsed,
>  	.data = NULL,
>  	.help_str = "set tx loopback <port_id> on|off",
> @@ -11656,27 +11656,27 @@ struct cmd_all_queues_drop_en_result {
>  };
> 
>  /* Common CLI fields for tx loopback enable disable */
> -cmdline_parse_token_string_t cmd_all_queues_drop_en_set =
> +static cmdline_parse_token_string_t cmd_all_queues_drop_en_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_all_queues_drop_en_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_all_queues_drop_en_all =
> +static cmdline_parse_token_string_t cmd_all_queues_drop_en_all =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_all_queues_drop_en_result,
>  		 all, "all");
> -cmdline_parse_token_string_t cmd_all_queues_drop_en_queues =
> +static cmdline_parse_token_string_t cmd_all_queues_drop_en_queues =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_all_queues_drop_en_result,
>  		 queues, "queues");
> -cmdline_parse_token_string_t cmd_all_queues_drop_en_drop =
> +static cmdline_parse_token_string_t cmd_all_queues_drop_en_drop =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_all_queues_drop_en_result,
>  		 drop, "drop");
> -cmdline_parse_token_num_t cmd_all_queues_drop_en_port_id =
> +static cmdline_parse_token_num_t cmd_all_queues_drop_en_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_all_queues_drop_en_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_all_queues_drop_en_on_off =
> +static cmdline_parse_token_string_t cmd_all_queues_drop_en_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_all_queues_drop_en_result,
>  		 on_off, "on#off");
> @@ -11719,7 +11719,7 @@ cmd_set_all_queues_drop_en_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_all_queues_drop_en = {
> +static cmdline_parse_inst_t cmd_set_all_queues_drop_en = {
>  	.f = cmd_set_all_queues_drop_en_parsed,
>  	.data = NULL,
>  	.help_str = "set all queues drop <port_id> on|off",
> @@ -11748,31 +11748,31 @@ struct cmd_vf_split_drop_en_result {
>  };
> 
>  /* Common CLI fields for vf split drop enable disable */
> -cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
> +static cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_split_drop_en_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
> +static cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_split_drop_en_result,
>  		 vf, "vf");
> -cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
> +static cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_split_drop_en_result,
>  		 split, "split");
> -cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
> +static cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_split_drop_en_result,
>  		 drop, "drop");
> -cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
> +static cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_split_drop_en_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
> +static cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_split_drop_en_result,
>  		 vf_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
> +static cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_split_drop_en_result,
>  		 on_off, "on#off");
> @@ -11812,7 +11812,7 @@ cmd_set_vf_split_drop_en_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
> +static cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
>  	.f = cmd_set_vf_split_drop_en_parsed,
>  	.data = NULL,
>  	.help_str = "set vf split drop <port_id> <vf_id> on|off",
> @@ -11843,31 +11843,31 @@ struct cmd_set_vf_mac_addr_result {
>  };
> 
>  /* Common CLI fields for vf split drop enable disable */
> -cmdline_parse_token_string_t cmd_set_vf_mac_addr_set =
> +static cmdline_parse_token_string_t cmd_set_vf_mac_addr_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_vf_mac_addr_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_set_vf_mac_addr_vf =
> +static cmdline_parse_token_string_t cmd_set_vf_mac_addr_vf =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_vf_mac_addr_result,
>  		 vf, "vf");
> -cmdline_parse_token_string_t cmd_set_vf_mac_addr_mac =
> +static cmdline_parse_token_string_t cmd_set_vf_mac_addr_mac =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_vf_mac_addr_result,
>  		 mac, "mac");
> -cmdline_parse_token_string_t cmd_set_vf_mac_addr_addr =
> +static cmdline_parse_token_string_t cmd_set_vf_mac_addr_addr =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_vf_mac_addr_result,
>  		 addr, "addr");
> -cmdline_parse_token_num_t cmd_set_vf_mac_addr_port_id =
> +static cmdline_parse_token_num_t cmd_set_vf_mac_addr_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_set_vf_mac_addr_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_set_vf_mac_addr_vf_id =
> +static cmdline_parse_token_num_t cmd_set_vf_mac_addr_vf_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_set_vf_mac_addr_result,
>  		 vf_id, RTE_UINT16);
> -cmdline_parse_token_etheraddr_t cmd_set_vf_mac_addr_mac_addr =
> +static cmdline_parse_token_etheraddr_t cmd_set_vf_mac_addr_mac_addr =
>  	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vf_mac_addr_result,
>  		 mac_addr);
> 
> @@ -11916,7 +11916,7 @@ cmd_set_vf_mac_addr_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_vf_mac_addr = {
> +static cmdline_parse_inst_t cmd_set_vf_mac_addr = {
>  	.f = cmd_set_vf_mac_addr_parsed,
>  	.data = NULL,
>  	.help_str = "set vf mac addr <port_id> <vf_id> <mac_addr>",
> @@ -11948,39 +11948,39 @@ struct cmd_macsec_offload_on_result {
>  };
> 
>  /* Common CLI fields for MACsec offload disable */
> -cmdline_parse_token_string_t cmd_macsec_offload_on_set =
> +static cmdline_parse_token_string_t cmd_macsec_offload_on_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_offload_on_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
> +static cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_offload_on_result,
>  		 macsec, "macsec");
> -cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
> +static cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_offload_on_result,
>  		 offload, "offload");
> -cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
> +static cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_macsec_offload_on_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_macsec_offload_on_on =
> +static cmdline_parse_token_string_t cmd_macsec_offload_on_on =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_offload_on_result,
>  		 on, "on");
> -cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
> +static cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_offload_on_result,
>  		 encrypt, "encrypt");
> -cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
> +static cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_offload_on_result,
>  		 en_on_off, "on#off");
> -cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
> +static cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect
> =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_offload_on_result,
>  		 replay_protect, "replay-protect");
> -cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
> +static cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_offload_on_result,
>  		 rp_on_off, "on#off");
> @@ -12034,7 +12034,7 @@ cmd_set_macsec_offload_on_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_macsec_offload_on = {
> +static cmdline_parse_inst_t cmd_set_macsec_offload_on = {
>  	.f = cmd_set_macsec_offload_on_parsed,
>  	.data = NULL,
>  	.help_str = "set macsec offload <port_id> on "
> @@ -12063,23 +12063,23 @@ struct cmd_macsec_offload_off_result {
>  };
> 
>  /* Common CLI fields for MACsec offload disable */
> -cmdline_parse_token_string_t cmd_macsec_offload_off_set =
> +static cmdline_parse_token_string_t cmd_macsec_offload_off_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_offload_off_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
> +static cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_offload_off_result,
>  		 macsec, "macsec");
> -cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
> +static cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_offload_off_result,
>  		 offload, "offload");
> -cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
> +static cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_macsec_offload_off_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_macsec_offload_off_off =
> +static cmdline_parse_token_string_t cmd_macsec_offload_off_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_offload_off_result,
>  		 off, "off");
> @@ -12128,7 +12128,7 @@ cmd_set_macsec_offload_off_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_macsec_offload_off = {
> +static cmdline_parse_inst_t cmd_set_macsec_offload_off = {
>  	.f = cmd_set_macsec_offload_off_parsed,
>  	.data = NULL,
>  	.help_str = "set macsec offload <port_id> off",
> @@ -12154,31 +12154,31 @@ struct cmd_macsec_sc_result {
>  };
> 
>  /* Common CLI fields for MACsec secure connection configure */
> -cmdline_parse_token_string_t cmd_macsec_sc_set =
> +static cmdline_parse_token_string_t cmd_macsec_sc_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_sc_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_macsec_sc_macsec =
> +static cmdline_parse_token_string_t cmd_macsec_sc_macsec =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_sc_result,
>  		 macsec, "macsec");
> -cmdline_parse_token_string_t cmd_macsec_sc_sc =
> +static cmdline_parse_token_string_t cmd_macsec_sc_sc =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_sc_result,
>  		 sc, "sc");
> -cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
> +static cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_sc_result,
>  		 tx_rx, "tx#rx");
> -cmdline_parse_token_num_t cmd_macsec_sc_port_id =
> +static cmdline_parse_token_num_t cmd_macsec_sc_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_macsec_sc_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
> +static cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
>  	TOKEN_ETHERADDR_INITIALIZER
>  		(struct cmd_macsec_sc_result,
>  		 mac);
> -cmdline_parse_token_num_t cmd_macsec_sc_pi =
> +static cmdline_parse_token_num_t cmd_macsec_sc_pi =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_macsec_sc_result,
>  		 pi, RTE_UINT16);
> @@ -12216,7 +12216,7 @@ cmd_set_macsec_sc_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_macsec_sc = {
> +static cmdline_parse_inst_t cmd_set_macsec_sc = {
>  	.f = cmd_set_macsec_sc_parsed,
>  	.data = NULL,
>  	.help_str = "set macsec sc tx|rx <port_id> <mac> <pi>",
> @@ -12246,39 +12246,39 @@ struct cmd_macsec_sa_result {
>  };
> 
>  /* Common CLI fields for MACsec secure connection configure */
> -cmdline_parse_token_string_t cmd_macsec_sa_set =
> +static cmdline_parse_token_string_t cmd_macsec_sa_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_sa_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_macsec_sa_macsec =
> +static cmdline_parse_token_string_t cmd_macsec_sa_macsec =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_sa_result,
>  		 macsec, "macsec");
> -cmdline_parse_token_string_t cmd_macsec_sa_sa =
> +static cmdline_parse_token_string_t cmd_macsec_sa_sa =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_sa_result,
>  		 sa, "sa");
> -cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
> +static cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_sa_result,
>  		 tx_rx, "tx#rx");
> -cmdline_parse_token_num_t cmd_macsec_sa_port_id =
> +static cmdline_parse_token_num_t cmd_macsec_sa_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_macsec_sa_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_macsec_sa_idx =
> +static cmdline_parse_token_num_t cmd_macsec_sa_idx =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_macsec_sa_result,
>  		 idx, RTE_UINT8);
> -cmdline_parse_token_num_t cmd_macsec_sa_an =
> +static cmdline_parse_token_num_t cmd_macsec_sa_an =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_macsec_sa_result,
>  		 an, RTE_UINT8);
> -cmdline_parse_token_num_t cmd_macsec_sa_pn =
> +static cmdline_parse_token_num_t cmd_macsec_sa_pn =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_macsec_sa_result,
>  		 pn, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_macsec_sa_key =
> +static cmdline_parse_token_string_t cmd_macsec_sa_key =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_macsec_sa_result,
>  		 key, NULL);
> @@ -12339,7 +12339,7 @@ cmd_set_macsec_sa_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_macsec_sa = {
> +static cmdline_parse_inst_t cmd_set_macsec_sa = {
>  	.f = cmd_set_macsec_sa_parsed,
>  	.data = NULL,
>  	.help_str = "set macsec sa tx|rx <port_id> <idx> <an> <pn> <key>",
> @@ -12370,27 +12370,27 @@ struct cmd_vf_promisc_result {
>  };
> 
>  /* Common CLI fields for VF unicast promiscuous mode enable disable */
> -cmdline_parse_token_string_t cmd_vf_promisc_set =
> +static cmdline_parse_token_string_t cmd_vf_promisc_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_promisc_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_vf_promisc_vf =
> +static cmdline_parse_token_string_t cmd_vf_promisc_vf =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_promisc_result,
>  		 vf, "vf");
> -cmdline_parse_token_string_t cmd_vf_promisc_promisc =
> +static cmdline_parse_token_string_t cmd_vf_promisc_promisc =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_promisc_result,
>  		 promisc, "promisc");
> -cmdline_parse_token_num_t cmd_vf_promisc_port_id =
> +static cmdline_parse_token_num_t cmd_vf_promisc_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_promisc_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_vf_promisc_vf_id =
> +static cmdline_parse_token_num_t cmd_vf_promisc_vf_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_promisc_result,
>  		 vf_id, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_vf_promisc_on_off =
> +static cmdline_parse_token_string_t cmd_vf_promisc_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_promisc_result,
>  		 on_off, "on#off");
> @@ -12431,7 +12431,7 @@ cmd_set_vf_promisc_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_vf_promisc = {
> +static cmdline_parse_inst_t cmd_set_vf_promisc = {
>  	.f = cmd_set_vf_promisc_parsed,
>  	.data = NULL,
>  	.help_str = "set vf promisc <port_id> <vf_id> on|off: "
> @@ -12460,27 +12460,27 @@ struct cmd_vf_allmulti_result {
>  };
> 
>  /* Common CLI fields for VF multicast promiscuous mode enable disable */
> -cmdline_parse_token_string_t cmd_vf_allmulti_set =
> +static cmdline_parse_token_string_t cmd_vf_allmulti_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_allmulti_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_vf_allmulti_vf =
> +static cmdline_parse_token_string_t cmd_vf_allmulti_vf =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_allmulti_result,
>  		 vf, "vf");
> -cmdline_parse_token_string_t cmd_vf_allmulti_allmulti =
> +static cmdline_parse_token_string_t cmd_vf_allmulti_allmulti =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_allmulti_result,
>  		 allmulti, "allmulti");
> -cmdline_parse_token_num_t cmd_vf_allmulti_port_id =
> +static cmdline_parse_token_num_t cmd_vf_allmulti_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_allmulti_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_vf_allmulti_vf_id =
> +static cmdline_parse_token_num_t cmd_vf_allmulti_vf_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_allmulti_result,
>  		 vf_id, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_vf_allmulti_on_off =
> +static cmdline_parse_token_string_t cmd_vf_allmulti_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_allmulti_result,
>  		 on_off, "on#off");
> @@ -12521,7 +12521,7 @@ cmd_set_vf_allmulti_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_vf_allmulti = {
> +static cmdline_parse_inst_t cmd_set_vf_allmulti = {
>  	.f = cmd_set_vf_allmulti_parsed,
>  	.data = NULL,
>  	.help_str = "set vf allmulti <port_id> <vf_id> on|off: "
> @@ -12550,27 +12550,27 @@ struct cmd_set_vf_broadcast_result {
>  };
> 
>  /* Common CLI fields for vf broadcast enable disable */
> -cmdline_parse_token_string_t cmd_set_vf_broadcast_set =
> +static cmdline_parse_token_string_t cmd_set_vf_broadcast_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_vf_broadcast_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_set_vf_broadcast_vf =
> +static cmdline_parse_token_string_t cmd_set_vf_broadcast_vf =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_vf_broadcast_result,
>  		 vf, "vf");
> -cmdline_parse_token_string_t cmd_set_vf_broadcast_broadcast =
> +static cmdline_parse_token_string_t cmd_set_vf_broadcast_broadcast =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_vf_broadcast_result,
>  		 broadcast, "broadcast");
> -cmdline_parse_token_num_t cmd_set_vf_broadcast_port_id =
> +static cmdline_parse_token_num_t cmd_set_vf_broadcast_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_set_vf_broadcast_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_set_vf_broadcast_vf_id =
> +static cmdline_parse_token_num_t cmd_set_vf_broadcast_vf_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_set_vf_broadcast_result,
>  		 vf_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_vf_broadcast_on_off =
> +static cmdline_parse_token_string_t cmd_set_vf_broadcast_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_vf_broadcast_result,
>  		 on_off, "on#off");
> @@ -12612,7 +12612,7 @@ cmd_set_vf_broadcast_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_vf_broadcast = {
> +static cmdline_parse_inst_t cmd_set_vf_broadcast = {
>  	.f = cmd_set_vf_broadcast_parsed,
>  	.data = NULL,
>  	.help_str = "set vf broadcast <port_id> <vf_id> on|off",
> @@ -12641,31 +12641,31 @@ struct cmd_set_vf_vlan_tag_result {
>  };
> 
>  /* Common CLI fields for vf vlan tag enable disable */
> -cmdline_parse_token_string_t cmd_set_vf_vlan_tag_set =
> +static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_vf_vlan_tag_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vf =
> +static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vf =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_vf_vlan_tag_result,
>  		 vf, "vf");
> -cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vlan =
> +static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vlan =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_vf_vlan_tag_result,
>  		 vlan, "vlan");
> -cmdline_parse_token_string_t cmd_set_vf_vlan_tag_tag =
> +static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_tag =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_vf_vlan_tag_result,
>  		 tag, "tag");
> -cmdline_parse_token_num_t cmd_set_vf_vlan_tag_port_id =
> +static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_set_vf_vlan_tag_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_set_vf_vlan_tag_vf_id =
> +static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_vf_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_set_vf_vlan_tag_result,
>  		 vf_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_vf_vlan_tag_on_off =
> +static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_vf_vlan_tag_result,
>  		 on_off, "on#off");
> @@ -12707,7 +12707,7 @@ cmd_set_vf_vlan_tag_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_vf_vlan_tag = {
> +static cmdline_parse_inst_t cmd_set_vf_vlan_tag = {
>  	.f = cmd_set_vf_vlan_tag_parsed,
>  	.data = NULL,
>  	.help_str = "set vf vlan tag <port_id> <vf_id> on|off",
> @@ -12740,55 +12740,55 @@ struct cmd_vf_tc_bw_result {
>  	uint8_t tc_map;
>  };
> 
> -cmdline_parse_token_string_t cmd_vf_tc_bw_set =
> +static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_tc_bw_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_vf_tc_bw_vf =
> +static cmdline_parse_token_string_t cmd_vf_tc_bw_vf =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_tc_bw_result,
>  		 vf, "vf");
> -cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
> +static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_tc_bw_result,
>  		 tc, "tc");
> -cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
> +static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_tc_bw_result,
>  		 tx, "tx");
> -cmdline_parse_token_string_t cmd_vf_tc_bw_strict_link_prio =
> +static cmdline_parse_token_string_t cmd_vf_tc_bw_strict_link_prio =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_tc_bw_result,
>  		 strict_link_prio, "strict-link-priority");
> -cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
> +static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_tc_bw_result,
>  		 min_bw, "min-bandwidth");
> -cmdline_parse_token_string_t cmd_vf_tc_bw_max_bw =
> +static cmdline_parse_token_string_t cmd_vf_tc_bw_max_bw =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_tc_bw_result,
>  		 max_bw, "max-bandwidth");
> -cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
> +static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_tc_bw_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_vf_tc_bw_vf_id =
> +static cmdline_parse_token_num_t cmd_vf_tc_bw_vf_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_tc_bw_result,
>  		 vf_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_vf_tc_bw_tc_no =
> +static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_no =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_tc_bw_result,
>  		 tc_no, RTE_UINT8);
> -cmdline_parse_token_num_t cmd_vf_tc_bw_bw =
> +static cmdline_parse_token_num_t cmd_vf_tc_bw_bw =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_tc_bw_result,
>  		 bw, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
> +static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_vf_tc_bw_result,
>  		 bw_list, NULL);
> -cmdline_parse_token_num_t cmd_vf_tc_bw_tc_map =
> +static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_map =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_vf_tc_bw_result,
>  		 tc_map, RTE_UINT8);
> @@ -12829,7 +12829,7 @@ cmd_vf_max_bw_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_vf_max_bw = {
> +static cmdline_parse_inst_t cmd_vf_max_bw = {
>  	.f = cmd_vf_max_bw_parsed,
>  	.data = NULL,
>  	.help_str = "set vf tx max-bandwidth <port_id> <vf_id> <bandwidth>",
> @@ -12931,7 +12931,7 @@ cmd_vf_tc_min_bw_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_vf_tc_min_bw = {
> +static cmdline_parse_inst_t cmd_vf_tc_min_bw = {
>  	.f = cmd_vf_tc_min_bw_parsed,
>  	.data = NULL,
>  	.help_str = "set vf tc tx min-bandwidth <port_id> <vf_id>"
> @@ -12996,7 +12996,7 @@ cmd_tc_min_bw_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_tc_min_bw = {
> +static cmdline_parse_inst_t cmd_tc_min_bw = {
>  	.f = cmd_tc_min_bw_parsed,
>  	.data = NULL,
>  	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
> @@ -13048,7 +13048,7 @@ cmd_vf_tc_max_bw_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_vf_tc_max_bw = {
> +static cmdline_parse_inst_t cmd_vf_tc_max_bw = {
>  	.f = cmd_vf_tc_max_bw_parsed,
>  	.data = NULL,
>  	.help_str = "set vf tc tx max-bandwidth <port_id> <vf_id> <tc_no>"
> @@ -13086,71 +13086,71 @@ struct cmd_set_vxlan_result {
>  	struct rte_ether_addr eth_dst;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_vxlan_set =
> +static cmdline_parse_token_string_t cmd_set_vxlan_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, set, "set");
> -cmdline_parse_token_string_t cmd_set_vxlan_vxlan =
> +static cmdline_parse_token_string_t cmd_set_vxlan_vxlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
> "vxlan");
> -cmdline_parse_token_string_t cmd_set_vxlan_vxlan_tos_ttl =
> +static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_tos_ttl =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
>  				 "vxlan-tos-ttl");
> -cmdline_parse_token_string_t cmd_set_vxlan_vxlan_with_vlan =
> +static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_with_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
>  				 "vxlan-with-vlan");
> -cmdline_parse_token_string_t cmd_set_vxlan_ip_version =
> +static cmdline_parse_token_string_t cmd_set_vxlan_ip_version =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
>  				 "ip-version");
> -cmdline_parse_token_string_t cmd_set_vxlan_ip_version_value =
> +static cmdline_parse_token_string_t cmd_set_vxlan_ip_version_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, ip_version,
>  				 "ipv4#ipv6");
> -cmdline_parse_token_string_t cmd_set_vxlan_vni =
> +static cmdline_parse_token_string_t cmd_set_vxlan_vni =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
>  				 "vni");
> -cmdline_parse_token_num_t cmd_set_vxlan_vni_value =
> +static cmdline_parse_token_num_t cmd_set_vxlan_vni_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, vni,
> RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_vxlan_udp_src =
> +static cmdline_parse_token_string_t cmd_set_vxlan_udp_src =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
>  				 "udp-src");
> -cmdline_parse_token_num_t cmd_set_vxlan_udp_src_value =
> +static cmdline_parse_token_num_t cmd_set_vxlan_udp_src_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_src,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_vxlan_udp_dst =
> +static cmdline_parse_token_string_t cmd_set_vxlan_udp_dst =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
>  				 "udp-dst");
> -cmdline_parse_token_num_t cmd_set_vxlan_udp_dst_value =
> +static cmdline_parse_token_num_t cmd_set_vxlan_udp_dst_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_dst,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_vxlan_ip_tos =
> +static cmdline_parse_token_string_t cmd_set_vxlan_ip_tos =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
>  				 "ip-tos");
> -cmdline_parse_token_num_t cmd_set_vxlan_ip_tos_value =
> +static cmdline_parse_token_num_t cmd_set_vxlan_ip_tos_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tos,
> RTE_UINT8);
> -cmdline_parse_token_string_t cmd_set_vxlan_ip_ttl =
> +static cmdline_parse_token_string_t cmd_set_vxlan_ip_ttl =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
>  				 "ip-ttl");
> -cmdline_parse_token_num_t cmd_set_vxlan_ip_ttl_value =
> +static cmdline_parse_token_num_t cmd_set_vxlan_ip_ttl_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, ttl,
> RTE_UINT8);
> -cmdline_parse_token_string_t cmd_set_vxlan_ip_src =
> +static cmdline_parse_token_string_t cmd_set_vxlan_ip_src =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
>  				 "ip-src");
> -cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_src_value =
> +static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_src_value =
>  	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_src);
> -cmdline_parse_token_string_t cmd_set_vxlan_ip_dst =
> +static cmdline_parse_token_string_t cmd_set_vxlan_ip_dst =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
>  				 "ip-dst");
> -cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_dst_value =
> +static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_dst_value =
>  	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_dst);
> -cmdline_parse_token_string_t cmd_set_vxlan_vlan =
> +static cmdline_parse_token_string_t cmd_set_vxlan_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
>  				 "vlan-tci");
> -cmdline_parse_token_num_t cmd_set_vxlan_vlan_value =
> +static cmdline_parse_token_num_t cmd_set_vxlan_vlan_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tci,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_vxlan_eth_src =
> +static cmdline_parse_token_string_t cmd_set_vxlan_eth_src =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
>  				 "eth-src");
> -cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_src_value =
> +static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_src_value =
>  	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result,
> eth_src);
> -cmdline_parse_token_string_t cmd_set_vxlan_eth_dst =
> +static cmdline_parse_token_string_t cmd_set_vxlan_eth_dst =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
>  				 "eth-dst");
> -cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_dst_value =
> +static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_dst_value =
>  	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result,
> eth_dst);
> 
>  static void cmd_set_vxlan_parsed(void *parsed_result,
> @@ -13200,7 +13200,7 @@ static void cmd_set_vxlan_parsed(void
> *parsed_result,
>  		   RTE_ETHER_ADDR_LEN);
>  }
> 
> -cmdline_parse_inst_t cmd_set_vxlan = {
> +static cmdline_parse_inst_t cmd_set_vxlan = {
>  	.f = cmd_set_vxlan_parsed,
>  	.data = NULL,
>  	.help_str = "set vxlan ip-version ipv4|ipv6 vni <vni> udp-src"
> @@ -13229,7 +13229,7 @@ cmdline_parse_inst_t cmd_set_vxlan = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
> +static cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
>  	.f = cmd_set_vxlan_parsed,
>  	.data = NULL,
>  	.help_str = "set vxlan-tos-ttl ip-version ipv4|ipv6 vni <vni> udp-src"
> @@ -13263,7 +13263,7 @@ cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_set_vxlan_with_vlan = {
> +static cmdline_parse_inst_t cmd_set_vxlan_with_vlan = {
>  	.f = cmd_set_vxlan_parsed,
>  	.data = NULL,
>  	.help_str = "set vxlan-with-vlan ip-version ipv4|ipv6 vni <vni>"
> @@ -13309,48 +13309,48 @@ struct cmd_set_nvgre_result {
>  	struct rte_ether_addr eth_dst;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_nvgre_set =
> +static cmdline_parse_token_string_t cmd_set_nvgre_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, set, "set");
> -cmdline_parse_token_string_t cmd_set_nvgre_nvgre =
> +static cmdline_parse_token_string_t cmd_set_nvgre_nvgre =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre,
> "nvgre");
> -cmdline_parse_token_string_t cmd_set_nvgre_nvgre_with_vlan =
> +static cmdline_parse_token_string_t cmd_set_nvgre_nvgre_with_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre,
>  				 "nvgre-with-vlan");
> -cmdline_parse_token_string_t cmd_set_nvgre_ip_version =
> +static cmdline_parse_token_string_t cmd_set_nvgre_ip_version =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
>  				 "ip-version");
> -cmdline_parse_token_string_t cmd_set_nvgre_ip_version_value =
> +static cmdline_parse_token_string_t cmd_set_nvgre_ip_version_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, ip_version,
>  				 "ipv4#ipv6");
> -cmdline_parse_token_string_t cmd_set_nvgre_tni =
> +static cmdline_parse_token_string_t cmd_set_nvgre_tni =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
>  				 "tni");
> -cmdline_parse_token_num_t cmd_set_nvgre_tni_value =
> +static cmdline_parse_token_num_t cmd_set_nvgre_tni_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tni,
> RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_nvgre_ip_src =
> +static cmdline_parse_token_string_t cmd_set_nvgre_ip_src =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
>  				 "ip-src");
> -cmdline_parse_token_num_t cmd_set_nvgre_ip_src_value =
> +static cmdline_parse_token_num_t cmd_set_nvgre_ip_src_value =
>  	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_src);
> -cmdline_parse_token_string_t cmd_set_nvgre_ip_dst =
> +static cmdline_parse_token_string_t cmd_set_nvgre_ip_dst =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
>  				 "ip-dst");
> -cmdline_parse_token_ipaddr_t cmd_set_nvgre_ip_dst_value =
> +static cmdline_parse_token_ipaddr_t cmd_set_nvgre_ip_dst_value =
>  	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_dst);
> -cmdline_parse_token_string_t cmd_set_nvgre_vlan =
> +static cmdline_parse_token_string_t cmd_set_nvgre_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
>  				 "vlan-tci");
> -cmdline_parse_token_num_t cmd_set_nvgre_vlan_value =
> +static cmdline_parse_token_num_t cmd_set_nvgre_vlan_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tci,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_nvgre_eth_src =
> +static cmdline_parse_token_string_t cmd_set_nvgre_eth_src =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
>  				 "eth-src");
> -cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_src_value =
> +static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_src_value =
>  	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result,
> eth_src);
> -cmdline_parse_token_string_t cmd_set_nvgre_eth_dst =
> +static cmdline_parse_token_string_t cmd_set_nvgre_eth_dst =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
>  				 "eth-dst");
> -cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_dst_value =
> +static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_dst_value =
>  	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result,
> eth_dst);
> 
>  static void cmd_set_nvgre_parsed(void *parsed_result,
> @@ -13391,7 +13391,7 @@ static void cmd_set_nvgre_parsed(void
> *parsed_result,
>  		   RTE_ETHER_ADDR_LEN);
>  }
> 
> -cmdline_parse_inst_t cmd_set_nvgre = {
> +static cmdline_parse_inst_t cmd_set_nvgre = {
>  	.f = cmd_set_nvgre_parsed,
>  	.data = NULL,
>  	.help_str = "set nvgre ip-version <ipv4|ipv6> tni <tni> ip-src"
> @@ -13416,7 +13416,7 @@ cmdline_parse_inst_t cmd_set_nvgre = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_set_nvgre_with_vlan = {
> +static cmdline_parse_inst_t cmd_set_nvgre_with_vlan = {
>  	.f = cmd_set_nvgre_parsed,
>  	.data = NULL,
>  	.help_str = "set nvgre-with-vlan ip-version <ipv4|ipv6> tni <tni>"
> @@ -13455,33 +13455,33 @@ struct cmd_set_l2_encap_result {
>  	struct rte_ether_addr eth_dst;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_l2_encap_set =
> +static cmdline_parse_token_string_t cmd_set_l2_encap_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, set,
> "set");
> -cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap =
> +static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result,
> l2_encap, "l2_encap");
> -cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap_with_vlan =
> +static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap_with_vlan
> =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result,
> l2_encap,
>  				 "l2_encap-with-vlan");
> -cmdline_parse_token_string_t cmd_set_l2_encap_ip_version =
> +static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result,
> pos_token,
>  				 "ip-version");
> -cmdline_parse_token_string_t cmd_set_l2_encap_ip_version_value =
> +static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result,
> ip_version,
>  				 "ipv4#ipv6");
> -cmdline_parse_token_string_t cmd_set_l2_encap_vlan =
> +static cmdline_parse_token_string_t cmd_set_l2_encap_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result,
> pos_token,
>  				 "vlan-tci");
> -cmdline_parse_token_num_t cmd_set_l2_encap_vlan_value =
> +static cmdline_parse_token_num_t cmd_set_l2_encap_vlan_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_l2_encap_result, tci,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_l2_encap_eth_src =
> +static cmdline_parse_token_string_t cmd_set_l2_encap_eth_src =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result,
> pos_token,
>  				 "eth-src");
> -cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_src_value =
> +static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_src_value =
>  	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result,
> eth_src);
> -cmdline_parse_token_string_t cmd_set_l2_encap_eth_dst =
> +static cmdline_parse_token_string_t cmd_set_l2_encap_eth_dst =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result,
> pos_token,
>  				 "eth-dst");
> -cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_dst_value =
> +static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_dst_value =
>  	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result,
> eth_dst);
> 
>  static void cmd_set_l2_encap_parsed(void *parsed_result,
> @@ -13508,7 +13508,7 @@ static void cmd_set_l2_encap_parsed(void
> *parsed_result,
>  		   RTE_ETHER_ADDR_LEN);
>  }
> 
> -cmdline_parse_inst_t cmd_set_l2_encap = {
> +static cmdline_parse_inst_t cmd_set_l2_encap = {
>  	.f = cmd_set_l2_encap_parsed,
>  	.data = NULL,
>  	.help_str = "set l2_encap ip-version ipv4|ipv6"
> @@ -13526,7 +13526,7 @@ cmdline_parse_inst_t cmd_set_l2_encap = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_set_l2_encap_with_vlan = {
> +static cmdline_parse_inst_t cmd_set_l2_encap_with_vlan = {
>  	.f = cmd_set_l2_encap_parsed,
>  	.data = NULL,
>  	.help_str = "set l2_encap-with-vlan ip-version ipv4|ipv6"
> @@ -13554,12 +13554,12 @@ struct cmd_set_l2_decap_result {
>  	uint32_t vlan_present:1;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_l2_decap_set =
> +static cmdline_parse_token_string_t cmd_set_l2_decap_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, set,
> "set");
> -cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap =
> +static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result,
> l2_decap,
>  				 "l2_decap");
> -cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap_with_vlan =
> +static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap_with_vlan
> =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result,
> l2_decap,
>  				 "l2_decap-with-vlan");
> 
> @@ -13575,7 +13575,7 @@ static void cmd_set_l2_decap_parsed(void
> *parsed_result,
>  		l2_decap_conf.select_vlan = 1;
>  }
> 
> -cmdline_parse_inst_t cmd_set_l2_decap = {
> +static cmdline_parse_inst_t cmd_set_l2_decap = {
>  	.f = cmd_set_l2_decap_parsed,
>  	.data = NULL,
>  	.help_str = "set l2_decap",
> @@ -13586,7 +13586,7 @@ cmdline_parse_inst_t cmd_set_l2_decap = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_set_l2_decap_with_vlan = {
> +static cmdline_parse_inst_t cmd_set_l2_decap_with_vlan = {
>  	.f = cmd_set_l2_decap_parsed,
>  	.data = NULL,
>  	.help_str = "set l2_decap-with-vlan",
> @@ -13612,53 +13612,53 @@ struct cmd_set_mplsogre_encap_result {
>  	struct rte_ether_addr eth_dst;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_mplsogre_encap_set =
> +static cmdline_parse_token_string_t cmd_set_mplsogre_encap_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
> set,
>  				 "set");
> -cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap =
> +static cmdline_parse_token_string_t
> cmd_set_mplsogre_encap_mplsogre_encap =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
> mplsogre,
>  				 "mplsogre_encap");
> -cmdline_parse_token_string_t
> cmd_set_mplsogre_encap_mplsogre_encap_with_vlan =
> +static cmdline_parse_token_string_t
> cmd_set_mplsogre_encap_mplsogre_encap_with_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
>  				 mplsogre, "mplsogre_encap-with-vlan");
> -cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version =
> +static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
>  				 pos_token, "ip-version");
> -cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version_value =
> +static cmdline_parse_token_string_t
> cmd_set_mplsogre_encap_ip_version_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
>  				 ip_version, "ipv4#ipv6");
> -cmdline_parse_token_string_t cmd_set_mplsogre_encap_label =
> +static cmdline_parse_token_string_t cmd_set_mplsogre_encap_label =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
>  				 pos_token, "label");
> -cmdline_parse_token_num_t cmd_set_mplsogre_encap_label_value =
> +static cmdline_parse_token_num_t cmd_set_mplsogre_encap_label_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result,
> label,
>  			      RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_src =
> +static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_src =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
>  				 pos_token, "ip-src");
> -cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_src_value =
> +static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_src_value
> =
>  	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
> ip_src);
> -cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_dst =
> +static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_dst =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
>  				 pos_token, "ip-dst");
> -cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_dst_value =
> +static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_dst_value
> =
>  	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
> ip_dst);
> -cmdline_parse_token_string_t cmd_set_mplsogre_encap_vlan =
> +static cmdline_parse_token_string_t cmd_set_mplsogre_encap_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
>  				 pos_token, "vlan-tci");
> -cmdline_parse_token_num_t cmd_set_mplsogre_encap_vlan_value =
> +static cmdline_parse_token_num_t cmd_set_mplsogre_encap_vlan_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, tci,
>  			      RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_src =
> +static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_src =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
>  				 pos_token, "eth-src");
> -cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_src_value
> =
> +static cmdline_parse_token_etheraddr_t
> cmd_set_mplsogre_encap_eth_src_value =
>  	TOKEN_ETHERADDR_INITIALIZER(struct
> cmd_set_mplsogre_encap_result,
>  				    eth_src);
> -cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_dst =
> +static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_dst =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
>  				 pos_token, "eth-dst");
> -cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_dst_value
> =
> +static cmdline_parse_token_etheraddr_t
> cmd_set_mplsogre_encap_eth_dst_value =
>  	TOKEN_ETHERADDR_INITIALIZER(struct
> cmd_set_mplsogre_encap_result,
>  				    eth_dst);
> 
> @@ -13700,7 +13700,7 @@ static void
> cmd_set_mplsogre_encap_parsed(void *parsed_result,
>  		   RTE_ETHER_ADDR_LEN);
>  }
> 
> -cmdline_parse_inst_t cmd_set_mplsogre_encap = {
> +static cmdline_parse_inst_t cmd_set_mplsogre_encap = {
>  	.f = cmd_set_mplsogre_encap_parsed,
>  	.data = NULL,
>  	.help_str = "set mplsogre_encap ip-version ipv4|ipv6 label <label>"
> @@ -13725,7 +13725,7 @@ cmdline_parse_inst_t cmd_set_mplsogre_encap
> = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_set_mplsogre_encap_with_vlan = {
> +static cmdline_parse_inst_t cmd_set_mplsogre_encap_with_vlan = {
>  	.f = cmd_set_mplsogre_encap_parsed,
>  	.data = NULL,
>  	.help_str = "set mplsogre_encap-with-vlan ip-version ipv4|ipv6"
> @@ -13761,19 +13761,19 @@ struct cmd_set_mplsogre_decap_result {
>  	uint32_t vlan_present:1;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_mplsogre_decap_set =
> +static cmdline_parse_token_string_t cmd_set_mplsogre_decap_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
> set,
>  				 "set");
> -cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap =
> +static cmdline_parse_token_string_t
> cmd_set_mplsogre_decap_mplsogre_decap =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
> mplsogre,
>  				 "mplsogre_decap");
> -cmdline_parse_token_string_t
> cmd_set_mplsogre_decap_mplsogre_decap_with_vlan =
> +static cmdline_parse_token_string_t
> cmd_set_mplsogre_decap_mplsogre_decap_with_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
>  				 mplsogre, "mplsogre_decap-with-vlan");
> -cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version =
> +static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
>  				 pos_token, "ip-version");
> -cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version_value =
> +static cmdline_parse_token_string_t
> cmd_set_mplsogre_decap_ip_version_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
>  				 ip_version, "ipv4#ipv6");
> 
> @@ -13793,7 +13793,7 @@ static void
> cmd_set_mplsogre_decap_parsed(void *parsed_result,
>  		mplsogre_decap_conf.select_ipv4 = 0;
>  }
> 
> -cmdline_parse_inst_t cmd_set_mplsogre_decap = {
> +static cmdline_parse_inst_t cmd_set_mplsogre_decap = {
>  	.f = cmd_set_mplsogre_decap_parsed,
>  	.data = NULL,
>  	.help_str = "set mplsogre_decap ip-version ipv4|ipv6",
> @@ -13806,7 +13806,7 @@ cmdline_parse_inst_t cmd_set_mplsogre_decap
> = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_set_mplsogre_decap_with_vlan = {
> +static cmdline_parse_inst_t cmd_set_mplsogre_decap_with_vlan = {
>  	.f = cmd_set_mplsogre_decap_parsed,
>  	.data = NULL,
>  	.help_str = "set mplsogre_decap-with-vlan ip-version ipv4|ipv6",
> @@ -13836,65 +13836,65 @@ struct cmd_set_mplsoudp_encap_result {
>  	struct rte_ether_addr eth_dst;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_mplsoudp_encap_set =
> +static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
> set,
>  				 "set");
> -cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap =
> +static cmdline_parse_token_string_t
> cmd_set_mplsoudp_encap_mplsoudp_encap =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
> mplsoudp,
>  				 "mplsoudp_encap");
> -cmdline_parse_token_string_t
> cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan =
> +static cmdline_parse_token_string_t
> cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
>  				 mplsoudp, "mplsoudp_encap-with-vlan");
> -cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version =
> +static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
>  				 pos_token, "ip-version");
> -cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version_value =
> +static cmdline_parse_token_string_t
> cmd_set_mplsoudp_encap_ip_version_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
>  				 ip_version, "ipv4#ipv6");
> -cmdline_parse_token_string_t cmd_set_mplsoudp_encap_label =
> +static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_label =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
>  				 pos_token, "label");
> -cmdline_parse_token_num_t cmd_set_mplsoudp_encap_label_value =
> +static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_label_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
> label,
>  			      RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_src =
> +static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_src =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
>  				 pos_token, "udp-src");
> -cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_src_value =
> +static cmdline_parse_token_num_t
> cmd_set_mplsoudp_encap_udp_src_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
> udp_src,
>  			      RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_dst =
> +static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_dst =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
>  				 pos_token, "udp-dst");
> -cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_dst_value =
> +static cmdline_parse_token_num_t
> cmd_set_mplsoudp_encap_udp_dst_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
> udp_dst,
>  			      RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_src =
> +static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_src =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
>  				 pos_token, "ip-src");
> -cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_src_value =
> +static cmdline_parse_token_ipaddr_t
> cmd_set_mplsoudp_encap_ip_src_value =
>  	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
> ip_src);
> -cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_dst =
> +static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_dst =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
>  				 pos_token, "ip-dst");
> -cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_dst_value =
> +static cmdline_parse_token_ipaddr_t
> cmd_set_mplsoudp_encap_ip_dst_value =
>  	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
> ip_dst);
> -cmdline_parse_token_string_t cmd_set_mplsoudp_encap_vlan =
> +static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
>  				 pos_token, "vlan-tci");
> -cmdline_parse_token_num_t cmd_set_mplsoudp_encap_vlan_value =
> +static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_vlan_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, tci,
>  			      RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_src =
> +static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_src =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
>  				 pos_token, "eth-src");
> -cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_src_value
> =
> +static cmdline_parse_token_etheraddr_t
> cmd_set_mplsoudp_encap_eth_src_value =
>  	TOKEN_ETHERADDR_INITIALIZER(struct
> cmd_set_mplsoudp_encap_result,
>  				    eth_src);
> -cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_dst =
> +static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_dst =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
>  				 pos_token, "eth-dst");
> -cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_dst_value
> =
> +static cmdline_parse_token_etheraddr_t
> cmd_set_mplsoudp_encap_eth_dst_value =
>  	TOKEN_ETHERADDR_INITIALIZER(struct
> cmd_set_mplsoudp_encap_result,
>  				    eth_dst);
> 
> @@ -13938,7 +13938,7 @@ static void
> cmd_set_mplsoudp_encap_parsed(void *parsed_result,
>  		   RTE_ETHER_ADDR_LEN);
>  }
> 
> -cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
> +static cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
>  	.f = cmd_set_mplsoudp_encap_parsed,
>  	.data = NULL,
>  	.help_str = "set mplsoudp_encap ip-version ipv4|ipv6 label <label>"
> @@ -13967,7 +13967,7 @@ cmdline_parse_inst_t cmd_set_mplsoudp_encap
> = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_set_mplsoudp_encap_with_vlan = {
> +static cmdline_parse_inst_t cmd_set_mplsoudp_encap_with_vlan = {
>  	.f = cmd_set_mplsoudp_encap_parsed,
>  	.data = NULL,
>  	.help_str = "set mplsoudp_encap-with-vlan ip-version ipv4|ipv6"
> @@ -14008,19 +14008,19 @@ struct cmd_set_mplsoudp_decap_result {
>  	uint32_t vlan_present:1;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_mplsoudp_decap_set =
> +static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
> set,
>  				 "set");
> -cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap =
> +static cmdline_parse_token_string_t
> cmd_set_mplsoudp_decap_mplsoudp_decap =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
> mplsoudp,
>  				 "mplsoudp_decap");
> -cmdline_parse_token_string_t
> cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan =
> +static cmdline_parse_token_string_t
> cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
>  				 mplsoudp, "mplsoudp_decap-with-vlan");
> -cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version =
> +static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
>  				 pos_token, "ip-version");
> -cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version_value =
> +static cmdline_parse_token_string_t
> cmd_set_mplsoudp_decap_ip_version_value =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
>  				 ip_version, "ipv4#ipv6");
> 
> @@ -14040,7 +14040,7 @@ static void
> cmd_set_mplsoudp_decap_parsed(void *parsed_result,
>  		mplsoudp_decap_conf.select_ipv4 = 0;
>  }
> 
> -cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
> +static cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
>  	.f = cmd_set_mplsoudp_decap_parsed,
>  	.data = NULL,
>  	.help_str = "set mplsoudp_decap ip-version ipv4|ipv6",
> @@ -14053,7 +14053,7 @@ cmdline_parse_inst_t cmd_set_mplsoudp_decap
> = {
>  	},
>  };
> 
> -cmdline_parse_inst_t cmd_set_mplsoudp_decap_with_vlan = {
> +static cmdline_parse_inst_t cmd_set_mplsoudp_decap_with_vlan = {
>  	.f = cmd_set_mplsoudp_decap_parsed,
>  	.data = NULL,
>  	.help_str = "set mplsoudp_decap-with-vlan ip-version ipv4|ipv6",
> @@ -14105,109 +14105,109 @@ struct cmd_set_conntrack_common_result {
>  	uint32_t le;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_conntrack_set =
> +static cmdline_parse_token_string_t cmd_set_conntrack_set =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 set, "set");
> -cmdline_parse_token_string_t cmd_set_conntrack_conntrack =
> +static cmdline_parse_token_string_t cmd_set_conntrack_conntrack =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 conntrack, "conntrack");
> -cmdline_parse_token_string_t cmd_set_conntrack_common_com =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_com =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 common, "com");
> -cmdline_parse_token_string_t cmd_set_conntrack_common_peer =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_peer =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 peer, "peer");
> -cmdline_parse_token_num_t cmd_set_conntrack_common_peer_value =
> +static cmdline_parse_token_num_t cmd_set_conntrack_common_peer_value
> =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      peer_port, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_conntrack_common_is_orig =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_is_orig =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 is_orig, "is_orig");
> -cmdline_parse_token_num_t cmd_set_conntrack_common_is_orig_value =
> +static cmdline_parse_token_num_t
> cmd_set_conntrack_common_is_orig_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      is_original, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_common_enable =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_enable =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 enable, "enable");
> -cmdline_parse_token_num_t cmd_set_conntrack_common_enable_value =
> +static cmdline_parse_token_num_t
> cmd_set_conntrack_common_enable_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      en, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_common_live =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_live =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 live, "live");
> -cmdline_parse_token_num_t cmd_set_conntrack_common_live_value =
> +static cmdline_parse_token_num_t cmd_set_conntrack_common_live_value
> =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      is_live, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_common_sack =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_sack =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 sack, "sack");
> -cmdline_parse_token_num_t cmd_set_conntrack_common_sack_value =
> +static cmdline_parse_token_num_t cmd_set_conntrack_common_sack_value
> =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      s_ack, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_common_cack =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_cack =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 cack, "cack");
> -cmdline_parse_token_num_t cmd_set_conntrack_common_cack_value =
> +static cmdline_parse_token_num_t cmd_set_conntrack_common_cack_value
> =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      c_ack, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_common_last_dir =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_last_dir =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 last_dir, "last_dir");
> -cmdline_parse_token_num_t cmd_set_conntrack_common_last_dir_value =
> +static cmdline_parse_token_num_t
> cmd_set_conntrack_common_last_dir_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      ld, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_common_liberal =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_liberal =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 liberal, "liberal");
> -cmdline_parse_token_num_t cmd_set_conntrack_common_liberal_value =
> +static cmdline_parse_token_num_t
> cmd_set_conntrack_common_liberal_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      lb, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_common_state =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_state =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 state, "state");
> -cmdline_parse_token_num_t cmd_set_conntrack_common_state_value =
> +static cmdline_parse_token_num_t
> cmd_set_conntrack_common_state_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      stat, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_set_conntrack_common_max_ackwin =
> +static cmdline_parse_token_string_t
> cmd_set_conntrack_common_max_ackwin =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 max_ack_win, "max_ack_win");
> -cmdline_parse_token_num_t
> cmd_set_conntrack_common_max_ackwin_value =
> +static cmdline_parse_token_num_t
> cmd_set_conntrack_common_max_ackwin_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      factor, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_set_conntrack_common_retrans =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_retrans =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 retrans, "r_lim");
> -cmdline_parse_token_num_t cmd_set_conntrack_common_retrans_value =
> +static cmdline_parse_token_num_t
> cmd_set_conntrack_common_retrans_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      re_num, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_set_conntrack_common_last_win =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_last_win =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 last_win, "last_win");
> -cmdline_parse_token_num_t cmd_set_conntrack_common_last_win_value =
> +static cmdline_parse_token_num_t
> cmd_set_conntrack_common_last_win_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      lw, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_conntrack_common_last_seq =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_last_seq =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 last_seq, "last_seq");
> -cmdline_parse_token_num_t cmd_set_conntrack_common_last_seq_value =
> +static cmdline_parse_token_num_t
> cmd_set_conntrack_common_last_seq_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      ls, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_common_last_ack =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_last_ack =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 last_ack, "last_ack");
> -cmdline_parse_token_num_t cmd_set_conntrack_common_last_ack_value =
> +static cmdline_parse_token_num_t
> cmd_set_conntrack_common_last_ack_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      la, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_common_last_end =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_last_end =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 last_end, "last_end");
> -cmdline_parse_token_num_t cmd_set_conntrack_common_last_end_value =
> +static cmdline_parse_token_num_t
> cmd_set_conntrack_common_last_end_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      le, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_common_last_index =
> +static cmdline_parse_token_string_t cmd_set_conntrack_common_last_index
> =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_conntrack_common_result,
>  				 last_index, "last_index");
> -cmdline_parse_token_num_t cmd_set_conntrack_common_last_index_value
> =
> +static cmdline_parse_token_num_t
> cmd_set_conntrack_common_last_index_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
>  			      li, RTE_UINT8);
> 
> @@ -14237,7 +14237,7 @@ static void
> cmd_set_conntrack_common_parsed(void *parsed_result,
>  	conntrack_context.last_end = res->le;
>  }
> 
> -cmdline_parse_inst_t cmd_set_conntrack_common = {
> +static cmdline_parse_inst_t cmd_set_conntrack_common = {
>  	.f = cmd_set_conntrack_common_parsed,
>  	.data = NULL,
>  	.help_str = "set conntrack com peer <port_id> is_orig <dir> enable
> <en>"
> @@ -14308,61 +14308,55 @@ struct cmd_set_conntrack_dir_result {
>  	uint32_t ma;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_conntrack_dir_set =
> -	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
> -				 set, "set");
> -cmdline_parse_token_string_t cmd_set_conntrack_dir_conntrack =
> -	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
> -				 conntrack, "conntrack");
> -cmdline_parse_token_string_t cmd_set_conntrack_dir_dir =
> +static cmdline_parse_token_string_t cmd_set_conntrack_dir_dir =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  				 dir, "orig#rply");
> -cmdline_parse_token_string_t cmd_set_conntrack_dir_scale =
> +static cmdline_parse_token_string_t cmd_set_conntrack_dir_scale =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  				 scale, "scale");
> -cmdline_parse_token_num_t cmd_set_conntrack_dir_scale_value =
> +static cmdline_parse_token_num_t cmd_set_conntrack_dir_scale_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  			      factor, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_dir_fin =
> +static cmdline_parse_token_string_t cmd_set_conntrack_dir_fin =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  				 fin, "fin");
> -cmdline_parse_token_num_t cmd_set_conntrack_dir_fin_value =
> +static cmdline_parse_token_num_t cmd_set_conntrack_dir_fin_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  			      f, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_dir_ack =
> +static cmdline_parse_token_string_t cmd_set_conntrack_dir_ack =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  				 ack_seen, "acked");
> -cmdline_parse_token_num_t cmd_set_conntrack_dir_ack_value =
> +static cmdline_parse_token_num_t cmd_set_conntrack_dir_ack_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  			      as, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_dir_unack_data =
> +static cmdline_parse_token_string_t cmd_set_conntrack_dir_unack_data =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  				 unack, "unack_data");
> -cmdline_parse_token_num_t cmd_set_conntrack_dir_unack_data_value =
> +static cmdline_parse_token_num_t
> cmd_set_conntrack_dir_unack_data_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  			      un, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_dir_sent_end =
> +static cmdline_parse_token_string_t cmd_set_conntrack_dir_sent_end =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  				 sent_end, "sent_end");
> -cmdline_parse_token_num_t cmd_set_conntrack_dir_sent_end_value =
> +static cmdline_parse_token_num_t cmd_set_conntrack_dir_sent_end_value
> =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  			      se, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_dir_reply_end =
> +static cmdline_parse_token_string_t cmd_set_conntrack_dir_reply_end =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  				 reply_end, "reply_end");
> -cmdline_parse_token_num_t cmd_set_conntrack_dir_reply_end_value =
> +static cmdline_parse_token_num_t cmd_set_conntrack_dir_reply_end_value
> =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  			      re, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_dir_max_win =
> +static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_win =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  				 max_win, "max_win");
> -cmdline_parse_token_num_t cmd_set_conntrack_dir_max_win_value =
> +static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_win_value
> =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  			      mw, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_set_conntrack_dir_max_ack =
> +static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_ack =
>  	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  				 max_ack, "max_ack");
> -cmdline_parse_token_num_t cmd_set_conntrack_dir_max_ack_value =
> +static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_ack_value =
>  	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
>  			      ma, RTE_UINT32);
> 
> @@ -14389,7 +14383,7 @@ static void cmd_set_conntrack_dir_parsed(void
> *parsed_result,
>  	dir->max_win = res->mw;
>  }
> 
> -cmdline_parse_inst_t cmd_set_conntrack_dir = {
> +static cmdline_parse_inst_t cmd_set_conntrack_dir = {
>  	.f = cmd_set_conntrack_dir_parsed,
>  	.data = NULL,
>  	.help_str = "set conntrack orig|rply scale <factor> fin <sent>"
> @@ -14453,7 +14447,7 @@ cmd_strict_link_prio_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_strict_link_prio = {
> +static cmdline_parse_inst_t cmd_strict_link_prio = {
>  	.f = cmd_strict_link_prio_parsed,
>  	.data = NULL,
>  	.help_str = "set tx strict-link-priority <port_id> <tc_bitmap>",
> @@ -14475,14 +14469,14 @@ struct cmd_ddp_add_result {
>  	char filepath[];
>  };
> 
> -cmdline_parse_token_string_t cmd_ddp_add_ddp =
> +static cmdline_parse_token_string_t cmd_ddp_add_ddp =
>  	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, ddp, "ddp");
> -cmdline_parse_token_string_t cmd_ddp_add_add =
> +static cmdline_parse_token_string_t cmd_ddp_add_add =
>  	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, add, "add");
> -cmdline_parse_token_num_t cmd_ddp_add_port_id =
> +static cmdline_parse_token_num_t cmd_ddp_add_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_ddp_add_result, port_id,
>  		RTE_UINT16);
> -cmdline_parse_token_string_t cmd_ddp_add_filepath =
> +static cmdline_parse_token_string_t cmd_ddp_add_filepath =
>  	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, filepath,
> NULL);
> 
>  static void
> @@ -14535,7 +14529,7 @@ cmd_ddp_add_parsed(
>  	free((void *)filepath);
>  }
> 
> -cmdline_parse_inst_t cmd_ddp_add = {
> +static cmdline_parse_inst_t cmd_ddp_add = {
>  	.f = cmd_ddp_add_parsed,
>  	.data = NULL,
>  	.help_str = "ddp add <port_id> <profile_path[,backup_profile_path]>",
> @@ -14556,13 +14550,13 @@ struct cmd_ddp_del_result {
>  	char filepath[];
>  };
> 
> -cmdline_parse_token_string_t cmd_ddp_del_ddp =
> +static cmdline_parse_token_string_t cmd_ddp_del_ddp =
>  	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, ddp, "ddp");
> -cmdline_parse_token_string_t cmd_ddp_del_del =
> +static cmdline_parse_token_string_t cmd_ddp_del_del =
>  	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, del, "del");
> -cmdline_parse_token_num_t cmd_ddp_del_port_id =
> +static cmdline_parse_token_num_t cmd_ddp_del_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_ddp_del_result, port_id,
> RTE_UINT16);
> -cmdline_parse_token_string_t cmd_ddp_del_filepath =
> +static cmdline_parse_token_string_t cmd_ddp_del_filepath =
>  	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, filepath,
> NULL);
> 
>  static void
> @@ -14600,7 +14594,7 @@ cmd_ddp_del_parsed(
>  	close_file(buff);
>  }
> 
> -cmdline_parse_inst_t cmd_ddp_del = {
> +static cmdline_parse_inst_t cmd_ddp_del = {
>  	.f = cmd_ddp_del_parsed,
>  	.data = NULL,
>  	.help_str = "ddp del <port_id> <backup_profile_path>",
> @@ -14621,13 +14615,13 @@ struct cmd_ddp_info_result {
>  	char filepath[];
>  };
> 
> -cmdline_parse_token_string_t cmd_ddp_info_ddp =
> +static cmdline_parse_token_string_t cmd_ddp_info_ddp =
>  	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, ddp, "ddp");
> -cmdline_parse_token_string_t cmd_ddp_info_get =
> +static cmdline_parse_token_string_t cmd_ddp_info_get =
>  	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, get, "get");
> -cmdline_parse_token_string_t cmd_ddp_info_info =
> +static cmdline_parse_token_string_t cmd_ddp_info_info =
>  	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, info, "info");
> -cmdline_parse_token_string_t cmd_ddp_info_filepath =
> +static cmdline_parse_token_string_t cmd_ddp_info_filepath =
>  	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, filepath,
> NULL);
> 
>  static void
> @@ -14836,7 +14830,7 @@ cmd_ddp_info_parsed(
>  	close_file(pkg);
>  }
> 
> -cmdline_parse_inst_t cmd_ddp_get_info = {
> +static cmdline_parse_inst_t cmd_ddp_get_info = {
>  	.f = cmd_ddp_info_parsed,
>  	.data = NULL,
>  	.help_str = "ddp get info <profile_path>",
> @@ -14860,13 +14854,13 @@ struct cmd_ddp_get_list_result {
>  	portid_t port_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_ddp_get_list_ddp =
> +static cmdline_parse_token_string_t cmd_ddp_get_list_ddp =
>  	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, ddp,
> "ddp");
> -cmdline_parse_token_string_t cmd_ddp_get_list_get =
> +static cmdline_parse_token_string_t cmd_ddp_get_list_get =
>  	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, get,
> "get");
> -cmdline_parse_token_string_t cmd_ddp_get_list_list =
> +static cmdline_parse_token_string_t cmd_ddp_get_list_list =
>  	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, list,
> "list");
> -cmdline_parse_token_num_t cmd_ddp_get_list_port_id =
> +static cmdline_parse_token_num_t cmd_ddp_get_list_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_ddp_get_list_result, port_id,
>  		RTE_UINT16);
> 
> @@ -14922,7 +14916,7 @@ cmd_ddp_get_list_parsed(
>  		fprintf(stderr, "Failed to get ddp list\n");
>  }
> 
> -cmdline_parse_inst_t cmd_ddp_get_list = {
> +static cmdline_parse_inst_t cmd_ddp_get_list = {
>  	.f = cmd_ddp_get_list_parsed,
>  	.data = NULL,
>  	.help_str = "ddp get list <port_id>",
> @@ -15011,36 +15005,36 @@ cmd_cfg_input_set_parsed(
>  		fprintf(stderr, "Function not supported\n");
>  }
> 
> -cmdline_parse_token_string_t cmd_cfg_input_set_port =
> +static cmdline_parse_token_string_t cmd_cfg_input_set_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
>  				 port, "port");
> -cmdline_parse_token_string_t cmd_cfg_input_set_cfg =
> +static cmdline_parse_token_string_t cmd_cfg_input_set_cfg =
>  	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
>  				 cfg, "config");
> -cmdline_parse_token_num_t cmd_cfg_input_set_port_id =
> +static cmdline_parse_token_num_t cmd_cfg_input_set_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
>  			      port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_cfg_input_set_pctype =
> +static cmdline_parse_token_string_t cmd_cfg_input_set_pctype =
>  	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
>  				 pctype, "pctype");
> -cmdline_parse_token_num_t cmd_cfg_input_set_pctype_id =
> +static cmdline_parse_token_num_t cmd_cfg_input_set_pctype_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
>  			      pctype_id, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_cfg_input_set_inset_type =
> +static cmdline_parse_token_string_t cmd_cfg_input_set_inset_type =
>  	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
>  				 inset_type,
>  				 "hash_inset#fdir_inset#fdir_flx_inset");
> -cmdline_parse_token_string_t cmd_cfg_input_set_opt =
> +static cmdline_parse_token_string_t cmd_cfg_input_set_opt =
>  	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
>  				 opt, "get#set#clear");
> -cmdline_parse_token_string_t cmd_cfg_input_set_field =
> +static cmdline_parse_token_string_t cmd_cfg_input_set_field =
>  	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
>  				 field, "field");
> -cmdline_parse_token_num_t cmd_cfg_input_set_field_idx =
> +static cmdline_parse_token_num_t cmd_cfg_input_set_field_idx =
>  	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
>  			      field_idx, RTE_UINT8);
> 
> -cmdline_parse_inst_t cmd_cfg_input_set = {
> +static cmdline_parse_inst_t cmd_cfg_input_set = {
>  	.f = cmd_cfg_input_set_parsed,
>  	.data = NULL,
>  	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
> @@ -15112,33 +15106,33 @@ cmd_clear_input_set_parsed(
>  		fprintf(stderr, "Function not supported\n");
>  }
> 
> -cmdline_parse_token_string_t cmd_clear_input_set_port =
> +static cmdline_parse_token_string_t cmd_clear_input_set_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
>  				 port, "port");
> -cmdline_parse_token_string_t cmd_clear_input_set_cfg =
> +static cmdline_parse_token_string_t cmd_clear_input_set_cfg =
>  	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
>  				 cfg, "config");
> -cmdline_parse_token_num_t cmd_clear_input_set_port_id =
> +static cmdline_parse_token_num_t cmd_clear_input_set_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
>  			      port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_clear_input_set_pctype =
> +static cmdline_parse_token_string_t cmd_clear_input_set_pctype =
>  	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
>  				 pctype, "pctype");
> -cmdline_parse_token_num_t cmd_clear_input_set_pctype_id =
> +static cmdline_parse_token_num_t cmd_clear_input_set_pctype_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
>  			      pctype_id, RTE_UINT8);
> -cmdline_parse_token_string_t cmd_clear_input_set_inset_type =
> +static cmdline_parse_token_string_t cmd_clear_input_set_inset_type =
>  	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
>  				 inset_type,
>  				 "hash_inset#fdir_inset#fdir_flx_inset");
> -cmdline_parse_token_string_t cmd_clear_input_set_clear =
> +static cmdline_parse_token_string_t cmd_clear_input_set_clear =
>  	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
>  				 clear, "clear");
> -cmdline_parse_token_string_t cmd_clear_input_set_all =
> +static cmdline_parse_token_string_t cmd_clear_input_set_all =
>  	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
>  				 all, "all");
> 
> -cmdline_parse_inst_t cmd_clear_input_set = {
> +static cmdline_parse_inst_t cmd_clear_input_set = {
>  	.f = cmd_clear_input_set_parsed,
>  	.data = NULL,
>  	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
> @@ -15168,23 +15162,23 @@ struct cmd_show_vf_stats_result {
>  };
> 
>  /* Common CLI fields show vf stats*/
> -cmdline_parse_token_string_t cmd_show_vf_stats_show =
> +static cmdline_parse_token_string_t cmd_show_vf_stats_show =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_vf_stats_result,
>  		 show, "show");
> -cmdline_parse_token_string_t cmd_show_vf_stats_vf =
> +static cmdline_parse_token_string_t cmd_show_vf_stats_vf =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_vf_stats_result,
>  		 vf, "vf");
> -cmdline_parse_token_string_t cmd_show_vf_stats_stats =
> +static cmdline_parse_token_string_t cmd_show_vf_stats_stats =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_vf_stats_result,
>  		 stats, "stats");
> -cmdline_parse_token_num_t cmd_show_vf_stats_port_id =
> +static cmdline_parse_token_num_t cmd_show_vf_stats_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_show_vf_stats_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_show_vf_stats_vf_id =
> +static cmdline_parse_token_num_t cmd_show_vf_stats_vf_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_show_vf_stats_result,
>  		 vf_id, RTE_UINT16);
> @@ -15251,7 +15245,7 @@ cmd_show_vf_stats_parsed(
>  			       nic_stats_border, nic_stats_border);
>  }
> 
> -cmdline_parse_inst_t cmd_show_vf_stats = {
> +static cmdline_parse_inst_t cmd_show_vf_stats = {
>  	.f = cmd_show_vf_stats_parsed,
>  	.data = NULL,
>  	.help_str = "show vf stats <port_id> <vf_id>",
> @@ -15277,23 +15271,23 @@ struct cmd_clear_vf_stats_result {
>  };
> 
>  /* Common CLI fields clear vf stats*/
> -cmdline_parse_token_string_t cmd_clear_vf_stats_clear =
> +static cmdline_parse_token_string_t cmd_clear_vf_stats_clear =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_clear_vf_stats_result,
>  		 clear, "clear");
> -cmdline_parse_token_string_t cmd_clear_vf_stats_vf =
> +static cmdline_parse_token_string_t cmd_clear_vf_stats_vf =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_clear_vf_stats_result,
>  		 vf, "vf");
> -cmdline_parse_token_string_t cmd_clear_vf_stats_stats =
> +static cmdline_parse_token_string_t cmd_clear_vf_stats_stats =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_clear_vf_stats_result,
>  		 stats, "stats");
> -cmdline_parse_token_num_t cmd_clear_vf_stats_port_id =
> +static cmdline_parse_token_num_t cmd_clear_vf_stats_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_clear_vf_stats_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_clear_vf_stats_vf_id =
> +static cmdline_parse_token_num_t cmd_clear_vf_stats_vf_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_clear_vf_stats_result,
>  		 vf_id, RTE_UINT16);
> @@ -15338,7 +15332,7 @@ cmd_clear_vf_stats_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_clear_vf_stats = {
> +static cmdline_parse_inst_t cmd_clear_vf_stats = {
>  	.f = cmd_clear_vf_stats_parsed,
>  	.data = NULL,
>  	.help_str = "clear vf stats <port_id> <vf_id>",
> @@ -15365,27 +15359,27 @@ struct cmd_pctype_mapping_reset_result {
>  };
> 
>  /* Common CLI fields for port config pctype mapping reset*/
> -cmdline_parse_token_string_t cmd_pctype_mapping_reset_port =
> +static cmdline_parse_token_string_t cmd_pctype_mapping_reset_port =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_pctype_mapping_reset_result,
>  		 port, "port");
> -cmdline_parse_token_string_t cmd_pctype_mapping_reset_config =
> +static cmdline_parse_token_string_t cmd_pctype_mapping_reset_config =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_pctype_mapping_reset_result,
>  		 config, "config");
> -cmdline_parse_token_num_t cmd_pctype_mapping_reset_port_id =
> +static cmdline_parse_token_num_t cmd_pctype_mapping_reset_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_pctype_mapping_reset_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_pctype_mapping_reset_pctype =
> +static cmdline_parse_token_string_t cmd_pctype_mapping_reset_pctype =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_pctype_mapping_reset_result,
>  		 pctype, "pctype");
> -cmdline_parse_token_string_t cmd_pctype_mapping_reset_mapping =
> +static cmdline_parse_token_string_t cmd_pctype_mapping_reset_mapping =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_pctype_mapping_reset_result,
>  		 mapping, "mapping");
> -cmdline_parse_token_string_t cmd_pctype_mapping_reset_reset =
> +static cmdline_parse_token_string_t cmd_pctype_mapping_reset_reset =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_pctype_mapping_reset_result,
>  		 reset, "reset");
> @@ -15420,7 +15414,7 @@ cmd_pctype_mapping_reset_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_pctype_mapping_reset = {
> +static cmdline_parse_inst_t cmd_pctype_mapping_reset = {
>  	.f = cmd_pctype_mapping_reset_parsed,
>  	.data = NULL,
>  	.help_str = "port config <port_id> pctype mapping reset",
> @@ -15447,23 +15441,23 @@ struct cmd_pctype_mapping_get_result {
>  };
> 
>  /* Common CLI fields for pctype mapping get */
> -cmdline_parse_token_string_t cmd_pctype_mapping_get_show =
> +static cmdline_parse_token_string_t cmd_pctype_mapping_get_show =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_pctype_mapping_get_result,
>  		 show, "show");
> -cmdline_parse_token_string_t cmd_pctype_mapping_get_port =
> +static cmdline_parse_token_string_t cmd_pctype_mapping_get_port =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_pctype_mapping_get_result,
>  		 port, "port");
> -cmdline_parse_token_num_t cmd_pctype_mapping_get_port_id =
> +static cmdline_parse_token_num_t cmd_pctype_mapping_get_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_pctype_mapping_get_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_pctype_mapping_get_pctype =
> +static cmdline_parse_token_string_t cmd_pctype_mapping_get_pctype =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_pctype_mapping_get_result,
>  		 pctype, "pctype");
> -cmdline_parse_token_string_t cmd_pctype_mapping_get_mapping =
> +static cmdline_parse_token_string_t cmd_pctype_mapping_get_mapping =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_pctype_mapping_get_result,
>  		 mapping, "mapping");
> @@ -15522,7 +15516,7 @@ cmd_pctype_mapping_get_parsed(
>  #endif
>  }
> 
> -cmdline_parse_inst_t cmd_pctype_mapping_get = {
> +static cmdline_parse_inst_t cmd_pctype_mapping_get = {
>  	.f = cmd_pctype_mapping_get_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> pctype mapping",
> @@ -15551,35 +15545,35 @@ struct cmd_pctype_mapping_update_result {
>  };
> 
>  /* Common CLI fields for pctype mapping update*/
> -cmdline_parse_token_string_t cmd_pctype_mapping_update_port =
> +static cmdline_parse_token_string_t cmd_pctype_mapping_update_port =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_pctype_mapping_update_result,
>  		 port, "port");
> -cmdline_parse_token_string_t cmd_pctype_mapping_update_config =
> +static cmdline_parse_token_string_t cmd_pctype_mapping_update_config =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_pctype_mapping_update_result,
>  		 config, "config");
> -cmdline_parse_token_num_t cmd_pctype_mapping_update_port_id =
> +static cmdline_parse_token_num_t cmd_pctype_mapping_update_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_pctype_mapping_update_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_pctype_mapping_update_pctype =
> +static cmdline_parse_token_string_t cmd_pctype_mapping_update_pctype =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_pctype_mapping_update_result,
>  		 pctype, "pctype");
> -cmdline_parse_token_string_t cmd_pctype_mapping_update_mapping =
> +static cmdline_parse_token_string_t cmd_pctype_mapping_update_mapping
> =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_pctype_mapping_update_result,
>  		 mapping, "mapping");
> -cmdline_parse_token_string_t cmd_pctype_mapping_update_update =
> +static cmdline_parse_token_string_t cmd_pctype_mapping_update_update =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_pctype_mapping_update_result,
>  		 update, "update");
> -cmdline_parse_token_string_t cmd_pctype_mapping_update_pc_type =
> +static cmdline_parse_token_string_t cmd_pctype_mapping_update_pc_type
> =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_pctype_mapping_update_result,
>  		 pctype_list, NULL);
> -cmdline_parse_token_num_t cmd_pctype_mapping_update_flow_type =
> +static cmdline_parse_token_num_t cmd_pctype_mapping_update_flow_type
> =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_pctype_mapping_update_result,
>  		 flow_type, RTE_UINT16);
> @@ -15631,7 +15625,7 @@ cmd_pctype_mapping_update_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_pctype_mapping_update = {
> +static cmdline_parse_inst_t cmd_pctype_mapping_update = {
>  	.f = cmd_pctype_mapping_update_parsed,
>  	.data = NULL,
>  	.help_str = "port config <port_id> pctype mapping update"
> @@ -15661,23 +15655,23 @@ struct cmd_ptype_mapping_get_result {
>  };
> 
>  /* Common CLI fields for ptype mapping get */
> -cmdline_parse_token_string_t cmd_ptype_mapping_get_ptype =
> +static cmdline_parse_token_string_t cmd_ptype_mapping_get_ptype =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_ptype_mapping_get_result,
>  		 ptype, "ptype");
> -cmdline_parse_token_string_t cmd_ptype_mapping_get_mapping =
> +static cmdline_parse_token_string_t cmd_ptype_mapping_get_mapping =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_ptype_mapping_get_result,
>  		 mapping, "mapping");
> -cmdline_parse_token_string_t cmd_ptype_mapping_get_get =
> +static cmdline_parse_token_string_t cmd_ptype_mapping_get_get =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_ptype_mapping_get_result,
>  		 get, "get");
> -cmdline_parse_token_num_t cmd_ptype_mapping_get_port_id =
> +static cmdline_parse_token_num_t cmd_ptype_mapping_get_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_ptype_mapping_get_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_ptype_mapping_get_valid_only =
> +static cmdline_parse_token_num_t cmd_ptype_mapping_get_valid_only =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_ptype_mapping_get_result,
>  		 valid_only, RTE_UINT8);
> @@ -15730,7 +15724,7 @@ cmd_ptype_mapping_get_parsed(
>  #endif
>  }
> 
> -cmdline_parse_inst_t cmd_ptype_mapping_get = {
> +static cmdline_parse_inst_t cmd_ptype_mapping_get = {
>  	.f = cmd_ptype_mapping_get_parsed,
>  	.data = NULL,
>  	.help_str = "ptype mapping get <port_id> <valid_only>",
> @@ -15758,31 +15752,31 @@ struct cmd_ptype_mapping_replace_result {
>  };
> 
>  /* Common CLI fields for ptype mapping replace */
> -cmdline_parse_token_string_t cmd_ptype_mapping_replace_ptype =
> +static cmdline_parse_token_string_t cmd_ptype_mapping_replace_ptype =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_ptype_mapping_replace_result,
>  		 ptype, "ptype");
> -cmdline_parse_token_string_t cmd_ptype_mapping_replace_mapping =
> +static cmdline_parse_token_string_t cmd_ptype_mapping_replace_mapping
> =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_ptype_mapping_replace_result,
>  		 mapping, "mapping");
> -cmdline_parse_token_string_t cmd_ptype_mapping_replace_replace =
> +static cmdline_parse_token_string_t cmd_ptype_mapping_replace_replace =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_ptype_mapping_replace_result,
>  		 replace, "replace");
> -cmdline_parse_token_num_t cmd_ptype_mapping_replace_port_id =
> +static cmdline_parse_token_num_t cmd_ptype_mapping_replace_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_ptype_mapping_replace_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_ptype_mapping_replace_target =
> +static cmdline_parse_token_num_t cmd_ptype_mapping_replace_target =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_ptype_mapping_replace_result,
>  		 target, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_ptype_mapping_replace_mask =
> +static cmdline_parse_token_num_t cmd_ptype_mapping_replace_mask =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_ptype_mapping_replace_result,
>  		 mask, RTE_UINT8);
> -cmdline_parse_token_num_t cmd_ptype_mapping_replace_pkt_type =
> +static cmdline_parse_token_num_t cmd_ptype_mapping_replace_pkt_type =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_ptype_mapping_replace_result,
>  		 pkt_type, RTE_UINT32);
> @@ -15824,7 +15818,7 @@ cmd_ptype_mapping_replace_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_ptype_mapping_replace = {
> +static cmdline_parse_inst_t cmd_ptype_mapping_replace = {
>  	.f = cmd_ptype_mapping_replace_parsed,
>  	.data = NULL,
>  	.help_str =
> @@ -15852,19 +15846,19 @@ struct cmd_ptype_mapping_reset_result {
>  };
> 
>  /* Common CLI fields for ptype mapping reset*/
> -cmdline_parse_token_string_t cmd_ptype_mapping_reset_ptype =
> +static cmdline_parse_token_string_t cmd_ptype_mapping_reset_ptype =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_ptype_mapping_reset_result,
>  		 ptype, "ptype");
> -cmdline_parse_token_string_t cmd_ptype_mapping_reset_mapping =
> +static cmdline_parse_token_string_t cmd_ptype_mapping_reset_mapping =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_ptype_mapping_reset_result,
>  		 mapping, "mapping");
> -cmdline_parse_token_string_t cmd_ptype_mapping_reset_reset =
> +static cmdline_parse_token_string_t cmd_ptype_mapping_reset_reset =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_ptype_mapping_reset_result,
>  		 reset, "reset");
> -cmdline_parse_token_num_t cmd_ptype_mapping_reset_port_id =
> +static cmdline_parse_token_num_t cmd_ptype_mapping_reset_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_ptype_mapping_reset_result,
>  		 port_id, RTE_UINT16);
> @@ -15899,7 +15893,7 @@ cmd_ptype_mapping_reset_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_ptype_mapping_reset = {
> +static cmdline_parse_inst_t cmd_ptype_mapping_reset = {
>  	.f = cmd_ptype_mapping_reset_parsed,
>  	.data = NULL,
>  	.help_str = "ptype mapping reset <port_id>",
> @@ -15925,27 +15919,27 @@ struct cmd_ptype_mapping_update_result {
>  };
> 
>  /* Common CLI fields for ptype mapping update*/
> -cmdline_parse_token_string_t cmd_ptype_mapping_update_ptype =
> +static cmdline_parse_token_string_t cmd_ptype_mapping_update_ptype =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_ptype_mapping_update_result,
>  		 ptype, "ptype");
> -cmdline_parse_token_string_t cmd_ptype_mapping_update_mapping =
> +static cmdline_parse_token_string_t cmd_ptype_mapping_update_mapping =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_ptype_mapping_update_result,
>  		 mapping, "mapping");
> -cmdline_parse_token_string_t cmd_ptype_mapping_update_update =
> +static cmdline_parse_token_string_t cmd_ptype_mapping_update_update =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_ptype_mapping_update_result,
>  		 reset, "update");
> -cmdline_parse_token_num_t cmd_ptype_mapping_update_port_id =
> +static cmdline_parse_token_num_t cmd_ptype_mapping_update_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_ptype_mapping_update_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_ptype_mapping_update_hw_ptype =
> +static cmdline_parse_token_num_t cmd_ptype_mapping_update_hw_ptype
> =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_ptype_mapping_update_result,
>  		 hw_ptype, RTE_UINT8);
> -cmdline_parse_token_num_t cmd_ptype_mapping_update_sw_ptype =
> +static cmdline_parse_token_num_t cmd_ptype_mapping_update_sw_ptype =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_ptype_mapping_update_result,
>  		 sw_ptype, RTE_UINT32);
> @@ -15990,7 +15984,7 @@ cmd_ptype_mapping_update_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_ptype_mapping_update = {
> +static cmdline_parse_inst_t cmd_ptype_mapping_update = {
>  	.f = cmd_ptype_mapping_update_parsed,
>  	.data = NULL,
>  	.help_str = "ptype mapping update <port_id> <hw_ptype>
> <sw_ptype>",
> @@ -16012,9 +16006,9 @@ struct cmd_cmdfile_result {
>  };
> 
>  /* Common CLI fields for file commands */
> -cmdline_parse_token_string_t cmd_load_cmdfile =
> +static cmdline_parse_token_string_t cmd_load_cmdfile =
>  	TOKEN_STRING_INITIALIZER(struct cmd_cmdfile_result, load, "load");
> -cmdline_parse_token_string_t cmd_load_cmdfile_filename =
> +static cmdline_parse_token_string_t cmd_load_cmdfile_filename =
>  	TOKEN_STRING_INITIALIZER(struct cmd_cmdfile_result, filename,
> NULL);
> 
>  static void
> @@ -16028,7 +16022,7 @@ cmd_load_from_file_parsed(
>  	cmdline_read_from_file(res->filename);
>  }
> 
> -cmdline_parse_inst_t cmd_load_from_file = {
> +static cmdline_parse_inst_t cmd_load_from_file = {
>  	.f = cmd_load_from_file_parsed,
>  	.data = NULL,
>  	.help_str = "load <filename>",
> @@ -16048,23 +16042,23 @@ struct cmd_rx_offload_get_capa_result {
>  	cmdline_fixed_string_t capabilities;
>  };
> 
> -cmdline_parse_token_string_t cmd_rx_offload_get_capa_show =
> +static cmdline_parse_token_string_t cmd_rx_offload_get_capa_show =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_rx_offload_get_capa_result,
>  		 show, "show");
> -cmdline_parse_token_string_t cmd_rx_offload_get_capa_port =
> +static cmdline_parse_token_string_t cmd_rx_offload_get_capa_port =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_rx_offload_get_capa_result,
>  		 port, "port");
> -cmdline_parse_token_num_t cmd_rx_offload_get_capa_port_id =
> +static cmdline_parse_token_num_t cmd_rx_offload_get_capa_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_rx_offload_get_capa_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_rx_offload_get_capa_rx_offload =
> +static cmdline_parse_token_string_t cmd_rx_offload_get_capa_rx_offload =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_rx_offload_get_capa_result,
>  		 rx_offload, "rx_offload");
> -cmdline_parse_token_string_t cmd_rx_offload_get_capa_capabilities =
> +static cmdline_parse_token_string_t cmd_rx_offload_get_capa_capabilities =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_rx_offload_get_capa_result,
>  		 capabilities, "capabilities");
> @@ -16122,7 +16116,7 @@ cmd_rx_offload_get_capa_parsed(
>  	printf("\n\n");
>  }
> 
> -cmdline_parse_inst_t cmd_rx_offload_get_capa = {
> +static cmdline_parse_inst_t cmd_rx_offload_get_capa = {
>  	.f = cmd_rx_offload_get_capa_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> rx_offload capabilities",
> @@ -16145,23 +16139,23 @@ struct
> cmd_rx_offload_get_configuration_result {
>  	cmdline_fixed_string_t configuration;
>  };
> 
> -cmdline_parse_token_string_t cmd_rx_offload_get_configuration_show =
> +static cmdline_parse_token_string_t
> cmd_rx_offload_get_configuration_show =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_rx_offload_get_configuration_result,
>  		 show, "show");
> -cmdline_parse_token_string_t cmd_rx_offload_get_configuration_port =
> +static cmdline_parse_token_string_t cmd_rx_offload_get_configuration_port
> =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_rx_offload_get_configuration_result,
>  		 port, "port");
> -cmdline_parse_token_num_t cmd_rx_offload_get_configuration_port_id =
> +static cmdline_parse_token_num_t
> cmd_rx_offload_get_configuration_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_rx_offload_get_configuration_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_rx_offload_get_configuration_rx_offload
> =
> +static cmdline_parse_token_string_t
> cmd_rx_offload_get_configuration_rx_offload =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_rx_offload_get_configuration_result,
>  		 rx_offload, "rx_offload");
> -cmdline_parse_token_string_t
> cmd_rx_offload_get_configuration_configuration =
> +static cmdline_parse_token_string_t
> cmd_rx_offload_get_configuration_configuration =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_rx_offload_get_configuration_result,
>  		 configuration, "configuration");
> @@ -16208,7 +16202,7 @@ cmd_rx_offload_get_configuration_parsed(
>  	printf("\n");
>  }
> 
> -cmdline_parse_inst_t cmd_rx_offload_get_configuration = {
> +static cmdline_parse_inst_t cmd_rx_offload_get_configuration = {
>  	.f = cmd_rx_offload_get_configuration_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> rx_offload configuration",
> @@ -16232,23 +16226,23 @@ struct cmd_config_per_port_rx_offload_result
> {
>  	cmdline_fixed_string_t on_off;
>  };
> 
> -cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_port
> =
> +static cmdline_parse_token_string_t
> cmd_config_per_port_rx_offload_result_port =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_port_rx_offload_result,
>  		 port, "port");
> -cmdline_parse_token_string_t
> cmd_config_per_port_rx_offload_result_config =
> +static cmdline_parse_token_string_t
> cmd_config_per_port_rx_offload_result_config =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_port_rx_offload_result,
>  		 config, "config");
> -cmdline_parse_token_num_t
> cmd_config_per_port_rx_offload_result_port_id =
> +static cmdline_parse_token_num_t
> cmd_config_per_port_rx_offload_result_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_config_per_port_rx_offload_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t
> cmd_config_per_port_rx_offload_result_rx_offload =
> +static cmdline_parse_token_string_t
> cmd_config_per_port_rx_offload_result_rx_offload =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_port_rx_offload_result,
>  		 rx_offload, "rx_offload");
> -cmdline_parse_token_string_t
> cmd_config_per_port_rx_offload_result_offload =
> +static cmdline_parse_token_string_t
> cmd_config_per_port_rx_offload_result_offload =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_port_rx_offload_result,
>  		 offload,
> "vlan_strip#ipv4_cksum#udp_cksum#tcp_cksum#tcp_lro#"
> @@ -16256,7 +16250,7 @@ cmdline_parse_token_string_t
> cmd_config_per_port_rx_offload_result_offload =
> 
> "header_split#vlan_filter#vlan_extend#jumbo_frame#"
>  			   "scatter#buffer_split#timestamp#security#"
>  			   "keep_crc#rss_hash");
> -cmdline_parse_token_string_t
> cmd_config_per_port_rx_offload_result_on_off =
> +static cmdline_parse_token_string_t
> cmd_config_per_port_rx_offload_result_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_port_rx_offload_result,
>  		 on_off, "on#off");
> @@ -16330,7 +16324,7 @@ cmd_config_per_port_rx_offload_parsed(void
> *parsed_result,
>  	cmd_reconfig_device_queue(port_id, 1, 1);
>  }
> 
> -cmdline_parse_inst_t cmd_config_per_port_rx_offload = {
> +static cmdline_parse_inst_t cmd_config_per_port_rx_offload = {
>  	.f = cmd_config_per_port_rx_offload_parsed,
>  	.data = NULL,
>  	.help_str = "port config <port_id> rx_offload vlan_strip|ipv4_cksum|"
> @@ -16360,34 +16354,34 @@ struct
> cmd_config_per_queue_rx_offload_result {
>  	cmdline_fixed_string_t on_off;
>  };
> 
> -cmdline_parse_token_string_t
> cmd_config_per_queue_rx_offload_result_port =
> +static cmdline_parse_token_string_t
> cmd_config_per_queue_rx_offload_result_port =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_queue_rx_offload_result,
>  		 port, "port");
> -cmdline_parse_token_num_t
> cmd_config_per_queue_rx_offload_result_port_id =
> +static cmdline_parse_token_num_t
> cmd_config_per_queue_rx_offload_result_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_config_per_queue_rx_offload_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_rxq
> =
> +static cmdline_parse_token_string_t
> cmd_config_per_queue_rx_offload_result_rxq =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_queue_rx_offload_result,
>  		 rxq, "rxq");
> -cmdline_parse_token_num_t
> cmd_config_per_queue_rx_offload_result_queue_id =
> +static cmdline_parse_token_num_t
> cmd_config_per_queue_rx_offload_result_queue_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_config_per_queue_rx_offload_result,
>  		 queue_id, RTE_UINT16);
> -cmdline_parse_token_string_t
> cmd_config_per_queue_rx_offload_result_rxoffload =
> +static cmdline_parse_token_string_t
> cmd_config_per_queue_rx_offload_result_rxoffload =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_queue_rx_offload_result,
>  		 rx_offload, "rx_offload");
> -cmdline_parse_token_string_t
> cmd_config_per_queue_rx_offload_result_offload =
> +static cmdline_parse_token_string_t
> cmd_config_per_queue_rx_offload_result_offload =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_queue_rx_offload_result,
>  		 offload,
> "vlan_strip#ipv4_cksum#udp_cksum#tcp_cksum#tcp_lro#"
>  			   "qinq_strip#outer_ipv4_cksum#macsec_strip#"
> 
> "header_split#vlan_filter#vlan_extend#jumbo_frame#"
> 
> "scatter#buffer_split#timestamp#security#keep_crc");
> -cmdline_parse_token_string_t
> cmd_config_per_queue_rx_offload_result_on_off =
> +static cmdline_parse_token_string_t
> cmd_config_per_queue_rx_offload_result_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_queue_rx_offload_result,
>  		 on_off, "on#off");
> @@ -16437,7 +16431,7 @@ cmd_config_per_queue_rx_offload_parsed(void
> *parsed_result,
>  	cmd_reconfig_device_queue(port_id, 1, 1);
>  }
> 
> -cmdline_parse_inst_t cmd_config_per_queue_rx_offload = {
> +static cmdline_parse_inst_t cmd_config_per_queue_rx_offload = {
>  	.f = cmd_config_per_queue_rx_offload_parsed,
>  	.data = NULL,
>  	.help_str = "port <port_id> rxq <queue_id> rx_offload "
> @@ -16467,23 +16461,23 @@ struct cmd_tx_offload_get_capa_result {
>  	cmdline_fixed_string_t capabilities;
>  };
> 
> -cmdline_parse_token_string_t cmd_tx_offload_get_capa_show =
> +static cmdline_parse_token_string_t cmd_tx_offload_get_capa_show =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_tx_offload_get_capa_result,
>  		 show, "show");
> -cmdline_parse_token_string_t cmd_tx_offload_get_capa_port =
> +static cmdline_parse_token_string_t cmd_tx_offload_get_capa_port =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_tx_offload_get_capa_result,
>  		 port, "port");
> -cmdline_parse_token_num_t cmd_tx_offload_get_capa_port_id =
> +static cmdline_parse_token_num_t cmd_tx_offload_get_capa_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_tx_offload_get_capa_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_tx_offload_get_capa_tx_offload =
> +static cmdline_parse_token_string_t cmd_tx_offload_get_capa_tx_offload =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_tx_offload_get_capa_result,
>  		 tx_offload, "tx_offload");
> -cmdline_parse_token_string_t cmd_tx_offload_get_capa_capabilities =
> +static cmdline_parse_token_string_t cmd_tx_offload_get_capa_capabilities =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_tx_offload_get_capa_result,
>  		 capabilities, "capabilities");
> @@ -16541,7 +16535,7 @@ cmd_tx_offload_get_capa_parsed(
>  	printf("\n\n");
>  }
> 
> -cmdline_parse_inst_t cmd_tx_offload_get_capa = {
> +static cmdline_parse_inst_t cmd_tx_offload_get_capa = {
>  	.f = cmd_tx_offload_get_capa_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> tx_offload capabilities",
> @@ -16564,23 +16558,23 @@ struct
> cmd_tx_offload_get_configuration_result {
>  	cmdline_fixed_string_t configuration;
>  };
> 
> -cmdline_parse_token_string_t cmd_tx_offload_get_configuration_show =
> +static cmdline_parse_token_string_t
> cmd_tx_offload_get_configuration_show =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_tx_offload_get_configuration_result,
>  		 show, "show");
> -cmdline_parse_token_string_t cmd_tx_offload_get_configuration_port =
> +static cmdline_parse_token_string_t cmd_tx_offload_get_configuration_port
> =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_tx_offload_get_configuration_result,
>  		 port, "port");
> -cmdline_parse_token_num_t cmd_tx_offload_get_configuration_port_id =
> +static cmdline_parse_token_num_t
> cmd_tx_offload_get_configuration_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_tx_offload_get_configuration_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_tx_offload_get_configuration_tx_offload
> =
> +static cmdline_parse_token_string_t
> cmd_tx_offload_get_configuration_tx_offload =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_tx_offload_get_configuration_result,
>  		 tx_offload, "tx_offload");
> -cmdline_parse_token_string_t
> cmd_tx_offload_get_configuration_configuration =
> +static cmdline_parse_token_string_t
> cmd_tx_offload_get_configuration_configuration =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_tx_offload_get_configuration_result,
>  		 configuration, "configuration");
> @@ -16627,7 +16621,7 @@ cmd_tx_offload_get_configuration_parsed(
>  	printf("\n");
>  }
> 
> -cmdline_parse_inst_t cmd_tx_offload_get_configuration = {
> +static cmdline_parse_inst_t cmd_tx_offload_get_configuration = {
>  	.f = cmd_tx_offload_get_configuration_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> tx_offload configuration",
> @@ -16651,23 +16645,23 @@ struct cmd_config_per_port_tx_offload_result
> {
>  	cmdline_fixed_string_t on_off;
>  };
> 
> -cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_port
> =
> +static cmdline_parse_token_string_t
> cmd_config_per_port_tx_offload_result_port =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_port_tx_offload_result,
>  		 port, "port");
> -cmdline_parse_token_string_t
> cmd_config_per_port_tx_offload_result_config =
> +static cmdline_parse_token_string_t
> cmd_config_per_port_tx_offload_result_config =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_port_tx_offload_result,
>  		 config, "config");
> -cmdline_parse_token_num_t
> cmd_config_per_port_tx_offload_result_port_id =
> +static cmdline_parse_token_num_t
> cmd_config_per_port_tx_offload_result_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_config_per_port_tx_offload_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t
> cmd_config_per_port_tx_offload_result_tx_offload =
> +static cmdline_parse_token_string_t
> cmd_config_per_port_tx_offload_result_tx_offload =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_port_tx_offload_result,
>  		 tx_offload, "tx_offload");
> -cmdline_parse_token_string_t
> cmd_config_per_port_tx_offload_result_offload =
> +static cmdline_parse_token_string_t
> cmd_config_per_port_tx_offload_result_offload =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_port_tx_offload_result,
>  		 offload, "vlan_insert#ipv4_cksum#udp_cksum#tcp_cksum#"
> @@ -16676,7 +16670,7 @@ cmdline_parse_token_string_t
> cmd_config_per_port_tx_offload_result_offload =
>  			  "ipip_tnl_tso#geneve_tnl_tso#macsec_insert#"
>  			  "mt_lockfree#multi_segs#mbuf_fast_free#security#"
>  			  "send_on_timestamp");
> -cmdline_parse_token_string_t
> cmd_config_per_port_tx_offload_result_on_off =
> +static cmdline_parse_token_string_t
> cmd_config_per_port_tx_offload_result_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_port_tx_offload_result,
>  		 on_off, "on#off");
> @@ -16753,7 +16747,7 @@ cmd_config_per_port_tx_offload_parsed(void
> *parsed_result,
>  	cmd_reconfig_device_queue(port_id, 1, 1);
>  }
> 
> -cmdline_parse_inst_t cmd_config_per_port_tx_offload = {
> +static cmdline_parse_inst_t cmd_config_per_port_tx_offload = {
>  	.f = cmd_config_per_port_tx_offload_parsed,
>  	.data = NULL,
>  	.help_str = "port config <port_id> tx_offload "
> @@ -16785,27 +16779,27 @@ struct
> cmd_config_per_queue_tx_offload_result {
>  	cmdline_fixed_string_t on_off;
>  };
> 
> -cmdline_parse_token_string_t
> cmd_config_per_queue_tx_offload_result_port =
> +static cmdline_parse_token_string_t
> cmd_config_per_queue_tx_offload_result_port =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_queue_tx_offload_result,
>  		 port, "port");
> -cmdline_parse_token_num_t
> cmd_config_per_queue_tx_offload_result_port_id =
> +static cmdline_parse_token_num_t
> cmd_config_per_queue_tx_offload_result_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_config_per_queue_tx_offload_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_txq
> =
> +static cmdline_parse_token_string_t
> cmd_config_per_queue_tx_offload_result_txq =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_queue_tx_offload_result,
>  		 txq, "txq");
> -cmdline_parse_token_num_t
> cmd_config_per_queue_tx_offload_result_queue_id =
> +static cmdline_parse_token_num_t
> cmd_config_per_queue_tx_offload_result_queue_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_config_per_queue_tx_offload_result,
>  		 queue_id, RTE_UINT16);
> -cmdline_parse_token_string_t
> cmd_config_per_queue_tx_offload_result_txoffload =
> +static cmdline_parse_token_string_t
> cmd_config_per_queue_tx_offload_result_txoffload =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_queue_tx_offload_result,
>  		 tx_offload, "tx_offload");
> -cmdline_parse_token_string_t
> cmd_config_per_queue_tx_offload_result_offload =
> +static cmdline_parse_token_string_t
> cmd_config_per_queue_tx_offload_result_offload =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_queue_tx_offload_result,
>  		 offload, "vlan_insert#ipv4_cksum#udp_cksum#tcp_cksum#"
> @@ -16813,7 +16807,7 @@ cmdline_parse_token_string_t
> cmd_config_per_queue_tx_offload_result_offload =
>  			  "qinq_insert#vxlan_tnl_tso#gre_tnl_tso#"
>  			  "ipip_tnl_tso#geneve_tnl_tso#macsec_insert#"
>  			  "mt_lockfree#multi_segs#mbuf_fast_free#security");
> -cmdline_parse_token_string_t
> cmd_config_per_queue_tx_offload_result_on_off =
> +static cmdline_parse_token_string_t
> cmd_config_per_queue_tx_offload_result_on_off =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_config_per_queue_tx_offload_result,
>  		 on_off, "on#off");
> @@ -16863,7 +16857,7 @@ cmd_config_per_queue_tx_offload_parsed(void
> *parsed_result,
>  	cmd_reconfig_device_queue(port_id, 1, 1);
>  }
> 
> -cmdline_parse_inst_t cmd_config_per_queue_tx_offload = {
> +static cmdline_parse_inst_t cmd_config_per_queue_tx_offload = {
>  	.f = cmd_config_per_queue_tx_offload_parsed,
>  	.data = NULL,
>  	.help_str = "port <port_id> txq <queue_id> tx_offload "
> @@ -16912,23 +16906,23 @@
> cmd_config_tx_metadata_specific_parsed(void *parsed_result,
>  	rte_flow_dynf_metadata_register();
>  }
> 
> -cmdline_parse_token_string_t cmd_config_tx_metadata_specific_port =
> +static cmdline_parse_token_string_t cmd_config_tx_metadata_specific_port
> =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_tx_metadata_specific_result,
>  			port, "port");
> -cmdline_parse_token_string_t cmd_config_tx_metadata_specific_keyword =
> +static cmdline_parse_token_string_t
> cmd_config_tx_metadata_specific_keyword =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_tx_metadata_specific_result,
>  			keyword, "config");
> -cmdline_parse_token_num_t cmd_config_tx_metadata_specific_id =
> +static cmdline_parse_token_num_t cmd_config_tx_metadata_specific_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_config_tx_metadata_specific_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_config_tx_metadata_specific_item =
> +static cmdline_parse_token_string_t cmd_config_tx_metadata_specific_item
> =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_tx_metadata_specific_result,
>  			item, "tx_metadata");
> -cmdline_parse_token_num_t cmd_config_tx_metadata_specific_value =
> +static cmdline_parse_token_num_t cmd_config_tx_metadata_specific_value
> =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_config_tx_metadata_specific_result,
>  			value, RTE_UINT32);
> 
> -cmdline_parse_inst_t cmd_config_tx_metadata_specific = {
> +static cmdline_parse_inst_t cmd_config_tx_metadata_specific = {
>  	.f = cmd_config_tx_metadata_specific_parsed,
>  	.data = NULL,
>  	.help_str = "port config <port_id> tx_metadata <value>",
> @@ -16991,26 +16985,26 @@ cmd_config_dynf_specific_parsed(void
> *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_config_tx_dynf_specific_port =
> +static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_port =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_tx_dynf_specific_result,
>  			keyword, "port");
> -cmdline_parse_token_string_t cmd_config_tx_dynf_specific_keyword =
> +static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_keyword =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_tx_dynf_specific_result,
>  			keyword, "config");
> -cmdline_parse_token_num_t cmd_config_tx_dynf_specific_port_id =
> +static cmdline_parse_token_num_t cmd_config_tx_dynf_specific_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_config_tx_dynf_specific_item =
> +static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_item =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_tx_dynf_specific_result,
>  			item, "dynf");
> -cmdline_parse_token_string_t cmd_config_tx_dynf_specific_name =
> +static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_name =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_tx_dynf_specific_result,
>  			name, NULL);
> -cmdline_parse_token_string_t cmd_config_tx_dynf_specific_value =
> +static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_value =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_config_tx_dynf_specific_result,
>  			value, "set#clear");
> 
> -cmdline_parse_inst_t cmd_config_tx_dynf_specific = {
> +static cmdline_parse_inst_t cmd_config_tx_dynf_specific = {
>  	.f = cmd_config_dynf_specific_parsed,
>  	.data = NULL,
>  	.help_str = "port config <port id> dynf <name> set|clear",
> @@ -17050,20 +17044,20 @@ cmd_show_tx_metadata_parsed(void
> *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_show_tx_metadata_show =
> +static cmdline_parse_token_string_t cmd_show_tx_metadata_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_tx_metadata_result,
>  			cmd_show, "show");
> -cmdline_parse_token_string_t cmd_show_tx_metadata_port =
> +static cmdline_parse_token_string_t cmd_show_tx_metadata_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_tx_metadata_result,
>  			cmd_port, "port");
> -cmdline_parse_token_num_t cmd_show_tx_metadata_pid =
> +static cmdline_parse_token_num_t cmd_show_tx_metadata_pid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_show_tx_metadata_result,
>  			cmd_pid, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_show_tx_metadata_keyword =
> +static cmdline_parse_token_string_t cmd_show_tx_metadata_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_tx_metadata_result,
>  			cmd_keyword, "tx_metadata");
> 
> -cmdline_parse_inst_t cmd_show_tx_metadata = {
> +static cmdline_parse_inst_t cmd_show_tx_metadata = {
>  	.f = cmd_show_tx_metadata_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> tx_metadata",
> @@ -17127,23 +17121,23 @@ cmd_show_fec_capability_parsed(void
> *parsed_result,
>  	free(speed_fec_capa);
>  }
> 
> -cmdline_parse_token_string_t cmd_show_fec_capability_show =
> +static cmdline_parse_token_string_t cmd_show_fec_capability_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
>  			cmd_show, "show");
> -cmdline_parse_token_string_t cmd_show_fec_capability_port =
> +static cmdline_parse_token_string_t cmd_show_fec_capability_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
>  			cmd_port, "port");
> -cmdline_parse_token_num_t cmd_show_fec_capability_pid =
> +static cmdline_parse_token_num_t cmd_show_fec_capability_pid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_show_fec_capability_result,
>  			cmd_pid, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_show_fec_capability_fec =
> +static cmdline_parse_token_string_t cmd_show_fec_capability_fec =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
>  			cmd_fec, "fec");
> -cmdline_parse_token_string_t cmd_show_fec_capability_keyword =
> +static cmdline_parse_token_string_t cmd_show_fec_capability_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
>  			cmd_keyword, "capabilities");
> 
> -cmdline_parse_inst_t cmd_show_capability = {
> +static cmdline_parse_inst_t cmd_show_capability = {
>  	.f = cmd_show_fec_capability_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> fec capabilities",
> @@ -17209,20 +17203,20 @@ cmd_show_fec_mode_parsed(void
> *parsed_result,
>  	printf("%s\n", buf);
>  }
> 
> -cmdline_parse_token_string_t cmd_show_fec_mode_show =
> +static cmdline_parse_token_string_t cmd_show_fec_mode_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_metadata_result,
>  			cmd_show, "show");
> -cmdline_parse_token_string_t cmd_show_fec_mode_port =
> +static cmdline_parse_token_string_t cmd_show_fec_mode_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_metadata_result,
>  			cmd_port, "port");
> -cmdline_parse_token_num_t cmd_show_fec_mode_pid =
> +static cmdline_parse_token_num_t cmd_show_fec_mode_pid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_show_fec_metadata_result,
>  			cmd_pid, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_show_fec_mode_keyword =
> +static cmdline_parse_token_string_t cmd_show_fec_mode_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_metadata_result,
>  			cmd_keyword, "fec_mode");
> 
> -cmdline_parse_inst_t cmd_show_fec_mode = {
> +static cmdline_parse_inst_t cmd_show_fec_mode = {
>  	.f = cmd_show_fec_mode_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> fec_mode",
> @@ -17245,23 +17239,23 @@ struct cmd_set_port_fec_mode {
>  };
> 
>  /* Common CLI fields for set fec mode */
> -cmdline_parse_token_string_t cmd_set_port_fec_mode_set =
> +static cmdline_parse_token_string_t cmd_set_port_fec_mode_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_port_fec_mode,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_set_port_fec_mode_port =
> +static cmdline_parse_token_string_t cmd_set_port_fec_mode_port =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_port_fec_mode,
>  		 port, "port");
> -cmdline_parse_token_num_t cmd_set_port_fec_mode_port_id =
> +static cmdline_parse_token_num_t cmd_set_port_fec_mode_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_set_port_fec_mode,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_port_fec_mode_str =
> +static cmdline_parse_token_string_t cmd_set_port_fec_mode_str =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_port_fec_mode,
>  		 fec_mode, "fec_mode");
> -cmdline_parse_token_string_t cmd_set_port_fec_mode_value =
> +static cmdline_parse_token_string_t cmd_set_port_fec_mode_value =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_port_fec_mode,
>  		 fec_value, NULL);
> @@ -17294,7 +17288,7 @@ cmd_set_port_fec_mode_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_set_fec_mode = {
> +static cmdline_parse_inst_t cmd_set_fec_mode = {
>  	.f = cmd_set_port_fec_mode_parsed,
>  	.data = NULL,
>  	.help_str = "set port <port_id> fec_mode auto|off|rs|baser",
> @@ -17319,19 +17313,19 @@ struct
> cmd_show_port_supported_ptypes_result {
>  };
> 
>  /* Common CLI fields for show port ptypes */
> -cmdline_parse_token_string_t cmd_show_port_supported_ptypes_show =
> +static cmdline_parse_token_string_t
> cmd_show_port_supported_ptypes_show =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_port_supported_ptypes_result,
>  		 show, "show");
> -cmdline_parse_token_string_t cmd_show_port_supported_ptypes_port =
> +static cmdline_parse_token_string_t
> cmd_show_port_supported_ptypes_port =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_port_supported_ptypes_result,
>  		 port, "port");
> -cmdline_parse_token_num_t cmd_show_port_supported_ptypes_port_id =
> +static cmdline_parse_token_num_t
> cmd_show_port_supported_ptypes_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_show_port_supported_ptypes_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_show_port_supported_ptypes_ptypes =
> +static cmdline_parse_token_string_t
> cmd_show_port_supported_ptypes_ptypes =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_port_supported_ptypes_result,
>  		 ptypes, "ptypes");
> @@ -17403,7 +17397,7 @@ cmd_show_port_supported_ptypes_parsed(
>  	}
>  }
> 
> -cmdline_parse_inst_t cmd_show_port_supported_ptypes = {
> +static cmdline_parse_inst_t cmd_show_port_supported_ptypes = {
>  	.f = cmd_show_port_supported_ptypes_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> ptypes",
> @@ -17474,31 +17468,31 @@ cmd_show_rx_tx_desc_status_parsed(void
> *parsed_result,
>  	}
>  }
> 
> -cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_show =
> +static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_show =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_show_rx_tx_desc_status_result,
>  			cmd_show, "show");
> -cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_port =
> +static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_port =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_show_rx_tx_desc_status_result,
>  			cmd_port, "port");
> -cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_pid =
> +static cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_pid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
>  			cmd_pid, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_keyword =
> +static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_keyword
> =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_show_rx_tx_desc_status_result,
>  			cmd_keyword, "rxq#txq");
> -cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_qid =
> +static cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_qid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
>  			cmd_qid, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_desc =
> +static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_desc =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_show_rx_tx_desc_status_result,
>  			cmd_desc, "desc");
> -cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_did =
> +static cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_did =
>  	TOKEN_NUM_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
>  			cmd_did, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_status =
> +static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_status =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_show_rx_tx_desc_status_result,
>  			cmd_status, "status");
> -cmdline_parse_inst_t cmd_show_rx_tx_desc_status = {
> +static cmdline_parse_inst_t cmd_show_rx_tx_desc_status = {
>  	.f = cmd_show_rx_tx_desc_status_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> rxq|txq <queue_id> desc <desc_id> "
> @@ -17549,39 +17543,39 @@
> cmd_show_rx_queue_desc_used_count_parsed(void *parsed_result,
>  	printf("Used desc count = %d\n", rc);
>  }
> 
> -cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_show
> =
> +static cmdline_parse_token_string_t
> cmd_show_rx_queue_desc_used_count_show =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_rx_queue_desc_used_count_result,
>  		 cmd_show, "show");
> -cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_port
> =
> +static cmdline_parse_token_string_t
> cmd_show_rx_queue_desc_used_count_port =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_rx_queue_desc_used_count_result,
>  		 cmd_port, "port");
> -cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_pid =
> +static cmdline_parse_token_num_t
> cmd_show_rx_queue_desc_used_count_pid =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_show_rx_queue_desc_used_count_result,
>  		 cmd_pid, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_rxq =
> +static cmdline_parse_token_string_t
> cmd_show_rx_queue_desc_used_count_rxq =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_rx_queue_desc_used_count_result,
>  		 cmd_rxq, "rxq");
> -cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_qid =
> +static cmdline_parse_token_num_t
> cmd_show_rx_queue_desc_used_count_qid =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_show_rx_queue_desc_used_count_result,
>  		 cmd_qid, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_desc
> =
> +static cmdline_parse_token_string_t
> cmd_show_rx_queue_desc_used_count_desc =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_rx_queue_desc_used_count_result,
>  		 cmd_count, "desc");
> -cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_used
> =
> +static cmdline_parse_token_string_t
> cmd_show_rx_queue_desc_used_count_used =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_rx_queue_desc_used_count_result,
>  		 cmd_count, "used");
> -cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_count
> =
> +static cmdline_parse_token_string_t
> cmd_show_rx_queue_desc_used_count_count =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_rx_queue_desc_used_count_result,
>  		 cmd_count, "count");
> -cmdline_parse_inst_t cmd_show_rx_queue_desc_used_count = {
> +static cmdline_parse_inst_t cmd_show_rx_queue_desc_used_count = {
>  	.f = cmd_show_rx_queue_desc_used_count_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> rxq <queue_id> desc used count",
> @@ -17608,23 +17602,23 @@ struct cmd_set_port_ptypes_result {
>  };
> 
>  /* Common CLI fields for set port ptypes */
> -cmdline_parse_token_string_t cmd_set_port_ptypes_set =
> +static cmdline_parse_token_string_t cmd_set_port_ptypes_set =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_port_ptypes_result,
>  		 set, "set");
> -cmdline_parse_token_string_t cmd_set_port_ptypes_port =
> +static cmdline_parse_token_string_t cmd_set_port_ptypes_port =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_port_ptypes_result,
>  		 port, "port");
> -cmdline_parse_token_num_t cmd_set_port_ptypes_port_id =
> +static cmdline_parse_token_num_t cmd_set_port_ptypes_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_set_port_ptypes_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_set_port_ptypes_mask_str =
> +static cmdline_parse_token_string_t cmd_set_port_ptypes_mask_str =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_set_port_ptypes_result,
>  		 ptype_mask, "ptype_mask");
> -cmdline_parse_token_num_t cmd_set_port_ptypes_mask_u32 =
> +static cmdline_parse_token_num_t cmd_set_port_ptypes_mask_u32 =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_set_port_ptypes_result,
>  		 mask, RTE_UINT32);
> @@ -17668,7 +17662,7 @@ cmd_set_port_ptypes_parsed(
>  	clear_ptypes = false;
>  }
> 
> -cmdline_parse_inst_t cmd_set_port_ptypes = {
> +static cmdline_parse_inst_t cmd_set_port_ptypes = {
>  	.f = cmd_set_port_ptypes_parsed,
>  	.data = NULL,
>  	.help_str = "set port <port_id> ptype_mask <mask>",
> @@ -17706,20 +17700,20 @@ cmd_showport_macs_parsed(void
> *parsed_result,
>  		show_mcast_macs(res->cmd_pid);
>  }
> 
> -cmdline_parse_token_string_t cmd_showport_macs_show =
> +static cmdline_parse_token_string_t cmd_showport_macs_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showport_macs_result,
>  			cmd_show, "show");
> -cmdline_parse_token_string_t cmd_showport_macs_port =
> +static cmdline_parse_token_string_t cmd_showport_macs_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showport_macs_result,
>  			cmd_port, "port");
> -cmdline_parse_token_num_t cmd_showport_macs_pid =
> +static cmdline_parse_token_num_t cmd_showport_macs_pid =
>  	TOKEN_NUM_INITIALIZER(struct cmd_showport_macs_result,
>  			cmd_pid, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_showport_macs_keyword =
> +static cmdline_parse_token_string_t cmd_showport_macs_keyword =
>  	TOKEN_STRING_INITIALIZER(struct cmd_showport_macs_result,
>  			cmd_keyword, "macs#mcast_macs");
> 
> -cmdline_parse_inst_t cmd_showport_macs = {
> +static cmdline_parse_inst_t cmd_showport_macs = {
>  	.f = cmd_showport_macs_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> macs|mcast_macs",
> @@ -17742,27 +17736,27 @@ struct
> cmd_show_port_flow_transfer_proxy_result {
>  	cmdline_fixed_string_t proxy;
>  };
> 
> -cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_show =
> +static cmdline_parse_token_string_t
> cmd_show_port_flow_transfer_proxy_show =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_port_flow_transfer_proxy_result,
>  		 show, "show");
> -cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_port =
> +static cmdline_parse_token_string_t
> cmd_show_port_flow_transfer_proxy_port =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_port_flow_transfer_proxy_result,
>  		 port, "port");
> -cmdline_parse_token_num_t cmd_show_port_flow_transfer_proxy_port_id
> =
> +static cmdline_parse_token_num_t
> cmd_show_port_flow_transfer_proxy_port_id =
>  	TOKEN_NUM_INITIALIZER
>  		(struct cmd_show_port_flow_transfer_proxy_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_flow =
> +static cmdline_parse_token_string_t
> cmd_show_port_flow_transfer_proxy_flow =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_port_flow_transfer_proxy_result,
>  		 flow, "flow");
> -cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_transfer
> =
> +static cmdline_parse_token_string_t
> cmd_show_port_flow_transfer_proxy_transfer =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_port_flow_transfer_proxy_result,
>  		 transfer, "transfer");
> -cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_proxy =
> +static cmdline_parse_token_string_t
> cmd_show_port_flow_transfer_proxy_proxy =
>  	TOKEN_STRING_INITIALIZER
>  		(struct cmd_show_port_flow_transfer_proxy_result,
>  		 proxy, "proxy");
> @@ -17788,7 +17782,7 @@
> cmd_show_port_flow_transfer_proxy_parsed(void *parsed_result,
>  	printf("Transfer proxy port ID: %u\n\n", proxy_port_id);
>  }
> 
> -cmdline_parse_inst_t cmd_show_port_flow_transfer_proxy = {
> +static cmdline_parse_inst_t cmd_show_port_flow_transfer_proxy = {
>  	.f = cmd_show_port_flow_transfer_proxy_parsed,
>  	.data = NULL,
>  	.help_str = "show port <port_id> flow transfer proxy",
> @@ -17806,7 +17800,7 @@ cmdline_parse_inst_t
> cmd_show_port_flow_transfer_proxy = {
>  /*
> *************************************************************
> ******************* */
> 
>  /* list of instructions */
> -cmdline_parse_ctx_t main_ctx[] = {
> +static cmdline_parse_ctx_t main_ctx[] = {
>  	(cmdline_parse_inst_t *)&cmd_help_brief,
>  	(cmdline_parse_inst_t *)&cmd_help_long,
>  	(cmdline_parse_inst_t *)&cmd_quit,
> diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
> index fc4a6d9cca..eabe936bbd 100644
> --- a/app/test-pmd/cmdline_flow.c
> +++ b/app/test-pmd/cmdline_flow.c
> @@ -11232,16 +11232,16 @@ cmd_show_set_raw_parsed(void
> *parsed_result, struct cmdline *cl, void *data)
>  	} while (all && ++index < RAW_ENCAP_CONFS_MAX_NUM);
>  }
> 
> -cmdline_parse_token_string_t cmd_show_set_raw_cmd_show =
> +static cmdline_parse_token_string_t cmd_show_set_raw_cmd_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_set_raw_result,
>  			cmd_show, "show");
> -cmdline_parse_token_string_t cmd_show_set_raw_cmd_what =
> +static cmdline_parse_token_string_t cmd_show_set_raw_cmd_what =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_set_raw_result,
>  			cmd_what, "raw_encap#raw_decap");
> -cmdline_parse_token_num_t cmd_show_set_raw_cmd_index =
> +static cmdline_parse_token_num_t cmd_show_set_raw_cmd_index =
>  	TOKEN_NUM_INITIALIZER(struct cmd_show_set_raw_result,
>  			cmd_index, RTE_UINT16);
> -cmdline_parse_token_string_t cmd_show_set_raw_cmd_all =
> +static cmdline_parse_token_string_t cmd_show_set_raw_cmd_all =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_set_raw_result,
>  			cmd_all, "all");
>  cmdline_parse_inst_t cmd_show_set_raw = {
> diff --git a/app/test-pmd/cmdline_mtr.c b/app/test-pmd/cmdline_mtr.c
> index ad7ef6ad98..5e62e82a37 100644
> --- a/app/test-pmd/cmdline_mtr.c
> +++ b/app/test-pmd/cmdline_mtr.c
> @@ -201,19 +201,19 @@ struct cmd_show_port_meter_cap_result {
>  	uint16_t port_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_show_port_meter_cap_show =
> +static cmdline_parse_token_string_t cmd_show_port_meter_cap_show =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_meter_cap_result, show, "show");
> -cmdline_parse_token_string_t cmd_show_port_meter_cap_port =
> +static cmdline_parse_token_string_t cmd_show_port_meter_cap_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_meter_cap_result, port, "port");
> -cmdline_parse_token_string_t cmd_show_port_meter_cap_meter =
> +static cmdline_parse_token_string_t cmd_show_port_meter_cap_meter =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_meter_cap_result, meter, "meter");
> -cmdline_parse_token_string_t cmd_show_port_meter_cap_cap =
> +static cmdline_parse_token_string_t cmd_show_port_meter_cap_cap =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_meter_cap_result, cap, "cap");
> -cmdline_parse_token_num_t cmd_show_port_meter_cap_port_id =
> +static cmdline_parse_token_num_t cmd_show_port_meter_cap_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_show_port_meter_cap_result, port_id,
> RTE_UINT16);
> 
> @@ -308,46 +308,46 @@ struct cmd_add_port_meter_profile_srtcm_result {
>  	int packet_mode;
>  };
> 
> -cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_add =
> +static cmdline_parse_token_string_t
> cmd_add_port_meter_profile_srtcm_add =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_meter_profile_srtcm_result, add,
> "add");
> -cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_port =
> +static cmdline_parse_token_string_t
> cmd_add_port_meter_profile_srtcm_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_meter_profile_srtcm_result,
>  			port, "port");
> -cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_meter =
> +static cmdline_parse_token_string_t
> cmd_add_port_meter_profile_srtcm_meter =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_meter_profile_srtcm_result,
>  			meter, "meter");
> -cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_profile =
> +static cmdline_parse_token_string_t
> cmd_add_port_meter_profile_srtcm_profile =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_meter_profile_srtcm_result,
>  			profile, "profile");
> -cmdline_parse_token_string_t
> cmd_add_port_meter_profile_srtcm_srtcm_rfc2697 =
> +static cmdline_parse_token_string_t
> cmd_add_port_meter_profile_srtcm_srtcm_rfc2697 =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_meter_profile_srtcm_result,
>  			srtcm_rfc2697, "srtcm_rfc2697");
> -cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_port_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_meter_profile_srtcm_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_srtcm_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_profile_id
> =
> +static cmdline_parse_token_num_t
> cmd_add_port_meter_profile_srtcm_profile_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_srtcm_result,
>  			profile_id, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_cir =
> +static cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_cir =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_srtcm_result,
>  			cir, RTE_UINT64);
> -cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_cbs =
> +static cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_cbs
> =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_srtcm_result,
>  			cbs, RTE_UINT64);
> -cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_ebs =
> +static cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_ebs
> =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_srtcm_result,
>  			ebs, RTE_UINT64);
> -cmdline_parse_token_num_t
> cmd_add_port_meter_profile_srtcm_packet_mode =
> +static cmdline_parse_token_num_t
> cmd_add_port_meter_profile_srtcm_packet_mode =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_srtcm_result,
>  			packet_mode, RTE_UINT32);
> @@ -417,50 +417,50 @@ struct cmd_add_port_meter_profile_trtcm_result {
>  	int packet_mode;
>  };
> 
> -cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_add =
> +static cmdline_parse_token_string_t
> cmd_add_port_meter_profile_trtcm_add =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_result, add,
> "add");
> -cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_port =
> +static cmdline_parse_token_string_t
> cmd_add_port_meter_profile_trtcm_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_result,
>  			port, "port");
> -cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_meter =
> +static cmdline_parse_token_string_t
> cmd_add_port_meter_profile_trtcm_meter =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_result,
>  			meter, "meter");
> -cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_profile =
> +static cmdline_parse_token_string_t
> cmd_add_port_meter_profile_trtcm_profile =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_result,
>  			profile, "profile");
> -cmdline_parse_token_string_t
> cmd_add_port_meter_profile_trtcm_trtcm_rfc2698 =
> +static cmdline_parse_token_string_t
> cmd_add_port_meter_profile_trtcm_trtcm_rfc2698 =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_result,
>  			trtcm_rfc2698, "trtcm_rfc2698");
> -cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_port_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_profile_id
> =
> +static cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_profile_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_result,
>  			profile_id, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_cir =
> +static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_cir =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_result,
>  			cir, RTE_UINT64);
> -cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_pir =
> +static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_pir
> =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_result,
>  			pir, RTE_UINT64);
> -cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_cbs =
> +static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_cbs
> =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_result,
>  			cbs, RTE_UINT64);
> -cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_pbs =
> +static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_pbs
> =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_result,
>  			pbs, RTE_UINT64);
> -cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_packet_mode =
> +static cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_packet_mode =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_result,
>  			packet_mode, RTE_UINT32);
> @@ -532,52 +532,52 @@ struct
> cmd_add_port_meter_profile_trtcm_rfc4115_result {
>  	int packet_mode;
>  };
> 
> -cmdline_parse_token_string_t
> cmd_add_port_meter_profile_trtcm_rfc4115_add =
> +static cmdline_parse_token_string_t
> cmd_add_port_meter_profile_trtcm_rfc4115_add =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
> add,
>  		"add");
> -cmdline_parse_token_string_t
> cmd_add_port_meter_profile_trtcm_rfc4115_port =
> +static cmdline_parse_token_string_t
> cmd_add_port_meter_profile_trtcm_rfc4115_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
>  			port, "port");
> -cmdline_parse_token_string_t
> cmd_add_port_meter_profile_trtcm_rfc4115_meter =
> +static cmdline_parse_token_string_t
> cmd_add_port_meter_profile_trtcm_rfc4115_meter =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
>  			meter, "meter");
> -cmdline_parse_token_string_t
> cmd_add_port_meter_profile_trtcm_rfc4115_profile =
> +static cmdline_parse_token_string_t
> cmd_add_port_meter_profile_trtcm_rfc4115_profile =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
>  			profile, "profile");
> -cmdline_parse_token_string_t
> +static cmdline_parse_token_string_t
>  	cmd_add_port_meter_profile_trtcm_rfc4115_trtcm_rfc4115 =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
>  			trtcm_rfc4115, "trtcm_rfc4115");
> -cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_rfc4115_port_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_rfc4115_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_rfc4115_profile_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_rfc4115_profile_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
>  			profile_id, RTE_UINT32);
> -cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_rfc4115_cir =
> +static cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_rfc4115_cir =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
>  			cir, RTE_UINT64);
> -cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_rfc4115_eir =
> +static cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_rfc4115_eir =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
>  			eir, RTE_UINT64);
> -cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_rfc4115_cbs =
> +static cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_rfc4115_cbs =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
>  			cbs, RTE_UINT64);
> -cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_rfc4115_ebs =
> +static cmdline_parse_token_num_t
> cmd_add_port_meter_profile_trtcm_rfc4115_ebs =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
>  			ebs, RTE_UINT64);
> -cmdline_parse_token_num_t
> +static cmdline_parse_token_num_t
>  	cmd_add_port_meter_profile_trtcm_rfc4115_packet_mode =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
> @@ -646,26 +646,26 @@ struct cmd_del_port_meter_profile_result {
>  	uint32_t profile_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_del_port_meter_profile_del =
> +static cmdline_parse_token_string_t cmd_del_port_meter_profile_del =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_meter_profile_result, del, "del");
> -cmdline_parse_token_string_t cmd_del_port_meter_profile_port =
> +static cmdline_parse_token_string_t cmd_del_port_meter_profile_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_meter_profile_result,
>  			port, "port");
> -cmdline_parse_token_string_t cmd_del_port_meter_profile_meter =
> +static cmdline_parse_token_string_t cmd_del_port_meter_profile_meter =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_meter_profile_result,
>  			meter, "meter");
> -cmdline_parse_token_string_t cmd_del_port_meter_profile_profile =
> +static cmdline_parse_token_string_t cmd_del_port_meter_profile_profile =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_meter_profile_result,
>  			profile, "profile");
> -cmdline_parse_token_num_t cmd_del_port_meter_profile_port_id =
> +static cmdline_parse_token_num_t cmd_del_port_meter_profile_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_del_port_meter_profile_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_del_port_meter_profile_profile_id =
> +static cmdline_parse_token_num_t cmd_del_port_meter_profile_profile_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_del_port_meter_profile_result,
>  			profile_id, RTE_UINT32);
> @@ -724,46 +724,37 @@ struct cmd_create_port_meter_result {
>  	cmdline_multi_string_t meter_input_color;
>  };
> 
> -cmdline_parse_token_string_t cmd_create_port_meter_create =
> +static cmdline_parse_token_string_t cmd_create_port_meter_create =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_create_port_meter_result, create, "create");
> -cmdline_parse_token_string_t cmd_create_port_meter_port =
> +static cmdline_parse_token_string_t cmd_create_port_meter_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_create_port_meter_result, port, "port");
> -cmdline_parse_token_string_t cmd_create_port_meter_meter =
> +static cmdline_parse_token_string_t cmd_create_port_meter_meter =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_create_port_meter_result, meter, "meter");
> -cmdline_parse_token_num_t cmd_create_port_meter_port_id =
> +static cmdline_parse_token_num_t cmd_create_port_meter_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_create_port_meter_result, port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_create_port_meter_mtr_id =
> +static cmdline_parse_token_num_t cmd_create_port_meter_mtr_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_create_port_meter_result, mtr_id, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_create_port_meter_profile_id =
> +static cmdline_parse_token_num_t cmd_create_port_meter_profile_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_create_port_meter_result, profile_id,
> RTE_UINT32);
> -cmdline_parse_token_num_t cmd_create_port_meter_policy_id =
> +static cmdline_parse_token_num_t cmd_create_port_meter_policy_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_create_port_meter_result, policy_id, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_create_port_meter_meter_enable =
> +static cmdline_parse_token_string_t cmd_create_port_meter_meter_enable
> =
>  	TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
>  		meter_enable, "yes#no");
> -cmdline_parse_token_string_t cmd_create_port_meter_g_action =
> -	TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
> -		g_action, "R#Y#G#D#r#y#g#d");
> -cmdline_parse_token_string_t cmd_create_port_meter_y_action =
> -	TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
> -		y_action, "R#Y#G#D#r#y#g#d");
> -cmdline_parse_token_string_t cmd_create_port_meter_r_action =
> -	TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
> -		r_action, "R#Y#G#D#r#y#g#d");
> -cmdline_parse_token_num_t cmd_create_port_meter_statistics_mask =
> +static cmdline_parse_token_num_t cmd_create_port_meter_statistics_mask
> =
>  	TOKEN_NUM_INITIALIZER(struct cmd_create_port_meter_result,
>  		statistics_mask, RTE_UINT64);
> -cmdline_parse_token_num_t cmd_create_port_meter_shared =
> +static cmdline_parse_token_num_t cmd_create_port_meter_shared =
>  	TOKEN_NUM_INITIALIZER(struct cmd_create_port_meter_result,
>  		shared, RTE_UINT32);
> -cmdline_parse_token_string_t cmd_create_port_meter_input_color =
> +static cmdline_parse_token_string_t cmd_create_port_meter_input_color =
>  	TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
>  		meter_input_color, TOKEN_STRING_MULTI);
> 
> @@ -845,19 +836,19 @@ struct cmd_enable_port_meter_result {
>  	uint32_t mtr_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_enable_port_meter_enable =
> +static cmdline_parse_token_string_t cmd_enable_port_meter_enable =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_enable_port_meter_result, enable, "enable");
> -cmdline_parse_token_string_t cmd_enable_port_meter_port =
> +static cmdline_parse_token_string_t cmd_enable_port_meter_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_enable_port_meter_result, port, "port");
> -cmdline_parse_token_string_t cmd_enable_port_meter_meter =
> +static cmdline_parse_token_string_t cmd_enable_port_meter_meter =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_enable_port_meter_result, meter, "meter");
> -cmdline_parse_token_num_t cmd_enable_port_meter_port_id =
> +static cmdline_parse_token_num_t cmd_enable_port_meter_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_enable_port_meter_result, port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_enable_port_meter_mtr_id =
> +static cmdline_parse_token_num_t cmd_enable_port_meter_mtr_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_enable_port_meter_result, mtr_id, RTE_UINT32);
> 
> @@ -906,19 +897,19 @@ struct cmd_disable_port_meter_result {
>  	uint32_t mtr_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_disable_port_meter_disable =
> +static cmdline_parse_token_string_t cmd_disable_port_meter_disable =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_disable_port_meter_result, disable, "disable");
> -cmdline_parse_token_string_t cmd_disable_port_meter_port =
> +static cmdline_parse_token_string_t cmd_disable_port_meter_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_disable_port_meter_result, port, "port");
> -cmdline_parse_token_string_t cmd_disable_port_meter_meter =
> +static cmdline_parse_token_string_t cmd_disable_port_meter_meter =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_disable_port_meter_result, meter, "meter");
> -cmdline_parse_token_num_t cmd_disable_port_meter_port_id =
> +static cmdline_parse_token_num_t cmd_disable_port_meter_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_disable_port_meter_result, port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_disable_port_meter_mtr_id =
> +static cmdline_parse_token_num_t cmd_disable_port_meter_mtr_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_disable_port_meter_result, mtr_id, RTE_UINT32);
> 
> @@ -968,22 +959,22 @@ struct cmd_del_port_meter_policy_result {
>  	uint32_t policy_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_del_port_meter_policy_del =
> +static cmdline_parse_token_string_t cmd_del_port_meter_policy_del =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_meter_policy_result, del, "del");
> -cmdline_parse_token_string_t cmd_del_port_meter_policy_port =
> +static cmdline_parse_token_string_t cmd_del_port_meter_policy_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_meter_policy_result, port, "port");
> -cmdline_parse_token_string_t cmd_del_port_meter_policy_meter =
> +static cmdline_parse_token_string_t cmd_del_port_meter_policy_meter =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_meter_policy_result, meter, "meter");
> -cmdline_parse_token_string_t cmd_del_port_meter_policy_policy =
> +static cmdline_parse_token_string_t cmd_del_port_meter_policy_policy =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_meter_policy_result, policy, "policy");
> -cmdline_parse_token_num_t cmd_del_port_meter_policy_port_id =
> +static cmdline_parse_token_num_t cmd_del_port_meter_policy_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_del_port_meter_policy_result, port_id,
> RTE_UINT16);
> -cmdline_parse_token_num_t cmd_del_port_meter_policy_policy_id =
> +static cmdline_parse_token_num_t cmd_del_port_meter_policy_policy_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_del_port_meter_policy_result, policy_id,
> RTE_UINT32);
> 
> @@ -1032,19 +1023,19 @@ struct cmd_del_port_meter_result {
>  	uint32_t mtr_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_del_port_meter_del =
> +static cmdline_parse_token_string_t cmd_del_port_meter_del =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_meter_result, del, "del");
> -cmdline_parse_token_string_t cmd_del_port_meter_port =
> +static cmdline_parse_token_string_t cmd_del_port_meter_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_meter_result, port, "port");
> -cmdline_parse_token_string_t cmd_del_port_meter_meter =
> +static cmdline_parse_token_string_t cmd_del_port_meter_meter =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_meter_result, meter, "meter");
> -cmdline_parse_token_num_t cmd_del_port_meter_port_id =
> +static cmdline_parse_token_num_t cmd_del_port_meter_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_del_port_meter_result, port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_del_port_meter_mtr_id =
> +static cmdline_parse_token_num_t cmd_del_port_meter_mtr_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_del_port_meter_result, mtr_id, RTE_UINT32);
> 
> @@ -1095,27 +1086,27 @@ struct cmd_set_port_meter_profile_result {
>  	uint32_t profile_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_port_meter_profile_set =
> +static cmdline_parse_token_string_t cmd_set_port_meter_profile_set =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_meter_profile_result, set, "set");
> -cmdline_parse_token_string_t cmd_set_port_meter_profile_port =
> +static cmdline_parse_token_string_t cmd_set_port_meter_profile_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_meter_profile_result, port, "port");
> -cmdline_parse_token_string_t cmd_set_port_meter_profile_meter =
> +static cmdline_parse_token_string_t cmd_set_port_meter_profile_meter =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_meter_profile_result, meter, "meter");
> -cmdline_parse_token_string_t cmd_set_port_meter_profile_profile =
> +static cmdline_parse_token_string_t cmd_set_port_meter_profile_profile =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_meter_profile_result, profile, "profile");
> -cmdline_parse_token_num_t cmd_set_port_meter_profile_port_id =
> +static cmdline_parse_token_num_t cmd_set_port_meter_profile_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_set_port_meter_profile_result, port_id,
>  		RTE_UINT16);
> -cmdline_parse_token_num_t cmd_set_port_meter_profile_mtr_id =
> +static cmdline_parse_token_num_t cmd_set_port_meter_profile_mtr_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_set_port_meter_profile_result, mtr_id,
>  		RTE_UINT32);
> -cmdline_parse_token_num_t cmd_set_port_meter_profile_profile_id =
> +static cmdline_parse_token_num_t cmd_set_port_meter_profile_profile_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_set_port_meter_profile_result, profile_id,
>  		RTE_UINT32);
> @@ -1169,20 +1160,20 @@ struct cmd_set_port_meter_dscp_table_result {
>  	cmdline_multi_string_t token_string;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_set =
> +static cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_set =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_meter_dscp_table_result, set, "set");
> -cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_port =
> +static cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_meter_dscp_table_result, port, "port");
> -cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_meter =
> +static cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_meter
> =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_meter_dscp_table_result, meter,
> "meter");
> -cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_dscp_table =
> +static cmdline_parse_token_string_t
> cmd_set_port_meter_dscp_table_dscp_table =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_meter_dscp_table_result,
>  		dscp_table, "dscp table");
> -cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_token_string
> =
> +static cmdline_parse_token_string_t
> cmd_set_port_meter_dscp_table_token_string =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_set_port_meter_dscp_table_result,
>  		token_string, TOKEN_STRING_MULTI);
> 
> @@ -1245,30 +1236,30 @@ struct cmd_set_port_meter_stats_mask_result {
>  	uint64_t stats_mask;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_set =
> +static cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_set =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_meter_stats_mask_result, set, "set");
> -cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_port =
> +static cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_meter_stats_mask_result, port, "port");
> -cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_meter =
> +static cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_meter
> =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_meter_stats_mask_result, meter,
> "meter");
> -cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_stats =
> +static cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_stats =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_meter_stats_mask_result, stats, "stats");
> -cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_mask =
> +static cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_mask
> =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_meter_stats_mask_result, mask, "mask");
> -cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_port_id =
> +static cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_port_id
> =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_set_port_meter_stats_mask_result, port_id,
>  		RTE_UINT16);
> -cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_mtr_id =
> +static cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_mtr_id
> =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_set_port_meter_stats_mask_result, mtr_id,
>  		RTE_UINT32);
> -cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_stats_mask =
> +static cmdline_parse_token_num_t
> cmd_set_port_meter_stats_mask_stats_mask =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_set_port_meter_stats_mask_result, stats_mask,
>  		RTE_UINT64);
> @@ -1322,25 +1313,25 @@ struct cmd_show_port_meter_stats_result {
>  	cmdline_fixed_string_t clear;
>  };
> 
> -cmdline_parse_token_string_t cmd_show_port_meter_stats_show =
> +static cmdline_parse_token_string_t cmd_show_port_meter_stats_show =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_meter_stats_result, show, "show");
> -cmdline_parse_token_string_t cmd_show_port_meter_stats_port =
> +static cmdline_parse_token_string_t cmd_show_port_meter_stats_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_meter_stats_result, port, "port");
> -cmdline_parse_token_string_t cmd_show_port_meter_stats_meter =
> +static cmdline_parse_token_string_t cmd_show_port_meter_stats_meter =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_meter_stats_result, meter, "meter");
> -cmdline_parse_token_string_t cmd_show_port_meter_stats_stats =
> +static cmdline_parse_token_string_t cmd_show_port_meter_stats_stats =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_meter_stats_result, stats, "stats");
> -cmdline_parse_token_num_t cmd_show_port_meter_stats_port_id =
> +static cmdline_parse_token_num_t cmd_show_port_meter_stats_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_show_port_meter_stats_result, port_id,
> RTE_UINT16);
> -cmdline_parse_token_num_t cmd_show_port_meter_stats_mtr_id =
> +static cmdline_parse_token_num_t cmd_show_port_meter_stats_mtr_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_show_port_meter_stats_result, mtr_id,
> RTE_UINT32);
> -cmdline_parse_token_string_t cmd_show_port_meter_stats_clear =
> +static cmdline_parse_token_string_t cmd_show_port_meter_stats_clear =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_meter_stats_result, clear, "yes#no");
> 
> diff --git a/app/test-pmd/cmdline_tm.c b/app/test-pmd/cmdline_tm.c
> index c058b8946e..fb56a234c5 100644
> --- a/app/test-pmd/cmdline_tm.c
> +++ b/app/test-pmd/cmdline_tm.c
> @@ -207,19 +207,19 @@ struct cmd_show_port_tm_cap_result {
>  	uint16_t port_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_show_port_tm_cap_show =
> +static cmdline_parse_token_string_t cmd_show_port_tm_cap_show =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_cap_result,
>  		show, "show");
> -cmdline_parse_token_string_t cmd_show_port_tm_cap_port =
> +static cmdline_parse_token_string_t cmd_show_port_tm_cap_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_cap_result,
>  		port, "port");
> -cmdline_parse_token_string_t cmd_show_port_tm_cap_tm =
> +static cmdline_parse_token_string_t cmd_show_port_tm_cap_tm =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_cap_result,
>  		tm, "tm");
> -cmdline_parse_token_string_t cmd_show_port_tm_cap_cap =
> +static cmdline_parse_token_string_t cmd_show_port_tm_cap_cap =
>  	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_cap_result,
>  		cap, "cap");
> -cmdline_parse_token_num_t cmd_show_port_tm_cap_port_id =
> +static cmdline_parse_token_num_t cmd_show_port_tm_cap_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_show_port_tm_cap_result,
>  		 port_id, RTE_UINT16);
> 
> @@ -353,25 +353,25 @@ struct cmd_show_port_tm_level_cap_result {
>  	uint32_t level_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_show_port_tm_level_cap_show =
> +static cmdline_parse_token_string_t cmd_show_port_tm_level_cap_show =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_show_port_tm_level_cap_result,
>  		show, "show");
> -cmdline_parse_token_string_t cmd_show_port_tm_level_cap_port =
> +static cmdline_parse_token_string_t cmd_show_port_tm_level_cap_port =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_show_port_tm_level_cap_result,
>  		port, "port");
> -cmdline_parse_token_string_t cmd_show_port_tm_level_cap_tm =
> +static cmdline_parse_token_string_t cmd_show_port_tm_level_cap_tm =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_show_port_tm_level_cap_result,
>  		tm, "tm");
> -cmdline_parse_token_string_t cmd_show_port_tm_level_cap_level =
> +static cmdline_parse_token_string_t cmd_show_port_tm_level_cap_level =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_show_port_tm_level_cap_result,
>  		level, "level");
> -cmdline_parse_token_string_t cmd_show_port_tm_level_cap_cap =
> +static cmdline_parse_token_string_t cmd_show_port_tm_level_cap_cap =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_show_port_tm_level_cap_result,
>  		cap, "cap");
> -cmdline_parse_token_num_t cmd_show_port_tm_level_cap_port_id =
> +static cmdline_parse_token_num_t cmd_show_port_tm_level_cap_port_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_show_port_tm_level_cap_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_show_port_tm_level_cap_level_id =
> +static cmdline_parse_token_num_t cmd_show_port_tm_level_cap_level_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_show_port_tm_level_cap_result,
>  		 level_id, RTE_UINT32);
> 
> @@ -503,25 +503,25 @@ struct cmd_show_port_tm_node_cap_result {
>  	uint32_t node_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_show_port_tm_node_cap_show =
> +static cmdline_parse_token_string_t cmd_show_port_tm_node_cap_show =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_show_port_tm_node_cap_result,
>  		show, "show");
> -cmdline_parse_token_string_t cmd_show_port_tm_node_cap_port =
> +static cmdline_parse_token_string_t cmd_show_port_tm_node_cap_port =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_show_port_tm_node_cap_result,
>  		port, "port");
> -cmdline_parse_token_string_t cmd_show_port_tm_node_cap_tm =
> +static cmdline_parse_token_string_t cmd_show_port_tm_node_cap_tm =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_show_port_tm_node_cap_result,
>  		tm, "tm");
> -cmdline_parse_token_string_t cmd_show_port_tm_node_cap_node =
> +static cmdline_parse_token_string_t cmd_show_port_tm_node_cap_node =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_show_port_tm_node_cap_result,
>  		node, "node");
> -cmdline_parse_token_string_t cmd_show_port_tm_node_cap_cap =
> +static cmdline_parse_token_string_t cmd_show_port_tm_node_cap_cap =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_show_port_tm_node_cap_result,
>  		cap, "cap");
> -cmdline_parse_token_num_t cmd_show_port_tm_node_cap_port_id =
> +static cmdline_parse_token_num_t cmd_show_port_tm_node_cap_port_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_show_port_tm_node_cap_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_show_port_tm_node_cap_node_id =
> +static cmdline_parse_token_num_t cmd_show_port_tm_node_cap_node_id
> =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_show_port_tm_node_cap_result,
>  		 node_id, RTE_UINT32);
> 
> @@ -627,29 +627,29 @@ struct cmd_show_port_tm_node_stats_result {
>  	uint32_t clear;
>  };
> 
> -cmdline_parse_token_string_t cmd_show_port_tm_node_stats_show =
> +static cmdline_parse_token_string_t cmd_show_port_tm_node_stats_show =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_tm_node_stats_result, show, "show");
> -cmdline_parse_token_string_t cmd_show_port_tm_node_stats_port =
> +static cmdline_parse_token_string_t cmd_show_port_tm_node_stats_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_tm_node_stats_result, port, "port");
> -cmdline_parse_token_string_t cmd_show_port_tm_node_stats_tm =
> +static cmdline_parse_token_string_t cmd_show_port_tm_node_stats_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_tm_node_stats_result, tm, "tm");
> -cmdline_parse_token_string_t cmd_show_port_tm_node_stats_node =
> +static cmdline_parse_token_string_t cmd_show_port_tm_node_stats_node =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_tm_node_stats_result, node, "node");
> -cmdline_parse_token_string_t cmd_show_port_tm_node_stats_stats =
> +static cmdline_parse_token_string_t cmd_show_port_tm_node_stats_stats =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_tm_node_stats_result, stats, "stats");
> -cmdline_parse_token_num_t cmd_show_port_tm_node_stats_port_id =
> +static cmdline_parse_token_num_t cmd_show_port_tm_node_stats_port_id
> =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_show_port_tm_node_stats_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_show_port_tm_node_stats_node_id =
> +static cmdline_parse_token_num_t cmd_show_port_tm_node_stats_node_id
> =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_show_port_tm_node_stats_result,
>  			node_id, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_show_port_tm_node_stats_clear =
> +static cmdline_parse_token_num_t cmd_show_port_tm_node_stats_clear =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_show_port_tm_node_stats_result, clear,
> RTE_UINT32);
> 
> @@ -745,26 +745,26 @@ struct cmd_show_port_tm_node_type_result {
>  	uint32_t node_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_show_port_tm_node_type_show =
> +static cmdline_parse_token_string_t cmd_show_port_tm_node_type_show =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_tm_node_type_result, show, "show");
> -cmdline_parse_token_string_t cmd_show_port_tm_node_type_port =
> +static cmdline_parse_token_string_t cmd_show_port_tm_node_type_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_tm_node_type_result, port, "port");
> -cmdline_parse_token_string_t cmd_show_port_tm_node_type_tm =
> +static cmdline_parse_token_string_t cmd_show_port_tm_node_type_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_tm_node_type_result, tm, "tm");
> -cmdline_parse_token_string_t cmd_show_port_tm_node_type_node =
> +static cmdline_parse_token_string_t cmd_show_port_tm_node_type_node =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_tm_node_type_result, node, "node");
> -cmdline_parse_token_string_t cmd_show_port_tm_node_type_type =
> +static cmdline_parse_token_string_t cmd_show_port_tm_node_type_type =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_show_port_tm_node_type_result, type, "type");
> -cmdline_parse_token_num_t cmd_show_port_tm_node_type_port_id =
> +static cmdline_parse_token_num_t cmd_show_port_tm_node_type_port_id
> =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_show_port_tm_node_type_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_show_port_tm_node_type_node_id =
> +static cmdline_parse_token_num_t cmd_show_port_tm_node_type_node_id
> =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_show_port_tm_node_type_result,
>  			node_id, RTE_UINT32);
> @@ -830,58 +830,58 @@ struct
> cmd_add_port_tm_node_shaper_profile_result {
>  	int pkt_mode;
>  };
> 
> -cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_add
> =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_shaper_profile_add =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_shaper_profile_result, add,
> "add");
> -cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_port
> =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_shaper_profile_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_shaper_profile_result,
>  			port, "port");
> -cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_tm =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_shaper_profile_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_shaper_profile_result,
>  			tm, "tm");
> -cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_node
> =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_shaper_profile_node =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_shaper_profile_result,
>  			node, "node");
> -cmdline_parse_token_string_t
> cmd_add_port_tm_node_shaper_profile_shaper =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_shaper_profile_shaper =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_shaper_profile_result,
>  			shaper, "shaper");
> -cmdline_parse_token_string_t
> cmd_add_port_tm_node_shaper_profile_profile =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_shaper_profile_profile =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_shaper_profile_result,
>  			profile, "profile");
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_port_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_shaper_profile_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_shaper_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_shaper_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_shaper_profile_result,
>  			shaper_id, RTE_UINT32);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_cmit_tb_rate =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_cmit_tb_rate =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_shaper_profile_result,
>  			cmit_tb_rate, RTE_UINT64);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_cmit_tb_size =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_cmit_tb_size =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_shaper_profile_result,
>  			cmit_tb_size, RTE_UINT64);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_peak_tb_rate =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_peak_tb_rate =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_shaper_profile_result,
>  			peak_tb_rate, RTE_UINT64);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_peak_tb_size =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_peak_tb_size =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_shaper_profile_result,
>  			peak_tb_size, RTE_UINT64);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_pktlen_adjust =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_pktlen_adjust =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_shaper_profile_result,
>  			pktlen_adjust, RTE_UINT32);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_packet_mode =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_shaper_profile_packet_mode =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_shaper_profile_result,
>  			pkt_mode, RTE_UINT32);
> @@ -953,33 +953,33 @@ struct
> cmd_del_port_tm_node_shaper_profile_result {
>  	uint32_t shaper_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_del =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_shaper_profile_del =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_shaper_profile_result, del,
> "del");
> -cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_port
> =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_shaper_profile_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_shaper_profile_result,
>  			port, "port");
> -cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_tm =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_shaper_profile_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_shaper_profile_result, tm,
> "tm");
> -cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_node
> =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_shaper_profile_node =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_shaper_profile_result,
>  			node, "node");
> -cmdline_parse_token_string_t
> cmd_del_port_tm_node_shaper_profile_shaper =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_shaper_profile_shaper =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_shaper_profile_result,
>  			shaper, "shaper");
> -cmdline_parse_token_string_t
> cmd_del_port_tm_node_shaper_profile_profile =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_shaper_profile_profile =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_shaper_profile_result,
>  			profile, "profile");
> -cmdline_parse_token_num_t
> cmd_del_port_tm_node_shaper_profile_port_id =
> +static cmdline_parse_token_num_t
> cmd_del_port_tm_node_shaper_profile_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_del_port_tm_node_shaper_profile_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_num_t
> cmd_del_port_tm_node_shaper_profile_shaper_id =
> +static cmdline_parse_token_num_t
> cmd_del_port_tm_node_shaper_profile_shaper_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_del_port_tm_node_shaper_profile_result,
>  			shaper_id, RTE_UINT32);
> @@ -1035,36 +1035,36 @@ struct
> cmd_add_port_tm_node_shared_shaper_result {
>  	uint32_t shaper_profile_id;
>  };
> 
> -cmdline_parse_token_string_t
> cmd_add_port_tm_node_shared_shaper_cmd_type =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_shared_shaper_cmd_type =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_shared_shaper_result,
>  			cmd_type, "add#set");
> -cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_port
> =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_shared_shaper_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_shared_shaper_result, port,
> "port");
> -cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_tm =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_shared_shaper_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_shared_shaper_result, tm,
> "tm");
> -cmdline_parse_token_string_t
> cmd_add_port_tm_node_shared_shaper_node =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_shared_shaper_node =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_shared_shaper_result, node,
> "node");
> -cmdline_parse_token_string_t
> cmd_add_port_tm_node_shared_shaper_shared =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_shared_shaper_shared =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_shared_shaper_result,
>  			shared, "shared");
> -cmdline_parse_token_string_t
> cmd_add_port_tm_node_shared_shaper_shaper =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_shared_shaper_shaper =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_shared_shaper_result,
>  			shaper, "shaper");
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_shared_shaper_port_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_shared_shaper_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_shared_shaper_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_shared_shaper_shared_shaper_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_shared_shaper_shared_shaper_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_shared_shaper_result,
>  			shared_shaper_id, RTE_UINT32);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_shared_shaper_shaper_profile_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_shared_shaper_shaper_profile_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_shared_shaper_result,
>  			shaper_profile_id, RTE_UINT32);
> @@ -1136,31 +1136,31 @@ struct
> cmd_del_port_tm_node_shared_shaper_result {
>  	uint32_t shared_shaper_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_del =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_shared_shaper_del =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_shared_shaper_result, del,
> "del");
> -cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_port
> =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_shared_shaper_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_shared_shaper_result, port,
> "port");
> -cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_tm =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_shared_shaper_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_shared_shaper_result, tm,
> "tm");
> -cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_node
> =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_shared_shaper_node =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_shared_shaper_result, node,
> "node");
> -cmdline_parse_token_string_t
> cmd_del_port_tm_node_shared_shaper_shared =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_shared_shaper_shared =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_shared_shaper_result,
>  			shared, "shared");
> -cmdline_parse_token_string_t
> cmd_del_port_tm_node_shared_shaper_shaper =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_shared_shaper_shaper =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_shared_shaper_result,
>  			shaper, "shaper");
> -cmdline_parse_token_num_t
> cmd_del_port_tm_node_shared_shaper_port_id =
> +static cmdline_parse_token_num_t
> cmd_del_port_tm_node_shared_shaper_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_del_port_tm_node_shared_shaper_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_num_t
> cmd_del_port_tm_node_shared_shaper_shared_shaper_id =
> +static cmdline_parse_token_num_t
> cmd_del_port_tm_node_shared_shaper_shared_shaper_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_del_port_tm_node_shared_shaper_result,
>  			shared_shaper_id, RTE_UINT32);
> @@ -1230,90 +1230,90 @@ struct
> cmd_add_port_tm_node_wred_profile_result {
>  	uint16_t wq_log2_r;
>  };
> 
> -cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_add =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_wred_profile_add =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result, add,
> "add");
> -cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_port =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_wred_profile_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result, port,
> "port");
> -cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_tm =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_wred_profile_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result, tm,
> "tm");
> -cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_node
> =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_wred_profile_node =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result, node,
> "node");
> -cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_wred
> =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_wred_profile_wred =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result, wred,
> "wred");
> -cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_profile
> =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_wred_profile_profile =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			profile, "profile");
> -cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_port_id
> =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_wred_profile_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_wred_profile_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			wred_profile_id, RTE_UINT32);
> -cmdline_parse_token_string_t
> cmd_add_port_tm_node_wred_profile_color_g =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_wred_profile_color_g =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			color_g, "G#g");
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_min_th_g =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_min_th_g =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			min_th_g, RTE_UINT64);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_max_th_g =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_max_th_g =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			max_th_g, RTE_UINT64);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_maxp_inv_g =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_maxp_inv_g =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			maxp_inv_g, RTE_UINT16);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_wq_log2_g =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_wq_log2_g =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			wq_log2_g, RTE_UINT16);
> -cmdline_parse_token_string_t
> cmd_add_port_tm_node_wred_profile_color_y =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_wred_profile_color_y =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			color_y, "Y#y");
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_min_th_y =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_min_th_y =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			min_th_y, RTE_UINT64);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_max_th_y =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_max_th_y =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			max_th_y, RTE_UINT64);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_maxp_inv_y =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_maxp_inv_y =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			maxp_inv_y, RTE_UINT16);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_wq_log2_y =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_wq_log2_y =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			wq_log2_y, RTE_UINT16);
> -cmdline_parse_token_string_t
> cmd_add_port_tm_node_wred_profile_color_r =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_node_wred_profile_color_r =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			color_r, "R#r");
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_min_th_r =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_min_th_r =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			min_th_r, RTE_UINT64);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_max_th_r =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_max_th_r =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			max_th_r, RTE_UINT64);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_maxp_inv_r =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_maxp_inv_r =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			maxp_inv_r, RTE_UINT16);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_wq_log2_r =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_node_wred_profile_wq_log2_r =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_node_wred_profile_result,
>  			wq_log2_r, RTE_UINT16);
> @@ -1410,30 +1410,30 @@ struct
> cmd_del_port_tm_node_wred_profile_result {
>  	uint32_t wred_profile_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_del =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_wred_profile_del =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_wred_profile_result, del,
> "del");
> -cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_port =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_wred_profile_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_wred_profile_result, port,
> "port");
> -cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_tm =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_wred_profile_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_wred_profile_result, tm,
> "tm");
> -cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_node =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_wred_profile_node =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_wred_profile_result, node,
> "node");
> -cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_wred =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_wred_profile_wred =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_wred_profile_result, wred,
> "wred");
> -cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_profile
> =
> +static cmdline_parse_token_string_t
> cmd_del_port_tm_node_wred_profile_profile =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_wred_profile_result,
>  			profile, "profile");
> -cmdline_parse_token_num_t cmd_del_port_tm_node_wred_profile_port_id
> =
> +static cmdline_parse_token_num_t
> cmd_del_port_tm_node_wred_profile_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_del_port_tm_node_wred_profile_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_num_t
> cmd_del_port_tm_node_wred_profile_wred_profile_id =
> +static cmdline_parse_token_num_t
> cmd_del_port_tm_node_wred_profile_wred_profile_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_del_port_tm_node_wred_profile_result,
>  			wred_profile_id, RTE_UINT32);
> @@ -1489,36 +1489,36 @@ struct
> cmd_set_port_tm_node_shaper_profile_result {
>  	uint32_t shaper_profile_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_set =
> +static cmdline_parse_token_string_t
> cmd_set_port_tm_node_shaper_profile_set =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_tm_node_shaper_profile_result, set,
> "set");
> -cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_port =
> +static cmdline_parse_token_string_t
> cmd_set_port_tm_node_shaper_profile_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_tm_node_shaper_profile_result,
>  			port, "port");
> -cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_tm =
> +static cmdline_parse_token_string_t
> cmd_set_port_tm_node_shaper_profile_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_tm_node_shaper_profile_result, tm,
> "tm");
> -cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_node
> =
> +static cmdline_parse_token_string_t
> cmd_set_port_tm_node_shaper_profile_node =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_tm_node_shaper_profile_result,
>  			node, "node");
> -cmdline_parse_token_string_t
> cmd_set_port_tm_node_shaper_profile_shaper =
> +static cmdline_parse_token_string_t
> cmd_set_port_tm_node_shaper_profile_shaper =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_tm_node_shaper_profile_result,
>  			shaper, "shaper");
> -cmdline_parse_token_string_t
> cmd_set_port_tm_node_shaper_profile_profile =
> +static cmdline_parse_token_string_t
> cmd_set_port_tm_node_shaper_profile_profile =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_tm_node_shaper_profile_result,
>  			profile, "profile");
> -cmdline_parse_token_num_t
> cmd_set_port_tm_node_shaper_profile_port_id =
> +static cmdline_parse_token_num_t
> cmd_set_port_tm_node_shaper_profile_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_set_port_tm_node_shaper_profile_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_num_t
> cmd_set_port_tm_node_shaper_profile_node_id =
> +static cmdline_parse_token_num_t
> cmd_set_port_tm_node_shaper_profile_node_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_set_port_tm_node_shaper_profile_result,
>  		node_id, RTE_UINT32);
> -cmdline_parse_token_num_t
> +static cmdline_parse_token_num_t
>  	cmd_set_port_tm_node_shaper_shaper_profile_profile_id =
>  		TOKEN_NUM_INITIALIZER(
>  			struct cmd_set_port_tm_node_shaper_profile_result,
> @@ -1590,50 +1590,50 @@ struct cmd_add_port_tm_nonleaf_node_result {
>  	cmdline_multi_string_t multi_shared_shaper_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_add =
> +static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_add =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_nonleaf_node_result, add, "add");
> -cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_port =
> +static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_port
> =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_nonleaf_node_result, port, "port");
> -cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_tm =
> +static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_nonleaf_node_result, tm, "tm");
> -cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_nonleaf =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_nonleaf_node_nonleaf =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_nonleaf_node_result, nonleaf,
> "nonleaf");
> -cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_node =
> +static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_node
> =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_nonleaf_node_result, node,
> "node");
> -cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_port_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_nonleaf_node_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_node_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_node_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_result,
>  		 node_id, RTE_UINT32);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_parent_node_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_parent_node_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_result,
>  		 parent_node_id, RTE_INT32);
> -cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_priority =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_priority =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_result,
>  		 priority, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_weight =
> +static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_weight
> =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_result,
>  		 weight, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_level_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_level_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_result,
>  		 level_id, RTE_UINT32);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_shaper_profile_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_shaper_profile_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_result,
>  		 shaper_profile_id, RTE_INT32);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_n_sp_priorities =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_n_sp_priorities =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_result,
>  		 n_sp_priorities, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_stats_mask =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_stats_mask =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_result,
>  		 stats_mask, RTE_UINT64);
> -cmdline_parse_token_string_t
> +static cmdline_parse_token_string_t
>  	cmd_add_port_tm_nonleaf_node_multi_shared_shaper_id =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_result,
>  		 multi_shared_shaper_id, TOKEN_STRING_MULTI);
> @@ -1749,53 +1749,53 @@ struct
> cmd_add_port_tm_nonleaf_node_pmode_result {
>  	cmdline_multi_string_t multi_shared_shaper_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_add
> =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_nonleaf_node_pmode_add =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_nonleaf_node_pmode_result, add,
> "add");
> -cmdline_parse_token_string_t
> cmd_add_port_tm_nonleaf_node_pmode_port =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_nonleaf_node_pmode_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_nonleaf_node_pmode_result, port,
> "port");
> -cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_tm
> =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_nonleaf_node_pmode_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_nonleaf_node_pmode_result, tm,
> "tm");
> -cmdline_parse_token_string_t
> cmd_add_port_tm_nonleaf_node_pmode_nonleaf =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_nonleaf_node_pmode_nonleaf =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_nonleaf_node_pmode_result,
> nonleaf, "nonleaf");
> -cmdline_parse_token_string_t
> cmd_add_port_tm_nonleaf_node_pmode_node =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_nonleaf_node_pmode_node =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_nonleaf_node_pmode_result, node,
> "node");
> -cmdline_parse_token_string_t
> cmd_add_port_tm_nonleaf_node_pmode_pktmode =
> +static cmdline_parse_token_string_t
> cmd_add_port_tm_nonleaf_node_pmode_pktmode =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_nonleaf_node_pmode_result, node,
> "pktmode");
> -cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_port_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_add_port_tm_nonleaf_node_pmode_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_node_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_node_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_pmode_result,
>  		 node_id, RTE_UINT32);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_parent_node_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_parent_node_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_pmode_result,
>  		 parent_node_id, RTE_INT32);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_priority =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_priority =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_pmode_result,
>  		 priority, RTE_UINT32);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_weight =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_weight =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_pmode_result,
>  		 weight, RTE_UINT32);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_level_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_level_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_pmode_result,
>  		 level_id, RTE_UINT32);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_shaper_profile_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_shaper_profile_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_pmode_result,
>  		 shaper_profile_id, RTE_INT32);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_n_sp_priorities =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_n_sp_priorities =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_pmode_result,
>  		 n_sp_priorities, RTE_UINT32);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_stats_mask =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_nonleaf_node_pmode_stats_mask =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_add_port_tm_nonleaf_node_pmode_result,
>  		 stats_mask, RTE_UINT64);
> -cmdline_parse_token_string_t
> +static cmdline_parse_token_string_t
>  	cmd_add_port_tm_nonleaf_node_pmode_multi_shrd_shpr_id =
>  	TOKEN_STRING_INITIALIZER(
>  			struct
> cmd_add_port_tm_nonleaf_node_pmode_result,
> @@ -1917,52 +1917,52 @@ struct cmd_add_port_tm_leaf_node_result {
>  	cmdline_multi_string_t multi_shared_shaper_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_add =
> +static cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_add =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_leaf_node_result, add, "add");
> -cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_port =
> +static cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_leaf_node_result, port, "port");
> -cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_tm =
> +static cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_leaf_node_result, tm, "tm");
> -cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_nonleaf =
> +static cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_nonleaf =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_leaf_node_result, leaf, "leaf");
> -cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_node =
> +static cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_node =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_add_port_tm_leaf_node_result, node, "node");
> -cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_port_id =
> +static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_node_id =
> +static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_node_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
>  		 node_id, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_parent_node_id
> =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_leaf_node_parent_node_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
>  		 parent_node_id, RTE_INT32);
> -cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_priority =
> +static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_priority =
>  	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
>  		 priority, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_weight =
> +static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_weight =
>  	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
>  		 weight, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_level_id =
> +static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_level_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
>  		 level_id, RTE_UINT32);
> -cmdline_parse_token_num_t
> cmd_add_port_tm_leaf_node_shaper_profile_id =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_leaf_node_shaper_profile_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
>  		 shaper_profile_id, RTE_INT32);
> -cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_cman_mode =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_leaf_node_cman_mode =
>  	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
>  		 cman_mode, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_wred_profile_id
> =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_leaf_node_wred_profile_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
>  		 wred_profile_id, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_stats_mask =
> +static cmdline_parse_token_num_t
> cmd_add_port_tm_leaf_node_stats_mask =
>  	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
>  		 stats_mask, RTE_UINT64);
> -cmdline_parse_token_string_t
> +static cmdline_parse_token_string_t
>  	cmd_add_port_tm_leaf_node_multi_shared_shaper_id =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_add_port_tm_leaf_node_result,
>  		 multi_shared_shaper_id, TOKEN_STRING_MULTI);
> @@ -2071,22 +2071,22 @@ struct cmd_del_port_tm_node_result {
>  	uint32_t node_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_del_port_tm_node_del =
> +static cmdline_parse_token_string_t cmd_del_port_tm_node_del =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_result, del, "del");
> -cmdline_parse_token_string_t cmd_del_port_tm_node_port =
> +static cmdline_parse_token_string_t cmd_del_port_tm_node_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_result, port, "port");
> -cmdline_parse_token_string_t cmd_del_port_tm_node_tm =
> +static cmdline_parse_token_string_t cmd_del_port_tm_node_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_result, tm, "tm");
> -cmdline_parse_token_string_t cmd_del_port_tm_node_node =
> +static cmdline_parse_token_string_t cmd_del_port_tm_node_node =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_del_port_tm_node_result, node, "node");
> -cmdline_parse_token_num_t cmd_del_port_tm_node_port_id =
> +static cmdline_parse_token_num_t cmd_del_port_tm_node_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_del_port_tm_node_result,
>  		 port_id, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_del_port_tm_node_node_id =
> +static cmdline_parse_token_num_t cmd_del_port_tm_node_node_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_del_port_tm_node_result,
>  		node_id, RTE_UINT32);
> 
> @@ -2146,36 +2146,36 @@ struct cmd_set_port_tm_node_parent_result {
>  	uint32_t weight;
>  };
> 
> -cmdline_parse_token_string_t cmd_set_port_tm_node_parent_set =
> +static cmdline_parse_token_string_t cmd_set_port_tm_node_parent_set =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_tm_node_parent_result, set, "set");
> -cmdline_parse_token_string_t cmd_set_port_tm_node_parent_port =
> +static cmdline_parse_token_string_t cmd_set_port_tm_node_parent_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_tm_node_parent_result, port, "port");
> -cmdline_parse_token_string_t cmd_set_port_tm_node_parent_tm =
> +static cmdline_parse_token_string_t cmd_set_port_tm_node_parent_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_tm_node_parent_result, tm, "tm");
> -cmdline_parse_token_string_t cmd_set_port_tm_node_parent_node =
> +static cmdline_parse_token_string_t cmd_set_port_tm_node_parent_node =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_tm_node_parent_result, node, "node");
> -cmdline_parse_token_string_t cmd_set_port_tm_node_parent_parent =
> +static cmdline_parse_token_string_t cmd_set_port_tm_node_parent_parent
> =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_set_port_tm_node_parent_result, parent,
> "parent");
> -cmdline_parse_token_num_t cmd_set_port_tm_node_parent_port_id =
> +static cmdline_parse_token_num_t cmd_set_port_tm_node_parent_port_id
> =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_set_port_tm_node_parent_result, port_id,
>  		RTE_UINT16);
> -cmdline_parse_token_num_t cmd_set_port_tm_node_parent_node_id =
> +static cmdline_parse_token_num_t cmd_set_port_tm_node_parent_node_id
> =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_set_port_tm_node_parent_result, node_id,
>  		RTE_UINT32);
> -cmdline_parse_token_num_t cmd_set_port_tm_node_parent_parent_id =
> +static cmdline_parse_token_num_t
> cmd_set_port_tm_node_parent_parent_id =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_set_port_tm_node_parent_result,
>  		parent_id, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_set_port_tm_node_parent_priority =
> +static cmdline_parse_token_num_t cmd_set_port_tm_node_parent_priority
> =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_set_port_tm_node_parent_result,
>  		priority, RTE_UINT32);
> -cmdline_parse_token_num_t cmd_set_port_tm_node_parent_weight =
> +static cmdline_parse_token_num_t cmd_set_port_tm_node_parent_weight =
>  	TOKEN_NUM_INITIALIZER(struct
> cmd_set_port_tm_node_parent_result,
>  		weight, RTE_UINT32);
> 
> @@ -2239,23 +2239,23 @@ struct cmd_suspend_port_tm_node_result {
>  	uint32_t node_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_suspend_port_tm_node_suspend =
> +static cmdline_parse_token_string_t cmd_suspend_port_tm_node_suspend =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_suspend_port_tm_node_result, suspend,
> "suspend");
> -cmdline_parse_token_string_t cmd_suspend_port_tm_node_port =
> +static cmdline_parse_token_string_t cmd_suspend_port_tm_node_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_suspend_port_tm_node_result, port, "port");
> -cmdline_parse_token_string_t cmd_suspend_port_tm_node_tm =
> +static cmdline_parse_token_string_t cmd_suspend_port_tm_node_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_suspend_port_tm_node_result, tm, "tm");
> -cmdline_parse_token_string_t cmd_suspend_port_tm_node_node =
> +static cmdline_parse_token_string_t cmd_suspend_port_tm_node_node =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_suspend_port_tm_node_result, node, "node");
> -cmdline_parse_token_num_t cmd_suspend_port_tm_node_port_id =
> +static cmdline_parse_token_num_t cmd_suspend_port_tm_node_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_suspend_port_tm_node_result, port_id,
>  		RTE_UINT16);
> -cmdline_parse_token_num_t cmd_suspend_port_tm_node_node_id =
> +static cmdline_parse_token_num_t cmd_suspend_port_tm_node_node_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_suspend_port_tm_node_result, node_id,
>  		RTE_UINT32);
> @@ -2306,22 +2306,22 @@ struct cmd_resume_port_tm_node_result {
>  	uint32_t node_id;
>  };
> 
> -cmdline_parse_token_string_t cmd_resume_port_tm_node_resume =
> +static cmdline_parse_token_string_t cmd_resume_port_tm_node_resume =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_resume_port_tm_node_result, resume, "resume");
> -cmdline_parse_token_string_t cmd_resume_port_tm_node_port =
> +static cmdline_parse_token_string_t cmd_resume_port_tm_node_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_resume_port_tm_node_result, port, "port");
> -cmdline_parse_token_string_t cmd_resume_port_tm_node_tm =
> +static cmdline_parse_token_string_t cmd_resume_port_tm_node_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_resume_port_tm_node_result, tm, "tm");
> -cmdline_parse_token_string_t cmd_resume_port_tm_node_node =
> +static cmdline_parse_token_string_t cmd_resume_port_tm_node_node =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_resume_port_tm_node_result, node, "node");
> -cmdline_parse_token_num_t cmd_resume_port_tm_node_port_id =
> +static cmdline_parse_token_num_t cmd_resume_port_tm_node_port_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_resume_port_tm_node_result, port_id,
> RTE_UINT16);
> -cmdline_parse_token_num_t cmd_resume_port_tm_node_node_id =
> +static cmdline_parse_token_num_t cmd_resume_port_tm_node_node_id =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_resume_port_tm_node_result, node_id,
> RTE_UINT32);
> 
> @@ -2371,24 +2371,24 @@ struct cmd_port_tm_hierarchy_commit_result {
>  	cmdline_fixed_string_t clean_on_fail;
>  };
> 
> -cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_port =
> +static cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_port =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_port_tm_hierarchy_commit_result, port, "port");
> -cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_tm =
> +static cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_tm =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_port_tm_hierarchy_commit_result, tm, "tm");
> -cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_hierarchy =
> +static cmdline_parse_token_string_t
> cmd_port_tm_hierarchy_commit_hierarchy =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_port_tm_hierarchy_commit_result,
>  			hierarchy, "hierarchy");
> -cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_commit =
> +static cmdline_parse_token_string_t
> cmd_port_tm_hierarchy_commit_commit =
>  	TOKEN_STRING_INITIALIZER(
>  		struct cmd_port_tm_hierarchy_commit_result, commit,
> "commit");
> -cmdline_parse_token_num_t cmd_port_tm_hierarchy_commit_port_id =
> +static cmdline_parse_token_num_t cmd_port_tm_hierarchy_commit_port_id
> =
>  	TOKEN_NUM_INITIALIZER(
>  		struct cmd_port_tm_hierarchy_commit_result,
>  			port_id, RTE_UINT16);
> -cmdline_parse_token_string_t
> cmd_port_tm_hierarchy_commit_clean_on_fail =
> +static cmdline_parse_token_string_t
> cmd_port_tm_hierarchy_commit_clean_on_fail =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_port_tm_hierarchy_commit_result,
>  		 clean_on_fail, "yes#no");
> 
> @@ -2446,36 +2446,36 @@ struct cmd_port_tm_mark_ip_ecn_result {
>  	uint16_t red;
>  };
> 
> -cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_set =
> +static cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_set =
>  	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
>  				 set, "set");
> 
> -cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_port =
> +static cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_port =
>  	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
>  				 port, "port");
> 
> -cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_tm =
> +static cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_tm =
>  	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
> tm,
>  				 "tm");
> 
> -cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_mark =
> +static cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_mark =
>  	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
>  				 mark, "mark");
> 
> -cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_ip_ecn =
> +static cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_ip_ecn =
>  	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
>  				 ip_ecn, "ip_ecn");
> -cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_port_id =
> +static cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
>  			      port_id, RTE_UINT16);
> 
> -cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_green =
> +static cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_green =
>  	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
>  			      green, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_yellow =
> +static cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_yellow =
>  	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
>  			      yellow, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_red =
> +static cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_red =
>  	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
>  				red, RTE_UINT16);
> 
> @@ -2533,36 +2533,36 @@ struct cmd_port_tm_mark_ip_dscp_result {
>  	uint16_t red;
>  };
> 
> -cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_set =
> +static cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_set =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_port_tm_mark_ip_dscp_result,
>  				 set, "set");
> 
> -cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_port =
> +static cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_port =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_port_tm_mark_ip_dscp_result,
>  				 port, "port");
> 
> -cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_tm =
> +static cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_tm =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_port_tm_mark_ip_dscp_result, tm,
>  				 "tm");
> 
> -cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_mark =
> +static cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_mark =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_port_tm_mark_ip_dscp_result,
>  				 mark, "mark");
> 
> -cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_ip_dscp =
> +static cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_ip_dscp =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_port_tm_mark_ip_dscp_result,
>  				 ip_dscp, "ip_dscp");
> -cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_port_id =
> +static cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
>  			      port_id, RTE_UINT16);
> 
> -cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_green =
> +static cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_green =
>  	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
>  				green, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_yellow =
> +static cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_yellow =
>  	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
>  				yellow, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_red =
> +static cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_red =
>  	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
>  				red, RTE_UINT16);
> 
> @@ -2620,36 +2620,36 @@ struct cmd_port_tm_mark_vlan_dei_result {
>  	uint16_t red;
>  };
> 
> -cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_set =
> +static cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_set =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_port_tm_mark_vlan_dei_result,
>  				 set, "set");
> 
> -cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_port =
> +static cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_port =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_port_tm_mark_vlan_dei_result,
>  				 port, "port");
> 
> -cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_tm =
> +static cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_tm =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_port_tm_mark_vlan_dei_result, tm,
>  				 "tm");
> 
> -cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_mark =
> +static cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_mark =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_port_tm_mark_vlan_dei_result,
>  				 mark, "mark");
> 
> -cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_vlan_dei =
> +static cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_vlan_dei
> =
>  	TOKEN_STRING_INITIALIZER(struct
> cmd_port_tm_mark_vlan_dei_result,
>  				 vlan_dei, "vlan_dei");
> -cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_port_id =
> +static cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_port_id =
>  	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
>  			      port_id, RTE_UINT16);
> 
> -cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_green =
> +static cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_green =
>  	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
>  				green, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_yellow =
> +static cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_yellow =
>  	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
>  				yellow, RTE_UINT16);
> -cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_red =
> +static cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_red =
>  	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
>  				red, RTE_UINT16);
> 
> --
> 2.36.1

Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH 0/6] Split driver specific commands out of testpmd
  2022-05-23  7:10 ` [PATCH 0/6] " David Marchand
                     ` (5 preceding siblings ...)
  2022-05-23  7:10   ` [PATCH 6/6] net/ixgbe: move testpmd commands David Marchand
@ 2022-05-23 18:09   ` Ferruh Yigit
  6 siblings, 0 replies; 65+ messages in thread
From: Ferruh Yigit @ 2022-05-23 18:09 UTC (permalink / raw)
  To: David Marchand, dev; +Cc: thomas, andrew.rybchenko

On 5/23/2022 8:10 AM, David Marchand wrote:
> Hello,
> 
> Following TB decision [1] and recent discussions on the driver specific
> commands in testpmd, here is a proposal on how the split could be done.
> 
> For now, this series simply moves the testpmd code in the driver
> directory. The driver specific testpmd code is still compiled as part of
> testpmd compilation via a global meson testpmd_driver_sources list.
> 
> Notes:
> - ixgbe bypass commands in testpmd were "dead" code since switch to meson,
>    as the RTE_LIBRTE_IXGBE_BYPASS define is not set while compiling testpmd.
>    No one complained about issue for the last two years, so those commands
>    are dropped.
> 
> 
> 1:https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmails.dpdk.org%2Farchives%2Fdev%2F2022-April%2F239191.html&amp;data=05%7C01%7Cferruh.yigit%40amd.com%7C14ffb5d174e04def3edd08da3c8b59be%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637888866467042882%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=XH8MQEiCmLkL%2FtX9BIaogwoaYLqy7ZrGAGQa7M7KM7A%3D&amp;reserved=0
> 
> --
> David Marchand
> 
> Changes since RFC v2:
> - extended cleanup patch 1,
> - fixed command registration (again..),
> - dropped ixgbe bypass commands,
> - fixed some indent,
> - updated documentation,
> 
> Changes since RFC v1:
> - added a cleanup as patch 1, to make all parser symbols static,
> - fixed registering issue in patch 1,
> - moved more i40e specific commands, fixed checkpatch warnings,
> 
> David Marchand (6):
>    app/testpmd: mark most cmdline symbols as static
>    app/testpmd: register driver specific commands
>    net/bonding: move testpmd commands
>    net/i40e: move testpmd commands
>    app/testpmd: drop ixgbe bypass commands
>    net/ixgbe: move testpmd commands

+1 to split the PMD specific commands, and set lgtm. Thanks for the work.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH 1/6] app/testpmd: mark most cmdline symbols as static
  2022-05-23 10:19     ` Dumitrescu, Cristian
@ 2022-05-23 18:09       ` Ferruh Yigit
  0 siblings, 0 replies; 65+ messages in thread
From: Ferruh Yigit @ 2022-05-23 18:09 UTC (permalink / raw)
  To: Dumitrescu, Cristian, David Marchand, dev
  Cc: thomas, andrew.rybchenko, Konstantin Ananyev, Li, Xiaoyun, Singh,
	Aman Deep, Zhang, Yuying, Ori Kam

On 5/23/2022 11:19 AM, Dumitrescu, Cristian wrote:
> [CAUTION: External Email]
> 
>> -----Original Message-----
>> From: David Marchand <david.marchand@redhat.com>
>> Sent: Monday, May 23, 2022 8:10 AM
>> To: dev@dpdk.org
>> Cc: thomas@monjalon.net; andrew.rybchenko@oktetlabs.ru;
>> ferruh.yigit@xilinx.com; Konstantin Ananyev
>> <konstantin.v.ananyev@yandex.ru>; Li, Xiaoyun <xiaoyun.li@intel.com>; Singh,
>> Aman Deep <aman.deep.singh@intel.com>; Zhang, Yuying
>> <yuying.zhang@intel.com>; Ori Kam <orika@nvidia.com>; Dumitrescu, Cristian
>> <cristian.dumitrescu@intel.com>
>> Subject: [PATCH 1/6] app/testpmd: mark most cmdline symbols as static
>>
>> All those symbols don't need to be global, plus it was hiding unused
>> code such as:
>> - cmd_set_conntrack_dir_set and cmd_set_conntrack_dir_conntrack in
>>    cmdline.c,
>> - cmd_create_port_meter_g_action, cmd_create_port_meter_r_action,
>>    cmd_create_port_meter_y_action in cmdline_mtr.c,
>>
>> Mark those symbols as static.
>>
>> Signed-off-by: David Marchand <david.marchand@redhat.com>
> 
> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
> 

Acked-by: Ferruh Yigit <ferruh.yigit@xilinx.com>

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH 5/6] app/testpmd: drop ixgbe bypass commands
  2022-05-23  7:10   ` [PATCH 5/6] app/testpmd: drop ixgbe bypass commands David Marchand
@ 2022-05-23 18:10     ` Ferruh Yigit
  2022-06-17  5:07     ` [PATCH v2 1/3] app/testpmd: restore " David Marchand
  2022-07-21  8:05     ` [PATCH v3 1/3] app/testpmd: restore ixgbe bypass commands David Marchand
  2 siblings, 0 replies; 65+ messages in thread
From: Ferruh Yigit @ 2022-05-23 18:10 UTC (permalink / raw)
  To: David Marchand, dev, Qi Z Zhang
  Cc: thomas, andrew.rybchenko, Xiaoyun Li, Aman Singh, Yuying Zhang

On 5/23/2022 8:10 AM, David Marchand wrote:
> This code is dead from the moment we switched to meson, because
> RTE_LIBRTE_IXGBE_BYPASS is never defined at build time.
> There was no complaint about the loss of those commands, drop all
> associated code and documentation.
> 
> Signed-off-by: David Marchand<david.marchand@redhat.com>

'RTE_LIBRTE_IXGBE_BYPASS' is hardcoded in the 
'drivers/net/ixgbe/meson.build'.
And for testpmd, macro can be enabled by argument to meson,
'-Dc_args=-RTE_LIBRTE_IXGBE_BYPASS'.

If ixgbe bypass mode agreed to remove, we can remove it, but I think 
above build time flag justification is not sufficient to remove it.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH 2/6] app/testpmd: register driver specific commands
  2022-05-23  7:10   ` [PATCH 2/6] app/testpmd: register driver specific commands David Marchand
@ 2022-05-23 18:10     ` Ferruh Yigit
  2022-05-24 10:53       ` David Marchand
  2022-05-24 17:21     ` Thomas Monjalon
  1 sibling, 1 reply; 65+ messages in thread
From: Ferruh Yigit @ 2022-05-23 18:10 UTC (permalink / raw)
  To: David Marchand, dev
  Cc: thomas, andrew.rybchenko, Xiaoyun Li, Aman Singh, Yuying Zhang,
	Bruce Richardson

On 5/23/2022 8:10 AM, David Marchand wrote:
> +int
> +init_cmdline(void)
> +{
> +       struct testpmd_commands *c;
> +       cmdline_parse_ctx_t *ctx;
> +       unsigned int count = 0;
> +       unsigned int i;
> +
> +       /* initialize non-constant commands */
> +       cmd_set_fwd_mode_init();
> +       cmd_set_fwd_retry_mode_init();
> +
> +       main_ctx = NULL;
> +       for (i = 0; builtin_ctx[i] != NULL; i++) {
> +               ctx = realloc(main_ctx, (count + i + 1) * sizeof(*ctx));
> +               if (ctx == NULL)
> +                       goto err;
> +               main_ctx = ctx;

Instead of 'realloc()', check and assign pointer in each entry, what do 
you think about first calculate the size and alloc once, both for 
'builtin_ctx' & driver specific command?
But of course trade off is to loop twice in that case.

> +               main_ctx[count + i] = builtin_ctx[i];
> +       }

no need to use 'count' in this loop, since it is always '0'.

> +       count += i;
> +
> +       TAILQ_FOREACH(c, &commands_head, next) {
> +               for (i = 0; c->commands[i].ctx != NULL; i++) {
> +                       ctx = realloc(main_ctx, (count + i + 1) * sizeof(*ctx));
> +                       if (ctx == NULL)
> +                               goto err;
> +                       main_ctx = ctx;
> +                       main_ctx[count + i] = c->commands[i].ctx;
> +               }
> +               count += i;
> +       }
> +
> +       /* cmdline expects a NULL terminated array */
> +       ctx = realloc(main_ctx, (count + 1) * sizeof(*ctx));
> +       if (ctx == NULL)
> +               goto err;
> +       main_ctx = ctx;
> +       main_ctx[count] = NULL;
> +       count += 1;

Above block also can be avoided if size calculated in advance.

> +
> +       return 0;
> +err:
> +       free(main_ctx);
> +       return -1;
> +}
> +


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH 3/6] net/bonding: move testpmd commands
  2022-05-23  7:10   ` [PATCH 3/6] net/bonding: move testpmd commands David Marchand
@ 2022-05-23 18:10     ` Ferruh Yigit
  2022-06-17  5:06     ` [PATCH v2] " David Marchand
  1 sibling, 0 replies; 65+ messages in thread
From: Ferruh Yigit @ 2022-05-23 18:10 UTC (permalink / raw)
  To: David Marchand, dev
  Cc: thomas, andrew.rybchenko, Xiaoyun Li, Aman Singh, Yuying Zhang,
	Chas Williams, Min Hu (Connor)

On 5/23/2022 8:10 AM, David Marchand wrote:
> @@ -5711,3 +5575,5 @@ Driver specific commands
> 
>   Some drivers provide specific features.
>   See:
> +
> +- :doc:`../prog_guide/link_bonding_poll_mode_drv_lib`

Can it be possible to link directly to the relevant section (Testpmd 
driver specific commands), instead of the PMD documentation?


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [RFC PATCH 2/4] net/bonding: move testpmd commands
  2022-05-20  6:59             ` Andrew Rybchenko
@ 2022-05-24  9:40               ` Konstantin Ananyev
  2022-05-24 10:15                 ` Thomas Monjalon
  0 siblings, 1 reply; 65+ messages in thread
From: Konstantin Ananyev @ 2022-05-24  9:40 UTC (permalink / raw)
  To: Andrew Rybchenko, Thomas Monjalon, David Marchand
  Cc: dev, Min Hu (Connor),
	Xiaoyun Li, Aman Singh, Yuying Zhang, Chas Williams, jerinj

20/05/2022 07:59, Andrew Rybchenko пишет:
> On 5/19/22 14:26, Thomas Monjalon wrote:
>> 19/05/2022 09:40, David Marchand:
>>> On Thu, May 19, 2022 at 1:25 AM Konstantin Ananyev
>>> <konstantin.v.ananyev@yandex.ru> wrote:
>>>> 18/05/2022 18:24, David Marchand пишет:
>>>>> On Fri, May 13, 2022 at 12:10 PM Min Hu (Connor) 
>>>>> <humin29@huawei.com> wrote:
>>>>>>
>>>>>>     I think net/bonding offer 'API' for APP to use the bonding.
>>>>>>       and use the specific PMD as slave device.
>>>>>>     The software framwork is like:
>>>>>>      APP
>>>>>>      ethdev
>>>>>>      bonding PMD
>>>>>>      PMD
>>>>>>      hardware
>>>>>>
>>>>>> so, I think cmdlines for testpmd should not put in net/bonding.be
>>
>> The bonding API is specific to drivers/net/bonding/,
>> so according to the techboard decision,
>> the testpmd code should go in the driver directory.
> 
> +1
> 
>>
>>>> Actually, I feel the same.
>>>> I do understand the intention, and I do realize it is just location,
>>>> but still doesn't look right for me.
>>>> can't we have a special sub-folder in testpmd instead?
>>>> Something like app/testpmd/driver_specific/(ixgbe)|(i40e)|(bonding)...
>>>
>>> That should not pose a problem, indeed.
>>> And, on the plus side, it avoids putting some testpmd global variables
>>> in meson (which I was not entirely happy with).
>>
>> I like the global variables approach.
> 
> +1
> 
>>
>>> But, on the other side, I have a concern about MAINTAINERS updates.
>>>
>>> (almost) everything in app/test-pmd has been under the testpmd
>>> maintainer responsibility.
>>> Separating the driver specific code from testpmd is a way to clearly
>>> shift this responsibility to the driver maintenance.
>>
>> I agree.
> 
> +1
> 
>>
>>> One advantage of moving the code to the driver directory is that there
>>> is no MAINTAINERS update needed.
>>
>> Yes I think moving test code in the driver directory is smart.
>> We already have this approach for some self tests run with app/test.
>> And more important, the techboard has decided to move code in the driver
>> or lib directory:
>>     https://mails.dpdk.org/archives/dev/2022-April/239191.html

Yep, I remember that discussion, though from my impression
(probably wrong) people talked more about need for some smart
testpmd plugin approach.
I didn't realize that it would mean literally dump all
current cmd-line related code straight into drivers/net.
I agree that testpmd code for PMD-specific API should be
responsibility of this PMD maintainer.
I just don't feel that drivers/net is the best place for it.
As another thing to consider: what would happen if we'll decide
to rework testpmd interface (from CLI to gRPC or so), or introduce
new app for PMD testing - would we need to inject all these things
into drivers/net too?

>>
>>> If we keep those in app/test-pmd, it is still possible to mark the
>>> driver-specific sources in MAINTAINERS, but such updates are often
>>> missed.
>>> I can probably add something in devtools/ to catch those updates in
>>> the future...
>>>
>>> I'll try for RFC v3.
>>
>>
>>
> 


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [RFC PATCH 2/4] net/bonding: move testpmd commands
  2022-05-24  9:40               ` Konstantin Ananyev
@ 2022-05-24 10:15                 ` Thomas Monjalon
  2022-05-24 22:41                   ` Konstantin Ananyev
  0 siblings, 1 reply; 65+ messages in thread
From: Thomas Monjalon @ 2022-05-24 10:15 UTC (permalink / raw)
  To: Andrew Rybchenko, David Marchand, Konstantin Ananyev
  Cc: dev, Min Hu (Connor),
	Xiaoyun Li, Aman Singh, Yuying Zhang, Chas Williams, jerinj

24/05/2022 11:40, Konstantin Ananyev:
> 20/05/2022 07:59, Andrew Rybchenko пишет:
> > On 5/19/22 14:26, Thomas Monjalon wrote:
> >> 19/05/2022 09:40, David Marchand:
> >>> On Thu, May 19, 2022 at 1:25 AM Konstantin Ananyev
> >>> <konstantin.v.ananyev@yandex.ru> wrote:
> >>>> 18/05/2022 18:24, David Marchand пишет:
> >>>>> On Fri, May 13, 2022 at 12:10 PM Min Hu (Connor) 
> >>>>> <humin29@huawei.com> wrote:
> >>>>>>
> >>>>>>     I think net/bonding offer 'API' for APP to use the bonding.
> >>>>>>       and use the specific PMD as slave device.
> >>>>>>     The software framwork is like:
> >>>>>>      APP
> >>>>>>      ethdev
> >>>>>>      bonding PMD
> >>>>>>      PMD
> >>>>>>      hardware
> >>>>>>
> >>>>>> so, I think cmdlines for testpmd should not put in net/bonding.be
> >>
> >> The bonding API is specific to drivers/net/bonding/,
> >> so according to the techboard decision,
> >> the testpmd code should go in the driver directory.
> > 
> > +1
> > 
> >>
> >>>> Actually, I feel the same.
> >>>> I do understand the intention, and I do realize it is just location,
> >>>> but still doesn't look right for me.
> >>>> can't we have a special sub-folder in testpmd instead?
> >>>> Something like app/testpmd/driver_specific/(ixgbe)|(i40e)|(bonding)...
> >>>
> >>> That should not pose a problem, indeed.
> >>> And, on the plus side, it avoids putting some testpmd global variables
> >>> in meson (which I was not entirely happy with).
> >>
> >> I like the global variables approach.
> > 
> > +1
> > 
> >>
> >>> But, on the other side, I have a concern about MAINTAINERS updates.
> >>>
> >>> (almost) everything in app/test-pmd has been under the testpmd
> >>> maintainer responsibility.
> >>> Separating the driver specific code from testpmd is a way to clearly
> >>> shift this responsibility to the driver maintenance.
> >>
> >> I agree.
> > 
> > +1
> > 
> >>
> >>> One advantage of moving the code to the driver directory is that there
> >>> is no MAINTAINERS update needed.
> >>
> >> Yes I think moving test code in the driver directory is smart.
> >> We already have this approach for some self tests run with app/test.
> >> And more important, the techboard has decided to move code in the driver
> >> or lib directory:
> >>     https://mails.dpdk.org/archives/dev/2022-April/239191.html
> 
> Yep, I remember that discussion, though from my impression
> (probably wrong) people talked more about need for some smart
> testpmd plugin approach.
> I didn't realize that it would mean literally dump all
> current cmd-line related code straight into drivers/net.
> I agree that testpmd code for PMD-specific API should be
> responsibility of this PMD maintainer.
> I just don't feel that drivers/net is the best place for it.
> As another thing to consider: what would happen if we'll decide
> to rework testpmd interface (from CLI to gRPC or so), or introduce
> new app for PMD testing - would we need to inject all these things
> into drivers/net too?

Yes I think it's OK to have driver-specific test code
in the driver directory.
This is what is already done for eventdev and rawdev drivers:
	git ls-files drivers | grep test




^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH 2/6] app/testpmd: register driver specific commands
  2022-05-23 18:10     ` Ferruh Yigit
@ 2022-05-24 10:53       ` David Marchand
  2022-05-24 11:43         ` Ferruh Yigit
  0 siblings, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-05-24 10:53 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: dev, Thomas Monjalon, Andrew Rybchenko, Xiaoyun Li, Aman Singh,
	Yuying Zhang, Bruce Richardson

On Mon, May 23, 2022 at 8:10 PM Ferruh Yigit <ferruh.yigit@amd.com> wrote:
>
> On 5/23/2022 8:10 AM, David Marchand wrote:
> > +int
> > +init_cmdline(void)
> > +{
> > +       struct testpmd_commands *c;
> > +       cmdline_parse_ctx_t *ctx;
> > +       unsigned int count = 0;
> > +       unsigned int i;
> > +
> > +       /* initialize non-constant commands */
> > +       cmd_set_fwd_mode_init();
> > +       cmd_set_fwd_retry_mode_init();
> > +
> > +       main_ctx = NULL;
> > +       for (i = 0; builtin_ctx[i] != NULL; i++) {
> > +               ctx = realloc(main_ctx, (count + i + 1) * sizeof(*ctx));
> > +               if (ctx == NULL)
> > +                       goto err;
> > +               main_ctx = ctx;
>
> Instead of 'realloc()', check and assign pointer in each entry, what do
> you think about first calculate the size and alloc once, both for
> 'builtin_ctx' & driver specific command?
> But of course trade off is to loop twice in that case.

Yes, I hesitated because of the duplicated loop (and I found no
"elegant" macro).
I'm ok with the suggestion, this makes the code simpler.


int
init_cmdline(void)
{
        struct testpmd_commands *c;
        unsigned int count;
        unsigned int i;

        /* initialize non-constant commands */
        cmd_set_fwd_mode_init();
        cmd_set_fwd_retry_mode_init();

        count = 0;
        for (i = 0; builtin_ctx[i] != NULL; i++, count++)
                ;
        TAILQ_FOREACH(c, &commands_head, next) {
                for (i = 0; c->commands[i].ctx != NULL; i++, count++)
                        ;
        }

        /* cmdline expects a NULL terminated array */
        main_ctx = calloc(count + 1, sizeof(main_ctx[0]));
        if (main_ctx == NULL)
                return -1;

        count = 0;
        for (i = 0; builtin_ctx[i] != NULL; i++, count++)
                main_ctx[count] = builtin_ctx[i];
        TAILQ_FOREACH(c, &commands_head, next) {
                for (i = 0; c->commands[i].ctx != NULL; i++, count++)
                        main_ctx[count] = c->commands[i].ctx;
        }

        return 0;
}


-- 
David Marchand


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH 2/6] app/testpmd: register driver specific commands
  2022-05-24 10:53       ` David Marchand
@ 2022-05-24 11:43         ` Ferruh Yigit
  0 siblings, 0 replies; 65+ messages in thread
From: Ferruh Yigit @ 2022-05-24 11:43 UTC (permalink / raw)
  To: David Marchand
  Cc: dev, Thomas Monjalon, Andrew Rybchenko, Xiaoyun Li, Aman Singh,
	Yuying Zhang, Bruce Richardson

On 5/24/2022 11:53 AM, David Marchand wrote:
> [CAUTION: External Email]
> 
> On Mon, May 23, 2022 at 8:10 PM Ferruh Yigit <ferruh.yigit@amd.com> wrote:
>>
>> On 5/23/2022 8:10 AM, David Marchand wrote:
>>> +int
>>> +init_cmdline(void)
>>> +{
>>> +       struct testpmd_commands *c;
>>> +       cmdline_parse_ctx_t *ctx;
>>> +       unsigned int count = 0;
>>> +       unsigned int i;
>>> +
>>> +       /* initialize non-constant commands */
>>> +       cmd_set_fwd_mode_init();
>>> +       cmd_set_fwd_retry_mode_init();
>>> +
>>> +       main_ctx = NULL;
>>> +       for (i = 0; builtin_ctx[i] != NULL; i++) {
>>> +               ctx = realloc(main_ctx, (count + i + 1) * sizeof(*ctx));
>>> +               if (ctx == NULL)
>>> +                       goto err;
>>> +               main_ctx = ctx;
>>
>> Instead of 'realloc()', check and assign pointer in each entry, what do
>> you think about first calculate the size and alloc once, both for
>> 'builtin_ctx' & driver specific command?
>> But of course trade off is to loop twice in that case.
> 
> Yes, I hesitated because of the duplicated loop (and I found no
> "elegant" macro).
> I'm ok with the suggestion, this makes the code simpler.
> 
> 
> int
> init_cmdline(void)
> {
>          struct testpmd_commands *c;
>          unsigned int count;
>          unsigned int i;
> 
>          /* initialize non-constant commands */
>          cmd_set_fwd_mode_init();
>          cmd_set_fwd_retry_mode_init();
> 
>          count = 0;
>          for (i = 0; builtin_ctx[i] != NULL; i++, count++)
>                  ;
>          TAILQ_FOREACH(c, &commands_head, next) {
>                  for (i = 0; c->commands[i].ctx != NULL; i++, count++)
>                          ;
>          }
> 
>          /* cmdline expects a NULL terminated array */
>          main_ctx = calloc(count + 1, sizeof(main_ctx[0]));
>          if (main_ctx == NULL)
>                  return -1;
> 
>          count = 0;
>          for (i = 0; builtin_ctx[i] != NULL; i++, count++)
>                  main_ctx[count] = builtin_ctx[i];
>          TAILQ_FOREACH(c, &commands_head, next) {
>                  for (i = 0; c->commands[i].ctx != NULL; i++, count++)
>                          main_ctx[count] = c->commands[i].ctx;
>          }
> 
>          return 0;
> }
> 

ack


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH 2/6] app/testpmd: register driver specific commands
  2022-05-23  7:10   ` [PATCH 2/6] app/testpmd: register driver specific commands David Marchand
  2022-05-23 18:10     ` Ferruh Yigit
@ 2022-05-24 17:21     ` Thomas Monjalon
  2022-05-24 17:44       ` David Marchand
  1 sibling, 1 reply; 65+ messages in thread
From: Thomas Monjalon @ 2022-05-24 17:21 UTC (permalink / raw)
  To: David Marchand
  Cc: dev, andrew.rybchenko, ferruh.yigit, Xiaoyun Li, Aman Singh,
	Yuying Zhang, Bruce Richardson, spiked

23/05/2022 09:10, David Marchand:
> Introduce a testpmd API so that drivers can register specific commands.
> 
> A driver can list some files to compile with testpmd, by setting them
> in the testpmd_sources (driver local) meson variable.
> drivers/meson.build then takes care of appending this to a global meson
> variable, and adding the driver to testpmd dependency.
> 
> Note: testpmd.h is fixed to that it is self sufficient when being
> included.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
[...]
> +	main_ctx = NULL;
> +	for (i = 0; builtin_ctx[i] != NULL; i++) {
> +		ctx = realloc(main_ctx, (count + i + 1) * sizeof(*ctx));
> +		if (ctx == NULL)
> +			goto err;
> +		main_ctx = ctx;
> +		main_ctx[count + i] = builtin_ctx[i];
> +	}
> +	count += i;
> +
> +	TAILQ_FOREACH(c, &commands_head, next) {
> +		for (i = 0; c->commands[i].ctx != NULL; i++) {
> +			ctx = realloc(main_ctx, (count + i + 1) * sizeof(*ctx));
> +			if (ctx == NULL)
> +				goto err;
> +			main_ctx = ctx;
> +			main_ctx[count + i] = c->commands[i].ctx;
> +		}
> +		count += i;
> +	}
> +
> +	/* cmdline expects a NULL terminated array */
> +	ctx = realloc(main_ctx, (count + 1) * sizeof(*ctx));
> +	if (ctx == NULL)
> +		goto err;
> +	main_ctx = ctx;
> +	main_ctx[count] = NULL;
> +	count += 1;

As Ferruh already said, there's a lot of realloc here.

[...]
> +# Driver specific sources include some testpmd headers.

Suggested reword:
	Driver-specific commands are located in driver directories.

> +includes = include_directories('.')
> +sources += testpmd_drivers_sources
> +deps += testpmd_drivers_deps

[...]
> --- a/app/test-pmd/testpmd.h
> +++ b/app/test-pmd/testpmd.h
> +/* For registering testpmd commands. */
> +struct testpmd_commands {
> +	TAILQ_ENTRY(testpmd_commands) next;
> +	struct {
> +		cmdline_parse_inst_t *ctx;
> +		const char *help;
> +	} commands[];
> +};
> +
> +extern void testpmd_add_commands(struct testpmd_commands *c);

Why extern?

> +#define TESTPMD_ADD_DRIVER_COMMANDS(c) \

Why not TESTPMD_ADD_COMMANDS?

> +RTE_INIT(__##c) \
> +{ \
> +	testpmd_add_commands(&c); \
> +}
[...]
> --- a/drivers/meson.build
> +++ b/drivers/meson.build
> +        if testpmd_sources.length() != 0
> +            testpmd_drivers_sources += testpmd_sources
> +            testpmd_drivers_deps += dependency_name
> +        endif

Are you sure the check is required?
What happens if adding an empty string?

[...]
> --- a/meson.build
> +++ b/meson.build
> @@ -42,6 +42,8 @@ dpdk_drivers = []
>  dpdk_extra_ldflags = []
>  dpdk_libs_disabled = []
>  dpdk_drvs_disabled = []
> +testpmd_drivers_sources = []
> +testpmd_drivers_deps = []

It's polluting a bit the global meson namespace for testpmd
but I think it's worth, I like the idea.

I hope we can merge the infrastucture patches soon.
We can postpone a bit the move of existing drivers
because some are not so obvious.
At least we should make it mandatory now for all new driver-specific commands.

Thanks



^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH 2/6] app/testpmd: register driver specific commands
  2022-05-24 17:21     ` Thomas Monjalon
@ 2022-05-24 17:44       ` David Marchand
  2022-05-24 17:51         ` Thomas Monjalon
  0 siblings, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-05-24 17:44 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: dev, Andrew Rybchenko, Ferruh Yigit, Xiaoyun Li, Aman Singh,
	Yuying Zhang, Bruce Richardson, spiked

On Tue, May 24, 2022 at 7:21 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 23/05/2022 09:10, David Marchand:
> > Introduce a testpmd API so that drivers can register specific commands.
> >
> > A driver can list some files to compile with testpmd, by setting them
> > in the testpmd_sources (driver local) meson variable.
> > drivers/meson.build then takes care of appending this to a global meson
> > variable, and adding the driver to testpmd dependency.
> >
> > Note: testpmd.h is fixed to that it is self sufficient when being
> > included.
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > ---
> [...]
> > +     main_ctx = NULL;
> > +     for (i = 0; builtin_ctx[i] != NULL; i++) {
> > +             ctx = realloc(main_ctx, (count + i + 1) * sizeof(*ctx));
> > +             if (ctx == NULL)
> > +                     goto err;
> > +             main_ctx = ctx;
> > +             main_ctx[count + i] = builtin_ctx[i];
> > +     }
> > +     count += i;
> > +
> > +     TAILQ_FOREACH(c, &commands_head, next) {
> > +             for (i = 0; c->commands[i].ctx != NULL; i++) {
> > +                     ctx = realloc(main_ctx, (count + i + 1) * sizeof(*ctx));
> > +                     if (ctx == NULL)
> > +                             goto err;
> > +                     main_ctx = ctx;
> > +                     main_ctx[count + i] = c->commands[i].ctx;
> > +             }
> > +             count += i;
> > +     }
> > +
> > +     /* cmdline expects a NULL terminated array */
> > +     ctx = realloc(main_ctx, (count + 1) * sizeof(*ctx));
> > +     if (ctx == NULL)
> > +             goto err;
> > +     main_ctx = ctx;
> > +     main_ctx[count] = NULL;
> > +     count += 1;
>
> As Ferruh already said, there's a lot of realloc here.

Yes, it will be fixed in next revision.


>
> [...]
> > +# Driver specific sources include some testpmd headers.
>
> Suggested reword:
>         Driver-specific commands are located in driver directories.

At the moment, it's only about testpmd commands.
Maybe in the future we can have other specific code in those driver sources.
That's why I preferred a generic term.


>
> > +includes = include_directories('.')
> > +sources += testpmd_drivers_sources
> > +deps += testpmd_drivers_deps
>
> [...]
> > --- a/app/test-pmd/testpmd.h
> > +++ b/app/test-pmd/testpmd.h
> > +/* For registering testpmd commands. */
> > +struct testpmd_commands {
> > +     TAILQ_ENTRY(testpmd_commands) next;
> > +     struct {
> > +             cmdline_parse_inst_t *ctx;
> > +             const char *help;
> > +     } commands[];
> > +};
> > +
> > +extern void testpmd_add_commands(struct testpmd_commands *c);
>
> Why extern?

It can probably be removed.


>
> > +#define TESTPMD_ADD_DRIVER_COMMANDS(c) \
>
> Why not TESTPMD_ADD_COMMANDS?

I forgot to align both the function and macro.
Please note though that for now, the registered commands through this
API get displayed in the "Driver specific" usage section.
So maybe the API should state it is about driver specific commands.

WDYT?


>
> > +RTE_INIT(__##c) \
> > +{ \
> > +     testpmd_add_commands(&c); \
> > +}
> [...]
> > --- a/drivers/meson.build
> > +++ b/drivers/meson.build
> > +        if testpmd_sources.length() != 0
> > +            testpmd_drivers_sources += testpmd_sources
> > +            testpmd_drivers_deps += dependency_name
> > +        endif
>
> Are you sure the check is required?
> What happens if adding an empty string?

We don't want to push a driver dependency to testpmd if there is nothing to add.


>
> [...]
> > --- a/meson.build
> > +++ b/meson.build
> > @@ -42,6 +42,8 @@ dpdk_drivers = []
> >  dpdk_extra_ldflags = []
> >  dpdk_libs_disabled = []
> >  dpdk_drvs_disabled = []
> > +testpmd_drivers_sources = []
> > +testpmd_drivers_deps = []
>
> It's polluting a bit the global meson namespace for testpmd
> but I think it's worth, I like the idea.
>
> I hope we can merge the infrastucture patches soon.
> We can postpone a bit the move of existing drivers
> because some are not so obvious.
> At least we should make it mandatory now for all new driver-specific commands.

I'm okay with the approach.
I'll prepare a new revision with only the API part, then and respin
the drivers updates later.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH 2/6] app/testpmd: register driver specific commands
  2022-05-24 17:44       ` David Marchand
@ 2022-05-24 17:51         ` Thomas Monjalon
  0 siblings, 0 replies; 65+ messages in thread
From: Thomas Monjalon @ 2022-05-24 17:51 UTC (permalink / raw)
  To: David Marchand
  Cc: dev, Andrew Rybchenko, Ferruh Yigit, Xiaoyun Li, Aman Singh,
	Yuying Zhang, Bruce Richardson, spiked

24/05/2022 19:44, David Marchand:
> On Tue, May 24, 2022 at 7:21 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> > 23/05/2022 09:10, David Marchand:
> > > +# Driver specific sources include some testpmd headers.
> >
> > Suggested reword:
> >         Driver-specific commands are located in driver directories.
> 
> At the moment, it's only about testpmd commands.
> Maybe in the future we can have other specific code in those driver sources.
> That's why I preferred a generic term.

It is a comment in the context of testpmd here.

[...]
> > > +#define TESTPMD_ADD_DRIVER_COMMANDS(c) \
> >
> > Why not TESTPMD_ADD_COMMANDS?
> 
> I forgot to align both the function and macro.
> Please note though that for now, the registered commands through this
> API get displayed in the "Driver specific" usage section.
> So maybe the API should state it is about driver specific commands.
> 
> WDYT?

You're right, it should be driver-specific commands.

> > [...]
> > > --- a/drivers/meson.build
> > > +++ b/drivers/meson.build
> > > +        if testpmd_sources.length() != 0
> > > +            testpmd_drivers_sources += testpmd_sources
> > > +            testpmd_drivers_deps += dependency_name
> > > +        endif
> >
> > Are you sure the check is required?
> > What happens if adding an empty string?
> 
> We don't want to push a driver dependency to testpmd if there is nothing to add.

Oh yes, OK.



^ permalink raw reply	[flat|nested] 65+ messages in thread

* [PATCH v2 0/2] Split driver specific commands out of testpmd
  2022-05-13  7:57 [RFC PATCH 0/4] Split driver specific commands out of testpmd David Marchand
                   ` (5 preceding siblings ...)
  2022-05-23  7:10 ` [PATCH 0/6] " David Marchand
@ 2022-05-24 20:06 ` David Marchand
  2022-05-24 20:06   ` [PATCH v2 1/2] app/testpmd: mark most cmdline symbols as static David Marchand
                     ` (2 more replies)
  6 siblings, 3 replies; 65+ messages in thread
From: David Marchand @ 2022-05-24 20:06 UTC (permalink / raw)
  To: dev; +Cc: thomas, andrew.rybchenko, ferruh.yigit

Hello,

Following TB decision [1] and recent discussions on the driver specific
commands in testpmd, here is a proposal on how the split could be done.

For now, this series simply moves the testpmd code in the driver
directory. The driver specific testpmd code is still compiled as part of
testpmd compilation via a global meson testpmd_driver_sources list.

1: https://mails.dpdk.org/archives/dev/2022-April/239191.html

-- 
David Marchand

Changes since v1:
- dropped drivers updates,
- handled comments on testpmd API,

Changes since RFC v2:
- extended cleanup patch 1,
- fixed command registration (again..),
- dropped ixgbe bypass commands,
- fixed some indent,
- updated documentation,

Changes since RFC v1:
- added a cleanup as patch 1, to make all parser symbols static,
- fixed registering issue in patch 1,
- moved more i40e specific commands, fixed checkpatch warnings,


David Marchand (2):
  app/testpmd: mark most cmdline symbols as static
  app/testpmd: register driver specific commands

 app/test-pmd/bpf_cmd.c                      |   20 +-
 app/test-pmd/cmdline.c                      | 2847 ++++++++++---------
 app/test-pmd/cmdline_flow.c                 |    8 +-
 app/test-pmd/cmdline_mtr.c                  |  219 +-
 app/test-pmd/cmdline_tm.c                   |  442 +--
 app/test-pmd/meson.build                    |    5 +
 app/test-pmd/testpmd.c                      |    4 +
 app/test-pmd/testpmd.h                      |   23 +
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |   27 +-
 drivers/meson.build                         |    5 +
 meson.build                                 |    2 +
 11 files changed, 1846 insertions(+), 1756 deletions(-)

-- 
2.36.1


^ permalink raw reply	[flat|nested] 65+ messages in thread

* [PATCH v2 1/2] app/testpmd: mark most cmdline symbols as static
  2022-05-24 20:06 ` [PATCH v2 0/2] " David Marchand
@ 2022-05-24 20:06   ` David Marchand
  2022-05-31 15:15     ` Andrew Rybchenko
  2022-05-24 20:06   ` [PATCH v2 2/2] app/testpmd: register driver specific commands David Marchand
  2022-05-31 15:18   ` [PATCH v2 0/2] Split driver specific commands out of testpmd Andrew Rybchenko
  2 siblings, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-05-24 20:06 UTC (permalink / raw)
  To: dev
  Cc: thomas, andrew.rybchenko, ferruh.yigit, Cristian Dumitrescu,
	Konstantin Ananyev, Xiaoyun Li, Aman Singh, Yuying Zhang,
	Ori Kam

All those symbols don't need to be global, plus it was hiding unused
code such as:
- cmd_set_conntrack_dir_set and cmd_set_conntrack_dir_conntrack in
  cmdline.c,
- cmd_create_port_meter_g_action, cmd_create_port_meter_r_action,
  cmd_create_port_meter_y_action in cmdline_mtr.c,

Mark those symbols as static.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@xilinx.com>
---
Changes since RFC v2:
- extended to other code units in testpmd,

---
 app/test-pmd/bpf_cmd.c      |   20 +-
 app/test-pmd/cmdline.c      | 2776 +++++++++++++++++------------------
 app/test-pmd/cmdline_flow.c |    8 +-
 app/test-pmd/cmdline_mtr.c  |  219 ++-
 app/test-pmd/cmdline_tm.c   |  442 +++---
 5 files changed, 1725 insertions(+), 1740 deletions(-)

diff --git a/app/test-pmd/bpf_cmd.c b/app/test-pmd/bpf_cmd.c
index 09c8aec0c0..648e0e9294 100644
--- a/app/test-pmd/bpf_cmd.c
+++ b/app/test-pmd/bpf_cmd.c
@@ -117,20 +117,20 @@ static void cmd_operate_bpf_ld_parsed(void *parsed_result,
 		fprintf(stderr, "invalid value: %s\n", res->dir);
 }
 
-cmdline_parse_token_string_t cmd_load_bpf_start =
+static cmdline_parse_token_string_t cmd_load_bpf_start =
 	TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
 			bpf, "bpf-load");
-cmdline_parse_token_string_t cmd_load_bpf_dir =
+static cmdline_parse_token_string_t cmd_load_bpf_dir =
 	TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
 			dir, "rx#tx");
-cmdline_parse_token_num_t cmd_load_bpf_port =
+static cmdline_parse_token_num_t cmd_load_bpf_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_bpf_ld_result, port, RTE_UINT8);
-cmdline_parse_token_num_t cmd_load_bpf_queue =
+static cmdline_parse_token_num_t cmd_load_bpf_queue =
 	TOKEN_NUM_INITIALIZER(struct cmd_bpf_ld_result, queue, RTE_UINT16);
-cmdline_parse_token_string_t cmd_load_bpf_flags =
+static cmdline_parse_token_string_t cmd_load_bpf_flags =
 	TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
 			flags, NULL);
-cmdline_parse_token_string_t cmd_load_bpf_prm =
+static cmdline_parse_token_string_t cmd_load_bpf_prm =
 	TOKEN_STRING_INITIALIZER(struct cmd_bpf_ld_result,
 			prm, NULL);
 
@@ -173,15 +173,15 @@ static void cmd_operate_bpf_unld_parsed(void *parsed_result,
 		fprintf(stderr, "invalid value: %s\n", res->dir);
 }
 
-cmdline_parse_token_string_t cmd_unload_bpf_start =
+static cmdline_parse_token_string_t cmd_unload_bpf_start =
 	TOKEN_STRING_INITIALIZER(struct cmd_bpf_unld_result,
 			bpf, "bpf-unload");
-cmdline_parse_token_string_t cmd_unload_bpf_dir =
+static cmdline_parse_token_string_t cmd_unload_bpf_dir =
 	TOKEN_STRING_INITIALIZER(struct cmd_bpf_unld_result,
 			dir, "rx#tx");
-cmdline_parse_token_num_t cmd_unload_bpf_port =
+static cmdline_parse_token_num_t cmd_unload_bpf_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_bpf_unld_result, port, RTE_UINT8);
-cmdline_parse_token_num_t cmd_unload_bpf_queue =
+static cmdline_parse_token_num_t cmd_unload_bpf_queue =
 	TOKEN_NUM_INITIALIZER(struct cmd_bpf_unld_result, queue, RTE_UINT16);
 
 cmdline_parse_inst_t cmd_operate_bpf_unld_parse = {
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 91e4090582..498fe2c2b7 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -99,10 +99,10 @@ static void cmd_help_brief_parsed(__rte_unused void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_help_brief_help =
+static cmdline_parse_token_string_t cmd_help_brief_help =
 	TOKEN_STRING_INITIALIZER(struct cmd_help_brief_result, help, "help");
 
-cmdline_parse_inst_t cmd_help_brief = {
+static cmdline_parse_inst_t cmd_help_brief = {
 	.f = cmd_help_brief_parsed,
 	.data = NULL,
 	.help_str = "help: Show help",
@@ -1179,15 +1179,15 @@ static void cmd_help_long_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_help_long_help =
+static cmdline_parse_token_string_t cmd_help_long_help =
 	TOKEN_STRING_INITIALIZER(struct cmd_help_long_result, help, "help");
 
-cmdline_parse_token_string_t cmd_help_long_section =
+static cmdline_parse_token_string_t cmd_help_long_section =
 	TOKEN_STRING_INITIALIZER(struct cmd_help_long_result, section,
 			"all#control#display#config#"
 			"ports#registers#filters#traffic_management#devices");
 
-cmdline_parse_inst_t cmd_help_long = {
+static cmdline_parse_inst_t cmd_help_long = {
 	.f = cmd_help_long_parsed,
 	.data = NULL,
 	.help_str = "help all|control|display|config|ports|register|"
@@ -1226,16 +1226,16 @@ static void cmd_operate_port_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown parameter\n");
 }
 
-cmdline_parse_token_string_t cmd_operate_port_all_cmd =
+static cmdline_parse_token_string_t cmd_operate_port_all_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_port_result, keyword,
 								"port");
-cmdline_parse_token_string_t cmd_operate_port_all_port =
+static cmdline_parse_token_string_t cmd_operate_port_all_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_port_result, name,
 						"start#stop#close#reset");
-cmdline_parse_token_string_t cmd_operate_port_all_all =
+static cmdline_parse_token_string_t cmd_operate_port_all_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_port_result, value, "all");
 
-cmdline_parse_inst_t cmd_operate_port = {
+static cmdline_parse_inst_t cmd_operate_port = {
 	.f = cmd_operate_port_parsed,
 	.data = NULL,
 	.help_str = "port start|stop|close|reset all: Start/Stop/Close/Reset all ports",
@@ -1272,17 +1272,17 @@ static void cmd_operate_specific_port_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown parameter\n");
 }
 
-cmdline_parse_token_string_t cmd_operate_specific_port_cmd =
+static cmdline_parse_token_string_t cmd_operate_specific_port_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_specific_port_result,
 							keyword, "port");
-cmdline_parse_token_string_t cmd_operate_specific_port_port =
+static cmdline_parse_token_string_t cmd_operate_specific_port_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_specific_port_result,
 						name, "start#stop#close#reset");
-cmdline_parse_token_num_t cmd_operate_specific_port_id =
+static cmdline_parse_token_num_t cmd_operate_specific_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_operate_specific_port_result,
 							value, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_operate_specific_port = {
+static cmdline_parse_inst_t cmd_operate_specific_port = {
 	.f = cmd_operate_specific_port_parsed,
 	.data = NULL,
 	.help_str = "port start|stop|close|reset <port_id>: Start/Stop/Close/Reset port_id",
@@ -1317,23 +1317,23 @@ static void cmd_set_port_setup_on_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown mode\n");
 }
 
-cmdline_parse_token_string_t cmd_set_port_setup_on_set =
+static cmdline_parse_token_string_t cmd_set_port_setup_on_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
 			set, "set");
-cmdline_parse_token_string_t cmd_set_port_setup_on_port =
+static cmdline_parse_token_string_t cmd_set_port_setup_on_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_set_port_setup_on_setup =
+static cmdline_parse_token_string_t cmd_set_port_setup_on_setup =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
 			setup, "setup");
-cmdline_parse_token_string_t cmd_set_port_setup_on_on =
+static cmdline_parse_token_string_t cmd_set_port_setup_on_on =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
 			on, "on");
-cmdline_parse_token_string_t cmd_set_port_setup_on_mode =
+static cmdline_parse_token_string_t cmd_set_port_setup_on_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_setup_on_result,
 			mode, "iterator#event");
 
-cmdline_parse_inst_t cmd_set_port_setup_on = {
+static cmdline_parse_inst_t cmd_set_port_setup_on = {
 	.f = cmd_set_port_setup_on_parsed,
 	.data = NULL,
 	.help_str = "set port setup on iterator|event",
@@ -1366,17 +1366,17 @@ static void cmd_operate_attach_port_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown parameter\n");
 }
 
-cmdline_parse_token_string_t cmd_operate_attach_port_port =
+static cmdline_parse_token_string_t cmd_operate_attach_port_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_attach_port_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_operate_attach_port_keyword =
+static cmdline_parse_token_string_t cmd_operate_attach_port_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_attach_port_result,
 			keyword, "attach");
-cmdline_parse_token_string_t cmd_operate_attach_port_identifier =
+static cmdline_parse_token_string_t cmd_operate_attach_port_identifier =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_attach_port_result,
 			identifier, TOKEN_STRING_MULTI);
 
-cmdline_parse_inst_t cmd_operate_attach_port = {
+static cmdline_parse_inst_t cmd_operate_attach_port = {
 	.f = cmd_operate_attach_port_parsed,
 	.data = NULL,
 	.help_str = "port attach <identifier>: "
@@ -1410,17 +1410,17 @@ static void cmd_operate_detach_port_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_operate_detach_port_port =
+static cmdline_parse_token_string_t cmd_operate_detach_port_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_port_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_operate_detach_port_keyword =
+static cmdline_parse_token_string_t cmd_operate_detach_port_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_port_result,
 			keyword, "detach");
-cmdline_parse_token_num_t cmd_operate_detach_port_port_id =
+static cmdline_parse_token_num_t cmd_operate_detach_port_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_operate_detach_port_result,
 			port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_operate_detach_port = {
+static cmdline_parse_inst_t cmd_operate_detach_port = {
 	.f = cmd_operate_detach_port_parsed,
 	.data = NULL,
 	.help_str = "port detach <port_id>",
@@ -1451,17 +1451,17 @@ static void cmd_operate_detach_device_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown parameter\n");
 }
 
-cmdline_parse_token_string_t cmd_operate_detach_device_device =
+static cmdline_parse_token_string_t cmd_operate_detach_device_device =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_device_result,
 			device, "device");
-cmdline_parse_token_string_t cmd_operate_detach_device_keyword =
+static cmdline_parse_token_string_t cmd_operate_detach_device_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_device_result,
 			keyword, "detach");
-cmdline_parse_token_string_t cmd_operate_detach_device_identifier =
+static cmdline_parse_token_string_t cmd_operate_detach_device_identifier =
 	TOKEN_STRING_INITIALIZER(struct cmd_operate_detach_device_result,
 			identifier, NULL);
 
-cmdline_parse_inst_t cmd_operate_detach_device = {
+static cmdline_parse_inst_t cmd_operate_detach_device = {
 	.f = cmd_operate_detach_device_parsed,
 	.data = NULL,
 	.help_str = "device detach <identifier>:"
@@ -1565,25 +1565,25 @@ cmd_config_speed_all_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_speed_all_port =
+static cmdline_parse_token_string_t cmd_config_speed_all_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, port, "port");
-cmdline_parse_token_string_t cmd_config_speed_all_keyword =
+static cmdline_parse_token_string_t cmd_config_speed_all_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, keyword,
 							"config");
-cmdline_parse_token_string_t cmd_config_speed_all_all =
+static cmdline_parse_token_string_t cmd_config_speed_all_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, all, "all");
-cmdline_parse_token_string_t cmd_config_speed_all_item1 =
+static cmdline_parse_token_string_t cmd_config_speed_all_item1 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, item1, "speed");
-cmdline_parse_token_string_t cmd_config_speed_all_value1 =
+static cmdline_parse_token_string_t cmd_config_speed_all_value1 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, value1,
 				"10#100#1000#10000#25000#40000#50000#100000#200000#auto");
-cmdline_parse_token_string_t cmd_config_speed_all_item2 =
+static cmdline_parse_token_string_t cmd_config_speed_all_item2 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, item2, "duplex");
-cmdline_parse_token_string_t cmd_config_speed_all_value2 =
+static cmdline_parse_token_string_t cmd_config_speed_all_value2 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_all, value2,
 						"half#full#auto");
 
-cmdline_parse_inst_t cmd_config_speed_all = {
+static cmdline_parse_inst_t cmd_config_speed_all = {
 	.f = cmd_config_speed_all_parsed,
 	.data = NULL,
 	.help_str = "port config all speed "
@@ -1638,28 +1638,28 @@ cmd_config_speed_specific_parsed(void *parsed_result,
 }
 
 
-cmdline_parse_token_string_t cmd_config_speed_specific_port =
+static cmdline_parse_token_string_t cmd_config_speed_specific_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, port,
 								"port");
-cmdline_parse_token_string_t cmd_config_speed_specific_keyword =
+static cmdline_parse_token_string_t cmd_config_speed_specific_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, keyword,
 								"config");
-cmdline_parse_token_num_t cmd_config_speed_specific_id =
+static cmdline_parse_token_num_t cmd_config_speed_specific_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_speed_specific, id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_speed_specific_item1 =
+static cmdline_parse_token_string_t cmd_config_speed_specific_item1 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, item1,
 								"speed");
-cmdline_parse_token_string_t cmd_config_speed_specific_value1 =
+static cmdline_parse_token_string_t cmd_config_speed_specific_value1 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, value1,
 				"10#100#1000#10000#25000#40000#50000#100000#200000#auto");
-cmdline_parse_token_string_t cmd_config_speed_specific_item2 =
+static cmdline_parse_token_string_t cmd_config_speed_specific_item2 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, item2,
 								"duplex");
-cmdline_parse_token_string_t cmd_config_speed_specific_value2 =
+static cmdline_parse_token_string_t cmd_config_speed_specific_value2 =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_speed_specific, value2,
 							"half#full#auto");
 
-cmdline_parse_inst_t cmd_config_speed_specific = {
+static cmdline_parse_inst_t cmd_config_speed_specific = {
 	.f = cmd_config_speed_specific_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> speed "
@@ -1706,20 +1706,20 @@ cmd_config_loopback_all_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_loopback_all_port =
+static cmdline_parse_token_string_t cmd_config_loopback_all_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all, port, "port");
-cmdline_parse_token_string_t cmd_config_loopback_all_keyword =
+static cmdline_parse_token_string_t cmd_config_loopback_all_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all, keyword,
 							"config");
-cmdline_parse_token_string_t cmd_config_loopback_all_all =
+static cmdline_parse_token_string_t cmd_config_loopback_all_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all, all, "all");
-cmdline_parse_token_string_t cmd_config_loopback_all_item =
+static cmdline_parse_token_string_t cmd_config_loopback_all_item =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_all, item,
 							"loopback");
-cmdline_parse_token_num_t cmd_config_loopback_all_mode =
+static cmdline_parse_token_num_t cmd_config_loopback_all_mode =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_loopback_all, mode, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_config_loopback_all = {
+static cmdline_parse_inst_t cmd_config_loopback_all = {
 	.f = cmd_config_loopback_all_parsed,
 	.data = NULL,
 	.help_str = "port config all loopback <mode>",
@@ -1763,23 +1763,23 @@ cmd_config_loopback_specific_parsed(void *parsed_result,
 }
 
 
-cmdline_parse_token_string_t cmd_config_loopback_specific_port =
+static cmdline_parse_token_string_t cmd_config_loopback_specific_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_specific, port,
 								"port");
-cmdline_parse_token_string_t cmd_config_loopback_specific_keyword =
+static cmdline_parse_token_string_t cmd_config_loopback_specific_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_specific, keyword,
 								"config");
-cmdline_parse_token_num_t cmd_config_loopback_specific_id =
+static cmdline_parse_token_num_t cmd_config_loopback_specific_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_loopback_specific, port_id,
 								RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_loopback_specific_item =
+static cmdline_parse_token_string_t cmd_config_loopback_specific_item =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_loopback_specific, item,
 								"loopback");
-cmdline_parse_token_num_t cmd_config_loopback_specific_mode =
+static cmdline_parse_token_num_t cmd_config_loopback_specific_mode =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_loopback_specific, mode,
 			      RTE_UINT32);
 
-cmdline_parse_inst_t cmd_config_loopback_specific = {
+static cmdline_parse_inst_t cmd_config_loopback_specific = {
 	.f = cmd_config_loopback_specific_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> loopback <mode>",
@@ -1852,19 +1852,19 @@ cmd_config_rx_tx_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_rx_tx_port =
+static cmdline_parse_token_string_t cmd_config_rx_tx_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, port, "port");
-cmdline_parse_token_string_t cmd_config_rx_tx_keyword =
+static cmdline_parse_token_string_t cmd_config_rx_tx_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, keyword, "config");
-cmdline_parse_token_string_t cmd_config_rx_tx_all =
+static cmdline_parse_token_string_t cmd_config_rx_tx_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, all, "all");
-cmdline_parse_token_string_t cmd_config_rx_tx_name =
+static cmdline_parse_token_string_t cmd_config_rx_tx_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_tx, name,
 						"rxq#txq#rxd#txd");
-cmdline_parse_token_num_t cmd_config_rx_tx_value =
+static cmdline_parse_token_num_t cmd_config_rx_tx_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rx_tx, value, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_config_rx_tx = {
+static cmdline_parse_inst_t cmd_config_rx_tx = {
 	.f = cmd_config_rx_tx_parsed,
 	.data = NULL,
 	.help_str = "port config all rxq|txq|rxd|txd <value>",
@@ -1932,23 +1932,23 @@ cmd_config_max_pkt_len_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_max_pkt_len_port =
+static cmdline_parse_token_string_t cmd_config_max_pkt_len_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result, port,
 								"port");
-cmdline_parse_token_string_t cmd_config_max_pkt_len_keyword =
+static cmdline_parse_token_string_t cmd_config_max_pkt_len_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result, keyword,
 								"config");
-cmdline_parse_token_string_t cmd_config_max_pkt_len_all =
+static cmdline_parse_token_string_t cmd_config_max_pkt_len_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result, all,
 								"all");
-cmdline_parse_token_string_t cmd_config_max_pkt_len_name =
+static cmdline_parse_token_string_t cmd_config_max_pkt_len_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_pkt_len_result, name,
 								"max-pkt-len");
-cmdline_parse_token_num_t cmd_config_max_pkt_len_value =
+static cmdline_parse_token_num_t cmd_config_max_pkt_len_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_max_pkt_len_result, value,
 								RTE_UINT32);
 
-cmdline_parse_inst_t cmd_config_max_pkt_len = {
+static cmdline_parse_inst_t cmd_config_max_pkt_len = {
 	.f = cmd_config_max_pkt_len_parsed,
 	.data = NULL,
 	.help_str = "port config all max-pkt-len <value>",
@@ -2004,23 +2004,23 @@ cmd_config_max_lro_pkt_size_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_port =
+static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
 				 port, "port");
-cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_keyword =
+static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
 				 keyword, "config");
-cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_all =
+static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
 				 all, "all");
-cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_name =
+static cmdline_parse_token_string_t cmd_config_max_lro_pkt_size_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
 				 name, "max-lro-pkt-size");
-cmdline_parse_token_num_t cmd_config_max_lro_pkt_size_value =
+static cmdline_parse_token_num_t cmd_config_max_lro_pkt_size_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_max_lro_pkt_size_result,
 			      value, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_config_max_lro_pkt_size = {
+static cmdline_parse_inst_t cmd_config_max_lro_pkt_size = {
 	.f = cmd_config_max_lro_pkt_size_parsed,
 	.data = NULL,
 	.help_str = "port config all max-lro-pkt-size <value>",
@@ -2053,23 +2053,23 @@ cmd_config_mtu_parsed(void *parsed_result,
 	port_mtu_set(res->port_id, res->value);
 }
 
-cmdline_parse_token_string_t cmd_config_mtu_port =
+static cmdline_parse_token_string_t cmd_config_mtu_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_mtu_result, port,
 				 "port");
-cmdline_parse_token_string_t cmd_config_mtu_keyword =
+static cmdline_parse_token_string_t cmd_config_mtu_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_mtu_result, keyword,
 				 "config");
-cmdline_parse_token_string_t cmd_config_mtu_mtu =
+static cmdline_parse_token_string_t cmd_config_mtu_mtu =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_mtu_result, keyword,
 				 "mtu");
-cmdline_parse_token_num_t cmd_config_mtu_port_id =
+static cmdline_parse_token_num_t cmd_config_mtu_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_mtu_result, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_num_t cmd_config_mtu_value =
+static cmdline_parse_token_num_t cmd_config_mtu_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_mtu_result, value,
 				 RTE_UINT16);
 
-cmdline_parse_inst_t cmd_config_mtu = {
+static cmdline_parse_inst_t cmd_config_mtu = {
 	.f = cmd_config_mtu_parsed,
 	.data = NULL,
 	.help_str = "port config mtu <port_id> <value>",
@@ -2123,21 +2123,21 @@ cmd_config_rx_mode_flag_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_rx_mode_flag_port =
+static cmdline_parse_token_string_t cmd_config_rx_mode_flag_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, port, "port");
-cmdline_parse_token_string_t cmd_config_rx_mode_flag_keyword =
+static cmdline_parse_token_string_t cmd_config_rx_mode_flag_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, keyword,
 								"config");
-cmdline_parse_token_string_t cmd_config_rx_mode_flag_all =
+static cmdline_parse_token_string_t cmd_config_rx_mode_flag_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, all, "all");
-cmdline_parse_token_string_t cmd_config_rx_mode_flag_name =
+static cmdline_parse_token_string_t cmd_config_rx_mode_flag_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, name,
 					"drop-en");
-cmdline_parse_token_string_t cmd_config_rx_mode_flag_value =
+static cmdline_parse_token_string_t cmd_config_rx_mode_flag_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, value,
 							"on#off");
 
-cmdline_parse_inst_t cmd_config_rx_mode_flag = {
+static cmdline_parse_inst_t cmd_config_rx_mode_flag = {
 	.f = cmd_config_rx_mode_flag_parsed,
 	.data = NULL,
 	.help_str = "port config all drop-en on|off",
@@ -2300,18 +2300,18 @@ cmd_config_rss_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_config_rss_port =
+static cmdline_parse_token_string_t cmd_config_rss_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, port, "port");
-cmdline_parse_token_string_t cmd_config_rss_keyword =
+static cmdline_parse_token_string_t cmd_config_rss_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, keyword, "config");
-cmdline_parse_token_string_t cmd_config_rss_all =
+static cmdline_parse_token_string_t cmd_config_rss_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, all, "all");
-cmdline_parse_token_string_t cmd_config_rss_name =
+static cmdline_parse_token_string_t cmd_config_rss_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, name, "rss");
-cmdline_parse_token_string_t cmd_config_rss_value =
+static cmdline_parse_token_string_t cmd_config_rss_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss, value, NULL);
 
-cmdline_parse_inst_t cmd_config_rss = {
+static cmdline_parse_inst_t cmd_config_rss = {
 	.f = cmd_config_rss_parsed,
 	.data = NULL,
 	.help_str = "port config all rss "
@@ -2413,18 +2413,18 @@ cmd_config_rss_hash_key_parsed(void *parsed_result,
 			hash_key_size);
 }
 
-cmdline_parse_token_string_t cmd_config_rss_hash_key_port =
+static cmdline_parse_token_string_t cmd_config_rss_hash_key_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, port, "port");
-cmdline_parse_token_string_t cmd_config_rss_hash_key_config =
+static cmdline_parse_token_string_t cmd_config_rss_hash_key_config =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, config,
 				 "config");
-cmdline_parse_token_num_t cmd_config_rss_hash_key_port_id =
+static cmdline_parse_token_num_t cmd_config_rss_hash_key_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rss_hash_key, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_hash_key =
+static cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_hash_key =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key,
 				 rss_hash_key, "rss-hash-key");
-cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_type =
+static cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, rss_type,
 				 "ipv4#ipv4-frag#ipv4-tcp#ipv4-udp#ipv4-sctp#"
 				 "ipv4-other#ipv6#ipv6-frag#ipv6-tcp#ipv6-udp#"
@@ -2433,10 +2433,10 @@ cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_type =
 				 "l3-src-only#l3-dst-only#l4-src-only#l4-dst-only#"
 				 "l2-src-only#l2-dst-only#s-vlan#c-vlan#"
 				 "l2tpv3#esp#ah#pfcp#pppoe#gtpu#ecpri#mpls#l2tpv2");
-cmdline_parse_token_string_t cmd_config_rss_hash_key_value =
+static cmdline_parse_token_string_t cmd_config_rss_hash_key_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, key, NULL);
 
-cmdline_parse_inst_t cmd_config_rss_hash_key = {
+static cmdline_parse_inst_t cmd_config_rss_hash_key = {
 	.f = cmd_config_rss_hash_key_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> rss-hash-key "
@@ -2508,26 +2508,26 @@ cmd_cleanup_txq_mbufs_parsed(void *parsed_result,
 	       port_id, queue_id, ret);
 }
 
-cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_port =
+static cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, port,
 				 "port");
-cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_cleanup =
+static cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_cleanup =
 	TOKEN_STRING_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, keyword,
 				 "cleanup");
-cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_port_id =
+static cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, port_id,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_txq =
+static cmdline_parse_token_string_t cmd_cleanup_txq_mbufs_txq =
 	TOKEN_STRING_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, name,
 				 "txq");
-cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_queue_id =
+static cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_queue_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, queue_id,
 			      RTE_UINT16);
-cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_free_cnt =
+static cmdline_parse_token_num_t cmd_cleanup_txq_mbufs_free_cnt =
 	TOKEN_NUM_INITIALIZER(struct cmd_cleanup_txq_mbufs_result, free_cnt,
 			      RTE_UINT32);
 
-cmdline_parse_inst_t cmd_cleanup_txq_mbufs = {
+static cmdline_parse_inst_t cmd_cleanup_txq_mbufs = {
 	.f = cmd_cleanup_txq_mbufs_parsed,
 	.data = NULL,
 	.help_str = "port cleanup <port_id> txq <queue_id> <free_cnt>",
@@ -2601,29 +2601,29 @@ cmd_config_rxtx_ring_size_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->portid, 0, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_rxtx_ring_size_port =
+static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
 				 port, "port");
-cmdline_parse_token_string_t cmd_config_rxtx_ring_size_config =
+static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_config =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
 				 config, "config");
-cmdline_parse_token_num_t cmd_config_rxtx_ring_size_portid =
+static cmdline_parse_token_num_t cmd_config_rxtx_ring_size_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_ring_size,
 				 portid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rxtxq =
+static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rxtxq =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
 				 rxtxq, "rxq#txq");
-cmdline_parse_token_num_t cmd_config_rxtx_ring_size_qid =
+static cmdline_parse_token_num_t cmd_config_rxtx_ring_size_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_ring_size,
 			      qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rsize =
+static cmdline_parse_token_string_t cmd_config_rxtx_ring_size_rsize =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_ring_size,
 				 rsize, "ring_size");
-cmdline_parse_token_num_t cmd_config_rxtx_ring_size_size =
+static cmdline_parse_token_num_t cmd_config_rxtx_ring_size_size =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_ring_size,
 			      size, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_config_rxtx_ring_size = {
+static cmdline_parse_inst_t cmd_config_rxtx_ring_size = {
 	.f = cmd_config_rxtx_ring_size_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> rxq|txq <queue_id> ring_size <value>",
@@ -2707,19 +2707,19 @@ cmd_config_rxtx_queue_parsed(void *parsed_result,
 		fprintf(stderr, "Function not supported in PMD\n");
 }
 
-cmdline_parse_token_string_t cmd_config_rxtx_queue_port =
+static cmdline_parse_token_string_t cmd_config_rxtx_queue_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_queue, port, "port");
-cmdline_parse_token_num_t cmd_config_rxtx_queue_portid =
+static cmdline_parse_token_num_t cmd_config_rxtx_queue_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_queue, portid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rxtx_queue_rxtxq =
+static cmdline_parse_token_string_t cmd_config_rxtx_queue_rxtxq =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_queue, rxtxq, "rxq#txq");
-cmdline_parse_token_num_t cmd_config_rxtx_queue_qid =
+static cmdline_parse_token_num_t cmd_config_rxtx_queue_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rxtx_queue, qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rxtx_queue_opname =
+static cmdline_parse_token_string_t cmd_config_rxtx_queue_opname =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rxtx_queue, opname,
 						"start#stop");
 
-cmdline_parse_inst_t cmd_config_rxtx_queue = {
+static cmdline_parse_inst_t cmd_config_rxtx_queue = {
 	.f = cmd_config_rxtx_queue_parsed,
 	.data = NULL,
 	.help_str = "port <port_id> rxq|txq <queue_id> start|stop",
@@ -2785,26 +2785,26 @@ cmd_config_deferred_start_rxtx_queue_parsed(void *parsed_result,
 		cmd_reconfig_device_queue(res->port_id, 0, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_port =
+static cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						port, "port");
-cmdline_parse_token_num_t cmd_config_deferred_start_rxtx_queue_port_id =
+static cmdline_parse_token_num_t cmd_config_deferred_start_rxtx_queue_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_rxtxq =
+static cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_rxtxq =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						rxtxq, "rxq#txq");
-cmdline_parse_token_num_t cmd_config_deferred_start_rxtx_queue_qid =
+static cmdline_parse_token_num_t cmd_config_deferred_start_rxtx_queue_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_opname =
+static cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_opname =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						opname, "deferred_start");
-cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_state =
+static cmdline_parse_token_string_t cmd_config_deferred_start_rxtx_queue_state =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_deferred_start_rxtx_queue,
 						state, "on#off");
 
-cmdline_parse_inst_t cmd_config_deferred_start_rxtx_queue = {
+static cmdline_parse_inst_t cmd_config_deferred_start_rxtx_queue = {
 	.f = cmd_config_deferred_start_rxtx_queue_parsed,
 	.data = NULL,
 	.help_str = "port <port_id> rxq|txq <queue_id> deferred_start on|off",
@@ -2829,15 +2829,15 @@ struct cmd_setup_rxtx_queue {
 };
 
 /* Common CLI fields for queue setup */
-cmdline_parse_token_string_t cmd_setup_rxtx_queue_port =
+static cmdline_parse_token_string_t cmd_setup_rxtx_queue_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_setup_rxtx_queue, port, "port");
-cmdline_parse_token_num_t cmd_setup_rxtx_queue_portid =
+static cmdline_parse_token_num_t cmd_setup_rxtx_queue_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_setup_rxtx_queue, portid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setup_rxtx_queue_rxtxq =
+static cmdline_parse_token_string_t cmd_setup_rxtx_queue_rxtxq =
 	TOKEN_STRING_INITIALIZER(struct cmd_setup_rxtx_queue, rxtxq, "rxq#txq");
-cmdline_parse_token_num_t cmd_setup_rxtx_queue_qid =
+static cmdline_parse_token_num_t cmd_setup_rxtx_queue_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_setup_rxtx_queue, qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setup_rxtx_queue_setup =
+static cmdline_parse_token_string_t cmd_setup_rxtx_queue_setup =
 	TOKEN_STRING_INITIALIZER(struct cmd_setup_rxtx_queue, setup, "setup");
 
 static void
@@ -2919,7 +2919,7 @@ cmd_setup_rxtx_queue_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_setup_rxtx_queue = {
+static cmdline_parse_inst_t cmd_setup_rxtx_queue = {
 	.f = cmd_setup_rxtx_queue_parsed,
 	.data = NULL,
 	.help_str = "port <port_id> rxq|txq <queue_idx> setup",
@@ -3047,20 +3047,20 @@ cmd_set_rss_reta_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_config_rss_reta_port =
+static cmdline_parse_token_string_t cmd_config_rss_reta_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, port, "port");
-cmdline_parse_token_string_t cmd_config_rss_reta_keyword =
+static cmdline_parse_token_string_t cmd_config_rss_reta_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, keyword, "config");
-cmdline_parse_token_num_t cmd_config_rss_reta_port_id =
+static cmdline_parse_token_num_t cmd_config_rss_reta_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_rss_reta, port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_rss_reta_name =
+static cmdline_parse_token_string_t cmd_config_rss_reta_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, name, "rss");
-cmdline_parse_token_string_t cmd_config_rss_reta_list_name =
+static cmdline_parse_token_string_t cmd_config_rss_reta_list_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, list_name, "reta");
-cmdline_parse_token_string_t cmd_config_rss_reta_list_of_items =
+static cmdline_parse_token_string_t cmd_config_rss_reta_list_of_items =
         TOKEN_STRING_INITIALIZER(struct cmd_config_rss_reta, list_of_items,
                                  NULL);
-cmdline_parse_inst_t cmd_config_rss_reta = {
+static cmdline_parse_inst_t cmd_config_rss_reta = {
 	.f = cmd_set_rss_reta_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> rss reta <hash,queue[,hash,queue]*>",
@@ -3160,23 +3160,23 @@ cmd_showport_reta_parsed(void *parsed_result,
 	port_rss_reta_info(res->port_id, reta_conf, res->size);
 }
 
-cmdline_parse_token_string_t cmd_showport_reta_show =
+static cmdline_parse_token_string_t cmd_showport_reta_show =
 	TOKEN_STRING_INITIALIZER(struct  cmd_showport_reta, show, "show");
-cmdline_parse_token_string_t cmd_showport_reta_port =
+static cmdline_parse_token_string_t cmd_showport_reta_port =
 	TOKEN_STRING_INITIALIZER(struct  cmd_showport_reta, port, "port");
-cmdline_parse_token_num_t cmd_showport_reta_port_id =
+static cmdline_parse_token_num_t cmd_showport_reta_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_reta, port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_showport_reta_rss =
+static cmdline_parse_token_string_t cmd_showport_reta_rss =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_reta, rss, "rss");
-cmdline_parse_token_string_t cmd_showport_reta_reta =
+static cmdline_parse_token_string_t cmd_showport_reta_reta =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_reta, reta, "reta");
-cmdline_parse_token_num_t cmd_showport_reta_size =
+static cmdline_parse_token_num_t cmd_showport_reta_size =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_reta, size, RTE_UINT16);
-cmdline_parse_token_string_t cmd_showport_reta_list_of_items =
+static cmdline_parse_token_string_t cmd_showport_reta_list_of_items =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_reta,
 					list_of_items, NULL);
 
-cmdline_parse_inst_t cmd_showport_reta = {
+static cmdline_parse_inst_t cmd_showport_reta = {
 	.f = cmd_showport_reta_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rss reta <size> <mask0[,mask1]*>",
@@ -3211,20 +3211,20 @@ static void cmd_showport_rss_hash_parsed(void *parsed_result,
 	port_rss_hash_conf_show(res->port_id, show_rss_key != NULL);
 }
 
-cmdline_parse_token_string_t cmd_showport_rss_hash_show =
+static cmdline_parse_token_string_t cmd_showport_rss_hash_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, show, "show");
-cmdline_parse_token_string_t cmd_showport_rss_hash_port =
+static cmdline_parse_token_string_t cmd_showport_rss_hash_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, port, "port");
-cmdline_parse_token_num_t cmd_showport_rss_hash_port_id =
+static cmdline_parse_token_num_t cmd_showport_rss_hash_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_rss_hash, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_string_t cmd_showport_rss_hash_rss_hash =
+static cmdline_parse_token_string_t cmd_showport_rss_hash_rss_hash =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, rss_hash,
 				 "rss-hash");
-cmdline_parse_token_string_t cmd_showport_rss_hash_rss_key =
+static cmdline_parse_token_string_t cmd_showport_rss_hash_rss_key =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_rss_hash, key, "key");
 
-cmdline_parse_inst_t cmd_showport_rss_hash = {
+static cmdline_parse_inst_t cmd_showport_rss_hash = {
 	.f = cmd_showport_rss_hash_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rss-hash",
@@ -3237,7 +3237,7 @@ cmdline_parse_inst_t cmd_showport_rss_hash = {
 	},
 };
 
-cmdline_parse_inst_t cmd_showport_rss_hash_key = {
+static cmdline_parse_inst_t cmd_showport_rss_hash_key = {
 	.f = cmd_showport_rss_hash_parsed,
 	.data = (void *)1,
 	.help_str = "show port <port_id> rss-hash key",
@@ -3326,26 +3326,26 @@ cmd_config_dcb_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_dcb_port =
+static cmdline_parse_token_string_t cmd_config_dcb_port =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, port, "port");
-cmdline_parse_token_string_t cmd_config_dcb_config =
+static cmdline_parse_token_string_t cmd_config_dcb_config =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, config, "config");
-cmdline_parse_token_num_t cmd_config_dcb_port_id =
+static cmdline_parse_token_num_t cmd_config_dcb_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_dcb, port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_dcb_dcb =
+static cmdline_parse_token_string_t cmd_config_dcb_dcb =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, dcb, "dcb");
-cmdline_parse_token_string_t cmd_config_dcb_vt =
+static cmdline_parse_token_string_t cmd_config_dcb_vt =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, vt, "vt");
-cmdline_parse_token_string_t cmd_config_dcb_vt_en =
+static cmdline_parse_token_string_t cmd_config_dcb_vt_en =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, vt_en, "on#off");
-cmdline_parse_token_num_t cmd_config_dcb_num_tcs =
+static cmdline_parse_token_num_t cmd_config_dcb_num_tcs =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_dcb, num_tcs, RTE_UINT8);
-cmdline_parse_token_string_t cmd_config_dcb_pfc=
+static cmdline_parse_token_string_t cmd_config_dcb_pfc =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, pfc, "pfc");
-cmdline_parse_token_string_t cmd_config_dcb_pfc_en =
+static cmdline_parse_token_string_t cmd_config_dcb_pfc_en =
         TOKEN_STRING_INITIALIZER(struct cmd_config_dcb, pfc_en, "on#off");
 
-cmdline_parse_inst_t cmd_config_dcb = {
+static cmdline_parse_inst_t cmd_config_dcb = {
 	.f = cmd_config_dcb_parsed,
 	.data = NULL,
 	.help_str = "port config <port-id> dcb vt on|off <num_tcs> pfc on|off",
@@ -3430,18 +3430,18 @@ cmd_config_burst_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_burst_port =
+static cmdline_parse_token_string_t cmd_config_burst_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, port, "port");
-cmdline_parse_token_string_t cmd_config_burst_keyword =
+static cmdline_parse_token_string_t cmd_config_burst_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, keyword, "config");
-cmdline_parse_token_string_t cmd_config_burst_all =
+static cmdline_parse_token_string_t cmd_config_burst_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, all, "all");
-cmdline_parse_token_string_t cmd_config_burst_name =
+static cmdline_parse_token_string_t cmd_config_burst_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_burst, name, "burst");
-cmdline_parse_token_num_t cmd_config_burst_value =
+static cmdline_parse_token_num_t cmd_config_burst_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_burst, value, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_config_burst = {
+static cmdline_parse_inst_t cmd_config_burst = {
 	.f = cmd_config_burst_parsed,
 	.data = NULL,
 	.help_str = "port config all burst <value>",
@@ -3498,19 +3498,19 @@ cmd_config_thresh_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_thresh_port =
+static cmdline_parse_token_string_t cmd_config_thresh_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, port, "port");
-cmdline_parse_token_string_t cmd_config_thresh_keyword =
+static cmdline_parse_token_string_t cmd_config_thresh_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, keyword, "config");
-cmdline_parse_token_string_t cmd_config_thresh_all =
+static cmdline_parse_token_string_t cmd_config_thresh_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, all, "all");
-cmdline_parse_token_string_t cmd_config_thresh_name =
+static cmdline_parse_token_string_t cmd_config_thresh_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_thresh, name,
 				"txpt#txht#txwt#rxpt#rxht#rxwt");
-cmdline_parse_token_num_t cmd_config_thresh_value =
+static cmdline_parse_token_num_t cmd_config_thresh_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_thresh, value, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_config_thresh = {
+static cmdline_parse_inst_t cmd_config_thresh = {
 	.f = cmd_config_thresh_parsed,
 	.data = NULL,
 	.help_str = "port config all txpt|txht|txwt|rxpt|rxht|rxwt <value>",
@@ -3561,20 +3561,20 @@ cmd_config_threshold_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_config_threshold_port =
+static cmdline_parse_token_string_t cmd_config_threshold_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, port, "port");
-cmdline_parse_token_string_t cmd_config_threshold_keyword =
+static cmdline_parse_token_string_t cmd_config_threshold_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, keyword,
 								"config");
-cmdline_parse_token_string_t cmd_config_threshold_all =
+static cmdline_parse_token_string_t cmd_config_threshold_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, all, "all");
-cmdline_parse_token_string_t cmd_config_threshold_name =
+static cmdline_parse_token_string_t cmd_config_threshold_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_threshold, name,
 						"txfreet#txrst#rxfreet");
-cmdline_parse_token_num_t cmd_config_threshold_value =
+static cmdline_parse_token_num_t cmd_config_threshold_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_threshold, value, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_config_threshold = {
+static cmdline_parse_inst_t cmd_config_threshold = {
 	.f = cmd_config_threshold_parsed,
 	.data = NULL,
 	.help_str = "port config all txfreet|txrst|rxfreet <value>",
@@ -3600,10 +3600,10 @@ static void cmd_stop_parsed(__rte_unused void *parsed_result,
 	stop_packet_forwarding();
 }
 
-cmdline_parse_token_string_t cmd_stop_stop =
+static cmdline_parse_token_string_t cmd_stop_stop =
 	TOKEN_STRING_INITIALIZER(struct cmd_stop_result, stop, "stop");
 
-cmdline_parse_inst_t cmd_stop = {
+static cmdline_parse_inst_t cmd_stop = {
 	.f = cmd_stop_parsed,
 	.data = NULL,
 	.help_str = "stop: Stop packet forwarding",
@@ -3724,17 +3724,17 @@ static void cmd_set_list_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_set_list_keyword =
+static cmdline_parse_token_string_t cmd_set_list_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_list_result, cmd_keyword,
 				 "set");
-cmdline_parse_token_string_t cmd_set_list_name =
+static cmdline_parse_token_string_t cmd_set_list_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_list_result, list_name,
 				 "corelist#portlist");
-cmdline_parse_token_string_t cmd_set_list_of_items =
+static cmdline_parse_token_string_t cmd_set_list_of_items =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_list_result, list_of_items,
 				 NULL);
 
-cmdline_parse_inst_t cmd_set_fwd_list = {
+static cmdline_parse_inst_t cmd_set_fwd_list = {
 	.f = cmd_set_list_parsed,
 	.data = NULL,
 	.help_str = "set corelist|portlist <list0[,list1]*>",
@@ -3773,15 +3773,15 @@ static void cmd_set_mask_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_setmask_set =
+static cmdline_parse_token_string_t cmd_setmask_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_setmask_result, set, "set");
-cmdline_parse_token_string_t cmd_setmask_mask =
+static cmdline_parse_token_string_t cmd_setmask_mask =
 	TOKEN_STRING_INITIALIZER(struct cmd_setmask_result, mask,
 				 "coremask#portmask");
-cmdline_parse_token_num_t cmd_setmask_value =
+static cmdline_parse_token_num_t cmd_setmask_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_setmask_result, hexavalue, RTE_UINT64);
 
-cmdline_parse_inst_t cmd_set_fwd_mask = {
+static cmdline_parse_inst_t cmd_set_fwd_mask = {
 	.f = cmd_set_mask_parsed,
 	.data = NULL,
 	.help_str = "set coremask|portmask <hexadecimal value>",
@@ -3819,15 +3819,15 @@ static void cmd_set_parsed(void *parsed_result,
 		set_verbose_level(res->value);
 }
 
-cmdline_parse_token_string_t cmd_set_set =
+static cmdline_parse_token_string_t cmd_set_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_result, set, "set");
-cmdline_parse_token_string_t cmd_set_what =
+static cmdline_parse_token_string_t cmd_set_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_result, what,
 				 "nbport#nbcore#burst#verbose");
-cmdline_parse_token_num_t cmd_set_value =
+static cmdline_parse_token_num_t cmd_set_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_result, value, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_set_numbers = {
+static cmdline_parse_inst_t cmd_set_numbers = {
 	.f = cmd_set_parsed,
 	.data = NULL,
 	.help_str = "set nbport|nbcore|burst|verbose <value>",
@@ -3866,16 +3866,16 @@ cmd_set_log_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_set_log_set =
+static cmdline_parse_token_string_t cmd_set_log_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_log_result, set, "set");
-cmdline_parse_token_string_t cmd_set_log_log =
+static cmdline_parse_token_string_t cmd_set_log_log =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_log_result, log, "log");
-cmdline_parse_token_string_t cmd_set_log_type =
+static cmdline_parse_token_string_t cmd_set_log_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_log_result, type, NULL);
-cmdline_parse_token_num_t cmd_set_log_level =
+static cmdline_parse_token_num_t cmd_set_log_level =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_log_result, level, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_set_log = {
+static cmdline_parse_inst_t cmd_set_log = {
 	.f = cmd_set_log_parsed,
 	.data = NULL,
 	.help_str = "set log global|<type> <level>",
@@ -3913,17 +3913,17 @@ cmd_set_rxoffs_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 0, 1);
 }
 
-cmdline_parse_token_string_t cmd_set_rxoffs_keyword =
+static cmdline_parse_token_string_t cmd_set_rxoffs_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxoffs_result,
 				 cmd_keyword, "set");
-cmdline_parse_token_string_t cmd_set_rxoffs_name =
+static cmdline_parse_token_string_t cmd_set_rxoffs_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxoffs_result,
 				 rxoffs, "rxoffs");
-cmdline_parse_token_string_t cmd_set_rxoffs_offsets =
+static cmdline_parse_token_string_t cmd_set_rxoffs_offsets =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxoffs_result,
 				 seg_offsets, NULL);
 
-cmdline_parse_inst_t cmd_set_rxoffs = {
+static cmdline_parse_inst_t cmd_set_rxoffs = {
 	.f = cmd_set_rxoffs_parsed,
 	.data = NULL,
 	.help_str = "set rxoffs <len0[,len1]*>",
@@ -3960,17 +3960,17 @@ cmd_set_rxpkts_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 0, 1);
 }
 
-cmdline_parse_token_string_t cmd_set_rxpkts_keyword =
+static cmdline_parse_token_string_t cmd_set_rxpkts_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxpkts_result,
 				 cmd_keyword, "set");
-cmdline_parse_token_string_t cmd_set_rxpkts_name =
+static cmdline_parse_token_string_t cmd_set_rxpkts_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxpkts_result,
 				 rxpkts, "rxpkts");
-cmdline_parse_token_string_t cmd_set_rxpkts_lengths =
+static cmdline_parse_token_string_t cmd_set_rxpkts_lengths =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_rxpkts_result,
 				 seg_lengths, NULL);
 
-cmdline_parse_inst_t cmd_set_rxpkts = {
+static cmdline_parse_inst_t cmd_set_rxpkts = {
 	.f = cmd_set_rxpkts_parsed,
 	.data = NULL,
 	.help_str = "set rxpkts <len0[,len1]*>",
@@ -4006,17 +4006,17 @@ cmd_set_txpkts_parsed(void *parsed_result,
 		set_tx_pkt_segments(seg_lengths, nb_segs);
 }
 
-cmdline_parse_token_string_t cmd_set_txpkts_keyword =
+static cmdline_parse_token_string_t cmd_set_txpkts_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txpkts_result,
 				 cmd_keyword, "set");
-cmdline_parse_token_string_t cmd_set_txpkts_name =
+static cmdline_parse_token_string_t cmd_set_txpkts_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txpkts_result,
 				 txpkts, "txpkts");
-cmdline_parse_token_string_t cmd_set_txpkts_lengths =
+static cmdline_parse_token_string_t cmd_set_txpkts_lengths =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txpkts_result,
 				 seg_lengths, NULL);
 
-cmdline_parse_inst_t cmd_set_txpkts = {
+static cmdline_parse_inst_t cmd_set_txpkts = {
 	.f = cmd_set_txpkts_parsed,
 	.data = NULL,
 	.help_str = "set txpkts <len0[,len1]*>",
@@ -4047,17 +4047,17 @@ cmd_set_txsplit_parsed(void *parsed_result,
 	set_tx_pkt_split(res->mode);
 }
 
-cmdline_parse_token_string_t cmd_set_txsplit_keyword =
+static cmdline_parse_token_string_t cmd_set_txsplit_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txsplit_result,
 				 cmd_keyword, "set");
-cmdline_parse_token_string_t cmd_set_txsplit_name =
+static cmdline_parse_token_string_t cmd_set_txsplit_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txsplit_result,
 				 txsplit, "txsplit");
-cmdline_parse_token_string_t cmd_set_txsplit_mode =
+static cmdline_parse_token_string_t cmd_set_txsplit_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txsplit_result,
 				 mode, NULL);
 
-cmdline_parse_inst_t cmd_set_txsplit = {
+static cmdline_parse_inst_t cmd_set_txsplit = {
 	.f = cmd_set_txsplit_parsed,
 	.data = NULL,
 	.help_str = "set txsplit on|off|rand",
@@ -4093,17 +4093,17 @@ cmd_set_txtimes_parsed(void *parsed_result,
 		set_tx_pkt_times(tx_times);
 }
 
-cmdline_parse_token_string_t cmd_set_txtimes_keyword =
+static cmdline_parse_token_string_t cmd_set_txtimes_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txtimes_result,
 				 cmd_keyword, "set");
-cmdline_parse_token_string_t cmd_set_txtimes_name =
+static cmdline_parse_token_string_t cmd_set_txtimes_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txtimes_result,
 				 txtimes, "txtimes");
-cmdline_parse_token_string_t cmd_set_txtimes_value =
+static cmdline_parse_token_string_t cmd_set_txtimes_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_txtimes_result,
 				 tx_times, NULL);
 
-cmdline_parse_inst_t cmd_set_txtimes = {
+static cmdline_parse_inst_t cmd_set_txtimes = {
 	.f = cmd_set_txtimes_parsed,
 	.data = NULL,
 	.help_str = "set txtimes <inter_burst>,<intra_burst>",
@@ -4136,20 +4136,20 @@ cmd_rx_vlan_filter_all_parsed(void *parsed_result,
 		rx_vlan_all_filter_set(res->port_id, 0);
 }
 
-cmdline_parse_token_string_t cmd_rx_vlan_filter_all_rx_vlan =
+static cmdline_parse_token_string_t cmd_rx_vlan_filter_all_rx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
 				 rx_vlan, "rx_vlan");
-cmdline_parse_token_string_t cmd_rx_vlan_filter_all_what =
+static cmdline_parse_token_string_t cmd_rx_vlan_filter_all_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
 				 what, "add#rm");
-cmdline_parse_token_string_t cmd_rx_vlan_filter_all_all =
+static cmdline_parse_token_string_t cmd_rx_vlan_filter_all_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
 				 all, "all");
-cmdline_parse_token_num_t cmd_rx_vlan_filter_all_portid =
+static cmdline_parse_token_num_t cmd_rx_vlan_filter_all_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_rx_vlan_filter_all_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_rx_vlan_filter_all = {
+static cmdline_parse_inst_t cmd_rx_vlan_filter_all = {
 	.f = cmd_rx_vlan_filter_all_parsed,
 	.data = NULL,
 	.help_str = "rx_vlan add|rm all <port_id>: "
@@ -4236,23 +4236,23 @@ cmd_vlan_offload_parsed(void *parsed_result,
 	return;
 }
 
-cmdline_parse_token_string_t cmd_vlan_offload_vlan =
+static cmdline_parse_token_string_t cmd_vlan_offload_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
 				 vlan, "vlan");
-cmdline_parse_token_string_t cmd_vlan_offload_set =
+static cmdline_parse_token_string_t cmd_vlan_offload_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
 				 set, "set");
-cmdline_parse_token_string_t cmd_vlan_offload_what =
+static cmdline_parse_token_string_t cmd_vlan_offload_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
 				what, "strip#filter#qinq_strip#extend#stripq");
-cmdline_parse_token_string_t cmd_vlan_offload_on =
+static cmdline_parse_token_string_t cmd_vlan_offload_on =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
 			      on, "on#off");
-cmdline_parse_token_string_t cmd_vlan_offload_portid =
+static cmdline_parse_token_string_t cmd_vlan_offload_portid =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_offload_result,
 			      port_id, NULL);
 
-cmdline_parse_inst_t cmd_vlan_offload = {
+static cmdline_parse_inst_t cmd_vlan_offload = {
 	.f = cmd_vlan_offload_parsed,
 	.data = NULL,
 	.help_str = "vlan set strip|filter|qinq_strip|extend|stripq on|off "
@@ -4297,26 +4297,26 @@ cmd_vlan_tpid_parsed(void *parsed_result,
 	vlan_tpid_set(res->port_id, vlan_type, res->tp_id);
 }
 
-cmdline_parse_token_string_t cmd_vlan_tpid_vlan =
+static cmdline_parse_token_string_t cmd_vlan_tpid_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
 				 vlan, "vlan");
-cmdline_parse_token_string_t cmd_vlan_tpid_set =
+static cmdline_parse_token_string_t cmd_vlan_tpid_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
 				 set, "set");
-cmdline_parse_token_string_t cmd_vlan_type =
+static cmdline_parse_token_string_t cmd_vlan_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
 				 vlan_type, "inner#outer");
-cmdline_parse_token_string_t cmd_vlan_tpid_what =
+static cmdline_parse_token_string_t cmd_vlan_tpid_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_vlan_tpid_result,
 				 what, "tpid");
-cmdline_parse_token_num_t cmd_vlan_tpid_tpid =
+static cmdline_parse_token_num_t cmd_vlan_tpid_tpid =
 	TOKEN_NUM_INITIALIZER(struct cmd_vlan_tpid_result,
 			      tp_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vlan_tpid_portid =
+static cmdline_parse_token_num_t cmd_vlan_tpid_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_vlan_tpid_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_vlan_tpid = {
+static cmdline_parse_inst_t cmd_vlan_tpid = {
 	.f = cmd_vlan_tpid_parsed,
 	.data = NULL,
 	.help_str = "vlan set inner|outer tpid <tp_id> <port_id>: "
@@ -4353,20 +4353,20 @@ cmd_rx_vlan_filter_parsed(void *parsed_result,
 		rx_vft_set(res->port_id, res->vlan_id, 0);
 }
 
-cmdline_parse_token_string_t cmd_rx_vlan_filter_rx_vlan =
+static cmdline_parse_token_string_t cmd_rx_vlan_filter_rx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_result,
 				 rx_vlan, "rx_vlan");
-cmdline_parse_token_string_t cmd_rx_vlan_filter_what =
+static cmdline_parse_token_string_t cmd_rx_vlan_filter_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_rx_vlan_filter_result,
 				 what, "add#rm");
-cmdline_parse_token_num_t cmd_rx_vlan_filter_vlanid =
+static cmdline_parse_token_num_t cmd_rx_vlan_filter_vlanid =
 	TOKEN_NUM_INITIALIZER(struct cmd_rx_vlan_filter_result,
 			      vlan_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_rx_vlan_filter_portid =
+static cmdline_parse_token_num_t cmd_rx_vlan_filter_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_rx_vlan_filter_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_rx_vlan_filter = {
+static cmdline_parse_inst_t cmd_rx_vlan_filter = {
 	.f = cmd_rx_vlan_filter_parsed,
 	.data = NULL,
 	.help_str = "rx_vlan add|rm <vlan_id> <port_id>: "
@@ -4409,20 +4409,20 @@ cmd_tx_vlan_set_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_tx_vlan_set_tx_vlan =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_tx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_result,
 				 tx_vlan, "tx_vlan");
-cmdline_parse_token_string_t cmd_tx_vlan_set_set =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_result,
 				 set, "set");
-cmdline_parse_token_num_t cmd_tx_vlan_set_portid =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tx_vlan_set_vlanid =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_vlanid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_result,
 			      vlan_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tx_vlan_set = {
+static cmdline_parse_inst_t cmd_tx_vlan_set = {
 	.f = cmd_tx_vlan_set_parsed,
 	.data = NULL,
 	.help_str = "tx_vlan set <port_id> <vlan_id>: "
@@ -4466,23 +4466,23 @@ cmd_tx_vlan_set_qinq_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_tx_vlan =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_tx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
 		tx_vlan, "tx_vlan");
-cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_set =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_qinq_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
 		set, "set");
-cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_portid =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
 		port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
 		vlan_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid_outer =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_qinq_vlanid_outer =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_qinq_result,
 		vlan_id_outer, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tx_vlan_set_qinq = {
+static cmdline_parse_inst_t cmd_tx_vlan_set_qinq = {
 	.f = cmd_tx_vlan_set_qinq_parsed,
 	.data = NULL,
 	.help_str = "tx_vlan set <port_id> <vlan_id> <outer_vlan_id>: "
@@ -4521,26 +4521,26 @@ cmd_tx_vlan_set_pvid_parsed(void *parsed_result,
 		tx_vlan_pvid_set(res->port_id, res->vlan_id, 0);
 }
 
-cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_tx_vlan =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_tx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 				 tx_vlan, "tx_vlan");
-cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_set =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 				 set, "set");
-cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_pvid =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_pvid =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 				 pvid, "pvid");
-cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_port_id =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 			     port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_vlan_id =
+static cmdline_parse_token_num_t cmd_tx_vlan_set_pvid_vlan_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 			      vlan_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_mode =
+static cmdline_parse_token_string_t cmd_tx_vlan_set_pvid_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_set_pvid_result,
 				 mode, "on#off");
 
-cmdline_parse_inst_t cmd_tx_vlan_set_pvid = {
+static cmdline_parse_inst_t cmd_tx_vlan_set_pvid = {
 	.f = cmd_tx_vlan_set_pvid_parsed,
 	.data = NULL,
 	.help_str = "tx_vlan set pvid <port_id> <vlan_id> on|off",
@@ -4582,17 +4582,17 @@ cmd_tx_vlan_reset_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_tx_vlan_reset_tx_vlan =
+static cmdline_parse_token_string_t cmd_tx_vlan_reset_tx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_reset_result,
 				 tx_vlan, "tx_vlan");
-cmdline_parse_token_string_t cmd_tx_vlan_reset_reset =
+static cmdline_parse_token_string_t cmd_tx_vlan_reset_reset =
 	TOKEN_STRING_INITIALIZER(struct cmd_tx_vlan_reset_result,
 				 reset, "reset");
-cmdline_parse_token_num_t cmd_tx_vlan_reset_portid =
+static cmdline_parse_token_num_t cmd_tx_vlan_reset_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tx_vlan_reset_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tx_vlan_reset = {
+static cmdline_parse_inst_t cmd_tx_vlan_reset = {
 	.f = cmd_tx_vlan_reset_parsed,
 	.data = NULL,
 	.help_str = "tx_vlan reset <port_id>: Disable hardware insertion of a "
@@ -4794,23 +4794,23 @@ cmd_csum_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_csum_csum =
+static cmdline_parse_token_string_t cmd_csum_csum =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
 				csum, "csum");
-cmdline_parse_token_string_t cmd_csum_mode =
+static cmdline_parse_token_string_t cmd_csum_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
 				mode, "set");
-cmdline_parse_token_string_t cmd_csum_proto =
+static cmdline_parse_token_string_t cmd_csum_proto =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
 				proto, "ip#tcp#udp#sctp#outer-ip#outer-udp");
-cmdline_parse_token_string_t cmd_csum_hwsw =
+static cmdline_parse_token_string_t cmd_csum_hwsw =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
 				hwsw, "hw#sw");
-cmdline_parse_token_num_t cmd_csum_portid =
+static cmdline_parse_token_num_t cmd_csum_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_csum_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_csum_set = {
+static cmdline_parse_inst_t cmd_csum_set = {
 	.f = cmd_csum_parsed,
 	.data = NULL,
 	.help_str = "csum set ip|tcp|udp|sctp|outer-ip|outer-udp hw|sw <port_id>: "
@@ -4826,11 +4826,11 @@ cmdline_parse_inst_t cmd_csum_set = {
 	},
 };
 
-cmdline_parse_token_string_t cmd_csum_mode_show =
+static cmdline_parse_token_string_t cmd_csum_mode_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_result,
 				mode, "show");
 
-cmdline_parse_inst_t cmd_csum_show = {
+static cmdline_parse_inst_t cmd_csum_show = {
 	.f = cmd_csum_parsed,
 	.data = NULL,
 	.help_str = "csum show <port_id>: Show checksum offload configuration",
@@ -4868,20 +4868,20 @@ cmd_csum_tunnel_parsed(void *parsed_result,
 	csum_show(res->port_id);
 }
 
-cmdline_parse_token_string_t cmd_csum_tunnel_csum =
+static cmdline_parse_token_string_t cmd_csum_tunnel_csum =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
 				csum, "csum");
-cmdline_parse_token_string_t cmd_csum_tunnel_parse =
+static cmdline_parse_token_string_t cmd_csum_tunnel_parse =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
 				parse, "parse-tunnel");
-cmdline_parse_token_string_t cmd_csum_tunnel_onoff =
+static cmdline_parse_token_string_t cmd_csum_tunnel_onoff =
 	TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
 				onoff, "on#off");
-cmdline_parse_token_num_t cmd_csum_tunnel_portid =
+static cmdline_parse_token_num_t cmd_csum_tunnel_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_csum_tunnel_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_csum_tunnel = {
+static cmdline_parse_inst_t cmd_csum_tunnel = {
 	.f = cmd_csum_tunnel_parsed,
 	.data = NULL,
 	.help_str = "csum parse-tunnel on|off <port_id>: "
@@ -4960,20 +4960,20 @@ cmd_tso_set_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_tso_set_tso =
+static cmdline_parse_token_string_t cmd_tso_set_tso =
 	TOKEN_STRING_INITIALIZER(struct cmd_tso_set_result,
 				tso, "tso");
-cmdline_parse_token_string_t cmd_tso_set_mode =
+static cmdline_parse_token_string_t cmd_tso_set_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_tso_set_result,
 				mode, "set");
-cmdline_parse_token_num_t cmd_tso_set_tso_segsz =
+static cmdline_parse_token_num_t cmd_tso_set_tso_segsz =
 	TOKEN_NUM_INITIALIZER(struct cmd_tso_set_result,
 				tso_segsz, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tso_set_portid =
+static cmdline_parse_token_num_t cmd_tso_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tso_set_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tso_set = {
+static cmdline_parse_inst_t cmd_tso_set = {
 	.f = cmd_tso_set_parsed,
 	.data = NULL,
 	.help_str = "tso set <tso_segsz> <port_id>: "
@@ -4988,12 +4988,12 @@ cmdline_parse_inst_t cmd_tso_set = {
 	},
 };
 
-cmdline_parse_token_string_t cmd_tso_show_mode =
+static cmdline_parse_token_string_t cmd_tso_show_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_tso_set_result,
 				mode, "show");
 
 
-cmdline_parse_inst_t cmd_tso_show = {
+static cmdline_parse_inst_t cmd_tso_show = {
 	.f = cmd_tso_set_parsed,
 	.data = NULL,
 	.help_str = "tso show <port_id>: "
@@ -5115,20 +5115,20 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_tunnel_tso_set_tso =
+static cmdline_parse_token_string_t cmd_tunnel_tso_set_tso =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_tso_set_result,
 				tso, "tunnel_tso");
-cmdline_parse_token_string_t cmd_tunnel_tso_set_mode =
+static cmdline_parse_token_string_t cmd_tunnel_tso_set_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_tso_set_result,
 				mode, "set");
-cmdline_parse_token_num_t cmd_tunnel_tso_set_tso_segsz =
+static cmdline_parse_token_num_t cmd_tunnel_tso_set_tso_segsz =
 	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_tso_set_result,
 				tso_segsz, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tunnel_tso_set_portid =
+static cmdline_parse_token_num_t cmd_tunnel_tso_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_tso_set_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tunnel_tso_set = {
+static cmdline_parse_inst_t cmd_tunnel_tso_set = {
 	.f = cmd_tunnel_tso_set_parsed,
 	.data = NULL,
 	.help_str = "tunnel_tso set <tso_segsz> <port_id>: "
@@ -5143,12 +5143,12 @@ cmdline_parse_inst_t cmd_tunnel_tso_set = {
 	},
 };
 
-cmdline_parse_token_string_t cmd_tunnel_tso_show_mode =
+static cmdline_parse_token_string_t cmd_tunnel_tso_show_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_tso_set_result,
 				mode, "show");
 
 
-cmdline_parse_inst_t cmd_tunnel_tso_show = {
+static cmdline_parse_inst_t cmd_tunnel_tso_show = {
 	.f = cmd_tunnel_tso_set_parsed,
 	.data = NULL,
 	.help_str = "tunnel_tso show <port_id> "
@@ -5183,23 +5183,23 @@ cmd_gro_enable_parsed(void *parsed_result,
 		setup_gro(res->cmd_onoff, res->cmd_pid);
 }
 
-cmdline_parse_token_string_t cmd_gro_enable_set =
+static cmdline_parse_token_string_t cmd_gro_enable_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
 			cmd_set, "set");
-cmdline_parse_token_string_t cmd_gro_enable_port =
+static cmdline_parse_token_string_t cmd_gro_enable_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
 			cmd_keyword, "port");
-cmdline_parse_token_num_t cmd_gro_enable_pid =
+static cmdline_parse_token_num_t cmd_gro_enable_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_gro_enable_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_gro_enable_keyword =
+static cmdline_parse_token_string_t cmd_gro_enable_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
 			cmd_keyword, "gro");
-cmdline_parse_token_string_t cmd_gro_enable_onoff =
+static cmdline_parse_token_string_t cmd_gro_enable_onoff =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_enable_result,
 			cmd_onoff, "on#off");
 
-cmdline_parse_inst_t cmd_gro_enable = {
+static cmdline_parse_inst_t cmd_gro_enable = {
 	.f = cmd_gro_enable_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> gro on|off",
@@ -5233,20 +5233,20 @@ cmd_gro_show_parsed(void *parsed_result,
 		show_gro(res->cmd_pid);
 }
 
-cmdline_parse_token_string_t cmd_gro_show_show =
+static cmdline_parse_token_string_t cmd_gro_show_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_show_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_gro_show_port =
+static cmdline_parse_token_string_t cmd_gro_show_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_show_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_gro_show_pid =
+static cmdline_parse_token_num_t cmd_gro_show_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_gro_show_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_gro_show_keyword =
+static cmdline_parse_token_string_t cmd_gro_show_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_show_result,
 			cmd_keyword, "gro");
 
-cmdline_parse_inst_t cmd_gro_show = {
+static cmdline_parse_inst_t cmd_gro_show = {
 	.f = cmd_gro_show_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> gro",
@@ -5280,20 +5280,20 @@ cmd_gro_flush_parsed(void *parsed_result,
 		setup_gro_flush_cycles(res->cmd_cycles);
 }
 
-cmdline_parse_token_string_t cmd_gro_flush_set =
+static cmdline_parse_token_string_t cmd_gro_flush_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_flush_result,
 			cmd_set, "set");
-cmdline_parse_token_string_t cmd_gro_flush_keyword =
+static cmdline_parse_token_string_t cmd_gro_flush_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_flush_result,
 			cmd_keyword, "gro");
-cmdline_parse_token_string_t cmd_gro_flush_flush =
+static cmdline_parse_token_string_t cmd_gro_flush_flush =
 	TOKEN_STRING_INITIALIZER(struct cmd_gro_flush_result,
 			cmd_flush, "flush");
-cmdline_parse_token_num_t cmd_gro_flush_cycles =
+static cmdline_parse_token_num_t cmd_gro_flush_cycles =
 	TOKEN_NUM_INITIALIZER(struct cmd_gro_flush_result,
 			cmd_cycles, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_gro_flush = {
+static cmdline_parse_inst_t cmd_gro_flush = {
 	.f = cmd_gro_flush_parsed,
 	.data = NULL,
 	.help_str = "set gro flush <cycles>",
@@ -5329,23 +5329,23 @@ cmd_gso_enable_parsed(void *parsed_result,
 		setup_gso(res->cmd_mode, res->cmd_pid);
 }
 
-cmdline_parse_token_string_t cmd_gso_enable_set =
+static cmdline_parse_token_string_t cmd_gso_enable_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
 			cmd_set, "set");
-cmdline_parse_token_string_t cmd_gso_enable_port =
+static cmdline_parse_token_string_t cmd_gso_enable_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
 			cmd_port, "port");
-cmdline_parse_token_string_t cmd_gso_enable_keyword =
+static cmdline_parse_token_string_t cmd_gso_enable_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
 			cmd_keyword, "gso");
-cmdline_parse_token_string_t cmd_gso_enable_mode =
+static cmdline_parse_token_string_t cmd_gso_enable_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_enable_result,
 			cmd_mode, "on#off");
-cmdline_parse_token_num_t cmd_gso_enable_pid =
+static cmdline_parse_token_num_t cmd_gso_enable_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_gso_enable_result,
 			cmd_pid, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_gso_enable = {
+static cmdline_parse_inst_t cmd_gso_enable = {
 	.f = cmd_gso_enable_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> gso on|off",
@@ -5391,20 +5391,20 @@ cmd_gso_size_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_gso_size_set =
+static cmdline_parse_token_string_t cmd_gso_size_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_size_result,
 				cmd_set, "set");
-cmdline_parse_token_string_t cmd_gso_size_keyword =
+static cmdline_parse_token_string_t cmd_gso_size_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_size_result,
 				cmd_keyword, "gso");
-cmdline_parse_token_string_t cmd_gso_size_segsz =
+static cmdline_parse_token_string_t cmd_gso_size_segsz =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_size_result,
 				cmd_segsz, "segsz");
-cmdline_parse_token_num_t cmd_gso_size_size =
+static cmdline_parse_token_num_t cmd_gso_size_size =
 	TOKEN_NUM_INITIALIZER(struct cmd_gso_size_result,
 				cmd_size, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_gso_size = {
+static cmdline_parse_inst_t cmd_gso_size = {
 	.f = cmd_gso_size_parsed,
 	.data = NULL,
 	.help_str = "set gso segsz <length>",
@@ -5449,20 +5449,20 @@ cmd_gso_show_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_gso_show_show =
+static cmdline_parse_token_string_t cmd_gso_show_show =
 TOKEN_STRING_INITIALIZER(struct cmd_gso_show_result,
 		cmd_show, "show");
-cmdline_parse_token_string_t cmd_gso_show_port =
+static cmdline_parse_token_string_t cmd_gso_show_port =
 TOKEN_STRING_INITIALIZER(struct cmd_gso_show_result,
 		cmd_port, "port");
-cmdline_parse_token_string_t cmd_gso_show_keyword =
+static cmdline_parse_token_string_t cmd_gso_show_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_gso_show_result,
 				cmd_keyword, "gso");
-cmdline_parse_token_num_t cmd_gso_show_pid =
+static cmdline_parse_token_num_t cmd_gso_show_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_gso_show_result,
 				cmd_pid, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_gso_show = {
+static cmdline_parse_inst_t cmd_gso_show = {
 	.f = cmd_gso_show_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> gso",
@@ -5498,18 +5498,18 @@ cmd_set_flush_rx_parsed(void *parsed_result,
 	no_flush_rx = (uint8_t)((strcmp(res->mode, "on") == 0) ? 0 : 1);
 }
 
-cmdline_parse_token_string_t cmd_setflushrx_set =
+static cmdline_parse_token_string_t cmd_setflushrx_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_flush_rx,
 			set, "set");
-cmdline_parse_token_string_t cmd_setflushrx_flush_rx =
+static cmdline_parse_token_string_t cmd_setflushrx_flush_rx =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_flush_rx,
 			flush_rx, "flush_rx");
-cmdline_parse_token_string_t cmd_setflushrx_mode =
+static cmdline_parse_token_string_t cmd_setflushrx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_flush_rx,
 			mode, "on#off");
 
 
-cmdline_parse_inst_t cmd_set_flush_rx = {
+static cmdline_parse_inst_t cmd_set_flush_rx = {
 	.f = cmd_set_flush_rx_parsed,
 	.help_str = "set flush_rx on|off: Enable/Disable flush on rx streams",
 	.data = NULL,
@@ -5537,18 +5537,18 @@ cmd_set_link_check_parsed(void *parsed_result,
 	no_link_check = (uint8_t)((strcmp(res->mode, "on") == 0) ? 0 : 1);
 }
 
-cmdline_parse_token_string_t cmd_setlinkcheck_set =
+static cmdline_parse_token_string_t cmd_setlinkcheck_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_check,
 			set, "set");
-cmdline_parse_token_string_t cmd_setlinkcheck_link_check =
+static cmdline_parse_token_string_t cmd_setlinkcheck_link_check =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_check,
 			link_check, "link_check");
-cmdline_parse_token_string_t cmd_setlinkcheck_mode =
+static cmdline_parse_token_string_t cmd_setlinkcheck_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_check,
 			mode, "on#off");
 
 
-cmdline_parse_inst_t cmd_set_link_check = {
+static cmdline_parse_inst_t cmd_set_link_check = {
 	.f = cmd_set_link_check_parsed,
 	.help_str = "set link_check on|off: Enable/Disable link status check "
 	            "when starting/stopping a port",
@@ -5597,23 +5597,23 @@ cmd_set_bypass_mode_parsed(void *parsed_result,
 			port_id);
 }
 
-cmdline_parse_token_string_t cmd_setbypass_mode_set =
+static cmdline_parse_token_string_t cmd_setbypass_mode_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
 			set, "set");
-cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
+static cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
 			bypass, "bypass");
-cmdline_parse_token_string_t cmd_setbypass_mode_mode =
+static cmdline_parse_token_string_t cmd_setbypass_mode_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
 			mode, "mode");
-cmdline_parse_token_string_t cmd_setbypass_mode_value =
+static cmdline_parse_token_string_t cmd_setbypass_mode_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
 			value, "normal#bypass#isolate");
-cmdline_parse_token_num_t cmd_setbypass_mode_port =
+static cmdline_parse_token_num_t cmd_setbypass_mode_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_mode_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_set_bypass_mode = {
+static cmdline_parse_inst_t cmd_set_bypass_mode = {
 	.f = cmd_set_bypass_mode_parsed,
 	.help_str = "set bypass mode normal|bypass|isolate <port_id>: "
 	            "Set the NIC bypass mode for port_id",
@@ -5697,29 +5697,29 @@ cmd_set_bypass_event_parsed(void *parsed_result,
 			port_id);
 }
 
-cmdline_parse_token_string_t cmd_setbypass_event_set =
+static cmdline_parse_token_string_t cmd_setbypass_event_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			set, "set");
-cmdline_parse_token_string_t cmd_setbypass_event_bypass =
+static cmdline_parse_token_string_t cmd_setbypass_event_bypass =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			bypass, "bypass");
-cmdline_parse_token_string_t cmd_setbypass_event_event =
+static cmdline_parse_token_string_t cmd_setbypass_event_event =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			event, "event");
-cmdline_parse_token_string_t cmd_setbypass_event_event_value =
+static cmdline_parse_token_string_t cmd_setbypass_event_event_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			event_value, "none#timeout#os_off#os_on#power_on#power_off");
-cmdline_parse_token_string_t cmd_setbypass_event_mode =
+static cmdline_parse_token_string_t cmd_setbypass_event_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			mode, "mode");
-cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
+static cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
 			mode_value, "normal#bypass#isolate");
-cmdline_parse_token_num_t cmd_setbypass_event_port =
+static cmdline_parse_token_num_t cmd_setbypass_event_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_event_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_set_bypass_event = {
+static cmdline_parse_inst_t cmd_set_bypass_event = {
 	.f = cmd_set_bypass_event_parsed,
 	.help_str = "set bypass event none|timeout|os_on|os_off|power_on|"
 		"power_off mode normal|bypass|isolate <port_id>: "
@@ -5773,20 +5773,20 @@ cmd_set_bypass_timeout_parsed(void *parsed_result,
 #endif
 }
 
-cmdline_parse_token_string_t cmd_setbypass_timeout_set =
+static cmdline_parse_token_string_t cmd_setbypass_timeout_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
 			set, "set");
-cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
+static cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
 			bypass, "bypass");
-cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
+static cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
 			timeout, "timeout");
-cmdline_parse_token_string_t cmd_setbypass_timeout_value =
+static cmdline_parse_token_string_t cmd_setbypass_timeout_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
 			value, "0#1.5#2#3#4#8#16#32");
 
-cmdline_parse_inst_t cmd_set_bypass_timeout = {
+static cmdline_parse_inst_t cmd_set_bypass_timeout = {
 	.f = cmd_set_bypass_timeout_parsed,
 	.help_str = "set bypass timeout 0|1.5|2|3|4|8|16|32: "
 		"Set the NIC bypass watchdog timeout in seconds",
@@ -5875,20 +5875,20 @@ cmd_show_bypass_config_parsed(void *parsed_result,
 		       port_id);
 }
 
-cmdline_parse_token_string_t cmd_showbypass_config_show =
+static cmdline_parse_token_string_t cmd_showbypass_config_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
 			show, "show");
-cmdline_parse_token_string_t cmd_showbypass_config_bypass =
+static cmdline_parse_token_string_t cmd_showbypass_config_bypass =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
 			bypass, "bypass");
-cmdline_parse_token_string_t cmd_showbypass_config_config =
+static cmdline_parse_token_string_t cmd_showbypass_config_config =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
 			config, "config");
-cmdline_parse_token_num_t cmd_showbypass_config_port =
+static cmdline_parse_token_num_t cmd_showbypass_config_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_bypass_config_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_show_bypass_config = {
+static cmdline_parse_inst_t cmd_show_bypass_config = {
 	.f = cmd_show_bypass_config_parsed,
 	.help_str = "show bypass config <port_id>: "
 	            "Show the NIC bypass config for port_id",
@@ -5938,23 +5938,23 @@ static void cmd_set_bonding_mode_parsed(void *parsed_result,
 			port_id);
 }
 
-cmdline_parse_token_string_t cmd_setbonding_mode_set =
+static cmdline_parse_token_string_t cmd_setbonding_mode_set =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
 		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
+static cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_mode_mode =
+static cmdline_parse_token_string_t cmd_setbonding_mode_mode =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
 		mode, "mode");
-cmdline_parse_token_num_t cmd_setbonding_mode_value =
+static cmdline_parse_token_num_t cmd_setbonding_mode_value =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
 		value, RTE_UINT8);
-cmdline_parse_token_num_t cmd_setbonding_mode_port =
+static cmdline_parse_token_num_t cmd_setbonding_mode_port =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
 		port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_set_bonding_mode = {
+static cmdline_parse_inst_t cmd_set_bonding_mode = {
 		.f = cmd_set_bonding_mode_parsed,
 		.help_str = "set bonding mode <mode_value> <port_id>: "
 			"Set the bonding mode for port_id",
@@ -6012,26 +6012,26 @@ static void cmd_set_bonding_lacp_dedicated_queues_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		lacp, "lacp");
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		dedicated_queues, "dedicated_queues");
-cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
+static cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
 		mode, "enable#disable");
 
-cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
+static cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
 		.f = cmd_set_bonding_lacp_dedicated_queues_parsed,
 		.help_str = "set bonding lacp dedicated_queues <port_id> "
 			"enable|disable: "
@@ -6084,23 +6084,23 @@ static void cmd_set_bonding_balance_xmit_policy_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
 		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
 		balance_xmit_policy, "balance_xmit_policy");
-cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
+static cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
 		port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
 		policy, "l2#l23#l34");
 
-cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
+static cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
 		.f = cmd_set_bonding_balance_xmit_policy_parsed,
 		.help_str = "set bonding balance_xmit_policy <port_id> "
 			"l2|l23|l34: "
@@ -6265,23 +6265,23 @@ static void cmd_show_bonding_lacp_info_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
 		show, "show");
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
 		bonding, "lacp");
-cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
 		info, "info");
-cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
+static cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
 TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
 		port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
+static cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
 		.f = cmd_show_bonding_lacp_info_parsed,
 		.help_str = "show bonding lacp info <port_id> : "
 			"Show bonding IEEE802.3 information for port_id",
@@ -6419,20 +6419,20 @@ static void cmd_show_bonding_config_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_showbonding_config_show =
+static cmdline_parse_token_string_t cmd_showbonding_config_show =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
 		show, "show");
-cmdline_parse_token_string_t cmd_showbonding_config_bonding =
+static cmdline_parse_token_string_t cmd_showbonding_config_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_showbonding_config_config =
+static cmdline_parse_token_string_t cmd_showbonding_config_config =
 TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
 		config, "config");
-cmdline_parse_token_num_t cmd_showbonding_config_port =
+static cmdline_parse_token_num_t cmd_showbonding_config_port =
 TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_config_result,
 		port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_show_bonding_config = {
+static cmdline_parse_inst_t cmd_show_bonding_config = {
 		.f = cmd_show_bonding_config_parsed,
 		.help_str = "show bonding config <port_id>: "
 			"Show the bonding config for port_id",
@@ -6472,23 +6472,23 @@ static void cmd_set_bonding_primary_parsed(void *parsed_result,
 	init_port_config();
 }
 
-cmdline_parse_token_string_t cmd_setbonding_primary_set =
+static cmdline_parse_token_string_t cmd_setbonding_primary_set =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
 		set, "set");
-cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
+static cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_setbonding_primary_primary =
+static cmdline_parse_token_string_t cmd_setbonding_primary_primary =
 TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
 		primary, "primary");
-cmdline_parse_token_num_t cmd_setbonding_primary_slave =
+static cmdline_parse_token_num_t cmd_setbonding_primary_slave =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
 		slave_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_setbonding_primary_port =
+static cmdline_parse_token_num_t cmd_setbonding_primary_port =
 TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
 		port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_set_bonding_primary = {
+static cmdline_parse_inst_t cmd_set_bonding_primary = {
 		.f = cmd_set_bonding_primary_parsed,
 		.help_str = "set bonding primary <slave_id> <port_id>: "
 			"Set the primary slave for port_id",
@@ -6531,23 +6531,23 @@ static void cmd_add_bonding_slave_parsed(void *parsed_result,
 	set_port_slave_flag(slave_port_id);
 }
 
-cmdline_parse_token_string_t cmd_addbonding_slave_add =
+static cmdline_parse_token_string_t cmd_addbonding_slave_add =
 TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
 		add, "add");
-cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
+static cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
 TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
 		bonding, "bonding");
-cmdline_parse_token_string_t cmd_addbonding_slave_slave =
+static cmdline_parse_token_string_t cmd_addbonding_slave_slave =
 TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
 		slave, "slave");
-cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
+static cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
 TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
 		slave_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_addbonding_slave_port =
+static cmdline_parse_token_num_t cmd_addbonding_slave_port =
 TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
 		port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_add_bonding_slave = {
+static cmdline_parse_inst_t cmd_add_bonding_slave = {
 		.f = cmd_add_bonding_slave_parsed,
 		.help_str = "add bonding slave <slave_id> <port_id>: "
 			"Add a slave device to a bonded device",
@@ -6590,23 +6590,23 @@ static void cmd_remove_bonding_slave_parsed(void *parsed_result,
 	clear_port_slave_flag(slave_port_id);
 }
 
-cmdline_parse_token_string_t cmd_removebonding_slave_remove =
+static cmdline_parse_token_string_t cmd_removebonding_slave_remove =
 		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
 				remove, "remove");
-cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
+static cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
 		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
 				bonding, "bonding");
-cmdline_parse_token_string_t cmd_removebonding_slave_slave =
+static cmdline_parse_token_string_t cmd_removebonding_slave_slave =
 		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
 				slave, "slave");
-cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
+static cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
 		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
 				slave_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_removebonding_slave_port =
+static cmdline_parse_token_num_t cmd_removebonding_slave_port =
 		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_remove_bonding_slave = {
+static cmdline_parse_inst_t cmd_remove_bonding_slave = {
 		.f = cmd_remove_bonding_slave_parsed,
 		.help_str = "remove bonding slave <slave_id> <port_id>: "
 			"Remove a slave device from a bonded device",
@@ -6673,23 +6673,23 @@ static void cmd_create_bonded_device_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_createbonded_device_create =
+static cmdline_parse_token_string_t cmd_createbonded_device_create =
 		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
 				create, "create");
-cmdline_parse_token_string_t cmd_createbonded_device_bonded =
+static cmdline_parse_token_string_t cmd_createbonded_device_bonded =
 		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
 				bonded, "bonded");
-cmdline_parse_token_string_t cmd_createbonded_device_device =
+static cmdline_parse_token_string_t cmd_createbonded_device_device =
 		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
 				device, "device");
-cmdline_parse_token_num_t cmd_createbonded_device_mode =
+static cmdline_parse_token_num_t cmd_createbonded_device_mode =
 		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
 				mode, RTE_UINT8);
-cmdline_parse_token_num_t cmd_createbonded_device_socket =
+static cmdline_parse_token_num_t cmd_createbonded_device_socket =
 		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
 				socket, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_create_bonded_device = {
+static cmdline_parse_inst_t cmd_create_bonded_device = {
 		.f = cmd_create_bonded_device_parsed,
 		.help_str = "create bonded device <mode> <socket>: "
 			"Create a new bonded device with specific bonding mode and socket",
@@ -6731,21 +6731,21 @@ static void cmd_set_bond_mac_addr_parsed(void *parsed_result,
 			strerror(-ret));
 }
 
-cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, set, "set");
-cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, bonding,
 				"bonding");
-cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, mac_addr,
 				"mac_addr");
-cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
+static cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
 		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mac_addr_result,
 				port_num, RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
+static cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
 		TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_bond_mac_addr_result, address);
 
-cmdline_parse_inst_t cmd_set_bond_mac_addr = {
+static cmdline_parse_inst_t cmd_set_bond_mac_addr = {
 		.f = cmd_set_bond_mac_addr_parsed,
 		.data = (void *) 0,
 		.help_str = "set bonding mac_addr <port_id> <mac_addr>",
@@ -6784,23 +6784,23 @@ static void cmd_set_bond_mon_period_parsed(void *parsed_result,
 			strerror(-ret));
 }
 
-cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
 				bonding, "bonding");
-cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
 		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
 				mon_period,	"mon_period");
-cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
+static cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
 		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
 				port_num, RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
+static cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
 		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
 				period_ms, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_set_bond_mon_period = {
+static cmdline_parse_inst_t cmd_set_bond_mon_period = {
 		.f = cmd_set_bond_mon_period_parsed,
 		.data = (void *) 0,
 		.help_str = "set bonding mon_period <port_id> <period_ms>",
@@ -6844,27 +6844,27 @@ cmd_set_bonding_agg_mode(void *parsed_result,
 }
 
 
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
 				bonding, "bonding");
 
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
 				agg_mode, "agg_mode");
 
-cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
+static cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
 				port_num, RTE_UINT16);
 
-cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
 	TOKEN_STRING_INITIALIZER(
 			struct cmd_set_bonding_balance_xmit_policy_result,
 		policy, "stable#bandwidth#count");
 
-cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
+static cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
 	.f = cmd_set_bonding_agg_mode,
 	.data = (void *) 0,
 	.help_str = "set bonding mode IEEE802.3AD aggregator policy <port_id> <agg_name>",
@@ -6898,15 +6898,15 @@ static void cmd_set_fwd_mode_parsed(void *parsed_result,
 	set_pkt_forwarding_mode(res->mode);
 }
 
-cmdline_parse_token_string_t cmd_setfwd_set =
+static cmdline_parse_token_string_t cmd_setfwd_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_mode_result, set, "set");
-cmdline_parse_token_string_t cmd_setfwd_fwd =
+static cmdline_parse_token_string_t cmd_setfwd_fwd =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_mode_result, fwd, "fwd");
-cmdline_parse_token_string_t cmd_setfwd_mode =
+static cmdline_parse_token_string_t cmd_setfwd_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_mode_result, mode,
 		"" /* defined at init */);
 
-cmdline_parse_inst_t cmd_set_fwd_mode = {
+static cmdline_parse_inst_t cmd_set_fwd_mode = {
 	.f = cmd_set_fwd_mode_parsed,
 	.data = NULL,
 	.help_str = NULL, /* defined at init */
@@ -6958,21 +6958,21 @@ static void cmd_set_fwd_retry_mode_parsed(void *parsed_result,
 	set_pkt_forwarding_mode(res->mode);
 }
 
-cmdline_parse_token_string_t cmd_setfwd_retry_set =
+static cmdline_parse_token_string_t cmd_setfwd_retry_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
 			set, "set");
-cmdline_parse_token_string_t cmd_setfwd_retry_fwd =
+static cmdline_parse_token_string_t cmd_setfwd_retry_fwd =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
 			fwd, "fwd");
-cmdline_parse_token_string_t cmd_setfwd_retry_mode =
+static cmdline_parse_token_string_t cmd_setfwd_retry_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
 			mode,
 		"" /* defined at init */);
-cmdline_parse_token_string_t cmd_setfwd_retry_retry =
+static cmdline_parse_token_string_t cmd_setfwd_retry_retry =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_fwd_retry_mode_result,
 			retry, "retry");
 
-cmdline_parse_inst_t cmd_set_fwd_retry_mode = {
+static cmdline_parse_inst_t cmd_set_fwd_retry_mode = {
 	.f = cmd_set_fwd_retry_mode_parsed,
 	.data = NULL,
 	.help_str = NULL, /* defined at init */
@@ -7035,25 +7035,25 @@ static void cmd_set_burst_tx_retry_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_set_burst_tx_retry_set =
+static cmdline_parse_token_string_t cmd_set_burst_tx_retry_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, set, "set");
-cmdline_parse_token_string_t cmd_set_burst_tx_retry_burst =
+static cmdline_parse_token_string_t cmd_set_burst_tx_retry_burst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, burst,
 				 "burst");
-cmdline_parse_token_string_t cmd_set_burst_tx_retry_tx =
+static cmdline_parse_token_string_t cmd_set_burst_tx_retry_tx =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, tx, "tx");
-cmdline_parse_token_string_t cmd_set_burst_tx_retry_delay =
+static cmdline_parse_token_string_t cmd_set_burst_tx_retry_delay =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, delay, "delay");
-cmdline_parse_token_num_t cmd_set_burst_tx_retry_time =
+static cmdline_parse_token_num_t cmd_set_burst_tx_retry_time =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_burst_tx_retry_result, time,
 				 RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_burst_tx_retry_retry =
+static cmdline_parse_token_string_t cmd_set_burst_tx_retry_retry =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_burst_tx_retry_result, retry, "retry");
-cmdline_parse_token_num_t cmd_set_burst_tx_retry_retry_num =
+static cmdline_parse_token_num_t cmd_set_burst_tx_retry_retry_num =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_burst_tx_retry_result, retry_num,
 				 RTE_UINT32);
 
-cmdline_parse_inst_t cmd_set_burst_tx_retry = {
+static cmdline_parse_inst_t cmd_set_burst_tx_retry = {
 	.f = cmd_set_burst_tx_retry_parsed,
 	.help_str = "set burst tx delay <delay_usec> retry <num_retry>",
 	.tokens = {
@@ -7099,22 +7099,22 @@ static void cmd_set_promisc_mode_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_setpromisc_set =
+static cmdline_parse_token_string_t cmd_setpromisc_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result, set, "set");
-cmdline_parse_token_string_t cmd_setpromisc_promisc =
+static cmdline_parse_token_string_t cmd_setpromisc_promisc =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result, promisc,
 				 "promisc");
-cmdline_parse_token_string_t cmd_setpromisc_portall =
+static cmdline_parse_token_string_t cmd_setpromisc_portall =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result, port_all,
 				 "all");
-cmdline_parse_token_num_t cmd_setpromisc_portnum =
+static cmdline_parse_token_num_t cmd_setpromisc_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_promisc_mode_result, port_num,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_setpromisc_mode =
+static cmdline_parse_token_string_t cmd_setpromisc_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_promisc_mode_result, mode,
 				 "on#off");
 
-cmdline_parse_inst_t cmd_set_promisc_mode_all = {
+static cmdline_parse_inst_t cmd_set_promisc_mode_all = {
 	.f = cmd_set_promisc_mode_parsed,
 	.data = (void *)1,
 	.help_str = "set promisc all on|off: Set promisc mode for all ports",
@@ -7127,7 +7127,7 @@ cmdline_parse_inst_t cmd_set_promisc_mode_all = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_promisc_mode_one = {
+static cmdline_parse_inst_t cmd_set_promisc_mode_one = {
 	.f = cmd_set_promisc_mode_parsed,
 	.data = (void *)0,
 	.help_str = "set promisc <port_id> on|off: Set promisc mode on port_id",
@@ -7173,22 +7173,22 @@ static void cmd_set_allmulti_mode_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_setallmulti_set =
+static cmdline_parse_token_string_t cmd_setallmulti_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result, set, "set");
-cmdline_parse_token_string_t cmd_setallmulti_allmulti =
+static cmdline_parse_token_string_t cmd_setallmulti_allmulti =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result, allmulti,
 				 "allmulti");
-cmdline_parse_token_string_t cmd_setallmulti_portall =
+static cmdline_parse_token_string_t cmd_setallmulti_portall =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result, port_all,
 				 "all");
-cmdline_parse_token_num_t cmd_setallmulti_portnum =
+static cmdline_parse_token_num_t cmd_setallmulti_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_allmulti_mode_result, port_num,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_setallmulti_mode =
+static cmdline_parse_token_string_t cmd_setallmulti_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_allmulti_mode_result, mode,
 				 "on#off");
 
-cmdline_parse_inst_t cmd_set_allmulti_mode_all = {
+static cmdline_parse_inst_t cmd_set_allmulti_mode_all = {
 	.f = cmd_set_allmulti_mode_parsed,
 	.data = (void *)1,
 	.help_str = "set allmulti all on|off: Set allmulti mode for all ports",
@@ -7201,7 +7201,7 @@ cmdline_parse_inst_t cmd_set_allmulti_mode_all = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_allmulti_mode_one = {
+static cmdline_parse_inst_t cmd_set_allmulti_mode_one = {
 	.f = cmd_set_allmulti_mode_parsed,
 	.data = (void *)0,
 	.help_str = "set allmulti <port_id> on|off: "
@@ -7223,16 +7223,16 @@ struct cmd_link_flow_ctrl_show {
 	cmdline_fixed_string_t flow_ctrl;
 };
 
-cmdline_parse_token_string_t cmd_lfc_show_show =
+static cmdline_parse_token_string_t cmd_lfc_show_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_show,
 				show, "show");
-cmdline_parse_token_string_t cmd_lfc_show_port =
+static cmdline_parse_token_string_t cmd_lfc_show_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_show,
 				port, "port");
-cmdline_parse_token_num_t cmd_lfc_show_portid =
+static cmdline_parse_token_num_t cmd_lfc_show_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_show,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_lfc_show_flow_ctrl =
+static cmdline_parse_token_string_t cmd_lfc_show_flow_ctrl =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_show,
 				flow_ctrl, "flow_ctrl");
 
@@ -7277,7 +7277,7 @@ cmd_link_flow_ctrl_show_parsed(void *parsed_result,
 		info_border, info_border);
 }
 
-cmdline_parse_inst_t cmd_link_flow_control_show = {
+static cmdline_parse_inst_t cmd_link_flow_control_show = {
 	.f = cmd_link_flow_ctrl_show_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> flow_ctrl",
@@ -7313,61 +7313,61 @@ struct cmd_link_flow_ctrl_set_result {
 	portid_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_lfc_set_set =
+static cmdline_parse_token_string_t cmd_lfc_set_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_lfc_set_flow_ctrl =
+static cmdline_parse_token_string_t cmd_lfc_set_flow_ctrl =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				flow_ctrl, "flow_ctrl");
-cmdline_parse_token_string_t cmd_lfc_set_rx =
+static cmdline_parse_token_string_t cmd_lfc_set_rx =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				rx, "rx");
-cmdline_parse_token_string_t cmd_lfc_set_rx_mode =
+static cmdline_parse_token_string_t cmd_lfc_set_rx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				rx_lfc_mode, "on#off");
-cmdline_parse_token_string_t cmd_lfc_set_tx =
+static cmdline_parse_token_string_t cmd_lfc_set_tx =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				tx, "tx");
-cmdline_parse_token_string_t cmd_lfc_set_tx_mode =
+static cmdline_parse_token_string_t cmd_lfc_set_tx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				tx_lfc_mode, "on#off");
-cmdline_parse_token_string_t cmd_lfc_set_high_water_str =
+static cmdline_parse_token_string_t cmd_lfc_set_high_water_str =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				hw_str, "high_water");
-cmdline_parse_token_num_t cmd_lfc_set_high_water =
+static cmdline_parse_token_num_t cmd_lfc_set_high_water =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				high_water, RTE_UINT32);
-cmdline_parse_token_string_t cmd_lfc_set_low_water_str =
+static cmdline_parse_token_string_t cmd_lfc_set_low_water_str =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				lw_str, "low_water");
-cmdline_parse_token_num_t cmd_lfc_set_low_water =
+static cmdline_parse_token_num_t cmd_lfc_set_low_water =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				low_water, RTE_UINT32);
-cmdline_parse_token_string_t cmd_lfc_set_pause_time_str =
+static cmdline_parse_token_string_t cmd_lfc_set_pause_time_str =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				pt_str, "pause_time");
-cmdline_parse_token_num_t cmd_lfc_set_pause_time =
+static cmdline_parse_token_num_t cmd_lfc_set_pause_time =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				pause_time, RTE_UINT16);
-cmdline_parse_token_string_t cmd_lfc_set_send_xon_str =
+static cmdline_parse_token_string_t cmd_lfc_set_send_xon_str =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				xon_str, "send_xon");
-cmdline_parse_token_num_t cmd_lfc_set_send_xon =
+static cmdline_parse_token_num_t cmd_lfc_set_send_xon =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				send_xon, RTE_UINT16);
-cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd_mode =
+static cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				mac_ctrl_frame_fwd, "mac_ctrl_frame_fwd");
-cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd =
+static cmdline_parse_token_string_t cmd_lfc_set_mac_ctrl_frame_fwd =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				mac_ctrl_frame_fwd_mode, "on#off");
-cmdline_parse_token_string_t cmd_lfc_set_autoneg_str =
+static cmdline_parse_token_string_t cmd_lfc_set_autoneg_str =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				autoneg_str, "autoneg");
-cmdline_parse_token_string_t cmd_lfc_set_autoneg =
+static cmdline_parse_token_string_t cmd_lfc_set_autoneg =
 	TOKEN_STRING_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				autoneg, "on#off");
-cmdline_parse_token_num_t cmd_lfc_set_portid =
+static cmdline_parse_token_num_t cmd_lfc_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_link_flow_ctrl_set_result,
 				port_id, RTE_UINT16);
 
@@ -7376,7 +7376,7 @@ static void
 cmd_link_flow_ctrl_set_parsed(void *parsed_result, struct cmdline *cl,
 			      void *data);
 
-cmdline_parse_inst_t cmd_link_flow_control_set = {
+static cmdline_parse_inst_t cmd_link_flow_control_set = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = NULL,
 	.help_str = "set flow_ctrl rx on|off tx on|off <high_water> "
@@ -7402,7 +7402,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_rx = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_rx = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_rx,
 	.help_str = "set flow_ctrl rx on|off <port_id>: "
@@ -7417,7 +7417,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_rx = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_tx = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_tx = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_tx,
 	.help_str = "set flow_ctrl tx on|off <port_id>: "
@@ -7432,7 +7432,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_tx = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_hw = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_hw = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_hw,
 	.help_str = "set flow_ctrl high_water <value> <port_id>: "
@@ -7447,7 +7447,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_hw = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_lw = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_lw = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_lw,
 	.help_str = "set flow_ctrl low_water <value> <port_id>: "
@@ -7462,7 +7462,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_lw = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_pt = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_pt = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_pt,
 	.help_str = "set flow_ctrl pause_time <value> <port_id>: "
@@ -7477,7 +7477,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_pt = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_xon = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_xon = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_xon,
 	.help_str = "set flow_ctrl send_xon <value> <port_id>: "
@@ -7492,7 +7492,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_xon = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_macfwd = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_macfwd = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_macfwd,
 	.help_str = "set flow_ctrl mac_ctrl_frame_fwd on|off <port_id>: "
@@ -7507,7 +7507,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_macfwd = {
 	},
 };
 
-cmdline_parse_inst_t cmd_link_flow_control_set_autoneg = {
+static cmdline_parse_inst_t cmd_link_flow_control_set_autoneg = {
 	.f = cmd_link_flow_ctrl_set_parsed,
 	.data = (void *)&cmd_link_flow_control_set_autoneg,
 	.help_str = "set flow_ctrl autoneg on|off <port_id>: "
@@ -7650,41 +7650,41 @@ cmd_priority_flow_ctrl_set_parsed(void *parsed_result,
 			ret);
 }
 
-cmdline_parse_token_string_t cmd_pfc_set_set =
+static cmdline_parse_token_string_t cmd_pfc_set_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_pfc_set_flow_ctrl =
+static cmdline_parse_token_string_t cmd_pfc_set_flow_ctrl =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				pfc_ctrl, "pfc_ctrl");
-cmdline_parse_token_string_t cmd_pfc_set_rx =
+static cmdline_parse_token_string_t cmd_pfc_set_rx =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				rx, "rx");
-cmdline_parse_token_string_t cmd_pfc_set_rx_mode =
+static cmdline_parse_token_string_t cmd_pfc_set_rx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				rx_pfc_mode, "on#off");
-cmdline_parse_token_string_t cmd_pfc_set_tx =
+static cmdline_parse_token_string_t cmd_pfc_set_tx =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				tx, "tx");
-cmdline_parse_token_string_t cmd_pfc_set_tx_mode =
+static cmdline_parse_token_string_t cmd_pfc_set_tx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				tx_pfc_mode, "on#off");
-cmdline_parse_token_num_t cmd_pfc_set_high_water =
+static cmdline_parse_token_num_t cmd_pfc_set_high_water =
 	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				high_water, RTE_UINT32);
-cmdline_parse_token_num_t cmd_pfc_set_low_water =
+static cmdline_parse_token_num_t cmd_pfc_set_low_water =
 	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				low_water, RTE_UINT32);
-cmdline_parse_token_num_t cmd_pfc_set_pause_time =
+static cmdline_parse_token_num_t cmd_pfc_set_pause_time =
 	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				pause_time, RTE_UINT16);
-cmdline_parse_token_num_t cmd_pfc_set_priority =
+static cmdline_parse_token_num_t cmd_pfc_set_priority =
 	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				priority, RTE_UINT8);
-cmdline_parse_token_num_t cmd_pfc_set_portid =
+static cmdline_parse_token_num_t cmd_pfc_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_priority_flow_ctrl_set_result,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_priority_flow_control_set = {
+static cmdline_parse_inst_t cmd_priority_flow_control_set = {
 	.f = cmd_priority_flow_ctrl_set_parsed,
 	.data = NULL,
 	.help_str = "set pfc_ctrl rx on|off tx on|off <high_water> <low_water> "
@@ -7762,44 +7762,44 @@ cmd_queue_priority_flow_ctrl_set_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_q_pfc_set_set =
+static cmdline_parse_token_string_t cmd_q_pfc_set_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_q_pfc_set_flow_ctrl =
+static cmdline_parse_token_string_t cmd_q_pfc_set_flow_ctrl =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				pfc_queue_ctrl, "pfc_queue_ctrl");
-cmdline_parse_token_num_t cmd_q_pfc_set_portid =
+static cmdline_parse_token_num_t cmd_q_pfc_set_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_q_pfc_set_rx =
+static cmdline_parse_token_string_t cmd_q_pfc_set_rx =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				rx, "rx");
-cmdline_parse_token_string_t cmd_q_pfc_set_rx_mode =
+static cmdline_parse_token_string_t cmd_q_pfc_set_rx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				rx_pfc_mode, "on#off");
-cmdline_parse_token_num_t cmd_q_pfc_set_tx_qid =
+static cmdline_parse_token_num_t cmd_q_pfc_set_tx_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				tx_qid, RTE_UINT16);
-cmdline_parse_token_num_t cmd_q_pfc_set_tx_tc =
+static cmdline_parse_token_num_t cmd_q_pfc_set_tx_tc =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				tx_tc, RTE_UINT8);
-cmdline_parse_token_string_t cmd_q_pfc_set_tx =
+static cmdline_parse_token_string_t cmd_q_pfc_set_tx =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				tx, "tx");
-cmdline_parse_token_string_t cmd_q_pfc_set_tx_mode =
+static cmdline_parse_token_string_t cmd_q_pfc_set_tx_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				tx_pfc_mode, "on#off");
-cmdline_parse_token_num_t cmd_q_pfc_set_rx_qid =
+static cmdline_parse_token_num_t cmd_q_pfc_set_rx_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				rx_qid, RTE_UINT16);
-cmdline_parse_token_num_t cmd_q_pfc_set_rx_tc =
+static cmdline_parse_token_num_t cmd_q_pfc_set_rx_tc =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				rx_tc, RTE_UINT8);
-cmdline_parse_token_num_t cmd_q_pfc_set_pause_time =
+static cmdline_parse_token_num_t cmd_q_pfc_set_pause_time =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_priority_flow_ctrl_set_result,
 				pause_time, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_queue_priority_flow_control_set = {
+static cmdline_parse_inst_t cmd_queue_priority_flow_control_set = {
 	.f = cmd_queue_priority_flow_ctrl_set_parsed,
 	.data = NULL,
 	.help_str = "set pfc_queue_ctrl <port_id> rx <on|off> <tx_qid> <tx_tc> "
@@ -7836,13 +7836,13 @@ static void cmd_reset_parsed(__rte_unused void *parsed_result,
 	set_def_fwd_config();
 }
 
-cmdline_parse_token_string_t cmd_reset_set =
+static cmdline_parse_token_string_t cmd_reset_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_reset_result, reset, "set");
-cmdline_parse_token_string_t cmd_reset_def =
+static cmdline_parse_token_string_t cmd_reset_def =
 	TOKEN_STRING_INITIALIZER(struct cmd_reset_result, def,
 				 "default");
 
-cmdline_parse_inst_t cmd_reset = {
+static cmdline_parse_inst_t cmd_reset = {
 	.f = cmd_reset_parsed,
 	.data = NULL,
 	.help_str = "set default: Reset default forwarding configuration",
@@ -7858,7 +7858,7 @@ struct cmd_start_result {
 	cmdline_fixed_string_t start;
 };
 
-cmdline_parse_token_string_t cmd_start_start =
+static cmdline_parse_token_string_t cmd_start_start =
 	TOKEN_STRING_INITIALIZER(struct cmd_start_result, start, "start");
 
 static void cmd_start_parsed(__rte_unused void *parsed_result,
@@ -7868,7 +7868,7 @@ static void cmd_start_parsed(__rte_unused void *parsed_result,
 	start_packet_forwarding(0);
 }
 
-cmdline_parse_inst_t cmd_start = {
+static cmdline_parse_inst_t cmd_start = {
 	.f = cmd_start_parsed,
 	.data = NULL,
 	.help_str = "start: Start packet forwarding",
@@ -7892,14 +7892,14 @@ cmd_start_tx_first_parsed(__rte_unused void *parsed_result,
 	start_packet_forwarding(1);
 }
 
-cmdline_parse_token_string_t cmd_start_tx_first_start =
+static cmdline_parse_token_string_t cmd_start_tx_first_start =
 	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_result, start,
 				 "start");
-cmdline_parse_token_string_t cmd_start_tx_first_tx_first =
+static cmdline_parse_token_string_t cmd_start_tx_first_tx_first =
 	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_result,
 				 tx_first, "tx_first");
 
-cmdline_parse_inst_t cmd_start_tx_first = {
+static cmdline_parse_inst_t cmd_start_tx_first = {
 	.f = cmd_start_tx_first_parsed,
 	.data = NULL,
 	.help_str = "start tx_first: Start packet forwarding, "
@@ -7928,17 +7928,17 @@ cmd_start_tx_first_n_parsed(void *parsed_result,
 	start_packet_forwarding(res->tx_num);
 }
 
-cmdline_parse_token_string_t cmd_start_tx_first_n_start =
+static cmdline_parse_token_string_t cmd_start_tx_first_n_start =
 	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_n_result,
 			start, "start");
-cmdline_parse_token_string_t cmd_start_tx_first_n_tx_first =
+static cmdline_parse_token_string_t cmd_start_tx_first_n_tx_first =
 	TOKEN_STRING_INITIALIZER(struct cmd_start_tx_first_n_result,
 			tx_first, "tx_first");
-cmdline_parse_token_num_t cmd_start_tx_first_n_tx_num =
+static cmdline_parse_token_num_t cmd_start_tx_first_n_tx_num =
 	TOKEN_NUM_INITIALIZER(struct cmd_start_tx_first_n_result,
 			tx_num, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_start_tx_first_n = {
+static cmdline_parse_inst_t cmd_start_tx_first_n = {
 	.f = cmd_start_tx_first_n_parsed,
 	.data = NULL,
 	.help_str = "start tx_first <num>: "
@@ -7959,14 +7959,14 @@ struct cmd_set_link_up_result {
 	portid_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_set_link_up_set =
+static cmdline_parse_token_string_t cmd_set_link_up_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_up_result, set, "set");
-cmdline_parse_token_string_t cmd_set_link_up_link_up =
+static cmdline_parse_token_string_t cmd_set_link_up_link_up =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_up_result, link_up,
 				"link-up");
-cmdline_parse_token_string_t cmd_set_link_up_port =
+static cmdline_parse_token_string_t cmd_set_link_up_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_up_result, port, "port");
-cmdline_parse_token_num_t cmd_set_link_up_port_id =
+static cmdline_parse_token_num_t cmd_set_link_up_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_link_up_result, port_id,
 				RTE_UINT16);
 
@@ -7978,7 +7978,7 @@ static void cmd_set_link_up_parsed(__rte_unused void *parsed_result,
 	dev_set_link_up(res->port_id);
 }
 
-cmdline_parse_inst_t cmd_set_link_up = {
+static cmdline_parse_inst_t cmd_set_link_up = {
 	.f = cmd_set_link_up_parsed,
 	.data = NULL,
 	.help_str = "set link-up port <port id>",
@@ -7999,14 +7999,14 @@ struct cmd_set_link_down_result {
 	portid_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_set_link_down_set =
+static cmdline_parse_token_string_t cmd_set_link_down_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_down_result, set, "set");
-cmdline_parse_token_string_t cmd_set_link_down_link_down =
+static cmdline_parse_token_string_t cmd_set_link_down_link_down =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_down_result, link_down,
 				"link-down");
-cmdline_parse_token_string_t cmd_set_link_down_port =
+static cmdline_parse_token_string_t cmd_set_link_down_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_link_down_result, port, "port");
-cmdline_parse_token_num_t cmd_set_link_down_port_id =
+static cmdline_parse_token_num_t cmd_set_link_down_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_link_down_result, port_id,
 				RTE_UINT16);
 
@@ -8019,7 +8019,7 @@ static void cmd_set_link_down_parsed(
 	dev_set_link_down(res->port_id);
 }
 
-cmdline_parse_inst_t cmd_set_link_down = {
+static cmdline_parse_inst_t cmd_set_link_down = {
 	.f = cmd_set_link_down_parsed,
 	.data = NULL,
 	.help_str = "set link-down port <port id>",
@@ -8060,15 +8060,15 @@ static void cmd_showcfg_parsed(void *parsed_result,
 		show_tx_pkt_times();
 }
 
-cmdline_parse_token_string_t cmd_showcfg_show =
+static cmdline_parse_token_string_t cmd_showcfg_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showcfg_result, show, "show");
-cmdline_parse_token_string_t cmd_showcfg_port =
+static cmdline_parse_token_string_t cmd_showcfg_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showcfg_result, cfg, "config");
-cmdline_parse_token_string_t cmd_showcfg_what =
+static cmdline_parse_token_string_t cmd_showcfg_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showcfg_result, what,
 				 "rxtx#cores#fwd#rxoffs#rxpkts#txpkts#txtimes");
 
-cmdline_parse_inst_t cmd_showcfg = {
+static cmdline_parse_inst_t cmd_showcfg = {
 	.f = cmd_showcfg_parsed,
 	.data = NULL,
 	.help_str = "show config rxtx|cores|fwd|rxoffs|rxpkts|txpkts|txtimes",
@@ -8126,17 +8126,17 @@ static void cmd_showportall_parsed(void *parsed_result,
 			port_dcb_info_display(i);
 }
 
-cmdline_parse_token_string_t cmd_showportall_show =
+static cmdline_parse_token_string_t cmd_showportall_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, show,
 				 "show#clear");
-cmdline_parse_token_string_t cmd_showportall_port =
+static cmdline_parse_token_string_t cmd_showportall_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, port, "port");
-cmdline_parse_token_string_t cmd_showportall_what =
+static cmdline_parse_token_string_t cmd_showportall_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, what,
 				 "info#summary#stats#xstats#fdir#dcb_tc");
-cmdline_parse_token_string_t cmd_showportall_all =
+static cmdline_parse_token_string_t cmd_showportall_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, all, "all");
-cmdline_parse_inst_t cmd_showportall = {
+static cmdline_parse_inst_t cmd_showportall = {
 	.f = cmd_showportall_parsed,
 	.data = NULL,
 	.help_str = "show|clear port "
@@ -8186,18 +8186,18 @@ static void cmd_showport_parsed(void *parsed_result,
 		port_dcb_info_display(res->portnum);
 }
 
-cmdline_parse_token_string_t cmd_showport_show =
+static cmdline_parse_token_string_t cmd_showport_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_result, show,
 				 "show#clear");
-cmdline_parse_token_string_t cmd_showport_port =
+static cmdline_parse_token_string_t cmd_showport_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_result, port, "port");
-cmdline_parse_token_string_t cmd_showport_what =
+static cmdline_parse_token_string_t cmd_showport_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_result, what,
 				 "info#summary#stats#xstats#fdir#dcb_tc");
-cmdline_parse_token_num_t cmd_showport_portnum =
+static cmdline_parse_token_num_t cmd_showport_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_result, portnum, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_showport = {
+static cmdline_parse_inst_t cmd_showport = {
 	.f = cmd_showport_parsed,
 	.data = NULL,
 	.help_str = "show|clear port "
@@ -8312,23 +8312,23 @@ cmd_representor_info_parsed(void *parsed_result,
 	free(info);
 }
 
-cmdline_parse_token_string_t cmd_representor_info_show =
+static cmdline_parse_token_string_t cmd_representor_info_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_representor_info_port =
+static cmdline_parse_token_string_t cmd_representor_info_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
 			cmd_port, "port");
-cmdline_parse_token_string_t cmd_representor_info_info =
+static cmdline_parse_token_string_t cmd_representor_info_info =
 	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
 			cmd_info, "info");
-cmdline_parse_token_num_t cmd_representor_info_pid =
+static cmdline_parse_token_num_t cmd_representor_info_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_representor_info_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_representor_info_keyword =
+static cmdline_parse_token_string_t cmd_representor_info_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_representor_info_result,
 			cmd_keyword, "representor");
 
-cmdline_parse_inst_t cmd_representor_info = {
+static cmdline_parse_inst_t cmd_representor_info = {
 	.f = cmd_representor_info_parsed,
 	.data = NULL,
 	.help_str = "show port info <port_id> representor",
@@ -8364,19 +8364,19 @@ static void cmd_showdevice_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_showdevice_show =
+static cmdline_parse_token_string_t cmd_showdevice_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result, show,
 				 "show");
-cmdline_parse_token_string_t cmd_showdevice_device =
+static cmdline_parse_token_string_t cmd_showdevice_device =
 	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result, device, "device");
-cmdline_parse_token_string_t cmd_showdevice_what =
+static cmdline_parse_token_string_t cmd_showdevice_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result, what,
 				 "info");
-cmdline_parse_token_string_t cmd_showdevice_identifier =
+static cmdline_parse_token_string_t cmd_showdevice_identifier =
 	TOKEN_STRING_INITIALIZER(struct cmd_showdevice_result,
 			identifier, NULL);
 
-cmdline_parse_inst_t cmd_showdevice = {
+static cmdline_parse_inst_t cmd_showdevice = {
 	.f = cmd_showdevice_parsed,
 	.data = NULL,
 	.help_str = "show device info <identifier>|all",
@@ -8411,17 +8411,17 @@ static void cmd_showeeprom_parsed(void *parsed_result,
 		fprintf(stderr, "Unknown argument\n");
 }
 
-cmdline_parse_token_string_t cmd_showeeprom_show =
+static cmdline_parse_token_string_t cmd_showeeprom_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showeeprom_result, show, "show");
-cmdline_parse_token_string_t cmd_showeeprom_port =
+static cmdline_parse_token_string_t cmd_showeeprom_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showeeprom_result, port, "port");
-cmdline_parse_token_num_t cmd_showeeprom_portnum =
+static cmdline_parse_token_num_t cmd_showeeprom_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_showeeprom_result, portnum,
 			RTE_UINT16);
-cmdline_parse_token_string_t cmd_showeeprom_type =
+static cmdline_parse_token_string_t cmd_showeeprom_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_showeeprom_result, type, "module_eeprom#eeprom");
 
-cmdline_parse_inst_t cmd_showeeprom = {
+static cmdline_parse_inst_t cmd_showeeprom = {
 	.f = cmd_showeeprom_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> module_eeprom|eeprom",
@@ -8456,20 +8456,20 @@ cmd_showqueue_parsed(void *parsed_result,
 		tx_queue_infos_display(res->portnum, res->queuenum);
 }
 
-cmdline_parse_token_string_t cmd_showqueue_show =
+static cmdline_parse_token_string_t cmd_showqueue_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showqueue_result, show, "show");
-cmdline_parse_token_string_t cmd_showqueue_type =
+static cmdline_parse_token_string_t cmd_showqueue_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_showqueue_result, type, "rxq#txq");
-cmdline_parse_token_string_t cmd_showqueue_what =
+static cmdline_parse_token_string_t cmd_showqueue_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showqueue_result, what, "info");
-cmdline_parse_token_num_t cmd_showqueue_portnum =
+static cmdline_parse_token_num_t cmd_showqueue_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_showqueue_result, portnum,
 		RTE_UINT16);
-cmdline_parse_token_num_t cmd_showqueue_queuenum =
+static cmdline_parse_token_num_t cmd_showqueue_queuenum =
 	TOKEN_NUM_INITIALIZER(struct cmd_showqueue_result, queuenum,
 		RTE_UINT16);
 
-cmdline_parse_inst_t cmd_showqueue = {
+static cmdline_parse_inst_t cmd_showqueue = {
 	.f = cmd_showqueue_parsed,
 	.data = NULL,
 	.help_str = "show rxq|txq info <port_id> <queue_id>",
@@ -8491,13 +8491,13 @@ struct fwd_result {
 	cmdline_fixed_string_t all;
 };
 
-cmdline_parse_token_string_t cmd_fwd_action =
+static cmdline_parse_token_string_t cmd_fwd_action =
 	TOKEN_STRING_INITIALIZER(struct fwd_result, action, "show#clear");
-cmdline_parse_token_string_t cmd_fwd_fwd =
+static cmdline_parse_token_string_t cmd_fwd_fwd =
 	TOKEN_STRING_INITIALIZER(struct fwd_result, fwd, "fwd");
-cmdline_parse_token_string_t cmd_fwd_stats =
+static cmdline_parse_token_string_t cmd_fwd_stats =
 	TOKEN_STRING_INITIALIZER(struct fwd_result, stats, "stats");
-cmdline_parse_token_string_t cmd_fwd_all =
+static cmdline_parse_token_string_t cmd_fwd_all =
 	TOKEN_STRING_INITIALIZER(struct fwd_result, all, "all");
 
 static void
@@ -8543,16 +8543,16 @@ cmd_read_reg_parsed(void *parsed_result,
 	port_reg_display(res->port_id, res->reg_off);
 }
 
-cmdline_parse_token_string_t cmd_read_reg_read =
+static cmdline_parse_token_string_t cmd_read_reg_read =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_result, read, "read");
-cmdline_parse_token_string_t cmd_read_reg_reg =
+static cmdline_parse_token_string_t cmd_read_reg_reg =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_result, reg, "reg");
-cmdline_parse_token_num_t cmd_read_reg_port_id =
+static cmdline_parse_token_num_t cmd_read_reg_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_read_reg_reg_off =
+static cmdline_parse_token_num_t cmd_read_reg_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_result, reg_off, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_read_reg = {
+static cmdline_parse_inst_t cmd_read_reg = {
 	.f = cmd_read_reg_parsed,
 	.data = NULL,
 	.help_str = "read reg <port_id> <reg_off>",
@@ -8585,26 +8585,26 @@ cmd_read_reg_bit_field_parsed(void *parsed_result,
 				   res->bit1_pos, res->bit2_pos);
 }
 
-cmdline_parse_token_string_t cmd_read_reg_bit_field_read =
+static cmdline_parse_token_string_t cmd_read_reg_bit_field_read =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_field_result, read,
 				 "read");
-cmdline_parse_token_string_t cmd_read_reg_bit_field_regfield =
+static cmdline_parse_token_string_t cmd_read_reg_bit_field_regfield =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_field_result,
 				 regfield, "regfield");
-cmdline_parse_token_num_t cmd_read_reg_bit_field_port_id =
+static cmdline_parse_token_num_t cmd_read_reg_bit_field_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, port_id,
 			      RTE_UINT16);
-cmdline_parse_token_num_t cmd_read_reg_bit_field_reg_off =
+static cmdline_parse_token_num_t cmd_read_reg_bit_field_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, reg_off,
 			      RTE_UINT32);
-cmdline_parse_token_num_t cmd_read_reg_bit_field_bit1_pos =
+static cmdline_parse_token_num_t cmd_read_reg_bit_field_bit1_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, bit1_pos,
 			      RTE_UINT8);
-cmdline_parse_token_num_t cmd_read_reg_bit_field_bit2_pos =
+static cmdline_parse_token_num_t cmd_read_reg_bit_field_bit2_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, bit2_pos,
 			      RTE_UINT8);
 
-cmdline_parse_inst_t cmd_read_reg_bit_field = {
+static cmdline_parse_inst_t cmd_read_reg_bit_field = {
 	.f = cmd_read_reg_bit_field_parsed,
 	.data = NULL,
 	.help_str = "read regfield <port_id> <reg_off> <bit_x> <bit_y>: "
@@ -8638,22 +8638,22 @@ cmd_read_reg_bit_parsed(void *parsed_result,
 	port_reg_bit_display(res->port_id, res->reg_off, res->bit_pos);
 }
 
-cmdline_parse_token_string_t cmd_read_reg_bit_read =
+static cmdline_parse_token_string_t cmd_read_reg_bit_read =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_result, read, "read");
-cmdline_parse_token_string_t cmd_read_reg_bit_regbit =
+static cmdline_parse_token_string_t cmd_read_reg_bit_regbit =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_result,
 				 regbit, "regbit");
-cmdline_parse_token_num_t cmd_read_reg_bit_port_id =
+static cmdline_parse_token_num_t cmd_read_reg_bit_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_num_t cmd_read_reg_bit_reg_off =
+static cmdline_parse_token_num_t cmd_read_reg_bit_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, reg_off,
 				 RTE_UINT32);
-cmdline_parse_token_num_t cmd_read_reg_bit_bit_pos =
+static cmdline_parse_token_num_t cmd_read_reg_bit_bit_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, bit_pos,
 				 RTE_UINT8);
 
-cmdline_parse_inst_t cmd_read_reg_bit = {
+static cmdline_parse_inst_t cmd_read_reg_bit = {
 	.f = cmd_read_reg_bit_parsed,
 	.data = NULL,
 	.help_str = "read regbit <port_id> <reg_off> <bit_x>: 0 <= bit_x <= 31",
@@ -8685,18 +8685,18 @@ cmd_write_reg_parsed(void *parsed_result,
 	port_reg_set(res->port_id, res->reg_off, res->value);
 }
 
-cmdline_parse_token_string_t cmd_write_reg_write =
+static cmdline_parse_token_string_t cmd_write_reg_write =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_result, write, "write");
-cmdline_parse_token_string_t cmd_write_reg_reg =
+static cmdline_parse_token_string_t cmd_write_reg_reg =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_result, reg, "reg");
-cmdline_parse_token_num_t cmd_write_reg_port_id =
+static cmdline_parse_token_num_t cmd_write_reg_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_write_reg_reg_off =
+static cmdline_parse_token_num_t cmd_write_reg_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, reg_off, RTE_UINT32);
-cmdline_parse_token_num_t cmd_write_reg_value =
+static cmdline_parse_token_num_t cmd_write_reg_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, value, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_write_reg = {
+static cmdline_parse_inst_t cmd_write_reg = {
 	.f = cmd_write_reg_parsed,
 	.data = NULL,
 	.help_str = "write reg <port_id> <reg_off> <reg_value>",
@@ -8731,29 +8731,29 @@ cmd_write_reg_bit_field_parsed(void *parsed_result,
 			  res->bit1_pos, res->bit2_pos, res->value);
 }
 
-cmdline_parse_token_string_t cmd_write_reg_bit_field_write =
+static cmdline_parse_token_string_t cmd_write_reg_bit_field_write =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_field_result, write,
 				 "write");
-cmdline_parse_token_string_t cmd_write_reg_bit_field_regfield =
+static cmdline_parse_token_string_t cmd_write_reg_bit_field_regfield =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_field_result,
 				 regfield, "regfield");
-cmdline_parse_token_num_t cmd_write_reg_bit_field_port_id =
+static cmdline_parse_token_num_t cmd_write_reg_bit_field_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, port_id,
 			      RTE_UINT16);
-cmdline_parse_token_num_t cmd_write_reg_bit_field_reg_off =
+static cmdline_parse_token_num_t cmd_write_reg_bit_field_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, reg_off,
 			      RTE_UINT32);
-cmdline_parse_token_num_t cmd_write_reg_bit_field_bit1_pos =
+static cmdline_parse_token_num_t cmd_write_reg_bit_field_bit1_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, bit1_pos,
 			      RTE_UINT8);
-cmdline_parse_token_num_t cmd_write_reg_bit_field_bit2_pos =
+static cmdline_parse_token_num_t cmd_write_reg_bit_field_bit2_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, bit2_pos,
 			      RTE_UINT8);
-cmdline_parse_token_num_t cmd_write_reg_bit_field_value =
+static cmdline_parse_token_num_t cmd_write_reg_bit_field_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, value,
 			      RTE_UINT32);
 
-cmdline_parse_inst_t cmd_write_reg_bit_field = {
+static cmdline_parse_inst_t cmd_write_reg_bit_field = {
 	.f = cmd_write_reg_bit_field_parsed,
 	.data = NULL,
 	.help_str = "write regfield <port_id> <reg_off> <bit_x> <bit_y> "
@@ -8790,26 +8790,26 @@ cmd_write_reg_bit_parsed(void *parsed_result,
 	port_reg_bit_set(res->port_id, res->reg_off, res->bit_pos, res->value);
 }
 
-cmdline_parse_token_string_t cmd_write_reg_bit_write =
+static cmdline_parse_token_string_t cmd_write_reg_bit_write =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_result, write,
 				 "write");
-cmdline_parse_token_string_t cmd_write_reg_bit_regbit =
+static cmdline_parse_token_string_t cmd_write_reg_bit_regbit =
 	TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_result,
 				 regbit, "regbit");
-cmdline_parse_token_num_t cmd_write_reg_bit_port_id =
+static cmdline_parse_token_num_t cmd_write_reg_bit_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_num_t cmd_write_reg_bit_reg_off =
+static cmdline_parse_token_num_t cmd_write_reg_bit_reg_off =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, reg_off,
 				 RTE_UINT32);
-cmdline_parse_token_num_t cmd_write_reg_bit_bit_pos =
+static cmdline_parse_token_num_t cmd_write_reg_bit_bit_pos =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, bit_pos,
 				 RTE_UINT8);
-cmdline_parse_token_num_t cmd_write_reg_bit_value =
+static cmdline_parse_token_num_t cmd_write_reg_bit_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, value,
 				 RTE_UINT8);
 
-cmdline_parse_inst_t cmd_write_reg_bit = {
+static cmdline_parse_inst_t cmd_write_reg_bit = {
 	.f = cmd_write_reg_bit_parsed,
 	.data = NULL,
 	.help_str = "write regbit <port_id> <reg_off> <bit_x> 0|1: "
@@ -8847,22 +8847,22 @@ cmd_read_rxd_txd_parsed(void *parsed_result,
 		tx_ring_desc_display(res->port_id, res->queue_id, res->desc_id);
 }
 
-cmdline_parse_token_string_t cmd_read_rxd_txd_read =
+static cmdline_parse_token_string_t cmd_read_rxd_txd_read =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_rxd_txd_result, read, "read");
-cmdline_parse_token_string_t cmd_read_rxd_txd_rxd_txd =
+static cmdline_parse_token_string_t cmd_read_rxd_txd_rxd_txd =
 	TOKEN_STRING_INITIALIZER(struct cmd_read_rxd_txd_result, rxd_txd,
 				 "rxd#txd");
-cmdline_parse_token_num_t cmd_read_rxd_txd_port_id =
+static cmdline_parse_token_num_t cmd_read_rxd_txd_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_rxd_txd_result, port_id,
 				 RTE_UINT16);
-cmdline_parse_token_num_t cmd_read_rxd_txd_queue_id =
+static cmdline_parse_token_num_t cmd_read_rxd_txd_queue_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_rxd_txd_result, queue_id,
 				 RTE_UINT16);
-cmdline_parse_token_num_t cmd_read_rxd_txd_desc_id =
+static cmdline_parse_token_num_t cmd_read_rxd_txd_desc_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_read_rxd_txd_result, desc_id,
 				 RTE_UINT16);
 
-cmdline_parse_inst_t cmd_read_rxd_txd = {
+static cmdline_parse_inst_t cmd_read_rxd_txd = {
 	.f = cmd_read_rxd_txd_parsed,
 	.data = NULL,
 	.help_str = "read rxd|txd <port_id> <queue_id> <desc_id>",
@@ -8888,10 +8888,10 @@ static void cmd_quit_parsed(__rte_unused void *parsed_result,
 	cmdline_quit(cl);
 }
 
-cmdline_parse_token_string_t cmd_quit_quit =
+static cmdline_parse_token_string_t cmd_quit_quit =
 	TOKEN_STRING_INITIALIZER(struct cmd_quit_result, quit, "quit");
 
-cmdline_parse_inst_t cmd_quit = {
+static cmdline_parse_inst_t cmd_quit = {
 	.f = cmd_quit_parsed,
 	.data = NULL,
 	.help_str = "quit: Exit application",
@@ -8930,19 +8930,19 @@ static void cmd_mac_addr_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_mac_addr_cmd =
+static cmdline_parse_token_string_t cmd_mac_addr_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_mac_addr_result, mac_addr_cmd,
 				"mac_addr");
-cmdline_parse_token_string_t cmd_mac_addr_what =
+static cmdline_parse_token_string_t cmd_mac_addr_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_mac_addr_result, what,
 				"add#remove#set");
-cmdline_parse_token_num_t cmd_mac_addr_portnum =
+static cmdline_parse_token_num_t cmd_mac_addr_portnum =
 		TOKEN_NUM_INITIALIZER(struct cmd_mac_addr_result, port_num,
 					RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_mac_addr_addr =
+static cmdline_parse_token_etheraddr_t cmd_mac_addr_addr =
 		TOKEN_ETHERADDR_INITIALIZER(struct cmd_mac_addr_result, address);
 
-cmdline_parse_inst_t cmd_mac_addr = {
+static cmdline_parse_inst_t cmd_mac_addr = {
 	.f = cmd_mac_addr_parsed,
 	.data = (void *)0,
 	.help_str = "mac_addr add|remove|set <port_id> <mac_addr>: "
@@ -8979,17 +8979,17 @@ static void cmd_set_eth_peer_parsed(void *parsed_result,
 			fwd_config_setup();
 		}
 }
-cmdline_parse_token_string_t cmd_eth_peer_set =
+static cmdline_parse_token_string_t cmd_eth_peer_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_eth_peer_result, set, "set");
-cmdline_parse_token_string_t cmd_eth_peer =
+static cmdline_parse_token_string_t cmd_eth_peer =
 	TOKEN_STRING_INITIALIZER(struct cmd_eth_peer_result, eth_peer, "eth-peer");
-cmdline_parse_token_num_t cmd_eth_peer_port_id =
+static cmdline_parse_token_num_t cmd_eth_peer_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_eth_peer_result, port_id,
 		RTE_UINT16);
-cmdline_parse_token_string_t cmd_eth_peer_addr =
+static cmdline_parse_token_string_t cmd_eth_peer_addr =
 	TOKEN_STRING_INITIALIZER(struct cmd_eth_peer_result, peer_addr, NULL);
 
-cmdline_parse_inst_t cmd_set_fwd_eth_peer = {
+static cmdline_parse_inst_t cmd_set_fwd_eth_peer = {
 	.f = cmd_set_eth_peer_parsed,
 	.data = NULL,
 	.help_str = "set eth-peer <port_id> <peer_mac>",
@@ -9023,26 +9023,26 @@ cmd_set_qmap_parsed(void *parsed_result,
 	set_qmap(res->port_id, (uint8_t)is_rx, res->queue_id, res->map_value);
 }
 
-cmdline_parse_token_string_t cmd_setqmap_set =
+static cmdline_parse_token_string_t cmd_setqmap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_qmap_result,
 				 set, "set");
-cmdline_parse_token_string_t cmd_setqmap_qmap =
+static cmdline_parse_token_string_t cmd_setqmap_qmap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_qmap_result,
 				 qmap, "stat_qmap");
-cmdline_parse_token_string_t cmd_setqmap_what =
+static cmdline_parse_token_string_t cmd_setqmap_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_qmap_result,
 				 what, "tx#rx");
-cmdline_parse_token_num_t cmd_setqmap_portid =
+static cmdline_parse_token_num_t cmd_setqmap_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_qmap_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_setqmap_queueid =
+static cmdline_parse_token_num_t cmd_setqmap_queueid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_qmap_result,
 			      queue_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_setqmap_mapvalue =
+static cmdline_parse_token_num_t cmd_setqmap_mapvalue =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_qmap_result,
 			      map_value, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_set_qmap = {
+static cmdline_parse_inst_t cmd_set_qmap = {
 	.f = cmd_set_qmap_parsed,
 	.data = NULL,
 	.help_str = "set stat_qmap rx|tx <port_id> <queue_id> <map_value>: "
@@ -9078,17 +9078,17 @@ cmd_set_xstats_hide_zero_parsed(void *parsed_result,
 	set_xstats_hide_zero(on_off);
 }
 
-cmdline_parse_token_string_t cmd_set_xstats_hide_zero_keyword =
+static cmdline_parse_token_string_t cmd_set_xstats_hide_zero_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_xstats_hide_zero_result,
 				 keyword, "set");
-cmdline_parse_token_string_t cmd_set_xstats_hide_zero_name =
+static cmdline_parse_token_string_t cmd_set_xstats_hide_zero_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_xstats_hide_zero_result,
 				 name, "xstats-hide-zero");
-cmdline_parse_token_string_t cmd_set_xstats_hide_zero_on_off =
+static cmdline_parse_token_string_t cmd_set_xstats_hide_zero_on_off =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_xstats_hide_zero_result,
 				 on_off, "on#off");
 
-cmdline_parse_inst_t cmd_set_xstats_hide_zero = {
+static cmdline_parse_inst_t cmd_set_xstats_hide_zero = {
 	.f = cmd_set_xstats_hide_zero_parsed,
 	.data = NULL,
 	.help_str = "set xstats-hide-zero on|off",
@@ -9120,17 +9120,17 @@ cmd_set_record_core_cycles_parsed(void *parsed_result,
 	set_record_core_cycles(on_off);
 }
 
-cmdline_parse_token_string_t cmd_set_record_core_cycles_keyword =
+static cmdline_parse_token_string_t cmd_set_record_core_cycles_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_core_cycles_result,
 				 keyword, "set");
-cmdline_parse_token_string_t cmd_set_record_core_cycles_name =
+static cmdline_parse_token_string_t cmd_set_record_core_cycles_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_core_cycles_result,
 				 name, "record-core-cycles");
-cmdline_parse_token_string_t cmd_set_record_core_cycles_on_off =
+static cmdline_parse_token_string_t cmd_set_record_core_cycles_on_off =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_core_cycles_result,
 				 on_off, "on#off");
 
-cmdline_parse_inst_t cmd_set_record_core_cycles = {
+static cmdline_parse_inst_t cmd_set_record_core_cycles = {
 	.f = cmd_set_record_core_cycles_parsed,
 	.data = NULL,
 	.help_str = "set record-core-cycles on|off",
@@ -9162,17 +9162,17 @@ cmd_set_record_burst_stats_parsed(void *parsed_result,
 	set_record_burst_stats(on_off);
 }
 
-cmdline_parse_token_string_t cmd_set_record_burst_stats_keyword =
+static cmdline_parse_token_string_t cmd_set_record_burst_stats_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_burst_stats_result,
 				 keyword, "set");
-cmdline_parse_token_string_t cmd_set_record_burst_stats_name =
+static cmdline_parse_token_string_t cmd_set_record_burst_stats_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_burst_stats_result,
 				 name, "record-burst-stats");
-cmdline_parse_token_string_t cmd_set_record_burst_stats_on_off =
+static cmdline_parse_token_string_t cmd_set_record_burst_stats_on_off =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_record_burst_stats_result,
 				 on_off, "on#off");
 
-cmdline_parse_inst_t cmd_set_record_burst_stats = {
+static cmdline_parse_inst_t cmd_set_record_burst_stats = {
 	.f = cmd_set_record_burst_stats_parsed,
 	.data = NULL,
 	.help_str = "set record-burst-stats on|off",
@@ -9214,26 +9214,26 @@ cmd_set_uc_hash_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_set_uc_hash_set =
+static cmdline_parse_token_string_t cmd_set_uc_hash_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
 				 set, "set");
-cmdline_parse_token_string_t cmd_set_uc_hash_port =
+static cmdline_parse_token_string_t cmd_set_uc_hash_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
 				 port, "port");
-cmdline_parse_token_num_t cmd_set_uc_hash_portid =
+static cmdline_parse_token_num_t cmd_set_uc_hash_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_uc_hash_table,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_uc_hash_what =
+static cmdline_parse_token_string_t cmd_set_uc_hash_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
 				 what, "uta");
-cmdline_parse_token_etheraddr_t cmd_set_uc_hash_mac =
+static cmdline_parse_token_etheraddr_t cmd_set_uc_hash_mac =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_uc_hash_table,
 				address);
-cmdline_parse_token_string_t cmd_set_uc_hash_mode =
+static cmdline_parse_token_string_t cmd_set_uc_hash_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_hash_table,
 				 mode, "on#off");
 
-cmdline_parse_inst_t cmd_set_uc_hash_filter = {
+static cmdline_parse_inst_t cmd_set_uc_hash_filter = {
 	.f = cmd_set_uc_hash_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> uta <mac_addr> on|off)",
@@ -9276,26 +9276,26 @@ cmd_set_uc_all_hash_parsed(void *parsed_result,
 			ret);
 }
 
-cmdline_parse_token_string_t cmd_set_uc_all_hash_set =
+static cmdline_parse_token_string_t cmd_set_uc_all_hash_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
 				 set, "set");
-cmdline_parse_token_string_t cmd_set_uc_all_hash_port =
+static cmdline_parse_token_string_t cmd_set_uc_all_hash_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
 				 port, "port");
-cmdline_parse_token_num_t cmd_set_uc_all_hash_portid =
+static cmdline_parse_token_num_t cmd_set_uc_all_hash_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_uc_all_hash_table,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_uc_all_hash_what =
+static cmdline_parse_token_string_t cmd_set_uc_all_hash_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
 				 what, "uta");
-cmdline_parse_token_string_t cmd_set_uc_all_hash_value =
+static cmdline_parse_token_string_t cmd_set_uc_all_hash_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
 				value,"all");
-cmdline_parse_token_string_t cmd_set_uc_all_hash_mode =
+static cmdline_parse_token_string_t cmd_set_uc_all_hash_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_uc_all_hash_table,
 				 mode, "on#off");
 
-cmdline_parse_inst_t cmd_set_uc_all_hash_filter = {
+static cmdline_parse_inst_t cmd_set_uc_all_hash_filter = {
 	.f = cmd_set_uc_all_hash_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> uta all on|off",
@@ -9333,29 +9333,29 @@ cmd_set_vf_traffic_parsed(void *parsed_result,
 	set_vf_traffic(res->port_id, (uint8_t)is_rx, res->vf_id,(uint8_t) is_on);
 }
 
-cmdline_parse_token_string_t cmd_setvf_traffic_set =
+static cmdline_parse_token_string_t cmd_setvf_traffic_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
 				 set, "set");
-cmdline_parse_token_string_t cmd_setvf_traffic_port =
+static cmdline_parse_token_string_t cmd_setvf_traffic_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
 				 port, "port");
-cmdline_parse_token_num_t cmd_setvf_traffic_portid =
+static cmdline_parse_token_num_t cmd_setvf_traffic_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_traffic,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_setvf_traffic_vf =
+static cmdline_parse_token_string_t cmd_setvf_traffic_vf =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
 				 vf, "vf");
-cmdline_parse_token_num_t cmd_setvf_traffic_vfid =
+static cmdline_parse_token_num_t cmd_setvf_traffic_vfid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_traffic,
 			      vf_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_setvf_traffic_what =
+static cmdline_parse_token_string_t cmd_setvf_traffic_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
 				 what, "tx#rx");
-cmdline_parse_token_string_t cmd_setvf_traffic_mode =
+static cmdline_parse_token_string_t cmd_setvf_traffic_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_traffic,
 				 mode, "on#off");
 
-cmdline_parse_inst_t cmd_set_vf_traffic = {
+static cmdline_parse_inst_t cmd_set_vf_traffic = {
 	.f = cmd_set_vf_traffic_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> vf <vf_id> rx|tx on|off",
@@ -9423,32 +9423,32 @@ cmd_set_vf_rxmode_parsed(void *parsed_result,
 			ret);
 }
 
-cmdline_parse_token_string_t cmd_set_vf_rxmode_set =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 set, "set");
-cmdline_parse_token_string_t cmd_set_vf_rxmode_port =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 port, "port");
-cmdline_parse_token_num_t cmd_set_vf_rxmode_portid =
+static cmdline_parse_token_num_t cmd_set_vf_rxmode_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_rxmode,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vf_rxmode_vf =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_vf =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 vf, "vf");
-cmdline_parse_token_num_t cmd_set_vf_rxmode_vfid =
+static cmdline_parse_token_num_t cmd_set_vf_rxmode_vfid =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_rxmode,
 			      vf_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_vf_rxmode_what =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 what, "rxmode");
-cmdline_parse_token_string_t cmd_set_vf_rxmode_mode =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 mode, "AUPE#ROPE#BAM#MPE");
-cmdline_parse_token_string_t cmd_set_vf_rxmode_on =
+static cmdline_parse_token_string_t cmd_set_vf_rxmode_on =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_rxmode,
 				 on, "on#off");
 
-cmdline_parse_inst_t cmd_set_vf_rxmode = {
+static cmdline_parse_inst_t cmd_set_vf_rxmode = {
 	.f = cmd_set_vf_rxmode_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> vf <vf_id> rxmode "
@@ -9503,29 +9503,29 @@ static void cmd_vf_mac_addr_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_vf_mac_addr_cmd =
+static cmdline_parse_token_string_t cmd_vf_mac_addr_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
 				mac_addr_cmd,"mac_addr");
-cmdline_parse_token_string_t cmd_vf_mac_addr_what =
+static cmdline_parse_token_string_t cmd_vf_mac_addr_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
 				what,"add");
-cmdline_parse_token_string_t cmd_vf_mac_addr_port =
+static cmdline_parse_token_string_t cmd_vf_mac_addr_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
 				port,"port");
-cmdline_parse_token_num_t cmd_vf_mac_addr_portnum =
+static cmdline_parse_token_num_t cmd_vf_mac_addr_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_mac_addr_result,
 				port_num, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_mac_addr_vf =
+static cmdline_parse_token_string_t cmd_vf_mac_addr_vf =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_mac_addr_result,
 				vf,"vf");
-cmdline_parse_token_num_t cmd_vf_mac_addr_vfnum =
+static cmdline_parse_token_num_t cmd_vf_mac_addr_vfnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_mac_addr_result,
 				vf_num, RTE_UINT8);
-cmdline_parse_token_etheraddr_t cmd_vf_mac_addr_addr =
+static cmdline_parse_token_etheraddr_t cmd_vf_mac_addr_addr =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_vf_mac_addr_result,
 				address);
 
-cmdline_parse_inst_t cmd_vf_mac_addr_filter = {
+static cmdline_parse_inst_t cmd_vf_mac_addr_filter = {
 	.f = cmd_vf_mac_addr_parsed,
 	.data = (void *)0,
 	.help_str = "mac_addr add port <port_id> vf <vf_id> <mac_addr>: "
@@ -9597,29 +9597,29 @@ cmd_vf_rx_vlan_filter_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_rx_vlan =
+static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_rx_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 				 rx_vlan, "rx_vlan");
-cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_what =
+static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 				 what, "add#rm");
-cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vlanid =
+static cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vlanid =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 			      vlan_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_port =
+static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 				 port, "port");
-cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_portid =
+static cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_portid =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_vf =
+static cmdline_parse_token_string_t cmd_vf_rx_vlan_filter_vf =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 				 vf, "vf");
-cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vf_mask =
+static cmdline_parse_token_num_t cmd_vf_rx_vlan_filter_vf_mask =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rx_vlan_filter,
 			      vf_mask, RTE_UINT64);
 
-cmdline_parse_inst_t cmd_vf_rxvlan_filter = {
+static cmdline_parse_inst_t cmd_vf_rxvlan_filter = {
 	.f = cmd_vf_rx_vlan_filter_parsed,
 	.data = NULL,
 	.help_str = "rx_vlan add|rm <vlan_id> port <port_id> vf <vf_mask>: "
@@ -9665,29 +9665,29 @@ static void cmd_queue_rate_limit_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_queue_rate_limit_set =
+static cmdline_parse_token_string_t cmd_queue_rate_limit_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_queue_rate_limit_port =
+static cmdline_parse_token_string_t cmd_queue_rate_limit_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
 				port, "port");
-cmdline_parse_token_num_t cmd_queue_rate_limit_portnum =
+static cmdline_parse_token_num_t cmd_queue_rate_limit_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_rate_limit_result,
 				port_num, RTE_UINT16);
-cmdline_parse_token_string_t cmd_queue_rate_limit_queue =
+static cmdline_parse_token_string_t cmd_queue_rate_limit_queue =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
 				queue, "queue");
-cmdline_parse_token_num_t cmd_queue_rate_limit_queuenum =
+static cmdline_parse_token_num_t cmd_queue_rate_limit_queuenum =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_rate_limit_result,
 				queue_num, RTE_UINT8);
-cmdline_parse_token_string_t cmd_queue_rate_limit_rate =
+static cmdline_parse_token_string_t cmd_queue_rate_limit_rate =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_rate_limit_result,
 				rate, "rate");
-cmdline_parse_token_num_t cmd_queue_rate_limit_ratenum =
+static cmdline_parse_token_num_t cmd_queue_rate_limit_ratenum =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_rate_limit_result,
 				rate_num, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_queue_rate_limit = {
+static cmdline_parse_inst_t cmd_queue_rate_limit = {
 	.f = cmd_queue_rate_limit_parsed,
 	.data = (void *)0,
 	.help_str = "set port <port_id> queue <queue_id> rate <rate_value>: "
@@ -9736,35 +9736,35 @@ static void cmd_vf_rate_limit_parsed(void *parsed_result,
 
 }
 
-cmdline_parse_token_string_t cmd_vf_rate_limit_set =
+static cmdline_parse_token_string_t cmd_vf_rate_limit_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_vf_rate_limit_port =
+static cmdline_parse_token_string_t cmd_vf_rate_limit_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
 				port, "port");
-cmdline_parse_token_num_t cmd_vf_rate_limit_portnum =
+static cmdline_parse_token_num_t cmd_vf_rate_limit_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
 				port_num, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_rate_limit_vf =
+static cmdline_parse_token_string_t cmd_vf_rate_limit_vf =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
 				vf, "vf");
-cmdline_parse_token_num_t cmd_vf_rate_limit_vfnum =
+static cmdline_parse_token_num_t cmd_vf_rate_limit_vfnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
 				vf_num, RTE_UINT8);
-cmdline_parse_token_string_t cmd_vf_rate_limit_rate =
+static cmdline_parse_token_string_t cmd_vf_rate_limit_rate =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
 				rate, "rate");
-cmdline_parse_token_num_t cmd_vf_rate_limit_ratenum =
+static cmdline_parse_token_num_t cmd_vf_rate_limit_ratenum =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
 				rate_num, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_rate_limit_q_msk =
+static cmdline_parse_token_string_t cmd_vf_rate_limit_q_msk =
 	TOKEN_STRING_INITIALIZER(struct cmd_vf_rate_limit_result,
 				q_msk, "queue_mask");
-cmdline_parse_token_num_t cmd_vf_rate_limit_q_msk_val =
+static cmdline_parse_token_num_t cmd_vf_rate_limit_q_msk_val =
 	TOKEN_NUM_INITIALIZER(struct cmd_vf_rate_limit_result,
 				q_msk_val, RTE_UINT64);
 
-cmdline_parse_inst_t cmd_vf_rate_limit = {
+static cmdline_parse_inst_t cmd_vf_rate_limit = {
 	.f = cmd_vf_rate_limit_parsed,
 	.data = (void *)0,
 	.help_str = "set port <port_id> vf <vf_id> rate <rate_value> "
@@ -9816,20 +9816,20 @@ cmd_tunnel_udp_config_parsed(void *parsed_result,
 			strerror(-ret));
 }
 
-cmdline_parse_token_string_t cmd_tunnel_udp_config_rx_vxlan_port =
+static cmdline_parse_token_string_t cmd_tunnel_udp_config_rx_vxlan_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_udp_config,
 				rx_vxlan_port, "rx_vxlan_port");
-cmdline_parse_token_string_t cmd_tunnel_udp_config_what =
+static cmdline_parse_token_string_t cmd_tunnel_udp_config_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_udp_config,
 				what, "add#rm");
-cmdline_parse_token_num_t cmd_tunnel_udp_config_udp_port =
+static cmdline_parse_token_num_t cmd_tunnel_udp_config_udp_port =
 	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_udp_config,
 				udp_port, RTE_UINT16);
-cmdline_parse_token_num_t cmd_tunnel_udp_config_port_id =
+static cmdline_parse_token_num_t cmd_tunnel_udp_config_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_tunnel_udp_config,
 				port_id, RTE_UINT16);
 
-cmdline_parse_inst_t cmd_tunnel_udp_config = {
+static cmdline_parse_inst_t cmd_tunnel_udp_config = {
 	.f = cmd_tunnel_udp_config_parsed,
 	.data = (void *)0,
 	.help_str = "rx_vxlan_port add|rm <udp_port> <port_id>: "
@@ -9892,30 +9892,30 @@ cmd_cfg_tunnel_udp_port_parsed(void *parsed_result,
 			strerror(-ret));
 }
 
-cmdline_parse_token_string_t cmd_config_tunnel_udp_port_port =
+static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port, port,
 				 "port");
-cmdline_parse_token_string_t cmd_config_tunnel_udp_port_config =
+static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_config =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port, config,
 				 "config");
-cmdline_parse_token_num_t cmd_config_tunnel_udp_port_port_id =
+static cmdline_parse_token_num_t cmd_config_tunnel_udp_port_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_tunnel_udp_port, port_id,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_tunnel_udp_port_tunnel_port =
+static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_tunnel_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port,
 				 udp_tunnel_port,
 				 "udp_tunnel_port");
-cmdline_parse_token_string_t cmd_config_tunnel_udp_port_action =
+static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_action =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port, action,
 				 "add#rm");
-cmdline_parse_token_string_t cmd_config_tunnel_udp_port_tunnel_type =
+static cmdline_parse_token_string_t cmd_config_tunnel_udp_port_tunnel_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tunnel_udp_port, tunnel_type,
 				 "vxlan#geneve#vxlan-gpe#ecpri");
-cmdline_parse_token_num_t cmd_config_tunnel_udp_port_value =
+static cmdline_parse_token_num_t cmd_config_tunnel_udp_port_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_tunnel_udp_port, udp_port,
 			      RTE_UINT16);
 
-cmdline_parse_inst_t cmd_cfg_tunnel_udp_port = {
+static cmdline_parse_inst_t cmd_cfg_tunnel_udp_port = {
 	.f = cmd_cfg_tunnel_udp_port_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> udp_tunnel_port add|rm vxlan|"
@@ -10022,7 +10022,7 @@ static void cmd_dump_parsed(void *parsed_result,
 		rte_log_dump(stdout);
 }
 
-cmdline_parse_token_string_t cmd_dump_dump =
+static cmdline_parse_token_string_t cmd_dump_dump =
 	TOKEN_STRING_INITIALIZER(struct cmd_dump_result, dump,
 		"dump_physmem#"
 		"dump_memzone#"
@@ -10033,7 +10033,7 @@ cmdline_parse_token_string_t cmd_dump_dump =
 		"dump_devargs#"
 		"dump_log_types");
 
-cmdline_parse_inst_t cmd_dump = {
+static cmdline_parse_inst_t cmd_dump = {
 	.f = cmd_dump_parsed,  /* function to call */
 	.data = NULL,      /* 2nd arg of func */
 	.help_str = "Dump status",
@@ -10074,14 +10074,14 @@ static void cmd_dump_one_parsed(void *parsed_result, struct cmdline *cl,
 	}
 }
 
-cmdline_parse_token_string_t cmd_dump_one_dump =
+static cmdline_parse_token_string_t cmd_dump_one_dump =
 	TOKEN_STRING_INITIALIZER(struct cmd_dump_one_result, dump,
 				 "dump_ring#dump_mempool");
 
-cmdline_parse_token_string_t cmd_dump_one_name =
+static cmdline_parse_token_string_t cmd_dump_one_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_dump_one_result, name, NULL);
 
-cmdline_parse_inst_t cmd_dump_one = {
+static cmdline_parse_inst_t cmd_dump_one = {
 	.f = cmd_dump_one_parsed,  /* function to call */
 	.data = NULL,      /* 2nd arg of func */
 	.help_str = "dump_ring|dump_mempool <name>: Dump one ring/mempool",
@@ -10144,37 +10144,37 @@ cmd_queue_region_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_queue_region_set =
+static cmdline_parse_token_string_t cmd_queue_region_set =
 TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
 		set, "set");
-cmdline_parse_token_string_t cmd_queue_region_port =
+static cmdline_parse_token_string_t cmd_queue_region_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result, port, "port");
-cmdline_parse_token_num_t cmd_queue_region_port_id =
+static cmdline_parse_token_num_t cmd_queue_region_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_queue_region_cmd =
+static cmdline_parse_token_string_t cmd_queue_region_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
 				 cmd, "queue-region");
-cmdline_parse_token_string_t cmd_queue_region_id =
+static cmdline_parse_token_string_t cmd_queue_region_id =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
 				region, "region_id");
-cmdline_parse_token_num_t cmd_queue_region_index =
+static cmdline_parse_token_num_t cmd_queue_region_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
 				region_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
+static cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
 				queue_start_index, "queue_start_index");
-cmdline_parse_token_num_t cmd_queue_region_queue_id =
+static cmdline_parse_token_num_t cmd_queue_region_queue_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
 				queue_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_queue_region_queue_num =
+static cmdline_parse_token_string_t cmd_queue_region_queue_num =
 	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
 				queue_num, "queue_num");
-cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
+static cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
 				queue_num_value, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_queue_region = {
+static cmdline_parse_inst_t cmd_queue_region = {
 	.f = cmd_queue_region_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> queue-region region_id <value> "
@@ -10244,31 +10244,31 @@ cmd_region_flowtype_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_region_flowtype_set =
+static cmdline_parse_token_string_t cmd_region_flowtype_set =
 TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_region_flowtype_port =
+static cmdline_parse_token_string_t cmd_region_flowtype_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
 				port, "port");
-cmdline_parse_token_num_t cmd_region_flowtype_port_index =
+static cmdline_parse_token_num_t cmd_region_flowtype_port_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_region_flowtype_cmd =
+static cmdline_parse_token_string_t cmd_region_flowtype_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
 				cmd, "queue-region");
-cmdline_parse_token_string_t cmd_region_flowtype_index =
+static cmdline_parse_token_string_t cmd_region_flowtype_index =
 	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
 				region, "region_id");
-cmdline_parse_token_num_t cmd_region_flowtype_id =
+static cmdline_parse_token_num_t cmd_region_flowtype_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
 				region_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
+static cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
 	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
 				flowtype, "flowtype");
-cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
+static cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
 				flowtype_id, RTE_UINT8);
-cmdline_parse_inst_t cmd_region_flowtype = {
+static cmdline_parse_inst_t cmd_region_flowtype = {
 	.f = cmd_region_flowtype_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> queue-region region_id <value> "
@@ -10335,32 +10335,32 @@ cmd_user_priority_region_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_user_priority_region_set =
+static cmdline_parse_token_string_t cmd_user_priority_region_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_user_priority_region_port =
+static cmdline_parse_token_string_t cmd_user_priority_region_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
 				port, "port");
-cmdline_parse_token_num_t cmd_user_priority_region_port_index =
+static cmdline_parse_token_num_t cmd_user_priority_region_port_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_user_priority_region_cmd =
+static cmdline_parse_token_string_t cmd_user_priority_region_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
 				cmd, "queue-region");
-cmdline_parse_token_string_t cmd_user_priority_region_UP =
+static cmdline_parse_token_string_t cmd_user_priority_region_UP =
 	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
 				user_priority, "UP");
-cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
+static cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
 				user_priority_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_user_priority_region_region =
+static cmdline_parse_token_string_t cmd_user_priority_region_region =
 	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
 				region, "region_id");
-cmdline_parse_token_num_t cmd_user_priority_region_region_id =
+static cmdline_parse_token_num_t cmd_user_priority_region_region_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
 				region_id, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_user_priority_region = {
+static cmdline_parse_inst_t cmd_user_priority_region = {
 	.f = cmd_user_priority_region_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> queue-region UP <value> "
@@ -10428,26 +10428,26 @@ cmd_flush_queue_region_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_flush_queue_region_set =
+static cmdline_parse_token_string_t cmd_flush_queue_region_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
 				set, "set");
-cmdline_parse_token_string_t cmd_flush_queue_region_port =
+static cmdline_parse_token_string_t cmd_flush_queue_region_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
 				port, "port");
-cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
+static cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_flush_queue_region_result,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
+static cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
 				cmd, "queue-region");
-cmdline_parse_token_string_t cmd_flush_queue_region_flush =
+static cmdline_parse_token_string_t cmd_flush_queue_region_flush =
 	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
 				flush, "flush");
-cmdline_parse_token_string_t cmd_flush_queue_region_what =
+static cmdline_parse_token_string_t cmd_flush_queue_region_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
 				what, "on#off");
 
-cmdline_parse_inst_t cmd_flush_queue_region = {
+static cmdline_parse_inst_t cmd_flush_queue_region = {
 	.f = cmd_flush_queue_region_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> queue-region flush on|off"
@@ -10509,20 +10509,20 @@ cmd_show_queue_region_info_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_show_queue_region_info_get =
+static cmdline_parse_token_string_t cmd_show_queue_region_info_get =
 TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
 				show, "show");
-cmdline_parse_token_string_t cmd_show_queue_region_info_port =
+static cmdline_parse_token_string_t cmd_show_queue_region_info_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
 				port, "port");
-cmdline_parse_token_num_t cmd_show_queue_region_info_port_index =
+static cmdline_parse_token_num_t cmd_show_queue_region_info_port_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_queue_region_info,
 				port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
+static cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
 				cmd, "queue-region");
 
-cmdline_parse_inst_t cmd_show_queue_region_info_all = {
+static cmdline_parse_inst_t cmd_show_queue_region_info_all = {
 	.f = cmd_show_queue_region_info_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> queue-region"
@@ -10678,51 +10678,51 @@ cmd_flow_director_filter_parsed(void *parsed_result,
 	close_file(conf.input.packet);
 }
 
-cmdline_parse_token_string_t cmd_flow_director_filter =
+static cmdline_parse_token_string_t cmd_flow_director_filter =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 flow_director_filter, "flow_director_filter");
-cmdline_parse_token_num_t cmd_flow_director_port_id =
+static cmdline_parse_token_num_t cmd_flow_director_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_ops =
+static cmdline_parse_token_string_t cmd_flow_director_ops =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 ops, "add#del#update");
-cmdline_parse_token_string_t cmd_flow_director_flow =
+static cmdline_parse_token_string_t cmd_flow_director_flow =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 flow, "flow");
-cmdline_parse_token_string_t cmd_flow_director_flow_type =
+static cmdline_parse_token_string_t cmd_flow_director_flow_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 		flow_type, NULL);
-cmdline_parse_token_string_t cmd_flow_director_drop =
+static cmdline_parse_token_string_t cmd_flow_director_drop =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 drop, "drop#fwd");
-cmdline_parse_token_string_t cmd_flow_director_queue =
+static cmdline_parse_token_string_t cmd_flow_director_queue =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 queue, "queue");
-cmdline_parse_token_num_t cmd_flow_director_queue_id =
+static cmdline_parse_token_num_t cmd_flow_director_queue_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
 			      queue_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_fd_id =
+static cmdline_parse_token_string_t cmd_flow_director_fd_id =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 fd_id, "fd_id");
-cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
+static cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
 			      fd_id_value, RTE_UINT32);
 
-cmdline_parse_token_string_t cmd_flow_director_mode =
+static cmdline_parse_token_string_t cmd_flow_director_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 mode, "mode");
-cmdline_parse_token_string_t cmd_flow_director_mode_raw =
+static cmdline_parse_token_string_t cmd_flow_director_mode_raw =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 mode_value, "raw");
-cmdline_parse_token_string_t cmd_flow_director_packet =
+static cmdline_parse_token_string_t cmd_flow_director_packet =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 packet, "packet");
-cmdline_parse_token_string_t cmd_flow_director_filepath =
+static cmdline_parse_token_string_t cmd_flow_director_filepath =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
 				 filepath, NULL);
 
-cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
+static cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
 	.f = cmd_flow_director_filter_parsed,
 	.data = NULL,
 	.help_str = "flow_director_filter ... : Add or delete a raw flow "
@@ -10825,75 +10825,75 @@ cmd_flow_director_mask_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_flow_director_mask =
+static cmdline_parse_token_string_t cmd_flow_director_mask =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 flow_director_mask, "flow_director_mask");
-cmdline_parse_token_num_t cmd_flow_director_mask_port_id =
+static cmdline_parse_token_num_t cmd_flow_director_mask_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_mask_vlan =
+static cmdline_parse_token_string_t cmd_flow_director_mask_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 vlan, "vlan");
-cmdline_parse_token_num_t cmd_flow_director_mask_vlan_value =
+static cmdline_parse_token_num_t cmd_flow_director_mask_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      vlan_mask, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_mask_src =
+static cmdline_parse_token_string_t cmd_flow_director_mask_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 src_mask, "src_mask");
-cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_src =
+static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_src =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
 				 ipv4_src);
-cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_src =
+static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_src =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
 				 ipv6_src);
-cmdline_parse_token_num_t cmd_flow_director_mask_port_src =
+static cmdline_parse_token_num_t cmd_flow_director_mask_port_src =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      port_src, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_mask_dst =
+static cmdline_parse_token_string_t cmd_flow_director_mask_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 dst_mask, "dst_mask");
-cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_dst =
+static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv4_dst =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
 				 ipv4_dst);
-cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_dst =
+static cmdline_parse_token_ipaddr_t cmd_flow_director_mask_ipv6_dst =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_flow_director_mask_result,
 				 ipv6_dst);
-cmdline_parse_token_num_t cmd_flow_director_mask_port_dst =
+static cmdline_parse_token_num_t cmd_flow_director_mask_port_dst =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      port_dst, RTE_UINT16);
 
-cmdline_parse_token_string_t cmd_flow_director_mask_mode =
+static cmdline_parse_token_string_t cmd_flow_director_mask_mode =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 mode, "mode");
-cmdline_parse_token_string_t cmd_flow_director_mask_mode_ip =
+static cmdline_parse_token_string_t cmd_flow_director_mask_mode_ip =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 mode_value, "IP");
-cmdline_parse_token_string_t cmd_flow_director_mask_mode_mac_vlan =
+static cmdline_parse_token_string_t cmd_flow_director_mask_mode_mac_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 mode_value, "MAC-VLAN");
-cmdline_parse_token_string_t cmd_flow_director_mask_mode_tunnel =
+static cmdline_parse_token_string_t cmd_flow_director_mask_mode_tunnel =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 mode_value, "Tunnel");
-cmdline_parse_token_string_t cmd_flow_director_mask_mac =
+static cmdline_parse_token_string_t cmd_flow_director_mask_mac =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 mac, "mac");
-cmdline_parse_token_num_t cmd_flow_director_mask_mac_value =
+static cmdline_parse_token_num_t cmd_flow_director_mask_mac_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      mac_addr_byte_mask, RTE_UINT8);
-cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_type =
+static cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 tunnel_type, "tunnel-type");
-cmdline_parse_token_num_t cmd_flow_director_mask_tunnel_type_value =
+static cmdline_parse_token_num_t cmd_flow_director_mask_tunnel_type_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      tunnel_type_mask, RTE_UINT8);
-cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_id =
+static cmdline_parse_token_string_t cmd_flow_director_mask_tunnel_id =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_mask_result,
 				 tunnel_id, "tunnel-id");
-cmdline_parse_token_num_t cmd_flow_director_mask_tunnel_id_value =
+static cmdline_parse_token_num_t cmd_flow_director_mask_tunnel_id_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_mask_result,
 			      tunnel_id_mask, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_set_flow_director_ip_mask = {
+static cmdline_parse_inst_t cmd_set_flow_director_ip_mask = {
 	.f = cmd_flow_director_mask_parsed,
 	.data = NULL,
 	.help_str = "flow_director_mask ... : "
@@ -10917,7 +10917,7 @@ cmdline_parse_inst_t cmd_set_flow_director_ip_mask = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_flow_director_mac_vlan_mask = {
+static cmdline_parse_inst_t cmd_set_flow_director_mac_vlan_mask = {
 	.f = cmd_flow_director_mask_parsed,
 	.data = NULL,
 	.help_str = "flow_director_mask ... : Set MAC VLAN mode "
@@ -10933,7 +10933,7 @@ cmdline_parse_inst_t cmd_set_flow_director_mac_vlan_mask = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_flow_director_tunnel_mask = {
+static cmdline_parse_inst_t cmd_set_flow_director_tunnel_mask = {
 	.f = cmd_flow_director_mask_parsed,
 	.data = NULL,
 	.help_str = "flow_director_mask ... : Set tunnel mode "
@@ -11040,21 +11040,21 @@ cmd_flow_director_flxpld_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-cmdline_parse_token_string_t cmd_flow_director_flexpayload =
+static cmdline_parse_token_string_t cmd_flow_director_flexpayload =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_flexpayload_result,
 				 flow_director_flexpayload,
 				 "flow_director_flex_payload");
-cmdline_parse_token_num_t cmd_flow_director_flexpayload_port_id =
+static cmdline_parse_token_num_t cmd_flow_director_flexpayload_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_flexpayload_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_flow_director_flexpayload_payload_layer =
+static cmdline_parse_token_string_t cmd_flow_director_flexpayload_payload_layer =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_flexpayload_result,
 				 payload_layer, "raw#l2#l3#l4");
-cmdline_parse_token_string_t cmd_flow_director_flexpayload_payload_cfg =
+static cmdline_parse_token_string_t cmd_flow_director_flexpayload_payload_cfg =
 	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_flexpayload_result,
 				 payload_cfg, NULL);
 
-cmdline_parse_inst_t cmd_set_flow_director_flex_payload = {
+static cmdline_parse_inst_t cmd_set_flow_director_flex_payload = {
 	.f = cmd_flow_director_flxpld_parsed,
 	.data = NULL,
 	.help_str = "flow_director_flexpayload ... : "
@@ -11097,19 +11097,19 @@ static void cmd_mcast_addr_parsed(void *parsed_result,
 		mcast_addr_remove(res->port_num, &res->mc_addr);
 }
 
-cmdline_parse_token_string_t cmd_mcast_addr_cmd =
+static cmdline_parse_token_string_t cmd_mcast_addr_cmd =
 	TOKEN_STRING_INITIALIZER(struct cmd_mcast_addr_result,
 				 mcast_addr_cmd, "mcast_addr");
-cmdline_parse_token_string_t cmd_mcast_addr_what =
+static cmdline_parse_token_string_t cmd_mcast_addr_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_mcast_addr_result, what,
 				 "add#remove");
-cmdline_parse_token_num_t cmd_mcast_addr_portnum =
+static cmdline_parse_token_num_t cmd_mcast_addr_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_mcast_addr_result, port_num,
 				 RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_mcast_addr_addr =
+static cmdline_parse_token_etheraddr_t cmd_mcast_addr_addr =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_mac_addr_result, address);
 
-cmdline_parse_inst_t cmd_mcast_addr = {
+static cmdline_parse_inst_t cmd_mcast_addr = {
 	.f = cmd_mcast_addr_parsed,
 	.data = (void *)0,
 	.help_str = "mcast_addr add|remove <port_id> <mcast_addr>: "
@@ -11137,31 +11137,31 @@ struct cmd_vf_vlan_anti_spoof_result {
 };
 
 /* Common CLI fields for vf vlan anti spoof enable disable */
-cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_set =
+static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vf =
+static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vlan =
+static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_vlan =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 vlan, "vlan");
-cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_antispoof =
+static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_antispoof =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 antispoof, "antispoof");
-cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_port_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_vf_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_anti_spoof_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 vf_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_on_off =
+static cmdline_parse_token_string_t cmd_vf_vlan_anti_spoof_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_anti_spoof_result,
 		 on_off, "on#off");
@@ -11213,7 +11213,7 @@ cmd_set_vf_vlan_anti_spoof_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_vlan_anti_spoof = {
+static cmdline_parse_inst_t cmd_set_vf_vlan_anti_spoof = {
 	.f = cmd_set_vf_vlan_anti_spoof_parsed,
 	.data = NULL,
 	.help_str = "set vf vlan antispoof <port_id> <vf_id> on|off",
@@ -11243,31 +11243,31 @@ struct cmd_vf_mac_anti_spoof_result {
 };
 
 /* Common CLI fields for vf mac anti spoof enable disable */
-cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_set =
+static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_vf =
+static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_mac =
+static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_mac =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 mac, "mac");
-cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_antispoof =
+static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_antispoof =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 antispoof, "antispoof");
-cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_port_id =
+static cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_vf_id =
+static cmdline_parse_token_num_t cmd_vf_mac_anti_spoof_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 vf_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_on_off =
+static cmdline_parse_token_string_t cmd_vf_mac_anti_spoof_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_mac_anti_spoof_result,
 		 on_off, "on#off");
@@ -11320,7 +11320,7 @@ cmd_set_vf_mac_anti_spoof_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_mac_anti_spoof = {
+static cmdline_parse_inst_t cmd_set_vf_mac_anti_spoof = {
 	.f = cmd_set_vf_mac_anti_spoof_parsed,
 	.data = NULL,
 	.help_str = "set vf mac antispoof <port_id> <vf_id> on|off",
@@ -11350,31 +11350,31 @@ struct cmd_vf_vlan_stripq_result {
 };
 
 /* Common CLI fields for vf vlan strip enable disable */
-cmdline_parse_token_string_t cmd_vf_vlan_stripq_set =
+static cmdline_parse_token_string_t cmd_vf_vlan_stripq_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_vlan_stripq_vf =
+static cmdline_parse_token_string_t cmd_vf_vlan_stripq_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_vlan_stripq_vlan =
+static cmdline_parse_token_string_t cmd_vf_vlan_stripq_vlan =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 vlan, "vlan");
-cmdline_parse_token_string_t cmd_vf_vlan_stripq_stripq =
+static cmdline_parse_token_string_t cmd_vf_vlan_stripq_stripq =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 stripq, "stripq");
-cmdline_parse_token_num_t cmd_vf_vlan_stripq_port_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_stripq_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_vlan_stripq_vf_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_stripq_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_vlan_stripq_on_off =
+static cmdline_parse_token_string_t cmd_vf_vlan_stripq_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_stripq_result,
 		 on_off, "on#off");
@@ -11427,7 +11427,7 @@ cmd_set_vf_vlan_stripq_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_vlan_stripq = {
+static cmdline_parse_inst_t cmd_set_vf_vlan_stripq = {
 	.f = cmd_set_vf_vlan_stripq_parsed,
 	.data = NULL,
 	.help_str = "set vf vlan stripq <port_id> <vf_id> on|off",
@@ -11457,31 +11457,31 @@ struct cmd_vf_vlan_insert_result {
 };
 
 /* Common CLI fields for vf vlan insert enable disable */
-cmdline_parse_token_string_t cmd_vf_vlan_insert_set =
+static cmdline_parse_token_string_t cmd_vf_vlan_insert_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_vlan_insert_vf =
+static cmdline_parse_token_string_t cmd_vf_vlan_insert_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_vlan_insert_vlan =
+static cmdline_parse_token_string_t cmd_vf_vlan_insert_vlan =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 vlan, "vlan");
-cmdline_parse_token_string_t cmd_vf_vlan_insert_insert =
+static cmdline_parse_token_string_t cmd_vf_vlan_insert_insert =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 insert, "insert");
-cmdline_parse_token_num_t cmd_vf_vlan_insert_port_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_insert_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_vlan_insert_vf_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_insert_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_vlan_insert_vlan_id =
+static cmdline_parse_token_num_t cmd_vf_vlan_insert_vlan_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_vlan_insert_result,
 		 vlan_id, RTE_UINT16);
@@ -11532,7 +11532,7 @@ cmd_set_vf_vlan_insert_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_vlan_insert = {
+static cmdline_parse_inst_t cmd_set_vf_vlan_insert = {
 	.f = cmd_set_vf_vlan_insert_parsed,
 	.data = NULL,
 	.help_str = "set vf vlan insert <port_id> <vf_id> <vlan_id>",
@@ -11560,23 +11560,23 @@ struct cmd_tx_loopback_result {
 };
 
 /* Common CLI fields for tx loopback enable disable */
-cmdline_parse_token_string_t cmd_tx_loopback_set =
+static cmdline_parse_token_string_t cmd_tx_loopback_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_loopback_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_tx_loopback_tx =
+static cmdline_parse_token_string_t cmd_tx_loopback_tx =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_loopback_result,
 		 tx, "tx");
-cmdline_parse_token_string_t cmd_tx_loopback_loopback =
+static cmdline_parse_token_string_t cmd_tx_loopback_loopback =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_loopback_result,
 		 loopback, "loopback");
-cmdline_parse_token_num_t cmd_tx_loopback_port_id =
+static cmdline_parse_token_num_t cmd_tx_loopback_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_tx_loopback_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_tx_loopback_on_off =
+static cmdline_parse_token_string_t cmd_tx_loopback_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_loopback_result,
 		 on_off, "on#off");
@@ -11629,7 +11629,7 @@ cmd_set_tx_loopback_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_tx_loopback = {
+static cmdline_parse_inst_t cmd_set_tx_loopback = {
 	.f = cmd_set_tx_loopback_parsed,
 	.data = NULL,
 	.help_str = "set tx loopback <port_id> on|off",
@@ -11656,27 +11656,27 @@ struct cmd_all_queues_drop_en_result {
 };
 
 /* Common CLI fields for tx loopback enable disable */
-cmdline_parse_token_string_t cmd_all_queues_drop_en_set =
+static cmdline_parse_token_string_t cmd_all_queues_drop_en_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_all_queues_drop_en_all =
+static cmdline_parse_token_string_t cmd_all_queues_drop_en_all =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 all, "all");
-cmdline_parse_token_string_t cmd_all_queues_drop_en_queues =
+static cmdline_parse_token_string_t cmd_all_queues_drop_en_queues =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 queues, "queues");
-cmdline_parse_token_string_t cmd_all_queues_drop_en_drop =
+static cmdline_parse_token_string_t cmd_all_queues_drop_en_drop =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 drop, "drop");
-cmdline_parse_token_num_t cmd_all_queues_drop_en_port_id =
+static cmdline_parse_token_num_t cmd_all_queues_drop_en_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_all_queues_drop_en_on_off =
+static cmdline_parse_token_string_t cmd_all_queues_drop_en_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_all_queues_drop_en_result,
 		 on_off, "on#off");
@@ -11719,7 +11719,7 @@ cmd_set_all_queues_drop_en_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_all_queues_drop_en = {
+static cmdline_parse_inst_t cmd_set_all_queues_drop_en = {
 	.f = cmd_set_all_queues_drop_en_parsed,
 	.data = NULL,
 	.help_str = "set all queues drop <port_id> on|off",
@@ -11748,31 +11748,31 @@ struct cmd_vf_split_drop_en_result {
 };
 
 /* Common CLI fields for vf split drop enable disable */
-cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 split, "split");
-cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 drop, "drop");
-cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_split_drop_en_result,
 		 on_off, "on#off");
@@ -11812,7 +11812,7 @@ cmd_set_vf_split_drop_en_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
+static cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
 	.f = cmd_set_vf_split_drop_en_parsed,
 	.data = NULL,
 	.help_str = "set vf split drop <port_id> <vf_id> on|off",
@@ -11843,31 +11843,31 @@ struct cmd_set_vf_mac_addr_result {
 };
 
 /* Common CLI fields for vf split drop enable disable */
-cmdline_parse_token_string_t cmd_set_vf_mac_addr_set =
+static cmdline_parse_token_string_t cmd_set_vf_mac_addr_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_set_vf_mac_addr_vf =
+static cmdline_parse_token_string_t cmd_set_vf_mac_addr_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_set_vf_mac_addr_mac =
+static cmdline_parse_token_string_t cmd_set_vf_mac_addr_mac =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 mac, "mac");
-cmdline_parse_token_string_t cmd_set_vf_mac_addr_addr =
+static cmdline_parse_token_string_t cmd_set_vf_mac_addr_addr =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 addr, "addr");
-cmdline_parse_token_num_t cmd_set_vf_mac_addr_port_id =
+static cmdline_parse_token_num_t cmd_set_vf_mac_addr_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_vf_mac_addr_vf_id =
+static cmdline_parse_token_num_t cmd_set_vf_mac_addr_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_mac_addr_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_set_vf_mac_addr_mac_addr =
+static cmdline_parse_token_etheraddr_t cmd_set_vf_mac_addr_mac_addr =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vf_mac_addr_result,
 		 mac_addr);
 
@@ -11916,7 +11916,7 @@ cmd_set_vf_mac_addr_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_mac_addr = {
+static cmdline_parse_inst_t cmd_set_vf_mac_addr = {
 	.f = cmd_set_vf_mac_addr_parsed,
 	.data = NULL,
 	.help_str = "set vf mac addr <port_id> <vf_id> <mac_addr>",
@@ -11948,39 +11948,39 @@ struct cmd_macsec_offload_on_result {
 };
 
 /* Common CLI fields for MACsec offload disable */
-cmdline_parse_token_string_t cmd_macsec_offload_on_set =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 offload, "offload");
-cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
+static cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_macsec_offload_on_on =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_on =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 on, "on");
-cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 encrypt, "encrypt");
-cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 en_on_off, "on#off");
-cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 replay_protect, "replay-protect");
-cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
+static cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_on_result,
 		 rp_on_off, "on#off");
@@ -12034,7 +12034,7 @@ cmd_set_macsec_offload_on_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_macsec_offload_on = {
+static cmdline_parse_inst_t cmd_set_macsec_offload_on = {
 	.f = cmd_set_macsec_offload_on_parsed,
 	.data = NULL,
 	.help_str = "set macsec offload <port_id> on "
@@ -12063,23 +12063,23 @@ struct cmd_macsec_offload_off_result {
 };
 
 /* Common CLI fields for MACsec offload disable */
-cmdline_parse_token_string_t cmd_macsec_offload_off_set =
+static cmdline_parse_token_string_t cmd_macsec_offload_off_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_off_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
+static cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_off_result,
 		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
+static cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_off_result,
 		 offload, "offload");
-cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
+static cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_offload_off_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_macsec_offload_off_off =
+static cmdline_parse_token_string_t cmd_macsec_offload_off_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_offload_off_result,
 		 off, "off");
@@ -12128,7 +12128,7 @@ cmd_set_macsec_offload_off_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_macsec_offload_off = {
+static cmdline_parse_inst_t cmd_set_macsec_offload_off = {
 	.f = cmd_set_macsec_offload_off_parsed,
 	.data = NULL,
 	.help_str = "set macsec offload <port_id> off",
@@ -12154,31 +12154,31 @@ struct cmd_macsec_sc_result {
 };
 
 /* Common CLI fields for MACsec secure connection configure */
-cmdline_parse_token_string_t cmd_macsec_sc_set =
+static cmdline_parse_token_string_t cmd_macsec_sc_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_sc_macsec =
+static cmdline_parse_token_string_t cmd_macsec_sc_macsec =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_sc_sc =
+static cmdline_parse_token_string_t cmd_macsec_sc_sc =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 sc, "sc");
-cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
+static cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 tx_rx, "tx#rx");
-cmdline_parse_token_num_t cmd_macsec_sc_port_id =
+static cmdline_parse_token_num_t cmd_macsec_sc_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
+static cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
 	TOKEN_ETHERADDR_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 mac);
-cmdline_parse_token_num_t cmd_macsec_sc_pi =
+static cmdline_parse_token_num_t cmd_macsec_sc_pi =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sc_result,
 		 pi, RTE_UINT16);
@@ -12216,7 +12216,7 @@ cmd_set_macsec_sc_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_macsec_sc = {
+static cmdline_parse_inst_t cmd_set_macsec_sc = {
 	.f = cmd_set_macsec_sc_parsed,
 	.data = NULL,
 	.help_str = "set macsec sc tx|rx <port_id> <mac> <pi>",
@@ -12246,39 +12246,39 @@ struct cmd_macsec_sa_result {
 };
 
 /* Common CLI fields for MACsec secure connection configure */
-cmdline_parse_token_string_t cmd_macsec_sa_set =
+static cmdline_parse_token_string_t cmd_macsec_sa_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_macsec_sa_macsec =
+static cmdline_parse_token_string_t cmd_macsec_sa_macsec =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 macsec, "macsec");
-cmdline_parse_token_string_t cmd_macsec_sa_sa =
+static cmdline_parse_token_string_t cmd_macsec_sa_sa =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 sa, "sa");
-cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
+static cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 tx_rx, "tx#rx");
-cmdline_parse_token_num_t cmd_macsec_sa_port_id =
+static cmdline_parse_token_num_t cmd_macsec_sa_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_macsec_sa_idx =
+static cmdline_parse_token_num_t cmd_macsec_sa_idx =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 idx, RTE_UINT8);
-cmdline_parse_token_num_t cmd_macsec_sa_an =
+static cmdline_parse_token_num_t cmd_macsec_sa_an =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 an, RTE_UINT8);
-cmdline_parse_token_num_t cmd_macsec_sa_pn =
+static cmdline_parse_token_num_t cmd_macsec_sa_pn =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 pn, RTE_UINT32);
-cmdline_parse_token_string_t cmd_macsec_sa_key =
+static cmdline_parse_token_string_t cmd_macsec_sa_key =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_macsec_sa_result,
 		 key, NULL);
@@ -12339,7 +12339,7 @@ cmd_set_macsec_sa_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_macsec_sa = {
+static cmdline_parse_inst_t cmd_set_macsec_sa = {
 	.f = cmd_set_macsec_sa_parsed,
 	.data = NULL,
 	.help_str = "set macsec sa tx|rx <port_id> <idx> <an> <pn> <key>",
@@ -12370,27 +12370,27 @@ struct cmd_vf_promisc_result {
 };
 
 /* Common CLI fields for VF unicast promiscuous mode enable disable */
-cmdline_parse_token_string_t cmd_vf_promisc_set =
+static cmdline_parse_token_string_t cmd_vf_promisc_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_promisc_vf =
+static cmdline_parse_token_string_t cmd_vf_promisc_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_promisc_promisc =
+static cmdline_parse_token_string_t cmd_vf_promisc_promisc =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 promisc, "promisc");
-cmdline_parse_token_num_t cmd_vf_promisc_port_id =
+static cmdline_parse_token_num_t cmd_vf_promisc_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_promisc_vf_id =
+static cmdline_parse_token_num_t cmd_vf_promisc_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 vf_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_vf_promisc_on_off =
+static cmdline_parse_token_string_t cmd_vf_promisc_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_promisc_result,
 		 on_off, "on#off");
@@ -12431,7 +12431,7 @@ cmd_set_vf_promisc_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_promisc = {
+static cmdline_parse_inst_t cmd_set_vf_promisc = {
 	.f = cmd_set_vf_promisc_parsed,
 	.data = NULL,
 	.help_str = "set vf promisc <port_id> <vf_id> on|off: "
@@ -12460,27 +12460,27 @@ struct cmd_vf_allmulti_result {
 };
 
 /* Common CLI fields for VF multicast promiscuous mode enable disable */
-cmdline_parse_token_string_t cmd_vf_allmulti_set =
+static cmdline_parse_token_string_t cmd_vf_allmulti_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_allmulti_vf =
+static cmdline_parse_token_string_t cmd_vf_allmulti_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_allmulti_allmulti =
+static cmdline_parse_token_string_t cmd_vf_allmulti_allmulti =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 allmulti, "allmulti");
-cmdline_parse_token_num_t cmd_vf_allmulti_port_id =
+static cmdline_parse_token_num_t cmd_vf_allmulti_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_allmulti_vf_id =
+static cmdline_parse_token_num_t cmd_vf_allmulti_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 vf_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_vf_allmulti_on_off =
+static cmdline_parse_token_string_t cmd_vf_allmulti_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_allmulti_result,
 		 on_off, "on#off");
@@ -12521,7 +12521,7 @@ cmd_set_vf_allmulti_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_allmulti = {
+static cmdline_parse_inst_t cmd_set_vf_allmulti = {
 	.f = cmd_set_vf_allmulti_parsed,
 	.data = NULL,
 	.help_str = "set vf allmulti <port_id> <vf_id> on|off: "
@@ -12550,27 +12550,27 @@ struct cmd_set_vf_broadcast_result {
 };
 
 /* Common CLI fields for vf broadcast enable disable */
-cmdline_parse_token_string_t cmd_set_vf_broadcast_set =
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_set_vf_broadcast_vf =
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_set_vf_broadcast_broadcast =
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_broadcast =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 broadcast, "broadcast");
-cmdline_parse_token_num_t cmd_set_vf_broadcast_port_id =
+static cmdline_parse_token_num_t cmd_set_vf_broadcast_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_vf_broadcast_vf_id =
+static cmdline_parse_token_num_t cmd_set_vf_broadcast_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vf_broadcast_on_off =
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_broadcast_result,
 		 on_off, "on#off");
@@ -12612,7 +12612,7 @@ cmd_set_vf_broadcast_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_broadcast = {
+static cmdline_parse_inst_t cmd_set_vf_broadcast = {
 	.f = cmd_set_vf_broadcast_parsed,
 	.data = NULL,
 	.help_str = "set vf broadcast <port_id> <vf_id> on|off",
@@ -12641,31 +12641,31 @@ struct cmd_set_vf_vlan_tag_result {
 };
 
 /* Common CLI fields for vf vlan tag enable disable */
-cmdline_parse_token_string_t cmd_set_vf_vlan_tag_set =
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vf =
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vlan =
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vlan =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 vlan, "vlan");
-cmdline_parse_token_string_t cmd_set_vf_vlan_tag_tag =
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_tag =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 tag, "tag");
-cmdline_parse_token_num_t cmd_set_vf_vlan_tag_port_id =
+static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_vf_vlan_tag_vf_id =
+static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vf_vlan_tag_on_off =
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_vf_vlan_tag_result,
 		 on_off, "on#off");
@@ -12707,7 +12707,7 @@ cmd_set_vf_vlan_tag_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_vf_vlan_tag = {
+static cmdline_parse_inst_t cmd_set_vf_vlan_tag = {
 	.f = cmd_set_vf_vlan_tag_parsed,
 	.data = NULL,
 	.help_str = "set vf vlan tag <port_id> <vf_id> on|off",
@@ -12740,55 +12740,55 @@ struct cmd_vf_tc_bw_result {
 	uint8_t tc_map;
 };
 
-cmdline_parse_token_string_t cmd_vf_tc_bw_set =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_vf_tc_bw_vf =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 tc, "tc");
-cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 tx, "tx");
-cmdline_parse_token_string_t cmd_vf_tc_bw_strict_link_prio =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_strict_link_prio =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 strict_link_prio, "strict-link-priority");
-cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 min_bw, "min-bandwidth");
-cmdline_parse_token_string_t cmd_vf_tc_bw_max_bw =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_max_bw =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 max_bw, "max-bandwidth");
-cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
+static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_tc_bw_vf_id =
+static cmdline_parse_token_num_t cmd_vf_tc_bw_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 vf_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_vf_tc_bw_tc_no =
+static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_no =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 tc_no, RTE_UINT8);
-cmdline_parse_token_num_t cmd_vf_tc_bw_bw =
+static cmdline_parse_token_num_t cmd_vf_tc_bw_bw =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 bw, RTE_UINT32);
-cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 bw_list, NULL);
-cmdline_parse_token_num_t cmd_vf_tc_bw_tc_map =
+static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_map =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_vf_tc_bw_result,
 		 tc_map, RTE_UINT8);
@@ -12829,7 +12829,7 @@ cmd_vf_max_bw_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_vf_max_bw = {
+static cmdline_parse_inst_t cmd_vf_max_bw = {
 	.f = cmd_vf_max_bw_parsed,
 	.data = NULL,
 	.help_str = "set vf tx max-bandwidth <port_id> <vf_id> <bandwidth>",
@@ -12931,7 +12931,7 @@ cmd_vf_tc_min_bw_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_vf_tc_min_bw = {
+static cmdline_parse_inst_t cmd_vf_tc_min_bw = {
 	.f = cmd_vf_tc_min_bw_parsed,
 	.data = NULL,
 	.help_str = "set vf tc tx min-bandwidth <port_id> <vf_id>"
@@ -12996,7 +12996,7 @@ cmd_tc_min_bw_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_tc_min_bw = {
+static cmdline_parse_inst_t cmd_tc_min_bw = {
 	.f = cmd_tc_min_bw_parsed,
 	.data = NULL,
 	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
@@ -13048,7 +13048,7 @@ cmd_vf_tc_max_bw_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_vf_tc_max_bw = {
+static cmdline_parse_inst_t cmd_vf_tc_max_bw = {
 	.f = cmd_vf_tc_max_bw_parsed,
 	.data = NULL,
 	.help_str = "set vf tc tx max-bandwidth <port_id> <vf_id> <tc_no>"
@@ -13086,71 +13086,71 @@ struct cmd_set_vxlan_result {
 	struct rte_ether_addr eth_dst;
 };
 
-cmdline_parse_token_string_t cmd_set_vxlan_set =
+static cmdline_parse_token_string_t cmd_set_vxlan_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, set, "set");
-cmdline_parse_token_string_t cmd_set_vxlan_vxlan =
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan, "vxlan");
-cmdline_parse_token_string_t cmd_set_vxlan_vxlan_tos_ttl =
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_tos_ttl =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
 				 "vxlan-tos-ttl");
-cmdline_parse_token_string_t cmd_set_vxlan_vxlan_with_vlan =
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
 				 "vxlan-with-vlan");
-cmdline_parse_token_string_t cmd_set_vxlan_ip_version =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "ip-version");
-cmdline_parse_token_string_t cmd_set_vxlan_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, ip_version,
 				 "ipv4#ipv6");
-cmdline_parse_token_string_t cmd_set_vxlan_vni =
+static cmdline_parse_token_string_t cmd_set_vxlan_vni =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "vni");
-cmdline_parse_token_num_t cmd_set_vxlan_vni_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_vni_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, vni, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_vxlan_udp_src =
+static cmdline_parse_token_string_t cmd_set_vxlan_udp_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "udp-src");
-cmdline_parse_token_num_t cmd_set_vxlan_udp_src_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_udp_src_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_src, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vxlan_udp_dst =
+static cmdline_parse_token_string_t cmd_set_vxlan_udp_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "udp-dst");
-cmdline_parse_token_num_t cmd_set_vxlan_udp_dst_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_udp_dst_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_dst, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vxlan_ip_tos =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_tos =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "ip-tos");
-cmdline_parse_token_num_t cmd_set_vxlan_ip_tos_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_ip_tos_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tos, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_vxlan_ip_ttl =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_ttl =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "ip-ttl");
-cmdline_parse_token_num_t cmd_set_vxlan_ip_ttl_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_ip_ttl_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, ttl, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_vxlan_ip_src =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "ip-src");
-cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_src_value =
+static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_src_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_src);
-cmdline_parse_token_string_t cmd_set_vxlan_ip_dst =
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "ip-dst");
-cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_dst_value =
+static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_dst_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_dst);
-cmdline_parse_token_string_t cmd_set_vxlan_vlan =
+static cmdline_parse_token_string_t cmd_set_vxlan_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "vlan-tci");
-cmdline_parse_token_num_t cmd_set_vxlan_vlan_value =
+static cmdline_parse_token_num_t cmd_set_vxlan_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tci, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_vxlan_eth_src =
+static cmdline_parse_token_string_t cmd_set_vxlan_eth_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "eth-src");
-cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_src_value =
+static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_src_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_src);
-cmdline_parse_token_string_t cmd_set_vxlan_eth_dst =
+static cmdline_parse_token_string_t cmd_set_vxlan_eth_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
 				 "eth-dst");
-cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_dst_value =
+static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_dst_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_dst);
 
 static void cmd_set_vxlan_parsed(void *parsed_result,
@@ -13200,7 +13200,7 @@ static void cmd_set_vxlan_parsed(void *parsed_result,
 		   RTE_ETHER_ADDR_LEN);
 }
 
-cmdline_parse_inst_t cmd_set_vxlan = {
+static cmdline_parse_inst_t cmd_set_vxlan = {
 	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
 	.help_str = "set vxlan ip-version ipv4|ipv6 vni <vni> udp-src"
@@ -13229,7 +13229,7 @@ cmdline_parse_inst_t cmd_set_vxlan = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
+static cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
 	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
 	.help_str = "set vxlan-tos-ttl ip-version ipv4|ipv6 vni <vni> udp-src"
@@ -13263,7 +13263,7 @@ cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_vxlan_with_vlan = {
+static cmdline_parse_inst_t cmd_set_vxlan_with_vlan = {
 	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
 	.help_str = "set vxlan-with-vlan ip-version ipv4|ipv6 vni <vni>"
@@ -13309,48 +13309,48 @@ struct cmd_set_nvgre_result {
 	struct rte_ether_addr eth_dst;
 };
 
-cmdline_parse_token_string_t cmd_set_nvgre_set =
+static cmdline_parse_token_string_t cmd_set_nvgre_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, set, "set");
-cmdline_parse_token_string_t cmd_set_nvgre_nvgre =
+static cmdline_parse_token_string_t cmd_set_nvgre_nvgre =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre, "nvgre");
-cmdline_parse_token_string_t cmd_set_nvgre_nvgre_with_vlan =
+static cmdline_parse_token_string_t cmd_set_nvgre_nvgre_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre,
 				 "nvgre-with-vlan");
-cmdline_parse_token_string_t cmd_set_nvgre_ip_version =
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "ip-version");
-cmdline_parse_token_string_t cmd_set_nvgre_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, ip_version,
 				 "ipv4#ipv6");
-cmdline_parse_token_string_t cmd_set_nvgre_tni =
+static cmdline_parse_token_string_t cmd_set_nvgre_tni =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "tni");
-cmdline_parse_token_num_t cmd_set_nvgre_tni_value =
+static cmdline_parse_token_num_t cmd_set_nvgre_tni_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tni, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_nvgre_ip_src =
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "ip-src");
-cmdline_parse_token_num_t cmd_set_nvgre_ip_src_value =
+static cmdline_parse_token_num_t cmd_set_nvgre_ip_src_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_src);
-cmdline_parse_token_string_t cmd_set_nvgre_ip_dst =
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "ip-dst");
-cmdline_parse_token_ipaddr_t cmd_set_nvgre_ip_dst_value =
+static cmdline_parse_token_ipaddr_t cmd_set_nvgre_ip_dst_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_dst);
-cmdline_parse_token_string_t cmd_set_nvgre_vlan =
+static cmdline_parse_token_string_t cmd_set_nvgre_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "vlan-tci");
-cmdline_parse_token_num_t cmd_set_nvgre_vlan_value =
+static cmdline_parse_token_num_t cmd_set_nvgre_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tci, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_nvgre_eth_src =
+static cmdline_parse_token_string_t cmd_set_nvgre_eth_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "eth-src");
-cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_src_value =
+static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_src_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_src);
-cmdline_parse_token_string_t cmd_set_nvgre_eth_dst =
+static cmdline_parse_token_string_t cmd_set_nvgre_eth_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
 				 "eth-dst");
-cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_dst_value =
+static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_dst_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_dst);
 
 static void cmd_set_nvgre_parsed(void *parsed_result,
@@ -13391,7 +13391,7 @@ static void cmd_set_nvgre_parsed(void *parsed_result,
 		   RTE_ETHER_ADDR_LEN);
 }
 
-cmdline_parse_inst_t cmd_set_nvgre = {
+static cmdline_parse_inst_t cmd_set_nvgre = {
 	.f = cmd_set_nvgre_parsed,
 	.data = NULL,
 	.help_str = "set nvgre ip-version <ipv4|ipv6> tni <tni> ip-src"
@@ -13416,7 +13416,7 @@ cmdline_parse_inst_t cmd_set_nvgre = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_nvgre_with_vlan = {
+static cmdline_parse_inst_t cmd_set_nvgre_with_vlan = {
 	.f = cmd_set_nvgre_parsed,
 	.data = NULL,
 	.help_str = "set nvgre-with-vlan ip-version <ipv4|ipv6> tni <tni>"
@@ -13455,33 +13455,33 @@ struct cmd_set_l2_encap_result {
 	struct rte_ether_addr eth_dst;
 };
 
-cmdline_parse_token_string_t cmd_set_l2_encap_set =
+static cmdline_parse_token_string_t cmd_set_l2_encap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, set, "set");
-cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap =
+static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap, "l2_encap");
-cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap,
 				 "l2_encap-with-vlan");
-cmdline_parse_token_string_t cmd_set_l2_encap_ip_version =
+static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
 				 "ip-version");
-cmdline_parse_token_string_t cmd_set_l2_encap_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, ip_version,
 				 "ipv4#ipv6");
-cmdline_parse_token_string_t cmd_set_l2_encap_vlan =
+static cmdline_parse_token_string_t cmd_set_l2_encap_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
 				 "vlan-tci");
-cmdline_parse_token_num_t cmd_set_l2_encap_vlan_value =
+static cmdline_parse_token_num_t cmd_set_l2_encap_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_l2_encap_result, tci, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_l2_encap_eth_src =
+static cmdline_parse_token_string_t cmd_set_l2_encap_eth_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
 				 "eth-src");
-cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_src_value =
+static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_src_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_src);
-cmdline_parse_token_string_t cmd_set_l2_encap_eth_dst =
+static cmdline_parse_token_string_t cmd_set_l2_encap_eth_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
 				 "eth-dst");
-cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_dst_value =
+static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_dst_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_dst);
 
 static void cmd_set_l2_encap_parsed(void *parsed_result,
@@ -13508,7 +13508,7 @@ static void cmd_set_l2_encap_parsed(void *parsed_result,
 		   RTE_ETHER_ADDR_LEN);
 }
 
-cmdline_parse_inst_t cmd_set_l2_encap = {
+static cmdline_parse_inst_t cmd_set_l2_encap = {
 	.f = cmd_set_l2_encap_parsed,
 	.data = NULL,
 	.help_str = "set l2_encap ip-version ipv4|ipv6"
@@ -13526,7 +13526,7 @@ cmdline_parse_inst_t cmd_set_l2_encap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_l2_encap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_l2_encap_with_vlan = {
 	.f = cmd_set_l2_encap_parsed,
 	.data = NULL,
 	.help_str = "set l2_encap-with-vlan ip-version ipv4|ipv6"
@@ -13554,12 +13554,12 @@ struct cmd_set_l2_decap_result {
 	uint32_t vlan_present:1;
 };
 
-cmdline_parse_token_string_t cmd_set_l2_decap_set =
+static cmdline_parse_token_string_t cmd_set_l2_decap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, set, "set");
-cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap =
+static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
 				 "l2_decap");
-cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
 				 "l2_decap-with-vlan");
 
@@ -13575,7 +13575,7 @@ static void cmd_set_l2_decap_parsed(void *parsed_result,
 		l2_decap_conf.select_vlan = 1;
 }
 
-cmdline_parse_inst_t cmd_set_l2_decap = {
+static cmdline_parse_inst_t cmd_set_l2_decap = {
 	.f = cmd_set_l2_decap_parsed,
 	.data = NULL,
 	.help_str = "set l2_decap",
@@ -13586,7 +13586,7 @@ cmdline_parse_inst_t cmd_set_l2_decap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_l2_decap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_l2_decap_with_vlan = {
 	.f = cmd_set_l2_decap_parsed,
 	.data = NULL,
 	.help_str = "set l2_decap-with-vlan",
@@ -13612,53 +13612,53 @@ struct cmd_set_mplsogre_encap_result {
 	struct rte_ether_addr eth_dst;
 };
 
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_set =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, set,
 				 "set");
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, mplsogre,
 				 "mplsogre_encap");
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 mplsogre, "mplsogre_encap-with-vlan");
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "ip-version");
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 ip_version, "ipv4#ipv6");
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_label =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_label =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "label");
-cmdline_parse_token_num_t cmd_set_mplsogre_encap_label_value =
+static cmdline_parse_token_num_t cmd_set_mplsogre_encap_label_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, label,
 			      RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_src =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "ip-src");
-cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_src_value =
+static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_src_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_src);
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_dst =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "ip-dst");
-cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_dst_value =
+static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_dst_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_dst);
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "vlan-tci");
-cmdline_parse_token_num_t cmd_set_mplsogre_encap_vlan_value =
+static cmdline_parse_token_num_t cmd_set_mplsogre_encap_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, tci,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_src =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "eth-src");
-cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_src_value =
+static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_src_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				    eth_src);
-cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_dst =
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				 pos_token, "eth-dst");
-cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_dst_value =
+static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_dst_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
 				    eth_dst);
 
@@ -13700,7 +13700,7 @@ static void cmd_set_mplsogre_encap_parsed(void *parsed_result,
 		   RTE_ETHER_ADDR_LEN);
 }
 
-cmdline_parse_inst_t cmd_set_mplsogre_encap = {
+static cmdline_parse_inst_t cmd_set_mplsogre_encap = {
 	.f = cmd_set_mplsogre_encap_parsed,
 	.data = NULL,
 	.help_str = "set mplsogre_encap ip-version ipv4|ipv6 label <label>"
@@ -13725,7 +13725,7 @@ cmdline_parse_inst_t cmd_set_mplsogre_encap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_mplsogre_encap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_mplsogre_encap_with_vlan = {
 	.f = cmd_set_mplsogre_encap_parsed,
 	.data = NULL,
 	.help_str = "set mplsogre_encap-with-vlan ip-version ipv4|ipv6"
@@ -13761,19 +13761,19 @@ struct cmd_set_mplsogre_decap_result {
 	uint32_t vlan_present:1;
 };
 
-cmdline_parse_token_string_t cmd_set_mplsogre_decap_set =
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, set,
 				 "set");
-cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap =
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, mplsogre,
 				 "mplsogre_decap");
-cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
 				 mplsogre, "mplsogre_decap-with-vlan");
-cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version =
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
 				 pos_token, "ip-version");
-cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
 				 ip_version, "ipv4#ipv6");
 
@@ -13793,7 +13793,7 @@ static void cmd_set_mplsogre_decap_parsed(void *parsed_result,
 		mplsogre_decap_conf.select_ipv4 = 0;
 }
 
-cmdline_parse_inst_t cmd_set_mplsogre_decap = {
+static cmdline_parse_inst_t cmd_set_mplsogre_decap = {
 	.f = cmd_set_mplsogre_decap_parsed,
 	.data = NULL,
 	.help_str = "set mplsogre_decap ip-version ipv4|ipv6",
@@ -13806,7 +13806,7 @@ cmdline_parse_inst_t cmd_set_mplsogre_decap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_mplsogre_decap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_mplsogre_decap_with_vlan = {
 	.f = cmd_set_mplsogre_decap_parsed,
 	.data = NULL,
 	.help_str = "set mplsogre_decap-with-vlan ip-version ipv4|ipv6",
@@ -13836,65 +13836,65 @@ struct cmd_set_mplsoudp_encap_result {
 	struct rte_ether_addr eth_dst;
 };
 
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_set =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, set,
 				 "set");
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, mplsoudp,
 				 "mplsoudp_encap");
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 mplsoudp, "mplsoudp_encap-with-vlan");
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "ip-version");
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 ip_version, "ipv4#ipv6");
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_label =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_label =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "label");
-cmdline_parse_token_num_t cmd_set_mplsoudp_encap_label_value =
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_label_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, label,
 			      RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_src =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "udp-src");
-cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_src_value =
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_src_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_src,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_dst =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "udp-dst");
-cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_dst_value =
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_dst_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_dst,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_src =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "ip-src");
-cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_src_value =
+static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_src_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_src);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_dst =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "ip-dst");
-cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_dst_value =
+static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_dst_value =
 	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_dst);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "vlan-tci");
-cmdline_parse_token_num_t cmd_set_mplsoudp_encap_vlan_value =
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_vlan_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, tci,
 			      RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_src =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_src =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "eth-src");
-cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_src_value =
+static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_src_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				    eth_src);
-cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_dst =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_dst =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				 pos_token, "eth-dst");
-cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_dst_value =
+static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_dst_value =
 	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
 				    eth_dst);
 
@@ -13938,7 +13938,7 @@ static void cmd_set_mplsoudp_encap_parsed(void *parsed_result,
 		   RTE_ETHER_ADDR_LEN);
 }
 
-cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
+static cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
 	.f = cmd_set_mplsoudp_encap_parsed,
 	.data = NULL,
 	.help_str = "set mplsoudp_encap ip-version ipv4|ipv6 label <label>"
@@ -13967,7 +13967,7 @@ cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_mplsoudp_encap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_mplsoudp_encap_with_vlan = {
 	.f = cmd_set_mplsoudp_encap_parsed,
 	.data = NULL,
 	.help_str = "set mplsoudp_encap-with-vlan ip-version ipv4|ipv6"
@@ -14008,19 +14008,19 @@ struct cmd_set_mplsoudp_decap_result {
 	uint32_t vlan_present:1;
 };
 
-cmdline_parse_token_string_t cmd_set_mplsoudp_decap_set =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, set,
 				 "set");
-cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, mplsoudp,
 				 "mplsoudp_decap");
-cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
 				 mplsoudp, "mplsoudp_decap-with-vlan");
-cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
 				 pos_token, "ip-version");
-cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version_value =
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
 				 ip_version, "ipv4#ipv6");
 
@@ -14040,7 +14040,7 @@ static void cmd_set_mplsoudp_decap_parsed(void *parsed_result,
 		mplsoudp_decap_conf.select_ipv4 = 0;
 }
 
-cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
+static cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
 	.f = cmd_set_mplsoudp_decap_parsed,
 	.data = NULL,
 	.help_str = "set mplsoudp_decap ip-version ipv4|ipv6",
@@ -14053,7 +14053,7 @@ cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
 	},
 };
 
-cmdline_parse_inst_t cmd_set_mplsoudp_decap_with_vlan = {
+static cmdline_parse_inst_t cmd_set_mplsoudp_decap_with_vlan = {
 	.f = cmd_set_mplsoudp_decap_parsed,
 	.data = NULL,
 	.help_str = "set mplsoudp_decap-with-vlan ip-version ipv4|ipv6",
@@ -14105,109 +14105,109 @@ struct cmd_set_conntrack_common_result {
 	uint32_t le;
 };
 
-cmdline_parse_token_string_t cmd_set_conntrack_set =
+static cmdline_parse_token_string_t cmd_set_conntrack_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 set, "set");
-cmdline_parse_token_string_t cmd_set_conntrack_conntrack =
+static cmdline_parse_token_string_t cmd_set_conntrack_conntrack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 conntrack, "conntrack");
-cmdline_parse_token_string_t cmd_set_conntrack_common_com =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_com =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 common, "com");
-cmdline_parse_token_string_t cmd_set_conntrack_common_peer =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_peer =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 peer, "peer");
-cmdline_parse_token_num_t cmd_set_conntrack_common_peer_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_peer_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      peer_port, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_conntrack_common_is_orig =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_is_orig =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 is_orig, "is_orig");
-cmdline_parse_token_num_t cmd_set_conntrack_common_is_orig_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_is_orig_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      is_original, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_enable =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_enable =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 enable, "enable");
-cmdline_parse_token_num_t cmd_set_conntrack_common_enable_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_enable_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      en, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_live =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_live =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 live, "live");
-cmdline_parse_token_num_t cmd_set_conntrack_common_live_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_live_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      is_live, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_sack =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_sack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 sack, "sack");
-cmdline_parse_token_num_t cmd_set_conntrack_common_sack_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_sack_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      s_ack, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_cack =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_cack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 cack, "cack");
-cmdline_parse_token_num_t cmd_set_conntrack_common_cack_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_cack_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      c_ack, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_dir =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_dir =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_dir, "last_dir");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_dir_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_dir_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      ld, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_liberal =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_liberal =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 liberal, "liberal");
-cmdline_parse_token_num_t cmd_set_conntrack_common_liberal_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_liberal_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      lb, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_state =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_state =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 state, "state");
-cmdline_parse_token_num_t cmd_set_conntrack_common_state_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_state_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      stat, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_conntrack_common_max_ackwin =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_max_ackwin =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 max_ack_win, "max_ack_win");
-cmdline_parse_token_num_t cmd_set_conntrack_common_max_ackwin_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_max_ackwin_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      factor, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_conntrack_common_retrans =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_retrans =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 retrans, "r_lim");
-cmdline_parse_token_num_t cmd_set_conntrack_common_retrans_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_retrans_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      re_num, RTE_UINT8);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_win =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_win =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_win, "last_win");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_win_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_win_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      lw, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_seq =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_seq =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_seq, "last_seq");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_seq_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_seq_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      ls, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_ack =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_ack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_ack, "last_ack");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_ack_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_ack_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      la, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_end =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_end =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_end, "last_end");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_end_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_end_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      le, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_common_last_index =
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_index =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
 				 last_index, "last_index");
-cmdline_parse_token_num_t cmd_set_conntrack_common_last_index_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_index_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
 			      li, RTE_UINT8);
 
@@ -14237,7 +14237,7 @@ static void cmd_set_conntrack_common_parsed(void *parsed_result,
 	conntrack_context.last_end = res->le;
 }
 
-cmdline_parse_inst_t cmd_set_conntrack_common = {
+static cmdline_parse_inst_t cmd_set_conntrack_common = {
 	.f = cmd_set_conntrack_common_parsed,
 	.data = NULL,
 	.help_str = "set conntrack com peer <port_id> is_orig <dir> enable <en>"
@@ -14308,61 +14308,55 @@ struct cmd_set_conntrack_dir_result {
 	uint32_t ma;
 };
 
-cmdline_parse_token_string_t cmd_set_conntrack_dir_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 set, "set");
-cmdline_parse_token_string_t cmd_set_conntrack_dir_conntrack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 conntrack, "conntrack");
-cmdline_parse_token_string_t cmd_set_conntrack_dir_dir =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_dir =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 dir, "orig#rply");
-cmdline_parse_token_string_t cmd_set_conntrack_dir_scale =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_scale =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 scale, "scale");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_scale_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_scale_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      factor, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_fin =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_fin =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 fin, "fin");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_fin_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_fin_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      f, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_ack =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_ack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 ack_seen, "acked");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_ack_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_ack_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      as, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_unack_data =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_unack_data =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 unack, "unack_data");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_unack_data_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_unack_data_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      un, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_sent_end =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_sent_end =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 sent_end, "sent_end");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_sent_end_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_sent_end_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      se, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_reply_end =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_reply_end =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 reply_end, "reply_end");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_reply_end_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_reply_end_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      re, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_max_win =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_win =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 max_win, "max_win");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_max_win_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_win_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      mw, RTE_UINT32);
-cmdline_parse_token_string_t cmd_set_conntrack_dir_max_ack =
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_ack =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
 				 max_ack, "max_ack");
-cmdline_parse_token_num_t cmd_set_conntrack_dir_max_ack_value =
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_ack_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
 			      ma, RTE_UINT32);
 
@@ -14389,7 +14383,7 @@ static void cmd_set_conntrack_dir_parsed(void *parsed_result,
 	dir->max_win = res->mw;
 }
 
-cmdline_parse_inst_t cmd_set_conntrack_dir = {
+static cmdline_parse_inst_t cmd_set_conntrack_dir = {
 	.f = cmd_set_conntrack_dir_parsed,
 	.data = NULL,
 	.help_str = "set conntrack orig|rply scale <factor> fin <sent>"
@@ -14453,7 +14447,7 @@ cmd_strict_link_prio_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_strict_link_prio = {
+static cmdline_parse_inst_t cmd_strict_link_prio = {
 	.f = cmd_strict_link_prio_parsed,
 	.data = NULL,
 	.help_str = "set tx strict-link-priority <port_id> <tc_bitmap>",
@@ -14475,14 +14469,14 @@ struct cmd_ddp_add_result {
 	char filepath[];
 };
 
-cmdline_parse_token_string_t cmd_ddp_add_ddp =
+static cmdline_parse_token_string_t cmd_ddp_add_ddp =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, ddp, "ddp");
-cmdline_parse_token_string_t cmd_ddp_add_add =
+static cmdline_parse_token_string_t cmd_ddp_add_add =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, add, "add");
-cmdline_parse_token_num_t cmd_ddp_add_port_id =
+static cmdline_parse_token_num_t cmd_ddp_add_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_ddp_add_result, port_id,
 		RTE_UINT16);
-cmdline_parse_token_string_t cmd_ddp_add_filepath =
+static cmdline_parse_token_string_t cmd_ddp_add_filepath =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, filepath, NULL);
 
 static void
@@ -14535,7 +14529,7 @@ cmd_ddp_add_parsed(
 	free((void *)filepath);
 }
 
-cmdline_parse_inst_t cmd_ddp_add = {
+static cmdline_parse_inst_t cmd_ddp_add = {
 	.f = cmd_ddp_add_parsed,
 	.data = NULL,
 	.help_str = "ddp add <port_id> <profile_path[,backup_profile_path]>",
@@ -14556,13 +14550,13 @@ struct cmd_ddp_del_result {
 	char filepath[];
 };
 
-cmdline_parse_token_string_t cmd_ddp_del_ddp =
+static cmdline_parse_token_string_t cmd_ddp_del_ddp =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, ddp, "ddp");
-cmdline_parse_token_string_t cmd_ddp_del_del =
+static cmdline_parse_token_string_t cmd_ddp_del_del =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, del, "del");
-cmdline_parse_token_num_t cmd_ddp_del_port_id =
+static cmdline_parse_token_num_t cmd_ddp_del_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_ddp_del_result, port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_ddp_del_filepath =
+static cmdline_parse_token_string_t cmd_ddp_del_filepath =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, filepath, NULL);
 
 static void
@@ -14600,7 +14594,7 @@ cmd_ddp_del_parsed(
 	close_file(buff);
 }
 
-cmdline_parse_inst_t cmd_ddp_del = {
+static cmdline_parse_inst_t cmd_ddp_del = {
 	.f = cmd_ddp_del_parsed,
 	.data = NULL,
 	.help_str = "ddp del <port_id> <backup_profile_path>",
@@ -14621,13 +14615,13 @@ struct cmd_ddp_info_result {
 	char filepath[];
 };
 
-cmdline_parse_token_string_t cmd_ddp_info_ddp =
+static cmdline_parse_token_string_t cmd_ddp_info_ddp =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, ddp, "ddp");
-cmdline_parse_token_string_t cmd_ddp_info_get =
+static cmdline_parse_token_string_t cmd_ddp_info_get =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, get, "get");
-cmdline_parse_token_string_t cmd_ddp_info_info =
+static cmdline_parse_token_string_t cmd_ddp_info_info =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, info, "info");
-cmdline_parse_token_string_t cmd_ddp_info_filepath =
+static cmdline_parse_token_string_t cmd_ddp_info_filepath =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, filepath, NULL);
 
 static void
@@ -14836,7 +14830,7 @@ cmd_ddp_info_parsed(
 	close_file(pkg);
 }
 
-cmdline_parse_inst_t cmd_ddp_get_info = {
+static cmdline_parse_inst_t cmd_ddp_get_info = {
 	.f = cmd_ddp_info_parsed,
 	.data = NULL,
 	.help_str = "ddp get info <profile_path>",
@@ -14860,13 +14854,13 @@ struct cmd_ddp_get_list_result {
 	portid_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_ddp_get_list_ddp =
+static cmdline_parse_token_string_t cmd_ddp_get_list_ddp =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, ddp, "ddp");
-cmdline_parse_token_string_t cmd_ddp_get_list_get =
+static cmdline_parse_token_string_t cmd_ddp_get_list_get =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, get, "get");
-cmdline_parse_token_string_t cmd_ddp_get_list_list =
+static cmdline_parse_token_string_t cmd_ddp_get_list_list =
 	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, list, "list");
-cmdline_parse_token_num_t cmd_ddp_get_list_port_id =
+static cmdline_parse_token_num_t cmd_ddp_get_list_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_ddp_get_list_result, port_id,
 		RTE_UINT16);
 
@@ -14922,7 +14916,7 @@ cmd_ddp_get_list_parsed(
 		fprintf(stderr, "Failed to get ddp list\n");
 }
 
-cmdline_parse_inst_t cmd_ddp_get_list = {
+static cmdline_parse_inst_t cmd_ddp_get_list = {
 	.f = cmd_ddp_get_list_parsed,
 	.data = NULL,
 	.help_str = "ddp get list <port_id>",
@@ -15011,36 +15005,36 @@ cmd_cfg_input_set_parsed(
 		fprintf(stderr, "Function not supported\n");
 }
 
-cmdline_parse_token_string_t cmd_cfg_input_set_port =
+static cmdline_parse_token_string_t cmd_cfg_input_set_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 port, "port");
-cmdline_parse_token_string_t cmd_cfg_input_set_cfg =
+static cmdline_parse_token_string_t cmd_cfg_input_set_cfg =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 cfg, "config");
-cmdline_parse_token_num_t cmd_cfg_input_set_port_id =
+static cmdline_parse_token_num_t cmd_cfg_input_set_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_cfg_input_set_pctype =
+static cmdline_parse_token_string_t cmd_cfg_input_set_pctype =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 pctype, "pctype");
-cmdline_parse_token_num_t cmd_cfg_input_set_pctype_id =
+static cmdline_parse_token_num_t cmd_cfg_input_set_pctype_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
 			      pctype_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_cfg_input_set_inset_type =
+static cmdline_parse_token_string_t cmd_cfg_input_set_inset_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 inset_type,
 				 "hash_inset#fdir_inset#fdir_flx_inset");
-cmdline_parse_token_string_t cmd_cfg_input_set_opt =
+static cmdline_parse_token_string_t cmd_cfg_input_set_opt =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 opt, "get#set#clear");
-cmdline_parse_token_string_t cmd_cfg_input_set_field =
+static cmdline_parse_token_string_t cmd_cfg_input_set_field =
 	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
 				 field, "field");
-cmdline_parse_token_num_t cmd_cfg_input_set_field_idx =
+static cmdline_parse_token_num_t cmd_cfg_input_set_field_idx =
 	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
 			      field_idx, RTE_UINT8);
 
-cmdline_parse_inst_t cmd_cfg_input_set = {
+static cmdline_parse_inst_t cmd_cfg_input_set = {
 	.f = cmd_cfg_input_set_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
@@ -15112,33 +15106,33 @@ cmd_clear_input_set_parsed(
 		fprintf(stderr, "Function not supported\n");
 }
 
-cmdline_parse_token_string_t cmd_clear_input_set_port =
+static cmdline_parse_token_string_t cmd_clear_input_set_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 port, "port");
-cmdline_parse_token_string_t cmd_clear_input_set_cfg =
+static cmdline_parse_token_string_t cmd_clear_input_set_cfg =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 cfg, "config");
-cmdline_parse_token_num_t cmd_clear_input_set_port_id =
+static cmdline_parse_token_num_t cmd_clear_input_set_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
 			      port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_clear_input_set_pctype =
+static cmdline_parse_token_string_t cmd_clear_input_set_pctype =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 pctype, "pctype");
-cmdline_parse_token_num_t cmd_clear_input_set_pctype_id =
+static cmdline_parse_token_num_t cmd_clear_input_set_pctype_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
 			      pctype_id, RTE_UINT8);
-cmdline_parse_token_string_t cmd_clear_input_set_inset_type =
+static cmdline_parse_token_string_t cmd_clear_input_set_inset_type =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 inset_type,
 				 "hash_inset#fdir_inset#fdir_flx_inset");
-cmdline_parse_token_string_t cmd_clear_input_set_clear =
+static cmdline_parse_token_string_t cmd_clear_input_set_clear =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 clear, "clear");
-cmdline_parse_token_string_t cmd_clear_input_set_all =
+static cmdline_parse_token_string_t cmd_clear_input_set_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
 				 all, "all");
 
-cmdline_parse_inst_t cmd_clear_input_set = {
+static cmdline_parse_inst_t cmd_clear_input_set = {
 	.f = cmd_clear_input_set_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
@@ -15168,23 +15162,23 @@ struct cmd_show_vf_stats_result {
 };
 
 /* Common CLI fields show vf stats*/
-cmdline_parse_token_string_t cmd_show_vf_stats_show =
+static cmdline_parse_token_string_t cmd_show_vf_stats_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_vf_stats_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_show_vf_stats_vf =
+static cmdline_parse_token_string_t cmd_show_vf_stats_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_vf_stats_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_show_vf_stats_stats =
+static cmdline_parse_token_string_t cmd_show_vf_stats_stats =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_vf_stats_result,
 		 stats, "stats");
-cmdline_parse_token_num_t cmd_show_vf_stats_port_id =
+static cmdline_parse_token_num_t cmd_show_vf_stats_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_vf_stats_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_show_vf_stats_vf_id =
+static cmdline_parse_token_num_t cmd_show_vf_stats_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_vf_stats_result,
 		 vf_id, RTE_UINT16);
@@ -15251,7 +15245,7 @@ cmd_show_vf_stats_parsed(
 			       nic_stats_border, nic_stats_border);
 }
 
-cmdline_parse_inst_t cmd_show_vf_stats = {
+static cmdline_parse_inst_t cmd_show_vf_stats = {
 	.f = cmd_show_vf_stats_parsed,
 	.data = NULL,
 	.help_str = "show vf stats <port_id> <vf_id>",
@@ -15277,23 +15271,23 @@ struct cmd_clear_vf_stats_result {
 };
 
 /* Common CLI fields clear vf stats*/
-cmdline_parse_token_string_t cmd_clear_vf_stats_clear =
+static cmdline_parse_token_string_t cmd_clear_vf_stats_clear =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_clear_vf_stats_result,
 		 clear, "clear");
-cmdline_parse_token_string_t cmd_clear_vf_stats_vf =
+static cmdline_parse_token_string_t cmd_clear_vf_stats_vf =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_clear_vf_stats_result,
 		 vf, "vf");
-cmdline_parse_token_string_t cmd_clear_vf_stats_stats =
+static cmdline_parse_token_string_t cmd_clear_vf_stats_stats =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_clear_vf_stats_result,
 		 stats, "stats");
-cmdline_parse_token_num_t cmd_clear_vf_stats_port_id =
+static cmdline_parse_token_num_t cmd_clear_vf_stats_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_clear_vf_stats_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_clear_vf_stats_vf_id =
+static cmdline_parse_token_num_t cmd_clear_vf_stats_vf_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_clear_vf_stats_result,
 		 vf_id, RTE_UINT16);
@@ -15338,7 +15332,7 @@ cmd_clear_vf_stats_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_clear_vf_stats = {
+static cmdline_parse_inst_t cmd_clear_vf_stats = {
 	.f = cmd_clear_vf_stats_parsed,
 	.data = NULL,
 	.help_str = "clear vf stats <port_id> <vf_id>",
@@ -15365,27 +15359,27 @@ struct cmd_pctype_mapping_reset_result {
 };
 
 /* Common CLI fields for port config pctype mapping reset*/
-cmdline_parse_token_string_t cmd_pctype_mapping_reset_port =
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 port, "port");
-cmdline_parse_token_string_t cmd_pctype_mapping_reset_config =
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_config =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 config, "config");
-cmdline_parse_token_num_t cmd_pctype_mapping_reset_port_id =
+static cmdline_parse_token_num_t cmd_pctype_mapping_reset_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_pctype_mapping_reset_pctype =
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_pctype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 pctype, "pctype");
-cmdline_parse_token_string_t cmd_pctype_mapping_reset_mapping =
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_pctype_mapping_reset_reset =
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_reset =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_reset_result,
 		 reset, "reset");
@@ -15420,7 +15414,7 @@ cmd_pctype_mapping_reset_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_pctype_mapping_reset = {
+static cmdline_parse_inst_t cmd_pctype_mapping_reset = {
 	.f = cmd_pctype_mapping_reset_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> pctype mapping reset",
@@ -15447,23 +15441,23 @@ struct cmd_pctype_mapping_get_result {
 };
 
 /* Common CLI fields for pctype mapping get */
-cmdline_parse_token_string_t cmd_pctype_mapping_get_show =
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_get_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_pctype_mapping_get_port =
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_get_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_pctype_mapping_get_port_id =
+static cmdline_parse_token_num_t cmd_pctype_mapping_get_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_pctype_mapping_get_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_pctype_mapping_get_pctype =
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_pctype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_get_result,
 		 pctype, "pctype");
-cmdline_parse_token_string_t cmd_pctype_mapping_get_mapping =
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_get_result,
 		 mapping, "mapping");
@@ -15522,7 +15516,7 @@ cmd_pctype_mapping_get_parsed(
 #endif
 }
 
-cmdline_parse_inst_t cmd_pctype_mapping_get = {
+static cmdline_parse_inst_t cmd_pctype_mapping_get = {
 	.f = cmd_pctype_mapping_get_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> pctype mapping",
@@ -15551,35 +15545,35 @@ struct cmd_pctype_mapping_update_result {
 };
 
 /* Common CLI fields for pctype mapping update*/
-cmdline_parse_token_string_t cmd_pctype_mapping_update_port =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 port, "port");
-cmdline_parse_token_string_t cmd_pctype_mapping_update_config =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_config =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 config, "config");
-cmdline_parse_token_num_t cmd_pctype_mapping_update_port_id =
+static cmdline_parse_token_num_t cmd_pctype_mapping_update_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_pctype_mapping_update_pctype =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_pctype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 pctype, "pctype");
-cmdline_parse_token_string_t cmd_pctype_mapping_update_mapping =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_pctype_mapping_update_update =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_update =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 update, "update");
-cmdline_parse_token_string_t cmd_pctype_mapping_update_pc_type =
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_pc_type =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 pctype_list, NULL);
-cmdline_parse_token_num_t cmd_pctype_mapping_update_flow_type =
+static cmdline_parse_token_num_t cmd_pctype_mapping_update_flow_type =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_pctype_mapping_update_result,
 		 flow_type, RTE_UINT16);
@@ -15631,7 +15625,7 @@ cmd_pctype_mapping_update_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_pctype_mapping_update = {
+static cmdline_parse_inst_t cmd_pctype_mapping_update = {
 	.f = cmd_pctype_mapping_update_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> pctype mapping update"
@@ -15661,23 +15655,23 @@ struct cmd_ptype_mapping_get_result {
 };
 
 /* Common CLI fields for ptype mapping get */
-cmdline_parse_token_string_t cmd_ptype_mapping_get_ptype =
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_ptype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_get_result,
 		 ptype, "ptype");
-cmdline_parse_token_string_t cmd_ptype_mapping_get_mapping =
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_get_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_ptype_mapping_get_get =
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_get =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_get_result,
 		 get, "get");
-cmdline_parse_token_num_t cmd_ptype_mapping_get_port_id =
+static cmdline_parse_token_num_t cmd_ptype_mapping_get_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_get_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_ptype_mapping_get_valid_only =
+static cmdline_parse_token_num_t cmd_ptype_mapping_get_valid_only =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_get_result,
 		 valid_only, RTE_UINT8);
@@ -15730,7 +15724,7 @@ cmd_ptype_mapping_get_parsed(
 #endif
 }
 
-cmdline_parse_inst_t cmd_ptype_mapping_get = {
+static cmdline_parse_inst_t cmd_ptype_mapping_get = {
 	.f = cmd_ptype_mapping_get_parsed,
 	.data = NULL,
 	.help_str = "ptype mapping get <port_id> <valid_only>",
@@ -15758,31 +15752,31 @@ struct cmd_ptype_mapping_replace_result {
 };
 
 /* Common CLI fields for ptype mapping replace */
-cmdline_parse_token_string_t cmd_ptype_mapping_replace_ptype =
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_ptype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 ptype, "ptype");
-cmdline_parse_token_string_t cmd_ptype_mapping_replace_mapping =
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_ptype_mapping_replace_replace =
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_replace =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 replace, "replace");
-cmdline_parse_token_num_t cmd_ptype_mapping_replace_port_id =
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_ptype_mapping_replace_target =
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_target =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 target, RTE_UINT32);
-cmdline_parse_token_num_t cmd_ptype_mapping_replace_mask =
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_mask =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 mask, RTE_UINT8);
-cmdline_parse_token_num_t cmd_ptype_mapping_replace_pkt_type =
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_pkt_type =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_replace_result,
 		 pkt_type, RTE_UINT32);
@@ -15824,7 +15818,7 @@ cmd_ptype_mapping_replace_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_ptype_mapping_replace = {
+static cmdline_parse_inst_t cmd_ptype_mapping_replace = {
 	.f = cmd_ptype_mapping_replace_parsed,
 	.data = NULL,
 	.help_str =
@@ -15852,19 +15846,19 @@ struct cmd_ptype_mapping_reset_result {
 };
 
 /* Common CLI fields for ptype mapping reset*/
-cmdline_parse_token_string_t cmd_ptype_mapping_reset_ptype =
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_ptype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_reset_result,
 		 ptype, "ptype");
-cmdline_parse_token_string_t cmd_ptype_mapping_reset_mapping =
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_reset_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_ptype_mapping_reset_reset =
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_reset =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_reset_result,
 		 reset, "reset");
-cmdline_parse_token_num_t cmd_ptype_mapping_reset_port_id =
+static cmdline_parse_token_num_t cmd_ptype_mapping_reset_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_reset_result,
 		 port_id, RTE_UINT16);
@@ -15899,7 +15893,7 @@ cmd_ptype_mapping_reset_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_ptype_mapping_reset = {
+static cmdline_parse_inst_t cmd_ptype_mapping_reset = {
 	.f = cmd_ptype_mapping_reset_parsed,
 	.data = NULL,
 	.help_str = "ptype mapping reset <port_id>",
@@ -15925,27 +15919,27 @@ struct cmd_ptype_mapping_update_result {
 };
 
 /* Common CLI fields for ptype mapping update*/
-cmdline_parse_token_string_t cmd_ptype_mapping_update_ptype =
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_ptype =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 ptype, "ptype");
-cmdline_parse_token_string_t cmd_ptype_mapping_update_mapping =
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_mapping =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 mapping, "mapping");
-cmdline_parse_token_string_t cmd_ptype_mapping_update_update =
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_update =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 reset, "update");
-cmdline_parse_token_num_t cmd_ptype_mapping_update_port_id =
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_ptype_mapping_update_hw_ptype =
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_hw_ptype =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 hw_ptype, RTE_UINT8);
-cmdline_parse_token_num_t cmd_ptype_mapping_update_sw_ptype =
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_sw_ptype =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_ptype_mapping_update_result,
 		 sw_ptype, RTE_UINT32);
@@ -15990,7 +15984,7 @@ cmd_ptype_mapping_update_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_ptype_mapping_update = {
+static cmdline_parse_inst_t cmd_ptype_mapping_update = {
 	.f = cmd_ptype_mapping_update_parsed,
 	.data = NULL,
 	.help_str = "ptype mapping update <port_id> <hw_ptype> <sw_ptype>",
@@ -16012,9 +16006,9 @@ struct cmd_cmdfile_result {
 };
 
 /* Common CLI fields for file commands */
-cmdline_parse_token_string_t cmd_load_cmdfile =
+static cmdline_parse_token_string_t cmd_load_cmdfile =
 	TOKEN_STRING_INITIALIZER(struct cmd_cmdfile_result, load, "load");
-cmdline_parse_token_string_t cmd_load_cmdfile_filename =
+static cmdline_parse_token_string_t cmd_load_cmdfile_filename =
 	TOKEN_STRING_INITIALIZER(struct cmd_cmdfile_result, filename, NULL);
 
 static void
@@ -16028,7 +16022,7 @@ cmd_load_from_file_parsed(
 	cmdline_read_from_file(res->filename);
 }
 
-cmdline_parse_inst_t cmd_load_from_file = {
+static cmdline_parse_inst_t cmd_load_from_file = {
 	.f = cmd_load_from_file_parsed,
 	.data = NULL,
 	.help_str = "load <filename>",
@@ -16048,23 +16042,23 @@ struct cmd_rx_offload_get_capa_result {
 	cmdline_fixed_string_t capabilities;
 };
 
-cmdline_parse_token_string_t cmd_rx_offload_get_capa_show =
+static cmdline_parse_token_string_t cmd_rx_offload_get_capa_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_capa_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_rx_offload_get_capa_port =
+static cmdline_parse_token_string_t cmd_rx_offload_get_capa_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_capa_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_rx_offload_get_capa_port_id =
+static cmdline_parse_token_num_t cmd_rx_offload_get_capa_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_rx_offload_get_capa_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_rx_offload_get_capa_rx_offload =
+static cmdline_parse_token_string_t cmd_rx_offload_get_capa_rx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_capa_result,
 		 rx_offload, "rx_offload");
-cmdline_parse_token_string_t cmd_rx_offload_get_capa_capabilities =
+static cmdline_parse_token_string_t cmd_rx_offload_get_capa_capabilities =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_capa_result,
 		 capabilities, "capabilities");
@@ -16122,7 +16116,7 @@ cmd_rx_offload_get_capa_parsed(
 	printf("\n\n");
 }
 
-cmdline_parse_inst_t cmd_rx_offload_get_capa = {
+static cmdline_parse_inst_t cmd_rx_offload_get_capa = {
 	.f = cmd_rx_offload_get_capa_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rx_offload capabilities",
@@ -16145,23 +16139,23 @@ struct cmd_rx_offload_get_configuration_result {
 	cmdline_fixed_string_t configuration;
 };
 
-cmdline_parse_token_string_t cmd_rx_offload_get_configuration_show =
+static cmdline_parse_token_string_t cmd_rx_offload_get_configuration_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_configuration_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_rx_offload_get_configuration_port =
+static cmdline_parse_token_string_t cmd_rx_offload_get_configuration_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_configuration_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_rx_offload_get_configuration_port_id =
+static cmdline_parse_token_num_t cmd_rx_offload_get_configuration_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_rx_offload_get_configuration_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_rx_offload_get_configuration_rx_offload =
+static cmdline_parse_token_string_t cmd_rx_offload_get_configuration_rx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_configuration_result,
 		 rx_offload, "rx_offload");
-cmdline_parse_token_string_t cmd_rx_offload_get_configuration_configuration =
+static cmdline_parse_token_string_t cmd_rx_offload_get_configuration_configuration =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_rx_offload_get_configuration_result,
 		 configuration, "configuration");
@@ -16208,7 +16202,7 @@ cmd_rx_offload_get_configuration_parsed(
 	printf("\n");
 }
 
-cmdline_parse_inst_t cmd_rx_offload_get_configuration = {
+static cmdline_parse_inst_t cmd_rx_offload_get_configuration = {
 	.f = cmd_rx_offload_get_configuration_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rx_offload configuration",
@@ -16232,23 +16226,23 @@ struct cmd_config_per_port_rx_offload_result {
 	cmdline_fixed_string_t on_off;
 };
 
-cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_port =
+static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 port, "port");
-cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_config =
+static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_config =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 config, "config");
-cmdline_parse_token_num_t cmd_config_per_port_rx_offload_result_port_id =
+static cmdline_parse_token_num_t cmd_config_per_port_rx_offload_result_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_rx_offload =
+static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_rx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 rx_offload, "rx_offload");
-cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_offload =
+static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 offload, "vlan_strip#ipv4_cksum#udp_cksum#tcp_cksum#tcp_lro#"
@@ -16256,7 +16250,7 @@ cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_offload =
 			   "header_split#vlan_filter#vlan_extend#jumbo_frame#"
 			   "scatter#buffer_split#timestamp#security#"
 			   "keep_crc#rss_hash");
-cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_on_off =
+static cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
 		 on_off, "on#off");
@@ -16330,7 +16324,7 @@ cmd_config_per_port_rx_offload_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(port_id, 1, 1);
 }
 
-cmdline_parse_inst_t cmd_config_per_port_rx_offload = {
+static cmdline_parse_inst_t cmd_config_per_port_rx_offload = {
 	.f = cmd_config_per_port_rx_offload_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> rx_offload vlan_strip|ipv4_cksum|"
@@ -16360,34 +16354,34 @@ struct cmd_config_per_queue_rx_offload_result {
 	cmdline_fixed_string_t on_off;
 };
 
-cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_port =
+static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_config_per_queue_rx_offload_result_port_id =
+static cmdline_parse_token_num_t cmd_config_per_queue_rx_offload_result_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_rxq =
+static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_rxq =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 rxq, "rxq");
-cmdline_parse_token_num_t cmd_config_per_queue_rx_offload_result_queue_id =
+static cmdline_parse_token_num_t cmd_config_per_queue_rx_offload_result_queue_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 queue_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_rxoffload =
+static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_rxoffload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 rx_offload, "rx_offload");
-cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_offload =
+static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 offload, "vlan_strip#ipv4_cksum#udp_cksum#tcp_cksum#tcp_lro#"
 			   "qinq_strip#outer_ipv4_cksum#macsec_strip#"
 			   "header_split#vlan_filter#vlan_extend#jumbo_frame#"
 			   "scatter#buffer_split#timestamp#security#keep_crc");
-cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_on_off =
+static cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
 		 on_off, "on#off");
@@ -16437,7 +16431,7 @@ cmd_config_per_queue_rx_offload_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(port_id, 1, 1);
 }
 
-cmdline_parse_inst_t cmd_config_per_queue_rx_offload = {
+static cmdline_parse_inst_t cmd_config_per_queue_rx_offload = {
 	.f = cmd_config_per_queue_rx_offload_parsed,
 	.data = NULL,
 	.help_str = "port <port_id> rxq <queue_id> rx_offload "
@@ -16467,23 +16461,23 @@ struct cmd_tx_offload_get_capa_result {
 	cmdline_fixed_string_t capabilities;
 };
 
-cmdline_parse_token_string_t cmd_tx_offload_get_capa_show =
+static cmdline_parse_token_string_t cmd_tx_offload_get_capa_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_capa_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_tx_offload_get_capa_port =
+static cmdline_parse_token_string_t cmd_tx_offload_get_capa_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_capa_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_tx_offload_get_capa_port_id =
+static cmdline_parse_token_num_t cmd_tx_offload_get_capa_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_tx_offload_get_capa_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_tx_offload_get_capa_tx_offload =
+static cmdline_parse_token_string_t cmd_tx_offload_get_capa_tx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_capa_result,
 		 tx_offload, "tx_offload");
-cmdline_parse_token_string_t cmd_tx_offload_get_capa_capabilities =
+static cmdline_parse_token_string_t cmd_tx_offload_get_capa_capabilities =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_capa_result,
 		 capabilities, "capabilities");
@@ -16541,7 +16535,7 @@ cmd_tx_offload_get_capa_parsed(
 	printf("\n\n");
 }
 
-cmdline_parse_inst_t cmd_tx_offload_get_capa = {
+static cmdline_parse_inst_t cmd_tx_offload_get_capa = {
 	.f = cmd_tx_offload_get_capa_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> tx_offload capabilities",
@@ -16564,23 +16558,23 @@ struct cmd_tx_offload_get_configuration_result {
 	cmdline_fixed_string_t configuration;
 };
 
-cmdline_parse_token_string_t cmd_tx_offload_get_configuration_show =
+static cmdline_parse_token_string_t cmd_tx_offload_get_configuration_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_configuration_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_tx_offload_get_configuration_port =
+static cmdline_parse_token_string_t cmd_tx_offload_get_configuration_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_configuration_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_tx_offload_get_configuration_port_id =
+static cmdline_parse_token_num_t cmd_tx_offload_get_configuration_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_tx_offload_get_configuration_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_tx_offload_get_configuration_tx_offload =
+static cmdline_parse_token_string_t cmd_tx_offload_get_configuration_tx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_configuration_result,
 		 tx_offload, "tx_offload");
-cmdline_parse_token_string_t cmd_tx_offload_get_configuration_configuration =
+static cmdline_parse_token_string_t cmd_tx_offload_get_configuration_configuration =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_tx_offload_get_configuration_result,
 		 configuration, "configuration");
@@ -16627,7 +16621,7 @@ cmd_tx_offload_get_configuration_parsed(
 	printf("\n");
 }
 
-cmdline_parse_inst_t cmd_tx_offload_get_configuration = {
+static cmdline_parse_inst_t cmd_tx_offload_get_configuration = {
 	.f = cmd_tx_offload_get_configuration_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> tx_offload configuration",
@@ -16651,23 +16645,23 @@ struct cmd_config_per_port_tx_offload_result {
 	cmdline_fixed_string_t on_off;
 };
 
-cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_port =
+static cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 port, "port");
-cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_config =
+static cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_config =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 config, "config");
-cmdline_parse_token_num_t cmd_config_per_port_tx_offload_result_port_id =
+static cmdline_parse_token_num_t cmd_config_per_port_tx_offload_result_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_tx_offload =
+static cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_tx_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 tx_offload, "tx_offload");
-cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_offload =
+static cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 offload, "vlan_insert#ipv4_cksum#udp_cksum#tcp_cksum#"
@@ -16676,7 +16670,7 @@ cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_offload =
 			  "ipip_tnl_tso#geneve_tnl_tso#macsec_insert#"
 			  "mt_lockfree#multi_segs#mbuf_fast_free#security#"
 			  "send_on_timestamp");
-cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_on_off =
+static cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
 		 on_off, "on#off");
@@ -16753,7 +16747,7 @@ cmd_config_per_port_tx_offload_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(port_id, 1, 1);
 }
 
-cmdline_parse_inst_t cmd_config_per_port_tx_offload = {
+static cmdline_parse_inst_t cmd_config_per_port_tx_offload = {
 	.f = cmd_config_per_port_tx_offload_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> tx_offload "
@@ -16785,27 +16779,27 @@ struct cmd_config_per_queue_tx_offload_result {
 	cmdline_fixed_string_t on_off;
 };
 
-cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_port =
+static cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_config_per_queue_tx_offload_result_port_id =
+static cmdline_parse_token_num_t cmd_config_per_queue_tx_offload_result_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_txq =
+static cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_txq =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 txq, "txq");
-cmdline_parse_token_num_t cmd_config_per_queue_tx_offload_result_queue_id =
+static cmdline_parse_token_num_t cmd_config_per_queue_tx_offload_result_queue_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 queue_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_txoffload =
+static cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_txoffload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 tx_offload, "tx_offload");
-cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_offload =
+static cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_offload =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 offload, "vlan_insert#ipv4_cksum#udp_cksum#tcp_cksum#"
@@ -16813,7 +16807,7 @@ cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_offload =
 			  "qinq_insert#vxlan_tnl_tso#gre_tnl_tso#"
 			  "ipip_tnl_tso#geneve_tnl_tso#macsec_insert#"
 			  "mt_lockfree#multi_segs#mbuf_fast_free#security");
-cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_on_off =
+static cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
 		 on_off, "on#off");
@@ -16863,7 +16857,7 @@ cmd_config_per_queue_tx_offload_parsed(void *parsed_result,
 	cmd_reconfig_device_queue(port_id, 1, 1);
 }
 
-cmdline_parse_inst_t cmd_config_per_queue_tx_offload = {
+static cmdline_parse_inst_t cmd_config_per_queue_tx_offload = {
 	.f = cmd_config_per_queue_tx_offload_parsed,
 	.data = NULL,
 	.help_str = "port <port_id> txq <queue_id> tx_offload "
@@ -16912,23 +16906,23 @@ cmd_config_tx_metadata_specific_parsed(void *parsed_result,
 	rte_flow_dynf_metadata_register();
 }
 
-cmdline_parse_token_string_t cmd_config_tx_metadata_specific_port =
+static cmdline_parse_token_string_t cmd_config_tx_metadata_specific_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_metadata_specific_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_config_tx_metadata_specific_keyword =
+static cmdline_parse_token_string_t cmd_config_tx_metadata_specific_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_metadata_specific_result,
 			keyword, "config");
-cmdline_parse_token_num_t cmd_config_tx_metadata_specific_id =
+static cmdline_parse_token_num_t cmd_config_tx_metadata_specific_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_tx_metadata_specific_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_tx_metadata_specific_item =
+static cmdline_parse_token_string_t cmd_config_tx_metadata_specific_item =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_metadata_specific_result,
 			item, "tx_metadata");
-cmdline_parse_token_num_t cmd_config_tx_metadata_specific_value =
+static cmdline_parse_token_num_t cmd_config_tx_metadata_specific_value =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_tx_metadata_specific_result,
 			value, RTE_UINT32);
 
-cmdline_parse_inst_t cmd_config_tx_metadata_specific = {
+static cmdline_parse_inst_t cmd_config_tx_metadata_specific = {
 	.f = cmd_config_tx_metadata_specific_parsed,
 	.data = NULL,
 	.help_str = "port config <port_id> tx_metadata <value>",
@@ -16991,26 +16985,26 @@ cmd_config_dynf_specific_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_config_tx_dynf_specific_port =
+static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			keyword, "port");
-cmdline_parse_token_string_t cmd_config_tx_dynf_specific_keyword =
+static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			keyword, "config");
-cmdline_parse_token_num_t cmd_config_tx_dynf_specific_port_id =
+static cmdline_parse_token_num_t cmd_config_tx_dynf_specific_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_config_tx_dynf_specific_item =
+static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_item =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			item, "dynf");
-cmdline_parse_token_string_t cmd_config_tx_dynf_specific_name =
+static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_name =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			name, NULL);
-cmdline_parse_token_string_t cmd_config_tx_dynf_specific_value =
+static cmdline_parse_token_string_t cmd_config_tx_dynf_specific_value =
 	TOKEN_STRING_INITIALIZER(struct cmd_config_tx_dynf_specific_result,
 			value, "set#clear");
 
-cmdline_parse_inst_t cmd_config_tx_dynf_specific = {
+static cmdline_parse_inst_t cmd_config_tx_dynf_specific = {
 	.f = cmd_config_dynf_specific_parsed,
 	.data = NULL,
 	.help_str = "port config <port id> dynf <name> set|clear",
@@ -17050,20 +17044,20 @@ cmd_show_tx_metadata_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_show_tx_metadata_show =
+static cmdline_parse_token_string_t cmd_show_tx_metadata_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_tx_metadata_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_tx_metadata_port =
+static cmdline_parse_token_string_t cmd_show_tx_metadata_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_tx_metadata_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_show_tx_metadata_pid =
+static cmdline_parse_token_num_t cmd_show_tx_metadata_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_tx_metadata_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_tx_metadata_keyword =
+static cmdline_parse_token_string_t cmd_show_tx_metadata_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_tx_metadata_result,
 			cmd_keyword, "tx_metadata");
 
-cmdline_parse_inst_t cmd_show_tx_metadata = {
+static cmdline_parse_inst_t cmd_show_tx_metadata = {
 	.f = cmd_show_tx_metadata_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> tx_metadata",
@@ -17127,23 +17121,23 @@ cmd_show_fec_capability_parsed(void *parsed_result,
 	free(speed_fec_capa);
 }
 
-cmdline_parse_token_string_t cmd_show_fec_capability_show =
+static cmdline_parse_token_string_t cmd_show_fec_capability_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_fec_capability_port =
+static cmdline_parse_token_string_t cmd_show_fec_capability_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_show_fec_capability_pid =
+static cmdline_parse_token_num_t cmd_show_fec_capability_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_fec_capability_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_fec_capability_fec =
+static cmdline_parse_token_string_t cmd_show_fec_capability_fec =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
 			cmd_fec, "fec");
-cmdline_parse_token_string_t cmd_show_fec_capability_keyword =
+static cmdline_parse_token_string_t cmd_show_fec_capability_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_capability_result,
 			cmd_keyword, "capabilities");
 
-cmdline_parse_inst_t cmd_show_capability = {
+static cmdline_parse_inst_t cmd_show_capability = {
 	.f = cmd_show_fec_capability_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> fec capabilities",
@@ -17209,20 +17203,20 @@ cmd_show_fec_mode_parsed(void *parsed_result,
 	printf("%s\n", buf);
 }
 
-cmdline_parse_token_string_t cmd_show_fec_mode_show =
+static cmdline_parse_token_string_t cmd_show_fec_mode_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_metadata_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_fec_mode_port =
+static cmdline_parse_token_string_t cmd_show_fec_mode_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_metadata_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_show_fec_mode_pid =
+static cmdline_parse_token_num_t cmd_show_fec_mode_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_fec_metadata_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_fec_mode_keyword =
+static cmdline_parse_token_string_t cmd_show_fec_mode_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_fec_metadata_result,
 			cmd_keyword, "fec_mode");
 
-cmdline_parse_inst_t cmd_show_fec_mode = {
+static cmdline_parse_inst_t cmd_show_fec_mode = {
 	.f = cmd_show_fec_mode_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> fec_mode",
@@ -17245,23 +17239,23 @@ struct cmd_set_port_fec_mode {
 };
 
 /* Common CLI fields for set fec mode */
-cmdline_parse_token_string_t cmd_set_port_fec_mode_set =
+static cmdline_parse_token_string_t cmd_set_port_fec_mode_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_fec_mode,
 		 set, "set");
-cmdline_parse_token_string_t cmd_set_port_fec_mode_port =
+static cmdline_parse_token_string_t cmd_set_port_fec_mode_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_fec_mode,
 		 port, "port");
-cmdline_parse_token_num_t cmd_set_port_fec_mode_port_id =
+static cmdline_parse_token_num_t cmd_set_port_fec_mode_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_port_fec_mode,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_port_fec_mode_str =
+static cmdline_parse_token_string_t cmd_set_port_fec_mode_str =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_fec_mode,
 		 fec_mode, "fec_mode");
-cmdline_parse_token_string_t cmd_set_port_fec_mode_value =
+static cmdline_parse_token_string_t cmd_set_port_fec_mode_value =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_fec_mode,
 		 fec_value, NULL);
@@ -17294,7 +17288,7 @@ cmd_set_port_fec_mode_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_set_fec_mode = {
+static cmdline_parse_inst_t cmd_set_fec_mode = {
 	.f = cmd_set_port_fec_mode_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> fec_mode auto|off|rs|baser",
@@ -17319,19 +17313,19 @@ struct cmd_show_port_supported_ptypes_result {
 };
 
 /* Common CLI fields for show port ptypes */
-cmdline_parse_token_string_t cmd_show_port_supported_ptypes_show =
+static cmdline_parse_token_string_t cmd_show_port_supported_ptypes_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_supported_ptypes_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_show_port_supported_ptypes_port =
+static cmdline_parse_token_string_t cmd_show_port_supported_ptypes_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_supported_ptypes_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_show_port_supported_ptypes_port_id =
+static cmdline_parse_token_num_t cmd_show_port_supported_ptypes_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_port_supported_ptypes_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_port_supported_ptypes_ptypes =
+static cmdline_parse_token_string_t cmd_show_port_supported_ptypes_ptypes =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_supported_ptypes_result,
 		 ptypes, "ptypes");
@@ -17403,7 +17397,7 @@ cmd_show_port_supported_ptypes_parsed(
 	}
 }
 
-cmdline_parse_inst_t cmd_show_port_supported_ptypes = {
+static cmdline_parse_inst_t cmd_show_port_supported_ptypes = {
 	.f = cmd_show_port_supported_ptypes_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> ptypes",
@@ -17474,31 +17468,31 @@ cmd_show_rx_tx_desc_status_parsed(void *parsed_result,
 	}
 }
 
-cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_show =
+static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_port =
+static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_pid =
+static cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_keyword =
+static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_keyword, "rxq#txq");
-cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_qid =
+static cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_qid =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_desc =
+static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_desc =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_desc, "desc");
-cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_did =
+static cmdline_parse_token_num_t cmd_show_rx_tx_desc_status_did =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_did, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_status =
+static cmdline_parse_token_string_t cmd_show_rx_tx_desc_status_status =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_rx_tx_desc_status_result,
 			cmd_status, "status");
-cmdline_parse_inst_t cmd_show_rx_tx_desc_status = {
+static cmdline_parse_inst_t cmd_show_rx_tx_desc_status = {
 	.f = cmd_show_rx_tx_desc_status_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rxq|txq <queue_id> desc <desc_id> "
@@ -17549,39 +17543,39 @@ cmd_show_rx_queue_desc_used_count_parsed(void *parsed_result,
 	printf("Used desc count = %d\n", rc);
 }
 
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_show =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_port =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_port, "port");
-cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_pid =
+static cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_pid =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_rxq =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_rxq =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_rxq, "rxq");
-cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_qid =
+static cmdline_parse_token_num_t cmd_show_rx_queue_desc_used_count_qid =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_qid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_desc =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_desc =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_count, "desc");
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_used =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_used =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_count, "used");
-cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_count =
+static cmdline_parse_token_string_t cmd_show_rx_queue_desc_used_count_count =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_rx_queue_desc_used_count_result,
 		 cmd_count, "count");
-cmdline_parse_inst_t cmd_show_rx_queue_desc_used_count = {
+static cmdline_parse_inst_t cmd_show_rx_queue_desc_used_count = {
 	.f = cmd_show_rx_queue_desc_used_count_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> rxq <queue_id> desc used count",
@@ -17608,23 +17602,23 @@ struct cmd_set_port_ptypes_result {
 };
 
 /* Common CLI fields for set port ptypes */
-cmdline_parse_token_string_t cmd_set_port_ptypes_set =
+static cmdline_parse_token_string_t cmd_set_port_ptypes_set =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_ptypes_result,
 		 set, "set");
-cmdline_parse_token_string_t cmd_set_port_ptypes_port =
+static cmdline_parse_token_string_t cmd_set_port_ptypes_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_ptypes_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_set_port_ptypes_port_id =
+static cmdline_parse_token_num_t cmd_set_port_ptypes_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_port_ptypes_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_set_port_ptypes_mask_str =
+static cmdline_parse_token_string_t cmd_set_port_ptypes_mask_str =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_set_port_ptypes_result,
 		 ptype_mask, "ptype_mask");
-cmdline_parse_token_num_t cmd_set_port_ptypes_mask_u32 =
+static cmdline_parse_token_num_t cmd_set_port_ptypes_mask_u32 =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_set_port_ptypes_result,
 		 mask, RTE_UINT32);
@@ -17668,7 +17662,7 @@ cmd_set_port_ptypes_parsed(
 	clear_ptypes = false;
 }
 
-cmdline_parse_inst_t cmd_set_port_ptypes = {
+static cmdline_parse_inst_t cmd_set_port_ptypes = {
 	.f = cmd_set_port_ptypes_parsed,
 	.data = NULL,
 	.help_str = "set port <port_id> ptype_mask <mask>",
@@ -17706,20 +17700,20 @@ cmd_showport_macs_parsed(void *parsed_result,
 		show_mcast_macs(res->cmd_pid);
 }
 
-cmdline_parse_token_string_t cmd_showport_macs_show =
+static cmdline_parse_token_string_t cmd_showport_macs_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_macs_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_showport_macs_port =
+static cmdline_parse_token_string_t cmd_showport_macs_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_macs_result,
 			cmd_port, "port");
-cmdline_parse_token_num_t cmd_showport_macs_pid =
+static cmdline_parse_token_num_t cmd_showport_macs_pid =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_macs_result,
 			cmd_pid, RTE_UINT16);
-cmdline_parse_token_string_t cmd_showport_macs_keyword =
+static cmdline_parse_token_string_t cmd_showport_macs_keyword =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_macs_result,
 			cmd_keyword, "macs#mcast_macs");
 
-cmdline_parse_inst_t cmd_showport_macs = {
+static cmdline_parse_inst_t cmd_showport_macs = {
 	.f = cmd_showport_macs_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> macs|mcast_macs",
@@ -17742,27 +17736,27 @@ struct cmd_show_port_flow_transfer_proxy_result {
 	cmdline_fixed_string_t proxy;
 };
 
-cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_show =
+static cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_show =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 show, "show");
-cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_port =
+static cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_port =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 port, "port");
-cmdline_parse_token_num_t cmd_show_port_flow_transfer_proxy_port_id =
+static cmdline_parse_token_num_t cmd_show_port_flow_transfer_proxy_port_id =
 	TOKEN_NUM_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_flow =
+static cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_flow =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 flow, "flow");
-cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_transfer =
+static cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_transfer =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 transfer, "transfer");
-cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_proxy =
+static cmdline_parse_token_string_t cmd_show_port_flow_transfer_proxy_proxy =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_show_port_flow_transfer_proxy_result,
 		 proxy, "proxy");
@@ -17788,7 +17782,7 @@ cmd_show_port_flow_transfer_proxy_parsed(void *parsed_result,
 	printf("Transfer proxy port ID: %u\n\n", proxy_port_id);
 }
 
-cmdline_parse_inst_t cmd_show_port_flow_transfer_proxy = {
+static cmdline_parse_inst_t cmd_show_port_flow_transfer_proxy = {
 	.f = cmd_show_port_flow_transfer_proxy_parsed,
 	.data = NULL,
 	.help_str = "show port <port_id> flow transfer proxy",
@@ -17806,7 +17800,7 @@ cmdline_parse_inst_t cmd_show_port_flow_transfer_proxy = {
 /* ******************************************************************************** */
 
 /* list of instructions */
-cmdline_parse_ctx_t main_ctx[] = {
+static cmdline_parse_ctx_t main_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_help_brief,
 	(cmdline_parse_inst_t *)&cmd_help_long,
 	(cmdline_parse_inst_t *)&cmd_quit,
diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index fc4a6d9cca..eabe936bbd 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -11232,16 +11232,16 @@ cmd_show_set_raw_parsed(void *parsed_result, struct cmdline *cl, void *data)
 	} while (all && ++index < RAW_ENCAP_CONFS_MAX_NUM);
 }
 
-cmdline_parse_token_string_t cmd_show_set_raw_cmd_show =
+static cmdline_parse_token_string_t cmd_show_set_raw_cmd_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_set_raw_result,
 			cmd_show, "show");
-cmdline_parse_token_string_t cmd_show_set_raw_cmd_what =
+static cmdline_parse_token_string_t cmd_show_set_raw_cmd_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_set_raw_result,
 			cmd_what, "raw_encap#raw_decap");
-cmdline_parse_token_num_t cmd_show_set_raw_cmd_index =
+static cmdline_parse_token_num_t cmd_show_set_raw_cmd_index =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_set_raw_result,
 			cmd_index, RTE_UINT16);
-cmdline_parse_token_string_t cmd_show_set_raw_cmd_all =
+static cmdline_parse_token_string_t cmd_show_set_raw_cmd_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_set_raw_result,
 			cmd_all, "all");
 cmdline_parse_inst_t cmd_show_set_raw = {
diff --git a/app/test-pmd/cmdline_mtr.c b/app/test-pmd/cmdline_mtr.c
index ad7ef6ad98..5e62e82a37 100644
--- a/app/test-pmd/cmdline_mtr.c
+++ b/app/test-pmd/cmdline_mtr.c
@@ -201,19 +201,19 @@ struct cmd_show_port_meter_cap_result {
 	uint16_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_show_port_meter_cap_show =
+static cmdline_parse_token_string_t cmd_show_port_meter_cap_show =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_cap_result, show, "show");
-cmdline_parse_token_string_t cmd_show_port_meter_cap_port =
+static cmdline_parse_token_string_t cmd_show_port_meter_cap_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_cap_result, port, "port");
-cmdline_parse_token_string_t cmd_show_port_meter_cap_meter =
+static cmdline_parse_token_string_t cmd_show_port_meter_cap_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_cap_result, meter, "meter");
-cmdline_parse_token_string_t cmd_show_port_meter_cap_cap =
+static cmdline_parse_token_string_t cmd_show_port_meter_cap_cap =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_cap_result, cap, "cap");
-cmdline_parse_token_num_t cmd_show_port_meter_cap_port_id =
+static cmdline_parse_token_num_t cmd_show_port_meter_cap_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_show_port_meter_cap_result, port_id, RTE_UINT16);
 
@@ -308,46 +308,46 @@ struct cmd_add_port_meter_profile_srtcm_result {
 	int packet_mode;
 };
 
-cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_add =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result, add, "add");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_port =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_meter =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			meter, "meter");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_profile =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			profile, "profile");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_srtcm_rfc2697 =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_srtcm_srtcm_rfc2697 =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			srtcm_rfc2697, "srtcm_rfc2697");
-cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_port_id =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			profile_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_cir =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_cir =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			cir, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_cbs =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_cbs =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			cbs, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_ebs =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_ebs =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			ebs, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_packet_mode =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_srtcm_packet_mode =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_srtcm_result,
 			packet_mode, RTE_UINT32);
@@ -417,50 +417,50 @@ struct cmd_add_port_meter_profile_trtcm_result {
 	int packet_mode;
 };
 
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_add =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result, add, "add");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_port =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_meter =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			meter, "meter");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_profile =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			profile, "profile");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_trtcm_rfc2698 =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_trtcm_rfc2698 =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			trtcm_rfc2698, "trtcm_rfc2698");
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_port_id =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			profile_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_cir =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_cir =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			cir, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_pir =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_pir =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			pir, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_cbs =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_cbs =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			cbs, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_pbs =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_pbs =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			pbs, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_packet_mode =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_packet_mode =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_result,
 			packet_mode, RTE_UINT32);
@@ -532,52 +532,52 @@ struct cmd_add_port_meter_profile_trtcm_rfc4115_result {
 	int packet_mode;
 };
 
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_add =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result, add,
 		"add");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_port =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_meter =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			meter, "meter");
-cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_profile =
+static cmdline_parse_token_string_t cmd_add_port_meter_profile_trtcm_rfc4115_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			profile, "profile");
-cmdline_parse_token_string_t
+static cmdline_parse_token_string_t
 	cmd_add_port_meter_profile_trtcm_rfc4115_trtcm_rfc4115 =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			trtcm_rfc4115, "trtcm_rfc4115");
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_port_id =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			profile_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_cir =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_cir =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			cir, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_eir =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_eir =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			eir, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_cbs =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_cbs =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			cbs, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_ebs =
+static cmdline_parse_token_num_t cmd_add_port_meter_profile_trtcm_rfc4115_ebs =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
 			ebs, RTE_UINT64);
-cmdline_parse_token_num_t
+static cmdline_parse_token_num_t
 	cmd_add_port_meter_profile_trtcm_rfc4115_packet_mode =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_meter_profile_trtcm_rfc4115_result,
@@ -646,26 +646,26 @@ struct cmd_del_port_meter_profile_result {
 	uint32_t profile_id;
 };
 
-cmdline_parse_token_string_t cmd_del_port_meter_profile_del =
+static cmdline_parse_token_string_t cmd_del_port_meter_profile_del =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_profile_result, del, "del");
-cmdline_parse_token_string_t cmd_del_port_meter_profile_port =
+static cmdline_parse_token_string_t cmd_del_port_meter_profile_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_profile_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_del_port_meter_profile_meter =
+static cmdline_parse_token_string_t cmd_del_port_meter_profile_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_profile_result,
 			meter, "meter");
-cmdline_parse_token_string_t cmd_del_port_meter_profile_profile =
+static cmdline_parse_token_string_t cmd_del_port_meter_profile_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_profile_result,
 			profile, "profile");
-cmdline_parse_token_num_t cmd_del_port_meter_profile_port_id =
+static cmdline_parse_token_num_t cmd_del_port_meter_profile_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_meter_profile_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_del_port_meter_profile_profile_id =
+static cmdline_parse_token_num_t cmd_del_port_meter_profile_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_meter_profile_result,
 			profile_id, RTE_UINT32);
@@ -724,46 +724,37 @@ struct cmd_create_port_meter_result {
 	cmdline_multi_string_t meter_input_color;
 };
 
-cmdline_parse_token_string_t cmd_create_port_meter_create =
+static cmdline_parse_token_string_t cmd_create_port_meter_create =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_create_port_meter_result, create, "create");
-cmdline_parse_token_string_t cmd_create_port_meter_port =
+static cmdline_parse_token_string_t cmd_create_port_meter_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_create_port_meter_result, port, "port");
-cmdline_parse_token_string_t cmd_create_port_meter_meter =
+static cmdline_parse_token_string_t cmd_create_port_meter_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_create_port_meter_result, meter, "meter");
-cmdline_parse_token_num_t cmd_create_port_meter_port_id =
+static cmdline_parse_token_num_t cmd_create_port_meter_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_create_port_meter_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_create_port_meter_mtr_id =
+static cmdline_parse_token_num_t cmd_create_port_meter_mtr_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_create_port_meter_result, mtr_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_create_port_meter_profile_id =
+static cmdline_parse_token_num_t cmd_create_port_meter_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_create_port_meter_result, profile_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_create_port_meter_policy_id =
+static cmdline_parse_token_num_t cmd_create_port_meter_policy_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_create_port_meter_result, policy_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_create_port_meter_meter_enable =
+static cmdline_parse_token_string_t cmd_create_port_meter_meter_enable =
 	TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
 		meter_enable, "yes#no");
-cmdline_parse_token_string_t cmd_create_port_meter_g_action =
-	TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
-		g_action, "R#Y#G#D#r#y#g#d");
-cmdline_parse_token_string_t cmd_create_port_meter_y_action =
-	TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
-		y_action, "R#Y#G#D#r#y#g#d");
-cmdline_parse_token_string_t cmd_create_port_meter_r_action =
-	TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
-		r_action, "R#Y#G#D#r#y#g#d");
-cmdline_parse_token_num_t cmd_create_port_meter_statistics_mask =
+static cmdline_parse_token_num_t cmd_create_port_meter_statistics_mask =
 	TOKEN_NUM_INITIALIZER(struct cmd_create_port_meter_result,
 		statistics_mask, RTE_UINT64);
-cmdline_parse_token_num_t cmd_create_port_meter_shared =
+static cmdline_parse_token_num_t cmd_create_port_meter_shared =
 	TOKEN_NUM_INITIALIZER(struct cmd_create_port_meter_result,
 		shared, RTE_UINT32);
-cmdline_parse_token_string_t cmd_create_port_meter_input_color =
+static cmdline_parse_token_string_t cmd_create_port_meter_input_color =
 	TOKEN_STRING_INITIALIZER(struct cmd_create_port_meter_result,
 		meter_input_color, TOKEN_STRING_MULTI);
 
@@ -845,19 +836,19 @@ struct cmd_enable_port_meter_result {
 	uint32_t mtr_id;
 };
 
-cmdline_parse_token_string_t cmd_enable_port_meter_enable =
+static cmdline_parse_token_string_t cmd_enable_port_meter_enable =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_enable_port_meter_result, enable, "enable");
-cmdline_parse_token_string_t cmd_enable_port_meter_port =
+static cmdline_parse_token_string_t cmd_enable_port_meter_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_enable_port_meter_result, port, "port");
-cmdline_parse_token_string_t cmd_enable_port_meter_meter =
+static cmdline_parse_token_string_t cmd_enable_port_meter_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_enable_port_meter_result, meter, "meter");
-cmdline_parse_token_num_t cmd_enable_port_meter_port_id =
+static cmdline_parse_token_num_t cmd_enable_port_meter_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_enable_port_meter_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_enable_port_meter_mtr_id =
+static cmdline_parse_token_num_t cmd_enable_port_meter_mtr_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_enable_port_meter_result, mtr_id, RTE_UINT32);
 
@@ -906,19 +897,19 @@ struct cmd_disable_port_meter_result {
 	uint32_t mtr_id;
 };
 
-cmdline_parse_token_string_t cmd_disable_port_meter_disable =
+static cmdline_parse_token_string_t cmd_disable_port_meter_disable =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_disable_port_meter_result, disable, "disable");
-cmdline_parse_token_string_t cmd_disable_port_meter_port =
+static cmdline_parse_token_string_t cmd_disable_port_meter_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_disable_port_meter_result, port, "port");
-cmdline_parse_token_string_t cmd_disable_port_meter_meter =
+static cmdline_parse_token_string_t cmd_disable_port_meter_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_disable_port_meter_result, meter, "meter");
-cmdline_parse_token_num_t cmd_disable_port_meter_port_id =
+static cmdline_parse_token_num_t cmd_disable_port_meter_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_disable_port_meter_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_disable_port_meter_mtr_id =
+static cmdline_parse_token_num_t cmd_disable_port_meter_mtr_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_disable_port_meter_result, mtr_id, RTE_UINT32);
 
@@ -968,22 +959,22 @@ struct cmd_del_port_meter_policy_result {
 	uint32_t policy_id;
 };
 
-cmdline_parse_token_string_t cmd_del_port_meter_policy_del =
+static cmdline_parse_token_string_t cmd_del_port_meter_policy_del =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_policy_result, del, "del");
-cmdline_parse_token_string_t cmd_del_port_meter_policy_port =
+static cmdline_parse_token_string_t cmd_del_port_meter_policy_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_policy_result, port, "port");
-cmdline_parse_token_string_t cmd_del_port_meter_policy_meter =
+static cmdline_parse_token_string_t cmd_del_port_meter_policy_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_policy_result, meter, "meter");
-cmdline_parse_token_string_t cmd_del_port_meter_policy_policy =
+static cmdline_parse_token_string_t cmd_del_port_meter_policy_policy =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_policy_result, policy, "policy");
-cmdline_parse_token_num_t cmd_del_port_meter_policy_port_id =
+static cmdline_parse_token_num_t cmd_del_port_meter_policy_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_meter_policy_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_del_port_meter_policy_policy_id =
+static cmdline_parse_token_num_t cmd_del_port_meter_policy_policy_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_meter_policy_result, policy_id, RTE_UINT32);
 
@@ -1032,19 +1023,19 @@ struct cmd_del_port_meter_result {
 	uint32_t mtr_id;
 };
 
-cmdline_parse_token_string_t cmd_del_port_meter_del =
+static cmdline_parse_token_string_t cmd_del_port_meter_del =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_result, del, "del");
-cmdline_parse_token_string_t cmd_del_port_meter_port =
+static cmdline_parse_token_string_t cmd_del_port_meter_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_result, port, "port");
-cmdline_parse_token_string_t cmd_del_port_meter_meter =
+static cmdline_parse_token_string_t cmd_del_port_meter_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_meter_result, meter, "meter");
-cmdline_parse_token_num_t cmd_del_port_meter_port_id =
+static cmdline_parse_token_num_t cmd_del_port_meter_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_meter_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_del_port_meter_mtr_id =
+static cmdline_parse_token_num_t cmd_del_port_meter_mtr_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_meter_result, mtr_id, RTE_UINT32);
 
@@ -1095,27 +1086,27 @@ struct cmd_set_port_meter_profile_result {
 	uint32_t profile_id;
 };
 
-cmdline_parse_token_string_t cmd_set_port_meter_profile_set =
+static cmdline_parse_token_string_t cmd_set_port_meter_profile_set =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_profile_result, set, "set");
-cmdline_parse_token_string_t cmd_set_port_meter_profile_port =
+static cmdline_parse_token_string_t cmd_set_port_meter_profile_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_profile_result, port, "port");
-cmdline_parse_token_string_t cmd_set_port_meter_profile_meter =
+static cmdline_parse_token_string_t cmd_set_port_meter_profile_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_profile_result, meter, "meter");
-cmdline_parse_token_string_t cmd_set_port_meter_profile_profile =
+static cmdline_parse_token_string_t cmd_set_port_meter_profile_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_profile_result, profile, "profile");
-cmdline_parse_token_num_t cmd_set_port_meter_profile_port_id =
+static cmdline_parse_token_num_t cmd_set_port_meter_profile_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_meter_profile_result, port_id,
 		RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_port_meter_profile_mtr_id =
+static cmdline_parse_token_num_t cmd_set_port_meter_profile_mtr_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_meter_profile_result, mtr_id,
 		RTE_UINT32);
-cmdline_parse_token_num_t cmd_set_port_meter_profile_profile_id =
+static cmdline_parse_token_num_t cmd_set_port_meter_profile_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_meter_profile_result, profile_id,
 		RTE_UINT32);
@@ -1169,20 +1160,20 @@ struct cmd_set_port_meter_dscp_table_result {
 	cmdline_multi_string_t token_string;
 };
 
-cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_set =
+static cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_set =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_dscp_table_result, set, "set");
-cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_port =
+static cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_dscp_table_result, port, "port");
-cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_meter =
+static cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_dscp_table_result, meter, "meter");
-cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_dscp_table =
+static cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_dscp_table =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_dscp_table_result,
 		dscp_table, "dscp table");
-cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_token_string =
+static cmdline_parse_token_string_t cmd_set_port_meter_dscp_table_token_string =
 	TOKEN_STRING_INITIALIZER(struct cmd_set_port_meter_dscp_table_result,
 		token_string, TOKEN_STRING_MULTI);
 
@@ -1245,30 +1236,30 @@ struct cmd_set_port_meter_stats_mask_result {
 	uint64_t stats_mask;
 };
 
-cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_set =
+static cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_set =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, set, "set");
-cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_port =
+static cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, port, "port");
-cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_meter =
+static cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, meter, "meter");
-cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_stats =
+static cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_stats =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, stats, "stats");
-cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_mask =
+static cmdline_parse_token_string_t cmd_set_port_meter_stats_mask_mask =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, mask, "mask");
-cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_port_id =
+static cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, port_id,
 		RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_mtr_id =
+static cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_mtr_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, mtr_id,
 		RTE_UINT32);
-cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_stats_mask =
+static cmdline_parse_token_num_t cmd_set_port_meter_stats_mask_stats_mask =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_meter_stats_mask_result, stats_mask,
 		RTE_UINT64);
@@ -1322,25 +1313,25 @@ struct cmd_show_port_meter_stats_result {
 	cmdline_fixed_string_t clear;
 };
 
-cmdline_parse_token_string_t cmd_show_port_meter_stats_show =
+static cmdline_parse_token_string_t cmd_show_port_meter_stats_show =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_stats_result, show, "show");
-cmdline_parse_token_string_t cmd_show_port_meter_stats_port =
+static cmdline_parse_token_string_t cmd_show_port_meter_stats_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_stats_result, port, "port");
-cmdline_parse_token_string_t cmd_show_port_meter_stats_meter =
+static cmdline_parse_token_string_t cmd_show_port_meter_stats_meter =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_stats_result, meter, "meter");
-cmdline_parse_token_string_t cmd_show_port_meter_stats_stats =
+static cmdline_parse_token_string_t cmd_show_port_meter_stats_stats =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_stats_result, stats, "stats");
-cmdline_parse_token_num_t cmd_show_port_meter_stats_port_id =
+static cmdline_parse_token_num_t cmd_show_port_meter_stats_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_show_port_meter_stats_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_show_port_meter_stats_mtr_id =
+static cmdline_parse_token_num_t cmd_show_port_meter_stats_mtr_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_show_port_meter_stats_result, mtr_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_show_port_meter_stats_clear =
+static cmdline_parse_token_string_t cmd_show_port_meter_stats_clear =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_meter_stats_result, clear, "yes#no");
 
diff --git a/app/test-pmd/cmdline_tm.c b/app/test-pmd/cmdline_tm.c
index c058b8946e..fb56a234c5 100644
--- a/app/test-pmd/cmdline_tm.c
+++ b/app/test-pmd/cmdline_tm.c
@@ -207,19 +207,19 @@ struct cmd_show_port_tm_cap_result {
 	uint16_t port_id;
 };
 
-cmdline_parse_token_string_t cmd_show_port_tm_cap_show =
+static cmdline_parse_token_string_t cmd_show_port_tm_cap_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_cap_result,
 		show, "show");
-cmdline_parse_token_string_t cmd_show_port_tm_cap_port =
+static cmdline_parse_token_string_t cmd_show_port_tm_cap_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_cap_result,
 		port, "port");
-cmdline_parse_token_string_t cmd_show_port_tm_cap_tm =
+static cmdline_parse_token_string_t cmd_show_port_tm_cap_tm =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_cap_result,
 		tm, "tm");
-cmdline_parse_token_string_t cmd_show_port_tm_cap_cap =
+static cmdline_parse_token_string_t cmd_show_port_tm_cap_cap =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_cap_result,
 		cap, "cap");
-cmdline_parse_token_num_t cmd_show_port_tm_cap_port_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_cap_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_port_tm_cap_result,
 		 port_id, RTE_UINT16);
 
@@ -353,25 +353,25 @@ struct cmd_show_port_tm_level_cap_result {
 	uint32_t level_id;
 };
 
-cmdline_parse_token_string_t cmd_show_port_tm_level_cap_show =
+static cmdline_parse_token_string_t cmd_show_port_tm_level_cap_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_level_cap_result,
 		show, "show");
-cmdline_parse_token_string_t cmd_show_port_tm_level_cap_port =
+static cmdline_parse_token_string_t cmd_show_port_tm_level_cap_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_level_cap_result,
 		port, "port");
-cmdline_parse_token_string_t cmd_show_port_tm_level_cap_tm =
+static cmdline_parse_token_string_t cmd_show_port_tm_level_cap_tm =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_level_cap_result,
 		tm, "tm");
-cmdline_parse_token_string_t cmd_show_port_tm_level_cap_level =
+static cmdline_parse_token_string_t cmd_show_port_tm_level_cap_level =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_level_cap_result,
 		level, "level");
-cmdline_parse_token_string_t cmd_show_port_tm_level_cap_cap =
+static cmdline_parse_token_string_t cmd_show_port_tm_level_cap_cap =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_level_cap_result,
 		cap, "cap");
-cmdline_parse_token_num_t cmd_show_port_tm_level_cap_port_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_level_cap_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_port_tm_level_cap_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_show_port_tm_level_cap_level_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_level_cap_level_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_port_tm_level_cap_result,
 		 level_id, RTE_UINT32);
 
@@ -503,25 +503,25 @@ struct cmd_show_port_tm_node_cap_result {
 	uint32_t node_id;
 };
 
-cmdline_parse_token_string_t cmd_show_port_tm_node_cap_show =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_cap_show =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_node_cap_result,
 		show, "show");
-cmdline_parse_token_string_t cmd_show_port_tm_node_cap_port =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_cap_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_node_cap_result,
 		port, "port");
-cmdline_parse_token_string_t cmd_show_port_tm_node_cap_tm =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_cap_tm =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_node_cap_result,
 		tm, "tm");
-cmdline_parse_token_string_t cmd_show_port_tm_node_cap_node =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_cap_node =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_node_cap_result,
 		node, "node");
-cmdline_parse_token_string_t cmd_show_port_tm_node_cap_cap =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_cap_cap =
 	TOKEN_STRING_INITIALIZER(struct cmd_show_port_tm_node_cap_result,
 		cap, "cap");
-cmdline_parse_token_num_t cmd_show_port_tm_node_cap_port_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_node_cap_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_port_tm_node_cap_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_show_port_tm_node_cap_node_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_node_cap_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_port_tm_node_cap_result,
 		 node_id, RTE_UINT32);
 
@@ -627,29 +627,29 @@ struct cmd_show_port_tm_node_stats_result {
 	uint32_t clear;
 };
 
-cmdline_parse_token_string_t cmd_show_port_tm_node_stats_show =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_stats_show =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_stats_result, show, "show");
-cmdline_parse_token_string_t cmd_show_port_tm_node_stats_port =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_stats_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_stats_result, port, "port");
-cmdline_parse_token_string_t cmd_show_port_tm_node_stats_tm =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_stats_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_stats_result, tm, "tm");
-cmdline_parse_token_string_t cmd_show_port_tm_node_stats_node =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_stats_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_stats_result, node, "node");
-cmdline_parse_token_string_t cmd_show_port_tm_node_stats_stats =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_stats_stats =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_stats_result, stats, "stats");
-cmdline_parse_token_num_t cmd_show_port_tm_node_stats_port_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_node_stats_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_show_port_tm_node_stats_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_show_port_tm_node_stats_node_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_node_stats_node_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_show_port_tm_node_stats_result,
 			node_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_show_port_tm_node_stats_clear =
+static cmdline_parse_token_num_t cmd_show_port_tm_node_stats_clear =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_show_port_tm_node_stats_result, clear, RTE_UINT32);
 
@@ -745,26 +745,26 @@ struct cmd_show_port_tm_node_type_result {
 	uint32_t node_id;
 };
 
-cmdline_parse_token_string_t cmd_show_port_tm_node_type_show =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_type_show =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_type_result, show, "show");
-cmdline_parse_token_string_t cmd_show_port_tm_node_type_port =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_type_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_type_result, port, "port");
-cmdline_parse_token_string_t cmd_show_port_tm_node_type_tm =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_type_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_type_result, tm, "tm");
-cmdline_parse_token_string_t cmd_show_port_tm_node_type_node =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_type_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_type_result, node, "node");
-cmdline_parse_token_string_t cmd_show_port_tm_node_type_type =
+static cmdline_parse_token_string_t cmd_show_port_tm_node_type_type =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_show_port_tm_node_type_result, type, "type");
-cmdline_parse_token_num_t cmd_show_port_tm_node_type_port_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_node_type_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_show_port_tm_node_type_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_show_port_tm_node_type_node_id =
+static cmdline_parse_token_num_t cmd_show_port_tm_node_type_node_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_show_port_tm_node_type_result,
 			node_id, RTE_UINT32);
@@ -830,58 +830,58 @@ struct cmd_add_port_tm_node_shaper_profile_result {
 	int pkt_mode;
 };
 
-cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_add =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result, add, "add");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_port =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_tm =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			tm, "tm");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_node =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			node, "node");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_shaper =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_shaper =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			shaper, "shaper");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_profile =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shaper_profile_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			profile, "profile");
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_port_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_shaper_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_shaper_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			shaper_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_cmit_tb_rate =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_cmit_tb_rate =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			cmit_tb_rate, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_cmit_tb_size =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_cmit_tb_size =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			cmit_tb_size, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_peak_tb_rate =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_peak_tb_rate =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			peak_tb_rate, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_peak_tb_size =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_peak_tb_size =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			peak_tb_size, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_pktlen_adjust =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_pktlen_adjust =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			pktlen_adjust, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_packet_mode =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shaper_profile_packet_mode =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shaper_profile_result,
 			pkt_mode, RTE_UINT32);
@@ -953,33 +953,33 @@ struct cmd_del_port_tm_node_shaper_profile_result {
 	uint32_t shaper_id;
 };
 
-cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_del =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_del =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result, del, "del");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_port =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_tm =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result, tm, "tm");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_node =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result,
 			node, "node");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_shaper =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_shaper =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result,
 			shaper, "shaper");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_profile =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shaper_profile_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result,
 			profile, "profile");
-cmdline_parse_token_num_t cmd_del_port_tm_node_shaper_profile_port_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_shaper_profile_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_del_port_tm_node_shaper_profile_shaper_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_shaper_profile_shaper_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_tm_node_shaper_profile_result,
 			shaper_id, RTE_UINT32);
@@ -1035,36 +1035,36 @@ struct cmd_add_port_tm_node_shared_shaper_result {
 	uint32_t shaper_profile_id;
 };
 
-cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_cmd_type =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_cmd_type =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result,
 			cmd_type, "add#set");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_port =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result, port, "port");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_tm =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result, tm, "tm");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_node =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result, node, "node");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_shared =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_shared =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result,
 			shared, "shared");
-cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_shaper =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_shared_shaper_shaper =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result,
 			shaper, "shaper");
-cmdline_parse_token_num_t cmd_add_port_tm_node_shared_shaper_port_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shared_shaper_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shared_shaper_shared_shaper_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shared_shaper_shared_shaper_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result,
 			shared_shaper_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_node_shared_shaper_shaper_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_shared_shaper_shaper_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_shared_shaper_result,
 			shaper_profile_id, RTE_UINT32);
@@ -1136,31 +1136,31 @@ struct cmd_del_port_tm_node_shared_shaper_result {
 	uint32_t shared_shaper_id;
 };
 
-cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_del =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_del =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result, del, "del");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_port =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result, port, "port");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_tm =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result, tm, "tm");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_node =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result, node, "node");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_shared =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_shared =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result,
 			shared, "shared");
-cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_shaper =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_shared_shaper_shaper =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result,
 			shaper, "shaper");
-cmdline_parse_token_num_t cmd_del_port_tm_node_shared_shaper_port_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_shared_shaper_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_del_port_tm_node_shared_shaper_shared_shaper_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_shared_shaper_shared_shaper_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_tm_node_shared_shaper_result,
 			shared_shaper_id, RTE_UINT32);
@@ -1230,90 +1230,90 @@ struct cmd_add_port_tm_node_wred_profile_result {
 	uint16_t wq_log2_r;
 };
 
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_add =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result, add, "add");
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_port =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result, port, "port");
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_tm =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result, tm, "tm");
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_node =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result, node, "node");
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_wred =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_wred =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result, wred, "wred");
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_profile =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			profile, "profile");
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_port_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wred_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wred_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			wred_profile_id, RTE_UINT32);
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_g =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_g =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			color_g, "G#g");
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_min_th_g =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_min_th_g =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			min_th_g, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_g =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_g =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			max_th_g, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_maxp_inv_g =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_maxp_inv_g =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			maxp_inv_g, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wq_log2_g =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wq_log2_g =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			wq_log2_g, RTE_UINT16);
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_y =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_y =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			color_y, "Y#y");
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_min_th_y =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_min_th_y =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			min_th_y, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_y =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_y =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			max_th_y, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_maxp_inv_y =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_maxp_inv_y =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			maxp_inv_y, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wq_log2_y =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wq_log2_y =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			wq_log2_y, RTE_UINT16);
-cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_r =
+static cmdline_parse_token_string_t cmd_add_port_tm_node_wred_profile_color_r =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			color_r, "R#r");
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_min_th_r =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_min_th_r =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			min_th_r, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_r =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_max_th_r =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			max_th_r, RTE_UINT64);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_maxp_inv_r =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_maxp_inv_r =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			maxp_inv_r, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wq_log2_r =
+static cmdline_parse_token_num_t cmd_add_port_tm_node_wred_profile_wq_log2_r =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_node_wred_profile_result,
 			wq_log2_r, RTE_UINT16);
@@ -1410,30 +1410,30 @@ struct cmd_del_port_tm_node_wred_profile_result {
 	uint32_t wred_profile_id;
 };
 
-cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_del =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_del =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result, del, "del");
-cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_port =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result, port, "port");
-cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_tm =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result, tm, "tm");
-cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_node =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result, node, "node");
-cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_wred =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_wred =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result, wred, "wred");
-cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_profile =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_wred_profile_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result,
 			profile, "profile");
-cmdline_parse_token_num_t cmd_del_port_tm_node_wred_profile_port_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_wred_profile_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_del_port_tm_node_wred_profile_wred_profile_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_wred_profile_wred_profile_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_del_port_tm_node_wred_profile_result,
 			wred_profile_id, RTE_UINT32);
@@ -1489,36 +1489,36 @@ struct cmd_set_port_tm_node_shaper_profile_result {
 	uint32_t shaper_profile_id;
 };
 
-cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_set =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_set =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_shaper_profile_result, set, "set");
-cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_port =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_shaper_profile_result,
 			port, "port");
-cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_tm =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_shaper_profile_result, tm, "tm");
-cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_node =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_shaper_profile_result,
 			node, "node");
-cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_shaper =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_shaper =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_shaper_profile_result,
 			shaper, "shaper");
-cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_profile =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_shaper_profile_profile =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_shaper_profile_result,
 			profile, "profile");
-cmdline_parse_token_num_t cmd_set_port_tm_node_shaper_profile_port_id =
+static cmdline_parse_token_num_t cmd_set_port_tm_node_shaper_profile_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_tm_node_shaper_profile_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_port_tm_node_shaper_profile_node_id =
+static cmdline_parse_token_num_t cmd_set_port_tm_node_shaper_profile_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_port_tm_node_shaper_profile_result,
 		node_id, RTE_UINT32);
-cmdline_parse_token_num_t
+static cmdline_parse_token_num_t
 	cmd_set_port_tm_node_shaper_shaper_profile_profile_id =
 		TOKEN_NUM_INITIALIZER(
 			struct cmd_set_port_tm_node_shaper_profile_result,
@@ -1590,50 +1590,50 @@ struct cmd_add_port_tm_nonleaf_node_result {
 	cmdline_multi_string_t multi_shared_shaper_id;
 };
 
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_add =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_result, add, "add");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_port =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_result, port, "port");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_tm =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_result, tm, "tm");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_nonleaf =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_nonleaf =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_result, nonleaf, "nonleaf");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_node =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_result, node, "node");
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_port_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_node_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 node_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_parent_node_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_parent_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 parent_node_id, RTE_INT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_priority =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_priority =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 priority, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_weight =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_weight =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 weight, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_level_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_level_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 level_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_shaper_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_shaper_profile_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 shaper_profile_id, RTE_INT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_n_sp_priorities =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_n_sp_priorities =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 n_sp_priorities, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_stats_mask =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_stats_mask =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 stats_mask, RTE_UINT64);
-cmdline_parse_token_string_t
+static cmdline_parse_token_string_t
 	cmd_add_port_tm_nonleaf_node_multi_shared_shaper_id =
 	TOKEN_STRING_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_result,
 		 multi_shared_shaper_id, TOKEN_STRING_MULTI);
@@ -1749,53 +1749,53 @@ struct cmd_add_port_tm_nonleaf_node_pmode_result {
 	cmdline_multi_string_t multi_shared_shaper_id;
 };
 
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_add =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_pmode_result, add, "add");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_port =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_pmode_result, port, "port");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_tm =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_pmode_result, tm, "tm");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_nonleaf =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_nonleaf =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_pmode_result, nonleaf, "nonleaf");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_node =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_pmode_result, node, "node");
-cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_pktmode =
+static cmdline_parse_token_string_t cmd_add_port_tm_nonleaf_node_pmode_pktmode =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_pmode_result, node, "pktmode");
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_port_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_node_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 node_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_parent_node_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_parent_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 parent_node_id, RTE_INT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_priority =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_priority =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 priority, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_weight =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_weight =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 weight, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_level_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_level_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 level_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_shaper_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_shaper_profile_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 shaper_profile_id, RTE_INT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_n_sp_priorities =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_n_sp_priorities =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 n_sp_priorities, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_stats_mask =
+static cmdline_parse_token_num_t cmd_add_port_tm_nonleaf_node_pmode_stats_mask =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_nonleaf_node_pmode_result,
 		 stats_mask, RTE_UINT64);
-cmdline_parse_token_string_t
+static cmdline_parse_token_string_t
 	cmd_add_port_tm_nonleaf_node_pmode_multi_shrd_shpr_id =
 	TOKEN_STRING_INITIALIZER(
 			struct cmd_add_port_tm_nonleaf_node_pmode_result,
@@ -1917,52 +1917,52 @@ struct cmd_add_port_tm_leaf_node_result {
 	cmdline_multi_string_t multi_shared_shaper_id;
 };
 
-cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_add =
+static cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_add =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_leaf_node_result, add, "add");
-cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_port =
+static cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_leaf_node_result, port, "port");
-cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_tm =
+static cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_leaf_node_result, tm, "tm");
-cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_nonleaf =
+static cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_nonleaf =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_leaf_node_result, leaf, "leaf");
-cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_node =
+static cmdline_parse_token_string_t cmd_add_port_tm_leaf_node_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_add_port_tm_leaf_node_result, node, "node");
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_port_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_node_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 node_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_parent_node_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_parent_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 parent_node_id, RTE_INT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_priority =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_priority =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 priority, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_weight =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_weight =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 weight, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_level_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_level_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 level_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_shaper_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_shaper_profile_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 shaper_profile_id, RTE_INT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_cman_mode =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_cman_mode =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 cman_mode, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_wred_profile_id =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_wred_profile_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 wred_profile_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_stats_mask =
+static cmdline_parse_token_num_t cmd_add_port_tm_leaf_node_stats_mask =
 	TOKEN_NUM_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 stats_mask, RTE_UINT64);
-cmdline_parse_token_string_t
+static cmdline_parse_token_string_t
 	cmd_add_port_tm_leaf_node_multi_shared_shaper_id =
 	TOKEN_STRING_INITIALIZER(struct cmd_add_port_tm_leaf_node_result,
 		 multi_shared_shaper_id, TOKEN_STRING_MULTI);
@@ -2071,22 +2071,22 @@ struct cmd_del_port_tm_node_result {
 	uint32_t node_id;
 };
 
-cmdline_parse_token_string_t cmd_del_port_tm_node_del =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_del =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_result, del, "del");
-cmdline_parse_token_string_t cmd_del_port_tm_node_port =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_result, port, "port");
-cmdline_parse_token_string_t cmd_del_port_tm_node_tm =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_result, tm, "tm");
-cmdline_parse_token_string_t cmd_del_port_tm_node_node =
+static cmdline_parse_token_string_t cmd_del_port_tm_node_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_del_port_tm_node_result, node, "node");
-cmdline_parse_token_num_t cmd_del_port_tm_node_port_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_del_port_tm_node_result,
 		 port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_del_port_tm_node_node_id =
+static cmdline_parse_token_num_t cmd_del_port_tm_node_node_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_del_port_tm_node_result,
 		node_id, RTE_UINT32);
 
@@ -2146,36 +2146,36 @@ struct cmd_set_port_tm_node_parent_result {
 	uint32_t weight;
 };
 
-cmdline_parse_token_string_t cmd_set_port_tm_node_parent_set =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_parent_set =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_parent_result, set, "set");
-cmdline_parse_token_string_t cmd_set_port_tm_node_parent_port =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_parent_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_parent_result, port, "port");
-cmdline_parse_token_string_t cmd_set_port_tm_node_parent_tm =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_parent_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_parent_result, tm, "tm");
-cmdline_parse_token_string_t cmd_set_port_tm_node_parent_node =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_parent_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_parent_result, node, "node");
-cmdline_parse_token_string_t cmd_set_port_tm_node_parent_parent =
+static cmdline_parse_token_string_t cmd_set_port_tm_node_parent_parent =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_set_port_tm_node_parent_result, parent, "parent");
-cmdline_parse_token_num_t cmd_set_port_tm_node_parent_port_id =
+static cmdline_parse_token_num_t cmd_set_port_tm_node_parent_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_tm_node_parent_result, port_id,
 		RTE_UINT16);
-cmdline_parse_token_num_t cmd_set_port_tm_node_parent_node_id =
+static cmdline_parse_token_num_t cmd_set_port_tm_node_parent_node_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_set_port_tm_node_parent_result, node_id,
 		RTE_UINT32);
-cmdline_parse_token_num_t cmd_set_port_tm_node_parent_parent_id =
+static cmdline_parse_token_num_t cmd_set_port_tm_node_parent_parent_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_port_tm_node_parent_result,
 		parent_id, RTE_UINT32);
-cmdline_parse_token_num_t cmd_set_port_tm_node_parent_priority =
+static cmdline_parse_token_num_t cmd_set_port_tm_node_parent_priority =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_port_tm_node_parent_result,
 		priority, RTE_UINT32);
-cmdline_parse_token_num_t cmd_set_port_tm_node_parent_weight =
+static cmdline_parse_token_num_t cmd_set_port_tm_node_parent_weight =
 	TOKEN_NUM_INITIALIZER(struct cmd_set_port_tm_node_parent_result,
 		weight, RTE_UINT32);
 
@@ -2239,23 +2239,23 @@ struct cmd_suspend_port_tm_node_result {
 	uint32_t node_id;
 };
 
-cmdline_parse_token_string_t cmd_suspend_port_tm_node_suspend =
+static cmdline_parse_token_string_t cmd_suspend_port_tm_node_suspend =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_suspend_port_tm_node_result, suspend, "suspend");
-cmdline_parse_token_string_t cmd_suspend_port_tm_node_port =
+static cmdline_parse_token_string_t cmd_suspend_port_tm_node_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_suspend_port_tm_node_result, port, "port");
-cmdline_parse_token_string_t cmd_suspend_port_tm_node_tm =
+static cmdline_parse_token_string_t cmd_suspend_port_tm_node_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_suspend_port_tm_node_result, tm, "tm");
-cmdline_parse_token_string_t cmd_suspend_port_tm_node_node =
+static cmdline_parse_token_string_t cmd_suspend_port_tm_node_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_suspend_port_tm_node_result, node, "node");
-cmdline_parse_token_num_t cmd_suspend_port_tm_node_port_id =
+static cmdline_parse_token_num_t cmd_suspend_port_tm_node_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_suspend_port_tm_node_result, port_id,
 		RTE_UINT16);
-cmdline_parse_token_num_t cmd_suspend_port_tm_node_node_id =
+static cmdline_parse_token_num_t cmd_suspend_port_tm_node_node_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_suspend_port_tm_node_result, node_id,
 		RTE_UINT32);
@@ -2306,22 +2306,22 @@ struct cmd_resume_port_tm_node_result {
 	uint32_t node_id;
 };
 
-cmdline_parse_token_string_t cmd_resume_port_tm_node_resume =
+static cmdline_parse_token_string_t cmd_resume_port_tm_node_resume =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_resume_port_tm_node_result, resume, "resume");
-cmdline_parse_token_string_t cmd_resume_port_tm_node_port =
+static cmdline_parse_token_string_t cmd_resume_port_tm_node_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_resume_port_tm_node_result, port, "port");
-cmdline_parse_token_string_t cmd_resume_port_tm_node_tm =
+static cmdline_parse_token_string_t cmd_resume_port_tm_node_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_resume_port_tm_node_result, tm, "tm");
-cmdline_parse_token_string_t cmd_resume_port_tm_node_node =
+static cmdline_parse_token_string_t cmd_resume_port_tm_node_node =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_resume_port_tm_node_result, node, "node");
-cmdline_parse_token_num_t cmd_resume_port_tm_node_port_id =
+static cmdline_parse_token_num_t cmd_resume_port_tm_node_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_resume_port_tm_node_result, port_id, RTE_UINT16);
-cmdline_parse_token_num_t cmd_resume_port_tm_node_node_id =
+static cmdline_parse_token_num_t cmd_resume_port_tm_node_node_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_resume_port_tm_node_result, node_id, RTE_UINT32);
 
@@ -2371,24 +2371,24 @@ struct cmd_port_tm_hierarchy_commit_result {
 	cmdline_fixed_string_t clean_on_fail;
 };
 
-cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_port =
+static cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_port =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_port_tm_hierarchy_commit_result, port, "port");
-cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_tm =
+static cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_tm =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_port_tm_hierarchy_commit_result, tm, "tm");
-cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_hierarchy =
+static cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_hierarchy =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_port_tm_hierarchy_commit_result,
 			hierarchy, "hierarchy");
-cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_commit =
+static cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_commit =
 	TOKEN_STRING_INITIALIZER(
 		struct cmd_port_tm_hierarchy_commit_result, commit, "commit");
-cmdline_parse_token_num_t cmd_port_tm_hierarchy_commit_port_id =
+static cmdline_parse_token_num_t cmd_port_tm_hierarchy_commit_port_id =
 	TOKEN_NUM_INITIALIZER(
 		struct cmd_port_tm_hierarchy_commit_result,
 			port_id, RTE_UINT16);
-cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_clean_on_fail =
+static cmdline_parse_token_string_t cmd_port_tm_hierarchy_commit_clean_on_fail =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_hierarchy_commit_result,
 		 clean_on_fail, "yes#no");
 
@@ -2446,36 +2446,36 @@ struct cmd_port_tm_mark_ip_ecn_result {
 	uint16_t red;
 };
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_set =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 				 set, "set");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_port =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 				 port, "port");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_tm =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_tm =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result, tm,
 				 "tm");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_mark =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_mark =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 				 mark, "mark");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_ip_ecn =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_ecn_ip_ecn =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 				 ip_ecn, "ip_ecn");
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_port_id =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_green =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_green =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 			      green, RTE_UINT16);
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_yellow =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_yellow =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 			      yellow, RTE_UINT16);
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_red =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_ecn_red =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_ecn_result,
 				red, RTE_UINT16);
 
@@ -2533,36 +2533,36 @@ struct cmd_port_tm_mark_ip_dscp_result {
 	uint16_t red;
 };
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_set =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 				 set, "set");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_port =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 				 port, "port");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_tm =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_tm =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result, tm,
 				 "tm");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_mark =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_mark =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 				 mark, "mark");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_ip_dscp =
+static cmdline_parse_token_string_t cmd_port_tm_mark_ip_dscp_ip_dscp =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 				 ip_dscp, "ip_dscp");
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_port_id =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_green =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_green =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 				green, RTE_UINT16);
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_yellow =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_yellow =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 				yellow, RTE_UINT16);
-cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_red =
+static cmdline_parse_token_num_t cmd_port_tm_mark_ip_dscp_red =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_ip_dscp_result,
 				red, RTE_UINT16);
 
@@ -2620,36 +2620,36 @@ struct cmd_port_tm_mark_vlan_dei_result {
 	uint16_t red;
 };
 
-cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_set =
+static cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_set =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 				 set, "set");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_port =
+static cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 				 port, "port");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_tm =
+static cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_tm =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result, tm,
 				 "tm");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_mark =
+static cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_mark =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 				 mark, "mark");
 
-cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_vlan_dei =
+static cmdline_parse_token_string_t cmd_port_tm_mark_vlan_dei_vlan_dei =
 	TOKEN_STRING_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 				 vlan_dei, "vlan_dei");
-cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_port_id =
+static cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_port_id =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 			      port_id, RTE_UINT16);
 
-cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_green =
+static cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_green =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 				green, RTE_UINT16);
-cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_yellow =
+static cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_yellow =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 				yellow, RTE_UINT16);
-cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_red =
+static cmdline_parse_token_num_t cmd_port_tm_mark_vlan_dei_red =
 	TOKEN_NUM_INITIALIZER(struct cmd_port_tm_mark_vlan_dei_result,
 				red, RTE_UINT16);
 
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [PATCH v2 2/2] app/testpmd: register driver specific commands
  2022-05-24 20:06 ` [PATCH v2 0/2] " David Marchand
  2022-05-24 20:06   ` [PATCH v2 1/2] app/testpmd: mark most cmdline symbols as static David Marchand
@ 2022-05-24 20:06   ` David Marchand
  2022-05-24 20:28     ` Thomas Monjalon
  2022-05-31 15:18   ` [PATCH v2 0/2] Split driver specific commands out of testpmd Andrew Rybchenko
  2 siblings, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-05-24 20:06 UTC (permalink / raw)
  To: dev
  Cc: thomas, andrew.rybchenko, ferruh.yigit, Xiaoyun Li, Aman Singh,
	Yuying Zhang, Bruce Richardson

Introduce a testpmd API so that drivers can register specific commands.

A driver can list some files to compile with testpmd, by setting them
in the testpmd_sources (driver local) meson variable.
drivers/meson.build then takes care of appending this to a global meson
variable, and adding the driver to testpmd dependency.

Note: testpmd.h is fixed to that it is self sufficient when being
included.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since v1:
- simplified main_ctx allocation code,
- aligned structure/register function name/macro,

Changes since RFC v2:
- fixed registering issue (again..),
- updated internals and names of structure so that a usage string is
  associated to each cmdline ctx,
- updated documentation,

Changes since RFC v1:
- fixed registering issue,

---
 app/test-pmd/cmdline.c                      | 73 ++++++++++++++++++---
 app/test-pmd/meson.build                    |  5 ++
 app/test-pmd/testpmd.c                      |  4 ++
 app/test-pmd/testpmd.h                      | 23 +++++++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst | 27 +++++---
 drivers/meson.build                         |  5 ++
 meson.build                                 |  2 +
 7 files changed, 122 insertions(+), 17 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 498fe2c2b7..64830db699 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -69,6 +69,9 @@
 #include "bpf_cmd.h"
 
 static struct cmdline *testpmd_cl;
+static cmdline_parse_ctx_t *main_ctx;
+static TAILQ_HEAD(, testpmd_driver_commands) driver_commands_head =
+	TAILQ_HEAD_INITIALIZER(driver_commands_head);
 
 static void cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue);
 
@@ -93,7 +96,8 @@ static void cmd_help_brief_parsed(__rte_unused void *parsed_result,
 		"    help registers                  : Reading and setting port registers.\n"
 		"    help filters                    : Filters configuration help.\n"
 		"    help traffic_management         : Traffic Management commands.\n"
-		"    help devices                    : Device related cmds.\n"
+		"    help devices                    : Device related commands.\n"
+		"    help drivers                    : Driver specific commands.\n"
 		"    help all                        : All of the above sections.\n\n"
 	);
 
@@ -1177,6 +1181,21 @@ static void cmd_help_long_parsed(void *parsed_result,
 		);
 	}
 
+	if (show_all || !strcmp(res->section, "drivers")) {
+		struct testpmd_driver_commands *c;
+		unsigned int i;
+
+		cmdline_printf(
+			cl,
+			"\n"
+			"Driver specific:\n"
+			"----------------\n"
+		);
+		TAILQ_FOREACH(c, &driver_commands_head, next) {
+			for (i = 0; c->commands[i].ctx != NULL; i++)
+				cmdline_printf(cl, "%s\n", c->commands[i].help);
+		}
+	}
 }
 
 static cmdline_parse_token_string_t cmd_help_long_help =
@@ -1184,14 +1203,14 @@ static cmdline_parse_token_string_t cmd_help_long_help =
 
 static cmdline_parse_token_string_t cmd_help_long_section =
 	TOKEN_STRING_INITIALIZER(struct cmd_help_long_result, section,
-			"all#control#display#config#"
-			"ports#registers#filters#traffic_management#devices");
+		"all#control#display#config#ports#registers#"
+		"filters#traffic_management#devices#drivers");
 
 static cmdline_parse_inst_t cmd_help_long = {
 	.f = cmd_help_long_parsed,
 	.data = NULL,
 	.help_str = "help all|control|display|config|ports|register|"
-		"filters|traffic_management|devices: "
+		"filters|traffic_management|devices|drivers: "
 		"Show help",
 	.tokens = {
 		(void *)&cmd_help_long_help,
@@ -17800,7 +17819,7 @@ static cmdline_parse_inst_t cmd_show_port_flow_transfer_proxy = {
 /* ******************************************************************************** */
 
 /* list of instructions */
-static cmdline_parse_ctx_t main_ctx[] = {
+static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_help_brief,
 	(cmdline_parse_inst_t *)&cmd_help_long,
 	(cmdline_parse_inst_t *)&cmd_quit,
@@ -18086,6 +18105,47 @@ static cmdline_parse_ctx_t main_ctx[] = {
 	NULL,
 };
 
+void
+testpmd_add_driver_commands(struct testpmd_driver_commands *c)
+{
+	TAILQ_INSERT_TAIL(&driver_commands_head, c, next);
+}
+
+int
+init_cmdline(void)
+{
+	struct testpmd_driver_commands *c;
+	unsigned int count;
+	unsigned int i;
+
+	/* initialize non-constant commands */
+	cmd_set_fwd_mode_init();
+	cmd_set_fwd_retry_mode_init();
+
+	count = 0;
+	for (i = 0; builtin_ctx[i] != NULL; i++, count++)
+		;
+	TAILQ_FOREACH(c, &driver_commands_head, next) {
+		for (i = 0; c->commands[i].ctx != NULL; i++, count++)
+			;
+	}
+
+	/* cmdline expects a NULL terminated array */
+	main_ctx = calloc(count + 1, sizeof(main_ctx[0]));
+	if (main_ctx == NULL)
+		return -1;
+
+	count = 0;
+	for (i = 0; builtin_ctx[i] != NULL; i++, count++)
+		main_ctx[count] = builtin_ctx[i];
+	TAILQ_FOREACH(c, &driver_commands_head, next) {
+		for (i = 0; c->commands[i].ctx != NULL; i++, count++)
+			main_ctx[count] = c->commands[i].ctx;
+	}
+
+	return 0;
+}
+
 /* read cmdline commands from file */
 void
 cmdline_read_from_file(const char *filename)
@@ -18113,9 +18173,6 @@ void
 prompt(void)
 {
 	int ret;
-	/* initialize non-constant commands */
-	cmd_set_fwd_mode_init();
-	cmd_set_fwd_retry_mode_init();
 
 	testpmd_cl = cmdline_stdin_new(main_ctx, "testpmd> ");
 	if (testpmd_cl == NULL)
diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index 43130c8856..d13e98125e 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -73,3 +73,8 @@ endif
 if dpdk_conf.has('RTE_NET_DPAA')
     deps += ['bus_dpaa', 'mempool_dpaa', 'net_dpaa']
 endif
+
+# Driver-specific commands are located in driver directories.
+includes = include_directories('.')
+sources += testpmd_drivers_sources
+deps += testpmd_drivers_deps
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 79bb23264b..93ec930b15 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -4275,6 +4275,10 @@ main(int argc, char** argv)
 	}
 #endif
 #ifdef RTE_LIB_CMDLINE
+	if (init_cmdline() != 0)
+		rte_exit(EXIT_FAILURE,
+			"Could not initialise cmdline context.\n");
+
 	if (strlen(cmdline_filename) != 0)
 		cmdline_read_from_file(cmdline_filename);
 
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index 31f766c965..125db77d67 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -16,7 +16,13 @@
 #include <rte_gso.h>
 #endif
 #include <rte_os_shim.h>
+#include <rte_ethdev.h>
+#include <rte_flow.h>
+#include <rte_mbuf_dyn.h>
+
 #include <cmdline.h>
+#include <cmdline_parse.h>
+
 #include <sys/queue.h>
 #ifdef RTE_HAS_JANSSON
 #include <jansson.h>
@@ -866,6 +872,7 @@ unsigned int parse_item_list(const char *str, const char *item_name,
 			unsigned int *parsed_items, int check_unique_values);
 void launch_args_parse(int argc, char** argv);
 void cmdline_read_from_file(const char *filename);
+int init_cmdline(void);
 void prompt(void);
 void prompt_exit(void);
 void nic_stats_display(portid_t port_id);
@@ -1169,6 +1176,22 @@ extern int flow_parse(const char *src, void *result, unsigned int size,
 		      struct rte_flow_item **pattern,
 		      struct rte_flow_action **actions);
 
+/* For registering driver specific testpmd commands. */
+struct testpmd_driver_commands {
+	TAILQ_ENTRY(testpmd_driver_commands) next;
+	struct {
+		cmdline_parse_inst_t *ctx;
+		const char *help;
+	} commands[];
+};
+
+void testpmd_add_driver_commands(struct testpmd_driver_commands *c);
+#define TESTPMD_ADD_DRIVER_COMMANDS(c) \
+RTE_INIT(__##c) \
+{ \
+	testpmd_add_driver_commands(&c); \
+}
+
 /*
  * Work-around of a compilation error with ICC on invocations of the
  * rte_be_to_cpu_16() function.
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index 1083c6d538..bbeba554eb 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -49,15 +49,18 @@ These are divided into sections and can be accessed using help, help section or
 .. code-block:: console
 
    testpmd> help
-
-       help control    : Start and stop forwarding.
-       help display    : Displaying port, stats and config information.
-       help config     : Configuration information.
-       help ports      : Configuring ports.
-       help registers  : Reading and setting port registers.
-       help filters    : Filters configuration help.
-       help all        : All of the above sections.
-
+       Help is available for the following sections:
+
+           help control                    : Start and stop forwarding.
+           help display                    : Displaying port, stats and config information.
+           help config                     : Configuration information.
+           help ports                      : Configuring ports.
+           help registers                  : Reading and setting port registers.
+           help filters                    : Filters configuration help.
+           help traffic_management         : Traffic Management commands.
+           help devices                    : Device related commands.
+           help drivers                    : Driver specific commands.
+           help all                        : All of the above sections.
 
 Command File Functions
 ----------------------
@@ -5702,3 +5705,9 @@ Flex pattern can be shared between ports.
 
    testpmd> flow create 0 ingress pattern eth / ipv4 / udp / flex item is 3 pattern is 2 / end actions mark id 1 / queue index 0 / end
    Flow rule #0 created
+
+Driver specific commands
+------------------------
+
+Some drivers provide specific features.
+See:
diff --git a/drivers/meson.build b/drivers/meson.build
index 1d8123b00c..4daa2658b7 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -102,6 +102,7 @@ foreach subpath:subdirs
         # static builds.
         ext_deps = []
         pkgconfig_extra_libs = []
+        testpmd_sources = []
 
         if not enable_drivers.contains(drv_path)
             build = false
@@ -246,6 +247,10 @@ foreach subpath:subdirs
         set_variable('shared_@0@'.format(lib_name), shared_dep)
         set_variable('static_@0@'.format(lib_name), static_dep)
         dependency_name = ''.join(lib_name.split('rte_'))
+        if testpmd_sources.length() != 0
+            testpmd_drivers_sources += testpmd_sources
+            testpmd_drivers_deps += dependency_name
+        endif
         if developer_mode
             message('drivers/@0@: Defining dependency "@1@"'.format(
                     drv_path, dependency_name))
diff --git a/meson.build b/meson.build
index 937f6110c0..5561171617 100644
--- a/meson.build
+++ b/meson.build
@@ -42,6 +42,8 @@ dpdk_drivers = []
 dpdk_extra_ldflags = []
 dpdk_libs_disabled = []
 dpdk_drvs_disabled = []
+testpmd_drivers_sources = []
+testpmd_drivers_deps = []
 abi_version_file = files('ABI_VERSION')
 
 if host_machine.cpu_family().startswith('x86')
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* Re: [PATCH v2 2/2] app/testpmd: register driver specific commands
  2022-05-24 20:06   ` [PATCH v2 2/2] app/testpmd: register driver specific commands David Marchand
@ 2022-05-24 20:28     ` Thomas Monjalon
  2022-05-31 15:14       ` Andrew Rybchenko
  0 siblings, 1 reply; 65+ messages in thread
From: Thomas Monjalon @ 2022-05-24 20:28 UTC (permalink / raw)
  To: David Marchand
  Cc: dev, andrew.rybchenko, ferruh.yigit, Xiaoyun Li, Aman Singh,
	Yuying Zhang, Bruce Richardson

24/05/2022 22:06, David Marchand:
> +	count = 0;
> +	for (i = 0; builtin_ctx[i] != NULL; i++, count++)
> +		;
> +	TAILQ_FOREACH(c, &driver_commands_head, next) {
> +		for (i = 0; c->commands[i].ctx != NULL; i++, count++)
> +			;
> +	}

Just a personal preference:
the iterator "i" is incremented inside the "for" instructions,
but I would have incremented "count" as a statement of the loops.

Acked-by: Thomas Monjalon <thomas@monjalon.net>

Thanks



^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [RFC PATCH 2/4] net/bonding: move testpmd commands
  2022-05-24 10:15                 ` Thomas Monjalon
@ 2022-05-24 22:41                   ` Konstantin Ananyev
  0 siblings, 0 replies; 65+ messages in thread
From: Konstantin Ananyev @ 2022-05-24 22:41 UTC (permalink / raw)
  To: Thomas Monjalon, Andrew Rybchenko, David Marchand
  Cc: dev, Min Hu (Connor),
	Xiaoyun Li, Aman Singh, Yuying Zhang, Chas Williams, jerinj

24/05/2022 11:15, Thomas Monjalon пишет:
> 24/05/2022 11:40, Konstantin Ananyev:
>> 20/05/2022 07:59, Andrew Rybchenko пишет:
>>> On 5/19/22 14:26, Thomas Monjalon wrote:
>>>> 19/05/2022 09:40, David Marchand:
>>>>> On Thu, May 19, 2022 at 1:25 AM Konstantin Ananyev
>>>>> <konstantin.v.ananyev@yandex.ru> wrote:
>>>>>> 18/05/2022 18:24, David Marchand пишет:
>>>>>>> On Fri, May 13, 2022 at 12:10 PM Min Hu (Connor)
>>>>>>> <humin29@huawei.com> wrote:
>>>>>>>>
>>>>>>>>      I think net/bonding offer 'API' for APP to use the bonding.
>>>>>>>>        and use the specific PMD as slave device.
>>>>>>>>      The software framwork is like:
>>>>>>>>       APP
>>>>>>>>       ethdev
>>>>>>>>       bonding PMD
>>>>>>>>       PMD
>>>>>>>>       hardware
>>>>>>>>
>>>>>>>> so, I think cmdlines for testpmd should not put in net/bonding.be
>>>>
>>>> The bonding API is specific to drivers/net/bonding/,
>>>> so according to the techboard decision,
>>>> the testpmd code should go in the driver directory.
>>>
>>> +1
>>>
>>>>
>>>>>> Actually, I feel the same.
>>>>>> I do understand the intention, and I do realize it is just location,
>>>>>> but still doesn't look right for me.
>>>>>> can't we have a special sub-folder in testpmd instead?
>>>>>> Something like app/testpmd/driver_specific/(ixgbe)|(i40e)|(bonding)...
>>>>>
>>>>> That should not pose a problem, indeed.
>>>>> And, on the plus side, it avoids putting some testpmd global variables
>>>>> in meson (which I was not entirely happy with).
>>>>
>>>> I like the global variables approach.
>>>
>>> +1
>>>
>>>>
>>>>> But, on the other side, I have a concern about MAINTAINERS updates.
>>>>>
>>>>> (almost) everything in app/test-pmd has been under the testpmd
>>>>> maintainer responsibility.
>>>>> Separating the driver specific code from testpmd is a way to clearly
>>>>> shift this responsibility to the driver maintenance.
>>>>
>>>> I agree.
>>>
>>> +1
>>>
>>>>
>>>>> One advantage of moving the code to the driver directory is that there
>>>>> is no MAINTAINERS update needed.
>>>>
>>>> Yes I think moving test code in the driver directory is smart.
>>>> We already have this approach for some self tests run with app/test.
>>>> And more important, the techboard has decided to move code in the driver
>>>> or lib directory:
>>>>      https://mails.dpdk.org/archives/dev/2022-April/239191.html
>>
>> Yep, I remember that discussion, though from my impression
>> (probably wrong) people talked more about need for some smart
>> testpmd plugin approach.
>> I didn't realize that it would mean literally dump all
>> current cmd-line related code straight into drivers/net.
>> I agree that testpmd code for PMD-specific API should be
>> responsibility of this PMD maintainer.
>> I just don't feel that drivers/net is the best place for it.
>> As another thing to consider: what would happen if we'll decide
>> to rework testpmd interface (from CLI to gRPC or so), or introduce
>> new app for PMD testing - would we need to inject all these things
>> into drivers/net too?
> 
> Yes I think it's OK to have driver-specific test code
> in the driver directory.
> This is what is already done for eventdev and rawdev drivers:
> 	git ls-files drivers | grep test

Ok, if we already doing it that way for some dev types,
then probably no point to do it differently for netdev.



^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH v2 2/2] app/testpmd: register driver specific commands
  2022-05-24 20:28     ` Thomas Monjalon
@ 2022-05-31 15:14       ` Andrew Rybchenko
  2022-05-31 15:18         ` David Marchand
  0 siblings, 1 reply; 65+ messages in thread
From: Andrew Rybchenko @ 2022-05-31 15:14 UTC (permalink / raw)
  To: Thomas Monjalon, David Marchand
  Cc: dev, ferruh.yigit, Xiaoyun Li, Aman Singh, Yuying Zhang,
	Bruce Richardson

On 5/24/22 23:28, Thomas Monjalon wrote:
> 24/05/2022 22:06, David Marchand:
>> +	count = 0;
>> +	for (i = 0; builtin_ctx[i] != NULL; i++, count++)
>> +		;
>> +	TAILQ_FOREACH(c, &driver_commands_head, next) {
>> +		for (i = 0; c->commands[i].ctx != NULL; i++, count++)
>> +			;
>> +	}
> 
> Just a personal preference:
> the iterator "i" is incremented inside the "for" instructions,
> but I would have incremented "count" as a statement of the loops.

Since I dislike loops with empty body as well, I'll change it on
applying.

> 
> Acked-by: Thomas Monjalon <thomas@monjalon.net>
> 
> Thanks
> 
> 

Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH v2 1/2] app/testpmd: mark most cmdline symbols as static
  2022-05-24 20:06   ` [PATCH v2 1/2] app/testpmd: mark most cmdline symbols as static David Marchand
@ 2022-05-31 15:15     ` Andrew Rybchenko
  0 siblings, 0 replies; 65+ messages in thread
From: Andrew Rybchenko @ 2022-05-31 15:15 UTC (permalink / raw)
  To: David Marchand, dev
  Cc: thomas, ferruh.yigit, Cristian Dumitrescu, Konstantin Ananyev,
	Xiaoyun Li, Aman Singh, Yuying Zhang, Ori Kam

On 5/24/22 23:06, David Marchand wrote:
> All those symbols don't need to be global, plus it was hiding unused
> code such as:
> - cmd_set_conntrack_dir_set and cmd_set_conntrack_dir_conntrack in
>    cmdline.c,
> - cmd_create_port_meter_g_action, cmd_create_port_meter_r_action,
>    cmd_create_port_meter_y_action in cmdline_mtr.c,
> 
> Mark those symbols as static.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
> Acked-by: Ferruh Yigit <ferruh.yigit@xilinx.com>

Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH v2 2/2] app/testpmd: register driver specific commands
  2022-05-31 15:14       ` Andrew Rybchenko
@ 2022-05-31 15:18         ` David Marchand
  0 siblings, 0 replies; 65+ messages in thread
From: David Marchand @ 2022-05-31 15:18 UTC (permalink / raw)
  To: Andrew Rybchenko
  Cc: Thomas Monjalon, dev, Ferruh Yigit, Xiaoyun Li, Aman Singh,
	Yuying Zhang, Bruce Richardson

On Tue, May 31, 2022 at 5:14 PM Andrew Rybchenko
<andrew.rybchenko@oktetlabs.ru> wrote:
>
> On 5/24/22 23:28, Thomas Monjalon wrote:
> > 24/05/2022 22:06, David Marchand:
> >> +    count = 0;
> >> +    for (i = 0; builtin_ctx[i] != NULL; i++, count++)
> >> +            ;
> >> +    TAILQ_FOREACH(c, &driver_commands_head, next) {
> >> +            for (i = 0; c->commands[i].ctx != NULL; i++, count++)
> >> +                    ;
> >> +    }
> >
> > Just a personal preference:
> > the iterator "i" is incremented inside the "for" instructions,
> > but I would have incremented "count" as a statement of the loops.
>
> Since I dislike loops with empty body as well, I'll change it on
> applying.

I am fine with the proposed form.
Thanks Andrew.

-- 
David Marchand


^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH v2 0/2] Split driver specific commands out of testpmd
  2022-05-24 20:06 ` [PATCH v2 0/2] " David Marchand
  2022-05-24 20:06   ` [PATCH v2 1/2] app/testpmd: mark most cmdline symbols as static David Marchand
  2022-05-24 20:06   ` [PATCH v2 2/2] app/testpmd: register driver specific commands David Marchand
@ 2022-05-31 15:18   ` Andrew Rybchenko
  2 siblings, 0 replies; 65+ messages in thread
From: Andrew Rybchenko @ 2022-05-31 15:18 UTC (permalink / raw)
  To: David Marchand, dev; +Cc: thomas, ferruh.yigit

On 5/24/22 23:06, David Marchand wrote:
> Hello,
> 
> Following TB decision [1] and recent discussions on the driver specific
> commands in testpmd, here is a proposal on how the split could be done.
> 
> For now, this series simply moves the testpmd code in the driver
> directory. The driver specific testpmd code is still compiled as part of
> testpmd compilation via a global meson testpmd_driver_sources list.
> 
> 1: https://mails.dpdk.org/archives/dev/2022-April/239191.html
> 

Applied to dpdk-next-net/main, thanks.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* [PATCH v2] net/bonding: move testpmd commands
  2022-05-23  7:10   ` [PATCH 3/6] net/bonding: move testpmd commands David Marchand
  2022-05-23 18:10     ` Ferruh Yigit
@ 2022-06-17  5:06     ` David Marchand
  2022-06-20 17:53       ` Ferruh Yigit
  1 sibling, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-06-17  5:06 UTC (permalink / raw)
  To: dev; +Cc: Xiaoyun Li, Aman Singh, Yuying Zhang, Chas Williams, Min Hu (Connor)

Move related specific testpmd commands into this driver directory.
While at it, fix checkpatch warnings.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since v1:
- rebased on next-net,
- updated link in documentation to directly point at commands,

Changes since RFC v2:
- renamed file in net/bonding,
- fixed some indent,
- updated documentation,

---
 app/test-pmd/cmdline.c                        | 1036 -----------------
 app/test-pmd/meson.build                      |    3 -
 .../link_bonding_poll_mode_drv_lib.rst        |  145 +++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst   |  140 +--
 drivers/net/bonding/bonding_testpmd.c         | 1030 ++++++++++++++++
 drivers/net/bonding/meson.build               |    1 +
 6 files changed, 1179 insertions(+), 1176 deletions(-)
 create mode 100644 drivers/net/bonding/bonding_testpmd.c

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index a59e6166d5..ae66771b7c 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -47,10 +47,6 @@
 #include <cmdline_parse_etheraddr.h>
 #include <cmdline_socket.h>
 #include <cmdline.h>
-#ifdef RTE_NET_BOND
-#include <rte_eth_bond.h>
-#include <rte_eth_bond_8023ad.h>
-#endif
 #if defined RTE_BUS_DPAA && defined RTE_NET_DPAA
 #include <rte_pmd_dpaa.h>
 #endif
@@ -617,44 +613,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"   Show the bypass configuration for a bypass enabled NIC"
 			" using the lowest port on the NIC.\n\n"
 
-#ifdef RTE_NET_BOND
-			"create bonded device (mode) (socket)\n"
-			"	Create a new bonded device with specific bonding mode and socket.\n\n"
-
-			"add bonding slave (slave_id) (port_id)\n"
-			"	Add a slave device to a bonded device.\n\n"
-
-			"remove bonding slave (slave_id) (port_id)\n"
-			"	Remove a slave device from a bonded device.\n\n"
-
-			"set bonding mode (value) (port_id)\n"
-			"	Set the bonding mode on a bonded device.\n\n"
-
-			"set bonding primary (slave_id) (port_id)\n"
-			"	Set the primary slave for a bonded device.\n\n"
-
-			"show bonding config (port_id)\n"
-			"	Show the bonding config for port_id.\n\n"
-
-			"show bonding lacp info (port_id)\n"
-			"	Show the bonding lacp information for port_id.\n\n"
-
-			"set bonding mac_addr (port_id) (address)\n"
-			"	Set the MAC address of a bonded device.\n\n"
-
-			"set bonding mode IEEE802.3AD aggregator policy (port_id) (agg_name)"
-			"	Set Aggregation mode for IEEE802.3AD (mode 4)"
-
-			"set bonding balance_xmit_policy (port_id) (l2|l23|l34)\n"
-			"	Set the transmit balance policy for bonded device running in balance mode.\n\n"
-
-			"set bonding mon_period (port_id) (value)\n"
-			"	Set the bonding link status monitoring polling period in ms.\n\n"
-
-			"set bonding lacp dedicated_queues <port_id> (enable|disable)\n"
-			"	Enable/disable dedicated queues for LACP control traffic.\n\n"
-
-#endif
 			"set link-up port (port_id)\n"
 			"	Set link up for a port.\n\n"
 
@@ -5933,986 +5891,6 @@ static cmdline_parse_inst_t cmd_show_bypass_config = {
 	},
 };
 
-#ifdef RTE_NET_BOND
-/* *** SET BONDING MODE *** */
-struct cmd_set_bonding_mode_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t mode;
-	uint8_t value;
-	portid_t port_id;
-};
-
-static void cmd_set_bonding_mode_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_mode_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	struct rte_port *port = &ports[port_id];
-
-	/*
-	 * Bonding mode changed means resources of device changed, like whether
-	 * started rte timer or not. Device should be restarted when resources
-	 * of device changed.
-	 */
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr,
-			"\t Error: Can't set bonding mode when port %d is not stopped\n",
-			port_id);
-		return;
-	}
-
-	/* Set the bonding mode for the relevant port. */
-	if (0 != rte_eth_bond_mode_set(port_id, res->value))
-		fprintf(stderr, "\t Failed to set bonding mode for port = %d.\n",
-			port_id);
-}
-
-static cmdline_parse_token_string_t cmd_setbonding_mode_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
-		set, "set");
-static cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_setbonding_mode_mode =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
-		mode, "mode");
-static cmdline_parse_token_num_t cmd_setbonding_mode_value =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
-		value, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_setbonding_mode_port =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
-		port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_set_bonding_mode = {
-		.f = cmd_set_bonding_mode_parsed,
-		.help_str = "set bonding mode <mode_value> <port_id>: "
-			"Set the bonding mode for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *) &cmd_setbonding_mode_set,
-				(void *) &cmd_setbonding_mode_bonding,
-				(void *) &cmd_setbonding_mode_mode,
-				(void *) &cmd_setbonding_mode_value,
-				(void *) &cmd_setbonding_mode_port,
-				NULL
-		}
-};
-
-/* *** SET BONDING SLOW_QUEUE SW/HW *** */
-struct cmd_set_bonding_lacp_dedicated_queues_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t lacp;
-	cmdline_fixed_string_t dedicated_queues;
-	portid_t port_id;
-	cmdline_fixed_string_t mode;
-};
-
-static void cmd_set_bonding_lacp_dedicated_queues_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_lacp_dedicated_queues_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	struct rte_port *port;
-
-	port = &ports[port_id];
-
-	/** Check if the port is not started **/
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr, "Please stop port %d first\n", port_id);
-		return;
-	}
-
-	if (!strcmp(res->mode, "enable")) {
-		if (rte_eth_bond_8023ad_dedicated_queues_enable(port_id) == 0)
-			printf("Dedicate queues for LACP control packets"
-					" enabled\n");
-		else
-			printf("Enabling dedicate queues for LACP control "
-					"packets on port %d failed\n", port_id);
-	} else if (!strcmp(res->mode, "disable")) {
-		if (rte_eth_bond_8023ad_dedicated_queues_disable(port_id) == 0)
-			printf("Dedicated queues for LACP control packets "
-					"disabled\n");
-		else
-			printf("Disabling dedicated queues for LACP control "
-					"traffic on port %d failed\n", port_id);
-	}
-}
-
-static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		set, "set");
-static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		lacp, "lacp");
-static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		dedicated_queues, "dedicated_queues");
-static cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
-		mode, "enable#disable");
-
-static cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
-		.f = cmd_set_bonding_lacp_dedicated_queues_parsed,
-		.help_str = "set bonding lacp dedicated_queues <port_id> "
-			"enable|disable: "
-			"Enable/disable dedicated queues for LACP control traffic for port_id",
-		.data = NULL,
-		.tokens = {
-			(void *)&cmd_setbonding_lacp_dedicated_queues_set,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_bonding,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_lacp,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_dedicated_queues,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_port_id,
-			(void *)&cmd_setbonding_lacp_dedicated_queues_mode,
-			NULL
-		}
-};
-
-/* *** SET BALANCE XMIT POLICY *** */
-struct cmd_set_bonding_balance_xmit_policy_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t balance_xmit_policy;
-	portid_t port_id;
-	cmdline_fixed_string_t policy;
-};
-
-static void cmd_set_bonding_balance_xmit_policy_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_balance_xmit_policy_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	uint8_t policy;
-
-	if (!strcmp(res->policy, "l2")) {
-		policy = BALANCE_XMIT_POLICY_LAYER2;
-	} else if (!strcmp(res->policy, "l23")) {
-		policy = BALANCE_XMIT_POLICY_LAYER23;
-	} else if (!strcmp(res->policy, "l34")) {
-		policy = BALANCE_XMIT_POLICY_LAYER34;
-	} else {
-		fprintf(stderr, "\t Invalid xmit policy selection");
-		return;
-	}
-
-	/* Set the bonding mode for the relevant port. */
-	if (0 != rte_eth_bond_xmit_policy_set(port_id, policy)) {
-		fprintf(stderr,
-			"\t Failed to set bonding balance xmit policy for port = %d.\n",
-			port_id);
-	}
-}
-
-static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		set, "set");
-static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		balance_xmit_policy, "balance_xmit_policy");
-static cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
-		policy, "l2#l23#l34");
-
-static cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
-		.f = cmd_set_bonding_balance_xmit_policy_parsed,
-		.help_str = "set bonding balance_xmit_policy <port_id> "
-			"l2|l23|l34: "
-			"Set the bonding balance_xmit_policy for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_setbonding_balance_xmit_policy_set,
-				(void *)&cmd_setbonding_balance_xmit_policy_bonding,
-				(void *)&cmd_setbonding_balance_xmit_policy_balance_xmit_policy,
-				(void *)&cmd_setbonding_balance_xmit_policy_port,
-				(void *)&cmd_setbonding_balance_xmit_policy_policy,
-				NULL
-		}
-};
-
-/* *** SHOW IEEE802.3 BONDING INFORMATION *** */
-struct cmd_show_bonding_lacp_info_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t lacp;
-	cmdline_fixed_string_t info;
-	portid_t port_id;
-};
-
-static void port_param_show(struct port_params *params)
-{
-	char buf[RTE_ETHER_ADDR_FMT_SIZE];
-
-	printf("\t\tsystem priority: %u\n", params->system_priority);
-	rte_ether_format_addr(buf, RTE_ETHER_ADDR_FMT_SIZE, &params->system);
-	printf("\t\tsystem mac address: %s\n", buf);
-	printf("\t\tport key: %u\n", params->key);
-	printf("\t\tport priority: %u\n", params->port_priority);
-	printf("\t\tport number: %u\n", params->port_number);
-}
-
-static void lacp_slave_info_show(struct rte_eth_bond_8023ad_slave_info *info)
-{
-	char a_state[256] = { 0 };
-	char p_state[256] = { 0 };
-	int a_len = 0;
-	int p_len = 0;
-	uint32_t i;
-
-	static const char * const state[] = {
-		"ACTIVE",
-		"TIMEOUT",
-		"AGGREGATION",
-		"SYNCHRONIZATION",
-		"COLLECTING",
-		"DISTRIBUTING",
-		"DEFAULTED",
-		"EXPIRED"
-	};
-	static const char * const selection[] = {
-		"UNSELECTED",
-		"STANDBY",
-		"SELECTED"
-	};
-
-	for (i = 0; i < RTE_DIM(state); i++) {
-		if ((info->actor_state >> i) & 1)
-			a_len += snprintf(&a_state[a_len],
-						RTE_DIM(a_state) - a_len, "%s ",
-						state[i]);
-
-		if ((info->partner_state >> i) & 1)
-			p_len += snprintf(&p_state[p_len],
-						RTE_DIM(p_state) - p_len, "%s ",
-						state[i]);
-	}
-	printf("\tAggregator port id: %u\n", info->agg_port_id);
-	printf("\tselection: %s\n", selection[info->selected]);
-	printf("\tActor detail info:\n");
-	port_param_show(&info->actor);
-	printf("\t\tport state: %s\n", a_state);
-	printf("\tPartner detail info:\n");
-	port_param_show(&info->partner);
-	printf("\t\tport state: %s\n", p_state);
-	printf("\n");
-}
-
-static void lacp_conf_show(struct rte_eth_bond_8023ad_conf *conf)
-{
-	printf("\tfast period: %u ms\n", conf->fast_periodic_ms);
-	printf("\tslow period: %u ms\n", conf->slow_periodic_ms);
-	printf("\tshort timeout: %u ms\n", conf->short_timeout_ms);
-	printf("\tlong timeout: %u ms\n", conf->long_timeout_ms);
-	printf("\taggregate wait timeout: %u ms\n",
-			conf->aggregate_wait_timeout_ms);
-	printf("\ttx period: %u ms\n", conf->tx_period_ms);
-	printf("\trx marker period: %u ms\n", conf->rx_marker_period_ms);
-	printf("\tupdate timeout: %u ms\n", conf->update_timeout_ms);
-	switch (conf->agg_selection) {
-	case AGG_BANDWIDTH:
-		printf("\taggregation mode: bandwidth\n");
-		break;
-	case AGG_STABLE:
-		printf("\taggregation mode: stable\n");
-		break;
-	case AGG_COUNT:
-		printf("\taggregation mode: count\n");
-		break;
-	default:
-		printf("\taggregation mode: invalid\n");
-		break;
-	}
-
-	printf("\n");
-}
-
-static void cmd_show_bonding_lacp_info_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_show_bonding_lacp_info_result *res = parsed_result;
-	struct rte_eth_bond_8023ad_slave_info slave_info;
-	struct rte_eth_bond_8023ad_conf port_conf;
-	portid_t slaves[RTE_MAX_ETHPORTS];
-	portid_t port_id = res->port_id;
-	int num_active_slaves;
-	int bonding_mode;
-	int i;
-	int ret;
-
-	bonding_mode = rte_eth_bond_mode_get(port_id);
-	if (bonding_mode != BONDING_MODE_8023AD) {
-		fprintf(stderr, "\tBonding mode is not mode 4\n");
-		return;
-	}
-
-	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
-			RTE_MAX_ETHPORTS);
-	if (num_active_slaves < 0) {
-		fprintf(stderr, "\tFailed to get active slave list for port = %u\n",
-				port_id);
-		return;
-	}
-	if (num_active_slaves == 0)
-		fprintf(stderr, "\tIEEE802.3 port %u has no active slave\n",
-			port_id);
-
-	printf("\tIEEE802.3 port: %u\n", port_id);
-	ret = rte_eth_bond_8023ad_conf_get(port_id, &port_conf);
-	if (ret) {
-		fprintf(stderr, "\tGet bonded device %u info failed\n",
-			port_id);
-		return;
-	}
-	lacp_conf_show(&port_conf);
-
-	for (i = 0; i < num_active_slaves; i++) {
-		ret = rte_eth_bond_8023ad_slave_info(port_id, slaves[i],
-				&slave_info);
-		if (ret) {
-			fprintf(stderr, "\tGet slave device %u info failed\n",
-				slaves[i]);
-			return;
-		}
-		printf("\tSlave Port: %u\n", slaves[i]);
-		lacp_slave_info_show(&slave_info);
-	}
-}
-
-static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		show, "show");
-static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		bonding, "lacp");
-static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		info, "info");
-static cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
-TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
-		port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
-		.f = cmd_show_bonding_lacp_info_parsed,
-		.help_str = "show bonding lacp info <port_id> : "
-			"Show bonding IEEE802.3 information for port_id",
-		.data = NULL,
-		.tokens = {
-			(void *)&cmd_show_bonding_lacp_info_show,
-			(void *)&cmd_show_bonding_lacp_info_bonding,
-			(void *)&cmd_show_bonding_lacp_info_lacp,
-			(void *)&cmd_show_bonding_lacp_info_info,
-			(void *)&cmd_show_bonding_lacp_info_port_id,
-			NULL
-		}
-};
-
-/* *** SHOW NIC BONDING CONFIGURATION *** */
-struct cmd_show_bonding_config_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t config;
-	portid_t port_id;
-};
-
-static void cmd_show_bonding_config_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_show_bonding_config_result *res = parsed_result;
-	int bonding_mode, agg_mode;
-	portid_t slaves[RTE_MAX_ETHPORTS];
-	int num_slaves, num_active_slaves;
-	int primary_id;
-	int i;
-	portid_t port_id = res->port_id;
-
-	/* Display the bonding mode.*/
-	bonding_mode = rte_eth_bond_mode_get(port_id);
-	if (bonding_mode < 0) {
-		fprintf(stderr, "\tFailed to get bonding mode for port = %d\n",
-			port_id);
-		return;
-	} else
-		printf("\tBonding mode: %d\n", bonding_mode);
-
-	if (bonding_mode == BONDING_MODE_BALANCE ||
-		bonding_mode == BONDING_MODE_8023AD) {
-		int balance_xmit_policy;
-
-		balance_xmit_policy = rte_eth_bond_xmit_policy_get(port_id);
-		if (balance_xmit_policy < 0) {
-			fprintf(stderr,
-				"\tFailed to get balance xmit policy for port = %d\n",
-				port_id);
-			return;
-		} else {
-			printf("\tBalance Xmit Policy: ");
-
-			switch (balance_xmit_policy) {
-			case BALANCE_XMIT_POLICY_LAYER2:
-				printf("BALANCE_XMIT_POLICY_LAYER2");
-				break;
-			case BALANCE_XMIT_POLICY_LAYER23:
-				printf("BALANCE_XMIT_POLICY_LAYER23");
-				break;
-			case BALANCE_XMIT_POLICY_LAYER34:
-				printf("BALANCE_XMIT_POLICY_LAYER34");
-				break;
-			}
-			printf("\n");
-		}
-	}
-
-	if (bonding_mode == BONDING_MODE_8023AD) {
-		agg_mode = rte_eth_bond_8023ad_agg_selection_get(port_id);
-		printf("\tIEEE802.3AD Aggregator Mode: ");
-		switch (agg_mode) {
-		case AGG_BANDWIDTH:
-			printf("bandwidth");
-			break;
-		case AGG_STABLE:
-			printf("stable");
-			break;
-		case AGG_COUNT:
-			printf("count");
-			break;
-		}
-		printf("\n");
-	}
-
-	num_slaves = rte_eth_bond_slaves_get(port_id, slaves, RTE_MAX_ETHPORTS);
-
-	if (num_slaves < 0) {
-		fprintf(stderr, "\tFailed to get slave list for port = %d\n",
-			port_id);
-		return;
-	}
-	if (num_slaves > 0) {
-		printf("\tSlaves (%d): [", num_slaves);
-		for (i = 0; i < num_slaves - 1; i++)
-			printf("%d ", slaves[i]);
-
-		printf("%d]\n", slaves[num_slaves - 1]);
-	} else {
-		printf("\tSlaves: []\n");
-
-	}
-
-	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
-			RTE_MAX_ETHPORTS);
-
-	if (num_active_slaves < 0) {
-		fprintf(stderr,
-			"\tFailed to get active slave list for port = %d\n",
-			port_id);
-		return;
-	}
-	if (num_active_slaves > 0) {
-		printf("\tActive Slaves (%d): [", num_active_slaves);
-		for (i = 0; i < num_active_slaves - 1; i++)
-			printf("%d ", slaves[i]);
-
-		printf("%d]\n", slaves[num_active_slaves - 1]);
-
-	} else {
-		printf("\tActive Slaves: []\n");
-
-	}
-
-	primary_id = rte_eth_bond_primary_get(port_id);
-	if (primary_id < 0) {
-		fprintf(stderr, "\tFailed to get primary slave for port = %d\n",
-			port_id);
-		return;
-	} else
-		printf("\tPrimary: [%d]\n", primary_id);
-
-}
-
-static cmdline_parse_token_string_t cmd_showbonding_config_show =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
-		show, "show");
-static cmdline_parse_token_string_t cmd_showbonding_config_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_showbonding_config_config =
-TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
-		config, "config");
-static cmdline_parse_token_num_t cmd_showbonding_config_port =
-TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_config_result,
-		port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_show_bonding_config = {
-		.f = cmd_show_bonding_config_parsed,
-		.help_str = "show bonding config <port_id>: "
-			"Show the bonding config for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_showbonding_config_show,
-				(void *)&cmd_showbonding_config_bonding,
-				(void *)&cmd_showbonding_config_config,
-				(void *)&cmd_showbonding_config_port,
-				NULL
-		}
-};
-
-/* *** SET BONDING PRIMARY *** */
-struct cmd_set_bonding_primary_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t primary;
-	portid_t slave_id;
-	portid_t port_id;
-};
-
-static void cmd_set_bonding_primary_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_primary_result *res = parsed_result;
-	portid_t master_port_id = res->port_id;
-	portid_t slave_port_id = res->slave_id;
-
-	/* Set the primary slave for a bonded device. */
-	if (0 != rte_eth_bond_primary_set(master_port_id, slave_port_id)) {
-		fprintf(stderr, "\t Failed to set primary slave for port = %d.\n",
-			master_port_id);
-		return;
-	}
-	init_port_config();
-}
-
-static cmdline_parse_token_string_t cmd_setbonding_primary_set =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
-		set, "set");
-static cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_setbonding_primary_primary =
-TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
-		primary, "primary");
-static cmdline_parse_token_num_t cmd_setbonding_primary_slave =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
-		slave_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_setbonding_primary_port =
-TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
-		port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_set_bonding_primary = {
-		.f = cmd_set_bonding_primary_parsed,
-		.help_str = "set bonding primary <slave_id> <port_id>: "
-			"Set the primary slave for port_id",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_setbonding_primary_set,
-				(void *)&cmd_setbonding_primary_bonding,
-				(void *)&cmd_setbonding_primary_primary,
-				(void *)&cmd_setbonding_primary_slave,
-				(void *)&cmd_setbonding_primary_port,
-				NULL
-		}
-};
-
-/* *** ADD SLAVE *** */
-struct cmd_add_bonding_slave_result {
-	cmdline_fixed_string_t add;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t slave;
-	portid_t slave_id;
-	portid_t port_id;
-};
-
-static void cmd_add_bonding_slave_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_add_bonding_slave_result *res = parsed_result;
-	portid_t master_port_id = res->port_id;
-	portid_t slave_port_id = res->slave_id;
-
-	/* add the slave for a bonded device. */
-	if (0 != rte_eth_bond_slave_add(master_port_id, slave_port_id)) {
-		fprintf(stderr,
-			"\t Failed to add slave %d to master port = %d.\n",
-			slave_port_id, master_port_id);
-		return;
-	}
-	init_port_config();
-	set_port_slave_flag(slave_port_id);
-}
-
-static cmdline_parse_token_string_t cmd_addbonding_slave_add =
-TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
-		add, "add");
-static cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
-TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
-		bonding, "bonding");
-static cmdline_parse_token_string_t cmd_addbonding_slave_slave =
-TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
-		slave, "slave");
-static cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
-TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
-		slave_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_addbonding_slave_port =
-TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
-		port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_add_bonding_slave = {
-		.f = cmd_add_bonding_slave_parsed,
-		.help_str = "add bonding slave <slave_id> <port_id>: "
-			"Add a slave device to a bonded device",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_addbonding_slave_add,
-				(void *)&cmd_addbonding_slave_bonding,
-				(void *)&cmd_addbonding_slave_slave,
-				(void *)&cmd_addbonding_slave_slaveid,
-				(void *)&cmd_addbonding_slave_port,
-				NULL
-		}
-};
-
-/* *** REMOVE SLAVE *** */
-struct cmd_remove_bonding_slave_result {
-	cmdline_fixed_string_t remove;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t slave;
-	portid_t slave_id;
-	portid_t port_id;
-};
-
-static void cmd_remove_bonding_slave_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_remove_bonding_slave_result *res = parsed_result;
-	portid_t master_port_id = res->port_id;
-	portid_t slave_port_id = res->slave_id;
-
-	/* remove the slave from a bonded device. */
-	if (0 != rte_eth_bond_slave_remove(master_port_id, slave_port_id)) {
-		fprintf(stderr,
-			"\t Failed to remove slave %d from master port = %d.\n",
-			slave_port_id, master_port_id);
-		return;
-	}
-	init_port_config();
-	clear_port_slave_flag(slave_port_id);
-}
-
-static cmdline_parse_token_string_t cmd_removebonding_slave_remove =
-		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				remove, "remove");
-static cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
-		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				bonding, "bonding");
-static cmdline_parse_token_string_t cmd_removebonding_slave_slave =
-		TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				slave, "slave");
-static cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
-		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				slave_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_removebonding_slave_port =
-		TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
-				port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_remove_bonding_slave = {
-		.f = cmd_remove_bonding_slave_parsed,
-		.help_str = "remove bonding slave <slave_id> <port_id>: "
-			"Remove a slave device from a bonded device",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_removebonding_slave_remove,
-				(void *)&cmd_removebonding_slave_bonding,
-				(void *)&cmd_removebonding_slave_slave,
-				(void *)&cmd_removebonding_slave_slaveid,
-				(void *)&cmd_removebonding_slave_port,
-				NULL
-		}
-};
-
-/* *** CREATE BONDED DEVICE *** */
-struct cmd_create_bonded_device_result {
-	cmdline_fixed_string_t create;
-	cmdline_fixed_string_t bonded;
-	cmdline_fixed_string_t device;
-	uint8_t mode;
-	uint8_t socket;
-};
-
-static int bond_dev_num = 0;
-
-static void cmd_create_bonded_device_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_create_bonded_device_result *res = parsed_result;
-	char ethdev_name[RTE_ETH_NAME_MAX_LEN];
-	int port_id;
-	int ret;
-
-	if (test_done == 0) {
-		fprintf(stderr, "Please stop forwarding first\n");
-		return;
-	}
-
-	snprintf(ethdev_name, RTE_ETH_NAME_MAX_LEN, "net_bonding_testpmd_%d",
-			bond_dev_num++);
-
-	/* Create a new bonded device. */
-	port_id = rte_eth_bond_create(ethdev_name, res->mode, res->socket);
-	if (port_id < 0) {
-		fprintf(stderr, "\t Failed to create bonded device.\n");
-		return;
-	} else {
-		printf("Created new bonded device %s on (port %d).\n", ethdev_name,
-				port_id);
-
-		/* Update number of ports */
-		nb_ports = rte_eth_dev_count_avail();
-		reconfig(port_id, res->socket);
-		ret = rte_eth_promiscuous_enable(port_id);
-		if (ret != 0)
-			fprintf(stderr,
-				"Failed to enable promiscuous mode for port %u: %s - ignore\n",
-				port_id, rte_strerror(-ret));
-
-		ports[port_id].bond_flag = 1;
-		ports[port_id].need_setup = 0;
-		ports[port_id].port_status = RTE_PORT_STOPPED;
-	}
-
-}
-
-static cmdline_parse_token_string_t cmd_createbonded_device_create =
-		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
-				create, "create");
-static cmdline_parse_token_string_t cmd_createbonded_device_bonded =
-		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
-				bonded, "bonded");
-static cmdline_parse_token_string_t cmd_createbonded_device_device =
-		TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
-				device, "device");
-static cmdline_parse_token_num_t cmd_createbonded_device_mode =
-		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
-				mode, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_createbonded_device_socket =
-		TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
-				socket, RTE_UINT8);
-
-static cmdline_parse_inst_t cmd_create_bonded_device = {
-		.f = cmd_create_bonded_device_parsed,
-		.help_str = "create bonded device <mode> <socket>: "
-			"Create a new bonded device with specific bonding mode and socket",
-		.data = NULL,
-		.tokens = {
-				(void *)&cmd_createbonded_device_create,
-				(void *)&cmd_createbonded_device_bonded,
-				(void *)&cmd_createbonded_device_device,
-				(void *)&cmd_createbonded_device_mode,
-				(void *)&cmd_createbonded_device_socket,
-				NULL
-		}
-};
-
-/* *** SET MAC ADDRESS IN BONDED DEVICE *** */
-struct cmd_set_bond_mac_addr_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t mac_addr;
-	uint16_t port_num;
-	struct rte_ether_addr address;
-};
-
-static void cmd_set_bond_mac_addr_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bond_mac_addr_result *res = parsed_result;
-	int ret;
-
-	if (port_id_is_invalid(res->port_num, ENABLED_WARN))
-		return;
-
-	ret = rte_eth_bond_mac_address_set(res->port_num, &res->address);
-
-	/* check the return value and print it if is < 0 */
-	if (ret < 0)
-		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
-			strerror(-ret));
-}
-
-static cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, set, "set");
-static cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, bonding,
-				"bonding");
-static cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result, mac_addr,
-				"mac_addr");
-static cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
-		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mac_addr_result,
-				port_num, RTE_UINT16);
-static cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
-		TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_bond_mac_addr_result, address);
-
-static cmdline_parse_inst_t cmd_set_bond_mac_addr = {
-		.f = cmd_set_bond_mac_addr_parsed,
-		.data = (void *) 0,
-		.help_str = "set bonding mac_addr <port_id> <mac_addr>",
-		.tokens = {
-				(void *)&cmd_set_bond_mac_addr_set,
-				(void *)&cmd_set_bond_mac_addr_bonding,
-				(void *)&cmd_set_bond_mac_addr_mac,
-				(void *)&cmd_set_bond_mac_addr_portnum,
-				(void *)&cmd_set_bond_mac_addr_addr,
-				NULL
-		}
-};
-
-
-/* *** SET LINK STATUS MONITORING POLLING PERIOD ON BONDED DEVICE *** */
-struct cmd_set_bond_mon_period_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t mon_period;
-	uint16_t port_num;
-	uint32_t period_ms;
-};
-
-static void cmd_set_bond_mon_period_parsed(void *parsed_result,
-		__rte_unused  struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bond_mon_period_result *res = parsed_result;
-	int ret;
-
-	ret = rte_eth_bond_link_monitoring_set(res->port_num, res->period_ms);
-
-	/* check the return value and print it if is < 0 */
-	if (ret < 0)
-		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
-			strerror(-ret));
-}
-
-static cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				set, "set");
-static cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				bonding, "bonding");
-static cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
-		TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				mon_period,	"mon_period");
-static cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
-		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				port_num, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
-		TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
-				period_ms, RTE_UINT32);
-
-static cmdline_parse_inst_t cmd_set_bond_mon_period = {
-		.f = cmd_set_bond_mon_period_parsed,
-		.data = (void *) 0,
-		.help_str = "set bonding mon_period <port_id> <period_ms>",
-		.tokens = {
-				(void *)&cmd_set_bond_mon_period_set,
-				(void *)&cmd_set_bond_mon_period_bonding,
-				(void *)&cmd_set_bond_mon_period_mon_period,
-				(void *)&cmd_set_bond_mon_period_portnum,
-				(void *)&cmd_set_bond_mon_period_period_ms,
-				NULL
-		}
-};
-
-
-
-struct cmd_set_bonding_agg_mode_policy_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bonding;
-	cmdline_fixed_string_t agg_mode;
-	uint16_t port_num;
-	cmdline_fixed_string_t policy;
-};
-
-
-static void
-cmd_set_bonding_agg_mode(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bonding_agg_mode_policy_result *res = parsed_result;
-	uint8_t policy = AGG_BANDWIDTH;
-
-	if (!strcmp(res->policy, "bandwidth"))
-		policy = AGG_BANDWIDTH;
-	else if (!strcmp(res->policy, "stable"))
-		policy = AGG_STABLE;
-	else if (!strcmp(res->policy, "count"))
-		policy = AGG_COUNT;
-
-	rte_eth_bond_8023ad_agg_selection_set(res->port_num, policy);
-}
-
-
-static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				set, "set");
-static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				bonding, "bonding");
-
-static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				agg_mode, "agg_mode");
-
-static cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
-				port_num, RTE_UINT16);
-
-static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
-	TOKEN_STRING_INITIALIZER(
-			struct cmd_set_bonding_balance_xmit_policy_result,
-		policy, "stable#bandwidth#count");
-
-static cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
-	.f = cmd_set_bonding_agg_mode,
-	.data = (void *) 0,
-	.help_str = "set bonding mode IEEE802.3AD aggregator policy <port_id> <agg_name>",
-	.tokens = {
-			(void *)&cmd_set_bonding_agg_mode_set,
-			(void *)&cmd_set_bonding_agg_mode_bonding,
-			(void *)&cmd_set_bonding_agg_mode_agg_mode,
-			(void *)&cmd_set_bonding_agg_mode_portnum,
-			(void *)&cmd_set_bonding_agg_mode_policy_string,
-			NULL
-		}
-};
-
-
-#endif /* RTE_NET_BOND */
-
 /* *** SET FORWARDING MODE *** */
 struct cmd_set_fwd_mode_result {
 	cmdline_fixed_string_t set;
@@ -17942,20 +16920,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_bypass_event,
 	(cmdline_parse_inst_t *)&cmd_set_bypass_timeout,
 	(cmdline_parse_inst_t *)&cmd_show_bypass_config,
-#ifdef RTE_NET_BOND
-	(cmdline_parse_inst_t *) &cmd_set_bonding_mode,
-	(cmdline_parse_inst_t *) &cmd_show_bonding_config,
-	(cmdline_parse_inst_t *) &cmd_show_bonding_lacp_info,
-	(cmdline_parse_inst_t *) &cmd_set_bonding_primary,
-	(cmdline_parse_inst_t *) &cmd_add_bonding_slave,
-	(cmdline_parse_inst_t *) &cmd_remove_bonding_slave,
-	(cmdline_parse_inst_t *) &cmd_create_bonded_device,
-	(cmdline_parse_inst_t *) &cmd_set_bond_mac_addr,
-	(cmdline_parse_inst_t *) &cmd_set_balance_xmit_policy,
-	(cmdline_parse_inst_t *) &cmd_set_bond_mon_period,
-	(cmdline_parse_inst_t *) &cmd_set_lacp_dedicated_queues,
-	(cmdline_parse_inst_t *) &cmd_set_bonding_agg_mode_policy,
-#endif
 	(cmdline_parse_inst_t *)&cmd_vlan_offload,
 	(cmdline_parse_inst_t *)&cmd_vlan_tpid,
 	(cmdline_parse_inst_t *)&cmd_rx_vlan_filter_all,
diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index d13e98125e..74399178dd 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -58,9 +58,6 @@ endif
 if dpdk_conf.has('RTE_LIB_PDUMP')
     deps += 'pdump'
 endif
-if dpdk_conf.has('RTE_NET_BOND')
-    deps += 'net_bond'
-endif
 if dpdk_conf.has('RTE_NET_BNXT')
     deps += 'net_bnxt'
 endif
diff --git a/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst b/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
index 55ec06a46e..9510368103 100644
--- a/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
+++ b/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
@@ -497,3 +497,148 @@ Create a bonded device in balance mode with two slaves specified by their PCI ad
 .. code-block:: console
 
     ./<build_dir>/app/dpdk-testpmd -l 0-3 -n 4 --vdev 'net_bonding0,mode=2,slave=0000:0a:00.01,slave=0000:04:00.00,xmit_policy=l34' -- --port-topology=chained
+
+.. _bonding_testpmd_commands:
+
+Testpmd driver specific commands
+--------------------------------
+
+Some bonding driver specific features are integrated in testpmd.
+
+create bonded device
+~~~~~~~~~~~~~~~~~~~~
+
+Create a new bonding device::
+
+   testpmd> create bonded device (mode) (socket)
+
+For example, to create a bonded device in mode 1 on socket 0::
+
+   testpmd> create bonded device 1 0
+   created new bonded device (port X)
+
+add bonding slave
+~~~~~~~~~~~~~~~~~
+
+Adds Ethernet device to a Link Bonding device::
+
+   testpmd> add bonding slave (slave id) (port id)
+
+For example, to add Ethernet device (port 6) to a Link Bonding device (port 10)::
+
+   testpmd> add bonding slave 6 10
+
+
+remove bonding slave
+~~~~~~~~~~~~~~~~~~~~
+
+Removes an Ethernet slave device from a Link Bonding device::
+
+   testpmd> remove bonding slave (slave id) (port id)
+
+For example, to remove Ethernet slave device (port 6) to a Link Bonding device (port 10)::
+
+   testpmd> remove bonding slave 6 10
+
+set bonding mode
+~~~~~~~~~~~~~~~~
+
+Set the Link Bonding mode of a Link Bonding device::
+
+   testpmd> set bonding mode (value) (port id)
+
+For example, to set the bonding mode of a Link Bonding device (port 10) to broadcast (mode 3)::
+
+   testpmd> set bonding mode 3 10
+
+set bonding primary
+~~~~~~~~~~~~~~~~~~~
+
+Set an Ethernet slave device as the primary device on a Link Bonding device::
+
+   testpmd> set bonding primary (slave id) (port id)
+
+For example, to set the Ethernet slave device (port 6) as the primary port of a Link Bonding device (port 10)::
+
+   testpmd> set bonding primary 6 10
+
+set bonding mac
+~~~~~~~~~~~~~~~
+
+Set the MAC address of a Link Bonding device::
+
+   testpmd> set bonding mac (port id) (mac)
+
+For example, to set the MAC address of a Link Bonding device (port 10) to 00:00:00:00:00:01::
+
+   testpmd> set bonding mac 10 00:00:00:00:00:01
+
+set bonding balance_xmit_policy
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set the transmission policy for a Link Bonding device when it is in Balance XOR mode::
+
+   testpmd> set bonding balance_xmit_policy (port_id) (l2|l23|l34)
+
+For example, set a Link Bonding device (port 10) to use a balance policy of layer 3+4 (IP addresses & UDP ports)::
+
+   testpmd> set bonding balance_xmit_policy 10 l34
+
+
+set bonding mon_period
+~~~~~~~~~~~~~~~~~~~~~~
+
+Set the link status monitoring polling period in milliseconds for a bonding device.
+
+This adds support for PMD slave devices which do not support link status interrupts.
+When the mon_period is set to a value greater than 0 then all PMD's which do not support
+link status ISR will be queried every polling interval to check if their link status has changed::
+
+   testpmd> set bonding mon_period (port_id) (value)
+
+For example, to set the link status monitoring polling period of bonded device (port 5) to 150ms::
+
+   testpmd> set bonding mon_period 5 150
+
+
+set bonding lacp dedicated_queue
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Enable dedicated tx/rx queues on bonding devices slaves to handle LACP control plane traffic
+when in mode 4 (link-aggregation-802.3ad)::
+
+   testpmd> set bonding lacp dedicated_queues (port_id) (enable|disable)
+
+
+set bonding agg_mode
+~~~~~~~~~~~~~~~~~~~~
+
+Enable one of the specific aggregators mode when in mode 4 (link-aggregation-802.3ad)::
+
+   testpmd> set bonding agg_mode (port_id) (bandwidth|count|stable)
+
+
+show bonding config
+~~~~~~~~~~~~~~~~~~~
+
+Show the current configuration of a Link Bonding device::
+
+   testpmd> show bonding config (port id)
+
+For example,
+to show the configuration a Link Bonding device (port 9) with 3 slave devices (1, 3, 4)
+in balance mode with a transmission policy of layer 2+3::
+
+   testpmd> show bonding config 9
+        Bonding mode: 2
+        Balance Xmit Policy: BALANCE_XMIT_POLICY_LAYER23
+        Slaves (3): [1 3 4]
+        Active Slaves (3): [1 3 4]
+        Primary: [3]
+
+show bonding lacp info
+~~~~~~~~~~~~~~~~~~~~~~
+
+Show information about the Link Bonding device in mode 4 (link-aggregation-802.3ad)::
+
+   testpmd> show bonding lacp info (port_id)
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index f311b7d27b..f648f2a60d 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -2521,143 +2521,7 @@ Link Bonding Functions
 The Link Bonding functions make it possible to dynamically create and
 manage link bonding devices from within testpmd interactive prompt.
 
-create bonded device
-~~~~~~~~~~~~~~~~~~~~
-
-Create a new bonding device::
-
-   testpmd> create bonded device (mode) (socket)
-
-For example, to create a bonded device in mode 1 on socket 0::
-
-   testpmd> create bonded device 1 0
-   created new bonded device (port X)
-
-add bonding slave
-~~~~~~~~~~~~~~~~~
-
-Adds Ethernet device to a Link Bonding device::
-
-   testpmd> add bonding slave (slave id) (port id)
-
-For example, to add Ethernet device (port 6) to a Link Bonding device (port 10)::
-
-   testpmd> add bonding slave 6 10
-
-
-remove bonding slave
-~~~~~~~~~~~~~~~~~~~~
-
-Removes an Ethernet slave device from a Link Bonding device::
-
-   testpmd> remove bonding slave (slave id) (port id)
-
-For example, to remove Ethernet slave device (port 6) to a Link Bonding device (port 10)::
-
-   testpmd> remove bonding slave 6 10
-
-set bonding mode
-~~~~~~~~~~~~~~~~
-
-Set the Link Bonding mode of a Link Bonding device::
-
-   testpmd> set bonding mode (value) (port id)
-
-For example, to set the bonding mode of a Link Bonding device (port 10) to broadcast (mode 3)::
-
-   testpmd> set bonding mode 3 10
-
-set bonding primary
-~~~~~~~~~~~~~~~~~~~
-
-Set an Ethernet slave device as the primary device on a Link Bonding device::
-
-   testpmd> set bonding primary (slave id) (port id)
-
-For example, to set the Ethernet slave device (port 6) as the primary port of a Link Bonding device (port 10)::
-
-   testpmd> set bonding primary 6 10
-
-set bonding mac
-~~~~~~~~~~~~~~~
-
-Set the MAC address of a Link Bonding device::
-
-   testpmd> set bonding mac (port id) (mac)
-
-For example, to set the MAC address of a Link Bonding device (port 10) to 00:00:00:00:00:01::
-
-   testpmd> set bonding mac 10 00:00:00:00:00:01
-
-set bonding balance_xmit_policy
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set the transmission policy for a Link Bonding device when it is in Balance XOR mode::
-
-   testpmd> set bonding balance_xmit_policy (port_id) (l2|l23|l34)
-
-For example, set a Link Bonding device (port 10) to use a balance policy of layer 3+4 (IP addresses & UDP ports)::
-
-   testpmd> set bonding balance_xmit_policy 10 l34
-
-
-set bonding mon_period
-~~~~~~~~~~~~~~~~~~~~~~
-
-Set the link status monitoring polling period in milliseconds for a bonding device.
-
-This adds support for PMD slave devices which do not support link status interrupts.
-When the mon_period is set to a value greater than 0 then all PMD's which do not support
-link status ISR will be queried every polling interval to check if their link status has changed::
-
-   testpmd> set bonding mon_period (port_id) (value)
-
-For example, to set the link status monitoring polling period of bonded device (port 5) to 150ms::
-
-   testpmd> set bonding mon_period 5 150
-
-
-set bonding lacp dedicated_queue
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Enable dedicated tx/rx queues on bonding devices slaves to handle LACP control plane traffic
-when in mode 4 (link-aggregation-802.3ad)::
-
-   testpmd> set bonding lacp dedicated_queues (port_id) (enable|disable)
-
-
-set bonding agg_mode
-~~~~~~~~~~~~~~~~~~~~
-
-Enable one of the specific aggregators mode when in mode 4 (link-aggregation-802.3ad)::
-
-   testpmd> set bonding agg_mode (port_id) (bandwidth|count|stable)
-
-
-show bonding config
-~~~~~~~~~~~~~~~~~~~
-
-Show the current configuration of a Link Bonding device::
-
-   testpmd> show bonding config (port id)
-
-For example,
-to show the configuration a Link Bonding device (port 9) with 3 slave devices (1, 3, 4)
-in balance mode with a transmission policy of layer 2+3::
-
-   testpmd> show bonding config 9
-        Bonding mode: 2
-        Balance Xmit Policy: BALANCE_XMIT_POLICY_LAYER23
-        Slaves (3): [1 3 4]
-        Active Slaves (3): [1 3 4]
-        Primary: [3]
-
-show bonding lacp info
-~~~~~~~~~~~~~~~~~~~~~~
-
-Show information about the Link Bonding device in mode 4 (link-aggregation-802.3ad)::
-
-   testpmd> show bonding lacp info (port_id)
+See :doc:`../prog_guide/link_bonding_poll_mode_drv_lib` for more information.
 
 Register Functions
 ------------------
@@ -5720,3 +5584,5 @@ Driver specific commands
 
 Some drivers provide specific features.
 See:
+
+- :ref:`bonding_testpmd_commands`
diff --git a/drivers/net/bonding/bonding_testpmd.c b/drivers/net/bonding/bonding_testpmd.c
new file mode 100644
index 0000000000..3941f4cf23
--- /dev/null
+++ b/drivers/net/bonding/bonding_testpmd.c
@@ -0,0 +1,1030 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2016 Intel Corporation.
+ */
+
+#include <rte_eth_bond.h>
+#include <rte_eth_bond_8023ad.h>
+
+#include <cmdline_parse.h>
+#include <cmdline_parse_etheraddr.h>
+#include <cmdline_parse_num.h>
+#include <cmdline_parse_string.h>
+
+#include "testpmd.h"
+
+/* *** SET BONDING MODE *** */
+struct cmd_set_bonding_mode_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t mode;
+	uint8_t value;
+	portid_t port_id;
+};
+
+static void cmd_set_bonding_mode_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bonding_mode_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	struct rte_port *port = &ports[port_id];
+
+	/*
+	 * Bonding mode changed means resources of device changed, like whether
+	 * started rte timer or not. Device should be restarted when resources
+	 * of device changed.
+	 */
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr,
+			"\t Error: Can't set bonding mode when port %d is not stopped\n",
+			port_id);
+		return;
+	}
+
+	/* Set the bonding mode for the relevant port. */
+	if (rte_eth_bond_mode_set(port_id, res->value) != 0)
+		fprintf(stderr, "\t Failed to set bonding mode for port = %d.\n",
+			port_id);
+}
+
+static cmdline_parse_token_string_t cmd_setbonding_mode_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbonding_mode_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_setbonding_mode_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_mode_result,
+		mode, "mode");
+static cmdline_parse_token_num_t cmd_setbonding_mode_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
+		value, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_setbonding_mode_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_mode_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_set_bonding_mode = {
+	.f = cmd_set_bonding_mode_parsed,
+	.help_str = "set bonding mode <mode_value> <port_id>: "
+		"Set the bonding mode for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbonding_mode_set,
+		(void *)&cmd_setbonding_mode_bonding,
+		(void *)&cmd_setbonding_mode_mode,
+		(void *)&cmd_setbonding_mode_value,
+		(void *)&cmd_setbonding_mode_port,
+		NULL
+	}
+};
+
+/* *** SET BONDING SLOW_QUEUE SW/HW *** */
+struct cmd_set_bonding_lacp_dedicated_queues_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t lacp;
+	cmdline_fixed_string_t dedicated_queues;
+	portid_t port_id;
+	cmdline_fixed_string_t mode;
+};
+
+static void cmd_set_bonding_lacp_dedicated_queues_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bonding_lacp_dedicated_queues_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	struct rte_port *port;
+
+	port = &ports[port_id];
+
+	/** Check if the port is not started **/
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr, "Please stop port %d first\n", port_id);
+		return;
+	}
+
+	if (!strcmp(res->mode, "enable")) {
+		if (rte_eth_bond_8023ad_dedicated_queues_enable(port_id) == 0)
+			printf("Dedicate queues for LACP control packets"
+					" enabled\n");
+		else
+			printf("Enabling dedicate queues for LACP control "
+					"packets on port %d failed\n", port_id);
+	} else if (!strcmp(res->mode, "disable")) {
+		if (rte_eth_bond_8023ad_dedicated_queues_disable(port_id) == 0)
+			printf("Dedicated queues for LACP control packets "
+					"disabled\n");
+		else
+			printf("Disabling dedicated queues for LACP control "
+					"traffic on port %d failed\n", port_id);
+	}
+}
+
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_lacp =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		lacp, "lacp");
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_dedicated_queues =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		dedicated_queues, "dedicated_queues");
+static cmdline_parse_token_num_t cmd_setbonding_lacp_dedicated_queues_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_setbonding_lacp_dedicated_queues_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_lacp_dedicated_queues_result,
+		mode, "enable#disable");
+
+static cmdline_parse_inst_t cmd_set_lacp_dedicated_queues = {
+	.f = cmd_set_bonding_lacp_dedicated_queues_parsed,
+	.help_str = "set bonding lacp dedicated_queues <port_id> "
+		"enable|disable: "
+		"Enable/disable dedicated queues for LACP control traffic for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbonding_lacp_dedicated_queues_set,
+		(void *)&cmd_setbonding_lacp_dedicated_queues_bonding,
+		(void *)&cmd_setbonding_lacp_dedicated_queues_lacp,
+		(void *)&cmd_setbonding_lacp_dedicated_queues_dedicated_queues,
+		(void *)&cmd_setbonding_lacp_dedicated_queues_port_id,
+		(void *)&cmd_setbonding_lacp_dedicated_queues_mode,
+		NULL
+	}
+};
+
+/* *** SET BALANCE XMIT POLICY *** */
+struct cmd_set_bonding_balance_xmit_policy_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t balance_xmit_policy;
+	portid_t port_id;
+	cmdline_fixed_string_t policy;
+};
+
+static void cmd_set_bonding_balance_xmit_policy_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bonding_balance_xmit_policy_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	uint8_t policy;
+
+	if (!strcmp(res->policy, "l2")) {
+		policy = BALANCE_XMIT_POLICY_LAYER2;
+	} else if (!strcmp(res->policy, "l23")) {
+		policy = BALANCE_XMIT_POLICY_LAYER23;
+	} else if (!strcmp(res->policy, "l34")) {
+		policy = BALANCE_XMIT_POLICY_LAYER34;
+	} else {
+		fprintf(stderr, "\t Invalid xmit policy selection");
+		return;
+	}
+
+	/* Set the bonding mode for the relevant port. */
+	if (rte_eth_bond_xmit_policy_set(port_id, policy) != 0) {
+		fprintf(stderr,
+			"\t Failed to set bonding balance xmit policy for port = %d.\n",
+			port_id);
+	}
+}
+
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_balance_xmit_policy =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		balance_xmit_policy, "balance_xmit_policy");
+static cmdline_parse_token_num_t cmd_setbonding_balance_xmit_policy_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_setbonding_balance_xmit_policy_policy =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		policy, "l2#l23#l34");
+
+static cmdline_parse_inst_t cmd_set_balance_xmit_policy = {
+	.f = cmd_set_bonding_balance_xmit_policy_parsed,
+	.help_str = "set bonding balance_xmit_policy <port_id> "
+		"l2|l23|l34: "
+		"Set the bonding balance_xmit_policy for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbonding_balance_xmit_policy_set,
+		(void *)&cmd_setbonding_balance_xmit_policy_bonding,
+		(void *)&cmd_setbonding_balance_xmit_policy_balance_xmit_policy,
+		(void *)&cmd_setbonding_balance_xmit_policy_port,
+		(void *)&cmd_setbonding_balance_xmit_policy_policy,
+		NULL
+	}
+};
+
+/* *** SHOW IEEE802.3 BONDING INFORMATION *** */
+struct cmd_show_bonding_lacp_info_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t lacp;
+	cmdline_fixed_string_t info;
+	portid_t port_id;
+};
+
+static void port_param_show(struct port_params *params)
+{
+	char buf[RTE_ETHER_ADDR_FMT_SIZE];
+
+	printf("\t\tsystem priority: %u\n", params->system_priority);
+	rte_ether_format_addr(buf, RTE_ETHER_ADDR_FMT_SIZE, &params->system);
+	printf("\t\tsystem mac address: %s\n", buf);
+	printf("\t\tport key: %u\n", params->key);
+	printf("\t\tport priority: %u\n", params->port_priority);
+	printf("\t\tport number: %u\n", params->port_number);
+}
+
+static void lacp_slave_info_show(struct rte_eth_bond_8023ad_slave_info *info)
+{
+	char a_state[256] = { 0 };
+	char p_state[256] = { 0 };
+	int a_len = 0;
+	int p_len = 0;
+	uint32_t i;
+
+	static const char * const state[] = {
+		"ACTIVE",
+		"TIMEOUT",
+		"AGGREGATION",
+		"SYNCHRONIZATION",
+		"COLLECTING",
+		"DISTRIBUTING",
+		"DEFAULTED",
+		"EXPIRED"
+	};
+	static const char * const selection[] = {
+		"UNSELECTED",
+		"STANDBY",
+		"SELECTED"
+	};
+
+	for (i = 0; i < RTE_DIM(state); i++) {
+		if ((info->actor_state >> i) & 1)
+			a_len += snprintf(&a_state[a_len],
+						RTE_DIM(a_state) - a_len, "%s ",
+						state[i]);
+
+		if ((info->partner_state >> i) & 1)
+			p_len += snprintf(&p_state[p_len],
+						RTE_DIM(p_state) - p_len, "%s ",
+						state[i]);
+	}
+	printf("\tAggregator port id: %u\n", info->agg_port_id);
+	printf("\tselection: %s\n", selection[info->selected]);
+	printf("\tActor detail info:\n");
+	port_param_show(&info->actor);
+	printf("\t\tport state: %s\n", a_state);
+	printf("\tPartner detail info:\n");
+	port_param_show(&info->partner);
+	printf("\t\tport state: %s\n", p_state);
+	printf("\n");
+}
+
+static void lacp_conf_show(struct rte_eth_bond_8023ad_conf *conf)
+{
+	printf("\tfast period: %u ms\n", conf->fast_periodic_ms);
+	printf("\tslow period: %u ms\n", conf->slow_periodic_ms);
+	printf("\tshort timeout: %u ms\n", conf->short_timeout_ms);
+	printf("\tlong timeout: %u ms\n", conf->long_timeout_ms);
+	printf("\taggregate wait timeout: %u ms\n",
+			conf->aggregate_wait_timeout_ms);
+	printf("\ttx period: %u ms\n", conf->tx_period_ms);
+	printf("\trx marker period: %u ms\n", conf->rx_marker_period_ms);
+	printf("\tupdate timeout: %u ms\n", conf->update_timeout_ms);
+	switch (conf->agg_selection) {
+	case AGG_BANDWIDTH:
+		printf("\taggregation mode: bandwidth\n");
+		break;
+	case AGG_STABLE:
+		printf("\taggregation mode: stable\n");
+		break;
+	case AGG_COUNT:
+		printf("\taggregation mode: count\n");
+		break;
+	default:
+		printf("\taggregation mode: invalid\n");
+		break;
+	}
+
+	printf("\n");
+}
+
+static void cmd_show_bonding_lacp_info_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_show_bonding_lacp_info_result *res = parsed_result;
+	struct rte_eth_bond_8023ad_slave_info slave_info;
+	struct rte_eth_bond_8023ad_conf port_conf;
+	portid_t slaves[RTE_MAX_ETHPORTS];
+	portid_t port_id = res->port_id;
+	int num_active_slaves;
+	int bonding_mode;
+	int i;
+	int ret;
+
+	bonding_mode = rte_eth_bond_mode_get(port_id);
+	if (bonding_mode != BONDING_MODE_8023AD) {
+		fprintf(stderr, "\tBonding mode is not mode 4\n");
+		return;
+	}
+
+	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
+			RTE_MAX_ETHPORTS);
+	if (num_active_slaves < 0) {
+		fprintf(stderr, "\tFailed to get active slave list for port = %u\n",
+				port_id);
+		return;
+	}
+	if (num_active_slaves == 0)
+		fprintf(stderr, "\tIEEE802.3 port %u has no active slave\n",
+			port_id);
+
+	printf("\tIEEE802.3 port: %u\n", port_id);
+	ret = rte_eth_bond_8023ad_conf_get(port_id, &port_conf);
+	if (ret) {
+		fprintf(stderr, "\tGet bonded device %u info failed\n",
+			port_id);
+		return;
+	}
+	lacp_conf_show(&port_conf);
+
+	for (i = 0; i < num_active_slaves; i++) {
+		ret = rte_eth_bond_8023ad_slave_info(port_id, slaves[i],
+				&slave_info);
+		if (ret) {
+			fprintf(stderr, "\tGet slave device %u info failed\n",
+				slaves[i]);
+			return;
+		}
+		printf("\tSlave Port: %u\n", slaves[i]);
+		lacp_slave_info_show(&slave_info);
+	}
+}
+
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_show =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		show, "show");
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_lacp =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		bonding, "lacp");
+static cmdline_parse_token_string_t cmd_show_bonding_lacp_info_info =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		info, "info");
+static cmdline_parse_token_num_t cmd_show_bonding_lacp_info_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_lacp_info_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_show_bonding_lacp_info = {
+	.f = cmd_show_bonding_lacp_info_parsed,
+	.help_str = "show bonding lacp info <port_id> : "
+		"Show bonding IEEE802.3 information for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_show_bonding_lacp_info_show,
+		(void *)&cmd_show_bonding_lacp_info_bonding,
+		(void *)&cmd_show_bonding_lacp_info_lacp,
+		(void *)&cmd_show_bonding_lacp_info_info,
+		(void *)&cmd_show_bonding_lacp_info_port_id,
+		NULL
+	}
+};
+
+/* *** SHOW NIC BONDING CONFIGURATION *** */
+struct cmd_show_bonding_config_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t config;
+	portid_t port_id;
+};
+
+static void cmd_show_bonding_config_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_show_bonding_config_result *res = parsed_result;
+	int bonding_mode, agg_mode;
+	portid_t slaves[RTE_MAX_ETHPORTS];
+	int num_slaves, num_active_slaves;
+	int primary_id;
+	int i;
+	portid_t port_id = res->port_id;
+
+	/* Display the bonding mode.*/
+	bonding_mode = rte_eth_bond_mode_get(port_id);
+	if (bonding_mode < 0) {
+		fprintf(stderr, "\tFailed to get bonding mode for port = %d\n",
+			port_id);
+		return;
+	}
+	printf("\tBonding mode: %d\n", bonding_mode);
+
+	if (bonding_mode == BONDING_MODE_BALANCE ||
+		bonding_mode == BONDING_MODE_8023AD) {
+		int balance_xmit_policy;
+
+		balance_xmit_policy = rte_eth_bond_xmit_policy_get(port_id);
+		if (balance_xmit_policy < 0) {
+			fprintf(stderr,
+				"\tFailed to get balance xmit policy for port = %d\n",
+				port_id);
+			return;
+		}
+		printf("\tBalance Xmit Policy: ");
+
+		switch (balance_xmit_policy) {
+		case BALANCE_XMIT_POLICY_LAYER2:
+			printf("BALANCE_XMIT_POLICY_LAYER2");
+			break;
+		case BALANCE_XMIT_POLICY_LAYER23:
+			printf("BALANCE_XMIT_POLICY_LAYER23");
+			break;
+		case BALANCE_XMIT_POLICY_LAYER34:
+			printf("BALANCE_XMIT_POLICY_LAYER34");
+			break;
+		}
+		printf("\n");
+	}
+
+	if (bonding_mode == BONDING_MODE_8023AD) {
+		agg_mode = rte_eth_bond_8023ad_agg_selection_get(port_id);
+		printf("\tIEEE802.3AD Aggregator Mode: ");
+		switch (agg_mode) {
+		case AGG_BANDWIDTH:
+			printf("bandwidth");
+			break;
+		case AGG_STABLE:
+			printf("stable");
+			break;
+		case AGG_COUNT:
+			printf("count");
+			break;
+		}
+		printf("\n");
+	}
+
+	num_slaves = rte_eth_bond_slaves_get(port_id, slaves, RTE_MAX_ETHPORTS);
+
+	if (num_slaves < 0) {
+		fprintf(stderr, "\tFailed to get slave list for port = %d\n",
+			port_id);
+		return;
+	}
+	if (num_slaves > 0) {
+		printf("\tSlaves (%d): [", num_slaves);
+		for (i = 0; i < num_slaves - 1; i++)
+			printf("%d ", slaves[i]);
+
+		printf("%d]\n", slaves[num_slaves - 1]);
+	} else {
+		printf("\tSlaves: []\n");
+	}
+
+	num_active_slaves = rte_eth_bond_active_slaves_get(port_id, slaves,
+			RTE_MAX_ETHPORTS);
+
+	if (num_active_slaves < 0) {
+		fprintf(stderr,
+			"\tFailed to get active slave list for port = %d\n",
+			port_id);
+		return;
+	}
+	if (num_active_slaves > 0) {
+		printf("\tActive Slaves (%d): [", num_active_slaves);
+		for (i = 0; i < num_active_slaves - 1; i++)
+			printf("%d ", slaves[i]);
+
+		printf("%d]\n", slaves[num_active_slaves - 1]);
+
+	} else {
+		printf("\tActive Slaves: []\n");
+	}
+
+	primary_id = rte_eth_bond_primary_get(port_id);
+	if (primary_id < 0) {
+		fprintf(stderr, "\tFailed to get primary slave for port = %d\n",
+			port_id);
+		return;
+	}
+	printf("\tPrimary: [%d]\n", primary_id);
+}
+
+static cmdline_parse_token_string_t cmd_showbonding_config_show =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
+		show, "show");
+static cmdline_parse_token_string_t cmd_showbonding_config_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_showbonding_config_config =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bonding_config_result,
+		config, "config");
+static cmdline_parse_token_num_t cmd_showbonding_config_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_show_bonding_config_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_show_bonding_config = {
+	.f = cmd_show_bonding_config_parsed,
+	.help_str = "show bonding config <port_id>: "
+		"Show the bonding config for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_showbonding_config_show,
+		(void *)&cmd_showbonding_config_bonding,
+		(void *)&cmd_showbonding_config_config,
+		(void *)&cmd_showbonding_config_port,
+		NULL
+	}
+};
+
+/* *** SET BONDING PRIMARY *** */
+struct cmd_set_bonding_primary_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t primary;
+	portid_t slave_id;
+	portid_t port_id;
+};
+
+static void cmd_set_bonding_primary_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bonding_primary_result *res = parsed_result;
+	portid_t master_port_id = res->port_id;
+	portid_t slave_port_id = res->slave_id;
+
+	/* Set the primary slave for a bonded device. */
+	if (rte_eth_bond_primary_set(master_port_id, slave_port_id) != 0) {
+		fprintf(stderr, "\t Failed to set primary slave for port = %d.\n",
+			master_port_id);
+		return;
+	}
+	init_port_config();
+}
+
+static cmdline_parse_token_string_t cmd_setbonding_primary_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbonding_primary_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_setbonding_primary_primary =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_primary_result,
+		primary, "primary");
+static cmdline_parse_token_num_t cmd_setbonding_primary_slave =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
+		slave_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_setbonding_primary_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_primary_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_set_bonding_primary = {
+	.f = cmd_set_bonding_primary_parsed,
+	.help_str = "set bonding primary <slave_id> <port_id>: "
+		"Set the primary slave for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbonding_primary_set,
+		(void *)&cmd_setbonding_primary_bonding,
+		(void *)&cmd_setbonding_primary_primary,
+		(void *)&cmd_setbonding_primary_slave,
+		(void *)&cmd_setbonding_primary_port,
+		NULL
+	}
+};
+
+/* *** ADD SLAVE *** */
+struct cmd_add_bonding_slave_result {
+	cmdline_fixed_string_t add;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t slave;
+	portid_t slave_id;
+	portid_t port_id;
+};
+
+static void cmd_add_bonding_slave_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_add_bonding_slave_result *res = parsed_result;
+	portid_t master_port_id = res->port_id;
+	portid_t slave_port_id = res->slave_id;
+
+	/* add the slave for a bonded device. */
+	if (rte_eth_bond_slave_add(master_port_id, slave_port_id) != 0) {
+		fprintf(stderr,
+			"\t Failed to add slave %d to master port = %d.\n",
+			slave_port_id, master_port_id);
+		return;
+	}
+	init_port_config();
+	set_port_slave_flag(slave_port_id);
+}
+
+static cmdline_parse_token_string_t cmd_addbonding_slave_add =
+	TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
+		add, "add");
+static cmdline_parse_token_string_t cmd_addbonding_slave_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_addbonding_slave_slave =
+	TOKEN_STRING_INITIALIZER(struct cmd_add_bonding_slave_result,
+		slave, "slave");
+static cmdline_parse_token_num_t cmd_addbonding_slave_slaveid =
+	TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
+		slave_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_addbonding_slave_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_add_bonding_slave_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_add_bonding_slave = {
+	.f = cmd_add_bonding_slave_parsed,
+	.help_str = "add bonding slave <slave_id> <port_id>: "
+		"Add a slave device to a bonded device",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_addbonding_slave_add,
+		(void *)&cmd_addbonding_slave_bonding,
+		(void *)&cmd_addbonding_slave_slave,
+		(void *)&cmd_addbonding_slave_slaveid,
+		(void *)&cmd_addbonding_slave_port,
+		NULL
+	}
+};
+
+/* *** REMOVE SLAVE *** */
+struct cmd_remove_bonding_slave_result {
+	cmdline_fixed_string_t remove;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t slave;
+	portid_t slave_id;
+	portid_t port_id;
+};
+
+static void cmd_remove_bonding_slave_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_remove_bonding_slave_result *res = parsed_result;
+	portid_t master_port_id = res->port_id;
+	portid_t slave_port_id = res->slave_id;
+
+	/* remove the slave from a bonded device. */
+	if (rte_eth_bond_slave_remove(master_port_id, slave_port_id) != 0) {
+		fprintf(stderr,
+			"\t Failed to remove slave %d from master port = %d.\n",
+			slave_port_id, master_port_id);
+		return;
+	}
+	init_port_config();
+	clear_port_slave_flag(slave_port_id);
+}
+
+static cmdline_parse_token_string_t cmd_removebonding_slave_remove =
+	TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
+		remove, "remove");
+static cmdline_parse_token_string_t cmd_removebonding_slave_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_removebonding_slave_slave =
+	TOKEN_STRING_INITIALIZER(struct cmd_remove_bonding_slave_result,
+		slave, "slave");
+static cmdline_parse_token_num_t cmd_removebonding_slave_slaveid =
+	TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
+		slave_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_removebonding_slave_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_remove_bonding_slave_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_remove_bonding_slave = {
+	.f = cmd_remove_bonding_slave_parsed,
+	.help_str = "remove bonding slave <slave_id> <port_id>: "
+		"Remove a slave device from a bonded device",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_removebonding_slave_remove,
+		(void *)&cmd_removebonding_slave_bonding,
+		(void *)&cmd_removebonding_slave_slave,
+		(void *)&cmd_removebonding_slave_slaveid,
+		(void *)&cmd_removebonding_slave_port,
+		NULL
+	}
+};
+
+/* *** CREATE BONDED DEVICE *** */
+struct cmd_create_bonded_device_result {
+	cmdline_fixed_string_t create;
+	cmdline_fixed_string_t bonded;
+	cmdline_fixed_string_t device;
+	uint8_t mode;
+	uint8_t socket;
+};
+
+static int bond_dev_num;
+
+static void cmd_create_bonded_device_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_create_bonded_device_result *res = parsed_result;
+	char ethdev_name[RTE_ETH_NAME_MAX_LEN];
+	int port_id;
+	int ret;
+
+	if (test_done == 0) {
+		fprintf(stderr, "Please stop forwarding first\n");
+		return;
+	}
+
+	snprintf(ethdev_name, RTE_ETH_NAME_MAX_LEN, "net_bonding_testpmd_%d",
+			bond_dev_num++);
+
+	/* Create a new bonded device. */
+	port_id = rte_eth_bond_create(ethdev_name, res->mode, res->socket);
+	if (port_id < 0) {
+		fprintf(stderr, "\t Failed to create bonded device.\n");
+		return;
+	}
+	printf("Created new bonded device %s on (port %d).\n", ethdev_name,
+		port_id);
+
+	/* Update number of ports */
+	nb_ports = rte_eth_dev_count_avail();
+	reconfig(port_id, res->socket);
+	ret = rte_eth_promiscuous_enable(port_id);
+	if (ret != 0)
+		fprintf(stderr, "Failed to enable promiscuous mode for port %u: %s - ignore\n",
+			port_id, rte_strerror(-ret));
+
+	ports[port_id].bond_flag = 1;
+	ports[port_id].need_setup = 0;
+	ports[port_id].port_status = RTE_PORT_STOPPED;
+}
+
+static cmdline_parse_token_string_t cmd_createbonded_device_create =
+	TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
+		create, "create");
+static cmdline_parse_token_string_t cmd_createbonded_device_bonded =
+	TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
+		bonded, "bonded");
+static cmdline_parse_token_string_t cmd_createbonded_device_device =
+	TOKEN_STRING_INITIALIZER(struct cmd_create_bonded_device_result,
+		device, "device");
+static cmdline_parse_token_num_t cmd_createbonded_device_mode =
+	TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
+		mode, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_createbonded_device_socket =
+	TOKEN_NUM_INITIALIZER(struct cmd_create_bonded_device_result,
+		socket, RTE_UINT8);
+
+static cmdline_parse_inst_t cmd_create_bonded_device = {
+	.f = cmd_create_bonded_device_parsed,
+	.help_str = "create bonded device <mode> <socket>: "
+		"Create a new bonded device with specific bonding mode and socket",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_createbonded_device_create,
+		(void *)&cmd_createbonded_device_bonded,
+		(void *)&cmd_createbonded_device_device,
+		(void *)&cmd_createbonded_device_mode,
+		(void *)&cmd_createbonded_device_socket,
+		NULL
+	}
+};
+
+/* *** SET MAC ADDRESS IN BONDED DEVICE *** */
+struct cmd_set_bond_mac_addr_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t mac_addr;
+	uint16_t port_num;
+	struct rte_ether_addr address;
+};
+
+static void cmd_set_bond_mac_addr_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bond_mac_addr_result *res = parsed_result;
+	int ret;
+
+	if (port_id_is_invalid(res->port_num, ENABLED_WARN))
+		return;
+
+	ret = rte_eth_bond_mac_address_set(res->port_num, &res->address);
+
+	/* check the return value and print it if is < 0 */
+	if (ret < 0)
+		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
+			strerror(-ret));
+}
+
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_set_bond_mac_addr_mac =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mac_addr_result,
+		mac_addr, "mac_addr");
+static cmdline_parse_token_num_t cmd_set_bond_mac_addr_portnum =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mac_addr_result,
+		port_num, RTE_UINT16);
+static cmdline_parse_token_etheraddr_t cmd_set_bond_mac_addr_addr =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_bond_mac_addr_result,
+		address);
+
+static cmdline_parse_inst_t cmd_set_bond_mac_addr = {
+	.f = cmd_set_bond_mac_addr_parsed,
+	.data = NULL,
+	.help_str = "set bonding mac_addr <port_id> <mac_addr>",
+	.tokens = {
+		(void *)&cmd_set_bond_mac_addr_set,
+		(void *)&cmd_set_bond_mac_addr_bonding,
+		(void *)&cmd_set_bond_mac_addr_mac,
+		(void *)&cmd_set_bond_mac_addr_portnum,
+		(void *)&cmd_set_bond_mac_addr_addr,
+		NULL
+	}
+};
+
+/* *** SET LINK STATUS MONITORING POLLING PERIOD ON BONDED DEVICE *** */
+struct cmd_set_bond_mon_period_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t mon_period;
+	uint16_t port_num;
+	uint32_t period_ms;
+};
+
+static void cmd_set_bond_mon_period_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bond_mon_period_result *res = parsed_result;
+	int ret;
+
+	ret = rte_eth_bond_link_monitoring_set(res->port_num, res->period_ms);
+
+	/* check the return value and print it if is < 0 */
+	if (ret < 0)
+		fprintf(stderr, "set_bond_mac_addr error: (%s)\n",
+			strerror(-ret));
+}
+
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_set_bond_mon_period_mon_period =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bond_mon_period_result,
+		mon_period,	"mon_period");
+static cmdline_parse_token_num_t cmd_set_bond_mon_period_portnum =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
+		port_num, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_set_bond_mon_period_period_ms =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bond_mon_period_result,
+		period_ms, RTE_UINT32);
+
+static cmdline_parse_inst_t cmd_set_bond_mon_period = {
+	.f = cmd_set_bond_mon_period_parsed,
+	.data = NULL,
+	.help_str = "set bonding mon_period <port_id> <period_ms>",
+	.tokens = {
+		(void *)&cmd_set_bond_mon_period_set,
+		(void *)&cmd_set_bond_mon_period_bonding,
+		(void *)&cmd_set_bond_mon_period_mon_period,
+		(void *)&cmd_set_bond_mon_period_portnum,
+		(void *)&cmd_set_bond_mon_period_period_ms,
+		NULL
+	}
+};
+
+struct cmd_set_bonding_agg_mode_policy_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bonding;
+	cmdline_fixed_string_t agg_mode;
+	uint16_t port_num;
+	cmdline_fixed_string_t policy;
+};
+
+static void
+cmd_set_bonding_agg_mode(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bonding_agg_mode_policy_result *res = parsed_result;
+	uint8_t policy = AGG_BANDWIDTH;
+
+	if (!strcmp(res->policy, "bandwidth"))
+		policy = AGG_BANDWIDTH;
+	else if (!strcmp(res->policy, "stable"))
+		policy = AGG_STABLE;
+	else if (!strcmp(res->policy, "count"))
+		policy = AGG_COUNT;
+
+	rte_eth_bond_8023ad_agg_selection_set(res->port_num, policy);
+}
+
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_bonding =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+		bonding, "bonding");
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_agg_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+		agg_mode, "agg_mode");
+static cmdline_parse_token_num_t cmd_set_bonding_agg_mode_portnum =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bonding_agg_mode_policy_result,
+		port_num, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_bonding_agg_mode_policy_string =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bonding_balance_xmit_policy_result,
+		policy, "stable#bandwidth#count");
+
+static cmdline_parse_inst_t cmd_set_bonding_agg_mode_policy = {
+	.f = cmd_set_bonding_agg_mode,
+	.data = NULL,
+	.help_str = "set bonding mode IEEE802.3AD aggregator policy <port_id> <agg_name>",
+	.tokens = {
+		(void *)&cmd_set_bonding_agg_mode_set,
+		(void *)&cmd_set_bonding_agg_mode_bonding,
+		(void *)&cmd_set_bonding_agg_mode_agg_mode,
+		(void *)&cmd_set_bonding_agg_mode_portnum,
+		(void *)&cmd_set_bonding_agg_mode_policy_string,
+		NULL
+	}
+};
+
+static struct testpmd_driver_commands bonding_cmds = {
+	.commands = {
+	{
+		&cmd_set_bonding_mode,
+		"set bonding mode (value) (port_id)\n"
+		"	Set the bonding mode on a bonded device.\n",
+	},
+	{
+		&cmd_show_bonding_config,
+		"show bonding config (port_id)\n"
+		"	Show the bonding config for port_id.\n",
+	},
+	{
+		&cmd_show_bonding_lacp_info,
+		"show bonding lacp info (port_id)\n"
+		"	Show the bonding lacp information for port_id.\n",
+	},
+	{
+		&cmd_set_bonding_primary,
+		"set bonding primary (slave_id) (port_id)\n"
+		"	Set the primary slave for a bonded device.\n",
+	},
+	{
+		&cmd_add_bonding_slave,
+		"add bonding slave (slave_id) (port_id)\n"
+		"	Add a slave device to a bonded device.\n",
+	},
+	{
+		&cmd_remove_bonding_slave,
+		"remove bonding slave (slave_id) (port_id)\n"
+		"	Remove a slave device from a bonded device.\n",
+	},
+	{
+		&cmd_create_bonded_device,
+		"create bonded device (mode) (socket)\n"
+		"	Create a new bonded device with specific bonding mode and socket.\n",
+	},
+	{
+		&cmd_set_bond_mac_addr,
+		"set bonding mac_addr (port_id) (address)\n"
+		"	Set the MAC address of a bonded device.\n",
+	},
+	{
+		&cmd_set_balance_xmit_policy,
+		"set bonding balance_xmit_policy (port_id) (l2|l23|l34)\n"
+		"	Set the transmit balance policy for bonded device running in balance mode.\n",
+	},
+	{
+		&cmd_set_bond_mon_period,
+		"set bonding mon_period (port_id) (value)\n"
+		"	Set the bonding link status monitoring polling period in ms.\n",
+	},
+	{
+		&cmd_set_lacp_dedicated_queues,
+		"set bonding lacp dedicated_queues <port_id> (enable|disable)\n"
+		"	Enable/disable dedicated queues for LACP control traffic.\n",
+	},
+	{
+		&cmd_set_bonding_agg_mode_policy,
+		"set bonding mode IEEE802.3AD aggregator policy (port_id) (agg_name)\n"
+		"	Set Aggregation mode for IEEE802.3AD (mode 4)\n",
+	},
+	{ NULL, NULL },
+	},
+};
+TESTPMD_ADD_DRIVER_COMMANDS(bonding_cmds)
diff --git a/drivers/net/bonding/meson.build b/drivers/net/bonding/meson.build
index 402b44be1a..18ad7e21f3 100644
--- a/drivers/net/bonding/meson.build
+++ b/drivers/net/bonding/meson.build
@@ -16,6 +16,7 @@ sources = files(
         'rte_eth_bond_flow.c',
         'rte_eth_bond_pmd.c',
 )
+testpmd_sources = files('bonding_testpmd.c')
 
 deps += 'sched' # needed for rte_bitmap.h
 deps += ['ip_frag']
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [PATCH v2] net/i40e: move testpmd commands
  2022-05-23  7:10   ` [PATCH 4/6] net/i40e: " David Marchand
@ 2022-06-17  5:07     ` David Marchand
  2022-06-20 17:53       ` Ferruh Yigit
  0 siblings, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-06-17  5:07 UTC (permalink / raw)
  To: dev; +Cc: Xiaoyun Li, Aman Singh, Yuying Zhang, Beilei Xing

Move related specific testpmd commands into this driver directory.
While at it, fix checkpatch warnings.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since v1:
- rebased on next-net,
- updated link in documentation to directly point at commands,

Changes since RFC v2:
- updated documentation,
- fixed some indent,

Changes since RFC v1:
- moved more i40e commands,
- fixed checkpatch warnings,

---
 app/test-pmd/cmdline.c                      | 5438 +++++--------------
 app/test-pmd/config.c                       |   43 -
 app/test-pmd/testpmd.h                      |    2 -
 doc/guides/nics/i40e.rst                    |  186 +-
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  178 +-
 drivers/net/i40e/i40e_testpmd.c             | 2634 +++++++++
 drivers/net/i40e/meson.build                |    2 +
 7 files changed, 4185 insertions(+), 4298 deletions(-)
 create mode 100644 drivers/net/i40e/i40e_testpmd.c

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index a59e6166d5..23cf663d3f 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -196,21 +196,12 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"read txd (port_id) (queue_id) (txd_id)\n"
 			"    Display a TX descriptor of a port TX queue.\n\n"
 
-			"ddp get list (port_id)\n"
-			"    Get ddp profile info list\n\n"
-
-			"ddp get info (profile_path)\n"
-			"    Get ddp profile information.\n\n"
-
 			"show vf stats (port_id) (vf_id)\n"
 			"    Display a VF's statistics.\n\n"
 
 			"clear vf stats (port_id) (vf_id)\n"
 			"    Reset a VF's statistics.\n\n"
 
-			"show port (port_id) pctype mapping\n"
-			"    Get flow ptype to pctype mapping on a port\n\n"
-
 			"show port meter stats (port_id) (meter_id) (clear)\n"
 			"    Get meter stats on a port\n\n"
 
@@ -366,9 +357,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)\n"
 			"    Configure MACsec secure association (SA).\n\n"
 
-			"set vf broadcast (port_id) (vf_id) (on|off)\n"
-			"    Set VF broadcast for a VF from the PF.\n\n"
-
 			"vlan set stripq (on|off) (port_id,queue_id)\n"
 			"    Set the VLAN strip for a queue on a port.\n\n"
 
@@ -381,21 +369,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set vf vlan antispoof (port_id) (vf_id) (on|off)\n"
 			"    Set VLAN antispoof for a VF from the PF.\n\n"
 
-			"set vf vlan tag (port_id) (vf_id) (on|off)\n"
-			"    Set VLAN tag for a VF from the PF.\n\n"
-
-			"set vf tx max-bandwidth (port_id) (vf_id) (bandwidth)\n"
-			"    Set a VF's max bandwidth(Mbps).\n\n"
-
-			"set vf tc tx min-bandwidth (port_id) (vf_id) (bw1, bw2, ...)\n"
-			"    Set all TCs' min bandwidth(%%) on a VF.\n\n"
-
-			"set vf tc tx max-bandwidth (port_id) (vf_id) (tc_no) (bandwidth)\n"
-			"    Set a TC's max bandwidth(Mbps) on a VF.\n\n"
-
-			"set tx strict-link-priority (port_id) (tc_bitmap)\n"
-			"    Set some TCs' strict link priority mode on a physical port.\n\n"
-
 			"set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\n"
 			"    Set all TCs' min bandwidth(%%) for all PF and VFs.\n\n"
 
@@ -524,12 +497,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set allmulti (port_id|all) (on|off)\n"
 			"    Set the allmulti mode on port_id, or all.\n\n"
 
-			"set vf promisc (port_id) (vf_id) (on|off)\n"
-			"    Set unicast promiscuous mode for a VF from the PF.\n\n"
-
-			"set vf allmulti (port_id) (vf_id) (on|off)\n"
-			"    Set multicast promiscuous mode for a VF from the PF.\n\n"
-
 			"set flow_ctrl rx (on|off) tx (on|off) (high_water)"
 			" (low_water) (pause_time) (send_xon) mac_ctrl_frame_fwd"
 			" (on|off) autoneg (on|off) (port_id)\n"
@@ -661,42 +628,9 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set link-down port (port_id)\n"
 			"	Set link down for a port.\n\n"
 
-			"ddp add (port_id) (profile_path[,backup_profile_path])\n"
-			"    Load a profile package on a port\n\n"
-
-			"ddp del (port_id) (backup_profile_path)\n"
-			"    Delete a profile package from a port\n\n"
-
-			"ptype mapping get (port_id) (valid_only)\n"
-			"    Get ptype mapping on a port\n\n"
-
-			"ptype mapping replace (port_id) (target) (mask) (pky_type)\n"
-			"    Replace target with the pkt_type in ptype mapping\n\n"
-
-			"ptype mapping reset (port_id)\n"
-			"    Reset ptype mapping on a port\n\n"
-
-			"ptype mapping update (port_id) (hw_ptype) (sw_ptype)\n"
-			"    Update a ptype mapping item on a port\n\n"
-
 			"set port (port_id) ptype_mask (ptype_mask)\n"
 			"    set packet types classification for a specific port\n\n"
 
-			"set port (port_id) queue-region region_id (value) "
-			"queue_start_index (value) queue_num (value)\n"
-			"    Set a queue region on a port\n\n"
-
-			"set port (port_id) queue-region region_id (value) "
-			"flowtype (value)\n"
-			"    Set a flowtype region index on a port\n\n"
-
-			"set port (port_id) queue-region UP (value) region_id (value)\n"
-			"    Set the mapping of User Priority to "
-			"queue region on a port\n\n"
-
-			"set port (port_id) queue-region flush (on|off)\n"
-			"    flush all queue region related configuration\n\n"
-
 			"show port meter cap (port_id)\n"
 			"    Show port meter capability information\n\n"
 
@@ -747,9 +681,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set port meter stats mask (port_id) (mtr_id) (stats_mask)\n"
 			"    meter update stats\n\n"
 
-			"show port (port_id) queue-region\n"
-			"    show all queue region related configuration info\n\n"
-
 			"set port (port_id) fec_mode auto|off|rs|baser\n"
 			"    set fec mode for a specific port\n\n"
 
@@ -846,22 +777,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"port (port_id) (rxq|txq) (queue_id) setup\n"
 			"    Setup a rx/tx queue of port X.\n\n"
 
-			"port config (port_id) pctype mapping reset\n"
-			"    Reset flow type to pctype mapping on a port\n\n"
-
-			"port config (port_id) pctype mapping update"
-			" (pctype_id_0[,pctype_id_1]*) (flow_type_id)\n"
-			"    Update a flow type to pctype mapping item on a port\n\n"
-
-			"port config (port_id) pctype (pctype_id) hash_inset|"
-			"fdir_inset|fdir_flx_inset get|set|clear field\n"
-			" (field_idx)\n"
-			"    Configure RSS|FDIR|FDIR_FLX input set for some pctype\n\n"
-
-			"port config (port_id) pctype (pctype_id) hash_inset|"
-			"fdir_inset|fdir_flx_inset clear all"
-			"    Clear RSS|FDIR|FDIR_FLX input set completely for some pctype\n\n"
-
 			"port config (port_id) udp_tunnel_port add|rm vxlan|geneve|ecpri (udp_port)\n\n"
 			"    Add/remove UDP tunnel port for tunneling offload\n\n"
 
@@ -957,13 +872,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"filters:\n"
 			"--------\n\n"
 
-#ifdef RTE_NET_I40E
-			"flow_director_filter (port_id) mode raw (add|del|update)"
-			" flow (flow_id) (drop|fwd) queue (queue_id)"
-			" fd_id (fd_id_value) packet (packet file name)\n"
-			"    Add/Del a raw type flow director filter.\n\n"
-#endif
-
 			"flow_director_mask (port_id) mode IP vlan (vlan_value)"
 			" src_mask (ipv4_src) (ipv6_src) (src_port)"
 			" dst_mask (ipv4_dst) (ipv6_dst) (dst_port)\n"
@@ -10125,450 +10033,6 @@ static cmdline_parse_inst_t cmd_dump_one = {
 	},
 };
 
-/* *** queue region set *** */
-struct cmd_queue_region_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t region;
-	uint8_t  region_id;
-	cmdline_fixed_string_t queue_start_index;
-	uint8_t  queue_id;
-	cmdline_fixed_string_t queue_num;
-	uint8_t  queue_num_value;
-};
-
-static void
-cmd_queue_region_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_queue_region_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_SET;
-	region_conf.region_id = res->region_id;
-	region_conf.queue_num = res->queue_num_value;
-	region_conf.queue_start_index = res->queue_id;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-				op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "queue region config error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-static cmdline_parse_token_string_t cmd_queue_region_set =
-TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-		set, "set");
-static cmdline_parse_token_string_t cmd_queue_region_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result, port, "port");
-static cmdline_parse_token_num_t cmd_queue_region_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_queue_region_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				 cmd, "queue-region");
-static cmdline_parse_token_string_t cmd_queue_region_id =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				region, "region_id");
-static cmdline_parse_token_num_t cmd_queue_region_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				region_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				queue_start_index, "queue_start_index");
-static cmdline_parse_token_num_t cmd_queue_region_queue_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				queue_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_queue_region_queue_num =
-	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
-				queue_num, "queue_num");
-static cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
-				queue_num_value, RTE_UINT8);
-
-static cmdline_parse_inst_t cmd_queue_region = {
-	.f = cmd_queue_region_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region region_id <value> "
-		"queue_start_index <value> queue_num <value>: Set a queue region",
-	.tokens = {
-		(void *)&cmd_queue_region_set,
-		(void *)&cmd_queue_region_port,
-		(void *)&cmd_queue_region_port_id,
-		(void *)&cmd_queue_region_cmd,
-		(void *)&cmd_queue_region_id,
-		(void *)&cmd_queue_region_index,
-		(void *)&cmd_queue_region_queue_start_index,
-		(void *)&cmd_queue_region_queue_id,
-		(void *)&cmd_queue_region_queue_num,
-		(void *)&cmd_queue_region_queue_num_value,
-		NULL,
-	},
-};
-
-/* *** queue region and flowtype set *** */
-struct cmd_region_flowtype_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t region;
-	uint8_t  region_id;
-	cmdline_fixed_string_t flowtype;
-	uint8_t  flowtype_id;
-};
-
-static void
-cmd_region_flowtype_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_region_flowtype_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_FLOWTYPE_SET;
-	region_conf.region_id = res->region_id;
-	region_conf.hw_flowtype = res->flowtype_id;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-			op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "region flowtype config error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-static cmdline_parse_token_string_t cmd_region_flowtype_set =
-TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				set, "set");
-static cmdline_parse_token_string_t cmd_region_flowtype_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				port, "port");
-static cmdline_parse_token_num_t cmd_region_flowtype_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
-				port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_region_flowtype_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				cmd, "queue-region");
-static cmdline_parse_token_string_t cmd_region_flowtype_index =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				region, "region_id");
-static cmdline_parse_token_num_t cmd_region_flowtype_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
-				region_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
-	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
-				flowtype, "flowtype");
-static cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
-				flowtype_id, RTE_UINT8);
-static cmdline_parse_inst_t cmd_region_flowtype = {
-	.f = cmd_region_flowtype_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region region_id <value> "
-		"flowtype <value>: Set a flowtype region index",
-	.tokens = {
-		(void *)&cmd_region_flowtype_set,
-		(void *)&cmd_region_flowtype_port,
-		(void *)&cmd_region_flowtype_port_index,
-		(void *)&cmd_region_flowtype_cmd,
-		(void *)&cmd_region_flowtype_index,
-		(void *)&cmd_region_flowtype_id,
-		(void *)&cmd_region_flowtype_flow_index,
-		(void *)&cmd_region_flowtype_flow_id,
-		NULL,
-	},
-};
-
-/* *** User Priority (UP) to queue region (region_id) set *** */
-struct cmd_user_priority_region_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t user_priority;
-	uint8_t  user_priority_id;
-	cmdline_fixed_string_t region;
-	uint8_t  region_id;
-};
-
-static void
-cmd_user_priority_region_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_user_priority_region_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_USER_PRIORITY_SET;
-	region_conf.user_priority = res->user_priority_id;
-	region_conf.region_id = res->region_id;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-				op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "user_priority region config error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-static cmdline_parse_token_string_t cmd_user_priority_region_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				set, "set");
-static cmdline_parse_token_string_t cmd_user_priority_region_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				port, "port");
-static cmdline_parse_token_num_t cmd_user_priority_region_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
-				port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_user_priority_region_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				cmd, "queue-region");
-static cmdline_parse_token_string_t cmd_user_priority_region_UP =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				user_priority, "UP");
-static cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
-				user_priority_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_user_priority_region_region =
-	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
-				region, "region_id");
-static cmdline_parse_token_num_t cmd_user_priority_region_region_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
-				region_id, RTE_UINT8);
-
-static cmdline_parse_inst_t cmd_user_priority_region = {
-	.f = cmd_user_priority_region_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region UP <value> "
-		"region_id <value>: Set the mapping of User Priority (UP) "
-		"to queue region (region_id) ",
-	.tokens = {
-		(void *)&cmd_user_priority_region_set,
-		(void *)&cmd_user_priority_region_port,
-		(void *)&cmd_user_priority_region_port_index,
-		(void *)&cmd_user_priority_region_cmd,
-		(void *)&cmd_user_priority_region_UP,
-		(void *)&cmd_user_priority_region_UP_id,
-		(void *)&cmd_user_priority_region_region,
-		(void *)&cmd_user_priority_region_region_id,
-		NULL,
-	},
-};
-
-/* *** flush all queue region related configuration *** */
-struct cmd_flush_queue_region_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-	cmdline_fixed_string_t flush;
-	cmdline_fixed_string_t what;
-};
-
-static void
-cmd_flush_queue_region_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_flush_queue_region_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_region_conf region_conf;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&region_conf, 0, sizeof(region_conf));
-
-	if (strcmp(res->what, "on") == 0)
-		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_ON;
-	else
-		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_OFF;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-				op_type, &region_conf);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "queue region config flush error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-static cmdline_parse_token_string_t cmd_flush_queue_region_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				set, "set");
-static cmdline_parse_token_string_t cmd_flush_queue_region_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				port, "port");
-static cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_flush_queue_region_result,
-				port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				cmd, "queue-region");
-static cmdline_parse_token_string_t cmd_flush_queue_region_flush =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				flush, "flush");
-static cmdline_parse_token_string_t cmd_flush_queue_region_what =
-	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
-				what, "on#off");
-
-static cmdline_parse_inst_t cmd_flush_queue_region = {
-	.f = cmd_flush_queue_region_parsed,
-	.data = NULL,
-	.help_str = "set port <port_id> queue-region flush on|off"
-		": flush all queue region related configuration",
-	.tokens = {
-		(void *)&cmd_flush_queue_region_set,
-		(void *)&cmd_flush_queue_region_port,
-		(void *)&cmd_flush_queue_region_port_index,
-		(void *)&cmd_flush_queue_region_cmd,
-		(void *)&cmd_flush_queue_region_flush,
-		(void *)&cmd_flush_queue_region_what,
-		NULL,
-	},
-};
-
-/* *** get all queue region related configuration info *** */
-struct cmd_show_queue_region_info {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t cmd;
-};
-
-static void
-cmd_show_queue_region_info_parsed(void *parsed_result,
-			__rte_unused struct cmdline *cl,
-			__rte_unused void *data)
-{
-	struct cmd_show_queue_region_info *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_queue_regions rte_pmd_regions;
-	enum rte_pmd_i40e_queue_region_op op_type;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	memset(&rte_pmd_regions, 0, sizeof(rte_pmd_regions));
-
-	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_INFO_GET;
-
-	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
-					op_type, &rte_pmd_regions);
-
-	port_queue_region_info_display(res->port_id, &rte_pmd_regions);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented or supported\n");
-		break;
-	default:
-		fprintf(stderr, "queue region config info show error: (%s)\n",
-			strerror(-ret));
-	}
-}
-
-static cmdline_parse_token_string_t cmd_show_queue_region_info_get =
-TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
-				show, "show");
-static cmdline_parse_token_string_t cmd_show_queue_region_info_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
-				port, "port");
-static cmdline_parse_token_num_t cmd_show_queue_region_info_port_index =
-	TOKEN_NUM_INITIALIZER(struct cmd_show_queue_region_info,
-				port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
-				cmd, "queue-region");
-
-static cmdline_parse_inst_t cmd_show_queue_region_info_all = {
-	.f = cmd_show_queue_region_info_parsed,
-	.data = NULL,
-	.help_str = "show port <port_id> queue-region"
-		": show all queue region related configuration info",
-	.tokens = {
-		(void *)&cmd_show_queue_region_info_get,
-		(void *)&cmd_show_queue_region_info_port,
-		(void *)&cmd_show_queue_region_info_port_index,
-		(void *)&cmd_show_queue_region_info_cmd,
-		NULL,
-	},
-};
-
 /* *** Filters Control *** */
 
 #define IPV4_ADDR_TO_UINT(ip_addr, ip) \
@@ -10593,197 +10057,9 @@ do { \
 	} \
 } while (0)
 
-#ifdef RTE_NET_I40E
-
-static uint16_t
-str2flowtype(char *string)
-{
-	uint8_t i = 0;
-	static const struct {
-		char str[32];
-		uint16_t type;
-	} flowtype_str[] = {
-		{"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},
-		{"ipv6-ex", RTE_ETH_FLOW_IPV6_EX},
-		{"ipv6-tcp-ex", RTE_ETH_FLOW_IPV6_TCP_EX},
-		{"ipv6-udp-ex", RTE_ETH_FLOW_IPV6_UDP_EX},
-		{"gtpu", RTE_ETH_FLOW_GTPU},
-	};
-
-	for (i = 0; i < RTE_DIM(flowtype_str); i++) {
-		if (!strcmp(flowtype_str[i].str, string))
-			return flowtype_str[i].type;
-	}
-
-	if (isdigit(string[0]) && atoi(string) > 0 && atoi(string) < 64)
-		return (uint16_t)atoi(string);
-
-	return RTE_ETH_FLOW_UNKNOWN;
-}
-
-/* *** deal with flow director filter *** */
-struct cmd_flow_director_result {
-	cmdline_fixed_string_t flow_director_filter;
-	portid_t port_id;
-	cmdline_fixed_string_t mode;
-	cmdline_fixed_string_t mode_value;
-	cmdline_fixed_string_t ops;
-	cmdline_fixed_string_t flow;
-	cmdline_fixed_string_t flow_type;
-	cmdline_fixed_string_t drop;
-	cmdline_fixed_string_t queue;
-	uint16_t  queue_id;
-	cmdline_fixed_string_t fd_id;
-	uint32_t  fd_id_value;
-	cmdline_fixed_string_t packet;
-	char filepath[];
-};
-
-static void
-cmd_flow_director_filter_parsed(void *parsed_result,
-			  __rte_unused struct cmdline *cl,
-			  __rte_unused void *data)
-{
-	struct cmd_flow_director_result *res = parsed_result;
-	int ret = 0;
-	struct rte_pmd_i40e_flow_type_mapping
-			mapping[RTE_PMD_I40E_FLOW_TYPE_MAX];
-	struct rte_pmd_i40e_pkt_template_conf conf;
-	uint16_t flow_type = str2flowtype(res->flow_type);
-	uint16_t i, port = res->port_id;
-	uint8_t add;
-
-	memset(&conf, 0, sizeof(conf));
-
-	if (flow_type == RTE_ETH_FLOW_UNKNOWN) {
-		fprintf(stderr, "Invalid flow type specified.\n");
-		return;
-	}
-	ret = rte_pmd_i40e_flow_type_mapping_get(res->port_id,
-						 mapping);
-	if (ret)
-		return;
-	if (mapping[flow_type].pctype == 0ULL) {
-		fprintf(stderr, "Invalid flow type specified.\n");
-		return;
-	}
-	for (i = 0; i < RTE_PMD_I40E_PCTYPE_MAX; i++) {
-		if (mapping[flow_type].pctype & (1ULL << i)) {
-			conf.input.pctype = i;
-			break;
-		}
-	}
-
-	conf.input.packet = open_file(res->filepath,
-				&conf.input.length);
-	if (!conf.input.packet)
-		return;
-	if (!strcmp(res->drop, "drop"))
-		conf.action.behavior =
-			RTE_PMD_I40E_PKT_TEMPLATE_REJECT;
-	else
-		conf.action.behavior =
-			RTE_PMD_I40E_PKT_TEMPLATE_ACCEPT;
-	conf.action.report_status =
-			RTE_PMD_I40E_PKT_TEMPLATE_REPORT_ID;
-	conf.action.rx_queue = res->queue_id;
-	conf.soft_id = res->fd_id_value;
-	add  = strcmp(res->ops, "del") ? 1 : 0;
-	ret = rte_pmd_i40e_flow_add_del_packet_template(port,
-							&conf,
-							add);
-	if (ret < 0)
-		fprintf(stderr, "flow director config error: (%s)\n",
-			strerror(-ret));
-	close_file(conf.input.packet);
-}
-
-static cmdline_parse_token_string_t cmd_flow_director_filter =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 flow_director_filter, "flow_director_filter");
-static cmdline_parse_token_num_t cmd_flow_director_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
-			      port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_flow_director_ops =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 ops, "add#del#update");
-static cmdline_parse_token_string_t cmd_flow_director_flow =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 flow, "flow");
-static cmdline_parse_token_string_t cmd_flow_director_flow_type =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-		flow_type, NULL);
-static cmdline_parse_token_string_t cmd_flow_director_drop =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 drop, "drop#fwd");
-static cmdline_parse_token_string_t cmd_flow_director_queue =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 queue, "queue");
-static cmdline_parse_token_num_t cmd_flow_director_queue_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
-			      queue_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_flow_director_fd_id =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 fd_id, "fd_id");
-static cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
-			      fd_id_value, RTE_UINT32);
-
-static cmdline_parse_token_string_t cmd_flow_director_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 mode, "mode");
-static cmdline_parse_token_string_t cmd_flow_director_mode_raw =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 mode_value, "raw");
-static cmdline_parse_token_string_t cmd_flow_director_packet =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 packet, "packet");
-static cmdline_parse_token_string_t cmd_flow_director_filepath =
-	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
-				 filepath, NULL);
-
-static cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
-	.f = cmd_flow_director_filter_parsed,
-	.data = NULL,
-	.help_str = "flow_director_filter ... : Add or delete a raw flow "
-		"director entry on NIC",
-	.tokens = {
-		(void *)&cmd_flow_director_filter,
-		(void *)&cmd_flow_director_port_id,
-		(void *)&cmd_flow_director_mode,
-		(void *)&cmd_flow_director_mode_raw,
-		(void *)&cmd_flow_director_ops,
-		(void *)&cmd_flow_director_flow,
-		(void *)&cmd_flow_director_flow_type,
-		(void *)&cmd_flow_director_drop,
-		(void *)&cmd_flow_director_queue,
-		(void *)&cmd_flow_director_queue_id,
-		(void *)&cmd_flow_director_fd_id,
-		(void *)&cmd_flow_director_fd_id_value,
-		(void *)&cmd_flow_director_packet,
-		(void *)&cmd_flow_director_filepath,
-		NULL,
-	},
-};
-
-#endif /* RTE_NET_I40E */
-
-/* *** deal with flow director mask *** */
-struct cmd_flow_director_mask_result {
-	cmdline_fixed_string_t flow_director_mask;
+/* *** deal with flow director mask *** */
+struct cmd_flow_director_mask_result {
+	cmdline_fixed_string_t flow_director_mask;
 	portid_t port_id;
 	cmdline_fixed_string_t mode;
 	cmdline_fixed_string_t mode_value;
@@ -12390,249 +11666,121 @@ static cmdline_parse_inst_t cmd_set_macsec_sa = {
 	},
 };
 
-/* VF unicast promiscuous mode configuration */
-
-/* Common result structure for VF unicast promiscuous mode */
-struct cmd_vf_promisc_result {
+/* Common definition of VF and TC TX bandwidth configuration */
+struct cmd_vf_tc_bw_result {
 	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t promisc;
+	cmdline_fixed_string_t tc;
+	cmdline_fixed_string_t tx;
+	cmdline_fixed_string_t min_bw;
 	portid_t port_id;
-	uint32_t vf_id;
-	cmdline_fixed_string_t on_off;
+	cmdline_fixed_string_t bw_list;
 };
 
-/* Common CLI fields for VF unicast promiscuous mode enable disable */
-static cmdline_parse_token_string_t cmd_vf_promisc_set =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_promisc_result,
+		(struct cmd_vf_tc_bw_result,
 		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_promisc_vf =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_promisc_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_vf_promisc_promisc =
+		(struct cmd_vf_tc_bw_result,
+		 tc, "tc");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_vf_tc_bw_result,
+		 tx, "tx");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_promisc_result,
-		 promisc, "promisc");
-static cmdline_parse_token_num_t cmd_vf_promisc_port_id =
+		(struct cmd_vf_tc_bw_result,
+		 min_bw, "min-bandwidth");
+static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
 	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_promisc_result,
+		(struct cmd_vf_tc_bw_result,
 		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_promisc_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_promisc_result,
-		 vf_id, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_vf_promisc_on_off =
+static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_promisc_result,
-		 on_off, "on#off");
+		(struct cmd_vf_tc_bw_result,
+		 bw_list, NULL);
 
-static void
-cmd_set_vf_promisc_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
+static int
+vf_tc_min_bw_parse_bw_list(uint8_t *bw_list,
+			   uint8_t *tc_num,
+			   char *str)
 {
-	struct cmd_vf_promisc_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_unicast_promisc(res->port_id,
-						  res->vf_id, is_on);
-#endif
+	uint32_t size;
+	const char *p, *p0 = str;
+	char s[256];
+	char *end;
+	char *str_fld[16];
+	uint16_t i;
+	int ret;
 
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	p = strchr(p0, '(');
+	if (p == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
 	}
-}
-
-static cmdline_parse_inst_t cmd_set_vf_promisc = {
-	.f = cmd_set_vf_promisc_parsed,
-	.data = NULL,
-	.help_str = "set vf promisc <port_id> <vf_id> on|off: "
-		"Set unicast promiscuous mode for a VF from the PF",
-	.tokens = {
-		(void *)&cmd_vf_promisc_set,
-		(void *)&cmd_vf_promisc_vf,
-		(void *)&cmd_vf_promisc_promisc,
-		(void *)&cmd_vf_promisc_port_id,
-		(void *)&cmd_vf_promisc_vf_id,
-		(void *)&cmd_vf_promisc_on_off,
-		NULL,
-	},
-};
-
-/* VF multicast promiscuous mode configuration */
-
-/* Common result structure for VF multicast promiscuous mode */
-struct cmd_vf_allmulti_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t allmulti;
-	portid_t port_id;
-	uint32_t vf_id;
-	cmdline_fixed_string_t on_off;
-};
+	p++;
+	p0 = strchr(p, ')');
+	if (p0 == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	size = p0 - p;
+	if (size >= sizeof(s)) {
+		fprintf(stderr,
+			"The string size exceeds the internal buffer size\n");
+		return -1;
+	}
+	snprintf(s, sizeof(s), "%.*s", size, p);
+	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
+	if (ret <= 0) {
+		fprintf(stderr, "Failed to get the bandwidth list.\n");
+		return -1;
+	}
+	*tc_num = ret;
+	for (i = 0; i < ret; i++)
+		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
 
-/* Common CLI fields for VF multicast promiscuous mode enable disable */
-static cmdline_parse_token_string_t cmd_vf_allmulti_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_allmulti_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_vf_allmulti_allmulti =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 allmulti, "allmulti");
-static cmdline_parse_token_num_t cmd_vf_allmulti_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_allmulti_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 vf_id, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_vf_allmulti_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_allmulti_result,
-		 on_off, "on#off");
+	return 0;
+}
 
 static void
-cmd_set_vf_allmulti_parsed(
+cmd_tc_min_bw_parsed(
 	void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_vf_allmulti_result *res = parsed_result;
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	struct rte_port *port;
+	uint8_t tc_num;
+	uint8_t bw[16];
 	int ret = -ENOTSUP;
 
-	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
 	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
 		return;
 
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_multicast_promisc(res->port_id,
-						    res->vf_id, is_on);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	port = &ports[res->port_id];
+	/** Check if the port is not started **/
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr, "Please stop port %d first\n", res->port_id);
+		return;
 	}
-}
-
-static cmdline_parse_inst_t cmd_set_vf_allmulti = {
-	.f = cmd_set_vf_allmulti_parsed,
-	.data = NULL,
-	.help_str = "set vf allmulti <port_id> <vf_id> on|off: "
-		"Set multicast promiscuous mode for a VF from the PF",
-	.tokens = {
-		(void *)&cmd_vf_allmulti_set,
-		(void *)&cmd_vf_allmulti_vf,
-		(void *)&cmd_vf_allmulti_allmulti,
-		(void *)&cmd_vf_allmulti_port_id,
-		(void *)&cmd_vf_allmulti_vf_id,
-		(void *)&cmd_vf_allmulti_on_off,
-		NULL,
-	},
-};
-
-/* vf broadcast mode configuration */
-
-/* Common result structure for vf broadcast */
-struct cmd_set_vf_broadcast_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t broadcast;
-	portid_t port_id;
-	uint16_t vf_id;
-	cmdline_fixed_string_t on_off;
-};
-
-/* Common CLI fields for vf broadcast enable disable */
-static cmdline_parse_token_string_t cmd_set_vf_broadcast_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_set_vf_broadcast_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_set_vf_broadcast_broadcast =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 broadcast, "broadcast");
-static cmdline_parse_token_num_t cmd_set_vf_broadcast_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_set_vf_broadcast_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 vf_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_vf_broadcast_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_broadcast_result,
-		 on_off, "on#off");
-
-static void
-cmd_set_vf_broadcast_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_vf_broadcast_result *res = parsed_result;
-	int ret = -ENOTSUP;
 
-	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
+	if (ret)
 		return;
 
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_broadcast(res->port_id,
-					    res->vf_id, is_on);
+#ifdef RTE_NET_IXGBE
+	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
 #endif
 
 	switch (ret) {
 	case 0:
 		break;
 	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
-			res->vf_id, is_on);
+		fprintf(stderr, "invalid bandwidth\n");
 		break;
 	case -ENODEV:
 		fprintf(stderr, "invalid port_id %d\n", res->port_id);
@@ -12645,3200 +11793,1434 @@ cmd_set_vf_broadcast_parsed(
 	}
 }
 
-static cmdline_parse_inst_t cmd_set_vf_broadcast = {
-	.f = cmd_set_vf_broadcast_parsed,
+static cmdline_parse_inst_t cmd_tc_min_bw = {
+	.f = cmd_tc_min_bw_parsed,
 	.data = NULL,
-	.help_str = "set vf broadcast <port_id> <vf_id> on|off",
+	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
 	.tokens = {
-		(void *)&cmd_set_vf_broadcast_set,
-		(void *)&cmd_set_vf_broadcast_vf,
-		(void *)&cmd_set_vf_broadcast_broadcast,
-		(void *)&cmd_set_vf_broadcast_port_id,
-		(void *)&cmd_set_vf_broadcast_vf_id,
-		(void *)&cmd_set_vf_broadcast_on_off,
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_tc,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_min_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_bw_list,
 		NULL,
 	},
 };
 
-/* vf vlan tag configuration */
-
-/* Common result structure for vf vlan tag */
-struct cmd_set_vf_vlan_tag_result {
+/** Set VXLAN encapsulation details */
+struct cmd_set_vxlan_result {
 	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t vlan;
-	cmdline_fixed_string_t tag;
-	portid_t port_id;
-	uint16_t vf_id;
-	cmdline_fixed_string_t on_off;
-};
-
-/* Common CLI fields for vf vlan tag enable disable */
-static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vlan =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 vlan, "vlan");
-static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_tag =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 tag, "tag");
-static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 vf_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_set_vf_vlan_tag_result,
-		 on_off, "on#off");
-
-static void
-cmd_set_vf_vlan_tag_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_vf_vlan_tag_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_vlan_tag(res->port_id,
-					   res->vf_id, is_on);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
-			res->vf_id, is_on);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_vf_vlan_tag = {
-	.f = cmd_set_vf_vlan_tag_parsed,
-	.data = NULL,
-	.help_str = "set vf vlan tag <port_id> <vf_id> on|off",
-	.tokens = {
-		(void *)&cmd_set_vf_vlan_tag_set,
-		(void *)&cmd_set_vf_vlan_tag_vf,
-		(void *)&cmd_set_vf_vlan_tag_vlan,
-		(void *)&cmd_set_vf_vlan_tag_tag,
-		(void *)&cmd_set_vf_vlan_tag_port_id,
-		(void *)&cmd_set_vf_vlan_tag_vf_id,
-		(void *)&cmd_set_vf_vlan_tag_on_off,
-		NULL,
-	},
-};
-
-/* Common definition of VF and TC TX bandwidth configuration */
-struct cmd_vf_tc_bw_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t tc;
-	cmdline_fixed_string_t tx;
-	cmdline_fixed_string_t min_bw;
-	cmdline_fixed_string_t max_bw;
-	cmdline_fixed_string_t strict_link_prio;
-	portid_t port_id;
-	uint16_t vf_id;
-	uint8_t tc_no;
-	uint32_t bw;
-	cmdline_fixed_string_t bw_list;
-	uint8_t tc_map;
-};
-
-static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tc, "tc");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tx, "tx");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_strict_link_prio =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 strict_link_prio, "strict-link-priority");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 min_bw, "min-bandwidth");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_max_bw =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 max_bw, "max-bandwidth");
-static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_tc_bw_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 vf_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_no =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tc_no, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_vf_tc_bw_bw =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 bw, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 bw_list, NULL);
-static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_map =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tc_map, RTE_UINT8);
-
-/* VF max bandwidth setting */
-static void
-cmd_vf_max_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_max_bw(res->port_id,
-					 res->vf_id, res->bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or bandwidth %d\n",
-			res->vf_id, res->bw);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_vf_max_bw = {
-	.f = cmd_vf_max_bw_parsed,
-	.data = NULL,
-	.help_str = "set vf tx max-bandwidth <port_id> <vf_id> <bandwidth>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_vf,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_max_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_vf_id,
-		(void *)&cmd_vf_tc_bw_bw,
-		NULL,
-	},
-};
-
-static int
-vf_tc_min_bw_parse_bw_list(uint8_t *bw_list,
-			   uint8_t *tc_num,
-			   char *str)
-{
-	uint32_t size;
-	const char *p, *p0 = str;
-	char s[256];
-	char *end;
-	char *str_fld[16];
-	uint16_t i;
-	int ret;
-
-	p = strchr(p0, '(');
-	if (p == NULL) {
-		fprintf(stderr,
-			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
-		return -1;
-	}
-	p++;
-	p0 = strchr(p, ')');
-	if (p0 == NULL) {
-		fprintf(stderr,
-			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
-		return -1;
-	}
-	size = p0 - p;
-	if (size >= sizeof(s)) {
-		fprintf(stderr,
-			"The string size exceeds the internal buffer size\n");
-		return -1;
-	}
-	snprintf(s, sizeof(s), "%.*s", size, p);
-	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
-	if (ret <= 0) {
-		fprintf(stderr, "Failed to get the bandwidth list.\n");
-		return -1;
-	}
-	*tc_num = ret;
-	for (i = 0; i < ret; i++)
-		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
-
-	return 0;
-}
-
-/* TC min bandwidth setting */
-static void
-cmd_vf_tc_min_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	uint8_t tc_num;
-	uint8_t bw[16];
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
-	if (ret)
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_tc_bw_alloc(res->port_id, res->vf_id,
-					      tc_num, bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or bandwidth\n", res->vf_id);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_vf_tc_min_bw = {
-	.f = cmd_vf_tc_min_bw_parsed,
-	.data = NULL,
-	.help_str = "set vf tc tx min-bandwidth <port_id> <vf_id>"
-		    " <bw1, bw2, ...>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_vf,
-		(void *)&cmd_vf_tc_bw_tc,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_min_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_vf_id,
-		(void *)&cmd_vf_tc_bw_bw_list,
-		NULL,
-	},
-};
-
-static void
-cmd_tc_min_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	struct rte_port *port;
-	uint8_t tc_num;
-	uint8_t bw[16];
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	port = &ports[res->port_id];
-	/** Check if the port is not started **/
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr, "Please stop port %d first\n", res->port_id);
-		return;
-	}
-
-	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
-	if (ret)
-		return;
-
-#ifdef RTE_NET_IXGBE
-	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid bandwidth\n");
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_tc_min_bw = {
-	.f = cmd_tc_min_bw_parsed,
-	.data = NULL,
-	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_tc,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_min_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_bw_list,
-		NULL,
-	},
-};
-
-/* TC max bandwidth setting */
-static void
-cmd_vf_tc_max_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_vf_tc_max_bw(res->port_id, res->vf_id,
-					    res->tc_no, res->bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr,
-			"invalid vf_id %d, tc_no %d or bandwidth %d\n",
-			res->vf_id, res->tc_no, res->bw);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_vf_tc_max_bw = {
-	.f = cmd_vf_tc_max_bw_parsed,
-	.data = NULL,
-	.help_str = "set vf tc tx max-bandwidth <port_id> <vf_id> <tc_no>"
-		    " <bandwidth>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_vf,
-		(void *)&cmd_vf_tc_bw_tc,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_max_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_vf_id,
-		(void *)&cmd_vf_tc_bw_tc_no,
-		(void *)&cmd_vf_tc_bw_bw,
-		NULL,
-	},
-};
-
-/** Set VXLAN encapsulation details */
-struct cmd_set_vxlan_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vxlan;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-	uint32_t vni;
-	uint16_t udp_src;
-	uint16_t udp_dst;
-	cmdline_ipaddr_t ip_src;
-	cmdline_ipaddr_t ip_dst;
-	uint16_t tci;
-	uint8_t tos;
-	uint8_t ttl;
-	struct rte_ether_addr eth_src;
-	struct rte_ether_addr eth_dst;
-};
-
-static cmdline_parse_token_string_t cmd_set_vxlan_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, set, "set");
-static cmdline_parse_token_string_t cmd_set_vxlan_vxlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan, "vxlan");
-static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_tos_ttl =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
-				 "vxlan-tos-ttl");
-static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
-				 "vxlan-with-vlan");
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "ip-version");
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, ip_version,
-				 "ipv4#ipv6");
-static cmdline_parse_token_string_t cmd_set_vxlan_vni =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "vni");
-static cmdline_parse_token_num_t cmd_set_vxlan_vni_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, vni, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_vxlan_udp_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "udp-src");
-static cmdline_parse_token_num_t cmd_set_vxlan_udp_src_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_src, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_vxlan_udp_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "udp-dst");
-static cmdline_parse_token_num_t cmd_set_vxlan_udp_dst_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_dst, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_tos =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "ip-tos");
-static cmdline_parse_token_num_t cmd_set_vxlan_ip_tos_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tos, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_ttl =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "ip-ttl");
-static cmdline_parse_token_num_t cmd_set_vxlan_ip_ttl_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, ttl, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "ip-src");
-static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_src_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_src);
-static cmdline_parse_token_string_t cmd_set_vxlan_ip_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "ip-dst");
-static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_dst_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_dst);
-static cmdline_parse_token_string_t cmd_set_vxlan_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "vlan-tci");
-static cmdline_parse_token_num_t cmd_set_vxlan_vlan_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tci, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_vxlan_eth_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "eth-src");
-static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_src_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_src);
-static cmdline_parse_token_string_t cmd_set_vxlan_eth_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
-				 "eth-dst");
-static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_dst_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_dst);
-
-static void cmd_set_vxlan_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_vxlan_result *res = parsed_result;
-	union {
-		uint32_t vxlan_id;
-		uint8_t vni[4];
-	} id = {
-		.vxlan_id = rte_cpu_to_be_32(res->vni) & RTE_BE32(0x00ffffff),
-	};
-
-	vxlan_encap_conf.select_tos_ttl = 0;
-	if (strcmp(res->vxlan, "vxlan") == 0)
-		vxlan_encap_conf.select_vlan = 0;
-	else if (strcmp(res->vxlan, "vxlan-with-vlan") == 0)
-		vxlan_encap_conf.select_vlan = 1;
-	else if (strcmp(res->vxlan, "vxlan-tos-ttl") == 0) {
-		vxlan_encap_conf.select_vlan = 0;
-		vxlan_encap_conf.select_tos_ttl = 1;
-	}
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		vxlan_encap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		vxlan_encap_conf.select_ipv4 = 0;
-	else
-		return;
-	rte_memcpy(vxlan_encap_conf.vni, &id.vni[1], 3);
-	vxlan_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
-	vxlan_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
-	vxlan_encap_conf.ip_tos = res->tos;
-	vxlan_encap_conf.ip_ttl = res->ttl;
-	if (vxlan_encap_conf.select_ipv4) {
-		IPV4_ADDR_TO_UINT(res->ip_src, vxlan_encap_conf.ipv4_src);
-		IPV4_ADDR_TO_UINT(res->ip_dst, vxlan_encap_conf.ipv4_dst);
-	} else {
-		IPV6_ADDR_TO_ARRAY(res->ip_src, vxlan_encap_conf.ipv6_src);
-		IPV6_ADDR_TO_ARRAY(res->ip_dst, vxlan_encap_conf.ipv6_dst);
-	}
-	if (vxlan_encap_conf.select_vlan)
-		vxlan_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
-	rte_memcpy(vxlan_encap_conf.eth_src, res->eth_src.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-	rte_memcpy(vxlan_encap_conf.eth_dst, res->eth_dst.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-}
-
-static cmdline_parse_inst_t cmd_set_vxlan = {
-	.f = cmd_set_vxlan_parsed,
-	.data = NULL,
-	.help_str = "set vxlan ip-version ipv4|ipv6 vni <vni> udp-src"
-		" <udp-src> udp-dst <udp-dst> ip-src <ip-src> ip-dst <ip-dst>"
-		" eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_vxlan_set,
-		(void *)&cmd_set_vxlan_vxlan,
-		(void *)&cmd_set_vxlan_ip_version,
-		(void *)&cmd_set_vxlan_ip_version_value,
-		(void *)&cmd_set_vxlan_vni,
-		(void *)&cmd_set_vxlan_vni_value,
-		(void *)&cmd_set_vxlan_udp_src,
-		(void *)&cmd_set_vxlan_udp_src_value,
-		(void *)&cmd_set_vxlan_udp_dst,
-		(void *)&cmd_set_vxlan_udp_dst_value,
-		(void *)&cmd_set_vxlan_ip_src,
-		(void *)&cmd_set_vxlan_ip_src_value,
-		(void *)&cmd_set_vxlan_ip_dst,
-		(void *)&cmd_set_vxlan_ip_dst_value,
-		(void *)&cmd_set_vxlan_eth_src,
-		(void *)&cmd_set_vxlan_eth_src_value,
-		(void *)&cmd_set_vxlan_eth_dst,
-		(void *)&cmd_set_vxlan_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
-	.f = cmd_set_vxlan_parsed,
-	.data = NULL,
-	.help_str = "set vxlan-tos-ttl ip-version ipv4|ipv6 vni <vni> udp-src"
-		" <udp-src> udp-dst <udp-dst> ip-tos <ip-tos> ip-ttl <ip-ttl>"
-		" ip-src <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
-		" eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_vxlan_set,
-		(void *)&cmd_set_vxlan_vxlan_tos_ttl,
-		(void *)&cmd_set_vxlan_ip_version,
-		(void *)&cmd_set_vxlan_ip_version_value,
-		(void *)&cmd_set_vxlan_vni,
-		(void *)&cmd_set_vxlan_vni_value,
-		(void *)&cmd_set_vxlan_udp_src,
-		(void *)&cmd_set_vxlan_udp_src_value,
-		(void *)&cmd_set_vxlan_udp_dst,
-		(void *)&cmd_set_vxlan_udp_dst_value,
-		(void *)&cmd_set_vxlan_ip_tos,
-		(void *)&cmd_set_vxlan_ip_tos_value,
-		(void *)&cmd_set_vxlan_ip_ttl,
-		(void *)&cmd_set_vxlan_ip_ttl_value,
-		(void *)&cmd_set_vxlan_ip_src,
-		(void *)&cmd_set_vxlan_ip_src_value,
-		(void *)&cmd_set_vxlan_ip_dst,
-		(void *)&cmd_set_vxlan_ip_dst_value,
-		(void *)&cmd_set_vxlan_eth_src,
-		(void *)&cmd_set_vxlan_eth_src_value,
-		(void *)&cmd_set_vxlan_eth_dst,
-		(void *)&cmd_set_vxlan_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_vxlan_with_vlan = {
-	.f = cmd_set_vxlan_parsed,
-	.data = NULL,
-	.help_str = "set vxlan-with-vlan ip-version ipv4|ipv6 vni <vni>"
-		" udp-src <udp-src> udp-dst <udp-dst> ip-src <ip-src> ip-dst"
-		" <ip-dst> vlan-tci <vlan-tci> eth-src <eth-src> eth-dst"
-		" <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_vxlan_set,
-		(void *)&cmd_set_vxlan_vxlan_with_vlan,
-		(void *)&cmd_set_vxlan_ip_version,
-		(void *)&cmd_set_vxlan_ip_version_value,
-		(void *)&cmd_set_vxlan_vni,
-		(void *)&cmd_set_vxlan_vni_value,
-		(void *)&cmd_set_vxlan_udp_src,
-		(void *)&cmd_set_vxlan_udp_src_value,
-		(void *)&cmd_set_vxlan_udp_dst,
-		(void *)&cmd_set_vxlan_udp_dst_value,
-		(void *)&cmd_set_vxlan_ip_src,
-		(void *)&cmd_set_vxlan_ip_src_value,
-		(void *)&cmd_set_vxlan_ip_dst,
-		(void *)&cmd_set_vxlan_ip_dst_value,
-		(void *)&cmd_set_vxlan_vlan,
-		(void *)&cmd_set_vxlan_vlan_value,
-		(void *)&cmd_set_vxlan_eth_src,
-		(void *)&cmd_set_vxlan_eth_src_value,
-		(void *)&cmd_set_vxlan_eth_dst,
-		(void *)&cmd_set_vxlan_eth_dst_value,
-		NULL,
-	},
-};
-
-/** Set NVGRE encapsulation details */
-struct cmd_set_nvgre_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t nvgre;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t tni;
-	cmdline_ipaddr_t ip_src;
-	cmdline_ipaddr_t ip_dst;
-	uint16_t tci;
-	struct rte_ether_addr eth_src;
-	struct rte_ether_addr eth_dst;
-};
-
-static cmdline_parse_token_string_t cmd_set_nvgre_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, set, "set");
-static cmdline_parse_token_string_t cmd_set_nvgre_nvgre =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre, "nvgre");
-static cmdline_parse_token_string_t cmd_set_nvgre_nvgre_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre,
-				 "nvgre-with-vlan");
-static cmdline_parse_token_string_t cmd_set_nvgre_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "ip-version");
-static cmdline_parse_token_string_t cmd_set_nvgre_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, ip_version,
-				 "ipv4#ipv6");
-static cmdline_parse_token_string_t cmd_set_nvgre_tni =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "tni");
-static cmdline_parse_token_num_t cmd_set_nvgre_tni_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tni, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_nvgre_ip_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "ip-src");
-static cmdline_parse_token_num_t cmd_set_nvgre_ip_src_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_src);
-static cmdline_parse_token_string_t cmd_set_nvgre_ip_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "ip-dst");
-static cmdline_parse_token_ipaddr_t cmd_set_nvgre_ip_dst_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_dst);
-static cmdline_parse_token_string_t cmd_set_nvgre_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "vlan-tci");
-static cmdline_parse_token_num_t cmd_set_nvgre_vlan_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tci, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_nvgre_eth_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "eth-src");
-static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_src_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_src);
-static cmdline_parse_token_string_t cmd_set_nvgre_eth_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
-				 "eth-dst");
-static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_dst_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_dst);
-
-static void cmd_set_nvgre_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_nvgre_result *res = parsed_result;
-	union {
-		uint32_t nvgre_tni;
-		uint8_t tni[4];
-	} id = {
-		.nvgre_tni = rte_cpu_to_be_32(res->tni) & RTE_BE32(0x00ffffff),
-	};
-
-	if (strcmp(res->nvgre, "nvgre") == 0)
-		nvgre_encap_conf.select_vlan = 0;
-	else if (strcmp(res->nvgre, "nvgre-with-vlan") == 0)
-		nvgre_encap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		nvgre_encap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		nvgre_encap_conf.select_ipv4 = 0;
-	else
-		return;
-	rte_memcpy(nvgre_encap_conf.tni, &id.tni[1], 3);
-	if (nvgre_encap_conf.select_ipv4) {
-		IPV4_ADDR_TO_UINT(res->ip_src, nvgre_encap_conf.ipv4_src);
-		IPV4_ADDR_TO_UINT(res->ip_dst, nvgre_encap_conf.ipv4_dst);
-	} else {
-		IPV6_ADDR_TO_ARRAY(res->ip_src, nvgre_encap_conf.ipv6_src);
-		IPV6_ADDR_TO_ARRAY(res->ip_dst, nvgre_encap_conf.ipv6_dst);
-	}
-	if (nvgre_encap_conf.select_vlan)
-		nvgre_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
-	rte_memcpy(nvgre_encap_conf.eth_src, res->eth_src.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-	rte_memcpy(nvgre_encap_conf.eth_dst, res->eth_dst.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-}
-
-static cmdline_parse_inst_t cmd_set_nvgre = {
-	.f = cmd_set_nvgre_parsed,
-	.data = NULL,
-	.help_str = "set nvgre ip-version <ipv4|ipv6> tni <tni> ip-src"
-		" <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
-		" eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_nvgre_set,
-		(void *)&cmd_set_nvgre_nvgre,
-		(void *)&cmd_set_nvgre_ip_version,
-		(void *)&cmd_set_nvgre_ip_version_value,
-		(void *)&cmd_set_nvgre_tni,
-		(void *)&cmd_set_nvgre_tni_value,
-		(void *)&cmd_set_nvgre_ip_src,
-		(void *)&cmd_set_nvgre_ip_src_value,
-		(void *)&cmd_set_nvgre_ip_dst,
-		(void *)&cmd_set_nvgre_ip_dst_value,
-		(void *)&cmd_set_nvgre_eth_src,
-		(void *)&cmd_set_nvgre_eth_src_value,
-		(void *)&cmd_set_nvgre_eth_dst,
-		(void *)&cmd_set_nvgre_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_nvgre_with_vlan = {
-	.f = cmd_set_nvgre_parsed,
-	.data = NULL,
-	.help_str = "set nvgre-with-vlan ip-version <ipv4|ipv6> tni <tni>"
-		" ip-src <ip-src> ip-dst <ip-dst> vlan-tci <vlan-tci>"
-		" eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_nvgre_set,
-		(void *)&cmd_set_nvgre_nvgre_with_vlan,
-		(void *)&cmd_set_nvgre_ip_version,
-		(void *)&cmd_set_nvgre_ip_version_value,
-		(void *)&cmd_set_nvgre_tni,
-		(void *)&cmd_set_nvgre_tni_value,
-		(void *)&cmd_set_nvgre_ip_src,
-		(void *)&cmd_set_nvgre_ip_src_value,
-		(void *)&cmd_set_nvgre_ip_dst,
-		(void *)&cmd_set_nvgre_ip_dst_value,
-		(void *)&cmd_set_nvgre_vlan,
-		(void *)&cmd_set_nvgre_vlan_value,
-		(void *)&cmd_set_nvgre_eth_src,
-		(void *)&cmd_set_nvgre_eth_src_value,
-		(void *)&cmd_set_nvgre_eth_dst,
-		(void *)&cmd_set_nvgre_eth_dst_value,
-		NULL,
-	},
-};
-
-/** Set L2 encapsulation details */
-struct cmd_set_l2_encap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t l2_encap;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-	uint16_t tci;
-	struct rte_ether_addr eth_src;
-	struct rte_ether_addr eth_dst;
-};
-
-static cmdline_parse_token_string_t cmd_set_l2_encap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, set, "set");
-static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap, "l2_encap");
-static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap,
-				 "l2_encap-with-vlan");
-static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
-				 "ip-version");
-static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, ip_version,
-				 "ipv4#ipv6");
-static cmdline_parse_token_string_t cmd_set_l2_encap_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
-				 "vlan-tci");
-static cmdline_parse_token_num_t cmd_set_l2_encap_vlan_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_l2_encap_result, tci, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_l2_encap_eth_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
-				 "eth-src");
-static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_src_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_src);
-static cmdline_parse_token_string_t cmd_set_l2_encap_eth_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
-				 "eth-dst");
-static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_dst_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_dst);
-
-static void cmd_set_l2_encap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_l2_encap_result *res = parsed_result;
-
-	if (strcmp(res->l2_encap, "l2_encap") == 0)
-		l2_encap_conf.select_vlan = 0;
-	else if (strcmp(res->l2_encap, "l2_encap-with-vlan") == 0)
-		l2_encap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		l2_encap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		l2_encap_conf.select_ipv4 = 0;
-	else
-		return;
-	if (l2_encap_conf.select_vlan)
-		l2_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
-	rte_memcpy(l2_encap_conf.eth_src, res->eth_src.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-	rte_memcpy(l2_encap_conf.eth_dst, res->eth_dst.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-}
-
-static cmdline_parse_inst_t cmd_set_l2_encap = {
-	.f = cmd_set_l2_encap_parsed,
-	.data = NULL,
-	.help_str = "set l2_encap ip-version ipv4|ipv6"
-		" eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_l2_encap_set,
-		(void *)&cmd_set_l2_encap_l2_encap,
-		(void *)&cmd_set_l2_encap_ip_version,
-		(void *)&cmd_set_l2_encap_ip_version_value,
-		(void *)&cmd_set_l2_encap_eth_src,
-		(void *)&cmd_set_l2_encap_eth_src_value,
-		(void *)&cmd_set_l2_encap_eth_dst,
-		(void *)&cmd_set_l2_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_l2_encap_with_vlan = {
-	.f = cmd_set_l2_encap_parsed,
-	.data = NULL,
-	.help_str = "set l2_encap-with-vlan ip-version ipv4|ipv6"
-		" vlan-tci <vlan-tci> eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_l2_encap_set,
-		(void *)&cmd_set_l2_encap_l2_encap_with_vlan,
-		(void *)&cmd_set_l2_encap_ip_version,
-		(void *)&cmd_set_l2_encap_ip_version_value,
-		(void *)&cmd_set_l2_encap_vlan,
-		(void *)&cmd_set_l2_encap_vlan_value,
-		(void *)&cmd_set_l2_encap_eth_src,
-		(void *)&cmd_set_l2_encap_eth_src_value,
-		(void *)&cmd_set_l2_encap_eth_dst,
-		(void *)&cmd_set_l2_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-/** Set L2 decapsulation details */
-struct cmd_set_l2_decap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t l2_decap;
-	cmdline_fixed_string_t pos_token;
-	uint32_t vlan_present:1;
-};
-
-static cmdline_parse_token_string_t cmd_set_l2_decap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, set, "set");
-static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
-				 "l2_decap");
-static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
-				 "l2_decap-with-vlan");
-
-static void cmd_set_l2_decap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_l2_decap_result *res = parsed_result;
-
-	if (strcmp(res->l2_decap, "l2_decap") == 0)
-		l2_decap_conf.select_vlan = 0;
-	else if (strcmp(res->l2_decap, "l2_decap-with-vlan") == 0)
-		l2_decap_conf.select_vlan = 1;
-}
-
-static cmdline_parse_inst_t cmd_set_l2_decap = {
-	.f = cmd_set_l2_decap_parsed,
-	.data = NULL,
-	.help_str = "set l2_decap",
-	.tokens = {
-		(void *)&cmd_set_l2_decap_set,
-		(void *)&cmd_set_l2_decap_l2_decap,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_l2_decap_with_vlan = {
-	.f = cmd_set_l2_decap_parsed,
-	.data = NULL,
-	.help_str = "set l2_decap-with-vlan",
-	.tokens = {
-		(void *)&cmd_set_l2_decap_set,
-		(void *)&cmd_set_l2_decap_l2_decap_with_vlan,
-		NULL,
-	},
-};
-
-/** Set MPLSoGRE encapsulation details */
-struct cmd_set_mplsogre_encap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t mplsogre;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-	uint32_t label;
-	cmdline_ipaddr_t ip_src;
-	cmdline_ipaddr_t ip_dst;
-	uint16_t tci;
-	struct rte_ether_addr eth_src;
-	struct rte_ether_addr eth_dst;
-};
-
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, set,
-				 "set");
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, mplsogre,
-				 "mplsogre_encap");
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 mplsogre, "mplsogre_encap-with-vlan");
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "ip-version");
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 ip_version, "ipv4#ipv6");
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_label =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "label");
-static cmdline_parse_token_num_t cmd_set_mplsogre_encap_label_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, label,
-			      RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "ip-src");
-static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_src_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_src);
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "ip-dst");
-static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_dst_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_dst);
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "vlan-tci");
-static cmdline_parse_token_num_t cmd_set_mplsogre_encap_vlan_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, tci,
-			      RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "eth-src");
-static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_src_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				    eth_src);
-static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				 pos_token, "eth-dst");
-static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_dst_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
-				    eth_dst);
-
-static void cmd_set_mplsogre_encap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_mplsogre_encap_result *res = parsed_result;
-	union {
-		uint32_t mplsogre_label;
-		uint8_t label[4];
-	} id = {
-		.mplsogre_label = rte_cpu_to_be_32(res->label<<12),
-	};
-
-	if (strcmp(res->mplsogre, "mplsogre_encap") == 0)
-		mplsogre_encap_conf.select_vlan = 0;
-	else if (strcmp(res->mplsogre, "mplsogre_encap-with-vlan") == 0)
-		mplsogre_encap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		mplsogre_encap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		mplsogre_encap_conf.select_ipv4 = 0;
-	else
-		return;
-	rte_memcpy(mplsogre_encap_conf.label, &id.label, 3);
-	if (mplsogre_encap_conf.select_ipv4) {
-		IPV4_ADDR_TO_UINT(res->ip_src, mplsogre_encap_conf.ipv4_src);
-		IPV4_ADDR_TO_UINT(res->ip_dst, mplsogre_encap_conf.ipv4_dst);
-	} else {
-		IPV6_ADDR_TO_ARRAY(res->ip_src, mplsogre_encap_conf.ipv6_src);
-		IPV6_ADDR_TO_ARRAY(res->ip_dst, mplsogre_encap_conf.ipv6_dst);
-	}
-	if (mplsogre_encap_conf.select_vlan)
-		mplsogre_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
-	rte_memcpy(mplsogre_encap_conf.eth_src, res->eth_src.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-	rte_memcpy(mplsogre_encap_conf.eth_dst, res->eth_dst.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-}
-
-static cmdline_parse_inst_t cmd_set_mplsogre_encap = {
-	.f = cmd_set_mplsogre_encap_parsed,
-	.data = NULL,
-	.help_str = "set mplsogre_encap ip-version ipv4|ipv6 label <label>"
-		" ip-src <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
-		" eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_mplsogre_encap_set,
-		(void *)&cmd_set_mplsogre_encap_mplsogre_encap,
-		(void *)&cmd_set_mplsogre_encap_ip_version,
-		(void *)&cmd_set_mplsogre_encap_ip_version_value,
-		(void *)&cmd_set_mplsogre_encap_label,
-		(void *)&cmd_set_mplsogre_encap_label_value,
-		(void *)&cmd_set_mplsogre_encap_ip_src,
-		(void *)&cmd_set_mplsogre_encap_ip_src_value,
-		(void *)&cmd_set_mplsogre_encap_ip_dst,
-		(void *)&cmd_set_mplsogre_encap_ip_dst_value,
-		(void *)&cmd_set_mplsogre_encap_eth_src,
-		(void *)&cmd_set_mplsogre_encap_eth_src_value,
-		(void *)&cmd_set_mplsogre_encap_eth_dst,
-		(void *)&cmd_set_mplsogre_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_mplsogre_encap_with_vlan = {
-	.f = cmd_set_mplsogre_encap_parsed,
-	.data = NULL,
-	.help_str = "set mplsogre_encap-with-vlan ip-version ipv4|ipv6"
-		" label <label> ip-src <ip-src> ip-dst <ip-dst>"
-		" vlan-tci <vlan-tci> eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_mplsogre_encap_set,
-		(void *)&cmd_set_mplsogre_encap_mplsogre_encap_with_vlan,
-		(void *)&cmd_set_mplsogre_encap_ip_version,
-		(void *)&cmd_set_mplsogre_encap_ip_version_value,
-		(void *)&cmd_set_mplsogre_encap_label,
-		(void *)&cmd_set_mplsogre_encap_label_value,
-		(void *)&cmd_set_mplsogre_encap_ip_src,
-		(void *)&cmd_set_mplsogre_encap_ip_src_value,
-		(void *)&cmd_set_mplsogre_encap_ip_dst,
-		(void *)&cmd_set_mplsogre_encap_ip_dst_value,
-		(void *)&cmd_set_mplsogre_encap_vlan,
-		(void *)&cmd_set_mplsogre_encap_vlan_value,
-		(void *)&cmd_set_mplsogre_encap_eth_src,
-		(void *)&cmd_set_mplsogre_encap_eth_src_value,
-		(void *)&cmd_set_mplsogre_encap_eth_dst,
-		(void *)&cmd_set_mplsogre_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-/** Set MPLSoGRE decapsulation details */
-struct cmd_set_mplsogre_decap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t mplsogre;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-};
-
-static cmdline_parse_token_string_t cmd_set_mplsogre_decap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, set,
-				 "set");
-static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, mplsogre,
-				 "mplsogre_decap");
-static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
-				 mplsogre, "mplsogre_decap-with-vlan");
-static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
-				 pos_token, "ip-version");
-static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
-				 ip_version, "ipv4#ipv6");
-
-static void cmd_set_mplsogre_decap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_mplsogre_decap_result *res = parsed_result;
-
-	if (strcmp(res->mplsogre, "mplsogre_decap") == 0)
-		mplsogre_decap_conf.select_vlan = 0;
-	else if (strcmp(res->mplsogre, "mplsogre_decap-with-vlan") == 0)
-		mplsogre_decap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		mplsogre_decap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		mplsogre_decap_conf.select_ipv4 = 0;
-}
-
-static cmdline_parse_inst_t cmd_set_mplsogre_decap = {
-	.f = cmd_set_mplsogre_decap_parsed,
-	.data = NULL,
-	.help_str = "set mplsogre_decap ip-version ipv4|ipv6",
-	.tokens = {
-		(void *)&cmd_set_mplsogre_decap_set,
-		(void *)&cmd_set_mplsogre_decap_mplsogre_decap,
-		(void *)&cmd_set_mplsogre_decap_ip_version,
-		(void *)&cmd_set_mplsogre_decap_ip_version_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_mplsogre_decap_with_vlan = {
-	.f = cmd_set_mplsogre_decap_parsed,
-	.data = NULL,
-	.help_str = "set mplsogre_decap-with-vlan ip-version ipv4|ipv6",
-	.tokens = {
-		(void *)&cmd_set_mplsogre_decap_set,
-		(void *)&cmd_set_mplsogre_decap_mplsogre_decap_with_vlan,
-		(void *)&cmd_set_mplsogre_decap_ip_version,
-		(void *)&cmd_set_mplsogre_decap_ip_version_value,
-		NULL,
-	},
-};
-
-/** Set MPLSoUDP encapsulation details */
-struct cmd_set_mplsoudp_encap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t mplsoudp;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-	uint32_t label;
-	uint16_t udp_src;
-	uint16_t udp_dst;
-	cmdline_ipaddr_t ip_src;
-	cmdline_ipaddr_t ip_dst;
-	uint16_t tci;
-	struct rte_ether_addr eth_src;
-	struct rte_ether_addr eth_dst;
-};
-
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, set,
-				 "set");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, mplsoudp,
-				 "mplsoudp_encap");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 mplsoudp, "mplsoudp_encap-with-vlan");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "ip-version");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 ip_version, "ipv4#ipv6");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_label =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "label");
-static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_label_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, label,
-			      RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "udp-src");
-static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_src_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_src,
-			      RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "udp-dst");
-static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_dst_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_dst,
-			      RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "ip-src");
-static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_src_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_src);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "ip-dst");
-static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_dst_value =
-	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_dst);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "vlan-tci");
-static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_vlan_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, tci,
-			      RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_src =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "eth-src");
-static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_src_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				    eth_src);
-static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_dst =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				 pos_token, "eth-dst");
-static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_dst_value =
-	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
-				    eth_dst);
-
-static void cmd_set_mplsoudp_encap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_mplsoudp_encap_result *res = parsed_result;
-	union {
-		uint32_t mplsoudp_label;
-		uint8_t label[4];
-	} id = {
-		.mplsoudp_label = rte_cpu_to_be_32(res->label<<12),
-	};
-
-	if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
-		mplsoudp_encap_conf.select_vlan = 0;
-	else if (strcmp(res->mplsoudp, "mplsoudp_encap-with-vlan") == 0)
-		mplsoudp_encap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		mplsoudp_encap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		mplsoudp_encap_conf.select_ipv4 = 0;
-	else
-		return;
-	rte_memcpy(mplsoudp_encap_conf.label, &id.label, 3);
-	mplsoudp_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
-	mplsoudp_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
-	if (mplsoudp_encap_conf.select_ipv4) {
-		IPV4_ADDR_TO_UINT(res->ip_src, mplsoudp_encap_conf.ipv4_src);
-		IPV4_ADDR_TO_UINT(res->ip_dst, mplsoudp_encap_conf.ipv4_dst);
-	} else {
-		IPV6_ADDR_TO_ARRAY(res->ip_src, mplsoudp_encap_conf.ipv6_src);
-		IPV6_ADDR_TO_ARRAY(res->ip_dst, mplsoudp_encap_conf.ipv6_dst);
-	}
-	if (mplsoudp_encap_conf.select_vlan)
-		mplsoudp_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
-	rte_memcpy(mplsoudp_encap_conf.eth_src, res->eth_src.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-	rte_memcpy(mplsoudp_encap_conf.eth_dst, res->eth_dst.addr_bytes,
-		   RTE_ETHER_ADDR_LEN);
-}
-
-static cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
-	.f = cmd_set_mplsoudp_encap_parsed,
-	.data = NULL,
-	.help_str = "set mplsoudp_encap ip-version ipv4|ipv6 label <label>"
-		" udp-src <udp-src> udp-dst <udp-dst> ip-src <ip-src>"
-		" ip-dst <ip-dst> eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_mplsoudp_encap_set,
-		(void *)&cmd_set_mplsoudp_encap_mplsoudp_encap,
-		(void *)&cmd_set_mplsoudp_encap_ip_version,
-		(void *)&cmd_set_mplsoudp_encap_ip_version_value,
-		(void *)&cmd_set_mplsoudp_encap_label,
-		(void *)&cmd_set_mplsoudp_encap_label_value,
-		(void *)&cmd_set_mplsoudp_encap_udp_src,
-		(void *)&cmd_set_mplsoudp_encap_udp_src_value,
-		(void *)&cmd_set_mplsoudp_encap_udp_dst,
-		(void *)&cmd_set_mplsoudp_encap_udp_dst_value,
-		(void *)&cmd_set_mplsoudp_encap_ip_src,
-		(void *)&cmd_set_mplsoudp_encap_ip_src_value,
-		(void *)&cmd_set_mplsoudp_encap_ip_dst,
-		(void *)&cmd_set_mplsoudp_encap_ip_dst_value,
-		(void *)&cmd_set_mplsoudp_encap_eth_src,
-		(void *)&cmd_set_mplsoudp_encap_eth_src_value,
-		(void *)&cmd_set_mplsoudp_encap_eth_dst,
-		(void *)&cmd_set_mplsoudp_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_mplsoudp_encap_with_vlan = {
-	.f = cmd_set_mplsoudp_encap_parsed,
-	.data = NULL,
-	.help_str = "set mplsoudp_encap-with-vlan ip-version ipv4|ipv6"
-		" label <label> udp-src <udp-src> udp-dst <udp-dst>"
-		" ip-src <ip-src> ip-dst <ip-dst> vlan-tci <vlan-tci>"
-		" eth-src <eth-src> eth-dst <eth-dst>",
-	.tokens = {
-		(void *)&cmd_set_mplsoudp_encap_set,
-		(void *)&cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan,
-		(void *)&cmd_set_mplsoudp_encap_ip_version,
-		(void *)&cmd_set_mplsoudp_encap_ip_version_value,
-		(void *)&cmd_set_mplsoudp_encap_label,
-		(void *)&cmd_set_mplsoudp_encap_label_value,
-		(void *)&cmd_set_mplsoudp_encap_udp_src,
-		(void *)&cmd_set_mplsoudp_encap_udp_src_value,
-		(void *)&cmd_set_mplsoudp_encap_udp_dst,
-		(void *)&cmd_set_mplsoudp_encap_udp_dst_value,
-		(void *)&cmd_set_mplsoudp_encap_ip_src,
-		(void *)&cmd_set_mplsoudp_encap_ip_src_value,
-		(void *)&cmd_set_mplsoudp_encap_ip_dst,
-		(void *)&cmd_set_mplsoudp_encap_ip_dst_value,
-		(void *)&cmd_set_mplsoudp_encap_vlan,
-		(void *)&cmd_set_mplsoudp_encap_vlan_value,
-		(void *)&cmd_set_mplsoudp_encap_eth_src,
-		(void *)&cmd_set_mplsoudp_encap_eth_src_value,
-		(void *)&cmd_set_mplsoudp_encap_eth_dst,
-		(void *)&cmd_set_mplsoudp_encap_eth_dst_value,
-		NULL,
-	},
-};
-
-/** Set MPLSoUDP decapsulation details */
-struct cmd_set_mplsoudp_decap_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t mplsoudp;
-	cmdline_fixed_string_t pos_token;
-	cmdline_fixed_string_t ip_version;
-	uint32_t vlan_present:1;
-};
-
-static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, set,
-				 "set");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, mplsoudp,
-				 "mplsoudp_decap");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
-				 mplsoudp, "mplsoudp_decap-with-vlan");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
-				 pos_token, "ip-version");
-static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
-				 ip_version, "ipv4#ipv6");
-
-static void cmd_set_mplsoudp_decap_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_mplsoudp_decap_result *res = parsed_result;
-
-	if (strcmp(res->mplsoudp, "mplsoudp_decap") == 0)
-		mplsoudp_decap_conf.select_vlan = 0;
-	else if (strcmp(res->mplsoudp, "mplsoudp_decap-with-vlan") == 0)
-		mplsoudp_decap_conf.select_vlan = 1;
-	if (strcmp(res->ip_version, "ipv4") == 0)
-		mplsoudp_decap_conf.select_ipv4 = 1;
-	else if (strcmp(res->ip_version, "ipv6") == 0)
-		mplsoudp_decap_conf.select_ipv4 = 0;
-}
-
-static cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
-	.f = cmd_set_mplsoudp_decap_parsed,
-	.data = NULL,
-	.help_str = "set mplsoudp_decap ip-version ipv4|ipv6",
-	.tokens = {
-		(void *)&cmd_set_mplsoudp_decap_set,
-		(void *)&cmd_set_mplsoudp_decap_mplsoudp_decap,
-		(void *)&cmd_set_mplsoudp_decap_ip_version,
-		(void *)&cmd_set_mplsoudp_decap_ip_version_value,
-		NULL,
-	},
-};
-
-static cmdline_parse_inst_t cmd_set_mplsoudp_decap_with_vlan = {
-	.f = cmd_set_mplsoudp_decap_parsed,
-	.data = NULL,
-	.help_str = "set mplsoudp_decap-with-vlan ip-version ipv4|ipv6",
-	.tokens = {
-		(void *)&cmd_set_mplsoudp_decap_set,
-		(void *)&cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan,
-		(void *)&cmd_set_mplsoudp_decap_ip_version,
-		(void *)&cmd_set_mplsoudp_decap_ip_version_value,
-		NULL,
-	},
-};
-
-/** Set connection tracking object common details */
-struct cmd_set_conntrack_common_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t conntrack;
-	cmdline_fixed_string_t common;
-	cmdline_fixed_string_t peer;
-	cmdline_fixed_string_t is_orig;
-	cmdline_fixed_string_t enable;
-	cmdline_fixed_string_t live;
-	cmdline_fixed_string_t sack;
-	cmdline_fixed_string_t cack;
-	cmdline_fixed_string_t last_dir;
-	cmdline_fixed_string_t liberal;
-	cmdline_fixed_string_t state;
-	cmdline_fixed_string_t max_ack_win;
-	cmdline_fixed_string_t retrans;
-	cmdline_fixed_string_t last_win;
-	cmdline_fixed_string_t last_seq;
-	cmdline_fixed_string_t last_ack;
-	cmdline_fixed_string_t last_end;
-	cmdline_fixed_string_t last_index;
-	uint8_t stat;
-	uint8_t factor;
-	uint16_t peer_port;
-	uint32_t is_original;
-	uint32_t en;
-	uint32_t is_live;
-	uint32_t s_ack;
-	uint32_t c_ack;
-	uint32_t ld;
-	uint32_t lb;
-	uint8_t re_num;
-	uint8_t li;
-	uint16_t lw;
-	uint32_t ls;
-	uint32_t la;
-	uint32_t le;
-};
-
-static cmdline_parse_token_string_t cmd_set_conntrack_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 set, "set");
-static cmdline_parse_token_string_t cmd_set_conntrack_conntrack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 conntrack, "conntrack");
-static cmdline_parse_token_string_t cmd_set_conntrack_common_com =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 common, "com");
-static cmdline_parse_token_string_t cmd_set_conntrack_common_peer =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 peer, "peer");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_peer_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      peer_port, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_is_orig =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 is_orig, "is_orig");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_is_orig_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      is_original, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_enable =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 enable, "enable");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_enable_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      en, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_live =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 live, "live");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_live_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      is_live, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_sack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 sack, "sack");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_sack_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      s_ack, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_cack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 cack, "cack");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_cack_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      c_ack, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_dir =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_dir, "last_dir");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_dir_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      ld, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_liberal =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 liberal, "liberal");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_liberal_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      lb, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_state =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 state, "state");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_state_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      stat, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_max_ackwin =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 max_ack_win, "max_ack_win");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_max_ackwin_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      factor, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_retrans =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 retrans, "r_lim");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_retrans_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      re_num, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_win =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_win, "last_win");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_win_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      lw, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_seq =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_seq, "last_seq");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_seq_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      ls, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_ack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_ack, "last_ack");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_ack_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      la, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_end =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_end, "last_end");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_end_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      le, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_common_last_index =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
-				 last_index, "last_index");
-static cmdline_parse_token_num_t cmd_set_conntrack_common_last_index_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
-			      li, RTE_UINT8);
-
-static void cmd_set_conntrack_common_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_conntrack_common_result *res = parsed_result;
-
-	/* No need to swap to big endian. */
-	conntrack_context.peer_port = res->peer_port;
-	conntrack_context.is_original_dir = res->is_original;
-	conntrack_context.enable = res->en;
-	conntrack_context.live_connection = res->is_live;
-	conntrack_context.selective_ack = res->s_ack;
-	conntrack_context.challenge_ack_passed = res->c_ack;
-	conntrack_context.last_direction = res->ld;
-	conntrack_context.liberal_mode = res->lb;
-	conntrack_context.state = (enum rte_flow_conntrack_state)res->stat;
-	conntrack_context.max_ack_window = res->factor;
-	conntrack_context.retransmission_limit = res->re_num;
-	conntrack_context.last_window = res->lw;
-	conntrack_context.last_index =
-		(enum rte_flow_conntrack_tcp_last_index)res->li;
-	conntrack_context.last_seq = res->ls;
-	conntrack_context.last_ack = res->la;
-	conntrack_context.last_end = res->le;
-}
-
-static cmdline_parse_inst_t cmd_set_conntrack_common = {
-	.f = cmd_set_conntrack_common_parsed,
-	.data = NULL,
-	.help_str = "set conntrack com peer <port_id> is_orig <dir> enable <en>"
-		" live <ack_seen> sack <en> cack <passed> last_dir <dir>"
-		" liberal <en> state <s> max_ack_win <factor> r_lim <num>"
-		" last_win <win> last_seq <seq> last_ack <ack> last_end <end>"
-		" last_index <flag>",
-	.tokens = {
-		(void *)&cmd_set_conntrack_set,
-		(void *)&cmd_set_conntrack_conntrack,
-		(void *)&cmd_set_conntrack_common_com,
-		(void *)&cmd_set_conntrack_common_peer,
-		(void *)&cmd_set_conntrack_common_peer_value,
-		(void *)&cmd_set_conntrack_common_is_orig,
-		(void *)&cmd_set_conntrack_common_is_orig_value,
-		(void *)&cmd_set_conntrack_common_enable,
-		(void *)&cmd_set_conntrack_common_enable_value,
-		(void *)&cmd_set_conntrack_common_live,
-		(void *)&cmd_set_conntrack_common_live_value,
-		(void *)&cmd_set_conntrack_common_sack,
-		(void *)&cmd_set_conntrack_common_sack_value,
-		(void *)&cmd_set_conntrack_common_cack,
-		(void *)&cmd_set_conntrack_common_cack_value,
-		(void *)&cmd_set_conntrack_common_last_dir,
-		(void *)&cmd_set_conntrack_common_last_dir_value,
-		(void *)&cmd_set_conntrack_common_liberal,
-		(void *)&cmd_set_conntrack_common_liberal_value,
-		(void *)&cmd_set_conntrack_common_state,
-		(void *)&cmd_set_conntrack_common_state_value,
-		(void *)&cmd_set_conntrack_common_max_ackwin,
-		(void *)&cmd_set_conntrack_common_max_ackwin_value,
-		(void *)&cmd_set_conntrack_common_retrans,
-		(void *)&cmd_set_conntrack_common_retrans_value,
-		(void *)&cmd_set_conntrack_common_last_win,
-		(void *)&cmd_set_conntrack_common_last_win_value,
-		(void *)&cmd_set_conntrack_common_last_seq,
-		(void *)&cmd_set_conntrack_common_last_seq_value,
-		(void *)&cmd_set_conntrack_common_last_ack,
-		(void *)&cmd_set_conntrack_common_last_ack_value,
-		(void *)&cmd_set_conntrack_common_last_end,
-		(void *)&cmd_set_conntrack_common_last_end_value,
-		(void *)&cmd_set_conntrack_common_last_index,
-		(void *)&cmd_set_conntrack_common_last_index_value,
-		NULL,
-	},
-};
-
-/** Set connection tracking object both directions' details */
-struct cmd_set_conntrack_dir_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t conntrack;
-	cmdline_fixed_string_t dir;
-	cmdline_fixed_string_t scale;
-	cmdline_fixed_string_t fin;
-	cmdline_fixed_string_t ack_seen;
-	cmdline_fixed_string_t unack;
-	cmdline_fixed_string_t sent_end;
-	cmdline_fixed_string_t reply_end;
-	cmdline_fixed_string_t max_win;
-	cmdline_fixed_string_t max_ack;
-	uint32_t factor;
-	uint32_t f;
-	uint32_t as;
-	uint32_t un;
-	uint32_t se;
-	uint32_t re;
-	uint32_t mw;
-	uint32_t ma;
-};
-
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_dir =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 dir, "orig#rply");
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_scale =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 scale, "scale");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_scale_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      factor, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_fin =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 fin, "fin");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_fin_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      f, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_ack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 ack_seen, "acked");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_ack_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      as, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_unack_data =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 unack, "unack_data");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_unack_data_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      un, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_sent_end =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 sent_end, "sent_end");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_sent_end_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      se, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_reply_end =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 reply_end, "reply_end");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_reply_end_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      re, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_win =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 max_win, "max_win");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_win_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      mw, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_ack =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
-				 max_ack, "max_ack");
-static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_ack_value =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
-			      ma, RTE_UINT32);
-
-static void cmd_set_conntrack_dir_parsed(void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_set_conntrack_dir_result *res = parsed_result;
-	struct rte_flow_tcp_dir_param *dir = NULL;
-
-	if (strcmp(res->dir, "orig") == 0)
-		dir = &conntrack_context.original_dir;
-	else if (strcmp(res->dir, "rply") == 0)
-		dir = &conntrack_context.reply_dir;
-	else
-		return;
-	dir->scale = res->factor;
-	dir->close_initiated = res->f;
-	dir->last_ack_seen = res->as;
-	dir->data_unacked = res->un;
-	dir->sent_end = res->se;
-	dir->reply_end = res->re;
-	dir->max_ack = res->ma;
-	dir->max_win = res->mw;
-}
-
-static cmdline_parse_inst_t cmd_set_conntrack_dir = {
-	.f = cmd_set_conntrack_dir_parsed,
-	.data = NULL,
-	.help_str = "set conntrack orig|rply scale <factor> fin <sent>"
-		    " acked <seen> unack_data <unack> sent_end <sent>"
-		    " reply_end <reply> max_win <win> max_ack <ack>",
-	.tokens = {
-		(void *)&cmd_set_conntrack_set,
-		(void *)&cmd_set_conntrack_conntrack,
-		(void *)&cmd_set_conntrack_dir_dir,
-		(void *)&cmd_set_conntrack_dir_scale,
-		(void *)&cmd_set_conntrack_dir_scale_value,
-		(void *)&cmd_set_conntrack_dir_fin,
-		(void *)&cmd_set_conntrack_dir_fin_value,
-		(void *)&cmd_set_conntrack_dir_ack,
-		(void *)&cmd_set_conntrack_dir_ack_value,
-		(void *)&cmd_set_conntrack_dir_unack_data,
-		(void *)&cmd_set_conntrack_dir_unack_data_value,
-		(void *)&cmd_set_conntrack_dir_sent_end,
-		(void *)&cmd_set_conntrack_dir_sent_end_value,
-		(void *)&cmd_set_conntrack_dir_reply_end,
-		(void *)&cmd_set_conntrack_dir_reply_end_value,
-		(void *)&cmd_set_conntrack_dir_max_win,
-		(void *)&cmd_set_conntrack_dir_max_win_value,
-		(void *)&cmd_set_conntrack_dir_max_ack,
-		(void *)&cmd_set_conntrack_dir_max_ack_value,
-		NULL,
-	},
-};
-
-/* Strict link priority scheduling mode setting */
-static void
-cmd_strict_link_prio_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_set_tc_strict_prio(res->port_id, res->tc_map);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid tc_bitmap 0x%x\n", res->tc_map);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_strict_link_prio = {
-	.f = cmd_strict_link_prio_parsed,
-	.data = NULL,
-	.help_str = "set tx strict-link-priority <port_id> <tc_bitmap>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_strict_link_prio,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_tc_map,
-		NULL,
-	},
-};
-
-/* Load dynamic device personalization*/
-struct cmd_ddp_add_result {
-	cmdline_fixed_string_t ddp;
-	cmdline_fixed_string_t add;
-	portid_t port_id;
-	char filepath[];
+	cmdline_fixed_string_t vxlan;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
+	uint32_t vni;
+	uint16_t udp_src;
+	uint16_t udp_dst;
+	cmdline_ipaddr_t ip_src;
+	cmdline_ipaddr_t ip_dst;
+	uint16_t tci;
+	uint8_t tos;
+	uint8_t ttl;
+	struct rte_ether_addr eth_src;
+	struct rte_ether_addr eth_dst;
 };
 
-static cmdline_parse_token_string_t cmd_ddp_add_ddp =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, ddp, "ddp");
-static cmdline_parse_token_string_t cmd_ddp_add_add =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, add, "add");
-static cmdline_parse_token_num_t cmd_ddp_add_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_ddp_add_result, port_id,
-		RTE_UINT16);
-static cmdline_parse_token_string_t cmd_ddp_add_filepath =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, filepath, NULL);
+static cmdline_parse_token_string_t cmd_set_vxlan_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, set, "set");
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan, "vxlan");
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_tos_ttl =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
+				 "vxlan-tos-ttl");
+static cmdline_parse_token_string_t cmd_set_vxlan_vxlan_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, vxlan,
+				 "vxlan-with-vlan");
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "ip-version");
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, ip_version,
+				 "ipv4#ipv6");
+static cmdline_parse_token_string_t cmd_set_vxlan_vni =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "vni");
+static cmdline_parse_token_num_t cmd_set_vxlan_vni_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, vni, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_vxlan_udp_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "udp-src");
+static cmdline_parse_token_num_t cmd_set_vxlan_udp_src_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_src, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_vxlan_udp_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "udp-dst");
+static cmdline_parse_token_num_t cmd_set_vxlan_udp_dst_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, udp_dst, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_tos =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "ip-tos");
+static cmdline_parse_token_num_t cmd_set_vxlan_ip_tos_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tos, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_ttl =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "ip-ttl");
+static cmdline_parse_token_num_t cmd_set_vxlan_ip_ttl_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, ttl, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "ip-src");
+static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_src_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_src);
+static cmdline_parse_token_string_t cmd_set_vxlan_ip_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "ip-dst");
+static cmdline_parse_token_ipaddr_t cmd_set_vxlan_ip_dst_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_vxlan_result, ip_dst);
+static cmdline_parse_token_string_t cmd_set_vxlan_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "vlan-tci");
+static cmdline_parse_token_num_t cmd_set_vxlan_vlan_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vxlan_result, tci, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_vxlan_eth_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "eth-src");
+static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_src_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_src);
+static cmdline_parse_token_string_t cmd_set_vxlan_eth_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vxlan_result, pos_token,
+				 "eth-dst");
+static cmdline_parse_token_etheraddr_t cmd_set_vxlan_eth_dst_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_vxlan_result, eth_dst);
 
-static void
-cmd_ddp_add_parsed(
-	void *parsed_result,
+static void cmd_set_vxlan_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_ddp_add_result *res = parsed_result;
-	uint8_t *buff;
-	uint32_t size;
-	char *filepath;
-	char *file_fld[2];
-	int file_num;
-	int ret = -ENOTSUP;
-
-	if (!all_ports_stopped()) {
-		fprintf(stderr, "Please stop all ports first\n");
-		return;
-	}
+	struct cmd_set_vxlan_result *res = parsed_result;
+	union {
+		uint32_t vxlan_id;
+		uint8_t vni[4];
+	} id = {
+		.vxlan_id = rte_cpu_to_be_32(res->vni) & RTE_BE32(0x00ffffff),
+	};
 
-	filepath = strdup(res->filepath);
-	if (filepath == NULL) {
-		fprintf(stderr, "Failed to allocate memory\n");
-		return;
+	vxlan_encap_conf.select_tos_ttl = 0;
+	if (strcmp(res->vxlan, "vxlan") == 0)
+		vxlan_encap_conf.select_vlan = 0;
+	else if (strcmp(res->vxlan, "vxlan-with-vlan") == 0)
+		vxlan_encap_conf.select_vlan = 1;
+	else if (strcmp(res->vxlan, "vxlan-tos-ttl") == 0) {
+		vxlan_encap_conf.select_vlan = 0;
+		vxlan_encap_conf.select_tos_ttl = 1;
 	}
-	file_num = rte_strsplit(filepath, strlen(filepath), file_fld, 2, ',');
-
-	buff = open_file(file_fld[0], &size);
-	if (!buff) {
-		free((void *)filepath);
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		vxlan_encap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		vxlan_encap_conf.select_ipv4 = 0;
+	else
 		return;
+	rte_memcpy(vxlan_encap_conf.vni, &id.vni[1], 3);
+	vxlan_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
+	vxlan_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
+	vxlan_encap_conf.ip_tos = res->tos;
+	vxlan_encap_conf.ip_ttl = res->ttl;
+	if (vxlan_encap_conf.select_ipv4) {
+		IPV4_ADDR_TO_UINT(res->ip_src, vxlan_encap_conf.ipv4_src);
+		IPV4_ADDR_TO_UINT(res->ip_dst, vxlan_encap_conf.ipv4_dst);
+	} else {
+		IPV6_ADDR_TO_ARRAY(res->ip_src, vxlan_encap_conf.ipv6_src);
+		IPV6_ADDR_TO_ARRAY(res->ip_dst, vxlan_encap_conf.ipv6_dst);
 	}
-
-#ifdef RTE_NET_I40E
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_i40e_process_ddp_package(res->port_id,
-					       buff, size,
-					       RTE_PMD_I40E_PKG_OP_WR_ADD);
-#endif
-
-	if (ret == -EEXIST)
-		fprintf(stderr, "Profile has already existed.\n");
-	else if (ret < 0)
-		fprintf(stderr, "Failed to load profile.\n");
-	else if (file_num == 2)
-		save_file(file_fld[1], buff, size);
-
-	close_file(buff);
-	free((void *)filepath);
+	if (vxlan_encap_conf.select_vlan)
+		vxlan_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
+	rte_memcpy(vxlan_encap_conf.eth_src, res->eth_src.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
+	rte_memcpy(vxlan_encap_conf.eth_dst, res->eth_dst.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
 }
 
-static cmdline_parse_inst_t cmd_ddp_add = {
-	.f = cmd_ddp_add_parsed,
+static cmdline_parse_inst_t cmd_set_vxlan = {
+	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
-	.help_str = "ddp add <port_id> <profile_path[,backup_profile_path]>",
+	.help_str = "set vxlan ip-version ipv4|ipv6 vni <vni> udp-src"
+		" <udp-src> udp-dst <udp-dst> ip-src <ip-src> ip-dst <ip-dst>"
+		" eth-src <eth-src> eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_ddp_add_ddp,
-		(void *)&cmd_ddp_add_add,
-		(void *)&cmd_ddp_add_port_id,
-		(void *)&cmd_ddp_add_filepath,
+		(void *)&cmd_set_vxlan_set,
+		(void *)&cmd_set_vxlan_vxlan,
+		(void *)&cmd_set_vxlan_ip_version,
+		(void *)&cmd_set_vxlan_ip_version_value,
+		(void *)&cmd_set_vxlan_vni,
+		(void *)&cmd_set_vxlan_vni_value,
+		(void *)&cmd_set_vxlan_udp_src,
+		(void *)&cmd_set_vxlan_udp_src_value,
+		(void *)&cmd_set_vxlan_udp_dst,
+		(void *)&cmd_set_vxlan_udp_dst_value,
+		(void *)&cmd_set_vxlan_ip_src,
+		(void *)&cmd_set_vxlan_ip_src_value,
+		(void *)&cmd_set_vxlan_ip_dst,
+		(void *)&cmd_set_vxlan_ip_dst_value,
+		(void *)&cmd_set_vxlan_eth_src,
+		(void *)&cmd_set_vxlan_eth_src_value,
+		(void *)&cmd_set_vxlan_eth_dst,
+		(void *)&cmd_set_vxlan_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Delete dynamic device personalization*/
-struct cmd_ddp_del_result {
-	cmdline_fixed_string_t ddp;
-	cmdline_fixed_string_t del;
-	portid_t port_id;
-	char filepath[];
-};
-
-static cmdline_parse_token_string_t cmd_ddp_del_ddp =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, ddp, "ddp");
-static cmdline_parse_token_string_t cmd_ddp_del_del =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, del, "del");
-static cmdline_parse_token_num_t cmd_ddp_del_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_ddp_del_result, port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_ddp_del_filepath =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, filepath, NULL);
-
-static void
-cmd_ddp_del_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_ddp_del_result *res = parsed_result;
-	uint8_t *buff;
-	uint32_t size;
-	int ret = -ENOTSUP;
-
-	if (!all_ports_stopped()) {
-		fprintf(stderr, "Please stop all ports first\n");
-		return;
-	}
-
-	buff = open_file(res->filepath, &size);
-	if (!buff)
-		return;
-
-#ifdef RTE_NET_I40E
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_i40e_process_ddp_package(res->port_id,
-					       buff, size,
-					       RTE_PMD_I40E_PKG_OP_WR_DEL);
-#endif
-
-	if (ret == -EACCES)
-		fprintf(stderr, "Profile does not exist.\n");
-	else if (ret < 0)
-		fprintf(stderr, "Failed to delete profile.\n");
-
-	close_file(buff);
-}
-
-static cmdline_parse_inst_t cmd_ddp_del = {
-	.f = cmd_ddp_del_parsed,
+static cmdline_parse_inst_t cmd_set_vxlan_tos_ttl = {
+	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
-	.help_str = "ddp del <port_id> <backup_profile_path>",
+	.help_str = "set vxlan-tos-ttl ip-version ipv4|ipv6 vni <vni> udp-src"
+		" <udp-src> udp-dst <udp-dst> ip-tos <ip-tos> ip-ttl <ip-ttl>"
+		" ip-src <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
+		" eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_ddp_del_ddp,
-		(void *)&cmd_ddp_del_del,
-		(void *)&cmd_ddp_del_port_id,
-		(void *)&cmd_ddp_del_filepath,
+		(void *)&cmd_set_vxlan_set,
+		(void *)&cmd_set_vxlan_vxlan_tos_ttl,
+		(void *)&cmd_set_vxlan_ip_version,
+		(void *)&cmd_set_vxlan_ip_version_value,
+		(void *)&cmd_set_vxlan_vni,
+		(void *)&cmd_set_vxlan_vni_value,
+		(void *)&cmd_set_vxlan_udp_src,
+		(void *)&cmd_set_vxlan_udp_src_value,
+		(void *)&cmd_set_vxlan_udp_dst,
+		(void *)&cmd_set_vxlan_udp_dst_value,
+		(void *)&cmd_set_vxlan_ip_tos,
+		(void *)&cmd_set_vxlan_ip_tos_value,
+		(void *)&cmd_set_vxlan_ip_ttl,
+		(void *)&cmd_set_vxlan_ip_ttl_value,
+		(void *)&cmd_set_vxlan_ip_src,
+		(void *)&cmd_set_vxlan_ip_src_value,
+		(void *)&cmd_set_vxlan_ip_dst,
+		(void *)&cmd_set_vxlan_ip_dst_value,
+		(void *)&cmd_set_vxlan_eth_src,
+		(void *)&cmd_set_vxlan_eth_src_value,
+		(void *)&cmd_set_vxlan_eth_dst,
+		(void *)&cmd_set_vxlan_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Get dynamic device personalization profile info */
-struct cmd_ddp_info_result {
-	cmdline_fixed_string_t ddp;
-	cmdline_fixed_string_t get;
-	cmdline_fixed_string_t info;
-	char filepath[];
-};
-
-static cmdline_parse_token_string_t cmd_ddp_info_ddp =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, ddp, "ddp");
-static cmdline_parse_token_string_t cmd_ddp_info_get =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, get, "get");
-static cmdline_parse_token_string_t cmd_ddp_info_info =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, info, "info");
-static cmdline_parse_token_string_t cmd_ddp_info_filepath =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, filepath, NULL);
-
-static void
-cmd_ddp_info_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_ddp_info_result *res = parsed_result;
-	uint8_t *pkg;
-	uint32_t pkg_size;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	uint32_t i, j, n;
-	uint8_t *buff;
-	uint32_t buff_size = 0;
-	struct rte_pmd_i40e_profile_info info;
-	uint32_t dev_num = 0;
-	struct rte_pmd_i40e_ddp_device_id *devs;
-	uint32_t proto_num = 0;
-	struct rte_pmd_i40e_proto_info *proto = NULL;
-	uint32_t pctype_num = 0;
-	struct rte_pmd_i40e_ptype_info *pctype;
-	uint32_t ptype_num = 0;
-	struct rte_pmd_i40e_ptype_info *ptype;
-	uint8_t proto_id;
-
-#endif
-
-	pkg = open_file(res->filepath, &pkg_size);
-	if (!pkg)
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-				(uint8_t *)&info, sizeof(info),
-				RTE_PMD_I40E_PKG_INFO_GLOBAL_HEADER);
-	if (!ret) {
-		printf("Global Track id:       0x%x\n", info.track_id);
-		printf("Global Version:        %d.%d.%d.%d\n",
-			info.version.major,
-			info.version.minor,
-			info.version.update,
-			info.version.draft);
-		printf("Global Package name:   %s\n\n", info.name);
-	}
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-				(uint8_t *)&info, sizeof(info),
-				RTE_PMD_I40E_PKG_INFO_HEADER);
-	if (!ret) {
-		printf("i40e Profile Track id: 0x%x\n", info.track_id);
-		printf("i40e Profile Version:  %d.%d.%d.%d\n",
-			info.version.major,
-			info.version.minor,
-			info.version.update,
-			info.version.draft);
-		printf("i40e Profile name:     %s\n\n", info.name);
-	}
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-				(uint8_t *)&buff_size, sizeof(buff_size),
-				RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES_SIZE);
-	if (!ret && buff_size) {
-		buff = (uint8_t *)malloc(buff_size);
-		if (buff) {
-			ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-						buff, buff_size,
-						RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES);
-			if (!ret)
-				printf("Package Notes:\n%s\n\n", buff);
-			free(buff);
-		}
-	}
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-				(uint8_t *)&dev_num, sizeof(dev_num),
-				RTE_PMD_I40E_PKG_INFO_DEVID_NUM);
-	if (!ret && dev_num) {
-		buff_size = dev_num * sizeof(struct rte_pmd_i40e_ddp_device_id);
-		devs = (struct rte_pmd_i40e_ddp_device_id *)malloc(buff_size);
-		if (devs) {
-			ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-						(uint8_t *)devs, buff_size,
-						RTE_PMD_I40E_PKG_INFO_DEVID_LIST);
-			if (!ret) {
-				printf("List of supported devices:\n");
-				for (i = 0; i < dev_num; i++) {
-					printf("  %04X:%04X %04X:%04X\n",
-						devs[i].vendor_dev_id >> 16,
-						devs[i].vendor_dev_id & 0xFFFF,
-						devs[i].sub_vendor_dev_id >> 16,
-						devs[i].sub_vendor_dev_id & 0xFFFF);
-				}
-				printf("\n");
-			}
-			free(devs);
-		}
-	}
-
-	/* get information about protocols and packet types */
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-		(uint8_t *)&proto_num, sizeof(proto_num),
-		RTE_PMD_I40E_PKG_INFO_PROTOCOL_NUM);
-	if (ret || !proto_num)
-		goto no_print_return;
-
-	buff_size = proto_num * sizeof(struct rte_pmd_i40e_proto_info);
-	proto = (struct rte_pmd_i40e_proto_info *)malloc(buff_size);
-	if (!proto)
-		goto no_print_return;
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)proto,
-					buff_size,
-					RTE_PMD_I40E_PKG_INFO_PROTOCOL_LIST);
-	if (!ret) {
-		printf("List of used protocols:\n");
-		for (i = 0; i < proto_num; i++)
-			printf("  %2u: %s\n", proto[i].proto_id,
-			       proto[i].name);
-		printf("\n");
-	}
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
-		(uint8_t *)&pctype_num, sizeof(pctype_num),
-		RTE_PMD_I40E_PKG_INFO_PCTYPE_NUM);
-	if (ret || !pctype_num)
-		goto no_print_pctypes;
-
-	buff_size = pctype_num * sizeof(struct rte_pmd_i40e_ptype_info);
-	pctype = (struct rte_pmd_i40e_ptype_info *)malloc(buff_size);
-	if (!pctype)
-		goto no_print_pctypes;
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)pctype,
-					buff_size,
-					RTE_PMD_I40E_PKG_INFO_PCTYPE_LIST);
-	if (ret) {
-		free(pctype);
-		goto no_print_pctypes;
-	}
-
-	printf("List of defined packet classification types:\n");
-	for (i = 0; i < pctype_num; i++) {
-		printf("  %2u:", pctype[i].ptype_id);
-		for (j = 0; j < RTE_PMD_I40E_PROTO_NUM; j++) {
-			proto_id = pctype[i].protocols[j];
-			if (proto_id != RTE_PMD_I40E_PROTO_UNUSED) {
-				for (n = 0; n < proto_num; n++) {
-					if (proto[n].proto_id == proto_id) {
-						printf(" %s", proto[n].name);
-						break;
-					}
-				}
-			}
-		}
-		printf("\n");
-	}
-	printf("\n");
-	free(pctype);
-
-no_print_pctypes:
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)&ptype_num,
-					sizeof(ptype_num),
-					RTE_PMD_I40E_PKG_INFO_PTYPE_NUM);
-	if (ret || !ptype_num)
-		goto no_print_return;
-
-	buff_size = ptype_num * sizeof(struct rte_pmd_i40e_ptype_info);
-	ptype = (struct rte_pmd_i40e_ptype_info *)malloc(buff_size);
-	if (!ptype)
-		goto no_print_return;
-
-	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)ptype,
-					buff_size,
-					RTE_PMD_I40E_PKG_INFO_PTYPE_LIST);
-	if (ret) {
-		free(ptype);
-		goto no_print_return;
-	}
-	printf("List of defined packet types:\n");
-	for (i = 0; i < ptype_num; i++) {
-		printf("  %2u:", ptype[i].ptype_id);
-		for (j = 0; j < RTE_PMD_I40E_PROTO_NUM; j++) {
-			proto_id = ptype[i].protocols[j];
-			if (proto_id != RTE_PMD_I40E_PROTO_UNUSED) {
-				for (n = 0; n < proto_num; n++) {
-					if (proto[n].proto_id == proto_id) {
-						printf(" %s", proto[n].name);
-						break;
-					}
-				}
-			}
-		}
-		printf("\n");
-	}
-	free(ptype);
-	printf("\n");
-
-	ret = 0;
-no_print_return:
-	free(proto);
-#endif
-	if (ret == -ENOTSUP)
-		fprintf(stderr, "Function not supported in PMD\n");
-	close_file(pkg);
-}
-
-static cmdline_parse_inst_t cmd_ddp_get_info = {
-	.f = cmd_ddp_info_parsed,
+static cmdline_parse_inst_t cmd_set_vxlan_with_vlan = {
+	.f = cmd_set_vxlan_parsed,
 	.data = NULL,
-	.help_str = "ddp get info <profile_path>",
+	.help_str = "set vxlan-with-vlan ip-version ipv4|ipv6 vni <vni>"
+		" udp-src <udp-src> udp-dst <udp-dst> ip-src <ip-src> ip-dst"
+		" <ip-dst> vlan-tci <vlan-tci> eth-src <eth-src> eth-dst"
+		" <eth-dst>",
 	.tokens = {
-		(void *)&cmd_ddp_info_ddp,
-		(void *)&cmd_ddp_info_get,
-		(void *)&cmd_ddp_info_info,
-		(void *)&cmd_ddp_info_filepath,
+		(void *)&cmd_set_vxlan_set,
+		(void *)&cmd_set_vxlan_vxlan_with_vlan,
+		(void *)&cmd_set_vxlan_ip_version,
+		(void *)&cmd_set_vxlan_ip_version_value,
+		(void *)&cmd_set_vxlan_vni,
+		(void *)&cmd_set_vxlan_vni_value,
+		(void *)&cmd_set_vxlan_udp_src,
+		(void *)&cmd_set_vxlan_udp_src_value,
+		(void *)&cmd_set_vxlan_udp_dst,
+		(void *)&cmd_set_vxlan_udp_dst_value,
+		(void *)&cmd_set_vxlan_ip_src,
+		(void *)&cmd_set_vxlan_ip_src_value,
+		(void *)&cmd_set_vxlan_ip_dst,
+		(void *)&cmd_set_vxlan_ip_dst_value,
+		(void *)&cmd_set_vxlan_vlan,
+		(void *)&cmd_set_vxlan_vlan_value,
+		(void *)&cmd_set_vxlan_eth_src,
+		(void *)&cmd_set_vxlan_eth_src_value,
+		(void *)&cmd_set_vxlan_eth_dst,
+		(void *)&cmd_set_vxlan_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Get dynamic device personalization profile info list*/
-#define PROFILE_INFO_SIZE 48
-#define MAX_PROFILE_NUM 16
-
-struct cmd_ddp_get_list_result {
-	cmdline_fixed_string_t ddp;
-	cmdline_fixed_string_t get;
-	cmdline_fixed_string_t list;
-	portid_t port_id;
+/** Set NVGRE encapsulation details */
+struct cmd_set_nvgre_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t nvgre;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t tni;
+	cmdline_ipaddr_t ip_src;
+	cmdline_ipaddr_t ip_dst;
+	uint16_t tci;
+	struct rte_ether_addr eth_src;
+	struct rte_ether_addr eth_dst;
 };
 
-static cmdline_parse_token_string_t cmd_ddp_get_list_ddp =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, ddp, "ddp");
-static cmdline_parse_token_string_t cmd_ddp_get_list_get =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, get, "get");
-static cmdline_parse_token_string_t cmd_ddp_get_list_list =
-	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, list, "list");
-static cmdline_parse_token_num_t cmd_ddp_get_list_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_ddp_get_list_result, port_id,
-		RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_nvgre_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, set, "set");
+static cmdline_parse_token_string_t cmd_set_nvgre_nvgre =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre, "nvgre");
+static cmdline_parse_token_string_t cmd_set_nvgre_nvgre_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, nvgre,
+				 "nvgre-with-vlan");
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "ip-version");
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, ip_version,
+				 "ipv4#ipv6");
+static cmdline_parse_token_string_t cmd_set_nvgre_tni =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "tni");
+static cmdline_parse_token_num_t cmd_set_nvgre_tni_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tni, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "ip-src");
+static cmdline_parse_token_num_t cmd_set_nvgre_ip_src_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_src);
+static cmdline_parse_token_string_t cmd_set_nvgre_ip_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "ip-dst");
+static cmdline_parse_token_ipaddr_t cmd_set_nvgre_ip_dst_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_nvgre_result, ip_dst);
+static cmdline_parse_token_string_t cmd_set_nvgre_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "vlan-tci");
+static cmdline_parse_token_num_t cmd_set_nvgre_vlan_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_nvgre_result, tci, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_nvgre_eth_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "eth-src");
+static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_src_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_src);
+static cmdline_parse_token_string_t cmd_set_nvgre_eth_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_nvgre_result, pos_token,
+				 "eth-dst");
+static cmdline_parse_token_etheraddr_t cmd_set_nvgre_eth_dst_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_nvgre_result, eth_dst);
 
-static void
-cmd_ddp_get_list_parsed(
-	__rte_unused void *parsed_result,
+static void cmd_set_nvgre_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-#ifdef RTE_NET_I40E
-	struct cmd_ddp_get_list_result *res = parsed_result;
-	struct rte_pmd_i40e_profile_list *p_list;
-	struct rte_pmd_i40e_profile_info *p_info;
-	uint32_t p_num;
-	uint32_t size;
-	uint32_t i;
-#endif
-	int ret = -ENOTSUP;
+	struct cmd_set_nvgre_result *res = parsed_result;
+	union {
+		uint32_t nvgre_tni;
+		uint8_t tni[4];
+	} id = {
+		.nvgre_tni = rte_cpu_to_be_32(res->tni) & RTE_BE32(0x00ffffff),
+	};
 
-#ifdef RTE_NET_I40E
-	size = PROFILE_INFO_SIZE * MAX_PROFILE_NUM + 4;
-	p_list = (struct rte_pmd_i40e_profile_list *)malloc(size);
-	if (!p_list) {
-		fprintf(stderr, "%s: Failed to malloc buffer\n", __func__);
+	if (strcmp(res->nvgre, "nvgre") == 0)
+		nvgre_encap_conf.select_vlan = 0;
+	else if (strcmp(res->nvgre, "nvgre-with-vlan") == 0)
+		nvgre_encap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		nvgre_encap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		nvgre_encap_conf.select_ipv4 = 0;
+	else
 		return;
+	rte_memcpy(nvgre_encap_conf.tni, &id.tni[1], 3);
+	if (nvgre_encap_conf.select_ipv4) {
+		IPV4_ADDR_TO_UINT(res->ip_src, nvgre_encap_conf.ipv4_src);
+		IPV4_ADDR_TO_UINT(res->ip_dst, nvgre_encap_conf.ipv4_dst);
+	} else {
+		IPV6_ADDR_TO_ARRAY(res->ip_src, nvgre_encap_conf.ipv6_src);
+		IPV6_ADDR_TO_ARRAY(res->ip_dst, nvgre_encap_conf.ipv6_dst);
 	}
-
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_i40e_get_ddp_list(res->port_id,
-						(uint8_t *)p_list, size);
-
-	if (!ret) {
-		p_num = p_list->p_count;
-		printf("Profile number is: %d\n\n", p_num);
-
-		for (i = 0; i < p_num; i++) {
-			p_info = &p_list->p_info[i];
-			printf("Profile %d:\n", i);
-			printf("Track id:     0x%x\n", p_info->track_id);
-			printf("Version:      %d.%d.%d.%d\n",
-			       p_info->version.major,
-			       p_info->version.minor,
-			       p_info->version.update,
-			       p_info->version.draft);
-			printf("Profile name: %s\n\n", p_info->name);
-		}
-	}
-
-	free(p_list);
-#endif
-
-	if (ret < 0)
-		fprintf(stderr, "Failed to get ddp list\n");
+	if (nvgre_encap_conf.select_vlan)
+		nvgre_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
+	rte_memcpy(nvgre_encap_conf.eth_src, res->eth_src.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
+	rte_memcpy(nvgre_encap_conf.eth_dst, res->eth_dst.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
 }
 
-static cmdline_parse_inst_t cmd_ddp_get_list = {
-	.f = cmd_ddp_get_list_parsed,
+static cmdline_parse_inst_t cmd_set_nvgre = {
+	.f = cmd_set_nvgre_parsed,
+	.data = NULL,
+	.help_str = "set nvgre ip-version <ipv4|ipv6> tni <tni> ip-src"
+		" <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
+		" eth-dst <eth-dst>",
+	.tokens = {
+		(void *)&cmd_set_nvgre_set,
+		(void *)&cmd_set_nvgre_nvgre,
+		(void *)&cmd_set_nvgre_ip_version,
+		(void *)&cmd_set_nvgre_ip_version_value,
+		(void *)&cmd_set_nvgre_tni,
+		(void *)&cmd_set_nvgre_tni_value,
+		(void *)&cmd_set_nvgre_ip_src,
+		(void *)&cmd_set_nvgre_ip_src_value,
+		(void *)&cmd_set_nvgre_ip_dst,
+		(void *)&cmd_set_nvgre_ip_dst_value,
+		(void *)&cmd_set_nvgre_eth_src,
+		(void *)&cmd_set_nvgre_eth_src_value,
+		(void *)&cmd_set_nvgre_eth_dst,
+		(void *)&cmd_set_nvgre_eth_dst_value,
+		NULL,
+	},
+};
+
+static cmdline_parse_inst_t cmd_set_nvgre_with_vlan = {
+	.f = cmd_set_nvgre_parsed,
 	.data = NULL,
-	.help_str = "ddp get list <port_id>",
+	.help_str = "set nvgre-with-vlan ip-version <ipv4|ipv6> tni <tni>"
+		" ip-src <ip-src> ip-dst <ip-dst> vlan-tci <vlan-tci>"
+		" eth-src <eth-src> eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_ddp_get_list_ddp,
-		(void *)&cmd_ddp_get_list_get,
-		(void *)&cmd_ddp_get_list_list,
-		(void *)&cmd_ddp_get_list_port_id,
+		(void *)&cmd_set_nvgre_set,
+		(void *)&cmd_set_nvgre_nvgre_with_vlan,
+		(void *)&cmd_set_nvgre_ip_version,
+		(void *)&cmd_set_nvgre_ip_version_value,
+		(void *)&cmd_set_nvgre_tni,
+		(void *)&cmd_set_nvgre_tni_value,
+		(void *)&cmd_set_nvgre_ip_src,
+		(void *)&cmd_set_nvgre_ip_src_value,
+		(void *)&cmd_set_nvgre_ip_dst,
+		(void *)&cmd_set_nvgre_ip_dst_value,
+		(void *)&cmd_set_nvgre_vlan,
+		(void *)&cmd_set_nvgre_vlan_value,
+		(void *)&cmd_set_nvgre_eth_src,
+		(void *)&cmd_set_nvgre_eth_src_value,
+		(void *)&cmd_set_nvgre_eth_dst,
+		(void *)&cmd_set_nvgre_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Configure input set */
-struct cmd_cfg_input_set_result {
-	cmdline_fixed_string_t port;
-	cmdline_fixed_string_t cfg;
-	portid_t port_id;
-	cmdline_fixed_string_t pctype;
-	uint8_t pctype_id;
-	cmdline_fixed_string_t inset_type;
-	cmdline_fixed_string_t opt;
-	cmdline_fixed_string_t field;
-	uint8_t field_idx;
+/** Set L2 encapsulation details */
+struct cmd_set_l2_encap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t l2_encap;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
+	uint16_t tci;
+	struct rte_ether_addr eth_src;
+	struct rte_ether_addr eth_dst;
 };
 
-static void
-cmd_cfg_input_set_parsed(
-	__rte_unused void *parsed_result,
+static cmdline_parse_token_string_t cmd_set_l2_encap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, set, "set");
+static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap, "l2_encap");
+static cmdline_parse_token_string_t cmd_set_l2_encap_l2_encap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, l2_encap,
+				 "l2_encap-with-vlan");
+static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
+				 "ip-version");
+static cmdline_parse_token_string_t cmd_set_l2_encap_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, ip_version,
+				 "ipv4#ipv6");
+static cmdline_parse_token_string_t cmd_set_l2_encap_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
+				 "vlan-tci");
+static cmdline_parse_token_num_t cmd_set_l2_encap_vlan_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_l2_encap_result, tci, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_l2_encap_eth_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
+				 "eth-src");
+static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_src_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_src);
+static cmdline_parse_token_string_t cmd_set_l2_encap_eth_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_encap_result, pos_token,
+				 "eth-dst");
+static cmdline_parse_token_etheraddr_t cmd_set_l2_encap_eth_dst_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_l2_encap_result, eth_dst);
+
+static void cmd_set_l2_encap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-#ifdef RTE_NET_I40E
-	struct cmd_cfg_input_set_result *res = parsed_result;
-	enum rte_pmd_i40e_inset_type inset_type = INSET_NONE;
-	struct rte_pmd_i40e_inset inset;
-#endif
-	int ret = -ENOTSUP;
-
-	if (!all_ports_stopped()) {
-		fprintf(stderr, "Please stop all ports first\n");
-		return;
-	}
-
-#ifdef RTE_NET_I40E
-	if (!strcmp(res->inset_type, "hash_inset"))
-		inset_type = INSET_HASH;
-	else if (!strcmp(res->inset_type, "fdir_inset"))
-		inset_type = INSET_FDIR;
-	else if (!strcmp(res->inset_type, "fdir_flx_inset"))
-		inset_type = INSET_FDIR_FLX;
-	ret = rte_pmd_i40e_inset_get(res->port_id, res->pctype_id,
-				     &inset, inset_type);
-	if (ret) {
-		fprintf(stderr, "Failed to get input set.\n");
-		return;
-	}
-
-	if (!strcmp(res->opt, "get")) {
-		ret = rte_pmd_i40e_inset_field_get(inset.inset,
-						   res->field_idx);
-		if (ret)
-			printf("Field index %d is enabled.\n", res->field_idx);
-		else
-			printf("Field index %d is disabled.\n", res->field_idx);
-		return;
-	} else if (!strcmp(res->opt, "set"))
-		ret = rte_pmd_i40e_inset_field_set(&inset.inset,
-						   res->field_idx);
-	else if (!strcmp(res->opt, "clear"))
-		ret = rte_pmd_i40e_inset_field_clear(&inset.inset,
-						     res->field_idx);
-	if (ret) {
-		fprintf(stderr, "Failed to configure input set field.\n");
-		return;
-	}
+	struct cmd_set_l2_encap_result *res = parsed_result;
 
-	ret = rte_pmd_i40e_inset_set(res->port_id, res->pctype_id,
-				     &inset, inset_type);
-	if (ret) {
-		fprintf(stderr, "Failed to set input set.\n");
+	if (strcmp(res->l2_encap, "l2_encap") == 0)
+		l2_encap_conf.select_vlan = 0;
+	else if (strcmp(res->l2_encap, "l2_encap-with-vlan") == 0)
+		l2_encap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		l2_encap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		l2_encap_conf.select_ipv4 = 0;
+	else
 		return;
-	}
-#endif
-
-	if (ret == -ENOTSUP)
-		fprintf(stderr, "Function not supported\n");
+	if (l2_encap_conf.select_vlan)
+		l2_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
+	rte_memcpy(l2_encap_conf.eth_src, res->eth_src.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
+	rte_memcpy(l2_encap_conf.eth_dst, res->eth_dst.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
 }
 
-static cmdline_parse_token_string_t cmd_cfg_input_set_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 port, "port");
-static cmdline_parse_token_string_t cmd_cfg_input_set_cfg =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 cfg, "config");
-static cmdline_parse_token_num_t cmd_cfg_input_set_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
-			      port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_cfg_input_set_pctype =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 pctype, "pctype");
-static cmdline_parse_token_num_t cmd_cfg_input_set_pctype_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
-			      pctype_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_cfg_input_set_inset_type =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 inset_type,
-				 "hash_inset#fdir_inset#fdir_flx_inset");
-static cmdline_parse_token_string_t cmd_cfg_input_set_opt =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 opt, "get#set#clear");
-static cmdline_parse_token_string_t cmd_cfg_input_set_field =
-	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
-				 field, "field");
-static cmdline_parse_token_num_t cmd_cfg_input_set_field_idx =
-	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
-			      field_idx, RTE_UINT8);
-
-static cmdline_parse_inst_t cmd_cfg_input_set = {
-	.f = cmd_cfg_input_set_parsed,
+static cmdline_parse_inst_t cmd_set_l2_encap = {
+	.f = cmd_set_l2_encap_parsed,
+	.data = NULL,
+	.help_str = "set l2_encap ip-version ipv4|ipv6"
+		" eth-src <eth-src> eth-dst <eth-dst>",
+	.tokens = {
+		(void *)&cmd_set_l2_encap_set,
+		(void *)&cmd_set_l2_encap_l2_encap,
+		(void *)&cmd_set_l2_encap_ip_version,
+		(void *)&cmd_set_l2_encap_ip_version_value,
+		(void *)&cmd_set_l2_encap_eth_src,
+		(void *)&cmd_set_l2_encap_eth_src_value,
+		(void *)&cmd_set_l2_encap_eth_dst,
+		(void *)&cmd_set_l2_encap_eth_dst_value,
+		NULL,
+	},
+};
+
+static cmdline_parse_inst_t cmd_set_l2_encap_with_vlan = {
+	.f = cmd_set_l2_encap_parsed,
 	.data = NULL,
-	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
-		    "fdir_inset|fdir_flx_inset get|set|clear field <field_idx>",
+	.help_str = "set l2_encap-with-vlan ip-version ipv4|ipv6"
+		" vlan-tci <vlan-tci> eth-src <eth-src> eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_cfg_input_set_port,
-		(void *)&cmd_cfg_input_set_cfg,
-		(void *)&cmd_cfg_input_set_port_id,
-		(void *)&cmd_cfg_input_set_pctype,
-		(void *)&cmd_cfg_input_set_pctype_id,
-		(void *)&cmd_cfg_input_set_inset_type,
-		(void *)&cmd_cfg_input_set_opt,
-		(void *)&cmd_cfg_input_set_field,
-		(void *)&cmd_cfg_input_set_field_idx,
+		(void *)&cmd_set_l2_encap_set,
+		(void *)&cmd_set_l2_encap_l2_encap_with_vlan,
+		(void *)&cmd_set_l2_encap_ip_version,
+		(void *)&cmd_set_l2_encap_ip_version_value,
+		(void *)&cmd_set_l2_encap_vlan,
+		(void *)&cmd_set_l2_encap_vlan_value,
+		(void *)&cmd_set_l2_encap_eth_src,
+		(void *)&cmd_set_l2_encap_eth_src_value,
+		(void *)&cmd_set_l2_encap_eth_dst,
+		(void *)&cmd_set_l2_encap_eth_dst_value,
 		NULL,
 	},
 };
 
-/* Clear input set */
-struct cmd_clear_input_set_result {
-	cmdline_fixed_string_t port;
-	cmdline_fixed_string_t cfg;
-	portid_t port_id;
-	cmdline_fixed_string_t pctype;
-	uint8_t pctype_id;
-	cmdline_fixed_string_t inset_type;
-	cmdline_fixed_string_t clear;
-	cmdline_fixed_string_t all;
+/** Set L2 decapsulation details */
+struct cmd_set_l2_decap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t l2_decap;
+	cmdline_fixed_string_t pos_token;
+	uint32_t vlan_present:1;
 };
 
-static void
-cmd_clear_input_set_parsed(
-	__rte_unused void *parsed_result,
+static cmdline_parse_token_string_t cmd_set_l2_decap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, set, "set");
+static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
+				 "l2_decap");
+static cmdline_parse_token_string_t cmd_set_l2_decap_l2_decap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_l2_decap_result, l2_decap,
+				 "l2_decap-with-vlan");
+
+static void cmd_set_l2_decap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-#ifdef RTE_NET_I40E
-	struct cmd_clear_input_set_result *res = parsed_result;
-	enum rte_pmd_i40e_inset_type inset_type = INSET_NONE;
-	struct rte_pmd_i40e_inset inset;
-#endif
-	int ret = -ENOTSUP;
-
-	if (!all_ports_stopped()) {
-		fprintf(stderr, "Please stop all ports first\n");
-		return;
-	}
-
-#ifdef RTE_NET_I40E
-	if (!strcmp(res->inset_type, "hash_inset"))
-		inset_type = INSET_HASH;
-	else if (!strcmp(res->inset_type, "fdir_inset"))
-		inset_type = INSET_FDIR;
-	else if (!strcmp(res->inset_type, "fdir_flx_inset"))
-		inset_type = INSET_FDIR_FLX;
-
-	memset(&inset, 0, sizeof(inset));
-
-	ret = rte_pmd_i40e_inset_set(res->port_id, res->pctype_id,
-				     &inset, inset_type);
-	if (ret) {
-		fprintf(stderr, "Failed to clear input set.\n");
-		return;
-	}
-
-#endif
+	struct cmd_set_l2_decap_result *res = parsed_result;
 
-	if (ret == -ENOTSUP)
-		fprintf(stderr, "Function not supported\n");
+	if (strcmp(res->l2_decap, "l2_decap") == 0)
+		l2_decap_conf.select_vlan = 0;
+	else if (strcmp(res->l2_decap, "l2_decap-with-vlan") == 0)
+		l2_decap_conf.select_vlan = 1;
 }
 
-static cmdline_parse_token_string_t cmd_clear_input_set_port =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 port, "port");
-static cmdline_parse_token_string_t cmd_clear_input_set_cfg =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 cfg, "config");
-static cmdline_parse_token_num_t cmd_clear_input_set_port_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
-			      port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_clear_input_set_pctype =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 pctype, "pctype");
-static cmdline_parse_token_num_t cmd_clear_input_set_pctype_id =
-	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
-			      pctype_id, RTE_UINT8);
-static cmdline_parse_token_string_t cmd_clear_input_set_inset_type =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 inset_type,
-				 "hash_inset#fdir_inset#fdir_flx_inset");
-static cmdline_parse_token_string_t cmd_clear_input_set_clear =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 clear, "clear");
-static cmdline_parse_token_string_t cmd_clear_input_set_all =
-	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
-				 all, "all");
-
-static cmdline_parse_inst_t cmd_clear_input_set = {
-	.f = cmd_clear_input_set_parsed,
+static cmdline_parse_inst_t cmd_set_l2_decap = {
+	.f = cmd_set_l2_decap_parsed,
 	.data = NULL,
-	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
-		    "fdir_inset|fdir_flx_inset clear all",
+	.help_str = "set l2_decap",
 	.tokens = {
-		(void *)&cmd_clear_input_set_port,
-		(void *)&cmd_clear_input_set_cfg,
-		(void *)&cmd_clear_input_set_port_id,
-		(void *)&cmd_clear_input_set_pctype,
-		(void *)&cmd_clear_input_set_pctype_id,
-		(void *)&cmd_clear_input_set_inset_type,
-		(void *)&cmd_clear_input_set_clear,
-		(void *)&cmd_clear_input_set_all,
+		(void *)&cmd_set_l2_decap_set,
+		(void *)&cmd_set_l2_decap_l2_decap,
 		NULL,
 	},
 };
 
-/* show vf stats */
+static cmdline_parse_inst_t cmd_set_l2_decap_with_vlan = {
+	.f = cmd_set_l2_decap_parsed,
+	.data = NULL,
+	.help_str = "set l2_decap-with-vlan",
+	.tokens = {
+		(void *)&cmd_set_l2_decap_set,
+		(void *)&cmd_set_l2_decap_l2_decap_with_vlan,
+		NULL,
+	},
+};
 
-/* Common result structure for show vf stats */
-struct cmd_show_vf_stats_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t stats;
-	portid_t port_id;
-	uint16_t vf_id;
+/** Set MPLSoGRE encapsulation details */
+struct cmd_set_mplsogre_encap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t mplsogre;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
+	uint32_t label;
+	cmdline_ipaddr_t ip_src;
+	cmdline_ipaddr_t ip_dst;
+	uint16_t tci;
+	struct rte_ether_addr eth_src;
+	struct rte_ether_addr eth_dst;
 };
 
-/* Common CLI fields show vf stats*/
-static cmdline_parse_token_string_t cmd_show_vf_stats_show =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_show_vf_stats_result,
-		 show, "show");
-static cmdline_parse_token_string_t cmd_show_vf_stats_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_show_vf_stats_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_show_vf_stats_stats =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_show_vf_stats_result,
-		 stats, "stats");
-static cmdline_parse_token_num_t cmd_show_vf_stats_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_show_vf_stats_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_show_vf_stats_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_show_vf_stats_result,
-		 vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, set,
+				 "set");
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result, mplsogre,
+				 "mplsogre_encap");
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_mplsogre_encap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 mplsogre, "mplsogre_encap-with-vlan");
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "ip-version");
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 ip_version, "ipv4#ipv6");
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_label =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "label");
+static cmdline_parse_token_num_t cmd_set_mplsogre_encap_label_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, label,
+			      RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "ip-src");
+static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_src_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_src);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_ip_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "ip-dst");
+static cmdline_parse_token_ipaddr_t cmd_set_mplsogre_encap_ip_dst_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result, ip_dst);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "vlan-tci");
+static cmdline_parse_token_num_t cmd_set_mplsogre_encap_vlan_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsogre_encap_result, tci,
+			      RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "eth-src");
+static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_src_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				    eth_src);
+static cmdline_parse_token_string_t cmd_set_mplsogre_encap_eth_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				 pos_token, "eth-dst");
+static cmdline_parse_token_etheraddr_t cmd_set_mplsogre_encap_eth_dst_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsogre_encap_result,
+				    eth_dst);
 
-static void
-cmd_show_vf_stats_parsed(
-	void *parsed_result,
+static void cmd_set_mplsogre_encap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_show_vf_stats_result *res = parsed_result;
-	struct rte_eth_stats stats;
-	int ret = -ENOTSUP;
-	static const char *nic_stats_border = "########################";
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	memset(&stats, 0, sizeof(stats));
-
-#ifdef RTE_NET_I40E
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_i40e_get_vf_stats(res->port_id,
-						res->vf_id,
-						&stats);
-#endif
-#ifdef RTE_NET_BNXT
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_bnxt_get_vf_stats(res->port_id,
-						res->vf_id,
-						&stats);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-
-	printf("\n  %s NIC statistics for port %-2d vf %-2d %s\n",
-		nic_stats_border, res->port_id, res->vf_id, nic_stats_border);
-
-	printf("  RX-packets: %-10"PRIu64" RX-missed: %-10"PRIu64" RX-bytes:  "
-	       "%-"PRIu64"\n",
-	       stats.ipackets, stats.imissed, stats.ibytes);
-	printf("  RX-errors: %-"PRIu64"\n", stats.ierrors);
-	printf("  RX-nombuf:  %-10"PRIu64"\n",
-	       stats.rx_nombuf);
-	printf("  TX-packets: %-10"PRIu64" TX-errors: %-10"PRIu64" TX-bytes:  "
-	       "%-"PRIu64"\n",
-	       stats.opackets, stats.oerrors, stats.obytes);
+	struct cmd_set_mplsogre_encap_result *res = parsed_result;
+	union {
+		uint32_t mplsogre_label;
+		uint8_t label[4];
+	} id = {
+		.mplsogre_label = rte_cpu_to_be_32(res->label<<12),
+	};
 
-	printf("  %s############################%s\n",
-			       nic_stats_border, nic_stats_border);
+	if (strcmp(res->mplsogre, "mplsogre_encap") == 0)
+		mplsogre_encap_conf.select_vlan = 0;
+	else if (strcmp(res->mplsogre, "mplsogre_encap-with-vlan") == 0)
+		mplsogre_encap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		mplsogre_encap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		mplsogre_encap_conf.select_ipv4 = 0;
+	else
+		return;
+	rte_memcpy(mplsogre_encap_conf.label, &id.label, 3);
+	if (mplsogre_encap_conf.select_ipv4) {
+		IPV4_ADDR_TO_UINT(res->ip_src, mplsogre_encap_conf.ipv4_src);
+		IPV4_ADDR_TO_UINT(res->ip_dst, mplsogre_encap_conf.ipv4_dst);
+	} else {
+		IPV6_ADDR_TO_ARRAY(res->ip_src, mplsogre_encap_conf.ipv6_src);
+		IPV6_ADDR_TO_ARRAY(res->ip_dst, mplsogre_encap_conf.ipv6_dst);
+	}
+	if (mplsogre_encap_conf.select_vlan)
+		mplsogre_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
+	rte_memcpy(mplsogre_encap_conf.eth_src, res->eth_src.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
+	rte_memcpy(mplsogre_encap_conf.eth_dst, res->eth_dst.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
 }
 
-static cmdline_parse_inst_t cmd_show_vf_stats = {
-	.f = cmd_show_vf_stats_parsed,
+static cmdline_parse_inst_t cmd_set_mplsogre_encap = {
+	.f = cmd_set_mplsogre_encap_parsed,
 	.data = NULL,
-	.help_str = "show vf stats <port_id> <vf_id>",
+	.help_str = "set mplsogre_encap ip-version ipv4|ipv6 label <label>"
+		" ip-src <ip-src> ip-dst <ip-dst> eth-src <eth-src>"
+		" eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_show_vf_stats_show,
-		(void *)&cmd_show_vf_stats_vf,
-		(void *)&cmd_show_vf_stats_stats,
-		(void *)&cmd_show_vf_stats_port_id,
-		(void *)&cmd_show_vf_stats_vf_id,
+		(void *)&cmd_set_mplsogre_encap_set,
+		(void *)&cmd_set_mplsogre_encap_mplsogre_encap,
+		(void *)&cmd_set_mplsogre_encap_ip_version,
+		(void *)&cmd_set_mplsogre_encap_ip_version_value,
+		(void *)&cmd_set_mplsogre_encap_label,
+		(void *)&cmd_set_mplsogre_encap_label_value,
+		(void *)&cmd_set_mplsogre_encap_ip_src,
+		(void *)&cmd_set_mplsogre_encap_ip_src_value,
+		(void *)&cmd_set_mplsogre_encap_ip_dst,
+		(void *)&cmd_set_mplsogre_encap_ip_dst_value,
+		(void *)&cmd_set_mplsogre_encap_eth_src,
+		(void *)&cmd_set_mplsogre_encap_eth_src_value,
+		(void *)&cmd_set_mplsogre_encap_eth_dst,
+		(void *)&cmd_set_mplsogre_encap_eth_dst_value,
 		NULL,
 	},
 };
 
-/* clear vf stats */
+static cmdline_parse_inst_t cmd_set_mplsogre_encap_with_vlan = {
+	.f = cmd_set_mplsogre_encap_parsed,
+	.data = NULL,
+	.help_str = "set mplsogre_encap-with-vlan ip-version ipv4|ipv6"
+		" label <label> ip-src <ip-src> ip-dst <ip-dst>"
+		" vlan-tci <vlan-tci> eth-src <eth-src> eth-dst <eth-dst>",
+	.tokens = {
+		(void *)&cmd_set_mplsogre_encap_set,
+		(void *)&cmd_set_mplsogre_encap_mplsogre_encap_with_vlan,
+		(void *)&cmd_set_mplsogre_encap_ip_version,
+		(void *)&cmd_set_mplsogre_encap_ip_version_value,
+		(void *)&cmd_set_mplsogre_encap_label,
+		(void *)&cmd_set_mplsogre_encap_label_value,
+		(void *)&cmd_set_mplsogre_encap_ip_src,
+		(void *)&cmd_set_mplsogre_encap_ip_src_value,
+		(void *)&cmd_set_mplsogre_encap_ip_dst,
+		(void *)&cmd_set_mplsogre_encap_ip_dst_value,
+		(void *)&cmd_set_mplsogre_encap_vlan,
+		(void *)&cmd_set_mplsogre_encap_vlan_value,
+		(void *)&cmd_set_mplsogre_encap_eth_src,
+		(void *)&cmd_set_mplsogre_encap_eth_src_value,
+		(void *)&cmd_set_mplsogre_encap_eth_dst,
+		(void *)&cmd_set_mplsogre_encap_eth_dst_value,
+		NULL,
+	},
+};
 
-/* Common result structure for clear vf stats */
-struct cmd_clear_vf_stats_result {
-	cmdline_fixed_string_t clear;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t stats;
-	portid_t port_id;
-	uint16_t vf_id;
+/** Set MPLSoGRE decapsulation details */
+struct cmd_set_mplsogre_decap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t mplsogre;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
 };
 
-/* Common CLI fields clear vf stats*/
-static cmdline_parse_token_string_t cmd_clear_vf_stats_clear =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_clear_vf_stats_result,
-		 clear, "clear");
-static cmdline_parse_token_string_t cmd_clear_vf_stats_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_clear_vf_stats_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_clear_vf_stats_stats =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_clear_vf_stats_result,
-		 stats, "stats");
-static cmdline_parse_token_num_t cmd_clear_vf_stats_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_clear_vf_stats_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_clear_vf_stats_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_clear_vf_stats_result,
-		 vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, set,
+				 "set");
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result, mplsogre,
+				 "mplsogre_decap");
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_mplsogre_decap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
+				 mplsogre, "mplsogre_decap-with-vlan");
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
+				 pos_token, "ip-version");
+static cmdline_parse_token_string_t cmd_set_mplsogre_decap_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsogre_decap_result,
+				 ip_version, "ipv4#ipv6");
 
-static void
-cmd_clear_vf_stats_parsed(
-	void *parsed_result,
+static void cmd_set_mplsogre_decap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_clear_vf_stats_result *res = parsed_result;
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_i40e_reset_vf_stats(res->port_id,
-						  res->vf_id);
-#endif
-#ifdef RTE_NET_BNXT
-	if (ret == -ENOTSUP)
-		ret = rte_pmd_bnxt_reset_vf_stats(res->port_id,
-						  res->vf_id);
-#endif
+	struct cmd_set_mplsogre_decap_result *res = parsed_result;
 
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
+	if (strcmp(res->mplsogre, "mplsogre_decap") == 0)
+		mplsogre_decap_conf.select_vlan = 0;
+	else if (strcmp(res->mplsogre, "mplsogre_decap-with-vlan") == 0)
+		mplsogre_decap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		mplsogre_decap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		mplsogre_decap_conf.select_ipv4 = 0;
 }
 
-static cmdline_parse_inst_t cmd_clear_vf_stats = {
-	.f = cmd_clear_vf_stats_parsed,
+static cmdline_parse_inst_t cmd_set_mplsogre_decap = {
+	.f = cmd_set_mplsogre_decap_parsed,
 	.data = NULL,
-	.help_str = "clear vf stats <port_id> <vf_id>",
+	.help_str = "set mplsogre_decap ip-version ipv4|ipv6",
 	.tokens = {
-		(void *)&cmd_clear_vf_stats_clear,
-		(void *)&cmd_clear_vf_stats_vf,
-		(void *)&cmd_clear_vf_stats_stats,
-		(void *)&cmd_clear_vf_stats_port_id,
-		(void *)&cmd_clear_vf_stats_vf_id,
+		(void *)&cmd_set_mplsogre_decap_set,
+		(void *)&cmd_set_mplsogre_decap_mplsogre_decap,
+		(void *)&cmd_set_mplsogre_decap_ip_version,
+		(void *)&cmd_set_mplsogre_decap_ip_version_value,
 		NULL,
 	},
 };
 
-/* port config pctype mapping reset */
+static cmdline_parse_inst_t cmd_set_mplsogre_decap_with_vlan = {
+	.f = cmd_set_mplsogre_decap_parsed,
+	.data = NULL,
+	.help_str = "set mplsogre_decap-with-vlan ip-version ipv4|ipv6",
+	.tokens = {
+		(void *)&cmd_set_mplsogre_decap_set,
+		(void *)&cmd_set_mplsogre_decap_mplsogre_decap_with_vlan,
+		(void *)&cmd_set_mplsogre_decap_ip_version,
+		(void *)&cmd_set_mplsogre_decap_ip_version_value,
+		NULL,
+	},
+};
 
-/* Common result structure for port config pctype mapping reset */
-struct cmd_pctype_mapping_reset_result {
-	cmdline_fixed_string_t port;
-	cmdline_fixed_string_t config;
-	portid_t port_id;
-	cmdline_fixed_string_t pctype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t reset;
+/** Set MPLSoUDP encapsulation details */
+struct cmd_set_mplsoudp_encap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t mplsoudp;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
+	uint32_t label;
+	uint16_t udp_src;
+	uint16_t udp_dst;
+	cmdline_ipaddr_t ip_src;
+	cmdline_ipaddr_t ip_dst;
+	uint16_t tci;
+	struct rte_ether_addr eth_src;
+	struct rte_ether_addr eth_dst;
 };
 
-/* Common CLI fields for port config pctype mapping reset*/
-static cmdline_parse_token_string_t cmd_pctype_mapping_reset_port =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 port, "port");
-static cmdline_parse_token_string_t cmd_pctype_mapping_reset_config =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 config, "config");
-static cmdline_parse_token_num_t cmd_pctype_mapping_reset_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_pctype_mapping_reset_pctype =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 pctype, "pctype");
-static cmdline_parse_token_string_t cmd_pctype_mapping_reset_mapping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_pctype_mapping_reset_reset =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_reset_result,
-		 reset, "reset");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, set,
+				 "set");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result, mplsoudp,
+				 "mplsoudp_encap");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 mplsoudp, "mplsoudp_encap-with-vlan");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "ip-version");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 ip_version, "ipv4#ipv6");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_label =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "label");
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_label_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, label,
+			      RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "udp-src");
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_src_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_src,
+			      RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_udp_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "udp-dst");
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_udp_dst_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, udp_dst,
+			      RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "ip-src");
+static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_src_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_src);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_ip_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "ip-dst");
+static cmdline_parse_token_ipaddr_t cmd_set_mplsoudp_encap_ip_dst_value =
+	TOKEN_IPADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result, ip_dst);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "vlan-tci");
+static cmdline_parse_token_num_t cmd_set_mplsoudp_encap_vlan_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_mplsoudp_encap_result, tci,
+			      RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_src =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "eth-src");
+static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_src_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				    eth_src);
+static cmdline_parse_token_string_t cmd_set_mplsoudp_encap_eth_dst =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				 pos_token, "eth-dst");
+static cmdline_parse_token_etheraddr_t cmd_set_mplsoudp_encap_eth_dst_value =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_set_mplsoudp_encap_result,
+				    eth_dst);
 
-static void
-cmd_pctype_mapping_reset_parsed(
-	void *parsed_result,
+static void cmd_set_mplsoudp_encap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_pctype_mapping_reset_result *res = parsed_result;
-	int ret = -ENOTSUP;
+	struct cmd_set_mplsoudp_encap_result *res = parsed_result;
+	union {
+		uint32_t mplsoudp_label;
+		uint8_t label[4];
+	} id = {
+		.mplsoudp_label = rte_cpu_to_be_32(res->label<<12),
+	};
 
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+	if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
+		mplsoudp_encap_conf.select_vlan = 0;
+	else if (strcmp(res->mplsoudp, "mplsoudp_encap-with-vlan") == 0)
+		mplsoudp_encap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		mplsoudp_encap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		mplsoudp_encap_conf.select_ipv4 = 0;
+	else
 		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_flow_type_mapping_reset(res->port_id);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	rte_memcpy(mplsoudp_encap_conf.label, &id.label, 3);
+	mplsoudp_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
+	mplsoudp_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
+	if (mplsoudp_encap_conf.select_ipv4) {
+		IPV4_ADDR_TO_UINT(res->ip_src, mplsoudp_encap_conf.ipv4_src);
+		IPV4_ADDR_TO_UINT(res->ip_dst, mplsoudp_encap_conf.ipv4_dst);
+	} else {
+		IPV6_ADDR_TO_ARRAY(res->ip_src, mplsoudp_encap_conf.ipv6_src);
+		IPV6_ADDR_TO_ARRAY(res->ip_dst, mplsoudp_encap_conf.ipv6_dst);
 	}
+	if (mplsoudp_encap_conf.select_vlan)
+		mplsoudp_encap_conf.vlan_tci = rte_cpu_to_be_16(res->tci);
+	rte_memcpy(mplsoudp_encap_conf.eth_src, res->eth_src.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
+	rte_memcpy(mplsoudp_encap_conf.eth_dst, res->eth_dst.addr_bytes,
+		   RTE_ETHER_ADDR_LEN);
 }
 
-static cmdline_parse_inst_t cmd_pctype_mapping_reset = {
-	.f = cmd_pctype_mapping_reset_parsed,
+static cmdline_parse_inst_t cmd_set_mplsoudp_encap = {
+	.f = cmd_set_mplsoudp_encap_parsed,
 	.data = NULL,
-	.help_str = "port config <port_id> pctype mapping reset",
+	.help_str = "set mplsoudp_encap ip-version ipv4|ipv6 label <label>"
+		" udp-src <udp-src> udp-dst <udp-dst> ip-src <ip-src>"
+		" ip-dst <ip-dst> eth-src <eth-src> eth-dst <eth-dst>",
 	.tokens = {
-		(void *)&cmd_pctype_mapping_reset_port,
-		(void *)&cmd_pctype_mapping_reset_config,
-		(void *)&cmd_pctype_mapping_reset_port_id,
-		(void *)&cmd_pctype_mapping_reset_pctype,
-		(void *)&cmd_pctype_mapping_reset_mapping,
-		(void *)&cmd_pctype_mapping_reset_reset,
+		(void *)&cmd_set_mplsoudp_encap_set,
+		(void *)&cmd_set_mplsoudp_encap_mplsoudp_encap,
+		(void *)&cmd_set_mplsoudp_encap_ip_version,
+		(void *)&cmd_set_mplsoudp_encap_ip_version_value,
+		(void *)&cmd_set_mplsoudp_encap_label,
+		(void *)&cmd_set_mplsoudp_encap_label_value,
+		(void *)&cmd_set_mplsoudp_encap_udp_src,
+		(void *)&cmd_set_mplsoudp_encap_udp_src_value,
+		(void *)&cmd_set_mplsoudp_encap_udp_dst,
+		(void *)&cmd_set_mplsoudp_encap_udp_dst_value,
+		(void *)&cmd_set_mplsoudp_encap_ip_src,
+		(void *)&cmd_set_mplsoudp_encap_ip_src_value,
+		(void *)&cmd_set_mplsoudp_encap_ip_dst,
+		(void *)&cmd_set_mplsoudp_encap_ip_dst_value,
+		(void *)&cmd_set_mplsoudp_encap_eth_src,
+		(void *)&cmd_set_mplsoudp_encap_eth_src_value,
+		(void *)&cmd_set_mplsoudp_encap_eth_dst,
+		(void *)&cmd_set_mplsoudp_encap_eth_dst_value,
 		NULL,
 	},
 };
 
-/* show port pctype mapping */
+static cmdline_parse_inst_t cmd_set_mplsoudp_encap_with_vlan = {
+	.f = cmd_set_mplsoudp_encap_parsed,
+	.data = NULL,
+	.help_str = "set mplsoudp_encap-with-vlan ip-version ipv4|ipv6"
+		" label <label> udp-src <udp-src> udp-dst <udp-dst>"
+		" ip-src <ip-src> ip-dst <ip-dst> vlan-tci <vlan-tci>"
+		" eth-src <eth-src> eth-dst <eth-dst>",
+	.tokens = {
+		(void *)&cmd_set_mplsoudp_encap_set,
+		(void *)&cmd_set_mplsoudp_encap_mplsoudp_encap_with_vlan,
+		(void *)&cmd_set_mplsoudp_encap_ip_version,
+		(void *)&cmd_set_mplsoudp_encap_ip_version_value,
+		(void *)&cmd_set_mplsoudp_encap_label,
+		(void *)&cmd_set_mplsoudp_encap_label_value,
+		(void *)&cmd_set_mplsoudp_encap_udp_src,
+		(void *)&cmd_set_mplsoudp_encap_udp_src_value,
+		(void *)&cmd_set_mplsoudp_encap_udp_dst,
+		(void *)&cmd_set_mplsoudp_encap_udp_dst_value,
+		(void *)&cmd_set_mplsoudp_encap_ip_src,
+		(void *)&cmd_set_mplsoudp_encap_ip_src_value,
+		(void *)&cmd_set_mplsoudp_encap_ip_dst,
+		(void *)&cmd_set_mplsoudp_encap_ip_dst_value,
+		(void *)&cmd_set_mplsoudp_encap_vlan,
+		(void *)&cmd_set_mplsoudp_encap_vlan_value,
+		(void *)&cmd_set_mplsoudp_encap_eth_src,
+		(void *)&cmd_set_mplsoudp_encap_eth_src_value,
+		(void *)&cmd_set_mplsoudp_encap_eth_dst,
+		(void *)&cmd_set_mplsoudp_encap_eth_dst_value,
+		NULL,
+	},
+};
 
-/* Common result structure for show port pctype mapping */
-struct cmd_pctype_mapping_get_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t pctype;
-	cmdline_fixed_string_t mapping;
+/** Set MPLSoUDP decapsulation details */
+struct cmd_set_mplsoudp_decap_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t mplsoudp;
+	cmdline_fixed_string_t pos_token;
+	cmdline_fixed_string_t ip_version;
+	uint32_t vlan_present:1;
 };
 
-/* Common CLI fields for pctype mapping get */
-static cmdline_parse_token_string_t cmd_pctype_mapping_get_show =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_get_result,
-		 show, "show");
-static cmdline_parse_token_string_t cmd_pctype_mapping_get_port =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_get_result,
-		 port, "port");
-static cmdline_parse_token_num_t cmd_pctype_mapping_get_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_pctype_mapping_get_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_pctype_mapping_get_pctype =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_get_result,
-		 pctype, "pctype");
-static cmdline_parse_token_string_t cmd_pctype_mapping_get_mapping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_get_result,
-		 mapping, "mapping");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, set,
+				 "set");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result, mplsoudp,
+				 "mplsoudp_decap");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
+				 mplsoudp, "mplsoudp_decap-with-vlan");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
+				 pos_token, "ip-version");
+static cmdline_parse_token_string_t cmd_set_mplsoudp_decap_ip_version_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_mplsoudp_decap_result,
+				 ip_version, "ipv4#ipv6");
 
-static void
-cmd_pctype_mapping_get_parsed(
-	void *parsed_result,
+static void cmd_set_mplsoudp_decap_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_pctype_mapping_get_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_flow_type_mapping
-				mapping[RTE_PMD_I40E_FLOW_TYPE_MAX];
-	int i, j, first_pctype;
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_flow_type_mapping_get(res->port_id, mapping);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		return;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		return;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-		return;
-	}
+	struct cmd_set_mplsoudp_decap_result *res = parsed_result;
 
-#ifdef RTE_NET_I40E
-	for (i = 0; i < RTE_PMD_I40E_FLOW_TYPE_MAX; i++) {
-		if (mapping[i].pctype != 0ULL) {
-			first_pctype = 1;
-
-			printf("pctype: ");
-			for (j = 0; j < RTE_PMD_I40E_PCTYPE_MAX; j++) {
-				if (mapping[i].pctype & (1ULL << j)) {
-					printf(first_pctype ?
-					       "%02d" : ",%02d", j);
-					first_pctype = 0;
-				}
-			}
-			printf("  ->  flowtype: %02d\n", mapping[i].flow_type);
-		}
-	}
-#endif
+	if (strcmp(res->mplsoudp, "mplsoudp_decap") == 0)
+		mplsoudp_decap_conf.select_vlan = 0;
+	else if (strcmp(res->mplsoudp, "mplsoudp_decap-with-vlan") == 0)
+		mplsoudp_decap_conf.select_vlan = 1;
+	if (strcmp(res->ip_version, "ipv4") == 0)
+		mplsoudp_decap_conf.select_ipv4 = 1;
+	else if (strcmp(res->ip_version, "ipv6") == 0)
+		mplsoudp_decap_conf.select_ipv4 = 0;
 }
 
-static cmdline_parse_inst_t cmd_pctype_mapping_get = {
-	.f = cmd_pctype_mapping_get_parsed,
+static cmdline_parse_inst_t cmd_set_mplsoudp_decap = {
+	.f = cmd_set_mplsoudp_decap_parsed,
 	.data = NULL,
-	.help_str = "show port <port_id> pctype mapping",
+	.help_str = "set mplsoudp_decap ip-version ipv4|ipv6",
 	.tokens = {
-		(void *)&cmd_pctype_mapping_get_show,
-		(void *)&cmd_pctype_mapping_get_port,
-		(void *)&cmd_pctype_mapping_get_port_id,
-		(void *)&cmd_pctype_mapping_get_pctype,
-		(void *)&cmd_pctype_mapping_get_mapping,
+		(void *)&cmd_set_mplsoudp_decap_set,
+		(void *)&cmd_set_mplsoudp_decap_mplsoudp_decap,
+		(void *)&cmd_set_mplsoudp_decap_ip_version,
+		(void *)&cmd_set_mplsoudp_decap_ip_version_value,
 		NULL,
 	},
 };
 
-/* port config pctype mapping update */
+static cmdline_parse_inst_t cmd_set_mplsoudp_decap_with_vlan = {
+	.f = cmd_set_mplsoudp_decap_parsed,
+	.data = NULL,
+	.help_str = "set mplsoudp_decap-with-vlan ip-version ipv4|ipv6",
+	.tokens = {
+		(void *)&cmd_set_mplsoudp_decap_set,
+		(void *)&cmd_set_mplsoudp_decap_mplsoudp_decap_with_vlan,
+		(void *)&cmd_set_mplsoudp_decap_ip_version,
+		(void *)&cmd_set_mplsoudp_decap_ip_version_value,
+		NULL,
+	},
+};
 
-/* Common result structure for port config pctype mapping update */
-struct cmd_pctype_mapping_update_result {
-	cmdline_fixed_string_t port;
-	cmdline_fixed_string_t config;
-	portid_t port_id;
-	cmdline_fixed_string_t pctype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t update;
-	cmdline_fixed_string_t pctype_list;
-	uint16_t flow_type;
+/** Set connection tracking object common details */
+struct cmd_set_conntrack_common_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t conntrack;
+	cmdline_fixed_string_t common;
+	cmdline_fixed_string_t peer;
+	cmdline_fixed_string_t is_orig;
+	cmdline_fixed_string_t enable;
+	cmdline_fixed_string_t live;
+	cmdline_fixed_string_t sack;
+	cmdline_fixed_string_t cack;
+	cmdline_fixed_string_t last_dir;
+	cmdline_fixed_string_t liberal;
+	cmdline_fixed_string_t state;
+	cmdline_fixed_string_t max_ack_win;
+	cmdline_fixed_string_t retrans;
+	cmdline_fixed_string_t last_win;
+	cmdline_fixed_string_t last_seq;
+	cmdline_fixed_string_t last_ack;
+	cmdline_fixed_string_t last_end;
+	cmdline_fixed_string_t last_index;
+	uint8_t stat;
+	uint8_t factor;
+	uint16_t peer_port;
+	uint32_t is_original;
+	uint32_t en;
+	uint32_t is_live;
+	uint32_t s_ack;
+	uint32_t c_ack;
+	uint32_t ld;
+	uint32_t lb;
+	uint8_t re_num;
+	uint8_t li;
+	uint16_t lw;
+	uint32_t ls;
+	uint32_t la;
+	uint32_t le;
 };
 
-/* Common CLI fields for pctype mapping update*/
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_port =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 port, "port");
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_config =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 config, "config");
-static cmdline_parse_token_num_t cmd_pctype_mapping_update_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_pctype =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 pctype, "pctype");
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_mapping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_update =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 update, "update");
-static cmdline_parse_token_string_t cmd_pctype_mapping_update_pc_type =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 pctype_list, NULL);
-static cmdline_parse_token_num_t cmd_pctype_mapping_update_flow_type =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_pctype_mapping_update_result,
-		 flow_type, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_conntrack_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 set, "set");
+static cmdline_parse_token_string_t cmd_set_conntrack_conntrack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 conntrack, "conntrack");
+static cmdline_parse_token_string_t cmd_set_conntrack_common_com =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 common, "com");
+static cmdline_parse_token_string_t cmd_set_conntrack_common_peer =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 peer, "peer");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_peer_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      peer_port, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_is_orig =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 is_orig, "is_orig");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_is_orig_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      is_original, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_enable =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 enable, "enable");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_enable_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      en, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_live =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 live, "live");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_live_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      is_live, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_sack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 sack, "sack");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_sack_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      s_ack, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_cack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 cack, "cack");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_cack_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      c_ack, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_dir =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_dir, "last_dir");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_dir_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      ld, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_liberal =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 liberal, "liberal");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_liberal_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      lb, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_state =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 state, "state");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_state_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      stat, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_max_ackwin =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 max_ack_win, "max_ack_win");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_max_ackwin_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      factor, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_retrans =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 retrans, "r_lim");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_retrans_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      re_num, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_win =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_win, "last_win");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_win_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      lw, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_seq =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_seq, "last_seq");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_seq_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      ls, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_ack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_ack, "last_ack");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_ack_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      la, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_end =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_end, "last_end");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_end_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      le, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_common_last_index =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_common_result,
+				 last_index, "last_index");
+static cmdline_parse_token_num_t cmd_set_conntrack_common_last_index_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_common_result,
+			      li, RTE_UINT8);
 
-static void
-cmd_pctype_mapping_update_parsed(
-	void *parsed_result,
+static void cmd_set_conntrack_common_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_pctype_mapping_update_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_flow_type_mapping mapping;
-	unsigned int i;
-	unsigned int nb_item;
-	unsigned int pctype_list[RTE_PMD_I40E_PCTYPE_MAX];
-#endif
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_I40E
-	nb_item = parse_item_list(res->pctype_list, "pctypes",
-				  RTE_PMD_I40E_PCTYPE_MAX, pctype_list, 1);
-	mapping.flow_type = res->flow_type;
-	for (i = 0, mapping.pctype = 0ULL; i < nb_item; i++)
-		mapping.pctype |= (1ULL << pctype_list[i]);
-	ret = rte_pmd_i40e_flow_type_mapping_update(res->port_id,
-						&mapping,
-						1,
-						0);
-#endif
+	struct cmd_set_conntrack_common_result *res = parsed_result;
 
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid pctype or flow type\n");
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
+	/* No need to swap to big endian. */
+	conntrack_context.peer_port = res->peer_port;
+	conntrack_context.is_original_dir = res->is_original;
+	conntrack_context.enable = res->en;
+	conntrack_context.live_connection = res->is_live;
+	conntrack_context.selective_ack = res->s_ack;
+	conntrack_context.challenge_ack_passed = res->c_ack;
+	conntrack_context.last_direction = res->ld;
+	conntrack_context.liberal_mode = res->lb;
+	conntrack_context.state = (enum rte_flow_conntrack_state)res->stat;
+	conntrack_context.max_ack_window = res->factor;
+	conntrack_context.retransmission_limit = res->re_num;
+	conntrack_context.last_window = res->lw;
+	conntrack_context.last_index =
+		(enum rte_flow_conntrack_tcp_last_index)res->li;
+	conntrack_context.last_seq = res->ls;
+	conntrack_context.last_ack = res->la;
+	conntrack_context.last_end = res->le;
 }
 
-static cmdline_parse_inst_t cmd_pctype_mapping_update = {
-	.f = cmd_pctype_mapping_update_parsed,
+static cmdline_parse_inst_t cmd_set_conntrack_common = {
+	.f = cmd_set_conntrack_common_parsed,
 	.data = NULL,
-	.help_str = "port config <port_id> pctype mapping update"
-	" <pctype_id_0,[pctype_id_1]*> <flowtype_id>",
+	.help_str = "set conntrack com peer <port_id> is_orig <dir> enable <en>"
+		" live <ack_seen> sack <en> cack <passed> last_dir <dir>"
+		" liberal <en> state <s> max_ack_win <factor> r_lim <num>"
+		" last_win <win> last_seq <seq> last_ack <ack> last_end <end>"
+		" last_index <flag>",
 	.tokens = {
-		(void *)&cmd_pctype_mapping_update_port,
-		(void *)&cmd_pctype_mapping_update_config,
-		(void *)&cmd_pctype_mapping_update_port_id,
-		(void *)&cmd_pctype_mapping_update_pctype,
-		(void *)&cmd_pctype_mapping_update_mapping,
-		(void *)&cmd_pctype_mapping_update_update,
-		(void *)&cmd_pctype_mapping_update_pc_type,
-		(void *)&cmd_pctype_mapping_update_flow_type,
+		(void *)&cmd_set_conntrack_set,
+		(void *)&cmd_set_conntrack_conntrack,
+		(void *)&cmd_set_conntrack_common_com,
+		(void *)&cmd_set_conntrack_common_peer,
+		(void *)&cmd_set_conntrack_common_peer_value,
+		(void *)&cmd_set_conntrack_common_is_orig,
+		(void *)&cmd_set_conntrack_common_is_orig_value,
+		(void *)&cmd_set_conntrack_common_enable,
+		(void *)&cmd_set_conntrack_common_enable_value,
+		(void *)&cmd_set_conntrack_common_live,
+		(void *)&cmd_set_conntrack_common_live_value,
+		(void *)&cmd_set_conntrack_common_sack,
+		(void *)&cmd_set_conntrack_common_sack_value,
+		(void *)&cmd_set_conntrack_common_cack,
+		(void *)&cmd_set_conntrack_common_cack_value,
+		(void *)&cmd_set_conntrack_common_last_dir,
+		(void *)&cmd_set_conntrack_common_last_dir_value,
+		(void *)&cmd_set_conntrack_common_liberal,
+		(void *)&cmd_set_conntrack_common_liberal_value,
+		(void *)&cmd_set_conntrack_common_state,
+		(void *)&cmd_set_conntrack_common_state_value,
+		(void *)&cmd_set_conntrack_common_max_ackwin,
+		(void *)&cmd_set_conntrack_common_max_ackwin_value,
+		(void *)&cmd_set_conntrack_common_retrans,
+		(void *)&cmd_set_conntrack_common_retrans_value,
+		(void *)&cmd_set_conntrack_common_last_win,
+		(void *)&cmd_set_conntrack_common_last_win_value,
+		(void *)&cmd_set_conntrack_common_last_seq,
+		(void *)&cmd_set_conntrack_common_last_seq_value,
+		(void *)&cmd_set_conntrack_common_last_ack,
+		(void *)&cmd_set_conntrack_common_last_ack_value,
+		(void *)&cmd_set_conntrack_common_last_end,
+		(void *)&cmd_set_conntrack_common_last_end_value,
+		(void *)&cmd_set_conntrack_common_last_index,
+		(void *)&cmd_set_conntrack_common_last_index_value,
 		NULL,
 	},
 };
 
-/* ptype mapping get */
-
-/* Common result structure for ptype mapping get */
-struct cmd_ptype_mapping_get_result {
-	cmdline_fixed_string_t ptype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t get;
-	portid_t port_id;
-	uint8_t valid_only;
+/** Set connection tracking object both directions' details */
+struct cmd_set_conntrack_dir_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t conntrack;
+	cmdline_fixed_string_t dir;
+	cmdline_fixed_string_t scale;
+	cmdline_fixed_string_t fin;
+	cmdline_fixed_string_t ack_seen;
+	cmdline_fixed_string_t unack;
+	cmdline_fixed_string_t sent_end;
+	cmdline_fixed_string_t reply_end;
+	cmdline_fixed_string_t max_win;
+	cmdline_fixed_string_t max_ack;
+	uint32_t factor;
+	uint32_t f;
+	uint32_t as;
+	uint32_t un;
+	uint32_t se;
+	uint32_t re;
+	uint32_t mw;
+	uint32_t ma;
 };
 
-/* Common CLI fields for ptype mapping get */
-static cmdline_parse_token_string_t cmd_ptype_mapping_get_ptype =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_get_result,
-		 ptype, "ptype");
-static cmdline_parse_token_string_t cmd_ptype_mapping_get_mapping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_get_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_ptype_mapping_get_get =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_get_result,
-		 get, "get");
-static cmdline_parse_token_num_t cmd_ptype_mapping_get_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_get_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_ptype_mapping_get_valid_only =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_get_result,
-		 valid_only, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_dir =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 dir, "orig#rply");
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_scale =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 scale, "scale");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_scale_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      factor, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_fin =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 fin, "fin");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_fin_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      f, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_ack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 ack_seen, "acked");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_ack_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      as, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_unack_data =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 unack, "unack_data");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_unack_data_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      un, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_sent_end =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 sent_end, "sent_end");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_sent_end_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      se, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_reply_end =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 reply_end, "reply_end");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_reply_end_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      re, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_win =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 max_win, "max_win");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_win_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      mw, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_set_conntrack_dir_max_ack =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_conntrack_dir_result,
+				 max_ack, "max_ack");
+static cmdline_parse_token_num_t cmd_set_conntrack_dir_max_ack_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_conntrack_dir_result,
+			      ma, RTE_UINT32);
 
-static void
-cmd_ptype_mapping_get_parsed(
-	void *parsed_result,
+static void cmd_set_conntrack_dir_parsed(void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_ptype_mapping_get_result *res = parsed_result;
-	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	int max_ptype_num = 256;
-	struct rte_pmd_i40e_ptype_mapping mapping[max_ptype_num];
-	uint16_t count;
-	int i;
-#endif
+	struct cmd_set_conntrack_dir_result *res = parsed_result;
+	struct rte_flow_tcp_dir_param *dir = NULL;
 
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+	if (strcmp(res->dir, "orig") == 0)
+		dir = &conntrack_context.original_dir;
+	else if (strcmp(res->dir, "rply") == 0)
+		dir = &conntrack_context.reply_dir;
+	else
 		return;
-
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_ptype_mapping_get(res->port_id,
-					mapping,
-					max_ptype_num,
-					&count,
-					res->valid_only);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-
-#ifdef RTE_NET_I40E
-	if (!ret) {
-		for (i = 0; i < count; i++)
-			printf("%3d\t0x%08x\n",
-				mapping[i].hw_ptype, mapping[i].sw_ptype);
-	}
-#endif
+	dir->scale = res->factor;
+	dir->close_initiated = res->f;
+	dir->last_ack_seen = res->as;
+	dir->data_unacked = res->un;
+	dir->sent_end = res->se;
+	dir->reply_end = res->re;
+	dir->max_ack = res->ma;
+	dir->max_win = res->mw;
 }
 
-static cmdline_parse_inst_t cmd_ptype_mapping_get = {
-	.f = cmd_ptype_mapping_get_parsed,
+static cmdline_parse_inst_t cmd_set_conntrack_dir = {
+	.f = cmd_set_conntrack_dir_parsed,
 	.data = NULL,
-	.help_str = "ptype mapping get <port_id> <valid_only>",
+	.help_str = "set conntrack orig|rply scale <factor> fin <sent>"
+		    " acked <seen> unack_data <unack> sent_end <sent>"
+		    " reply_end <reply> max_win <win> max_ack <ack>",
 	.tokens = {
-		(void *)&cmd_ptype_mapping_get_ptype,
-		(void *)&cmd_ptype_mapping_get_mapping,
-		(void *)&cmd_ptype_mapping_get_get,
-		(void *)&cmd_ptype_mapping_get_port_id,
-		(void *)&cmd_ptype_mapping_get_valid_only,
+		(void *)&cmd_set_conntrack_set,
+		(void *)&cmd_set_conntrack_conntrack,
+		(void *)&cmd_set_conntrack_dir_dir,
+		(void *)&cmd_set_conntrack_dir_scale,
+		(void *)&cmd_set_conntrack_dir_scale_value,
+		(void *)&cmd_set_conntrack_dir_fin,
+		(void *)&cmd_set_conntrack_dir_fin_value,
+		(void *)&cmd_set_conntrack_dir_ack,
+		(void *)&cmd_set_conntrack_dir_ack_value,
+		(void *)&cmd_set_conntrack_dir_unack_data,
+		(void *)&cmd_set_conntrack_dir_unack_data_value,
+		(void *)&cmd_set_conntrack_dir_sent_end,
+		(void *)&cmd_set_conntrack_dir_sent_end_value,
+		(void *)&cmd_set_conntrack_dir_reply_end,
+		(void *)&cmd_set_conntrack_dir_reply_end_value,
+		(void *)&cmd_set_conntrack_dir_max_win,
+		(void *)&cmd_set_conntrack_dir_max_win_value,
+		(void *)&cmd_set_conntrack_dir_max_ack,
+		(void *)&cmd_set_conntrack_dir_max_ack_value,
 		NULL,
 	},
 };
 
-/* ptype mapping replace */
+/* show vf stats */
 
-/* Common result structure for ptype mapping replace */
-struct cmd_ptype_mapping_replace_result {
-	cmdline_fixed_string_t ptype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t replace;
+/* Common result structure for show vf stats */
+struct cmd_show_vf_stats_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t stats;
 	portid_t port_id;
-	uint32_t target;
-	uint8_t mask;
-	uint32_t pkt_type;
+	uint16_t vf_id;
 };
 
-/* Common CLI fields for ptype mapping replace */
-static cmdline_parse_token_string_t cmd_ptype_mapping_replace_ptype =
+/* Common CLI fields show vf stats*/
+static cmdline_parse_token_string_t cmd_show_vf_stats_show =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 ptype, "ptype");
-static cmdline_parse_token_string_t cmd_ptype_mapping_replace_mapping =
+		(struct cmd_show_vf_stats_result,
+		 show, "show");
+static cmdline_parse_token_string_t cmd_show_vf_stats_vf =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_ptype_mapping_replace_replace =
+		(struct cmd_show_vf_stats_result,
+		 vf, "vf");
+static cmdline_parse_token_string_t cmd_show_vf_stats_stats =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 replace, "replace");
-static cmdline_parse_token_num_t cmd_ptype_mapping_replace_port_id =
+		(struct cmd_show_vf_stats_result,
+		 stats, "stats");
+static cmdline_parse_token_num_t cmd_show_vf_stats_port_id =
 	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
+		(struct cmd_show_vf_stats_result,
 		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_ptype_mapping_replace_target =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 target, RTE_UINT32);
-static cmdline_parse_token_num_t cmd_ptype_mapping_replace_mask =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 mask, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_ptype_mapping_replace_pkt_type =
+static cmdline_parse_token_num_t cmd_show_vf_stats_vf_id =
 	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_replace_result,
-		 pkt_type, RTE_UINT32);
+		(struct cmd_show_vf_stats_result,
+		 vf_id, RTE_UINT16);
 
 static void
-cmd_ptype_mapping_replace_parsed(
+cmd_show_vf_stats_parsed(
 	void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_ptype_mapping_replace_result *res = parsed_result;
+	struct cmd_show_vf_stats_result *res = parsed_result;
+	struct rte_eth_stats stats;
 	int ret = -ENOTSUP;
+	static const char *nic_stats_border = "########################";
 
 	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
 		return;
 
+	memset(&stats, 0, sizeof(stats));
+
 #ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_ptype_mapping_replace(res->port_id,
-					res->target,
-					res->mask,
-					res->pkt_type);
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_i40e_get_vf_stats(res->port_id,
+						res->vf_id,
+						&stats);
+#endif
+#ifdef RTE_NET_BNXT
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_bnxt_get_vf_stats(res->port_id,
+						res->vf_id,
+						&stats);
 #endif
 
 	switch (ret) {
 	case 0:
 		break;
 	case -EINVAL:
-		fprintf(stderr, "invalid ptype 0x%8x or 0x%8x\n",
-			res->target, res->pkt_type);
+		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
 		break;
 	case -ENODEV:
 		fprintf(stderr, "invalid port_id %d\n", res->port_id);
@@ -15849,162 +13231,99 @@ cmd_ptype_mapping_replace_parsed(
 	default:
 		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
 	}
-}
-
-static cmdline_parse_inst_t cmd_ptype_mapping_replace = {
-	.f = cmd_ptype_mapping_replace_parsed,
-	.data = NULL,
-	.help_str =
-		"ptype mapping replace <port_id> <target> <mask> <pkt_type>",
-	.tokens = {
-		(void *)&cmd_ptype_mapping_replace_ptype,
-		(void *)&cmd_ptype_mapping_replace_mapping,
-		(void *)&cmd_ptype_mapping_replace_replace,
-		(void *)&cmd_ptype_mapping_replace_port_id,
-		(void *)&cmd_ptype_mapping_replace_target,
-		(void *)&cmd_ptype_mapping_replace_mask,
-		(void *)&cmd_ptype_mapping_replace_pkt_type,
-		NULL,
-	},
-};
-
-/* ptype mapping reset */
-
-/* Common result structure for ptype mapping reset */
-struct cmd_ptype_mapping_reset_result {
-	cmdline_fixed_string_t ptype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t reset;
-	portid_t port_id;
-};
-
-/* Common CLI fields for ptype mapping reset*/
-static cmdline_parse_token_string_t cmd_ptype_mapping_reset_ptype =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_reset_result,
-		 ptype, "ptype");
-static cmdline_parse_token_string_t cmd_ptype_mapping_reset_mapping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_reset_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_ptype_mapping_reset_reset =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_reset_result,
-		 reset, "reset");
-static cmdline_parse_token_num_t cmd_ptype_mapping_reset_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_reset_result,
-		 port_id, RTE_UINT16);
-
-static void
-cmd_ptype_mapping_reset_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_ptype_mapping_reset_result *res = parsed_result;
-	int ret = -ENOTSUP;
 
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
+	printf("\n  %s NIC statistics for port %-2d vf %-2d %s\n",
+		nic_stats_border, res->port_id, res->vf_id, nic_stats_border);
 
-#ifdef RTE_NET_I40E
-	ret = rte_pmd_i40e_ptype_mapping_reset(res->port_id);
-#endif
+	printf("  RX-packets: %-10"PRIu64" RX-missed: %-10"PRIu64" RX-bytes:  "
+	       "%-"PRIu64"\n",
+	       stats.ipackets, stats.imissed, stats.ibytes);
+	printf("  RX-errors: %-"PRIu64"\n", stats.ierrors);
+	printf("  RX-nombuf:  %-10"PRIu64"\n",
+	       stats.rx_nombuf);
+	printf("  TX-packets: %-10"PRIu64" TX-errors: %-10"PRIu64" TX-bytes:  "
+	       "%-"PRIu64"\n",
+	       stats.opackets, stats.oerrors, stats.obytes);
 
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
+	printf("  %s############################%s\n",
+			       nic_stats_border, nic_stats_border);
 }
 
-static cmdline_parse_inst_t cmd_ptype_mapping_reset = {
-	.f = cmd_ptype_mapping_reset_parsed,
+static cmdline_parse_inst_t cmd_show_vf_stats = {
+	.f = cmd_show_vf_stats_parsed,
 	.data = NULL,
-	.help_str = "ptype mapping reset <port_id>",
+	.help_str = "show vf stats <port_id> <vf_id>",
 	.tokens = {
-		(void *)&cmd_ptype_mapping_reset_ptype,
-		(void *)&cmd_ptype_mapping_reset_mapping,
-		(void *)&cmd_ptype_mapping_reset_reset,
-		(void *)&cmd_ptype_mapping_reset_port_id,
+		(void *)&cmd_show_vf_stats_show,
+		(void *)&cmd_show_vf_stats_vf,
+		(void *)&cmd_show_vf_stats_stats,
+		(void *)&cmd_show_vf_stats_port_id,
+		(void *)&cmd_show_vf_stats_vf_id,
 		NULL,
 	},
 };
 
-/* ptype mapping update */
+/* clear vf stats */
 
-/* Common result structure for ptype mapping update */
-struct cmd_ptype_mapping_update_result {
-	cmdline_fixed_string_t ptype;
-	cmdline_fixed_string_t mapping;
-	cmdline_fixed_string_t reset;
+/* Common result structure for clear vf stats */
+struct cmd_clear_vf_stats_result {
+	cmdline_fixed_string_t clear;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t stats;
 	portid_t port_id;
-	uint8_t hw_ptype;
-	uint32_t sw_ptype;
+	uint16_t vf_id;
 };
 
-/* Common CLI fields for ptype mapping update*/
-static cmdline_parse_token_string_t cmd_ptype_mapping_update_ptype =
+/* Common CLI fields clear vf stats*/
+static cmdline_parse_token_string_t cmd_clear_vf_stats_clear =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
-		 ptype, "ptype");
-static cmdline_parse_token_string_t cmd_ptype_mapping_update_mapping =
+		(struct cmd_clear_vf_stats_result,
+		 clear, "clear");
+static cmdline_parse_token_string_t cmd_clear_vf_stats_vf =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
-		 mapping, "mapping");
-static cmdline_parse_token_string_t cmd_ptype_mapping_update_update =
+		(struct cmd_clear_vf_stats_result,
+		 vf, "vf");
+static cmdline_parse_token_string_t cmd_clear_vf_stats_stats =
 	TOKEN_STRING_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
-		 reset, "update");
-static cmdline_parse_token_num_t cmd_ptype_mapping_update_port_id =
+		(struct cmd_clear_vf_stats_result,
+		 stats, "stats");
+static cmdline_parse_token_num_t cmd_clear_vf_stats_port_id =
 	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
+		(struct cmd_clear_vf_stats_result,
 		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_ptype_mapping_update_hw_ptype =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
-		 hw_ptype, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_ptype_mapping_update_sw_ptype =
+static cmdline_parse_token_num_t cmd_clear_vf_stats_vf_id =
 	TOKEN_NUM_INITIALIZER
-		(struct cmd_ptype_mapping_update_result,
-		 sw_ptype, RTE_UINT32);
+		(struct cmd_clear_vf_stats_result,
+		 vf_id, RTE_UINT16);
 
 static void
-cmd_ptype_mapping_update_parsed(
+cmd_clear_vf_stats_parsed(
 	void *parsed_result,
 	__rte_unused struct cmdline *cl,
 	__rte_unused void *data)
 {
-	struct cmd_ptype_mapping_update_result *res = parsed_result;
+	struct cmd_clear_vf_stats_result *res = parsed_result;
 	int ret = -ENOTSUP;
-#ifdef RTE_NET_I40E
-	struct rte_pmd_i40e_ptype_mapping mapping;
-#endif
+
 	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
 		return;
 
 #ifdef RTE_NET_I40E
-	mapping.hw_ptype = res->hw_ptype;
-	mapping.sw_ptype = res->sw_ptype;
-	ret = rte_pmd_i40e_ptype_mapping_update(res->port_id,
-						&mapping,
-						1,
-						0);
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_i40e_reset_vf_stats(res->port_id,
+						  res->vf_id);
+#endif
+#ifdef RTE_NET_BNXT
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_bnxt_reset_vf_stats(res->port_id,
+						  res->vf_id);
 #endif
 
 	switch (ret) {
 	case 0:
 		break;
 	case -EINVAL:
-		fprintf(stderr, "invalid ptype 0x%8x\n", res->sw_ptype);
+		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
 		break;
 	case -ENODEV:
 		fprintf(stderr, "invalid port_id %d\n", res->port_id);
@@ -16017,17 +13336,16 @@ cmd_ptype_mapping_update_parsed(
 	}
 }
 
-static cmdline_parse_inst_t cmd_ptype_mapping_update = {
-	.f = cmd_ptype_mapping_update_parsed,
+static cmdline_parse_inst_t cmd_clear_vf_stats = {
+	.f = cmd_clear_vf_stats_parsed,
 	.data = NULL,
-	.help_str = "ptype mapping update <port_id> <hw_ptype> <sw_ptype>",
+	.help_str = "clear vf stats <port_id> <vf_id>",
 	.tokens = {
-		(void *)&cmd_ptype_mapping_update_ptype,
-		(void *)&cmd_ptype_mapping_update_mapping,
-		(void *)&cmd_ptype_mapping_update_update,
-		(void *)&cmd_ptype_mapping_update_port_id,
-		(void *)&cmd_ptype_mapping_update_hw_ptype,
-		(void *)&cmd_ptype_mapping_update_sw_ptype,
+		(void *)&cmd_clear_vf_stats_clear,
+		(void *)&cmd_clear_vf_stats_vf,
+		(void *)&cmd_clear_vf_stats_stats,
+		(void *)&cmd_clear_vf_stats_port_id,
+		(void *)&cmd_clear_vf_stats_vf_id,
 		NULL,
 	},
 };
@@ -18046,9 +15364,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_cleanup_txq_mbufs,
 	(cmdline_parse_inst_t *)&cmd_dump,
 	(cmdline_parse_inst_t *)&cmd_dump_one,
-#ifdef RTE_NET_I40E
-	(cmdline_parse_inst_t *)&cmd_add_del_raw_flow_director,
-#endif
 	(cmdline_parse_inst_t *)&cmd_set_flow_director_ip_mask,
 	(cmdline_parse_inst_t *)&cmd_set_flow_director_mac_vlan_mask,
 	(cmdline_parse_inst_t *)&cmd_set_flow_director_tunnel_mask,
@@ -18085,14 +15400,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_vf_rate_limit,
 	(cmdline_parse_inst_t *)&cmd_vf_rxvlan_filter,
 	(cmdline_parse_inst_t *)&cmd_set_vf_mac_addr,
-	(cmdline_parse_inst_t *)&cmd_set_vf_promisc,
-	(cmdline_parse_inst_t *)&cmd_set_vf_allmulti,
-	(cmdline_parse_inst_t *)&cmd_set_vf_broadcast,
-	(cmdline_parse_inst_t *)&cmd_set_vf_vlan_tag,
-	(cmdline_parse_inst_t *)&cmd_vf_max_bw,
-	(cmdline_parse_inst_t *)&cmd_vf_tc_min_bw,
-	(cmdline_parse_inst_t *)&cmd_vf_tc_max_bw,
-	(cmdline_parse_inst_t *)&cmd_strict_link_prio,
 	(cmdline_parse_inst_t *)&cmd_tc_min_bw,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan_tos_ttl,
@@ -18113,29 +15420,10 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_mplsoudp_decap_with_vlan,
 	(cmdline_parse_inst_t *)&cmd_set_conntrack_common,
 	(cmdline_parse_inst_t *)&cmd_set_conntrack_dir,
-	(cmdline_parse_inst_t *)&cmd_ddp_add,
-	(cmdline_parse_inst_t *)&cmd_ddp_del,
-	(cmdline_parse_inst_t *)&cmd_ddp_get_list,
-	(cmdline_parse_inst_t *)&cmd_ddp_get_info,
-	(cmdline_parse_inst_t *)&cmd_cfg_input_set,
-	(cmdline_parse_inst_t *)&cmd_clear_input_set,
 	(cmdline_parse_inst_t *)&cmd_show_vf_stats,
 	(cmdline_parse_inst_t *)&cmd_clear_vf_stats,
 	(cmdline_parse_inst_t *)&cmd_show_port_supported_ptypes,
 	(cmdline_parse_inst_t *)&cmd_set_port_ptypes,
-	(cmdline_parse_inst_t *)&cmd_ptype_mapping_get,
-	(cmdline_parse_inst_t *)&cmd_ptype_mapping_replace,
-	(cmdline_parse_inst_t *)&cmd_ptype_mapping_reset,
-	(cmdline_parse_inst_t *)&cmd_ptype_mapping_update,
-
-	(cmdline_parse_inst_t *)&cmd_pctype_mapping_get,
-	(cmdline_parse_inst_t *)&cmd_pctype_mapping_reset,
-	(cmdline_parse_inst_t *)&cmd_pctype_mapping_update,
-	(cmdline_parse_inst_t *)&cmd_queue_region,
-	(cmdline_parse_inst_t *)&cmd_region_flowtype,
-	(cmdline_parse_inst_t *)&cmd_user_priority_region,
-	(cmdline_parse_inst_t *)&cmd_flush_queue_region,
-	(cmdline_parse_inst_t *)&cmd_show_queue_region_info_all,
 	(cmdline_parse_inst_t *)&cmd_show_port_tm_cap,
 	(cmdline_parse_inst_t *)&cmd_show_port_tm_level_cap,
 	(cmdline_parse_inst_t *)&cmd_show_port_tm_node_cap,
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 82a1ff85b8..62833fe97c 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -6302,49 +6302,6 @@ close_file(uint8_t *buf)
 	return -1;
 }
 
-void
-port_queue_region_info_display(portid_t port_id, void *buf)
-{
-#ifdef RTE_NET_I40E
-	uint16_t i, j;
-	struct rte_pmd_i40e_queue_regions *info =
-		(struct rte_pmd_i40e_queue_regions *)buf;
-	static const char *queue_region_info_stats_border = "-------";
-
-	if (!info->queue_region_number)
-		printf("there is no region has been set before");
-
-	printf("\n	%s All queue region info for port=%2d %s",
-			queue_region_info_stats_border, port_id,
-			queue_region_info_stats_border);
-	printf("\n	queue_region_number: %-14u \n",
-			info->queue_region_number);
-
-	for (i = 0; i < info->queue_region_number; i++) {
-		printf("\n	region_id: %-14u queue_number: %-14u "
-			"queue_start_index: %-14u \n",
-			info->region[i].region_id,
-			info->region[i].queue_num,
-			info->region[i].queue_start_index);
-
-		printf("  user_priority_num is	%-14u :",
-					info->region[i].user_priority_num);
-		for (j = 0; j < info->region[i].user_priority_num; j++)
-			printf(" %-14u ", info->region[i].user_priority[j]);
-
-		printf("\n	flowtype_num is  %-14u :",
-				info->region[i].flowtype_num);
-		for (j = 0; j < info->region[i].flowtype_num; j++)
-			printf(" %-14u ", info->region[i].hw_flowtype[j]);
-	}
-#else
-	RTE_SET_USED(port_id);
-	RTE_SET_USED(buf);
-#endif
-
-	printf("\n\n");
-}
-
 void
 show_macs(portid_t port_id)
 {
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index ab333c7324..eeefb5e70f 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -1147,8 +1147,6 @@ uint8_t *open_file(const char *file_path, uint32_t *size);
 int save_file(const char *file_path, uint8_t *buf, uint32_t size);
 int close_file(uint8_t *buf);
 
-void port_queue_region_info_display(portid_t port_id, void *buf);
-
 enum print_warning {
 	ENABLED_WARN = 0,
 	DISABLED_WARN
diff --git a/doc/guides/nics/i40e.rst b/doc/guides/nics/i40e.rst
index aedb1afc4b..a7b51618b0 100644
--- a/doc/guides/nics/i40e.rst
+++ b/doc/guides/nics/i40e.rst
@@ -568,8 +568,7 @@ of the region index, queue number, queue start index, user priority, traffic
 classes and so on. Depending on commands from the command line, it will call
 i40e private APIs and start the process of setting or flushing the queue
 region configuration. As this feature is specific for i40e only private
-APIs are used. These new ``test_pmd`` commands are as shown below. For
-details please refer to :doc:`../testpmd_app_ug/index`.
+APIs are used.
 
 .. code-block:: console
 
@@ -761,6 +760,189 @@ Mirror rule limitation for X722
 
 Due to firmware restriction of X722, the same VSI cannot have more than one mirror rule.
 
+.. _net_i40e_testpmd_commands:
+
+Testpmd driver specific commands
+--------------------------------
+
+Some i40e driver specific features are integrated in testpmd.
+
+RSS queue region
+~~~~~~~~~~~~~~~~
+
+Set RSS queue region span on a port::
+
+   testpmd> set port (port_id) queue-region region_id (value) \
+		queue_start_index (value) queue_num (value)
+
+Set flowtype mapping on a RSS queue region on a port::
+
+   testpmd> set port (port_id) queue-region region_id (value) flowtype (value)
+
+where:
+
+* For the flowtype(pctype) of packet,the specific index for each type has
+  been defined in file i40e_type.h as enum i40e_filter_pctype.
+
+Set user priority mapping on a RSS queue region on a port::
+
+   testpmd> set port (port_id) queue-region UP (value) region_id (value)
+
+Flush all queue region related configuration on a port::
+
+   testpmd> set port (port_id) queue-region flush (on|off)
+
+where:
+
+* ``on``: is just an enable function which server for other configuration,
+  it is for all configuration about queue region from up layer,
+  at first will only keep in DPDK software stored in driver,
+  only after "flush on", it commit all configuration to HW.
+
+* ``"off``: is just clean all configuration about queue region just now,
+  and restore all to DPDK i40e driver default config when start up.
+
+Show all queue region related configuration info on a port::
+
+   testpmd> show port (port_id) queue-region
+
+.. note::
+
+  Queue region only support on PF by now, so these command is
+  only for configuration of queue region on PF port.
+
+set promisc (for VF)
+~~~~~~~~~~~~~~~~~~~~
+
+Set the unicast promiscuous mode for a VF from PF.
+It's supported by Intel i40e NICs now.
+In promiscuous mode packets are not dropped if they aren't for the specified MAC address::
+
+   testpmd> set vf promisc (port_id) (vf_id) (on|off)
+
+set allmulticast (for VF)
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set the multicast promiscuous mode for a VF from PF.
+It's supported by Intel i40e NICs now.
+In promiscuous mode packets are not dropped if they aren't for the specified MAC address::
+
+   testpmd> set vf allmulti (port_id) (vf_id) (on|off)
+
+set broadcast mode (for VF)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set broadcast mode for a VF from the PF::
+
+   testpmd> set vf broadcast (port_id) (vf_id) (on|off)
+
+vlan set tag (for VF)
+~~~~~~~~~~~~~~~~~~~~~
+
+Set VLAN tag for a VF from the PF::
+
+   testpmd> set vf vlan tag (port_id) (vf_id) (on|off)
+
+set tx max bandwidth (for VF)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set TX max absolute bandwidth (Mbps) for a VF from PF::
+
+   testpmd> set vf tx max-bandwidth (port_id) (vf_id) (max_bandwidth)
+
+set tc tx min bandwidth (for VF)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set all TCs' TX min relative bandwidth (%) for a VF from PF::
+
+   testpmd> set vf tc tx min-bandwidth (port_id) (vf_id) (bw1, bw2, ...)
+
+set tc tx max bandwidth (for VF)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set a TC's TX max absolute bandwidth (Mbps) for a VF from PF::
+
+   testpmd> set vf tc tx max-bandwidth (port_id) (vf_id) (tc_no) (max_bandwidth)
+
+set tc strict link priority mode
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set some TCs' strict link priority mode on a physical port::
+
+   testpmd> set tx strict-link-priority (port_id) (tc_bitmap)
+
+ddp add
+~~~~~~~
+
+Load a dynamic device personalization (DDP) profile and store backup profile::
+
+   testpmd> ddp add (port_id) (profile_path[,backup_profile_path])
+
+ddp del
+~~~~~~~
+
+Delete a dynamic device personalization profile and restore backup profile::
+
+   testpmd> ddp del (port_id) (backup_profile_path)
+
+ddp get list
+~~~~~~~~~~~~
+
+Get loaded dynamic device personalization (DDP) package info list::
+
+   testpmd> ddp get list (port_id)
+
+ddp get info
+~~~~~~~~~~~~
+
+Display information about dynamic device personalization (DDP) profile::
+
+   testpmd> ddp get info (profile_path)
+
+ptype mapping
+~~~~~~~~~~~~~
+
+List all items from the ptype mapping table::
+
+   testpmd> ptype mapping get (port_id) (valid_only)
+
+Where:
+
+* ``valid_only``: A flag indicates if only list valid items(=1) or all items(=0).
+
+Replace a specific or a group of software defined ptype with a new one::
+
+   testpmd> ptype mapping replace  (port_id) (target) (mask) (pkt_type)
+
+where:
+
+* ``target``: A specific software ptype or a mask to represent a group of software ptypes.
+
+* ``mask``: A flag indicate if "target" is a specific software ptype(=0) or a ptype mask(=1).
+
+* ``pkt_type``: The new software ptype to replace the old ones.
+
+Update hardware defined ptype to software defined packet type mapping table::
+
+   testpmd> ptype mapping update (port_id) (hw_ptype) (sw_ptype)
+
+where:
+
+* ``hw_ptype``: hardware ptype as the index of the ptype mapping table.
+
+* ``sw_ptype``: software ptype as the value of the ptype mapping table.
+
+Reset ptype mapping table::
+
+   testpmd> ptype mapping reset (port_id)
+
+show port pctype mapping
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+List all items from the pctype mapping table::
+
+   testpmd> show port (port_id) pctype mapping
+
 High Performance of Small Packets on 40GbE NIC
 ----------------------------------------------
 
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index f311b7d27b..dc3c63507b 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -431,20 +431,6 @@ For example::
    testpmd> read txd 0 0 4
         0x00000001 - 0x24C3C440 / 0x000F0000 - 0x2330003C
 
-ddp get list
-~~~~~~~~~~~~
-
-Get loaded dynamic device personalization (DDP) package info list::
-
-   testpmd> ddp get list (port_id)
-
-ddp get info
-~~~~~~~~~~~~
-
-Display information about dynamic device personalization (DDP) profile::
-
-   testpmd> ddp get info (profile_path)
-
 show vf stats
 ~~~~~~~~~~~~~
 
@@ -459,13 +445,6 @@ Reset VF statistics::
 
    testpmd> clear vf stats (port_id) (vf_id)
 
-show port pctype mapping
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-List all items from the pctype mapping table::
-
-   testpmd> show port (port_id) pctype mapping
-
 show rx offloading capabilities
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -997,13 +976,6 @@ Configure MACsec secure association (SA)::
    The IDX value must be 0 or 1.
    Check the NIC Datasheet for hardware limits.
 
-set broadcast mode (for VF)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set broadcast mode for a VF from the PF::
-
-   testpmd> set vf broadcast (port_id) (vf_id) (on|off)
-
 vlan set stripq
 ~~~~~~~~~~~~~~~
 
@@ -1025,13 +997,6 @@ Set VLAN insert for a VF from the PF::
 
    testpmd> set vf vlan insert (port_id) (vf_id) (vlan_id)
 
-vlan set tag (for VF)
-~~~~~~~~~~~~~~~~~~~~~
-
-Set VLAN tag for a VF from the PF::
-
-   testpmd> set vf vlan tag (port_id) (vf_id) (on|off)
-
 vlan set antispoof (for VF)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -1158,50 +1123,6 @@ Where:
 
    Check the NIC Datasheet for hardware limits.
 
-RSS queue region
-~~~~~~~~~~~~~~~~
-
-Set RSS queue region span on a port::
-
-   testpmd> set port (port_id) queue-region region_id (value) \
-		queue_start_index (value) queue_num (value)
-
-Set flowtype mapping on a RSS queue region on a port::
-
-   testpmd> set port (port_id) queue-region region_id (value) flowtype (value)
-
-where:
-
-* For the flowtype(pctype) of packet,the specific index for each type has
-  been defined in file i40e_type.h as enum i40e_filter_pctype.
-
-Set user priority mapping on a RSS queue region on a port::
-
-   testpmd> set port (port_id) queue-region UP (value) region_id (value)
-
-Flush all queue region related configuration on a port::
-
-   testpmd> set port (port_id) queue-region flush (on|off)
-
-where:
-
-* ``on``: is just an enable function which server for other configuration,
-  it is for all configuration about queue region from up layer,
-  at first will only keep in DPDK software stored in driver,
-  only after "flush on", it commit all configuration to HW.
-
-* ``"off``: is just clean all configuration about queue region just now,
-  and restore all to DPDK i40e driver default config when start up.
-
-Show all queue region related configuration info on a port::
-
-   testpmd> show port (port_id) queue-region
-
-.. note::
-
-  Queue region only support on PF by now, so these command is
-  only for configuration of queue region on PF port.
-
 csum parse-tunnel
 ~~~~~~~~~~~~~~~~~
 
@@ -1463,52 +1384,6 @@ Set the allmulti mode for a port or for all ports::
 
 Same as the ifconfig (8) option. Controls how multicast packets are handled.
 
-set promisc (for VF)
-~~~~~~~~~~~~~~~~~~~~
-
-Set the unicast promiscuous mode for a VF from PF.
-It's supported by Intel i40e NICs now.
-In promiscuous mode packets are not dropped if they aren't for the specified MAC address::
-
-   testpmd> set vf promisc (port_id) (vf_id) (on|off)
-
-set allmulticast (for VF)
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set the multicast promiscuous mode for a VF from PF.
-It's supported by Intel i40e NICs now.
-In promiscuous mode packets are not dropped if they aren't for the specified MAC address::
-
-   testpmd> set vf allmulti (port_id) (vf_id) (on|off)
-
-set tx max bandwidth (for VF)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set TX max absolute bandwidth (Mbps) for a VF from PF::
-
-   testpmd> set vf tx max-bandwidth (port_id) (vf_id) (max_bandwidth)
-
-set tc tx min bandwidth (for VF)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set all TCs' TX min relative bandwidth (%) for a VF from PF::
-
-   testpmd> set vf tc tx min-bandwidth (port_id) (vf_id) (bw1, bw2, ...)
-
-set tc tx max bandwidth (for VF)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set a TC's TX max absolute bandwidth (Mbps) for a VF from PF::
-
-   testpmd> set vf tc tx max-bandwidth (port_id) (vf_id) (tc_no) (max_bandwidth)
-
-set tc strict link priority mode
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set some TCs' strict link priority mode on a physical port::
-
-   testpmd> set tx strict-link-priority (port_id) (tc_bitmap)
-
 set tc tx min bandwidth
 ~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -1741,57 +1616,6 @@ Enable/disable E-tag based forwarding on a port::
 
    testpmd> E-tag set forwarding (on|off) port (port_id)
 
-ddp add
-~~~~~~~
-
-Load a dynamic device personalization (DDP) profile and store backup profile::
-
-   testpmd> ddp add (port_id) (profile_path[,backup_profile_path])
-
-ddp del
-~~~~~~~
-
-Delete a dynamic device personalization profile and restore backup profile::
-
-   testpmd> ddp del (port_id) (backup_profile_path)
-
-ptype mapping
-~~~~~~~~~~~~~
-
-List all items from the ptype mapping table::
-
-   testpmd> ptype mapping get (port_id) (valid_only)
-
-Where:
-
-* ``valid_only``: A flag indicates if only list valid items(=1) or all items(=0).
-
-Replace a specific or a group of software defined ptype with a new one::
-
-   testpmd> ptype mapping replace  (port_id) (target) (mask) (pkt_type)
-
-where:
-
-* ``target``: A specific software ptype or a mask to represent a group of software ptypes.
-
-* ``mask``: A flag indicate if "target" is a specific software ptype(=0) or a ptype mask(=1).
-
-* ``pkt_type``: The new software ptype to replace the old ones.
-
-Update hardware defined ptype to software defined packet type mapping table::
-
-   testpmd> ptype mapping update (port_id) (hw_ptype) (sw_ptype)
-
-where:
-
-* ``hw_ptype``: hardware ptype as the index of the ptype mapping table.
-
-* ``sw_ptype``: software ptype as the value of the ptype mapping table.
-
-Reset ptype mapping table::
-
-   testpmd> ptype mapping reset (port_id)
-
 config per port Rx offloading
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -5720,3 +5544,5 @@ Driver specific commands
 
 Some drivers provide specific features.
 See:
+
+- :ref:`net_i40e_testpmd_commands`
diff --git a/drivers/net/i40e/i40e_testpmd.c b/drivers/net/i40e/i40e_testpmd.c
new file mode 100644
index 0000000000..86159e5c1c
--- /dev/null
+++ b/drivers/net/i40e/i40e_testpmd.c
@@ -0,0 +1,2634 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2016 Intel Corporation.
+ */
+#include <rte_pmd_i40e.h>
+
+#include <cmdline_parse_num.h>
+#include <cmdline_parse_string.h>
+
+#include "testpmd.h"
+
+/* *** queue region set *** */
+struct cmd_queue_region_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t region;
+	uint8_t region_id;
+	cmdline_fixed_string_t queue_start_index;
+	uint8_t queue_id;
+	cmdline_fixed_string_t queue_num;
+	uint8_t queue_num_value;
+};
+
+static void
+cmd_queue_region_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_queue_region_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_SET;
+	region_conf.region_id = res->region_id;
+	region_conf.queue_num = res->queue_num_value;
+	region_conf.queue_start_index = res->queue_id;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+				op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "queue region config error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+static cmdline_parse_token_string_t cmd_queue_region_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_queue_region_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+		port, "port");
+static cmdline_parse_token_num_t cmd_queue_region_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_queue_region_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+		cmd, "queue-region");
+static cmdline_parse_token_string_t cmd_queue_region_id =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+		region, "region_id");
+static cmdline_parse_token_num_t cmd_queue_region_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+		region_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_queue_region_queue_start_index =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+		queue_start_index, "queue_start_index");
+static cmdline_parse_token_num_t cmd_queue_region_queue_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+		queue_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_queue_region_queue_num =
+	TOKEN_STRING_INITIALIZER(struct cmd_queue_region_result,
+		queue_num, "queue_num");
+static cmdline_parse_token_num_t cmd_queue_region_queue_num_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_queue_region_result,
+		queue_num_value, RTE_UINT8);
+
+static cmdline_parse_inst_t cmd_queue_region = {
+	.f = cmd_queue_region_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region region_id <value> "
+		"queue_start_index <value> queue_num <value>: Set a queue region",
+	.tokens = {
+		(void *)&cmd_queue_region_set,
+		(void *)&cmd_queue_region_port,
+		(void *)&cmd_queue_region_port_id,
+		(void *)&cmd_queue_region_cmd,
+		(void *)&cmd_queue_region_id,
+		(void *)&cmd_queue_region_index,
+		(void *)&cmd_queue_region_queue_start_index,
+		(void *)&cmd_queue_region_queue_id,
+		(void *)&cmd_queue_region_queue_num,
+		(void *)&cmd_queue_region_queue_num_value,
+		NULL,
+	},
+};
+
+/* *** queue region and flowtype set *** */
+struct cmd_region_flowtype_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t region;
+	uint8_t region_id;
+	cmdline_fixed_string_t flowtype;
+	uint8_t flowtype_id;
+};
+
+static void
+cmd_region_flowtype_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_region_flowtype_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_FLOWTYPE_SET;
+	region_conf.region_id = res->region_id;
+	region_conf.hw_flowtype = res->flowtype_id;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+			op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "region flowtype config error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+static cmdline_parse_token_string_t cmd_region_flowtype_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_region_flowtype_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+		port, "port");
+static cmdline_parse_token_num_t cmd_region_flowtype_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_region_flowtype_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+		cmd, "queue-region");
+static cmdline_parse_token_string_t cmd_region_flowtype_index =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+		region, "region_id");
+static cmdline_parse_token_num_t cmd_region_flowtype_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
+		region_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_region_flowtype_flow_index =
+	TOKEN_STRING_INITIALIZER(struct cmd_region_flowtype_result,
+		flowtype, "flowtype");
+static cmdline_parse_token_num_t cmd_region_flowtype_flow_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_region_flowtype_result,
+		flowtype_id, RTE_UINT8);
+static cmdline_parse_inst_t cmd_region_flowtype = {
+	.f = cmd_region_flowtype_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region region_id <value> "
+		"flowtype <value>: Set a flowtype region index",
+	.tokens = {
+		(void *)&cmd_region_flowtype_set,
+		(void *)&cmd_region_flowtype_port,
+		(void *)&cmd_region_flowtype_port_index,
+		(void *)&cmd_region_flowtype_cmd,
+		(void *)&cmd_region_flowtype_index,
+		(void *)&cmd_region_flowtype_id,
+		(void *)&cmd_region_flowtype_flow_index,
+		(void *)&cmd_region_flowtype_flow_id,
+		NULL,
+	},
+};
+
+/* *** User Priority (UP) to queue region (region_id) set *** */
+struct cmd_user_priority_region_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t user_priority;
+	uint8_t user_priority_id;
+	cmdline_fixed_string_t region;
+	uint8_t region_id;
+};
+
+static void
+cmd_user_priority_region_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_user_priority_region_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_USER_PRIORITY_SET;
+	region_conf.user_priority = res->user_priority_id;
+	region_conf.region_id = res->region_id;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+				op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "user_priority region config error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+static cmdline_parse_token_string_t cmd_user_priority_region_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_user_priority_region_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+		port, "port");
+static cmdline_parse_token_num_t cmd_user_priority_region_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_user_priority_region_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+		cmd, "queue-region");
+static cmdline_parse_token_string_t cmd_user_priority_region_UP =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+		user_priority, "UP");
+static cmdline_parse_token_num_t cmd_user_priority_region_UP_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
+		user_priority_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_user_priority_region_region =
+	TOKEN_STRING_INITIALIZER(struct cmd_user_priority_region_result,
+		region, "region_id");
+static cmdline_parse_token_num_t cmd_user_priority_region_region_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_user_priority_region_result,
+		region_id, RTE_UINT8);
+
+static cmdline_parse_inst_t cmd_user_priority_region = {
+	.f = cmd_user_priority_region_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region UP <value> "
+		"region_id <value>: Set the mapping of User Priority (UP) "
+		"to queue region (region_id) ",
+	.tokens = {
+		(void *)&cmd_user_priority_region_set,
+		(void *)&cmd_user_priority_region_port,
+		(void *)&cmd_user_priority_region_port_index,
+		(void *)&cmd_user_priority_region_cmd,
+		(void *)&cmd_user_priority_region_UP,
+		(void *)&cmd_user_priority_region_UP_id,
+		(void *)&cmd_user_priority_region_region,
+		(void *)&cmd_user_priority_region_region_id,
+		NULL,
+	},
+};
+
+/* *** flush all queue region related configuration *** */
+struct cmd_flush_queue_region_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t flush;
+	cmdline_fixed_string_t what;
+};
+
+static void
+cmd_flush_queue_region_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_flush_queue_region_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_region_conf region_conf;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&region_conf, 0, sizeof(region_conf));
+
+	if (strcmp(res->what, "on") == 0)
+		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_ON;
+	else
+		op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_OFF;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+				op_type, &region_conf);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "queue region config flush error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+static cmdline_parse_token_string_t cmd_flush_queue_region_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_flush_queue_region_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+		port, "port");
+static cmdline_parse_token_num_t cmd_flush_queue_region_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_flush_queue_region_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_flush_queue_region_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+		cmd, "queue-region");
+static cmdline_parse_token_string_t cmd_flush_queue_region_flush =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+		flush, "flush");
+static cmdline_parse_token_string_t cmd_flush_queue_region_what =
+	TOKEN_STRING_INITIALIZER(struct cmd_flush_queue_region_result,
+		what, "on#off");
+
+static cmdline_parse_inst_t cmd_flush_queue_region = {
+	.f = cmd_flush_queue_region_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> queue-region flush on|off"
+		": flush all queue region related configuration",
+	.tokens = {
+		(void *)&cmd_flush_queue_region_set,
+		(void *)&cmd_flush_queue_region_port,
+		(void *)&cmd_flush_queue_region_port_index,
+		(void *)&cmd_flush_queue_region_cmd,
+		(void *)&cmd_flush_queue_region_flush,
+		(void *)&cmd_flush_queue_region_what,
+		NULL,
+	},
+};
+
+/* *** get all queue region related configuration info *** */
+struct cmd_show_queue_region_info {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t cmd;
+};
+
+static void
+port_queue_region_info_display(portid_t port_id, void *buf)
+{
+	uint16_t i, j;
+	struct rte_pmd_i40e_queue_regions *info =
+		(struct rte_pmd_i40e_queue_regions *)buf;
+	static const char *queue_region_info_stats_border = "-------";
+
+	if (!info->queue_region_number)
+		printf("there is no region has been set before");
+
+	printf("\n	%s All queue region info for port=%2d %s",
+			queue_region_info_stats_border, port_id,
+			queue_region_info_stats_border);
+	printf("\n	queue_region_number: %-14u\n",
+			info->queue_region_number);
+
+	for (i = 0; i < info->queue_region_number; i++) {
+		printf("\n	region_id: %-14u queue_number: %-14u "
+			"queue_start_index: %-14u\n",
+			info->region[i].region_id,
+			info->region[i].queue_num,
+			info->region[i].queue_start_index);
+
+		printf("  user_priority_num is	%-14u :",
+					info->region[i].user_priority_num);
+		for (j = 0; j < info->region[i].user_priority_num; j++)
+			printf(" %-14u ", info->region[i].user_priority[j]);
+
+		printf("\n	flowtype_num is  %-14u :",
+				info->region[i].flowtype_num);
+		for (j = 0; j < info->region[i].flowtype_num; j++)
+			printf(" %-14u ", info->region[i].hw_flowtype[j]);
+	}
+
+	printf("\n\n");
+}
+
+static void
+cmd_show_queue_region_info_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_show_queue_region_info *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_queue_regions rte_pmd_regions;
+	enum rte_pmd_i40e_queue_region_op op_type;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	memset(&rte_pmd_regions, 0, sizeof(rte_pmd_regions));
+
+	op_type = RTE_PMD_I40E_RSS_QUEUE_REGION_INFO_GET;
+
+	ret = rte_pmd_i40e_rss_queue_region_conf(res->port_id,
+					op_type, &rte_pmd_regions);
+
+	port_queue_region_info_display(res->port_id, &rte_pmd_regions);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented or supported\n");
+		break;
+	default:
+		fprintf(stderr, "queue region config info show error: (%s)\n",
+			strerror(-ret));
+	}
+}
+
+static cmdline_parse_token_string_t cmd_show_queue_region_info_get =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
+		show, "show");
+static cmdline_parse_token_string_t cmd_show_queue_region_info_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
+		port, "port");
+static cmdline_parse_token_num_t cmd_show_queue_region_info_port_index =
+	TOKEN_NUM_INITIALIZER(struct cmd_show_queue_region_info,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_show_queue_region_info_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_queue_region_info,
+		cmd, "queue-region");
+
+static cmdline_parse_inst_t cmd_show_queue_region_info_all = {
+	.f = cmd_show_queue_region_info_parsed,
+	.data = NULL,
+	.help_str = "show port <port_id> queue-region"
+		": show all queue region related configuration info",
+	.tokens = {
+		(void *)&cmd_show_queue_region_info_get,
+		(void *)&cmd_show_queue_region_info_port,
+		(void *)&cmd_show_queue_region_info_port_index,
+		(void *)&cmd_show_queue_region_info_cmd,
+		NULL,
+	},
+};
+
+static uint16_t
+str2flowtype(char *string)
+{
+	uint8_t i = 0;
+	static const struct {
+		char str[32];
+		uint16_t type;
+	} flowtype_str[] = {
+		{"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},
+		{"ipv6-ex", RTE_ETH_FLOW_IPV6_EX},
+		{"ipv6-tcp-ex", RTE_ETH_FLOW_IPV6_TCP_EX},
+		{"ipv6-udp-ex", RTE_ETH_FLOW_IPV6_UDP_EX},
+		{"gtpu", RTE_ETH_FLOW_GTPU},
+	};
+
+	for (i = 0; i < RTE_DIM(flowtype_str); i++) {
+		if (!strcmp(flowtype_str[i].str, string))
+			return flowtype_str[i].type;
+	}
+
+	if (isdigit(string[0]) && atoi(string) > 0 && atoi(string) < 64)
+		return (uint16_t)atoi(string);
+
+	return RTE_ETH_FLOW_UNKNOWN;
+}
+
+/* *** deal with flow director filter *** */
+struct cmd_flow_director_result {
+	cmdline_fixed_string_t flow_director_filter;
+	portid_t port_id;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t mode_value;
+	cmdline_fixed_string_t ops;
+	cmdline_fixed_string_t flow;
+	cmdline_fixed_string_t flow_type;
+	cmdline_fixed_string_t drop;
+	cmdline_fixed_string_t queue;
+	uint16_t queue_id;
+	cmdline_fixed_string_t fd_id;
+	uint32_t fd_id_value;
+	cmdline_fixed_string_t packet;
+	char filepath[];
+};
+
+static void
+cmd_flow_director_filter_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_flow_director_result *res = parsed_result;
+	int ret = 0;
+	struct rte_pmd_i40e_flow_type_mapping
+			mapping[RTE_PMD_I40E_FLOW_TYPE_MAX];
+	struct rte_pmd_i40e_pkt_template_conf conf;
+	uint16_t flow_type = str2flowtype(res->flow_type);
+	uint16_t i, port = res->port_id;
+	uint8_t add;
+
+	memset(&conf, 0, sizeof(conf));
+
+	if (flow_type == RTE_ETH_FLOW_UNKNOWN) {
+		fprintf(stderr, "Invalid flow type specified.\n");
+		return;
+	}
+	ret = rte_pmd_i40e_flow_type_mapping_get(res->port_id,
+						 mapping);
+	if (ret)
+		return;
+	if (mapping[flow_type].pctype == 0ULL) {
+		fprintf(stderr, "Invalid flow type specified.\n");
+		return;
+	}
+	for (i = 0; i < RTE_PMD_I40E_PCTYPE_MAX; i++) {
+		if (mapping[flow_type].pctype & (1ULL << i)) {
+			conf.input.pctype = i;
+			break;
+		}
+	}
+
+	conf.input.packet = open_file(res->filepath,
+				&conf.input.length);
+	if (!conf.input.packet)
+		return;
+	if (!strcmp(res->drop, "drop"))
+		conf.action.behavior =
+			RTE_PMD_I40E_PKT_TEMPLATE_REJECT;
+	else
+		conf.action.behavior =
+			RTE_PMD_I40E_PKT_TEMPLATE_ACCEPT;
+	conf.action.report_status =
+			RTE_PMD_I40E_PKT_TEMPLATE_REPORT_ID;
+	conf.action.rx_queue = res->queue_id;
+	conf.soft_id = res->fd_id_value;
+	add = strcmp(res->ops, "del") ? 1 : 0;
+	ret = rte_pmd_i40e_flow_add_del_packet_template(port,
+							&conf,
+							add);
+	if (ret < 0)
+		fprintf(stderr, "flow director config error: (%s)\n",
+			strerror(-ret));
+	close_file(conf.input.packet);
+}
+
+static cmdline_parse_token_string_t cmd_flow_director_filter =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		flow_director_filter, "flow_director_filter");
+static cmdline_parse_token_num_t cmd_flow_director_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_flow_director_ops =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		ops, "add#del#update");
+static cmdline_parse_token_string_t cmd_flow_director_flow =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		flow, "flow");
+static cmdline_parse_token_string_t cmd_flow_director_flow_type =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		flow_type, NULL);
+static cmdline_parse_token_string_t cmd_flow_director_drop =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		drop, "drop#fwd");
+static cmdline_parse_token_string_t cmd_flow_director_queue =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		queue, "queue");
+static cmdline_parse_token_num_t cmd_flow_director_queue_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+		queue_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_flow_director_fd_id =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		fd_id, "fd_id");
+static cmdline_parse_token_num_t cmd_flow_director_fd_id_value =
+	TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+		fd_id_value, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_flow_director_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		mode, "mode");
+static cmdline_parse_token_string_t cmd_flow_director_mode_raw =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		mode_value, "raw");
+static cmdline_parse_token_string_t cmd_flow_director_packet =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		packet, "packet");
+static cmdline_parse_token_string_t cmd_flow_director_filepath =
+	TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+		filepath, NULL);
+
+static cmdline_parse_inst_t cmd_add_del_raw_flow_director = {
+	.f = cmd_flow_director_filter_parsed,
+	.data = NULL,
+	.help_str = "flow_director_filter ... : Add or delete a raw flow "
+		"director entry on NIC",
+	.tokens = {
+		(void *)&cmd_flow_director_filter,
+		(void *)&cmd_flow_director_port_id,
+		(void *)&cmd_flow_director_mode,
+		(void *)&cmd_flow_director_mode_raw,
+		(void *)&cmd_flow_director_ops,
+		(void *)&cmd_flow_director_flow,
+		(void *)&cmd_flow_director_flow_type,
+		(void *)&cmd_flow_director_drop,
+		(void *)&cmd_flow_director_queue,
+		(void *)&cmd_flow_director_queue_id,
+		(void *)&cmd_flow_director_fd_id,
+		(void *)&cmd_flow_director_fd_id_value,
+		(void *)&cmd_flow_director_packet,
+		(void *)&cmd_flow_director_filepath,
+		NULL,
+	},
+};
+
+/* VF unicast promiscuous mode configuration */
+
+/* Common result structure for VF unicast promiscuous mode */
+struct cmd_vf_promisc_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t promisc;
+	portid_t port_id;
+	uint32_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for VF unicast promiscuous mode enable disable */
+static cmdline_parse_token_string_t cmd_vf_promisc_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_promisc_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_vf_promisc_vf =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_promisc_result,
+		vf, "vf");
+static cmdline_parse_token_string_t cmd_vf_promisc_promisc =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_promisc_result,
+		promisc, "promisc");
+static cmdline_parse_token_num_t cmd_vf_promisc_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_promisc_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_promisc_vf_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_promisc_result,
+		vf_id, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_vf_promisc_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_promisc_result,
+		on_off, "on#off");
+
+static void
+cmd_set_vf_promisc_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_promisc_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_unicast_promisc(res->port_id, res->vf_id, is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_promisc = {
+	.f = cmd_set_vf_promisc_parsed,
+	.data = NULL,
+	.help_str = "set vf promisc <port_id> <vf_id> on|off: "
+		"Set unicast promiscuous mode for a VF from the PF",
+	.tokens = {
+		(void *)&cmd_vf_promisc_set,
+		(void *)&cmd_vf_promisc_vf,
+		(void *)&cmd_vf_promisc_promisc,
+		(void *)&cmd_vf_promisc_port_id,
+		(void *)&cmd_vf_promisc_vf_id,
+		(void *)&cmd_vf_promisc_on_off,
+		NULL,
+	},
+};
+
+/* VF multicast promiscuous mode configuration */
+
+/* Common result structure for VF multicast promiscuous mode */
+struct cmd_vf_allmulti_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t allmulti;
+	portid_t port_id;
+	uint32_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for VF multicast promiscuous mode enable disable */
+static cmdline_parse_token_string_t cmd_vf_allmulti_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_allmulti_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_vf_allmulti_vf =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_allmulti_result,
+		vf, "vf");
+static cmdline_parse_token_string_t cmd_vf_allmulti_allmulti =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_allmulti_result,
+		allmulti, "allmulti");
+static cmdline_parse_token_num_t cmd_vf_allmulti_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_allmulti_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_allmulti_vf_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_allmulti_result,
+		vf_id, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_vf_allmulti_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_allmulti_result,
+		on_off, "on#off");
+
+static void
+cmd_set_vf_allmulti_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_allmulti_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_multicast_promisc(res->port_id, res->vf_id, is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d\n", res->vf_id);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_allmulti = {
+	.f = cmd_set_vf_allmulti_parsed,
+	.data = NULL,
+	.help_str = "set vf allmulti <port_id> <vf_id> on|off: "
+		"Set multicast promiscuous mode for a VF from the PF",
+	.tokens = {
+		(void *)&cmd_vf_allmulti_set,
+		(void *)&cmd_vf_allmulti_vf,
+		(void *)&cmd_vf_allmulti_allmulti,
+		(void *)&cmd_vf_allmulti_port_id,
+		(void *)&cmd_vf_allmulti_vf_id,
+		(void *)&cmd_vf_allmulti_on_off,
+		NULL,
+	},
+};
+
+/* vf broadcast mode configuration */
+
+/* Common result structure for vf broadcast */
+struct cmd_set_vf_broadcast_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t broadcast;
+	portid_t port_id;
+	uint16_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for vf broadcast enable disable */
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_broadcast_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_vf =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_broadcast_result,
+		vf, "vf");
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_broadcast =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_broadcast_result,
+		broadcast, "broadcast");
+static cmdline_parse_token_num_t cmd_set_vf_broadcast_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_broadcast_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_set_vf_broadcast_vf_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_broadcast_result,
+		vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_vf_broadcast_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_broadcast_result,
+		on_off, "on#off");
+
+static void
+cmd_set_vf_broadcast_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_set_vf_broadcast_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_broadcast(res->port_id, res->vf_id, is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
+			res->vf_id, is_on);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_broadcast = {
+	.f = cmd_set_vf_broadcast_parsed,
+	.data = NULL,
+	.help_str = "set vf broadcast <port_id> <vf_id> on|off",
+	.tokens = {
+		(void *)&cmd_set_vf_broadcast_set,
+		(void *)&cmd_set_vf_broadcast_vf,
+		(void *)&cmd_set_vf_broadcast_broadcast,
+		(void *)&cmd_set_vf_broadcast_port_id,
+		(void *)&cmd_set_vf_broadcast_vf_id,
+		(void *)&cmd_set_vf_broadcast_on_off,
+		NULL,
+	},
+};
+
+/* vf vlan tag configuration */
+
+/* Common result structure for vf vlan tag */
+struct cmd_set_vf_vlan_tag_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t vlan;
+	cmdline_fixed_string_t tag;
+	portid_t port_id;
+	uint16_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for vf vlan tag enable disable */
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_vlan_tag_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vf =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_vlan_tag_result,
+		vf, "vf");
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_vlan =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_vlan_tag_result,
+		vlan, "vlan");
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_tag =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_vlan_tag_result,
+		tag, "tag");
+static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_vlan_tag_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_set_vf_vlan_tag_vf_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_vf_vlan_tag_result,
+		vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_set_vf_vlan_tag_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_vf_vlan_tag_result,
+		on_off, "on#off");
+
+static void
+cmd_set_vf_vlan_tag_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_set_vf_vlan_tag_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	__rte_unused int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_vlan_tag(res->port_id, res->vf_id, is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
+			res->vf_id, is_on);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_vlan_tag = {
+	.f = cmd_set_vf_vlan_tag_parsed,
+	.data = NULL,
+	.help_str = "set vf vlan tag <port_id> <vf_id> on|off",
+	.tokens = {
+		(void *)&cmd_set_vf_vlan_tag_set,
+		(void *)&cmd_set_vf_vlan_tag_vf,
+		(void *)&cmd_set_vf_vlan_tag_vlan,
+		(void *)&cmd_set_vf_vlan_tag_tag,
+		(void *)&cmd_set_vf_vlan_tag_port_id,
+		(void *)&cmd_set_vf_vlan_tag_vf_id,
+		(void *)&cmd_set_vf_vlan_tag_on_off,
+		NULL,
+	},
+};
+
+/* Common definition of VF and TC TX bandwidth configuration */
+struct cmd_vf_tc_bw_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t tc;
+	cmdline_fixed_string_t tx;
+	cmdline_fixed_string_t max_bw;
+	cmdline_fixed_string_t min_bw;
+	cmdline_fixed_string_t strict_link_prio;
+	portid_t port_id;
+	uint16_t vf_id;
+	uint8_t tc_no;
+	uint32_t bw;
+	cmdline_fixed_string_t bw_list;
+	uint8_t tc_map;
+};
+
+static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		tc, "tc");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		tx, "tx");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_strict_link_prio =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		strict_link_prio, "strict-link-priority");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_max_bw =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		max_bw, "max-bandwidth");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		min_bw, "min-bandwidth");
+static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_tc_bw_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_tc_bw_vf_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_tc_bw_result,
+		vf_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_no =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_tc_bw_result,
+		tc_no, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_vf_tc_bw_bw =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_tc_bw_result,
+		bw, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		bw_list, NULL);
+static cmdline_parse_token_num_t cmd_vf_tc_bw_tc_map =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_tc_bw_result,
+		tc_map, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_vf_tc_bw_vf =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		vf, "vf");
+
+/* VF max bandwidth setting */
+static void
+cmd_vf_max_bw_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_max_bw(res->port_id,
+					 res->vf_id, res->bw);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or bandwidth %d\n",
+			res->vf_id, res->bw);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_vf_max_bw = {
+	.f = cmd_vf_max_bw_parsed,
+	.data = NULL,
+	.help_str = "set vf tx max-bandwidth <port_id> <vf_id> <bandwidth>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_vf,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_max_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_vf_id,
+		(void *)&cmd_vf_tc_bw_bw,
+		NULL,
+	},
+};
+
+static int
+vf_tc_min_bw_parse_bw_list(uint8_t *bw_list, uint8_t *tc_num, char *str)
+{
+	uint32_t size;
+	const char *p, *p0 = str;
+	char s[256];
+	char *end;
+	char *str_fld[16];
+	uint16_t i;
+	int ret;
+
+	p = strchr(p0, '(');
+	if (p == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	p++;
+	p0 = strchr(p, ')');
+	if (p0 == NULL) {
+		fprintf(stderr,
+			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	size = p0 - p;
+	if (size >= sizeof(s)) {
+		fprintf(stderr,
+			"The string size exceeds the internal buffer size\n");
+		return -1;
+	}
+	snprintf(s, sizeof(s), "%.*s", size, p);
+	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
+	if (ret <= 0) {
+		fprintf(stderr, "Failed to get the bandwidth list.\n");
+		return -1;
+	}
+	*tc_num = ret;
+	for (i = 0; i < ret; i++)
+		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
+
+	return 0;
+}
+
+/* TC min bandwidth setting */
+static void
+cmd_vf_tc_min_bw_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	uint8_t tc_num;
+	uint8_t bw[16];
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
+	if (ret)
+		return;
+
+	ret = rte_pmd_i40e_set_vf_tc_bw_alloc(res->port_id, res->vf_id, tc_num, bw);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or bandwidth\n", res->vf_id);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_vf_tc_min_bw = {
+	.f = cmd_vf_tc_min_bw_parsed,
+	.data = NULL,
+	.help_str = "set vf tc tx min-bandwidth <port_id> <vf_id>"
+		" <bw1, bw2, ...>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_vf,
+		(void *)&cmd_vf_tc_bw_tc,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_min_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_vf_id,
+		(void *)&cmd_vf_tc_bw_bw_list,
+		NULL,
+	},
+};
+
+/* TC max bandwidth setting */
+static void
+cmd_vf_tc_max_bw_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_vf_tc_max_bw(res->port_id, res->vf_id, res->tc_no, res->bw);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr,
+			"invalid vf_id %d, tc_no %d or bandwidth %d\n",
+			res->vf_id, res->tc_no, res->bw);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_vf_tc_max_bw = {
+	.f = cmd_vf_tc_max_bw_parsed,
+	.data = NULL,
+	.help_str = "set vf tc tx max-bandwidth <port_id> <vf_id> <tc_no>"
+		" <bandwidth>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_vf,
+		(void *)&cmd_vf_tc_bw_tc,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_max_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_vf_id,
+		(void *)&cmd_vf_tc_bw_tc_no,
+		(void *)&cmd_vf_tc_bw_bw,
+		NULL,
+	},
+};
+
+/* Strict link priority scheduling mode setting */
+static void
+cmd_strict_link_prio_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_set_tc_strict_prio(res->port_id, res->tc_map);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid tc_bitmap 0x%x\n", res->tc_map);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_strict_link_prio = {
+	.f = cmd_strict_link_prio_parsed,
+	.data = NULL,
+	.help_str = "set tx strict-link-priority <port_id> <tc_bitmap>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_strict_link_prio,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_tc_map,
+		NULL,
+	},
+};
+
+/* Load dynamic device personalization*/
+struct cmd_ddp_add_result {
+	cmdline_fixed_string_t ddp;
+	cmdline_fixed_string_t add;
+	portid_t port_id;
+	char filepath[];
+};
+
+static cmdline_parse_token_string_t cmd_ddp_add_ddp =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, ddp, "ddp");
+static cmdline_parse_token_string_t cmd_ddp_add_add =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, add, "add");
+static cmdline_parse_token_num_t cmd_ddp_add_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ddp_add_result, port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_ddp_add_filepath =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_add_result, filepath, NULL);
+
+static void
+cmd_ddp_add_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ddp_add_result *res = parsed_result;
+	uint8_t *buff;
+	uint32_t size;
+	char *filepath;
+	char *file_fld[2];
+	int file_num;
+	int ret = -ENOTSUP;
+
+	if (!all_ports_stopped()) {
+		fprintf(stderr, "Please stop all ports first\n");
+		return;
+	}
+
+	filepath = strdup(res->filepath);
+	if (filepath == NULL) {
+		fprintf(stderr, "Failed to allocate memory\n");
+		return;
+	}
+	file_num = rte_strsplit(filepath, strlen(filepath), file_fld, 2, ',');
+
+	buff = open_file(file_fld[0], &size);
+	if (!buff) {
+		free((void *)filepath);
+		return;
+	}
+
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_i40e_process_ddp_package(res->port_id, buff, size,
+			RTE_PMD_I40E_PKG_OP_WR_ADD);
+	if (ret == -EEXIST)
+		fprintf(stderr, "Profile has already existed.\n");
+	else if (ret < 0)
+		fprintf(stderr, "Failed to load profile.\n");
+	else if (file_num == 2)
+		save_file(file_fld[1], buff, size);
+
+	close_file(buff);
+	free((void *)filepath);
+}
+
+static cmdline_parse_inst_t cmd_ddp_add = {
+	.f = cmd_ddp_add_parsed,
+	.data = NULL,
+	.help_str = "ddp add <port_id> <profile_path[,backup_profile_path]>",
+	.tokens = {
+		(void *)&cmd_ddp_add_ddp,
+		(void *)&cmd_ddp_add_add,
+		(void *)&cmd_ddp_add_port_id,
+		(void *)&cmd_ddp_add_filepath,
+		NULL,
+	},
+};
+
+/* Delete dynamic device personalization*/
+struct cmd_ddp_del_result {
+	cmdline_fixed_string_t ddp;
+	cmdline_fixed_string_t del;
+	portid_t port_id;
+	char filepath[];
+};
+
+static cmdline_parse_token_string_t cmd_ddp_del_ddp =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, ddp, "ddp");
+static cmdline_parse_token_string_t cmd_ddp_del_del =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, del, "del");
+static cmdline_parse_token_num_t cmd_ddp_del_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ddp_del_result, port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_ddp_del_filepath =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_del_result, filepath, NULL);
+
+static void
+cmd_ddp_del_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ddp_del_result *res = parsed_result;
+	uint8_t *buff;
+	uint32_t size;
+	int ret = -ENOTSUP;
+
+	if (!all_ports_stopped()) {
+		fprintf(stderr, "Please stop all ports first\n");
+		return;
+	}
+
+	buff = open_file(res->filepath, &size);
+	if (!buff)
+		return;
+
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_i40e_process_ddp_package(res->port_id, buff, size,
+			RTE_PMD_I40E_PKG_OP_WR_DEL);
+	if (ret == -EACCES)
+		fprintf(stderr, "Profile does not exist.\n");
+	else if (ret < 0)
+		fprintf(stderr, "Failed to delete profile.\n");
+
+	close_file(buff);
+}
+
+static cmdline_parse_inst_t cmd_ddp_del = {
+	.f = cmd_ddp_del_parsed,
+	.data = NULL,
+	.help_str = "ddp del <port_id> <backup_profile_path>",
+	.tokens = {
+		(void *)&cmd_ddp_del_ddp,
+		(void *)&cmd_ddp_del_del,
+		(void *)&cmd_ddp_del_port_id,
+		(void *)&cmd_ddp_del_filepath,
+		NULL,
+	},
+};
+
+/* Get dynamic device personalization profile info */
+struct cmd_ddp_info_result {
+	cmdline_fixed_string_t ddp;
+	cmdline_fixed_string_t get;
+	cmdline_fixed_string_t info;
+	char filepath[];
+};
+
+static cmdline_parse_token_string_t cmd_ddp_info_ddp =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, ddp, "ddp");
+static cmdline_parse_token_string_t cmd_ddp_info_get =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, get, "get");
+static cmdline_parse_token_string_t cmd_ddp_info_info =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, info, "info");
+static cmdline_parse_token_string_t cmd_ddp_info_filepath =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_info_result, filepath, NULL);
+
+static void
+cmd_ddp_info_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ddp_info_result *res = parsed_result;
+	uint8_t *pkg;
+	uint32_t pkg_size;
+	int ret = -ENOTSUP;
+	uint32_t i, j, n;
+	uint8_t *buff;
+	uint32_t buff_size = 0;
+	struct rte_pmd_i40e_profile_info info;
+	uint32_t dev_num = 0;
+	struct rte_pmd_i40e_ddp_device_id *devs;
+	uint32_t proto_num = 0;
+	struct rte_pmd_i40e_proto_info *proto = NULL;
+	uint32_t pctype_num = 0;
+	struct rte_pmd_i40e_ptype_info *pctype;
+	uint32_t ptype_num = 0;
+	struct rte_pmd_i40e_ptype_info *ptype;
+	uint8_t proto_id;
+
+	pkg = open_file(res->filepath, &pkg_size);
+	if (!pkg)
+		return;
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+				(uint8_t *)&info, sizeof(info),
+				RTE_PMD_I40E_PKG_INFO_GLOBAL_HEADER);
+	if (!ret) {
+		printf("Global Track id:       0x%x\n", info.track_id);
+		printf("Global Version:        %d.%d.%d.%d\n",
+			info.version.major,
+			info.version.minor,
+			info.version.update,
+			info.version.draft);
+		printf("Global Package name:   %s\n\n", info.name);
+	}
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+				(uint8_t *)&info, sizeof(info),
+				RTE_PMD_I40E_PKG_INFO_HEADER);
+	if (!ret) {
+		printf("i40e Profile Track id: 0x%x\n", info.track_id);
+		printf("i40e Profile Version:  %d.%d.%d.%d\n",
+			info.version.major,
+			info.version.minor,
+			info.version.update,
+			info.version.draft);
+		printf("i40e Profile name:     %s\n\n", info.name);
+	}
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+				(uint8_t *)&buff_size, sizeof(buff_size),
+				RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES_SIZE);
+	if (!ret && buff_size) {
+		buff = (uint8_t *)malloc(buff_size);
+		if (buff) {
+			ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+						buff, buff_size,
+						RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES);
+			if (!ret)
+				printf("Package Notes:\n%s\n\n", buff);
+			free(buff);
+		}
+	}
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+				(uint8_t *)&dev_num, sizeof(dev_num),
+				RTE_PMD_I40E_PKG_INFO_DEVID_NUM);
+	if (!ret && dev_num) {
+		buff_size = dev_num * sizeof(struct rte_pmd_i40e_ddp_device_id);
+		devs = (struct rte_pmd_i40e_ddp_device_id *)malloc(buff_size);
+		if (devs) {
+			ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+						(uint8_t *)devs, buff_size,
+						RTE_PMD_I40E_PKG_INFO_DEVID_LIST);
+			if (!ret) {
+				printf("List of supported devices:\n");
+				for (i = 0; i < dev_num; i++) {
+					printf("  %04X:%04X %04X:%04X\n",
+						devs[i].vendor_dev_id >> 16,
+						devs[i].vendor_dev_id & 0xFFFF,
+						devs[i].sub_vendor_dev_id >> 16,
+						devs[i].sub_vendor_dev_id & 0xFFFF);
+				}
+				printf("\n");
+			}
+			free(devs);
+		}
+	}
+
+	/* get information about protocols and packet types */
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+		(uint8_t *)&proto_num, sizeof(proto_num),
+		RTE_PMD_I40E_PKG_INFO_PROTOCOL_NUM);
+	if (ret || !proto_num)
+		goto no_print_return;
+
+	buff_size = proto_num * sizeof(struct rte_pmd_i40e_proto_info);
+	proto = (struct rte_pmd_i40e_proto_info *)malloc(buff_size);
+	if (!proto)
+		goto no_print_return;
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)proto,
+					buff_size,
+					RTE_PMD_I40E_PKG_INFO_PROTOCOL_LIST);
+	if (!ret) {
+		printf("List of used protocols:\n");
+		for (i = 0; i < proto_num; i++)
+			printf("  %2u: %s\n", proto[i].proto_id, proto[i].name);
+		printf("\n");
+	}
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size,
+		(uint8_t *)&pctype_num, sizeof(pctype_num),
+		RTE_PMD_I40E_PKG_INFO_PCTYPE_NUM);
+	if (ret || !pctype_num)
+		goto no_print_pctypes;
+
+	buff_size = pctype_num * sizeof(struct rte_pmd_i40e_ptype_info);
+	pctype = (struct rte_pmd_i40e_ptype_info *)malloc(buff_size);
+	if (!pctype)
+		goto no_print_pctypes;
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)pctype,
+					buff_size,
+					RTE_PMD_I40E_PKG_INFO_PCTYPE_LIST);
+	if (ret) {
+		free(pctype);
+		goto no_print_pctypes;
+	}
+
+	printf("List of defined packet classification types:\n");
+	for (i = 0; i < pctype_num; i++) {
+		printf("  %2u:", pctype[i].ptype_id);
+		for (j = 0; j < RTE_PMD_I40E_PROTO_NUM; j++) {
+			proto_id = pctype[i].protocols[j];
+			if (proto_id != RTE_PMD_I40E_PROTO_UNUSED) {
+				for (n = 0; n < proto_num; n++) {
+					if (proto[n].proto_id == proto_id) {
+						printf(" %s", proto[n].name);
+						break;
+					}
+				}
+			}
+		}
+		printf("\n");
+	}
+	printf("\n");
+	free(pctype);
+
+no_print_pctypes:
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)&ptype_num,
+					sizeof(ptype_num),
+					RTE_PMD_I40E_PKG_INFO_PTYPE_NUM);
+	if (ret || !ptype_num)
+		goto no_print_return;
+
+	buff_size = ptype_num * sizeof(struct rte_pmd_i40e_ptype_info);
+	ptype = (struct rte_pmd_i40e_ptype_info *)malloc(buff_size);
+	if (!ptype)
+		goto no_print_return;
+
+	ret = rte_pmd_i40e_get_ddp_info(pkg, pkg_size, (uint8_t *)ptype,
+					buff_size,
+					RTE_PMD_I40E_PKG_INFO_PTYPE_LIST);
+	if (ret) {
+		free(ptype);
+		goto no_print_return;
+	}
+	printf("List of defined packet types:\n");
+	for (i = 0; i < ptype_num; i++) {
+		printf("  %2u:", ptype[i].ptype_id);
+		for (j = 0; j < RTE_PMD_I40E_PROTO_NUM; j++) {
+			proto_id = ptype[i].protocols[j];
+			if (proto_id != RTE_PMD_I40E_PROTO_UNUSED) {
+				for (n = 0; n < proto_num; n++) {
+					if (proto[n].proto_id == proto_id) {
+						printf(" %s", proto[n].name);
+						break;
+					}
+				}
+			}
+		}
+		printf("\n");
+	}
+	free(ptype);
+	printf("\n");
+
+	ret = 0;
+no_print_return:
+	free(proto);
+	if (ret == -ENOTSUP)
+		fprintf(stderr, "Function not supported in PMD\n");
+	close_file(pkg);
+}
+
+static cmdline_parse_inst_t cmd_ddp_get_info = {
+	.f = cmd_ddp_info_parsed,
+	.data = NULL,
+	.help_str = "ddp get info <profile_path>",
+	.tokens = {
+		(void *)&cmd_ddp_info_ddp,
+		(void *)&cmd_ddp_info_get,
+		(void *)&cmd_ddp_info_info,
+		(void *)&cmd_ddp_info_filepath,
+		NULL,
+	},
+};
+
+/* Get dynamic device personalization profile info list*/
+#define PROFILE_INFO_SIZE 48
+#define MAX_PROFILE_NUM 16
+
+struct cmd_ddp_get_list_result {
+	cmdline_fixed_string_t ddp;
+	cmdline_fixed_string_t get;
+	cmdline_fixed_string_t list;
+	portid_t port_id;
+};
+
+static cmdline_parse_token_string_t cmd_ddp_get_list_ddp =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, ddp, "ddp");
+static cmdline_parse_token_string_t cmd_ddp_get_list_get =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, get, "get");
+static cmdline_parse_token_string_t cmd_ddp_get_list_list =
+	TOKEN_STRING_INITIALIZER(struct cmd_ddp_get_list_result, list, "list");
+static cmdline_parse_token_num_t cmd_ddp_get_list_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ddp_get_list_result, port_id,
+		RTE_UINT16);
+
+static void
+cmd_ddp_get_list_parsed(__rte_unused void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ddp_get_list_result *res = parsed_result;
+	struct rte_pmd_i40e_profile_list *p_list;
+	struct rte_pmd_i40e_profile_info *p_info;
+	uint32_t p_num;
+	uint32_t size;
+	uint32_t i;
+	int ret = -ENOTSUP;
+
+	size = PROFILE_INFO_SIZE * MAX_PROFILE_NUM + 4;
+	p_list = (struct rte_pmd_i40e_profile_list *)malloc(size);
+	if (!p_list) {
+		fprintf(stderr, "%s: Failed to malloc buffer\n", __func__);
+		return;
+	}
+
+	if (ret == -ENOTSUP)
+		ret = rte_pmd_i40e_get_ddp_list(res->port_id,
+						(uint8_t *)p_list, size);
+
+	if (!ret) {
+		p_num = p_list->p_count;
+		printf("Profile number is: %d\n\n", p_num);
+
+		for (i = 0; i < p_num; i++) {
+			p_info = &p_list->p_info[i];
+			printf("Profile %d:\n", i);
+			printf("Track id:     0x%x\n", p_info->track_id);
+			printf("Version:      %d.%d.%d.%d\n",
+				p_info->version.major,
+				p_info->version.minor,
+				p_info->version.update,
+				p_info->version.draft);
+			printf("Profile name: %s\n\n", p_info->name);
+		}
+	}
+
+	free(p_list);
+
+	if (ret < 0)
+		fprintf(stderr, "Failed to get ddp list\n");
+}
+
+static cmdline_parse_inst_t cmd_ddp_get_list = {
+	.f = cmd_ddp_get_list_parsed,
+	.data = NULL,
+	.help_str = "ddp get list <port_id>",
+	.tokens = {
+		(void *)&cmd_ddp_get_list_ddp,
+		(void *)&cmd_ddp_get_list_get,
+		(void *)&cmd_ddp_get_list_list,
+		(void *)&cmd_ddp_get_list_port_id,
+		NULL,
+	},
+};
+
+/* Configure input set */
+struct cmd_cfg_input_set_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t cfg;
+	portid_t port_id;
+	cmdline_fixed_string_t pctype;
+	uint8_t pctype_id;
+	cmdline_fixed_string_t inset_type;
+	cmdline_fixed_string_t opt;
+	cmdline_fixed_string_t field;
+	uint8_t field_idx;
+};
+
+static void
+cmd_cfg_input_set_parsed(__rte_unused void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_cfg_input_set_result *res = parsed_result;
+	enum rte_pmd_i40e_inset_type inset_type = INSET_NONE;
+	struct rte_pmd_i40e_inset inset;
+	int ret = -ENOTSUP;
+
+	if (!all_ports_stopped()) {
+		fprintf(stderr, "Please stop all ports first\n");
+		return;
+	}
+
+	if (!strcmp(res->inset_type, "hash_inset"))
+		inset_type = INSET_HASH;
+	else if (!strcmp(res->inset_type, "fdir_inset"))
+		inset_type = INSET_FDIR;
+	else if (!strcmp(res->inset_type, "fdir_flx_inset"))
+		inset_type = INSET_FDIR_FLX;
+	ret = rte_pmd_i40e_inset_get(res->port_id, res->pctype_id, &inset, inset_type);
+	if (ret) {
+		fprintf(stderr, "Failed to get input set.\n");
+		return;
+	}
+
+	if (!strcmp(res->opt, "get")) {
+		ret = rte_pmd_i40e_inset_field_get(inset.inset, res->field_idx);
+		if (ret)
+			printf("Field index %d is enabled.\n", res->field_idx);
+		else
+			printf("Field index %d is disabled.\n", res->field_idx);
+		return;
+	}
+
+	if (!strcmp(res->opt, "set"))
+		ret = rte_pmd_i40e_inset_field_set(&inset.inset, res->field_idx);
+	else if (!strcmp(res->opt, "clear"))
+		ret = rte_pmd_i40e_inset_field_clear(&inset.inset, res->field_idx);
+	if (ret) {
+		fprintf(stderr, "Failed to configure input set field.\n");
+		return;
+	}
+
+	ret = rte_pmd_i40e_inset_set(res->port_id, res->pctype_id, &inset, inset_type);
+	if (ret) {
+		fprintf(stderr, "Failed to set input set.\n");
+		return;
+	}
+
+	if (ret == -ENOTSUP)
+		fprintf(stderr, "Function not supported\n");
+}
+
+static cmdline_parse_token_string_t cmd_cfg_input_set_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+		port, "port");
+static cmdline_parse_token_string_t cmd_cfg_input_set_cfg =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+		cfg, "config");
+static cmdline_parse_token_num_t cmd_cfg_input_set_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_cfg_input_set_pctype =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+		pctype, "pctype");
+static cmdline_parse_token_num_t cmd_cfg_input_set_pctype_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
+		pctype_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_cfg_input_set_inset_type =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+		inset_type, "hash_inset#fdir_inset#fdir_flx_inset");
+static cmdline_parse_token_string_t cmd_cfg_input_set_opt =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+		opt, "get#set#clear");
+static cmdline_parse_token_string_t cmd_cfg_input_set_field =
+	TOKEN_STRING_INITIALIZER(struct cmd_cfg_input_set_result,
+		field, "field");
+static cmdline_parse_token_num_t cmd_cfg_input_set_field_idx =
+	TOKEN_NUM_INITIALIZER(struct cmd_cfg_input_set_result,
+		field_idx, RTE_UINT8);
+
+static cmdline_parse_inst_t cmd_cfg_input_set = {
+	.f = cmd_cfg_input_set_parsed,
+	.data = NULL,
+	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
+		"fdir_inset|fdir_flx_inset get|set|clear field <field_idx>",
+	.tokens = {
+		(void *)&cmd_cfg_input_set_port,
+		(void *)&cmd_cfg_input_set_cfg,
+		(void *)&cmd_cfg_input_set_port_id,
+		(void *)&cmd_cfg_input_set_pctype,
+		(void *)&cmd_cfg_input_set_pctype_id,
+		(void *)&cmd_cfg_input_set_inset_type,
+		(void *)&cmd_cfg_input_set_opt,
+		(void *)&cmd_cfg_input_set_field,
+		(void *)&cmd_cfg_input_set_field_idx,
+		NULL,
+	},
+};
+
+/* Clear input set */
+struct cmd_clear_input_set_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t cfg;
+	portid_t port_id;
+	cmdline_fixed_string_t pctype;
+	uint8_t pctype_id;
+	cmdline_fixed_string_t inset_type;
+	cmdline_fixed_string_t clear;
+	cmdline_fixed_string_t all;
+};
+
+static void
+cmd_clear_input_set_parsed(__rte_unused void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_clear_input_set_result *res = parsed_result;
+	enum rte_pmd_i40e_inset_type inset_type = INSET_NONE;
+	struct rte_pmd_i40e_inset inset;
+	int ret = -ENOTSUP;
+
+	if (!all_ports_stopped()) {
+		fprintf(stderr, "Please stop all ports first\n");
+		return;
+	}
+
+	if (!strcmp(res->inset_type, "hash_inset"))
+		inset_type = INSET_HASH;
+	else if (!strcmp(res->inset_type, "fdir_inset"))
+		inset_type = INSET_FDIR;
+	else if (!strcmp(res->inset_type, "fdir_flx_inset"))
+		inset_type = INSET_FDIR_FLX;
+
+	memset(&inset, 0, sizeof(inset));
+
+	ret = rte_pmd_i40e_inset_set(res->port_id, res->pctype_id, &inset, inset_type);
+	if (ret) {
+		fprintf(stderr, "Failed to clear input set.\n");
+		return;
+	}
+
+	if (ret == -ENOTSUP)
+		fprintf(stderr, "Function not supported\n");
+}
+
+static cmdline_parse_token_string_t cmd_clear_input_set_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+		port, "port");
+static cmdline_parse_token_string_t cmd_clear_input_set_cfg =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+		cfg, "config");
+static cmdline_parse_token_num_t cmd_clear_input_set_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_clear_input_set_pctype =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+		pctype, "pctype");
+static cmdline_parse_token_num_t cmd_clear_input_set_pctype_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_clear_input_set_result,
+		pctype_id, RTE_UINT8);
+static cmdline_parse_token_string_t cmd_clear_input_set_inset_type =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+		inset_type, "hash_inset#fdir_inset#fdir_flx_inset");
+static cmdline_parse_token_string_t cmd_clear_input_set_clear =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+		clear, "clear");
+static cmdline_parse_token_string_t cmd_clear_input_set_all =
+	TOKEN_STRING_INITIALIZER(struct cmd_clear_input_set_result,
+		all, "all");
+
+static cmdline_parse_inst_t cmd_clear_input_set = {
+	.f = cmd_clear_input_set_parsed,
+	.data = NULL,
+	.help_str = "port config <port_id> pctype <pctype_id> hash_inset|"
+		"fdir_inset|fdir_flx_inset clear all",
+	.tokens = {
+		(void *)&cmd_clear_input_set_port,
+		(void *)&cmd_clear_input_set_cfg,
+		(void *)&cmd_clear_input_set_port_id,
+		(void *)&cmd_clear_input_set_pctype,
+		(void *)&cmd_clear_input_set_pctype_id,
+		(void *)&cmd_clear_input_set_inset_type,
+		(void *)&cmd_clear_input_set_clear,
+		(void *)&cmd_clear_input_set_all,
+		NULL,
+	},
+};
+
+/* port config pctype mapping reset */
+
+/* Common result structure for port config pctype mapping reset */
+struct cmd_pctype_mapping_reset_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t config;
+	portid_t port_id;
+	cmdline_fixed_string_t pctype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t reset;
+};
+
+/* Common CLI fields for port config pctype mapping reset*/
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_reset_result,
+		port, "port");
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_config =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_reset_result,
+		config, "config");
+static cmdline_parse_token_num_t cmd_pctype_mapping_reset_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_pctype_mapping_reset_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_pctype =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_reset_result,
+		pctype, "pctype");
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_mapping =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_reset_result,
+		mapping, "mapping");
+static cmdline_parse_token_string_t cmd_pctype_mapping_reset_reset =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_reset_result,
+		reset, "reset");
+
+static void
+cmd_pctype_mapping_reset_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_pctype_mapping_reset_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_flow_type_mapping_reset(res->port_id);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_pctype_mapping_reset = {
+	.f = cmd_pctype_mapping_reset_parsed,
+	.data = NULL,
+	.help_str = "port config <port_id> pctype mapping reset",
+	.tokens = {
+		(void *)&cmd_pctype_mapping_reset_port,
+		(void *)&cmd_pctype_mapping_reset_config,
+		(void *)&cmd_pctype_mapping_reset_port_id,
+		(void *)&cmd_pctype_mapping_reset_pctype,
+		(void *)&cmd_pctype_mapping_reset_mapping,
+		(void *)&cmd_pctype_mapping_reset_reset,
+		NULL,
+	},
+};
+
+/* show port pctype mapping */
+
+/* Common result structure for show port pctype mapping */
+struct cmd_pctype_mapping_get_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t pctype;
+	cmdline_fixed_string_t mapping;
+};
+
+/* Common CLI fields for pctype mapping get */
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_show =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_get_result,
+		show, "show");
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_get_result,
+		port, "port");
+static cmdline_parse_token_num_t cmd_pctype_mapping_get_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_pctype_mapping_get_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_pctype =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_get_result,
+		pctype, "pctype");
+static cmdline_parse_token_string_t cmd_pctype_mapping_get_mapping =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_get_result,
+		mapping, "mapping");
+
+static void
+cmd_pctype_mapping_get_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_pctype_mapping_get_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_flow_type_mapping
+				mapping[RTE_PMD_I40E_FLOW_TYPE_MAX];
+	int i, j, first_pctype;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_flow_type_mapping_get(res->port_id, mapping);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		return;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		return;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+		return;
+	}
+
+	for (i = 0; i < RTE_PMD_I40E_FLOW_TYPE_MAX; i++) {
+		if (mapping[i].pctype != 0ULL) {
+			first_pctype = 1;
+
+			printf("pctype: ");
+			for (j = 0; j < RTE_PMD_I40E_PCTYPE_MAX; j++) {
+				if (mapping[i].pctype & (1ULL << j)) {
+					printf(first_pctype ?  "%02d" : ",%02d", j);
+					first_pctype = 0;
+				}
+			}
+			printf("  ->  flowtype: %02d\n", mapping[i].flow_type);
+		}
+	}
+}
+
+static cmdline_parse_inst_t cmd_pctype_mapping_get = {
+	.f = cmd_pctype_mapping_get_parsed,
+	.data = NULL,
+	.help_str = "show port <port_id> pctype mapping",
+	.tokens = {
+		(void *)&cmd_pctype_mapping_get_show,
+		(void *)&cmd_pctype_mapping_get_port,
+		(void *)&cmd_pctype_mapping_get_port_id,
+		(void *)&cmd_pctype_mapping_get_pctype,
+		(void *)&cmd_pctype_mapping_get_mapping,
+		NULL,
+	},
+};
+
+/* port config pctype mapping update */
+
+/* Common result structure for port config pctype mapping update */
+struct cmd_pctype_mapping_update_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t config;
+	portid_t port_id;
+	cmdline_fixed_string_t pctype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t update;
+	cmdline_fixed_string_t pctype_list;
+	uint16_t flow_type;
+};
+
+/* Common CLI fields for pctype mapping update*/
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		port, "port");
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_config =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		config, "config");
+static cmdline_parse_token_num_t cmd_pctype_mapping_update_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_pctype =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		pctype, "pctype");
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_mapping =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		mapping, "mapping");
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_update =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		update, "update");
+static cmdline_parse_token_string_t cmd_pctype_mapping_update_pc_type =
+	TOKEN_STRING_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		pctype_list, NULL);
+static cmdline_parse_token_num_t cmd_pctype_mapping_update_flow_type =
+	TOKEN_NUM_INITIALIZER(struct cmd_pctype_mapping_update_result,
+		flow_type, RTE_UINT16);
+
+static void
+cmd_pctype_mapping_update_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_pctype_mapping_update_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_flow_type_mapping mapping;
+	unsigned int i;
+	unsigned int nb_item;
+	unsigned int pctype_list[RTE_PMD_I40E_PCTYPE_MAX];
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	nb_item = parse_item_list(res->pctype_list, "pctypes", RTE_PMD_I40E_PCTYPE_MAX,
+		pctype_list, 1);
+	mapping.flow_type = res->flow_type;
+	for (i = 0, mapping.pctype = 0ULL; i < nb_item; i++)
+		mapping.pctype |= (1ULL << pctype_list[i]);
+	ret = rte_pmd_i40e_flow_type_mapping_update(res->port_id,
+						&mapping,
+						1,
+						0);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid pctype or flow type\n");
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_pctype_mapping_update = {
+	.f = cmd_pctype_mapping_update_parsed,
+	.data = NULL,
+	.help_str = "port config <port_id> pctype mapping update"
+	" <pctype_id_0,[pctype_id_1]*> <flowtype_id>",
+	.tokens = {
+		(void *)&cmd_pctype_mapping_update_port,
+		(void *)&cmd_pctype_mapping_update_config,
+		(void *)&cmd_pctype_mapping_update_port_id,
+		(void *)&cmd_pctype_mapping_update_pctype,
+		(void *)&cmd_pctype_mapping_update_mapping,
+		(void *)&cmd_pctype_mapping_update_update,
+		(void *)&cmd_pctype_mapping_update_pc_type,
+		(void *)&cmd_pctype_mapping_update_flow_type,
+		NULL,
+	},
+};
+
+/* ptype mapping get */
+
+/* Common result structure for ptype mapping get */
+struct cmd_ptype_mapping_get_result {
+	cmdline_fixed_string_t ptype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t get;
+	portid_t port_id;
+	uint8_t valid_only;
+};
+
+/* Common CLI fields for ptype mapping get */
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_ptype =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_get_result,
+		ptype, "ptype");
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_mapping =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_get_result,
+		mapping, "mapping");
+static cmdline_parse_token_string_t cmd_ptype_mapping_get_get =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_get_result,
+		get, "get");
+static cmdline_parse_token_num_t cmd_ptype_mapping_get_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_get_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_ptype_mapping_get_valid_only =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_get_result,
+		valid_only, RTE_UINT8);
+
+static void
+cmd_ptype_mapping_get_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ptype_mapping_get_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int max_ptype_num = 256;
+	struct rte_pmd_i40e_ptype_mapping mapping[max_ptype_num];
+	uint16_t count;
+	int i;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_ptype_mapping_get(res->port_id,
+					mapping,
+					max_ptype_num,
+					&count,
+					res->valid_only);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+
+	if (!ret) {
+		for (i = 0; i < count; i++)
+			printf("%3d\t0x%08x\n",
+				mapping[i].hw_ptype, mapping[i].sw_ptype);
+	}
+}
+
+static cmdline_parse_inst_t cmd_ptype_mapping_get = {
+	.f = cmd_ptype_mapping_get_parsed,
+	.data = NULL,
+	.help_str = "ptype mapping get <port_id> <valid_only>",
+	.tokens = {
+		(void *)&cmd_ptype_mapping_get_ptype,
+		(void *)&cmd_ptype_mapping_get_mapping,
+		(void *)&cmd_ptype_mapping_get_get,
+		(void *)&cmd_ptype_mapping_get_port_id,
+		(void *)&cmd_ptype_mapping_get_valid_only,
+		NULL,
+	},
+};
+
+/* ptype mapping replace */
+
+/* Common result structure for ptype mapping replace */
+struct cmd_ptype_mapping_replace_result {
+	cmdline_fixed_string_t ptype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t replace;
+	portid_t port_id;
+	uint32_t target;
+	uint8_t mask;
+	uint32_t pkt_type;
+};
+
+/* Common CLI fields for ptype mapping replace */
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_ptype =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_replace_result,
+		ptype, "ptype");
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_mapping =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_replace_result,
+		mapping, "mapping");
+static cmdline_parse_token_string_t cmd_ptype_mapping_replace_replace =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_replace_result,
+		replace, "replace");
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_replace_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_target =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_replace_result,
+		target, RTE_UINT32);
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_mask =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_replace_result,
+		mask, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_ptype_mapping_replace_pkt_type =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_replace_result,
+		pkt_type, RTE_UINT32);
+
+static void
+cmd_ptype_mapping_replace_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ptype_mapping_replace_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_ptype_mapping_replace(res->port_id,
+					res->target,
+					res->mask,
+					res->pkt_type);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid ptype 0x%8x or 0x%8x\n",
+			res->target, res->pkt_type);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_ptype_mapping_replace = {
+	.f = cmd_ptype_mapping_replace_parsed,
+	.data = NULL,
+	.help_str =
+		"ptype mapping replace <port_id> <target> <mask> <pkt_type>",
+	.tokens = {
+		(void *)&cmd_ptype_mapping_replace_ptype,
+		(void *)&cmd_ptype_mapping_replace_mapping,
+		(void *)&cmd_ptype_mapping_replace_replace,
+		(void *)&cmd_ptype_mapping_replace_port_id,
+		(void *)&cmd_ptype_mapping_replace_target,
+		(void *)&cmd_ptype_mapping_replace_mask,
+		(void *)&cmd_ptype_mapping_replace_pkt_type,
+		NULL,
+	},
+};
+
+/* ptype mapping reset */
+
+/* Common result structure for ptype mapping reset */
+struct cmd_ptype_mapping_reset_result {
+	cmdline_fixed_string_t ptype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t reset;
+	portid_t port_id;
+};
+
+/* Common CLI fields for ptype mapping reset*/
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_ptype =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_reset_result,
+		ptype, "ptype");
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_mapping =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_reset_result,
+		mapping, "mapping");
+static cmdline_parse_token_string_t cmd_ptype_mapping_reset_reset =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_reset_result,
+		reset, "reset");
+static cmdline_parse_token_num_t cmd_ptype_mapping_reset_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_reset_result,
+		port_id, RTE_UINT16);
+
+static void
+cmd_ptype_mapping_reset_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ptype_mapping_reset_result *res = parsed_result;
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_i40e_ptype_mapping_reset(res->port_id);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_ptype_mapping_reset = {
+	.f = cmd_ptype_mapping_reset_parsed,
+	.data = NULL,
+	.help_str = "ptype mapping reset <port_id>",
+	.tokens = {
+		(void *)&cmd_ptype_mapping_reset_ptype,
+		(void *)&cmd_ptype_mapping_reset_mapping,
+		(void *)&cmd_ptype_mapping_reset_reset,
+		(void *)&cmd_ptype_mapping_reset_port_id,
+		NULL,
+	},
+};
+
+/* ptype mapping update */
+
+/* Common result structure for ptype mapping update */
+struct cmd_ptype_mapping_update_result {
+	cmdline_fixed_string_t ptype;
+	cmdline_fixed_string_t mapping;
+	cmdline_fixed_string_t reset;
+	portid_t port_id;
+	uint8_t hw_ptype;
+	uint32_t sw_ptype;
+};
+
+/* Common CLI fields for ptype mapping update*/
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_ptype =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_update_result,
+		ptype, "ptype");
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_mapping =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_update_result,
+		mapping, "mapping");
+static cmdline_parse_token_string_t cmd_ptype_mapping_update_update =
+	TOKEN_STRING_INITIALIZER(struct cmd_ptype_mapping_update_result,
+		reset, "update");
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_update_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_hw_ptype =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_update_result,
+		hw_ptype, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_ptype_mapping_update_sw_ptype =
+	TOKEN_NUM_INITIALIZER(struct cmd_ptype_mapping_update_result,
+		sw_ptype, RTE_UINT32);
+
+static void
+cmd_ptype_mapping_update_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl,
+	__rte_unused void *data)
+{
+	struct cmd_ptype_mapping_update_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_pmd_i40e_ptype_mapping mapping;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	mapping.hw_ptype = res->hw_ptype;
+	mapping.sw_ptype = res->sw_ptype;
+	ret = rte_pmd_i40e_ptype_mapping_update(res->port_id,
+						&mapping,
+						1,
+						0);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid ptype 0x%8x\n", res->sw_ptype);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_ptype_mapping_update = {
+	.f = cmd_ptype_mapping_update_parsed,
+	.data = NULL,
+	.help_str = "ptype mapping update <port_id> <hw_ptype> <sw_ptype>",
+	.tokens = {
+		(void *)&cmd_ptype_mapping_update_ptype,
+		(void *)&cmd_ptype_mapping_update_mapping,
+		(void *)&cmd_ptype_mapping_update_update,
+		(void *)&cmd_ptype_mapping_update_port_id,
+		(void *)&cmd_ptype_mapping_update_hw_ptype,
+		(void *)&cmd_ptype_mapping_update_sw_ptype,
+		NULL,
+	},
+};
+
+static struct testpmd_driver_commands i40e_cmds = {
+	.commands = {
+	{
+		&cmd_queue_region,
+		"set port (port_id) queue-region region_id (value) "
+		"queue_start_index (value) queue_num (value)\n"
+		"    Set a queue region on a port\n",
+	},
+	{
+		&cmd_region_flowtype,
+		"set port (port_id) queue-region region_id (value) "
+		"flowtype (value)\n"
+		"    Set a flowtype region index on a port\n",
+	},
+	{
+		&cmd_user_priority_region,
+		"set port (port_id) queue-region UP (value) region_id (value)\n"
+		"    Set the mapping of User Priority to "
+		"queue region on a port\n",
+	},
+	{
+		&cmd_flush_queue_region,
+		"set port (port_id) queue-region flush (on|off)\n"
+		"    flush all queue region related configuration\n",
+	},
+	{
+		&cmd_show_queue_region_info_all,
+		"show port (port_id) queue-region\n"
+		"    show all queue region related configuration info\n",
+	},
+	{
+		&cmd_add_del_raw_flow_director,
+		"flow_director_filter (port_id) mode raw (add|del|update)"
+		" flow (flow_id) (drop|fwd) queue (queue_id)"
+		" fd_id (fd_id_value) packet (packet file name)\n"
+		"    Add/Del a raw type flow director filter.\n",
+	},
+	{
+		&cmd_set_vf_promisc,
+		"set vf promisc (port_id) (vf_id) (on|off)\n"
+		"    Set unicast promiscuous mode for a VF from the PF.\n",
+	},
+	{
+		&cmd_set_vf_allmulti,
+		"set vf allmulti (port_id) (vf_id) (on|off)\n"
+		"    Set multicast promiscuous mode for a VF from the PF.\n",
+	},
+	{
+		&cmd_set_vf_broadcast,
+		"set vf broadcast (port_id) (vf_id) (on|off)\n"
+		"    Set VF broadcast for a VF from the PF.\n",
+	},
+	{
+		&cmd_set_vf_vlan_tag,
+		"set vf vlan tag (port_id) (vf_id) (on|off)\n"
+		"    Set VLAN tag for a VF from the PF.\n",
+	},
+	{
+		&cmd_vf_max_bw,
+		"set vf tx max-bandwidth (port_id) (vf_id) (bandwidth)\n"
+		"    Set a VF's max bandwidth(Mbps).\n",
+	},
+	{
+		&cmd_vf_tc_min_bw,
+		"set vf tc tx min-bandwidth (port_id) (vf_id) (bw1, bw2, ...)\n"
+		"    Set all TCs' min bandwidth(%%) on a VF.\n",
+	},
+	{
+		&cmd_vf_tc_max_bw,
+		"set vf tc tx max-bandwidth (port_id) (vf_id) (tc_no) (bandwidth)\n"
+		"    Set a TC's max bandwidth(Mbps) on a VF.\n",
+	},
+	{
+		&cmd_strict_link_prio,
+		"set tx strict-link-priority (port_id) (tc_bitmap)\n"
+		"    Set some TCs' strict link priority mode on a physical port.\n",
+	},
+	{
+		&cmd_ddp_add,
+		"ddp add (port_id) (profile_path[,backup_profile_path])\n"
+		"    Load a profile package on a port\n",
+	},
+	{
+		&cmd_ddp_del,
+		"ddp del (port_id) (backup_profile_path)\n"
+		"    Delete a profile package from a port\n",
+	},
+	{
+		&cmd_ddp_get_list,
+		"ddp get list (port_id)\n"
+		"    Get ddp profile info list\n",
+	},
+	{
+		&cmd_ddp_get_info,
+		"ddp get info (profile_path)\n"
+		"    Get ddp profile information.\n",
+	},
+	{
+		&cmd_cfg_input_set,
+		"port config (port_id) pctype (pctype_id) hash_inset|"
+		"fdir_inset|fdir_flx_inset get|set|clear field\n"
+		" (field_idx)\n"
+		"    Configure RSS|FDIR|FDIR_FLX input set for some pctype\n",
+	},
+	{
+		&cmd_clear_input_set,
+		"port config (port_id) pctype (pctype_id) hash_inset|"
+		"fdir_inset|fdir_flx_inset clear all\n"
+		"    Clear RSS|FDIR|FDIR_FLX input set completely for some pctype\n",
+	},
+	{
+		&cmd_ptype_mapping_get,
+		"ptype mapping get (port_id) (valid_only)\n"
+		"    Get ptype mapping on a port\n",
+	},
+	{
+		&cmd_ptype_mapping_replace,
+		"ptype mapping replace (port_id) (target) (mask) (pky_type)\n"
+		"    Replace target with the pkt_type in ptype mapping\n",
+	},
+	{
+		&cmd_ptype_mapping_reset,
+		"ptype mapping reset (port_id)\n"
+		"    Reset ptype mapping on a port\n",
+	},
+	{
+		&cmd_ptype_mapping_update,
+		"ptype mapping update (port_id) (hw_ptype) (sw_ptype)\n"
+		"    Update a ptype mapping item on a port\n",
+	},
+	{
+		&cmd_pctype_mapping_get,
+		"show port (port_id) pctype mapping\n"
+		"    Get flow ptype to pctype mapping on a port\n",
+	},
+	{
+		&cmd_pctype_mapping_reset,
+		"port config (port_id) pctype mapping reset\n"
+		"    Reset flow type to pctype mapping on a port\n",
+	},
+	{
+		&cmd_pctype_mapping_update,
+		"port config (port_id) pctype mapping update"
+		" (pctype_id_0[,pctype_id_1]*) (flow_type_id)\n"
+		"    Update a flow type to pctype mapping item on a port\n",
+	},
+	{ NULL, NULL },
+	},
+};
+TESTPMD_ADD_DRIVER_COMMANDS(i40e_cmds)
diff --git a/drivers/net/i40e/meson.build b/drivers/net/i40e/meson.build
index ce5317b811..84fd42754e 100644
--- a/drivers/net/i40e/meson.build
+++ b/drivers/net/i40e/meson.build
@@ -27,6 +27,8 @@ sources = files(
         'rte_pmd_i40e.c',
 )
 
+testpmd_sources = files('i40e_testpmd.c')
+
 deps += ['hash']
 includes += include_directories('base')
 
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [PATCH v2 1/3] app/testpmd: restore ixgbe bypass commands
  2022-05-23  7:10   ` [PATCH 5/6] app/testpmd: drop ixgbe bypass commands David Marchand
  2022-05-23 18:10     ` Ferruh Yigit
@ 2022-06-17  5:07     ` David Marchand
  2022-06-17  5:07       ` [PATCH v2 2/3] net/ixgbe: move testpmd commands David Marchand
  2022-06-17  5:07       ` [PATCH v2 3/3] net/ixgbe: move bypass init in a testpmd command David Marchand
  2022-07-21  8:05     ` [PATCH v3 1/3] app/testpmd: restore ixgbe bypass commands David Marchand
  2 siblings, 2 replies; 65+ messages in thread
From: David Marchand @ 2022-06-17  5:07 UTC (permalink / raw)
  To: dev
  Cc: stable, Xiaoyun Li, Aman Singh, Yuying Zhang, Keith Wiles,
	Bruce Richardson, Harry van Haaren, Luca Boccassi

Since the switch to meson, ixgbe bypass commands were ineffective as the
RTE_LIBRTE_IXGBE_BYPASS build flag was not set, even though the
net/ixgbe driver had this feature compiled in.

Fixes: 16ade738fd0d ("app/testpmd: build with meson")
Cc: stable@dpdk.org

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/meson.build | 1 +
 1 file changed, 1 insertion(+)

diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index d13e98125e..69c7595a45 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -68,6 +68,7 @@ if dpdk_conf.has('RTE_NET_I40E')
     deps += 'net_i40e'
 endif
 if dpdk_conf.has('RTE_NET_IXGBE')
+    cflags += ['-DRTE_LIBRTE_IXGBE_BYPASS']
     deps += 'net_ixgbe'
 endif
 if dpdk_conf.has('RTE_NET_DPAA')
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [PATCH v2 2/3] net/ixgbe: move testpmd commands
  2022-06-17  5:07     ` [PATCH v2 1/3] app/testpmd: restore " David Marchand
@ 2022-06-17  5:07       ` David Marchand
  2022-06-17  5:07       ` [PATCH v2 3/3] net/ixgbe: move bypass init in a testpmd command David Marchand
  1 sibling, 0 replies; 65+ messages in thread
From: David Marchand @ 2022-06-17  5:07 UTC (permalink / raw)
  To: dev; +Cc: Xiaoyun Li, Aman Singh, Yuying Zhang, Qiming Yang, Wenjun Wu

Move related specific testpmd commands into this driver directory.
The bypass init is left in testpmd at this point and can be moved later.
While at it, fix checkpatch warnings.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since v1:
- rebased on next-net,
- updated link in documentation to directly point at commands,
- moved bypass code but separated bypass init change in the next patch,

Changes since RFC v2:
- dropped bypass commands,
- updated documentation,
- fixed some indent,

---
 app/test-pmd/cmdline.c                      |  977 +-----------------
 app/test-pmd/testpmd.c                      |   10 -
 app/test-pmd/testpmd.h                      |    5 +-
 doc/guides/nics/ixgbe.rst                   |   95 ++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |   90 +-
 drivers/net/ixgbe/ixgbe_testpmd.c           | 1008 +++++++++++++++++++
 drivers/net/ixgbe/meson.build               |    2 +
 7 files changed, 1109 insertions(+), 1078 deletions(-)
 create mode 100644 drivers/net/ixgbe/ixgbe_testpmd.c

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index a59e6166d5..73a9e5ac4c 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -73,8 +73,6 @@ static cmdline_parse_ctx_t *main_ctx;
 static TAILQ_HEAD(, testpmd_driver_commands) driver_commands_head =
 	TAILQ_HEAD_INITIALIZER(driver_commands_head);
 
-static void cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue);
-
 /* *** Help command with introduction. *** */
 struct cmd_help_brief_result {
 	cmdline_fixed_string_t help;
@@ -348,24 +346,9 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set all queues drop (port_id) (on|off)\n"
 			"    Set drop enable bit for all queues.\n\n"
 
-			"set vf split drop (port_id) (vf_id) (on|off)\n"
-			"    Set split drop enable bit for a VF from the PF.\n\n"
-
 			"set vf mac antispoof (port_id) (vf_id) (on|off).\n"
 			"    Set MAC antispoof for a VF from the PF.\n\n"
 
-			"set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)\n"
-			"    Enable MACsec offload.\n\n"
-
-			"set macsec offload (port_id) off\n"
-			"    Disable MACsec offload.\n\n"
-
-			"set macsec sc (tx|rx) (port_id) (mac) (pi)\n"
-			"    Configure MACsec secure connection (SC).\n\n"
-
-			"set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)\n"
-			"    Configure MACsec secure association (SA).\n\n"
-
 			"set vf broadcast (port_id) (vf_id) (on|off)\n"
 			"    Set VF broadcast for a VF from the PF.\n\n"
 
@@ -396,9 +379,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set tx strict-link-priority (port_id) (tc_bitmap)\n"
 			"    Set some TCs' strict link priority mode on a physical port.\n\n"
 
-			"set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\n"
-			"    Set all TCs' min bandwidth(%%) for all PF and VFs.\n\n"
-
 			"vlan set (strip|filter|qinq_strip|extend) (on|off) (port_id)\n"
 			"    Set the VLAN strip or filter or qinq strip or extend\n\n"
 
@@ -594,29 +574,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"   Flush (default) or don't flush RX streams before"
 			" forwarding. Mainly used with PCAP drivers.\n\n"
 
-			"set bypass mode (normal|bypass|isolate) (port_id)\n"
-			"   Set the bypass mode for the lowest port on bypass enabled"
-			" NIC.\n\n"
-
-			"set bypass event (timeout|os_on|os_off|power_on|power_off) "
-			"mode (normal|bypass|isolate) (port_id)\n"
-			"   Set the event required to initiate specified bypass mode for"
-			" the lowest port on a bypass enabled NIC where:\n"
-			"       timeout   = enable bypass after watchdog timeout.\n"
-			"       os_on     = enable bypass when OS/board is powered on.\n"
-			"       os_off    = enable bypass when OS/board is powered off.\n"
-			"       power_on  = enable bypass when power supply is turned on.\n"
-			"       power_off = enable bypass when power supply is turned off."
-			"\n\n"
-
-			"set bypass timeout (0|1.5|2|3|4|8|16|32)\n"
-			"   Set the bypass watchdog timeout to 'n' seconds"
-			" where 0 = instant.\n\n"
-
-			"show bypass config (port_id)\n"
-			"   Show the bypass configuration for a bypass enabled NIC"
-			" using the lowest port on the NIC.\n\n"
-
 #ifdef RTE_NET_BOND
 			"create bonded device (mode) (socket)\n"
 			"	Create a new bonded device with specific bonding mode and socket.\n\n"
@@ -5592,347 +5549,6 @@ static cmdline_parse_inst_t cmd_set_link_check = {
 	},
 };
 
-/* *** SET NIC BYPASS MODE *** */
-struct cmd_set_bypass_mode_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t mode;
-	cmdline_fixed_string_t value;
-	portid_t port_id;
-};
-
-static void
-cmd_set_bypass_mode_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bypass_mode_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	int32_t rc = -EINVAL;
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	if (!strcmp(res->value, "bypass"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
-	else if (!strcmp(res->value, "isolate"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
-	else
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	/* Set the bypass mode for the relevant port. */
-	rc = rte_pmd_ixgbe_bypass_state_set(port_id, &bypass_mode);
-#endif
-	if (rc != 0)
-		fprintf(stderr, "\t Failed to set bypass mode for port = %d.\n",
-			port_id);
-}
-
-static cmdline_parse_token_string_t cmd_setbypass_mode_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			set, "set");
-static cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_setbypass_mode_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			mode, "mode");
-static cmdline_parse_token_string_t cmd_setbypass_mode_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			value, "normal#bypass#isolate");
-static cmdline_parse_token_num_t cmd_setbypass_mode_port =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_mode_result,
-				port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_set_bypass_mode = {
-	.f = cmd_set_bypass_mode_parsed,
-	.help_str = "set bypass mode normal|bypass|isolate <port_id>: "
-	            "Set the NIC bypass mode for port_id",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_setbypass_mode_set,
-		(void *)&cmd_setbypass_mode_bypass,
-		(void *)&cmd_setbypass_mode_mode,
-		(void *)&cmd_setbypass_mode_value,
-		(void *)&cmd_setbypass_mode_port,
-		NULL,
-	},
-};
-
-/* *** SET NIC BYPASS EVENT *** */
-struct cmd_set_bypass_event_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t event;
-	cmdline_fixed_string_t event_value;
-	cmdline_fixed_string_t mode;
-	cmdline_fixed_string_t mode_value;
-	portid_t port_id;
-};
-
-static void
-cmd_set_bypass_event_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	int32_t rc = -EINVAL;
-	struct cmd_set_bypass_event_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	uint32_t bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
-	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	if (!strcmp(res->event_value, "timeout"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT;
-	else if (!strcmp(res->event_value, "os_on"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_ON;
-	else if (!strcmp(res->event_value, "os_off"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_OFF;
-	else if (!strcmp(res->event_value, "power_on"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_ON;
-	else if (!strcmp(res->event_value, "power_off"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_OFF;
-	else
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
-
-	if (!strcmp(res->mode_value, "bypass"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
-	else if (!strcmp(res->mode_value, "isolate"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
-	else
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	/* Set the watchdog timeout. */
-	if (bypass_event == RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT) {
-
-		rc = -EINVAL;
-		if (RTE_PMD_IXGBE_BYPASS_TMT_VALID(bypass_timeout)) {
-			rc = rte_pmd_ixgbe_bypass_wd_timeout_store(port_id,
-							   bypass_timeout);
-		}
-		if (rc != 0) {
-			fprintf(stderr,
-				"Failed to set timeout value %u for port %d, errto code: %d.\n",
-				bypass_timeout, port_id, rc);
-		}
-	}
-
-	/* Set the bypass event to transition to bypass mode. */
-	rc = rte_pmd_ixgbe_bypass_event_store(port_id, bypass_event,
-					      bypass_mode);
-#endif
-
-	if (rc != 0)
-		fprintf(stderr, "\t Failed to set bypass event for port = %d.\n",
-			port_id);
-}
-
-static cmdline_parse_token_string_t cmd_setbypass_event_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			set, "set");
-static cmdline_parse_token_string_t cmd_setbypass_event_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_setbypass_event_event =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			event, "event");
-static cmdline_parse_token_string_t cmd_setbypass_event_event_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			event_value, "none#timeout#os_off#os_on#power_on#power_off");
-static cmdline_parse_token_string_t cmd_setbypass_event_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			mode, "mode");
-static cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			mode_value, "normal#bypass#isolate");
-static cmdline_parse_token_num_t cmd_setbypass_event_port =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_event_result,
-				port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_set_bypass_event = {
-	.f = cmd_set_bypass_event_parsed,
-	.help_str = "set bypass event none|timeout|os_on|os_off|power_on|"
-		"power_off mode normal|bypass|isolate <port_id>: "
-		"Set the NIC bypass event mode for port_id",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_setbypass_event_set,
-		(void *)&cmd_setbypass_event_bypass,
-		(void *)&cmd_setbypass_event_event,
-		(void *)&cmd_setbypass_event_event_value,
-		(void *)&cmd_setbypass_event_mode,
-		(void *)&cmd_setbypass_event_mode_value,
-		(void *)&cmd_setbypass_event_port,
-		NULL,
-	},
-};
-
-
-/* *** SET NIC BYPASS TIMEOUT *** */
-struct cmd_set_bypass_timeout_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t timeout;
-	cmdline_fixed_string_t value;
-};
-
-static void
-cmd_set_bypass_timeout_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	__rte_unused struct cmd_set_bypass_timeout_result *res = parsed_result;
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	if (!strcmp(res->value, "1.5"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_1_5_SEC;
-	else if (!strcmp(res->value, "2"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_2_SEC;
-	else if (!strcmp(res->value, "3"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_3_SEC;
-	else if (!strcmp(res->value, "4"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_4_SEC;
-	else if (!strcmp(res->value, "8"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_8_SEC;
-	else if (!strcmp(res->value, "16"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_16_SEC;
-	else if (!strcmp(res->value, "32"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_32_SEC;
-	else
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
-#endif
-}
-
-static cmdline_parse_token_string_t cmd_setbypass_timeout_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			set, "set");
-static cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			timeout, "timeout");
-static cmdline_parse_token_string_t cmd_setbypass_timeout_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			value, "0#1.5#2#3#4#8#16#32");
-
-static cmdline_parse_inst_t cmd_set_bypass_timeout = {
-	.f = cmd_set_bypass_timeout_parsed,
-	.help_str = "set bypass timeout 0|1.5|2|3|4|8|16|32: "
-		"Set the NIC bypass watchdog timeout in seconds",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_setbypass_timeout_set,
-		(void *)&cmd_setbypass_timeout_bypass,
-		(void *)&cmd_setbypass_timeout_timeout,
-		(void *)&cmd_setbypass_timeout_value,
-		NULL,
-	},
-};
-
-/* *** SHOW NIC BYPASS MODE *** */
-struct cmd_show_bypass_config_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t config;
-	portid_t port_id;
-};
-
-static void
-cmd_show_bypass_config_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_show_bypass_config_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	int rc = -EINVAL;
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	uint32_t event_mode;
-	uint32_t bypass_mode;
-	uint32_t timeout = bypass_timeout;
-	unsigned int i;
-
-	static const char * const timeouts[RTE_PMD_IXGBE_BYPASS_TMT_NUM] =
-		{"off", "1.5", "2", "3", "4", "8", "16", "32"};
-	static const char * const modes[RTE_PMD_IXGBE_BYPASS_MODE_NUM] =
-		{"UNKNOWN", "normal", "bypass", "isolate"};
-	static const char * const events[RTE_PMD_IXGBE_BYPASS_EVENT_NUM] = {
-		"NONE",
-		"OS/board on",
-		"power supply on",
-		"OS/board off",
-		"power supply off",
-		"timeout"};
-
-	/* Display the bypass mode.*/
-	if (rte_pmd_ixgbe_bypass_state_show(port_id, &bypass_mode) != 0) {
-		fprintf(stderr, "\tFailed to get bypass mode for port = %d\n",
-			port_id);
-		return;
-	}
-	else {
-		if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(bypass_mode))
-			bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
-
-		printf("\tbypass mode    = %s\n",  modes[bypass_mode]);
-	}
-
-	/* Display the bypass timeout.*/
-	if (!RTE_PMD_IXGBE_BYPASS_TMT_VALID(timeout))
-		timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
-
-	printf("\tbypass timeout = %s\n", timeouts[timeout]);
-
-	/* Display the bypass events and associated modes. */
-	for (i = RTE_PMD_IXGBE_BYPASS_EVENT_START; i < RTE_DIM(events); i++) {
-
-		if (rte_pmd_ixgbe_bypass_event_show(port_id, i, &event_mode)) {
-			fprintf(stderr,
-				"\tFailed to get bypass mode for event = %s\n",
-				events[i]);
-		} else {
-			if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(event_mode))
-				event_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
-
-			printf("\tbypass event: %-16s = %s\n", events[i],
-				modes[event_mode]);
-		}
-	}
-#endif
-	if (rc != 0)
-		fprintf(stderr,
-			"\tFailed to get bypass configuration for port = %d\n",
-		       port_id);
-}
-
-static cmdline_parse_token_string_t cmd_showbypass_config_show =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
-			show, "show");
-static cmdline_parse_token_string_t cmd_showbypass_config_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_showbypass_config_config =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
-			config, "config");
-static cmdline_parse_token_num_t cmd_showbypass_config_port =
-	TOKEN_NUM_INITIALIZER(struct cmd_show_bypass_config_result,
-				port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_show_bypass_config = {
-	.f = cmd_show_bypass_config_parsed,
-	.help_str = "show bypass config <port_id>: "
-	            "Show the NIC bypass config for port_id",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_showbypass_config_show,
-		(void *)&cmd_showbypass_config_bypass,
-		(void *)&cmd_showbypass_config_config,
-		(void *)&cmd_showbypass_config_port,
-		NULL,
-	},
-};
-
 #ifdef RTE_NET_BOND
 /* *** SET BONDING MODE *** */
 struct cmd_set_bonding_mode_result {
@@ -11767,100 +11383,6 @@ static cmdline_parse_inst_t cmd_set_all_queues_drop_en = {
 	},
 };
 
-/* vf split drop enable configuration */
-
-/* Common result structure for vf split drop enable */
-struct cmd_vf_split_drop_en_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t split;
-	cmdline_fixed_string_t drop;
-	portid_t port_id;
-	uint16_t vf_id;
-	cmdline_fixed_string_t on_off;
-};
-
-/* Common CLI fields for vf split drop enable disable */
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 split, "split");
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 drop, "drop");
-static cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 vf_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 on_off, "on#off");
-
-static void
-cmd_set_vf_split_drop_en_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_split_drop_en_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_IXGBE
-	ret = rte_pmd_ixgbe_set_vf_split_drop_en(res->port_id, res->vf_id,
-			is_on);
-#endif
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
-			res->vf_id, is_on);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", res->port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
-	.f = cmd_set_vf_split_drop_en_parsed,
-	.data = NULL,
-	.help_str = "set vf split drop <port_id> <vf_id> on|off",
-	.tokens = {
-		(void *)&cmd_vf_split_drop_en_set,
-		(void *)&cmd_vf_split_drop_en_vf,
-		(void *)&cmd_vf_split_drop_en_split,
-		(void *)&cmd_vf_split_drop_en_drop,
-		(void *)&cmd_vf_split_drop_en_port_id,
-		(void *)&cmd_vf_split_drop_en_vf_id,
-		(void *)&cmd_vf_split_drop_en_on_off,
-		NULL,
-	},
-};
-
 /* vf mac address configuration */
 
 /* Common result structure for vf mac address */
@@ -11965,431 +11487,6 @@ static cmdline_parse_inst_t cmd_set_vf_mac_addr = {
 	},
 };
 
-/* MACsec configuration */
-
-/* Common result structure for MACsec offload enable */
-struct cmd_macsec_offload_on_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t offload;
-	portid_t port_id;
-	cmdline_fixed_string_t on;
-	cmdline_fixed_string_t encrypt;
-	cmdline_fixed_string_t en_on_off;
-	cmdline_fixed_string_t replay_protect;
-	cmdline_fixed_string_t rp_on_off;
-};
-
-/* Common CLI fields for MACsec offload disable */
-static cmdline_parse_token_string_t cmd_macsec_offload_on_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 offload, "offload");
-static cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_macsec_offload_on_on =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 on, "on");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 encrypt, "encrypt");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 en_on_off, "on#off");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 replay_protect, "replay-protect");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 rp_on_off, "on#off");
-
-static void
-cmd_set_macsec_offload_on_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_offload_on_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	portid_t port_id = res->port_id;
-	int en = (strcmp(res->en_on_off, "on") == 0) ? 1 : 0;
-	int rp = (strcmp(res->rp_on_off, "on") == 0) ? 1 : 0;
-	struct rte_eth_dev_info dev_info;
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (!port_is_stopped(port_id)) {
-		fprintf(stderr, "Please stop port %d first\n", port_id);
-		return;
-	}
-
-	ret = eth_dev_info_get_print_err(port_id, &dev_info);
-	if (ret != 0)
-		return;
-
-	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT) {
-#ifdef RTE_NET_IXGBE
-		ret = rte_pmd_ixgbe_macsec_enable(port_id, en, rp);
-#endif
-	}
-	RTE_SET_USED(en);
-	RTE_SET_USED(rp);
-
-	switch (ret) {
-	case 0:
-		ports[port_id].dev_conf.txmode.offloads |=
-						RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
-		cmd_reconfig_device_queue(port_id, 1, 1);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_offload_on = {
-	.f = cmd_set_macsec_offload_on_parsed,
-	.data = NULL,
-	.help_str = "set macsec offload <port_id> on "
-		"encrypt on|off replay-protect on|off",
-	.tokens = {
-		(void *)&cmd_macsec_offload_on_set,
-		(void *)&cmd_macsec_offload_on_macsec,
-		(void *)&cmd_macsec_offload_on_offload,
-		(void *)&cmd_macsec_offload_on_port_id,
-		(void *)&cmd_macsec_offload_on_on,
-		(void *)&cmd_macsec_offload_on_encrypt,
-		(void *)&cmd_macsec_offload_on_en_on_off,
-		(void *)&cmd_macsec_offload_on_replay_protect,
-		(void *)&cmd_macsec_offload_on_rp_on_off,
-		NULL,
-	},
-};
-
-/* Common result structure for MACsec offload disable */
-struct cmd_macsec_offload_off_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t offload;
-	portid_t port_id;
-	cmdline_fixed_string_t off;
-};
-
-/* Common CLI fields for MACsec offload disable */
-static cmdline_parse_token_string_t cmd_macsec_offload_off_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 offload, "offload");
-static cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_macsec_offload_off_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 off, "off");
-
-static void
-cmd_set_macsec_offload_off_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_offload_off_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	struct rte_eth_dev_info dev_info;
-	portid_t port_id = res->port_id;
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (!port_is_stopped(port_id)) {
-		fprintf(stderr, "Please stop port %d first\n", port_id);
-		return;
-	}
-
-	ret = eth_dev_info_get_print_err(port_id, &dev_info);
-	if (ret != 0)
-		return;
-
-	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT) {
-#ifdef RTE_NET_IXGBE
-		ret = rte_pmd_ixgbe_macsec_disable(port_id);
-#endif
-	}
-	switch (ret) {
-	case 0:
-		ports[port_id].dev_conf.txmode.offloads &=
-						~RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
-		cmd_reconfig_device_queue(port_id, 1, 1);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_offload_off = {
-	.f = cmd_set_macsec_offload_off_parsed,
-	.data = NULL,
-	.help_str = "set macsec offload <port_id> off",
-	.tokens = {
-		(void *)&cmd_macsec_offload_off_set,
-		(void *)&cmd_macsec_offload_off_macsec,
-		(void *)&cmd_macsec_offload_off_offload,
-		(void *)&cmd_macsec_offload_off_port_id,
-		(void *)&cmd_macsec_offload_off_off,
-		NULL,
-	},
-};
-
-/* Common result structure for MACsec secure connection configure */
-struct cmd_macsec_sc_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t sc;
-	cmdline_fixed_string_t tx_rx;
-	portid_t port_id;
-	struct rte_ether_addr mac;
-	uint16_t pi;
-};
-
-/* Common CLI fields for MACsec secure connection configure */
-static cmdline_parse_token_string_t cmd_macsec_sc_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_sc_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_sc_sc =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 sc, "sc");
-static cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 tx_rx, "tx#rx");
-static cmdline_parse_token_num_t cmd_macsec_sc_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
-	TOKEN_ETHERADDR_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 mac);
-static cmdline_parse_token_num_t cmd_macsec_sc_pi =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 pi, RTE_UINT16);
-
-static void
-cmd_set_macsec_sc_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_sc_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
-
-#ifdef RTE_NET_IXGBE
-	ret = is_tx ?
-		rte_pmd_ixgbe_macsec_config_txsc(res->port_id,
-				res->mac.addr_bytes) :
-		rte_pmd_ixgbe_macsec_config_rxsc(res->port_id,
-				res->mac.addr_bytes, res->pi);
-#endif
-	RTE_SET_USED(is_tx);
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", res->port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_sc = {
-	.f = cmd_set_macsec_sc_parsed,
-	.data = NULL,
-	.help_str = "set macsec sc tx|rx <port_id> <mac> <pi>",
-	.tokens = {
-		(void *)&cmd_macsec_sc_set,
-		(void *)&cmd_macsec_sc_macsec,
-		(void *)&cmd_macsec_sc_sc,
-		(void *)&cmd_macsec_sc_tx_rx,
-		(void *)&cmd_macsec_sc_port_id,
-		(void *)&cmd_macsec_sc_mac,
-		(void *)&cmd_macsec_sc_pi,
-		NULL,
-	},
-};
-
-/* Common result structure for MACsec secure connection configure */
-struct cmd_macsec_sa_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t sa;
-	cmdline_fixed_string_t tx_rx;
-	portid_t port_id;
-	uint8_t idx;
-	uint8_t an;
-	uint32_t pn;
-	cmdline_fixed_string_t key;
-};
-
-/* Common CLI fields for MACsec secure connection configure */
-static cmdline_parse_token_string_t cmd_macsec_sa_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_sa_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_sa_sa =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 sa, "sa");
-static cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 tx_rx, "tx#rx");
-static cmdline_parse_token_num_t cmd_macsec_sa_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_macsec_sa_idx =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 idx, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_macsec_sa_an =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 an, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_macsec_sa_pn =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 pn, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_macsec_sa_key =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 key, NULL);
-
-static void
-cmd_set_macsec_sa_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_sa_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
-	uint8_t key[16] = { 0 };
-	uint8_t xdgt0;
-	uint8_t xdgt1;
-	int key_len;
-	int i;
-
-	key_len = strlen(res->key) / 2;
-	if (key_len > 16)
-		key_len = 16;
-
-	for (i = 0; i < key_len; i++) {
-		xdgt0 = parse_and_check_key_hexa_digit(res->key, (i * 2));
-		if (xdgt0 == 0xFF)
-			return;
-		xdgt1 = parse_and_check_key_hexa_digit(res->key, (i * 2) + 1);
-		if (xdgt1 == 0xFF)
-			return;
-		key[i] = (uint8_t) ((xdgt0 * 16) + xdgt1);
-	}
-
-#ifdef RTE_NET_IXGBE
-	ret = is_tx ?
-		rte_pmd_ixgbe_macsec_select_txsa(res->port_id,
-			res->idx, res->an, res->pn, key) :
-		rte_pmd_ixgbe_macsec_select_rxsa(res->port_id,
-			res->idx, res->an, res->pn, key);
-#endif
-	RTE_SET_USED(is_tx);
-	RTE_SET_USED(key);
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid idx %d or an %d\n", res->idx, res->an);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", res->port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_sa = {
-	.f = cmd_set_macsec_sa_parsed,
-	.data = NULL,
-	.help_str = "set macsec sa tx|rx <port_id> <idx> <an> <pn> <key>",
-	.tokens = {
-		(void *)&cmd_macsec_sa_set,
-		(void *)&cmd_macsec_sa_macsec,
-		(void *)&cmd_macsec_sa_sa,
-		(void *)&cmd_macsec_sa_tx_rx,
-		(void *)&cmd_macsec_sa_port_id,
-		(void *)&cmd_macsec_sa_idx,
-		(void *)&cmd_macsec_sa_an,
-		(void *)&cmd_macsec_sa_pn,
-		(void *)&cmd_macsec_sa_key,
-		NULL,
-	},
-};
-
 /* VF unicast promiscuous mode configuration */
 
 /* Common result structure for VF unicast promiscuous mode */
@@ -12982,68 +12079,6 @@ static cmdline_parse_inst_t cmd_vf_tc_min_bw = {
 	},
 };
 
-static void
-cmd_tc_min_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	struct rte_port *port;
-	uint8_t tc_num;
-	uint8_t bw[16];
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	port = &ports[res->port_id];
-	/** Check if the port is not started **/
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr, "Please stop port %d first\n", res->port_id);
-		return;
-	}
-
-	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
-	if (ret)
-		return;
-
-#ifdef RTE_NET_IXGBE
-	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid bandwidth\n");
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_tc_min_bw = {
-	.f = cmd_tc_min_bw_parsed,
-	.data = NULL,
-	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_tc,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_min_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_bw_list,
-		NULL,
-	},
-};
-
 /* TC max bandwidth setting */
 static void
 cmd_vf_tc_max_bw_parsed(
@@ -17938,10 +16973,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_allmulti_mode_all,
 	(cmdline_parse_inst_t *)&cmd_set_flush_rx,
 	(cmdline_parse_inst_t *)&cmd_set_link_check,
-	(cmdline_parse_inst_t *)&cmd_set_bypass_mode,
-	(cmdline_parse_inst_t *)&cmd_set_bypass_event,
-	(cmdline_parse_inst_t *)&cmd_set_bypass_timeout,
-	(cmdline_parse_inst_t *)&cmd_show_bypass_config,
 #ifdef RTE_NET_BOND
 	(cmdline_parse_inst_t *) &cmd_set_bonding_mode,
 	(cmdline_parse_inst_t *) &cmd_show_bonding_config,
@@ -18075,11 +17106,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_vf_vlan_insert,
 	(cmdline_parse_inst_t *)&cmd_set_tx_loopback,
 	(cmdline_parse_inst_t *)&cmd_set_all_queues_drop_en,
-	(cmdline_parse_inst_t *)&cmd_set_vf_split_drop_en,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_offload_on,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_offload_off,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_sc,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_sa,
 	(cmdline_parse_inst_t *)&cmd_set_vf_traffic,
 	(cmdline_parse_inst_t *)&cmd_set_vf_rxmode,
 	(cmdline_parse_inst_t *)&cmd_vf_rate_limit,
@@ -18093,7 +17119,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_vf_tc_min_bw,
 	(cmdline_parse_inst_t *)&cmd_vf_tc_max_bw,
 	(cmdline_parse_inst_t *)&cmd_strict_link_prio,
-	(cmdline_parse_inst_t *)&cmd_tc_min_bw,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan_tos_ttl,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan_with_vlan,
@@ -18280,7 +17305,7 @@ prompt_exit(void)
 	}
 }
 
-static void
+void
 cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue)
 {
 	if (id == (portid_t)RTE_PORT_ALL) {
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 205d98ee3d..4e8523f961 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -442,16 +442,6 @@ uint32_t event_print_mask = (UINT32_C(1) << RTE_ETH_EVENT_UNKNOWN) |
  */
 int do_mlockall = 0;
 
-/*
- * NIC bypass mode configuration options.
- */
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-/* The NIC bypass watchdog timeout. */
-uint32_t bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
-#endif
-
-
 #ifdef RTE_LIB_LATENCYSTATS
 
 /*
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index ab333c7324..00b9c4d9ca 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -459,10 +459,6 @@ extern uint8_t hot_plug; /**< enable by "--hot-plug" parameter */
 extern int do_mlockall; /**< set by "--mlockall" or "--no-mlockall" parameter */
 extern uint8_t clear_ptypes; /**< disabled by set ptype cmd */
 
-#ifdef RTE_LIBRTE_IXGBE_BYPASS
-extern uint32_t bypass_timeout; /**< Store the NIC bypass watchdog timeout */
-#endif
-
 /*
  * Store specified sockets on which memory pool to be used by ports
  * is allocated.
@@ -891,6 +887,7 @@ 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);
+void cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue);
 void cmdline_read_from_file(const char *filename);
 int init_cmdline(void);
 void prompt(void);
diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index ad1a3da610..ea4684c2dc 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -364,3 +364,98 @@ Supported Chipsets and NICs
 - Intel Ethernet Converged Network Adapter X540-T2
 - Intel Ethernet Converged Network Adapter X550-T1
 - Intel Ethernet Converged Network Adapter X550-T2
+
+.. _net_ixgbe_testpmd_commands:
+
+Testpmd driver specific commands
+--------------------------------
+
+Some ixgbe driver specific features are integrated in testpmd.
+
+set split drop enable (for VF)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set split drop enable bit for VF from PF::
+
+   testpmd> set vf split drop (port_id) (vf_id) (on|off)
+
+set macsec offload
+~~~~~~~~~~~~~~~~~~
+
+Enable/disable MACsec offload::
+
+   testpmd> set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)
+   testpmd> set macsec offload (port_id) off
+
+set macsec sc
+~~~~~~~~~~~~~
+
+Configure MACsec secure connection (SC)::
+
+   testpmd> set macsec sc (tx|rx) (port_id) (mac) (pi)
+
+.. note::
+
+   The pi argument is ignored for tx.
+   Check the NIC Datasheet for hardware limitations.
+
+set macsec sa
+~~~~~~~~~~~~~
+
+Configure MACsec secure association (SA)::
+
+   testpmd> set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)
+
+.. note::
+
+   The IDX value must be 0 or 1.
+   Check the NIC Datasheet for hardware limitations.
+
+set tc tx min bandwidth
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Set all TCs' TX min relative bandwidth (%) globally for all PF and VFs::
+
+   testpmd> set tc tx min-bandwidth (port_id) (bw1, bw2, ...)
+
+set bypass mode
+~~~~~~~~~~~~~~~
+
+Set the bypass mode for the lowest port on bypass enabled NIC::
+
+   testpmd> set bypass mode (normal|bypass|isolate) (port_id)
+
+set bypass event
+~~~~~~~~~~~~~~~~
+
+Set the event required to initiate specified bypass mode for the lowest port on a bypass enabled::
+
+   testpmd> set bypass event (timeout|os_on|os_off|power_on|power_off) \
+            mode (normal|bypass|isolate) (port_id)
+
+Where:
+
+* ``timeout``: Enable bypass after watchdog timeout.
+
+* ``os_on``: Enable bypass when OS/board is powered on.
+
+* ``os_off``: Enable bypass when OS/board is powered off.
+
+* ``power_on``: Enable bypass when power supply is turned on.
+
+* ``power_off``: Enable bypass when power supply is turned off.
+
+
+set bypass timeout
+~~~~~~~~~~~~~~~~~~
+
+Set the bypass watchdog timeout to ``n`` seconds where 0 = instant::
+
+   testpmd> set bypass timeout (0|1.5|2|3|4|8|16|32)
+
+show bypass config
+~~~~~~~~~~~~~~~~~~
+
+Show the bypass configuration for a bypass enabled NIC using the lowest port on the NIC::
+
+   testpmd> show bypass config (port_id)
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index f311b7d27b..bd9bbfa26e 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -951,13 +951,6 @@ set drop enable bit for all queues::
 
    testpmd> set all queues drop (port_id) (on|off)
 
-set split drop enable (for VF)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-set split drop enable bit for VF from PF::
-
-   testpmd> set vf split drop (port_id) (vf_id) (on|off)
-
 set mac antispoof (for VF)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -965,38 +958,6 @@ Set mac antispoof for a VF from the PF::
 
    testpmd> set vf mac antispoof  (port_id) (vf_id) (on|off)
 
-set macsec offload
-~~~~~~~~~~~~~~~~~~
-
-Enable/disable MACsec offload::
-
-   testpmd> set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)
-   testpmd> set macsec offload (port_id) off
-
-set macsec sc
-~~~~~~~~~~~~~
-
-Configure MACsec secure connection (SC)::
-
-   testpmd> set macsec sc (tx|rx) (port_id) (mac) (pi)
-
-.. note::
-
-   The pi argument is ignored for tx.
-   Check the NIC Datasheet for hardware limits.
-
-set macsec sa
-~~~~~~~~~~~~~
-
-Configure MACsec secure association (SA)::
-
-   testpmd> set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)
-
-.. note::
-
-   The IDX value must be 0 or 1.
-   Check the NIC Datasheet for hardware limits.
-
 set broadcast mode (for VF)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -1509,13 +1470,6 @@ Set some TCs' strict link priority mode on a physical port::
 
    testpmd> set tx strict-link-priority (port_id) (tc_bitmap)
 
-set tc tx min bandwidth
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Set all TCs' TX min relative bandwidth (%) globally for all PF and VFs::
-
-   testpmd> set tc tx min-bandwidth (port_id) (bw1, bw2, ...)
-
 set flow_ctrl rx
 ~~~~~~~~~~~~~~~~
 
@@ -1666,48 +1620,6 @@ Mainly used with PCAP drivers to turn off the default behavior of flushing the f
 
    testpmd> set flush_rx off
 
-set bypass mode
-~~~~~~~~~~~~~~~
-
-Set the bypass mode for the lowest port on bypass enabled NIC::
-
-   testpmd> set bypass mode (normal|bypass|isolate) (port_id)
-
-set bypass event
-~~~~~~~~~~~~~~~~
-
-Set the event required to initiate specified bypass mode for the lowest port on a bypass enabled::
-
-   testpmd> set bypass event (timeout|os_on|os_off|power_on|power_off) \
-            mode (normal|bypass|isolate) (port_id)
-
-Where:
-
-* ``timeout``: Enable bypass after watchdog timeout.
-
-* ``os_on``: Enable bypass when OS/board is powered on.
-
-* ``os_off``: Enable bypass when OS/board is powered off.
-
-* ``power_on``: Enable bypass when power supply is turned on.
-
-* ``power_off``: Enable bypass when power supply is turned off.
-
-
-set bypass timeout
-~~~~~~~~~~~~~~~~~~
-
-Set the bypass watchdog timeout to ``n`` seconds where 0 = instant::
-
-   testpmd> set bypass timeout (0|1.5|2|3|4|8|16|32)
-
-show bypass config
-~~~~~~~~~~~~~~~~~~
-
-Show the bypass configuration for a bypass enabled NIC using the lowest port on the NIC::
-
-   testpmd> show bypass config (port_id)
-
 set link up
 ~~~~~~~~~~~
 
@@ -5720,3 +5632,5 @@ Driver specific commands
 
 Some drivers provide specific features.
 See:
+
+- :ref:`net_ixgbe_testpmd_commands`
diff --git a/drivers/net/ixgbe/ixgbe_testpmd.c b/drivers/net/ixgbe/ixgbe_testpmd.c
new file mode 100644
index 0000000000..a928d0fb55
--- /dev/null
+++ b/drivers/net/ixgbe/ixgbe_testpmd.c
@@ -0,0 +1,1008 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2016 Intel Corporation.
+ */
+
+#include <ethdev_driver.h>
+#include "ixgbe_ethdev.h"
+#include "rte_pmd_ixgbe.h"
+
+#include <cmdline_parse_etheraddr.h>
+#include <cmdline_parse_num.h>
+#include <cmdline_parse_string.h>
+
+#include "testpmd.h"
+
+static uint8_t
+hexa_digit_to_value(char hexa_digit)
+{
+	if ((hexa_digit >= '0') && (hexa_digit <= '9'))
+		return (uint8_t)(hexa_digit - '0');
+	if ((hexa_digit >= 'a') && (hexa_digit <= 'f'))
+		return (uint8_t)((hexa_digit - 'a') + 10);
+	if ((hexa_digit >= 'A') && (hexa_digit <= 'F'))
+		return (uint8_t)((hexa_digit - 'A') + 10);
+	/* Invalid hexa digit */
+	return 0xFF;
+}
+
+static uint8_t
+parse_and_check_key_hexa_digit(char *key, int idx)
+{
+	uint8_t hexa_v;
+
+	hexa_v = hexa_digit_to_value(key[idx]);
+	if (hexa_v == 0xFF)
+		fprintf(stderr,
+			"invalid key: character %c at position %d is not a valid hexa digit\n",
+			key[idx], idx);
+	return hexa_v;
+}
+
+static int
+vf_tc_min_bw_parse_bw_list(uint8_t *bw_list, uint8_t *tc_num, char *str)
+{
+	uint32_t size;
+	const char *p, *p0 = str;
+	char s[256];
+	char *end;
+	char *str_fld[16];
+	uint16_t i;
+	int ret;
+
+	p = strchr(p0, '(');
+	if (p == NULL) {
+		fprintf(stderr, "The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	p++;
+	p0 = strchr(p, ')');
+	if (p0 == NULL) {
+		fprintf(stderr, "The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	size = p0 - p;
+	if (size >= sizeof(s)) {
+		fprintf(stderr, "The string size exceeds the internal buffer size\n");
+		return -1;
+	}
+	snprintf(s, sizeof(s), "%.*s", size, p);
+	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
+	if (ret <= 0) {
+		fprintf(stderr, "Failed to get the bandwidth list.\n");
+		return -1;
+	}
+	*tc_num = ret;
+	for (i = 0; i < ret; i++)
+		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
+
+	return 0;
+}
+
+/* Common result structure for vf split drop enable */
+struct cmd_vf_split_drop_en_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t split;
+	cmdline_fixed_string_t drop;
+	portid_t port_id;
+	uint16_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for vf split drop enable disable */
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		vf, "vf");
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		split, "split");
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		drop, "drop");
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		on_off, "on#off");
+
+static void
+cmd_set_vf_split_drop_en_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_vf_split_drop_en_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_ixgbe_set_vf_split_drop_en(res->port_id, res->vf_id, is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
+			res->vf_id, is_on);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", res->port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
+	.f = cmd_set_vf_split_drop_en_parsed,
+	.data = NULL,
+	.help_str = "set vf split drop <port_id> <vf_id> on|off",
+	.tokens = {
+		(void *)&cmd_vf_split_drop_en_set,
+		(void *)&cmd_vf_split_drop_en_vf,
+		(void *)&cmd_vf_split_drop_en_split,
+		(void *)&cmd_vf_split_drop_en_drop,
+		(void *)&cmd_vf_split_drop_en_port_id,
+		(void *)&cmd_vf_split_drop_en_vf_id,
+		(void *)&cmd_vf_split_drop_en_on_off,
+		NULL,
+	},
+};
+
+/* MACsec configuration */
+
+/* Common result structure for MACsec offload enable */
+struct cmd_macsec_offload_on_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t offload;
+	portid_t port_id;
+	cmdline_fixed_string_t on;
+	cmdline_fixed_string_t encrypt;
+	cmdline_fixed_string_t en_on_off;
+	cmdline_fixed_string_t replay_protect;
+	cmdline_fixed_string_t rp_on_off;
+};
+
+/* Common CLI fields for MACsec offload disable */
+static cmdline_parse_token_string_t cmd_macsec_offload_on_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		offload, "offload");
+static cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_offload_on_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_macsec_offload_on_on =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		on, "on");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		encrypt, "encrypt");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		en_on_off, "on#off");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		replay_protect, "replay-protect");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		rp_on_off, "on#off");
+
+static void
+cmd_set_macsec_offload_on_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_macsec_offload_on_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	portid_t port_id = res->port_id;
+	int en = (strcmp(res->en_on_off, "on") == 0) ? 1 : 0;
+	int rp = (strcmp(res->rp_on_off, "on") == 0) ? 1 : 0;
+	struct rte_eth_dev_info dev_info;
+
+	if (port_id_is_invalid(port_id, ENABLED_WARN))
+		return;
+	if (!port_is_stopped(port_id)) {
+		fprintf(stderr, "Please stop port %d first\n", port_id);
+		return;
+	}
+
+	ret = eth_dev_info_get_print_err(port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT)
+		ret = rte_pmd_ixgbe_macsec_enable(port_id, en, rp);
+
+	switch (ret) {
+	case 0:
+		ports[port_id].dev_conf.txmode.offloads |=
+						RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
+		cmd_reconfig_device_queue(port_id, 1, 1);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_macsec_offload_on = {
+	.f = cmd_set_macsec_offload_on_parsed,
+	.data = NULL,
+	.help_str = "set macsec offload <port_id> on "
+		"encrypt on|off replay-protect on|off",
+	.tokens = {
+		(void *)&cmd_macsec_offload_on_set,
+		(void *)&cmd_macsec_offload_on_macsec,
+		(void *)&cmd_macsec_offload_on_offload,
+		(void *)&cmd_macsec_offload_on_port_id,
+		(void *)&cmd_macsec_offload_on_on,
+		(void *)&cmd_macsec_offload_on_encrypt,
+		(void *)&cmd_macsec_offload_on_en_on_off,
+		(void *)&cmd_macsec_offload_on_replay_protect,
+		(void *)&cmd_macsec_offload_on_rp_on_off,
+		NULL,
+	},
+};
+
+/* Common result structure for MACsec offload disable */
+struct cmd_macsec_offload_off_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t offload;
+	portid_t port_id;
+	cmdline_fixed_string_t off;
+};
+
+/* Common CLI fields for MACsec offload disable */
+static cmdline_parse_token_string_t cmd_macsec_offload_off_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_off_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_off_result,
+		macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_off_result,
+		offload, "offload");
+static cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_offload_off_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_macsec_offload_off_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_off_result,
+		off, "off");
+
+static void
+cmd_set_macsec_offload_off_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_macsec_offload_off_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_eth_dev_info dev_info;
+	portid_t port_id = res->port_id;
+
+	if (port_id_is_invalid(port_id, ENABLED_WARN))
+		return;
+	if (!port_is_stopped(port_id)) {
+		fprintf(stderr, "Please stop port %d first\n", port_id);
+		return;
+	}
+
+	ret = eth_dev_info_get_print_err(port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT)
+		ret = rte_pmd_ixgbe_macsec_disable(port_id);
+	switch (ret) {
+	case 0:
+		ports[port_id].dev_conf.txmode.offloads &=
+						~RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
+		cmd_reconfig_device_queue(port_id, 1, 1);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_macsec_offload_off = {
+	.f = cmd_set_macsec_offload_off_parsed,
+	.data = NULL,
+	.help_str = "set macsec offload <port_id> off",
+	.tokens = {
+		(void *)&cmd_macsec_offload_off_set,
+		(void *)&cmd_macsec_offload_off_macsec,
+		(void *)&cmd_macsec_offload_off_offload,
+		(void *)&cmd_macsec_offload_off_port_id,
+		(void *)&cmd_macsec_offload_off_off,
+		NULL,
+	},
+};
+
+/* Common result structure for MACsec secure connection configure */
+struct cmd_macsec_sc_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t sc;
+	cmdline_fixed_string_t tx_rx;
+	portid_t port_id;
+	struct rte_ether_addr mac;
+	uint16_t pi;
+};
+
+/* Common CLI fields for MACsec secure connection configure */
+static cmdline_parse_token_string_t cmd_macsec_sc_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sc_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_macsec_sc_macsec =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sc_result,
+		macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_sc_sc =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sc_result,
+		sc, "sc");
+static cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sc_result,
+		tx_rx, "tx#rx");
+static cmdline_parse_token_num_t cmd_macsec_sc_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sc_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_macsec_sc_result,
+		mac);
+static cmdline_parse_token_num_t cmd_macsec_sc_pi =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sc_result,
+		pi, RTE_UINT16);
+
+static void
+cmd_set_macsec_sc_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_macsec_sc_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
+
+	ret = is_tx ?
+		rte_pmd_ixgbe_macsec_config_txsc(res->port_id,
+				res->mac.addr_bytes) :
+		rte_pmd_ixgbe_macsec_config_rxsc(res->port_id,
+				res->mac.addr_bytes, res->pi);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", res->port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_macsec_sc = {
+	.f = cmd_set_macsec_sc_parsed,
+	.data = NULL,
+	.help_str = "set macsec sc tx|rx <port_id> <mac> <pi>",
+	.tokens = {
+		(void *)&cmd_macsec_sc_set,
+		(void *)&cmd_macsec_sc_macsec,
+		(void *)&cmd_macsec_sc_sc,
+		(void *)&cmd_macsec_sc_tx_rx,
+		(void *)&cmd_macsec_sc_port_id,
+		(void *)&cmd_macsec_sc_mac,
+		(void *)&cmd_macsec_sc_pi,
+		NULL,
+	},
+};
+
+/* Common result structure for MACsec secure connection configure */
+struct cmd_macsec_sa_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t sa;
+	cmdline_fixed_string_t tx_rx;
+	portid_t port_id;
+	uint8_t idx;
+	uint8_t an;
+	uint32_t pn;
+	cmdline_fixed_string_t key;
+};
+
+/* Common CLI fields for MACsec secure connection configure */
+static cmdline_parse_token_string_t cmd_macsec_sa_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sa_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_macsec_sa_macsec =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sa_result,
+		macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_sa_sa =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sa_result,
+		sa, "sa");
+static cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sa_result,
+		tx_rx, "tx#rx");
+static cmdline_parse_token_num_t cmd_macsec_sa_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sa_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_macsec_sa_idx =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sa_result,
+		idx, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_macsec_sa_an =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sa_result,
+		an, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_macsec_sa_pn =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sa_result,
+		pn, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_macsec_sa_key =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sa_result,
+		key, NULL);
+
+static void
+cmd_set_macsec_sa_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_macsec_sa_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
+	uint8_t key[16] = { 0 };
+	uint8_t xdgt0;
+	uint8_t xdgt1;
+	int key_len;
+	int i;
+
+	key_len = strlen(res->key) / 2;
+	if (key_len > 16)
+		key_len = 16;
+
+	for (i = 0; i < key_len; i++) {
+		xdgt0 = parse_and_check_key_hexa_digit(res->key, (i * 2));
+		if (xdgt0 == 0xFF)
+			return;
+		xdgt1 = parse_and_check_key_hexa_digit(res->key, (i * 2) + 1);
+		if (xdgt1 == 0xFF)
+			return;
+		key[i] = (uint8_t)((xdgt0 * 16) + xdgt1);
+	}
+
+	ret = is_tx ?
+		rte_pmd_ixgbe_macsec_select_txsa(res->port_id,
+			res->idx, res->an, res->pn, key) :
+		rte_pmd_ixgbe_macsec_select_rxsa(res->port_id,
+			res->idx, res->an, res->pn, key);
+
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid idx %d or an %d\n", res->idx, res->an);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", res->port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+struct cmd_vf_tc_bw_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t tc;
+	cmdline_fixed_string_t tx;
+	cmdline_fixed_string_t min_bw;
+	portid_t port_id;
+	cmdline_fixed_string_t bw_list;
+};
+
+static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		tc, "tc");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		tx, "tx");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		min_bw, "min-bandwidth");
+static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_tc_bw_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		bw_list, NULL);
+
+static cmdline_parse_inst_t cmd_set_macsec_sa = {
+	.f = cmd_set_macsec_sa_parsed,
+	.data = NULL,
+	.help_str = "set macsec sa tx|rx <port_id> <idx> <an> <pn> <key>",
+	.tokens = {
+		(void *)&cmd_macsec_sa_set,
+		(void *)&cmd_macsec_sa_macsec,
+		(void *)&cmd_macsec_sa_sa,
+		(void *)&cmd_macsec_sa_tx_rx,
+		(void *)&cmd_macsec_sa_port_id,
+		(void *)&cmd_macsec_sa_idx,
+		(void *)&cmd_macsec_sa_an,
+		(void *)&cmd_macsec_sa_pn,
+		(void *)&cmd_macsec_sa_key,
+		NULL,
+	},
+};
+
+static void
+cmd_tc_min_bw_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	struct rte_port *port;
+	uint8_t tc_num;
+	uint8_t bw[16];
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	port = &ports[res->port_id];
+	/** Check if the port is not started **/
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr, "Please stop port %d first\n", res->port_id);
+		return;
+	}
+
+	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
+	if (ret)
+		return;
+
+	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
+
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid bandwidth\n");
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_tc_min_bw = {
+	.f = cmd_tc_min_bw_parsed,
+	.data = NULL,
+	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_tc,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_min_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_bw_list,
+		NULL,
+	},
+};
+
+/* The NIC bypass watchdog timeout. */
+uint32_t bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
+
+/* *** SET NIC BYPASS MODE *** */
+struct cmd_set_bypass_mode_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t value;
+	portid_t port_id;
+};
+
+static void
+cmd_set_bypass_mode_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bypass_mode_result *res = parsed_result;
+	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+	portid_t port_id = res->port_id;
+	int32_t rc = -EINVAL;
+
+	if (!strcmp(res->value, "bypass"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
+	else if (!strcmp(res->value, "isolate"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
+	else
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+
+	/* Set the bypass mode for the relevant port. */
+	rc = rte_pmd_ixgbe_bypass_state_set(port_id, &bypass_mode);
+	if (rc != 0)
+		fprintf(stderr, "\t Failed to set bypass mode for port = %d.\n",
+			port_id);
+}
+
+static cmdline_parse_token_string_t cmd_setbypass_mode_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+		bypass, "bypass");
+static cmdline_parse_token_string_t cmd_setbypass_mode_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+		mode, "mode");
+static cmdline_parse_token_string_t cmd_setbypass_mode_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+		value, "normal#bypass#isolate");
+static cmdline_parse_token_num_t cmd_setbypass_mode_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_mode_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_set_bypass_mode = {
+	.f = cmd_set_bypass_mode_parsed,
+	.help_str = "set bypass mode normal|bypass|isolate <port_id>: "
+		"Set the NIC bypass mode for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbypass_mode_set,
+		(void *)&cmd_setbypass_mode_bypass,
+		(void *)&cmd_setbypass_mode_mode,
+		(void *)&cmd_setbypass_mode_value,
+		(void *)&cmd_setbypass_mode_port,
+		NULL,
+	},
+};
+
+/* *** SET NIC BYPASS EVENT *** */
+struct cmd_set_bypass_event_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t event;
+	cmdline_fixed_string_t event_value;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t mode_value;
+	portid_t port_id;
+};
+
+static void
+cmd_set_bypass_event_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	int32_t rc = -EINVAL;
+	struct cmd_set_bypass_event_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	uint32_t bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
+	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+
+	if (!strcmp(res->event_value, "timeout"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT;
+	else if (!strcmp(res->event_value, "os_on"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_ON;
+	else if (!strcmp(res->event_value, "os_off"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_OFF;
+	else if (!strcmp(res->event_value, "power_on"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_ON;
+	else if (!strcmp(res->event_value, "power_off"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_OFF;
+	else
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
+
+	if (!strcmp(res->mode_value, "bypass"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
+	else if (!strcmp(res->mode_value, "isolate"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
+	else
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+
+	/* Set the watchdog timeout. */
+	if (bypass_event == RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT) {
+		rc = -EINVAL;
+		if (RTE_PMD_IXGBE_BYPASS_TMT_VALID(bypass_timeout)) {
+			rc = rte_pmd_ixgbe_bypass_wd_timeout_store(port_id,
+				bypass_timeout);
+		}
+		if (rc != 0) {
+			fprintf(stderr,
+				"Failed to set timeout value %u for port %d, errto code: %d.\n",
+				bypass_timeout, port_id, rc);
+		}
+	}
+
+	/* Set the bypass event to transition to bypass mode. */
+	rc = rte_pmd_ixgbe_bypass_event_store(port_id, bypass_event,
+		bypass_mode);
+	if (rc != 0)
+		fprintf(stderr, "\t Failed to set bypass event for port = %d.\n",
+			port_id);
+}
+
+static cmdline_parse_token_string_t cmd_setbypass_event_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbypass_event_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+		bypass, "bypass");
+static cmdline_parse_token_string_t cmd_setbypass_event_event =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+		event, "event");
+static cmdline_parse_token_string_t cmd_setbypass_event_event_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+		event_value, "none#timeout#os_off#os_on#power_on#power_off");
+static cmdline_parse_token_string_t cmd_setbypass_event_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+		mode, "mode");
+static cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+		mode_value, "normal#bypass#isolate");
+static cmdline_parse_token_num_t cmd_setbypass_event_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_event_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_set_bypass_event = {
+	.f = cmd_set_bypass_event_parsed,
+	.help_str = "set bypass event none|timeout|os_on|os_off|power_on|"
+		"power_off mode normal|bypass|isolate <port_id>: "
+		"Set the NIC bypass event mode for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbypass_event_set,
+		(void *)&cmd_setbypass_event_bypass,
+		(void *)&cmd_setbypass_event_event,
+		(void *)&cmd_setbypass_event_event_value,
+		(void *)&cmd_setbypass_event_mode,
+		(void *)&cmd_setbypass_event_mode_value,
+		(void *)&cmd_setbypass_event_port,
+		NULL,
+	},
+};
+
+
+/* *** SET NIC BYPASS TIMEOUT *** */
+struct cmd_set_bypass_timeout_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t timeout;
+	cmdline_fixed_string_t value;
+};
+
+static void
+cmd_set_bypass_timeout_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bypass_timeout_result *res = parsed_result;
+
+	if (!strcmp(res->value, "1.5"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_1_5_SEC;
+	else if (!strcmp(res->value, "2"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_2_SEC;
+	else if (!strcmp(res->value, "3"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_3_SEC;
+	else if (!strcmp(res->value, "4"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_4_SEC;
+	else if (!strcmp(res->value, "8"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_8_SEC;
+	else if (!strcmp(res->value, "16"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_16_SEC;
+	else if (!strcmp(res->value, "32"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_32_SEC;
+	else
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
+}
+
+static cmdline_parse_token_string_t cmd_setbypass_timeout_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+		bypass, "bypass");
+static cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+		timeout, "timeout");
+static cmdline_parse_token_string_t cmd_setbypass_timeout_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+		value, "0#1.5#2#3#4#8#16#32");
+
+static cmdline_parse_inst_t cmd_set_bypass_timeout = {
+	.f = cmd_set_bypass_timeout_parsed,
+	.help_str = "set bypass timeout 0|1.5|2|3|4|8|16|32: "
+		"Set the NIC bypass watchdog timeout in seconds",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbypass_timeout_set,
+		(void *)&cmd_setbypass_timeout_bypass,
+		(void *)&cmd_setbypass_timeout_timeout,
+		(void *)&cmd_setbypass_timeout_value,
+		NULL,
+	},
+};
+
+/* *** SHOW NIC BYPASS MODE *** */
+struct cmd_show_bypass_config_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t config;
+	portid_t port_id;
+};
+
+static void
+cmd_show_bypass_config_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_show_bypass_config_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	int rc = -EINVAL;
+	uint32_t event_mode;
+	uint32_t bypass_mode;
+	uint32_t timeout = bypass_timeout;
+	unsigned int i;
+
+	static const char * const timeouts[RTE_PMD_IXGBE_BYPASS_TMT_NUM] = {
+		"off", "1.5", "2", "3", "4", "8", "16", "32"
+	};
+	static const char * const modes[RTE_PMD_IXGBE_BYPASS_MODE_NUM] = {
+		"UNKNOWN", "normal", "bypass", "isolate"
+	};
+	static const char * const events[RTE_PMD_IXGBE_BYPASS_EVENT_NUM] = {
+		"NONE",
+		"OS/board on",
+		"power supply on",
+		"OS/board off",
+		"power supply off",
+		"timeout"};
+
+	/* Display the bypass mode.*/
+	if (rte_pmd_ixgbe_bypass_state_show(port_id, &bypass_mode) != 0) {
+		fprintf(stderr, "\tFailed to get bypass mode for port = %d\n",
+			port_id);
+		return;
+	}
+	if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(bypass_mode))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
+
+	printf("\tbypass mode    = %s\n",  modes[bypass_mode]);
+
+	/* Display the bypass timeout.*/
+	if (!RTE_PMD_IXGBE_BYPASS_TMT_VALID(timeout))
+		timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
+
+	printf("\tbypass timeout = %s\n", timeouts[timeout]);
+
+	/* Display the bypass events and associated modes. */
+	for (i = RTE_PMD_IXGBE_BYPASS_EVENT_START; i < RTE_DIM(events); i++) {
+		if (rte_pmd_ixgbe_bypass_event_show(port_id, i, &event_mode)) {
+			fprintf(stderr, "\tFailed to get bypass mode for event = %s\n",
+				events[i]);
+		} else {
+			if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(event_mode))
+				event_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
+
+			printf("\tbypass event: %-16s = %s\n", events[i],
+				modes[event_mode]);
+		}
+	}
+	if (rc != 0)
+		fprintf(stderr,
+			"\tFailed to get bypass configuration for port = %d\n",
+			port_id);
+}
+
+static cmdline_parse_token_string_t cmd_showbypass_config_show =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
+			show, "show");
+static cmdline_parse_token_string_t cmd_showbypass_config_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
+			bypass, "bypass");
+static cmdline_parse_token_string_t cmd_showbypass_config_config =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
+			config, "config");
+static cmdline_parse_token_num_t cmd_showbypass_config_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_show_bypass_config_result,
+				port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_show_bypass_config = {
+	.f = cmd_show_bypass_config_parsed,
+	.help_str = "show bypass config <port_id>: "
+		"Show the NIC bypass config for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_showbypass_config_show,
+		(void *)&cmd_showbypass_config_bypass,
+		(void *)&cmd_showbypass_config_config,
+		(void *)&cmd_showbypass_config_port,
+		NULL,
+	},
+};
+
+static struct testpmd_driver_commands ixgbe_cmds = {
+	.commands = {
+	{
+		&cmd_set_vf_split_drop_en,
+		"set vf split drop (port_id) (vf_id) (on|off)\n"
+		"    Set split drop enable bit for a VF from the PF.\n",
+	},
+	{
+		&cmd_set_macsec_offload_on,
+		"set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)\n"
+		"    Enable MACsec offload.\n",
+	},
+	{
+		&cmd_set_macsec_offload_off,
+		"set macsec offload (port_id) off\n"
+		"    Disable MACsec offload.\n",
+	},
+	{
+		&cmd_set_macsec_sc,
+		"set macsec sc (tx|rx) (port_id) (mac) (pi)\n"
+		"    Configure MACsec secure connection (SC).\n",
+	},
+	{
+		&cmd_set_macsec_sa,
+		"set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)\n"
+		"    Configure MACsec secure association (SA).\n",
+	},
+	{
+		&cmd_tc_min_bw,
+		"set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\n"
+		"    Set all TCs' min bandwidth(%%) for all PF and VFs.\n",
+	},
+	{
+		&cmd_set_bypass_mode,
+		"set bypass mode (normal|bypass|isolate) (port_id)\n"
+		"   Set the bypass mode for the lowest port on bypass enabled NIC.\n",
+	},
+	{
+		&cmd_set_bypass_event,
+		"set bypass event (timeout|os_on|os_off|power_on|power_off) "
+		"mode (normal|bypass|isolate) (port_id)\n"
+		"   Set the event required to initiate specified bypass mode for"
+		" the lowest port on a bypass enabled NIC where:\n"
+		"       timeout   = enable bypass after watchdog timeout.\n"
+		"       os_on     = enable bypass when OS/board is powered on.\n"
+		"       os_off    = enable bypass when OS/board is powered off.\n"
+		"       power_on  = enable bypass when power supply is turned on.\n"
+		"       power_off = enable bypass when power supply is turned off."
+		"\n",
+	},
+	{
+		&cmd_set_bypass_timeout,
+		"set bypass timeout (0|1.5|2|3|4|8|16|32)\n"
+		"   Set the bypass watchdog timeout to 'n' seconds where 0 = instant.\n",
+	},
+	{
+		&cmd_show_bypass_config,
+		"show bypass config (port_id)\n"
+		"   Show the bypass configuration for a bypass enabled NIC"
+		" using the lowest port on the NIC.\n",
+	},
+	{ NULL, NULL },
+	},
+};
+TESTPMD_ADD_DRIVER_COMMANDS(ixgbe_cmds)
diff --git a/drivers/net/ixgbe/meson.build b/drivers/net/ixgbe/meson.build
index 162f8d5f46..a18908ef7c 100644
--- a/drivers/net/ixgbe/meson.build
+++ b/drivers/net/ixgbe/meson.build
@@ -20,6 +20,8 @@ sources = files(
         'rte_pmd_ixgbe.c',
 )
 
+testpmd_sources = files('ixgbe_testpmd.c')
+
 deps += ['hash', 'security']
 
 if arch_subdir == 'x86'
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [PATCH v2 3/3] net/ixgbe: move bypass init in a testpmd command
  2022-06-17  5:07     ` [PATCH v2 1/3] app/testpmd: restore " David Marchand
  2022-06-17  5:07       ` [PATCH v2 2/3] net/ixgbe: move testpmd commands David Marchand
@ 2022-06-17  5:07       ` David Marchand
  2022-06-20 19:04         ` Ferruh Yigit
  1 sibling, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-06-17  5:07 UTC (permalink / raw)
  To: dev; +Cc: Xiaoyun Li, Aman Singh, Yuying Zhang, Qiming Yang, Wenjun Wu

Introduce a new command and remove the last part of specific port init
from testpmd.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/meson.build          |  1 -
 app/test-pmd/testpmd.c            |  4 --
 doc/guides/nics/ixgbe.rst         |  7 +++
 drivers/net/ixgbe/ixgbe_testpmd.c | 82 +++++++++++++++++++++++++++++++
 4 files changed, 89 insertions(+), 5 deletions(-)

diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index 69c7595a45..d13e98125e 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -68,7 +68,6 @@ if dpdk_conf.has('RTE_NET_I40E')
     deps += 'net_i40e'
 endif
 if dpdk_conf.has('RTE_NET_IXGBE')
-    cflags += ['-DRTE_LIBRTE_IXGBE_BYPASS']
     deps += 'net_ixgbe'
 endif
 if dpdk_conf.has('RTE_NET_DPAA')
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 4e8523f961..e11e2e2cb8 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -3949,10 +3949,6 @@ init_port_config(void)
 		if (ret != 0)
 			return;
 
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-		rte_pmd_ixgbe_bypass_init(pid);
-#endif
-
 		if (lsc_interrupt && (*port->dev_info.dev_flags & RTE_ETH_DEV_INTR_LSC))
 			port->dev_conf.intr_conf.lsc = 1;
 		if (rmv_interrupt && (*port->dev_info.dev_flags & RTE_ETH_DEV_INTR_RMV))
diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index ea4684c2dc..d450fc1ca0 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -418,6 +418,13 @@ Set all TCs' TX min relative bandwidth (%) globally for all PF and VFs::
 
    testpmd> set tc tx min-bandwidth (port_id) (bw1, bw2, ...)
 
+port config bypass
+~~~~~~~~~~~~~~~~~~
+
+Enable/disable bypass feature::
+
+   port config bypass (port_id) (on|off)
+
 set bypass mode
 ~~~~~~~~~~~~~~~
 
diff --git a/drivers/net/ixgbe/ixgbe_testpmd.c b/drivers/net/ixgbe/ixgbe_testpmd.c
index a928d0fb55..e0d161eafe 100644
--- a/drivers/net/ixgbe/ixgbe_testpmd.c
+++ b/drivers/net/ixgbe/ixgbe_testpmd.c
@@ -2,6 +2,9 @@
  * Copyright(c) 2010-2016 Intel Corporation.
  */
 
+/* Required for ixgbe internal structures to be aligned with the driver */
+#define RTE_LIBRTE_IXGBE_BYPASS
+
 #include <ethdev_driver.h>
 #include "ixgbe_ethdev.h"
 #include "rte_pmd_ixgbe.h"
@@ -618,6 +621,71 @@ static cmdline_parse_inst_t cmd_tc_min_bw = {
 /* The NIC bypass watchdog timeout. */
 uint32_t bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
 
+static inline bool
+check_bypass_enabled(portid_t port_id)
+{
+	struct ixgbe_adapter *adapter;
+
+	adapter = rte_eth_devices[port_id].data->dev_private;
+	if (adapter->bps.ops.bypass_rw == NULL) {
+		fprintf(stderr, "Bypass is not enabled on this port.\n");
+		return false;
+	}
+
+	return true;
+}
+
+/* Enable bypass mode */
+struct cmd_config_bypass_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t config;
+	cmdline_fixed_string_t bypass;
+	portid_t port_id;
+	cmdline_fixed_string_t value;
+};
+
+static void
+cmd_config_bypass_parsed(void *parsed_result,
+		      __rte_unused struct cmdline *cl,
+		      __rte_unused void *data)
+{
+	struct cmd_config_bypass_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+
+	if (ports[port_id].port_status == RTE_PORT_STARTED) {
+		fprintf(stderr, "Cannot change bypass configuration while port is started, please stop it and retry\n");
+		return;
+	}
+
+	if (strcmp(res->value, "on") == 0)
+		rte_pmd_ixgbe_bypass_init(port_id);
+}
+
+static cmdline_parse_token_string_t cmd_config_bypass_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, port, "port");
+static cmdline_parse_token_string_t cmd_config_bypass_config =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, config, "config");
+static cmdline_parse_token_string_t cmd_config_bypass_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, bypass, "bypass");
+static cmdline_parse_token_num_t cmd_config_bypass_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_config_bypass_result, port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_config_bypass_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, value, "on#off");
+
+static cmdline_parse_inst_t cmd_config_bypass = {
+	.f = cmd_config_bypass_parsed,
+	.data = NULL,
+	.help_str = "port config bypass <port_id> on|off",
+	.tokens = {
+		(void *)&cmd_config_bypass_port,
+		(void *)&cmd_config_bypass_config,
+		(void *)&cmd_config_bypass_bypass,
+		(void *)&cmd_config_bypass_port_id,
+		(void *)&cmd_config_bypass_value,
+		NULL,
+	},
+};
+
 /* *** SET NIC BYPASS MODE *** */
 struct cmd_set_bypass_mode_result {
 	cmdline_fixed_string_t set;
@@ -636,6 +704,9 @@ cmd_set_bypass_mode_parsed(void *parsed_result,
 	portid_t port_id = res->port_id;
 	int32_t rc = -EINVAL;
 
+	if (!check_bypass_enabled(port_id))
+		return;
+
 	if (!strcmp(res->value, "bypass"))
 		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
 	else if (!strcmp(res->value, "isolate"))
@@ -702,6 +773,9 @@ cmd_set_bypass_event_parsed(void *parsed_result,
 	uint32_t bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
 	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
 
+	if (!check_bypass_enabled(port_id))
+		return;
+
 	if (!strcmp(res->event_value, "timeout"))
 		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT;
 	else if (!strcmp(res->event_value, "os_on"))
@@ -878,6 +952,9 @@ cmd_show_bypass_config_parsed(void *parsed_result,
 		"power supply off",
 		"timeout"};
 
+	if (!check_bypass_enabled(port_id))
+		return;
+
 	/* Display the bypass mode.*/
 	if (rte_pmd_ixgbe_bypass_state_show(port_id, &bypass_mode) != 0) {
 		fprintf(stderr, "\tFailed to get bypass mode for port = %d\n",
@@ -973,6 +1050,11 @@ static struct testpmd_driver_commands ixgbe_cmds = {
 		"set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\n"
 		"    Set all TCs' min bandwidth(%%) for all PF and VFs.\n",
 	},
+	{
+		&cmd_config_bypass,
+		"port config bypass (port_id) (on|off)\n"
+		"   Enable/disable bypass before starting the port\n",
+	},
 	{
 		&cmd_set_bypass_mode,
 		"set bypass mode (normal|bypass|isolate) (port_id)\n"
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* Re: [PATCH v2] net/i40e: move testpmd commands
  2022-06-17  5:07     ` [PATCH v2] " David Marchand
@ 2022-06-20 17:53       ` Ferruh Yigit
  0 siblings, 0 replies; 65+ messages in thread
From: Ferruh Yigit @ 2022-06-20 17:53 UTC (permalink / raw)
  To: David Marchand, dev; +Cc: Xiaoyun Li, Aman Singh, Yuying Zhang, Beilei Xing

On 6/17/2022 6:07 AM, David Marchand wrote:
> Move related specific testpmd commands into this driver directory.
> While at it, fix checkpatch warnings.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>

Acked-by: Ferruh Yigit <ferruh.yigit@xilinx.com>

Applied to dpdk-next-net/main, thanks.


> @@ -5720,3 +5544,5 @@ Driver specific commands
>   
>   Some drivers provide specific features.
>   See:
> +
> +- :ref:`net_i40e_testpmd_commands`

To have link text more distinctive, updating as following while merging:

- :ref:`net/i40e testpmd driver specific commands 
<net_i40e_testpmd_commands>`

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH v2] net/bonding: move testpmd commands
  2022-06-17  5:06     ` [PATCH v2] " David Marchand
@ 2022-06-20 17:53       ` Ferruh Yigit
  0 siblings, 0 replies; 65+ messages in thread
From: Ferruh Yigit @ 2022-06-20 17:53 UTC (permalink / raw)
  To: David Marchand, dev
  Cc: Xiaoyun Li, Aman Singh, Yuying Zhang, Chas Williams, Min Hu (Connor)

On 6/17/2022 6:06 AM, David Marchand wrote:
> Move related specific testpmd commands into this driver directory.
> While at it, fix checkpatch warnings.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>

Acked-by: Ferruh Yigit <ferruh.yigit@xilinx.com>

Applied to dpdk-next-net/main, thanks.


> @@ -5720,3 +5584,5 @@ 


>   
>   Some drivers provide specific features.
>   See:
> +
> +- :ref:`bonding_testpmd_commands`

With above usage the link text becomes same for multiple entries,
output becomes like following:

"
4.16. Driver specific commands
Some drivers provide specific features. See:

Testpmd driver specific commands
Testpmd driver specific commands
"

To have link text more distinctive, updating as following while merging:

:ref:`net/bonding testpmd driver specific commands 
<bonding_testpmd_commands>`

The output will become:
"
4.16. Driver specific commands
Some drivers provide specific features. See:

net/bonding testpmd driver specific commands
net/i40e testpmd driver specific commands
"

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH v2 3/3] net/ixgbe: move bypass init in a testpmd command
  2022-06-17  5:07       ` [PATCH v2 3/3] net/ixgbe: move bypass init in a testpmd command David Marchand
@ 2022-06-20 19:04         ` Ferruh Yigit
  2022-06-23 12:35           ` Zhang, Qi Z
  0 siblings, 1 reply; 65+ messages in thread
From: Ferruh Yigit @ 2022-06-20 19:04 UTC (permalink / raw)
  To: Qiming Yang, Wenjun Wu, Jiang, YuX
  Cc: Xiaoyun Li, Aman Singh, Yuying Zhang, dev, David Marchand, Qi Z Zhang

On 6/17/2022 6:07 AM, David Marchand wrote:
> Introduce a new command and remove the last part of specific port init
> from testpmd.
> 
> Signed-off-by: David Marchand<david.marchand@redhat.com>
> ---
>   app/test-pmd/meson.build          |  1 -
>   app/test-pmd/testpmd.c            |  4 --
>   doc/guides/nics/ixgbe.rst         |  7 +++
>   drivers/net/ixgbe/ixgbe_testpmd.c | 82 +++++++++++++++++++++++++++++++
>   4 files changed, 89 insertions(+), 5 deletions(-)
> 
> diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
> index 69c7595a45..d13e98125e 100644
> --- a/app/test-pmd/meson.build
> +++ b/app/test-pmd/meson.build
> @@ -68,7 +68,6 @@ if dpdk_conf.has('RTE_NET_I40E')
>       deps += 'net_i40e'
>   endif
>   if dpdk_conf.has('RTE_NET_IXGBE')
> -    cflags += ['-DRTE_LIBRTE_IXGBE_BYPASS']
>       deps += 'net_ixgbe'
>   endif
>   if dpdk_conf.has('RTE_NET_DPAA')
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
> index 4e8523f961..e11e2e2cb8 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -3949,10 +3949,6 @@ init_port_config(void)
>   		if (ret != 0)
>   			return;
>   
> -#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
> -		rte_pmd_ixgbe_bypass_init(pid);
> -#endif
> -
>   		if (lsc_interrupt && (*port->dev_info.dev_flags & RTE_ETH_DEV_INTR_LSC))
>   			port->dev_conf.intr_conf.lsc = 1;
>   		if (rmv_interrupt && (*port->dev_info.dev_flags & RTE_ETH_DEV_INTR_RMV))
> diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
> index ea4684c2dc..d450fc1ca0 100644
> --- a/doc/guides/nics/ixgbe.rst
> +++ b/doc/guides/nics/ixgbe.rst
> @@ -418,6 +418,13 @@ Set all TCs' TX min relative bandwidth (%) globally for all PF and VFs::
>   
>      testpmd> set tc tx min-bandwidth (port_id) (bw1, bw2, ...)
>   
> +port config bypass
> +~~~~~~~~~~~~~~~~~~
> +
> +Enable/disable bypass feature::
> +
> +   port config bypass (port_id) (on|off)
> +

Hi Qiming, Wenjun, Yu,

For me changes looks good but this set changes ixgbe bypass 
configuration in testpmd, instead of it being enabled by default, now an 
explicit command needs to be issued. This also can affect bypass testing.

Can you please test/comment on the set for the ixgbe bypass? For both 
functional and dts testing perspective?

Thanks,
ferruh

^ permalink raw reply	[flat|nested] 65+ messages in thread

* RE: [PATCH v2 3/3] net/ixgbe: move bypass init in a testpmd command
  2022-06-20 19:04         ` Ferruh Yigit
@ 2022-06-23 12:35           ` Zhang, Qi Z
  0 siblings, 0 replies; 65+ messages in thread
From: Zhang, Qi Z @ 2022-06-23 12:35 UTC (permalink / raw)
  To: Ferruh Yigit, Yang, Qiming, Wu, Wenjun1, Jiang, YuX
  Cc: Li, Xiaoyun, Singh, Aman Deep, Zhang, Yuying, dev, David Marchand



> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@xilinx.com>
> Sent: Tuesday, June 21, 2022 3:04 AM
> To: Yang, Qiming <qiming.yang@intel.com>; Wu, Wenjun1
> <wenjun1.wu@intel.com>; Jiang, YuX <yux.jiang@intel.com>
> Cc: Li, Xiaoyun <xiaoyun.li@intel.com>; Singh, Aman Deep
> <aman.deep.singh@intel.com>; Zhang, Yuying <yuying.zhang@intel.com>;
> dev@dpdk.org; David Marchand <david.marchand@redhat.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>
> Subject: Re: [PATCH v2 3/3] net/ixgbe: move bypass init in a testpmd command
> 
> On 6/17/2022 6:07 AM, David Marchand wrote:
> > Introduce a new command and remove the last part of specific port init
> > from testpmd.
> >
> > Signed-off-by: David Marchand<david.marchand@redhat.com>
> > ---
> >   app/test-pmd/meson.build          |  1 -
> >   app/test-pmd/testpmd.c            |  4 --
> >   doc/guides/nics/ixgbe.rst         |  7 +++
> >   drivers/net/ixgbe/ixgbe_testpmd.c | 82
> +++++++++++++++++++++++++++++++
> >   4 files changed, 89 insertions(+), 5 deletions(-)
> >
> > diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build index
> > 69c7595a45..d13e98125e 100644
> > --- a/app/test-pmd/meson.build
> > +++ b/app/test-pmd/meson.build
> > @@ -68,7 +68,6 @@ if dpdk_conf.has('RTE_NET_I40E')
> >       deps += 'net_i40e'
> >   endif
> >   if dpdk_conf.has('RTE_NET_IXGBE')
> > -    cflags += ['-DRTE_LIBRTE_IXGBE_BYPASS']
> >       deps += 'net_ixgbe'
> >   endif
> >   if dpdk_conf.has('RTE_NET_DPAA')
> > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index
> > 4e8523f961..e11e2e2cb8 100644
> > --- a/app/test-pmd/testpmd.c
> > +++ b/app/test-pmd/testpmd.c
> > @@ -3949,10 +3949,6 @@ init_port_config(void)
> >   		if (ret != 0)
> >   			return;
> >
> > -#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
> > -		rte_pmd_ixgbe_bypass_init(pid);
> > -#endif
> > -
> >   		if (lsc_interrupt && (*port->dev_info.dev_flags &
> RTE_ETH_DEV_INTR_LSC))
> >   			port->dev_conf.intr_conf.lsc = 1;
> >   		if (rmv_interrupt && (*port->dev_info.dev_flags &
> > RTE_ETH_DEV_INTR_RMV)) diff --git a/doc/guides/nics/ixgbe.rst
> > b/doc/guides/nics/ixgbe.rst index ea4684c2dc..d450fc1ca0 100644
> > --- a/doc/guides/nics/ixgbe.rst
> > +++ b/doc/guides/nics/ixgbe.rst
> > @@ -418,6 +418,13 @@ Set all TCs' TX min relative bandwidth (%) globally
> for all PF and VFs::
> >
> >      testpmd> set tc tx min-bandwidth (port_id) (bw1, bw2, ...)
> >
> > +port config bypass
> > +~~~~~~~~~~~~~~~~~~
> > +
> > +Enable/disable bypass feature::
> > +
> > +   port config bypass (port_id) (on|off)
> > +
> 
> Hi Qiming, Wenjun, Yu,
> 
> For me changes looks good but this set changes ixgbe bypass configuration in
> testpmd, instead of it being enabled by default, now an explicit command needs
> to be issued. This also can affect bypass testing.
> 
> Can you please test/comment on the set for the ixgbe bypass? For both
> functional and dts testing perspective?

Thanks for capture this, after internal discussion, though we think its low risk but we prefer to hold on this patch merge before get the result of a ixgbe regression test.

If we missed RC2, we should be able to capture it in RC3.

Thanks
Qi

> 
> Thanks,
> ferruh

^ permalink raw reply	[flat|nested] 65+ messages in thread

* [PATCH v3 1/3] app/testpmd: restore ixgbe bypass commands
  2022-05-23  7:10   ` [PATCH 5/6] app/testpmd: drop ixgbe bypass commands David Marchand
  2022-05-23 18:10     ` Ferruh Yigit
  2022-06-17  5:07     ` [PATCH v2 1/3] app/testpmd: restore " David Marchand
@ 2022-07-21  8:05     ` David Marchand
  2022-07-21  8:05       ` [PATCH v3 2/3] net/ixgbe: move testpmd commands David Marchand
                         ` (2 more replies)
  2 siblings, 3 replies; 65+ messages in thread
From: David Marchand @ 2022-07-21  8:05 UTC (permalink / raw)
  To: dev
  Cc: stable, Aman Singh, Yuying Zhang, Keith Wiles, Luca Boccassi,
	Harry van Haaren, Bruce Richardson

Since the switch to meson, ixgbe bypass commands were ineffective as the
RTE_LIBRTE_IXGBE_BYPASS build flag was not set, even though the
net/ixgbe driver had this feature compiled in.

Fixes: 16ade738fd0d ("app/testpmd: build with meson")
Cc: stable@dpdk.org

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/meson.build | 1 +
 1 file changed, 1 insertion(+)

diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index 74399178dd..12df1f8eec 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -65,6 +65,7 @@ if dpdk_conf.has('RTE_NET_I40E')
     deps += 'net_i40e'
 endif
 if dpdk_conf.has('RTE_NET_IXGBE')
+    cflags += ['-DRTE_LIBRTE_IXGBE_BYPASS']
     deps += 'net_ixgbe'
 endif
 if dpdk_conf.has('RTE_NET_DPAA')
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [PATCH v3 2/3] net/ixgbe: move testpmd commands
  2022-07-21  8:05     ` [PATCH v3 1/3] app/testpmd: restore ixgbe bypass commands David Marchand
@ 2022-07-21  8:05       ` David Marchand
  2022-07-21  8:05       ` [PATCH v3 3/3] net/ixgbe: move bypass init in a testpmd command David Marchand
  2022-08-25 11:44       ` [PATCH v3 1/3] app/testpmd: restore ixgbe bypass commands Ferruh Yigit
  2 siblings, 0 replies; 65+ messages in thread
From: David Marchand @ 2022-07-21  8:05 UTC (permalink / raw)
  To: dev; +Cc: Aman Singh, Yuying Zhang, Qiming Yang, Wenjun Wu

Move related specific testpmd commands into this driver directory.
The bypass init is left in testpmd at this point and can be moved later.
While at it, fix checkpatch warnings.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since v2:
- rebased,

Changes since v1:
- rebased on next-net,
- updated link in documentation to directly point at commands,
- moved bypass code but separated bypass init change in the next patch,

Changes since RFC v2:
- dropped bypass commands,
- updated documentation,
- fixed some indent,

---
 app/test-pmd/cmdline.c                      | 1057 +------------------
 app/test-pmd/testpmd.c                      |   10 -
 app/test-pmd/testpmd.h                      |    5 +-
 doc/guides/nics/ixgbe.rst                   |   95 ++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |   89 +-
 drivers/net/ixgbe/ixgbe_testpmd.c           | 1008 ++++++++++++++++++
 drivers/net/ixgbe/meson.build               |    2 +
 7 files changed, 1108 insertions(+), 1158 deletions(-)
 create mode 100644 drivers/net/ixgbe/ixgbe_testpmd.c

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index b4fe9dfb17..fb1f532c57 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -69,8 +69,6 @@ static cmdline_parse_ctx_t *main_ctx;
 static TAILQ_HEAD(, testpmd_driver_commands) driver_commands_head =
 	TAILQ_HEAD_INITIALIZER(driver_commands_head);
 
-static void cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue);
-
 /* *** Help command with introduction. *** */
 struct cmd_help_brief_result {
 	cmdline_fixed_string_t help;
@@ -335,24 +333,9 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set all queues drop (port_id) (on|off)\n"
 			"    Set drop enable bit for all queues.\n\n"
 
-			"set vf split drop (port_id) (vf_id) (on|off)\n"
-			"    Set split drop enable bit for a VF from the PF.\n\n"
-
 			"set vf mac antispoof (port_id) (vf_id) (on|off).\n"
 			"    Set MAC antispoof for a VF from the PF.\n\n"
 
-			"set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)\n"
-			"    Enable MACsec offload.\n\n"
-
-			"set macsec offload (port_id) off\n"
-			"    Disable MACsec offload.\n\n"
-
-			"set macsec sc (tx|rx) (port_id) (mac) (pi)\n"
-			"    Configure MACsec secure connection (SC).\n\n"
-
-			"set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)\n"
-			"    Configure MACsec secure association (SA).\n\n"
-
 			"vlan set stripq (on|off) (port_id,queue_id)\n"
 			"    Set the VLAN strip for a queue on a port.\n\n"
 
@@ -365,9 +348,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set vf vlan antispoof (port_id) (vf_id) (on|off)\n"
 			"    Set VLAN antispoof for a VF from the PF.\n\n"
 
-			"set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\n"
-			"    Set all TCs' min bandwidth(%%) for all PF and VFs.\n\n"
-
 			"vlan set (strip|filter|qinq_strip|extend) (on|off) (port_id)\n"
 			"    Set the VLAN strip or filter or qinq strip or extend\n\n"
 
@@ -557,29 +537,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"   Flush (default) or don't flush RX streams before"
 			" forwarding. Mainly used with PCAP drivers.\n\n"
 
-			"set bypass mode (normal|bypass|isolate) (port_id)\n"
-			"   Set the bypass mode for the lowest port on bypass enabled"
-			" NIC.\n\n"
-
-			"set bypass event (timeout|os_on|os_off|power_on|power_off) "
-			"mode (normal|bypass|isolate) (port_id)\n"
-			"   Set the event required to initiate specified bypass mode for"
-			" the lowest port on a bypass enabled NIC where:\n"
-			"       timeout   = enable bypass after watchdog timeout.\n"
-			"       os_on     = enable bypass when OS/board is powered on.\n"
-			"       os_off    = enable bypass when OS/board is powered off.\n"
-			"       power_on  = enable bypass when power supply is turned on.\n"
-			"       power_off = enable bypass when power supply is turned off."
-			"\n\n"
-
-			"set bypass timeout (0|1.5|2|3|4|8|16|32)\n"
-			"   Set the bypass watchdog timeout to 'n' seconds"
-			" where 0 = instant.\n\n"
-
-			"show bypass config (port_id)\n"
-			"   Show the bypass configuration for a bypass enabled NIC"
-			" using the lowest port on the NIC.\n\n"
-
 			"set link-up port (port_id)\n"
 			"	Set link up for a port.\n\n"
 
@@ -5404,347 +5361,6 @@ static cmdline_parse_inst_t cmd_set_link_check = {
 	},
 };
 
-/* *** SET NIC BYPASS MODE *** */
-struct cmd_set_bypass_mode_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t mode;
-	cmdline_fixed_string_t value;
-	portid_t port_id;
-};
-
-static void
-cmd_set_bypass_mode_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_set_bypass_mode_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	int32_t rc = -EINVAL;
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	if (!strcmp(res->value, "bypass"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
-	else if (!strcmp(res->value, "isolate"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
-	else
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	/* Set the bypass mode for the relevant port. */
-	rc = rte_pmd_ixgbe_bypass_state_set(port_id, &bypass_mode);
-#endif
-	if (rc != 0)
-		fprintf(stderr, "\t Failed to set bypass mode for port = %d.\n",
-			port_id);
-}
-
-static cmdline_parse_token_string_t cmd_setbypass_mode_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			set, "set");
-static cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_setbypass_mode_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			mode, "mode");
-static cmdline_parse_token_string_t cmd_setbypass_mode_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
-			value, "normal#bypass#isolate");
-static cmdline_parse_token_num_t cmd_setbypass_mode_port =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_mode_result,
-				port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_set_bypass_mode = {
-	.f = cmd_set_bypass_mode_parsed,
-	.help_str = "set bypass mode normal|bypass|isolate <port_id>: "
-	            "Set the NIC bypass mode for port_id",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_setbypass_mode_set,
-		(void *)&cmd_setbypass_mode_bypass,
-		(void *)&cmd_setbypass_mode_mode,
-		(void *)&cmd_setbypass_mode_value,
-		(void *)&cmd_setbypass_mode_port,
-		NULL,
-	},
-};
-
-/* *** SET NIC BYPASS EVENT *** */
-struct cmd_set_bypass_event_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t event;
-	cmdline_fixed_string_t event_value;
-	cmdline_fixed_string_t mode;
-	cmdline_fixed_string_t mode_value;
-	portid_t port_id;
-};
-
-static void
-cmd_set_bypass_event_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	int32_t rc = -EINVAL;
-	struct cmd_set_bypass_event_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	uint32_t bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
-	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	if (!strcmp(res->event_value, "timeout"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT;
-	else if (!strcmp(res->event_value, "os_on"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_ON;
-	else if (!strcmp(res->event_value, "os_off"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_OFF;
-	else if (!strcmp(res->event_value, "power_on"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_ON;
-	else if (!strcmp(res->event_value, "power_off"))
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_OFF;
-	else
-		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
-
-	if (!strcmp(res->mode_value, "bypass"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
-	else if (!strcmp(res->mode_value, "isolate"))
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
-	else
-		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
-
-	/* Set the watchdog timeout. */
-	if (bypass_event == RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT) {
-
-		rc = -EINVAL;
-		if (RTE_PMD_IXGBE_BYPASS_TMT_VALID(bypass_timeout)) {
-			rc = rte_pmd_ixgbe_bypass_wd_timeout_store(port_id,
-							   bypass_timeout);
-		}
-		if (rc != 0) {
-			fprintf(stderr,
-				"Failed to set timeout value %u for port %d, errto code: %d.\n",
-				bypass_timeout, port_id, rc);
-		}
-	}
-
-	/* Set the bypass event to transition to bypass mode. */
-	rc = rte_pmd_ixgbe_bypass_event_store(port_id, bypass_event,
-					      bypass_mode);
-#endif
-
-	if (rc != 0)
-		fprintf(stderr, "\t Failed to set bypass event for port = %d.\n",
-			port_id);
-}
-
-static cmdline_parse_token_string_t cmd_setbypass_event_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			set, "set");
-static cmdline_parse_token_string_t cmd_setbypass_event_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_setbypass_event_event =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			event, "event");
-static cmdline_parse_token_string_t cmd_setbypass_event_event_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			event_value, "none#timeout#os_off#os_on#power_on#power_off");
-static cmdline_parse_token_string_t cmd_setbypass_event_mode =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			mode, "mode");
-static cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
-			mode_value, "normal#bypass#isolate");
-static cmdline_parse_token_num_t cmd_setbypass_event_port =
-	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_event_result,
-				port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_set_bypass_event = {
-	.f = cmd_set_bypass_event_parsed,
-	.help_str = "set bypass event none|timeout|os_on|os_off|power_on|"
-		"power_off mode normal|bypass|isolate <port_id>: "
-		"Set the NIC bypass event mode for port_id",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_setbypass_event_set,
-		(void *)&cmd_setbypass_event_bypass,
-		(void *)&cmd_setbypass_event_event,
-		(void *)&cmd_setbypass_event_event_value,
-		(void *)&cmd_setbypass_event_mode,
-		(void *)&cmd_setbypass_event_mode_value,
-		(void *)&cmd_setbypass_event_port,
-		NULL,
-	},
-};
-
-
-/* *** SET NIC BYPASS TIMEOUT *** */
-struct cmd_set_bypass_timeout_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t timeout;
-	cmdline_fixed_string_t value;
-};
-
-static void
-cmd_set_bypass_timeout_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	__rte_unused struct cmd_set_bypass_timeout_result *res = parsed_result;
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	if (!strcmp(res->value, "1.5"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_1_5_SEC;
-	else if (!strcmp(res->value, "2"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_2_SEC;
-	else if (!strcmp(res->value, "3"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_3_SEC;
-	else if (!strcmp(res->value, "4"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_4_SEC;
-	else if (!strcmp(res->value, "8"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_8_SEC;
-	else if (!strcmp(res->value, "16"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_16_SEC;
-	else if (!strcmp(res->value, "32"))
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_32_SEC;
-	else
-		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
-#endif
-}
-
-static cmdline_parse_token_string_t cmd_setbypass_timeout_set =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			set, "set");
-static cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			timeout, "timeout");
-static cmdline_parse_token_string_t cmd_setbypass_timeout_value =
-	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
-			value, "0#1.5#2#3#4#8#16#32");
-
-static cmdline_parse_inst_t cmd_set_bypass_timeout = {
-	.f = cmd_set_bypass_timeout_parsed,
-	.help_str = "set bypass timeout 0|1.5|2|3|4|8|16|32: "
-		"Set the NIC bypass watchdog timeout in seconds",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_setbypass_timeout_set,
-		(void *)&cmd_setbypass_timeout_bypass,
-		(void *)&cmd_setbypass_timeout_timeout,
-		(void *)&cmd_setbypass_timeout_value,
-		NULL,
-	},
-};
-
-/* *** SHOW NIC BYPASS MODE *** */
-struct cmd_show_bypass_config_result {
-	cmdline_fixed_string_t show;
-	cmdline_fixed_string_t bypass;
-	cmdline_fixed_string_t config;
-	portid_t port_id;
-};
-
-static void
-cmd_show_bypass_config_parsed(void *parsed_result,
-		__rte_unused struct cmdline *cl,
-		__rte_unused void *data)
-{
-	struct cmd_show_bypass_config_result *res = parsed_result;
-	portid_t port_id = res->port_id;
-	int rc = -EINVAL;
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-	uint32_t event_mode;
-	uint32_t bypass_mode;
-	uint32_t timeout = bypass_timeout;
-	unsigned int i;
-
-	static const char * const timeouts[RTE_PMD_IXGBE_BYPASS_TMT_NUM] =
-		{"off", "1.5", "2", "3", "4", "8", "16", "32"};
-	static const char * const modes[RTE_PMD_IXGBE_BYPASS_MODE_NUM] =
-		{"UNKNOWN", "normal", "bypass", "isolate"};
-	static const char * const events[RTE_PMD_IXGBE_BYPASS_EVENT_NUM] = {
-		"NONE",
-		"OS/board on",
-		"power supply on",
-		"OS/board off",
-		"power supply off",
-		"timeout"};
-
-	/* Display the bypass mode.*/
-	if (rte_pmd_ixgbe_bypass_state_show(port_id, &bypass_mode) != 0) {
-		fprintf(stderr, "\tFailed to get bypass mode for port = %d\n",
-			port_id);
-		return;
-	}
-	else {
-		if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(bypass_mode))
-			bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
-
-		printf("\tbypass mode    = %s\n",  modes[bypass_mode]);
-	}
-
-	/* Display the bypass timeout.*/
-	if (!RTE_PMD_IXGBE_BYPASS_TMT_VALID(timeout))
-		timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
-
-	printf("\tbypass timeout = %s\n", timeouts[timeout]);
-
-	/* Display the bypass events and associated modes. */
-	for (i = RTE_PMD_IXGBE_BYPASS_EVENT_START; i < RTE_DIM(events); i++) {
-
-		if (rte_pmd_ixgbe_bypass_event_show(port_id, i, &event_mode)) {
-			fprintf(stderr,
-				"\tFailed to get bypass mode for event = %s\n",
-				events[i]);
-		} else {
-			if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(event_mode))
-				event_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
-
-			printf("\tbypass event: %-16s = %s\n", events[i],
-				modes[event_mode]);
-		}
-	}
-#endif
-	if (rc != 0)
-		fprintf(stderr,
-			"\tFailed to get bypass configuration for port = %d\n",
-		       port_id);
-}
-
-static cmdline_parse_token_string_t cmd_showbypass_config_show =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
-			show, "show");
-static cmdline_parse_token_string_t cmd_showbypass_config_bypass =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
-			bypass, "bypass");
-static cmdline_parse_token_string_t cmd_showbypass_config_config =
-	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
-			config, "config");
-static cmdline_parse_token_num_t cmd_showbypass_config_port =
-	TOKEN_NUM_INITIALIZER(struct cmd_show_bypass_config_result,
-				port_id, RTE_UINT16);
-
-static cmdline_parse_inst_t cmd_show_bypass_config = {
-	.f = cmd_show_bypass_config_parsed,
-	.help_str = "show bypass config <port_id>: "
-	            "Show the NIC bypass config for port_id",
-	.data = NULL,
-	.tokens = {
-		(void *)&cmd_showbypass_config_show,
-		(void *)&cmd_showbypass_config_bypass,
-		(void *)&cmd_showbypass_config_config,
-		(void *)&cmd_showbypass_config_port,
-		NULL,
-	},
-};
-
 /* *** SET FORWARDING MODE *** */
 struct cmd_set_fwd_mode_result {
 	cmdline_fixed_string_t set;
@@ -9967,100 +9583,6 @@ static cmdline_parse_inst_t cmd_set_all_queues_drop_en = {
 	},
 };
 
-/* vf split drop enable configuration */
-
-/* Common result structure for vf split drop enable */
-struct cmd_vf_split_drop_en_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t vf;
-	cmdline_fixed_string_t split;
-	cmdline_fixed_string_t drop;
-	portid_t port_id;
-	uint16_t vf_id;
-	cmdline_fixed_string_t on_off;
-};
-
-/* Common CLI fields for vf split drop enable disable */
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 vf, "vf");
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 split, "split");
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 drop, "drop");
-static cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 vf_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_split_drop_en_result,
-		 on_off, "on#off");
-
-static void
-cmd_set_vf_split_drop_en_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_split_drop_en_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-#ifdef RTE_NET_IXGBE
-	ret = rte_pmd_ixgbe_set_vf_split_drop_en(res->port_id, res->vf_id,
-			is_on);
-#endif
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
-			res->vf_id, is_on);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", res->port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
-	.f = cmd_set_vf_split_drop_en_parsed,
-	.data = NULL,
-	.help_str = "set vf split drop <port_id> <vf_id> on|off",
-	.tokens = {
-		(void *)&cmd_vf_split_drop_en_set,
-		(void *)&cmd_vf_split_drop_en_vf,
-		(void *)&cmd_vf_split_drop_en_split,
-		(void *)&cmd_vf_split_drop_en_drop,
-		(void *)&cmd_vf_split_drop_en_port_id,
-		(void *)&cmd_vf_split_drop_en_vf_id,
-		(void *)&cmd_vf_split_drop_en_on_off,
-		NULL,
-	},
-};
-
 /* vf mac address configuration */
 
 /* Common result structure for vf mac address */
@@ -10165,573 +9687,6 @@ static cmdline_parse_inst_t cmd_set_vf_mac_addr = {
 	},
 };
 
-/* MACsec configuration */
-
-/* Common result structure for MACsec offload enable */
-struct cmd_macsec_offload_on_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t offload;
-	portid_t port_id;
-	cmdline_fixed_string_t on;
-	cmdline_fixed_string_t encrypt;
-	cmdline_fixed_string_t en_on_off;
-	cmdline_fixed_string_t replay_protect;
-	cmdline_fixed_string_t rp_on_off;
-};
-
-/* Common CLI fields for MACsec offload disable */
-static cmdline_parse_token_string_t cmd_macsec_offload_on_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 offload, "offload");
-static cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_macsec_offload_on_on =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 on, "on");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 encrypt, "encrypt");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 en_on_off, "on#off");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 replay_protect, "replay-protect");
-static cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_on_result,
-		 rp_on_off, "on#off");
-
-static void
-cmd_set_macsec_offload_on_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_offload_on_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	portid_t port_id = res->port_id;
-	int en = (strcmp(res->en_on_off, "on") == 0) ? 1 : 0;
-	int rp = (strcmp(res->rp_on_off, "on") == 0) ? 1 : 0;
-	struct rte_eth_dev_info dev_info;
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (!port_is_stopped(port_id)) {
-		fprintf(stderr, "Please stop port %d first\n", port_id);
-		return;
-	}
-
-	ret = eth_dev_info_get_print_err(port_id, &dev_info);
-	if (ret != 0)
-		return;
-
-	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT) {
-#ifdef RTE_NET_IXGBE
-		ret = rte_pmd_ixgbe_macsec_enable(port_id, en, rp);
-#endif
-	}
-	RTE_SET_USED(en);
-	RTE_SET_USED(rp);
-
-	switch (ret) {
-	case 0:
-		ports[port_id].dev_conf.txmode.offloads |=
-						RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
-		cmd_reconfig_device_queue(port_id, 1, 1);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_offload_on = {
-	.f = cmd_set_macsec_offload_on_parsed,
-	.data = NULL,
-	.help_str = "set macsec offload <port_id> on "
-		"encrypt on|off replay-protect on|off",
-	.tokens = {
-		(void *)&cmd_macsec_offload_on_set,
-		(void *)&cmd_macsec_offload_on_macsec,
-		(void *)&cmd_macsec_offload_on_offload,
-		(void *)&cmd_macsec_offload_on_port_id,
-		(void *)&cmd_macsec_offload_on_on,
-		(void *)&cmd_macsec_offload_on_encrypt,
-		(void *)&cmd_macsec_offload_on_en_on_off,
-		(void *)&cmd_macsec_offload_on_replay_protect,
-		(void *)&cmd_macsec_offload_on_rp_on_off,
-		NULL,
-	},
-};
-
-/* Common result structure for MACsec offload disable */
-struct cmd_macsec_offload_off_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t offload;
-	portid_t port_id;
-	cmdline_fixed_string_t off;
-};
-
-/* Common CLI fields for MACsec offload disable */
-static cmdline_parse_token_string_t cmd_macsec_offload_off_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 offload, "offload");
-static cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_macsec_offload_off_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_offload_off_result,
-		 off, "off");
-
-static void
-cmd_set_macsec_offload_off_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_offload_off_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	struct rte_eth_dev_info dev_info;
-	portid_t port_id = res->port_id;
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN))
-		return;
-	if (!port_is_stopped(port_id)) {
-		fprintf(stderr, "Please stop port %d first\n", port_id);
-		return;
-	}
-
-	ret = eth_dev_info_get_print_err(port_id, &dev_info);
-	if (ret != 0)
-		return;
-
-	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT) {
-#ifdef RTE_NET_IXGBE
-		ret = rte_pmd_ixgbe_macsec_disable(port_id);
-#endif
-	}
-	switch (ret) {
-	case 0:
-		ports[port_id].dev_conf.txmode.offloads &=
-						~RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
-		cmd_reconfig_device_queue(port_id, 1, 1);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_offload_off = {
-	.f = cmd_set_macsec_offload_off_parsed,
-	.data = NULL,
-	.help_str = "set macsec offload <port_id> off",
-	.tokens = {
-		(void *)&cmd_macsec_offload_off_set,
-		(void *)&cmd_macsec_offload_off_macsec,
-		(void *)&cmd_macsec_offload_off_offload,
-		(void *)&cmd_macsec_offload_off_port_id,
-		(void *)&cmd_macsec_offload_off_off,
-		NULL,
-	},
-};
-
-/* Common result structure for MACsec secure connection configure */
-struct cmd_macsec_sc_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t sc;
-	cmdline_fixed_string_t tx_rx;
-	portid_t port_id;
-	struct rte_ether_addr mac;
-	uint16_t pi;
-};
-
-/* Common CLI fields for MACsec secure connection configure */
-static cmdline_parse_token_string_t cmd_macsec_sc_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_sc_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_sc_sc =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 sc, "sc");
-static cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 tx_rx, "tx#rx");
-static cmdline_parse_token_num_t cmd_macsec_sc_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
-	TOKEN_ETHERADDR_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 mac);
-static cmdline_parse_token_num_t cmd_macsec_sc_pi =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sc_result,
-		 pi, RTE_UINT16);
-
-static void
-cmd_set_macsec_sc_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_sc_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
-
-#ifdef RTE_NET_IXGBE
-	ret = is_tx ?
-		rte_pmd_ixgbe_macsec_config_txsc(res->port_id,
-				res->mac.addr_bytes) :
-		rte_pmd_ixgbe_macsec_config_rxsc(res->port_id,
-				res->mac.addr_bytes, res->pi);
-#endif
-	RTE_SET_USED(is_tx);
-
-	switch (ret) {
-	case 0:
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", res->port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_sc = {
-	.f = cmd_set_macsec_sc_parsed,
-	.data = NULL,
-	.help_str = "set macsec sc tx|rx <port_id> <mac> <pi>",
-	.tokens = {
-		(void *)&cmd_macsec_sc_set,
-		(void *)&cmd_macsec_sc_macsec,
-		(void *)&cmd_macsec_sc_sc,
-		(void *)&cmd_macsec_sc_tx_rx,
-		(void *)&cmd_macsec_sc_port_id,
-		(void *)&cmd_macsec_sc_mac,
-		(void *)&cmd_macsec_sc_pi,
-		NULL,
-	},
-};
-
-/* Common result structure for MACsec secure connection configure */
-struct cmd_macsec_sa_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t macsec;
-	cmdline_fixed_string_t sa;
-	cmdline_fixed_string_t tx_rx;
-	portid_t port_id;
-	uint8_t idx;
-	uint8_t an;
-	uint32_t pn;
-	cmdline_fixed_string_t key;
-};
-
-/* Common CLI fields for MACsec secure connection configure */
-static cmdline_parse_token_string_t cmd_macsec_sa_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_macsec_sa_macsec =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 macsec, "macsec");
-static cmdline_parse_token_string_t cmd_macsec_sa_sa =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 sa, "sa");
-static cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 tx_rx, "tx#rx");
-static cmdline_parse_token_num_t cmd_macsec_sa_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_num_t cmd_macsec_sa_idx =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 idx, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_macsec_sa_an =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 an, RTE_UINT8);
-static cmdline_parse_token_num_t cmd_macsec_sa_pn =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 pn, RTE_UINT32);
-static cmdline_parse_token_string_t cmd_macsec_sa_key =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_macsec_sa_result,
-		 key, NULL);
-
-static void
-cmd_set_macsec_sa_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_macsec_sa_result *res = parsed_result;
-	int ret = -ENOTSUP;
-	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
-	uint8_t key[16] = { 0 };
-	uint8_t xdgt0;
-	uint8_t xdgt1;
-	int key_len;
-	int i;
-
-	key_len = strlen(res->key) / 2;
-	if (key_len > 16)
-		key_len = 16;
-
-	for (i = 0; i < key_len; i++) {
-		xdgt0 = parse_and_check_key_hexa_digit(res->key, (i * 2));
-		if (xdgt0 == 0xFF)
-			return;
-		xdgt1 = parse_and_check_key_hexa_digit(res->key, (i * 2) + 1);
-		if (xdgt1 == 0xFF)
-			return;
-		key[i] = (uint8_t) ((xdgt0 * 16) + xdgt1);
-	}
-
-#ifdef RTE_NET_IXGBE
-	ret = is_tx ?
-		rte_pmd_ixgbe_macsec_select_txsa(res->port_id,
-			res->idx, res->an, res->pn, key) :
-		rte_pmd_ixgbe_macsec_select_rxsa(res->port_id,
-			res->idx, res->an, res->pn, key);
-#endif
-	RTE_SET_USED(is_tx);
-	RTE_SET_USED(key);
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid idx %d or an %d\n", res->idx, res->an);
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "not supported on port %d\n", res->port_id);
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_set_macsec_sa = {
-	.f = cmd_set_macsec_sa_parsed,
-	.data = NULL,
-	.help_str = "set macsec sa tx|rx <port_id> <idx> <an> <pn> <key>",
-	.tokens = {
-		(void *)&cmd_macsec_sa_set,
-		(void *)&cmd_macsec_sa_macsec,
-		(void *)&cmd_macsec_sa_sa,
-		(void *)&cmd_macsec_sa_tx_rx,
-		(void *)&cmd_macsec_sa_port_id,
-		(void *)&cmd_macsec_sa_idx,
-		(void *)&cmd_macsec_sa_an,
-		(void *)&cmd_macsec_sa_pn,
-		(void *)&cmd_macsec_sa_key,
-		NULL,
-	},
-};
-
-/* Common definition of VF and TC TX bandwidth configuration */
-struct cmd_vf_tc_bw_result {
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t tc;
-	cmdline_fixed_string_t tx;
-	cmdline_fixed_string_t min_bw;
-	portid_t port_id;
-	cmdline_fixed_string_t bw_list;
-};
-
-static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 set, "set");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tc, "tc");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 tx, "tx");
-static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 min_bw, "min-bandwidth");
-static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 port_id, RTE_UINT16);
-static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_vf_tc_bw_result,
-		 bw_list, NULL);
-
-static int
-vf_tc_min_bw_parse_bw_list(uint8_t *bw_list,
-			   uint8_t *tc_num,
-			   char *str)
-{
-	uint32_t size;
-	const char *p, *p0 = str;
-	char s[256];
-	char *end;
-	char *str_fld[16];
-	uint16_t i;
-	int ret;
-
-	p = strchr(p0, '(');
-	if (p == NULL) {
-		fprintf(stderr,
-			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
-		return -1;
-	}
-	p++;
-	p0 = strchr(p, ')');
-	if (p0 == NULL) {
-		fprintf(stderr,
-			"The bandwidth-list should be '(bw1, bw2, ...)'\n");
-		return -1;
-	}
-	size = p0 - p;
-	if (size >= sizeof(s)) {
-		fprintf(stderr,
-			"The string size exceeds the internal buffer size\n");
-		return -1;
-	}
-	snprintf(s, sizeof(s), "%.*s", size, p);
-	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
-	if (ret <= 0) {
-		fprintf(stderr, "Failed to get the bandwidth list.\n");
-		return -1;
-	}
-	*tc_num = ret;
-	for (i = 0; i < ret; i++)
-		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
-
-	return 0;
-}
-
-static void
-cmd_tc_min_bw_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_vf_tc_bw_result *res = parsed_result;
-	struct rte_port *port;
-	uint8_t tc_num;
-	uint8_t bw[16];
-	int ret = -ENOTSUP;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	port = &ports[res->port_id];
-	/** Check if the port is not started **/
-	if (port->port_status != RTE_PORT_STOPPED) {
-		fprintf(stderr, "Please stop port %d first\n", res->port_id);
-		return;
-	}
-
-	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
-	if (ret)
-		return;
-
-#ifdef RTE_NET_IXGBE
-	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
-#endif
-
-	switch (ret) {
-	case 0:
-		break;
-	case -EINVAL:
-		fprintf(stderr, "invalid bandwidth\n");
-		break;
-	case -ENODEV:
-		fprintf(stderr, "invalid port_id %d\n", res->port_id);
-		break;
-	case -ENOTSUP:
-		fprintf(stderr, "function not implemented\n");
-		break;
-	default:
-		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
-	}
-}
-
-static cmdline_parse_inst_t cmd_tc_min_bw = {
-	.f = cmd_tc_min_bw_parsed,
-	.data = NULL,
-	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
-	.tokens = {
-		(void *)&cmd_vf_tc_bw_set,
-		(void *)&cmd_vf_tc_bw_tc,
-		(void *)&cmd_vf_tc_bw_tx,
-		(void *)&cmd_vf_tc_bw_min_bw,
-		(void *)&cmd_vf_tc_bw_port_id,
-		(void *)&cmd_vf_tc_bw_bw_list,
-		NULL,
-	},
-};
-
 /** Set VXLAN encapsulation details */
 struct cmd_set_vxlan_result {
 	cmdline_fixed_string_t set;
@@ -14180,10 +13135,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_allmulti_mode_all,
 	(cmdline_parse_inst_t *)&cmd_set_flush_rx,
 	(cmdline_parse_inst_t *)&cmd_set_link_check,
-	(cmdline_parse_inst_t *)&cmd_set_bypass_mode,
-	(cmdline_parse_inst_t *)&cmd_set_bypass_event,
-	(cmdline_parse_inst_t *)&cmd_set_bypass_timeout,
-	(cmdline_parse_inst_t *)&cmd_show_bypass_config,
 	(cmdline_parse_inst_t *)&cmd_vlan_offload,
 	(cmdline_parse_inst_t *)&cmd_vlan_tpid,
 	(cmdline_parse_inst_t *)&cmd_rx_vlan_filter_all,
@@ -14304,17 +13255,11 @@ static cmdline_parse_ctx_t builtin_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_vf_vlan_insert,
 	(cmdline_parse_inst_t *)&cmd_set_tx_loopback,
 	(cmdline_parse_inst_t *)&cmd_set_all_queues_drop_en,
-	(cmdline_parse_inst_t *)&cmd_set_vf_split_drop_en,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_offload_on,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_offload_off,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_sc,
-	(cmdline_parse_inst_t *)&cmd_set_macsec_sa,
 	(cmdline_parse_inst_t *)&cmd_set_vf_traffic,
 	(cmdline_parse_inst_t *)&cmd_set_vf_rxmode,
 	(cmdline_parse_inst_t *)&cmd_vf_rate_limit,
 	(cmdline_parse_inst_t *)&cmd_vf_rxvlan_filter,
 	(cmdline_parse_inst_t *)&cmd_set_vf_mac_addr,
-	(cmdline_parse_inst_t *)&cmd_tc_min_bw,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan_tos_ttl,
 	(cmdline_parse_inst_t *)&cmd_set_vxlan_with_vlan,
@@ -14482,7 +13427,7 @@ prompt_exit(void)
 	}
 }
 
-static void
+void
 cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue)
 {
 	if (id == (portid_t)RTE_PORT_ALL) {
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index addcbcac85..51da386fe8 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -445,16 +445,6 @@ uint32_t event_print_mask = (UINT32_C(1) << RTE_ETH_EVENT_UNKNOWN) |
  */
 int do_mlockall = 0;
 
-/*
- * NIC bypass mode configuration options.
- */
-
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-/* The NIC bypass watchdog timeout. */
-uint32_t bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
-#endif
-
-
 #ifdef RTE_LIB_LATENCYSTATS
 
 /*
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index fb2f5195d3..e2cc5a1d5b 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -461,10 +461,6 @@ extern uint8_t hot_plug; /**< enable by "--hot-plug" parameter */
 extern int do_mlockall; /**< set by "--mlockall" or "--no-mlockall" parameter */
 extern uint8_t clear_ptypes; /**< disabled by set ptype cmd */
 
-#ifdef RTE_LIBRTE_IXGBE_BYPASS
-extern uint32_t bypass_timeout; /**< Store the NIC bypass watchdog timeout */
-#endif
-
 /*
  * Store specified sockets on which memory pool to be used by ports
  * is allocated.
@@ -893,6 +889,7 @@ 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);
+void cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue);
 void cmdline_read_from_file(const char *filename);
 int init_cmdline(void);
 void prompt(void);
diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index ad1a3da610..ea4684c2dc 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -364,3 +364,98 @@ Supported Chipsets and NICs
 - Intel Ethernet Converged Network Adapter X540-T2
 - Intel Ethernet Converged Network Adapter X550-T1
 - Intel Ethernet Converged Network Adapter X550-T2
+
+.. _net_ixgbe_testpmd_commands:
+
+Testpmd driver specific commands
+--------------------------------
+
+Some ixgbe driver specific features are integrated in testpmd.
+
+set split drop enable (for VF)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set split drop enable bit for VF from PF::
+
+   testpmd> set vf split drop (port_id) (vf_id) (on|off)
+
+set macsec offload
+~~~~~~~~~~~~~~~~~~
+
+Enable/disable MACsec offload::
+
+   testpmd> set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)
+   testpmd> set macsec offload (port_id) off
+
+set macsec sc
+~~~~~~~~~~~~~
+
+Configure MACsec secure connection (SC)::
+
+   testpmd> set macsec sc (tx|rx) (port_id) (mac) (pi)
+
+.. note::
+
+   The pi argument is ignored for tx.
+   Check the NIC Datasheet for hardware limitations.
+
+set macsec sa
+~~~~~~~~~~~~~
+
+Configure MACsec secure association (SA)::
+
+   testpmd> set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)
+
+.. note::
+
+   The IDX value must be 0 or 1.
+   Check the NIC Datasheet for hardware limitations.
+
+set tc tx min bandwidth
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Set all TCs' TX min relative bandwidth (%) globally for all PF and VFs::
+
+   testpmd> set tc tx min-bandwidth (port_id) (bw1, bw2, ...)
+
+set bypass mode
+~~~~~~~~~~~~~~~
+
+Set the bypass mode for the lowest port on bypass enabled NIC::
+
+   testpmd> set bypass mode (normal|bypass|isolate) (port_id)
+
+set bypass event
+~~~~~~~~~~~~~~~~
+
+Set the event required to initiate specified bypass mode for the lowest port on a bypass enabled::
+
+   testpmd> set bypass event (timeout|os_on|os_off|power_on|power_off) \
+            mode (normal|bypass|isolate) (port_id)
+
+Where:
+
+* ``timeout``: Enable bypass after watchdog timeout.
+
+* ``os_on``: Enable bypass when OS/board is powered on.
+
+* ``os_off``: Enable bypass when OS/board is powered off.
+
+* ``power_on``: Enable bypass when power supply is turned on.
+
+* ``power_off``: Enable bypass when power supply is turned off.
+
+
+set bypass timeout
+~~~~~~~~~~~~~~~~~~
+
+Set the bypass watchdog timeout to ``n`` seconds where 0 = instant::
+
+   testpmd> set bypass timeout (0|1.5|2|3|4|8|16|32)
+
+show bypass config
+~~~~~~~~~~~~~~~~~~
+
+Show the bypass configuration for a bypass enabled NIC using the lowest port on the NIC::
+
+   testpmd> show bypass config (port_id)
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index b0bb912455..942f015068 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -930,13 +930,6 @@ set drop enable bit for all queues::
 
    testpmd> set all queues drop (port_id) (on|off)
 
-set split drop enable (for VF)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-set split drop enable bit for VF from PF::
-
-   testpmd> set vf split drop (port_id) (vf_id) (on|off)
-
 set mac antispoof (for VF)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -944,38 +937,6 @@ Set mac antispoof for a VF from the PF::
 
    testpmd> set vf mac antispoof  (port_id) (vf_id) (on|off)
 
-set macsec offload
-~~~~~~~~~~~~~~~~~~
-
-Enable/disable MACsec offload::
-
-   testpmd> set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)
-   testpmd> set macsec offload (port_id) off
-
-set macsec sc
-~~~~~~~~~~~~~
-
-Configure MACsec secure connection (SC)::
-
-   testpmd> set macsec sc (tx|rx) (port_id) (mac) (pi)
-
-.. note::
-
-   The pi argument is ignored for tx.
-   Check the NIC Datasheet for hardware limits.
-
-set macsec sa
-~~~~~~~~~~~~~
-
-Configure MACsec secure association (SA)::
-
-   testpmd> set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)
-
-.. note::
-
-   The IDX value must be 0 or 1.
-   Check the NIC Datasheet for hardware limits.
-
 vlan set stripq
 ~~~~~~~~~~~~~~~
 
@@ -1384,13 +1345,6 @@ Set the allmulti mode for a port or for all ports::
 
 Same as the ifconfig (8) option. Controls how multicast packets are handled.
 
-set tc tx min bandwidth
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Set all TCs' TX min relative bandwidth (%) globally for all PF and VFs::
-
-   testpmd> set tc tx min-bandwidth (port_id) (bw1, bw2, ...)
-
 set flow_ctrl rx
 ~~~~~~~~~~~~~~~~
 
@@ -1541,48 +1495,6 @@ Mainly used with PCAP drivers to turn off the default behavior of flushing the f
 
    testpmd> set flush_rx off
 
-set bypass mode
-~~~~~~~~~~~~~~~
-
-Set the bypass mode for the lowest port on bypass enabled NIC::
-
-   testpmd> set bypass mode (normal|bypass|isolate) (port_id)
-
-set bypass event
-~~~~~~~~~~~~~~~~
-
-Set the event required to initiate specified bypass mode for the lowest port on a bypass enabled::
-
-   testpmd> set bypass event (timeout|os_on|os_off|power_on|power_off) \
-            mode (normal|bypass|isolate) (port_id)
-
-Where:
-
-* ``timeout``: Enable bypass after watchdog timeout.
-
-* ``os_on``: Enable bypass when OS/board is powered on.
-
-* ``os_off``: Enable bypass when OS/board is powered off.
-
-* ``power_on``: Enable bypass when power supply is turned on.
-
-* ``power_off``: Enable bypass when power supply is turned off.
-
-
-set bypass timeout
-~~~~~~~~~~~~~~~~~~
-
-Set the bypass watchdog timeout to ``n`` seconds where 0 = instant::
-
-   testpmd> set bypass timeout (0|1.5|2|3|4|8|16|32)
-
-show bypass config
-~~~~~~~~~~~~~~~~~~
-
-Show the bypass configuration for a bypass enabled NIC using the lowest port on the NIC::
-
-   testpmd> show bypass config (port_id)
-
 set link up
 ~~~~~~~~~~~
 
@@ -5449,3 +5361,4 @@ See:
 
 - :ref:`net/bonding testpmd driver specific commands <bonding_testpmd_commands>`
 - :ref:`net/i40e testpmd driver specific commands <net_i40e_testpmd_commands>`
+- :ref:`net/ixgbe testpmd driver specific commands <net_ixgbe_testpmd_commands>`
diff --git a/drivers/net/ixgbe/ixgbe_testpmd.c b/drivers/net/ixgbe/ixgbe_testpmd.c
new file mode 100644
index 0000000000..a928d0fb55
--- /dev/null
+++ b/drivers/net/ixgbe/ixgbe_testpmd.c
@@ -0,0 +1,1008 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2016 Intel Corporation.
+ */
+
+#include <ethdev_driver.h>
+#include "ixgbe_ethdev.h"
+#include "rte_pmd_ixgbe.h"
+
+#include <cmdline_parse_etheraddr.h>
+#include <cmdline_parse_num.h>
+#include <cmdline_parse_string.h>
+
+#include "testpmd.h"
+
+static uint8_t
+hexa_digit_to_value(char hexa_digit)
+{
+	if ((hexa_digit >= '0') && (hexa_digit <= '9'))
+		return (uint8_t)(hexa_digit - '0');
+	if ((hexa_digit >= 'a') && (hexa_digit <= 'f'))
+		return (uint8_t)((hexa_digit - 'a') + 10);
+	if ((hexa_digit >= 'A') && (hexa_digit <= 'F'))
+		return (uint8_t)((hexa_digit - 'A') + 10);
+	/* Invalid hexa digit */
+	return 0xFF;
+}
+
+static uint8_t
+parse_and_check_key_hexa_digit(char *key, int idx)
+{
+	uint8_t hexa_v;
+
+	hexa_v = hexa_digit_to_value(key[idx]);
+	if (hexa_v == 0xFF)
+		fprintf(stderr,
+			"invalid key: character %c at position %d is not a valid hexa digit\n",
+			key[idx], idx);
+	return hexa_v;
+}
+
+static int
+vf_tc_min_bw_parse_bw_list(uint8_t *bw_list, uint8_t *tc_num, char *str)
+{
+	uint32_t size;
+	const char *p, *p0 = str;
+	char s[256];
+	char *end;
+	char *str_fld[16];
+	uint16_t i;
+	int ret;
+
+	p = strchr(p0, '(');
+	if (p == NULL) {
+		fprintf(stderr, "The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	p++;
+	p0 = strchr(p, ')');
+	if (p0 == NULL) {
+		fprintf(stderr, "The bandwidth-list should be '(bw1, bw2, ...)'\n");
+		return -1;
+	}
+	size = p0 - p;
+	if (size >= sizeof(s)) {
+		fprintf(stderr, "The string size exceeds the internal buffer size\n");
+		return -1;
+	}
+	snprintf(s, sizeof(s), "%.*s", size, p);
+	ret = rte_strsplit(s, sizeof(s), str_fld, 16, ',');
+	if (ret <= 0) {
+		fprintf(stderr, "Failed to get the bandwidth list.\n");
+		return -1;
+	}
+	*tc_num = ret;
+	for (i = 0; i < ret; i++)
+		bw_list[i] = (uint8_t)strtoul(str_fld[i], &end, 0);
+
+	return 0;
+}
+
+/* Common result structure for vf split drop enable */
+struct cmd_vf_split_drop_en_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t vf;
+	cmdline_fixed_string_t split;
+	cmdline_fixed_string_t drop;
+	portid_t port_id;
+	uint16_t vf_id;
+	cmdline_fixed_string_t on_off;
+};
+
+/* Common CLI fields for vf split drop enable disable */
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_vf =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		vf, "vf");
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_split =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		split, "split");
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_drop =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		drop, "drop");
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_vf_split_drop_en_vf_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		vf_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_vf_split_drop_en_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_split_drop_en_result,
+		on_off, "on#off");
+
+static void
+cmd_set_vf_split_drop_en_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_vf_split_drop_en_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int is_on = (strcmp(res->on_off, "on") == 0) ? 1 : 0;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	ret = rte_pmd_ixgbe_set_vf_split_drop_en(res->port_id, res->vf_id, is_on);
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid vf_id %d or is_on %d\n",
+			res->vf_id, is_on);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", res->port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_vf_split_drop_en = {
+	.f = cmd_set_vf_split_drop_en_parsed,
+	.data = NULL,
+	.help_str = "set vf split drop <port_id> <vf_id> on|off",
+	.tokens = {
+		(void *)&cmd_vf_split_drop_en_set,
+		(void *)&cmd_vf_split_drop_en_vf,
+		(void *)&cmd_vf_split_drop_en_split,
+		(void *)&cmd_vf_split_drop_en_drop,
+		(void *)&cmd_vf_split_drop_en_port_id,
+		(void *)&cmd_vf_split_drop_en_vf_id,
+		(void *)&cmd_vf_split_drop_en_on_off,
+		NULL,
+	},
+};
+
+/* MACsec configuration */
+
+/* Common result structure for MACsec offload enable */
+struct cmd_macsec_offload_on_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t offload;
+	portid_t port_id;
+	cmdline_fixed_string_t on;
+	cmdline_fixed_string_t encrypt;
+	cmdline_fixed_string_t en_on_off;
+	cmdline_fixed_string_t replay_protect;
+	cmdline_fixed_string_t rp_on_off;
+};
+
+/* Common CLI fields for MACsec offload disable */
+static cmdline_parse_token_string_t cmd_macsec_offload_on_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_macsec =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_offload =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		offload, "offload");
+static cmdline_parse_token_num_t cmd_macsec_offload_on_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_offload_on_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_macsec_offload_on_on =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		on, "on");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_encrypt =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		encrypt, "encrypt");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_en_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		en_on_off, "on#off");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_replay_protect =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		replay_protect, "replay-protect");
+static cmdline_parse_token_string_t cmd_macsec_offload_on_rp_on_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_on_result,
+		rp_on_off, "on#off");
+
+static void
+cmd_set_macsec_offload_on_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_macsec_offload_on_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	portid_t port_id = res->port_id;
+	int en = (strcmp(res->en_on_off, "on") == 0) ? 1 : 0;
+	int rp = (strcmp(res->rp_on_off, "on") == 0) ? 1 : 0;
+	struct rte_eth_dev_info dev_info;
+
+	if (port_id_is_invalid(port_id, ENABLED_WARN))
+		return;
+	if (!port_is_stopped(port_id)) {
+		fprintf(stderr, "Please stop port %d first\n", port_id);
+		return;
+	}
+
+	ret = eth_dev_info_get_print_err(port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT)
+		ret = rte_pmd_ixgbe_macsec_enable(port_id, en, rp);
+
+	switch (ret) {
+	case 0:
+		ports[port_id].dev_conf.txmode.offloads |=
+						RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
+		cmd_reconfig_device_queue(port_id, 1, 1);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_macsec_offload_on = {
+	.f = cmd_set_macsec_offload_on_parsed,
+	.data = NULL,
+	.help_str = "set macsec offload <port_id> on "
+		"encrypt on|off replay-protect on|off",
+	.tokens = {
+		(void *)&cmd_macsec_offload_on_set,
+		(void *)&cmd_macsec_offload_on_macsec,
+		(void *)&cmd_macsec_offload_on_offload,
+		(void *)&cmd_macsec_offload_on_port_id,
+		(void *)&cmd_macsec_offload_on_on,
+		(void *)&cmd_macsec_offload_on_encrypt,
+		(void *)&cmd_macsec_offload_on_en_on_off,
+		(void *)&cmd_macsec_offload_on_replay_protect,
+		(void *)&cmd_macsec_offload_on_rp_on_off,
+		NULL,
+	},
+};
+
+/* Common result structure for MACsec offload disable */
+struct cmd_macsec_offload_off_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t offload;
+	portid_t port_id;
+	cmdline_fixed_string_t off;
+};
+
+/* Common CLI fields for MACsec offload disable */
+static cmdline_parse_token_string_t cmd_macsec_offload_off_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_off_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_macsec_offload_off_macsec =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_off_result,
+		macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_offload_off_offload =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_off_result,
+		offload, "offload");
+static cmdline_parse_token_num_t cmd_macsec_offload_off_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_offload_off_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_macsec_offload_off_off =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_offload_off_result,
+		off, "off");
+
+static void
+cmd_set_macsec_offload_off_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_macsec_offload_off_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	struct rte_eth_dev_info dev_info;
+	portid_t port_id = res->port_id;
+
+	if (port_id_is_invalid(port_id, ENABLED_WARN))
+		return;
+	if (!port_is_stopped(port_id)) {
+		fprintf(stderr, "Please stop port %d first\n", port_id);
+		return;
+	}
+
+	ret = eth_dev_info_get_print_err(port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MACSEC_INSERT)
+		ret = rte_pmd_ixgbe_macsec_disable(port_id);
+	switch (ret) {
+	case 0:
+		ports[port_id].dev_conf.txmode.offloads &=
+						~RTE_ETH_TX_OFFLOAD_MACSEC_INSERT;
+		cmd_reconfig_device_queue(port_id, 1, 1);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_macsec_offload_off = {
+	.f = cmd_set_macsec_offload_off_parsed,
+	.data = NULL,
+	.help_str = "set macsec offload <port_id> off",
+	.tokens = {
+		(void *)&cmd_macsec_offload_off_set,
+		(void *)&cmd_macsec_offload_off_macsec,
+		(void *)&cmd_macsec_offload_off_offload,
+		(void *)&cmd_macsec_offload_off_port_id,
+		(void *)&cmd_macsec_offload_off_off,
+		NULL,
+	},
+};
+
+/* Common result structure for MACsec secure connection configure */
+struct cmd_macsec_sc_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t sc;
+	cmdline_fixed_string_t tx_rx;
+	portid_t port_id;
+	struct rte_ether_addr mac;
+	uint16_t pi;
+};
+
+/* Common CLI fields for MACsec secure connection configure */
+static cmdline_parse_token_string_t cmd_macsec_sc_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sc_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_macsec_sc_macsec =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sc_result,
+		macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_sc_sc =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sc_result,
+		sc, "sc");
+static cmdline_parse_token_string_t cmd_macsec_sc_tx_rx =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sc_result,
+		tx_rx, "tx#rx");
+static cmdline_parse_token_num_t cmd_macsec_sc_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sc_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_etheraddr_t cmd_macsec_sc_mac =
+	TOKEN_ETHERADDR_INITIALIZER(struct cmd_macsec_sc_result,
+		mac);
+static cmdline_parse_token_num_t cmd_macsec_sc_pi =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sc_result,
+		pi, RTE_UINT16);
+
+static void
+cmd_set_macsec_sc_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_macsec_sc_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
+
+	ret = is_tx ?
+		rte_pmd_ixgbe_macsec_config_txsc(res->port_id,
+				res->mac.addr_bytes) :
+		rte_pmd_ixgbe_macsec_config_rxsc(res->port_id,
+				res->mac.addr_bytes, res->pi);
+	switch (ret) {
+	case 0:
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", res->port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_set_macsec_sc = {
+	.f = cmd_set_macsec_sc_parsed,
+	.data = NULL,
+	.help_str = "set macsec sc tx|rx <port_id> <mac> <pi>",
+	.tokens = {
+		(void *)&cmd_macsec_sc_set,
+		(void *)&cmd_macsec_sc_macsec,
+		(void *)&cmd_macsec_sc_sc,
+		(void *)&cmd_macsec_sc_tx_rx,
+		(void *)&cmd_macsec_sc_port_id,
+		(void *)&cmd_macsec_sc_mac,
+		(void *)&cmd_macsec_sc_pi,
+		NULL,
+	},
+};
+
+/* Common result structure for MACsec secure connection configure */
+struct cmd_macsec_sa_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t macsec;
+	cmdline_fixed_string_t sa;
+	cmdline_fixed_string_t tx_rx;
+	portid_t port_id;
+	uint8_t idx;
+	uint8_t an;
+	uint32_t pn;
+	cmdline_fixed_string_t key;
+};
+
+/* Common CLI fields for MACsec secure connection configure */
+static cmdline_parse_token_string_t cmd_macsec_sa_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sa_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_macsec_sa_macsec =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sa_result,
+		macsec, "macsec");
+static cmdline_parse_token_string_t cmd_macsec_sa_sa =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sa_result,
+		sa, "sa");
+static cmdline_parse_token_string_t cmd_macsec_sa_tx_rx =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sa_result,
+		tx_rx, "tx#rx");
+static cmdline_parse_token_num_t cmd_macsec_sa_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sa_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_num_t cmd_macsec_sa_idx =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sa_result,
+		idx, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_macsec_sa_an =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sa_result,
+		an, RTE_UINT8);
+static cmdline_parse_token_num_t cmd_macsec_sa_pn =
+	TOKEN_NUM_INITIALIZER(struct cmd_macsec_sa_result,
+		pn, RTE_UINT32);
+static cmdline_parse_token_string_t cmd_macsec_sa_key =
+	TOKEN_STRING_INITIALIZER(struct cmd_macsec_sa_result,
+		key, NULL);
+
+static void
+cmd_set_macsec_sa_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_macsec_sa_result *res = parsed_result;
+	int ret = -ENOTSUP;
+	int is_tx = (strcmp(res->tx_rx, "tx") == 0) ? 1 : 0;
+	uint8_t key[16] = { 0 };
+	uint8_t xdgt0;
+	uint8_t xdgt1;
+	int key_len;
+	int i;
+
+	key_len = strlen(res->key) / 2;
+	if (key_len > 16)
+		key_len = 16;
+
+	for (i = 0; i < key_len; i++) {
+		xdgt0 = parse_and_check_key_hexa_digit(res->key, (i * 2));
+		if (xdgt0 == 0xFF)
+			return;
+		xdgt1 = parse_and_check_key_hexa_digit(res->key, (i * 2) + 1);
+		if (xdgt1 == 0xFF)
+			return;
+		key[i] = (uint8_t)((xdgt0 * 16) + xdgt1);
+	}
+
+	ret = is_tx ?
+		rte_pmd_ixgbe_macsec_select_txsa(res->port_id,
+			res->idx, res->an, res->pn, key) :
+		rte_pmd_ixgbe_macsec_select_rxsa(res->port_id,
+			res->idx, res->an, res->pn, key);
+
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid idx %d or an %d\n", res->idx, res->an);
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "not supported on port %d\n", res->port_id);
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+struct cmd_vf_tc_bw_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t tc;
+	cmdline_fixed_string_t tx;
+	cmdline_fixed_string_t min_bw;
+	portid_t port_id;
+	cmdline_fixed_string_t bw_list;
+};
+
+static cmdline_parse_token_string_t cmd_vf_tc_bw_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tc =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		tc, "tc");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_tx =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		tx, "tx");
+static cmdline_parse_token_string_t cmd_vf_tc_bw_min_bw =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		min_bw, "min-bandwidth");
+static cmdline_parse_token_num_t cmd_vf_tc_bw_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_vf_tc_bw_result,
+		port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_vf_tc_bw_bw_list =
+	TOKEN_STRING_INITIALIZER(struct cmd_vf_tc_bw_result,
+		bw_list, NULL);
+
+static cmdline_parse_inst_t cmd_set_macsec_sa = {
+	.f = cmd_set_macsec_sa_parsed,
+	.data = NULL,
+	.help_str = "set macsec sa tx|rx <port_id> <idx> <an> <pn> <key>",
+	.tokens = {
+		(void *)&cmd_macsec_sa_set,
+		(void *)&cmd_macsec_sa_macsec,
+		(void *)&cmd_macsec_sa_sa,
+		(void *)&cmd_macsec_sa_tx_rx,
+		(void *)&cmd_macsec_sa_port_id,
+		(void *)&cmd_macsec_sa_idx,
+		(void *)&cmd_macsec_sa_an,
+		(void *)&cmd_macsec_sa_pn,
+		(void *)&cmd_macsec_sa_key,
+		NULL,
+	},
+};
+
+static void
+cmd_tc_min_bw_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_vf_tc_bw_result *res = parsed_result;
+	struct rte_port *port;
+	uint8_t tc_num;
+	uint8_t bw[16];
+	int ret = -ENOTSUP;
+
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
+	port = &ports[res->port_id];
+	/** Check if the port is not started **/
+	if (port->port_status != RTE_PORT_STOPPED) {
+		fprintf(stderr, "Please stop port %d first\n", res->port_id);
+		return;
+	}
+
+	ret = vf_tc_min_bw_parse_bw_list(bw, &tc_num, res->bw_list);
+	if (ret)
+		return;
+
+	ret = rte_pmd_ixgbe_set_tc_bw_alloc(res->port_id, tc_num, bw);
+
+	switch (ret) {
+	case 0:
+		break;
+	case -EINVAL:
+		fprintf(stderr, "invalid bandwidth\n");
+		break;
+	case -ENODEV:
+		fprintf(stderr, "invalid port_id %d\n", res->port_id);
+		break;
+	case -ENOTSUP:
+		fprintf(stderr, "function not implemented\n");
+		break;
+	default:
+		fprintf(stderr, "programming error: (%s)\n", strerror(-ret));
+	}
+}
+
+static cmdline_parse_inst_t cmd_tc_min_bw = {
+	.f = cmd_tc_min_bw_parsed,
+	.data = NULL,
+	.help_str = "set tc tx min-bandwidth <port_id> <bw1, bw2, ...>",
+	.tokens = {
+		(void *)&cmd_vf_tc_bw_set,
+		(void *)&cmd_vf_tc_bw_tc,
+		(void *)&cmd_vf_tc_bw_tx,
+		(void *)&cmd_vf_tc_bw_min_bw,
+		(void *)&cmd_vf_tc_bw_port_id,
+		(void *)&cmd_vf_tc_bw_bw_list,
+		NULL,
+	},
+};
+
+/* The NIC bypass watchdog timeout. */
+uint32_t bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
+
+/* *** SET NIC BYPASS MODE *** */
+struct cmd_set_bypass_mode_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t value;
+	portid_t port_id;
+};
+
+static void
+cmd_set_bypass_mode_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bypass_mode_result *res = parsed_result;
+	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+	portid_t port_id = res->port_id;
+	int32_t rc = -EINVAL;
+
+	if (!strcmp(res->value, "bypass"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
+	else if (!strcmp(res->value, "isolate"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
+	else
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+
+	/* Set the bypass mode for the relevant port. */
+	rc = rte_pmd_ixgbe_bypass_state_set(port_id, &bypass_mode);
+	if (rc != 0)
+		fprintf(stderr, "\t Failed to set bypass mode for port = %d.\n",
+			port_id);
+}
+
+static cmdline_parse_token_string_t cmd_setbypass_mode_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbypass_mode_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+		bypass, "bypass");
+static cmdline_parse_token_string_t cmd_setbypass_mode_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+		mode, "mode");
+static cmdline_parse_token_string_t cmd_setbypass_mode_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_mode_result,
+		value, "normal#bypass#isolate");
+static cmdline_parse_token_num_t cmd_setbypass_mode_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_mode_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_set_bypass_mode = {
+	.f = cmd_set_bypass_mode_parsed,
+	.help_str = "set bypass mode normal|bypass|isolate <port_id>: "
+		"Set the NIC bypass mode for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbypass_mode_set,
+		(void *)&cmd_setbypass_mode_bypass,
+		(void *)&cmd_setbypass_mode_mode,
+		(void *)&cmd_setbypass_mode_value,
+		(void *)&cmd_setbypass_mode_port,
+		NULL,
+	},
+};
+
+/* *** SET NIC BYPASS EVENT *** */
+struct cmd_set_bypass_event_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t event;
+	cmdline_fixed_string_t event_value;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t mode_value;
+	portid_t port_id;
+};
+
+static void
+cmd_set_bypass_event_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	int32_t rc = -EINVAL;
+	struct cmd_set_bypass_event_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	uint32_t bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
+	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+
+	if (!strcmp(res->event_value, "timeout"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT;
+	else if (!strcmp(res->event_value, "os_on"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_ON;
+	else if (!strcmp(res->event_value, "os_off"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_OS_OFF;
+	else if (!strcmp(res->event_value, "power_on"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_ON;
+	else if (!strcmp(res->event_value, "power_off"))
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_POWER_OFF;
+	else
+		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
+
+	if (!strcmp(res->mode_value, "bypass"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
+	else if (!strcmp(res->mode_value, "isolate"))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_ISOLATE;
+	else
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
+
+	/* Set the watchdog timeout. */
+	if (bypass_event == RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT) {
+		rc = -EINVAL;
+		if (RTE_PMD_IXGBE_BYPASS_TMT_VALID(bypass_timeout)) {
+			rc = rte_pmd_ixgbe_bypass_wd_timeout_store(port_id,
+				bypass_timeout);
+		}
+		if (rc != 0) {
+			fprintf(stderr,
+				"Failed to set timeout value %u for port %d, errto code: %d.\n",
+				bypass_timeout, port_id, rc);
+		}
+	}
+
+	/* Set the bypass event to transition to bypass mode. */
+	rc = rte_pmd_ixgbe_bypass_event_store(port_id, bypass_event,
+		bypass_mode);
+	if (rc != 0)
+		fprintf(stderr, "\t Failed to set bypass event for port = %d.\n",
+			port_id);
+}
+
+static cmdline_parse_token_string_t cmd_setbypass_event_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbypass_event_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+		bypass, "bypass");
+static cmdline_parse_token_string_t cmd_setbypass_event_event =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+		event, "event");
+static cmdline_parse_token_string_t cmd_setbypass_event_event_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+		event_value, "none#timeout#os_off#os_on#power_on#power_off");
+static cmdline_parse_token_string_t cmd_setbypass_event_mode =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+		mode, "mode");
+static cmdline_parse_token_string_t cmd_setbypass_event_mode_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_event_result,
+		mode_value, "normal#bypass#isolate");
+static cmdline_parse_token_num_t cmd_setbypass_event_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_set_bypass_event_result,
+		port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_set_bypass_event = {
+	.f = cmd_set_bypass_event_parsed,
+	.help_str = "set bypass event none|timeout|os_on|os_off|power_on|"
+		"power_off mode normal|bypass|isolate <port_id>: "
+		"Set the NIC bypass event mode for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbypass_event_set,
+		(void *)&cmd_setbypass_event_bypass,
+		(void *)&cmd_setbypass_event_event,
+		(void *)&cmd_setbypass_event_event_value,
+		(void *)&cmd_setbypass_event_mode,
+		(void *)&cmd_setbypass_event_mode_value,
+		(void *)&cmd_setbypass_event_port,
+		NULL,
+	},
+};
+
+
+/* *** SET NIC BYPASS TIMEOUT *** */
+struct cmd_set_bypass_timeout_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t timeout;
+	cmdline_fixed_string_t value;
+};
+
+static void
+cmd_set_bypass_timeout_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_set_bypass_timeout_result *res = parsed_result;
+
+	if (!strcmp(res->value, "1.5"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_1_5_SEC;
+	else if (!strcmp(res->value, "2"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_2_SEC;
+	else if (!strcmp(res->value, "3"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_3_SEC;
+	else if (!strcmp(res->value, "4"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_4_SEC;
+	else if (!strcmp(res->value, "8"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_8_SEC;
+	else if (!strcmp(res->value, "16"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_16_SEC;
+	else if (!strcmp(res->value, "32"))
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_32_SEC;
+	else
+		bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
+}
+
+static cmdline_parse_token_string_t cmd_setbypass_timeout_set =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+		set, "set");
+static cmdline_parse_token_string_t cmd_setbypass_timeout_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+		bypass, "bypass");
+static cmdline_parse_token_string_t cmd_setbypass_timeout_timeout =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+		timeout, "timeout");
+static cmdline_parse_token_string_t cmd_setbypass_timeout_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_set_bypass_timeout_result,
+		value, "0#1.5#2#3#4#8#16#32");
+
+static cmdline_parse_inst_t cmd_set_bypass_timeout = {
+	.f = cmd_set_bypass_timeout_parsed,
+	.help_str = "set bypass timeout 0|1.5|2|3|4|8|16|32: "
+		"Set the NIC bypass watchdog timeout in seconds",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_setbypass_timeout_set,
+		(void *)&cmd_setbypass_timeout_bypass,
+		(void *)&cmd_setbypass_timeout_timeout,
+		(void *)&cmd_setbypass_timeout_value,
+		NULL,
+	},
+};
+
+/* *** SHOW NIC BYPASS MODE *** */
+struct cmd_show_bypass_config_result {
+	cmdline_fixed_string_t show;
+	cmdline_fixed_string_t bypass;
+	cmdline_fixed_string_t config;
+	portid_t port_id;
+};
+
+static void
+cmd_show_bypass_config_parsed(void *parsed_result,
+	__rte_unused struct cmdline *cl, __rte_unused void *data)
+{
+	struct cmd_show_bypass_config_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+	int rc = -EINVAL;
+	uint32_t event_mode;
+	uint32_t bypass_mode;
+	uint32_t timeout = bypass_timeout;
+	unsigned int i;
+
+	static const char * const timeouts[RTE_PMD_IXGBE_BYPASS_TMT_NUM] = {
+		"off", "1.5", "2", "3", "4", "8", "16", "32"
+	};
+	static const char * const modes[RTE_PMD_IXGBE_BYPASS_MODE_NUM] = {
+		"UNKNOWN", "normal", "bypass", "isolate"
+	};
+	static const char * const events[RTE_PMD_IXGBE_BYPASS_EVENT_NUM] = {
+		"NONE",
+		"OS/board on",
+		"power supply on",
+		"OS/board off",
+		"power supply off",
+		"timeout"};
+
+	/* Display the bypass mode.*/
+	if (rte_pmd_ixgbe_bypass_state_show(port_id, &bypass_mode) != 0) {
+		fprintf(stderr, "\tFailed to get bypass mode for port = %d\n",
+			port_id);
+		return;
+	}
+	if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(bypass_mode))
+		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
+
+	printf("\tbypass mode    = %s\n",  modes[bypass_mode]);
+
+	/* Display the bypass timeout.*/
+	if (!RTE_PMD_IXGBE_BYPASS_TMT_VALID(timeout))
+		timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
+
+	printf("\tbypass timeout = %s\n", timeouts[timeout]);
+
+	/* Display the bypass events and associated modes. */
+	for (i = RTE_PMD_IXGBE_BYPASS_EVENT_START; i < RTE_DIM(events); i++) {
+		if (rte_pmd_ixgbe_bypass_event_show(port_id, i, &event_mode)) {
+			fprintf(stderr, "\tFailed to get bypass mode for event = %s\n",
+				events[i]);
+		} else {
+			if (!RTE_PMD_IXGBE_BYPASS_MODE_VALID(event_mode))
+				event_mode = RTE_PMD_IXGBE_BYPASS_MODE_NONE;
+
+			printf("\tbypass event: %-16s = %s\n", events[i],
+				modes[event_mode]);
+		}
+	}
+	if (rc != 0)
+		fprintf(stderr,
+			"\tFailed to get bypass configuration for port = %d\n",
+			port_id);
+}
+
+static cmdline_parse_token_string_t cmd_showbypass_config_show =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
+			show, "show");
+static cmdline_parse_token_string_t cmd_showbypass_config_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
+			bypass, "bypass");
+static cmdline_parse_token_string_t cmd_showbypass_config_config =
+	TOKEN_STRING_INITIALIZER(struct cmd_show_bypass_config_result,
+			config, "config");
+static cmdline_parse_token_num_t cmd_showbypass_config_port =
+	TOKEN_NUM_INITIALIZER(struct cmd_show_bypass_config_result,
+				port_id, RTE_UINT16);
+
+static cmdline_parse_inst_t cmd_show_bypass_config = {
+	.f = cmd_show_bypass_config_parsed,
+	.help_str = "show bypass config <port_id>: "
+		"Show the NIC bypass config for port_id",
+	.data = NULL,
+	.tokens = {
+		(void *)&cmd_showbypass_config_show,
+		(void *)&cmd_showbypass_config_bypass,
+		(void *)&cmd_showbypass_config_config,
+		(void *)&cmd_showbypass_config_port,
+		NULL,
+	},
+};
+
+static struct testpmd_driver_commands ixgbe_cmds = {
+	.commands = {
+	{
+		&cmd_set_vf_split_drop_en,
+		"set vf split drop (port_id) (vf_id) (on|off)\n"
+		"    Set split drop enable bit for a VF from the PF.\n",
+	},
+	{
+		&cmd_set_macsec_offload_on,
+		"set macsec offload (port_id) on encrypt (on|off) replay-protect (on|off)\n"
+		"    Enable MACsec offload.\n",
+	},
+	{
+		&cmd_set_macsec_offload_off,
+		"set macsec offload (port_id) off\n"
+		"    Disable MACsec offload.\n",
+	},
+	{
+		&cmd_set_macsec_sc,
+		"set macsec sc (tx|rx) (port_id) (mac) (pi)\n"
+		"    Configure MACsec secure connection (SC).\n",
+	},
+	{
+		&cmd_set_macsec_sa,
+		"set macsec sa (tx|rx) (port_id) (idx) (an) (pn) (key)\n"
+		"    Configure MACsec secure association (SA).\n",
+	},
+	{
+		&cmd_tc_min_bw,
+		"set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\n"
+		"    Set all TCs' min bandwidth(%%) for all PF and VFs.\n",
+	},
+	{
+		&cmd_set_bypass_mode,
+		"set bypass mode (normal|bypass|isolate) (port_id)\n"
+		"   Set the bypass mode for the lowest port on bypass enabled NIC.\n",
+	},
+	{
+		&cmd_set_bypass_event,
+		"set bypass event (timeout|os_on|os_off|power_on|power_off) "
+		"mode (normal|bypass|isolate) (port_id)\n"
+		"   Set the event required to initiate specified bypass mode for"
+		" the lowest port on a bypass enabled NIC where:\n"
+		"       timeout   = enable bypass after watchdog timeout.\n"
+		"       os_on     = enable bypass when OS/board is powered on.\n"
+		"       os_off    = enable bypass when OS/board is powered off.\n"
+		"       power_on  = enable bypass when power supply is turned on.\n"
+		"       power_off = enable bypass when power supply is turned off."
+		"\n",
+	},
+	{
+		&cmd_set_bypass_timeout,
+		"set bypass timeout (0|1.5|2|3|4|8|16|32)\n"
+		"   Set the bypass watchdog timeout to 'n' seconds where 0 = instant.\n",
+	},
+	{
+		&cmd_show_bypass_config,
+		"show bypass config (port_id)\n"
+		"   Show the bypass configuration for a bypass enabled NIC"
+		" using the lowest port on the NIC.\n",
+	},
+	{ NULL, NULL },
+	},
+};
+TESTPMD_ADD_DRIVER_COMMANDS(ixgbe_cmds)
diff --git a/drivers/net/ixgbe/meson.build b/drivers/net/ixgbe/meson.build
index 162f8d5f46..a18908ef7c 100644
--- a/drivers/net/ixgbe/meson.build
+++ b/drivers/net/ixgbe/meson.build
@@ -20,6 +20,8 @@ sources = files(
         'rte_pmd_ixgbe.c',
 )
 
+testpmd_sources = files('ixgbe_testpmd.c')
+
 deps += ['hash', 'security']
 
 if arch_subdir == 'x86'
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [PATCH v3 3/3] net/ixgbe: move bypass init in a testpmd command
  2022-07-21  8:05     ` [PATCH v3 1/3] app/testpmd: restore ixgbe bypass commands David Marchand
  2022-07-21  8:05       ` [PATCH v3 2/3] net/ixgbe: move testpmd commands David Marchand
@ 2022-07-21  8:05       ` David Marchand
  2022-08-25 10:37         ` Ferruh Yigit
  2022-08-25 11:44       ` [PATCH v3 1/3] app/testpmd: restore ixgbe bypass commands Ferruh Yigit
  2 siblings, 1 reply; 65+ messages in thread
From: David Marchand @ 2022-07-21  8:05 UTC (permalink / raw)
  To: dev; +Cc: Aman Singh, Yuying Zhang, Qiming Yang, Wenjun Wu

Introduce a new command and remove the last part of specific port init
from testpmd.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/meson.build          |  1 -
 app/test-pmd/testpmd.c            |  4 --
 doc/guides/nics/ixgbe.rst         |  7 +++
 drivers/net/ixgbe/ixgbe_testpmd.c | 82 +++++++++++++++++++++++++++++++
 4 files changed, 89 insertions(+), 5 deletions(-)

diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index 12df1f8eec..74399178dd 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -65,7 +65,6 @@ if dpdk_conf.has('RTE_NET_I40E')
     deps += 'net_i40e'
 endif
 if dpdk_conf.has('RTE_NET_IXGBE')
-    cflags += ['-DRTE_LIBRTE_IXGBE_BYPASS']
     deps += 'net_ixgbe'
 endif
 if dpdk_conf.has('RTE_NET_DPAA')
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 51da386fe8..b81d9b03a6 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -3962,10 +3962,6 @@ init_port_config(void)
 		if (ret != 0)
 			return;
 
-#if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
-		rte_pmd_ixgbe_bypass_init(pid);
-#endif
-
 		if (lsc_interrupt && (*port->dev_info.dev_flags & RTE_ETH_DEV_INTR_LSC))
 			port->dev_conf.intr_conf.lsc = 1;
 		if (rmv_interrupt && (*port->dev_info.dev_flags & RTE_ETH_DEV_INTR_RMV))
diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index ea4684c2dc..d450fc1ca0 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -418,6 +418,13 @@ Set all TCs' TX min relative bandwidth (%) globally for all PF and VFs::
 
    testpmd> set tc tx min-bandwidth (port_id) (bw1, bw2, ...)
 
+port config bypass
+~~~~~~~~~~~~~~~~~~
+
+Enable/disable bypass feature::
+
+   port config bypass (port_id) (on|off)
+
 set bypass mode
 ~~~~~~~~~~~~~~~
 
diff --git a/drivers/net/ixgbe/ixgbe_testpmd.c b/drivers/net/ixgbe/ixgbe_testpmd.c
index a928d0fb55..e0d161eafe 100644
--- a/drivers/net/ixgbe/ixgbe_testpmd.c
+++ b/drivers/net/ixgbe/ixgbe_testpmd.c
@@ -2,6 +2,9 @@
  * Copyright(c) 2010-2016 Intel Corporation.
  */
 
+/* Required for ixgbe internal structures to be aligned with the driver */
+#define RTE_LIBRTE_IXGBE_BYPASS
+
 #include <ethdev_driver.h>
 #include "ixgbe_ethdev.h"
 #include "rte_pmd_ixgbe.h"
@@ -618,6 +621,71 @@ static cmdline_parse_inst_t cmd_tc_min_bw = {
 /* The NIC bypass watchdog timeout. */
 uint32_t bypass_timeout = RTE_PMD_IXGBE_BYPASS_TMT_OFF;
 
+static inline bool
+check_bypass_enabled(portid_t port_id)
+{
+	struct ixgbe_adapter *adapter;
+
+	adapter = rte_eth_devices[port_id].data->dev_private;
+	if (adapter->bps.ops.bypass_rw == NULL) {
+		fprintf(stderr, "Bypass is not enabled on this port.\n");
+		return false;
+	}
+
+	return true;
+}
+
+/* Enable bypass mode */
+struct cmd_config_bypass_result {
+	cmdline_fixed_string_t port;
+	cmdline_fixed_string_t config;
+	cmdline_fixed_string_t bypass;
+	portid_t port_id;
+	cmdline_fixed_string_t value;
+};
+
+static void
+cmd_config_bypass_parsed(void *parsed_result,
+		      __rte_unused struct cmdline *cl,
+		      __rte_unused void *data)
+{
+	struct cmd_config_bypass_result *res = parsed_result;
+	portid_t port_id = res->port_id;
+
+	if (ports[port_id].port_status == RTE_PORT_STARTED) {
+		fprintf(stderr, "Cannot change bypass configuration while port is started, please stop it and retry\n");
+		return;
+	}
+
+	if (strcmp(res->value, "on") == 0)
+		rte_pmd_ixgbe_bypass_init(port_id);
+}
+
+static cmdline_parse_token_string_t cmd_config_bypass_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, port, "port");
+static cmdline_parse_token_string_t cmd_config_bypass_config =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, config, "config");
+static cmdline_parse_token_string_t cmd_config_bypass_bypass =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, bypass, "bypass");
+static cmdline_parse_token_num_t cmd_config_bypass_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_config_bypass_result, port_id, RTE_UINT16);
+static cmdline_parse_token_string_t cmd_config_bypass_value =
+	TOKEN_STRING_INITIALIZER(struct cmd_config_bypass_result, value, "on#off");
+
+static cmdline_parse_inst_t cmd_config_bypass = {
+	.f = cmd_config_bypass_parsed,
+	.data = NULL,
+	.help_str = "port config bypass <port_id> on|off",
+	.tokens = {
+		(void *)&cmd_config_bypass_port,
+		(void *)&cmd_config_bypass_config,
+		(void *)&cmd_config_bypass_bypass,
+		(void *)&cmd_config_bypass_port_id,
+		(void *)&cmd_config_bypass_value,
+		NULL,
+	},
+};
+
 /* *** SET NIC BYPASS MODE *** */
 struct cmd_set_bypass_mode_result {
 	cmdline_fixed_string_t set;
@@ -636,6 +704,9 @@ cmd_set_bypass_mode_parsed(void *parsed_result,
 	portid_t port_id = res->port_id;
 	int32_t rc = -EINVAL;
 
+	if (!check_bypass_enabled(port_id))
+		return;
+
 	if (!strcmp(res->value, "bypass"))
 		bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_BYPASS;
 	else if (!strcmp(res->value, "isolate"))
@@ -702,6 +773,9 @@ cmd_set_bypass_event_parsed(void *parsed_result,
 	uint32_t bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_NONE;
 	uint32_t bypass_mode = RTE_PMD_IXGBE_BYPASS_MODE_NORMAL;
 
+	if (!check_bypass_enabled(port_id))
+		return;
+
 	if (!strcmp(res->event_value, "timeout"))
 		bypass_event = RTE_PMD_IXGBE_BYPASS_EVENT_TIMEOUT;
 	else if (!strcmp(res->event_value, "os_on"))
@@ -878,6 +952,9 @@ cmd_show_bypass_config_parsed(void *parsed_result,
 		"power supply off",
 		"timeout"};
 
+	if (!check_bypass_enabled(port_id))
+		return;
+
 	/* Display the bypass mode.*/
 	if (rte_pmd_ixgbe_bypass_state_show(port_id, &bypass_mode) != 0) {
 		fprintf(stderr, "\tFailed to get bypass mode for port = %d\n",
@@ -973,6 +1050,11 @@ static struct testpmd_driver_commands ixgbe_cmds = {
 		"set tc tx min-bandwidth (port_id) (bw1, bw2, ...)\n"
 		"    Set all TCs' min bandwidth(%%) for all PF and VFs.\n",
 	},
+	{
+		&cmd_config_bypass,
+		"port config bypass (port_id) (on|off)\n"
+		"   Enable/disable bypass before starting the port\n",
+	},
 	{
 		&cmd_set_bypass_mode,
 		"set bypass mode (normal|bypass|isolate) (port_id)\n"
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 65+ messages in thread

* Re: [PATCH v3 3/3] net/ixgbe: move bypass init in a testpmd command
  2022-07-21  8:05       ` [PATCH v3 3/3] net/ixgbe: move bypass init in a testpmd command David Marchand
@ 2022-08-25 10:37         ` Ferruh Yigit
  0 siblings, 0 replies; 65+ messages in thread
From: Ferruh Yigit @ 2022-08-25 10:37 UTC (permalink / raw)
  To: Yuying Zhang, Qiming Yang, Wenjun Wu
  Cc: Aman Singh, dev, David Marchand, Qi Z Zhang

On 7/21/2022 9:05 AM, David Marchand wrote:
> Introduce a new command and remove the last part of specific port init
> from testpmd.
> 
> Signed-off-by: David Marchand<david.marchand@redhat.com>

Since there is no objection, I will proceed with this set, it was 
intended for previous release anyway.

In this release we will have time to address any possible issue.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [PATCH v3 1/3] app/testpmd: restore ixgbe bypass commands
  2022-07-21  8:05     ` [PATCH v3 1/3] app/testpmd: restore ixgbe bypass commands David Marchand
  2022-07-21  8:05       ` [PATCH v3 2/3] net/ixgbe: move testpmd commands David Marchand
  2022-07-21  8:05       ` [PATCH v3 3/3] net/ixgbe: move bypass init in a testpmd command David Marchand
@ 2022-08-25 11:44       ` Ferruh Yigit
  2 siblings, 0 replies; 65+ messages in thread
From: Ferruh Yigit @ 2022-08-25 11:44 UTC (permalink / raw)
  To: David Marchand, dev
  Cc: stable, Aman Singh, Yuying Zhang, Keith Wiles, Luca Boccassi,
	Harry van Haaren, Bruce Richardson

On 7/21/2022 9:05 AM, David Marchand wrote:
> Since the switch to meson, ixgbe bypass commands were ineffective as the
> RTE_LIBRTE_IXGBE_BYPASS build flag was not set, even though the
> net/ixgbe driver had this feature compiled in.
> 
> Fixes: 16ade738fd0d ("app/testpmd: build with meson")
> Cc: stable@dpdk.org
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>

For series,
Acked-by: Ferruh Yigit <ferruh.yigit@xilinx.com>


Series applied to dpdk-next-net/main, thanks.


^ permalink raw reply	[flat|nested] 65+ messages in thread

end of thread, other threads:[~2022-08-25 11:44 UTC | newest]

Thread overview: 65+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-13  7:57 [RFC PATCH 0/4] Split driver specific commands out of testpmd David Marchand
2022-05-13  7:57 ` [RFC PATCH 1/4] app/testpmd: register driver specific commands David Marchand
2022-05-13 10:30   ` David Marchand
2022-05-13  7:57 ` [RFC PATCH 2/4] net/bonding: move testpmd commands David Marchand
2022-05-13 10:09   ` Min Hu (Connor)
2022-05-18 17:24     ` David Marchand
2022-05-18 23:25       ` Konstantin Ananyev
2022-05-19  7:40         ` David Marchand
2022-05-19 11:26           ` Thomas Monjalon
2022-05-20  6:59             ` Andrew Rybchenko
2022-05-24  9:40               ` Konstantin Ananyev
2022-05-24 10:15                 ` Thomas Monjalon
2022-05-24 22:41                   ` Konstantin Ananyev
2022-05-13  7:57 ` [RFC PATCH 3/4] net/i40e: " David Marchand
2022-05-13  7:57 ` [RFC PATCH 4/4] net/ixgbe: " David Marchand
2022-05-18 19:46 ` [RFC PATCH v2 0/5] Split driver specific commands out of testpmd David Marchand
2022-05-18 19:46   ` [RFC PATCH v2 1/5] app/testpmd: mark cmdline symbols as static David Marchand
2022-05-20  6:28     ` Andrew Rybchenko
2022-05-18 19:46   ` [RFC PATCH v2 2/5] app/testpmd: register driver specific commands David Marchand
2022-05-20  6:55     ` Andrew Rybchenko
2022-05-18 19:46   ` [RFC PATCH v2 3/5] net/bonding: move testpmd commands David Marchand
2022-05-20  6:55     ` Andrew Rybchenko
2022-05-18 19:46   ` [RFC PATCH v2 4/5] net/i40e: " David Marchand
2022-05-18 19:46   ` [RFC PATCH v2 5/5] net/ixgbe: " David Marchand
2022-05-20  7:04   ` [RFC PATCH v2 0/5] Split driver specific commands out of testpmd Andrew Rybchenko
2022-05-23  7:10 ` [PATCH 0/6] " David Marchand
2022-05-23  7:10   ` [PATCH 1/6] app/testpmd: mark most cmdline symbols as static David Marchand
2022-05-23 10:19     ` Dumitrescu, Cristian
2022-05-23 18:09       ` Ferruh Yigit
2022-05-23  7:10   ` [PATCH 2/6] app/testpmd: register driver specific commands David Marchand
2022-05-23 18:10     ` Ferruh Yigit
2022-05-24 10:53       ` David Marchand
2022-05-24 11:43         ` Ferruh Yigit
2022-05-24 17:21     ` Thomas Monjalon
2022-05-24 17:44       ` David Marchand
2022-05-24 17:51         ` Thomas Monjalon
2022-05-23  7:10   ` [PATCH 3/6] net/bonding: move testpmd commands David Marchand
2022-05-23 18:10     ` Ferruh Yigit
2022-06-17  5:06     ` [PATCH v2] " David Marchand
2022-06-20 17:53       ` Ferruh Yigit
2022-05-23  7:10   ` [PATCH 4/6] net/i40e: " David Marchand
2022-06-17  5:07     ` [PATCH v2] " David Marchand
2022-06-20 17:53       ` Ferruh Yigit
2022-05-23  7:10   ` [PATCH 5/6] app/testpmd: drop ixgbe bypass commands David Marchand
2022-05-23 18:10     ` Ferruh Yigit
2022-06-17  5:07     ` [PATCH v2 1/3] app/testpmd: restore " David Marchand
2022-06-17  5:07       ` [PATCH v2 2/3] net/ixgbe: move testpmd commands David Marchand
2022-06-17  5:07       ` [PATCH v2 3/3] net/ixgbe: move bypass init in a testpmd command David Marchand
2022-06-20 19:04         ` Ferruh Yigit
2022-06-23 12:35           ` Zhang, Qi Z
2022-07-21  8:05     ` [PATCH v3 1/3] app/testpmd: restore ixgbe bypass commands David Marchand
2022-07-21  8:05       ` [PATCH v3 2/3] net/ixgbe: move testpmd commands David Marchand
2022-07-21  8:05       ` [PATCH v3 3/3] net/ixgbe: move bypass init in a testpmd command David Marchand
2022-08-25 10:37         ` Ferruh Yigit
2022-08-25 11:44       ` [PATCH v3 1/3] app/testpmd: restore ixgbe bypass commands Ferruh Yigit
2022-05-23  7:10   ` [PATCH 6/6] net/ixgbe: move testpmd commands David Marchand
2022-05-23 18:09   ` [PATCH 0/6] Split driver specific commands out of testpmd Ferruh Yigit
2022-05-24 20:06 ` [PATCH v2 0/2] " David Marchand
2022-05-24 20:06   ` [PATCH v2 1/2] app/testpmd: mark most cmdline symbols as static David Marchand
2022-05-31 15:15     ` Andrew Rybchenko
2022-05-24 20:06   ` [PATCH v2 2/2] app/testpmd: register driver specific commands David Marchand
2022-05-24 20:28     ` Thomas Monjalon
2022-05-31 15:14       ` Andrew Rybchenko
2022-05-31 15:18         ` David Marchand
2022-05-31 15:18   ` [PATCH v2 0/2] Split driver specific commands out of testpmd Andrew Rybchenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.