On Fri, 15 Oct 2021 09:36:00 +0000 "Pattan, Reshma" <reshma.pat...@intel.com> wrote:
> > -----Original Message----- > > From: dev <dev-boun...@dpdk.org> On Behalf Of Stephen Hemminger > > See draft RFC > > https://www.ietf.org/id/draft-tuexen-opsawg-pcapng-03.html > > The page is not found. Might need to add new link I guess > > > +enum pcapng_interface_options { > > + PCAPNG_IFB_NAME = 2, > > + PCAPNG_IFB_DESCRIPTION, > > Can IFB(interface block) be replaced with IF(interface) only? But that's ok, > upto u. > > > > + buf = calloc(1, len); > > + if (!buf) > > + return -1; > > How about returning -ENOMEM > > > + > > + hdr = (struct pcapng_section_header *)buf; > > + *hdr = (struct pcapng_section_header) { > > + .block_type = PCAPNG_SECTION_BLOCK, > > + .block_length = len, > > + .byte_order_magic = PCAPNG_BYTE_ORDER_MAGIC, > > + .major_version = PCAPNG_MAJOR_VERS, > > + .minor_version = PCAPNG_MINOR_VERS, > > + .section_length = UINT64_MAX, > > + }; > > + hdr->block_length = len; > > Why to assign block_len with len again? as it is already done few lines above. > > > + opt = pcapng_add_option(opt, PCAPNG_OPT_END, NULL, 0); > > Some comments around this code, about adding end of options at the end of > options list would be helpful. Ok, but someone looking at this code should really look at the standard to see what the data format is. > > + > > +/* Write the PCAPNG section header at start of file */ static ssize_t > > :s/section header/ interface header? Good catch, copy/paste of comment. > > > +pcapng_interface_block(rte_pcapng_t *self, const char *if_name, > > + if (mac_addr) > > + len += pcapng_optlen(6); > > How about using RTE_ETHER_ADDR_LEN instead of 6 Fixing now, also merging pcapng_interface_block since only called one place. > > > +struct rte_mbuf * rte_pcapng_copy(uint16_t port_id, uint32_t queue, > <snip> > > +fail: > > + rte_pktmbuf_free(mc); > > > Freeing mc , would that take care of freeing up the additional byte > prepended after mc creation? Mbuf are allocation unit, so the whole buffer goes. > > > + opt = pcapng_add_option(opt, PCAPNG_EPB_QUEUE, > > + &queue, sizeof(queue)); > > Don't we need to add end of options to the end of option list, like did in > Interface block and section header block? It turns out that the reference (wireshark) does not. So did not do that to save space on the output file. > > > diff --git a/lib/pcapng/rte_pcapng.h b/lib/pcapng/rte_pcapng.h new file mode > > + * > > + * Packets to be captured are copied by rte_pcapng_mbuf() > > Do you mean by rte_pcapng_copy()? Good catch, function got renamed and comment not updated.