| rte_graph_feature_arc_worker.h(3) | Library Functions Manual | rte_graph_feature_arc_worker.h(3) |
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
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
dyn_offset Retrieved from arc->mbuf_dyn_offset
Returns
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
Returns
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
Returns
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
Returns
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
fdata feature data object
Returns
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
Returns
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
Returns
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
Returns
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
fdata feature data object
Returns
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
fdata Pointer to feature data object
next_edge next_edge from current feature to next enabled feature
Returns
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
fdata feature data object
Returns
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
index Interface index
fdata feature data object
edge rte_edge object
Returns
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
Returns
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
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
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.
| Version 25.11.0 | DPDK |