From 171bf5025d8358b4dc692b3751675e42b1ebec9c Mon Sep 17 00:00:00 2001 From: "Sridhar K. N. Rao" Date: Mon, 31 May 2021 22:04:07 +0530 Subject: SYS: New Software versions and OS-versions. This patch adds support for the following: DPDK - 20.05 OVS - 2.14 VPP - 21.01 Ubuntu - 20.04 Fedora - 33 JIRA: VINEPERF-645 Signed-off-by: Sridhar K. N. Rao Change-Id: I8810ef04d1beb7f3bb39fb3a1420d0b15dbfa395 --- src/dpdk/Makefile | 2 +- src/package-list.mk | 6 +- systems/README.md | 12 ++++ systems/centos/build_base_machine.sh | 1 + systems/centos/prepare_python_env.sh | 1 + systems/fedora/33/build_base_machine.sh | 75 ++++++++++++++++++++++++ systems/fedora/33/prepare_python_env.sh | 30 ++++++++++ systems/ubuntu/20.04/build_base_machine.sh | 94 ++++++++++++++++++++++++++++++ systems/ubuntu/20.04/prepare_python_env.sh | 29 +++++++++ 9 files changed, 246 insertions(+), 4 deletions(-) create mode 100644 systems/fedora/33/build_base_machine.sh create mode 100644 systems/fedora/33/prepare_python_env.sh create mode 100755 systems/ubuntu/20.04/build_base_machine.sh create mode 100755 systems/ubuntu/20.04/prepare_python_env.sh diff --git a/src/dpdk/Makefile b/src/dpdk/Makefile index 1a1521db..0a4b9724 100755 --- a/src/dpdk/Makefile +++ b/src/dpdk/Makefile @@ -54,7 +54,7 @@ ifeq ($(DPDK_TAG_MAJOR),v2) else DPDK_TARGET = x86_64-native-linuxapp-gcc CONFIG_FILE_BASE = $(WORK_DIR)/config/common_base - CONFIG_FILE_LINUXAPP = $(WORK_DIR)/config/common_linuxapp + CONFIG_FILE_LINUXAPP = $(WORK_DIR)/config/common_linux endif endif diff --git a/src/package-list.mk b/src/package-list.mk index 1e40a60d..49aa82c0 100644 --- a/src/package-list.mk +++ b/src/package-list.mk @@ -13,15 +13,15 @@ # dpdk section # DPDK_URL ?= git://dpdk.org/dpdk DPDK_URL ?= http://dpdk.org/git/dpdk -DPDK_TAG ?= v18.11-rc2 +DPDK_TAG ?= v20.05 # OVS section OVS_URL ?= https://github.com/openvswitch/ovs -OVS_TAG ?= v2.12.0 +OVS_TAG ?= v2.14.0 # VPP section VPP_URL ?= https://git.fd.io/vpp -VPP_TAG ?= v19.08.1 +VPP_TAG ?= v21.01 # QEMU section QEMU_URL ?= https://github.com/qemu/qemu.git diff --git a/systems/README.md b/systems/README.md index ca6557ea..60f903c1 100644 --- a/systems/README.md +++ b/systems/README.md @@ -16,3 +16,15 @@ or with password less sudo access. If you want to use vsperf in trafficgen-mode ONLY, then add a parameter. ./build_base_machine.sh trafficgen + + +Newer Kernel Versions: +---------------------- + +May need following changes: + +1. In src/l2fwd/l2fwd.c, comment out the line with xmit_more (193). + +2. In src/qemu/Makefile, In line 30, we MAY have to add the following: + --disable-werror --python='/usr/bin/python3' + diff --git a/systems/centos/build_base_machine.sh b/systems/centos/build_base_machine.sh index 0e1ed830..fdaa37b5 100755 --- a/systems/centos/build_base_machine.sh +++ b/systems/centos/build_base_machine.sh @@ -78,6 +78,7 @@ sudo yum -y install centos-release-scl-rh yum -y install $(echo " rh-python36 rh-python36-python-tkinter +python3-setuptools git-review " | grep -v ^#) # prevent ovs vanilla from building from source due to kernel incompatibilities diff --git a/systems/centos/prepare_python_env.sh b/systems/centos/prepare_python_env.sh index 4f5c0065..bbc853b2 100755 --- a/systems/centos/prepare_python_env.sh +++ b/systems/centos/prepare_python_env.sh @@ -24,5 +24,6 @@ fi scl enable rh-python36 " virtualenv "$VSPERFENV_DIR" --python /opt/rh/rh-python36/root/usr/bin/python3 source "$VSPERFENV_DIR"/bin/activate +pip install -U pip pip install -r ../requirements.txt " diff --git a/systems/fedora/33/build_base_machine.sh b/systems/fedora/33/build_base_machine.sh new file mode 100644 index 00000000..f521827e --- /dev/null +++ b/systems/fedora/33/build_base_machine.sh @@ -0,0 +1,75 @@ +#!/bin/bash +# +# Build a base machine for Fedora 26 +# +# Copyright 2017 OPNFV, Intel Corporation. +# +# 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. + +dnf -y install $(echo " +# Make and Compilers +make +automake +gcc +gcc-c++ +libxml2 +glibc +glib2-devel +kernel-devel +fuse-libs +fuse +fuse-devel +kernel-modules-extra +pixman-devel +openssl-devel +redhat-rpm-config +elfutils-libelf-devel + +# tools +curl +autoconf +libtool +libpcap-devel +libnet +vim +wget +git +pciutils +cifs-utils +socat +sysstat +sshpass + +# install python packages +python3-virtualenv +python3-setuptools +python3-pip +python3-dbus +python3-devel +python3-tkinter +systemd-python3 +python3-libs +python3-libreport +python3-abrt +python3-abrt-addon + +# libs +numactl +numactl-devel + +# install git-review tool +git-review +" | grep -v ^#) + +# Create hugepage dirs +mkdir -p /dev/hugepages diff --git a/systems/fedora/33/prepare_python_env.sh b/systems/fedora/33/prepare_python_env.sh new file mode 100644 index 00000000..becfd5ca --- /dev/null +++ b/systems/fedora/33/prepare_python_env.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# +# Prepare Python environment for vsperf execution on Fedora 26 systems. +# +# Copyright 2017 OPNFV, Intel Corporation. +# +# 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. + +if [ -d "$VSPERFENV_DIR" ] ; then + echo "Directory $VSPERFENV_DIR already exists. Skipping python virtualenv creation." + exit +fi + +# enable virtual environment in a subshell, so QEMU build can use python 2.7 + +(virtualenv "$VSPERFENV_DIR" --python /usr/bin/python3 +source "$VSPERFENV_DIR"/bin/activate +pip install -U pip +pip install -r ../requirements.txt +pip install six) diff --git a/systems/ubuntu/20.04/build_base_machine.sh b/systems/ubuntu/20.04/build_base_machine.sh new file mode 100755 index 00000000..ab30c347 --- /dev/null +++ b/systems/ubuntu/20.04/build_base_machine.sh @@ -0,0 +1,94 @@ +#!/bin/bash +# +# Build a base machine for Ubuntu 14.04 +# +# Copyright 2015 OPNFV, Intel Corporation. +# +# 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. +# +# Contributors: +# Aihua Li, Huawei Technologies. +# Martin Klozik, Intel Corporation. +# Abdul Halim, Intel Corporation. + +apt-get update +apt-get -y install $(echo " +# Make and Compilers +make +automake +gcc +g++ +libc6 +libc6-dev +libxml2 +fuse +libfuse2 +libfuse-dev +libssl-dev +libglib2.0-dev +zlib1g-dev + +# Linux Kernel Source +linux-source +linux-headers-$(uname -r) +pkg-config + +# tools +curl +libcurl4-openssl-dev +automake +autoconf +libtool +libpcap-dev +libnet1 +libncurses5-dev +vim +wget +git +pciutils +cifs-utils +socat +libpixman-1-0 +libpixman-1-dev +sysstat +sshpass + +# Java runtime environment: Required for Ixia TclClient +default-jre + +# install python packages +python3-pip +python3-setuptools +python3-dbus +python3-dev +python3-tk +python3-venv +libpython3.8 +python3-reportlab + +# libs +libnuma1 +libnuma-dev + +# install git-review tool +git-review +" | grep -v ^#) + +# fix: Ixia TclClient installation: cannot find 'libc.s0.6' +ln -sf $(locate libc.so.6) /lib/libc.so.6 + +# Install virtualenv +pip3 install virtualenv + +# Create hugepage dirs +mkdir -p /dev/hugepages diff --git a/systems/ubuntu/20.04/prepare_python_env.sh b/systems/ubuntu/20.04/prepare_python_env.sh new file mode 100755 index 00000000..c44a3bdd --- /dev/null +++ b/systems/ubuntu/20.04/prepare_python_env.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# +# Prepare Python environment for vsperf execution on Ubuntu 14.04 systems +# +# Copyright 2015-2017 OPNFV, Intel Corporation. +# +# 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. + +if [ -d "$VSPERFENV_DIR" ] ; then + echo "Directory $VSPERFENV_DIR already exists. Skipping python virtualenv creation." + exit +fi + +# enable virtual environment in a subshell, so QEMU build can use python 2.7 + +(virtualenv "$VSPERFENV_DIR" --python /usr/bin/python3 +source "$VSPERFENV_DIR"/bin/activate +pip install -U pip +pip install -r ../requirements.txt) -- cgit 1.2.3-korg