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

  
 
  

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_fea-
	 ture_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_fea-
	 ture_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_fea-
	 ture_is_valid (rte_graph_feature_t feature)
     static   __rte_experimental    __rte_always_inline    int	  rte_graph_fea-
	 ture_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_fea-
	 ture_data_edge_get (struct rte_graph_feature_data *fdata)
     static  __rte_experimental  __rte_always_inline  uint16_t	__rte_graph_fea-
	 ture_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_fea-
	 ture_data *fdata)
     static   __rte_experimental   __rte_always_inline	uint16_t  rte_graph_fea-
	 ture_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_fea-
	 ture_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_fea-
	 ture_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_fea-
	 ture_arc_is_any_feature_enabled (struct rte_graph_feature_arc *arc)
     static    __rte_experimental    __rte_always_inline   void   rte_graph_fea-
	 ture_arc_prefetch (struct rte_graph_feature_arc *arc)
     static   __rte_experimental   __rte_always_inline	  void	  rte_graph_fea-
	 ture_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_fea-
     ture_arc_mbuf_dynfield'
     Name  of  dynamic	mbuf   field   offset	registered   in   rte_graph_fea-
     ture_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_fea-
     ture_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  in-
     stead of dynfield1

     This  arc	specific  dynamic offset is registered as part of rte_graph_fea-
     ture_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  main-
     tain 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_fea-
     ture_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_fea-
     ture_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_fea-
     ture_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_fea-
     ture_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_fea-
     ture_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  in-
	 dex

     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_fea-
     ture_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_fea-
     ture_arc_is_any_feature_enabled (struct rte_graph_feature_arc * arc)  [sta-
     tic]
     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_fea-
     ture_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_fea-
     ture_data_prefetch  (struct  rte_graph_feature_arc  *  arc,  rte_graph_fea-
     ture_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 Aug 27 202rte_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_prefetch&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help