numam-dpdk/doc/guides/prog_guide/img
Alexander Kozyrev 197e820c66 ethdev: bring in async queue-based flow rules operations
A new, faster, queue-based flow rules management mechanism is needed for
applications offloading rules inside the datapath. This asynchronous
and lockless mechanism frees the CPU for further packet processing and
reduces the performance impact of the flow rules creation/destruction
on the datapath. Note that queues are not thread-safe and the queue
should be accessed from the same thread for all queue operations.
It is the responsibility of the app to sync the queue functions in case
of multi-threaded access to the same queue.

The rte_flow_async_create() function enqueues a flow creation to the
requested queue. It benefits from already configured resources and sets
unique values on top of item and action templates. A flow rule is enqueued
on the specified flow queue and offloaded asynchronously to the hardware.
The function returns immediately to spare CPU for further packet
processing. The application must invoke the rte_flow_pull() function
to complete the flow rule operation offloading, to clear the queue, and to
receive the operation status. The rte_flow_async_destroy() function
enqueues a flow destruction to the requested queue.

Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
2022-02-24 14:04:47 +01:00
..
anatomy_of_a_node.svg doc: fix figure numbering in graph guide 2021-01-15 12:28:19 +01:00
architecture-overview.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
blk_diag_dropper.png doc: programmers guide 2014-11-18 14:49:54 +01:00
bond-mode-0.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
bond-mode-1.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
bond-mode-2.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
bond-mode-3.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
bond-mode-4.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
bond-mode-5.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
bond-overview.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
crypto_op.svg doc: add cryptodev chapter in prog guide 2016-04-09 00:40:33 +02:00
crypto_xform_chain.svg cryptodev: add AEAD specific data 2017-07-06 22:26:49 +02:00
cryptodev_sym_sess.svg cryptodev: add opaque data field to symmetric session 2019-01-10 16:57:22 +01:00
data_struct_per_port.png doc: programmers guide 2014-11-18 14:49:54 +01:00
dir_24_8_alg.svg doc: add RIB and FIB programmer guides 2021-11-26 15:47:23 +01:00
dmadev.svg dmadev: introduce DMA device library 2021-10-17 20:49:57 +02:00
drop_probability_eq3.png doc: programmers guide 2014-11-18 14:49:54 +01:00
drop_probability_eq4.png doc: programmers guide 2014-11-18 14:49:54 +01:00
drop_probability_graph.png doc: programmers guide 2014-11-18 14:49:54 +01:00
efd_i1.svg doc: add EFD library section in programmers guide 2017-01-18 20:55:25 +01:00
efd_i2.svg doc: add EFD library section in programmers guide 2017-01-18 20:55:25 +01:00
efd_i3.svg doc: add EFD library section in programmers guide 2017-01-18 20:55:25 +01:00
efd_i4.svg doc: add EFD library section in programmers guide 2017-01-18 20:55:25 +01:00
efd_i5.svg doc: add EFD library section in programmers guide 2017-01-18 20:55:25 +01:00
efd_i6.svg doc: add EFD library section in programmers guide 2017-01-18 20:55:25 +01:00
efd_i7.svg doc: add EFD library section in programmers guide 2017-01-18 20:55:25 +01:00
efd_i8.svg doc: add EFD library section in programmers guide 2017-01-18 20:55:25 +01:00
efd_i9.svg doc: add EFD library section in programmers guide 2017-01-18 20:55:25 +01:00
efd_i10.svg doc: add EFD library section in programmers guide 2017-01-18 20:55:25 +01:00
efd_i11.svg doc: add EFD library section in programmers guide 2017-01-18 20:55:25 +01:00
efd_i12.svg doc: add EFD library section in programmers guide 2017-01-18 20:55:25 +01:00
eq2_expression.png doc: programmers guide 2014-11-18 14:49:54 +01:00
eq2_factor.png doc: programmers guide 2014-11-18 14:49:54 +01:00
event_crypto_adapter_op_forward.svg doc: add event crypto adapter guide 2018-05-10 14:08:57 +02:00
event_crypto_adapter_op_new.svg doc: add event crypto adapter guide 2018-05-10 14:08:57 +02:00
eventdev_usage.svg doc: improve eventdev library guide 2018-06-19 00:04:45 +02:00
ewma_filter_eq_1.png doc: programmers guide 2014-11-18 14:49:54 +01:00
ewma_filter_eq_2.png doc: programmers guide 2014-11-18 14:49:54 +01:00
ex_data_flow_tru_dropper.png doc: programmers guide 2014-11-18 14:49:54 +01:00
figure32.png doc: programmers guide 2014-11-18 14:49:54 +01:00
figure33.png doc: programmers guide 2014-11-18 14:49:54 +01:00
figure34.png doc: programmers guide 2014-11-18 14:49:54 +01:00
figure35.png doc: programmers guide 2014-11-18 14:49:54 +01:00
figure37.png doc: programmers guide 2014-11-18 14:49:54 +01:00
figure38.png doc: programmers guide 2014-11-18 14:49:54 +01:00
figure39.png doc: programmers guide 2014-11-18 14:49:54 +01:00
flow_tru_dropper.png fix spelling in comments and strings 2022-01-11 12:16:53 +01:00
graph_mem_layout.svg doc: add graph library guide 2020-05-05 23:46:21 +02:00
gro-key-algorithm.svg gro: cleanup 2018-01-11 23:18:24 +01:00
gso-output-segment-format.svg doc: add GSO programmer's guide 2017-10-12 01:36:57 +01:00
gso-three-seg-mbuf.svg doc: fix GSO guide 2017-10-13 01:18:30 +01:00
hier_sched_blk.png doc: programmers guide 2014-11-18 14:49:54 +01:00
kernel_nic_intf.png doc: programmers guide 2014-11-18 14:49:54 +01:00
kni_traffic_flow.png doc: programmers guide 2014-11-18 14:49:54 +01:00
link_the_nodes.svg doc: fix figure numbering in graph guide 2021-01-15 12:28:19 +01:00
linuxapp_launch.svg eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
m_definition.png doc: programmers guide 2014-11-18 14:49:54 +01:00
malloc_heap.svg doc: update guides for memory subsystem 2018-05-28 02:14:49 +02:00
mbuf1.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
mbuf2.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
member_i1.svg doc: add membership documentation 2017-10-09 00:23:59 +02:00
member_i2.svg doc: add membership documentation 2017-10-09 00:23:59 +02:00
member_i3.svg doc: add membership documentation 2017-10-09 00:23:59 +02:00
member_i4.svg doc: add membership documentation 2017-10-09 00:23:59 +02:00
member_i5.svg doc: add membership documentation 2017-10-09 00:23:59 +02:00
member_i6.svg doc: add membership documentation 2017-10-09 00:23:59 +02:00
member_i7.svg doc: add membership documentation 2017-10-09 00:23:59 +02:00
memory-management2.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
memory-management.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
mempool.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
multi_process_memory.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
packet_distributor1.png doc: programmers guide 2014-11-18 14:49:54 +01:00
packet_distributor2.png doc: programmers guide 2014-11-18 14:49:54 +01:00
pipe_prefetch_sm.png doc: programmers guide 2014-11-18 14:49:54 +01:00
pkt_drop_probability.png doc: programmers guide 2014-11-18 14:49:54 +01:00
pkt_flow_kni.png doc: programmers guide 2014-11-18 14:49:54 +01:00
pkt_proc_pipeline_qos.png doc: programmers guide 2014-11-18 14:49:54 +01:00
predictable_snat_1.svg hash: add predictable RSS 2021-04-20 23:13:23 +02:00
predictable_snat_2.svg hash: add predictable RSS 2021-04-20 23:13:23 +02:00
prefetch_pipeline.png doc: programmers guide 2014-11-18 14:49:54 +01:00
rcu_general_info.svg doc: add RCU guide 2019-05-02 01:33:14 +02:00
rib_internals.svg doc: add RIB and FIB programmer guides 2021-11-26 15:47:23 +01:00
rib_pic.svg doc: add RIB and FIB programmer guides 2021-11-26 15:47:23 +01:00
ring1.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
ring-dequeue1.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
ring-dequeue2.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
ring-dequeue3.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
ring-enqueue1.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
ring-enqueue2.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
ring-enqueue3.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
ring-modulo1.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
ring-modulo2.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
ring-mp-enqueue1.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
ring-mp-enqueue2.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
ring-mp-enqueue3.svg doc: fix multi-producer enqueue figure in ring guide 2020-02-21 18:41:46 +01:00
ring-mp-enqueue4.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
ring-mp-enqueue5.svg doc: replace license text with SPDX tags on SVG images 2018-02-01 02:42:25 +01:00
rss_queue_assign.svg doc: add Toeplitz hash guide 2021-04-20 23:12:47 +02:00
rte_flow_async_init.svg ethdev: bring in async queue-based flow rules operations 2022-02-24 14:04:47 +01:00
rte_flow_async_usage.svg ethdev: bring in async queue-based flow rules operations 2022-02-24 14:04:47 +01:00
rte_mtr_meter_chaining.svg doc: add traffic metering API walk-through 2021-11-26 15:09:15 +01:00
sched_hier_per_port.svg doc: update QoS scheduler guides 2019-11-26 16:13:14 +01:00
stateful-op.svg doc: add compressdev library guide 2018-05-10 17:46:20 +01:00
stateless-op-shared.svg doc: add compressdev library guide 2018-05-10 17:46:20 +01:00
stateless-op.svg doc: add compressdev library guide 2018-05-10 17:46:20 +01:00
tbl24_tbl8_tbl8.png doc: programmers guide 2014-11-18 14:49:54 +01:00
tbl24_tbl8.png doc: programmers guide 2014-11-18 14:49:54 +01:00
turbo_tb_decode.svg fix spelling in comments and strings 2022-01-11 12:16:53 +01:00
turbo_tb_encode.svg fix spelling in comments and strings 2022-01-11 12:16:53 +01:00
vhost_net_arch.png doc: programmers guide 2014-11-18 14:49:54 +01:00