net/mlx5: connect meter policy to created flows
authorShun Hao <shunh@nvidia.com>
Tue, 27 Apr 2021 10:43:54 +0000 (13:43 +0300)
committerRaslan Darawsheh <rasland@nvidia.com>
Tue, 27 Apr 2021 11:20:36 +0000 (13:20 +0200)
commit51ec04dc7bcfe879978490eda88b4a5e929bd785
tree386ced8172a4e6ef45c36d0d15fcd2b8d7ac7660
parentfc6ce56bba05c2ee9b4b9cc4bd719c3440f2a346
net/mlx5: connect meter policy to created flows

Currently ASO meter must be followed by policy table, so this adds
the support that connecting meter and policy table.

There are several cases to be considered:
1. For non-termination policy, connect meter to the default policy
table.
2. For non-RSS termination policy case, simply get the policy
table id and connect meter to it.
3. For RSS termination policy case, need to split the flow due
to RSS info in policy, and translate each sub-flow using that RSS,
then create the sub policy table to be connected.
4. In termination policy case, if there's no actions to modify the
packet before meter, no need to use set_tag to save meter id in
register. Only add a new flow in drop table using the same match
criteria as suf-flow, to save cache miss.

Signed-off-by: Shun Hao <shunh@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
doc/guides/nics/mlx5.rst
doc/guides/rel_notes/release_21_05.rst
drivers/net/mlx5/mlx5_flow.c
drivers/net/mlx5/mlx5_flow.h
drivers/net/mlx5/mlx5_flow_dv.c