I would like to respectfully ask that you please re-read my initial email.
Unfortunately the interface selection issue I describe is not resolved in 22.11 (currently running). It is also easily observed by reviewing the current code (once one knows to look for it). I'll be the first to admit I did not catch it when looking at the patch. To try and summarize it again here, it is trying to store an array of interfaces (multiple -i options) into a single char variable. The only interface that is persisted to selection is the last one specified because it overwrites the previously saved interface(s). If the intent is to only support capturing on a single interface then the asterisk option should be removed, it should become an error to specify the interface multiple times, and the associated documentation should be updated to reflect this. However, I do not believe the intent is to limit capture to a single interface and would not support such a change.
I can understand modeling dumpcap off the wireshark version but DPDK brings its own unique capabilities and I believe those need to be accounted for too.
Looking at the man page of wireshark's dumpcap, it indicates that the "-p" option can be specified multiple times and it needs to be relative to the interface [1], if it is not it may be ignored. Implementing this change seems like it would bring DPDK dumpcap closer to the behavior of wireshark's dumpcap when specifying the interface's promiscuous mode.
The above promiscuous mode change does not address the potential issue of stopping a capture and it changing an interface's promiscuous mode for the main application that continues to run. The only path forward here that I can see is storing the initial promiscuous mode state on each interface that a capture is occurring on and checking that to determine what should be done when stopping dumpcap.
This leaves the last question of being able to just inherit the main process's promiscuous state so that a user doesn't necessarily need to know which interfaces are in which state when starting dumpcap to troubleshoot something. Tying in to the previous about storing the state, it would potentially avoid a user starting all interfaces in promiscuous mode which might result in different traffic in the capture than the application normally sees.
Finally after looking at the wireshark dumpcap man page, I believe there is a new issue here as well. The man page states that if a capture will occur on multiple interfaces, the file will be saved in pcapng format. Quickly at the code it does not look like this is the current behavior of DPDK dumpcap.
As mentioned before I am happy to try and work on some of these changes, but would like to have something of a plan before starting that work.
Cheers,
Ben Magistro