rte_graph_feature_arc(3)

πŸ“¦
version 25.11.3 Β· 4 versions
, in ubuntu resolute, ubuntu stonking

✨ NAME ✨

okay so bestie, welcome to the rte_graph_feature_arc(3) glow-up πŸ’– this is the manual page for rte_graph_feature_arc, straight out of the DPDK library functions manual, and we're gonna go through every single field like it's a group chat screenshot. no skips, no shortcuts, periodt πŸ’…


🌸 SYNOPSIS 🌸

#include <rte_graph_feature_arc_worker.h>

🫢 Public Member Functions 🫢

  • STAILQ_HEAD (, rte_graph_feature_node_list) all_features β€” literally just vibing there to hold all the feature lists.

πŸŽ€ Data Fields πŸŽ€

  • RTE_MARKER slow_path_variables
  • char feature_arc_name [RTE_GRAPH_FEATURE_ARC_NAMELEN]
  • uint32_t runtime_enabled_features
  • uint16_t max_features
  • rte_graph_feature_arc_t feature_arc_index
  • void * feature_arc_main
  • struct rte_node_register * start_node
  • rte_node_process_t arc_start_process
  • size_t arc_size
  • rte_graph_feature_data_t * feature_data_by_index
  • uint32_t feature_size
  • uint64_t * feature_bit_mask_by_index
  • RTE_MARKER fast_path_variables
  • uint64_t fp_feature_enable_bitmask
  • uint16_t num_added_features
  • uint16_t max_indexes
  • uint16_t fp_first_feature_offset
  • uint16_t fp_feature_data_offset
  • int mbuf_dyn_offset
  • RTE_MARKER8 fp_arc_data

πŸ‘‘ Detailed Description πŸ‘‘

so this whole thing is the rte_graph Feature arc object, bestie. it's giving main character energy for both control plane AND fast path ✨

here's the deal: the feature arc object holds all the control plane and fast path information for every feature, plus all the interface index info you need for steering packets across feature nodes. slay.

now, important tea 🍡 β€” inside a single feature arc, only RTE_GRAPH_FEATURE_MAX_PER_ARC features can be added. that's the cap, no negotiating. if you need more features than that, you don't cram them in, you go create another feature arc. iconic problem-solving tbh.

and for the fast path? the way that rte_graph_feature_arc_t can be translated into (struct rte_graph_feature_arc *) via rte_graph_feature_arc_get(). you need that, because the latter is what gets passed in as an input argument to all the fast path feature arc APIs. iykyk πŸ¦‹

Definition at line 84 of file rte_graph_feature_arc_worker.h.

πŸ’œ Member Function Documentation πŸ’œ

πŸŽ€ STAILQ_HEAD (rte_graph_feature_node_list )

All feature lists πŸ’– (yes, all of them. every single one.)


πŸ“ Field Documentation πŸ“

  • RTE_MARKER slow_path_variables β€” slow path variables follows, that's literally it, they're right there after this marker.

Definition at line 86 of file rte_graph_feature_arc_worker.h.

  • char feature_arc_name[RTE_GRAPH_FEATURE_ARC_NAMELEN] β€” the feature arc's name 🏷️

Definition at line 92 of file rte_graph_feature_arc_worker.h.

  • uint32_t runtime_enabled_features β€” a control plane counter that tracks enabled features, keeping receipts on what's actually on.

Definition at line 95 of file rte_graph_feature_arc_worker.h.

  • uint16_t max_features β€” the maximum number of features this arc can support. Immutable during fast path β€” so don't even think about touching it once the fast path starts πŸ™ˆ

Definition at line 100 of file rte_graph_feature_arc_worker.h.

  • rte_graph_feature_arc_t feature_arc_index β€” the index into feature_arc_main.

Definition at line 103 of file rte_graph_feature_arc_worker.h.

  • void* feature_arc_main β€” a back pointer to feature_arc_main (it points back, the way we all point back to our roots πŸ’…).

Definition at line 106 of file rte_graph_feature_arc_worker.h.

  • struct rte_node_register* start_node β€” the arc's start/end node.

Definition at line 109 of file rte_graph_feature_arc_worker.h.

  • rte_node_process_t arc_start_process β€” the arc start process function.

Definition at line 113 of file rte_graph_feature_arc_worker.h.

  • size_t arc_size β€” the total arc_size that was allocated.

Definition at line 116 of file rte_graph_feature_arc_worker.h.

  • rte_graph_feature_data_t* feature_data_by_index β€” slow path moment: the feature data array, maintained per [feature, index].

Definition at line 119 of file rte_graph_feature_arc_worker.h.

  • uint32_t feature_size β€” the size of all feature data for each feature, which is ALIGN(sizeof(struct rte_graph_feature_data) * arc->max_indexes). Not used in fastpath β€” she sits that one out 🧚

Definition at line 126 of file rte_graph_feature_arc_worker.h.

  • uint64_t* feature_bit_mask_by_index β€” slow path bit mask, per feature, per index.

Definition at line 129 of file rte_graph_feature_arc_worker.h.

  • RTE_MARKER fast_path_variables β€” cache aligned fast path variables, starting right here ✨

Definition at line 132 of file rte_graph_feature_arc_worker.h.

  • uint64_t fp_feature_enable_bitmask β€” a quick fast path bitmask that tells you if any feature is enabled. each bit corresponds to a single feature, and it helps optimally process packets for the case when features are added but not enabled. so smart, so efficient πŸ”₯

Definition at line 139 of file rte_graph_feature_arc_worker.h.

  • uint16_t num_added_features β€” number of added features. and the constraint? <= max_features. respect the limit bestie.

Definition at line 144 of file rte_graph_feature_arc_worker.h.

  • uint16_t max_indexes β€” maximum number of indexes this arc supports. Immutable during fast path β€” same rule as before, hands off 🚫

Definition at line 148 of file rte_graph_feature_arc_worker.h.

  • uint16_t fp_first_feature_offset β€” first feature offset in fast path. Immutable during fast path.

Definition at line 153 of file rte_graph_feature_arc_worker.h.

  • uint16_t fp_feature_data_offset β€” it's arc + fp_feature_data_arr_offset. Immutable during fast path.

Definition at line 158 of file rte_graph_feature_arc_worker.h.

  • int mbuf_dyn_offset β€” mbuf dynamic offset, saved for faster access. see rte_graph_feature_arc_mbuf_dynfields_get() for more details if you're nosy πŸ“–

Definition at line 164 of file rte_graph_feature_arc_worker.h.

  • RTE_MARKER8 fp_arc_data β€” fast path arc data starts here!! this is the marker, the moment, the beginning 🌈

Definition at line 205 of file rte_graph_feature_arc_worker.h.


πŸ’€ Author πŸ’€

Generated automatically by Doxygen for DPDK from the source code. (not a human, not a girlie, just a doc generator doing its thing 😭)


okay and that's the whole page bestie, no notes πŸŽ€ this was DPDK, Version 25.11.3, page rte_graph_feature_arc(3) β€” go forth and slay your feature arcs, mwah πŸ’–βœ¨

πŸ“¦ where this page comes from