[PATCH v5 2/2] ethdev: add indirect list METER_MARK update structures
Gregory Etelson
getelson at nvidia.com
Thu May 25 10:12:16 CEST 2023
In the indirect list API, update action and update flow contexts
are mutually exclusive.
The patch splits legacy METER_MASK update structure to support
indirect list API:
`struct rte_flow_indirect_update_action_meter_mark` defines METER_MARK
action context that is shared between all flows that reference a given
indirect list handle.
`struct rte_flow_indirect_update_flow_meter_mark` defines METER_MARK
context private to specific flow.
Signed-off-by: Gregory Etelson <getelson at nvidia.com>
---
lib/ethdev/rte_flow.h | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
index a0d01a97e7..ce1aa336f2 100644
--- a/lib/ethdev/rte_flow.h
+++ b/lib/ethdev/rte_flow.h
@@ -3891,6 +3891,38 @@ struct rte_flow_update_meter_mark {
uint32_t reserved:27;
};
+/**
+ * @see RTE_FLOW_ACTION_TYPE_METER_MARK
+ * @see RTE_FLOW_ACTION_TYPE_INDIRECT_LIST
+ *
+ * Update action mutable context.
+ */
+struct rte_flow_indirect_update_action_meter_mark {
+ /** New meter_mark parameters to be updated. */
+ struct rte_flow_action_meter_mark meter_mark;
+ /** The profile will be updated. */
+ uint32_t profile_valid:1;
+ /** The policy will be updated. */
+ uint32_t policy_valid:1;
+ /** The color mode will be updated. */
+ uint32_t color_mode_valid:1;
+ /** The meter state will be updated. */
+ uint32_t state_valid:1;
+ /** Reserved bits for the future usage. */
+ uint32_t reserved:28;
+};
+
+/**
+ * @see RTE_FLOW_ACTION_TYPE_METER_MARK
+ * @see RTE_FLOW_ACTION_TYPE_INDIRECT_LIST
+ *
+ * Update flow mutable context.
+ */
+struct rte_flow_indirect_update_flow_meter_mark {
+ /** Updated init color applied to packet */
+ enum rte_color init_color;
+};
+
/* Mbuf dynamic field offset for metadata. */
extern int32_t rte_flow_dynf_metadata_offs;
--
2.34.1
More information about the dev
mailing list