numam-dpdk/lib
Alexander Kozyrev 73b68f4c54 ethdev: introduce generic modify flow action
Implement the generic modify flow API to allow manipulations on
an arbitrary header field (as well as mark, metadata or tag) using
data from another field or a user-specified value.
This generic modify mechanism removes the necessity to implement
a separate RTE Flow action every time we need to modify a new packet
field in the future.

Supported operation are:
- set: copy data from source to destination.
- add: integer addition, stores the result in destination.
- sub: integer subtraction, stores the result in destination.

The field ID is used to specify the desired source/destination packet
field in order to simplify the API for various encapsulation models.
Specifying the packet field ID with the needed encapsulation level
is able to quickly get a packet field for any inner packet header.

Alternatively, the special ID (ITEM_START) can be used to point to
the very beginning of a packet. This ID in conjunction with the
offset parameter provides great flexibility to copy/modify any part of
a packet as needed.

The number of bits to use from a source as well as the offset can be
be specified to allow a partial copy or dividing a big packet field
into multiple small fields (e.g. copying 128 bits of IPv6 to 4 tags).

An immediate value (or a pointer to it) can be specified instead of the
level and the offset for the special FIELD_VALUE ID (or FIELD_POINTER).
Can be used as a source only.

Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2021-01-19 03:30:32 +01:00
..
librte_acl build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_bbdev build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_bitratestats build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_bpf bpf: use helper to install headers 2020-10-22 14:15:19 +02:00
librte_cfgfile build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_cmdline cmdline: avoid name clash with Windows system types 2020-11-05 17:49:00 +01:00
librte_compressdev build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_cryptodev cryptodev: add enqueue and dequeue callbacks 2021-01-19 18:05:44 +01:00
librte_distributor build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_eal fbarray: fix overlap check 2021-01-19 13:12:59 +01:00
librte_efd efd: fix tailq entry leak in error path 2020-10-22 22:07:15 +02:00
librte_ethdev ethdev: introduce generic modify flow action 2021-01-19 03:30:32 +01:00
librte_eventdev eventdev: remove software Rx timestamp 2020-11-03 15:28:26 +01:00
librte_fib fib6: improve AVX512 lookup performance 2021-01-13 22:13:37 +01:00
librte_flow_classify build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_graph build: standardize component names and defines 2020-10-19 22:15:34 +02:00
librte_gro gro: fix packet type detection with IPv6 tunnel 2020-11-14 10:56:30 +01:00
librte_gso gso: support VXLAN UDP/IPv4 2021-01-15 11:31:28 +01:00
librte_hash hash: fix check of parameter 2020-10-29 16:45:17 +01:00
librte_ip_frag ip_frag: remove padding length of fragment 2021-01-15 11:31:28 +01:00
librte_ipsec build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_jobstats build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_kni build: align wording of non-support reasons 2020-11-20 16:05:35 +01:00
librte_kvargs build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_latencystats latency: switch Rx timestamp to dynamic mbuf field 2020-11-03 16:21:15 +01:00
librte_lpm lpm/arm: support SVE 2021-01-14 16:42:25 +01:00
librte_mbuf mbuf: add C++ include guard for dynamic fields header 2021-01-11 15:34:21 +01:00
librte_member build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_mempool build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_meter build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_metrics metrics: fix memory leak on allocation failure 2020-11-03 22:45:24 +01:00
librte_net ethdev: update GTP headers 2021-01-19 03:30:13 +01:00
librte_node node: switch IPv4 metadata to dynamic mbuf field 2020-10-31 16:13:10 +01:00
librte_pci build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_pdump pdump: cleanup logs and variables 2021-01-19 15:24:46 +01:00
librte_pipeline pipeline: fix multiple SWX emit pattern detection 2020-11-15 16:46:37 +01:00
librte_port build: replace use of old build macros 2020-10-19 22:15:44 +02:00
librte_power build: align wording of non-support reasons 2020-11-20 16:05:35 +01:00
librte_rawdev build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_rcu rcu: use EAL memory barrier API 2021-01-11 15:34:21 +01:00
librte_regexdev regexdev: add resource limit reached flag 2021-01-12 23:31:39 +01:00
librte_reorder reorder: switch sequence number to dynamic mbuf field 2020-10-31 22:14:30 +01:00
librte_rib rib: fix insertion in some cases 2020-12-15 10:08:39 +01:00
librte_ring ring: add zero copy API 2020-10-29 14:13:31 +01:00
librte_sched build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_security security: switch metadata to dynamic mbuf field 2020-10-31 16:13:11 +01:00
librte_stack build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_table table: fix exact match SWX table lookup 2020-11-13 13:55:07 +01:00
librte_telemetry build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_timer build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_vhost vhost: enhance async enqueue for small packets 2021-01-13 18:51:58 +01:00
meson.build cfgfile: build on Windows 2021-01-17 23:21:14 +01:00