summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ansible/build_yardstick_image.yml8
-rw-r--r--ansible/group_vars/all.yml4
-rw-r--r--ansible/install.yaml12
-rw-r--r--ansible/prepare_openstack.yml1
-rw-r--r--ansible/roles/add_repos_jumphost/tasks/Debian.yml1
-rw-r--r--ansible/roles/build_yardstick_image/vars/main.yml8
-rw-r--r--ansible/roles/configure_gui/tasks/main.yml5
-rw-r--r--ansible/roles/configure_rabbitmq/tasks/main.yml20
-rw-r--r--ansible/roles/configure_rabbitmq/templates/rabbitmq.config.j25
-rw-r--r--ansible/roles/configure_rabbitmq/templates/user_definitions.json.j223
-rw-r--r--ansible/roles/download_drivers/defaults/main.yml3
-rw-r--r--ansible/roles/enable_iommu_on_boot/tasks/main.yml94
-rwxr-xr-xansible/roles/install_dependencies_jumphost/tasks/Debian.yml32
-rw-r--r--ansible/roles/install_dependencies_jumphost/tasks/RedHat.yml1
-rw-r--r--ansible/roles/install_dependencies_jumphost/tasks/Suse.yml6
-rwxr-xr-xansible/roles/install_dpdk/tasks/Debian.yml1
-rw-r--r--ansible/roles/install_yardstick/tasks/main.yml8
-rw-r--r--docker/Dockerfile_ubuntu1862
-rwxr-xr-xdocker/supervisor.sh14
-rw-r--r--docs/release/release-notes/release-notes.rst64
-rw-r--r--samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml3
-rw-r--r--samples/vnf_samples/nsut/vpe/vpe_config/action_bulk_512.txt14
-rw-r--r--samples/vnf_samples/nsut/vpe/vpe_config/vpe_config_2_ports14
-rw-r--r--samples/vnf_samples/nsut/vpe/vpe_config/vpe_script_sample631
-rw-r--r--yardstick/benchmark/runners/iteration.py1
-rw-r--r--yardstick/network_services/traffic_profile/base.py4
-rw-r--r--yardstick/network_services/traffic_profile/ixia_rfc2544.py6
-rw-r--r--yardstick/network_services/vnf_generic/vnf/sample_vnf.py4
-rw-r--r--yardstick/network_services/vnf_generic/vnf/vpe_vnf.py16
-rw-r--r--yardstick/tests/unit/benchmark/runner/test_iteration.py45
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_base.py16
31 files changed, 948 insertions, 178 deletions
diff --git a/ansible/build_yardstick_image.yml b/ansible/build_yardstick_image.yml
index 072c12c66..495a547bb 100644
--- a/ansible/build_yardstick_image.yml
+++ b/ansible/build_yardstick_image.yml
@@ -19,11 +19,13 @@
'amd64': disk1
'arm64': uefi1
boot_mode: "{{ boot_modes[YARD_IMG_ARCH] }}"
- image_filename: "{{ release }}-server-cloudimg-{{ YARD_IMG_ARCH }}-{{ boot_mode }}.img"
- image_path: "{{ release }}/current/{{ image_filename }}"
+ image_filename:
+ 'xenial': "{{ release }}-server-cloudimg-{{ YARD_IMG_ARCH }}-{{ boot_mode }}.img"
+ 'bionic': "{{ release }}-server-cloudimg-{{ YARD_IMG_ARCH }}.img"
+ image_path: "{{ release }}/current/{{ image_filename[release] }}"
host: "{{ lookup('env', 'HOST')|default('cloud-images.ubuntu.com', true)}}"
image_url: "{{ lookup('env', 'IMAGE_URL')|default('https://' ~ host ~ '/' ~ image_path, true) }}"
- image_dest: "{{ workspace }}/{{ image_filename }}"
+ image_dest: "{{ workspace }}/{{ image_filename[release] }}"
sha256sums_path: "{{ release }}/current/SHA256SUMS"
sha256sums_filename: "{{ sha256sums_path|basename }}"
sha256sums_url: "{{ lookup('env', 'SHA256SUMS_URL')|default('https://' ~ host ~ '/' ~ sha256sums_path, true) }}"
diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index 596560508..0e8ad5bc5 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -1,9 +1,9 @@
---
target_os: "Ubuntu"
YARD_IMG_ARCH: "amd64"
-IMG_PROPERTY: "normal"
+IMG_PROPERTY: "{{ IMAGE_PROPERTY | default('normal') }}"
clone_dest: /opt/tempT
-release: xenial
+release: "{{ OS_RELEASE | default('xenial') }}"
normal_image_file: "{{ workspace }}/yardstick-image.img"
nsb_image_file: "{{ workspace }}/yardstick-nsb-image.img"
ubuntu_image_file: /tmp/workspace/yardstick/yardstick-trusty-server.raw
diff --git a/ansible/install.yaml b/ansible/install.yaml
index 01478fb12..0c7ad7e92 100644
--- a/ansible/install.yaml
+++ b/ansible/install.yaml
@@ -21,7 +21,7 @@
pre_tasks:
- - name: Create NSB binaries directory, accesible to any user
+ - name: Create NSB binaries directory, accessible to any user
file:
path: "{{ nsb_dir }}"
state: directory
@@ -31,15 +31,15 @@
- installation_mode != inst_mode_container_pull
roles:
- - { role: add_repos_jumphost, when: installation_mode != inst_mode_container_pull }
- - { role: install_dependencies_jumphost, when: installation_mode != inst_mode_container_pull }
+ - add_repos_jumphost
+ - install_dependencies_jumphost
- { role: install_yardstick, when: installation_mode != inst_mode_container_pull }
- { role: configure_uwsgi, when: installation_mode != inst_mode_container_pull }
- { role: configure_nginx, when: installation_mode != inst_mode_container_pull }
- { role: configure_gui, when: installation_mode != inst_mode_container_pull }
- { role: download_trex, when: installation_mode != inst_mode_container_pull }
- { role: install_trex, when: installation_mode != inst_mode_container_pull }
- - { role: configure_rabbitmq, when: installation_mode != inst_mode_container_pull }
+ - { role: configure_rabbitmq, when: installation_mode == inst_mode_baremetal }
post_tasks:
@@ -142,10 +142,6 @@
tasks:
- include_role:
- name: install_dependencies_jumphost
- when: installation_mode == inst_mode_container_pull
-
- - include_role:
name: docker
when: installation_mode == inst_mode_container_pull
diff --git a/ansible/prepare_openstack.yml b/ansible/prepare_openstack.yml
index 6f54ef522..c9067c9fb 100644
--- a/ansible/prepare_openstack.yml
+++ b/ansible/prepare_openstack.yml
@@ -23,7 +23,6 @@
include: build_yardstick_image.yml
vars:
YARD_IMG_ARCH: amd64
- release: xenial
img_property: nsb
- name: Cleanup old OpenStack images and upload the new one
diff --git a/ansible/roles/add_repos_jumphost/tasks/Debian.yml b/ansible/roles/add_repos_jumphost/tasks/Debian.yml
index 626f0b037..e15699617 100644
--- a/ansible/roles/add_repos_jumphost/tasks/Debian.yml
+++ b/ansible/roles/add_repos_jumphost/tasks/Debian.yml
@@ -71,7 +71,6 @@
deb [arch={{ extra_arch }}] {{ extra_repo }} {{ ansible_distribution_release }} main universe multiverse restricted
deb [arch={{ extra_arch }}] {{ extra_repo }} {{ ansible_distribution_release }}-updates main universe multiverse restricted
deb [arch={{ extra_arch }}] {{ extra_repo }} {{ ansible_distribution_release }}-security main universe multiverse restricted
- deb [arch={{ extra_arch }}] {{ extra_repo }} {{ ansible_distribution_release }}-proposed main universe multiverse restricted
when: installation_mode == "container"
- name: Remove the marker
diff --git a/ansible/roles/build_yardstick_image/vars/main.yml b/ansible/roles/build_yardstick_image/vars/main.yml
index 6728e5afb..3d4054408 100644
--- a/ansible/roles/build_yardstick_image/vars/main.yml
+++ b/ansible/roles/build_yardstick_image/vars/main.yml
@@ -16,11 +16,13 @@ boot_modes:
'amd64': disk1
'arm64': uefi1
boot_mode: "{{ boot_modes[YARD_IMG_ARCH] }}"
-image_filename: "{{ release }}-server-cloudimg-{{ YARD_IMG_ARCH }}-{{ boot_mode }}.img"
-image_path: "{{ release }}/current/{{ image_filename }}"
+image_filename:
+ 'xenial': "{{ release }}-server-cloudimg-{{ YARD_IMG_ARCH }}-{{ boot_mode }}.img"
+ 'bionic': "{{ release }}-server-cloudimg-{{ YARD_IMG_ARCH }}.img"
+image_path: "{{ release }}/current/{{ image_filename[release] }}"
host: "{{ lookup('env', 'HOST')|default('cloud-images.ubuntu.com', true)}}"
image_url: "{{ lookup('env', 'IMAGE_URL')|default('https://' ~ host ~ '/' ~ image_path, true) }}"
-image_dest: "{{ workspace }}/{{ image_filename }}"
+image_dest: "{{ workspace }}/{{ image_filename[release] }}"
sha256sums_path: "{{ release }}/current/SHA256SUMS"
sha256sums_filename: "{{ sha256sums_path|basename }}"
sha256sums_url: "{{ lookup('env', 'SHA256SUMS_URL')|default('https://' ~ host ~ '/' ~ sha256sums_path, true) }}"
diff --git a/ansible/roles/configure_gui/tasks/main.yml b/ansible/roles/configure_gui/tasks/main.yml
index 846a9cb47..665053ccf 100644
--- a/ansible/roles/configure_gui/tasks/main.yml
+++ b/ansible/roles/configure_gui/tasks/main.yml
@@ -27,6 +27,11 @@
state: directory
recurse: yes
+- name: Remove /etc/nginx/yardstick/gui/dist directory if it exists
+ file:
+ path: /etc/nginx/yardstick/gui/dist
+ state: absent
+
- name: Move dist to /etc/nginx/yardstick/gui
shell:
cmd: mv dist /etc/nginx/yardstick/gui
diff --git a/ansible/roles/configure_rabbitmq/tasks/main.yml b/ansible/roles/configure_rabbitmq/tasks/main.yml
index 4ff4222dc..3ad60c1ea 100644
--- a/ansible/roles/configure_rabbitmq/tasks/main.yml
+++ b/ansible/roles/configure_rabbitmq/tasks/main.yml
@@ -12,16 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-- name: Create rabbitmq configuration
- template:
- src: rabbitmq.config.j2
- dest: /etc/rabbitmq/rabbitmq.config
-
-- name: Define user definitions file
- template:
- src: user_definitions.json.j2
- dest: /etc/rabbitmq/definitions.json
-
- name: Restart rabbitmq
service:
name: rabbitmq-server
@@ -30,5 +20,11 @@
- name: rabbitmqctl start_app
shell: rabbitmqctl start_app
-- name: Enable management plugin
- shell: rabbitmq-plugins enable rabbitmq_management
+- name: Configure rabbitmq
+ rabbitmq_user:
+ user: yardstick
+ password: yardstick
+ configure_priv: .*
+ read_priv: .*
+ write_priv: .*
+ state: present
diff --git a/ansible/roles/configure_rabbitmq/templates/rabbitmq.config.j2 b/ansible/roles/configure_rabbitmq/templates/rabbitmq.config.j2
deleted file mode 100644
index 8f07edf5c..000000000
--- a/ansible/roles/configure_rabbitmq/templates/rabbitmq.config.j2
+++ /dev/null
@@ -1,5 +0,0 @@
- [
- {rabbitmq_management, [
- {load_definitions, "/etc/rabbitmq/definitions.json"}
- ]}
-]. \ No newline at end of file
diff --git a/ansible/roles/configure_rabbitmq/templates/user_definitions.json.j2 b/ansible/roles/configure_rabbitmq/templates/user_definitions.json.j2
deleted file mode 100644
index 7c811f16d..000000000
--- a/ansible/roles/configure_rabbitmq/templates/user_definitions.json.j2
+++ /dev/null
@@ -1,23 +0,0 @@
- {
- "users": [{
- "name": "yardstick",
- "password_hash": "XHp9fBOE3vjTEf7ktiUBHqefW2g=",
- "hashing_algorithm": "rabbit_password_hashing_sha256",
- "tags": ""
- }],
- "vhosts": [{
- "name": "/"
- }],
- "permissions": [{
- "user": "yardstick",
- "vhost": "/",
- "configure": ".*",
- "write": ".*",
- "read": ".*"
- }],
- "parameters": [],
- "policies": [],
- "queues": [],
- "exchanges": [],
- "bindings": []
-}
diff --git a/ansible/roles/download_drivers/defaults/main.yml b/ansible/roles/download_drivers/defaults/main.yml
index ab68a3c6d..bf1e48a23 100644
--- a/ansible/roles/download_drivers/defaults/main.yml
+++ b/ansible/roles/download_drivers/defaults/main.yml
@@ -12,10 +12,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-i40evf_version: "3.4.2"
+i40evf_version: "3.5.13"
i40evf_gzfile: "i40evf-{{ i40evf_version }}.tar.gz"
i40evf_url: "https://netix.dl.sourceforge.net/project/e1000/i40evf%20stable/{{ i40evf_version }}/{{ i40evf_gzfile }}"
i40evf_dest: "{{ clone_dest }}/"
i40evf_path: "{{ i40evf_dest }}/{{ i40evf_gzfile|regex_replace('[.]tar[.]gz$', '') }}"
i40evf_checksum:
"3.4.2": "sha256:a8e2a722fb2f8ac874cb39545a331761841f1724830ff1581d2012dd37314645"
+ "3.5.13": "sha256:e57b95b694c8480b905e72ea13caac8714d6bb0c9eabe37cca655505b808f033" \ No newline at end of file
diff --git a/ansible/roles/enable_iommu_on_boot/tasks/main.yml b/ansible/roles/enable_iommu_on_boot/tasks/main.yml
index e406fcc1e..188b32915 100644
--- a/ansible/roles/enable_iommu_on_boot/tasks/main.yml
+++ b/ansible/roles/enable_iommu_on_boot/tasks/main.yml
@@ -22,55 +22,57 @@
iommu_boot_params: ' amd_iommu=on iommu=pt'
when: hostvars[inventory_hostname]['ansible_system_vendor'] == "AuthenticAMD"
-- name: Define grub string for IOMMU
- set_fact:
- enable_iommu: 'GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX{{ iommu_boot_params }}'
+- block:
+ - name: Define grub string for IOMMU
+ set_fact:
+ enable_iommu: 'GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX{{ iommu_boot_params }}'
-- name: check if iommu is set by this role in {{ grub_file}}
- lineinfile:
- path: "{{ grub_file}}"
- regexp: '{{ iommu_help_string }}'
- line: '{{ iommu_help_string }}'
- state: absent
- check_mode: yes
- register: is_nsb_iommu_role
- ignore_errors: True
+ - name: check if iommu is set by this role in {{ grub_file}}
+ lineinfile:
+ path: "{{ grub_file}}"
+ regexp: '{{ iommu_help_string }}'
+ line: '{{ iommu_help_string }}'
+ state: absent
+ check_mode: yes
+ register: is_nsb_iommu_role
+ ignore_errors: True
-- name: Check if IOMMU is set by someone else
- lineinfile:
- path: "{{ grub_file}}"
- regexp: "_iommu="
- line: '{{ iommu_help_string }}'
- state: absent
- check_mode: yes
- register: is_iommu
- ignore_errors: True
+ - name: Check if IOMMU is set by someone else
+ lineinfile:
+ path: "{{ grub_file}}"
+ regexp: "_iommu="
+ line: '{{ iommu_help_string }}'
+ state: absent
+ check_mode: yes
+ register: is_iommu
+ ignore_errors: True
-- name: Send info that IOMMU is configured by someone else
- debug:
- msg: "INFO: NOT modified, IOMMU is already configured by someone."
- when:
- - not is_nsb_iommu_role.changed
- - is_iommu.changed
+ - name: Send info that IOMMU is configured by someone else
+ debug:
+ msg: "INFO: NOT modified, IOMMU is already configured by someone."
+ when:
+ - not is_nsb_iommu_role.changed
+ - is_iommu.changed
-- name: Add IOMMU when it is not set
- lineinfile:
- path: "{{ grub_file }}"
- regexp: "{{ iommu_help_string }}"
- line: '{{ enable_iommu }}" {{ iommu_help_string }}'
- when:
- - not is_nsb_iommu_role.changed
- - not is_iommu.changed
+ - name: Add IOMMU when it is not set
+ lineinfile:
+ path: "{{ grub_file }}"
+ regexp: "{{ iommu_help_string }}"
+ line: '{{ enable_iommu }}" {{ iommu_help_string }}'
+ when:
+ - not is_nsb_iommu_role.changed
+ - not is_iommu.changed
-- name: find boot grub.cfg
- find:
- paths: /boot
- file_type: file
- patterns: 'grub*.cfg'
- recurse: yes
- register: grub_files
+ - name: find boot grub.cfg
+ find:
+ paths: /boot
+ file_type: file
+ patterns: 'grub*.cfg'
+ recurse: yes
+ register: grub_files
-- include: manual_modify_grub.yml
- # only tested on Ubuntu, kernel line is probably different on other distros
- with_items: "{{ grub_files.files }}"
- when: ansible_distribution == "Ubuntu"
+ - include: manual_modify_grub.yml
+ # only tested on Ubuntu, kernel line is probably different on other distros
+ with_items: "{{ grub_files.files }}"
+ when: ansible_distribution == "Ubuntu"
+ when: iommu_boot_params is defined
diff --git a/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml b/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml
index 9baf7e59e..6c3900d26 100755
--- a/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml
+++ b/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml
@@ -16,6 +16,12 @@
apt:
update_cache: yes
+- name: Install dependency for Ubuntu 18
+ action: "{{ ansible_pkg_mgr }} name=libssl1.0-dev state=present"
+ when:
+ - ansible_distribution == 'Ubuntu'
+ - ansible_distribution_major_version|int >= 17
+
- name: Install core packages
action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
with_items:
@@ -29,20 +35,17 @@
- vim
- libffi-dev
- libfuse-dev
- - libssl-dev
- libxft-dev
- libxml2-dev
- libxss-dev
- - libxslt-dev
- libxslt1-dev
- - libzmq-dev
+ - libzmq3-dev
- qemu-user-static
- qemu-utils
- kpartx
- python
- python-setuptools
- python-dev
- - python-pip
- python-libvirt
- python-virtualenv
- bridge-utils
@@ -54,7 +57,6 @@
- uwsgi-plugin-python
- supervisor
- lsof
- - nodejs
- npm
- rabbitmq-server
@@ -74,3 +76,23 @@
- name: Remove useless packages from the cache
apt:
autoclean: yes
+
+# There is a bug with the easy install ansible module in Ubuntu 16.04 linux.
+# Refer https://github.com/ansible/ansible/issues/23534
+- name: Install pip
+ shell: easy_install -U pip
+ when:
+ - ansible_distribution == 'Ubuntu'
+ - ansible_distribution_major_version|int <= 16
+
+- name: Install python-pip
+ action: "{{ ansible_pkg_mgr }} name=python-pip state=present"
+ when:
+ - ansible_distribution == 'Ubuntu'
+ - ansible_distribution_major_version|int >= 17
+
+- name: Install required docker-py module
+ pip:
+ name: docker-py
+ state: latest
+ environment: "{{ proxy_env }}"
diff --git a/ansible/roles/install_dependencies_jumphost/tasks/RedHat.yml b/ansible/roles/install_dependencies_jumphost/tasks/RedHat.yml
index 85eb1156a..cb5315adb 100644
--- a/ansible/roles/install_dependencies_jumphost/tasks/RedHat.yml
+++ b/ansible/roles/install_dependencies_jumphost/tasks/RedHat.yml
@@ -52,3 +52,4 @@
- openssl
- python-virtualenv
- ccze
+ - python-pip
diff --git a/ansible/roles/install_dependencies_jumphost/tasks/Suse.yml b/ansible/roles/install_dependencies_jumphost/tasks/Suse.yml
index af53c9cd5..7932ed96d 100644
--- a/ansible/roles/install_dependencies_jumphost/tasks/Suse.yml
+++ b/ansible/roles/install_dependencies_jumphost/tasks/Suse.yml
@@ -47,3 +47,9 @@
- openssl
- python-virtualenv
- ccze
+
+# There is a bug with the easy install ansible module in suse linux.
+# Until this is fixed the shell command must be used
+# Refer https://github.com/ansible/ansible/issues/37296
+- name: Install pip
+ shell: easy_install -U pip
diff --git a/ansible/roles/install_dpdk/tasks/Debian.yml b/ansible/roles/install_dpdk/tasks/Debian.yml
index 4f0c3c881..b76a0fbf8 100755
--- a/ansible/roles/install_dpdk/tasks/Debian.yml
+++ b/ansible/roles/install_dpdk/tasks/Debian.yml
@@ -17,6 +17,7 @@
with_items:
- libpcap-dev
- pciutils
+ - libelf-dev
- name: Install kernel headers
action: "{{ ansible_pkg_mgr }} name=linux-headers-{{ dpdk_kernel }} state=present"
diff --git a/ansible/roles/install_yardstick/tasks/main.yml b/ansible/roles/install_yardstick/tasks/main.yml
index 203acc3e5..f93f8eec3 100644
--- a/ansible/roles/install_yardstick/tasks/main.yml
+++ b/ansible/roles/install_yardstick/tasks/main.yml
@@ -29,14 +29,6 @@
scope: global
value: False
-# There is a bug with the easy install ansible module in suse linux.
-# Until this is fixed the shell command must be used
-- name: Install pip
- shell: easy_install -U pip
-# easy_install:
-# name: pip
-# state: latest
-
- name: Install Yardstick requirements (venv)
pip:
requirements: "{{ yardstick_dir }}/requirements.txt"
diff --git a/docker/Dockerfile_ubuntu18 b/docker/Dockerfile_ubuntu18
new file mode 100644
index 000000000..a9dfaeb6a
--- /dev/null
+++ b/docker/Dockerfile_ubuntu18
@@ -0,0 +1,62 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+FROM ubuntu:18.04
+
+LABEL image=opnfv/yardstick
+
+ARG BRANCH=master
+
+# GIT repo directory
+ENV REPOS_DIR="/home/opnfv/repos" \
+ IMAGE_DIR="/home/opnfv/images/"
+
+# Set work directory
+
+# Yardstick repo
+ENV YARDSTICK_REPO_DIR="${REPOS_DIR}/yardstick/" \
+ RELENG_REPO_DIR="${REPOS_DIR}/releng" \
+ STORPERF_REPO_DIR="${REPOS_DIR}/storperf"
+
+RUN apt-get update && apt-get install -y git python python-setuptools python-pip iputils-ping && apt-get -y autoremove && apt-get clean
+
+RUN pip install appdirs==1.4.0 pyopenssl==17.5.0 openstacksdk==0.9.17 python-openstackclient==3.12.1 python-heatclient==1.11.1 ansible==2.5.5
+
+RUN mkdir -p ${REPOS_DIR}
+
+RUN git config --global http.sslVerify false
+#For developers: To test your changes you must comment out the git clone for ${YARDSTICK_REPO_DIR}.
+#You must also uncomment the RUN and COPY commands below.
+#You must run docker build from your yardstick directory on the host.
+RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/yardstick ${YARDSTICK_REPO_DIR}
+#RUN mkdir ${YARDSTICK_REPO_DIR}
+#COPY ./ ${YARDSTICK_REPO_DIR}
+RUN git clone --depth 1 https://gerrit.opnfv.org/gerrit/releng ${RELENG_REPO_DIR}
+RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/storperf ${STORPERF_REPO_DIR}
+
+RUN ansible-playbook -i ${YARDSTICK_REPO_DIR}/ansible/install-inventory.ini -c local -vvv -e INSTALLATION_MODE="container" ${YARDSTICK_REPO_DIR}/ansible/install.yaml
+
+RUN ${YARDSTICK_REPO_DIR}/docker/supervisor.sh
+
+RUN echo "daemon off;" >> /etc/nginx/nginx.conf
+# nginx=5000, rabbitmq=5672
+EXPOSE 5000 5672
+
+ADD http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img ${IMAGE_DIR}
+ADD http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img ${IMAGE_DIR}
+
+# For developers: when `docker build ...` is running from YARDSTICK_REPO_DIR, please change
+# path `./exec_tests.sh` -> `./docker/exec_tests.sh``.
+COPY ./exec_tests.sh /usr/local/bin/
+
+ENV NSB_DIR="/opt/nsb_bin"
+ENV PYTHONPATH="${PYTHONPATH}:${NSB_DIR}/trex_client:${NSB_DIR}/trex_client/stl"
+
+WORKDIR ${REPOS_DIR}
+CMD ["/usr/bin/supervisord"]
diff --git a/docker/supervisor.sh b/docker/supervisor.sh
index 44e34fb38..bd17cfbc4 100755
--- a/docker/supervisor.sh
+++ b/docker/supervisor.sh
@@ -10,8 +10,10 @@
# nginx service start when boot
supervisor_config='/etc/supervisor/conf.d/yardstick.conf'
+rabbitmq_config='/etc/supervisor/conf.d/rabbitmq.conf'
if [[ ! -e "${supervisor_config}" ]]; then
+
cat << EOF > "${supervisor_config}"
[supervisord]
nodaemon = true
@@ -22,8 +24,18 @@ command = service nginx restart
[program:yardstick_uwsgi]
directory = /etc/yardstick
command = uwsgi -i yardstick.ini
+EOF
+
+fi
+
+if [[ ! -e "${rabbitmq_config}" ]]; then
+ cat << EOF > "${rabbitmq_config}"
[program:rabbitmq]
-command = service rabbitmq-server restart
+command = /bin/bash -c "service rabbitmq-server restart
+ rabbitmqctl start_app
+ rabbitmqctl add_user yardstick yardstick
+ rabbitmqctl set_permissions -p / yardstick '.*' '.*'"
EOF
+
fi
diff --git a/docs/release/release-notes/release-notes.rst b/docs/release/release-notes/release-notes.rst
index 4b3f12bcf..914daa3a4 100644
--- a/docs/release/release-notes/release-notes.rst
+++ b/docs/release/release-notes/release-notes.rst
@@ -33,6 +33,9 @@ Version History
| November 9, 2018 | 7.0.0 | Yardstick for Gambia release |
| | | |
+-------------------+-----------+---------------------------------+
+| December 14, 2018 | 7.1.0 | Yardstick for Gambia release |
+| | | |
++-------------------+-----------+---------------------------------+
Important Notes
@@ -111,19 +114,19 @@ Release Data
| **Project** | Yardstick |
| | |
+--------------------------------+-----------------------+
-| **Repo/tag** | yardstick/opnfv-7.0.0 |
+| **Repo/tag** | yardstick/opnfv-7.1.0 |
| | |
+--------------------------------+-----------------------+
-| **Yardstick Docker image tag** | opnfv-7.0.0 |
+| **Yardstick Docker image tag** | opnfv-7.1.0 |
| | |
+--------------------------------+-----------------------+
-| **Release designation** | Gambia 7.0 |
+| **Release designation** | Gambia 7.1 |
| | |
+--------------------------------+-----------------------+
-| **Release date** | November 9, 2018 |
+| **Release date** | December 14, 2018 |
| | |
+--------------------------------+-----------------------+
-| **Purpose of the delivery** | OPNFV Gambia 7.0.0 |
+| **Purpose of the delivery** | OPNFV Gambia 7.1.0 |
| | |
+--------------------------------+-----------------------+
@@ -269,7 +272,7 @@ List of Scenarios
New Test cases
--------------
-.. note:: Yardstick Gambia 7.0.0 adds no new test cases.
+.. note:: Yardstick Gambia 7.1.0 adds no new test cases.
* Generic NFVI test cases
@@ -326,7 +329,7 @@ Feature additions
Scenario Matrix
===============
-For Gambia 7.0.0, Yardstick was tested on the following scenarios:
+For Gambia 7.1.0, Yardstick was tested on the following scenarios:
+-------------------------+------+---------+----------+------+
| Scenario | Apex | Compass | Fuel-arm | Fuel |
@@ -370,58 +373,35 @@ Known Issues/Faults
Corrected Faults
----------------
-Gambia 7.0.0:
+Gambia 7.1.0:
+--------------------+--------------------------------------------------------------------------+
| **JIRA REFERENCE** | **DESCRIPTION** |
+====================+==========================================================================+
-| YARDSTICK-1137 | Fix CLI argument handling in nsb_setup.sh |
-+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1220 | Get stats for multiple port simultaneously |
-+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1260 | Added missing functionality to start VM and access it using SSH keys |
-| | in Standalone contexts. |
-+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1298 | Allows for in-line overriding/modification of traffic profile variables |
-| | from the testcase file. |
+| YARDSTICK-1241 | Update NSB PROX devguide. |
+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1368 | Updated existing test cases in Yardstick to minimize changes done |
-| | manually to run standalone tests for Trex. |
+| YARDSTICK-1458 | NSB NFVi PROX Should report realtime port activity not historical data. |
+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1389 | Add status filed for RFC2544 TC iterations |
+| YARDSTICK-1471 | Add Testcase Prox Standalone SRIOV. |
+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1395 | Update 'configure_uwsgi' role to work in baremetal/container modes. |
+| YARDSTICK-1475 | Adding Testcase for Prox Stanalone OvS-DPDK. |
+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1402 | Change IP assignment for VM to static for standalone context |
+| YARDSTICK-1500 | Adding Testcase for Prox L2FWD PktTouch Stanalone OvS-DPDK. |
+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1404 | CPU Utilization for VNF and traffic generator are now graphed on Grafana |
+| YARDSTICK-1517 | Missing opnfv "os-ovn-nofeature-ha" scenario test suite. |
+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1411 | Fix Yardstick Docker image ARM build |
+| YARDSTICK-l526 | Run testcase 074 result overridden by job status. |
+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1414 | Update the pinned sampleVNF version to use a commit instead of a branch |
+| YARDSTICK-1547 | Adding scale up test case for l3fwd OvS-DPDK. |
+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1418 | NSB PROX NFVi test now stops after reaching expected precision |
+| YARDSTICK-1560 | Fix pip environment. |
+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1457 | Fix influxdb "field type conflict" error |
+| YARDSTICK-1561 | L3FWD Gradana Dashboards Out-of-date and incorrect. |
+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1458 | Update Grafana to display "real-time" data instead of historical data. |
-+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1462 | NSB: Add OvS 2.8.1 support in SA context |
-+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1492 | Make OvS server to listen on TCP |
-+--------------------+--------------------------------------------------------------------------+
-| YARDSTICK-1493 | The RX queues number is hard-codded and cannot be changed |
-+--------------------+--------------------------------------------------------------------------+
-
-Gambia 7.0.0 known restrictions/issues
+Gambia 7.1.0 known restrictions/issues
======================================
-+-----------+-----------------------+------------------+
-| Installer | Scenario | Issue |
-+===========+=======================+==================+
-| apex | os-ovn-nofeature-ha | YARDSTICK-1517 |
-+-----------+-----------------------+------------------+
Useful links
============
diff --git a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml
index 330d8e85e..399de9cc3 100644
--- a/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml
+++ b/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml
@@ -36,7 +36,8 @@ scenarios:
nfvi_enable: True
vnf_config: {file: './vpe_config/vpe_config_2_ports',
action_bulk_file: './vpe_config/action_bulk_512.txt',
- full_tm_profile_file: './vpe_config/full_tm_profile_10G.cfg'}
+ full_tm_profile_file: './vpe_config/full_tm_profile_10G.cfg',
+ script_file: './vpe_config/vpe_script_sample'}
runner:
type: Iteration
iterations: 10
diff --git a/samples/vnf_samples/nsut/vpe/vpe_config/action_bulk_512.txt b/samples/vnf_samples/nsut/vpe/vpe_config/action_bulk_512.txt
index 21731cd45..6fb3bdd7d 100644
--- a/samples/vnf_samples/nsut/vpe/vpe_config/action_bulk_512.txt
+++ b/samples/vnf_samples/nsut/vpe/vpe_config/action_bulk_512.txt
@@ -1,3 +1,17 @@
+# Copyright (c) 2016-2018 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.
+
flow 0 meter 0 trtcm 1250000000 1250000000 1000000 1000000 policer 0 g G y Y r R meter 1 trtcm 1250000000 1250000000 1000000 1000000 policer 1 g G y Y r R meter 2 trtcm 1250000000 1250000000 1000000 1000000 policer 2 g G y Y r R meter 3 trtcm 1250000000 1250000000 1000000 1000000 policer 3 g G y Y r R port 0
flow 1 meter 0 trtcm 1250000000 1250000000 1000000 1000000 policer 0 g G y Y r R meter 1 trtcm 1250000000 1250000000 1000000 1000000 policer 1 g G y Y r R meter 2 trtcm 1250000000 1250000000 1000000 1000000 policer 2 g G y Y r R meter 3 trtcm 1250000000 1250000000 1000000 1000000 policer 3 g G y Y r R port 0
flow 2 meter 0 trtcm 1250000000 1250000000 1000000 1000000 policer 0 g G y Y r R meter 1 trtcm 1250000000 1250000000 1000000 1000000 policer 1 g G y Y r R meter 2 trtcm 1250000000 1250000000 1000000 1000000 policer 2 g G y Y r R meter 3 trtcm 1250000000 1250000000 1000000 1000000 policer 3 g G y Y r R port 0
diff --git a/samples/vnf_samples/nsut/vpe/vpe_config/vpe_config_2_ports b/samples/vnf_samples/nsut/vpe/vpe_config/vpe_config_2_ports
index 35443c877..44aa9854e 100644
--- a/samples/vnf_samples/nsut/vpe/vpe_config/vpe_config_2_ports
+++ b/samples/vnf_samples/nsut/vpe/vpe_config/vpe_config_2_ports
@@ -1,3 +1,17 @@
+# Copyright (c) 2016-2018 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.
+
[PIPELINE0]
type = MASTER
core = 0
diff --git a/samples/vnf_samples/nsut/vpe/vpe_config/vpe_script_sample b/samples/vnf_samples/nsut/vpe/vpe_config/vpe_script_sample
new file mode 100644
index 000000000..ebf59ccfb
--- /dev/null
+++ b/samples/vnf_samples/nsut/vpe/vpe_config/vpe_script_sample
@@ -0,0 +1,631 @@
+# Copyright (c) 2016-2018 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.
+
+p 1 firewall add priority 1 ipv4 152.16.0.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.1.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.2.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.3.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.4.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.5.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.6.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.7.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.8.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.9.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.10.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.11.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.12.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.13.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.14.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.15.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.16.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.17.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.18.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.19.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.20.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.21.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.22.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.23.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.24.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.25.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.26.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.27.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.28.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.29.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.30.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.31.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.32.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.33.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.34.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.35.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.36.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.37.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.38.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.39.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.40.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.41.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.42.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.43.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.44.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.45.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.46.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.47.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.48.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.49.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.50.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.51.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.52.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.53.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.54.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.55.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.56.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.57.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.58.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.59.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.60.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.61.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.62.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.63.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.64.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.65.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.66.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.67.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.68.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.69.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.70.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.71.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.72.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.73.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.74.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.75.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.76.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.77.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.78.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.79.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.80.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.81.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.82.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.83.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.84.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.85.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.86.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.87.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.88.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.89.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.90.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.91.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.92.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.93.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.94.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.95.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.96.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.97.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.98.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.99.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.100.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.101.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.102.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.103.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.104.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.105.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.106.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.107.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.108.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.109.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.110.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.111.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.112.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.113.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.114.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.115.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.116.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.117.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.118.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.119.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.120.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.121.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.122.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.123.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.124.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.125.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.126.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.127.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.128.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.129.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.130.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.131.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.132.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.133.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.134.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.135.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.136.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.137.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.138.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.139.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.140.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.141.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.142.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.143.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.144.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.145.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.146.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.147.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.148.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.149.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.150.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.151.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.152.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.153.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.154.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.155.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.156.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.157.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.158.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.159.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.160.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.161.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.162.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.163.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.164.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.165.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.166.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.167.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.168.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.169.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.170.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.171.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.172.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.173.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.174.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.175.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.176.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.177.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.178.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.179.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.180.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.181.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.182.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.183.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.184.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.185.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.186.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.187.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.188.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.189.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.190.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.191.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.192.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.193.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.194.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.195.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.196.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.197.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.198.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.199.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.200.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.201.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.202.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.203.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.204.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.205.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.206.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.207.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.208.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.209.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.210.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.211.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.212.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.213.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.214.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.215.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.216.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.217.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.218.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.219.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.220.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.221.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.222.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.223.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.224.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.225.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.226.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.227.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.228.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.229.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.230.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.231.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.232.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.233.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.234.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.235.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.236.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.237.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.238.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.239.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.240.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.241.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.242.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.243.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.244.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.245.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.246.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.247.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.248.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.249.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.250.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.251.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.252.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.253.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.254.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add priority 1 ipv4 152.16.255.0 24 0.0.0.0 0 0 65535 0 65535 17 0xFF port 0
+p 1 firewall add default 1
+
+p 2 flow add qinq 128 512 port 0 id 1
+p 2 flow add default 1
+p 3 action flow bulk /tmp/action_bulk_512.txt
+p 4 action flow bulk /tmp/action_bulk_512.txt
+p 4 action dscp 0 class 0 color G
+p 4 action dscp 1 class 1 color Y
+p 4 action dscp 2 class 2 color R
+p 4 action dscp 3 class 3 color G
+p 4 action dscp 4 class 0 color Y
+p 4 action dscp 5 class 1 color R
+p 4 action dscp 6 class 2 color G
+p 4 action dscp 7 class 3 color Y
+p 4 action dscp 8 class 0 color R
+p 4 action dscp 9 class 1 color G
+p 4 action dscp 10 class 2 color Y
+p 4 action dscp 11 class 3 color R
+p 4 action dscp 12 class 0 color G
+p 4 action dscp 13 class 1 color Y
+p 4 action dscp 14 class 2 color R
+p 4 action dscp 15 class 3 color G
+p 4 action dscp 16 class 0 color Y
+p 4 action dscp 17 class 1 color R
+p 4 action dscp 18 class 2 color G
+p 4 action dscp 19 class 3 color Y
+p 4 action dscp 20 class 0 color R
+p 4 action dscp 21 class 1 color G
+p 4 action dscp 22 class 2 color Y
+p 4 action dscp 23 class 3 color R
+p 4 action dscp 24 class 0 color G
+p 4 action dscp 25 class 1 color Y
+p 4 action dscp 26 class 2 color R
+p 4 action dscp 27 class 3 color G
+p 4 action dscp 28 class 0 color Y
+p 4 action dscp 29 class 1 color R
+p 4 action dscp 30 class 2 color G
+p 4 action dscp 31 class 3 color Y
+p 4 action dscp 32 class 0 color R
+p 4 action dscp 33 class 1 color G
+p 4 action dscp 34 class 2 color Y
+p 4 action dscp 35 class 3 color R
+p 4 action dscp 36 class 0 color G
+p 4 action dscp 37 class 1 color Y
+p 4 action dscp 38 class 2 color R
+p 4 action dscp 39 class 3 color G
+p 4 action dscp 40 class 0 color Y
+p 4 action dscp 41 class 1 color R
+p 4 action dscp 42 class 2 color G
+p 4 action dscp 43 class 3 color Y
+p 4 action dscp 44 class 0 color R
+p 4 action dscp 45 class 1 color G
+p 4 action dscp 46 class 2 color Y
+p 4 action dscp 47 class 3 color R
+p 4 action dscp 48 class 0 color G
+p 4 action dscp 49 class 1 color Y
+p 4 action dscp 50 class 2 color R
+p 4 action dscp 51 class 3 color G
+p 4 action dscp 52 class 0 color Y
+p 4 action dscp 53 class 1 color R
+p 4 action dscp 54 class 2 color G
+p 4 action dscp 55 class 3 color Y
+p 4 action dscp 56 class 0 color R
+p 4 action dscp 57 class 1 color G
+p 4 action dscp 58 class 2 color Y
+p 4 action dscp 59 class 3 color R
+p 4 action dscp 60 class 0 color G
+p 4 action dscp 61 class 1 color Y
+p 4 action dscp 62 class 2 color R
+p 4 action dscp 63 class 3 color G
+p 5 route add 152.40.0.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:0
+p 5 route add 152.40.8.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:8
+p 5 route add 152.40.16.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:16
+p 5 route add 152.40.24.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:24
+p 5 route add 152.40.32.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:32
+p 5 route add 152.40.40.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:40
+p 5 route add 152.40.48.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:48
+p 5 route add 152.40.56.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:56
+p 5 route add 152.40.64.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:64
+p 5 route add 152.40.72.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:72
+p 5 route add 152.40.80.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:80
+p 5 route add 152.40.88.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:88
+p 5 route add 152.40.96.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:96
+p 5 route add 152.40.104.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:104
+p 5 route add 152.40.112.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:112
+p 5 route add 152.40.120.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:120
+p 5 route add 152.40.128.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:128
+p 5 route add 152.40.136.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:136
+p 5 route add 152.40.144.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:144
+p 5 route add 152.40.152.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:152
+p 5 route add 152.40.160.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:160
+p 5 route add 152.40.168.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:168
+p 5 route add 152.40.176.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:176
+p 5 route add 152.40.184.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:184
+p 5 route add 152.40.192.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:192
+p 5 route add 152.40.200.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:200
+p 5 route add 152.40.208.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:208
+p 5 route add 152.40.216.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:216
+p 5 route add 152.40.224.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:224
+p 5 route add 152.40.232.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:232
+p 5 route add 152.40.240.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:240
+p 5 route add 152.40.248.0 21 port 0 ether 00:98:28:28:14:00 mpls 0:248
+p 5 route add default 1
+
+p 6 route add 152.16.0.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 0
+p 6 route add 152.16.1.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 1
+p 6 route add 152.16.2.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 2
+p 6 route add 152.16.3.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 3
+p 6 route add 152.16.4.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 4
+p 6 route add 152.16.5.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 5
+p 6 route add 152.16.6.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 6
+p 6 route add 152.16.7.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 7
+p 6 route add 152.16.8.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 8
+p 6 route add 152.16.9.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 9
+p 6 route add 152.16.10.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 10
+p 6 route add 152.16.11.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 11
+p 6 route add 152.16.12.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 12
+p 6 route add 152.16.13.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 13
+p 6 route add 152.16.14.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 14
+p 6 route add 152.16.15.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 15
+p 6 route add 152.16.16.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 16
+p 6 route add 152.16.17.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 17
+p 6 route add 152.16.18.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 18
+p 6 route add 152.16.19.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 19
+p 6 route add 152.16.20.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 20
+p 6 route add 152.16.21.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 21
+p 6 route add 152.16.22.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 22
+p 6 route add 152.16.23.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 23
+p 6 route add 152.16.24.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 24
+p 6 route add 152.16.25.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 25
+p 6 route add 152.16.26.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 26
+p 6 route add 152.16.27.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 27
+p 6 route add 152.16.28.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 28
+p 6 route add 152.16.29.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 29
+p 6 route add 152.16.30.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 30
+p 6 route add 152.16.31.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 31
+p 6 route add 152.16.32.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 32
+p 6 route add 152.16.33.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 33
+p 6 route add 152.16.34.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 34
+p 6 route add 152.16.35.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 35
+p 6 route add 152.16.36.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 36
+p 6 route add 152.16.37.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 37
+p 6 route add 152.16.38.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 38
+p 6 route add 152.16.39.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 39
+p 6 route add 152.16.40.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 40
+p 6 route add 152.16.41.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 41
+p 6 route add 152.16.42.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 42
+p 6 route add 152.16.43.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 43
+p 6 route add 152.16.44.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 44
+p 6 route add 152.16.45.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 45
+p 6 route add 152.16.46.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 46
+p 6 route add 152.16.47.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 47
+p 6 route add 152.16.48.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 48
+p 6 route add 152.16.49.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 49
+p 6 route add 152.16.50.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 50
+p 6 route add 152.16.51.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 51
+p 6 route add 152.16.52.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 52
+p 6 route add 152.16.53.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 53
+p 6 route add 152.16.54.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 54
+p 6 route add 152.16.55.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 55
+p 6 route add 152.16.56.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 56
+p 6 route add 152.16.57.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 57
+p 6 route add 152.16.58.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 58
+p 6 route add 152.16.59.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 59
+p 6 route add 152.16.60.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 60
+p 6 route add 152.16.61.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 61
+p 6 route add 152.16.62.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 62
+p 6 route add 152.16.63.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 63
+p 6 route add 152.16.64.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 64
+p 6 route add 152.16.65.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 65
+p 6 route add 152.16.66.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 66
+p 6 route add 152.16.67.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 67
+p 6 route add 152.16.68.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 68
+p 6 route add 152.16.69.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 69
+p 6 route add 152.16.70.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 70
+p 6 route add 152.16.71.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 71
+p 6 route add 152.16.72.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 72
+p 6 route add 152.16.73.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 73
+p 6 route add 152.16.74.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 74
+p 6 route add 152.16.75.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 75
+p 6 route add 152.16.76.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 76
+p 6 route add 152.16.77.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 77
+p 6 route add 152.16.78.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 78
+p 6 route add 152.16.79.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 79
+p 6 route add 152.16.80.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 80
+p 6 route add 152.16.81.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 81
+p 6 route add 152.16.82.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 82
+p 6 route add 152.16.83.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 83
+p 6 route add 152.16.84.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 84
+p 6 route add 152.16.85.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 85
+p 6 route add 152.16.86.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 86
+p 6 route add 152.16.87.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 87
+p 6 route add 152.16.88.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 88
+p 6 route add 152.16.89.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 89
+p 6 route add 152.16.90.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 90
+p 6 route add 152.16.91.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 91
+p 6 route add 152.16.92.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 92
+p 6 route add 152.16.93.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 93
+p 6 route add 152.16.94.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 94
+p 6 route add 152.16.95.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 95
+p 6 route add 152.16.96.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 96
+p 6 route add 152.16.97.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 97
+p 6 route add 152.16.98.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 98
+p 6 route add 152.16.99.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 99
+p 6 route add 152.16.100.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 100
+p 6 route add 152.16.101.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 101
+p 6 route add 152.16.102.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 102
+p 6 route add 152.16.103.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 103
+p 6 route add 152.16.104.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 104
+p 6 route add 152.16.105.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 105
+p 6 route add 152.16.106.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 106
+p 6 route add 152.16.107.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 107
+p 6 route add 152.16.108.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 108
+p 6 route add 152.16.109.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 109
+p 6 route add 152.16.110.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 110
+p 6 route add 152.16.111.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 111
+p 6 route add 152.16.112.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 112
+p 6 route add 152.16.113.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 113
+p 6 route add 152.16.114.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 114
+p 6 route add 152.16.115.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 115
+p 6 route add 152.16.116.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 116
+p 6 route add 152.16.117.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 117
+p 6 route add 152.16.118.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 118
+p 6 route add 152.16.119.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 119
+p 6 route add 152.16.120.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 120
+p 6 route add 152.16.121.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 121
+p 6 route add 152.16.122.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 122
+p 6 route add 152.16.123.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 123
+p 6 route add 152.16.124.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 124
+p 6 route add 152.16.125.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 125
+p 6 route add 152.16.126.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 126
+p 6 route add 152.16.127.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 127
+p 6 route add 152.16.128.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 128
+p 6 route add 152.16.129.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 129
+p 6 route add 152.16.130.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 130
+p 6 route add 152.16.131.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 131
+p 6 route add 152.16.132.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 132
+p 6 route add 152.16.133.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 133
+p 6 route add 152.16.134.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 134
+p 6 route add 152.16.135.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 135
+p 6 route add 152.16.136.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 136
+p 6 route add 152.16.137.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 137
+p 6 route add 152.16.138.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 138
+p 6 route add 152.16.139.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 139
+p 6 route add 152.16.140.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 140
+p 6 route add 152.16.141.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 141
+p 6 route add 152.16.142.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 142
+p 6 route add 152.16.143.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 143
+p 6 route add 152.16.144.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 144
+p 6 route add 152.16.145.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 145
+p 6 route add 152.16.146.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 146
+p 6 route add 152.16.147.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 147
+p 6 route add 152.16.148.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 148
+p 6 route add 152.16.149.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 149
+p 6 route add 152.16.150.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 150
+p 6 route add 152.16.151.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 151
+p 6 route add 152.16.152.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 152
+p 6 route add 152.16.153.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 153
+p 6 route add 152.16.154.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 154
+p 6 route add 152.16.155.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 155
+p 6 route add 152.16.156.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 156
+p 6 route add 152.16.157.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 157
+p 6 route add 152.16.158.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 158
+p 6 route add 152.16.159.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 159
+p 6 route add 152.16.160.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 160
+p 6 route add 152.16.161.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 161
+p 6 route add 152.16.162.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 162
+p 6 route add 152.16.163.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 163
+p 6 route add 152.16.164.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 164
+p 6 route add 152.16.165.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 165
+p 6 route add 152.16.166.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 166
+p 6 route add 152.16.167.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 167
+p 6 route add 152.16.168.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 168
+p 6 route add 152.16.169.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 169
+p 6 route add 152.16.170.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 170
+p 6 route add 152.16.171.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 171
+p 6 route add 152.16.172.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 172
+p 6 route add 152.16.173.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 173
+p 6 route add 152.16.174.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 174
+p 6 route add 152.16.175.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 175
+p 6 route add 152.16.176.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 176
+p 6 route add 152.16.177.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 177
+p 6 route add 152.16.178.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 178
+p 6 route add 152.16.179.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 179
+p 6 route add 152.16.180.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 180
+p 6 route add 152.16.181.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 181
+p 6 route add 152.16.182.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 182
+p 6 route add 152.16.183.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 183
+p 6 route add 152.16.184.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 184
+p 6 route add 152.16.185.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 185
+p 6 route add 152.16.186.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 186
+p 6 route add 152.16.187.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 187
+p 6 route add 152.16.188.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 188
+p 6 route add 152.16.189.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 189
+p 6 route add 152.16.190.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 190
+p 6 route add 152.16.191.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 191
+p 6 route add 152.16.192.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 192
+p 6 route add 152.16.193.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 193
+p 6 route add 152.16.194.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 194
+p 6 route add 152.16.195.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 195
+p 6 route add 152.16.196.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 196
+p 6 route add 152.16.197.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 197
+p 6 route add 152.16.198.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 198
+p 6 route add 152.16.199.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 199
+p 6 route add 152.16.200.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 200
+p 6 route add 152.16.201.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 201
+p 6 route add 152.16.202.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 202
+p 6 route add 152.16.203.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 203
+p 6 route add 152.16.204.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 204
+p 6 route add 152.16.205.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 205
+p 6 route add 152.16.206.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 206
+p 6 route add 152.16.207.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 207
+p 6 route add 152.16.208.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 208
+p 6 route add 152.16.209.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 209
+p 6 route add 152.16.210.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 210
+p 6 route add 152.16.211.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 211
+p 6 route add 152.16.212.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 212
+p 6 route add 152.16.213.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 213
+p 6 route add 152.16.214.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 214
+p 6 route add 152.16.215.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 215
+p 6 route add 152.16.216.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 216
+p 6 route add 152.16.217.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 217
+p 6 route add 152.16.218.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 218
+p 6 route add 152.16.219.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 219
+p 6 route add 152.16.220.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 220
+p 6 route add 152.16.221.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 221
+p 6 route add 152.16.222.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 222
+p 6 route add 152.16.223.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 223
+p 6 route add 152.16.224.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 224
+p 6 route add 152.16.225.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 225
+p 6 route add 152.16.226.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 226
+p 6 route add 152.16.227.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 227
+p 6 route add 152.16.228.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 228
+p 6 route add 152.16.229.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 229
+p 6 route add 152.16.230.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 230
+p 6 route add 152.16.231.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 231
+p 6 route add 152.16.232.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 232
+p 6 route add 152.16.233.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 233
+p 6 route add 152.16.234.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 234
+p 6 route add 152.16.235.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 235
+p 6 route add 152.16.236.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 236
+p 6 route add 152.16.237.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 237
+p 6 route add 152.16.238.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 238
+p 6 route add 152.16.239.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 239
+p 6 route add 152.16.240.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 240
+p 6 route add 152.16.241.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 241
+p 6 route add 152.16.242.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 242
+p 6 route add 152.16.243.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 243
+p 6 route add 152.16.244.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 244
+p 6 route add 152.16.245.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 245
+p 6 route add 152.16.246.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 246
+p 6 route add 152.16.247.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 247
+p 6 route add 152.16.248.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 248
+p 6 route add 152.16.249.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 249
+p 6 route add 152.16.250.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 250
+p 6 route add 152.16.251.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 251
+p 6 route add 152.16.252.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 252
+p 6 route add 152.16.253.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 253
+p 6 route add 152.16.254.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 254
+p 6 route add 152.16.255.0 24 port 0 ether 00:98:10:64:14:00 qinq 0 255
+p 6 route add default 1
diff --git a/yardstick/benchmark/runners/iteration.py b/yardstick/benchmark/runners/iteration.py
index 4c88f3671..58ab06a32 100644
--- a/yardstick/benchmark/runners/iteration.py
+++ b/yardstick/benchmark/runners/iteration.py
@@ -96,6 +96,7 @@ def _worker_process(queue, cls, method_name, scenario_cfg,
except Exception: # pylint: disable=broad-except
errors = traceback.format_exc()
LOG.exception("")
+ raise
else:
if result:
# add timeout for put so we don't block test
diff --git a/yardstick/network_services/traffic_profile/base.py b/yardstick/network_services/traffic_profile/base.py
index ea3f17874..2fdf6ce4a 100644
--- a/yardstick/network_services/traffic_profile/base.py
+++ b/yardstick/network_services/traffic_profile/base.py
@@ -36,7 +36,7 @@ class TrafficProfileConfig(object):
self.description = tp_config.get('description')
tprofile = tp_config['traffic_profile']
self.traffic_type = tprofile.get('traffic_type')
- self.frame_rate, self.rate_unit = self._parse_rate(
+ self.frame_rate, self.rate_unit = self.parse_rate(
tprofile.get('frame_rate', self.DEFAULT_FRAME_RATE))
self.test_precision = tprofile.get('test_precision')
self.packet_sizes = tprofile.get('packet_sizes')
@@ -46,7 +46,7 @@ class TrafficProfileConfig(object):
self.step_interval = tprofile.get('step_interval')
self.enable_latency = tprofile.get('enable_latency', False)
- def _parse_rate(self, rate):
+ def parse_rate(self, rate):
"""Parse traffic profile rate
The line rate can be defined in fps or percentage over the maximum line
diff --git a/yardstick/network_services/traffic_profile/ixia_rfc2544.py b/yardstick/network_services/traffic_profile/ixia_rfc2544.py
index 83d24a412..14edf2d5b 100644
--- a/yardstick/network_services/traffic_profile/ixia_rfc2544.py
+++ b/yardstick/network_services/traffic_profile/ixia_rfc2544.py
@@ -78,6 +78,12 @@ class IXIARFC2544Profile(trex_traffic_profile.TrexProfile):
'outer_l4': {},
}
+ frame_rate = value.get('frame_rate')
+ if frame_rate:
+ flow_rate, flow_rate_unit = self.config.parse_rate(frame_rate)
+ result[traffickey]['rate'] = flow_rate
+ result[traffickey]['rate_unit'] = flow_rate_unit
+
outer_l2 = value.get('outer_l2')
if outer_l2:
result[traffickey]['outer_l2'].update({
diff --git a/yardstick/network_services/vnf_generic/vnf/sample_vnf.py b/yardstick/network_services/vnf_generic/vnf/sample_vnf.py
index ebe3ff774..8833b88f2 100644
--- a/yardstick/network_services/vnf_generic/vnf/sample_vnf.py
+++ b/yardstick/network_services/vnf_generic/vnf/sample_vnf.py
@@ -180,7 +180,7 @@ class DpdkVnfSetupEnvHelper(SetupEnvHelper):
"""No actions/rules (flows) by default"""
return None
- def _build_pipeline_kwargs(self, cfg_file=None):
+ def _build_pipeline_kwargs(self, cfg_file=None, script=None):
tool_path = self.ssh_helper.provision_tool(tool_file=self.APP_NAME)
# count the number of actual ports in the list of pairs
# remove duplicate ports
@@ -201,7 +201,7 @@ class DpdkVnfSetupEnvHelper(SetupEnvHelper):
self.pipeline_kwargs = {
'cfg_file': cfg_file if cfg_file else self.CFG_CONFIG,
- 'script': self.CFG_SCRIPT,
+ 'script': script if script else self.CFG_SCRIPT,
'port_mask_hex': ports_mask_hex,
'tool_path': tool_path,
'hwlb': hwlb,
diff --git a/yardstick/network_services/vnf_generic/vnf/vpe_vnf.py b/yardstick/network_services/vnf_generic/vnf/vpe_vnf.py
index 349ef7888..dd3221386 100644
--- a/yardstick/network_services/vnf_generic/vnf/vpe_vnf.py
+++ b/yardstick/network_services/vnf_generic/vnf/vpe_vnf.py
@@ -106,6 +106,7 @@ class VpeApproxSetupEnvHelper(DpdkVnfSetupEnvHelper):
action_bulk_file = vnf_cfg.get('action_bulk_file', '/tmp/action_bulk_512.txt')
full_tm_profile_file = vnf_cfg.get('full_tm_profile_file', '/tmp/full_tm_profile_10G.cfg')
config_file = vnf_cfg.get('file', '/tmp/vpe_config')
+ script_file = vnf_cfg.get('script_file', None)
vpe_vars = {
"bin_path": self.ssh_helper.bin_path,
"socket": self.socket,
@@ -113,8 +114,16 @@ class VpeApproxSetupEnvHelper(DpdkVnfSetupEnvHelper):
self._build_vnf_ports()
vpe_conf = ConfigCreate(self.vnfd_helper, self.socket)
+ if script_file is None:
+ # autogenerate vpe_script if not given
+ vpe_script = vpe_conf.generate_vpe_script(self.vnfd_helper.interfaces)
+ script_file = self.CFG_SCRIPT
+ else:
+ with utils.open_relative_file(script_file, task_path) as handle:
+ vpe_script = handle.read()
+
config_basename = posixpath.basename(config_file)
- script_basename = posixpath.basename(self.CFG_SCRIPT)
+ script_basename = posixpath.basename(script_file)
with utils.open_relative_file(action_bulk_file, task_path) as handle:
action_bulk = handle.read()
@@ -125,8 +134,6 @@ class VpeApproxSetupEnvHelper(DpdkVnfSetupEnvHelper):
with utils.open_relative_file(config_file, task_path) as handle:
vpe_config = handle.read()
- # vpe_script needs to be autogenerated
- vpe_script = vpe_conf.generate_vpe_script(self.vnfd_helper.interfaces)
# upload the 4 config files to the target server
self.ssh_helper.upload_config_file(config_basename, vpe_config.format(**vpe_vars))
self.ssh_helper.upload_config_file(script_basename, vpe_script.format(**vpe_vars))
@@ -138,7 +145,8 @@ class VpeApproxSetupEnvHelper(DpdkVnfSetupEnvHelper):
LOG.info("Provision and start the %s", self.APP_NAME)
LOG.info(config_file)
LOG.info(self.CFG_SCRIPT)
- self._build_pipeline_kwargs(cfg_file='/tmp/' + config_basename)
+ self._build_pipeline_kwargs(cfg_file='/tmp/' + config_basename,
+ script='/tmp/' + script_basename)
return self.PIPELINE_COMMAND.format(**self.pipeline_kwargs)
diff --git a/yardstick/tests/unit/benchmark/runner/test_iteration.py b/yardstick/tests/unit/benchmark/runner/test_iteration.py
new file mode 100644
index 000000000..783b236f5
--- /dev/null
+++ b/yardstick/tests/unit/benchmark/runner/test_iteration.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2018 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+import mock
+import unittest
+import multiprocessing
+from yardstick.benchmark.runners import iteration
+from yardstick.common import exceptions as y_exc
+
+
+class IterationRunnerTest(unittest.TestCase):
+ def setUp(self):
+ self.scenario_cfg = {
+ 'runner': {'interval': 0, "duration": 0},
+ 'type': 'some_type'
+ }
+
+ self.benchmark = mock.Mock()
+ self.benchmark_cls = mock.Mock(return_value=self.benchmark)
+
+ def _assert_defaults__worker_run_setup_and_teardown(self):
+ self.benchmark_cls.assert_called_once_with(self.scenario_cfg, {})
+ self.benchmark.setup.assert_called_once()
+
+ def _assert_defaults__worker_run_one_iteration(self):
+ self.benchmark.pre_run_wait_time.assert_called_once_with(0)
+ self.benchmark.my_method.assert_called_once_with({})
+
+ def test__worker_process_broad_exception(self):
+ self.benchmark.my_method = mock.Mock(
+ side_effect=y_exc.YardstickException)
+
+ with self.assertRaises(Exception):
+ iteration._worker_process(mock.Mock(), self.benchmark_cls, 'my_method',
+ self.scenario_cfg, {},
+ multiprocessing.Event(), mock.Mock())
+
+ self._assert_defaults__worker_run_one_iteration()
+ self._assert_defaults__worker_run_setup_and_teardown()
diff --git a/yardstick/tests/unit/network_services/traffic_profile/test_base.py b/yardstick/tests/unit/network_services/traffic_profile/test_base.py
index 0dc3e0579..d9244e31b 100644
--- a/yardstick/tests/unit/network_services/traffic_profile/test_base.py
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_base.py
@@ -95,18 +95,18 @@ class TrafficProfileConfigTestCase(unittest.TestCase):
def test__parse_rate(self):
tp_config = {'traffic_profile': {'packet_sizes': {'64B': 100}}}
tp_config_obj = base.TrafficProfileConfig(tp_config)
- self.assertEqual((100.0, 'fps'), tp_config_obj._parse_rate('100 '))
- self.assertEqual((200.5, 'fps'), tp_config_obj._parse_rate('200.5'))
- self.assertEqual((300.8, 'fps'), tp_config_obj._parse_rate('300.8fps'))
+ self.assertEqual((100.0, 'fps'), tp_config_obj.parse_rate('100 '))
+ self.assertEqual((200.5, 'fps'), tp_config_obj.parse_rate('200.5'))
+ self.assertEqual((300.8, 'fps'), tp_config_obj.parse_rate('300.8fps'))
self.assertEqual((400.2, 'fps'),
- tp_config_obj._parse_rate('400.2 fps'))
- self.assertEqual((500.3, '%'), tp_config_obj._parse_rate('500.3%'))
- self.assertEqual((600.1, '%'), tp_config_obj._parse_rate('600.1 %'))
+ tp_config_obj.parse_rate('400.2 fps'))
+ self.assertEqual((500.3, '%'), tp_config_obj.parse_rate('500.3%'))
+ self.assertEqual((600.1, '%'), tp_config_obj.parse_rate('600.1 %'))
def test__parse_rate_exception(self):
tp_config = {'traffic_profile': {'packet_sizes': {'64B': 100}}}
tp_config_obj = base.TrafficProfileConfig(tp_config)
with self.assertRaises(exceptions.TrafficProfileRate):
- tp_config_obj._parse_rate('100Fps')
+ tp_config_obj.parse_rate('100Fps')
with self.assertRaises(exceptions.TrafficProfileRate):
- tp_config_obj._parse_rate('100 kbps')
+ tp_config_obj.parse_rate('100 kbps')