Go to file
Akhil Goyal a75ab6e519 ethdev: introduce IP reassembly offload
IP Reassembly is a costly operation if it is done in software.
The operation becomes even more costlier if IP fragments are encrypted.
However, if it is offloaded to HW, it can considerably save application
cycles.

Hence, a new offload feature is exposed in eth_dev ops for devices which
can attempt IP reassembly of packets in hardware.
- rte_eth_ip_reassembly_capability_get() - to get the maximum values
  of reassembly configuration which can be set.
- rte_eth_ip_reassembly_conf_set() - to set IP reassembly configuration
  and to enable the feature in the PMD (to be called before
  rte_eth_dev_start()).
- rte_eth_ip_reassembly_conf_get() - to get the current configuration
  set in PMD.

Now when the offload is enabled using rte_eth_ip_reassembly_conf_set(),
the resulting reassembled IP packet would be a typical segmented mbuf in
case of success.

And if reassembly of IP fragments is failed or is incomplete (if
fragments do not come before the reass_timeout, overlap, etc), the mbuf
dynamic flags can be updated by the PMD. This is updated in a subsequent
patch.

Signed-off-by: Akhil Goyal <gakhil@marvell.com>
2022-02-10 11:23:11 +01:00
.ci buildtools/chkincs: test headers for C++ compatibility 2022-02-12 14:26:21 +01:00
.github/workflows buildtools/chkincs: test headers for C++ compatibility 2022-02-12 14:26:21 +01:00
app app/testpmd: add 6 types of L2TPv2 message 2022-02-09 21:30:14 +01:00
buildtools buildtools/chkincs: test headers for C++ compatibility 2022-02-12 14:26:21 +01:00
config config: align mempool elements to 128 bytes on CN10K 2022-02-12 15:13:24 +01:00
devtools buildtools/chkincs: test headers for C++ compatibility 2022-02-12 14:26:21 +01:00
doc ethdev: introduce IP reassembly offload 2022-02-10 11:23:11 +01:00
drivers remove unnecessary null checks 2022-02-12 12:07:48 +01:00
examples remove unnecessary null checks 2022-02-12 12:07:48 +01:00
kernel kni: fix ioctl signature 2022-02-02 20:55:05 +01:00
lib ethdev: introduce IP reassembly offload 2022-02-10 11:23:11 +01:00
license lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
usertools support systemd service convention for runtime directory 2022-02-09 19:12:40 +01:00
.editorconfig devtools: clarify that lines up to 100 characters are ok 2021-11-25 11:51:24 +01:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore doc: add eventdev feature matrices 2021-11-26 16:29:25 +01:00
.travis.yml version: 22.03-rc0 2021-12-02 21:36:19 +01:00
ABI_VERSION version: 22.03-rc0 2021-12-02 21:36:19 +01:00
MAINTAINERS app/test: add allocator performance benchmark 2022-02-08 21:32:53 +01:00
Makefile build: create dummy Makefile 2020-09-07 23:51:57 +02:00
meson_options.txt config: add option for atomic mbuf reference counting 2021-10-25 17:53:30 +02:00
meson.build build: remove deprecated Meson functions 2022-02-02 18:46:53 +01:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
VERSION version: 22.03-rc0 2021-12-02 21:36:19 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org