Add codes to build and run CP in vSPGWC playbook
Change-Id: Iedc8cad14b6cb99d2f42f9c721d2cd5e6e5ec699
(cherry picked from commit 2fce4fa6017e929ee0c69d59dbedfe42a710b91e)
diff --git a/xos/synchronizer/steps/roles/interface_config/tasks/main.yml b/xos/synchronizer/steps/roles/interface_config/tasks/main.yml
index 7aae3d2..ec6e96d 100644
--- a/xos/synchronizer/steps/roles/interface_config/tasks/main.yml
+++ b/xos/synchronizer/steps/roles/interface_config/tasks/main.yml
@@ -38,16 +38,52 @@
src=cp_config.cfg.j2
dest="{{source_path}}/config/cp_config.cfg" owner=root group=root mode=755
-#- name: Build ngic
-# become: yes
-# shell: "{{ item }}"
-# args:
-# chdir: "{{ source_path }}"
-# environment:
-# NG_CORE: "{{ source_path }}"
-# RTE_SDK: "{{ source_path }}/dpdk"
-# RTE_TARGET: "x86_64-native-linuxapp-gcc"
-# HYPERSCANDIR: "/root/ngic/hyperscan-4.1.0"
-# with_items:
-# - make
-# - /root/ngic/cp/run.sh -c 1
+- name: change CPU hexacode in run.sh file
+ become: yes
+ template:
+ src=run.sh.j2
+ dest="{{source_path}}/cp/run.sh" owner=root group=root mode=755
+
+- name: set hugepage parameter
+ become: yes
+ shell: "echo vm.nr_hugepages=512 >> /etc/sysctl.conf"
+
+- name: adjust changed hugepage parameter
+ become: yes
+ shell: "sysctl -p"
+
+- name: make run with log file
+ become: yes
+ template:
+ src=run_with_log.sh.j2
+ dest="{{source_path}}/cp/run_with_log.sh" owner=root group=root mode=755
+
+# Must wait until vSPGW-U successfully runs ngic dp software
+# Must insert codes to wait until above
+# Following codes will be uncommented when vSPGWU playbook is completed
+#- name: wait until vSPGW-U runs successfully
+# wait_for:
+# timeout: 1800
+# path: "{{ source_path }}/cp/finish_vspgwu_flag"
+# msg: Timeout to wait that vSPGWU runs successfully
+
+# This part should be run after user plane (data plane) runs in vSPGW-U
+# If not, vSPGW-U and vSPGW-C will not be working well
+- name: build and run vspgwc
+ become: yes
+ shell: "{{ item }}"
+ args:
+ chdir: "{{ source_path }}/cp"
+ environment:
+ NG_CORE: "{{ source_path }}"
+ RTE_SDK: "{{ source_path }}/dpdk"
+ RTE_TARGET: "x86_64-native-linuxapp-gcc"
+ HYPERSCANDIR: "/root/ngic/hyperscan-4.1.0"
+ with_items:
+ - make clean
+ - make
+ - ./run_with_log.sh
+
+- name: write flag
+ become: yes
+ shell: "echo 1 > {{source_path}}/cp/finish_flag"
\ No newline at end of file
diff --git a/xos/synchronizer/steps/roles/interface_config/templates/run.sh.j2 b/xos/synchronizer/steps/roles/interface_config/templates/run.sh.j2
new file mode 100644
index 0000000..2323a5a
--- /dev/null
+++ b/xos/synchronizer/steps/roles/interface_config/templates/run.sh.j2
@@ -0,0 +1,54 @@
+#! /bin/bash
+# Copyright 2017-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+source ../config/cp_config.cfg
+
+APP_PATH="./build"
+APP="ngic_controlplane"
+
+ARGS="-c {{ cpu_hexacode }} -n 4 --socket-mem $MEMORY,0 --file-prefix cp --no-pci -- \
+ -s $S11_SGW_IP \
+ -m $S11_MME_IP \
+ -w $S1U_SGW_IP \
+ -i $IP_POOL_IP \
+ -p $IP_POOL_MASK \
+ -a $APN"
+
+USAGE=$"Usage: run.sh [ debug | log ]
+ debug: executes $APP under gdb
+ log: executes $APP with logging enabled to date named file under
+ $APP_PATH/logs. Requires Control-C to exit even if $APP exits"
+
+if [ -z "$1" ]; then
+
+ $APP_PATH/$APP $ARGS
+
+elif [ "$1" == "log" ]; then
+
+ if [ "$#" -eq "2" ]; then
+ FILE="${FILE/.log/.$2.log}"
+ echo "logging as $FILE"
+ fi
+ trap "killall $APP; exit" SIGINT
+ stdbuf -oL -eL $APP_PATH/$APP $ARGS </dev/null &>$FILE & tail -f $FILE
+
+elif [ "$1" == "debug" ];then
+
+ GDB_EX="-ex 'set print pretty on'"
+ gdb $GDB_EX --args $APP_PATH/$APP $ARGS
+
+else
+ echo "$USAGE"
+fi
\ No newline at end of file
diff --git a/xos/synchronizer/steps/roles/interface_config/templates/run_with_log.sh.j2 b/xos/synchronizer/steps/roles/interface_config/templates/run_with_log.sh.j2
new file mode 100644
index 0000000..f286205
--- /dev/null
+++ b/xos/synchronizer/steps/roles/interface_config/templates/run_with_log.sh.j2
@@ -0,0 +1 @@
+./run.sh > results &
\ No newline at end of file
diff --git a/xos/synchronizer/steps/vspgwctenant_playbook.yaml b/xos/synchronizer/steps/vspgwctenant_playbook.yaml
index 9fc240a..11b6ae2 100644
--- a/xos/synchronizer/steps/vspgwctenant_playbook.yaml
+++ b/xos/synchronizer/steps/vspgwctenant_playbook.yaml
@@ -32,6 +32,7 @@
- s11_mme_ip: {{ s11_mme_ip }}
- s1u_sgw_ip: {{ s1u_sgw_ip }}
- scenario: {{ scenario }}
+ - cpu_hexacode: "0x0e"
roles:
- interface_config