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

FreeBSD Manual Pages

  
 
  

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,
	 specified 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 remaining 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. Otherwise, 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 defined 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 Jun	11 2026		rte_eth_rxseg_split(3)

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

home | help