From 18b80bb1546329dda744c6ea5e4dffb055b4a1d5 Mon Sep 17 00:00:00 2001 From: Guo Ruijing Date: Wed, 11 Jan 2017 17:14:54 -0500 Subject: [PATCH] build ovs with dpdk from mos ovs with dpdk installation fails due to dpdk dependency change. To fix this issue, dpdk is built from mos debian. with this fix, ovs with dpdk can be installed. Another fix is expected to fix new issue after ovs with dpdk installation. Change-Id: Ia69bfbf64a820575fd5453f18ad33052a3a490af Signed-off-by: Guo Ruijing --- deployment_scripts/install.sh | 34 +++++++++---------- ovs_build/build-ovs-dpdk.sh | 22 ++++++++---- ovs_build/build-ovs-nsh-dpdk.sh | 22 ++++++++---- .../debian/librte-eal2.symbols | 1 - pre_build_hook | 8 ++--- 5 files changed, 52 insertions(+), 35 deletions(-) diff --git a/deployment_scripts/install.sh b/deployment_scripts/install.sh index 891e229..4a22685 100644 --- a/deployment_scripts/install.sh +++ b/deployment_scripts/install.sh @@ -11,7 +11,7 @@ dpdk=$3 dpdk_socket_mem=${4:-''} pmd_cpu_mask=${5:-'2'} -apt-get install -y dkms +apt-get install -y --allow-unauthenticated dkms if [ $nsh = 'true' ] then @@ -22,9 +22,7 @@ then dpkg -i python-openvswitch_2.6.1-1.nsh_all.deb if [ $dpdk = 'true' ] then - dpkg -i libxenstore3.0*.deb - dpkg -i libdpdk0_16.07-1_amd64.deb - dpkg -i dpdk_16.07-1_amd64.deb + apt-get install -y --allow-unauthenticated dpdk dpdk-dev dpdk-dkms dpkg -i openvswitch-switch-dpdk_2.6.1-1.nsh_amd64.deb fi else @@ -33,21 +31,23 @@ else dpkg -i openvswitch-common_2.6.90-1_amd64.deb dpkg -i openvswitch-switch_2.6.90-1_amd64.deb dpkg -i python-openvswitch_2.6.90-1_all.deb - if [[ $dpdk = 'true' && -n $dpdk_socket_mem ]] + if [ $dpdk = 'true' ] then - dpkg -i libxenstore3.0*.deb - dpkg -i libdpdk0_16.07-1_amd64.deb - dpkg -i dpdk_16.07-1_amd64.deb + apt-get install -y --allow-unauthenticated dpdk dpdk-dev dpdk-dkms dpkg -i openvswitch-switch-dpdk_2.6.90-1_amd64.deb - #Set to 0, dpdk init script mount hugepages but don't change current allocation - sed -i "s/[# ]*\(NR_2M_PAGES=\).*/\10/" /etc/dpdk/dpdk.conf - service dpdk start - - ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true - ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem="$dpdk_socket_mem" - ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask="$pmd_cpu_mask" - - service openvswitch-switch restart fi fi + +if [[ $dpdk = 'true' && -n $dpdk_socket_mem ]] +then + #Set to 0, dpdk init script mount hugepages but don't change current allocation + sed -i "s/[# ]*\(NR_2M_PAGES=\).*/\10/" /etc/dpdk/dpdk.conf + service dpdk start + + ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true + ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem="$dpdk_socket_mem" + ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask="$pmd_cpu_mask" + + service openvswitch-switch restart +fi diff --git a/ovs_build/build-ovs-dpdk.sh b/ovs_build/build-ovs-dpdk.sh index 3c05a83..ed1b984 100755 --- a/ovs_build/build-ovs-dpdk.sh +++ b/ovs_build/build-ovs-dpdk.sh @@ -10,15 +10,23 @@ BUILD_HOME=${BUILD_HOME:-/tmp/ovs-dpdk} export DEB_BUILD_OPTIONS='parallel=8 nocheck' -sudo apt-get -y install devscripts dpkg-dev git wget +sudo apt-get -y install devscripts dpkg-dev git wget dkms -rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME} +rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME}/deb cd ${BUILD_HOME} wget -c http://fast.dpdk.org/rel/dpdk-16.07.tar.xz xz -d dpdk-16.07.tar.xz; tar xvf dpdk-16.07.tar cd dpdk-16.07 -cp -r ${BUILD_SRC}/dpdk_16.07/debian . +cp -r ${BUILD_SRC}/dpdk_16.07.fuel/debian . +cat << EOF > debian/changelog +dpdk (16.07-0ubuntu5~u1604+fuel10) xenial; urgency=low + + * Rebuild debian package + * update librte-eal2.symbols + + -- Ruijing Guo $(date --rfc-2822) +EOF # copy from debian/control sudo apt-get install -y debhelper \ @@ -38,8 +46,9 @@ sudo apt-get install -y debhelper \ debian/rules build; fakeroot debian/rules binary cd ${BUILD_HOME} +sudo apt-get install -y hwdata sudo dpkg -i *.deb -apt-get download libxenstore3.0 +mv *.deb ${BUILD_DEST} # copy from debian/control sudo apt-get install -y autoconf \ @@ -80,5 +89,6 @@ debian/rules build; fakeroot debian/rules binary cd ${BUILD_HOME}/ovs debian/rules build; fakeroot debian/rules binary -cp -r ${BUILD_HOME}/*.deb ${BUILD_DEST} -rm -rf ${BUILD_HOME} +cp -r ${BUILD_HOME}/*.deb ${BUILD_HOME}/deb +cd ${BUILD_HOME}/deb +tar czvf ${BUILD_DEST}/ovs-dpdk.tar.gz .; diff --git a/ovs_build/build-ovs-nsh-dpdk.sh b/ovs_build/build-ovs-nsh-dpdk.sh index e2d52e4..00fbafa 100755 --- a/ovs_build/build-ovs-nsh-dpdk.sh +++ b/ovs_build/build-ovs-nsh-dpdk.sh @@ -10,15 +10,23 @@ BUILD_HOME=${BUILD_HOME:-/tmp/ovs-dpdk} export DEB_BUILD_OPTIONS='parallel=8 nocheck' -sudo apt-get -y install devscripts dpkg-dev git wget +sudo apt-get -y install devscripts dpkg-dev git wget dkms -rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME} +rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME}/deb cd ${BUILD_HOME} wget -c http://fast.dpdk.org/rel/dpdk-16.07.tar.xz xz -d dpdk-16.07.tar.xz; tar xvf dpdk-16.07.tar cd dpdk-16.07 -cp -r ${BUILD_SRC}/dpdk_16.07/debian . +cp -r ${BUILD_SRC}/dpdk_16.07.fuel/debian . +cat << EOF > debian/changelog +dpdk (16.07-0ubuntu5~u1604+fuel10) xenial; urgency=low + + * Rebuild debian package + * update librte-eal2.symbols + + -- Ruijing Guo $(date --rfc-2822) +EOF # copy from debian/control sudo apt-get install -y debhelper \ @@ -38,8 +46,9 @@ sudo apt-get install -y debhelper \ debian/rules build; fakeroot debian/rules binary cd ${BUILD_HOME} +sudo apt-get install -y hwdata sudo dpkg -i *.deb -apt-get download libxenstore3.0 +mv *.deb ${BUILD_DEST} # copy from debian/control sudo apt-get install -y autoconf \ @@ -92,5 +101,6 @@ openvswitch (${OVS_VER}-1.nsh) unstable; urgency=low EOF debian/rules build; fakeroot debian/rules binary -cp -r ${BUILD_HOME}/*.deb ${BUILD_DEST} -rm -rf ${BUILD_HOME} +cp -r ${BUILD_HOME}/*.deb ${BUILD_HOME}/deb +cd ${BUILD_HOME}/deb +tar czvf ${BUILD_DEST}/ovs-nsh-dpdk.tar.gz .; diff --git a/ovs_build/dpdk_16.07.fuel/debian/librte-eal2.symbols b/ovs_build/dpdk_16.07.fuel/debian/librte-eal2.symbols index cafe244..cec59ec 100644 --- a/ovs_build/dpdk_16.07.fuel/debian/librte-eal2.symbols +++ b/ovs_build/dpdk_16.07.fuel/debian/librte-eal2.symbols @@ -62,7 +62,6 @@ librte_eal.so.2 librte-eal2 #MINVER# rte_eal_primary_proc_alive@DPDK_16.04 16.04 rte_eal_process_type@DPDK_2.0 16.04 rte_eal_remote_launch@DPDK_2.0 16.04 - rte_eal_set_socket_permissions@DPDK_2.2 16.04 rte_eal_tailq_lookup@DPDK_2.0 16.04 rte_eal_tailq_register@DPDK_2.0 16.04 rte_eal_vdev_init@DPDK_2.0 16.04 diff --git a/pre_build_hook b/pre_build_hook index 63cf7b4..43b5936 100755 --- a/pre_build_hook +++ b/pre_build_hook @@ -16,14 +16,12 @@ function build_pkg { DEB_DIR=${DIR}/deb-ovs-dpdk rm -rf ${DEB_DIR}; mkdir -p ${DEB_DIR}; chmod 777 ${DEB_DIR}; sudo docker run -v ${DEB_DIR}:/deb -t ovs_build /ovs_build/build-ovs-dpdk.sh - cd ${DEB_DIR}; tar czvf ../repositories/ubuntu/ovs-dpdk.tar.gz .; - cd ..; rm -rf ${DEB_DIR} + cp -r ${DEB_DIR}/* ${DIR}/repositories/ubuntu/ - DEB_DIR=${DIR}/deb-ovs-nsh-dpdk rm -rf ${DEB_DIR}; mkdir -p ${DEB_DIR}; chmod 777 ${DEB_DIR}; sudo docker run -v ${DEB_DIR}:/deb -t ovs_build /ovs_build/build-ovs-nsh-dpdk.sh - cd ${DEB_DIR}; tar czvf ../repositories/ubuntu/ovs-nsh-dpdk.tar.gz .; - cd ..; rm -rf ${DEB_DIR} + cp -r ${DEB_DIR}/* ${DIR}/repositories/ubuntu/ + rm -rf ${DEB_DIR} ;; *) echo "Not supported system"; exit 1;;