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

Ubuntu 22.04 support #1058

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

glass-hash
Copy link

This pull request adds support for Ubuntu 22.04 in BESS. Fixes #1056. Overview of the changes made:

  • Fixed g++-11 (default in Ubuntu 22.04) warnings in core/modules/l2_forward.cc (-Werror=maybe-uninitialized), core/utils/exact_match_table.h (-Werror=nonnull).
  • Updated DPDK 19.11 for newer kernels (Ubuntu 22.04 uses either 5.15 or 6.8 by default):
    • deps/linux_5_9.patch: Kernel v5.9 removed the task_struct pointer from get_user_pages_remote. Updated kernel/linux/kni/kni_dev.h with newer get_user_pages_remote and fixed a fallthrough warning (-Wimplicit-fallthrough) in kernel/linux/igb/igb_uio.c.
    • build.py: Now checking for version greater than or equal to 5.9 and applying the above patch. These changes depend on the packaging module in python3.
  • Upgraded to python3 (default in Ubuntu 22.04):
    • bessctl/sugar.py: parser module is not present in python v3.10. Made changes to use the ast module instead.
  • Updated core/Makefile: Now linking libpcap, and libgrpc++ dynamically. Statically linking them results in issues due to change in dependencies in Ubuntu 22.04. libpcap depends on libdbus and libsystemd. libsystemd does not have a static library as part of its package. Linking libgrpc++ statically results in unresolved libssl symbols, potentially due to a version mismatch in Ubuntu 22.04's libssl and the one libgrpc++ was written with.
  • Modified core/kmod/sn_ethtool.c to include ethtool.h for struct ethtool_drvinfo. While the code compiles successfully on older kernel versions (Ubuntu 18.04) without this include, Ubuntu 22.04 reports 'invalid use of undefined type struct ethtool_drvinfo'. Now including ethtool.h explicitly rather than relying on transitive includes.

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.

Unable to build BESS on UBUNTU22-64-X86
1 participant