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

FreeBSD Manual Pages

  
 
  

home | help
rte_graph_feature_arc_worker.h(3)    DPDK    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)
	    (arc->feature_size >> RTE_GRAPH_FEATURE_DATA_SIZE_LOG2)
       #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)	  (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:.PP
	       ((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
   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]
       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.

   static __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.

   static __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.

   static __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.

   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]
       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.

   static __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.

   static __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.

   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]
       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.

   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]
       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.

   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]

       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.

   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]
       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.

   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]
       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.

   static __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.

   static __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.

   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) [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.

Version	25.11.0			Thu Jun	11 20rte_graph_feature_arc_worker.h(3)

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

home | help