The mbuf field userdata (aliased as udata64) was announced to be removed for two reasons: - applications, libraries and drivers used the same field for different purposes, with a risk of usage conflict. - this field always used 8 bytes even if unneeded
Some dynamic fields are created when needed to replace the big static userdata field. As a consequence, 8 bytes can be re-allocated to dynamic fields. This mbuf layout change is important to allow adding more features (consuming more dynamic fields) during the next year. v3 (thanks Olivier): - use typedef for new field types - fix node field type - initialize offsets to -1 - add more inline functions - inline rte_security_dynfield_is_registered - add PMD-specific userdata field for ARK v2 (thanks David & Andrew): - fix some indentations - return -rte_errno consistently - make some type casts more precise - define dynfield types in macros - hide field description in rte_security - do not lookup security dynfield in ipsec-secgw - do not use the existing timestamp field for other purpose Thomas Monjalon (15): examples: enclose DPDK includes with angle brackets kni: move header file from EAL mbuf: fix typo in dynamic field convention note node: switch IPv4 metadata to dynamic mbuf field security: switch metadata to dynamic mbuf field event/sw: switch test counter to dynamic mbuf field net/ark: switch user data to dynamic mbuf field net/bnxt: switch CFA code to dynamic mbuf field net/vmxnet3: switch MSS hint to dynamic mbuf field test/distributor: switch sequence to dynamic mbuf field test/graph: switch user data to dynamic mbuf field app/eventdev: switch flow ID to dynamic mbuf field examples/bbdev: switch to dynamic mbuf field examples/rxtx_callbacks: switch to dynamic mbuf field mbuf: remove userdata field app/test-eventdev/test_order_atq.c | 4 +- app/test-eventdev/test_order_common.c | 21 ++++- app/test-eventdev/test_order_common.h | 19 ++++ app/test-eventdev/test_order_queue.c | 4 +- app/test/test_distributor.c | 28 +++++- app/test/test_graph.c | 94 +++++++++++-------- doc/api/doxy-api-index.md | 1 + doc/api/doxy-api.conf.in | 1 + doc/guides/prog_guide/rte_security.rst | 9 +- doc/guides/rel_notes/deprecation.rst | 1 - doc/guides/rel_notes/release_20_11.rst | 3 + doc/guides/sample_app_ug/rxtx_callbacks.rst | 4 +- drivers/crypto/octeontx2/otx2_cryptodev_sec.c | 5 +- drivers/event/sw/sw_evdev_selftest.c | 23 ++++- drivers/net/ark/ark_ethdev.c | 18 ++++ drivers/net/ark/ark_ethdev_rx.c | 3 +- drivers/net/ark/ark_ethdev_tx.c | 3 +- drivers/net/ark/rte_pmd_ark.h | 56 +++++++++++ drivers/net/bnxt/bnxt_ethdev.c | 19 ++++ drivers/net/bnxt/bnxt_rxr.c | 2 +- drivers/net/bnxt/bnxt_rxr.h | 5 + drivers/net/bnxt/rte_pmd_bnxt.h | 3 + drivers/net/ixgbe/ixgbe_ipsec.c | 5 +- drivers/net/ixgbe/ixgbe_rxtx.c | 6 +- drivers/net/octeontx2/otx2_ethdev.h | 1 + drivers/net/octeontx2/otx2_ethdev_sec.c | 5 +- drivers/net/octeontx2/otx2_ethdev_sec_tx.h | 2 +- drivers/net/octeontx2/otx2_rx.h | 2 +- drivers/net/vmxnet3/vmxnet3_ethdev.c | 15 +++ drivers/net/vmxnet3/vmxnet3_ethdev.h | 6 ++ drivers/net/vmxnet3/vmxnet3_rxtx.c | 9 +- examples/bbdev_app/main.c | 79 +++++++++++----- examples/bond/main.c | 11 +-- examples/ipsec-secgw/ipsec-secgw.c | 9 +- examples/ipsec-secgw/ipsec_worker.c | 12 ++- examples/rxtx_callbacks/main.c | 20 +++- examples/tep_termination/vxlan_setup.c | 2 +- kernel/linux/kni/meson.build | 2 +- lib/librte_eal/linux/include/meson.build | 1 - lib/librte_kni/meson.build | 2 +- .../include => librte_kni}/rte_kni_common.h | 3 +- lib/librte_mbuf/rte_mbuf_core.h | 8 +- lib/librte_mbuf/rte_mbuf_dyn.h | 2 +- lib/librte_node/ip4_lookup.c | 7 ++ lib/librte_node/ip4_rewrite.c | 10 ++ lib/librte_node/node_private.h | 12 ++- lib/librte_security/rte_security.c | 16 ++++ lib/librte_security/rte_security.h | 42 +++++++++ lib/librte_security/rte_security_driver.h | 3 + lib/librte_security/version.map | 2 + 50 files changed, 485 insertions(+), 135 deletions(-) create mode 100644 drivers/net/ark/rte_pmd_ark.h rename lib/{librte_eal/linux/include => librte_kni}/rte_kni_common.h (97%) -- 2.28.0