On 11/2/2021 5:01 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/

v6:
      Rebase on next-net commit 87f4496c74e6 and fix conflicts.
v5:
      1. Fix rebase conflicts.
      2. Add warnings about experimental status (Andrew).
v4:  1. Fix rebase conflicts (CI).
      2. State rule behavior when a port is not started or stopped (Ori).
      3. Improve wording on rule features, add examples (Andrew).
      4. State that rules/actions that cannot be kept while other can be
         must be destroyed by the application (Andrew/Ori).
      5. Add rationale to the cover letter (Andrew).


Dmitry Kozlyuk (6):
   ethdev: add capability to keep flow rules on restart
   ethdev: add capability to keep shared objects on restart
   net: advertise no support for keeping flow rules
   net/mlx5: discover max flow priority using DevX
   net/mlx5: create drop queue using DevX
   net/mlx5: preserve indirect actions on restart


Series applied to dpdk-next-net/main, thanks.

Reply via email to