Go to file
Olivier Matz 4958ca3a44 mbuf: support dynamic fields and flags
Many features require to store data inside the mbuf. As the room in mbuf
structure is limited, it is not possible to have a field for each
feature. Also, changing fields in the mbuf structure can break the API
or ABI.

This commit addresses these issues, by enabling the dynamic registration
of fields or flags:

- a dynamic field is a named area in the rte_mbuf structure, with a
  given size (>= 1 byte) and alignment constraint.
- a dynamic flag is a named bit in the rte_mbuf structure.

The typical use case is a PMD that registers space for an offload
feature, when the application requests to enable this feature.  As
the space in mbuf is limited, the space should only be reserved if it
is going to be used (i.e when the application explicitly asks for it).

The registration can be done at any moment, but it is not possible
to unregister fields or flags.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2019-10-26 19:08:50 +02:00
.ci ci: exit setup on any error 2019-09-13 13:19:00 +02:00
app mbuf: support dynamic fields and flags 2019-10-26 19:08:50 +02:00
buildtools buildtools: make experimental symbol check lighter 2019-10-09 10:22:45 +02:00
config net/iavf: enable AVX2 for iavf 2019-10-23 16:43:10 +02:00
devtools devtools: fix cleanup of checkpatch temporary file 2019-10-21 16:19:00 +02:00
doc mbuf: support dynamic fields and flags 2019-10-26 19:08:50 +02:00
drivers vfio: fix truncated BAR offset for 32-bit 2019-10-26 17:30:17 +02:00
examples examples/bpf: remove duplicate mbuf definition 2019-10-25 19:33:31 +02:00
kernel kni: support allmulticast mode set 2019-10-15 21:16:32 +02:00
lib mbuf: support dynamic fields and flags 2019-10-26 19:08:50 +02:00
license fix dpdk.org URLs 2018-11-26 20:19:24 +01:00
mk net/pfe: introduce basic functions 2019-10-23 16:43:08 +02:00
usertools usertools: fix input handling in telemetry script 2019-08-08 17:42:24 +02:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore doc: fix missing asymmetric crypto table 2019-04-18 16:01:28 +02:00
.travis.yml ci: add missing dependencies for documentation 2019-09-13 13:04:13 +02:00
GNUmakefile test: move to app directory 2019-02-26 15:29:27 +01:00
MAINTAINERS maintainers: add next-net-brcm sub-tree 2019-10-23 16:43:10 +02:00
Makefile license: use SPDX tag in root makefile 2018-01-04 22:41:38 +01:00
meson_options.txt build: support disabling drivers with meson 2019-10-24 01:02:29 +02:00
meson.build build: print list of disabled components 2019-07-02 23:20:26 +02:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
VERSION version: 19.11-rc0 2019-08-13 14:59:02 +02: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