> -----Original Message-----
> From: Stephen Hemminger <step...@networkplumber.org>
> Sent: Wednesday, May 31, 2023 10:58 PM
> To: dev@dpdk.org
> Cc: Stephen Hemminger <step...@networkplumber.org>; Jerin Jacob
> Kollanukkaran <jer...@marvell.com>; Kiran Kumar Kokkilagadda
> <kirankum...@marvell.com>; Nithin Kumar Dabilpuram
> <ndabilpu...@marvell.com>
> Subject: [EXT] [PATCH v2] graph: fix pcapng file support
>
> External Email
>
> ----------------------------------------------------------------------
> The interface to rte_pcapng changed in last release
> so that the interfaces used need to be added to the pcapng
> file via the API. If this step is missing the pcapng
> file will not be valid and can't be read by wireshark etc.
>
> Fixes: d1da6d0d04c7 ("pcapng: require per-interface information")
> Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
> ---
> lib/graph/graph_pcap.c | 25 ++++++++++++++++++++++---
> 1 file changed, 22 insertions(+), 3 deletions(-)
>
> diff --git a/lib/graph/graph_pcap.c b/lib/graph/graph_pcap.c
> index 6c433300290b..db722c375fa7 100644
> --- a/lib/graph/graph_pcap.c
> +++ b/lib/graph/graph_pcap.c
> @@ -7,6 +7,7 @@
> #include <stdlib.h>
> #include <unistd.h>
>
> +#include <rte_ethdev.h>
> #include <rte_mbuf.h>
> #include <rte_pcapng.h>
>
> @@ -80,7 +81,8 @@ graph_pcap_default_path_get(char **dir_path)
> int
> graph_pcap_file_open(const char *filename)
> {
> - int fd;
> + int fd, ret;
> + uint16_t portid;
> char file_name[RTE_GRAPH_PCAP_FILE_SZ];
> char *pcap_dir;
>
> @@ -110,12 +112,29 @@ graph_pcap_file_open(const char *filename)
> NULL);
> if (pcapng_fd == NULL) {
> graph_err("Graph rte_pcapng_fdopen failed.");
> - close(fd);
> - return -1;
> + goto error;
> + }
> +
> + /* Add the configured interfaces as possible capture ports */
> + RTE_ETH_FOREACH_DEV(portid) {
> + ret = rte_pcapng_add_interface(pcapng_fd, portid,
> + NULL, NULL, NULL);
> + if (ret < 0) {
> + graph_err("Graph rte_pcapng_add_interface port
> %u failed: %d",
> + portid, ret);
> + goto error;
> + }
> }
>
> done:
> return 0;
> +error:
> + if (pcapng_fd != NULL) {
> + rte_pcapng_close(pcapng_fd);
> + pcapng_fd = NULL;
> + }
> + close(fd);
> + return -1;
> }
>
> int
> --
> 2.39.2
Looks good to me. Thanks.
Acked-by: Amit Prakash Shukla <amitpraka...@marvell.com>