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

FreeBSD Manual Pages

  
 
  

home | help
rte_bpf.h(3)			     DPDK			  rte_bpf.h(3)

NAME
       rte_bpf.h

SYNOPSIS
       #include	<rte_common.h>
       #include	<rte_mbuf.h>
       #include	<rte_malloc.h>
       #include	<bpf_def.h>

   Data	Structures
       struct rte_bpf_arg
       struct rte_bpf_xsym
       struct rte_bpf_prm
       struct rte_bpf_jit

   Macros
       #define RTE_BPF_ARG_PTR_TYPE(x)	 ((x) &	RTE_BPF_ARG_PTR)

   Enumerations
       enum rte_bpf_arg_type { RTE_BPF_ARG_UNDEF, RTE_BPF_ARG_RAW,
	   RTE_BPF_ARG_PTR = 0x10, RTE_BPF_ARG_PTR_MBUF, RTE_BPF_ARG_RESERVED
	   }
       enum rte_bpf_xtype { RTE_BPF_XTYPE_FUNC,	RTE_BPF_XTYPE_VAR }

   Functions
       void rte_bpf_destroy (struct rte_bpf *bpf)
       struct rte_bpf *	rte_bpf_load (const struct rte_bpf_prm *prm)
	   __rte_malloc	__rte_dealloc(rte_bpf_destroy
       struct rte_bpf struct rte_bpf * rte_bpf_elf_load	(const struct
	   rte_bpf_prm *prm, const char	*fname,	const char *sname)
	   __rte_malloc	__rte_dealloc(rte_bpf_destroy
       struct rte_bpf struct rte_bpf uint64_t rte_bpf_exec (const struct
	   rte_bpf *bpf, void *ctx)
       uint32_t	rte_bpf_exec_burst (const struct rte_bpf *bpf, void *ctx[],
	   uint64_t rc[], uint32_t num)
       int rte_bpf_get_jit (const struct rte_bpf *bpf, struct rte_bpf_jit
	   *jit)
       void rte_bpf_dump (FILE *f, const struct	ebpf_insn *buf,	uint32_t len)
       struct rte_bpf_prm * rte_bpf_convert (const struct bpf_program *prog)
	   __rte_malloc	__rte_dealloc_free

Detailed Description
       RTE BPF support.

       librte_bpf provides a framework to load and execute eBPF	bytecode
       inside user-space dpdk based applications. It supports basic set	of
       features	from eBPF spec
       (https://www.kernel.org/doc/Documentation/networking/filter.txt).

       Definition in file rte_bpf.h.

Macro Definition Documentation
   #define RTE_BPF_ARG_PTR_TYPE(x)   ((x) & RTE_BPF_ARG_PTR)
       determine is argument a pointer

       Definition at line 56 of	file rte_bpf.h.

Enumeration Type Documentation
   enum	rte_bpf_arg_type
       Possible	types for function/BPF program arguments.

       Enumerator

       RTE_BPF_ARG_UNDEF
	      undefined

       RTE_BPF_ARG_RAW
	      scalar value

       RTE_BPF_ARG_PTR
	      pointer to data buffer

       RTE_BPF_ARG_PTR_MBUF
	      pointer to rte_mbuf

       RTE_BPF_ARG_RESERVED
	      reserved for internal use

       Definition at line 31 of	file rte_bpf.h.

   enum	rte_bpf_xtype
       Possible	types for external symbols.

       Enumerator

       RTE_BPF_XTYPE_FUNC
	      function

       RTE_BPF_XTYPE_VAR
	      variable

       Definition at line 61 of	file rte_bpf.h.

Function Documentation
   void	rte_bpf_destroy	(struct	rte_bpf	* bpf)
       De-allocate all memory used by this eBPF	execution context.

       Parameters
	   bpf BPF handle to destroy.

   struct rte_bpf * rte_bpf_load (const	struct rte_bpf_prm * prm)
       Create a	new eBPF execution context and load given BPF code into	it.

       Parameters
	   prm	Parameters  used  to  create  and initialise the BPF execution
	   context.

       Returns
	   BPF handle that is used in future BPF operations, or	NULL on	error,
	   with	 error	code  set  in  rte_errno.  Possible  rte_errno	errors
	   include:

	    EINVAL - invalid parameter	passed to function

	    ENOMEM - can't reserve enough memory

   struct  rte_bpf struct rte_bpf * rte_bpf_elf_load (const struct rte_bpf_prm
       * prm, const char * fname, const	char * sname)
       Create a	new eBPF execution context and load BPF	code  from  given  ELF
       file into it. Note that if the function will encounter EBPF_PSEUDO_CALL
       instruction  that  references  external	symbol,	 it  will  treat is as
       standard	BPF_CALL to the	external helper	function.

       Parameters
	   prm Parameters used to create  and  initialise  the	BPF  execution
	   context.
	   fname Pathname for a	ELF file.
	   sname Name of the executable	section	within the file	to load.

       Returns
	   BPF handle that is used in future BPF operations, or	NULL on	error,
	   with	 error	code  set  in  rte_errno.  Possible  rte_errno	errors
	   include:

	    EINVAL - invalid parameter	passed to function

	    ENOMEM - can't reserve enough memory

   struct rte_bpf struct rte_bpf uint64_t rte_bpf_exec (const struct rte_bpf *
       bpf, void * ctx)
       Execute given BPF bytecode.

       Parameters
	   bpf handle for the BPF code to execute.
	   ctx pointer to input	context.

       Returns
	   BPF execution return	value.

   uint32_t rte_bpf_exec_burst (const struct rte_bpf  *	 bpf,  void  *	ctx[],
       uint64_t	rc[], uint32_t num)
       Execute given BPF bytecode over a set of	input contexts.

       Parameters
	   bpf handle for the BPF code to execute.
	   ctx array of	pointers to the	input contexts.
	   rc array of return values (one per input).
	   num number of elements in ctx[] (and	rc[]).

       Returns
	   number of successfully processed inputs.

   int rte_bpf_get_jit (const struct rte_bpf * bpf, struct rte_bpf_jit * jit)
       Provide information about natively compiled code	for given BPF handle.

       Parameters
	   bpf handle for the BPF code.
	   jit	pointer	to the rte_bpf_jit structure to	be filled with related
	   data.

       Returns

	    -EINVAL if	the parameters are invalid.

	    Zero if operation completed successfully.

   void	rte_bpf_dump (FILE * f,	const struct ebpf_insn * buf, uint32_t len)
       Dump epf	instructions to	a file.

       Parameters
	   f A pointer to a file for output
	   buf A pointer to BPF	instructions
	   len Number of BPF instructions to dump.

   struct rte_bpf_prm *	rte_bpf_convert	(const struct bpf_program * prog)
       Convert a Classic BPF program from libpcap into a DPDK BPF code.

       Parameters
	   prog	Classic	BPF program from pcap_compile().

       Returns
	   Pointer to BPF program (allocated with rte_malloc) that is used  in
	   future  BPF	operations,  or	 NULL on error,	with error code	set in
	   rte_errno. Possible rte_errno errors	include:

	    EINVAL - invalid parameter	passed to function

	    ENOMEM - can't reserve enough memory

	    ENOTSUP - operation not supported

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

Version	25.11.0			Thu Jun	11 2026			  rte_bpf.h(3)

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

home | help