Update DPDK to version 24.0, and convert onvm to the Meson build system.
Summary:
This updates ONVM to use the latest version of DPDK, which no longer uses the same Makefile structure that ONVM was based upon. The build system was converted to Meson (dpdk's new build system) for onvm_mgr, onvm_lib, onvm_nflib, and almost all example NFs.
(Flow table, ndpi stats, and NFD all required extra work to move to Meson, and will be done separately under a separate task)
A number of breaking changes were introduced to DPDK APIs that have been resolved:
Major Changes
dynamic mbuf fields have been completely rewritten in DPDK, fields must be registered and an offset for field location is provided by DPDK post-registration see DPDK design presentation here
Minor Changes
split_header_size field for RTE_ETH_RX_OFFLOAD_HEADER_SPLIT has been removed, as no drivers actually supported this feature see DPDK change here
mbuf flags previously did not have the standard RTE_ prefix, the associated variable in ONVM have been updated to include the rename see DPDK change here
the max_rx_pkt_len field has been moved to mtu as described in this DPDK commit
This change also adds the DPDK igb_uio driver as a new dependency, as DPDK no longer ships with kernel drivers included.
The main README.md file has also been updated to reflect the new build system, and links to documentation within the readme have been updated.
This change also fixes #333 and resolves #336
Usage:
This PR includes
Resolves issues
Breaking API changes
Internal API changes
Usability improvements
Bug fixes
New functionality
New NF/onvm_mgr args
Changes to starting NFs
Dependency updates
X
Web stats updates
Merging notes:
Dependencies: None
TODO before merging :
[x] PR is ready for review
Test Plan:
Testing was performed by running onvm_mgr and the bridge nf to validate packets could pass through the TX and RX fields. More testing of ONVM will be required in the wild to fully validate that all changes made by DPDK do not break edge cases within onvm.
Update DPDK to version 24.0, and convert onvm to the Meson build system.
Summary:
This updates ONVM to use the latest version of DPDK, which no longer uses the same Makefile structure that ONVM was based upon. The build system was converted to Meson (dpdk's new build system) for onvm_mgr, onvm_lib, onvm_nflib, and almost all example NFs.
(Flow table, ndpi stats, and NFD all required extra work to move to Meson, and will be done separately under a separate task)
A number of breaking changes were introduced to DPDK APIs that have been resolved:
Major Changes
Minor Changes
split_header_size
field forRTE_ETH_RX_OFFLOAD_HEADER_SPLIT
has been removed, as no drivers actually supported this feature see DPDK change hereRTE_
prefix, the associated variable in ONVM have been updated to include the rename see DPDK change heremax_rx_pkt_len
field has been moved tomtu
as described in this DPDK commitThis change also adds the DPDK
igb_uio
driver as a new dependency, as DPDK no longer ships with kernel drivers included.The main README.md file has also been updated to reflect the new build system, and links to documentation within the readme have been updated.
This change also fixes #333 and resolves #336
Usage:
Merging notes:
TODO before merging :
Test Plan:
Testing was performed by running onvm_mgr and the bridge nf to validate packets could pass through the TX and RX fields. More testing of ONVM will be required in the wild to fully validate that all changes made by DPDK do not break edge cases within onvm.
No errors were observed during testing.
Review:
@twood02