summaryrefslogtreecommitdiffstats
path: root/Makefile
AgeCommit message (Collapse)AuthorFilesLines
2024-01-21build: Explicitly use gmakeTom Jones1-27/+27
VPP requires GNU Make to build, on GNU systems (such as Debian), GNU Make is installed as 'make', typically with a symlink from 'gmake'. On other systems (such as FreeBSD), 'make' is a BSD Make derriviative and GNU Make is installed a 'gmake'. Use $(MAKE) variable for make calls from within Makefiles. This variable is set to the path of the calling make program, i.e., /usr/local/bin/gmake on a bsd system. This is the recommended way to call make from Makefiles in the GNU Make documentation. Type: improvement Change-Id: Id9162a34a0f8358f22090718087918dae31c0fce Signed-off-by: Tom Jones <thj@freebsd.org>
2024-01-19build: Explicitly use bash for shell scriptsTom Jones1-1/+1
VPP requires bash for all shell scripts. Align shebang lines in build and test scripts to look up the location of bash rather than hard coding '/bin/bash'. Look up the location of bash for makefiles. Type: improvement Change-Id: I23b705d81d60389fa8af61c680cf0abd74f0ea24 Signed-off-by: Tom Jones <thj@freebsd.org>
2024-01-16build: Provide clang-14 for Debian12Pim van Pelt1-0/+2
checkstyle.sh assumes clang-format-11 but allows it to be overridden. Debian12 ships with a minimal version of clang-14, so set the correct version for checkstyle. Before: $ make checkstyle extras/scripts/checkstyle.sh: line 41: --version: command not found make: *** [Makefile:720: checkstyle] Error 127 After: $ make checkstyle Debian clang-format version 14.0.6 ******************************************************************* * CHECKSTYLE SUCCESSFULLY COMPLETED ******************************************************************* Type: make Fixes: 712fc0308981c61444e593d6bcc2ad62102c726d Change-Id: I0c58456477011397115810dab825865b5850d10d Signed-off-by: pim@ipng.nl
2024-01-14build: Add Debian12 environmentPim van Pelt1-0/+4
Add clang-14 and libffi8 which ship with Debian Bookworm. The project compiles cleanly with these versions. Type: make Change-Id: I17350aae30cec72987792d54d88231b3221b56b9 Signed-off-by: pim@ipng.nl
2023-12-22build: fix 'make test' target to build with clangDave Wallace1-0/+6
- gmake set CC=cc as the default therefore the test/test-debug makefile targets will build using gcc (cc == gcc for debian/ubuntu distros) unless set explicitly to clang due to use of 'CC=$(CC)' in test macro. Note: the CI builds vpp images prior to running 'make test', thus the CI does test vpp built using clang. This basically makes local runs of 'make test' build using clang as well. Type: make Change-Id: I7221098c200be23b53bb616e41a42a6d65a03699 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2023-11-03tests: refactor asf framework codeDave Wallace1-0/+2
- Make framework.py classes a subset of asfframework.py classes - Remove all packet related code from asfframework.py - Add test class and test case set up debug output to log - Repatriate packet tests from asf to test directory - Remove non-packet related code from framework.py and inherit them from asfframework.py classes - Clean up unused import variables - Re-enable BFD tests on Ubuntu 22.04 and fix intermittent test failures in echo_looped_back testcases (where # control packets verified but not guaranteed to be received during test) - Re-enable Wireguard tests on Ubuntu 22.04 and fix intermittent test failures in handshake ratelimiting testcases and event testcase - Run Wiregard testcase suites solo - Improve debug output in log.txt - Increase VCL/LDP post sleep timeout to allow iperf server to finish cleanly. - Fix pcap history files to be sorted by suite and testcase and ensure order/timestamp is correct based on creation in the testcase. - Decode pcap files for each suite and testcase for all errors or if configured via comandline option / env var - Improve vpp corefile detection to allow complete corefile generation - Disable vm vpp interfaces testcases on debian11 - Clean up failed unittest dir when retrying failed testcases and unify testname directory and failed linknames into framwork functions Type: test Change-Id: I0764f79ea5bb639d278bf635ed2408d4d5220e1e Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2023-08-31fateshare: a plugin for managing child processesAndrew Yourtchenko1-0/+1
For the reasons of modularity and security, it is useful to have various functionality split into processes different from VPP. However, this approach presents the challenges of managing those processes, and is markedly different from simply running everything within VPP process. This plugin is an experiment in having the VPP itself start off a monitor process which in turn starts the child processes, and restarts them if they quit. If the VPP process ceases to exist, the monitor process terminates all the descendant processes and quits itself. This allows to preserve the "single entity to manage" approach of simply running a barebones VPP. An example of running it: export DPDK_CONFIG="" export DISABLED_PLUGINS=dpdk export EXTRA_VPP_CONFIG="fateshare { monitor ./build-root/install-vpp_debug-native/vpp/bin/vpp_fateshare_monitor command ./test1 }" make run Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com> Change-Id: I66221fd7403f220d9652fe76958ca499cfd070a7 Type: feature
2023-08-22build: support linuxmint OSspencercoder1-3/+3
Support compiling in Linux Mint OS Type: improvement Change-Id: I08721227352b00127fe0acac67269775997fd974 Signed-off-by: spencercoder <xiexiaosong@ruijie.com.cn>
2023-08-08tests: fix setting gcov flag for test-cov targetDave Wallace1-0/+1
Type: fix Change-Id: I3c663babe4f32f5d2870265336b5d272cc029ce7 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2023-08-02vlib: remove dependency on libuuidDamjan Marion1-3/+2
Type: improvement Change-Id: I4e2b2e4f227dfcb3df36166db13c8aa5c0b603f5 Signed-off-by: Damjan Marion <damarion@cisco.com>
2023-07-06 build: add missing dependences for opensuseLaszlo Kiraly1-0/+1
VPP build failed when build xdp-tool on opensuse Add the missing libraries and headers. Type: fix Signed-off-by: Laszlo Kiraly <laszlo.kiraly@est.tech> Change-Id: I8c3f28ac6e88cd61a1bf0a823ffa1d5f3097be40
2023-06-30bpf_trace_filter: plugin for BPF Trace FilteringMohammed Hawari1-0/+1
Change-Id: I342de0a375b783725aa2b621c1c70bc8bf646450 Signed-off-by: Mohammed Hawari <mohammed@hawari.fr> Type: improvement
2023-06-22tests docs: fix lcov code coverage report generationDave Wallace1-11/+34
- Updated/rebased version of https://gerrit.fd.io/r/c/vpp/+/34199 Type: test Change-Id: I43913ecfd11a4578bdb10c4be76253fe38d57976 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com> Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2023-03-06build: add Rocky Linux 9 supportChristian Svensson1-3/+18
Currently only RHEL/CentOS 8 and Fedora are supported. EL9 is a middle ground and thus require some different dependencies. Type: feature Signed-off-by: Christian Svensson <blue@cmd.nu> Change-Id: I7be79e61994800bb796d4e9141f0ff6ad8bdead2
2023-02-14build: add missing dependences for centos 8Tianyu Li1-0/+1
VPP build failed on Centos stream 8 when build xdp-tool and dpdk mlx driver, Add the missing tools, libraries and headers. Type: fix Signed-off-by: Tianyu Li <tianyu.li@arm.com> Change-Id: Ie705dc8f558ceb872029f9ab4f1351b514c87405
2023-01-13af_xdp: update af_xdp driver plugin to depend on libxdpYulong Pei1-4/+2
AF_XDP support is deprecated in libbpf since v0.7.0 [1], the libxdp library now provides the functionality which once was in libbpf, this commit updates af_xdp plugin to depend on libxdp, libbpf still remains a dependency even if libxdp is present, as it need use libbpf APIs for program loading. libxdp is distributed within xdp-tool [2], xdp-tools package also include libbpf in it as dependency, so here installed libxdp v1.2.9 and libbpf v0.8.0, both from xdp-tool-1.2.9 package. More information about libxdp compatibility can be found in the libxdp README [3]. In libbpf v0.8.0, The bpf_prog_load function was deprecated and changed to bpf_object__open_file and bpf_object__next_program and bpf_object__load, The bpf_get_link_xdp_id and bpf_set_link_xdp_fd functions were deprecated and changed to bpf_xdp_attach and bpf_xdp_detach, The bpf_object__unload function was deprecated and changed to bpf_object__close. [1] https://github.com/libbpf/libbpf/commit/277846bc6c15 [2] https://github.com/xdp-project/xdp-tools/releases/tag/v1.2.9 [3] https://github.com/xdp-project/xdp-tools/blob/master/lib/libxdp/README.org Type: improvement Change-Id: Ifbf6e3aa38bc6e0b77561f26311fd11c15ddb47e Signed-off-by: Yulong Pei <yulong.pei@intel.com>
2023-01-10tests: update install-deps to support interface test runs in the CINaveen Joy1-0/+1
Change-Id: I704c35644b3caf6567be4b43dc4e550d1394e438 Type: improvement Signed-off-by: Naveen Joy <najoy@cisco.com>
2022-10-29build: add extra rpm build dependenciesTianyu Li1-0/+1
make install-ext-dep failed with, sudo rpm -Uih vpp-ext-deps-23.02-4.aarch64.rpm error: Failed dependencies: perl(IBswcountlimits) is needed by vpp-ext-deps-23.02-4.aarch64 vpp-ext-deps have dependencies on infiniband-diags and libibumad Type: fix Signed-off-by: Tianyu Li <tianyu.li@arm.com> Change-Id: I2aea453f53d6507285b4f87f04c6dfc4845098cd
2022-10-05build: change make verify gate os to ubuntu 22.04Dave Wallace1-2/+3
- Also fix log output to remove hardcoded compiler version Type: make Change-Id: I1b224d8e9a042c58dbae689a8be706089cc1377f Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2022-10-04build: mlx dpdk-rdma compatibility matrixMohammed Hawari1-0/+4
- Verify mlx_rdma_dpdk_matrix.txt versions, build MLX drivers in dpdk if the versions match. Also output version comparison results to a file for CI job to send notification email when the versions do not match. Change-Id: Id1384ba4ea4b1f855f4d77d1d8e2c38683abfe1f Type: improvement Signed-off-by: Mohammed Hawari <mohammed@hawari.fr> Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2022-09-07build: Cleanup python2 from suse build and uplift opensuse versionLaszlo Kiraly1-16/+9
- default to opensuse-leap 15.4, no python2 support in this version - deprecate version openSUSE 15.0, openSUSE 15.3 still supported Type: make Signed-off-by: Laszlo Kiraly <laszlo.kiraly@est.tech> Change-Id: Ic7178ff5238e2669bc45166c1f13d3f077f6069b Signed-off-by: Laszlo Kiraly <laszlo.kiraly@est.tech>
2022-06-14docs: fix spelling errorsDave Wallace1-1/+1
- also add docs-spell to checkstyle-all make target Type: fix Fixes: 5f6422db9 Change-Id: I8e9d7d17a03ee7b55f4e1785983459c43af267f7 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2022-06-13build: update makefile for ubuntu 22.04 docker executorsSaima Yunus1-2/+9
* apt '—force-yes' is deprecated in the version of apt in Ubuntu 22.04 * several Ubuntu-22.04-specific packages (e.g. python3-virtualenv, libssl-dev, clang clang-format-11) are needed in the current VPP installation as well Type: fix Signed-off-by: Saima Yunus <yunus.saima.99@gmail.com> Change-Id: I96ead90152f692233da812cdc853792bedb47c3c
2022-05-27build: add python3-pip dependencySaima Yunus1-1/+1
- python3 pip module is missing on a new Ubuntu installation Type: fix Signed-off-by: Saima Yunus <yunus.saima.99@gmail.com> Change-Id: I5a9886cd5f9226dc0a968c2f70a7c436a06ddf50
2022-05-24docs: make docs build incrementalNathan Skrzypczak1-0/+1
This patch makes the `make docs` directive incremental avoiding re-running the siphon when the source hasn't changed, and leveraging sphinx internal cache. It adds a `make rebuild-docs` directive for cases where this caching logic might break, e.g. in CI. The virtualenv doesn't also get recreated on each build, which might be enough when writing docs, provided automated process leverage its rebuild counterpart. Type: improvement Change-Id: Ie90de3adebeed017b249cad81c6c160719f71e8d Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com> Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2022-05-10tests: replace pycodestyle with blackKlement Sekera1-6/+22
Drop pycodestyle for code style checking in favor of black. Black is much faster, stable PEP8 compliant code style checker offering also automatic formatting. It aims to be very stable and produce smallest diffs. It's used by many small and big projects. Running checkstyle with black takes a few seconds with a terse output. Thus, test-checkstyle-diff is no longer necessary. Expand scope of checkstyle to all python files in the repo, replacing test-checkstyle with checkstyle-python. Also, fixstyle-python is now available for automatic style formatting. Note: python virtualenv has been consolidated in test/Makefile, test/requirements*.txt which will eventually be moved to a central location. This is required to simply the automated generation of docker executor images in the CI. Type: improvement Change-Id: I022a326603485f58585e879ac0f697fceefbc9c8 Signed-off-by: Klement Sekera <klement.sekera@gmail.com> Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2022-04-28build: remove mbedtls from rpm dependenciesFlorin Coras1-4/+3
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I50dfed0fba3c8547f5c52998cf777f2ed1d2e4a5
2022-04-15build: c compiler version warningsDamjan Marion1-3/+3
Type: make Change-Id: I9455da47f03383df822436d1adc4c4b5e58c7cf9 Signed-off-by: Damjan Marion <damarion@cisco.com>
2022-04-13build: fix rpm build nasm not foundTianyu Li1-0/+1
Type: make Signed-off-by: Tianyu Li <tianyu.li@arm.com> Change-Id: I7ac1d0472edf8d48eac21a7b580a06456bf60c30
2022-04-08build: opensuse: remove nasm, change to clangLaszlo Kiraly1-1/+1
Type: make Signed-off-by: Laszlo Kiraly <laszlo.kiraly@est.tech> Change-Id: I3951be5be95a7fb76f54c4ce0daab0748cb8419c
2022-04-06build: remove nasmDamjan Marion1-0/+1
Type: make Change-Id: I5ee34e9d7156ccdc7a8310e8332347d850459495 Signed-off-by: Damjan Marion <damarion@cisco.com>
2022-03-22build: remove clang-format-10Dave Wallace1-9/+3
- No longer used now that ubuntu-18.04 is deprecated. - Change default to clang-format-11 in checkstyle.sh Type: make Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I202244563738417bf4ae5b22fc8e2804bff2d25f
2022-03-17misc: Improve go bindings genNathan Skrzypczak1-1/+1
Type: improvement Change-Id: Id705dab895602a60b053296b560ca3db5b0cd344 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2022-03-10build: fix centos 8 steam build install-depTianyu Li1-1/+1
make install-dep sometimes failed at downloading metadata for repository 'powertools-source': disable unnecessary powertools-source repo. Type: fix Fixes: 1affb31ef528 ("build: fix centos-8 'make install-deps'") Signed-off-by: Tianyu Li <tianyu.li@arm.com> Change-Id: I481d6106eea38190b3ddd79e8614b2ead7130807
2022-02-17tests: make tests less make dependentKlement Sekera1-7/+6
Implement command line argument parsing instead of passing arguments via environment variables. Add script for running tests without having to invoke make. Deprecate running tests via make. Type: improvement Change-Id: I2e3054a61a2ae25d460e9be00be7d7705fbf943e Signed-off-by: Klement Sekera <ksekera@cisco.com> Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2022-02-07build: Make the build work on Debian 11Andrew Yourtchenko1-1/+5
Debian 11 has some packages that have changed, and need adjustment. Also - its default compiler is gcc 10, which, contrary to either gcc 8 or gcc 11 prints a bunch of warnings, which fails compilation. And there is no gcc 11 package. Therefore, use clang for this build. Additionally, python 3.9 has exposed this issue: https://bugs.python.org/issue42580 Therefore, make a local patch to scapy to tackle it. Type: feature Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com> Change-Id: I7b9c0f852ab97fe3c1feca3f22020ac0970ba3e2
2022-02-07tests: Update python packagesDave Wallace1-0/+1
- pip == 22.0.3 - pip-tools == 6.5.0 - setuptools == 60.7.1 (now pinned in test/Makefile) - upgrade packages in requirements-3.txt - install iperf3 for 'make test TEST=vcl' Type: test Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I1bd85f10fb4f6ba87b9bc1267905e5f1b8eb16de
2022-02-05tests: remove constant argumentKlement Sekera1-20/+20
Reduce number of arguments by removing an argument which is only ever used with same constant value. Type: refactor Signed-off-by: Klement Sekera <klement.sekera@gmail.com> Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I061635b28031d75eb1f853b570e85f6e5a9094df
2022-01-31tests: make VPP_BUILD_DIR to point to correct dirKlement Sekera1-1/+1
Make VPP_BUILD_DIR hold the correct value and adjust paths where necessary. Type: refactor Change-Id: I5bc60666c04919956bf26badaf1ee1f1b188ef65 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2022-01-29misc: remove mbedtls from dependenciesFlorin Coras1-1/+1
Type: make Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I461d1f6289a4bb97c77952b87a35c90f37ec9d26
2022-01-28linux-cp: Linux Control Plane Netlink ListenerNeale Ranns1-2/+2
Type: feature please see FEATURE.yaml for details. Signed-off-by: Neale Ranns <nranns@cisco.com> Signed-off-by: Matthew Smith <mgsmith@netgate.com> Signed-off-by: Jon Loeliger <jdl@netgate.com> Signed-off-by: Pim van Pelt <pim@ipng.nl> Signed-off-by: Neale Ranns <neale@graphiant.com> Change-Id: I6255fd9953d0b03e6b4fe75b67a6845a7c206f74 Signed-off-by: Pim van Pelt <pim@ipng.nl>
2021-11-30build rpm-packaging: Remove boost dependencies from VOMDave Wallace1-2/+2
- VOM was deprecated in VPP 21.06, but the boost library dependencies did not get cleaned up. Type: make Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I0fb860a7a37676c1a1a0981c91f383882d9a820a
2021-11-19build: (opensuse) Revert build remove opensuse build infraLaszlo Kiraly1-2/+31
Added missing deps Removed Thumbleweed support Changed python2 to python3 Added Dockerfile for suse-leap build Type: make Change-Id: Ie73d2382a73ebc9d4475ace1a8f818fe38cf40c0 Signed-off-by: Laszlo Kiraly <laszlo.kiraly@est.tech>
2021-11-16build: upgrade to enchant-2Dave Wallace1-9/+9
- Remove enchant from RPM builds since docs are generated on ubuntu-20.04 in CI jobs. - Clean up DEB_DEPENDS copy-pasta - Add clang-11 for newest Ubuntu/Debian OS variants Type: docs Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I802f0b356bd412dbc23ee98d209f7cc3ab24ba4c
2021-11-16build: Remove ubuntu-18.04 install dependenciesDave Wallace1-6/+2
- Per agreement at VPP community meeting, end support for ubuntu-18.04 Type: make Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I20ae1531e571ba0aad233d47c2e5b73ee3f964b6
2021-11-09build: install clang-format-11Dave Wallace1-6/+10
- Don't make it the default yet Type: make Change-Id: I3aabfd32f7ffd99e10db372747a0ba65fdc76db2 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2021-11-09build: missing clang in deps for ubuntu 20.04Damjan Marion1-2/+2
Type: make Change-Id: Ica706f0284873f6bd8b8d868c965812a139748cf Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-11-06tests docs: fix jsonschema dependencyDave Wallace1-2/+2
- docs requires jsonschema which is only supported on python 3.7 or newer. This causes 'make test' to fail on Ubuntu 18.04 Type: fix Fixes: 9ad39c026 Change-Id: I0935c569ac102ea1dba6112f458e6ee10330e474 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2021-11-02tests: update python packagesDave Wallace1-1/+2
- Also fix docs requirements and venv cleanup required for docker executor building Type: test Change-Id: I839423224d95c45af42f459217887f4201cbb11a Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2021-10-13docs: better docs, mv doxygen to sphinxNathan Skrzypczak1-31/+19
This patch refactors the VPP sphinx docs in order to make it easier to consume for external readers as well as VPP developers. It also makes sphinx the single source of documentation, which simplifies maintenance and operation. Most important updates are: - reformat the existing documentation as rst - split RELEASE.md and move it into separate rst files - remove section 'events' - remove section 'archive' - remove section 'related projects' - remove section 'feature by release' - remove section 'Various links' - make (Configuration reference, CLI docs, developer docs) top level items in the list - move 'Use Cases' as part of 'About VPP' - move 'Troubleshooting' as part of 'Getting Started' - move test framework docs into 'Developer Documentation' - add a 'Contributing' section for gerrit, docs and other contributer related infos - deprecate doxygen and test-docs targets - redirect the "make doxygen" target to "make docs" Type: refactor Change-Id: I552a5645d5b7964d547f99b1336e2ac24e7c209f Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com> Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>