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

  
 
  

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

NAME
     rte_port_in_action.h

SYNOPSIS
     #include <stdint.h>
     #include <rte_compat.h>
     #include <rte_table_hash.h>
     #include 'rte_pipeline.h'

   Data Structures
     struct rte_port_in_action_fltr_config
     struct rte_port_in_action_fltr_params
     struct rte_port_in_action_lb_config
     struct rte_port_in_action_lb_params

   Macros
     #define RTE_PORT_IN_ACTION_FLTR_KEY_SIZE	16
     #define RTE_PORT_IN_ACTION_LB_KEY_SIZE_MIN   8
     #define RTE_PORT_IN_ACTION_LB_KEY_SIZE_MAX   64
     #define RTE_PORT_IN_ACTION_LB_TABLE_SIZE	16

   Enumerations
     enum rte_port_in_action_type { RTE_PORT_IN_ACTION_FLTR = 0, RTE_PORT_IN_AC-
	 TION_LB }

   Functions
     __rte_experimental   struct  rte_port_in_action_profile  *  rte_port_in_ac-
	 tion_profile_create (uint32_t socket_id)
     __rte_experimental     int     rte_port_in_action_profile_free	 (struct
	 rte_port_in_action_profile *profile)
     __rte_experimental  int  rte_port_in_action_profile_action_register (struct
	 rte_port_in_action_profile *profile, enum rte_port_in_action_type type,
	 void *action_config)
     __rte_experimental    int	   rte_port_in_action_profile_freeze	 (struct
	 rte_port_in_action_profile *profile)
     __rte_experimental  struct  rte_port_in_action  * rte_port_in_action_create
	 (struct rte_port_in_action_profile *profile, uint32_t socket_id)
     __rte_experimental int rte_port_in_action_free  (struct  rte_port_in_action
	 *action)
     __rte_experimental      int      rte_port_in_action_params_get	 (struct
	 rte_port_in_action *action, struct rte_pipeline_port_in_params *params)
     __rte_experimental int rte_port_in_action_apply (struct  rte_port_in_action
	 *action, enum rte_port_in_action_type type, void *action_params)

Detailed Description
     RTE Pipeline Input Port Actions

     This API provides a common set of actions for pipeline input ports to speed
     up application development.

     Each  pipeline  input port can be assigned an action handler to be executed
     on every input packet during the pipeline execution. The  pipeline  library
     allows  the  user	to  define  his own input port actions by providing cus-
     tomized input port action handler. While the user	can  still  follow  this
     process,  this API is intended to provide a quicker development alternative
     for a set of predefined actions.

     The typical steps to use this API are:

     * Define an input port action profile. This  is  a  configuration	template
       that  can  potentially be shared by multiple input ports from the same or
       different pipelines, with different input ports from  the  same	pipeline
       able to use different action profiles. For every input port using a given
       action  profile,  the  profile  defines the set of actions and the action
       configuration  to  be  executed	by  the  input	port.	API   functions:
       rte_port_in_action_profile_create(),	  rte_port_in_action_profile_ac-
       tion_register(), rte_port_in_action_profile_freeze().

     * Instantiate the input port action profile to create input port action ob-
       jects. Each pipeline input port has its own action object. API functions:
       rte_port_in_action_create().

     * Use the input port action object to generate the input port  action  han-
       dler   invoked	by   the   pipeline.   API   functions:  rte_port_in_ac-
       tion_params_get().

     * Use the input port action object to generate the internal data structures
       used by the input port action handler based on given  action  parameters.
       API functions: rte_port_in_action_apply().

     Warning
	 EXPERIMENTAL: this API may change without prior notice

     Definition in file rte_port_in_action.h.

Macro Definition Documentation
   #define RTE_PORT_IN_ACTION_FLTR_KEY_SIZE   16
     RTE_PORT_IN_ACTION_FLTR Filter key size (number of bytes)

     Definition at line 73 of file rte_port_in_action.h.

   #define RTE_PORT_IN_ACTION_LB_KEY_SIZE_MIN	8
     RTE_PORT_IN_ACTION_LB Load balance key size min (number of bytes).

     Definition at line 113 of file rte_port_in_action.h.

   #define RTE_PORT_IN_ACTION_LB_KEY_SIZE_MAX	64
     Load balance key size max (number of bytes).

     Definition at line 116 of file rte_port_in_action.h.

   #define RTE_PORT_IN_ACTION_LB_TABLE_SIZE   16
     Load balance table size.

     Definition at line 119 of file rte_port_in_action.h.

Enumeration Type Documentation
   enum rte_port_in_action_type
     Input port actions.

     Enumerator

     RTE_PORT_IN_ACTION_FLTR
	    Filter selected input packets.

     RTE_PORT_IN_ACTION_LB
	    Load balance.

     Definition at line 61 of file rte_port_in_action.h.

Function Documentation
   __rte_experimental	struct	 rte_port_in_action_profile   *  rte_port_in_ac-
     tion_profile_create (uint32_t socket_id)
     Input port action profile create.

     Parameters
	 socket_id CPU socket ID for the internal data structures memory alloca-
	 tion.

     Returns
	 Input port action profile handle on success, NULL otherwise.

   __rte_experimental	   int	    rte_port_in_action_profile_free	 (struct
     rte_port_in_action_profile * profile)
     Input port action profile free.

     Parameters
	 profile  Input  port action profile handle (needs to be valid). If pro-
	 file is NULL, no operation is performed.

     Returns
	 Always zero.

   __rte_experimental  int  rte_port_in_action_profile_action_register	 (struct
     rte_port_in_action_profile  *  profile,  enum rte_port_in_action_type type,
     void * action_config)
     Input port action profile action register.

     Parameters
	 profile Input port action profile handle (needs to be valid and not  in
	 frozen state).
	 type Specific input port action to be registered for profile.
	 action_config	 Configuration	 for   the   type   action.   If  struct
	 rte_port_in_action_*type*_config is defined, it needs	to  point  to  a
	 valid instance of this structure, otherwise it needs to be set to NULL.

     Returns
	 Zero on success, non-zero error code otherwise.

   __rte_experimental	   int	   rte_port_in_action_profile_freeze	 (struct
     rte_port_in_action_profile * profile)
     Input port action profile freeze.

     Once this function is called successfully, the  given  profile  enters  the
     frozen  state  with the following immediate effects: no more actions can be
     registered for this profile, so the profile can be instantiated  to  create
     input port action objects.

     Parameters
	 profile  Input port profile action handle (needs to be valid and not in
	 frozen state).

     Returns
	 Zero on success, non-zero error code otherwise.

     See also
	 rte_port_in_action_create()

   __rte_experimental  struct  rte_port_in_action  *   rte_port_in_action_create
     (struct rte_port_in_action_profile * profile, uint32_t socket_id)
     Input port action create.

     Instantiates  the	given  input port action profile to create an input port
     action object.

     Parameters
	 profile Input port profile action handle (needs  to  be  valid  and  in
	 frozen state).
	 socket_id  CPU socket ID where the internal data structures required by
	 the new input port action object should be allocated.

     Returns
	 Handle to input port action object on success, NULL on error.

   __rte_experimental int rte_port_in_action_free (struct  rte_port_in_action  *
     action)
     Input port action free.

     Parameters
	 action  Handle  to input port action object (needs to be valid). If ac-
	 tion is NULL, no operation is performed.

     Returns
	 Always zero.

   __rte_experimental int rte_port_in_action_params_get (struct  rte_port_in_ac-
     tion * action, struct rte_pipeline_port_in_params * params)
     Input port params get.

     Parameters
	 action Handle to input port action object (needs to be valid).
	 params Pipeline input port parameters (needs to be pre-allocated).

     Returns
	 Zero on success, non-zero error code otherwise.

   __rte_experimental  int rte_port_in_action_apply (struct rte_port_in_action *
     action, enum rte_port_in_action_type type, void * action_params)
     Input port action apply.

     Parameters
	 action Handle to input port action object (needs to be valid).
	 type Specific input port action previously  registered  for  the  input
	 port action profile of the action object.
	 action_params Parameters for the type action. If struct rte_port_in_ac-
	 tion_*type*_params is defined, it needs to point to a valid instance of
	 this structure, otherwise it needs to be set to NULL.

     Returns
	 Zero on success, non-zero error code otherwise.

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

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

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

home | help