Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
rte_eth_rxseg_split(3)		      DPDK		  rte_eth_rxseg_split(3)

NAME
     rte_eth_rxseg_split

SYNOPSIS
     #include <rte_ethdev.h>

   Data Fields
     struct rte_mempool * mp
     uint16_t length
     uint16_t offset
     uint32_t proto_hdr

Detailed Description
     Warning
	 EXPERIMENTAL: this structure may change without prior notice.

     A structure used to configure an Rx packet segment to split.

     If  RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT  flag is set in offloads field, the PMD
     will split the received packets into multiple  segments  according  to  the
     specification in the description array:

     * The  first  network buffer will be allocated from the memory pool, speci-
       fied in the first array element, the second buffer, from the pool in  the
       second element, and so on.

     * The  proto_hdrs	in  the  elements  define the split position of received
       packets.

     * The offsets from the segment description elements specify the data offset
       from the buffer beginning except the first mbuf. The first segment offset
       is added with RTE_PKTMBUF_HEADROOM.

     * The lengths in the elements define the maximal data amount being received
       to each segment. The receiving starts with filling up the first mbuf data
       buffer up to specified length. If the there are data remaining (packet is
       longer than buffer in the first mbuf) the following data will  be  pushed
       to the next segment up to its own length, and so on.

     * If  the	length	in  the  segment  description element is zero the actual
       buffer size will be deduced from the appropriate memory pool properties.

     * If there is not enough elements to describe the buffer for entire  packet
       of  maximal  length the following parameters will be used for the all re-
       maining segments:

       * pool from the last valid element

       * the buffer size from this pool

       * zero offset

     * Length based buffer split:

       * mp, length, offset should be configured.

       * The proto_hdr field must be 0.

     * Protocol header based buffer split:

       * mp, offset, proto_hdr should be configured.

       * The length field must be 0.

       * The proto_hdr field in the last segment should be 0.

     * When protocol header split is enabled, NIC may receive packets  which  do
       not match all the protocol headers within the Rx segments. At this point,
       NIC will have two possible split behaviors according to matching results,
       one  is	exact  match,  another is longest match. The split result of NIC
       must belong to one of them. The exact match means NIC only do split  when
       the  packets exactly match all the protocol headers in the segments. Oth-
       erwise, the whole packet will be put into the  last  valid  mempool.  The
       longest match means NIC will do split until packets mismatch the protocol
       header in the segments. The rest will be put into the last valid pool.

     Definition at line 1123 of file rte_ethdev.h.

Field Documentation
   struct rte_mempool* mp
     Memory pool to allocate segment from.

     Definition at line 1124 of file rte_ethdev.h.

   uint16_t length
     Segment data length, configures split point.

     Definition at line 1125 of file rte_ethdev.h.

   uint16_t offset
     Data offset from beginning of mbuf data buffer.

     Definition at line 1126 of file rte_ethdev.h.

   uint32_t proto_hdr
     proto_hdr	defines  a bit mask of the protocol sequence as RTE_PTYPE_*. The
     last RTE_PTYPE* in the mask indicates the split position.

     If one protocol header is defined to split packets into two  segments,  for
     non-tunneling  packets,  the  complete protocol sequence should be defined.
     For tunneling packets, for simplicity, only the tunnel and  inner	part  of
     complete protocol sequence is required. If several protocol headers are de-
     fined  to split packets into multi-segments, the repeated parts of adjacent
     segments should be omitted.

     Definition at line 1138 of file rte_ethdev.h.

Author
     Generated automatically by Doxygen for DPDK from the source code.

Version 25.11.0 		 Thu Aug 27 2026	  rte_eth_rxseg_split(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rte_eth_rxseg_split&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help