aboutsummaryrefslogtreecommitdiffstats
path: root/build-root/vagrant
diff options
context:
space:
mode:
Diffstat (limited to 'build-root/vagrant')
l---------build-root/vagrant1
-rw-r--r--build-root/vagrant/.gitignore1
-rw-r--r--build-root/vagrant/README28
-rw-r--r--build-root/vagrant/Vagrantfile113
-rw-r--r--build-root/vagrant/WELCOME61
-rwxr-xr-xbuild-root/vagrant/build.sh74
-rwxr-xr-xbuild-root/vagrant/clearinterfaces.sh17
-rw-r--r--build-root/vagrant/env.sh6
-rw-r--r--build-root/vagrant/install.sh30
-rwxr-xr-xbuild-root/vagrant/run.sh23
-rwxr-xr-xbuild-root/vagrant/update.sh48
11 files changed, 1 insertions, 401 deletions
diff --git a/build-root/vagrant b/build-root/vagrant
new file mode 120000
index 00000000..ada25b83
--- /dev/null
+++ b/build-root/vagrant
@@ -0,0 +1 @@
+../extras/vagrant \ No newline at end of file
diff --git a/build-root/vagrant/.gitignore b/build-root/vagrant/.gitignore
deleted file mode 100644
index a977916f..00000000
--- a/build-root/vagrant/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-.vagrant/
diff --git a/build-root/vagrant/README b/build-root/vagrant/README
deleted file mode 100644
index 238c90ce..00000000
--- a/build-root/vagrant/README
+++ /dev/null
@@ -1,28 +0,0 @@
-INTRO:
-
-This is a vagrant environment for VPP.
-
-VPP currently works under Linux and has support for:
-
-- Ubuntu 14.04, Ubuntu 16.04 and Centos7.2
-
-The VM builds VPP from source which can be located at /vpp
-
-VM PARTICULARS:
-This vagrant environment creates a VM based on environment variables found in ./env.sh
-To use, edit env.sh then
- source ./env.sh
- vagrant up
-
-By default, the VM created is/has:
-- Ubuntu 14.04
-- 2 vCPUs
-- 4G of RAM
-- 2 NICs (1 x NAT - host access, 1 x VPP DPDK enabled)
-
-PROVIDERS:
-
-Supported vagrant providers are:
-
-- Virtualbox, VMware Fusion/Workstation, Libvirt
-
diff --git a/build-root/vagrant/Vagrantfile b/build-root/vagrant/Vagrantfile
deleted file mode 100644
index b463d646..00000000
--- a/build-root/vagrant/Vagrantfile
+++ /dev/null
@@ -1,113 +0,0 @@
-# -*- mode: ruby -*-
-# vi: set ft=ruby :
-
-Vagrant.configure(2) do |config|
-
- # Pick the right distro and bootstrap, default is ubuntu1604
- distro = ( ENV['VPP_VAGRANT_DISTRO'] || "ubuntu1604")
- if distro == 'centos7'
- config.vm.box = "puppetlabs/centos-7.2-64-nocm"
- config.ssh.insert_key = false
- elsif distro == 'ubuntu1404'
- config.vm.box = "puppetlabs/ubuntu-14.04-64-nocm"
- else
- config.vm.box = "puppetlabs/ubuntu-16.04-64-nocm"
- end
- config.vm.box_check_update = false
-
- config.vm.provision :shell, :path => File.join(File.dirname(__FILE__),"update.sh")
- config.vm.provision :shell, :path => File.join(File.dirname(__FILE__),"build.sh"), :args => "/vpp vagrant"
-
- post_build = ( ENV['VPP_VAGRANT_POST_BUILD'] )
- if post_build == "test"
- config.vm.provision "shell", inline: "echo Testing VPP; cd /vpp; make test"
- elsif post_build == "install"
- config.vm.provision :shell, :path => File.join(File.dirname(__FILE__),"install.sh"), :args => "/vpp"
- config.vm.provision :shell, :path => File.join(File.dirname(__FILE__),"clearinterfaces.sh")
- config.vm.provision :shell, :path => File.join(File.dirname(__FILE__),"run.sh")
- end
-
- # Add .gnupg dir in so folks can sign patches
- # Note, as gnupg puts socket files in that dir, we have
- # to be cautious and make sure we are dealing with a plain file
- homedir = File.expand_path("~/")
- Dir["#{homedir}/.gnupg/**/*"].each do |fname|
- if File.file?(fname)
- destname = fname.sub(Regexp.escape("#{homedir}/"),'')
- config.vm.provision "file", source: fname, destination: destname
- end
- end
-
- # Copy in the .gitconfig if it exists
- if File.file?(File.expand_path("~/.gitconfig"))
- config.vm.provision "file", source: "~/.gitconfig", destination: ".gitconfig"
- end
-
- # vagrant-cachier caches apt/yum etc to speed subsequent
- # vagrant up
- # to enable, run
- # vagrant plugin install vagrant-cachier
- #
- if Vagrant.has_plugin?("vagrant-cachier")
- config.cache.scope = :box
- end
-
- # Define some physical ports for your VMs to be used by DPDK
- nics = (ENV['VPP_VAGRANT_NICS'] || "2").to_i(10)
- for i in 1..nics
- config.vm.network "private_network", type: "dhcp"
- end
-
- # use http proxy if avaiable
- if ENV['http_proxy'] && Vagrant.has_plugin?("vagrant-proxyconf")
- config.proxy.http = ENV['http_proxy']
- config.proxy.https = ENV['https_proxy']
- config.proxy.no_proxy = "localhost,127.0.0.1"
- end
-
- vmcpu=(ENV['VPP_VAGRANT_VMCPU'] || 2)
- vmram=(ENV['VPP_VAGRANT_VMRAM'] || 4096)
-
- config.ssh.forward_agent = true
- config.ssh.forward_x11 = true
-
- config.vm.provider "virtualbox" do |vb|
- vb.customize ["modifyvm", :id, "--ioapic", "on"]
- vb.memory = "#{vmram}"
- vb.cpus = "#{vmcpu}"
-
- # rsync the vpp directory if provision hasn't happened yet
- unless File.exist? (".vagrant/machines/default/virtualbox/action_provision")
- config.vm.synced_folder "../../", "/vpp", type: "rsync",
- rsync__auto: false,
- rsync__exclude: [
- "build-root/build*/",
- "build-root/install*/",
- "build-root/images*/",
- "build-root/*.deb",
- "build-root/*.rpm",
- "build-root/*.changes",
- "build-root/python",
- "build-root/deb/debian/*.dkms",
- "build-root/deb/debian/*.install",
- "build-root/deb/debian/changes",
- "build-root/tools"]
- end
-
- #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
- config.vm.provider "vmware_fusion" do |fusion,override|
- fusion.vmx["memsize"] = "#{vmram}"
- fusion.vmx["numvcpus"] = "#{vmcpu}"
- end
- config.vm.provider "libvirt" do |lv|
- lv.memory = "#{vmram}"
- lv.cpus = "#{vmcpu}"
- end
- config.vm.provider "vmware_workstation" do |vws,override|
- vws.vmx["memsize"] = "#{vmram}"
- vws.vmx["numvcpus"] = "#{vmcpu}"
- end
-end
diff --git a/build-root/vagrant/WELCOME b/build-root/vagrant/WELCOME
deleted file mode 100644
index eb6aa2fd..00000000
--- a/build-root/vagrant/WELCOME
+++ /dev/null
@@ -1,61 +0,0 @@
-VPP has now been built, installed, and started.
-
-To give it a spin, we can create a tap interface and try a simple ping
-(with trace).
-
-Make sure you have run:
-
-$ vagrant ssh
-
-To get to the vagrant VM:
-
-vagrant@localhost:~$
-
-Confirm that vpp is running with
-
-vagrant@localhost:~$ sudo status vpp
-vpp start/running, process 25202
-
-To create the tap:
-
-vagrant@localhost:~$ sudo vppctl tap connect foobar
-Created tap-0 for Linux tap 'foobar'
-vagrant@localhost:~$ sudo vppctl show int
-
-To assign it an ip address (and 'up' the interface):
-
-vagrant@localhost:~$ sudo vppctl set int ip address tap-0 192.168.1.1/24
-vagrant@localhost:~$ sudo vppctl set int state tap-0 up
-
-To turn on packet tracing for the tap interface:
-vagrant@localhost:~$ sudo vppctl trace add tapcli-rx 10
-
-Now, to set up and try the other end:
-vagrant@localhost:~$ sudo ip addr add 192.168.1.2/24 dev foobar
-vagrant@localhost:~$ ping -c 3 192.168.1.1
-
-To look at the trace:
-vagrant@localhost:~$ sudo vppctl show trace
-
-And to stop tracing:
-
-vagrant@localhost:~$ sudo vppctl clear trace
-
-Other fun things to look at:
-
-The vlib packet processing graph:
-vagrant@localhost:~$ sudo vppctl show vlib graph
-
-which will produce output like:
-
- Name Next Previous
-ip4-icmp-input error-punt [0] ip4-local
- ip4-icmp-echo-request [1]
- vpe-icmp4-oam [2]
-
-To read this, the first column (Name) is the name of the node.
-The second column (Next) is the name of the children of that node.
-The third column (Previous) is the name of the parents of this node.
-
-To see this README again:
-cat /vagrant/README
diff --git a/build-root/vagrant/build.sh b/build-root/vagrant/build.sh
deleted file mode 100755
index 76838e28..00000000
--- a/build-root/vagrant/build.sh
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/bin/bash
-
-# Get Command Line arguements if present
-VPP_DIR=$1
-if [ "x$1" != "x" ]; then
- VPP_DIR=$1
-else
- VPP_DIR=`dirname $0`/../../
-fi
-
-if [ "x$2" != "x" ]; then
- SUDOCMD="sudo -H -u $2"
-fi
-echo 0:$0
-echo 1:$1
-echo 2:$2
-echo VPP_DIR: $VPP_DIR
-echo SUDOCMD: $SUDOCMD
-
-# Figure out what system we are running on
-if [ -f /etc/lsb-release ];then
- . /etc/lsb-release
-elif [ -f /etc/redhat-release ];then
- sudo yum install -y redhat-lsb
- DISTRIB_ID=`lsb_release -si`
- DISTRIB_RELEASE=`lsb_release -sr`
- DISTRIB_CODENAME=`lsb_release -sc`
- DISTRIB_DESCRIPTION=`lsb_release -sd`
-fi
-KERNEL_OS=`uname -o`
-KERNEL_MACHINE=`uname -m`
-KERNEL_RELEASE=`uname -r`
-KERNEL_VERSION=`uname -v`
-
-echo KERNEL_OS: $KERNEL_OS
-echo KERNEL_MACHINE: $KERNEL_MACHINE
-echo KERNEL_RELEASE: $KERNEL_RELEASE
-echo KERNEL_VERSION: $KERNEL_VERSION
-echo DISTRIB_ID: $DISTRIB_ID
-echo DISTRIB_RELEASE: $DISTRIB_RELEASE
-echo DISTRIB_CODENAME: $DISTRIB_CODENAME
-echo DISTRIB_DESCRIPTION: $DISTRIB_DESCRIPTION
-
-# Install dependencies
-cd $VPP_DIR
-make UNATTENDED=yes install-dep
-
-# Really really clean things up so we can be sure
-# that the build works even when switching distros
-$SUDOCMD make wipe
-(cd build-root/;$SUDOCMD make distclean)
-rm -f build-root/.bootstrap.ok
-
-if [ $DISTRIB_ID == "CentOS" ]; then
- echo rpm -V apr-devel
- rpm -V apr-devel
- if [ $? != 0 ]; then sudo yum reinstall -y apr-devel;fi
- echo rpm -V ganglia-devel
- rpm -V ganglia-devel
- if [ $? != 0 ]; then sudo yum reinstall -y ganglia-devel;fi
- echo rpm -V libconfuse-devel
- rpm -V libconfuse-devel
- if [ $? != 0 ]; then sudo yum reinstall -y libconfuse-devel;fi
-fi
-
-# Build and install packaging
-$SUDOCMD make bootstrap
-if [ $DISTRIB_ID == "Ubuntu" ]; then
- $SUDOCMD make pkg-deb
-elif [ $DISTRIB_ID == "CentOS" ]; then
- (cd $VPP_DIR/vnet ;$SUDOCMD aclocal;$SUDOCMD automake -a)
- $SUDOCMD make pkg-rpm
-fi
-
diff --git a/build-root/vagrant/clearinterfaces.sh b/build-root/vagrant/clearinterfaces.sh
deleted file mode 100755
index 78f6705c..00000000
--- a/build-root/vagrant/clearinterfaces.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-# Capture all the interface IPs, in case we need them later
-ip -o addr show > ~vagrant/ifconfiga
-chown vagrant:vagrant ~vagrant/ifconfiga
-
-# Disable all ethernet interfaces other than the default route
-# interface so VPP will use those interfaces. The VPP auto-blacklist
-# algorithm prevents the use of any physical interface contained in the
-# routing table (i.e. "route --inet --inet6") preventing the theft of
-# the management ethernet interface by VPP from the kernel.
-for intf in $(ls /sys/class/net) ; do
- if [ -d /sys/class/net/$intf/device ] &&
- [ "$(route --inet --inet6 | grep default | grep $intf)" == "" ] ; then
- ifconfig $intf down
- fi
-done
diff --git a/build-root/vagrant/env.sh b/build-root/vagrant/env.sh
deleted file mode 100644
index f0edfd88..00000000
--- a/build-root/vagrant/env.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env bash
-
-export VPP_VAGRANT_DISTRO="ubuntu1404"
-export VPP_VAGRANT_NICS=2
-export VPP_VAGRANT_VMCPU=4
-export VPP_VAGRANT_VMRAM=4096
diff --git a/build-root/vagrant/install.sh b/build-root/vagrant/install.sh
deleted file mode 100644
index a53faa4d..00000000
--- a/build-root/vagrant/install.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-
-# Get Command Line arguements if present
-VPP_DIR=$1
-if [ "x$1" != "x" ]; then
- VPP_DIR=$1
-else
- VPP_DIR=`dirname $0`/../../
-fi
-
-# Figure out what system we are running on
-if [ -f /etc/lsb-release ];then
- . /etc/lsb-release
-elif [ -f /etc/redhat-release ];then
- sudo yum install -y redhat-lsb
- DISTRIB_ID=`lsb_release -si`
- DISTRIB_RELEASE=`lsb_release -sr`
- DISTRIB_CODENAME=`lsb_release -sc`
- DISTRIB_DESCRIPTION=`lsb_release -sd`
-fi
-echo DISTRIB_ID: $DISTRIB_ID
-echo DISTRIB_RELEASE: $DISTRIB_RELEASE
-echo DISTRIB_CODENAME: $DISTRIB_CODENAME
-echo DISTRIB_DESCRIPTION: $DISTRIB_DESCRIPTION
-
-if [ $DISTRIB_ID == "Ubuntu" ]; then
- (cd ${VPP_DIR}/build-root/;sudo dpkg -i *.deb)
-elif [ $DISTRIB_ID == "CentOS" ]; then
- (cd ${VPP_DIR}/build-root/;sudo rpm -Uvh *.rpm)
-fi \ No newline at end of file
diff --git a/build-root/vagrant/run.sh b/build-root/vagrant/run.sh
deleted file mode 100755
index 1cd33826..00000000
--- a/build-root/vagrant/run.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-# Figure out what system we are running on
-if [ -f /etc/lsb-release ];then
- . /etc/lsb-release
-elif [ -f /etc/redhat-release ];then
- yum install -y redhat-lsb
- DISTRIB_ID=`lsb_release -si`
- DISTRIB_RELEASE=`lsb_release -sr`
- DISTRIB_CODENAME=`lsb_release -sc`
- DISTRIB_DESCRIPTION=`lsb_release -sd`
-fi
-
-if [ $DISTRIB_ID == "CentOS" ]; then
- # Install uio-pci-generic
- modprobe uio_pci_generic
-fi
-echo "Starting VPP..."
-if [ $DISTRIB_ID == "Ubuntu" ] && [ $DISTRIB_CODENAME = "trusty" ] ; then
- start vpp
-else
- service vpp start
-fi
diff --git a/build-root/vagrant/update.sh b/build-root/vagrant/update.sh
deleted file mode 100755
index f4139d74..00000000
--- a/build-root/vagrant/update.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/bash
-
-# Make sure that we get the hugepages we need on provision boot
-# Note: The package install should take care of this at the end
-# But sometimes after all the work of provisioning, we can't
-# get the requested number of hugepages without rebooting.
-# So do it here just in case
-sysctl -w vm.nr_hugepages=1024
-HUGEPAGES=`sysctl -n vm.nr_hugepages`
-if [ $HUGEPAGES != 1024 ]; then
- echo "ERROR: Unable to get 1024 hugepages, only got $HUGEPAGES. Cannot finish."
- exit
-fi
-
-# Figure out what system we are running on
-if [ -f /etc/lsb-release ];then
- . /etc/lsb-release
-elif [ -f /etc/redhat-release ];then
- yum install -y redhat-lsb
- DISTRIB_ID=`lsb_release -si`
- DISTRIB_RELEASE=`lsb_release -sr`
- DISTRIB_CODENAME=`lsb_release -sc`
- DISTRIB_DESCRIPTION=`lsb_release -sd`
-fi
-
-# Do initial setup for the system
-if [ $DISTRIB_ID == "Ubuntu" ]; then
-
- export DEBIAN_PRIORITY=critical
- export DEBIAN_FRONTEND=noninteractive
- export DEBCONF_NONINTERACTIVE_SEEN=true
- APT_OPTS="--assume-yes --no-install-suggests --no-install-recommends -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\""
-
- # Standard update + upgrade dance
- apt-get update ${APT_OPTS} >/dev/null
- apt-get upgrade ${APT_OPTS} >/dev/null
-
- # Fix the silly notion that /bin/sh should point to dash by pointing it to bash
-
- update-alternatives --install /bin/sh sh /bin/bash 100
-
- # Install useful but non-mandatory tools
- apt-get install -y emacs x11-utils git-review gdb gdbserver
-elif [ $DISTRIB_ID == "CentOS" ]; then
- # Standard update + upgrade dance
- yum check-update
- yum update -y
-fi