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

  
 
  

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

NAME
     rte_bpf_ethdev.h

SYNOPSIS
     #include <rte_bpf.h>

   Enumerations
     enum {  }

   Functions
     void rte_bpf_eth_rx_unload (uint16_t port, uint16_t queue)
     void rte_bpf_eth_tx_unload (uint16_t port, uint16_t queue)
     int  rte_bpf_eth_rx_elf_load  (uint16_t  port, uint16_t queue, const struct
	 rte_bpf_prm *prm, const char *fname, const char *sname, uint32_t flags)
     int rte_bpf_eth_tx_elf_load (uint16_t port, uint16_t  queue,  const  struct
	 rte_bpf_prm *prm, const char *fname, const char *sname, uint32_t flags)

Detailed Description
     API  to  install  BPF  filter as RX/TX callbacks for eth devices. Note that
     right now:

     * it is not MT safe, i.e. it is not allowed to do load/unload for the  same
       port/queue from different threads in parallel.

     * though  it allows to do load/unload at runtime (while RX/TX is ongoing on
       given port/queue).

     * allows only one BPF program per port/queue, i.e. new  load  will  replace
       previously  loaded for that port/queue BPF program. Filter behaviour - if
       BPF program returns zero value for  a  given  packet,  then  it	will  be
       dropped	inside	callback  and  no  further processing on RX - it will be
       dropped inside callback and no further processing for  that  packet  will
       happen.	on  TX	- packet will remain unsent, and it is responsibility of
       the user to handle such situation (drop, try to send again, etc.).

     Definition in file rte_bpf_ethdev.h.

Enumeration Type Documentation
   anonymous enum
     Enumerator

     RTE_BPF_ETH_F_JIT
	    use compiled into native ISA code

     Definition at line 33 of file rte_bpf_ethdev.h.

Function Documentation
   void rte_bpf_eth_rx_unload (uint16_t port, uint16_t queue)
     Unload previously loaded BPF program (if any) from given RX port/queue  and
     remove appropriate RX port/queue callback.

     Parameters
	 port The identifier of the ethernet port
	 queue The identifier of the RX queue on the given port

   void rte_bpf_eth_tx_unload (uint16_t port, uint16_t queue)
     Unload  previously loaded BPF program (if any) from given TX port/queue and
     remove appropriate TX port/queue callback.

     Parameters
	 port The identifier of the ethernet port
	 queue The identifier of the TX queue on the given port

   int rte_bpf_eth_rx_elf_load (uint16_t  port,  uint16_t  queue,  const  struct
     rte_bpf_prm * prm, const char * fname, const char * sname, uint32_t flags)
     Load  BPF	program  from the ELF file and install callback to execute it on
     given RX port/queue.

     Parameters
	 port The identifier of the ethernet port
	 queue The identifier of the RX queue on the given port
	 fname Pathname for a ELF file.
	 sname Name of the executable section within the file to load.
	 prm Parameters used to create and initialise the BPF execution context.
	 flags Flags that define expected behavior of the  loaded  filter  (i.e.
	 jited/non-jited version to use).

     Returns
	 Zero on successful completion or negative error code otherwise.

   int	rte_bpf_eth_tx_elf_load  (uint16_t  port,  uint16_t  queue, const struct
     rte_bpf_prm * prm, const char * fname, const char * sname, uint32_t flags)
     Load BPF program from the ELF file and install callback to  execute  it  on
     given TX port/queue.

     Parameters
	 port The identifier of the ethernet port
	 queue The identifier of the TX queue on the given port
	 fname Pathname for a ELF file.
	 sname Name of the executable section within the file to load.
	 prm Parameters used to create and initialise the BPF execution context.
	 flags	Flags  that  define expected behavior of the loaded filter (i.e.
	 jited/non-jited version to use).

     Returns
	 Zero on successful completion or negative error code otherwise.

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

Version 25.11.0 		 Thu Aug 27 2026	     rte_bpf_ethdev.h(3)

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

home | help