Compare commits

..

1 Commits

Author SHA1 Message Date
Andrew Yourtchenko
14df6fc1ea misc: Initial changes for stable/2310 branch
Type: docs
Change-Id: I82d323c6e4585772e5c9a9f5b5bbb77b65c1da85
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2023-09-20 16:56:20 +02:00
1357 changed files with 15158 additions and 50187 deletions

View File

@ -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
View File

@ -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

View File

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

View File

@ -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/

View File

@ -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 ]

View File

@ -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

View File

@ -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)

View File

@ -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}) ; \

View File

@ -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");

View File

@ -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

View File

@ -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

View File

@ -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/

View File

@ -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

View File

@ -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))

View File

@ -23,10 +23,11 @@ RDMA_CORE_DEBUG?=n
# 2. Verify that the file build/external/dpdk_mlx_default.sh was generated
# and contains 'DPDK_MLX_DEFAULT=y'
#
rdma-core_version := 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)

View File

@ -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

View File

@ -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
View File

@ -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.\*

View File

@ -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

View File

@ -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

View File

@ -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
^^^^^^^^^^^^^^^^^^^^^^

View File

@ -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

View File

@ -1 +1 @@
../../../../src/plugins/srmpls/sr_doc.rst
../../../../src/vnet/srmpls/sr_doc.rst

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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 youre
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 @@ Heres 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, were 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

View File

@ -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