summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ansible/install.yaml37
-rw-r--r--ansible/roles/build_yardstick_image/tasks/cloudimg_modify_nsb.yml6
-rwxr-xr-xansible/roles/install_dependencies_jumphost/tasks/Debian.yml10
-rw-r--r--ansible/roles/install_image_dependencies/defaults/main.yml1
-rw-r--r--samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_64B_ixia_L3.yaml (renamed from samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml)32
-rw-r--r--samples/vnf_samples/nsut/firewall/firewall-tg-topology-4port.yaml70
-rw-r--r--samples/vnf_samples/nsut/firewall/firewall-tg-topology.yaml50
-rw-r--r--samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixia.yaml50
-rw-r--r--samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixia_4port.yaml72
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml47
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml47
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_1518B_ixia_4port.yaml48
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia_4port.yaml48
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1024B_ixia.yaml81
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1280B_ixia.yaml81
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_128B_ixia.yaml81
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml81
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_256B_ixia.yaml81
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_512B_ixia.yaml81
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml81
-rw-r--r--samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_trex.yaml79
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-scale-up.yaml103
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_multiflow-scale-up.yaml102
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-scale-up.yaml92
-rw-r--r--samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_multiflow-scale-up.yaml92
-rw-r--r--samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_L3.yaml64
-rw-r--r--yardstick/common/exceptions.py4
-rw-r--r--yardstick/common/utils.py11
-rw-r--r--yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py3
-rw-r--r--yardstick/network_services/vnf_generic/vnf/tg_rfc2544_ixia.py90
-rw-r--r--yardstick/tests/unit/common/test_utils.py9
-rw-r--r--yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_ixia.py98
32 files changed, 724 insertions, 1108 deletions
diff --git a/ansible/install.yaml b/ansible/install.yaml
index f4f57bdc0..d181c5ffd 100644
--- a/ansible/install.yaml
+++ b/ansible/install.yaml
@@ -100,9 +100,12 @@
- install_pmu_tools
- download_collectd
- install_collectd
+ - docker
+ - barometer_collectd
-- hosts: jumphost
+- name: Prepare to build VM
+ hosts: jumphost
become: yes
vars:
img_prop_item: "{{ IMG_PROPERTY }}"
@@ -116,7 +119,8 @@
when: installation_mode != inst_mode_container
-- hosts: chroot_image
+- name: Build VM in chroot
+ hosts: chroot_image
connection: chroot
become: yes
vars:
@@ -131,7 +135,8 @@
when: installation_mode != inst_mode_container
-- hosts: jumphost
+- name: Clear up after VM is built
+ hosts: jumphost
become: yes
tasks:
@@ -142,11 +147,33 @@
when: installation_mode != inst_mode_container
-- name: start yardstick container on jumphost
+- hosts: jumphost
+ vars_files:
+ - yardstick_config.yml
+
+ roles:
+ - { role: convert_openrc, when: openrc_file is defined }
+
+
+- name: Add OpenStack variables, image
+ hosts: jumphost
+ vars_files:
+ - yardstick_config.yml
+ environment:
+ "{{ openrc }}"
+
+ roles:
+ - { role: clean_images, when: openrc_file is defined }
+ - { role: clean_flavors, when: openrc_file is defined }
+ - { role: create_samplevnfs_image, when: openrc_file is defined }
+
+
+- name: Start yardstick container on jumphost
hosts: jumphost
tasks:
- - include_role:
+ - name: Install docker needed to pull Yardstick container
+ include_role:
name: docker
when: installation_mode == inst_mode_container_pull
diff --git a/ansible/roles/build_yardstick_image/tasks/cloudimg_modify_nsb.yml b/ansible/roles/build_yardstick_image/tasks/cloudimg_modify_nsb.yml
index c2f72cada..c9e386346 100644
--- a/ansible/roles/build_yardstick_image/tasks/cloudimg_modify_nsb.yml
+++ b/ansible/roles/build_yardstick_image/tasks/cloudimg_modify_nsb.yml
@@ -72,6 +72,9 @@
loop_var: role_item
environment: "{{ proxy_env }}"
+- include_vars: roles/install_dpdk/defaults/main.yml
+ when: INSTALL_BIN_PATH is undefined
+
- name: Install PROX
include_role:
name: install_samplevnf
@@ -89,9 +92,6 @@
loop_var: role_item
environment: "{{ proxy_env }}"
-- include_vars: roles/install_dpdk/defaults/main.yml
- when: INSTALL_BIN_PATH is undefined
-
- include_vars: roles/download_samplevnfs/defaults/main.yml
when: samplevnf_dest is undefined
- set_fact:
diff --git a/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml b/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml
index 6c3900d26..a229cc1a2 100755
--- a/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml
+++ b/ansible/roles/install_dependencies_jumphost/tasks/Debian.yml
@@ -91,8 +91,16 @@
- ansible_distribution == 'Ubuntu'
- ansible_distribution_major_version|int >= 17
+- name: Uninstall docker as it conflicts with docker-py
+ pip:
+ name:
+ - docker
+ state: absent
+
- name: Install required docker-py module
pip:
- name: docker-py
+ name:
+ - docker-py
+ - shade
state: latest
environment: "{{ proxy_env }}"
diff --git a/ansible/roles/install_image_dependencies/defaults/main.yml b/ansible/roles/install_image_dependencies/defaults/main.yml
index 7a3f5fa7e..42951bf6d 100644
--- a/ansible/roles/install_image_dependencies/defaults/main.yml
+++ b/ansible/roles/install_image_dependencies/defaults/main.yml
@@ -29,6 +29,7 @@ install_dependencies:
- libxft-dev
- libxss-dev
- expect
+ - libnuma-dev
RedHat:
- bc
- fio
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_64B_ixia_L3.yaml
index 0da6e427e..1610193d0 100644
--- a/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
+++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_64B_ixia_L3.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2018 Intel Corporation
+# Copyright (c) 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.
@@ -12,30 +12,38 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+{% set vports = vports or 2 %}
---
schema: yardstick:task:0.1
scenarios:
- type: NSPerf
- traffic_profile: "../../traffic_profiles/ixia_ipv4_latency.yaml"
- topology: firewall_vnf_topology_ixia.yaml
+ traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_L3.yaml
+ topology: agnostic_vnf_topology_ixia_{{ vports }}ports.yaml
+ ixia_config: IxiaL3
+ extra_args:
+ vports: {{ vports }}
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: tg_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
- private: {64B: 100}
- public: {64B: 100}
+ uplink: {64B: 100}
+ downlink: {64B: 100}
flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
+ src_ip:
+{% for vport in range(0,vports,2|int) %}
+ - '152.{{ vport }}.0.1-152.{{ vport }}.0.50'
+{% endfor %}
+ dst_ip:
+{% for vport in range(1,vports,2|int) %}
+ - '152.{{ vport }}.1.1-152.{{ vport }}.1.150'
+{% endfor %}
count: 1
traffic_type: 4
rfc2544:
allowed_drop_rate: 0.0001 - 0.0001
vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- nfvi_enable: True
+ []
runner:
type: Iteration
iterations: 10
diff --git a/samples/vnf_samples/nsut/firewall/firewall-tg-topology-4port.yaml b/samples/vnf_samples/nsut/firewall/firewall-tg-topology-4port.yaml
deleted file mode 100644
index 105f85d99..000000000
--- a/samples/vnf_samples/nsut/firewall/firewall-tg-topology-4port.yaml
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-nsd:nsd-catalog:
- nsd:
- - id: 3tg-topology
- name: 3tg-topology
- short-name: 3tg-topology
- description: 3tg-topology
- constituent-vnfd:
- - member-vnf-index: '1'
- vnfd-id-ref: tg__0
- VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #VNF type
- - member-vnf-index: '2'
- vnfd-id-ref: vnf__0
- VNF model: ../../vnf_descriptors/firewall_vnf.yaml #VNF type
-
- vld:
- - id: uplink_0
- name: tg__0 to vnf__0 link 1
- type: ELAN
- vnfd-connection-point-ref:
- - member-vnf-index-ref: '1'
- vnfd-connection-point-ref: xe0
- vnfd-id-ref: tg__0
- - member-vnf-index-ref: '2'
- vnfd-connection-point-ref: xe0
- vnfd-id-ref: vnf__0
- - id: downlink_0
- name: vnf__0 to tg__0 link 2
- type: ELAN
- vnfd-connection-point-ref:
- - member-vnf-index-ref: '2'
- vnfd-connection-point-ref: xe1
- vnfd-id-ref: vnf__0
- - member-vnf-index-ref: '1'
- vnfd-connection-point-ref: xe1
- vnfd-id-ref: tg__0
-
- - id: uplink_1
- name: tg__0 to vnf__0 link 3
- type: ELAN
- vnfd-connection-point-ref:
- - member-vnf-index-ref: '1'
- vnfd-connection-point-ref: xe2
- vnfd-id-ref: tg__0
- - member-vnf-index-ref: '2'
- vnfd-connection-point-ref: xe2
- vnfd-id-ref: vnf__0
- - id: downlink_1
- name: vnf__0 to tg__0 link 4
- type: ELAN
- vnfd-connection-point-ref:
- - member-vnf-index-ref: '2'
- vnfd-connection-point-ref: xe3
- vnfd-id-ref: vnf__0
- - member-vnf-index-ref: '1'
- vnfd-connection-point-ref: xe3
- vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/firewall/firewall-tg-topology.yaml b/samples/vnf_samples/nsut/firewall/firewall-tg-topology.yaml
deleted file mode 100644
index b93137be5..000000000
--- a/samples/vnf_samples/nsut/firewall/firewall-tg-topology.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-nsd:nsd-catalog:
- nsd:
- - id: 2node-topology
- name: 2node-topology
- short-name: 2node-topology
- description: 2node-topology
- constituent-vnfd:
- - member-vnf-index: '1'
- vnfd-id-ref: tg__0
- VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #VNF type
- - member-vnf-index: '2'
- vnfd-id-ref: vnf__0
- VNF model: ../../vnf_descriptors/firewall_vnf.yaml #VNF type
-
- vld:
- - id: uplink_0
- name: tg__0 to vnf__0 link 1
- type: ELAN
- vnfd-connection-point-ref:
- - member-vnf-index-ref: '1'
- vnfd-connection-point-ref: xe0
- vnfd-id-ref: tg__0
- - member-vnf-index-ref: '2'
- vnfd-connection-point-ref: xe0
- vnfd-id-ref: vnf__0
-
- - id: downlink_0
- name: vnf__0 to tg__0 link 2
- type: ELAN
- vnfd-connection-point-ref:
- - member-vnf-index-ref: '2'
- vnfd-connection-point-ref: xe1
- vnfd-id-ref: vnf__0
- - member-vnf-index-ref: '1'
- vnfd-connection-point-ref: xe1
- vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixia.yaml b/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixia.yaml
deleted file mode 100644
index 9913a0588..000000000
--- a/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixia.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-nsd:nsd-catalog:
- nsd:
- - id: vFW
- name: vFW
- short-name: vFW
- description: scenario with vFW VNF
- constituent-vnfd:
- - member-vnf-index: '1'
- vnfd-id-ref: tg__0
- VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml
- - member-vnf-index: '2'
- vnfd-id-ref: vnf__0
- VNF model: ../../vnf_descriptors/firewall_vnf.yaml
-
- vld:
- - id: uplink_0
- name: tg__0 to vnf__0 link 1
- type: ELAN
- vnfd-connection-point-ref:
- - member-vnf-index-ref: '1'
- vnfd-connection-point-ref: xe0
- vnfd-id-ref: tg__0
- - member-vnf-index-ref: '2'
- vnfd-connection-point-ref: xe0
- vnfd-id-ref: vnf__0
-
- - id: downlink_0
- name: vnf__0 to tg__0 link 2
- type: ELAN
- vnfd-connection-point-ref:
- - member-vnf-index-ref: '2'
- vnfd-connection-point-ref: xe1
- vnfd-id-ref: vnf__0
- - member-vnf-index-ref: '1'
- vnfd-connection-point-ref: xe1
- vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixia_4port.yaml b/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixia_4port.yaml
deleted file mode 100644
index 411c63d8a..000000000
--- a/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixia_4port.yaml
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-nsd:nsd-catalog:
- nsd:
- - id: vFW
- name: vFW
- short-name: vFW
- description: scenario with vFW VNF
- constituent-vnfd:
- - member-vnf-index: '1'
- vnfd-id-ref: tg__0
- VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml
- - member-vnf-index: '2'
- vnfd-id-ref: vnf__0
- VNF model: ../../vnf_descriptors/firewall_vnf.yaml
-
- vld:
- - id: uplink_0
- name: tg__0 to vnf__0 link 1
- type: ELAN
- vnfd-connection-point-ref:
- - member-vnf-index-ref: '1'
- vnfd-connection-point-ref: xe0
- vnfd-id-ref: tg__0
- - member-vnf-index-ref: '2'
- vnfd-connection-point-ref: xe0
- vnfd-id-ref: vnf__0
-
- - id: downlink_0
- name: vnf__0 to tg__0 link 2
- type: ELAN
- vnfd-connection-point-ref:
- - member-vnf-index-ref: '2'
- vnfd-connection-point-ref: xe1
- vnfd-id-ref: vnf__0
- - member-vnf-index-ref: '1'
- vnfd-connection-point-ref: xe1
- vnfd-id-ref: tg__0
-
- - id: uplink_1
- name: tg__0 to vnf__0 link 3
- type: ELAN
- vnfd-connection-point-ref:
- - member-vnf-index-ref: '1'
- vnfd-connection-point-ref: xe2
- vnfd-id-ref: tg__0
- - member-vnf-index-ref: '2'
- vnfd-connection-point-ref: xe2
- vnfd-id-ref: vnf__0
-
- - id: downlink_1
- name: vnf__0 to tg__0 link 4
- type: ELAN
- vnfd-connection-point-ref:
- - member-vnf-index-ref: '2'
- vnfd-connection-point-ref: xe3
- vnfd-id-ref: vnf__0
- - member-vnf-index-ref: '1'
- vnfd-connection-point-ref: xe3
- vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml
deleted file mode 100644
index a2595f62a..000000000
--- a/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: firewall-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- options:
- framesize:
- private: {64B: 100}
- public: {64B: 100}
- flow:
- src_ip:
- - '152.16.100.181'
- dst_ip:
- - '152.16.40.181'
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 2
- interval: 35
-context:
- type: Node
- name: yardstick
- nfvi_type: baremetal
- file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml
deleted file mode 100644
index ab2a633a5..000000000
--- a/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml
+++ /dev/null
@@ -1,47 +0,0 @@
-# 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.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: "../../traffic_profiles/ixia_ipv4_latency.yaml"
- topology: firewall_vnf_topology_ixia.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- options:
- framesize:
- private: {1518B: 100}
- public: {1518B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-context:
- type: Node
- name: yardstick
- nfvi_type: baremetal
- file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_1518B_ixia_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_1518B_ixia_4port.yaml
deleted file mode 100644
index 03ceaafcb..000000000
--- a/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_1518B_ixia_4port.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# 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.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: "../../traffic_profiles/ixia_ipv4_latency.yaml"
- topology: firewall_vnf_topology_ixia_4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- options:
- framesize:
- private: {1518B: 100}
- public: {1518B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}, {'tg__0': 'xe2'}]
- dst_ip: [{'tg__0': 'xe1'}, {'tg__0': 'xe3'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-context:
- type: Node
- name: yardstick
- nfvi_type: baremetal
- file: /etc/yardstick/nodes/pod_ixia_4port.yaml
-#/etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia_4port.yaml
deleted file mode 100644
index 6850fd8eb..000000000
--- a/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia_4port.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# 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.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: "../../traffic_profiles/ixia_ipv4_latency.yaml"
- topology: firewall_vnf_topology_ixia_4port.yaml
- nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
- options:
- framesize:
- private: {64B: 100}
- public: {64B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}, {'tg__0': 'xe2'}]
- dst_ip: [{'tg__0': 'xe1'}, {'tg__0': 'xe3'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 2, worker_config: '1C/1T', worker_threads: 1}
- nfvi_enable: True
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-context:
- type: Node
- name: yardstick
- nfvi_type: baremetal
- file: /etc/yardstick/nodes/pod_ixia_4port.yaml
-#/etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1024B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1024B_ixia.yaml
deleted file mode 100644
index 235c6fc8e..000000000
--- a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1024B_ixia.yaml
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2017-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.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
- topology: firewall_vnf_topology_ixia.yaml
- nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
- options:
- framesize:
- private: {1024B: 100}
- public: {1024B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- # put node context first, so we don't HEAT deploy if node has errors
- - name: yardstick1
- type: Node
- file: ixia.yml
- - name: yardstick
- image: yardstick-samplevnfs
- flavor:
- vcpus: 10
- ram: 20480
- disk: 6
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 10
- hw:cpu_threads: 1
- user: ubuntu
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- vld_id: downlink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant1
- port_security_enabled: False
- xe1:
- cidr: '10.0.3.0/24'
- vld_id: uplink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1280B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1280B_ixia.yaml
deleted file mode 100644
index 5e56847b5..000000000
--- a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1280B_ixia.yaml
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2017-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.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
- topology: firewall_vnf_topology_ixia.yaml
- nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
- options:
- framesize:
- private: {1280B: 100}
- public: {1280B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- # put node context first, so we don't HEAT deploy if node has errors
- - name: yardstick1
- type: Node
- file: ixia.yml
- - name: yardstick
- image: yardstick-samplevnfs
- flavor:
- vcpus: 10
- ram: 20480
- disk: 6
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 10
- hw:cpu_threads: 1
- user: ubuntu
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- vld_id: downlink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant1
- port_security_enabled: False
- xe1:
- cidr: '10.0.3.0/24'
- vld_id: uplink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_128B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_128B_ixia.yaml
deleted file mode 100644
index 2286fcb6c..000000000
--- a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_128B_ixia.yaml
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2017-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.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
- topology: firewall_vnf_topology_ixia.yaml
- nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
- options:
- framesize:
- private: {128B: 100}
- public: {128B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- # put node context first, so we don't HEAT deploy if node has errors
- - name: yardstick1
- type: Node
- file: ixia.yml
- - name: yardstick
- image: yardstick-samplevnfs
- flavor:
- vcpus: 10
- ram: 20480
- disk: 6
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 10
- hw:cpu_threads: 1
- user: ubuntu
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- vld_id: downlink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant1
- port_security_enabled: False
- xe1:
- cidr: '10.0.3.0/24'
- vld_id: uplink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml
deleted file mode 100644
index 680cf7cab..000000000
--- a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2017-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.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
- topology: firewall_vnf_topology_ixia.yaml
- nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
- options:
- framesize:
- private: {1518B: 100}
- public: {1518B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- # put node context first, so we don't HEAT deploy if node has errors
- - name: yardstick1
- type: Node
- file: ixia.yml
- - name: yardstick
- image: yardstick-samplevnfs
- flavor:
- vcpus: 10
- ram: 20480
- disk: 6
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 10
- hw:cpu_threads: 1
- user: ubuntu
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- vld_id: downlink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant1
- port_security_enabled: False
- xe1:
- cidr: '10.0.3.0/24'
- vld_id: uplink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_256B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_256B_ixia.yaml
deleted file mode 100644
index 245236a48..000000000
--- a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_256B_ixia.yaml
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2017-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.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
- topology: firewall_vnf_topology_ixia.yaml
- nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
- options:
- framesize:
- private: {256B: 100}
- public: {256B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- # put node context first, so we don't HEAT deploy if node has errors
- - name: yardstick1
- type: Node
- file: ixia.yml
- - name: yardstick
- image: yardstick-samplevnfs
- flavor:
- vcpus: 10
- ram: 20480
- disk: 6
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 10
- hw:cpu_threads: 1
- user: ubuntu
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- vld_id: downlink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant1
- port_security_enabled: False
- xe1:
- cidr: '10.0.3.0/24'
- vld_id: uplink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_512B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_512B_ixia.yaml
deleted file mode 100644
index 3a100ede7..000000000
--- a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_512B_ixia.yaml
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2017-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.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
- topology: firewall_vnf_topology_ixia.yaml
- nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
- options:
- framesize:
- private: {512B: 100}
- public: {512B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- # put node context first, so we don't HEAT deploy if node has errors
- - name: yardstick1
- type: Node
- file: ixia.yml
- - name: yardstick
- image: yardstick-samplevnfs
- flavor:
- vcpus: 10
- ram: 20480
- disk: 6
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 10
- hw:cpu_threads: 1
- user: ubuntu
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- vld_id: downlink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant1
- port_security_enabled: False
- xe1:
- cidr: '10.0.3.0/24'
- vld_id: uplink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
deleted file mode 100644
index f334aa916..000000000
--- a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2017-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.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
- topology: firewall_vnf_topology_ixia.yaml
- nodes:
- tg__0: trafficgen_1.yardstick1
- vnf__0: vnf.yardstick
- options:
- framesize:
- private: {64B: 100}
- public: {64B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- # put node context first, so we don't HEAT deploy if node has errors
- - name: yardstick1
- type: Node
- file: ixia.yml
- - name: yardstick
- image: yardstick-samplevnfs
- flavor:
- vcpus: 10
- ram: 20480
- disk: 6
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 10
- hw:cpu_threads: 1
- user: ubuntu
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- vld_id: downlink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant1
- port_security_enabled: False
- xe1:
- cidr: '10.0.3.0/24'
- vld_id: uplink_0
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
deleted file mode 100644
index fec585190..000000000
--- a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright (c) 2016-2017 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
----
-schema: yardstick:task:0.1
-scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
- topology: firewall-tg-topology.yaml
- nodes:
- tg__0: trafficgen_1.baremetal
- vnf__0: vnf.yardstick
- options:
- framesize:
- private: {64B: 100}
- public: {64B: 100}
- flow:
- src_ip: [{'tg__0': 'xe0'}]
- dst_ip: [{'tg__0': 'xe1'}]
- count: 1
- traffic_type: 4
- rfc2544:
- allowed_drop_rate: 0.0001 - 0.0001
- vnf__0:
- rules: acl_1rule.yaml
- vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
- runner:
- type: Iteration
- iterations: 10
- interval: 35
-contexts:
- # put node context first, so we don't HEAT deploy if node has errors
- - name: baremetal
- type: Node
- file: trex-baremetal.yml
- - name: yardstick
- image: yardstick-samplevnfs
- flavor:
- vcpus: 10
- ram: 20480
- disk: 6
- extra_specs:
- hw:cpu_sockets: 1
- hw:cpu_cores: 10
- hw:cpu_threads: 1
- user: ubuntu
- placement_groups:
- pgrp1:
- policy: "availability"
- servers:
- vnf:
- floating_ip: true
- placement: "pgrp1"
- networks:
- mgmt:
- cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant1
- port_security_enabled: False
- xe1:
- cidr: '10.0.3.0/24'
- gateway_ip: 'null'
- provider: true
- physical_network: phystenant2
- port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-scale-up.yaml
new file mode 100644
index 000000000..49ab05a51
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-scale-up.yaml
@@ -0,0 +1,103 @@
+# Copyright (c) 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.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: tg__0.yardstick
+ vnf__0: vnf__0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 600
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ servers:
+ - name: yardstick
+ type: StandaloneOvsDpdk
+ file: /etc/yardstick/nodes/standalone/host_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.0
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{networks.uplink[port_num].port_num}}
+ phy_port: "{{networks.uplink[port_num].phy_port}}"
+ vpci: "{{networks.uplink[port_num].vpci}}"
+ cidr: "{{networks.uplink[port_num].cidr}}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{networks.downlink[port_num].port_num}}
+ phy_port: "{{networks.downlink[port_num].phy_port}}"
+ vpci: "{{networks.downlink[port_num].vpci}}"
+ cidr: "{{networks.downlink[port_num].cidr}}"
+ gateway_ip: "{{networks.downlink[port_num].gateway_ip}}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_multiflow-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_multiflow-scale-up.yaml
new file mode 100644
index 000000000..31a76332c
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_multiflow-scale-up.yaml
@@ -0,0 +1,102 @@
+# Copyright (c) 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.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: tg__0.yardstick
+ vnf__0: vnf__0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd_multiflow-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd_multiflow-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 600
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneOvsDpdk
+ file: /etc/yardstick/nodes/standalone/host_ovs.yaml
+ vm_deploy: True
+ ovs_properties:
+ version:
+ ovs: 2.8.0
+ dpdk: 17.05.2
+ pmd_threads: 2
+ ram:
+ socket_0: 2048
+ socket_1: 2048
+ queues: 4
+ vpath: "/usr/local"
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ port_num: {{ networks.uplink[port_num].port_num }}
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ port_num: {{ networks.downlink[port_num].port_num }}
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-scale-up.yaml
new file mode 100644
index 000000000..045ee77ae
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-scale-up.yaml
@@ -0,0 +1,92 @@
+# Copyright (c) 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.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: tg__0.yardstick
+ vnf__0: vnf__0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 600
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ user: "root"
+ password: ""
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ phy_port: "{{networks.uplink[port_num].phy_port}}"
+ vpci: "{{networks.uplink[port_num].vpci}}"
+ cidr: "{{networks.uplink[port_num].cidr}}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ phy_port: "{{networks.downlink[port_num].phy_port}}"
+ vpci: "{{networks.downlink[port_num].vpci}}"
+ cidr: "{{networks.downlink[port_num].cidr}}"
+ gateway_ip: "{{networks.downlink[port_num].gateway_ip}}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_multiflow-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_multiflow-scale-up.yaml
new file mode 100644
index 000000000..3fefc48d0
--- /dev/null
+++ b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_multiflow-scale-up.yaml
@@ -0,0 +1,92 @@
+# Copyright (c) 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.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: NSPerf
+ traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+ extra_args:
+ vports: {{ vports }}
+ topology: prox-tg-topology-scale-up.yaml
+
+ nodes:
+ tg__0: tg__0.yardstick
+ vnf__0: vnf__0.yardstick
+
+ options:
+ interface_speed_gbps: 10
+
+ vnf__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/handle_l2fwd_multiflow-{{ vports }}.cfg"
+ prox_args:
+ "-t": ""
+
+ tg__0:
+ prox_path: /opt/nsb_bin/prox
+ prox_config: "configs/gen_l2fwd_multiflow-{{ vports }}.cfg"
+ prox_args:
+ "-e": ""
+ "-t": ""
+
+ runner:
+ type: Duration
+ # we kill after duration, independent of test duration, so set this high
+ duration: 600
+
+contexts:
+ - name: yardstick
+ type: Node
+ file: prox_tg_bm.yaml
+ - name: yardstick
+ type: StandaloneSriov
+ file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+ vm_deploy: True
+ flavor:
+ images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+ ram: 16384
+ extra_specs:
+ hw:cpu_sockets: 1
+ hw:cpu_cores: 10
+ hw:cpu_threads: 2
+ user: ""
+ password: ""
+ servers:
+ vnf__0:
+ network_ports:
+ mgmt:
+ cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+ xe{{ port_num * 2 }}:
+ - uplink_{{ port_num }}
+ xe{{ (port_num * 2) + 1 }}:
+ - downlink_{{ port_num }}
+{% endfor %}
+ networks:
+{% for port_num in range((vports/2)|int) %}
+ uplink_{{ port_num }}:
+ phy_port: "{{ networks.uplink[port_num].phy_port }}"
+ vpci: "{{ networks.uplink[port_num].vpci }}"
+ cidr: "{{ networks.uplink[port_num].cidr }}"
+ gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+ downlink_{{ port_num }}:
+ phy_port: "{{ networks.downlink[port_num].phy_port }}"
+ vpci: "{{ networks.downlink[port_num].vpci }}"
+ cidr: "{{ networks.downlink[port_num].cidr }}"
+ gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_L3.yaml b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_L3.yaml
new file mode 100644
index 000000000..e7221b1f7
--- /dev/null
+++ b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_L3.yaml
@@ -0,0 +1,64 @@
+# Copyright (c) 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.
+
+
+{% set vports = get(extra_args, 'vports', '2') %}
+---
+schema: "nsb:traffic_profile:0.1"
+
+# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator
+
+name: rfc2544
+description: Traffic profile to run RFC2544 latency with L3 support
+traffic_profile:
+ traffic_type : IXIARFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
+ frame_rate : 100 # pc of linerate
+ duration: {{ duration }}
+ enable_latency: True
+
+{% for vport in range(vports|int) %}
+uplink_{{ vport }}:
+ ipv4:
+ id: {{ (vport * 2) + 1 }}
+ outer_l2:
+ framesize:
+ 64B: "{{get(imix, 'imix.uplink.64B', '0') }}"
+ 128B: "{{get(imix, 'imix.uplink.128B', '0') }}"
+ 256B: "{{get(imix, 'imix.uplink.256B', '0') }}"
+ 373b: "{{get(imix, 'imix.uplink.373B', '0') }}"
+ 512B: "{{get(imix, 'imix.uplink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.uplink.570B', '0') }}"
+ 1024B: "{{get(imix, 'imix.uplink.1024B', '0') }}"
+ 1280B: "{{get(imix, 'imix.uplink.1280B', '0') }}"
+ 1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}"
+ 1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}"
+
+downlink_{{vport}}:
+ ipv4:
+ id: {{ (vport * 2) + 2 }}
+ outer_l2:
+ framesize:
+ 64B: "{{get(imix, 'imix.downlink.64B', '0') }}"
+ 128B: "{{get(imix, 'imix.downlink.128B', '0') }}"
+ 256B: "{{get(imix, 'imix.downlink.256B', '0') }}"
+ 373b: "{{get(imix, 'imix.downlink.373B', '0') }}"
+ 512B: "{{get(imix, 'imix.downlink.512B', '0') }}"
+ 570B: "{{get(imix, 'imix.downlink.570B', '0') }}"
+ 1024B: "{{get(imix, 'imix.downlink.1024B', '0') }}"
+ 1280B: "{{get(imix, 'imix.downlink.1280B', '0') }}"
+ 1400B: "{{get(imix, 'imix.downlink.1400B', '0') }}"
+ 1500B: "{{get(imix, 'imix.downlink.1500B', '0') }}"
+ 1518B: "{{get(imix, 'imix.downlink.1518B', '0') }}"
+{% endfor %}
diff --git a/yardstick/common/exceptions.py b/yardstick/common/exceptions.py
index 5e0df973a..f62f02f18 100644
--- a/yardstick/common/exceptions.py
+++ b/yardstick/common/exceptions.py
@@ -405,6 +405,10 @@ class IxNetworkFieldNotPresentInStackItem(YardstickException):
message = 'Field "%(field_name)s" not present in stack item %(stack_item)s'
+class IncorrectFlowOption(YardstickException):
+ message = 'Flow option {option} for {link} is incorrect'
+
+
class SLAValidationError(YardstickException):
message = '%(case_name)s SLA validation failed. Error: %(error_msg)s'
diff --git a/yardstick/common/utils.py b/yardstick/common/utils.py
index 51313ef47..9eba896e2 100644
--- a/yardstick/common/utils.py
+++ b/yardstick/common/utils.py
@@ -293,6 +293,17 @@ def make_ipv4_address(ip_addr):
return ipaddress.IPv4Address(six.text_type(ip_addr))
+def get_ip_range_count(iprange):
+ start_range, end_range = iprange.split("-")
+ start = int(make_ipv4_address(start_range))
+ end = int(make_ipv4_address(end_range))
+ return end - start
+
+
+def get_ip_range_start(iprange):
+ return str(make_ipv4_address(iprange.split("-")[0]))
+
+
def safe_ip_address(ip_addr):
""" get ip address version v6 or v4 """
try:
diff --git a/yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py b/yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py
index d41dd028f..cc627ef78 100644
--- a/yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py
+++ b/yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py
@@ -152,6 +152,9 @@ class IxNextgen(object): # pragma: no cover
vports = self.ixnet.getList(self.ixnet.getRoot(), 'vport')
return vports
+ def get_static_interface(self, vport):
+ return self.ixnet.getList(vport, 'interface')
+
def _get_config_element_by_flow_group_name(self, flow_group_name):
"""Get a config element using the flow group name
diff --git a/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_ixia.py b/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_ixia.py
index 1d37f8f6f..4d6bd422d 100644
--- a/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_ixia.py
+++ b/yardstick/network_services/vnf_generic/vnf/tg_rfc2544_ixia.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# 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.
@@ -17,6 +17,7 @@ import logging
import six
from yardstick.common import utils
+from yardstick.common import exceptions
from yardstick.network_services.libs.ixia_libs.ixnet import ixnet_api
from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNFTrafficGen
from yardstick.network_services.vnf_generic.vnf.sample_vnf import ClientResourceHelper
@@ -31,6 +32,8 @@ WAIT_PROTOCOLS_STARTED = 360
class IxiaBasicScenario(object):
+ """Ixia Basic scenario for flow from port to port"""
+
def __init__(self, client, context_cfg, ixia_cfg):
self.client = client
@@ -43,6 +46,12 @@ class IxiaBasicScenario(object):
def apply_config(self):
pass
+ def run_protocols(self):
+ pass
+
+ def stop_protocols(self):
+ pass
+
def create_traffic_model(self, traffic_profile=None):
# pylint: disable=unused-argument
vports = self.client.get_vports()
@@ -51,11 +60,81 @@ class IxiaBasicScenario(object):
self.client.create_traffic_model(self._uplink_vports,
self._downlink_vports)
- def run_protocols(self):
- pass
- def stop_protocols(self):
- pass
+class IxiaL3Scenario(IxiaBasicScenario):
+ """Ixia scenario for L3 flow between static ip's"""
+
+ def _add_static_ips(self):
+ vports = self.client.get_vports()
+ uplink_intf_vport = [(self.client.get_static_interface(vport), vport)
+ for vport in vports[::2]]
+ downlink_intf_vport = [(self.client.get_static_interface(vport), vport)
+ for vport in vports[1::2]]
+
+ for index in range(len(uplink_intf_vport)):
+ intf, vport = uplink_intf_vport[index]
+ try:
+ iprange = self.ixia_cfg['flow'].get('src_ip')[index]
+ start_ip = utils.get_ip_range_start(iprange)
+ count = utils.get_ip_range_count(iprange)
+ self.client.add_static_ipv4(intf, vport, start_ip, count)
+ except IndexError:
+ raise exceptions.IncorrectFlowOption(
+ option="src_ip", link="uplink_{}".format(index))
+
+ intf, vport = downlink_intf_vport[index]
+ try:
+ iprange = self.ixia_cfg['flow'].get('dst_ip')[index]
+ start_ip = utils.get_ip_range_start(iprange)
+ count = utils.get_ip_range_count(iprange)
+ self.client.add_static_ipv4(intf, vport, start_ip, count)
+ except IndexError:
+ raise exceptions.IncorrectFlowOption(
+ option="dst_ip", link="downlink_{}".format(index))
+
+ def _add_interfaces(self):
+ vports = self.client.get_vports()
+ uplink_vports = (vport for vport in vports[::2])
+ downlink_vports = (vport for vport in vports[1::2])
+
+ ix_node = next(node for _, node in self.context_cfg['nodes'].items()
+ if node['role'] == 'IxNet')
+
+ for intf in ix_node['interfaces'].values():
+ ip = intf.get('local_ip')
+ mac = intf.get('local_mac')
+ gateway = None
+ try:
+ gateway = next(route.get('gateway')
+ for route in ix_node.get('routing_table')
+ if route.get('if') == intf.get('ifname'))
+ except StopIteration:
+ LOG.debug("Gateway not provided")
+
+ if 'uplink' in intf.get('vld_id'):
+ self.client.add_interface(next(uplink_vports),
+ ip, mac, gateway)
+ else:
+ self.client.add_interface(next(downlink_vports),
+ ip, mac, gateway)
+
+ def apply_config(self):
+ self._add_interfaces()
+ self._add_static_ips()
+
+ def create_traffic_model(self, traffic_profile=None):
+ # pylint: disable=unused-argument
+ vports = self.client.get_vports()
+ self._uplink_vports = vports[::2]
+ self._downlink_vports = vports[1::2]
+
+ uplink_endpoints = [port + '/protocols/static'
+ for port in self._uplink_vports]
+ downlink_endpoints = [port + '/protocols/static'
+ for port in self._downlink_vports]
+
+ self.client.create_ipv4_traffic_model(uplink_endpoints,
+ downlink_endpoints)
class IxiaPppoeClientScenario(object):
@@ -370,6 +449,7 @@ class IxiaResourceHelper(ClientResourceHelper):
self._ixia_scenarios = {
"IxiaBasic": IxiaBasicScenario,
+ "IxiaL3": IxiaL3Scenario,
"IxiaPppoeClient": IxiaPppoeClientScenario,
}
diff --git a/yardstick/tests/unit/common/test_utils.py b/yardstick/tests/unit/common/test_utils.py
index c0c928916..6b8d81907 100644
--- a/yardstick/tests/unit/common/test_utils.py
+++ b/yardstick/tests/unit/common/test_utils.py
@@ -1135,6 +1135,15 @@ class TestUtilsIpAddrMethods(ut_base.BaseUnitTestCase):
for addr in addr_list:
self.assertRaises(Exception, utils.make_ipv4_address, addr)
+ def test_get_ip_range_count(self):
+ iprange = "192.168.0.1-192.168.0.25"
+ count = utils.get_ip_range_count(iprange)
+ self.assertEqual(count, 24)
+
+ def test_get_ip_range_start(self):
+ iprange = "192.168.0.1-192.168.0.25"
+ start = utils.get_ip_range_start(iprange)
+ self.assertEqual(start, "192.168.0.1")
def test_safe_ip_address(self):
addr_list = self.GOOD_IP_V4_ADDRESS_STR_LIST
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_ixia.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_ixia.py
index 65bf56f1e..7247ee8be 100644
--- a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_ixia.py
+++ b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_ixia.py
@@ -432,7 +432,6 @@ class TestIXIATrafficGen(unittest.TestCase):
class TestIxiaBasicScenario(unittest.TestCase):
-
def setUp(self):
self._mock_IxNextgen = mock.patch.object(ixnet_api, 'IxNextgen')
self.mock_IxNextgen = self._mock_IxNextgen.start()
@@ -450,15 +449,15 @@ class TestIxiaBasicScenario(unittest.TestCase):
self.assertIsInstance(self.scenario, tg_rfc2544_ixia.IxiaBasicScenario)
self.assertEqual(self.scenario.client, self.mock_IxNextgen)
- def test_apply_config(self):
- self.assertIsNone(self.scenario.apply_config())
-
def test_create_traffic_model(self):
self.mock_IxNextgen.get_vports.return_value = [1, 2, 3, 4]
self.scenario.create_traffic_model()
self.scenario.client.get_vports.assert_called_once()
self.scenario.client.create_traffic_model.assert_called_once_with([1, 3], [2, 4])
+ def test_apply_config(self):
+ self.assertIsNone(self.scenario.apply_config())
+
def test_run_protocols(self):
self.assertIsNone(self.scenario.run_protocols())
@@ -466,6 +465,97 @@ class TestIxiaBasicScenario(unittest.TestCase):
self.assertIsNone(self.scenario.stop_protocols())
+class TestIxiaL3Scenario(TestIxiaBasicScenario):
+ IXIA_CFG = {
+ 'flow': {
+ 'src_ip': ['192.168.0.1-192.168.0.50'],
+ 'dst_ip': ['192.168.1.1-192.168.1.150']
+ }
+ }
+
+ CONTEXT_CFG = {
+ 'nodes': {
+ 'tg__0': {
+ 'role': 'IxNet',
+ 'interfaces': {
+ 'xe0': {
+ 'vld_id': 'uplink_0',
+ 'local_ip': '10.1.1.1',
+ 'local_mac': 'aa:bb:cc:dd:ee:ff',
+ 'ifname': 'xe0'
+ },
+ 'xe1': {
+ 'vld_id': 'downlink_0',
+ 'local_ip': '20.2.2.2',
+ 'local_mac': 'bb:bb:cc:dd:ee:ee',
+ 'ifname': 'xe1'
+ }
+ },
+ 'routing_table': [{
+ 'network': "152.16.100.20",
+ 'netmask': '255.255.0.0',
+ 'gateway': '152.16.100.21',
+ 'if': 'xe0'
+ }]
+ }
+ }
+ }
+
+ def setUp(self):
+ super(TestIxiaL3Scenario, self).setUp()
+ self.ixia_cfg = self.IXIA_CFG
+ self.context_cfg = self.CONTEXT_CFG
+ self.scenario = tg_rfc2544_ixia.IxiaL3Scenario(self.mock_IxNextgen,
+ self.context_cfg,
+ self.ixia_cfg)
+
+ def test___init___(self):
+ self.assertIsInstance(self.scenario, tg_rfc2544_ixia.IxiaL3Scenario)
+ self.assertEqual(self.scenario.client, self.mock_IxNextgen)
+
+ def test_create_traffic_model(self):
+ self.mock_IxNextgen.get_vports.return_value = ['1', '2']
+ self.scenario.create_traffic_model()
+ self.scenario.client.get_vports.assert_called_once()
+ self.scenario.client.create_ipv4_traffic_model.\
+ assert_called_once_with(['1/protocols/static'],
+ ['2/protocols/static'])
+
+ def test_apply_config(self):
+ self.scenario._add_interfaces = mock.Mock()
+ self.scenario._add_static_ips = mock.Mock()
+ self.assertIsNone(self.scenario.apply_config())
+
+ def test__add_static(self):
+ self.mock_IxNextgen.get_vports.return_value = ['1', '2']
+ self.mock_IxNextgen.get_static_interface.side_effect = ['intf1',
+ 'intf2']
+
+ self.scenario._add_static_ips()
+
+ self.mock_IxNextgen.get_static_interface.assert_any_call('1')
+ self.mock_IxNextgen.get_static_interface.assert_any_call('2')
+
+ self.scenario.client.add_static_ipv4.assert_any_call(
+ 'intf1', '1', '192.168.0.1', 49)
+ self.scenario.client.add_static_ipv4.assert_any_call(
+ 'intf2', '2', '192.168.1.1', 149)
+
+ def test__add_interfaces(self):
+ self.mock_IxNextgen.get_vports.return_value = ['1', '2']
+
+ self.scenario._add_interfaces()
+
+ self.mock_IxNextgen.add_interface.assert_any_call('1',
+ '10.1.1.1',
+ 'aa:bb:cc:dd:ee:ff',
+ '152.16.100.21')
+ self.mock_IxNextgen.add_interface.assert_any_call('2',
+ '20.2.2.2',
+ 'bb:bb:cc:dd:ee:ee',
+ None)
+
+
class TestIxiaPppoeClientScenario(unittest.TestCase):
IXIA_CFG = {