Compare commits
47 Commits
v24.06-rc2
...
stable/210
Author | SHA1 | Date | |
---|---|---|---|
|
2ef2ac780e | ||
|
bb25fbf28c | ||
|
90e6edf15c | ||
|
bb7418cf9b | ||
|
fc83f8cc67 | ||
|
3001c0344e | ||
|
f68dcb720c | ||
|
803ac6389d | ||
|
e19fef7c88 | ||
|
c5111d4fa0 | ||
|
0a4b9ad148 | ||
|
1cb93827f9 | ||
|
d1fd73a93d | ||
|
a95292ffdb | ||
|
8b297dbceb | ||
|
a34aad732b | ||
|
6b6f413b5c | ||
|
6510663c7a | ||
|
3558a9a0ba | ||
|
7dabce4024 | ||
|
50797cda3a | ||
|
d0f23a3164 | ||
|
655c377607 | ||
|
6ac910e0d6 | ||
|
f9d10e7dd5 | ||
|
e9b33fcbde | ||
|
b635851ee2 | ||
|
dd6fe0c539 | ||
|
53af06a214 | ||
|
2fea186aee | ||
|
1c20c2f774 | ||
|
ce4716f4e2 | ||
|
f1bd293ff2 | ||
|
b3e5909e80 | ||
|
e027d88521 | ||
|
4b0882c9a9 | ||
|
76189089b5 | ||
|
5b6d2c1ae2 | ||
|
d5f89e04ae | ||
|
afb0194b5a | ||
|
27777bd890 | ||
|
cd01b3a735 | ||
|
ce48c87744 | ||
|
b39fac168b | ||
|
f5d9237c56 | ||
|
88b2269a45 | ||
|
e82d59f381 |
@ -1,4 +1,4 @@
|
||||
# Minimal clang-format version is 11
|
||||
# Minimal clang-format version is 8
|
||||
|
||||
BasedOnStyle: GNU
|
||||
UseTab: Always
|
||||
@ -13,36 +13,16 @@ ForEachMacros:
|
||||
- 'clib_bitmap_foreach'
|
||||
- 'pool_foreach'
|
||||
- 'pool_foreach_index'
|
||||
- 'pool_foreach_pointer'
|
||||
- 'vec_foreach'
|
||||
- 'vec_foreach_backwards'
|
||||
- 'vec_foreach_index'
|
||||
- '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'
|
||||
|
||||
WhitespaceSensitiveMacros:
|
||||
- 'WARN_ON'
|
||||
- 'WARN_OFF'
|
||||
|
21
.github/workflows/close_prs.yml
vendored
21
.github/workflows/close_prs.yml
vendored
@ -1,21 +0,0 @@
|
||||
---
|
||||
name: Close Pull Request
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened]
|
||||
|
||||
jobs:
|
||||
run:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: superbrothers/close-pull-request@v3
|
||||
with:
|
||||
# Optional. Post a issue comment just before closing a pull request.
|
||||
comment: "Thank you so much for your interest! VPP takes patches at https://gerrit.fd.io/
|
||||
|
||||
```
|
||||
git clone https://gerrit.fd.io/r/vpp
|
||||
```
|
||||
|
||||
Using [git review](https://www.mediawiki.org/wiki/Gerrit/git-review) to contribute patches is recommended"
|
44
.gitignore
vendored
44
.gitignore
vendored
@ -10,19 +10,24 @@
|
||||
/build-root/path_setup
|
||||
/build-root/deb/debian/vpp-plugins/
|
||||
/build-root/deb/.pybuild/
|
||||
/build-root/*.buildinfo
|
||||
/build-root/*.deb
|
||||
/build-root/*.rpm
|
||||
/build-root/*.tar.xz
|
||||
/build-root/*.changes
|
||||
/build-root/rpmbuild/
|
||||
/build-root/test-coverage/
|
||||
/build-root/test/
|
||||
/build-root/test-doc/
|
||||
/build-root/test-cov/
|
||||
/test/run/
|
||||
/test/build/
|
||||
/test/coverage/
|
||||
/test/venv/
|
||||
/test/vapi_test/
|
||||
/test/doc/build/
|
||||
/build-config.mk
|
||||
/build/external/*.tar.gz
|
||||
/build/external/*.tar.xz
|
||||
/build/external/vpp-*
|
||||
/build/external/dpdk_mlx_default.sh
|
||||
/build/external/vpp-*.deb
|
||||
/build/external/vpp-*.changes
|
||||
/build/external/downloads/
|
||||
/path_setup
|
||||
/tools/
|
||||
@ -77,12 +82,14 @@ GTAGS
|
||||
/build-root/docs
|
||||
/build-root/.doxygen-bootstrap.ok
|
||||
/build-root/.doxygen-siphon.dep
|
||||
/docs/venv
|
||||
/docs/_build
|
||||
/docs/dynamic_includes
|
||||
/sphinx_venv
|
||||
!/docs/Makefile
|
||||
|
||||
# language servers
|
||||
compile_commands.json
|
||||
.clangd
|
||||
.cache
|
||||
|
||||
# indent backup files
|
||||
*.BAK
|
||||
@ -114,26 +121,3 @@ compile_commands.json
|
||||
|
||||
# debian packaging
|
||||
.pc
|
||||
|
||||
# No test log files
|
||||
**/test-run-*-*-*
|
||||
|
||||
# host stack test framework
|
||||
/extras/hs-test/vpp-data
|
||||
/extras/hs-test/hs-test
|
||||
/extras/hs-test/http_server
|
||||
/extras/hs-test/.build.ok
|
||||
/extras/hs-test/summary/
|
||||
|
||||
# ./configure
|
||||
/CMakeFiles
|
||||
/bin
|
||||
/lib
|
||||
/.ninja_deps
|
||||
/.ninja_log
|
||||
/.cmake
|
||||
/CMakeCache.txt
|
||||
/build.ninja
|
||||
/cmake_install.cmake
|
||||
/startup.conf
|
||||
/startup.vpp
|
||||
|
@ -2,4 +2,4 @@
|
||||
host=gerrit.fd.io
|
||||
port=29418
|
||||
project=vpp
|
||||
defaultbranch=stable/2406
|
||||
defaultbranch=stable/2106
|
||||
|
@ -86,10 +86,6 @@ committers:
|
||||
company: 'intel'
|
||||
email: 'roy.fan.zhang@intel.com'
|
||||
id: 'royzhang1980'
|
||||
- name: 'Mohammed HAWARI'
|
||||
company: 'cisco'
|
||||
email: 'momohawari@gmail.com'
|
||||
id: 'momohawari'
|
||||
tsc:
|
||||
# yamllint disable rule:line-length
|
||||
approval: 'https://wiki.fd.io/view/TSC/Meeting_Minutes'
|
||||
@ -100,6 +96,3 @@ tsc:
|
||||
- type: 'Addition'
|
||||
name: 'Fan Zhang'
|
||||
link: 'https://lists.fd.io/g/vpp-dev/message/19068'
|
||||
- type: 'Approval'
|
||||
name: 'Mohammed HAWARI'
|
||||
link: 'https://ircbot.wl.linuxfoundation.org/meetings/fdio-meeting/2023/fd_io_tsc/fdio-meeting-fd_io_tsc.2023-06-01-15.00.html'
|
||||
|
222
MAINTAINERS
222
MAINTAINERS
File diff suppressed because it is too large
Load Diff
45
README.md
45
README.md
@ -19,32 +19,32 @@ For more information on VPP and its features please visit the
|
||||
## Changes
|
||||
|
||||
Details of the changes leading up to this version of VPP can be found under
|
||||
doc/releasenotes.
|
||||
@ref release_notes.
|
||||
|
||||
|
||||
## Directory layout
|
||||
|
||||
| Directory name | Description |
|
||||
| ---------------------- | ------------------------------------------- |
|
||||
| build-data | Build metadata |
|
||||
| build-root | Build output directory |
|
||||
| docs | Sphinx Documentation |
|
||||
| dpdk | DPDK patches and build infrastructure |
|
||||
| extras/libmemif | Client library for memif |
|
||||
| src/examples | VPP example code |
|
||||
| src/plugins | VPP bundled plugins directory |
|
||||
| src/svm | Shared virtual memory allocation library |
|
||||
| src/tests | Standalone tests (not part of test harness) |
|
||||
| src/vat | VPP API test program |
|
||||
| src/vlib | VPP application library |
|
||||
| src/vlibapi | VPP API library |
|
||||
| src/vlibmemory | VPP Memory management |
|
||||
| src/vnet | VPP networking |
|
||||
| src/vpp | VPP application |
|
||||
| src/vpp-api | VPP application API bindings |
|
||||
| src/vppinfra | VPP core library |
|
||||
| src/vpp/api | Not-yet-relocated API bindings |
|
||||
| test | Unit tests and Python test harness |
|
||||
| build-data | Build metadata |
|
||||
| build-root | Build output directory |
|
||||
| doxygen | Documentation generator configuration |
|
||||
| dpdk | DPDK patches and build infrastructure |
|
||||
| @ref extras/libmemif | Client library for memif |
|
||||
| @ref src/examples | VPP example code |
|
||||
| @ref src/plugins | VPP bundled plugins directory |
|
||||
| @ref src/svm | Shared virtual memory allocation library |
|
||||
| src/tests | Standalone tests (not part of test harness) |
|
||||
| src/vat | VPP API test program |
|
||||
| @ref src/vlib | VPP application library |
|
||||
| @ref src/vlibapi | VPP API library |
|
||||
| @ref src/vlibmemory | VPP Memory management |
|
||||
| @ref src/vnet | VPP networking |
|
||||
| @ref src/vpp | VPP application |
|
||||
| @ref src/vpp-api | VPP application API bindings |
|
||||
| @ref src/vppinfra | VPP core library |
|
||||
| @ref src/vpp/api | Not-yet-relocated API bindings |
|
||||
| test | Unit tests and Python test harness |
|
||||
|
||||
## Getting started
|
||||
|
||||
@ -99,3 +99,8 @@ end-user-oriented information. Also see @subpage dev_doc for developer notes.
|
||||
Visit the [VPP wiki](https://wiki.fd.io/view/VPP) for details on more
|
||||
advanced building strategies and other development notes.
|
||||
|
||||
|
||||
## Test Framework
|
||||
|
||||
There is PyDoc generated documentation available for the VPP test framework.
|
||||
See @ref test_framework_doc for details.
|
||||
|
9661
RELEASE.md
Normal file
9661
RELEASE.md
Normal file
File diff suppressed because it is too large
Load Diff
@ -29,17 +29,32 @@ ifneq ($(DPDK_MLX5_PMD),)
|
||||
DPDK_MAKE_ARGS += DPDK_MLX5_PMD=y
|
||||
endif
|
||||
|
||||
DPDK_MLX_IBVERBS_DLOPEN=$(strip $($(PLATFORM)_uses_dpdk_ibverbs_link_dlopen))
|
||||
ifneq ($(DPDK_MLX_IBVERBS_DLOPEN),)
|
||||
DPDK_MAKE_ARGS += DPDK_MLX_IBVERBS_DLOPEN=y
|
||||
endif
|
||||
|
||||
DPDK_MLX4_PMD=$(strip $($(PLATFORM)_uses_dpdk_mlx4_pmd))
|
||||
ifneq ($(DPDK_MLX4_PMD),)
|
||||
DPDK_MAKE_ARGS += DPDK_MLX4_PMD=y
|
||||
endif
|
||||
|
||||
ifeq ("$(V)","1")
|
||||
DPDK_MAKE_ARGS += DPDK_VERBOSE=1
|
||||
DPDK_PLATFORM_TARGET=$(strip $($(PLATFORM)_dpdk_target))
|
||||
ifneq ($(DPDK_PLATFORM_TARGET),)
|
||||
DPDK_MAKE_ARGS += DPDK_TARGET=$(DPDK_PLATFORM_TARGET)
|
||||
endif
|
||||
|
||||
ifneq (,$(TARGET_PLATFORM))
|
||||
DPDK_MAKE_ARGS += DPDK_AARCH64_GENERIC=n
|
||||
endif
|
||||
|
||||
DPDK_MAKE_EXTRA_ARGS = $(strip $($(PLATFORM)_dpdk_make_extra_args))
|
||||
ifneq ($(DPDK_MAKE_EXTRA_ARGS),)
|
||||
DPDK_MAKE_ARGS += DPDK_MAKE_EXTRA_ARGS="$(DPDK_MAKE_EXTRA_ARGS)"
|
||||
endif
|
||||
|
||||
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
|
||||
|
@ -26,6 +26,11 @@ libmemif_cmake_args += -DCMAKE_C_FLAGS="$($(TAG)_TAG_CFLAGS)"
|
||||
libmemif_cmake_args += -DCMAKE_SHARED_LINKER_FLAGS="$($(TAG)_TAG_LDFLAGS)"
|
||||
libmemif_cmake_args += -DCMAKE_PREFIX_PATH:PATH="$(PACKAGE_INSTALL_DIR)/../vpp"
|
||||
|
||||
# Use devtoolset on centos 7
|
||||
ifneq ($(wildcard /opt/rh/devtoolset-9/enable),)
|
||||
libmemif_cmake_args += -DCMAKE_PROGRAM_PATH:PATH="/opt/rh/devtoolset-9/root/bin"
|
||||
endif
|
||||
|
||||
libmemif_configure = \
|
||||
cd $(PACKAGE_BUILD_DIR) && \
|
||||
$(CMAKE) -G Ninja $(libmemif_cmake_args) $(call find_source_fn,$(PACKAGE_SOURCE))$(PACKAGE_SUBDIR)
|
||||
|
@ -30,6 +30,11 @@ sample-plugin_cmake_args += -DCMAKE_C_FLAGS="$($(TAG)_TAG_CFLAGS)"
|
||||
sample-plugin_cmake_args += -DCMAKE_SHARED_LINKER_FLAGS="$($(TAG)_TAG_LDFLAGS)"
|
||||
sample-plugin_cmake_args += -DCMAKE_PREFIX_PATH:PATH="$(PACKAGE_INSTALL_DIR)/../vpp"
|
||||
|
||||
# Use devtoolset on centos 7
|
||||
ifneq ($(wildcard /opt/rh/devtoolset-9/enable),)
|
||||
sample-plugin_cmake_args += -DCMAKE_PROGRAM_PATH:PATH="/opt/rh/devtoolset-9/root/bin"
|
||||
endif
|
||||
|
||||
sample-plugin_configure = \
|
||||
cd $(PACKAGE_BUILD_DIR) && \
|
||||
$(CMAKE) -G Ninja $(sample-plugin_cmake_args) \
|
||||
|
@ -30,14 +30,15 @@ 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)"
|
||||
ifeq (,$(TARGET_PLATFORM))
|
||||
ifeq ($(MACHINE),aarch64)
|
||||
vpp_cmake_args += -DVPP_LOG2_CACHE_LINE_SIZE=7
|
||||
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)"
|
||||
|
||||
# Use devtoolset on centos 7
|
||||
ifneq ($(wildcard /opt/rh/devtoolset-9/enable),)
|
||||
vpp_cmake_args += -DCMAKE_PROGRAM_PATH:PATH="/opt/rh/devtoolset-9/root/bin"
|
||||
endif
|
||||
|
||||
ifneq ($(VPP_EXTRA_CMAKE_ARGS),)
|
||||
@ -48,6 +49,7 @@ vpp_configure_depend += external-install
|
||||
vpp_configure = \
|
||||
cd $(PACKAGE_BUILD_DIR) && \
|
||||
$(CMAKE) -G Ninja $(vpp_cmake_args) $(call find_source_fn,$(PACKAGE_SOURCE))
|
||||
#vpp_make_args = --no-print-directory
|
||||
vpp_build = $(CMAKE) --build $(PACKAGE_BUILD_DIR) -- $(MAKE_PARALLEL_FLAGS)
|
||||
vpp_install = $(CMAKE) --build $(PACKAGE_BUILD_DIR) -- install | grep -v 'Set runtime path'
|
||||
|
||||
|
45
build-data/platforms/arm32.mk
Normal file
45
build-data/platforms/arm32.mk
Normal file
@ -0,0 +1,45 @@
|
||||
# Copyright (c) 2016 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.
|
||||
|
||||
# vector packet processor
|
||||
arm32_arch = native
|
||||
arm32_native_tools = vppapigen
|
||||
|
||||
arm32_uses_dpdk = yes
|
||||
arm32_uses_openssl = no
|
||||
|
||||
arm32_root_packages = vpp vlib vlib-api vnet svm vpp-api-test \
|
||||
gmod
|
||||
|
||||
vlib_configure_args_arm32 = --with-pre-data=128
|
||||
vnet_configure_args_arm32 = --with-dpdk --without-libssl
|
||||
vpp_configure_args_arm32 = --with-dpdk --without-libssl
|
||||
|
||||
arm32_dpdk_arch = "armv7a"
|
||||
arm32_dpdk_target = "arm-armv7a-linuxapp-gcc"
|
||||
arm32_dpdk_make_extra_args = "CPU_CFLAGS='-mfloat-abi=hard' \
|
||||
CONFIG_RTE_EAL_IGB_UIO=y \
|
||||
CONFIG_RTE_LIBRTE_E1000_PMD=y \
|
||||
CONFIG_RTE_MAX_LCORE=4 \
|
||||
CONFIG_RTE_MAX_NUMA_NODES=1"
|
||||
|
||||
|
||||
arm32_debug_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG -DVLIB_MAX_CPUS=4 -march=armv7-a \
|
||||
-fstack-protector-all -fPIC -Werror
|
||||
arm32_debug_TAG_LDFLAGS = -g -O0 -DCLIB_DEBUG -DVLIB_MAX_CPUS=4 -march=armv7-a \
|
||||
-fstack-protector-all -fPIC -Werror
|
||||
|
||||
arm32_TAG_CFLAGS = -g -O2 -D_FORTIFY_SOURCE=2 -DVLIB_MAX_CPUS=4 -march=armv7-a \
|
||||
-fstack-protector -fPIC -Werror
|
||||
arm32_TAG_LDFLAGS = -g -O2 -D_FORTIFY_SOURCE=2 -DVLIB_MAX_CPUS=4 -march=armv7-a \
|
||||
-fstack-protector -fPIC -Werror
|
87
build-data/platforms/dpaa.mk
Normal file
87
build-data/platforms/dpaa.mk
Normal file
@ -0,0 +1,87 @@
|
||||
# Copyright 2018 NXP
|
||||
# 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.
|
||||
|
||||
# Configuration for NXP DPAA1/DPAA2 ARM64 based platform
|
||||
MACHINE=$(shell uname -m)
|
||||
|
||||
dpaa_mtune = cortex-A72
|
||||
dpaa_march = "armv8-a+fp+simd+crc+crypto"
|
||||
|
||||
ifeq ($(MACHINE),aarch64)
|
||||
dpaa_arch = native
|
||||
else
|
||||
dpaa_arch = aarch64
|
||||
dpaa_os = linux-gnu
|
||||
dpaa_target = aarch64-fsl-linux
|
||||
dpaa_cross_ldflags = \
|
||||
-Wl,--dynamic-linker=/lib/ld-linux-aarch64.so.1 \
|
||||
-Wl,-rpath=/usr/lib64 \
|
||||
-Wl,-rpath=./.libs \
|
||||
-Wl,-rpath=$(OPENSSL_PATH)/lib
|
||||
endif
|
||||
|
||||
# Re-write Default configuration, if requied
|
||||
ifneq ($(CROSS_PREFIX),)
|
||||
# like: aarch64-linux-gnu
|
||||
dpaa_target = $(CROSS_PREFIX)
|
||||
endif
|
||||
|
||||
ifneq ($(CPU_MTUNE),)
|
||||
# like: cortex-A53
|
||||
dpaa_mtune = $(CPU_MTUNE)
|
||||
endif
|
||||
|
||||
dpaa_native_tools = vppapigen
|
||||
dpaa_root_packages = vpp
|
||||
|
||||
# DPDK configuration parameters
|
||||
dpaa_uses_dpdk = yes
|
||||
|
||||
# Compile with external DPDK only if "DPDK_PATH" variable is defined where we have
|
||||
# installed DPDK libraries and headers.
|
||||
ifeq ($(PLATFORM),dpaa)
|
||||
ifneq ($(DPDK_PATH),)
|
||||
#dpaa_dpdk_shared_lib = yes
|
||||
dpaa_uses_external_dpdk = yes
|
||||
dpaa_dpdk_inc_dir = $(DPDK_PATH)/include/dpdk
|
||||
dpaa_dpdk_lib_dir = $(DPDK_PATH)/lib
|
||||
else
|
||||
# compile using internal DPDK + NXP DPAA2 Driver patch
|
||||
dpaa_dpdk_arch = "armv8a"
|
||||
dpaa_dpdk_target = "arm64-dpaa-linuxapp-gcc"
|
||||
dpaa_dpdk_make_extra_args = "CONFIG_RTE_KNI_KMOD=n"
|
||||
endif
|
||||
endif
|
||||
|
||||
# Disable the unused plugins in order to decrease the VPP pacakage size.
|
||||
vpp_configure_args_dpaa = --without-ipv6sr --with-pre-data=128 --without-libnuma
|
||||
|
||||
# Other optional vpp_configure_args
|
||||
ifneq ($(VPP_CFG_ARGS),)
|
||||
vpp_configure_args_dpaa += $(VPP_CFG_ARGS)
|
||||
endif
|
||||
|
||||
|
||||
dpaa_debug_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG -fPIC -fstack-protector-all -mtls-dialect=trad \
|
||||
-march=$(MARCH) -Werror -DCLIB_LOG2_CACHE_LINE_BYTES=6 -I$(OPENSSL_PATH)/include
|
||||
dpaa_debug_TAG_LDFLAGS = -g -O0 -DCLIB_DEBUG -fstack-protector-all \
|
||||
-march=$(MARCH) -Werror -DCLIB_LOG2_CACHE_LINE_BYTES=6 -L$(OPENSSL_PATH)/lib
|
||||
|
||||
|
||||
# Use -rdynamic is for stack tracing, O0 for debugging....default is O2
|
||||
# Use -DCLIB_LOG2_CACHE_LINE_BYTES to change cache line size
|
||||
dpaa_TAG_CFLAGS = -g -Ofast -fPIC -march=$(MARCH) -mcpu=$(dpaa_mtune) -mtls-dialect=trad \
|
||||
-mtune=$(dpaa_mtune) -funroll-all-loops -DCLIB_LOG2_CACHE_LINE_BYTES=6 -I$(OPENSSL_PATH)/include
|
||||
dpaa_TAG_LDFLAGS = -g -Ofast -fPIC -march=$(MARCH) -mcpu=$(dpaa_mtune) \
|
||||
-mtune=$(dpaa_mtune) -funroll-all-loops -DCLIB_LOG2_CACHE_LINE_BYTES=6 -L$(OPENSSL_PATH)/lib
|
||||
|
47
build-data/platforms/qppc.mk
Normal file
47
build-data/platforms/qppc.mk
Normal file
@ -0,0 +1,47 @@
|
||||
# Copyright (c) 2015 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.
|
||||
|
||||
# Qemu "p-series" powerpc64
|
||||
|
||||
qppc_os = linux-gnu
|
||||
|
||||
qppc_cross_ldflags = \
|
||||
-Wl,--dynamic-linker=/lib64/ld64.so.1
|
||||
|
||||
qppc_arch = powerpc
|
||||
|
||||
qppc_root_packages = vppinfra vlib vlib-api vnet svm \
|
||||
vpp vpp-api-test
|
||||
|
||||
vnet_configure_args_qppc = \
|
||||
--without-libssl
|
||||
|
||||
vpp_configure_args_qppc = \
|
||||
--without-libssl
|
||||
|
||||
vlib_configure_args_qppc = --with-pre-data=128
|
||||
|
||||
qppc_march=powerpc64
|
||||
|
||||
# native tool chain additions for this platform
|
||||
qppc_native_tools = vppapigen
|
||||
|
||||
qppc_uses_dpdk = no
|
||||
|
||||
qppc_debug_TAG_CFLAGS = -m64 -g -O0 -DCLIB_DEBUG -DCLIB_LOG2_CACHE_LINE_BYTES=6 -maltivec
|
||||
qppc_debug_TAG_LDFLAGS = -m64 -g -O0 -DCLIB_DEBUG -DCLIB_LOG2_CACHE_LINE_BYTES=6 -maltivec
|
||||
|
||||
qppc_TAG_CFLAGS = -m64 -g -O2 -DCLIB_LOG2_CACHE_LINE_BYTES=6 -maltivec
|
||||
qppc_TAG_LDFLAGS = -m64 -g -O2 -DCLIB_LOG2_CACHE_LINE_BYTES=6 -maltivec
|
||||
|
||||
|
@ -16,6 +16,9 @@
|
||||
MACHINE=$(shell uname -m)
|
||||
|
||||
vpp_arch = native
|
||||
ifeq ($(TARGET_PLATFORM),thunderx)
|
||||
vpp_dpdk_target = arm64-thunderx-linuxapp-gcc
|
||||
endif
|
||||
|
||||
vpp_root_packages = vpp
|
||||
|
||||
|
@ -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}) ; \
|
||||
|
112
build-root/config.site
Normal file
112
build-root/config.site
Normal file
@ -0,0 +1,112 @@
|
||||
# Copyright (c) 2015 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.
|
||||
|
||||
|
||||
######################################################################
|
||||
# glibc
|
||||
######################################################################
|
||||
|
||||
# glibc needs this for cross compiling
|
||||
libc_cv_forced_unwind=yes
|
||||
libc_cv_c_cleanup=yes
|
||||
libc_cv_ssp=no
|
||||
# fixes gentoo build; not sure why?
|
||||
libc_cv_uname_release=""
|
||||
libc_cv_uname_version=""
|
||||
ac_cv_header_cpuid_h=yes
|
||||
######################################################################
|
||||
# bash
|
||||
######################################################################
|
||||
|
||||
# Bash configure.in uses this to work around an autoconf 2.53 bug
|
||||
ac_cv_func_setvbuf_reversed=no
|
||||
ac_cv_rl_version=5.1
|
||||
bash_cv_termcap_lib=libncurses
|
||||
|
||||
# These mostly come from debian bash-2.05b changes
|
||||
# They are needed to make a functioning bash. Without these
|
||||
# settings gdbserver exiting would cause the invoking bash to
|
||||
# exit also.
|
||||
bash_cv_have_mbstate_t=yes
|
||||
bash_cv_dup2_broken=no
|
||||
bash_cv_pgrp_pipe=no
|
||||
bash_cv_sys_siglist=yes
|
||||
bash_cv_under_sys_siglist=yes
|
||||
bash_cv_opendir_not_robust=no
|
||||
bash_cv_printf_declared=yes
|
||||
bash_cv_ulimit_maxfds=yes
|
||||
bash_cv_getenv_redef=yes
|
||||
bash_cv_getcwd_calls_popen=no
|
||||
bash_cv_func_strcoll_broken=no
|
||||
bash_cv_must_reinstall_sighandlers=no
|
||||
bash_cv_type_quad_t=yes
|
||||
bash_cv_func_sigsetjmp=present
|
||||
bash_cv_job_control_missing=present
|
||||
bash_cv_sys_named_pipes=present
|
||||
bash_cv_type_rlimit=long
|
||||
bash_cv_printf_a_format=yes
|
||||
bash_cv_unusable_rtsigs=no
|
||||
|
||||
######################################################################
|
||||
# Apache
|
||||
######################################################################
|
||||
ac_cv_func_setpgrp_void=yes
|
||||
apr_cv_process_shared_works=yes
|
||||
apr_cv_tcp_nodelay_with_cork=yes
|
||||
ap_void_ptr_lt_long=no
|
||||
|
||||
case ${host_cpu} in
|
||||
x86_64 | alpha)
|
||||
ac_cv_sizeof_ssize_t=8
|
||||
ac_cv_sizeof_size_t=8
|
||||
ac_cv_sizeof_pid_t=4
|
||||
;;
|
||||
*)
|
||||
ac_cv_sizeof_ssize_t=4
|
||||
ac_cv_sizeof_size_t=4
|
||||
ac_cv_sizeof_pid_t=4
|
||||
;;
|
||||
esac
|
||||
|
||||
######################################################################
|
||||
# gdb
|
||||
######################################################################
|
||||
gdb_cv_func_ptrace_args=int,int,long,long
|
||||
|
||||
######################################################################
|
||||
# dpkg
|
||||
######################################################################
|
||||
dpkg_cv_va_copy=yes
|
||||
|
||||
######################################################################
|
||||
# coreutils
|
||||
######################################################################
|
||||
ac_cv_search_clock_gettime=no
|
||||
gl_cv_fs_space=yes
|
||||
|
||||
######################################################################
|
||||
# tcpdump
|
||||
######################################################################
|
||||
ac_cv_linux_vers=2
|
||||
ac_cv_func_pcap_findalldevs=no
|
||||
|
||||
######################################################################
|
||||
# flex
|
||||
######################################################################
|
||||
ac_cv_func_malloc_0_nonnull=yes
|
||||
ac_cv_func_realloc_0_nonnull=yes
|
||||
|
||||
######################################################################
|
||||
# tar
|
||||
######################################################################
|
||||
tar_gl_cv_func_mknod_works=yes
|
@ -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");
|
||||
|
41
build/external/Makefile
vendored
41
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_VERSION ?= $(shell git describe --abbrev=0 | 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,24 @@ CMAKE?=cmake
|
||||
endif
|
||||
|
||||
ARCH_X86_64=$(filter x86_64,$(shell uname -m))
|
||||
AARCH64=$(filter aarch64,$(shell uname -m))
|
||||
|
||||
include packages.mk
|
||||
include packages/nasm.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/rdma-core.mk
|
||||
include packages/libbpf.mk
|
||||
|
||||
.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), nasm-install ipsec-mb-install) dpdk-install rdma-core-install quicly-install libbpf-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
|
||||
config: $(if $(ARCH_X86_64), nasm-config ipsec-mb-config) dpdk-config rdma-core-config quicly-build
|
||||
|
||||
##############################################################################
|
||||
# .deb packaging
|
||||
@ -84,7 +69,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
|
||||
@ -121,7 +106,7 @@ endif
|
||||
RPM_VER := $(PKG_VERSION)
|
||||
RPM_ARCH=$(shell rpm --eval "%{_arch}" 2> /dev/null)
|
||||
DEV_RPM=vpp-ext-deps-$(RPM_VER)-$(PKG_SUFFIX).$(RPM_ARCH).rpm
|
||||
INSTALLED_RPM_VER=$(shell rpm -q --queryformat '%{VERSION}-%{RELEASE}' vpp-ext-deps 2> /dev/null | grep -v "vpp-ext-deps")
|
||||
INSTALLED_RPM_VER=$(shell rpm -q --queryformat '%{VERSION}-%{RELEASE}' vpp-ext-deps 2> /dev/null | grep -v "not inst")
|
||||
|
||||
.PHONY: build-rpm install-rpm check-rpm
|
||||
|
||||
@ -172,17 +157,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
|
||||
|
6
build/external/deb/debian/rules
vendored
6
build/external/deb/debian/rules
vendored
@ -1,9 +1,6 @@
|
||||
#!/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-ext-deps
|
||||
|
||||
VERSION = $(shell dpkg-parsechangelog | sed -nr '/^Version:/s/Version: //p')
|
||||
@ -26,8 +23,5 @@ 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/
|
||||
|
2
build/external/mlx_rdma_dpdk_matrix.txt
vendored
2
build/external/mlx_rdma_dpdk_matrix.txt
vendored
@ -1,2 +0,0 @@
|
||||
rdma=49.0 dpdk=23.11
|
||||
rdma=51.0 dpdk=24.03
|
27
build/external/packages.mk
vendored
27
build/external/packages.mk
vendored
@ -101,18 +101,11 @@ define $1_config_cmds
|
||||
endef
|
||||
endif
|
||||
|
||||
ifneq ($(filter $1,$(VPP_SKIP_EXTERNAL)), $1)
|
||||
$(B)/.$1.config.ok: $(B)/.$1.patch.ok $(addprefix $(B)/.,$(addsuffix .install.ok,$($1_depends)))
|
||||
$(B)/.$1.config.ok: $(B)/.$1.patch.ok $(addsuffix -install,$($1_depends))
|
||||
$$(call h1,"configuring $1 $($1_version) - log: $$($1_config_log)")
|
||||
@mkdir -p $$($1_build_dir)
|
||||
$$(call $1_config_cmds)
|
||||
@touch $$@
|
||||
else
|
||||
$(B)/.$1.config.ok:
|
||||
$$(call h1,"Skipping $1 $($1_version)")
|
||||
@mkdir -p $(B)
|
||||
@touch $$@
|
||||
endif
|
||||
|
||||
.PHONY: $1-config
|
||||
$1-config: $(B)/.$1.config.ok
|
||||
@ -127,17 +120,10 @@ define $1_build_cmds
|
||||
endef
|
||||
endif
|
||||
|
||||
ifneq ($(filter $1,$(VPP_SKIP_EXTERNAL)), $1)
|
||||
$(B)/.$1.build.ok: $(B)/.$1.config.ok
|
||||
$$(call h1,"building $1 $($1_version) - log: $$($1_build_log)")
|
||||
$$(call $1_build_cmds)
|
||||
@touch $$@
|
||||
else
|
||||
$(B)/.$1.build.ok:
|
||||
$$(call h1,"Skipping $1 $($1_version)")
|
||||
@mkdir -p $(B)
|
||||
@touch $$@
|
||||
endif
|
||||
|
||||
.PHONY: $1-build
|
||||
$1-build: $(B)/.$1.build.ok
|
||||
@ -152,24 +138,13 @@ define $1_install_cmds
|
||||
endef
|
||||
endif
|
||||
|
||||
ifneq ($(filter $1,$(VPP_SKIP_EXTERNAL)), $1)
|
||||
$(B)/.$1.install.ok: $(B)/.$1.build.ok
|
||||
$$(call h1,"installing $1 $($1_version) - log: $$($1_install_log)")
|
||||
$$(call $1_install_cmds)
|
||||
@touch $$@
|
||||
else
|
||||
$(B)/.$1.install.ok:
|
||||
$$(call h1,"Skipping $1 $($1_version)")
|
||||
@mkdir -p $(B)
|
||||
@touch $$@
|
||||
endif
|
||||
|
||||
.PHONY: $1-install
|
||||
$1-install: $(B)/.$1.install.ok
|
||||
|
||||
.PHONY: $1-show-%
|
||||
$1-show-%:
|
||||
@echo $$($$*)
|
||||
|
||||
ALL_TARGETS += $1-install
|
||||
endef
|
||||
|
53
build/external/packages/dpdk.mk
vendored
53
build/external/packages/dpdk.mk
vendored
@ -14,34 +14,22 @@
|
||||
DPDK_PKTMBUF_HEADROOM ?= 128
|
||||
DPDK_USE_LIBBSD ?= n
|
||||
DPDK_DEBUG ?= n
|
||||
DPDK_MLX4_PMD ?= n
|
||||
DPDK_MLX5_PMD ?= n
|
||||
DPDK_MLX5_COMMON_PMD ?= n
|
||||
DPDK_TAP_PMD ?= n
|
||||
DPDK_FAILSAFE_PMD ?= n
|
||||
DPDK_MACHINE ?= default
|
||||
DPDK_MLX_IBV_LINK ?= static
|
||||
|
||||
dpdk_version ?= 24.03
|
||||
dpdk_version ?= 21.02
|
||||
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
|
||||
dpdk_tarball_md5sum_22.07 := fb73b58b80b1349cd05fe9cf6984afd4
|
||||
dpdk_tarball_md5sum_22.03 := a07ca8839f98062f46e1cc359735cce8
|
||||
dpdk_tarball_md5sum_21.11 := 58660bbbe9e95abce86e47692b196555
|
||||
dpdk_tarball_md5sum_21.02 := 2c3e4800b04495ad7fa8656a7e1a3ec1
|
||||
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)
|
||||
DPDK_MLX5_COMMON_PMD ?= $(DPDK_MLX_DEFAULT)
|
||||
# Debug or release
|
||||
|
||||
DPDK_BUILD_TYPE:=release
|
||||
@ -52,12 +40,10 @@ endif
|
||||
DPDK_DRIVERS_DISABLED := baseband/\*, \
|
||||
bus/dpaa, \
|
||||
bus/ifpga, \
|
||||
common/cnxk, \
|
||||
compress/isal, \
|
||||
compress/octeontx, \
|
||||
compress/zlib, \
|
||||
crypto/ccp, \
|
||||
crypto/cnxk, \
|
||||
crypto/dpaa_sec, \
|
||||
crypto/openssl, \
|
||||
crypto/aesni_mb, \
|
||||
@ -67,11 +53,9 @@ DPDK_DRIVERS_DISABLED := baseband/\*, \
|
||||
crypto/zuc, \
|
||||
event/\*, \
|
||||
mempool/dpaa, \
|
||||
mempool/cnxk, \
|
||||
net/af_packet, \
|
||||
net/bnx2x, \
|
||||
net/bonding, \
|
||||
net/cnxk, \
|
||||
net/ipn3ke, \
|
||||
net/liquidio, \
|
||||
net/pcap, \
|
||||
@ -80,14 +64,13 @@ DPDK_DRIVERS_DISABLED := baseband/\*, \
|
||||
net/softnic, \
|
||||
net/thunderx, \
|
||||
raw/ifpga, \
|
||||
net/af_xdp
|
||||
net/af_xdp
|
||||
|
||||
DPDK_LIBS_DISABLED := acl, \
|
||||
bbdev, \
|
||||
bitratestats, \
|
||||
bpf, \
|
||||
cfgfile, \
|
||||
cnxk, \
|
||||
distributor, \
|
||||
efd, \
|
||||
fib, \
|
||||
@ -137,19 +120,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 +143,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
|
||||
@ -175,26 +153,23 @@ DPDK_MESON_ARGS = \
|
||||
--libdir lib \
|
||||
--prefix $(dpdk_install_dir) \
|
||||
-Dtests=false \
|
||||
-Denable_driver_sdk=true \
|
||||
"-Ddisable_drivers=$(DPDK_DRIVERS_DISABLED)" \
|
||||
"-Ddisable_libs=$(DPDK_LIBS_DISABLED)" \
|
||||
-Db_pie=true \
|
||||
-Dmachine=$(DPDK_MACHINE) \
|
||||
--buildtype=$(DPDK_BUILD_TYPE) \
|
||||
-Denable_kmods=false \
|
||||
${DPDK_MLX_CONFIG_FLAG}
|
||||
|
||||
PIP_DOWNLOAD_DIR = $(CURDIR)/downloads/
|
||||
|
||||
define dpdk_config_cmds
|
||||
cd $(dpdk_build_dir) && \
|
||||
echo "DPDK_MLX_DEFAULT=$(DPDK_MLX_DEFAULT)" > ../../../dpdk_mlx_default.sh && \
|
||||
rm -rf ../dpdk-meson-venv && \
|
||||
mkdir -p ../dpdk-meson-venv && \
|
||||
python3 -m venv ../dpdk-meson-venv && \
|
||||
source ../dpdk-meson-venv/bin/activate && \
|
||||
(if ! ls $(PIP_DOWNLOAD_DIR)meson* ; then pip3 download -d $(PIP_DOWNLOAD_DIR) -f $(DL_CACHE_DIR) meson==0.55.3 setuptools wheel pyelftools; fi) && \
|
||||
pip3 install --no-index --find-links=$(PIP_DOWNLOAD_DIR) meson==0.55.3 pyelftools && \
|
||||
(if ! ls $(PIP_DOWNLOAD_DIR)meson* ; then pip3 download -d $(PIP_DOWNLOAD_DIR) -f $(DL_CACHE_DIR) meson==0.54 setuptools wheel pyelftools; fi) && \
|
||||
pip3 install --no-index --find-links=$(PIP_DOWNLOAD_DIR) meson==0.54 pyelftools && \
|
||||
PKG_CONFIG_PATH=$(dpdk_install_dir)/lib/pkgconfig meson setup $(dpdk_src_dir) \
|
||||
$(dpdk_build_dir) \
|
||||
$(DPDK_MESON_ARGS) \
|
||||
@ -206,14 +181,10 @@ define dpdk_config_cmds
|
||||
$(call dpdk_config_def,USE_LIBBSD)
|
||||
endef
|
||||
|
||||
ifeq ("$(DPDK_VERBOSE)","1")
|
||||
DPDK_VERBOSE_BUILD = --verbose
|
||||
endif
|
||||
|
||||
define dpdk_build_cmds
|
||||
cd $(dpdk_build_dir) && \
|
||||
source ../dpdk-meson-venv/bin/activate && \
|
||||
meson compile $(DPDK_VERBOSE_BUILD) -C . | tee $(dpdk_build_log) && \
|
||||
meson compile -C . | tee $(dpdk_build_log) && \
|
||||
deactivate
|
||||
endef
|
||||
|
||||
|
31
build/external/packages/ipsec-mb.mk
vendored
31
build/external/packages/ipsec-mb.mk
vendored
@ -11,21 +11,16 @@
|
||||
# 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.0
|
||||
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)
|
||||
ipsec-mb_url := http://github.com/01org/intel-ipsec-mb/archive/$(ipsec-mb_tarball)
|
||||
ipsec-mb_depends := nasm
|
||||
|
||||
define ipsec-mb_config_cmds
|
||||
@true
|
||||
@ -38,25 +33,11 @@ define ipsec-mb_build_cmds
|
||||
SAFE_LOOKUP=n \
|
||||
SAFE_DATA=n \
|
||||
PREFIX=$(ipsec-mb_install_dir) \
|
||||
NASM=$(ipsec-mb_install_dir)/bin/nasm \
|
||||
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
|
||||
|
58
build/external/packages/libbpf.mk
vendored
Normal file
58
build/external/packages/libbpf.mk
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
# 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:
|
||||
#
|
||||
# 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.
|
||||
|
||||
LIBBPF_DEBUG?=n
|
||||
|
||||
libbpf_version := 0.2
|
||||
libbpf_tarball := v$(libbpf_version).tar.gz
|
||||
libbpf_tarball_md5sum_0.2 := cd0f82d76a9830c1e66b1a249393d5a8
|
||||
libbpf_tarball_md5sum_0.1.0 := 00b991a6e2d28d797a56ab1575ed40e1
|
||||
libbpf_tarball_md5sum := $(libbpf_tarball_md5sum_$(libbpf_version))
|
||||
libbpf_tarball_strip_dirs := 1
|
||||
libbpf_url := https://github.com/libbpf/libbpf/archive/$(libbpf_tarball)
|
||||
|
||||
LIBBPF_CFLAGS:=-g -Werror -Wall -fPIC -fvisibility=hidden
|
||||
ifeq ($(LIBBPF_DEBUG),y)
|
||||
LIBBPF_CFLAGS+= -O0
|
||||
else
|
||||
LIBBPF_CFLAGS+= -O2
|
||||
endif
|
||||
|
||||
# check for libelf, zlib and kernel if_xdp.h presence
|
||||
LIBBPF_DEPS_CHECK:="\#include <linux/if_xdp.h>\\n\#include <gelf.h>\\n\#include <zlib.h>\\nint main(void){return 0;}"
|
||||
LIBBPF_DEPS_CHECK:=$(shell echo -e $(LIBBPF_DEPS_CHECK) | $(CC) -xc -lelf -lz -o /dev/null - > /dev/null 2>&1)
|
||||
LIBBPF_DEPS_CHECK:=$(.SHELLSTATUS)
|
||||
|
||||
define libbpf_config_cmds
|
||||
@true
|
||||
endef
|
||||
|
||||
define libbpf_build_cmds__
|
||||
BUILD_STATIC_ONLY=y OBJDIR='$(libbpf_build_dir)' PREFIX='' DESTDIR='$(libbpf_install_dir)' CFLAGS='$(LIBBPF_CFLAGS)' make -C '$(libbpf_src_dir)/src' $(1) > $(2)
|
||||
endef
|
||||
|
||||
define libbpf_build_cmds
|
||||
$(call libbpf_build_cmds__,,$(libbpf_build_log))
|
||||
endef
|
||||
|
||||
define libbpf_install_cmds
|
||||
$(call libbpf_build_cmds__,install,$(libbpf_install_log))
|
||||
endef
|
||||
|
||||
ifneq ($(LIBBPF_DEPS_CHECK),0)
|
||||
$(warning "Missing libbpf dependencies. libbpf will be skipped.")
|
||||
libbpf-install:
|
||||
@true
|
||||
else
|
||||
$(eval $(call package,libbpf))
|
||||
endif
|
@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2020 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:
|
||||
@ -11,10 +11,11 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
add_vpp_plugin(bufmon
|
||||
SOURCES
|
||||
bufmon.c
|
||||
nasm_version := 2.14.02
|
||||
nasm_tarball := nasm-$(nasm_version).tar.xz
|
||||
nasm_tarball_md5sum := 6390bd67b07ff1df9fe628b6929c0353
|
||||
nasm_tarball_strip_dirs := 1
|
||||
nasm_url := https://ftp.osuosl.org/pub/blfs/conglomeration/nasm/$(nasm_tarball)
|
||||
nasm_cflags := -Wno-implicit-fallthrough -std=c11
|
||||
|
||||
COMPONENT
|
||||
vpp-plugin-devtools
|
||||
)
|
||||
$(eval $(call package,nasm))
|
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))
|
||||
|
18
build/external/packages/quicly.mk
vendored
18
build/external/packages/quicly.mk
vendored
@ -11,9 +11,9 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
quicly_version := 0.1.4-vpp
|
||||
quicly_version := 0.1.3-vpp
|
||||
quicly_tarball := quicly_$(quicly_version).tar.gz
|
||||
quicly_tarball_md5sum := 5419a0f340c5572bcf682c08acc84c77
|
||||
quicly_tarball_md5sum := 195f156f311458f1bd4540765e62dd27
|
||||
quicly_tarball_strip_dirs := 1
|
||||
quicly_url := https://github.com/vpp-quic/quicly/releases/download/v$(quicly_version)/quicly_$(quicly_version).tar.gz
|
||||
|
||||
@ -21,17 +21,16 @@ picotls_build_dir := $(B)/build-picotls
|
||||
|
||||
define quicly_build_cmds
|
||||
@cd $(quicly_build_dir) && \
|
||||
rm -f $(quicly_build_log) && \
|
||||
$(CMAKE) -DWITH_DTRACE=OFF \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=$(quicly_install_dir) \
|
||||
$(quicly_src_dir) >> $(quicly_build_log)
|
||||
@$(MAKE) quicly $(MAKE_ARGS) -C $(quicly_build_dir) >> $(quicly_build_log)
|
||||
$(quicly_src_dir) > $(quicly_build_log)
|
||||
@$(MAKE) quicly $(MAKE_ARGS) -C $(quicly_build_dir) > $(quicly_build_log)
|
||||
|
||||
@mkdir -p $(picotls_build_dir)
|
||||
@cd $(picotls_build_dir) && \
|
||||
$(CMAKE) -DWITH_DTRACE=OFF -DCMAKE_INSTALL_PREFIX:PATH=$(quicly_install_dir) \
|
||||
$(quicly_src_dir)/deps/picotls >> $(quicly_build_log)
|
||||
@$(MAKE) picotls-core picotls-openssl $(MAKE_ARGS) -C $(picotls_build_dir) >> $(quicly_build_log)
|
||||
$(quicly_src_dir)/deps/picotls > $(quicly_build_log)
|
||||
@$(MAKE) picotls-core picotls-openssl $(MAKE_ARGS) -C $(picotls_build_dir) > $(quicly_build_log)
|
||||
endef
|
||||
|
||||
define quicly_config_cmds
|
||||
@ -39,9 +38,8 @@ define quicly_config_cmds
|
||||
endef
|
||||
|
||||
define quicly_install_cmds
|
||||
@rm -f $(quicly_install_log)
|
||||
@$(MAKE) $(MAKE_ARGS) -C $(quicly_build_dir) install >> $(quicly_install_log)
|
||||
@$(MAKE) $(MAKE_ARGS) -C $(picotls_build_dir) install >> $(quicly_install_log)
|
||||
@$(MAKE) $(MAKE_ARGS) -C $(quicly_build_dir) install > $(quicly_install_log)
|
||||
@$(MAKE) $(MAKE_ARGS) -C $(picotls_build_dir) install > $(quicly_install_log)
|
||||
endef
|
||||
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user