[v3] ethdev: add indirect list METER_MARK flow update structure
Checks
Commit Message
Indirect list API defines 2 types of action update:
• Action mutable context is always shared between all flows
that referenced indirect actions list handle.
Action mutable context can be changed by explicit invocation
of indirect handle update function.
• Flow mutable context is private to a flow.
Flow mutable context can be updated by indirect list handle
flow rule configuration.
The patch defines `struct rte_flow_indirect_update_flow_meter_mark`
for indirect METER_MARK flow mutable updates.
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
---
Depends-on: patch-127638 ("ethdev: add indirect list flow action")
---
lib/ethdev/rte_flow.h | 11 +++++++++++
1 file changed, 11 insertions(+)
Comments
Hi Gregory
> -----Original Message-----
> From: Gregory Etelson <getelson@nvidia.com>
> Sent: Sunday, May 28, 2023 7:21 PM
> To: dev@dpdk.org
>
> Indirect list API defines 2 types of action update:
> • Action mutable context is always shared between all flows
> that referenced indirect actions list handle.
> Action mutable context can be changed by explicit invocation
> of indirect handle update function.
> • Flow mutable context is private to a flow.
> Flow mutable context can be updated by indirect list handle
> flow rule configuration.
>
> The patch defines `struct rte_flow_indirect_update_flow_meter_mark`
> for indirect METER_MARK flow mutable updates.
>
> Signed-off-by: Gregory Etelson <getelson@nvidia.com>
> ---
> Depends-on: patch-127638 ("ethdev: add indirect list flow action")
> ---
> lib/ethdev/rte_flow.h | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
> index 71727883ad..750df8401d 100644
> --- a/lib/ethdev/rte_flow.h
> +++ b/lib/ethdev/rte_flow.h
> @@ -3891,6 +3891,17 @@ 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 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
Acked-by: Ori Kam <orika@nvidia.com>
Best,
Ori
On 5/29/2023 7:11 AM, Ori Kam wrote:
> Hi Gregory
>
>> -----Original Message-----
>> From: Gregory Etelson <getelson@nvidia.com>
>> Sent: Sunday, May 28, 2023 7:21 PM
>> To: dev@dpdk.org
>>
>> Indirect list API defines 2 types of action update:
>> • Action mutable context is always shared between all flows
>> that referenced indirect actions list handle.
>> Action mutable context can be changed by explicit invocation
>> of indirect handle update function.
>> • Flow mutable context is private to a flow.
>> Flow mutable context can be updated by indirect list handle
>> flow rule configuration.
>>
>> The patch defines `struct rte_flow_indirect_update_flow_meter_mark`
>> for indirect METER_MARK flow mutable updates.
>>
>> Signed-off-by: Gregory Etelson <getelson@nvidia.com>
>> ---
>> Depends-on: patch-127638 ("ethdev: add indirect list flow action")
>> ---
>> lib/ethdev/rte_flow.h | 11 +++++++++++
>> 1 file changed, 11 insertions(+)
>>
>> diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
>> index 71727883ad..750df8401d 100644
>> --- a/lib/ethdev/rte_flow.h
>> +++ b/lib/ethdev/rte_flow.h
>> @@ -3891,6 +3891,17 @@ 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 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
>
> Acked-by: Ori Kam <orika@nvidia.com>
>
Applied to dpdk-next-net/main, thanks.
@@ -3891,6 +3891,17 @@ 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 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;