#!/bin/bash

if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
    set -x
fi
set -o errexit
set -o nounset
set -o pipefail


unset ARCH

echo "############################################################"
echo "# TRex                                                     #"
echo "############################################################"

mkdir ~/trex
cd ~/trex
wget --no-check-certificate https://trex-tgn.cisco.com/trex/release/latest
tar -xzvf latest


echo "############################################################"
echo "# DPDK 20.11                                               #"
echo "############################################################"


easy_install-3.6 pip
pip3 install meson

mkdir /tmp/ninja
cd /tmp/ninja
wget --no-check-certificate http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/ninja-build-1.8.2-1.el8.x86_64.rpm
dnf install ninja-build-1.8.2-1.el8.x86_64.rpm -y 


git clone git://dpdk.org/dpdk-stable ~/dpdk
cd ~/dpdk
git checkout origin/20.11

meson -Dexamples=l2fwd,l3fwd build
cd build
ninja
ninja install
ldconfig


echo "############################################################"
echo "# Perftest                                                 #"
echo "############################################################"


git clone https://github.com/linux-rdma/perftest /tmp/perftest
cd /tmp/perftest
./autogen.sh
./configure 
make install 

echo "############################################################"
echo "# Hugepages                                                #"
echo "############################################################"

ADD_TO_GRUB=$(cat /etc/default/grub | grep GRUB_CMDLINE_LINUX | sed 's/.$/ default_hugepagesz=1G hugepagesz=1G hugepages=2"/')
sed -i "/GRUB_CMDLINE_LINUX/c $ADD_TO_GRUB" /etc/default/grub


# clean
export ARCH=amd64
rm -Rf /tmp/ninja
rm -Rf /tmp/perftest

