#include <stddef.h>
#include <stdalign.h>
#include <dao_graph_feature_arc.h>
#include <rte_bitops.h>
Go to the source code of this file.
|
static struct dao_graph_feature_data * | dao_graph_feature_data_get (struct dao_graph_feature *df, uint8_t feature_index) |
|
static struct dao_graph_feature * | dao_graph_feature_get (struct dao_graph_feature_arc *dfl, uint32_t index) |
|
static int | dao_graph_feature_arc_has_first_feature (struct dao_graph_feature_arc *dfl, uint32_t index, dao_graph_feature_t *feature) |
|
static int | dao_graph_feature_arc_has_next_feature (struct dao_graph_feature_arc *dfl, uint32_t index, dao_graph_feature_t *feature) |
|
static void | dao_graph_feature_arc_prefetch (struct dao_graph_feature_arc *dfl, uint32_t index) |
|
static int | dao_graph_feature_arc_num_enabled_features (struct dao_graph_feature_arc *arc) |
|
static int | dao_graph_feature_arc_has_feature (struct dao_graph_feature_arc *dfl, uint32_t index, dao_graph_feature_t *feature) |
|
static void | __dao_graph_prefetch_data_prefetch (struct dao_graph_feature_arc *dfl, int index, dao_graph_feature_t feature) |
|
static void | dao_graph_feature_data_prefetch (struct dao_graph_feature_arc *dfl, uint32_t index, dao_graph_feature_t feature) |
|
static int | dao_graph_feature_arc_first_feature_data_get (struct dao_graph_feature_arc *dfl, dao_graph_feature_t feature, uint32_t index, rte_edge_t *edge, int64_t *data) |
|
static int | dao_graph_feature_arc_next_feature_data_get (struct dao_graph_feature_arc *dfl, dao_graph_feature_t feature, uint32_t index, rte_edge_t *edge, int64_t *data) |
|
static int | dao_graph_feature_arc_feature_data_get (struct dao_graph_feature_arc *dfl, dao_graph_feature_t feature, uint32_t index, rte_edge_t *edge, int64_t *data) |
|
◆ dao_graph_feature_data_t
DAO_GRAPH feature data representing a fast path feature object on an interface/index
◆ dao_graph_feature_arc_main_t
◆ dao_graph_feature_data_get()
Get dao_graph feature data object for a index in feature
- Parameters
-
df | Feature pointer |
feature_index | Index of feature maintained in slow path linked list |
- Returns
- Valid feature data
Definition at line 188 of file dao_graph_feature_arc_worker.h.
◆ dao_graph_feature_get()
◆ dao_graph_feature_arc_has_first_feature()
Fast path API to check if first feature enabled on a feature arc
Must be called in feature_arc->start_node processing
- Parameters
-
| dfl | Feature arc object |
| index | Interface/Index |
[out] | feature | Pointer to dao_graph_feature_t. Valid if API returns 1 |
- Returns
- 1: If feature is enabled 0: If feature is not enabled
Definition at line 228 of file dao_graph_feature_arc_worker.h.
◆ dao_graph_feature_arc_has_next_feature()
Fast path API to get next feature when current node is already on an feature arc and not consuming packet. This feature must forward the packet to next enabled feature by passing returned dao_graph_feature_t to dao_graph_feature_arc_next_feature_data_get()
- Parameters
-
| dfl | Feature arc object |
| index | Interface/Index |
[out] | feature | Pointer to dao_graph_feature_t. Valid if API returns 1 |
- Returns
- 1: If next feature is enabled 0: If next feature is not enabled
Definition at line 252 of file dao_graph_feature_arc_worker.h.
◆ dao_graph_feature_arc_prefetch()
Prefetch feature arc fast path cache line
- Parameters
-
dfl | DAO_GRAPH feature arc object |
index | Interface/index |
Definition at line 285 of file dao_graph_feature_arc_worker.h.
◆ dao_graph_feature_arc_num_enabled_features()
◆ dao_graph_feature_arc_has_feature()
Fast path API to check if any feature enabled on a feature arc
- Parameters
-
| dfl | Feature arc object |
| index | Interface/Index |
[out] | feature | Pointer to dao_graph_feature_t. Valid if API returns 1 |
- Returns
- 1: If feature is enabled 0: If feature is not enabled
Definition at line 320 of file dao_graph_feature_arc_worker.h.
◆ __dao_graph_prefetch_data_prefetch()
◆ dao_graph_feature_data_prefetch()
◆ dao_graph_feature_arc_first_feature_data_get()
Fast path API to get first feature data aka {edge, int32_t data}
Must be called in feature_arc->start_node processing
- Parameters
-
- Returns
- 0: Success <0: Failure
Definition at line 410 of file dao_graph_feature_arc_worker.h.
◆ dao_graph_feature_arc_next_feature_data_get()
Fast path API to get next feature data aka {edge, int32_t data}
Must NOT be called in feature_arc->start_node processing instead must be called in intermediate feature nodes on a featur-arc.
- Parameters
-
- Returns
- 0: Success <0: Failure
Definition at line 458 of file dao_graph_feature_arc_worker.h.
◆ dao_graph_feature_arc_feature_data_get()
Fast path API to get next feature data aka {edge, int32_t data}
- Parameters
-
- Returns
- 0: Success <0: Failure
Definition at line 503 of file dao_graph_feature_arc_worker.h.