Provided by: dpdk-doc_24.11.2-2_all bug

NAME

       rte_pcapng.h

SYNOPSIS

       #include <stdint.h>
       #include <sys/types.h>
       #include <rte_mempool.h>

   Enumerations
       enum rte_pcapng_direction

   Functions
       rte_pcapng_t * rte_pcapng_fdopen (int fd, const char *osname, const char *hardware, const char *appname,
           const char *comment)
       void rte_pcapng_close (rte_pcapng_t *self)
       int rte_pcapng_add_interface (rte_pcapng_t *self, uint16_t port, const char *ifname, const char *ifdescr,
           const char *filter)
       struct rte_mbuf * rte_pcapng_copy (uint16_t port_id, uint32_t queue, const struct rte_mbuf *m, struct
           rte_mempool *mp, uint32_t length, enum rte_pcapng_direction direction, const char *comment)
       uint32_t rte_pcapng_mbuf_size (uint32_t length)
       ssize_t rte_pcapng_write_packets (rte_pcapng_t *self, struct rte_mbuf *pkts[], uint16_t nb_pkts)
       ssize_t rte_pcapng_write_stats (rte_pcapng_t *self, uint16_t port, uint64_t ifrecv, uint64_t ifdrop,
           const char *comment)

Detailed Description

       RTE pcapng

       Pcapng is an evolution from the pcap format, created to address some of its deficiencies. Namely, the
       lack of extensibility and inability to store additional information.

       For details about the file format see RFC: https://www.ietf.org/id/draft-tuexen-opsawg-pcapng-03.html and
       https://github.com/pcapng/pcapng/

       Definition in file rte_pcapng.h.

Enumeration Type Documentation

   enum rte_pcapng_direction
       Direction flag These should match Enhanced Packet Block flag bits

       Definition at line 95 of file rte_pcapng.h.

Function Documentation

   rte_pcapng_t * rte_pcapng_fdopen (int fd, const char * osname, const char * hardware, const char * appname,
       const char * comment)
       Write data to existing open file

       Parameters
           fd file descriptor
           osname Optional description of the operating system. Examples: 'Debian 11', 'Windows Server 22'
           hardware Optional description of the hardware used to create this file. Examples: 'x86 Virtual
           Machine'
           appname Optional: application name recorded in the pcapng file. Example: 'dpdk-dumpcap 1.0 (DPDK
           20.11)'
           comment Optional comment to add to file header.

       Returns
           handle to library, or NULL in case of error (and rte_errno is set).

   void rte_pcapng_close (rte_pcapng_t * self)
       Close capture file

       Parameters
           self handle to library

   int rte_pcapng_add_interface (rte_pcapng_t * self, uint16_t port, const char * ifname, const char * ifdescr,
       const char * filter)
       Add interface information to the capture file

       Parameters
           self The handle to the packet capture file
           port The Ethernet port to report stats on.
           ifname (optional) Interface name to record in the file. If not specified, name will be constructed
           from port
           ifdescr (optional) Interface description to record in the file.
           filter Capture filter to record in the file.

       Interfaces must be added to the output file after opening and before any packet record. All ports used in
       packet capture must be added.

   struct rte_mbuf * rte_pcapng_copy (uint16_t port_id, uint32_t queue, const struct rte_mbuf * m, struct
       rte_mempool * mp, uint32_t length, enum rte_pcapng_direction direction, const char * comment)
       Format an mbuf for writing to file.

       Parameters
           port_id The Ethernet port on which packet was received or is going to be transmitted.
           queue The queue on the Ethernet port where packet was received or is going to be transmitted.
           mp The mempool from which the 'clone' mbufs are allocated.
           m The mbuf to copy
           length The upper limit on bytes to copy. Passing UINT32_MAX means all data (after offset).
           direction The direction of the packer: receive, transmit or unknown.
           comment Packet comment.

       Returns

           • The pointer to the new mbuf formatted for pcapng_write

           • NULL if allocation fails.

   uint32_t rte_pcapng_mbuf_size (uint32_t length)
       Determine optimum mbuf data size.

       Parameters
           length The largest packet that will be copied.

       Returns
           The  minimum size of mbuf data to handle packet with length bytes. Accounting for required header and
           trailer fields

   ssize_t rte_pcapng_write_packets (rte_pcapng_t * self, struct rte_mbuf * pkts[], uint16_t nb_pkts)
       Write packets to the capture file.

       Packets to be captured are copied by rte_pcapng_copy() and then this function is called to write them  to
       the file.

       Warning
           Do not pass original mbufs from transmit or receive or file will be invalid pcapng format.

       Parameters
           self The handle to the packet capture file
           pkts  The  address  of  an  array of nb_pkts pointers to rte_mbuf structures which contain the output
           packets
           nb_pkts The number of packets to write to the file.

       Returns
           The number of bytes written to file, -1 on failure to write file.  The  mbuf's  in  pkts  are  always
           freed.

   ssize_t  rte_pcapng_write_stats  (rte_pcapng_t * self, uint16_t port, uint64_t ifrecv, uint64_t ifdrop, const
       char * comment)
       Write an Interface statistics block. For statistics, use 0 if don't know or care to report it. Should  be
       called before closing capture to report results.

       Parameters
           self The handle to the packet capture file
           port The Ethernet port to report stats on.
           ifrecv The number of packets received by capture. Optional: use UINT64_MAX if not known.
           ifdrop The number of packets missed by the capture process. Optional: use UINT64_MAX if not known.
           comment Optional comment to add to statistics.

       Returns
           number of bytes written to file, -1 on failure to write file

Author

       Generated automatically by Doxygen for DPDK from the source code.

DPDK                                             Version 24.11.2                                 rte_pcapng.h(3)