This version updates the dynfield3 proposal based on review feedback from Morten.
The optional area is now configured by byte size instead of pointer count, so the configured value is independent of 32-bit or 64-bit builds. The storage is represented as uint64_t elements, and the configured size must be a multiple of sizeof(uint64_t) and reserve a multiple of the cache line size. The extra area remains part of the dynamic mbuf field allocator. To preserve the historical behavior expected for dynamic fields while still supporting per-mbuf private metadata use cases, copying this area is controlled by a separate build option. The default does not copy dynfield3 in the generic mbuf copy/clone path; users that want the existing copied dynamic-field semantics can opt in with mbuf_dynfield3_copy. This version does not add a per-field isolate registration flag. The immediate use case needs a configured per-mbuf metadata area whose contents remain local to each mbuf by default, matching the downstream storage this replaces. Keeping dynfield3 allocator-backed preserves the dynamic-field extension model, while the build-time copy option lets deployments opt in to copied dynamic-field semantics without imposing that behavior on private metadata users. Validation: - devtools/check-git-log.sh -n1 - devtools/checkpatches.sh -n1 - default generic-all build - build with mbuf_dynfield3_size=128 and mbuf_dynfield3_copy=true - mbuf_autotest with default and enabled builds Randy Tice (1): mbuf: add optional dynfield3 storage app/test/test_mbuf.c | 5 +++-- config/meson.build | 16 ++++++++++++++++ doc/guides/rel_notes/release_26_11.rst | 15 +++++++++++++++ lib/mbuf/rte_mbuf.h | 6 ++++++ lib/mbuf/rte_mbuf_core.h | 17 +++++++++++++++++ lib/mbuf/rte_mbuf_dyn.c | 3 +++ meson_options.txt | 4 ++++ 7 files changed, 64 insertions(+), 2 deletions(-) -- 2.35.6

