[v1] dumpcap: fix select interface

Message ID 20221014203325.32418-1-arshdeep.kaur@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series [v1] dumpcap: fix select interface |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues
ci/iol-aarch64-unit-testing fail Testing issues
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-aarch64-compile-testing fail Testing issues
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/github-robot: build fail github build: failed
ci/iol-x86_64-unit-testing fail Testing issues
ci/iol-x86_64-compile-testing fail Testing issues

Commit Message

Kaur, Arshdeep Oct. 14, 2022, 8:33 p.m. UTC
  The change to do argument process before EAL init broke
the support of select-interface option. Fix by setting flag
and doing select-interface later.

Fixes: cbb44143be74 ("app/dumpcap: add new packet capture application")

Signed-off-by: Arshdeep Kaur <arshdeep.kaur@intel.com>
---
 app/dumpcap/main.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
  

Comments

Stephen Hemminger Oct. 14, 2022, 8:38 p.m. UTC | #1
On Fri, 14 Oct 2022 13:33:25 -0700
Arshdeep Kaur <arshdeep.kaur@intel.com> wrote:

> The change to do argument process before EAL init broke
> the support of select-interface option. Fix by setting flag
> and doing select-interface later.
> 
> Fixes: cbb44143be74 ("app/dumpcap: add new packet capture application")
> 
> Signed-off-by: Arshdeep Kaur <arshdeep.kaur@intel.com>

The right fixes line would be when the order of init changed:


Fixes: a8dde09f97df ("app/dumpcap: allow help/version without primary process")

Acked-by: Stephen Hemminger <stephen@networkplumber.org>
  

Patch

diff --git a/app/dumpcap/main.c b/app/dumpcap/main.c
index e0a3477d91..11a44ecce4 100644
--- a/app/dumpcap/main.c
+++ b/app/dumpcap/main.c
@@ -64,6 +64,8 @@  static const char *capture_comment;
 static uint32_t snaplen = RTE_MBUF_DEFAULT_BUF_SIZE;
 static bool dump_bpf;
 static bool show_interfaces;
+static bool select_interfaces;
+const char *interface_arg;
 
 static struct {
 	uint64_t  duration;	/* nanoseconds */
@@ -370,7 +372,8 @@  static void parse_opts(int argc, char **argv)
 			usage();
 			exit(0);
 		case 'i':
-			select_interface(optarg);
+			select_interfaces = true;
+			interface_arg = optarg;
 			break;
 		case 'n':
 			use_pcapng = true;
@@ -796,6 +799,9 @@  int main(int argc, char **argv)
 	if (rte_eth_dev_count_avail() == 0)
 		rte_exit(EXIT_FAILURE, "No Ethernet ports found\n");
 
+	if (select_interface)
+		select_interface(interface_arg);
+
 	if (filter_str)
 		compile_filter();