[v1] dumpcap: fix select interface
Checks
Commit Message
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
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>
@@ -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();