blob: 265d4c153acfd3796610aae8af72b50eb8039e9c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
#!/bin/bash
set -x
ROOTDIR=/tmp/openvpp-testing
PWDDIR=$(pwd)
if_name1=$1
if_name2=$2
VPP_VERSION=`cat ${ROOTDIR}/NSH_SFC_VER | grep VPP | awk -F'= ' '{print $2}'`
NSH_SFC_VERSION=`cat ${ROOTDIR}/NSH_SFC_VER | grep NSH_SFC | awk -F'= ' '{print $2}'`
VPP_CODE_DIR=${ROOTDIR}/vpp_codes
NSH_SFC_CODE_DIR=${ROOTDIR}/nsh_sfc_codes
#at first, we need to stop the vpp service if have
sudo service vpp stop
#uninstall the vpp and nsh sfc plugin
#and git clone the vpp and nsh sfc plugin source codes
#then compile and install them in the dut nodes.
nsh_need_install=0
sudo dpkg -l vpp-nsh-plugin >/dev/null 2>&1
if [ $? -eq 0 ]; then
nsh_plugin_version=`dpkg -s vpp-nsh-plugin | grep Version | awk -F' ' '{print $2}'`
if [ "${nsh_plugin_version}" \< "${NSH_SFC_VERSION}" ]; then
sudo dpkg -P vpp-nsh-plugin vpp-nsh-plugin-dbg vpp-nsh-plugin-dev >/dev/null 2>&1
test $? -eq 0 || exit 1
nsh_need_install=1
fi
else
nsh_need_install=1
fi
vpp_need_install=0
sudo dpkg -l vpp >/dev/null 2>&1
if [ $? -eq 0 ]; then
vpp_version=`dpkg -s vpp | grep Version | awk -F' ' '{print $2}'`
if [ "${vpp_version}" \< "${VPP_VERSION}" ]; then
sudo dpkg -P vpp vpp-dbg vpp-dev vpp-dpdk-dev vpp-dpdk-dkms vpp-lib \
vpp-plugins vpp-python-api >/dev/null 2>&1
test $? -eq 0 || exit 1
vpp_need_install=1
fi
else
vpp_need_install=1
fi
sleep 5
##begin to clone the vpp source code
if [ ${vpp_need_install} -eq 1 ]; then
sudo rm -rf ${VPP_CODE_DIR}
sudo mkdir -p ${VPP_CODE_DIR}
cd ${VPP_CODE_DIR}
git clone -b v${VPP_VERSION} https://gerrit.fd.io/r/vpp
#compile the vpp code
cd ./vpp/build-root/
make distclean
./bootstrap.sh
make V=0 PLATFORM=vpp TAG=vpp install-deb
#after that, install vpp
sudo dpkg -i *.deb
cd ${PWDDIR}
fi
##begin to clone the nsh sfc source code
if [ ${nsh_need_install} -eq 1 ]; then
sudo rm -rf ${NSH_SFC_CODE_DIR}
sudo mkdir -p ${NSH_SFC_CODE_DIR}
cd ${NSH_SFC_CODE_DIR}
git clone -b v${NSH_SFC_VERSION} https://gerrit.fd.io/r/nsh_sfc
#compile the nsh sfc code
cd ./nsh_sfc/nsh-plugin/
sudo rm -rf build
sudo ./build.sh
#after that, install the nsh sfc plugin
cd ./packaging/
sudo dpkg -i *.deb
cd ${PWDDIR}
fi
#check and setup the hugepages
SYS_HUGEPAGE=$(cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages)
if [ ${SYS_HUGEPAGE} -lt 1024 ]; then
MOUNT=$(mount | grep /mnt/huge)
while [ "${MOUNT}" != "" ]
do
sudo umount /mnt/huge
sleep 1
MOUNT=$(mount | grep /mnt/huge)
done
echo 2048 | sudo tee /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
echo 2048 | sudo tee /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
sudo mkdir -p /mnt/huge
sudo mount -t hugetlbfs nodev /mnt/huge/
test $? -eq 0 || exit 1
fi
#check and set the max map count
SYS_MAP=$(cat /proc/sys/vm/max_map_count)
if [ ${SYS_MAP} -lt 200000 ]; then
echo 200000 | sudo tee /proc/sys/vm/max_map_count
fi
#after all, we can start the vpp service now
sudo service vpp start
|