On Tue, Apr 20, 2021 at 7:05 AM Jiawei Wang wrote: > > From: Li Zhang > > Currently, the flow meter policy does not support multiple actions > per color; also the allowed action types per color are very limited. > In addition, the policy cannot be pre-defined. > > Due to the growing in flow actions offload abilities there is a potential > for the user to use variety of actions per color differently. > This new meter policy API comes to allow this potential in the most ethdev > common way using rte_flow action definition. > A list of rte_flow actions will be provided by the user per color > in order to create a meter policy. > In addition, the API forces to pre-define the policy before > the meters creation in order to allow sharing of single policy > with multiple meters efficiently. > > meter_policy_id is added into struct rte_mtr_params. > So that it can get the policy during the meters creation. > > Allow coloring the packet using a new rte_flow_action_color > as could be done by the old policy API. > > Add two common policy template as macros in the head file. > > The next API function were added: > - rte_mtr_meter_policy_add > - rte_mtr_meter_policy_delete > - rte_mtr_meter_policy_update > - rte_mtr_meter_policy_validate > The next struct was changed: > - rte_mtr_params > - rte_mtr_capabilities > The next API was deleted: > - rte_mtr_policer_actions_update > > To support this API the following app were changed: > app/test-flow-perf: clean meter policer > app/testpmd: clean meter policer > > To support this API the following drivers were changed: > net/softnic: support meter policy API > 1. Cleans meter rte_mtr_policer_action. > 2. Supports policy API to get color action as policer action did. > The color action will be mapped into rte_table_action_policer. > > net/mlx5: clean meter creation management > Cleans and breaks part of the current meter management > in order to allow better design with policy API. > > Signed-off-by: Li Zhang > Signed-off-by: Haifei Luo > Signed-off-by: Jiawei Wang > Acked-by: Matan Azrad > Acked-by: Ray Kinsella > Acked-by: Ori Kam > Acked-by: Jasvinder Singh > Acked-by: Cristian Dumitrescu Acked-by: Ajit Khaparde > -- > 1.8.3.1 >