Compare commits
1 Commits
v24.06-rc2
...
v23.10-rc1
Author | SHA1 | Date | |
---|---|---|---|
|
14df6fc1ea |
@ -20,25 +20,15 @@ ForEachMacros:
|
||||
- 'vec_foreach_index_backwards'
|
||||
- 'vec_foreach_pointer'
|
||||
- 'vlib_foreach_rx_tx'
|
||||
- 'foreach_int'
|
||||
- 'foreach_pointer'
|
||||
- 'foreach_vlib_main'
|
||||
- 'foreach_set_bit_index'
|
||||
- 'foreach_vlib_frame_bitmap_set_bit_index'
|
||||
- 'FOREACH_ARRAY_ELT'
|
||||
- 'RTE_ETH_FOREACH_DEV'
|
||||
- 'foreach_vnet_dev_rx_queue_runtime'
|
||||
- 'foreach_vnet_dev_counter'
|
||||
- 'foreach_vnet_dev_port_rx_queue'
|
||||
- 'foreach_vnet_dev_port_tx_queue'
|
||||
- 'foreach_vnet_dev_port'
|
||||
- 'foreach_vnet_dev_args'
|
||||
- 'foreach_vnet_dev_port_args'
|
||||
|
||||
StatementMacros:
|
||||
- 'CLIB_MULTIARCH_FN'
|
||||
- 'VLIB_NODE_FN'
|
||||
- 'VNET_DEV_NODE_FN'
|
||||
- 'VNET_DEVICE_CLASS_TX_FN'
|
||||
- '__clib_section'
|
||||
- '__clib_aligned'
|
||||
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -122,8 +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/summary/
|
||||
/extras/hs-test/.build.vpp
|
||||
|
||||
# ./configure
|
||||
/CMakeFiles
|
||||
@ -131,7 +130,6 @@ compile_commands.json
|
||||
/lib
|
||||
/.ninja_deps
|
||||
/.ninja_log
|
||||
/.cmake
|
||||
/CMakeCache.txt
|
||||
/build.ninja
|
||||
/cmake_install.cmake
|
||||
|
@ -2,4 +2,4 @@
|
||||
host=gerrit.fd.io
|
||||
port=29418
|
||||
project=vpp
|
||||
defaultbranch=stable/2406
|
||||
defaultbranch=stable/2310
|
||||
|
42
MAINTAINERS
42
MAINTAINERS
@ -98,11 +98,6 @@ I: policer
|
||||
M: Neale Ranns <neale@graphiant.com>
|
||||
F: src/vnet/policer/
|
||||
|
||||
VNET New Device Drivers Infra
|
||||
I: dev
|
||||
M: Damjan Marion <damarion@cisco.com>
|
||||
F: src/vnet/dev/
|
||||
|
||||
VNET Device Drivers
|
||||
I: devices
|
||||
Y: src/vnet/devices/pipe/FEATURE.yaml
|
||||
@ -192,14 +187,14 @@ 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
|
||||
I: ipsec
|
||||
M: Neale Ranns <neale@graphiant.com>
|
||||
M: Radu Nicolau <radu.nicolau@intel.com>
|
||||
M: Fan Zhang <fanzhang.oss@gmail.com>
|
||||
M: Fan Zhang <roy.fan.zhang@intel.com>
|
||||
F: src/vnet/ipsec/
|
||||
|
||||
VNET Crypto Infra
|
||||
@ -231,12 +226,12 @@ F: src/plugins/crypto_openssl/
|
||||
Plugin - Crypto - ipsecmb
|
||||
I: crypto-ipsecmb
|
||||
M: Neale Ranns <neale@graphiant.com>
|
||||
M: Fan Zhang <fanzhang.oss@gmail.com>
|
||||
M: Fan Zhang <roy.fan.zhang@intel.com>
|
||||
F: src/plugins/crypto_ipsecmb/
|
||||
|
||||
Plugin - Crypto - sw_scheduler
|
||||
I: crypto-sw-scheduler
|
||||
M: Fan Zhang <fanzhang.oss@gmail.com>
|
||||
M: Fan Zhang <roy.fan.zhang@intel.com>
|
||||
F: src/plugs/crypto_sw_scheduler/
|
||||
|
||||
VNET L2
|
||||
@ -410,22 +405,6 @@ I: avf
|
||||
M: Damjan Marion <damarion@cisco.com>
|
||||
F: src/plugins/avf/
|
||||
|
||||
Plugin - IAVF Device driver
|
||||
I: iavf
|
||||
M: Damjan Marion <damarion@cisco.com>
|
||||
F: src/plugins/dev_iavf/
|
||||
|
||||
Plugin - Amazon Elastic Network Adapter (ENA) device driver
|
||||
I: ena
|
||||
M: Damjan Marion <damarion@cisco.com>
|
||||
F: src/plugins/dev_ena/
|
||||
|
||||
Plugin - Marvell Octeon device driver
|
||||
I: octeon
|
||||
M: Monendra Singh Kushwaha <kmonendra@marvell.com>
|
||||
M: Damjan Marion <damarion@cisco.com>
|
||||
F: src/plugins/dev_octeon/
|
||||
|
||||
Plugin - Dispatch Trace PCAP
|
||||
I: dispatch-trace
|
||||
M: Dave Barach <vpp@barachs.net>
|
||||
@ -440,7 +419,7 @@ F: src/plugins/dpdk/
|
||||
Plugin - DPDK Crypto
|
||||
I: dpdk-cryptodev
|
||||
M: Radu Nicolau <radu.nicolau@intel.com>
|
||||
M: Fan Zhang <fanzhang.oss@gmail.com>
|
||||
M: Fan Zhang <roy.fan.zhang@intel.com>
|
||||
F: src/plugins/dpdk/cryptodev/
|
||||
|
||||
Plugin - flowprobe
|
||||
@ -686,7 +665,7 @@ F: src/plugins/snort/
|
||||
|
||||
libmemif
|
||||
I: libmemif
|
||||
M: Mohsin Kazmi <sykazmi@cisco.com>
|
||||
M: Damjan Marion <damarion@cisco.com>
|
||||
F: extras/libmemif
|
||||
|
||||
gomemif
|
||||
@ -772,7 +751,7 @@ F: src/plugins/cnat
|
||||
Plugin - Wireguard
|
||||
I: wireguard
|
||||
M: Artem Glazychev <artem.glazychev@xored.com>
|
||||
M: Fan Zhang <fanzhang.oss@gmail.com>
|
||||
M: Fan Zhang <roy.fan.zhang@intel.com>
|
||||
F: src/plugins/wireguard
|
||||
|
||||
Packetforge
|
||||
@ -875,7 +854,7 @@ F: src/extras/rpm/opensuse
|
||||
|
||||
VPP StrongSwan Daemon
|
||||
I: vpp-swan
|
||||
M: Fan Zhang <fanzhang.oss@gmail.com>
|
||||
M: Fan Zhang <roy.fan.zhang@intel.com>
|
||||
M: Gabriel Oginski <gabrielx.oginski@intel.com>
|
||||
F: extras/strongswan/vpp_sswan
|
||||
|
||||
@ -892,8 +871,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/
|
||||
|
86
Makefile
86
Makefile
@ -14,7 +14,7 @@
|
||||
export WS_ROOT=$(CURDIR)
|
||||
export BR=$(WS_ROOT)/build-root
|
||||
CCACHE_DIR?=$(BR)/.ccache
|
||||
SHELL:=$(shell which bash)
|
||||
SHELL:=/bin/bash
|
||||
GDB?=gdb
|
||||
PLATFORM?=vpp
|
||||
SAMPLE_PLUGIN?=no
|
||||
@ -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,7 +57,7 @@ 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
|
||||
endif
|
||||
|
||||
@ -85,8 +81,6 @@ DEB_DEPENDS += iperf3 # for 'make test TEST=vcl'
|
||||
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
|
||||
|
||||
@ -111,12 +105,6 @@ else ifeq ($(OS_ID)-$(OS_VERSION_ID),debian-11)
|
||||
DEB_DEPENDS += virtualenv
|
||||
DEB_DEPENDS += clang clang-format-11
|
||||
LIBFFI=libffi7
|
||||
else ifeq ($(OS_ID)-$(OS_VERSION_ID),debian-12)
|
||||
DEB_DEPENDS += virtualenv
|
||||
DEB_DEPENDS += clang-14 clang-format-14
|
||||
# for extras/scripts/checkstyle.sh
|
||||
export CLANG_FORMAT_VER=14
|
||||
LIBFFI=libffi8
|
||||
else
|
||||
DEB_DEPENDS += clang-11 clang-format-11
|
||||
LIBFFI=libffi7
|
||||
@ -155,15 +143,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
|
||||
@ -218,7 +197,6 @@ ifneq ($(wildcard $(STARTUP_DIR)/startup.conf),)
|
||||
endif
|
||||
|
||||
ifeq ($(findstring y,$(UNATTENDED)),y)
|
||||
DEBIAN_FRONTEND=noninteractive
|
||||
CONFIRM=-y
|
||||
FORCE=--allow-downgrades --allow-remove-essential --allow-change-held-packages
|
||||
endif
|
||||
@ -312,7 +290,7 @@ help:
|
||||
|
||||
$(BR)/.deps.ok:
|
||||
ifeq ($(findstring y,$(UNATTENDED)),y)
|
||||
$(MAKE) install-dep
|
||||
make install-dep
|
||||
endif
|
||||
ifeq ($(filter ubuntu debian linuxmint,$(OS_ID)),$(OS_ID))
|
||||
@MISSING=$$(apt-get install -y -qq -s $(DEB_DEPENDS) | grep "^Inst ") ; \
|
||||
@ -385,7 +363,7 @@ endif
|
||||
install-deps: install-dep
|
||||
|
||||
define make
|
||||
@$(MAKE) -C $(BR) PLATFORM=$(PLATFORM) TAG=$(1) $(2)
|
||||
@make -C $(BR) PLATFORM=$(PLATFORM) TAG=$(1) $(2)
|
||||
endef
|
||||
|
||||
$(BR)/scripts/.version:
|
||||
@ -450,9 +428,9 @@ rebuild-release: wipe-release build-release
|
||||
export TEST_DIR ?= $(WS_ROOT)/test
|
||||
|
||||
define test
|
||||
$(if $(filter-out $(2),retest),$(MAKE) -C $(BR) PLATFORM=vpp TAG=$(1) CC=$(CC) vpp-install,)
|
||||
$(if $(filter-out $(2),retest),make -C $(BR) PLATFORM=vpp TAG=$(1) CC=$(CC) vpp-install,)
|
||||
$(eval libs:=lib lib64)
|
||||
$(MAKE) -C test \
|
||||
make -C test \
|
||||
VPP_BUILD_DIR=$(BR)/build-$(1)-native/vpp \
|
||||
VPP_BIN=$(BR)/install-$(1)-native/vpp/bin/vpp \
|
||||
VPP_INSTALL_PATH=$(BR)/install-$(1)-native/ \
|
||||
@ -468,16 +446,10 @@ endef
|
||||
|
||||
.PHONY: test
|
||||
test:
|
||||
ifeq ($(CC),cc)
|
||||
$(eval CC=clang)
|
||||
endif
|
||||
$(call test,vpp,test)
|
||||
|
||||
.PHONY: test-debug
|
||||
test-debug:
|
||||
ifeq ($(CC),cc)
|
||||
$(eval CC=clang)
|
||||
endif
|
||||
$(call test,vpp_debug,test)
|
||||
|
||||
.PHONY: test-cov
|
||||
@ -525,15 +497,15 @@ papi-wipe: test-wipe-papi
|
||||
|
||||
.PHONY: test-wipe-papi
|
||||
test-wipe-papi:
|
||||
@$(MAKE) -C test wipe-papi
|
||||
@make -C test wipe-papi
|
||||
|
||||
.PHONY: test-help
|
||||
test-help:
|
||||
@$(MAKE) -C test help
|
||||
@make -C test help
|
||||
|
||||
.PHONY: test-wipe
|
||||
test-wipe:
|
||||
@$(MAKE) -C test wipe
|
||||
@make -C test wipe
|
||||
|
||||
.PHONY: test-shell
|
||||
test-shell:
|
||||
@ -566,27 +538,27 @@ test-wipe-doc:
|
||||
.PHONY: test-wipe-cov
|
||||
test-wipe-cov:
|
||||
$(call make,$(PLATFORM)_gcov,$(addsuffix -wipe,$(TARGETS)))
|
||||
@$(MAKE) -C test wipe-cov
|
||||
@make -C test wipe-cov
|
||||
|
||||
.PHONY: test-wipe-all
|
||||
test-wipe-all:
|
||||
@$(MAKE) -C test wipe-all
|
||||
@make -C test wipe-all
|
||||
|
||||
# Note: All python venv consolidated in test/Makefile, test/requirements*.txt
|
||||
.PHONY: test-checkstyle
|
||||
test-checkstyle:
|
||||
$(warning test-checkstyle is deprecated. Running checkstyle-python.")
|
||||
@$(MAKE) -C test checkstyle-python-all
|
||||
@make -C test checkstyle-python-all
|
||||
|
||||
# Note: All python venv consolidated in test/Makefile, test/requirements*.txt
|
||||
.PHONY: test-checkstyle-diff
|
||||
test-checkstyle-diff:
|
||||
$(warning test-checkstyle-diff is deprecated. Running checkstyle-python.")
|
||||
@$(MAKE) -C test checkstyle-python-all
|
||||
@make -C test checkstyle-python-all
|
||||
|
||||
.PHONY: test-refresh-deps
|
||||
test-refresh-deps:
|
||||
@$(MAKE) -C test refresh-deps
|
||||
@make -C test refresh-deps
|
||||
|
||||
.PHONY: retest
|
||||
retest:
|
||||
@ -648,7 +620,7 @@ debug:
|
||||
.PHONY: build-coverity
|
||||
build-coverity:
|
||||
$(call make,$(PLATFORM)_coverity,install-packages)
|
||||
@$(MAKE) -C build-root PLATFORM=vpp TAG=vpp_coverity libmemif-install
|
||||
@make -C build-root PLATFORM=vpp TAG=vpp_coverity libmemif-install
|
||||
|
||||
.PHONY: debug-release
|
||||
debug-release:
|
||||
@ -686,15 +658,15 @@ pkg-deb-debug:
|
||||
|
||||
.PHONY: pkg-rpm
|
||||
pkg-rpm: dist
|
||||
$(MAKE) -C extras/rpm
|
||||
make -C extras/rpm
|
||||
|
||||
.PHONY: pkg-srpm
|
||||
pkg-srpm: dist
|
||||
$(MAKE) -C extras/rpm srpm
|
||||
make -C extras/rpm srpm
|
||||
|
||||
.PHONY: install-ext-deps
|
||||
install-ext-deps:
|
||||
$(MAKE) -C build/external install-$(PKG)
|
||||
make -C build/external install-$(PKG)
|
||||
|
||||
.PHONY: install-ext-dep
|
||||
install-ext-dep: install-ext-deps
|
||||
@ -741,12 +713,12 @@ checkstyle-commit:
|
||||
.PHONY: checkstyle-test
|
||||
checkstyle-test:
|
||||
$(warning test-checkstyle is deprecated. Running checkstyle-python.")
|
||||
@$(MAKE) -C test checkstyle-python-all
|
||||
@make -C test checkstyle-python-all
|
||||
|
||||
# Note: All python venv consolidated in test/Makefile, test/requirements*.txt
|
||||
.PHONY: checkstyle-python
|
||||
checkstyle-python:
|
||||
@$(MAKE) -C test checkstyle-python-all
|
||||
@make -C test checkstyle-python-all
|
||||
|
||||
.PHONY: checkstyle-all
|
||||
checkstyle-all: checkstyle-commit checkstyle checkstyle-python docs-spell
|
||||
@ -758,7 +730,7 @@ fixstyle:
|
||||
# Note: All python venv consolidated in test/Makefile, test/requirements*.txt
|
||||
.PHONY: fixstyle-python
|
||||
fixstyle-python:
|
||||
@$(MAKE) -C test fixstyle-python-all
|
||||
@make -C test fixstyle-python-all
|
||||
|
||||
.PHONY: checkstyle-api
|
||||
checkstyle-api:
|
||||
@ -802,22 +774,22 @@ wipe-doxygen:
|
||||
|
||||
.PHONY: docs-%
|
||||
docs-%:
|
||||
@$(MAKE) -C $(WS_ROOT)/docs $*
|
||||
@make -C $(WS_ROOT)/docs $*
|
||||
|
||||
.PHONY: docs
|
||||
docs:
|
||||
@$(MAKE) -C $(WS_ROOT)/docs docs
|
||||
@make -C $(WS_ROOT)/docs docs
|
||||
|
||||
.PHONY: pkg-verify
|
||||
pkg-verify: install-dep $(BR)/.deps.ok install-ext-deps
|
||||
$(call banner,"Building for PLATFORM=vpp")
|
||||
@$(MAKE) -C build-root PLATFORM=vpp TAG=vpp wipe-all install-packages
|
||||
@make -C build-root PLATFORM=vpp TAG=vpp wipe-all install-packages
|
||||
$(call banner,"Building sample-plugin")
|
||||
@$(MAKE) -C build-root PLATFORM=vpp TAG=vpp sample-plugin-install
|
||||
@make -C build-root PLATFORM=vpp TAG=vpp sample-plugin-install
|
||||
$(call banner,"Building libmemif")
|
||||
@$(MAKE) -C build-root PLATFORM=vpp TAG=vpp libmemif-install
|
||||
@make -C build-root PLATFORM=vpp TAG=vpp libmemif-install
|
||||
$(call banner,"Building $(PKG) packages")
|
||||
@$(MAKE) pkg-$(PKG)
|
||||
@make pkg-$(PKG)
|
||||
|
||||
# Note: 'make verify' target is not used by ci-management scripts
|
||||
MAKE_VERIFY_GATE_OS ?= ubuntu-22.04
|
||||
@ -827,11 +799,11 @@ ifeq ($(OS_ID)-$(OS_VERSION_ID),$(MAKE_VERIFY_GATE_OS))
|
||||
$(call banner,"Testing vppapigen")
|
||||
@src/tools/vppapigen/test_vppapigen.py
|
||||
$(call banner,"Running tests")
|
||||
@$(MAKE) COMPRESS_FAILED_TEST_LOGS=yes RETRIES=3 test
|
||||
@make COMPRESS_FAILED_TEST_LOGS=yes RETRIES=3 test
|
||||
else
|
||||
$(call banner,"Skipping tests. Tests under 'make verify' supported on $(MAKE_VERIFY_GATE_OS)")
|
||||
endif
|
||||
|
||||
.PHONY: check-dpdk-mlx
|
||||
check-dpdk-mlx:
|
||||
@[ $$($(MAKE) -sC build/external dpdk-show-DPDK_MLX_DEFAULT) = y ]
|
||||
@[ $$(make -sC build/external dpdk-show-DPDK_MLX_DEFAULT) = y ]
|
||||
|
@ -42,4 +42,4 @@ external_configure = echo
|
||||
|
||||
external_build = echo
|
||||
|
||||
external_install = $(MAKE) $(DPDK_MAKE_ARGS) -C external ebuild-build ebuild-install
|
||||
external_install = make $(DPDK_MAKE_ARGS) -C external ebuild-build ebuild-install
|
||||
|
@ -30,15 +30,6 @@ vpp_cmake_args += -DCMAKE_PREFIX_PATH:PATH="$(vpp_cmake_prefix_path)"
|
||||
ifeq ("$(V)","1")
|
||||
vpp_cmake_args += -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
|
||||
endif
|
||||
ifneq ($(VPP_PLATFORM),)
|
||||
vpp_cmake_args += -DVPP_PLATFORM="$(VPP_PLATFORM)"
|
||||
endif
|
||||
ifneq ($(VPP_EXCLUDED_PLUGINS),)
|
||||
vpp_cmake_args += -DVPP_EXCLUDED_PLUGINS="$(VPP_EXCLUDED_PLUGINS)"
|
||||
endif
|
||||
ifneq (${SOURCE_DATE_EPOCH}),)
|
||||
vpp_cmake_args += -DVPP_SOURCE_DATE_EPOCH="$(SOURCE_DATE_EPOCH)"
|
||||
endif
|
||||
|
||||
ifneq ($(VPP_EXTRA_CMAKE_ARGS),)
|
||||
vpp_cmake_args += $(VPP_EXTRA_CMAKE_ARGS)
|
||||
|
@ -39,7 +39,7 @@
|
||||
######################################################################
|
||||
|
||||
# Scripts require non-POSIX parts of bash
|
||||
SHELL := $(shell which bash)
|
||||
SHELL := /bin/bash
|
||||
|
||||
# Where this makefile lives
|
||||
MU_BUILD_ROOT_DIR = $(shell pwd)
|
||||
@ -365,7 +365,7 @@ NATIVE_TOOLS_$(IS_LINUX) += $(NATIVE_TOOLS_LINUX)
|
||||
CROSS_TOOLS_$(IS_LINUX) += glibc gcc
|
||||
|
||||
# must be first for bootstrapping
|
||||
NATIVE_TOOLS = findutils $(MAKE)
|
||||
NATIVE_TOOLS = findutils make
|
||||
|
||||
# basic tools needed for build system
|
||||
NATIVE_TOOLS += git automake autoconf libtool texinfo tar
|
||||
@ -614,7 +614,7 @@ check_platform = \
|
||||
-a ! -x "`which 2> /dev/null $${target_gcc}`" ] ; then \
|
||||
$(call build_msg_fn, \
|
||||
No cross-compiler found for platform $(PLATFORM) target $(TARGET); \
|
||||
try $(MAKE) PLATFORM=$(PLATFORM) install-tools) ; \
|
||||
try make PLATFORM=$(PLATFORM) install-tools) ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -807,7 +800,7 @@ pull-all:
|
||||
$(call build_msg_fn,Git pull build tools) ; \
|
||||
$(call tool_make_target_fn,pull-all) ; \
|
||||
$(call build_msg_fn,Git pull packages for platform $(PLATFORM)) ; \
|
||||
$(MAKE) PLATFORM=$(PLATFORM) $(patsubst %,%-pull-all,$(ROOT_PACKAGES))
|
||||
make PLATFORM=$(PLATFORM) $(patsubst %,%-pull-all,$(ROOT_PACKAGES))
|
||||
|
||||
.PHONY: %-diff
|
||||
%-diff:
|
||||
@ -969,13 +962,13 @@ $(PLATFORM_IMAGE_DIR)/ro.img ro-image: $(patsubst %,%-find-source,$(ROOT_PACKAGE
|
||||
chmod 0755 $${tmp_dir} ; \
|
||||
cd $${tmp_dir} ; \
|
||||
trap "rm -rf $${tmp_dir}" err ; \
|
||||
fakeroot $(SHELL) -c "{ \
|
||||
fakeroot /bin/bash -c "{ \
|
||||
set -eu$(BUILD_DEBUG) ; \
|
||||
$(MAKE) -C $(MU_BUILD_ROOT_DIR) IMAGE_INSTALL_DIR=$${tmp_dir} \
|
||||
$(patsubst %,%-image_install, \
|
||||
basic_system \
|
||||
$(ROOT_PACKAGES)) ; \
|
||||
: $(MAKE) dev directory ; \
|
||||
: make dev directory ; \
|
||||
$(linuxrc_makedev) ; \
|
||||
echo @@@@ Relocating ELF executables to run in / @@@@ ; \
|
||||
scripts/set-rpath /$(arch_lib_dir):/lib ; \
|
||||
@ -1061,7 +1054,7 @@ rw-image: rw-image-check-type ro-image
|
||||
chmod 0755 $${tmp_dir} ; \
|
||||
cd $${tmp_dir} ; \
|
||||
trap "rm -rf $${tmp_dir}" err ; \
|
||||
fakeroot $(SHELL) -c "{ \
|
||||
fakeroot /bin/bash -c "{ \
|
||||
set -eu$(BUILD_DEBUG) ; \
|
||||
$(linuxrc_makedev) ; \
|
||||
$(call rw_image_embed_ro_image_fn,$${ro_image}) ; \
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (c) 2015 Cisco and/or its affiliates.
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
|
30
build/external/Makefile
vendored
30
build/external/Makefile
vendored
@ -12,21 +12,17 @@
|
||||
# limitations under the License.
|
||||
|
||||
# Scripts require non-POSIX parts of bash
|
||||
SHELL := $(shell which bash)
|
||||
SHELL := /bin/bash
|
||||
|
||||
DL_CACHE_DIR = $(HOME)/Downloads
|
||||
MAKE ?= make
|
||||
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 .)
|
||||
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)
|
||||
@ -38,35 +34,23 @@ 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
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
@rm -rf $(B) $(I)
|
||||
|
||||
.PHONY: install
|
||||
ifeq ($(shell uname), FreeBSD)
|
||||
install: $(if $(ARCH_X86_64), ipsec-mb-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
|
||||
install: $(if $(ARCH_X86_64), ipsec-mb-install) dpdk-install rdma-core-install quicly-install xdp-tools-install
|
||||
|
||||
.PHONY: config
|
||||
ifeq ($(shell uname), FreeBSD)
|
||||
config: $(if $(ARCH_X86_64), ipsec-mb-config) quicly-build
|
||||
else
|
||||
config: $(if $(ARCH_X86_64), ipsec-mb-config) dpdk-config rdma-core-config quicly-build
|
||||
endif # FreeBSD
|
||||
|
||||
##############################################################################
|
||||
# .deb packaging
|
||||
@ -84,7 +68,7 @@ deb/debian/changelog: Makefile
|
||||
@echo "" >> $@
|
||||
@echo " * Version $(DEB_VER)" >> $@
|
||||
@echo "" >> $@
|
||||
@echo " -- VPP Dev <vpp-dev@lists.fd.io> $(shell date -R --date=@${SOURCE_DATE_EPOCH})" >> $@
|
||||
@echo " -- VPP Dev <vpp-dev@lists.fd.io> $(shell date -R)" >> $@
|
||||
|
||||
$(DEV_DEB): deb/debian/changelog
|
||||
@cd deb && dpkg-buildpackage -b -uc -us
|
||||
@ -172,17 +156,17 @@ ifeq ($(INSTALLED_VER)$(INSTALLED_RPM_VER),)
|
||||
@echo "development package by invoking 'make install-ext-deps'"
|
||||
@echo "from the top level directory"
|
||||
@echo "=========================================================="
|
||||
$(MAKE) config
|
||||
make config
|
||||
else
|
||||
ifneq ($(INSTALLED_VER),)
|
||||
make check-deb
|
||||
endif
|
||||
ifneq ($(INSTALLED_RPM_VER),)
|
||||
$(MAKE) check-rpm
|
||||
make check-rpm
|
||||
endif
|
||||
endif
|
||||
|
||||
ebuild-install:
|
||||
ifeq ($(INSTALLED_VER)$(INSTALLED_RPM_VER),)
|
||||
$(MAKE) install
|
||||
make install
|
||||
endif
|
||||
|
4
build/external/mlx_rdma_dpdk_matrix.txt
vendored
4
build/external/mlx_rdma_dpdk_matrix.txt
vendored
@ -1,2 +1,2 @@
|
||||
rdma=49.0 dpdk=23.11
|
||||
rdma=51.0 dpdk=24.03
|
||||
rdma=45.0 dpdk=23.03
|
||||
rdma=46.1 dpdk=23.07
|
||||
|
21
build/external/packages/dpdk.mk
vendored
21
build/external/packages/dpdk.mk
vendored
@ -19,11 +19,9 @@ DPDK_FAILSAFE_PMD ?= n
|
||||
DPDK_MACHINE ?= default
|
||||
DPDK_MLX_IBV_LINK ?= static
|
||||
|
||||
dpdk_version ?= 24.03
|
||||
dpdk_version ?= 23.07
|
||||
dpdk_base_url ?= http://fast.dpdk.org/rel
|
||||
dpdk_tarball := dpdk-$(dpdk_version).tar.xz
|
||||
dpdk_tarball_md5sum_24.03 := a98da848d6ba09808ef00f9a26aaa49a
|
||||
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
|
||||
@ -33,11 +31,8 @@ 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
|
||||
|
||||
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)
|
||||
@ -137,19 +132,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))' \
|
||||
@ -165,7 +155,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
|
||||
@ -181,7 +171,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/
|
||||
|
24
build/external/packages/ipsec-mb.mk
vendored
24
build/external/packages/ipsec-mb.mk
vendored
@ -11,21 +11,18 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
ipsec-mb_version := 1.5
|
||||
ipsec-mb_patch_version := 0
|
||||
ipsec-mb_version_str := $(ipsec-mb_version).$(ipsec-mb_patch_version)
|
||||
ipsec-mb_version := 1.3
|
||||
ipsec-mb_tarball := v$(ipsec-mb_version).tar.gz
|
||||
ipsec-mb_tarball_md5sum_0.54 := 258941f7ba90c275fcf9d19c622d2d21
|
||||
ipsec-mb_tarball_md5sum_0.55 := deca674bca7ae2282890e1fa7f953609
|
||||
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_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)
|
||||
|
||||
define ipsec-mb_config_cmds
|
||||
@true
|
||||
@ -41,22 +38,7 @@ define ipsec-mb_build_cmds
|
||||
EXTRA_CFLAGS="-g -msse4.2" > $(ipsec-mb_build_log)
|
||||
endef
|
||||
|
||||
ifneq ($(ipsec-mb_system_header), )
|
||||
ipsec-mb_system_ver_str := $(shell awk '/^#define\s+IMB_VERSION_STR/ { print $$3 }' \
|
||||
$(ipsec-mb_system_header))
|
||||
endif
|
||||
|
||||
define ipsec-mb_install_cmds
|
||||
if [[ -n "$(ipsec-mb_system_header)" ]]; then \
|
||||
if [[ "$(ipsec-mb_system_ver_str)" != "$(ipsec-mb_version_str)" ]]; then \
|
||||
echo "Intel-ipsec-mb build Error: System installed Intel IPsec-mb lib \
|
||||
version mismatch with target version, \
|
||||
expecting $(ipsec-mb_version_str), \
|
||||
but system has $(ipsec-mb_system_ver_str) \
|
||||
please align/remove system installed $(ipsec-mb_system_header) before building."; \
|
||||
exit 1; \
|
||||
fi \
|
||||
fi
|
||||
@mkdir -p $(ipsec-mb_install_dir)/include
|
||||
@mkdir -p $(ipsec-mb_install_dir)/lib
|
||||
@cp $(ipsec-mb_src_dir)/lib/intel-ipsec-mb.h $(ipsec-mb_install_dir)/include
|
||||
|
26
build/external/packages/octeon-roc.mk
vendored
26
build/external/packages/octeon-roc.mk
vendored
@ -1,26 +0,0 @@
|
||||
# Copyright (c) 2023 Marvell.
|
||||
# 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_md5sum := 76bc56c84935da944bbf340fe5283ef0
|
||||
|
||||
octeon-roc_tarball_strip_dirs := 1
|
||||
octeon-roc_url := https://github.com/MarvellEmbeddedProcessors/marvell-octeon-roc/archive/refs/tags/$(octeon-roc_tarball)
|
||||
|
||||
define octeon-roc_config_cmds
|
||||
@true
|
||||
endef
|
||||
|
||||
define octeon-roc_build_cmds
|
||||
@cd ${octeon-roc_src_dir} && rm -f $(octeon-roc_build_log) && $(CMAKE) ${octeon-roc_src_dir} -DCMAKE_INSTALL_PREFIX='$(octeon-roc_install_dir)' >> $(octeon-roc_build_log)
|
||||
@$(MAKE) -C ${octeon-roc_src_dir} >> $(octeon-roc_build_log)
|
||||
endef
|
||||
|
||||
define octeon-roc_install_cmds
|
||||
@$(MAKE) -C ${octeon-roc_src_dir} install >> $(octeon-roc_install_log)
|
||||
endef
|
||||
|
||||
$(eval $(call package,octeon-roc))
|
||||
|
7
build/external/packages/rdma-core.mk
vendored
7
build/external/packages/rdma-core.mk
vendored
@ -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 := 51.0
|
||||
rdma-core_version := 46.1
|
||||
rdma-core_tarball := rdma-core-$(rdma-core_version).tar.gz
|
||||
rdma-core_tarball_md5sum_49.0 := 9fe3909f19c7e0276c9e546411bbb49c
|
||||
rdma-core_tarball_md5sum_51.0 := ed95d79f782ea00bd7233d453abd60b3
|
||||
rdma-core_tarball_md5sum_43.0 := 3785fd2b35cd41043ab53226fc112d41
|
||||
rdma-core_tarball_md5sum_45.0 := 2b170e6d2ad66fb688580520a16d1ad5
|
||||
rdma-core_tarball_md5sum_46.1 := 3ac7c00717ea2720df5d90f8a43ae33a
|
||||
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)
|
||||
|
@ -1,63 +0,0 @@
|
||||
From 6429e38ae77c7998c84d5a0ed26b4fb0d81424c1 Mon Sep 17 00:00:00 2001
|
||||
From: Ting Xu <ting.xu@intel.com>
|
||||
Date: Thu, 15 Jun 2023 01:33:37 +0000
|
||||
Subject: [PATCH v1] net: fix pkt length type for raw pattern
|
||||
|
||||
In current pattern parsing function for raw pattern, the packet length
|
||||
variable is defined as uint8_t, which is too small for a large packet,
|
||||
such as srv6. Change the type to uint16_t.
|
||||
|
||||
Fixes: 1b9c68120a1c ("net/ice: enable protocol agnostic flow offloading
|
||||
in RSS")
|
||||
|
||||
Signed-off-by: Ting Xu <ting.xu@intel.com>
|
||||
---
|
||||
drivers/net/iavf/iavf_hash.c | 2 +-
|
||||
drivers/net/ice/ice_fdir_filter.c | 2 +-
|
||||
drivers/net/ice/ice_hash.c | 2 +-
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c
|
||||
index ae6fb38594..cf4d677101 100644
|
||||
--- a/drivers/net/iavf/iavf_hash.c
|
||||
+++ b/drivers/net/iavf/iavf_hash.c
|
||||
@@ -886,8 +886,8 @@ iavf_hash_parse_raw_pattern(const struct rte_flow_item *item,
|
||||
struct iavf_rss_meta *meta)
|
||||
{
|
||||
const struct rte_flow_item_raw *raw_spec, *raw_mask;
|
||||
+ uint16_t spec_len, pkt_len;
|
||||
uint8_t *pkt_buf, *msk_buf;
|
||||
- uint8_t spec_len, pkt_len;
|
||||
uint8_t tmp_val = 0;
|
||||
uint8_t tmp_c = 0;
|
||||
int i, j;
|
||||
diff --git a/drivers/net/ice/ice_fdir_filter.c b/drivers/net/ice/ice_fdir_filter.c
|
||||
index 480b369af8..e8842bc242 100644
|
||||
--- a/drivers/net/ice/ice_fdir_filter.c
|
||||
+++ b/drivers/net/ice/ice_fdir_filter.c
|
||||
@@ -1876,7 +1876,7 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad,
|
||||
(uint8_t *)(uintptr_t)raw_mask->pattern;
|
||||
uint8_t *tmp_spec, *tmp_mask;
|
||||
uint16_t tmp_val = 0;
|
||||
- uint8_t pkt_len = 0;
|
||||
+ uint16_t pkt_len = 0;
|
||||
uint8_t tmp = 0;
|
||||
int i, j;
|
||||
|
||||
diff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c
|
||||
index f35727856e..52646e9408 100644
|
||||
--- a/drivers/net/ice/ice_hash.c
|
||||
+++ b/drivers/net/ice/ice_hash.c
|
||||
@@ -653,8 +653,8 @@ ice_hash_parse_raw_pattern(struct ice_adapter *ad,
|
||||
const struct rte_flow_item_raw *raw_spec, *raw_mask;
|
||||
struct ice_parser_profile prof;
|
||||
struct ice_parser_result rslt;
|
||||
+ uint16_t spec_len, pkt_len;
|
||||
uint8_t *pkt_buf, *msk_buf;
|
||||
- uint8_t spec_len, pkt_len;
|
||||
uint8_t tmp_val = 0;
|
||||
uint8_t tmp_c = 0;
|
||||
int i, j;
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,54 +0,0 @@
|
||||
From b184d103bd767e2286cdb2b0639a2470dce205d5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= <toke@redhat.com>
|
||||
Date: Thu, 18 Jan 2024 13:22:47 +0100
|
||||
Subject: [PATCH] Fix transposed calloc() arguments
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Calls to calloc() are supposed to have the number of elements as the first
|
||||
argument, but we erroneously transposed the arguments in a couple of places. It
|
||||
seems GCC 14 has started to warn about this, which exposed this as build
|
||||
breakage.
|
||||
|
||||
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
|
||||
---
|
||||
lib/util/params.c | 2 +-
|
||||
lib/util/xpcapng.c | 6 +++---
|
||||
xdp-trafficgen/xdp-trafficgen.c | 4 ++--
|
||||
3 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/lib/util/xpcapng.c b/lib/util/xpcapng.c
|
||||
index e453b88..8cfc947 100644
|
||||
--- a/lib/util/xpcapng.c
|
||||
+++ b/lib/util/xpcapng.c
|
||||
@@ -226,7 +226,7 @@ static bool pcapng_write_shb(struct xpcapng_dumper *pd, const char *comment,
|
||||
shb_length += sizeof(uint32_t);
|
||||
|
||||
/* Allocate the SHB and fill it. */
|
||||
- shb = calloc(shb_length, 1);
|
||||
+ shb = calloc(1, shb_length);
|
||||
if (shb == NULL) {
|
||||
errno = ENOMEM;
|
||||
return false;
|
||||
@@ -318,7 +318,7 @@ static bool pcapng_write_idb(struct xpcapng_dumper *pd, const char *name,
|
||||
idb_length += sizeof(uint32_t);
|
||||
|
||||
/* Allocate the IDB and fill it. */
|
||||
- idb = calloc(idb_length, 1);
|
||||
+ idb = calloc(1, idb_length);
|
||||
if (idb == NULL) {
|
||||
errno = ENOMEM;
|
||||
return false;
|
||||
@@ -549,7 +549,7 @@ struct xpcapng_dumper *xpcapng_dump_open(const char *file,
|
||||
goto error_exit;
|
||||
}
|
||||
|
||||
- pd = calloc(sizeof(*pd), 1);
|
||||
+ pd = calloc(1, sizeof(*pd));
|
||||
if (pd == NULL) {
|
||||
errno = ENOMEM;
|
||||
goto error_exit;
|
||||
--
|
||||
2.43.0
|
||||
|
26
configure
vendored
26
configure
vendored
@ -5,7 +5,6 @@ set -o pipefail -o errtrace -o nounset -o errexit
|
||||
# submitting any changes
|
||||
|
||||
# defaults
|
||||
platform=default
|
||||
build_dir=.
|
||||
install_dir=/usr/local
|
||||
build_type=release
|
||||
@ -32,8 +31,6 @@ OPTIONS:
|
||||
--native-only, -n Only compile for Native CPU (no multiarch)
|
||||
--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__
|
||||
}
|
||||
|
||||
@ -79,15 +76,6 @@ while (( "$#" )); do
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
-p|--platform)
|
||||
if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
|
||||
platform=$2
|
||||
shift 2
|
||||
else
|
||||
echo "Error: Argument for $1 is missing" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
-n|--native-only)
|
||||
native_only=yes
|
||||
shift 1
|
||||
@ -105,19 +93,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
|
||||
@ -146,7 +121,6 @@ args+=("-DCMAKE_PREFIX_PATH=/opt/vpp/external/${arch}")
|
||||
args+=("-DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON")
|
||||
args+=("-DCMAKE_INSTALL_PREFIX=${install_dir}")
|
||||
args+=("-DCMAKE_BUILD_TYPE:STRING=${build_type}")
|
||||
args+=("-DVPP_PLATFORM=${platform}")
|
||||
[ "${native_only}" == "yes" ] && args+=("-DVPP_BUILD_NATIVE_ONLY:BOOL=ON")
|
||||
|
||||
[ "${wipe}" == "yes" ] && git clean -fdx --exclude=startup.\*
|
||||
|
@ -6,9 +6,9 @@ Release notes
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
v24.02
|
||||
v23.10
|
||||
v23.06
|
||||
v23.02
|
||||
v22.10.1
|
||||
v22.10
|
||||
v22.06.1
|
||||
past
|
||||
|
@ -6,8 +6,6 @@ Past releases
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
v22.10
|
||||
v22.06.1
|
||||
v22.06
|
||||
v22.02
|
||||
v21.10.1
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -642,6 +642,19 @@ can impact performance. Default is 1024.
|
||||
num-rx-desc <n>
|
||||
}
|
||||
|
||||
vlan-strip-offload on | off
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
VLAN strip offload mode for interface. VLAN stripping is off by default
|
||||
for all NICs except VICs, using ENIC driver, which has VLAN stripping on
|
||||
by default.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
dev 000:02:00.1 {
|
||||
vlan-strip-offload on|off
|
||||
}
|
||||
|
||||
uio-driver driver-name
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
@ -256,44 +256,6 @@ To build the debian packages, use the following command:
|
||||
|
||||
$ make pkg-deb
|
||||
|
||||
Reproducible builds on Debian
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
By default the VPP artifacts have various bits of
|
||||
information in them aimed at simplifying the identification
|
||||
during the development (like, the user name that built
|
||||
the package as well as the build times). By setting
|
||||
a few environment variables one can obtain bit-identical
|
||||
.deb files, assuming that the prerequisites installed
|
||||
in the build environment are identical.
|
||||
|
||||
|
||||
Setting and using the SOURCE_DATE_EPOCH variable
|
||||
(see https://reproducible-builds.org/docs/source-date-epoch/)
|
||||
takes care of most of the magic necessary.
|
||||
|
||||
The package vpp-ext-deps is already being built with that
|
||||
date set to date of the last modification of the
|
||||
build/external/ tree
|
||||
(similar to deriving the "number of commits" for the package
|
||||
versioning of vpp-ext-deps)
|
||||
|
||||
For the rest of the packages, pinning the following
|
||||
three variables should result in bit-identical
|
||||
artifacts across multiple runs in the build environment:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
export SOURCE_DATE_EPOCH=$(date +%s)
|
||||
export VPP_BUILD_HOST="buildhost"
|
||||
export VPP_BUILD_USER="builduser"
|
||||
|
||||
If you want to reproduce the bit-identical builds across
|
||||
different environments, take a look at "vpp_<BUILD_VERSION>.buildinfo" file
|
||||
which gets created in build-root alongside the .deb repositories -
|
||||
it has the cryptographic hashes for the newly built packages, and
|
||||
the full list of build dependencies and their versions.
|
||||
|
||||
.. _rpmpackages:
|
||||
|
||||
Building RPM Packages
|
||||
|
@ -1 +1 @@
|
||||
../../../../src/plugins/srmpls/sr_doc.rst
|
||||
../../../../src/vnet/srmpls/sr_doc.rst
|
@ -6,7 +6,7 @@
|
||||
Progressive VPP Tutorial
|
||||
########################
|
||||
|
||||
Learn to run FD.io VPP on a single Ubuntu VM using Vagrant with this walkthrough
|
||||
Learn to run FD.io VPP on a single Ubuntu 16.04 VM using Vagrant with this walkthrough
|
||||
covering basic FD.io VPP scenarios. Useful FD.io VPP commands will be used, and
|
||||
will discuss basic operations, and the state of a running FD.io VPP on a system.
|
||||
|
||||
|
@ -3,15 +3,15 @@
|
||||
Setting up your environment
|
||||
===========================
|
||||
|
||||
All of these exercises are designed to be performed on an Ubuntu 22.04 (Jammy) box.
|
||||
All of these exercises are designed to be performed on an Ubuntu 16.04 (Xenial) box.
|
||||
|
||||
* If you have an Ubuntu 22.04 box on which you have sudo or root access, you can feel free to use that.
|
||||
* If you do not, a Vagrantfile is provided to setup a basic Ubuntu 22.04 box for you in the the steps below.
|
||||
* If you have an Ubuntu 18.04 box on which you have sudo or root access, you can feel free to use that.
|
||||
* If you do not, a Vagrantfile is provided to setup a basic Ubuntu 18.04 box for you in the the steps below.
|
||||
|
||||
Install Libvirt and Vagrant
|
||||
Install Virtual Box and Vagrant
|
||||
-------------------------------
|
||||
|
||||
You will need to install Libvirt and Vagrant.
|
||||
You will need to install Virtual Box and Vagrant.
|
||||
|
||||
Create a Vagrant Directory
|
||||
---------------------------
|
||||
@ -32,16 +32,21 @@ Create a file called **Vagrantfile** with the following contents:
|
||||
|
||||
Vagrant.configure(2) do |config|
|
||||
|
||||
config.vm.box = "generic/ubuntu2204"
|
||||
config.vm.box = "bento/ubuntu-18.04"
|
||||
config.vm.box_check_update = false
|
||||
|
||||
vmcpu=(ENV['VPP_VAGRANT_VMCPU'] || 2)
|
||||
vmram=(ENV['VPP_VAGRANT_VMRAM'] || 4096)
|
||||
|
||||
config.ssh.forward_agent = true
|
||||
|
||||
config.vm.provider "libvirt" do |vb|
|
||||
config.vm.provider "virtualbox" do |vb|
|
||||
vb.customize ["modifyvm", :id, "--ioapic", "on"]
|
||||
vb.memory = "#{vmram}"
|
||||
vb.cpus = "#{vmcpu}"
|
||||
#support for the SSE4.x instruction is required in some versions of VB.
|
||||
vb.customize ["setextradata", :id, "VBoxInternal/CPUM/SSE4.1", "1"]
|
||||
vb.customize ["setextradata", :id, "VBoxInternal/CPUM/SSE4.2", "1"]
|
||||
end
|
||||
end
|
||||
|
||||
@ -92,7 +97,7 @@ We write this file with the following contents:
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo bash
|
||||
# echo "deb https://packagecloud.io/fdio/release/ubuntu jammy main" > /etc/apt/sources.list.d/99fd.io.list
|
||||
# echo "deb [trusted=yes] https://packagecloud.io/fdio/release/ubuntu bionic main" > /etc/apt/sources.list.d/99fd.io.list
|
||||
#
|
||||
|
||||
Get the key.
|
||||
|
@ -110,7 +110,6 @@ bufferindex
|
||||
bufmon
|
||||
Bufmon
|
||||
bugfixing
|
||||
buildinfo
|
||||
buildingrst
|
||||
builtin
|
||||
builtinurl
|
||||
@ -248,8 +247,6 @@ Dest
|
||||
det
|
||||
dev
|
||||
devbind
|
||||
dev_iavf
|
||||
dev_octeon
|
||||
df
|
||||
dhcp
|
||||
dhcp
|
||||
@ -315,7 +312,6 @@ elts
|
||||
emacs
|
||||
emerg
|
||||
emphasise
|
||||
ena
|
||||
enablement
|
||||
encap
|
||||
encap
|
||||
@ -468,7 +464,6 @@ ia
|
||||
iacl
|
||||
iAcl
|
||||
iACL
|
||||
iavf
|
||||
iBGP
|
||||
ibverb
|
||||
IBverbs
|
||||
@ -787,7 +782,6 @@ O'Driscoll
|
||||
oacl
|
||||
oam
|
||||
OAM
|
||||
octeon
|
||||
oddbuf
|
||||
Oddbuf
|
||||
offline
|
||||
@ -907,7 +901,6 @@ py
|
||||
pypi
|
||||
qemu
|
||||
Qemu
|
||||
qdisc
|
||||
qos
|
||||
QoS
|
||||
qs
|
||||
@ -1047,7 +1040,6 @@ srcIP
|
||||
srcPortDefinition
|
||||
srcUP
|
||||
srh
|
||||
srmpls
|
||||
Srmpls
|
||||
srtp
|
||||
SRTP
|
||||
|
@ -13,8 +13,11 @@ scenario.
|
||||
OS / Distro test results
|
||||
------------------------
|
||||
|
||||
This setup has been tested on Ubuntu 18.04 - 22.04 LTS systems. Other
|
||||
distros may work fine, or not at all.
|
||||
This setup has been tested on an Ubuntu 18.04 LTS system. If you’re
|
||||
feeling adventurous, the same scenario also worked on a recent Ubuntu
|
||||
20.04 “preview” daily build.
|
||||
|
||||
Other distros may work fine, or not at all.
|
||||
|
||||
Proxy Server
|
||||
------------
|
||||
@ -110,7 +113,6 @@ containers, run vpp without installing it, etc.
|
||||
type: disk
|
||||
name: default
|
||||
|
||||
|
||||
Set up the network configurations
|
||||
---------------------------------
|
||||
|
||||
@ -125,20 +127,20 @@ and host configuration:
|
||||
|
||||
::
|
||||
|
||||
config:
|
||||
ipv4.address: 10.26.68.1/24
|
||||
ipv4.dhcp.ranges: 10.26.68.10-10.26.68.50
|
||||
ipv4.nat: "true"
|
||||
ipv6.address: none
|
||||
ipv6.nat: "false"
|
||||
description: ""
|
||||
name: internet
|
||||
type: bridge
|
||||
used_by:
|
||||
managed: true
|
||||
status: Created
|
||||
locations:
|
||||
- none
|
||||
config:
|
||||
ipv4.address: 10.26.68.1/24
|
||||
ipv4.dhcp.ranges: 10.26.68.10-10.26.68.50
|
||||
ipv4.nat: "true"
|
||||
ipv6.address: none
|
||||
ipv6.nat: "false"
|
||||
description: ""
|
||||
name: internet
|
||||
type: bridge
|
||||
used_by:
|
||||
managed: true
|
||||
status: Created
|
||||
locations:
|
||||
- none
|
||||
|
||||
Repeat the process with the “respond” and “initiate” networks, using
|
||||
these configurations:
|
||||
@ -181,6 +183,7 @@ initiate network configuration
|
||||
managed: true
|
||||
status: Created
|
||||
locations:
|
||||
- none
|
||||
|
||||
Create a “master” container image
|
||||
---------------------------------
|
||||
@ -192,7 +195,7 @@ Make sure that e.g. public key auth ssh works.
|
||||
|
||||
::
|
||||
|
||||
# lxd launch ubuntu:22.04 respond
|
||||
# lxd launch ubuntu:18.04 respond
|
||||
<spew>
|
||||
# lxc exec respond bash
|
||||
respond# cd /scratch/my-vpp-workspace
|
||||
@ -225,9 +228,9 @@ container image is fully set up before you help it have children:
|
||||
Install handy script
|
||||
--------------------
|
||||
|
||||
See below for a handy host script which executes lxc commands across
|
||||
the current set of running containers. I call it “lxc-foreach,” feel
|
||||
free to call the script Ishmael if you like.
|
||||
See below for a handy script which executes lxc commands across the
|
||||
current set of running containers. I call it “lxc-foreach,” feel free to
|
||||
call the script Ishmael if you like.
|
||||
|
||||
Examples:
|
||||
|
||||
@ -248,44 +251,36 @@ Here’s the script:
|
||||
|
||||
::
|
||||
|
||||
#!/bin/bash
|
||||
#!/bin/bash
|
||||
|
||||
set -u
|
||||
export containers="respond initiate initiatehost respondhost"
|
||||
set -u
|
||||
export containers="respond respondhost initiate initiatehost dhcpserver"
|
||||
|
||||
if [ x$1 = "x" ] ; then
|
||||
echo missing command
|
||||
exit 1
|
||||
fi
|
||||
if [ x$1 = "x" ] ; then
|
||||
echo missing command
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $1 = "ssh" ] ; then
|
||||
for c in $containers
|
||||
do
|
||||
if [ $1 = "ssh" ] ; then
|
||||
for c in $containers
|
||||
do
|
||||
inet=`lxc info $c | grep eth0 | grep -v inet6 | head -1 | cut -f 3`
|
||||
if [ x$inet = "x" ] ; then
|
||||
echo $c not started
|
||||
else
|
||||
gnome-terminal --command "/usr/bin/ssh $inet"
|
||||
fi
|
||||
done
|
||||
exit 0
|
||||
fi
|
||||
|
||||
inet=`lxc info $c | grep 10.38.33 | sed "s/.*inet://" | sed "s/\/24.*//" | tr -d " "`
|
||||
if [ x$inet != "x" ] ; then
|
||||
gnome-terminal --title "$c(ssh)" --command "/usr/bin/ssh -Y root@$inet"
|
||||
fi
|
||||
done
|
||||
exit 0
|
||||
fi
|
||||
for c in $containers
|
||||
do
|
||||
echo lxc $1 $c
|
||||
lxc $1 $c
|
||||
done
|
||||
|
||||
for c in $containers
|
||||
do
|
||||
inet=`lxc info $c | grep 10.38.33 | sed "s/.*inet://" | sed "s/\/24.*//" | tr -d " "`
|
||||
if [ x$1 = "xstart" ] ; then
|
||||
echo Starting $c
|
||||
lxc start $c
|
||||
elif [ x$1 = "xstop" ] ; then
|
||||
echo Stopping $c
|
||||
lxc stop $c
|
||||
elif [ x$inet != "x" ] ; then
|
||||
echo lxc $1 $c
|
||||
lxc $1 $c
|
||||
fi
|
||||
done
|
||||
|
||||
exit 0
|
||||
exit 0
|
||||
|
||||
Test topology
|
||||
-------------
|
||||
@ -294,25 +289,24 @@ Finally, we’re ready to describe a test topology. First, a picture:
|
||||
|
||||
::
|
||||
|
||||
===+======== management lan/bridge lxdbr0 (dhcp) ==============+===
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
v | v
|
||||
eth0 | eth0
|
||||
+---------+ eth1 eth1 +----------+
|
||||
===+======== management lan/bridge lxdbr0 (dhcp) ===========+===
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
v | v
|
||||
eth0 | eth0
|
||||
+------+ eth1 eth1 +------+
|
||||
| respond | 10.26.88.100 <= internet bridge => 10.26.88.101 | initiate |
|
||||
+---------+ +----------+
|
||||
+------+ +------+
|
||||
eth2 / bvi0 10.166.14.2 | 10.219.188.2 eth3 / bvi0
|
||||
| | |
|
||||
| ("respond" bridge) | ("initiate" bridge) |
|
||||
| | |
|
||||
v | v
|
||||
eth2 10.166.14.3 | eth3 10.219.188.3
|
||||
+-------------+ | +-------------+
|
||||
| respondhost | | | respondhost |
|
||||
+-------------+ | +-------------+
|
||||
v
|
||||
| | |
|
||||
| ("respond" bridge) | ("initiate" bridge) |
|
||||
| | |
|
||||
v | v
|
||||
eth2 10.166.14.3 | eth3 10.219.188.3
|
||||
+----------+ | +----------+
|
||||
| respondhost | | | respondhost |
|
||||
+----------+ | +----------+
|
||||
eth0 (management lan) <========+========> eth0 (management lan)
|
||||
|
||||
Test topology discussion
|
||||
|
@ -63,9 +63,11 @@ Run some commands to verify the changes:
|
||||
32: veth_link1 inet 172.16.1.2/24 scope global veth_link1\ valid_lft forever preferred_lft forever
|
||||
32: veth_link1 inet6 fe80::2c9d:83ff:fe33:37e/64 scope link \ valid_lft forever preferred_lft forever
|
||||
|
||||
root@cone:/# ip route
|
||||
default via 172.16.1.1 dev veth_link1
|
||||
172.16.1.0/24 dev veth_link1 proto kernel scope link src 172.16.1.2
|
||||
root@cone:/# route
|
||||
Kernel IP routing table
|
||||
Destination Gateway Genmask Flags Metric Ref Use Iface
|
||||
default 172.16.1.1 0.0.0.0 UG 0 0 0 veth_link1
|
||||
172.16.1.0 * 255.255.255.0 U 0 0 0 veth_link1
|
||||
|
||||
|
||||
We see that the IP has been assigned, as well as our default gateway.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user