aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorItohan <itohan.ukponmwan@intel.com>2017-10-26 22:07:57 -0700
committerItohan <itohan.ukponmwan@intel.com>2017-10-27 17:08:08 -0700
commit9ae5fe2676a7e44dac189158029e3025ae90496d (patch)
tree5f7a5896d8a13e609b5d5ebdfea59ca35782ba09
parent6dc05ff5fa93e155953d42cb662dea48a67a08e4 (diff)
Fixed vbrg Install, env and yaml scipts
Fixed bugs in vCPE vbrg emulator install script Modified Script to include different build modes Fixed here documents bind_nic.sh and set_nat.sh Commented out the 192.168.1.0/24 network configurations in the yaml and env files Change-Id: I2f6dee1843e6e289fe199844ed80d010257bce63 Issue-ID: INT-63 Signed-off-by: Itohan <itohan.ukponmwan@intel.com>
-rw-r--r--heat/vCPE/vbrgemu/base_vcpe_vbrgemu.env6
-rw-r--r--heat/vCPE/vbrgemu/base_vcpe_vbrgemu.yaml64
-rwxr-xr-x[-rw-r--r--]vnfs/vCPE/scripts/v_brgemu_install.sh537
3 files changed, 318 insertions, 289 deletions
diff --git a/heat/vCPE/vbrgemu/base_vcpe_vbrgemu.env b/heat/vCPE/vbrgemu/base_vcpe_vbrgemu.env
index ea8bc823..ef49dcf2 100644
--- a/heat/vCPE/vbrgemu/base_vcpe_vbrgemu.env
+++ b/heat/vCPE/vbrgemu/base_vcpe_vbrgemu.env
@@ -5,10 +5,10 @@
vbrgemu_bng_private_net_id: zdfw1bngin01_private
vbrgemu_bng_private_subnet_id: zdfw1bngin01_sub_private
vbrgemu_bng_private_net_cidr: 10.3.0.0/24
- vbrgemu_private_net_id: zdfw1vbrgemu01_private
- vbrgemu_private_net_cidr: 192.168.1.0/24
+ #vbrgemu_private_net_id: zdfw1vbrgemu01_private
+ #vbrgemu_private_net_cidr: 192.168.1.0/24
vbrgemu_private_ip_0: 10.3.0.4
- vbrgemu_private_ip_1: 192.168.1.1
+ #vbrgemu_private_ip_1: 192.168.1.1
sdnc_ip: 10.0.7.1
vbrgemu_name_0: zdcpe1cpe01brgemu01
vnf_id: vCPE_Infrastructure_BGREMU_demo_app
diff --git a/heat/vCPE/vbrgemu/base_vcpe_vbrgemu.yaml b/heat/vCPE/vbrgemu/base_vcpe_vbrgemu.yaml
index a9eb8726..192dfbfc 100644
--- a/heat/vCPE/vbrgemu/base_vcpe_vbrgemu.yaml
+++ b/heat/vCPE/vbrgemu/base_vcpe_vbrgemu.yaml
@@ -59,22 +59,22 @@ parameters:
type: string
label: vBNG IN private network CIDR
description: The CIDR of the input side of vBNG private network
- vbrgemu_private_net_id:
- type: string
- label: vBRGEMU Home private network name or ID
- description: Private network that connects vBRGEMU to local devices
- vbrgemu_private_net_cidr:
- type: string
- label: vBRGEMU Home private network CIDR
- description: The CIDR of the input side of vBRGEMU Home private network
+ #vbrgemu_private_net_id:
+ # type: string
+ # label: vBRGEMU Home private network name or ID
+ # description: Private network that connects vBRGEMU to local devices
+ #vbrgemu_private_net_cidr:
+ # type: string
+ # label: vBRGEMU Home private network CIDR
+ # description: The CIDR of the input side of vBRGEMU Home private network
vbrgemu_private_ip_0:
type: string
label: vGW private IP address
description: Private IP address towards the BRGEMU-BNG network
- vbrgemu_private_ip_1:
- type: string
- label: vGW private IP address
- description: Private IP address towards the BRGEMU private network
+ #vbrgemu_private_ip_1:
+ # type: string
+ # label: vGW private IP address
+ # description: Private IP address towards the BRGEMU private network
vbrgemu_name_0:
type: string
label: vGW name
@@ -165,17 +165,17 @@ resources:
public_key: { get_param: pub_key }
save_private_key: false
- vbrgemu_private_network:
- type: OS::Neutron::Net
- properties:
- name: { get_param: vbrgemu_private_net_id }
+ #vbrgemu_private_network:
+ # type: OS::Neutron::Net
+ # properties:
+ # name: { get_param: vbrgemu_private_net_id }
- vbrgemu_private_subnet:
- type: OS::Neutron::Subnet
- properties:
- name: { get_param: vbrgemu_private_net_id }
- network_id: { get_resource: vbrgemu_private_network }
- cidr: { get_param: vbrgemu_private_net_cidr }
+ #vbrgemu_private_subnet:
+ # type: OS::Neutron::Subnet
+ # properties:
+ # name: { get_param: vbrgemu_private_net_id }
+ # network_id: { get_resource: vbrgemu_private_network }
+ # cidr: { get_param: vbrgemu_private_net_cidr }
# Virtual BRG Emulator Instantiation
# 0_port should get IP address from DHCP discover through vBNG once the VNF is running
@@ -185,11 +185,11 @@ resources:
network: { get_param: vbrgemu_bng_private_net_id }
fixed_ips: [{"subnet": { get_param: vbrgemu_bng_private_subnet_id }, "ip_address": { get_param: vbrgemu_private_ip_0 }}]
- vbrgemu_private_1_port:
- type: OS::Neutron::Port
- properties:
- network: { get_resource: vbrgemu_private_network }
- fixed_ips: [{"subnet": { get_resource: vbrgemu_private_subnet }, "ip_address": { get_param: vbrgemu_private_ip_1 }}]
+ #vbrgemu_private_1_port:
+ # type: OS::Neutron::Port
+ # properties:
+ # network: { get_resource: vbrgemu_private_network }
+ # fixed_ips: [{"subnet": { get_resource: vbrgemu_private_subnet }, "ip_address": { get_param: vbrgemu_private_ip_1 }}]
vbrgemu_0:
type: OS::Nova::Server
@@ -201,14 +201,14 @@ resources:
networks:
- network: { get_param: public_net_id }
- port: { get_resource: vbrgemu_private_0_port }
- - port: { get_resource: vbrgemu_private_1_port }
+ # - port: { get_resource: vbrgemu_private_1_port }
metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}
user_data_format: RAW
user_data:
str_replace:
params:
- __brgemu_net_ipaddr__: { get_param: vbrgemu_private_ip_1 }
- __brgemu_cidr__: { get_param: vbrgemu_private_net_cidr }
+ # __brgemu_net_ipaddr__: { get_param: vbrgemu_private_ip_1 }
+ # __brgemu_cidr__: { get_param: vbrgemu_private_net_cidr }
__brgemu_bng_private_net_cidr__: { get_param: vbrgemu_bng_private_net_cidr }
__repo_url_blob__ : { get_param: repo_url_blob }
__repo_url_artifacts__ : { get_param: repo_url_artifacts }
@@ -226,8 +226,8 @@ resources:
# Create configuration files
mkdir /opt/config
- echo "__brgemu_net_ipaddr__" > /opt/config/brgemu_net_ipaddr.txt
- echo "__brgemu_cidr__" > /opt/config/brgemu_net_cidr.txt
+ #echo "__brgemu_net_ipaddr__" > /opt/config/brgemu_net_ipaddr.txt
+ #echo "__brgemu_cidr__" > /opt/config/brgemu_net_cidr.txt
echo "__brgemu_bng_private_net_cidr__" > /opt/config/brgemu_bng_private_net_cidr.txt
echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt
echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt
diff --git a/vnfs/vCPE/scripts/v_brgemu_install.sh b/vnfs/vCPE/scripts/v_brgemu_install.sh
index 86d08b4b..64621c0a 100644..100755
--- a/vnfs/vCPE/scripts/v_brgemu_install.sh
+++ b/vnfs/vCPE/scripts/v_brgemu_install.sh
@@ -11,72 +11,77 @@ HC2VPP_SOURCE_REPO_URL=$(cat /opt/config/hc2vpp_source_repo_url.txt)
HC2VPP_SOURCE_REPO_BRANCH=$(cat /opt/config/hc2vpp_source_repo_branch.txt)
CLOUD_ENV=$(cat /opt/config/cloud_env.txt)
+# Build states are:
+# 'build' - just build the code
+# 'done' - code is build, install and setup
+# 'auto' - bulid, install and setup
+BUILD_STATE="auto"
+
+if [[ -f /opt/config/compile_state.txt ]]
+then
+ BUILD_STATE=$(cat /opt/config/compile_state.txt)
+fi
+
# Convert Network CIDR to Netmask
cdr2mask () {
- # Number of args to shift, 255..255, first non-255 byte, zeroes
- set -- $(( 5 - ($1 / 8) )) 255 255 255 255 $(( (255 << (8 - ($1 % 8))) & 255 )) 0 0 0
- [ $1 -gt 1 ] && shift $1 || shift
- echo ${1-0}.${2-0}.${3-0}.${4-0}
+ # Number of args to shift, 255..255, first non-255 byte, zeroes
+ set -- $(( 5 - ($1 / 8) )) 255 255 255 255 $(( (255 << (8 - ($1 % 8))) & 255 )) 0 0 0
+ [ $1 -gt 1 ] && shift $1 || shift
+ echo ${1-0}.${2-0}.${3-0}.${4-0}
}
# OpenStack network configuration
-if [[ $CLOUD_ENV == "openstack" ]]
+if [[ $BUILD_STATE != "build" ]]
then
- echo 127.0.0.1 $(hostname) >> /etc/hosts
+ if [[ $CLOUD_ENV == "openstack" ]]
+ then
+ echo 127.0.0.1 $(hostname) >> /etc/hosts
- # Allow remote login as root
- mv /root/.ssh/authorized_keys /root/.ssh/authorized_keys.bk
- cp /home/ubuntu/.ssh/authorized_keys /root/.ssh
-
- MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1)
-
- IP=$(cat /opt/config/brgemu_net_ipaddr.txt)
- BITS=$(cat /opt/config/brgemu_net_cidr.txt | cut -d"/" -f2)
- NETMASK=$(cdr2mask $BITS)
- echo "auto eth2" >> /etc/network/interfaces
- echo "iface eth2 inet static" >> /etc/network/interfaces
- echo " address $IP" >> /etc/network/interfaces
- echo " netmask $NETMASK" >> /etc/network/interfaces
- echo " mtu $MTU" >> /etc/network/interfaces
-
- ifup eth2
-fi
+ # Allow remote login as root
+ mv /root/.ssh/authorized_keys /root/.ssh/authorized_keys.bk
+ cp /home/ubuntu/.ssh/authorized_keys /root/.ssh
+ fi
+fi # endif BUILD_STATE != "build"
-# Download required dependencies
-echo "deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu $(lsb_release -c -s) main" >> /etc/apt/sources.list.d/java.list
-echo "deb-src http://ppa.launchpad.net/openjdk-r/ppa/ubuntu $(lsb_release -c -s) main" >> /etc/apt/sources.list.d/java.list
-apt-get update
-apt-get install --allow-unauthenticated -y wget openjdk-8-jdk apt-transport-https ca-certificates g++ libcurl4-gnutls-dev
-sleep 1
-
-# Install the tools required for download codes
-apt-get install -y expect git patch
-
-#Download and build the VPP codes
-cd /opt
-git clone ${VPP_SOURCE_REPO_URL} -b ${VPP_SOURCE_REPO_BRANCH} vpp
-wget -O VPP-Add-Option82-Nat-Filter-For-vBRG.patch ${VPP_PATCH_URL}
-
-cd vpp
-patch -p1 < ../VPP-Add-Option82-Nat-Filter-For-vBRG.patch
-expect -c "
- set timeout 60;
- spawn make install-dep;
- expect {
- \"Do you want to continue?*\" {send \"Y\r\"; interact}
- }
-"
-
-cd build-root
-./bootstrap.sh
-make V=0 PLATFORM=vpp TAG=vpp install-deb
-
-# Install the VPP package
-dpkg -i *.deb
-systemctl stop vpp
-
-# Auto-start configuration for the VPP
-cat > /etc/vpp/startup.conf << EOF
+if [[ $BUILD_STATE != "done" ]]
+then
+ # Download required dependencies
+ echo "deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu $(lsb_release -c -s) main" >> /etc/apt/sources.list.d/java.list
+ echo "deb-src http://ppa.launchpad.net/openjdk-r/ppa/ubuntu $(lsb_release -c -s) main" >> /etc/apt/sources.list.d/java.list
+ apt-get update
+ apt-get install --allow-unauthenticated -y wget openjdk-8-jdk apt-transport-https ca-certificates g++ libcurl4-gnutls-dev
+ sleep 1
+
+ # Install the tools required for download codes
+ apt-get install -y expect git patch make linux-image-extra-`uname -r`
+ #Download and build the VPP codes
+ cd /opt
+ git clone ${VPP_SOURCE_REPO_URL} -b ${VPP_SOURCE_REPO_BRANCH} vpp
+ wget -O VPP-Add-Option82-Nat-Filter-For-vBRG.patch ${VPP_PATCH_URL}
+
+ cd vpp
+ patch -p1 < ../VPP-Add-Option82-Nat-Filter-For-vBRG.patch
+ expect -c "
+ set timeout 60;
+ spawn make install-dep;
+ expect {
+ \"Do you want to continue?*\" {send \"Y\r\"; interact}
+ }
+ "
+
+ cd build-root
+ ./bootstrap.sh
+ make V=0 PLATFORM=vpp TAG=vpp install-deb
+
+ # Install the VPP package
+ dpkg -i *.deb
+ systemctl stop vpp
+fi # endif BUILD_STATE != "done"
+
+if [[ $BUILD_STATE != "build" ]]
+then
+ # Auto-start configuration for the VPP
+ cat > /etc/vpp/startup.conf << EOF
unix {
nodaemon
@@ -95,95 +100,109 @@ api-segment {
}
cpu {
- ## In the VPP there is one main thread and optionally the user can create worker(s)
- ## The main thread and worker thread(s) can be pinned to CPU core(s) manually or automatically
+ ## In the VPP there is one main thread and optionally the user can create worker(s)
+ ## The main thread and worker thread(s) can be pinned to CPU core(s) manually or automatically
- ## Manual pinning of thread(s) to CPU core(s)
+ ## Manual pinning of thread(s) to CPU core(s)
- ## Set logical CPU core where main thread runs
- # main-core 1
+ ## Set logical CPU core where main thread runs
+ # main-core 1
- ## Set logical CPU core(s) where worker threads are running
- # corelist-workers 2-3,18-19
+ ## Set logical CPU core(s) where worker threads are running
+ # corelist-workers 2-3,18-19
- ## Automatic pinning of thread(s) to CPU core(s)
+ ## Automatic pinning of thread(s) to CPU core(s)
- ## Sets number of CPU core(s) to be skipped (1 ... N-1)
- ## Skipped CPU core(s) are not used for pinning main thread and working thread(s).
- ## The main thread is automatically pinned to the first available CPU core and worker(s)
- ## are pinned to next free CPU core(s) after core assigned to main thread
- # skip-cores 4
+ ## Sets number of CPU core(s) to be skipped (1 ... N-1)
+ ## Skipped CPU core(s) are not used for pinning main thread and working thread(s).
+ ## The main thread is automatically pinned to the first available CPU core and worker(s)
+ ## are pinned to next free CPU core(s) after core assigned to main thread
+ # skip-cores 4
- ## Specify a number of workers to be created
- ## Workers are pinned to N consecutive CPU cores while skipping "skip-cores" CPU core(s)
- ## and main thread's CPU core
- # workers 2
+ ## Specify a number of workers to be created
+ ## Workers are pinned to N consecutive CPU cores while skipping "skip-cores" CPU core(s)
+ ## and main thread's CPU core
+ # workers 2
- ## Set scheduling policy and priority of main and worker threads
+ ## Set scheduling policy and priority of main and worker threads
- ## Scheduling policy options are: other (SCHED_OTHER), batch (SCHED_BATCH)
- ## idle (SCHED_IDLE), fifo (SCHED_FIFO), rr (SCHED_RR)
- # scheduler-policy fifo
+ ## Scheduling policy options are: other (SCHED_OTHER), batch (SCHED_BATCH)
+ ## idle (SCHED_IDLE), fifo (SCHED_FIFO), rr (SCHED_RR)
+ # scheduler-policy fifo
- ## Scheduling priority is used only for "real-time policies (fifo and rr),
- ## and has to be in the range of priorities supported for a particular policy
- # scheduler-priority 50
+ ## Scheduling priority is used only for "real-time policies (fifo and rr),
+ ## and has to be in the range of priorities supported for a particular policy
+ # scheduler-priority 50
}
# dpdk {
- ## Change default settings for all intefaces
- # dev default {
- ## Number of receive queues, enables RSS
- ## Default is 1
- # num-rx-queues 3
-
- ## Number of transmit queues, Default is equal
- ## to number of worker threads or 1 if no workers treads
- # num-tx-queues 3
-
- ## Number of descriptors in transmit and receive rings
- ## increasing or reducing number can impact performance
- ## Default is 1024 for both rx and tx
- # num-rx-desc 512
- # num-tx-desc 512
-
- ## VLAN strip offload mode for interface
- ## Default is off
- # vlan-strip-offload on
- # }
-
- ## Whitelist specific interface by specifying PCI address
- # dev 0000:02:00.0
-
- ## Whitelist specific interface by specifying PCI address and in
- ## addition specify custom parameters for this interface
- # dev 0000:02:00.1 {
- # num-rx-queues 2
- # }
-
- ## Change UIO driver used by VPP, Options are: igb_uio, vfio-pci
- ## and uio_pci_generic (default)
- # uio-driver vfio-pci
-
- ## Disable mutli-segment buffers, improves performance but
- ## disables Jumbo MTU support
- # no-multi-seg
-
- ## Increase number of buffers allocated, needed only in scenarios with
- ## large number of interfaces and worker threads. Value is per CPU socket.
- ## Default is 16384
- # num-mbufs 128000
-
- ## Change hugepages allocation per-socket, needed only if there is need for
- ## larger number of mbufs. Default is 256M on each detected CPU socket
- # socket-mem 2048,2048
+ ## Change default settings for all intefaces
+ # dev default {
+ ## Number of receive queues, enables RSS
+ ## Default is 1
+ # num-rx-queues 3
+
+ ## Number of transmit queues, Default is equal
+ ## to number of worker threads or 1 if no workers treads
+ # num-tx-queues 3
+
+ ## Number of descriptors in transmit and receive rings
+ ## increasing or reducing number can impact performance
+ ## Default is 1024 for both rx and tx
+ # num-rx-desc 512
+ # num-tx-desc 512
+
+ ## VLAN strip offload mode for interface
+ ## Default is off
+ # vlan-strip-offload on
+ # }
+
+ ## Whitelist specific interface by specifying PCI address
+ # dev 0000:02:00.0
+ ## Whitelist specific interface by specifying PCI address and in
+ ## addition specify custom parameters for this interface
+ # dev 0000:02:00.1 {
+ # num-rx-queues 2
+ # }
+
+ ## Change UIO driver used by VPP, Options are: igb_uio, vfio-pci
+ ## and uio_pci_generic (default)
+ # uio-driver vfio-pci
+
+ ## Disable mutli-segment buffers, improves performance but
+ ## disables Jumbo MTU support
+ # no-multi-seg
+
+ ## Increase number of buffers allocated, needed only in scenarios with
+ ## large number of interfaces and worker threads. Value is per CPU socket.
+ ## Default is 16384
+ # num-mbufs 128000
+
+ ## Change hugepages allocation per-socket, needed only if there is need for
+ ## larger number of mbufs. Default is 256M on each detected CPU socket
+ # socket-mem 2048,2048
# }
EOF
-cat > /etc/vpp/setup.gate << EOF
-set int state GigabitEthernet0/8/0 up
-set dhcp client intfc GigabitEthernet0/8/0 hostname brg-emulator
+ #Get list of network device PCI bus addresses
+ get_nic_pci_list() {
+ while read -r line ; do
+ if [ "$line" != "${line#*network device}" ]; then
+ echo -n "${line%% *} "
+ fi
+ done < <(lspci)
+ }
+
+ NICS=$(get_nic_pci_list)
+ NICS=`echo ${NICS} | sed 's/[0]\+\([0-9]\)/\1/g' | sed 's/[.:]/\//g'`
+ echo $NICS
+
+ BRG_BNG_NIC=GigabitEthernet`echo ${NICS} | cut -d " " -f 2` # second interface in list
+
+ cat > /etc/vpp/setup.gate << EOF
+set int state ${BRG_BNG_NIC} up
+set dhcp client intfc ${BRG_BNG_NIC} hostname brg-emulator
tap connect lstack
set int state tap-0 up
@@ -192,120 +211,119 @@ set interface l2 bridge tap-0 10 0
set bridge-domain arp term 10
EOF
-cat >> /opt/config/ip.txt << EOF
+ cat >> /opt/config/ip.txt << EOF
hcip: 192.168.4.20
EOF
-cat > /opt/bind_nic.sh << EOF
+ cat > /opt/bind_nic.sh << 'EOF'
+#!/bin/bash
while :
do
- if [[ ! $(ps -aux | grep [[:alnum:]]*/vpp/startup.conf | wc -l) = 2 ]]; then
- #echo "vpp not running"
- else
- break
- fi
-done
-nic_name=$(lshw -C network | grep "logical name:")
-nic_name=${nic_name#*:}
-ifconfig $nic_name down
-service vpp restart
-while read -r line
-do
- re=${line#*/[0-9]/[0-9]}
- if [ "$line" != "$re" ]; then
- nic=${line%(*}
- vppctl set dhcp client intfc $nic
- vppctl set int state $nic up
- break
- fi
-done < <(vppctl show int addr)
-while read -r sdnc_ip
-do
- if [[ $sdnc_ip = sdnc_ip* ]]; then
- sdnc_ip=${sdnc_ip#*" "}
- break
+ if [[ ! $(ps -aux | grep [[:alnum:]]*/vpp/startup.conf | wc -l) = 2 ]]; then
+ echo "vpp not running"
+ else
+ break
fi
-done < /opt/config/ip.txt
+done
+
+sdnc_ip=$(cat /opt/config/sdnc_ip.txt)
vppctl tap connect tap0
-vppctl set int state tap-0 up
-vppctl set int ip addr tap-0 20.0.0.40/24
+sleep 3
+vppctl set int state tap-1 up
+vppctl set int ip addr tap-1 20.0.0.40/24
ifconfig tap0 192.168.4.20/24
route add -host $sdnc_ip tap0
route add -host 20.0.0.40 tap0
-vppctl ip route add 192.168.4.0/24 via tap-0
-vppctl set interface snat in tap-0 out $nic
+vppctl ip route add 192.168.4.0/24 via tap-1
+vppctl set interface snat in tap-1 out ${BRG_BNG_NIC}
+vppctl snat add interface address ${BRG_BNG_NIC}
+
+
while read -r hw
do
- if [[ "$hw" = tap-0* ]]; then
- read -r hw
- hw_addr=${hw#" "}
- hw_addr=${hw_addr#" "}
- break
- fi
+ if [[ "$hw" = tap-1* ]];
+ then
+ read -r hw
+ hw_addr=${hw##* }
+ break
+ fi
done < <(vppctl show hardware)
arp -s $sdnc_ip $hw_addr
EOF
-chmod +x /opt/bind_nic.sh
+ chmod +x /opt/bind_nic.sh
-#set nat rule
-cat > /opt/set_nat.sh << EOF
+ #set nat rule
+ cat > /opt/set_nat.sh << 'EOF'
#! /bin/bash
while :
do
- if [[ ! $(ps -aux | grep [[:alnum:]]*/vpp/startup.conf | wc -l) = 2 ]]; then
- #echo "vpp not running"
+ if [[ ! $(ps -aux | grep [[:alnum:]]*/vpp/startup.conf | wc -l) = 2 ]];
+ then
+ #echo "vpp not running"
+ continue
+ fi
+
+ flag=0
+ while read -r line
+ do
+ if [ flag = 0 ];
+ then
+ re=${line#*/[0-9]/[0-9]}
+ if [ "$line" != "$re" ];
+ then
+ flag=1
+ else
+ flag=0
continue
- fi
-
- flag=0
- while read -r line
- do
- if [ flag = 0 ]; then
- re=${line#*/[0-9]/[0-9]}
- if [ "$line" != "$re" ]; then
- flag=1
- else
- flag=0
- continue
- fi
- else
- ip=${line%/*}
- if [[ $ip = *\.*\.*\.* ]]; then
- #echo "ip address is $ip"
- if [ ! -f /opt/config/ip.txt ]; then
- echo "file /opt/config/ip.txt doesn't exists"
- continue
- fi
- while read -r tap_ip
- do
- if [[ $tap_ip = hcip* ]]; then
- tap_ip=${tap_ip#*" "}
- echo "hc tap ip address is $tap_ip"
- vppctl snat add static mapping local $tap_ip external $ip
- exit 0
- fi
- done < /opt/config/ip.txt
- else
- if [[ ! $ip = */[0-9] ]]; then
- flag=0
- #echo "not correct"
- fi
- fi
+ fi
+ else
+ ip=${line%/*}
+ if [[ $ip = *\.*\.*\.* ]];
+ then
+ #echo "ip address is $ip"
+ if [ ! -f /opt/config/ip.txt ];
+ then
+ echo "file /opt/config/ip.txt doesn't exists"
+ continue
+ fi
+ while read -r tap_ip
+ do
+ if [[ $tap_ip = hcip* ]];
+ then
+ tap_ip=${tap_ip#*" "}
+ echo "hc tap ip address is $tap_ip"
+ vppctl snat add static mapping tcp local $tap_ip 8183 external $ip 8183
+ exit 0
+ fi
+ done < /opt/config/ip.txt
+ else
+ if [[ ! $ip = */[0-9] ]];
+ then
+ flag=0
+ #echo "not correct"
fi
- done < <(vppctl show int addr)
- sleep 1
+ fi
+ fi
+ done < <(vppctl show int addr)
+ sleep 1
done
EOF
-chmod +x /opt/set_nat.sh
+ chmod +x /opt/set_nat.sh
+fi # endif BUILD_STATE != "build"
-# Download and install HC2VPP from source
-cd /opt
-git clone ${HC2VPP_SOURCE_REPO_URL} -b ${HC2VPP_SOURCE_REPO_BRANCH} hc2vpp
+if [[ $BUILD_STATE != "done" ]]
+then
-apt-get install -y maven
-cat > ~/.m2/settings.xml << EOF
+ # Download and install HC2VPP from source
+ cd /opt
+ git clone ${HC2VPP_SOURCE_REPO_URL} -b ${HC2VPP_SOURCE_REPO_BRANCH} hc2vpp
+
+ apt-get -f -y install
+ apt-get install -y maven
+ mkdir -p /root/.m2
+ cat > ~/.m2/settings.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<!-- vi: set et smarttab sw=2 tabstop=2: -->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
@@ -314,7 +332,7 @@ cat > ~/.m2/settings.xml << EOF
<profiles>
<profile>
- <id>fd.io-release</id>
+ <id>fd.io-release</id>
<repositories>
<repository>
<id>fd.io-mirror</id>
@@ -362,7 +380,7 @@ cat > ~/.m2/settings.xml << EOF
</repositories>
<pluginRepositories>
<pluginRepository>
- <id>fd.io-snapshot</id>
+ <id>fd.io-snapshot</id>
<name>fd.io-snapshot</name>
<url>https://nexus.fd.io/content/repositories/fd.io.snapshot/</url>
<releases>
@@ -413,16 +431,26 @@ cat > ~/.m2/settings.xml << EOF
</settings>
EOF
-cd hc2vpp
-mvn clean install
-l_version=$(cat pom.xml | grep "<version>" | head -1)
-l_version=$(echo "${l_version%<*}")
-l_version=$(echo "${l_version#*>}")
-mv vpp-integration/minimal-distribution/target/vpp-integration-distribution-${l_version}-hc/vpp-integration-distribution-${l_version} /opt/honeycomb
-sed -i 's/127.0.0.1/0.0.0.0/g' /opt/honeycomb/config/honeycomb.json
-
-# Create systemctl service for Honeycomb
-cat > /etc/systemd/system/honeycomb.service << EOF
+ cd hc2vpp
+ mvn clean install
+ l_version=$(cat pom.xml | grep "<version>" | head -1)
+ l_version=$(echo "${l_version%<*}")
+ l_version=$(echo "${l_version#*>}")
+ mv vpp-integration/minimal-distribution/target/vpp-integration-distribution-${l_version}-hc/vpp-integration-distribution-${l_version} /opt/honeycomb
+ sed -i 's/127.0.0.1/0.0.0.0/g' /opt/honeycomb/config/honeycomb.json
+
+ # Disable automatic upgrades
+ if [[ $CLOUD_ENV != "rackspace" ]]
+ then
+ echo "APT::Periodic::Unattended-Upgrade \"0\";" >> /etc/apt/apt.conf.d/10periodic
+ sed -i 's/\(APT::Periodic::Unattended-Upgrade\) "1"/\1 "0"/' /etc/apt/apt.conf.d/20auto-upgrades
+ fi
+fi # endif BUILD_STATE != "done"
+
+if [[ $BUILD_STATE != "build" ]]
+then
+ # Create systemctl service for Honeycomb
+ cat > /etc/systemd/system/honeycomb.service << EOF
[Unit]
Description=Honeycomb Agent for the VPP control plane
Documentation=https://wiki.fd.io/view/Honeycomb
@@ -437,27 +465,28 @@ RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
-systemctl enable /etc/systemd/system/honeycomb.service
-
-# Download DHCP config files
-cd /opt
-wget $REPO_URL_BLOB/org.onap.demo/vnfs/vcpe/$INSTALL_SCRIPT_VERSION/v_brgemu_init.sh
-wget $REPO_URL_BLOB/org.onap.demo/vnfs/vcpe/$INSTALL_SCRIPT_VERSION/v_brgemu.sh
-chmod +x v_brgemu_init.sh
-chmod +x v_brgemu.sh
-mv v_brgemu.sh /etc/init.d
-update-rc.d v_brgemu.sh defaults
-
-# Rename network interface in openstack Ubuntu 16.04 images. Then, reboot the VM to pick up changes
-if [[ $CLOUD_ENV != "rackspace" ]]
-then
- sed -i "s/GRUB_CMDLINE_LINUX=.*/GRUB_CMDLINE_LINUX=\"net.ifnames=0 biosdevname=0\"/g" /etc/default/grub
- grub-mkconfig -o /boot/grub/grub.cfg
- sed -i "s/ens[0-9]*/eth0/g" /etc/network/interfaces.d/*.cfg
- sed -i "s/ens[0-9]*/eth0/g" /etc/udev/rules.d/70-persistent-net.rules
- echo 'network: {config: disabled}' >> /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
- echo "APT::Periodic::Unattended-Upgrade \"0\";" >> /etc/apt/apt.conf.d/10periodic
- reboot
-fi
-
-./v_brgemu_init.sh
+ systemctl enable /etc/systemd/system/honeycomb.service
+
+ # Download DHCP config files
+ cd /opt
+ wget $REPO_URL_BLOB/org.onap.demo/vnfs/vcpe/$INSTALL_SCRIPT_VERSION/v_brgemu_init.sh
+ wget $REPO_URL_BLOB/org.onap.demo/vnfs/vcpe/$INSTALL_SCRIPT_VERSION/v_brgemu.sh
+ sed -i '/# Provides:/c\# Provides: vbrg ' /opt/v_brgemu.sh
+ chmod +x v_brgemu_init.sh
+ chmod +x v_brgemu.sh
+ mv v_brgemu.sh /etc/init.d
+ update-rc.d v_brgemu.sh defaults
+
+ # Rename network interface in openstack Ubuntu 16.04 images. Then, reboot the VM to pick up changes
+ if [[ $CLOUD_ENV != "rackspace" ]]
+ then
+ sed -i "s/GRUB_CMDLINE_LINUX=.*/GRUB_CMDLINE_LINUX=\"net.ifnames=0 biosdevname=0\"/g" /etc/default/grub
+ grub-mkconfig -o /boot/grub/grub.cfg
+ sed -i "s/ens[0-9]*/eth0/g" /etc/network/interfaces.d/*.cfg
+ sed -i "s/ens[0-9]*/eth0/g" /etc/udev/rules.d/70-persistent-net.rules
+ echo 'network: {config: disabled}' >> /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
+ reboot
+ fi
+
+ ./v_brgemu_init.sh
+fi # endif BUILD_STATE != "build"