> > [...] > > Add a device capability bit for PMDs that can keep at least some > > of the flow rules across restart. Without this capability behavior > > is still unspecified, which is now explicitly stated. > > Declare that the application can test for persitence of flow rules > > of a particular kind by attempting to create a rule of that kind > > when the device is stopped and checking for the specific error. > > stopped -> configured but not yet started
Correct, fixed in v3. > > diff --git a/doc/guides/prog_guide/rte_flow.rst > b/doc/guides/prog_guide/rte_flow.rst > > index 2b42d5ec8c..b0ced4209b 100644 > > --- a/doc/guides/prog_guide/rte_flow.rst > > +++ b/doc/guides/prog_guide/rte_flow.rst > > @@ -87,6 +87,33 @@ To avoid resource leaks on the PMD side, handles must > be explicitly > > destroyed by the application before releasing associated resources such > as > > queues and ports. > > > > +By default it is unspecified if the flow rules persist after the device > stop. > > or can be created before the first device start Correct, fixed in v3. > > > +If ``RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP`` is not advertised, > > +then rules must be explicitly flushed before stopping the device > > +if the application needs to ensure they are removed. > > +If it is advertised, this means the PMD can keep at least some rules > > +across the device stop and start with possible reconfiguration in > between. > > +However, it may be only supported for some kinds of rules. > > +The kind is a combination of the following rule properties: > > + > > +- the sequence of item types; > > +- the sequence of action types; > > +- the value of the transfer attribute. > > + > > +To test if a particular kind of rules is kept, the application must try > > +to create a valid rule of that kind when the device is stopped > > +(after it has been configured or started previously). > > +If it succeeds, all rules of the same kind are kept at the device stop. > > +If it fails with an error of type ``RTE_FLOW_ERROR_TYPE_STATE``, > > +rules of this kind are flushed when the device is stopped. > > +Rules of a kept kind that are created when the device is stopped, > including > > +the rules created for the test, will be kept after the device is > started. > > It must be defined what application should expect for > not tested rule kinds. > > For me about check sounds extremely complicated and hardly > doable. Yes, some applications know kinds of rule it would > like to create, but some, like OvS, do not. Please, correct > me if I'm wrong. OvS knows which types of actions and even > possible combinations of actions (harder, but still possible) > it would like to install. But all possible combinations of > items together with all possible combinations of actions > could be very-very big. > > May be I still misunderstand the above idea. This is a very valid concern. After an offline consideration me and Ori concluded that an item/action type + transfer bit ("a feature") is enough. That is, if some feature cannot be kept, no rules using it can be kept.