diff options
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') |