Provided by: dpdk-doc_25.11-2_all bug

NAME

       rte_graph_feature_arc_worker.h

SYNOPSIS

       #include <stddef.h>
       #include <rte_graph_feature_arc.h>
       #include <rte_bitops.h>
       #include <rte_mbuf.h>
       #include <rte_mbuf_dyn.h>

   Data Structures
       struct rte_graph_feature_arc
       struct rte_feature_arc_main
       struct rte_graph_feature_data
       struct rte_graph_feature_arc_mbuf_dynfields

   Macros
       #define RTE_GRAPH_FEATURE_ARC_DYNFIELD_NAME   '__rte_graph_feature_arc_mbuf_dynfield'
       #define RTE_GRAPH_FEATURE_DATA_SIZE_LOG2   3
       #define RTE_GRAPH_FEATURE_DATA_NUM_PER_FEATURE(arc)
       #define RTE_GRAPH_FEATURE_TO_FEATURE_DATA(arc,  feature,  index)

   Typedefs
       typedef struct rte_feature_arc_main rte_graph_feature_arc_main_t

   Functions
       static __rte_experimental __rte_always_inline struct rte_graph_feature_arc_mbuf_dynfields *
           rte_graph_feature_arc_mbuf_dynfields_get (struct rte_mbuf *mbuf, const int dyn_offset)
       static __rte_experimental __rte_always_inline int rte_graph_feature_is_valid (rte_graph_feature_t
           feature)
       static __rte_experimental __rte_always_inline int rte_graph_feature_data_is_valid
           (rte_graph_feature_data_t feature_data)
       static __rte_experimental __rte_always_inline struct rte_graph_feature_arc * rte_graph_feature_arc_get
           (rte_graph_feature_arc_t arc)
       static __rte_experimental __rte_always_inline struct rte_graph_feature_data *
           __rte_graph_feature_data_get (struct rte_graph_feature_arc *arc, rte_graph_feature_data_t fdata)
       static __rte_experimental __rte_always_inline rte_edge_t __rte_graph_feature_data_edge_get (struct
           rte_graph_feature_data *fdata)
       static __rte_experimental __rte_always_inline uint16_t __rte_graph_feature_data_app_cookie_get (struct
           rte_graph_feature_data *fdata)
       static __rte_experimental __rte_always_inline rte_graph_feature_data_t
           __rte_graph_feature_data_next_feature_get (struct rte_graph_feature_data *fdata)
       static __rte_experimental __rte_always_inline uint16_t rte_graph_feature_data_app_cookie_get (struct
           rte_graph_feature_arc *arc, rte_graph_feature_data_t fdata)
       static __rte_experimental __rte_always_inline int rte_graph_feature_data_next_feature_get (struct
           rte_graph_feature_arc *arc, rte_graph_feature_data_t *fdata, rte_edge_t *next_edge)
       static __rte_experimental __rte_always_inline struct rte_graph_feature_data * rte_graph_feature_data_get
           (struct rte_graph_feature_arc *arc, rte_graph_feature_data_t fdata)
       static __rte_experimental __rte_always_inline int rte_graph_feature_data_first_feature_get (struct
           rte_graph_feature_arc *arc, uint32_t index, rte_graph_feature_data_t *fdata, rte_edge_t *edge)
       static __rte_experimental __rte_always_inline uint64_t rte_graph_feature_arc_is_any_feature_enabled
           (struct rte_graph_feature_arc *arc)
       static __rte_experimental __rte_always_inline void rte_graph_feature_arc_prefetch (struct
           rte_graph_feature_arc *arc)
       static __rte_experimental __rte_always_inline void rte_graph_feature_arc_feature_data_prefetch (struct
           rte_graph_feature_arc *arc, rte_graph_feature_data_t fdata)

   Variables
       rte_graph_feature_arc_main_t * __rte_graph_feature_arc_main

Detailed Description

       Warning
           EXPERIMENTAL: All functions in this file may be changed or removed without prior notice.

       Fast path Graph feature arc API

       Definition in file rte_graph_feature_arc_worker.h.

Macro Definition Documentation

   #define RTE_GRAPH_FEATURE_ARC_DYNFIELD_NAME   '__rte_graph_feature_arc_mbuf_dynfield'
       Name of dynamic mbuf field offset registered in rte_graph_feature_arc_init()

       Definition at line 262 of file rte_graph_feature_arc_worker.h.

   #define RTE_GRAPH_FEATURE_DATA_SIZE_LOG2   3
       log2(sizeof (struct rte_graph_feature_data))

       Definition at line 265 of file rte_graph_feature_arc_worker.h.

   #define RTE_GRAPH_FEATURE_DATA_NUM_PER_FEATURE( arc)
       Value:
           (arc->feature_size >> RTE_GRAPH_FEATURE_DATA_SIZE_LOG2)

       Number of struct rte_graph_feature_data per feature

       Definition at line 268 of file rte_graph_feature_arc_worker.h.

   #define RTE_GRAPH_FEATURE_TO_FEATURE_DATA( arc,  feature,  index)
       Value:
               ((rte_graph_feature_data_t)                 \
                ((RTE_GRAPH_FEATURE_DATA_NUM_PER_FEATURE(arc) * (feature)) + (index)))

       Get rte_graph_feature_data_t from rte_graph_feature_t

       Definition at line 272 of file rte_graph_feature_arc_worker.h.

Typedef Documentation

   typedef struct rte_feature_arc_main rte_graph_feature_arc_main_t
       Feature arc main object

       Holds all feature arcs created by application

Function Documentation

   __rte_experimental __rte_always_inline struct rte_graph_feature_arc_mbuf_dynfields *
       rte_graph_feature_arc_mbuf_dynfields_get (struct rte_mbuf * mbuf, const int dyn_offset) [static]
       Get dynfield offset to feature arc specific fields in mbuf

       Feature arc mbuf dynamic field is separate to utilize mbuf->dynfield2 instead of dynfield1

       This arc specific dynamic offset is registered as part of rte_graph_feature_arc_init() and copied in each
       arc for fast path access. This avoids node maintaining dynamic offset for feature arc and if we are
       lucky, field would be allocated from mbuf->dynfield2. Otherwise each node has to maintain at least two
       dynamic offset in fast path

       Parameters
           mbuf Pointer to mbuf
           dyn_offset Retrieved from arc->mbuf_dyn_offset

       Returns
           NULL: On Failure Non-NULL pointer on Success

       Definition at line 307 of file rte_graph_feature_arc_worker.h.

   __rte_experimental __rte_always_inline int rte_graph_feature_is_valid (rte_graph_feature_t feature) [static]
       API to know if feature is valid or not

       Parameters
           feature rte_graph_feature_t

       Returns
           1: If feature is valid 0: If feature is invalid

       Definition at line 326 of file rte_graph_feature_arc_worker.h.

   __rte_experimental __rte_always_inline int rte_graph_feature_data_is_valid (rte_graph_feature_data_t
       feature_data) [static]
       API to know if feature data is valid or not

       Parameters
           feature_data rte_graph_feature_data_t

       Returns
           1: If feature data is valid 0: If feature data is invalid

       Definition at line 343 of file rte_graph_feature_arc_worker.h.

   __rte_experimental __rte_always_inline struct rte_graph_feature_arc * rte_graph_feature_arc_get
       (rte_graph_feature_arc_t arc) [static]
       Get pointer to feature arc object from rte_graph_feature_arc_t

       Parameters
           arc feature arc

       Returns
           NULL: On Failure Non-NULL pointer on Success

       Definition at line 360 of file rte_graph_feature_arc_worker.h.

   __rte_experimental __rte_always_inline struct rte_graph_feature_data * __rte_graph_feature_data_get (struct
       rte_graph_feature_arc * arc, rte_graph_feature_data_t fdata) [static]
       Get rte_graph_feature_t from feature arc object without any checks

       Parameters
           arc feature arc
           fdata feature data object

       Returns
           Pointer to feature data object

       Definition at line 387 of file rte_graph_feature_arc_worker.h.

   __rte_experimental __rte_always_inline rte_edge_t __rte_graph_feature_data_edge_get (struct
       rte_graph_feature_data * fdata) [static]
       Get next edge from feature data pointer, without any check

       Parameters
           fdata feature data object

       Returns
           next edge

       Definition at line 405 of file rte_graph_feature_arc_worker.h.

   __rte_experimental __rte_always_inline uint16_t __rte_graph_feature_data_app_cookie_get (struct
       rte_graph_feature_data * fdata) [static]
       Get app_cookie from feature data pointer, without any check

       Parameters
           fdata feature data object

       Returns
           app_cookie set by caller in rte_graph_feature_enable() API

       Definition at line 421 of file rte_graph_feature_arc_worker.h.

   __rte_experimental __rte_always_inline rte_graph_feature_data_t __rte_graph_feature_data_next_feature_get
       (struct rte_graph_feature_data * fdata) [static]
       Get next_enabled_feature_data from pointer to feature data, without any check

       Parameters
           fdata feature data object

       Returns
           next enabled feature data from this feature data

       Definition at line 437 of file rte_graph_feature_arc_worker.h.

   __rte_experimental __rte_always_inline uint16_t rte_graph_feature_data_app_cookie_get (struct
       rte_graph_feature_arc * arc, rte_graph_feature_data_t fdata) [static]
       Get app_cookie from feature data object with checks

       Parameters
           arc feature arc
           fdata feature data object

       Returns
           app_cookie set by caller in rte_graph_feature_enable() API

       Definition at line 456 of file rte_graph_feature_arc_worker.h.

   __rte_experimental __rte_always_inline int rte_graph_feature_data_next_feature_get (struct
       rte_graph_feature_arc * arc, rte_graph_feature_data_t * fdata, rte_edge_t * next_edge) [static]
       Get next_enabled_feature_data from current feature data object with checks

       Parameters
           arc feature arc
           fdata Pointer to feature data object
           next_edge next_edge from current feature to next enabled feature

       Returns
           1: if next feature enabled on index 0: if no feature is enabled on index

       Definition at line 483 of file rte_graph_feature_arc_worker.h.

   __rte_experimental __rte_always_inline struct rte_graph_feature_data * rte_graph_feature_data_get (struct
       rte_graph_feature_arc * arc, rte_graph_feature_data_t fdata) [static]
       Get struct rte_graph_feature_data from rte_graph_feature_dat_t

       Parameters
           arc feature arc
           fdata feature data object

       Returns
           NULL: On Failure Non-NULL pointer on Success

       Definition at line 511 of file rte_graph_feature_arc_worker.h.

   __rte_experimental __rte_always_inline int rte_graph_feature_data_first_feature_get (struct
       rte_graph_feature_arc * arc, uint32_t index, rte_graph_feature_data_t * fdata, rte_edge_t * edge)
       [static]
       Get feature data corresponding to first enabled feature on index

       Parameters
           arc feature arc
           index Interface index
           fdata feature data object
           edge rte_edge object

       Returns
           1: if any feature enabled on index, return corresponding valid feature data 0: if no feature is
           enabled on index

       Definition at line 539 of file rte_graph_feature_arc_worker.h.

   __rte_experimental __rte_always_inline uint64_t rte_graph_feature_arc_is_any_feature_enabled (struct
       rte_graph_feature_arc * arc) [static]
       Fast path API to check if any feature enabled on a feature arc Typically from arc->start_node process
       function

       Parameters
           arc Feature arc object

       Returns
           0: If no feature enabled Non-Zero: Bitmask of features enabled.

       Definition at line 580 of file rte_graph_feature_arc_worker.h.

   __rte_experimental __rte_always_inline void rte_graph_feature_arc_prefetch (struct rte_graph_feature_arc *
       arc) [static]
       Prefetch feature arc fast path cache line

       Parameters
           arc RTE_GRAPH feature arc object

       Definition at line 597 of file rte_graph_feature_arc_worker.h.

   __rte_experimental __rte_always_inline void rte_graph_feature_arc_feature_data_prefetch (struct
       rte_graph_feature_arc * arc, rte_graph_feature_data_t fdata) [static]
       Prefetch feature data related fast path cache line

       Parameters
           arc RTE_GRAPH feature arc object
           fdata Pointer to feature data object

       Definition at line 612 of file rte_graph_feature_arc_worker.h.

Variable Documentation

   rte_graph_feature_arc_main_t* __rte_graph_feature_arc_main [extern]
       extern variables

Author

       Generated automatically by Doxygen for DPDK from the source code.

DPDK                                             Version 25.11.0               rte_graph_feature_arc_worker.h(3)