[dpdk-dev] [PATCH v17 09/10] app/testpmd: disable packet type parsing by default

pbhagavatula at marvell.com pbhagavatula at marvell.com
Mon Nov 11 14:19:13 CET 2019


From: Pavan Nikhilesh <pbhagavatula at marvell.com>

Disable packey type parsing on port init, user can enable ptype parsing
by issuing set ptype command.

Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
---
 app/test-pmd/cmdline.c |  2 ++
 app/test-pmd/testpmd.c | 12 ++++++++++++
 app/test-pmd/testpmd.h |  1 +
 3 files changed, 15 insertions(+)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index da556f91e..bd056033c 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -19082,6 +19082,8 @@ cmd_set_port_ptypes_parsed(
 		rte_get_ptype_name(ptypes[i], ptype_name, sizeof(ptype_name));
 		printf("%s\n", ptype_name);
 	}
+
+	clear_ptypes = false;
 }
 
 cmdline_parse_inst_t cmd_set_port_ptypes = {
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 44443469a..446da3623 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -359,6 +359,9 @@ uint8_t hot_plug = 0; /**< hotplug disabled by default. */
 /* After attach, port setup is called on event or by iterator */
 bool setup_on_probe_event = true;
 
+/* Clear ptypes on port initialization. */
+uint8_t clear_ptypes = true;
+
 /* Pretty printing of ethdev events */
 static const char * const eth_event_desc[] = {
 	[RTE_ETH_EVENT_UNKNOWN] = "unknown",
@@ -2269,6 +2272,15 @@ start_port(portid_t pid)
 				return -1;
 		}
 		configure_rxtx_dump_callbacks(verbose_level);
+		if (clear_ptypes) {
+			diag = rte_eth_dev_set_ptypes(pi, RTE_PTYPE_UNKNOWN,
+					NULL, 0);
+			if (diag < 0)
+				printf(
+				"Port %d: Failed to disable Ptype parsing\n",
+				pi);
+		}
+
 		/* start port */
 		if (rte_eth_dev_start(pi) < 0) {
 			printf("Fail to start port %d\n", pi);
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index caabf3254..90694a330 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -334,6 +334,7 @@ extern uint32_t event_print_mask;
 extern bool setup_on_probe_event; /**< disabled by port setup-on iterator */
 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 */
-- 
2.17.1



More information about the dev mailing list