Compare commits

..

14 Commits

Author SHA1 Message Date
a144e75fed build: update octeon-roc checksum to updated version
- caused by regeneration of source tarball after the
  marvel repo moved to a new account

Type: fix

Change-Id: I44616408d673c8d208ff73ea29d9f5cc12778cef
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2024-07-30 15:11:47 -04:00
7ad2c8b3e0 tests: disable failing tests on Ubuntu 22.04
Also rework the logic so the skipping of marked Ubuntu 22.04 occurs at framework level

Leave debian11 special cases as-is.

Type: fix
Change-Id: I481eb32cd1a0860935482e9f930ced409da653c9
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit 9987d470a6)
2024-07-10 01:16:38 +00:00
80e9503819 sr: use correct reply to sr_policy_add_v2
Type: fix
Fixes: c4c205b091

Change-Id: I110729601a9f19451297883b781ec56e2b31465b
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
(cherry picked from commit 4332082093)
2024-04-18 15:29:03 +00:00
dd59e1b432 misc: in crcchecker.py, don't check for uncommitted changes in CI
Type: fix

Change-Id: I63260a953e54518b3084b62fccdb4af81315b229
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
(cherry picked from commit 3a0d7d2c95)
2024-04-08 22:44:18 +00:00
500ac05961 flowprobe: fix flush callbacks when multiple workers
IPFIX buffers are stored on a per worker thread basis. Currently, the
flush callbacks will flush only buffers stored for the main thread. And
buffers for worker threads will not be sent until their size reach the
path MTU configured for the exporter. So if traffic is constant, the
problem will unlikely to be visible. Buffers will be sent once they
reach the maximum size. However, if traffic stops at some point and
flush is triggered in order to make the plugin send all currently
buffered data, this will not happen. And collectors will not receive
that data. The plugin will keep the remaining data until traffic starts
again, the buffers reach the maximum size, and be sent.

With this fix, flush buffers for worker threads and for the main thread
when the flush callbacks are triggered.

This will allow to remove @tag_fixme_vpp_workers from the unit tests
that don't set timers. The tests that set timers will still be failing
for other multi-worker related problems.

Type: fix
Change-Id: I9a7d9cef8ddbec7ee68c79309e48e7bc0953d488
Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
(cherry picked from commit 4c7305f124)
2024-03-12 07:53:34 +00:00
a541cfd31d ipsec: check each packet for no algs in esp-encrypt
In esp_encrypt_inline(), if two or more consecutive packets are
associated with the same SA which has no crypto or integrity algorithms
set, only the first one gets dropped. Subsequent packets either get sent
(synchronous crypto) or cause a segv (asynchronous crypto).

The current SA's index and pool entry are cached before it can be
determined whether the packet should be dropped due to no algorithms
being set. The check for no algorithms is only performed when the cached
SA index is different than the SA index for the current packet. So
packets after the first one associated with the "none" alg SA aren't
handled properly.

This was broken by my previous commit ("ipsec: keep esp encrypt pointer
and index synced") which fixed a segv that occurred under a different
set of circumstances.

Check whether each packet should be dropped instead of only checking
when a new SA is encountered.

Update unit tests:
- Add a test for no algs on tunnel interface which enables
  asynchronous crypto.
- Send more than one packet in the tests for no algs.

Type: fix
Fixes: dac9e566cd

Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Change-Id: I69e951f22044051eb8557da187cb58f5535b54bf
(cherry picked from commit ff71939c30)
2024-03-11 20:18:42 +00:00
1200c799d0 linux-cp: add add_del_v3 and get_v2 methods
Added vl_api_lcp_itf_pair_add_del_v3_t_handler method, it can return
vif_index in reply. Also added vl_api_lcp_itf_pair_get_v2_t_handler
methods, this method is able to dump only one lcp pair or dump all
lcp pairs via stream_msg.

Type: improvement
Change-Id: I1d25344ee57f8fac8b857bb3a9a03116230b4d2c
Signed-off-by: Anton Nikolaev <anikolaev@netgate.com>
(cherry picked from commit 83ad79d69a)
2024-03-11 20:18:24 +00:00
4991354309 ip: force full reassembly before virtual
Type: improvement

The vnet buffer metadata for full IP reassembly and shallow virtual
reassembly overlaps. If you have full reassembly and virtual reassembly
enabled on the same interface and virtual reassembly happens to process
packets first, full reassembly will stomp on the metadata populated by
virtual reassembly.

Virtual reassembly gets enabled implicitly when NAT feature nodes
are enabled. Those NAT feature nodes rely on the virtual reassembly
metadata being populated correctly in order to find L4 proto & ports.
When NAT and IP full reassembly are both enabled on an interface, NAT
can drop fragmented packets because the virtual reassembly metadata
can be overwritten by full reassembly.

Ensure that full reassembly runs before virtual reassembly. Add a
runs_before dependency to ensure that ip4-full-reassembly-feature
runs before ip4-sv-reassembly-feature.

There was a duplicate VNET_FEATURE_INIT() for
ip4-full-reassembly-feature. It seems to have been intended for enabling
ip4-full-reassembly-custom as a feature node, but its contents are
identical to the earlier VNET_FEATURE_INIT() for
ip4-full-reassembly-feature. Removed the duplicate.

Change-Id: Ie600b854d4ceb90a7cb736810140d410b8f72447
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
(cherry picked from commit 205ed8f884)
2024-03-08 12:27:12 +01:00
e4ec1584ec tls: mark ho done atomically after ctx init
Make sure ctx is initialized before ho is marked as done.

Type: fix

Change-Id: If0525a9890a56e289e2ab006c669a9d64dc6505d
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 0ded4890be)
2024-03-01 14:29:29 +00:00
7453b5dfe8 session: postpone ct cleanup if rx evt pending
Type: fix

Change-Id: I8cfaa62abd38d5356263b0ffd428638d1a027617
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 3efcbaf3b1)
2024-03-01 14:29:11 +00:00
455960759b misc: VPP 24.02 Release Notes
Type: docs
Change-Id: I4209b4edf387f2d7b88ecc338cca3b4901210ed2
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2024-02-28 11:12:31 +00:00
ccfc24f745 buffers: bring back cache occupancy improvement
The improvement was removed in 40129,
causing 5-40% regressions in AVF tests.

There is a memory-speed trade-off,
this change prefers speed over memory efficiency.

Ideally, the choice should be configurable,
but that is not easy to achieve, considering
how early is vlib_buffer_main_init called.

Type: fix
Fixes: 038dad7ef2

Change-Id: I4746f3634abe6d233c9d092a372de05b3d1ae4b6
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
(cherry picked from commit 04fd51c03c)
2024-02-19 12:22:20 +00:00
8cbf84dce0 vcl: fix epollet test for unhandled evts
Argument to vcl_epoll_ctl_add_unhandled_event is often the result of an
and between events and EPOLLET which is larger than u8

Type: fix

Change-Id: I8c98f557fa1db9f3eb79c90ecdd60ac9366d4d40
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit e81f27ffb2)
2024-02-13 17:20:10 +00:00
3a56e86a73 misc: Initial changes for stable/2402 branch
Type: docs
Change-Id: I820bbb54597a8f640ed6b854d20d0b572c5f255b
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2024-01-24 12:41:23 +00:00
1389 changed files with 21739 additions and 58033 deletions

View File

@ -27,7 +27,6 @@ ForEachMacros:
- 'foreach_vlib_frame_bitmap_set_bit_index'
- 'FOREACH_ARRAY_ELT'
- 'RTE_ETH_FOREACH_DEV'
- 'foreach_clib_stack_frame'
- 'foreach_vnet_dev_rx_queue_runtime'
- 'foreach_vnet_dev_counter'
- 'foreach_vnet_dev_port_rx_queue'
@ -35,8 +34,6 @@ ForEachMacros:
- 'foreach_vnet_dev_port'
- 'foreach_vnet_dev_args'
- 'foreach_vnet_dev_port_args'
- 'foreach_clib_dt_tree_node'
- 'foreach_clib_dt_child_node'
StatementMacros:
- 'CLIB_MULTIARCH_FN'

27
.gitignore vendored
View File

@ -24,24 +24,6 @@
/build/external/vpp-*
/build/external/dpdk_mlx_default.sh
/build/external/downloads/
/build/external/deb/_build/
/build/external/deb/debian/changelog
/build/external/deb/debian/debhelper-build-stamp
/build/external/deb/debian/tmp/
/build/external/deb/debian/files/
/build/external/deb/debian/.debhelper/
/build/external/deb/debian/vpp-ext-deps*
/build/optional/downloads/
/build/optional/*.tar.gz
/build/optional/*.tar.xz
/build/optional/vpp-*
/build/optional/deb/_build/
/build/optional/deb/debian/changelog
/build/optional/deb/debian/debhelper-build-stamp
/build/optional/deb/debian/tmp/
/build/optional/deb/debian/files/
/build/optional/deb/debian/.debhelper/
/build/optional/deb/debian/vpp-ext-deps*
/path_setup
/tools/
# start autotools ignore
@ -140,12 +122,7 @@ compile_commands.json
/extras/hs-test/vpp-data
/extras/hs-test/hs-test
/extras/hs-test/http_server
/extras/hs-test/.build.ok
/extras/hs-test/.build.cov.ok
/extras/hs-test/.last_hst_ppid
/extras/hs-test/.goimports.ok
/extras/hs-test/summary/
/extras/hs-test/.last_state_hash
/extras/hs-test/.build.vpp
# ./configure
/CMakeFiles
@ -159,5 +136,3 @@ compile_commands.json
/cmake_install.cmake
/startup.conf
/startup.vpp
# log file archives
/archives

View File

@ -2,3 +2,4 @@
host=gerrit.fd.io
port=29418
project=vpp
defaultbranch=stable/2402

View File

@ -192,7 +192,7 @@ I: sr
M: Pablo Camarillo <pcamaril@cisco.com>
M: Ahmed Abdelsalam <ahabdels@cisco.com>
F: src/vnet/srv6/
F: src/plugin/srmpls/
F: src/vnet/srmpls/
F: src/examples/srv6-sample-localsid/
VNET IPSec
@ -460,6 +460,11 @@ M: Dave Barach <vpp@barachs.net>
M: Florin Coras <fcoras@cisco.com>
F: src/plugins/http_static/
Plugin - builtinurl
I: builtinurl
M: Dave Barach <vpp@barachs.net>
F: src/plugins/builtinurl/
Plugin - GTPU
I: gtpu
M: Hongjun Ni <hongjun.ni@intel.com>
@ -500,10 +505,10 @@ I: memif
M: Damjan Marion <damarion@cisco.com>
F: src/plugins/memif/
Plugin - Marvell Armada device driver
I: armada
Plugin - Marvell MUSDK device driver
I: marvell
M: Damjan Marion <damarion@cisco.com>
F: src/plugins/dev_armada/
F: src/plugins/marvell/
Plugin - performance counter
I: perfmon
@ -847,11 +852,6 @@ I: tracenode
M: Maxime Peim <mpeim@cisco.com>
F: src/plugins/tracenode
Plugin - Packet Vector Tunnel Interface
I: pvti
M: Andrew Yourtchenko <ayourtch@gmail.com>
F: src/plugins/pvti
cJSON
I: cjson
M: Ole Troan <ot@cisco.com>
@ -882,8 +882,8 @@ F: extras/strongswan/vpp_sswan
Host stack test framework
I: hs-test
M: Florin Coras <fcoras@cisco.com>
M: Matus Fabian <matfabia@cisco.com>
M: Adrian Villin <avillin@cisco.com>
M: Filip Tehlar <ftehlar@cisco.com>
M: Maros Ondrejicka <maros.ondrejicka@pantheon.tech>
F: extras/hs-test
THE REST
@ -892,8 +892,3 @@ M: vpp-dev Mailing List <vpp-dev@fd.io>
C: Missing Maintainer
F: *
F: */
Netmap
I: netmap
M: Tom Jones <thj@freebsd.org>
F: src/plugins/netmap/

114
Makefile
View File

@ -23,10 +23,6 @@ MACHINE=$(shell uname -m)
SUDO?=sudo -E
DPDK_CONFIG?=no-pci
ifeq ($(strip $(SHELL)),)
$(error "bash not found, VPP requires bash to build")
endif
,:=,
define disable_plugins
$(if $(1), \
@ -61,10 +57,8 @@ endif
ifeq ($(filter ubuntu debian linuxmint,$(OS_ID)),$(OS_ID))
PKG=deb
else ifeq ($(filter rhel centos fedora opensuse-leap rocky almalinux,$(OS_ID)),$(OS_ID))
else ifeq ($(filter rhel centos fedora opensuse-leap rocky,$(OS_ID)),$(OS_ID))
PKG=rpm
else ifeq ($(filter freebsd,$(OS_ID)),$(OS_ID))
PKG=pkg
endif
# +libganglia1-dev if building the gmond plugin
@ -74,7 +68,7 @@ DEB_DEPENDS += debhelper dkms git libtool libapr1-dev dh-python
DEB_DEPENDS += libconfuse-dev git-review exuberant-ctags cscope pkg-config
DEB_DEPENDS += gcovr lcov chrpath autoconf libnuma-dev
DEB_DEPENDS += python3-all python3-setuptools check
DEB_DEPENDS += libffi-dev python3-ply libunwind-dev
DEB_DEPENDS += libffi-dev python3-ply
DEB_DEPENDS += cmake ninja-build python3-jsonschema python3-yaml
DEB_DEPENDS += python3-venv # ensurepip
DEB_DEPENDS += python3-dev python3-pip
@ -88,24 +82,13 @@ DEB_DEPENDS += nasm
DEB_DEPENDS += iperf ethtool # for 'make test TEST=vm_vpp_interfaces'
DEB_DEPENDS += libpcap-dev
DEB_DEPENDS += tshark
DEB_DEPENDS += jq # for extracting test summary from .json report (hs-test)
LIBFFI=libffi6 # works on all but 20.04 and debian-testing
ifeq ($(OS_VERSION_ID),24.04)
DEB_DEPENDS += libssl-dev
DEB_DEPENDS += llvm clang clang-format-15
# overwrite clang-format version to run `make checkstyle` successfully
# TODO: remove once ubuntu 20.04 is deprecated and extras/scripts/checkstyle.sh is upgraded to 15
export CLANG_FORMAT_VER=15
LIBFFI=libffi8
DEB_DEPENDS += enchant-2 # for docs
else ifeq ($(OS_VERSION_ID),22.04)
ifeq ($(OS_VERSION_ID),22.04)
DEB_DEPENDS += python3-virtualenv
DEB_DEPENDS += libssl-dev
DEB_DEPENDS += clang clang-format-15
# overwrite clang-format version to run `make checkstyle` successfully
# TODO: remove once ubuntu 20.04 is deprecated and extras/scripts/checkstyle.sh is upgraded to 15
export CLANG_FORMAT_VER=15
DEB_DEPENDS += clang clang-format-11
LIBFFI=libffi7
DEB_DEPENDS += enchant-2 # for docs
else ifeq ($(OS_VERSION_ID),20.04)
@ -114,6 +97,9 @@ else ifeq ($(OS_VERSION_ID),20.04)
DEB_DEPENDS += clang clang-format-11
LIBFFI=libffi7
DEB_DEPENDS += enchant-2 # for docs
else ifeq ($(OS_VERSION_ID),20.10)
DEB_DEPENDS += clang clang-format-11
LIBFFI=libffi8ubuntu1
else ifeq ($(OS_ID)-$(OS_VERSION_ID),debian-10)
DEB_DEPENDS += virtualenv
else ifeq ($(OS_ID)-$(OS_VERSION_ID),debian-11)
@ -122,10 +108,9 @@ else ifeq ($(OS_ID)-$(OS_VERSION_ID),debian-11)
LIBFFI=libffi7
else ifeq ($(OS_ID)-$(OS_VERSION_ID),debian-12)
DEB_DEPENDS += virtualenv
DEB_DEPENDS += clang-14 clang-format-15
DEB_DEPENDS += clang-14 clang-format-14
# for extras/scripts/checkstyle.sh
# TODO: remove once ubuntu 20.04 is deprecated and extras/scripts/checkstyle.sh is upgraded to -15
export CLANG_FORMAT_VER=15
export CLANG_FORMAT_VER=14
LIBFFI=libffi8
else
DEB_DEPENDS += clang-11 clang-format-11
@ -165,15 +150,6 @@ else ifeq ($(OS_ID),rocky)
RPM_DEPENDS += python3-virtualenv python3-jsonschema
RPM_DEPENDS += infiniband-diags llvm clang cmake
RPM_DEPENDS_GROUPS = 'Development Tools'
else ifeq ($(OS_ID),almalinux)
RPM_DEPENDS += yum-utils
RPM_DEPENDS += subunit subunit-devel
RPM_DEPENDS += openssl-devel
RPM_DEPENDS += python3-devel # needed for python3 -m pip install psutil
RPM_DEPENDS += python3-ply # for vppapigen
RPM_DEPENDS += python3-virtualenv python3-jsonschema
RPM_DEPENDS += infiniband-diags llvm clang cmake
RPM_DEPENDS_GROUPS = 'Development Tools'
else ifeq ($(OS_ID)-$(OS_VERSION_ID),centos-8)
RPM_DEPENDS += yum-utils
RPM_DEPENDS += compat-openssl10 openssl-devel
@ -223,18 +199,6 @@ endif
RPM_SUSE_DEPENDS += $(RPM_SUSE_BUILDTOOLS_DEPS) $(RPM_SUSE_DEVEL_DEPS) $(RPM_SUSE_PYTHON_DEPS) $(RPM_SUSE_PLATFORM_DEPS)
# FreeBSD build and test dependancies
FBSD_PY_PRE=py311
FBSD_TEST_DEPS = setsid rust $(FBSD_PY_PRE)-pyshark
FBSD_PYTHON_DEPS = python3 $(FBSD_PY_PRE)-pyelftools $(FBSD_PY_PRE)-ply
FBSD_DEVEL_DEPS = cscope gdb
FBSD_BUILD_DEPS = bash gmake sudo
FBSD_BUILD_DEPS += git sudo autoconf automake curl gsed
FBSD_BUILD_DEPS += pkgconf ninja cmake libepoll-shim jansson
FBSD_DEPS = $(FBSD_BUILD_DEPS) $(FBSD_PYTHON_DEPS) $(FBSD_TEST_DEPS) $(FBSD_DEVEL_DEPS)
ifneq ($(wildcard $(STARTUP_DIR)/startup.conf),)
STARTUP_CONF ?= $(STARTUP_DIR)/startup.conf
endif
@ -267,7 +231,6 @@ help:
@echo " build - build debug binaries"
@echo " build-release - build release binaries"
@echo " build-coverity - build coverity artifacts"
@echo " build-vpp-gcov - build gcov vpp only"
@echo " rebuild - wipe and build debug binaries"
@echo " rebuild-release - wipe and build release binaries"
@echo " run - run debug binary"
@ -275,8 +238,6 @@ help:
@echo " debug - run debug binary with debugger"
@echo " debug-release - run release binary with debugger"
@echo " test - build and run tests"
@echo " test-cov-hs - build and run host stack tests with coverage"
@echo " test-cov-both - build and run python and host stack tests, merge coverage data"
@echo " test-help - show help on test framework"
@echo " run-vat - run vpp-api-test tool"
@echo " pkg-deb - build DEB packages"
@ -285,7 +246,6 @@ help:
@echo " snap-clean - clean up snap build environment"
@echo " pkg-rpm - build RPM packages"
@echo " install-ext-dep[s] - install external development dependencies"
@echo " install-opt-deps - install optional dependencies"
@echo " ctags - (re)generate ctags database"
@echo " gtags - (re)generate gtags database"
@echo " cscope - (re)generate cscope database"
@ -294,10 +254,8 @@ help:
@echo " checkstyle-commit - check commit message format"
@echo " checkstyle-python - check python coding style using 'black' formatter"
@echo " checkstyle-api - check api for incompatible changes"
@echo " checkstyle-go - check style of .go source files"
@echo " fixstyle - fix coding style"
@echo " fixstyle-python - fix python coding style using 'black' formatter"
@echo " fixstyle-go - format .go source files"
@echo " doxygen - DEPRECATED - use 'make docs'"
@echo " bootstrap-doxygen - DEPRECATED"
@echo " wipe-doxygen - DEPRECATED"
@ -306,7 +264,6 @@ help:
@echo " json-api-files - (re)-generate json api files"
@echo " json-api-files-debug - (re)-generate json api files for debug target"
@echo " go-api-files - (re)-generate golang api files"
@echo " cleanup-hst - stops and removes all docker contaiers and namespaces"
@echo " docs - Build the Sphinx documentation"
@echo " docs-venv - Build the virtual environment for the Sphinx docs"
@echo " docs-clean - Remove the generated files from the Sphinx docs"
@ -405,10 +362,8 @@ endif
else ifeq ($(filter opensuse-leap-15.3 opensuse-leap-15.4 ,$(OS_ID)-$(OS_VERSION_ID)),$(OS_ID)-$(OS_VERSION_ID))
@sudo -E zypper refresh
@sudo -E zypper install -y $(RPM_SUSE_DEPENDS)
else ifeq ($(OS_ID), freebsd)
@sudo pkg install -y $(FBSD_DEPS)
else
$(error "This option currently works only on Ubuntu, Debian, RHEL, CentOS, openSUSE-leap or FreeBSD systems")
$(error "This option currently works only on Ubuntu, Debian, RHEL, CentOS or openSUSE-leap systems")
endif
git config commit.template .git_commit_template.txt
@ -471,10 +426,6 @@ rebuild: wipe build
build-release: $(BR)/.deps.ok
$(call make,$(PLATFORM),$(addsuffix -install,$(TARGETS)))
.PHONY: build-vpp-gcov
build-vpp-gcov:
$(call test,vpp_gcov)
.PHONY: wipe-release
wipe-release: test-wipe $(BR)/.deps.ok
$(call make,$(PLATFORM),$(addsuffix -wipe,$(TARGETS)))
@ -492,7 +443,6 @@ define test
VPP_BIN=$(BR)/install-$(1)-native/vpp/bin/vpp \
VPP_INSTALL_PATH=$(BR)/install-$(1)-native/ \
EXTENDED_TESTS=$(EXTENDED_TESTS) \
DECODE_PCAPS=$(DECODE_PCAPS) \
TEST_GCOV=$(TEST_GCOV) \
PYTHON=$(PYTHON) \
OS_ID=$(OS_ID) \
@ -522,20 +472,6 @@ test-cov:
$(eval TEST_GCOV=1)
$(call test,vpp_gcov,cov)
.PHONY: test-cov-hs
test-cov-hs:
@$(MAKE) -C extras/hs-test build-cov
@$(MAKE) -C extras/hs-test test-cov
.PHONY: test-cov-both
test-cov-both:
@echo "Running Python, Golang tests and merging coverage reports."
find $(BR) -name '*.gcda' -delete
@$(MAKE) test-cov
find $(BR) -name '*.gcda' -delete
@$(MAKE) test-cov-hs
@$(MAKE) cov-merge
.PHONY: test-cov-build
test-cov-build:
$(eval CC=gcc)
@ -552,14 +488,6 @@ test-cov-post:
$(eval CC=gcc)
$(call test,vpp_gcov,cov-post)
.PHONY: cov-merge
cov-merge:
@lcov --add-tracefile $(BR)/test-coverage-merged/coverage-filtered.info \
-a $(BR)/test-coverage-merged/coverage-filtered1.info -o $(BR)/test-coverage-merged/coverage-merged.info
@genhtml $(BR)/test-coverage-merged/coverage-merged.info \
--output-directory $(BR)/test-coverage-merged/html
@echo "Code coverage report is in $(BR)/test-coverage-merged/html/index.html"
.PHONY: test-all
test-all:
$(eval EXTENDED_TESTS=1)
@ -609,7 +537,7 @@ test-shell-cov:
.PHONY: test-dep
test-dep:
@$(MAKE) -C test test-dep
@make -C test test-dep
.PHONY: test-doc
test-doc:
@ -757,10 +685,6 @@ install-ext-deps:
.PHONY: install-ext-dep
install-ext-dep: install-ext-deps
.PHONY: install-opt-deps
install-opt-deps:
$(MAKE) -C build/optional install-$(PKG)
.PHONY: json-api-files
json-api-files:
$(WS_ROOT)/src/tools/vppapigen/generate_json.py
@ -773,10 +697,6 @@ json-api-files-debug:
go-api-files: json-api-files
$(WS_ROOT)/src/tools/vppapigen/generate_go.py $(ARGS)
.PHONY: cleanup-hst
cleanup-hst:
$(MAKE) -C extras/hs-test cleanup-hst
.PHONY: ctags
ctags: ctags.files
@ctags --totals --tag-relative=yes -L $<
@ -814,16 +734,8 @@ checkstyle-test:
checkstyle-python:
@$(MAKE) -C test checkstyle-python-all
.PHONY: checkstyle-go
checkstyle-go:
@$(MAKE) -C extras/hs-test checkstyle-go
.PHONY: fixstyle-go
fixstyle-go:
@$(MAKE) -C extras/hs-test fixstyle-go
.PHONY: checkstyle-all
checkstyle-all: checkstyle-commit checkstyle checkstyle-python docs-spell checkstyle-go
checkstyle-all: checkstyle-commit checkstyle checkstyle-python docs-spell
.PHONY: fixstyle
fixstyle:

View File

@ -90,13 +90,6 @@ For this to work you will need a working installation of Vagrant. Instructions
for this can be found [on the Setting up Vagrant wiki page]
(https://wiki.fd.io/view/DEV/Setting_Up_Vagrant).
### Quick-start: FreeBSD
VPP is packaged in the FreeBSD ports system. Binary packages are available and
can be installed with the following command:
# pkg install vpp
## More information

View File

@ -19,7 +19,7 @@ else
CMAKE?=cmake
endif
vpp_cmake_prefix_path = /opt/vpp/external/$(shell uname -m) /opt/vpp/optional/$(shell uname -m)
vpp_cmake_prefix_path = /opt/vpp/external/$(shell uname -m)
vpp_cmake_prefix_path += $(PACKAGE_INSTALL_DIR)external
vpp_cmake_prefix_path := $(subst $() $(),;,$(vpp_cmake_prefix_path))

View File

@ -650,18 +650,11 @@ configure_check_timestamp = \
# /proc/cpuinfo does not exist on platforms without a /proc and on some
# platforms, notably inside containers, it has no content. In those cases
# we assume there's 1 processor; we use 2*ncpu for the -j option.
#
# On FreeBSD we can call nproc to get the number of processors.
#
# NB: GNU Make 4.2 will let us use '$(file </proc/cpuinfo)' to both test
# for file presence and content; for now this will have to do.
ifndef MAKE_PARALLEL_JOBS
ifeq ($(shell uname), FreeBSD)
MAKE_PARALLEL_JOBS = $(shell nproc)
else
MAKE_PARALLEL_JOBS = $(if $(shell [ -f /proc/cpuinfo ] && head /proc/cpuinfo), \
$(shell grep -c ^processor /proc/cpuinfo), 2)
endif # FreeBSD
endif
MAKE_PARALLEL_FLAGS ?= $(if $($(PACKAGE)_make_parallel_fails),,-j $(MAKE_PARALLEL_JOBS))
@ -997,7 +990,7 @@ $(PLATFORM_IMAGE_DIR)/ro.img ro-image: $(patsubst %,%-find-source,$(ROOT_PACKAGE
| xargs sign $($(PLATFORM)_public_key) \
$($(PLATFORM)_private_key_passphrase) ; \
fi ; \
: $(MAKE) read-only file system ; \
: make read-only file system ; \
mksquashfs \
$${tmp_dir} $${ro_image} \
-no-exports -no-progress -no-recovery ; \

View File

@ -1,48 +0,0 @@
# Copyright (c) 2024 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Scripts require non-POSIX parts of bash
SHELL := $(shell which bash)
DL_CACHE_DIR = $(HOME)/Downloads
MAKE_ARGS ?= -j
BUILD_DIR ?= $(CURDIR)/_build
INSTALL_DIR ?= $(CURDIR)/_install
DOWNLOAD_DIR ?= $(CURDIR)/downloads
PKG_VERSION ?= $(shell git describe --abbrev=0 --match 'v[0-9]*' | cut -d- -f1 | cut -dv -f2 | cut -d. -f1,2)
SOURCE_DATE_EPOCH ?= $(shell git log -1 --pretty=%ct .)
ifeq ($(shell uname), FreeBSD)
JOBS := $(shell nproc)
else
JOBS := $(if $(shell [ -f /proc/cpuinfo ] && head /proc/cpuinfo),\
$(shell grep -c ^processor /proc/cpuinfo), 2)
endif # FreeBSD
B := $(BUILD_DIR)
I := $(INSTALL_DIR)
D := $(DOWNLOAD_DIR)
ifeq ($(WORKSPACE),)
L := $(B)
else
L := $(WORKSPACE)/archives/vpp-ext-deps
$(shell rm -rf $(L) && mkdir -p $(L))
endif
ifneq ($(shell which cmake3),)
CMAKE?=cmake3
else
CMAKE?=cmake
endif
ARCH_X86_64=$(filter x86_64,$(shell uname -m))
AARCH64=$(filter aarch64,$(shell uname -m))

View File

@ -11,37 +11,48 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# Scripts require non-POSIX parts of bash
SHELL := $(shell which bash)
DL_CACHE_DIR = $(HOME)/Downloads
MAKE_ARGS ?= -j
BUILD_DIR ?= $(CURDIR)/_build
INSTALL_DIR ?= $(CURDIR)/_install
PKG_VERSION ?= $(shell git describe --abbrev=0 --match 'v[0-9]*' | cut -d- -f1 | cut -dv -f2 | cut -d. -f1,2)
PKG_SUFFIX ?= $(shell git log --oneline v$(PKG_VERSION)-rc0.. . | wc -l)
SOURCE_DATE_EPOCH ?= $(shell git log -1 --pretty=%ct .)
JOBS := $(if $(shell [ -f /proc/cpuinfo ] && head /proc/cpuinfo),\
$(shell grep -c ^processor /proc/cpuinfo), 2)
include ../build_common.mk
include ../packages_common.mk
B := $(BUILD_DIR)
I := $(INSTALL_DIR)
ifneq ($(shell which cmake3),)
CMAKE?=cmake3
else
CMAKE?=cmake
endif
ARCH_X86_64=$(filter x86_64,$(shell uname -m))
AARCH64=$(filter aarch64,$(shell uname -m))
include packages.mk
include packages/ipsec-mb.mk
include packages/quicly.mk
ifneq ($(shell uname), FreeBSD)
include packages/rdma-core.mk
include packages/dpdk.mk
include packages/xdp-tools.mk
include packages/octeon-roc.mk
endif # ! FreeBSD
include packages/dpdk.mk
.PHONY: clean
clean:
@rm -rf $(B) $(I)
.PHONY: install
ifeq ($(shell uname), FreeBSD)
install: $(if $(ARCH_X86_64), ipsec-mb-install) dpdk-install quicly-install
else
install: $(if $(ARCH_X86_64), ipsec-mb-install) dpdk-install rdma-core-install quicly-install xdp-tools-install $(if $(AARCH64), octeon-roc-install)
endif # FreeBSD
.PHONY: config
ifeq ($(shell uname), FreeBSD)
config: $(if $(ARCH_X86_64), ipsec-mb-config) dpdk-config quicly-build
else
config: $(if $(ARCH_X86_64), ipsec-mb-config) dpdk-config rdma-core-config quicly-build
endif # FreeBSD
##############################################################################
# .deb packaging
@ -69,7 +80,7 @@ build-deb: $(DEV_DEB)
install-deb:
ifneq ($(INSTALLED_VER),$(DEB_VER)-$(PKG_SUFFIX))
@$(MAKE) $(DEV_DEB)
@make $(DEV_DEB)
@sudo dpkg -i $(DEV_DEB)
else
@echo "=========================================================="
@ -150,7 +161,7 @@ ifeq ($(INSTALLED_VER)$(INSTALLED_RPM_VER),)
$(MAKE) config
else
ifneq ($(INSTALLED_VER),)
$(MAKE) check-deb
make check-deb
endif
ifneq ($(INSTALLED_RPM_VER),)
$(MAKE) check-rpm

View File

@ -9,3 +9,5 @@ Package: vpp-ext-deps
Architecture: any
Depends: ${shlibs:Depends}
Description: VPP developer package containing dependencies
Replaces: vpp-dpdk-dev
Conflicts: vpp-dpdk-dev

View File

@ -30,4 +30,4 @@ override_dh_install:
dh_install -p$(PKG) --autodest /opt
override_dh_shlibdeps:
dh_shlibdeps -l$(INSTALL_DIR)lib/:$(INSTALL_DIR)lib64
dh_shlibdeps -l$(INSTALL_DIR)lib/

View File

@ -1,3 +1,2 @@
rdma=46.1 dpdk=23.07
rdma=49.0 dpdk=23.11
rdma=51.0 dpdk=24.03
rdma=52.0 dpdk=24.07

View File

@ -1,4 +1,4 @@
# Copyright (c) 2024 Cisco and/or its affiliates.
# Copyright (c) 2018 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@ -21,15 +21,15 @@ $1_src_dir ?= $(B)/src-$1
$1_patch_dir ?= $(CURDIR)/patches/$1_$($1_version)
$1_build_dir ?= $(B)/build-$1
$1_install_dir ?= $(I)
$1_config_log ?= $(L)/$1.config.log
$1_build_log ?= $(L)/$1.build.log
$1_install_log ?= $(L)/$1.install.log
$1_config_log ?= $(B)/$1.config.log
$1_build_log ?= $(B)/$1.build.log
$1_install_log ?= $(B)/$1.install.log
##############################################################################
# Download
##############################################################################
$(D)/$($1_tarball):
mkdir -p $(D)
downloads/$($1_tarball):
mkdir -p downloads
@if [ -e $(DL_CACHE_DIR)/$($1_tarball) ] ; \
then cp $(DL_CACHE_DIR)/$($1_tarball) $$@ ; \
else \
@ -38,15 +38,15 @@ $(D)/$($1_tarball):
fi
@rm -f $(B)/.$1.download.ok
$(B)/.$1.download.ok: $(D)/$($1_tarball)
$(B)/.$1.download.ok: downloads/$($1_tarball)
@mkdir -p $(B)
$$(call h1,"validating $1 $($1_version) checksum")
@SHA256SUM=$$(shell openssl sha256 $$< | cut -f 2 -d " " -) ; \
(([ "$$$${SHA256SUM}" = "$($1_tarball_sha256sum)" ] && echo "SHA256 OK") || \
@SUM=$$(shell openssl md5 $$< | cut -f 2 -d " " -) ; \
([ "$$$${SUM}" = "$($1_tarball_md5sum)" ] || \
( echo "==========================================================" && \
echo "Bad Checksum!" && \
echo "Expected SHA256: $($1_tarball_sha256)" && \
echo "Calculated SHA256: $$$${SHA256SUM}" && \
echo "Expected: $($1_tarball_md5sum)" && \
echo "Calculated: $$$${SUM}" && \
echo "Please remove $$< and retry" && \
echo "==========================================================" && \
false ))
@ -65,7 +65,7 @@ $(B)/.$1.extract.ok: $(B)/.$1.download.ok
--directory $$($1_src_dir) \
--extract \
--strip-components=$$($1_tarball_strip_dirs) \
--file $(D)/$($1_tarball)
--file downloads/$($1_tarball)
@touch $$@
.PHONY: $1-extract

View File

@ -19,22 +19,21 @@ DPDK_FAILSAFE_PMD ?= n
DPDK_MACHINE ?= default
DPDK_MLX_IBV_LINK ?= static
dpdk_version ?= 24.07
dpdk_version ?= 23.11
dpdk_base_url ?= http://fast.dpdk.org/rel
dpdk_tarball := dpdk-$(dpdk_version).tar.xz
dpdk_tarball_sha256sum_24.07 := 9944f7e5f268e7ac9b4193e2cd54ef6d98f6e1d7dddc967c77ae4f6616d6fbbd
dpdk_tarball_sha256sum := $(dpdk_tarball_sha256sum_$(dpdk_version))
dpdk_tarball_md5sum_23.11 := 896c09f5b45b452bd77287994650b916
dpdk_tarball_md5sum_23.07 := 2b6d57f077585cb15b885482362fd47f
dpdk_tarball_md5sum_23.03 := 3cf8ebbcd412d5726db230f2eeb90cc9
dpdk_tarball_md5sum_22.11.1 := 0594708fe42ce186a55b0235c6e20cfe
dpdk_tarball_md5sum_22.07 := fb73b58b80b1349cd05fe9cf6984afd4
dpdk_tarball_md5sum_22.03 := a07ca8839f98062f46e1cc359735cce8
dpdk_tarball_md5sum_21.11 := 58660bbbe9e95abce86e47692b196555
dpdk_tarball_md5sum := $(dpdk_tarball_md5sum_$(dpdk_version))
dpdk_url := $(dpdk_base_url)/$(dpdk_tarball)
dpdk_tarball_strip_dirs := 1
ifeq ($(shell uname), FreeBSD)
dpdk_depends := $(if $(ARCH_X86_64), ipsec-mb)
else
dpdk_depends := rdma-core $(if $(ARCH_X86_64), ipsec-mb)
endif
ifeq ($(rdma-core_version),)
$(error Missing rdma-core_version)
endif
DPDK_MLX_DEFAULT := $(shell if grep -q "rdma=$(rdma-core_version) dpdk=$(dpdk_version)" mlx_rdma_dpdk_matrix.txt; then echo 'y'; else echo 'n'; fi)
DPDK_MLX4_PMD ?= $(DPDK_MLX_DEFAULT)
DPDK_MLX5_PMD ?= $(DPDK_MLX_DEFAULT)
@ -134,19 +133,14 @@ endif
DPDK_DRIVERS_DISABLED := $(shell echo $(DPDK_DRIVERS_DISABLED) | tr -d '\\\t ')
DPDK_LIBS_DISABLED := $(shell echo $(DPDK_LIBS_DISABLED) | tr -d '\\\t ')
SED=sed
ifeq ($(shell uname), FreeBSD)
SED=gsed
endif
HASH := \#
# post-meson-setup snippet to alter rte_build_config.h
define dpdk_config
if grep -q RTE_$(1) $(dpdk_src_dir)/config/rte_config.h ; then \
$(SED) -i -e 's/$(HASH)define RTE_$(1).*/$(HASH)define RTE_$(1) $(DPDK_$(1))/' \
sed -i -e 's/$(HASH)define RTE_$(1).*/$(HASH)define RTE_$(1) $(DPDK_$(1))/' \
$(dpdk_src_dir)/config/rte_config.h; \
elif grep -q RTE_$(1) $(dpdk_build_dir)/rte_build_config.h ; then \
$(SED) -i -e 's/$(HASH)define RTE_$(1).*/$(HASH)define RTE_$(1) $(DPDK_$(1))/' \
sed -i -e 's/$(HASH)define RTE_$(1).*/$(HASH)define RTE_$(1) $(DPDK_$(1))/' \
$(dpdk_build_dir)/rte_build_config.h; \
else \
echo '$(HASH)define RTE_$(1) $(DPDK_$(1))' \
@ -162,7 +156,7 @@ if [[ "$(DPDK_$(1))" == "y" ]]; then \
>> $(dpdk_build_dir)/rte_build_config.h ; \
fi; \
elif [[ "$(DPDK_$(1))" == "n" ]]; then \
$(SED) -i '/$(HASH)define RTE_$(1) .*/d' $(dpdk_build_dir)/rte_build_config.h \
sed -i '/$(HASH)define RTE_$(1) .*/d' $(dpdk_build_dir)/rte_build_config.h \
$(dpdk_src_dir)/config/rte_config.h ; \
fi
endef
@ -178,7 +172,6 @@ DPDK_MESON_ARGS = \
-Db_pie=true \
-Dmachine=$(DPDK_MACHINE) \
--buildtype=$(DPDK_BUILD_TYPE) \
-Denable_kmods=false \
${DPDK_MLX_CONFIG_FLAG}
PIP_DOWNLOAD_DIR = $(CURDIR)/downloads/

View File

@ -11,13 +11,18 @@
# See the License for the specific language governing permissions and
# limitations under the License.
ipsec-mb_version := 2.0
ipsec-mb_version := 1.5
ipsec-mb_patch_version := 0
ipsec-mb_version_str := $(ipsec-mb_version).$(ipsec-mb_patch_version)
ipsec-mb_tarball := v$(ipsec-mb_version).tar.gz
ipsec-mb_tarball_sha256sum_2.0 := 0c60e56f63b14212c7b388668acc219cbc6b79e5e79732aff7542fefbb498413
ipsec-mb_tarball_md5sum_1.0 := 906e701937751e761671dc83a41cff65
ipsec-mb_tarball_md5sum_1.1 := 3916471d3713d27e42473cb6af9c65e5
ipsec-mb_tarball_md5sum_1.2 := f551d9c208893a436c1f5c146a615bd6
ipsec-mb_tarball_md5sum_1.3 := d8692db9efe32a263b61f12ac0dca950
ipsec-mb_tarball_md5sum_1.4 := fddba2611f822296ddd82d1c31d22b24
ipsec-mb_tarball_md5sum_1.5 := f18680f8dd43208a15a19a494423bdb9
ipsec-mb_tarball_sha256sum := $(ipsec-mb_tarball_sha256sum_$(ipsec-mb_version))
ipsec-mb_tarball_md5sum := $(ipsec-mb_tarball_md5sum_$(ipsec-mb_version))
ipsec-mb_tarball_strip_dirs := 1
ipsec-mb_url := http://github.com/intel/intel-ipsec-mb/archive/$(ipsec-mb_tarball)
ipsec-mb_system_header := $(wildcard /usr/include/intel-ipsec-mb.h)
@ -27,7 +32,7 @@ define ipsec-mb_config_cmds
endef
define ipsec-mb_build_cmds
@$(MAKE) -C $(ipsec-mb_src_dir)/lib -j \
@make -C $(ipsec-mb_src_dir)/lib -j \
SHARED=n \
SAFE_PARAM=n \
SAFE_LOOKUP=n \

View File

@ -2,12 +2,12 @@
# SPDX-License-Identifier: Apache-2.0
# https://spdx.org/licenses/Apache-2.0.html
octeon-roc_version := 0.5
octeon-roc_tarball := v$(octeon-roc_version).tar.gz
octeon-roc_tarball_sha256sum := 030fc0f58d761525bf8814ed9d95f5ce999541b19bd75eb123dee90c9e2c52a0
octeon-roc_version := 0.2
octeon-roc_tarball := octeon-roc-v$(octeon-roc_version).tar.gz
octeon-roc_tarball_md5sum := 3e122beb30d57d6f70ea5ee106465b3b
octeon-roc_tarball_strip_dirs := 1
octeon-roc_url := https://github.com/MarvellEmbeddedProcessors/marvell-octeon-roc/archive/refs/tags/$(octeon-roc_tarball)
octeon-roc_url := https://github.com/MarvellEmbeddedProcessors/marvell-vpp/archive/refs/tags/$(octeon-roc_tarball)
define octeon-roc_config_cmds
@true

View File

@ -11,9 +11,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
quicly_version := 0.1.5-vpp
quicly_version := 0.1.4-vpp
quicly_tarball := quicly_$(quicly_version).tar.gz
quicly_tarball_sha256sum := fb50ad8ce1136561ee08df02131030d89e38acd2cf8e36c65c074f3bd5034938
quicly_tarball_md5sum := 5419a0f340c5572bcf682c08acc84c77
quicly_tarball_strip_dirs := 1
quicly_url := https://github.com/vpp-quic/quicly/releases/download/v$(quicly_version)/quicly_$(quicly_version).tar.gz

View File

@ -23,10 +23,11 @@ RDMA_CORE_DEBUG?=n
# 2. Verify that the file build/external/dpdk_mlx_default.sh was generated
# and contains 'DPDK_MLX_DEFAULT=y'
#
rdma-core_version := 52.0
rdma-core_version := 49.0
rdma-core_tarball := rdma-core-$(rdma-core_version).tar.gz
rdma-core_tarball_sha256sum_52.0 := 1f0ce5f2462c982b20d21156707076278807a7adf4d10e9142f3be4bec1b2b83
rdma-core_tarball_sha256sum := $(rdma-core_tarball_sha256sum_$(rdma-core_version))
rdma-core_tarball_md5sum_46.1 := 3ac7c00717ea2720df5d90f8a43ae33a
rdma-core_tarball_md5sum_49.0 := 9fe3909f19c7e0276c9e546411bbb49c
rdma-core_tarball_md5sum := $(rdma-core_tarball_md5sum_$(rdma-core_version))
rdma-core_tarball_strip_dirs := 1
rdma-core_url := http://github.com/linux-rdma/rdma-core/releases/download/v$(rdma-core_version)/$(rdma-core_tarball)

View File

@ -14,9 +14,8 @@
xdp-tools_version := 1.2.9
xdp-tools_tarball := xdp-tools-$(xdp-tools_version).tar.gz
xdp-tools_tarball_sha256sum_1.2.9 := 3f8d30bd2e00c522103d224014f59a95400144aba1f3b322c6ad473541a0f99e
xdp-tools_tarball_sha256sum := $(xdp-tools_tarball_sha256sum_$(xdp-tools_version))
xdp-tools_tarball_md5sum_1.2.9:= 6e4a49ceea8354bb7bb3b55990e9aed7
xdp-tools_tarball_md5sum := $(xdp-tools_tarball_md5sum_$(xdp-tools_version))
xdp-tools_tarball_strip_dirs := 1
xdp-tools_url := https://github.com/xdp-project/xdp-tools/releases/download/v$(xdp-tools_version)/$(xdp-tools_tarball)
@ -25,15 +24,15 @@ define xdp-tools_config_cmds
endef
define xdp-tools_build_cmds
@cd ${xdp-tools_src_dir} && $(MAKE) V=1 BUILD_STATIC_ONLY=y > $(xdp-tools_build_log)
@cd ${xdp-tools_src_dir} && make V=1 BUILD_STATIC_ONLY=y > $(xdp-tools_build_log)
endef
define xdp-tools_install_cmds
@rm -f $(xdp-tools_install_log)
@cd ${xdp-tools_src_dir} && \
$(MAKE) -C lib/libbpf/src install V=1 BUILD_STATIC_ONLY=y PREFIX='' DESTDIR='$(xdp-tools_install_dir)' >> $(xdp-tools_install_log)
make -C lib/libbpf/src install V=1 BUILD_STATIC_ONLY=y PREFIX='' DESTDIR='$(xdp-tools_install_dir)' >> $(xdp-tools_install_log)
@cd ${xdp-tools_src_dir} && \
$(MAKE) libxdp_install V=1 BUILD_STATIC_ONLY=y PREFIX='' DESTDIR='$(xdp-tools_install_dir)' >> $(xdp-tools_install_log)
make libxdp_install V=1 BUILD_STATIC_ONLY=y PREFIX='' DESTDIR='$(xdp-tools_install_dir)' >> $(xdp-tools_install_log)
endef
$(eval $(call package,xdp-tools))

View File

@ -1,30 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5142bac..7b95f74 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -33,6 +33,8 @@ ENDIF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_C_FLAGS "-std=c99 -Wall -g ${CC_WARNING_FLAGS} ${CMAKE_C_FLAGS}")
SET(CMAKE_C_FLAGS_DEBUG "-O0")
SET(CMAKE_C_FLAGS_RELEASE "-O2")
+SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
+SET(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY true)
INCLUDE_DIRECTORIES(
${OPENSSL_INCLUDE_DIR}
@@ -118,6 +120,16 @@ TARGET_LINK_LIBRARIES(examples-echo quicly ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS}
ADD_EXECUTABLE(udpfw t/udpfw.c)
+INSTALL (
+ DIRECTORY ${CMAKE_SOURCE_DIR}/include/
+ DESTINATION include
+ FILES_MATCHING PATTERN "*.h")
+
+INSTALL(TARGETS quicly
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+
ADD_CUSTOM_TARGET(check env BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} WITH_DTRACE=${WITH_DTRACE} prove --exec "sh -c" -v ${CMAKE_CURRENT_BINARY_DIR}/*.t t/*.t
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS cli test.t)

View File

@ -1,30 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d1d6c09..90d7221 100644
--- a/deps/picotls/CMakeLists.txt
+++ b/deps/picotls/CMakeLists.txt
@@ -13,6 +13,9 @@ IF (WITH_DTRACE)
ENDIF ()
SET(CMAKE_C_FLAGS "-std=c99 -Wall -O2 -g ${CC_WARNING_FLAGS} ${CMAKE_C_FLAGS}")
+SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
+SET(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY true)
+
INCLUDE_DIRECTORIES(
deps/cifra/src/ext
deps/cifra/src
@@ -161,6 +164,15 @@ TARGET_LINK_LIBRARIES(ptlsbench ${PTLSBENCH_LIBS})
ADD_CUSTOM_TARGET(check env BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} prove --exec '' -v ${CMAKE_CURRENT_BINARY_DIR}/*.t t/*.t WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${TEST_EXES} cli)
+INSTALL (DIRECTORY ${CMAKE_SOURCE_DIR}/include/
+ DESTINATION include
+ FILES_MATCHING PATTERN "*.h")
+
+INSTALL(TARGETS picotls-core picotls-openssl
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+
IF (CMAKE_SYSTEM_NAME STREQUAL "Linux")
SET(CMAKE_C_FLAGS "-D_GNU_SOURCE -pthread ${CMAKE_C_FLAGS}")
ELSEIF ("${CMAKE_SYSTEM_NAME}" MATCHES "SunOS")

View File

@ -1,158 +0,0 @@
# Copyright (c) 2024 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
PKG_SUFFIX ?= $(shell git log --oneline v$(PKG_VERSION)-rc0.. . | wc -l)
include ../build_common.mk
include ../packages_common.mk
ifneq ($(shell uname), FreeBSD)
include packages/openssl.mk
endif # ! FreeBSD
.PHONY: clean
clean:
@rm -rf $(B) $(I)
.PHONY: install
ifeq ($(shell uname), FreeBSD)
install:
else
install: openssl-install
endif # FreeBSD
.PHONY: config
ifeq ($(shell uname), FreeBSD)
config:
else
config: openssl-config
endif # FreeBSD
##############################################################################
# .deb packaging
##############################################################################
DEB_VER := $(PKG_VERSION)
DEB_ARCH=$(shell dpkg --print-architecture 2> /dev/null)
DEV_DEB=vpp-opt-deps_$(DEB_VER)-$(PKG_SUFFIX)_$(DEB_ARCH).deb
INSTALLED_VER=$(shell dpkg-query --showformat='$${Version}' --show vpp-opt-deps 2> /dev/null)
.PHONY: build-deb install-deb check-deb
deb/debian/changelog: Makefile
@echo "vpp-opt-deps ($(DEB_VER)-$(PKG_SUFFIX)) unstable; urgency=low" > $@
@echo "" >> $@
@echo " * Version $(DEB_VER)" >> $@
@echo "" >> $@
@echo " -- VPP Dev <vpp-dev@lists.fd.io> $(shell date -R --date=@${SOURCE_DATE_EPOCH})" >> $@
$(DEV_DEB): deb/debian/changelog
@cd deb && dpkg-buildpackage -b -uc -us
git clean -fdx deb
build-deb: $(DEV_DEB)
install-deb:
ifneq ($(INSTALLED_VER),$(DEB_VER)-$(PKG_SUFFIX))
@$(MAKE) $(DEV_DEB)
@sudo dpkg -i $(DEV_DEB)
else
@echo "=========================================================="
@echo " Up-to-date vpp-opt-deps package already installed"
@echo "=========================================================="
endif
check-deb:
ifneq ($(INSTALLED_VER),$(DEB_VER)-$(PKG_SUFFIX))
@echo "=========================================================="
@echo " Out of date vpp-opt-deps package installed."
@echo " Installed: $(INSTALLED_VER)"
@echo " Needed: $(DEB_VER)-$(PKG_SUFFIX)"
@echo ""
@echo " Please upgrade by invoking 'make install-opt-deps'"
@echo " from the top level directory."
@echo "=========================================================="
endif
##############################################################################
# .rpm packaging
##############################################################################
RPM_VER := $(PKG_VERSION)
RPM_ARCH=$(shell rpm --eval "%{_arch}" 2> /dev/null)
DEV_RPM=vpp-opt-deps-$(RPM_VER)-$(PKG_SUFFIX).$(RPM_ARCH).rpm
INSTALLED_RPM_VER=$(shell rpm -q --queryformat '%{VERSION}-%{RELEASE}' vpp-opt-deps 2> /dev/null | grep -v "vpp-opt-deps")
.PHONY: build-rpm install-rpm check-rpm
$(DEV_RPM): Makefile rpm/vpp-opt-deps.spec
@rpmbuild -bb \
--define "_topdir $(CURDIR)/rpm" \
--define "_version $(RPM_VER)" \
--define "_release $(PKG_SUFFIX)" \
$(CURDIR)/rpm/vpp-opt-deps.spec
mv rpm/RPMS/$(RPM_ARCH)/*.rpm .
@git clean -fdx rpm
build-rpm: $(DEV_RPM)
install-rpm:
ifneq ($(INSTALLED_RPM_VER),$(RPM_VER)-$(PKG_SUFFIX))
@$(MAKE) $(DEV_RPM)
sudo rpm -e vpp-opt-deps || true
sudo rpm -Uih --force $(DEV_RPM)
else
@echo "=========================================================="
@echo " Up-to-date vpp-opt-deps package already installed"
@echo "=========================================================="
endif
check-rpm:
ifneq ($(INSTALLED_RPM_VER),$(RPM_VER)-$(PKG_SUFFIX))
@echo "=========================================================="
@echo " Out of date vpp-opt-deps package installed."
@echo " Installed: $(INSTALLED_RPM_VER)"
@echo " Needed: $(RPM_VER)-$(PKG_SUFFIX)"
@echo ""
@echo " Please upgrade by invoking 'make install-opt-deps'"
@echo " from the top level directory."
@echo "=========================================================="
endif
##############################################################################
# ebuild support
##############################################################################
.PHONY: ebuild-build ebuild-install
ebuild-build:
ifeq ($(INSTALLED_VER)$(INSTALLED_RPM_VER),)
@echo "=========================================================="
@echo "Building vpp-opt-deps from source. Consider installing"
@echo "development package by invoking 'make install-opt-deps'"
@echo "from the top level directory"
@echo "=========================================================="
$(MAKE) config
else
ifneq ($(INSTALLED_VER),)
$(MAKE) check-deb
endif
ifneq ($(INSTALLED_RPM_VER),)
$(MAKE) check-rpm
endif
endif
ebuild-install:
ifeq ($(INSTALLED_VER)$(INSTALLED_RPM_VER),)
$(MAKE) install
endif

View File

@ -1 +0,0 @@
10

View File

@ -1,11 +0,0 @@
Source: vpp-opt-deps
Section: net
Priority: extra
Maintainer: vpp-dev@lists.fd.io
Build-Depends: debhelper (>= 9), dkms
Standards-Version: 3.9.4
Package: vpp-opt-deps
Architecture: any
Depends: ${shlibs:Depends}
Description: VPP developer package containing optional dependencies

View File

@ -1,33 +0,0 @@
#!/usr/bin/make -f
DH_VERBOSE = 1
DEB_BUILD_OPTIONS = noddebs
DEB_CFLAGS_MAINT_STRIP = -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -O2
DEB_LDFLAGS_MAINT_STRIP = -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects
DEB_CFLAGS_MAINT_APPEND = -O3
PKG=vpp-opt-deps
VERSION = $(shell dpkg-parsechangelog | sed -nr '/^Version:/s/Version: //p')
BASE_VER = $(word 1, $(subst -, ,$(VERSION)))
export BUILD_DIR=$(CURDIR)/_build
export INSTALL_DIR=$(CURDIR)/debian/tmp/opt/vpp/optional/$(shell uname -m)/
MAKE_ARGS=-C ..
include /usr/share/dpkg/default.mk
%:
dh $@
override_dh_clean:
make $(MAKE_ARGS) clean
override_dh_auto_configure:
override_dh_install:
make $(MAKE_ARGS) install
@mkdir -p $(INSTALL_DIR)
dh_install -p$(PKG) --autodest /opt
override_dh_shlibdeps:
dh_shlibdeps -l$(INSTALL_DIR)lib/:$(INSTALL_DIR)lib64

View File

@ -1,44 +0,0 @@
# Copyright (c) 2024 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
openssl_version := 3.4.0
openssl_tarball := openssl-$(openssl_version).tar.gz
openssl_tarball_sha256sum := e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf
openssl_tarball_strip_dirs := 1
openssl_url := https://github.com/openssl/openssl/releases/download/openssl-$(openssl_version)/$(openssl_tarball)
define openssl_config_args
--prefix=$(openssl_install_dir) \
--openssldir=$(openssl_build_dir) \
no-dtls1
endef
define openssl_config_cmds
@cd $(openssl_src_dir) && \
$(openssl_src_dir)/config \
$(openssl_config_args) | tee -a $(openssl_config_log)
endef
define openssl_build_cmds
@cd $(openssl_src_dir) && \
$(MAKE) depend build_sw | tee $(openssl_build_log)
endef
define openssl_install_cmds
@cd $(openssl_src_dir) && \
$(MAKE) install_sw | tee $(openssl_install_log)
endef
$(eval $(call package,openssl))

14
configure vendored
View File

@ -33,7 +33,6 @@ OPTIONS:
--wipe, -w Wipe whole repo (except startup.* files)
--sanitize, -s Enable sanitizer (mem)
--platform, -p Specify target platform
--option, -o Enable specific VPP options (fib8, fib16)
__EOF__
}
@ -105,19 +104,6 @@ while (( "$#" )); do
;;
esac
;;
-o|--option)
shift 1
case "$1" in
fib8)
shift 1
args+=("-DVPP_IP_FIB_MTRIE_16=OFF")
;;
fib16)
shift 1
args+=("-DVPP_IP_FIB_MTRIE_16=ON")
;;
esac
;;
-*|--*=) # unsupported flags
echo "Error: Unsupported flag $1" >&2
exit 1

View File

@ -70,7 +70,7 @@ venv:
spell: venv
@( \
. ${VENV_DIR}/bin/activate; \
$(MAKE) -C ${SCRIPTS_DIR} generate && \
make -C ${SCRIPTS_DIR} generate && \
$(SPHINXBUILD) -b spelling $(SPHINXOPTS) $(BUILDDIR_SRC) $(BUILDDIR_OUT); \
)
@ -81,7 +81,7 @@ rebuild-spell: clean spell
docs: venv
@( \
. ${VENV_DIR}/bin/activate; \
$(MAKE) -C ${SCRIPTS_DIR} generate && \
make -C ${SCRIPTS_DIR} generate && \
$(SPHINXBUILD) $(SPHINXOPTS) -b html $(BUILDDIR_SRC) $(BUILDDIR_OUT); \
)
@ -90,7 +90,7 @@ rebuild: clean docs
.PHONY: clean
clean:
@$(MAKE) -C ${SCRIPTS_DIR} clean
@make -C ${SCRIPTS_DIR} clean
.PHONY: build
build: docs

View File

@ -6,8 +6,10 @@ Release notes
.. toctree::
:maxdepth: 2
v24.10
v24.06
v24.02
v23.10
v23.06
v23.02
v22.10.1
v22.10
past

Some files were not shown because too many files have changed in this diff Show More