Provided by: dpdk-doc_24.11.2-2_all bug

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_ACTION_LB }

   Functions
       __rte_experimental struct rte_port_in_action_profile * rte_port_in_action_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 customized 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_action_register(),
         rte_port_in_action_profile_freeze().

       • Instantiate the input port action profile to create input port action objects. 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 handler invoked by the pipeline. API
         functions: rte_port_in_action_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_action_profile_create (uint32_t socket_id)

       Input port action profile create.

       Parameters
           socket_id CPU socket ID for the internal data structures memory allocation.

       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 profile 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 action is NULL, no operation is
           performed.

       Returns
           Always zero.

   __rte_experimental  int   rte_port_in_action_params_get   (struct   rte_port_in_action   *   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_action_*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.

DPDK                                             Version 24.11.2                         rte_port_in_action.h(3)