5#ifndef _RTE_GRAPH_FEATURE_ARC_H_
6#define _RTE_GRAPH_FEATURE_ARC_H_
18#include <rte_compat.h>
206#define RTE_GRAPH_FEATURE_ARC_NAMELEN RTE_NODE_NAMESIZE
209#define RTE_GRAPH_FEATURE_ARC_INITIALIZER ((rte_graph_feature_arc_t)UINT16_MAX)
210#define RTE_GRAPH_FEATURE_DATA_INVALID ((rte_graph_feature_data_t)UINT32_MAX)
211#define RTE_GRAPH_FEATURE_INVALID ((rte_graph_feature_t)UINT8_MAX)
224 const char *feature_name,
228 uint16_t app_cookie);
346#define RTE_GRAPH_FEATURE_REGISTER(reg) \
347 RTE_INIT(__rte_graph_feature_register_##reg) \
349 __rte_graph_feature_register(®, __func__, __LINE__); \
353#define RTE_GRAPH_FEATURE_ARC_REGISTER(reg) \
354 RTE_INIT(__rte_graph_feature_arc_register_##reg) \
356 __rte_graph_feature_arc_register(®, __func__, __LINE__); \
475 struct rte_rcu_qsbr *qsbr);
634 const char *caller_name,
int lineno);
650 const char *caller_name,
int lineno);
uint16_t(* rte_node_process_t)(struct rte_graph *graph, struct rte_node *node, void **objs, uint16_t nb_objs)
__rte_experimental int rte_graph_feature_lookup(rte_graph_feature_arc_t arc, const char *feature_name, rte_graph_feature_t *feature)
__rte_experimental int rte_graph_feature_add(struct rte_graph_feature_register *feat_reg)
__rte_experimental uint32_t rte_graph_feature_arc_names_get(char *arc_names[])
__rte_experimental int rte_graph_feature_disable(rte_graph_feature_arc_t _arc, uint32_t index, const char *feature_name, struct rte_rcu_qsbr *qsbr)
uint32_t rte_graph_feature_data_t
uint16_t(* rte_graph_feature_override_index_cb_t)(void)
__rte_experimental int rte_graph_feature_arc_create(struct rte_graph_feature_arc_register *reg, rte_graph_feature_arc_t *_arc)
__rte_experimental int rte_graph_feature_arc_cleanup(void)
__rte_experimental uint32_t rte_graph_feature_arc_num_features(rte_graph_feature_arc_t _arc)
__rte_experimental int rte_graph_feature_enable(rte_graph_feature_arc_t _arc, uint32_t index, const char *feature_name, uint16_t app_cookie, struct rte_rcu_qsbr *qsbr)
uint16_t rte_graph_feature_arc_t
__rte_experimental int rte_graph_feature_arc_feature_to_node(rte_graph_feature_arc_t _arc, rte_graph_feature_t feature, rte_node_t *node)
__rte_experimental int rte_graph_feature_arc_destroy(rte_graph_feature_arc_t _arc)
uint8_t rte_graph_feature_t
__rte_experimental char * rte_graph_feature_arc_feature_to_name(rte_graph_feature_arc_t _arc, rte_graph_feature_t feature)
void(* rte_graph_feature_change_notifier_cb_t)(const char *arc_name, const char *feature_name, rte_node_t feature_node_id, uint32_t index, bool enable_disable, uint16_t app_cookie)
__rte_experimental int rte_graph_feature_arc_init(uint16_t num_feature_arcs)
__rte_experimental uint32_t rte_graph_feature_arc_num_enabled_features(rte_graph_feature_arc_t _arc)
__rte_experimental int rte_graph_feature_arc_lookup_by_name(const char *arc_name, rte_graph_feature_arc_t *_arc)
struct rte_node_register * start_node
rte_node_process_t start_node_feature_process_fn
struct rte_graph_feature_register * end_feature
struct rte_node_register * feature_node
rte_node_t feature_node_id
const char * feature_name
rte_graph_feature_change_notifier_cb_t notifier_cb
rte_node_process_t feature_process_fn
STAILQ_ENTRY(rte_graph_feature_register) next_feature
rte_graph_feature_override_index_cb_t override_index_cb