On 11/2/2021 1:54 PM, Dmitry Kozlyuk wrote:
It is unspecified whether flow rules and indirect actions are kept
when a port is stopped, possibly reconfigured, and started again.
Vendors approach the topic differently, e.g. mlx5 and i40e PMD
disagree in whether flow rules can be kept, and mlx5 PMD would keep
indirect actions. In the end, applications are greatly affected
by whatever contract there is and need to know it.
Applications may wish to restart the port to reconfigure it,
e.g. switch offloads or even modify queues.
Keeping rte_flow entities enables application improvements:
1. Since keeping the rules across restart comes with the ability
to create rules before the device is started. This allows
to have all the rules created at the moment of start,
so that there is no time frame when traffic is coming already,
but the rules are not yet created (restored).
2. When a rule or an indirect action has some associated state,
such as a counter, application saves the need to keep
additional state in order to cope with information loss
if such an entity would be destroyed.
It is proposed to advertise capabilities of keeping flow rules
and indirect actions (as a special case of shared object)
using a combination of ethdev info and rte_flow calls.
Then a bug is fixed in mlx5 PMD that prevented indirect RSS action
from being kept, and the driver starts advertising the new capability.
Prior discussions:
1) http://inbox.dpdk.org/dev/20210727073121.895620-1-dkozl...@nvidia.com/
2) http://inbox.dpdk.org/dev/20210901085516.3647814-1-dkozl...@nvidia.com/
v5:
1. Fix rebase conflicts.
I am still getting conflicts. Did you rebase it on top of next-net?