Skip to content

Commit

Permalink
Import initial drop of OVS code
Browse files Browse the repository at this point in the history
This is the modified OVS code that consist of the base for
openvswitch-halon

Change-Id: I538d5e85574246641ac91f5bc415c07a177323fe
Signed-off-by: Diego Dompe <[email protected]>
  • Loading branch information
Diego Dompe committed Jun 5, 2015
1 parent c8bf2f8 commit 45f9198
Show file tree
Hide file tree
Showing 1,103 changed files with 389,774 additions and 0 deletions.
72 changes: 72 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#*#
*.a
*.d
*.gcno
*.gcda
*.ko
*.la
*.lo
*.loT
*.mod.c
*.o
*.obj
*.exe
*.exp
*.ilk
*.lib
*.pdb
*.pyc
*.so
*.suo
**/*.sym
*~
*,cover
.#*
.*.cmd
.*.swp
.coverage
.deps
.dirstamp
.libs
.tmp_versions
.gitattributes
/Makefile
/Makefile.in
/aclocal.m4
/all-distfiles
/all-gitfiles
/autom4te.cache
/build-arch-stamp
/build-indep-stamp
/compile
/config.guess
/config.h
/config.h.in
/config.log
/config.status
/config.sub
/configure
/configure-stamp
/depcomp
/distfiles
/install-sh
/libtool
/manpage-check
/missing
/missing-distfiles
/package.m4
/m4/ltargz.m4
/m4/ltdl.m4
/stamp-h1
/_build-gcc
/_build-clang
Module.symvers
TAGS
cscope.*
tags
_debian
odp-netlink.h
OvsDpInterface.h
/.vagrant/
/build
/libltdl/
27 changes: 27 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
language: c
compiler:
- gcc
- clang

before_install: ./.travis/prepare.sh

env:
- OPTS="--disable-ssl"
- TESTSUITE=1 KERNEL=3.18.1
- TESTSUITE=1 OPTS="--enable-shared"
- KERNEL=3.17.7 DPDK=1
- KERNEL=3.17.7 DPDK=1 OPTS="--enable-shared"
- KERNEL=3.17.7
- KERNEL=3.16.7
- KERNEL=3.14.27
- KERNEL=3.12.35
- KERNEL=3.10.63
- KERNEL=3.4.105
- KERNEL=2.6.32.65

script: ./.travis/build.sh $OPTS

notifications:
email:
recipients:
- secure: V7W+NdS3L1aXCMUo2EBmOIHeQHT76r78p3f25XFISz8D4a2FnXA2ydwQVbhiZxa+TRgrskY/iB5GU1fS70+qmIaGxnGAVRV8lIQVshoiaKuxvMcha0FdN4d44i1AmLiM2DK8r5k3+fEWTQCvq9mrXQnDJVEPpYfVGj5+b+9oBx8=
101 changes: 101 additions & 0 deletions .travis/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
#!/bin/bash

set -o errexit

KERNELSRC=""
CFLAGS="-Werror"
EXTRA_OPTS=""

function install_kernel()
{
if [[ "$1" =~ ^3.* ]]; then
PREFIX="v3.x"
else
PREFIX="v2.6/longterm/v2.6.32"
fi

wget https://www.kernel.org/pub/linux/kernel/${PREFIX}/linux-${1}.tar.gz
tar xzvf linux-${1}.tar.gz > /dev/null
cd linux-${1}
make allmodconfig

# Older kernels do not include openvswitch
if [ -d "net/openvswitch" ]; then
make net/openvswitch/
else
make net/bridge/
fi

KERNELSRC=$(pwd)
if [ ! "$DPDK" ]; then
EXTRA_OPTS="--with-linux=$(pwd)"
fi
echo "Installed kernel source in $(pwd)"
cd ..
}

function install_dpdk()
{
if [ -n "$DPDK_GIT" ]; then
git clone $DPDK_GIT dpdk-$1
cd dpdk-$1
git checkout v$1
else
wget http://www.dpdk.org/browse/dpdk/snapshot/dpdk-$1.tar.gz
tar xzvf dpdk-$1.tar.gz > /dev/null
cd dpdk-$1
fi
find ./ -type f | xargs sed -i 's/max-inline-insns-single=100/max-inline-insns-single=400/'
sed -ri 's,(CONFIG_RTE_BUILD_COMBINE_LIBS=).*,\1y,' config/common_linuxapp
sed -ri '/CONFIG_RTE_LIBNAME/a CONFIG_RTE_BUILD_FPIC=y' config/common_linuxapp
sed -ri '/EXECENV_CFLAGS = -pthread -fPIC/{s/$/\nelse ifeq ($(CONFIG_RTE_BUILD_FPIC),y)/;s/$/\nEXECENV_CFLAGS = -pthread -fPIC/}' mk/exec-env/linuxapp/rte.vars.mk
make config CC=gcc T=x86_64-native-linuxapp-gcc
make CC=gcc RTE_KERNELDIR=$KERNELSRC
echo "Installed DPDK source in $(pwd)"
cd ..
}

function configure_ovs()
{
./boot.sh && ./configure $*
}

if [ "$KERNEL" ] || [ "$DPDK" ]; then
install_kernel $KERNEL
fi

if [ "$DPDK" ]; then
if [ -z "$DPDK_VER" ]; then
DPDK_VER="1.7.1"
fi
install_dpdk $DPDK_VER
# Disregard bad function cassts until DPDK is fixed
CFLAGS="$CFLAGS -Wno-error=bad-function-cast -Wno-error=cast-align"
EXTRA_OPTS+="--with-dpdk=./dpdk-$DPDK_VER/build"
elif [ $CC != "clang" ]; then
# DPDK headers currently trigger sparse errors
CFLAGS="$CFLAGS -Wsparse-error"
fi

configure_ovs $EXTRA_OPTS $*

# Only build datapath if we are testing kernel w/o running testsuite
if [ $KERNEL ] && [ ! "$TESTSUITE" ] && [ ! "$DPDK" ]; then
cd datapath
fi

if [ $CC = "clang" ]; then
make CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument"
else
make CFLAGS="$CFLAGS" C=1
fi

if [ $TESTSUITE ] && [ $CC != "clang" ]; then
if ! make distcheck; then
# testsuite.log is necessary for debugging.
cat */_build/tests/testsuite.log
exit 1
fi
fi

exit 0
7 changes: 7 additions & 0 deletions .travis/prepare.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

sudo apt-get update -qq
sudo apt-get install -qq libssl-dev llvm-dev

git clone git://git.kernel.org/pub/scm/devel/sparse/chrisl/sparse.git
cd sparse && make && sudo make install PREFIX=/usr && cd ..
Loading

0 comments on commit 45f9198

Please sign in to comment.