numam-dpdk/doc/guides
Dmitry Kozlyuk 2c9cd45de7 ethdev: add capability to keep shared objects on restart
rte_flow_action_handle_create() did not mention what happens
with an indirect action when a device is stopped and started again.
It is natural for some indirect actions, like counter, to be persistent.
Keeping others at least saves application time and complexity.
However, not all PMDs can support it, or the support may be limited
by particular action kinds, that is, combinations of action type
and the value of the transfer bit in its configuration.

Add a device capability to indicate if at least some indirect actions
are kept across the above sequence. Without this capability the behavior
is still unspecified, and application is required to destroy
the indirect actions before stopping the device.
In the future, indirect actions may not be the only type of objects
shared between flow rules. The capability bit intends to cover all
possible types of such objects, hence its name.

Declare that the application can test for the persistence
of a particular indirect action kind by attempting to create
an indirect action of that kind when the device is stopped
and checking for the specific error type.
This is logical because if the PMD can to create an indirect action
when the device is not started and use it after the start happens,
it is natural that it can move its internal flow shared object
to the same state when the device is stopped and restore the state
when the device is started.

Indirect action persistence across a reconfigurations is not required.
In case a PMD cannot keep the indirect actions across reconfiguration,
it is allowed just to report an error.
Application must then flush the indirect actions before attempting it.

Signed-off-by: Dmitry Kozlyuk <dkozlyuk@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
2021-11-02 18:59:17 +01:00
..
bbdevs baseband/la12xx: support enqueue and dequeue 2021-10-18 20:12:08 +02:00
compressdevs compress/mlx5: add supported capabilities 2021-01-27 20:40:03 +01:00
contributing mempool: deprecate unused physical page defines 2021-10-20 10:03:41 +02:00
cryptodevs crypto/cnxk: allow different cores in pending queue 2021-10-20 15:56:46 +02:00
dmadevs dma/ioat: add data path completion 2021-10-22 22:40:59 +02:00
eventdevs ethdev: add namespace 2021-10-22 18:15:38 +02:00
faq usertools: remove dpdk-setup.sh 2020-11-27 17:25:24 +01:00
freebsd_gsg doc: fix default mempool option in guides 2021-10-25 17:12:52 +02:00
howto app/dumpcap: add new packet capture application 2021-10-22 22:40:58 +02:00
linux_gsg doc: clarify SRIOV activation with built-in VFIO 2021-10-28 10:14:58 +02:00
mempool mempool/cnxk: add batch operation init 2021-04-09 08:32:24 +02:00
nics doc: add metering limitation in mlx5 guide 2021-10-31 14:27:24 +01:00
platform raw/octeontx2_dma: remove driver 2021-10-18 18:33:45 +02:00
prog_guide ethdev: add capability to keep shared objects on restart 2021-11-02 18:59:17 +01:00
rawdevs raw/ioat: deprecate rawdev driver 2021-10-22 22:40:59 +02:00
regexdevs regex/mlx5: move RXP to CrSpace 2021-11-03 23:14:48 +01:00
rel_notes ethdev: remove deprecation notice for shared Rx queue 2021-11-02 14:34:40 +01:00
sample_app_ug examples/dma: rename ioat application example 2021-10-27 16:53:39 +02:00
testpmd_app_ug ethdev: add namespace 2021-10-22 18:15:38 +02:00
tools app/flow-perf: add destination ports parameter 2021-11-05 10:58:25 +01:00
vdpadevs vdpa/mlx5: support Sub-Function 2021-07-22 00:11:14 +02:00
windows_gsg doc: update driver installation in Windows guide 2021-10-11 21:17:33 +02:00
conf.py doc: add flow API features tables 2021-05-18 19:06:56 +02:00
custom.css doc: add SPDX tag to custom CSS file 2021-05-19 11:02:02 +02:00
index.rst dmadev: introduce DMA device library 2021-10-17 20:49:57 +02:00
meson.build build: change indentation in infrastructure files 2021-04-21 14:04:09 +02:00