aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ansible/build_yardstick_image.yml15
-rw-r--r--ansible/install_dependencies.yml (renamed from ansible/roles/install_prox/tasks/RedHat.yml)12
-rw-r--r--ansible/library/find_kernel.py93
-rw-r--r--ansible/post_build_yardstick_image.yml2
-rw-r--r--ansible/roles/download_dpdk/tasks/main.yml15
-rw-r--r--ansible/roles/download_prox/defaults/main.yml12
-rw-r--r--ansible/roles/download_prox/tasks/main.yml36
-rw-r--r--ansible/roles/download_samplevnfs/defaults/main.yml8
-rw-r--r--ansible/roles/download_samplevnfs/tasks/main.yml17
-rw-r--r--ansible/roles/download_trex/defaults/main.yml6
-rw-r--r--ansible/roles/download_trex/tasks/main.yml12
-rw-r--r--ansible/roles/enable_hugepages_on_boot/defaults/main.yml3
-rwxr-xr-xansible/roles/enable_hugepages_on_boot/tasks/main.yml4
-rwxr-xr-xansible/roles/install_dependencies/tasks/Debian.yml1
-rw-r--r--ansible/roles/install_dependencies/tasks/RedHat.yml1
-rw-r--r--ansible/roles/install_dpdk/defaults/main.yml2
-rwxr-xr-xansible/roles/install_dpdk/tasks/Debian.yml3
-rw-r--r--ansible/roles/install_dpdk/tasks/RedHat.yml2
-rw-r--r--ansible/roles/install_dpdk/tasks/main.yml21
-rw-r--r--ansible/roles/install_dpdk/vars/main.yml2
-rwxr-xr-xansible/roles/install_prox/tasks/Debian.yml24
-rw-r--r--ansible/roles/install_samplevnf/tasks/main.yml55
-rw-r--r--ansible/roles/install_samplevnf/vars/main.yml (renamed from ansible/roles/install_prox/tasks/main.yml)43
-rw-r--r--ansible/roles/install_trex/defaults/main.yml3
-rw-r--r--ansible/roles/install_trex/tasks/main.yml17
-rw-r--r--ansible/roles/install_vnf_vACL/tasks/main.yml41
-rw-r--r--ansible/roles/install_vnf_vACL/vars/main.yml2
-rw-r--r--ansible/roles/install_vnf_vCGNAPT/tasks/main.yml41
-rw-r--r--ansible/roles/install_vnf_vCGNAPT/vars/main.yml2
-rw-r--r--ansible/roles/install_vnf_vFW/tasks/main.yml50
-rw-r--r--ansible/roles/install_vnf_vFW/vars/main.yml2
-rw-r--r--ansible/roles/install_vnf_vPE/tasks/main.yml37
-rw-r--r--ansible/roles/install_vnf_vPE/vars/main.yml2
-rw-r--r--ansible/roles/reset_resolv_conf/tasks/main.yml2
-rw-r--r--ansible/ubuntu_server_baremetal_deploy_samplevnfs.yml (renamed from ansible/ubuntu_server_cloudimg_modify_vpe.yml)32
-rw-r--r--ansible/ubuntu_server_cloudimg_modify_cgnapt.yml41
-rw-r--r--ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml (renamed from ansible/ubuntu_server_cloudimg_modify_acl.yml)33
-rw-r--r--ansible/ubuntu_server_cloudimg_modify_vfw.yml41
-rw-r--r--tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_trex.py2
-rw-r--r--yardstick/benchmark/scenarios/networking/vnf_generic.py2
-rw-r--r--yardstick/network_services/vnf_generic/vnf/tg_rfc2544_trex.py2
41 files changed, 318 insertions, 423 deletions
diff --git a/ansible/build_yardstick_image.yml b/ansible/build_yardstick_image.yml
index 9a65d3ae0..025573b4b 100644
--- a/ansible/build_yardstick_image.yml
+++ b/ansible/build_yardstick_image.yml
@@ -28,11 +28,9 @@
sha256sums_filename: "{{ sha256sums_path|basename }}"
sha256sums_url: "{{ lookup('env', 'SHA256SUMS_URL')|default('https://' ~ host ~ '/' ~ sha256sums_path, true) }}"
- mountdir: "{{ lookup('env', 'mountdir')|default('/mnt/yardstick', true) }}"
workspace: "{{ lookup('env', 'workspace')|default('/tmp/workspace/yardstick', true) }}"
imgfile: "{{ workspace }}/yardstick-image.img"
raw_imgfile_basename: "yardstick-{{ release }}-server.raw"
- raw_imgfile: "{{ workspace }}/{{ raw_imgfile_basename }}"
environment:
PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/bin
@@ -42,6 +40,12 @@
- package: name=parted state=present
+ - set_fact:
+ mountdir: "{{ lookup('env', 'mountdir')|default('/mnt/yardstick', true) }}"
+
+ - set_fact:
+ raw_imgfile: "{{ workspace }}/{{ raw_imgfile_basename }}"
+
# cleanup non-lxd
- name: unmount all old mount points
mount:
@@ -260,9 +264,16 @@
ansible_python_interpreter: /usr/bin/python3
# set this host variable here
nameserver_ip: "{{ ansible_dns.nameservers[0] }}"
+ image_type: vm
- name: include {{ img_modify_playbook }}
include: "{{ img_modify_playbook }}"
- name: run post build tasks
include: post_build_yardstick_image.yml
+
+- hosts: localhost
+
+ tasks:
+ - debug:
+ msg: "yardstick image = {{ raw_imgfile }}"
diff --git a/ansible/roles/install_prox/tasks/RedHat.yml b/ansible/install_dependencies.yml
index 69fa83b31..001418497 100644
--- a/ansible/roles/install_prox/tasks/RedHat.yml
+++ b/ansible/install_dependencies.yml
@@ -12,11 +12,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-- name: Install PROX build dependencies
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
- with_items:
- - pkgconfig
- - lua-devel
- - ncurses-devel
- - libedit-devel
+- name: install yardstick dependencies
+ hosts: all
+
+ roles:
+ - install_dependencies
diff --git a/ansible/library/find_kernel.py b/ansible/library/find_kernel.py
new file mode 100644
index 000000000..4623bce89
--- /dev/null
+++ b/ansible/library/find_kernel.py
@@ -0,0 +1,93 @@
+#!/usr/bin/env python
+# Copyright (c) 2017 Intel Corporation
+#
+# 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.
+
+import os
+
+DOCUMENTATION = '''
+---
+module: find_kernel
+short_description: Look for the system kernel on the filesystem
+description:
+ - We need to find the kernel on non-booted systems, disk images, chroots, etc.
+ To do this we check /lib/modules and look for the kernel that matches the running
+ kernle, or failing that we look for the highest-numbered kernel
+options:
+ kernel: starting kernel to check
+ module_dir: Override kernel module dir, default /lib/modules
+'''
+
+LIB_MODULES = "/lib/modules"
+
+
+def try_int(s, *args):
+ """Convert to integer if possible."""
+ try:
+ return int(s)
+ except (TypeError, ValueError):
+ return args[0] if args else s
+
+
+def convert_ints(fields, orig):
+ return tuple((try_int(f) for f in fields)), orig
+
+
+def main():
+ module = AnsibleModule(
+ argument_spec={
+ 'kernel': {'required': True, 'type': 'str'},
+ 'module_dir': {'required': False, 'type': 'str', 'default': LIB_MODULES},
+ }
+ )
+ params = module.params
+ kernel = params['kernel']
+ module_dir = params['module_dir']
+
+ if os.path.isdir(os.path.join(module_dir, kernel)):
+ module.exit_json(changed=False, kernel=kernel)
+
+ kernel_dirs = os.listdir(module_dir)
+ kernels = sorted((convert_ints(re.split('[-.]', k), k) for k in kernel_dirs), reverse=True)
+ try:
+ newest_kernel = kernels[0][-1]
+ except IndexError:
+ module.fail_json(msg="Unable to find kernels in {}".format(module_dir))
+
+ if os.path.isdir(os.path.join(module_dir, newest_kernel)):
+ module.exit_json(changed=False, kernel=newest_kernel)
+ else:
+ return kernel
+
+ module.fail_json(msg="Unable to kernel other than {}".format(kernel))
+
+
+# <<INCLUDE_ANSIBLE_MODULE_COMMON>>
+from ansible.module_utils.basic import * # noqa
+
+if __name__ == '__main__':
+ main()
+
+"""
+
+get kernel from uname, ansible_kernel
+look for that kernel in /lib/modules
+if that kernel doens't exist
+sort lib/modules
+use latest
+
+parse grub
+
+
+
+"""
diff --git a/ansible/post_build_yardstick_image.yml b/ansible/post_build_yardstick_image.yml
index b0c418721..d1f2a73a8 100644
--- a/ansible/post_build_yardstick_image.yml
+++ b/ansible/post_build_yardstick_image.yml
@@ -40,5 +40,3 @@
- name: kpartx -dv to delete all image partition device nodes
command: kpartx -dv "{{ raw_imgfile }}"
ignore_errors: true
-
- - command: losetup -d "{{ loop_device }}" \ No newline at end of file
diff --git a/ansible/roles/download_dpdk/tasks/main.yml b/ansible/roles/download_dpdk/tasks/main.yml
index 322f3cd0c..bcb5dde1a 100644
--- a/ansible/roles/download_dpdk/tasks/main.yml
+++ b/ansible/roles/download_dpdk/tasks/main.yml
@@ -16,6 +16,10 @@
var: dpdk_version
verbosity: 2
+- file:
+ path: "{{ dpdk_dest }}"
+ state: directory
+
- name: fetch dpdk
get_url:
url: "{{ dpdk_url }}"
@@ -24,12 +28,17 @@
checksum: "{{ dpdk_sha256s[dpdk_version] }}"
- unarchive:
- src: "{{ clone_dest }}/{{ dpdk_file }}"
- dest: "{{ clone_dest }}/"
+ src: "{{ dpdk_dest }}/{{ dpdk_file }}"
+ dest: "{{ dpdk_dest }}/"
copy: no
+- name: cleanup tar file to save space
+ file:
+ path: "{{ dpdk_dest }}/{{ dpdk_file }}"
+ state: absent
+
- set_fact:
- dpdk_path: "{{ clone_dest }}/{{ dpdk_unarchive }}"
+ dpdk_path: "{{ dpdk_dest }}/{{ dpdk_unarchive }}"
- set_fact:
RTE_SDK: "{{ dpdk_path }}"
diff --git a/ansible/roles/download_prox/defaults/main.yml b/ansible/roles/download_prox/defaults/main.yml
deleted file mode 100644
index 797db3125..000000000
--- a/ansible/roles/download_prox/defaults/main.yml
+++ /dev/null
@@ -1,12 +0,0 @@
----
-prox_version: v037
-prox_suffix:
- v035: "zip"
- v037: "tar.gz"
-prox_url: "https://01.org/sites/default/files/downloads/intelr-data-plane-performance-demonstrators/dppd-prox-{{ prox_version }}.{{ prox_suffix[prox_version] }}"
-prox_file: "{{ prox_url|basename }}"
-prox_unarchive: "{{ prox_file|regex_replace('[.]zip$', '')|regex_replace('-prox-', '-PROX-') }}"
-prox_dest: "{{ clone_dest }}/"
-prox_sha256s:
- v035: "sha256:f5d3f7c3855ca198d2babbc7045ed4373f0ddc13dc243fedbe23ed395ce65cc9"
- v037: "sha256:a12d021fbc0f5ae55ab55a2bbf8f3b260705ce3e61866288f023ccabca010bca"
diff --git a/ansible/roles/download_prox/tasks/main.yml b/ansible/roles/download_prox/tasks/main.yml
deleted file mode 100644
index 0614c74fa..000000000
--- a/ansible/roles/download_prox/tasks/main.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# 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.
----
-- debug:
- var: prox_version
- verbosity: 2
-
-- name: fetch prox
- get_url:
- url: "{{ prox_url }}"
- dest: "{{ prox_dest }}"
- validate_certs: False
- checksum: "{{ prox_sha256s[prox_version] }}"
-
-- unarchive:
- src: "{{ clone_dest }}/{{ prox_file }}"
- dest: "{{ clone_dest }}/"
- copy: no
-
-- debug:
- var: prox_unarchive
- verbosity: 2
-
-- set_fact:
- prox_path: "{{ clone_dest }}/{{ prox_unarchive }}" \ No newline at end of file
diff --git a/ansible/roles/download_samplevnfs/defaults/main.yml b/ansible/roles/download_samplevnfs/defaults/main.yml
index 44449af6f..5f565a415 100644
--- a/ansible/roles/download_samplevnfs/defaults/main.yml
+++ b/ansible/roles/download_samplevnfs/defaults/main.yml
@@ -1,6 +1,4 @@
---
-samplevnf_version: ""
-samplevnf_file: "{{ samplevnf_url|basename }}"
-samplevnf_unarchive: "{{ samplevnf_file|regex_replace('[.]tar[.]gz$', '') }}"
-samplevnf_dest: "{{ clone_dest }}/"
-samplevnf_sha256: "sha256:36457cadfd23053c9ce1cf2e6f048cad6a5d04a7371d7a122e133dcbf007989e"
+samplevnf_url: "https://git.opnfv.org/samplevnf"
+samplevnf_dest: "{{ clone_dest }}/samplevnf"
+samplevnf_version: "master"
diff --git a/ansible/roles/download_samplevnfs/tasks/main.yml b/ansible/roles/download_samplevnfs/tasks/main.yml
index 005d57dda..e9d4142c9 100644
--- a/ansible/roles/download_samplevnfs/tasks/main.yml
+++ b/ansible/roles/download_samplevnfs/tasks/main.yml
@@ -17,16 +17,13 @@
# verbosity: 2
- name: fetch samplevnf
- get_url:
- url: "{{ samplevnf_url }}"
+ git:
+ repo: "{{ samplevnf_url }}"
dest: "{{ samplevnf_dest }}"
- validate_certs: False
- checksum: "{{ samplevnf_sha256 }}"
-
-- unarchive:
- src: "{{ clone_dest }}/{{ samplevnf_file }}"
- dest: "{{ clone_dest }}/"
- copy: no
+ version: "{{ samplevnf_version }}"
+ accept_hostkey: yes
+ recursive: no
+ force: yes
- set_fact:
- samplevnf_path: "{{ clone_dest }}/{{ samplevnf_unarchive }}"
+ samplevnf_path: "{{ samplevnf_dest }}"
diff --git a/ansible/roles/download_trex/defaults/main.yml b/ansible/roles/download_trex/defaults/main.yml
index dd2dd27eb..6e8fa7020 100644
--- a/ansible/roles/download_trex/defaults/main.yml
+++ b/ansible/roles/download_trex/defaults/main.yml
@@ -12,9 +12,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-trex_version: v2.20
+trex_version: v2.28
trex_url: "https://trex-tgn.cisco.com/trex/release/{{ trex_version }}.tar.gz"
trex_file: "{{ trex_url|basename }}"
trex_unarchive: "{{ trex_file|regex_replace('[.]tar.gz$', '') }}"
trex_dest: "{{ clone_dest }}/"
-trex_sha256: "sha256:eb5a069f758a36133a185c7e27af10834ca03d11441165403529fbd7844658fb"
+trex_sha256s:
+ "v2.20": "sha256:eb5a069f758a36133a185c7e27af10834ca03d11441165403529fbd7844658fb"
+ "v2.28": "sha256:c3f08aabbd69dddb09843984d41acbe9ba1af6a6ef3380a7830f7c9e33134207"
diff --git a/ansible/roles/download_trex/tasks/main.yml b/ansible/roles/download_trex/tasks/main.yml
index 75a3169f0..baa964fd8 100644
--- a/ansible/roles/download_trex/tasks/main.yml
+++ b/ansible/roles/download_trex/tasks/main.yml
@@ -16,10 +16,16 @@
get_url:
url: "{{ trex_url }}"
dest: "{{ trex_dest }}"
- checksum: "{{ trex_sha256 }}"
+ validate_certs: False
+ checksum: "{{ trex_sha256s[trex_version] }}"
- name: unarchive Trex
unarchive:
- src: "{{ clone_dest }}/{{ trex_file }}"
- dest: "{{ clone_dest }}/"
+ src: "{{ trex_dest }}/{{ trex_file }}"
+ dest: "{{ trex_dest }}/"
copy: no
+
+- name: cleanup tar file to save space
+ file:
+ path: "{{ trex_dest }}/{{ trex_file }}"
+ state: absent
diff --git a/ansible/roles/enable_hugepages_on_boot/defaults/main.yml b/ansible/roles/enable_hugepages_on_boot/defaults/main.yml
new file mode 100644
index 000000000..015e01bab
--- /dev/null
+++ b/ansible/roles/enable_hugepages_on_boot/defaults/main.yml
@@ -0,0 +1,3 @@
+---
+num_hugepages: auto
+huge_pagesize_mb: 1024 \ No newline at end of file
diff --git a/ansible/roles/enable_hugepages_on_boot/tasks/main.yml b/ansible/roles/enable_hugepages_on_boot/tasks/main.yml
index f258bb684..be4a328a2 100755
--- a/ansible/roles/enable_hugepages_on_boot/tasks/main.yml
+++ b/ansible/roles/enable_hugepages_on_boot/tasks/main.yml
@@ -38,15 +38,11 @@
line: '{{ hugepage_param }}'
state: present
-- name: Update grub
- command: "{{ update_grub[ansible_os_family] }}"
-
- name: create hugetables mount
file:
path: "{{ hugetable_mount }}"
state: directory
-
- name: mount hugetlbfs
mount:
name: "{{ hugetable_mount }}"
diff --git a/ansible/roles/install_dependencies/tasks/Debian.yml b/ansible/roles/install_dependencies/tasks/Debian.yml
index ac8332287..0047a5e3b 100755
--- a/ansible/roles/install_dependencies/tasks/Debian.yml
+++ b/ansible/roles/install_dependencies/tasks/Debian.yml
@@ -29,6 +29,7 @@
- qemu-kvm
- qemu-user-static
- qemu-utils
+ - kpartx
- libvirt0
- python-libvirt
- bridge-utils
diff --git a/ansible/roles/install_dependencies/tasks/RedHat.yml b/ansible/roles/install_dependencies/tasks/RedHat.yml
index 4bb7c318e..b725933d0 100644
--- a/ansible/roles/install_dependencies/tasks/RedHat.yml
+++ b/ansible/roles/install_dependencies/tasks/RedHat.yml
@@ -46,6 +46,7 @@
- python-setuptools
- libffi-devel
- python-devel
+ - kpartx
# don't install kernel-devel here it will trigger unwanted kernel upgrade
# Mandatory Packages:
# Don't use yum groups, they don't work, expand them manually
diff --git a/ansible/roles/install_dpdk/defaults/main.yml b/ansible/roles/install_dpdk/defaults/main.yml
new file mode 100644
index 000000000..fe2172401
--- /dev/null
+++ b/ansible/roles/install_dpdk/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+INSTALL_BIN_PATH: "/opt/nsb_bin" \ No newline at end of file
diff --git a/ansible/roles/install_dpdk/tasks/Debian.yml b/ansible/roles/install_dpdk/tasks/Debian.yml
index 486d40e11..c77e4f96a 100755
--- a/ansible/roles/install_dpdk/tasks/Debian.yml
+++ b/ansible/roles/install_dpdk/tasks/Debian.yml
@@ -17,3 +17,6 @@
with_items:
- libpcap-dev
+- name: Install kernel headers
+ action: "{{ ansible_pkg_mgr }} name=linux-headers-{{ dpdk_kernel }} state=present"
+
diff --git a/ansible/roles/install_dpdk/tasks/RedHat.yml b/ansible/roles/install_dpdk/tasks/RedHat.yml
index af35c9b3e..2fb249eae 100644
--- a/ansible/roles/install_dpdk/tasks/RedHat.yml
+++ b/ansible/roles/install_dpdk/tasks/RedHat.yml
@@ -17,3 +17,5 @@
with_items:
- libpcap-devel
+- name: Install kernel headers
+ action: "{{ ansible_pkg_mgr }} name=kernel-headers-{{ dpdk_kernel }} state=present"
diff --git a/ansible/roles/install_dpdk/tasks/main.yml b/ansible/roles/install_dpdk/tasks/main.yml
index fca0e33af..cab093ad5 100644
--- a/ansible/roles/install_dpdk/tasks/main.yml
+++ b/ansible/roles/install_dpdk/tasks/main.yml
@@ -20,8 +20,22 @@
# with_fileglob:
# - "{{ local_nsb_path }}/patches/dpdk_custom_patch/0*.patch"
+- name: find kernel for image, (including chroot)
+ find_kernel:
+ kernel: "{{ ansible_kernel }}"
+ register: found_kernel
+
+# Do this before installing kernel headers
+- name: Set dpdk_kernel to be the kernel we found
+ set_fact:
+ dpdk_kernel: "{{ found_kernel.kernel }}"
+
- include: "{{ ansible_os_family }}.yml"
+- name: set RTE_KERNELDIR to point to found kernel
+ set_fact:
+ RTE_KERNELDIR: "/lib/modules/{{ dpdk_kernel }}/build"
+
- my_make:
chdir: "{{ dpdk_path }}"
target: config
@@ -29,6 +43,8 @@
T: "{{ dpdk_make_arch }}"
O: "{{ dpdk_make_arch }}"
extra_args: "-j {{ ansible_processor_vcpus }}"
+ environment:
+ RTE_KERNELDIR: "{{ RTE_KERNELDIR }}"
- name: enable RTE_PORT_STATS_COLLECT
lineinfile:
@@ -57,6 +73,8 @@
- my_make:
chdir: "{{ dpdk_path }}/{{ dpdk_make_arch}}"
extra_args: "-j {{ ansible_processor_vcpus }}"
+ environment:
+ RTE_KERNELDIR: "{{ RTE_KERNELDIR }}"
- file:
path: "{{ dpdk_module_dir}}"
@@ -67,7 +85,8 @@
dest: "{{ dpdk_module_dir }}/igb_uio.ko"
remote_src: yes
-- command: depmod -a
+- name: run depmod for dpdk_kernel
+ command: depmod "{{ dpdk_kernel }}"
- file:
path: "{{ INSTALL_BIN_PATH }}"
diff --git a/ansible/roles/install_dpdk/vars/main.yml b/ansible/roles/install_dpdk/vars/main.yml
index 730215c90..1cc4f1583 100644
--- a/ansible/roles/install_dpdk/vars/main.yml
+++ b/ansible/roles/install_dpdk/vars/main.yml
@@ -1,6 +1,6 @@
---
dpdk_make_arch: x86_64-native-linuxapp-gcc
-dpdk_module_dir: "/lib/modules/{{ ansible_kernel }}/extra"
+dpdk_module_dir: "/lib/modules/{{ dpdk_kernel }}/extra"
hugetable_mount: /mnt/huge
dpdk_devbind:
"16.07": "{{ dpdk_path }}/tools/dpdk-devbind.py"
diff --git a/ansible/roles/install_prox/tasks/Debian.yml b/ansible/roles/install_prox/tasks/Debian.yml
deleted file mode 100755
index 00a31fc41..000000000
--- a/ansible/roles/install_prox/tasks/Debian.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright (c) 2017 Intel Corporation.
-#
-# 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.
----
-- name: Install PROX build dependencies
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
- with_items:
- - pkg-config
- - liblua5.2-dev
- - libncurses5
- - libncurses5-dev
- - libncursesw5
- - libncursesw5-dev
- - libedit-dev
diff --git a/ansible/roles/install_samplevnf/tasks/main.yml b/ansible/roles/install_samplevnf/tasks/main.yml
new file mode 100644
index 000000000..d332c88bc
--- /dev/null
+++ b/ansible/roles/install_samplevnf/tasks/main.yml
@@ -0,0 +1,55 @@
+# Copyright (c) 2017 Intel Corporation
+#
+# 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.
+---
+- set_fact:
+ vnf_build_dir: "{{ samplevnf_path }}/VNFs/{{ vnf_build_dirs[vnf_name] }}"
+
+- set_fact:
+ vnf_app_name: "{{ vnf_app_names[vnf_name] }}"
+
+- name: Install extra build dependencies
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items: "{{ vnf_build_dependencies.get(vnf_name, {}).get(ansible_os_family, []) }}"
+
+
+- name: set build env vars
+ set_fact:
+ build_env_vars:
+ RTE_SDK: "{{ RTE_SDK }}"
+ RTE_TARGET: "{{ RTE_TARGET }}"
+ VNF_CORE: "{{ samplevnf_path }}"
+
+- name: set soft CRC for PROX when building in VM
+ set_fact:
+ build_env_vars: "{{ build_env_vars|combine({'crc': 'soft'}) }}"
+ when: vnf_name == "PROX" and image_type is defined and image_type == "vm"
+
+- name: "make {{ vnf_name }} clean"
+ my_make: chdir="{{ vnf_build_dir }}" target=clean extra_args="-j {{ ansible_processor_vcpus }}"
+ environment: "{{ build_env_vars }}"
+
+- name: "make {{ vnf_name }}"
+ my_make: chdir="{{ vnf_build_dir }}" extra_args="-j {{ ansible_processor_vcpus }}"
+ environment: "{{ build_env_vars }}"
+
+#- command: cp "{{ vnf_build_dir }}/{{ vnf_name }}/build/ip_pipeline" "{{ INSTALL_BIN_PATH }}/vACL_vnf"
+
+- name: "Install {{ vnf_name }} VNF"
+ copy:
+ src: "{{ vnf_build_dir }}/build/{{ vnf_app_name }}"
+ dest: "{{ INSTALL_BIN_PATH }}/{{ vnf_app_name }}"
+ remote_src: True
+ # make executable
+ mode: 0755
+
diff --git a/ansible/roles/install_prox/tasks/main.yml b/ansible/roles/install_samplevnf/vars/main.yml
index 93025fcb4..6f2c44a84 100644
--- a/ansible/roles/install_prox/tasks/main.yml
+++ b/ansible/roles/install_samplevnf/vars/main.yml
@@ -12,19 +12,30 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-- include: "{{ ansible_os_family }}.yml"
-
-- name: workaround, make trailing.sh executable
- file:
- path: "{{ prox_path }}/helper-scripts/trailing.sh"
- state: touch
- mode: 0755
- when: prox_version == "v035"
-
-- make:
- chdir: "{{ prox_path }}"
- environment:
- RTE_SDK: "{{ RTE_SDK }}"
- RTE_TARGET: "{{ RTE_TARGET }}"
-
-
+vnf_build_dependencies:
+ PROX:
+ Debian:
+ - pkg-config
+ - liblua5.2-dev
+ - libncurses5
+ - libncurses5-dev
+ - libncursesw5
+ - libncursesw5-dev
+ - libedit-dev
+ RedHat:
+ - pkgconfig
+ - lua-devel
+ - ncurses-devel
+ - libedit-devel
+vnf_build_dirs:
+ ACL: vACL
+ FW: vFW
+ CGNATP: vCGNAPT
+ UDP_Replay: UDP_Replay
+ PROX: DPPD-PROX
+vnf_app_names:
+ ACL: vACL
+ FW: vFW
+ CGNATP: vCGNAPT
+ UDP_Replay: UDP_Replay
+ PROX: prox
diff --git a/ansible/roles/install_trex/defaults/main.yml b/ansible/roles/install_trex/defaults/main.yml
index 1b2876301..a5555e355 100644
--- a/ansible/roles/install_trex/defaults/main.yml
+++ b/ansible/roles/install_trex/defaults/main.yml
@@ -13,5 +13,6 @@
# limitations under the License.
---
#TREX_DOWNLOAD: "https://trex-tgn.cisco.com/trex/release/v2.05.tar.gz"
-TREX_VERSION: v2.20
+TREX_VERSION: v2.28
TREX_DOWNLOAD: "{{ nsb_mirror_url|ternary(nsb_mirror_url, 'https://trex-tgn.cisco.com/trex/release' }}/{{ TREX_VERSION }}.tar.gz"
+INSTALL_BIN_PATH: "/opt/nsb_bin"
diff --git a/ansible/roles/install_trex/tasks/main.yml b/ansible/roles/install_trex/tasks/main.yml
index 4818a8087..7ba1fc833 100644
--- a/ansible/roles/install_trex/tasks/main.yml
+++ b/ansible/roles/install_trex/tasks/main.yml
@@ -12,17 +12,24 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-- set_fact:
- trex_file: "{{ trex_url|basename|regex_replace('[.]tar.gz', '') }}"
-
- file: path="{{ INSTALL_BIN_PATH }}/trex" state=absent
- file: path="{{ INSTALL_BIN_PATH }}/trex" state=directory
+- command: mv "{{ trex_dest }}/{{ trex_unarchive }}" "{{ INSTALL_BIN_PATH }}/trex/scripts"
+
+# Don't overwrite igb_uio.ko compiled from DPDK
-- command: mv "{{ clone_dest }}/{{ trex_unarchive }}" "{{ INSTALL_BIN_PATH }}/trex/scripts"
+- name: fix stl __init__.py for python module
+ file:
+ path: "{{ INSTALL_BIN_PATH }}/trex/scripts/automation/trex_control_plane/stl/__init__.py"
+ state: touch
-- file: path="{{ INSTALL_BIN_PATH }}/trex/scripts/automation/trex_control_plane/stl/__init__.py" state=touch
+- name: "symlink client to {{ INSTALL_BIN_PATH }}/trex_client"
+ file:
+ src: "{{ INSTALL_BIN_PATH }}/trex/scripts/automation/trex_control_plane"
+ dest: "{{ INSTALL_BIN_PATH }}/trex_client"
+ state: link
# Don't use trex/scripts/dpdk_nic_bind.py use DPDK usertools/dpdk-devbind.py
#- command: cp "{{ INSTALL_BIN_PATH }}/trex/scripts/dpdk_nic_bind.py" "{{ INSTALL_BIN_PATH }}"
diff --git a/ansible/roles/install_vnf_vACL/tasks/main.yml b/ansible/roles/install_vnf_vACL/tasks/main.yml
deleted file mode 100644
index ff2e769f0..000000000
--- a/ansible/roles/install_vnf_vACL/tasks/main.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# 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.
----
-- name: vACL_vnf make clean
- my_make: chdir="{{ acl_build_dir }}" target=clean extra_args="-j {{ ansible_processor_vcpus }}"
- environment:
- RTE_SDK: "{{ RTE_SDK }}"
- RTE_TARGET: "{{ RTE_TARGET }}"
- VNF_CORE: "{{ samplevnf_path }}"
-
-- name: make vACL VNF
- my_make: chdir="{{ acl_build_dir }}" extra_args="-j {{ ansible_processor_vcpus }}"
- environment:
- RTE_SDK: "{{ RTE_SDK }}"
- RTE_TARGET: "{{ RTE_TARGET }}"
- VNF_CORE: "{{ samplevnf_path }}"
-
-#- command: cp "{{ acl_build_dir }}/vACL/build/ip_pipeline" "{{ INSTALL_BIN_PATH }}/vACL_vnf"
-- name: Install vACL VNF
- copy:
- src: "{{ acl_build_dir }}/build/vACL"
- dest: "{{ INSTALL_BIN_PATH }}/vACL"
- remote_src: True
- # make executable
- mode: 0755
-
-#- command: cp "{{ acl_build_dir }}/vACL/config/full_tm_profile_10G.cfg" "{{ INSTALL_BIN_PATH }}/"
-#- copy:
-# src: "{{ acl_build_dir }}/vACL/config/full_tm_profile_10G.cfg"
-# dest: "{{ INSTALL_BIN_PATH }}/"
diff --git a/ansible/roles/install_vnf_vACL/vars/main.yml b/ansible/roles/install_vnf_vACL/vars/main.yml
deleted file mode 100644
index ee61bf11c..000000000
--- a/ansible/roles/install_vnf_vACL/vars/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-acl_build_dir: "{{ samplevnf_path }}/VNFs/vACL" \ No newline at end of file
diff --git a/ansible/roles/install_vnf_vCGNAPT/tasks/main.yml b/ansible/roles/install_vnf_vCGNAPT/tasks/main.yml
deleted file mode 100644
index 9f8458f6f..000000000
--- a/ansible/roles/install_vnf_vCGNAPT/tasks/main.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# 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.
----
-- name: vCGNAPT_vnf make clean
- my_make: chdir="{{ acl_build_dir }}" target=clean extra_args="-j {{ ansible_processor_vcpus }}"
- environment:
- RTE_SDK: "{{ RTE_SDK }}"
- RTE_TARGET: "{{ RTE_TARGET }}"
- VNF_CORE: "{{ samplevnf_path }}"
-
-- name: make vCGNAPT VNF
- my_make: chdir="{{ acl_build_dir }}" extra_args="-j {{ ansible_processor_vcpus }}"
- environment:
- RTE_SDK: "{{ RTE_SDK }}"
- RTE_TARGET: "{{ RTE_TARGET }}"
- VNF_CORE: "{{ samplevnf_path }}"
-
-#- command: cp "{{ acl_build_dir }}/vCGNAPT/build/ip_pipeline" "{{ INSTALL_BIN_PATH }}/vCGNAPT_vnf"
-- name: Install vCGNAPT VNF
- copy:
- src: "{{ acl_build_dir }}/build/vCGNAPT"
- dest: "{{ INSTALL_BIN_PATH }}/vCGNAPT"
- remote_src: True
- # make executable
- mode: 0755
-
-#- command: cp "{{ acl_build_dir }}/vCGNAPT/config/full_tm_profile_10G.cfg" "{{ INSTALL_BIN_PATH }}/"
-#- copy:
-# src: "{{ acl_build_dir }}/vCGNAPT/config/full_tm_profile_10G.cfg"
-# dest: "{{ INSTALL_BIN_PATH }}/"
diff --git a/ansible/roles/install_vnf_vCGNAPT/vars/main.yml b/ansible/roles/install_vnf_vCGNAPT/vars/main.yml
deleted file mode 100644
index cca1a89a3..000000000
--- a/ansible/roles/install_vnf_vCGNAPT/vars/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-acl_build_dir: "{{ samplevnf_path }}/VNFs/vCGNAPT" \ No newline at end of file
diff --git a/ansible/roles/install_vnf_vFW/tasks/main.yml b/ansible/roles/install_vnf_vFW/tasks/main.yml
deleted file mode 100644
index cb3df3ed4..000000000
--- a/ansible/roles/install_vnf_vFW/tasks/main.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# 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.
----
-- name: vFW_vnf make clean
- my_make: chdir="{{ vfw_build_dir }}" target=clean extra_args="-j {{ ansible_processor_vcpus }}"
- environment:
- RTE_SDK: "{{ RTE_SDK }}"
- RTE_TARGET: "{{ RTE_TARGET }}"
- VNF_CORE: "{{ samplevnf_path }}"
-
-#- name: make vFW VNF
-# my_make: chdir="{{ vfw_build_dir }}" extra_args="-j {{ ansible_processor_vcpus }}"
-# environment:
-# RTE_SDK: "{{ RTE_SDK }}"
-# RTE_TARGET: "{{ RTE_TARGET }}"
-# VNF_CORE: "{{ samplevnf_path }}"
-
-- name: make vFW VNF
- command: make chdir="{{ vfw_build_dir }}" extra_args="-j {{ ansible_processor_vcpus }}" all
- args:
- chdir: "{{ vfw_build_dir }}"
- environment:
- RTE_SDK: "{{ RTE_SDK }}"
- RTE_TARGET: "{{ RTE_TARGET }}"
- VNF_CORE: "{{ samplevnf_path }}"
-
-#- command: cp "{{ vfw_build_dir }}/vFW/build/ip_pipeline" "{{ INSTALL_BIN_PATH }}/vFW_vnf"
-- name: Install vFW VNF
- copy:
- src: "{{ vfw_build_dir }}/build/vFW"
- dest: "{{ INSTALL_BIN_PATH }}/vFW"
- remote_src: True
- # make executable
- mode: 0755
-
-#- command: cp "{{ vfw_build_dir }}/vFW/config/full_tm_profile_10G.cfg" "{{ INSTALL_BIN_PATH }}/"
-#- copy:
-# src: "{{ vfw_build_dir }}/vFW/config/full_tm_profile_10G.cfg"
-# dest: "{{ INSTALL_BIN_PATH }}/"
diff --git a/ansible/roles/install_vnf_vFW/vars/main.yml b/ansible/roles/install_vnf_vFW/vars/main.yml
deleted file mode 100644
index 8a8a39865..000000000
--- a/ansible/roles/install_vnf_vFW/vars/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-vfw_build_dir: "{{ samplevnf_path }}/VNFs/vFW" \ No newline at end of file
diff --git a/ansible/roles/install_vnf_vPE/tasks/main.yml b/ansible/roles/install_vnf_vPE/tasks/main.yml
deleted file mode 100644
index 91d449a41..000000000
--- a/ansible/roles/install_vnf_vPE/tasks/main.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2017 Intel Corporation
-#
-# 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.
----
-- name: vPE_vnf make clean
- my_make: chdir="{{ vpe_build_dir }}" target=clean extra_args="-j {{ ansible_processor_vcpus }}"
- environment:
- RTE_SDK: "{{ RTE_SDK }}"
- RTE_TARGET: "{{ RTE_TARGET }}"
-
-- name: make vPE VNF
- my_make: chdir="{{ vpe_build_dir }}" extra_args="-j {{ ansible_processor_vcpus }}"
- environment:
- RTE_SDK: "{{ RTE_SDK }}"
- RTE_TARGET: "{{ RTE_TARGET }}"
-
-#- command: cp "{{ vpe_build_dir }}/vPE/build/ip_pipeline" "{{ INSTALL_BIN_PATH }}/vPE_vnf"
-- name: Install vPE_vnf
- copy:
- src: "{{ vpe_build_dir }}/build/ip_pipeline"
- dest: "{{ INSTALL_BIN_PATH }}/vPE_vnf"
- remote_src: True
-
-#- command: cp "{{ vpe_build_dir }}/vPE/config/full_tm_profile_10G.cfg" "{{ INSTALL_BIN_PATH }}/"
-#- copy:
-# src: "{{ vpe_build_dir }}/vPE/config/full_tm_profile_10G.cfg"
-# dest: "{{ INSTALL_BIN_PATH }}/"
diff --git a/ansible/roles/install_vnf_vPE/vars/main.yml b/ansible/roles/install_vnf_vPE/vars/main.yml
deleted file mode 100644
index fe0a9727f..000000000
--- a/ansible/roles/install_vnf_vPE/vars/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-vpe_build_dir: "{{ dpdk_path }}/examples/ip_pipeline" \ No newline at end of file
diff --git a/ansible/roles/reset_resolv_conf/tasks/main.yml b/ansible/roles/reset_resolv_conf/tasks/main.yml
index 50094f24f..4e6de695d 100644
--- a/ansible/roles/reset_resolv_conf/tasks/main.yml
+++ b/ansible/roles/reset_resolv_conf/tasks/main.yml
@@ -21,7 +21,7 @@
file:
path: "{{ resolv_conf_stat.stat.lnk_source|dirname }}"
state: directory
- mode: 755
+ mode: 0755
- name: Override resolv.conf link source with specific nameserver
template:
diff --git a/ansible/ubuntu_server_cloudimg_modify_vpe.yml b/ansible/ubuntu_server_baremetal_deploy_samplevnfs.yml
index f55a30fb9..3a1fbd08f 100644
--- a/ansible/ubuntu_server_cloudimg_modify_vpe.yml
+++ b/ansible/ubuntu_server_baremetal_deploy_samplevnfs.yml
@@ -12,30 +12,32 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-- hosts: chroot_image
- connection: chroot
+- hosts: all
vars:
clone_dir: /tmp/yardstick-clone
- pre_tasks:
- - debug: msg="chrooted in {{ inventory_hostname }}"
roles:
- - reset_resolv_conf
- add_custom_repos
- role: set_package_installer_proxy
when: proxy_env is defined and proxy_env
- # can update grub in chroot/docker
-# - enable_hugepages_on_boot
- - modify_cloud_config
+# can't update grub in chroot/docker
+ - enable_hugepages_on_boot
- install_image_dependencies
- role: download_dpdk
- dpdk_version: "16.07"
+# dpdk_version: "17.02"
- install_dpdk
- # vPE is part of DPDK so we don't need to copy it
- - install_vnf_vPE
-# - copy_L4Replay
-# - install_L4Replay
-# - copy_trex
-# - install_trex
+ - download_trex
+ - install_trex
+ - download_samplevnfs
+ - role: install_samplevnf
+ vnf_name: PROX
+ - role: install_samplevnf
+ vnf_name: UDP_Replay
+ - role: install_samplevnf
+ vnf_name: ACL
+ - role: install_samplevnf
+ vnf_name: FW
+ - role: install_samplevnf
+ vnf_name: CGNATP
diff --git a/ansible/ubuntu_server_cloudimg_modify_cgnapt.yml b/ansible/ubuntu_server_cloudimg_modify_cgnapt.yml
deleted file mode 100644
index 3f2a179bb..000000000
--- a/ansible/ubuntu_server_cloudimg_modify_cgnapt.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (c) 2017 Intel Corporation.
-#
-# 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.
----
-- hosts: chroot_image
- connection: chroot
- vars:
- clone_dir: /tmp/yardstick-clone
-
- pre_tasks:
- - debug: msg="chrooted in {{ inventory_hostname }}"
-
- roles:
-# - reset_resolv_conf
-# - add_custom_repos
-# - role: set_package_installer_proxy
-# when: proxy_env is defined and proxy_env
- # can update grub in chroot/docker
-# - enable_hugepages_on_boot
-# - modify_cloud_config
-# - install_image_dependencies
-# - role: download_dpdk
-# dpdk_version: "16.07"
-# - install_dpdk
-# - download_samplevnfs
- - install_vnf_vCGNAPT
-# - copy_L4Replay
-# - install_L4Replay
-# - copy_trex
-# - install_trex
-
diff --git a/ansible/ubuntu_server_cloudimg_modify_acl.yml b/ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml
index 98542d7a3..2700b810f 100644
--- a/ansible/ubuntu_server_cloudimg_modify_acl.yml
+++ b/ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml
@@ -18,24 +18,35 @@
clone_dir: /tmp/yardstick-clone
pre_tasks:
- - debug: msg="chrooted in {{ inventory_hostname }}"
+ - debug:
+ msg: "chrooted in {{ inventory_hostname }}"
+ - debug:
+ var: proxy_env
+ verbosity: 2
roles:
- reset_resolv_conf
- add_custom_repos
- role: set_package_installer_proxy
when: proxy_env is defined and proxy_env
- # can update grub in chroot/docker
-# - enable_hugepages_on_boot
+# can't update grub in chroot/docker
+ - enable_hugepages_on_boot
- modify_cloud_config
- install_image_dependencies
-# - role: download_dpdk
-# dpdk_version: "16.07"
-# - install_dpdk
-# - download_samplevnfs
-# - install_vnf_vACL
-# - copy_L4Replay
-# - install_L4Replay
- - copy_trex
+ - role: download_dpdk
+# dpdk_version: "17.02"
+ - install_dpdk
+ - download_trex
- install_trex
+ - download_samplevnfs
+ - role: install_samplevnf
+ vnf_name: PROX
+ - role: install_samplevnf
+ vnf_name: UDP_Replay
+ - role: install_samplevnf
+ vnf_name: ACL
+ - role: install_samplevnf
+ vnf_name: FW
+ - role: install_samplevnf
+ vnf_name: CGNATP
diff --git a/ansible/ubuntu_server_cloudimg_modify_vfw.yml b/ansible/ubuntu_server_cloudimg_modify_vfw.yml
deleted file mode 100644
index f8cd3ecdc..000000000
--- a/ansible/ubuntu_server_cloudimg_modify_vfw.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (c) 2017 Intel Corporation.
-#
-# 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.
----
-- hosts: chroot_image
- connection: chroot
- vars:
- clone_dir: /tmp/yardstick-clone
-
- pre_tasks:
- - debug: msg="chrooted in {{ inventory_hostname }}"
-
- roles:
-# - reset_resolv_conf
-# - add_custom_repos
-# - role: set_package_installer_proxy
-# when: proxy_env is defined and proxy_env
- # can update grub in chroot/docker
-# - enable_hugepages_on_boot
-# - modify_cloud_config
-# - install_image_dependencies
-# - role: download_dpdk
-# dpdk_version: "16.07"
-# - install_dpdk
-# - download_samplevnfs
- - install_vnf_vFW
-# - copy_L4Replay
-# - install_L4Replay
-# - copy_trex
-# - install_trex
-
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_trex.py b/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_trex.py
index 3dcb02f02..ad8c6494e 100644
--- a/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_trex.py
+++ b/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_trex.py
@@ -233,7 +233,7 @@ class TestTrexTrafficGenRFC(unittest.TestCase):
def test_collect_kpi(self, ssh):
mock_ssh(ssh)
trex_traffic_gen = TrexTrafficGenRFC('vnf1', self.VNFD_0)
- self.assertIsNone(trex_traffic_gen.collect_kpi())
+ self.assertEqual(trex_traffic_gen.collect_kpi(), {})
@mock.patch(SSH_HELPER)
def test_listen_traffic(self, ssh):
diff --git a/yardstick/benchmark/scenarios/networking/vnf_generic.py b/yardstick/benchmark/scenarios/networking/vnf_generic.py
index aecc228bc..4510bcfba 100644
--- a/yardstick/benchmark/scenarios/networking/vnf_generic.py
+++ b/yardstick/benchmark/scenarios/networking/vnf_generic.py
@@ -523,7 +523,7 @@ printf "%s/driver:" $1 ; basename $(readlink -s $1/device/driver); } \
for vnf in self.vnfs:
# Result example:
# {"VNF1: { "tput" : [1000, 999] }, "VNF2": { "latency": 100 }}
- LOG.debug("vnf")
+ LOG.debug("collect KPI for %s", vnf.name)
result.update(self.collector.get_kpi(vnf))
def teardown(self):
diff --git a/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_trex.py b/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_trex.py
index d94a9a6e6..15c9c0e1d 100644
--- a/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_trex.py
+++ b/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_trex.py
@@ -98,7 +98,7 @@ class TrexRfcResourceHelper(TrexResourceHelper):
def collect_kpi(self):
self.rfc2544_helper.iteration.value += 1
- super(TrexRfcResourceHelper, self).collect_kpi()
+ return super(TrexRfcResourceHelper, self).collect_kpi()
class TrexTrafficGenRFC(TrexTrafficGen):