Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/dpdk-update #337

Open
wants to merge 21 commits into
base: develop
Choose a base branch
from

Conversation

marascoben
Copy link

@marascoben marascoben commented Jun 26, 2024

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 fixes #333 and resolves #336
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 :

  • 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.

No errors were observed during testing.

Tests were also validated in Cloudlab.

Screenshot 2024-09-10 at 12 25 28 AM

Review:

@twood02

@marascoben marascoben force-pushed the feature/dpdk-update branch 8 times, most recently from dc84746 to 80c83e8 Compare August 27, 2024 00:06
@marascoben
Copy link
Author

Update to include testing results from Cloudlab. onvm_mgr is able to successfully execute after the changes made in the PR within cloud lab using the ./scripts/install.sh, ./scripts/setup_runtime.sh, and ./scripts/build.sh

Screenshot 2024-09-10 at 12 25 28 AM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants