From 15be02bd8a6d302ea883f624fdb197d85ebb09d1 Mon Sep 17 00:00:00 2001 From: Aihua Li Date: Tue, 20 Jan 2015 18:59:00 -0800 Subject: Added baseline project directory layout Change-Id: I4295fa3cb02b13677662d407dc8f81a16f60110c Reviewed-by: Maryam Tahhan Reviewed-by: Stephen Finucane Reviewed-by: Bin Hu JIRA: VSPERF-15 Signed-off-by: Aihua Li --- README | 31 ++++++++++++++++++ jobs/README | 1 + systems/README | 1 + systems/Ubuntu/build_base_machine.sh | 62 ++++++++++++++++++++++++++++++++++++ systems/build_base_machine.sh | 39 +++++++++++++++++++++++ testcases/README | 8 +++++ tools/README | 1 + vswitches/README | 6 ++++ 8 files changed, 149 insertions(+) create mode 100644 README create mode 100644 jobs/README create mode 100644 systems/README create mode 100755 systems/Ubuntu/build_base_machine.sh create mode 100755 systems/build_base_machine.sh create mode 100644 testcases/README create mode 100644 tools/README create mode 100644 vswitches/README diff --git a/README b/README new file mode 100644 index 00000000..4efbde82 --- /dev/null +++ b/README @@ -0,0 +1,31 @@ +# vswitchperf project directory layout: +--------------------------------------- + +\- vswitchperf + \- systems - contains linux distributions + |- build_base_machine.sh - Input for generating Makefiles + \- Fedora - Fedora specific setup + \- Ubuntu - Ubuntu specific setup + \- vswitches - API to setup vswitches DUT + |- add_switch - script to add switch + |- add_port - script to add ports on switch + |- add_flow - script to add flow on switch + \- ovs-dpdk - contains implementation on ovs-dpdk + \- ovs-kernel - contains implementation on ovs-kernel + \- tools - collections of tool sets + \- pktgen - contains various packet generator + |- dpkt-pktgen - dpdk pkt generator + |- pktgen - netmap pkt generator + |- pktcounter - a kernel based packet generator + |- spirent - script to control spirent + |- ixia - script to control ixia + \- collectors - contains various data collectors + \- testcases - collections of test cases + |- p2p - test PHY to PHY + |- pvp - test PHY to VNF to PHY + |- pvvp - test PHY to VNF to VNF to PHY + |- p2v - test PHY to VNF + |- v2p - test VNF to PHY + \- jobs - collections of job configurations + |- dpdk.conf - dpdk configuration + \- test_spec - contains test specifications diff --git a/jobs/README b/jobs/README new file mode 100644 index 00000000..9620ca97 --- /dev/null +++ b/jobs/README @@ -0,0 +1 @@ +This folder contains frequently used test configurations diff --git a/systems/README b/systems/README new file mode 100644 index 00000000..16ebc0c5 --- /dev/null +++ b/systems/README @@ -0,0 +1 @@ +This folder abstract out details among linux distros. diff --git a/systems/Ubuntu/build_base_machine.sh b/systems/Ubuntu/build_base_machine.sh new file mode 100755 index 00000000..be1e25d5 --- /dev/null +++ b/systems/Ubuntu/build_base_machine.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# +# Build a base machine for Ubuntu style distro +# +# Copyright 2015 OPNFV +# +# 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. + +# Synchronize package index files +apt-get -y update + +# Make and Compilers +apt-get -y install make +apt-get -y install automake +apt-get -y install gcc +apt-get -y install gcc++ +apt-get -y install libssl1.0.0 +apt-get -y install libxml2 +apt-get -y install zlib1g-dev +apt-get -y install scapy + +# Linux Kernel Source +apt-get -y install linux-source +apt-get -y install pkg-config + +# Install package dependecies +apt-get -y install libncurses5-dev +apt-get -y install curl +apt-get -y install libcurl4-openssl-dev +apt-get -y install autoconf libtool +apt-get -y install libpcap-dev +apt-get -y install libglib2.0 + +# Some useful tools you may optionally install +#apt-get -y install ctags +#apt-get -y install wireshark + +# packages related to VM + +# a few manual fix up on a ubuntu +cd /lib/x86_64-linux-gnu +ln -sf libssl.so.1.0.0 libssl.so +ln -sf libcrypto.so.1.0.0 libcrypto.so + +cd /usr/lib/x86_64-linux-gnu +ln -sf libxml2.so.2 libxml2.so + + + diff --git a/systems/build_base_machine.sh b/systems/build_base_machine.sh new file mode 100755 index 00000000..82cf4762 --- /dev/null +++ b/systems/build_base_machine.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# +# Top level scripts to build basic setup for the host +# + +# Copyright 2015 OPNFV +# +# 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. + +# function to emit error message before quitting +function die() { + echo $1 + exit 1 +} + +# determine this machine's distro-version + +distro=`lsb_release -i | cut -f 2` +distro_dir=$distro + +if [ -d "$distro_dir" ] && [ -e $distro_dir/build_base_machine.sh ]; then + $distro_dir/build_base_machine.sh +else + die "$distro_dir is not yet supported" +fi diff --git a/testcases/README b/testcases/README new file mode 100644 index 00000000..be6ffae2 --- /dev/null +++ b/testcases/README @@ -0,0 +1,8 @@ +### This folder contains various test cases for performance test. + +* P2P: packets flow from PHY -> vSwitch -> PHY +* P2V: packets flow from PHY -> vSwitch -> VNF +* V2V: packets flow from VNF -> vSwitch -> VNF +* V2P: packets flow from VNF -> vSwitch -> PHY +* PVP: pakcets flow from PHY -> vSwitch -> VNF -> vSwitch -> PHY +* PVVP: packets flow from PHY -> vSwitch -> VNF -> vswitch -> VNF -> vSwitch -> PHY diff --git a/tools/README b/tools/README new file mode 100644 index 00000000..a10c2bb3 --- /dev/null +++ b/tools/README @@ -0,0 +1 @@ +This folder contains various tool sets for vswitch performance diff --git a/vswitches/README b/vswitches/README new file mode 100644 index 00000000..5af284ec --- /dev/null +++ b/vswitches/README @@ -0,0 +1,6 @@ +This folder contains various vswitches to be tested + +Required API for each vswitch: + add_switch + add_port + add_flow -- cgit 1.2.3-korg