diff options
74 files changed, 1860 insertions, 116 deletions
diff --git a/ansible/multi_port_baremetal_ixia_correlated_test.yaml b/ansible/multi_port_baremetal_ixia_correlated_test.yaml new file mode 100644 index 000000000..ba92b5cd3 --- /dev/null +++ b/ansible/multi_port_baremetal_ixia_correlated_test.yaml @@ -0,0 +1,133 @@ +# Copyright (c) 2017 Intel Corporation. # +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +- hosts: localhost + connection: local + vars: + scale_out: + - 1 + - 2 + flow: + traffic_type: 4 + pkt_size: + uplink: {64B: 100} + downlink: {64B: 100} + count: 10 + rfc2544: + allowed_drop_rate: 0.0001 - 0.0001 + vnf_config: + lb_config: 'SW' + lb_count: 1 + worker_config: '1C/1T' + worker_threads: 1 + + # Environment variables + gen: + user: "" + password: "" + key_filename: ~ + tg_config: + ixchassis: "1.1.1.127" #ixia chassis ip + tcl_port: "8009" # tcl server port + lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0" + root_dir: "/opt/ixia/ixos-api/8.01.0.2/" + py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/" + py_lib_path: "/opt/ixia/ixnetwork/8.01.1029.14/lib/PythonApi" + dut_result_dir: "/mnt/results" + version: "8.01.106.3" + pcis: + uplink: + - "2:5" #Card:port + - "2:3" #Card:port + downlink: + - "2:6" #Card:port + - "2:5" #Card:port + ip: + mgmt: + - '1.2.1.6/24' + uplink: + - '152.16.100.20/24' + - '172.16.100.20/24' + downlink: + - '152.16.40.20/24' + - '172.16.40.20/24' + mac: + uplink: + - '00:98:10:64:14:00' + - '00:ac:10:64:14:0' + downlink: + - '00:98:10:28:14:00' + - '00:ac:10:28:14:00' + + # Environment variables + gen_1: + user: "" + password: "" + key_filename: ~ + pcis: + uplink: + - "0000:05:00.0" + - "0000:05:00.2" + downlink: + - "0000:05:00.1" + - "0000:05:00.3" + ip: + mgmt: + - '1.2.1.6/24' + uplink: + - '152.16.100.20/24' + - '172.16.100.20/24' + downlink: + - '152.16.40.20/24' + - '172.16.40.20/24' + mac: + uplink: + - '00:00:00:9e:00:f8' + - '00:00:00:9e:00:fa' + downlink: + - '00:00:00:9e:00:f9' + - '00:00:00:9e:00:fb' + + vnf: + ip: "192.168.100.101/24" + user: root + password: "" + key_filename: /root/.ssh/id_rsa + pcis: + uplink: + - "0000:05:00.0" + - "0000:05:00.2" + downlink: + - "0000:05:00.1" + - "0000:05:00.3" + ip: + mgmt: + - '1.2.1.6/24' + uplink: + - '152.16.100.10/24' + - '172.16.100.10/24' + downlink: + - '152.16.40.10/24' + - '172.16.40.10/24' + mac: + uplink: + - '00:00:00:9e:00:f8' + - '00:00:00:9e:00:fa' + downlink: + - '00:00:00:9e:00:f9' + - '00:00:00:9e:00:fb' + + tasks: + - include: multi_port_baremetal_ixia_correlated_test_templates.yml + with_items: "{{ scale_out }}" + diff --git a/ansible/multi_port_baremetal_ixia_correlated_test_templates.yml b/ansible/multi_port_baremetal_ixia_correlated_test_templates.yml new file mode 100644 index 000000000..6f73d8c01 --- /dev/null +++ b/ansible/multi_port_baremetal_ixia_correlated_test_templates.yml @@ -0,0 +1,56 @@ +# Copyright (c) 2017 Intel Corporation. # +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- set_fact: + num_vnfs: "{{ item }}" + +- debug: + var: num_vnfs + verbosity: 2 + +- template: + src: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-correlated-scale-out.yaml + dest: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml + +- template: + src: ../etc/yardstick/nodes/standalone/ixia_template.yaml + dest: /etc/yardstick/nodes/ixia_{{ num_vnfs }}.yaml + +- template: + src: ../etc/yardstick/nodes/standalone/pod_bm_vnf.yaml + dest: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml + +- template: + src: ../samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_multi_port_template.yaml + dest: ../samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_multi_port_{{ num_vnfs }}.yaml + +- template: + src: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-correlated-multi-port.yaml + dest: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-correlated-multi-port-{{ num_vnfs }}.yaml + +- template: + src: ../samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_multi_port_template.yaml + dest: ../samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_multi_port_{{num_vnfs}}.yaml + +- template: + src: ../samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-correlated-multi-port.yaml + dest: ../samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-correlated-multi-port-{{ num_vnfs }}.yaml + +- template: + src: ../samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_multi_port_template.yaml + dest: ../samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_multi_port_{{num_vnfs}}.yaml + +- template: + src: ../samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-correlated-multi-port.yaml + dest: ../samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-correlated-multi-port-{{ num_vnfs }}.yaml diff --git a/ansible/multi_port_baremetal_ixia_test.yaml b/ansible/multi_port_baremetal_ixia_test.yaml new file mode 100644 index 000000000..52bc40b43 --- /dev/null +++ b/ansible/multi_port_baremetal_ixia_test.yaml @@ -0,0 +1,104 @@ +# Copyright (c) 2017 Intel Corporation. # +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +- hosts: localhost + connection: local + vars: + scale_out: + - 1 + - 2 + flow: + traffic_type: 4 + pkt_size: + uplink: {64B: 100} + downlink: {64B: 100} + count: 10 + rfc2544: + allowed_drop_rate: 0.0001 - 0.0001 + vnf_config: + lb_config: 'SW' + lb_count: 1 + worker_config: '1C/1T' + worker_threads: 1 + + # Environment variables + gen: + user: "" + password: "" + key_filename: ~ + tg_config: + ixchassis: "1.1.1.127" #ixia chassis ip + tcl_port: "8009" # tcl server port + lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0" + root_dir: "/opt/ixia/ixos-api/8.01.0.2/" + py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/" + py_lib_path: "/opt/ixia/ixnetwork/8.01.1029.14/lib/PythonApi" + dut_result_dir: "/mnt/results" + version: "8.01.106.3" + pcis: + uplink: + - "2:5" #Card:port + - "2:3" #Card:port + downlink: + - "2:6" #Card:port + - "2:5" #Card:port + ip: + mgmt: + - '1.2.1.6/24' + uplink: + - '152.16.100.20/24' + - '172.16.100.20/24' + downlink: + - '152.16.40.20/24' + - '172.16.40.20/24' + mac: + uplink: + - '00:98:10:64:14:00' + - '00:ac:10:64:14:0' + downlink: + - '00:98:10:28:14:00' + - '00:ac:10:28:14:00' + + vnf: + ip: "192.168.100.101/24" + user: root + password: "" + key_filename: /root/.ssh/id_rsa + pcis: + uplink: + - "0000:05:00.0" + - "0000:05:00.2" + downlink: + - "0000:05:00.1" + - "0000:05:00.3" + ip: + mgmt: + - '1.2.1.6/24' + uplink: + - '152.16.100.10/24' + - '172.16.100.10/24' + downlink: + - '152.16.40.10/24' + - '172.16.40.10/24' + mac: + uplink: + - '00:00:00:9e:00:f8' + - '00:00:00:9e:00:fa' + downlink: + - '00:00:00:9e:00:f9' + - '00:00:00:9e:00:fb' + + tasks: + - include: multi_port_baremetal_ixia_test_templates.yml + with_items: "{{ scale_out }}" + diff --git a/ansible/multi_port_baremetal_ixia_test_templates.yml b/ansible/multi_port_baremetal_ixia_test_templates.yml new file mode 100644 index 000000000..f2e04a2d1 --- /dev/null +++ b/ansible/multi_port_baremetal_ixia_test_templates.yml @@ -0,0 +1,60 @@ +# Copyright (c) 2017 Intel Corporation. # +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- set_fact: + num_vnfs: "{{ item }}" + +- debug: + var: num_vnfs + verbosity: 2 + +- template: + src: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-out.yaml + dest: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml + +- template: + src: ../etc/yardstick/nodes/standalone/ixia_template.yaml + dest: /etc/yardstick/nodes/ixia_{{ num_vnfs }}.yaml + +- template: + src: ../etc/yardstick/nodes/standalone/pod_bm_vnf.yaml + dest: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml + +- template: + src: ../samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_template.yaml + dest: ../samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_{{ num_vnfs }}.yaml + +- template: + src: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-multi-port.yaml + dest: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-multi-port-{{ num_vnfs }}.yaml + +- template: + src: ../samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_ixia_template.yaml + dest: ../samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_ixia_{{ num_vnfs }}.yaml + +- template: + src: ../samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-multi-port.yaml + dest: ../samples/vnf_samples/nsut/acl/acl-tg-topology-multi-port-ixia-{{ num_vnfs }}.yaml + +- template: + src: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-scale-out.yaml + dest: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-{{ num_vnfs }}.yaml + +- template: + src: ../samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_ixia_template.yaml + dest: ../samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_ixia_{{ num_vnfs }}.yaml + +- template: + src: ../samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-multi-port.yaml + dest: ../samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-multi-port-ixia-{{ num_vnfs }}.yaml diff --git a/ansible/multi_port_baremetal_test.yaml b/ansible/multi_port_baremetal_test.yaml new file mode 100644 index 000000000..fb12b1c64 --- /dev/null +++ b/ansible/multi_port_baremetal_test.yaml @@ -0,0 +1,95 @@ +# Copyright (c) 2017 Intel Corporation. # +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +- hosts: localhost + connection: local + vars: + scale_out: + - 1 + - 2 + flow: + traffic_type: 4 + pkt_size: + uplink: {64B: 100} + downlink: {64B: 100} + count: 10 + rfc2544: + allowed_drop_rate: 0.0001 - 0.0001 + vnf_config: + lb_config: 'SW' + lb_count: 1 + worker_config: '1C/1T' + worker_threads: 1 + + # Environment variables + gen: + user: root + password: "" + key_filename: /root/.ssh/id_rsa + pcis: + uplink: + - "0000:05:00.0" + - "0000:05:00.2" + downlink: + - "0000:05:00.1" + - "0000:05:00.3" + ip: + mgmt: + - '1.2.1.6/24' + uplink: + - '152.16.100.20/24' + - '172.16.100.20/24' + downlink: + - '152.16.40.20/24' + - '172.16.40.20/24' + mac: + uplink: + - '00:00:00:9e:00:f8' + - '00:00:00:9e:00:fa' + downlink: + - '00:00:00:9e:00:f9' + - '00:00:00:9e:00:fb' + + vnf: + ip: "192.168.100.101/24" + user: root + password: "" + key_filename: /root/.ssh/id_rsa + pcis: + uplink: + - "0000:05:00.0" + - "0000:05:00.2" + downlink: + - "0000:05:00.1" + - "0000:05:00.3" + ip: + mgmt: + - '1.2.1.6/24' + uplink: + - '152.16.100.10/24' + - '172.16.100.10/24' + downlink: + - '152.16.40.10/24' + - '172.16.40.10/24' + mac: + uplink: + - '00:00:00:9e:00:f8' + - '00:00:00:9e:00:fa' + downlink: + - '00:00:00:9e:00:f9' + - '00:00:00:9e:00:fb' + + tasks: + - include: multi_port_baremetal_test_templates.yml + with_items: "{{ scale_out }}" + diff --git a/ansible/multi_port_baremetal_test_templates.yml b/ansible/multi_port_baremetal_test_templates.yml new file mode 100644 index 000000000..4b905f8c7 --- /dev/null +++ b/ansible/multi_port_baremetal_test_templates.yml @@ -0,0 +1,60 @@ +# Copyright (c) 2017 Intel Corporation. # +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- set_fact: + num_vnfs: "{{ item }}" + +- debug: + var: num_vnfs + verbosity: 2 + +- template: + src: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-out.yaml + dest: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml + +- template: + src: ../etc/yardstick/nodes/standalone/baremetal_trex.yaml + dest: /etc/yardstick/nodes/baremetal_trex_{{num_vnfs}}.yaml + +- template: + src: ../etc/yardstick/nodes/standalone/pod_bm_vnf.yaml + dest: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml + +- template: + src: ../samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_template.yaml + dest: ../samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_{{ num_vnfs }}.yaml + +- template: + src: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-multi-port.yaml + dest: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-multi-port-{{ num_vnfs }}.yaml + +- template: + src: ../samples/vnf_samples/nsut/acl/tc_baremetal_vfw_rfc2544_template.yaml + dest: ../samples/vnf_samples/nsut/acl/tc_baremetal_vfw_rfc2544_{{ num_vnfs }}.yaml + +- template: + src: ../samples/vnf_samples/nsut/acl/acl-tg-topology-multi-port.yaml + dest: ../samples/vnf_samples/nsut/acl/acl-tg-topology-multi-port-{{ num_vnfs }}.yaml + +- template: + src: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-scale-out.yaml + dest: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-{{ num_vnfs }}.yaml + +- template: + src: ../samples/vnf_samples/nsut/cgnapt/tc_baremetal_vfw_rfc2544_template.yaml + dest: ../samples/vnf_samples/nsut/cgnapt/tc_baremetal_vfw_rfc2544_{{ num_vnfs }}.yaml + +- template: + src: ../samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-multi-port.yaml + dest: ../samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-multi-port-{{ num_vnfs }}.yaml diff --git a/ansible/ovs_scale_out_test_ixia_correlated_templates.yml b/ansible/ovs_scale_out_test_ixia_correlated_templates.yml index ca5fe00ef..c26505342 100644 --- a/ansible/ovs_scale_out_test_ixia_correlated_templates.yml +++ b/ansible/ovs_scale_out_test_ixia_correlated_templates.yml @@ -21,7 +21,7 @@ - template: - src: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-scale-out.yaml + src: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-correlated-scale-out.yaml dest: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml - template: @@ -49,10 +49,6 @@ dest: ../samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml - template: - src: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-ixia-scale-out.yaml - dest: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-{{ num_vnfs }}.yaml - -- template: src: ../samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_correlated_scale_out_template.yaml dest: ../samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_correlated_scale_out_{{num_vnfs}}.yaml diff --git a/ansible/ovs_scale_out_test_templates.yml b/ansible/ovs_scale_out_test_templates.yml index aadec6d62..cffa73342 100644 --- a/ansible/ovs_scale_out_test_templates.yml +++ b/ansible/ovs_scale_out_test_templates.yml @@ -25,7 +25,7 @@ - template: src: ../etc/yardstick/nodes/standalone/baremetal_trex.yaml - dest: /etc/yardstick/nodes/baremetal_trex_{{num_vnfs}}.yaml + dest: /etc/yardstick/nodes/baremetal_trex_{{ num_vnfs }}.yaml - template: src: ../etc/yardstick/nodes/standalone/pod_sriov.yaml diff --git a/ansible/sriov_scale_out_test_ixia_correlated_templates.yml b/ansible/sriov_scale_out_test_ixia_correlated_templates.yml index 2a6c352b4..626030712 100644 --- a/ansible/sriov_scale_out_test_ixia_correlated_templates.yml +++ b/ansible/sriov_scale_out_test_ixia_correlated_templates.yml @@ -21,7 +21,7 @@ - template: - src: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-scale-out.yaml + src: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-correlated-scale-out.yaml dest: ../samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml - template: diff --git a/ansible/standalone_ovs_scale_out_ixia_correlated_test.yaml b/ansible/standalone_ovs_scale_out_ixia_correlated_test.yaml index e3c8c7ca1..516676576 100644 --- a/ansible/standalone_ovs_scale_out_ixia_correlated_test.yaml +++ b/ansible/standalone_ovs_scale_out_ixia_correlated_test.yaml @@ -55,7 +55,7 @@ ixchassis: "1.1.1.127" #ixia chassis ip tcl_port: "8009" # tcl server port lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0" - ""_dir: "/opt/ixia/ixos-api/8.01.0.2/" + root_dir: "/opt/ixia/ixos-api/8.01.0.2/" py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/" py_lib_path: "/opt/ixia/ixnetwork/8.01.1029.14/lib/PythonApi" dut_result_dir: "/mnt/results" @@ -87,7 +87,7 @@ # Environment variables gen_1: user: "" - password: ""! + password: "" key_filename: /""/.ssh/id_rsa pcis: uplink: diff --git a/ansible/standalone_ovs_scale_out_ixia_test.yaml b/ansible/standalone_ovs_scale_out_ixia_test.yaml index d8ee224ac..ff665377f 100644 --- a/ansible/standalone_ovs_scale_out_ixia_test.yaml +++ b/ansible/standalone_ovs_scale_out_ixia_test.yaml @@ -27,6 +27,8 @@ socket_0: 2048 socket_1: 2048 flavor: + user: root + password: "" ram: 4096 image: "/var/lib/libvirt/images/ubuntu.qcow2" extra_specs: @@ -56,7 +58,7 @@ ixchassis: "1.1.1.127" #ixia chassis ip tcl_port: "8009" # tcl server port lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0" - ""_dir: "/opt/ixia/ixos-api/8.01.0.2/" + root_dir: "/opt/ixia/ixos-api/8.01.0.2/" py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/" py_lib_path: "/opt/ixia/ixnetwork/8.01.1029.14/lib/PythonApi" dut_result_dir: "/mnt/results" diff --git a/ansible/standalone_ovs_scale_out_test.yaml b/ansible/standalone_ovs_scale_out_test.yaml index 2a0246c2d..996fc0f50 100644 --- a/ansible/standalone_ovs_scale_out_test.yaml +++ b/ansible/standalone_ovs_scale_out_test.yaml @@ -51,9 +51,9 @@ # Environment variables gen: - user: root + user: "" password: "" - key_filename: /root/.ssh/id_rsa + key_filename: ~ pcis: uplink: - "0000:05:00.0" @@ -80,9 +80,9 @@ host: ip: "192.168.100.101/24" - user: root + user: "" password: "" - key_filename: /root/.ssh/id_rsa + key_filename: ~ vnf: pcis: diff --git a/ansible/standalone_sriov_scale_out_ixia_correlated_test.yaml b/ansible/standalone_sriov_scale_out_ixia_correlated_test.yaml index 084dcbf7e..45a4a498b 100644 --- a/ansible/standalone_sriov_scale_out_ixia_correlated_test.yaml +++ b/ansible/standalone_sriov_scale_out_ixia_correlated_test.yaml @@ -47,7 +47,7 @@ ixchassis: "1.1.1.127" #ixia chassis ip tcl_port: "8009" # tcl server port lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0" - ""_dir: "/opt/ixia/ixos-api/8.01.0.2/" + root_dir: "/opt/ixia/ixos-api/8.01.0.2/" py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/" py_lib_path: "/opt/ixia/ixnetwork/8.01.1029.14/lib/PythonApi" dut_result_dir: "/mnt/results" @@ -80,7 +80,7 @@ gen_1: user: "" password: "" - key_filename: /""/.ssh/id_rsa + key_filename: "~" pcis: uplink: - "0000:05:00.0" diff --git a/ansible/standalone_sriov_scale_out_ixia_test.yaml b/ansible/standalone_sriov_scale_out_ixia_test.yaml index 79ec0e68e..659dbef07 100644 --- a/ansible/standalone_sriov_scale_out_ixia_test.yaml +++ b/ansible/standalone_sriov_scale_out_ixia_test.yaml @@ -47,7 +47,7 @@ ixchassis: "1.1.1.127" #ixia chassis ip tcl_port: "8009" # tcl server port lib_path: "/opt/ixia/ixos-api/8.01.0.2/lib/ixTcl1.0" - ""_dir: "/opt/ixia/ixos-api/8.01.0.2/" + root_dir: "/opt/ixia/ixos-api/8.01.0.2/" py_bin_path: "/opt/ixia/ixload/8.01.106.3/bin/" py_lib_path: "/opt/ixia/ixnetwork/8.01.1029.14/lib/PythonApi" dut_result_dir: "/mnt/results" @@ -80,7 +80,7 @@ ip: "192.168.100.101/24" user: "" password: "" - key_filename: /""/.ssh/id_rsa + key_filename: "~" vnf: user: "" diff --git a/ansible/standalone_sriov_scale_out_test.yaml b/ansible/standalone_sriov_scale_out_test.yaml index e51e5617e..fe6989d54 100644 --- a/ansible/standalone_sriov_scale_out_test.yaml +++ b/ansible/standalone_sriov_scale_out_test.yaml @@ -19,7 +19,7 @@ - 2 flavor: user: root - password: ""! + password: "" ram: 4096 image: "/var/lib/libvirt/images/ubuntu.qcow2" extra_specs: diff --git a/etc/yardstick/nodes/standalone/baremetal_trex.yaml b/etc/yardstick/nodes/standalone/baremetal_trex.yaml index 508fb88d3..d41b8989f 100644 --- a/etc/yardstick/nodes/standalone/baremetal_trex.yaml +++ b/etc/yardstick/nodes/standalone/baremetal_trex.yaml @@ -21,17 +21,17 @@ nodes: password: {{gen.password}} key_filename: {{gen.key_filename}} interfaces: -{% for num in range(item.num_vnfs|int) %} +{% for num in range(num_vnfs|int) %} xe{{num * 2}}: # logical name from topology.yaml and vnfd.yaml - vpci: "{{gen.pcis.private[num]}}" + vpci: "{{gen.pcis.uplink[num]}}" dpdk_port_num: {{num * 2}} - local_ip: "{{gen.ip.private[num] | ipaddr('address')}}" - netmask: "{{gen.ip.private[num] | ipaddr('netmask')}}" - local_mac: "{{gen.mac.private[num]}}" + local_ip: "{{gen.ip.uplink[num] | ipaddr('address')}}" + netmask: "{{gen.ip.uplink[num] | ipaddr('netmask')}}" + local_mac: "{{gen.mac.uplink[num]}}" xe{{(num * 2) + 1}}: # logical name from topology.yaml and vnfd.yaml - vpci: "{{gen.pcis.public[num]}}" + vpci: "{{gen.pcis.downlink[num]}}" dpdk_port_num: {{(num * 2) + 1}} - local_ip: "{{gen.ip.public[num] | ipaddr('address') }}" - netmask: "{{gen.ip.private[num] | ipaddr('netmask')}}" - local_mac: "{{gen.mac.public[num]}}" + local_ip: "{{gen.ip.downlink[num] | ipaddr('address') }}" + netmask: "{{gen.ip.uplink[num] | ipaddr('netmask')}}" + local_mac: "{{gen.mac.downlink[num]}}" {% endfor %} diff --git a/etc/yardstick/nodes/standalone/pod_bm_vnf.yaml b/etc/yardstick/nodes/standalone/pod_bm_vnf.yaml new file mode 100644 index 000000000..b724cb09b --- /dev/null +++ b/etc/yardstick/nodes/standalone/pod_bm_vnf.yaml @@ -0,0 +1,37 @@ +# 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. + +nodes: +- + name: vnf__0 + role: vnf__0 + ip: {{vnf.ip.mgmt[0]| ipaddr('address')}} + user: {{vnf.user}} + password: {{vnf.password}} + key_filename: {{vnf.key_filename}} + interfaces: +{% for num in range(num_vnfs|int) %} + xe{{num * 2}}: # logical name from topology.yaml and vnfd.yaml + vpci: "{{vnf.pcis.uplink[num]}}" + dpdk_port_num: {{num * 2}} + local_ip: "{{vnf.ip.uplink[num] | ipaddr('address')}}" + netmask: "{{vnf.ip.uplink[num] | ipaddr('netmask')}}" + local_mac: "{{vnf.mac.uplink[num]}}" + xe{{(num * 2) + 1}}: # logical name from topology.yaml and vnfd.yaml + vpci: "{{vnf.pcis.downlink[num]}}" + dpdk_port_num: {{(num * 2) + 1}} + local_ip: "{{vnf.ip.downlink[num] | ipaddr('address') }}" + netmask: "{{vnf.ip.uplink[num] | ipaddr('netmask')}}" + local_mac: "{{vnf.mac.downlink[num]}}" +{% endfor %} diff --git a/samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-correlated-multi-port.yaml b/samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-correlated-multi-port.yaml new file mode 100644 index 000000000..667d23e80 --- /dev/null +++ b/samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-correlated-multi-port.yaml @@ -0,0 +1,54 @@ +# 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: 3-tg_vnf-topology + name: 3-tg_vnf-topology + short-name: 3-tg_vnf-topology + description: 3-tg_vnf-topology + constituent-vnfd: + - member-vnf-index: '0' + vnfd-id-ref: tg__0 + VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml + - member-vnf-index: '1' + vnfd-id-ref: tg__1 + VNF model: ../../vnf_descriptors/udp_replay_vnf.yaml #VNF type + - member-vnf-index: '2' + vnfd-id-ref: vnf__0 + VNF model: ../../vnf_descriptors/acl_vnf.yaml #VNF type + + vld: +{% for vnf_num in range(num_vnfs|int) %} + - id: uplink_{{ vnf_num }} + name: "tg__0 to vnf__0 link {{ (vnf_num * 2) }}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '0' + vnfd-connection-point-ref: xe{{ vnf_num * 2 }} + vnfd-id-ref: tg__0 + - member-vnf-index-ref: 2 + vnfd-connection-point-ref: xe{{ vnf_num * 2}} + vnfd-id-ref: vnf__0 + - id: downlink_{{ vnf_num }} + name: "vnf__{{ vnf_num }} to tg__1 link {{ (vnf_num * 2) + 1}}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: 2 + vnfd-connection-point-ref: xe{{vnf_num * 2 + 1}} + vnfd-id-ref: vnf__0 + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{ vnf_num }} + vnfd-id-ref: tg__1 +{% endfor %} diff --git a/samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-multi-port.yaml b/samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-multi-port.yaml new file mode 100644 index 000000000..00bf28231 --- /dev/null +++ b/samples/vnf_samples/nsut/acl/acl-tg-topology-ixia-multi-port.yaml @@ -0,0 +1,51 @@ +# 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: 2tg-topology + name: 2tg-topology + short-name: 2tg-topology + description: 2tg-topology + constituent-vnfd: + - member-vnf-index: '0' + vnfd-id-ref: tg__0 + VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml + - member-vnf-index: '1' + vnfd-id-ref: vnf__0 + VNF model: ../../vnf_descriptors/acl_vnf.yaml #VNF type + + vld: +{% for vnf_num in range(num_vnfs|int) %} + - id: uplink_{{ vnf_num }} + name: "tg__0 to vnf__0 link {{ (vnf_num * 2) }}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '0' + vnfd-connection-point-ref: xe{{ vnf_num * 2}} + vnfd-id-ref: tg__0 + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{ vnf_num * 2}} + vnfd-id-ref: vnf__0 + - id: downlink_{{ vnf_num }} + name: "vnf__0 to tg__0 link {{ (vnf_num * 2) + 1}}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{ (vnf_num * 2) + 1}} + vnfd-id-ref: vnf__0 + - member-vnf-index-ref: '0' + vnfd-connection-point-ref: xe{{ (vnf_num * 2) + 1}} + vnfd-id-ref: tg__0 +{% endfor %} diff --git a/samples/vnf_samples/nsut/acl/acl-tg-topology-multi-port.yaml b/samples/vnf_samples/nsut/acl/acl-tg-topology-multi-port.yaml new file mode 100644 index 000000000..18ae4aee9 --- /dev/null +++ b/samples/vnf_samples/nsut/acl/acl-tg-topology-multi-port.yaml @@ -0,0 +1,51 @@ +# 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: 2tg-topology + name: 2tg-topology + short-name: 2tg-topology + description: 2tg-topology + constituent-vnfd: + - member-vnf-index: '0' + vnfd-id-ref: tg__0 + VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #VNF type + - member-vnf-index: '1' + vnfd-id-ref: vnf__0 + VNF model: ../../vnf_descriptors/acl_vnf.yaml #VNF type + + vld: +{% for vnf_num in range(num_vnfs|int) %} + - id: uplink_{{ vnf_num }} + name: "tg__0 to vnf__0 link {{ (vnf_num * 2) }}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '0' + vnfd-connection-point-ref: xe{{ vnf_num * 2}} + vnfd-id-ref: tg__0 + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{ vnf_num * 2}} + vnfd-id-ref: vnf__0 + - id: downlink_{{ vnf_num }} + name: "vnf__0 to tg__0 link {{ (vnf_num * 2) + 1}}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{ (vnf_num * 2) + 1}} + vnfd-id-ref: vnf__0 + - member-vnf-index-ref: '0' + vnfd-connection-point-ref: xe{{ (vnf_num * 2) + 1}} + vnfd-id-ref: tg__0 +{% endfor %} diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_ixia_template.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_ixia_template.yaml new file mode 100644 index 000000000..17b918ce0 --- /dev/null +++ b/samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_ixia_template.yaml @@ -0,0 +1,55 @@ +# Copyright (c) 2017 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +schema: yardstick:task:0.1 +scenarios: + - type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml + topology: acl-tg-topology-ixia-multi-port-{{ num_vnfs }}.yaml + nodes: + tg__0: tg__0.yardstick + vnf__0: vnf__0.yardstick + options: + framesize: + uplink: {{ flow.pkt_size.uplink }} + downlink: {{ flow.pkt_size.downlink }} + flow: + src_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__0': 'xe{{ (vnf_num * 2)}}'} +{% endfor %} + dst_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__0': 'xe{{ (vnf_num * 2) + 1}}'} +{% endfor %} + count: {{ flow.count }} + traffic_type: {{ flow.traffic_type }} + rfc2544: + allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }} + vnf__0: + rules: acl_1rule.yaml + vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}} + ixia_profile: ../../traffic_profiles/ixia_ipv4_profile_{{num_vnfs * 2}}_port.ixncfg + runner: + type: Iteration + iterations: 10 + interval: 35 +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/baremetal_trex_{{num_vnfs}}.yaml + - name: yardstick + type: Node + file: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_template.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_template.yaml new file mode 100644 index 000000000..1333b2721 --- /dev/null +++ b/samples/vnf_samples/nsut/acl/tc_baremetal_acl_rfc2544_template.yaml @@ -0,0 +1,54 @@ +# Copyright (c) 2017 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +schema: yardstick:task:0.1 +scenarios: + - type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml + topology: acl-tg-topology-scale-out-{{ num_vnfs }}.yaml + nodes: + tg__0: tg__0.yardstick + vnf__0: vnf__0.yardstick + options: + framesize: + uplink: {{ flow.pkt_size.uplink }} + downlink: {{ flow.pkt_size.downlink }} + flow: + src_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__0': 'xe{{ (vnf_num * 2)}}'} +{% endfor %} + dst_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__0': 'xe{{ (vnf_num * 2) + 1}}'} +{% endfor %} + count: {{ flow.count }} + traffic_type: {{ flow.traffic_type }} + rfc2544: + allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }} + vnf__0: + rules: acl_1rule.yaml + vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}} + runner: + type: Iteration + iterations: 10 + interval: 35 +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/baremetal_trex_{{num_vnfs}}.yaml + - name: yardstick + type: Node + file: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml diff --git a/samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_multi_port_template.yaml b/samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_multi_port_template.yaml new file mode 100644 index 000000000..fe7be9aba --- /dev/null +++ b/samples/vnf_samples/nsut/acl/tc_baremetal_acl_udp_ixia_correlated_multi_port_template.yaml @@ -0,0 +1,57 @@ +# 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-ixia-{{ num_vnfs }}.yaml + topology: acl-tg-topology-ixia-correlated-multi-port-{{ num_vnfs }}.yaml + nodes: + tg__0: tg__0.yardstick + tg__1: tg__1.yardstick + vnf__0: vnf__0.yardstick + options: + framesize: + uplink: {{ flow.pkt_size.uplink }} + downlink: {{ flow.pkt_size.downlink }} + flow: + src_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__0': 'xe{{ vnf_num }}'} +{% endfor %} + dst_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__1': 'xe{{ vnf_num }}'} +{% endfor %} + count: {{ flow.count }} + traffic_type: {{ flow.traffic_type }} + rfc2544: + allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }} + vnf__0: + rules: acl_1rule.yaml + vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}} + ixia_profile: ../../traffic_profiles/ixia/ixia_ipv4_profile_{{ num_vnfs }}_port.ixncfg + + runner: + type: Iteration + iterations: 10 + interval: 35 +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/ixia_correlated_{{num_vnfs}}.yaml + - type: Node + file: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml + name: yardstick diff --git a/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_ixia_correlated_scale_out_template.yaml b/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_ixia_correlated_scale_out_template.yaml index 8e1c43f88..5f5d0869d 100644 --- a/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_ixia_correlated_scale_out_template.yaml +++ b/samples/vnf_samples/nsut/acl/tc_ovs_acl_udp_ixia_correlated_scale_out_template.yaml @@ -17,7 +17,7 @@ schema: yardstick:task:0.1 scenarios: - type: NSPerf traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml - topology: acl-tg-topology-scale-out-{{ num_vnfs }}.yaml + topology: acl-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml nodes: tg__0: tg__0.yardstick tg__1: tg__1.yardstick diff --git a/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_ixia_correlated_scale_out_template.yaml b/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_ixia_correlated_scale_out_template.yaml index d06c2ec96..024507bc6 100644 --- a/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_ixia_correlated_scale_out_template.yaml +++ b/samples/vnf_samples/nsut/acl/tc_sriov_acl_udp_ixia_correlated_scale_out_template.yaml @@ -17,7 +17,7 @@ schema: yardstick:task:0.1 scenarios: - type: NSPerf traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml - topology: acl-tg-topology-ixia-scale-out-{{ num_vnfs }}.yaml + topology: acl-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml nodes: tg__0: tg__0.yardstick tg__1: tg__1.yardstick diff --git a/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-correlated-multi-port.yaml b/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-correlated-multi-port.yaml new file mode 100644 index 000000000..cf64d96ba --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-correlated-multi-port.yaml @@ -0,0 +1,54 @@ +# 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: 3-tg_vnf-topology + name: 3-tg_vnf-topology + short-name: 3-tg_vnf-topology + description: 3-tg_vnf-topology + constituent-vnfd: + - member-vnf-index: '0' + vnfd-id-ref: tg__0 + VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml + - member-vnf-index: '1' + vnfd-id-ref: tg__1 + VNF model: ../../vnf_descriptors/udp_replay_vnf.yaml #VNF type + - member-vnf-index: '2' + vnfd-id-ref: vnf__0 + VNF model: ../../vnf_descriptors/cgnapt_vnf.yaml #VNF type + + vld: +{% for vnf_num in range(num_vnfs|int) %} + - id: uplink_{{ vnf_num }} + name: "tg__0 to vnf__0 link {{ (vnf_num * 2) }}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '0' + vnfd-connection-point-ref: xe{{ vnf_num * 2 }} + vnfd-id-ref: tg__0 + - member-vnf-index-ref: 2 + vnfd-connection-point-ref: xe{{ vnf_num * 2}} + vnfd-id-ref: vnf__0 + - id: downlink_{{ vnf_num }} + name: "vnf__{{ vnf_num }} to tg__1 link {{ (vnf_num * 2) + 1}}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: 2 + vnfd-connection-point-ref: xe{{vnf_num * 2 + 1}} + vnfd-id-ref: vnf__0 + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{ vnf_num }} + vnfd-id-ref: tg__1 +{% endfor %} diff --git a/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-multi-port.yaml b/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-multi-port.yaml new file mode 100644 index 000000000..91d257fd4 --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-multi-port.yaml @@ -0,0 +1,51 @@ +# 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: 2tg-topology + name: 2tg-topology + short-name: 2tg-topology + description: 2tg-topology + constituent-vnfd: + - member-vnf-index: '0' + vnfd-id-ref: tg__0 + VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml + - member-vnf-index: '1' + vnfd-id-ref: vnf__0 + VNF model: ../../vnf_descriptors/cgnapt_vnf.yaml #VNF type + + vld: +{% for vnf_num in range(num_vnfs|int) %} + - id: uplink_{{ vnf_num }} + name: "tg__0 to vnf__0 link {{ (vnf_num * 2) }}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '0' + vnfd-connection-point-ref: xe{{ vnf_num * 2}} + vnfd-id-ref: tg__0 + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{ vnf_num * 2}} + vnfd-id-ref: vnf__0 + - id: downlink_{{ vnf_num }} + name: "vnf__0 to tg__0 link {{ (vnf_num * 2) + 1}}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{ (vnf_num * 2) + 1}} + vnfd-id-ref: vnf__0 + - member-vnf-index-ref: '0' + vnfd-connection-point-ref: xe{{ (vnf_num * 2) + 1}} + vnfd-id-ref: tg__0 +{% endfor %} diff --git a/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-multi-port.yaml b/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-multi-port.yaml new file mode 100644 index 000000000..b96cd38d4 --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-multi-port.yaml @@ -0,0 +1,51 @@ +# 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: 2tg-topology + name: 2tg-topology + short-name: 2tg-topology + description: 2tg-topology + constituent-vnfd: + - member-vnf-index: '0' + vnfd-id-ref: tg__0 + VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #VNF type + - member-vnf-index: '1' + vnfd-id-ref: vnf__0 + VNF model: ../../vnf_descriptors/cgnapt_vnf.yaml #VNF type + + vld: +{% for vnf_num in range(num_vnfs|int) %} + - id: uplink_{{ vnf_num }} + name: "tg__0 to vnf__0 link {{ (vnf_num * 2) }}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '0' + vnfd-connection-point-ref: xe{{ vnf_num * 2}} + vnfd-id-ref: tg__0 + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{ vnf_num * 2}} + vnfd-id-ref: vnf__0 + - id: downlink_{{ vnf_num }} + name: "vnf__0 to tg__0 link {{ (vnf_num * 2) + 1}}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{ (vnf_num * 2) + 1}} + vnfd-id-ref: vnf__0 + - member-vnf-index-ref: '0' + vnfd-connection-point-ref: xe{{ (vnf_num * 2) + 1}} + vnfd-id-ref: tg__0 +{% endfor %} diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_ixia_template.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_ixia_template.yaml new file mode 100644 index 000000000..3a1c1cb12 --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_ixia_template.yaml @@ -0,0 +1,55 @@ +# Copyright (c) 2017 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +schema: yardstick:task:0.1 +scenarios: + - type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml + topology: cgnapt-tg-topology-ixia-multi-port-{{ num_vnfs }}.yaml + nodes: + tg__0: tg__0.yardstick + vnf__0: vnf__0.yardstick + options: + framesize: + uplink: {{ flow.pkt_size.uplink }} + downlink: {{ flow.pkt_size.downlink }} + flow: + src_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__0': 'xe{{ (vnf_num * 2)}}'} +{% endfor %} + dst_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__0': 'xe{{ (vnf_num * 2) + 1}}'} +{% endfor %} + count: {{ flow.count }} + traffic_type: {{ flow.traffic_type }} + rfc2544: + allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }} + vnf__0: + rules: acl_1rule.yaml + vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}} + ixia_profile: ../../traffic_profiles/ixia_ipv4_profile_{{num_vnfs * 2}}_port.ixncfg + runner: + type: Iteration + iterations: 10 + interval: 35 +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/baremetal_trex_{{num_vnfs}}.yaml + - name: yardstick + type: Node + file: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_template.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_template.yaml new file mode 100644 index 000000000..81000a7a5 --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_rfc2544_template.yaml @@ -0,0 +1,54 @@ +# Copyright (c) 2017 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +schema: yardstick:task:0.1 +scenarios: + - type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml + topology: cgnapt-tg-topology-multi-port-{{ num_vnfs }}.yaml + nodes: + tg__0: tg__0.yardstick + vnf__0: vnf__0.yardstick + options: + framesize: + uplink: {{ flow.pkt_size.uplink }} + downlink: {{ flow.pkt_size.downlink }} + flow: + src_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__0': 'xe{{ (vnf_num * 2)}}'} +{% endfor %} + dst_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__0': 'xe{{ (vnf_num * 2) + 1}}'} +{% endfor %} + count: {{ flow.count }} + traffic_type: {{ flow.traffic_type }} + rfc2544: + allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }} + vnf__0: + rules: acl_1rule.yaml + vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}} + runner: + type: Iteration + iterations: 10 + interval: 35 +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/baremetal_trex_{{num_vnfs}}.yaml + - name: yardstick + type: Node + file: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_multi_port_template.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_multi_port_template.yaml new file mode 100644 index 000000000..879911f62 --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_cgnapt_udp_ixia_correlated_multi_port_template.yaml @@ -0,0 +1,57 @@ +# 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-ixia-{{ num_vnfs }}.yaml + topology: cgnapt-tg-topology-ixia-correlated-multi-port-{{ num_vnfs }}.yaml + nodes: + tg__0: tg__0.yardstick + tg__1: tg__1.yardstick + vnf__0: vnf__0.yardstick + options: + framesize: + uplink: {{ flow.pkt_size.uplink }} + downlink: {{ flow.pkt_size.downlink }} + flow: + src_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__0': 'xe{{ vnf_num }}'} +{% endfor %} + dst_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__1': 'xe{{ vnf_num }}'} +{% endfor %} + count: {{ flow.count }} + traffic_type: {{ flow.traffic_type }} + rfc2544: + allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }} + vnf__0: + rules: acl_1rule.yaml + vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}} + ixia_profile: ../../traffic_profiles/ixia/ixia_ipv4_profile_{{ num_vnfs }}_port.ixncfg + + runner: + type: Iteration + iterations: 10 + interval: 35 +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/ixia_correlated_{{num_vnfs}}.yaml + - type: Node + file: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml + name: yardstick diff --git a/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_correlated_scale_out_template.yaml b/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_correlated_scale_out_template.yaml index 5f575d709..e2002abc0 100644 --- a/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_correlated_scale_out_template.yaml +++ b/samples/vnf_samples/nsut/cgnapt/tc_ovs_cgnapt_udp_ixia_correlated_scale_out_template.yaml @@ -16,8 +16,8 @@ schema: yardstick:task:0.1 scenarios: - type: NSPerf - traffic_profile: ../../traffic_profiles/ipv4_throughput-cgnapt-ixia-{{ num_vnfs }}.yaml - topology: cgnapt-tg-topology-scale-out-{{ num_vnfs }}.yaml + traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml + topology: cgnapt-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml nodes: tg__0: tg__0.yardstick tg__1: tg__1.yardstick diff --git a/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_ixia_correlated_scale_out_template.yaml b/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_ixia_correlated_scale_out_template.yaml index 5b6d4a525..7f6e76cc2 100644 --- a/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_ixia_correlated_scale_out_template.yaml +++ b/samples/vnf_samples/nsut/cgnapt/tc_sriov_cgnapt_udp_ixia_correlated_scale_out_template.yaml @@ -16,8 +16,8 @@ schema: yardstick:task:0.1 scenarios: - type: NSPerf - traffic_profile: ../../traffic_profiles/ipv4_throughput-cgnapt-ixia-{{ num_vnfs }}.yaml - topology: cgnapt-tg-topology-ixia-scale-out-{{ num_vnfs }}.yaml + traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml + topology: cgnapt-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml nodes: tg__0: tg__0.yardstick tg__1: tg__1.yardstick diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_ixia_template.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_ixia_template.yaml new file mode 100644 index 000000000..f442c71d0 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_ixia_template.yaml @@ -0,0 +1,55 @@ +# Copyright (c) 2017 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +schema: yardstick:task:0.1 +scenarios: + - type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml + topology: vfw-tg-topology-ixia-multi-port-{{ num_vnfs }}.yaml + nodes: + tg__0: tg__0.yardstick + vnf__0: vnf__0.yardstick + options: + framesize: + uplink: {{ flow.pkt_size.uplink }} + downlink: {{ flow.pkt_size.downlink }} + flow: + src_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__0': 'xe{{ (vnf_num * 2)}}'} +{% endfor %} + dst_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__0': 'xe{{ (vnf_num * 2) + 1}}'} +{% endfor %} + count: {{ flow.count }} + traffic_type: {{ flow.traffic_type }} + rfc2544: + allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }} + vnf__0: + rules: acl_1rule.yaml + vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}} + ixia_profile: ../../traffic_profiles/ixia_ipv4_profile_{{num_vnfs * 2}}_port.ixncfg + runner: + type: Iteration + iterations: 10 + interval: 35 +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/baremetal_trex_{{num_vnfs}}.yaml + - name: yardstick + type: Node + file: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_template.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_template.yaml new file mode 100644 index 000000000..6604e6451 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_rfc2544_template.yaml @@ -0,0 +1,54 @@ +# Copyright (c) 2017 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +schema: yardstick:task:0.1 +scenarios: + - type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml + topology: vfw-tg-topology-multi-port-{{ num_vnfs }}.yaml + nodes: + tg__0: tg__0.yardstick + vnf__0: vnf__0.yardstick + options: + framesize: + uplink: {{ flow.pkt_size.uplink }} + downlink: {{ flow.pkt_size.downlink }} + flow: + src_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__0': 'xe{{ (vnf_num * 2)}}'} +{% endfor %} + dst_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__0': 'xe{{ (vnf_num * 2) + 1}}'} +{% endfor %} + count: {{ flow.count }} + traffic_type: {{ flow.traffic_type }} + rfc2544: + allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }} + vnf__0: + rules: acl_1rule.yaml + vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}} + runner: + type: Iteration + iterations: 10 + interval: 35 +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/baremetal_trex_{{num_vnfs}}.yaml + - name: yardstick + type: Node + file: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_multi_port_template.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_multi_port_template.yaml new file mode 100644 index 000000000..d00fe1dcf --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_vfw_udp_ixia_correlated_multi_port_template.yaml @@ -0,0 +1,57 @@ +# 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-ixia-{{ num_vnfs }}.yaml + topology: vfw-tg-topology-ixia-correlated-multi-port-{{ num_vnfs }}.yaml + nodes: + tg__0: tg__0.yardstick + tg__1: tg__1.yardstick + vnf__0: vnf__0.yardstick + options: + framesize: + uplink: {{ flow.pkt_size.uplink }} + downlink: {{ flow.pkt_size.downlink }} + flow: + src_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__0': 'xe{{ vnf_num }}'} +{% endfor %} + dst_ip: +{% for vnf_num in range(num_vnfs|int) %} + - {'tg__1': 'xe{{ vnf_num }}'} +{% endfor %} + count: {{ flow.count }} + traffic_type: {{ flow.traffic_type }} + rfc2544: + allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }} + vnf__0: + rules: acl_1rule.yaml + vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}} + ixia_profile: ../../traffic_profiles/ixia/ixia_ipv4_profile_{{ num_vnfs }}_port.ixncfg + + runner: + type: Iteration + iterations: 10 + interval: 35 +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/ixia_correlated_{{num_vnfs}}.yaml + - type: Node + file: /etc/yardstick/nodes/pod_bm_vnf_{{num_vnfs}}.yaml + name: yardstick diff --git a/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_correlated_scale_out_template.yaml b/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_correlated_scale_out_template.yaml index a82cece07..3606a5585 100644 --- a/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_correlated_scale_out_template.yaml +++ b/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_correlated_scale_out_template.yaml @@ -17,7 +17,7 @@ schema: yardstick:task:0.1 scenarios: - type: NSPerf traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml - topology: vfw-tg-topology-scale-out-{{ num_vnfs }}.yaml + topology: vfw-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml nodes: tg__0: tg__0.yardstick tg__1: tg__1.yardstick diff --git a/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_scale_out_template.yaml b/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_scale_out_template.yaml index 10e8e20cd..c263a7688 100644 --- a/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_scale_out_template.yaml +++ b/samples/vnf_samples/nsut/vfw/tc_ovs_vfw_udp_ixia_scale_out_template.yaml @@ -45,6 +45,7 @@ scenarios: rules: acl_1rule.yaml vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}} {% endfor %} + ixia_profile: ../../traffic_profiles/ixia/ixia_ipv4_profile_{{num_vnfs * 2}}_port.ixncfg runner: type: Iteration iterations: 10 diff --git a/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_ixia_correlated_scale_out_template.yaml b/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_ixia_correlated_scale_out_template.yaml index efa51a459..d7016964a 100644 --- a/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_ixia_correlated_scale_out_template.yaml +++ b/samples/vnf_samples/nsut/vfw/tc_sriov_vfw_udp_ixia_correlated_scale_out_template.yaml @@ -17,7 +17,7 @@ schema: yardstick:task:0.1 scenarios: - type: NSPerf traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml - topology: vfw-tg-topology-ixia-scale-out-{{ num_vnfs }}.yaml + topology: vfw-tg-topology-ixia-correlated-scale-out-{{ num_vnfs }}.yaml nodes: tg__0: tg__0.yardstick tg__1: tg__1.yardstick diff --git a/samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-correlated-multi-port.yaml b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-correlated-multi-port.yaml new file mode 100644 index 000000000..2d950b305 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-correlated-multi-port.yaml @@ -0,0 +1,54 @@ +# 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: 3-tg_vnf-topology + name: 3-tg_vnf-topology + short-name: 3-tg_vnf-topology + description: 3-tg_vnf-topology + constituent-vnfd: + - member-vnf-index: '0' + vnfd-id-ref: tg__0 + VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml + - member-vnf-index: '1' + vnfd-id-ref: tg__1 + VNF model: ../../vnf_descriptors/udp_replay_vnf.yaml #VNF type + - member-vnf-index: '2' + vnfd-id-ref: vnf__0 + VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type + + vld: +{% for vnf_num in range(num_vnfs|int) %} + - id: uplink_{{ vnf_num }} + name: "tg__0 to vnf__0 link {{ (vnf_num * 2) }}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '0' + vnfd-connection-point-ref: xe{{ vnf_num * 2 }} + vnfd-id-ref: tg__0 + - member-vnf-index-ref: 2 + vnfd-connection-point-ref: xe{{ vnf_num * 2}} + vnfd-id-ref: vnf__0 + - id: downlink_{{ vnf_num }} + name: "vnf__{{ vnf_num }} to tg__1 link {{ (vnf_num * 2) + 1}}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: 2 + vnfd-connection-point-ref: xe{{vnf_num * 2 + 1}} + vnfd-id-ref: vnf__0 + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{ vnf_num }} + vnfd-id-ref: tg__1 +{% endfor %} diff --git a/samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-multi-port.yaml b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-multi-port.yaml new file mode 100644 index 000000000..6e2d360b9 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-multi-port.yaml @@ -0,0 +1,51 @@ +# 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: 2tg-topology + name: 2tg-topology + short-name: 2tg-topology + description: 2tg-topology + constituent-vnfd: + - member-vnf-index: '0' + vnfd-id-ref: tg__0 + VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml + - member-vnf-index: '1' + vnfd-id-ref: vnf__0 + VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type + + vld: +{% for vnf_num in range(num_vnfs|int) %} + - id: uplink_{{ vnf_num }} + name: "tg__0 to vnf__0 link {{ (vnf_num * 2) }}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '0' + vnfd-connection-point-ref: xe{{ vnf_num * 2}} + vnfd-id-ref: tg__0 + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{ vnf_num * 2}} + vnfd-id-ref: vnf__0 + - id: downlink_{{ vnf_num }} + name: "vnf__0 to tg__0 link {{ (vnf_num * 2) + 1}}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{ (vnf_num * 2) + 1}} + vnfd-id-ref: vnf__0 + - member-vnf-index-ref: '0' + vnfd-connection-point-ref: xe{{ (vnf_num * 2) + 1}} + vnfd-id-ref: tg__0 +{% endfor %} diff --git a/samples/vnf_samples/nsut/vfw/vfw-tg-topology-multi-port.yaml b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-multi-port.yaml new file mode 100644 index 000000000..b5ad71c92 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-multi-port.yaml @@ -0,0 +1,51 @@ +# 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: 2tg-topology + name: 2tg-topology + short-name: 2tg-topology + description: 2tg-topology + constituent-vnfd: + - member-vnf-index: '0' + vnfd-id-ref: tg__0 + VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #VNF type + - member-vnf-index: '1' + vnfd-id-ref: vnf__0 + VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type + + vld: +{% for vnf_num in range(num_vnfs|int) %} + - id: uplink_{{ vnf_num }} + name: "tg__0 to vnf__0 link {{ (vnf_num * 2) }}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '0' + vnfd-connection-point-ref: xe{{ vnf_num * 2}} + vnfd-id-ref: tg__0 + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{ vnf_num * 2}} + vnfd-id-ref: vnf__0 + - id: downlink_{{ vnf_num }} + name: "vnf__0 to tg__0 link {{ (vnf_num * 2) + 1}}" + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{ (vnf_num * 2) + 1}} + vnfd-id-ref: vnf__0 + - member-vnf-index-ref: '0' + vnfd-connection-point-ref: xe{{ (vnf_num * 2) + 1}} + vnfd-id-ref: tg__0 +{% endfor %} diff --git a/samples/vnf_samples/traffic_profiles/example.yaml b/samples/vnf_samples/traffic_profiles/example.yaml index 443fb88cf..7c6a8cb38 100644 --- a/samples/vnf_samples/traffic_profiles/example.yaml +++ b/samples/vnf_samples/traffic_profiles/example.yaml @@ -24,7 +24,7 @@ traffic_profile: flow_number: {{ flow.number }} #This decides how many frames should be generated. Each frame should have a random of the field # that specifies a range (e.g. ipv4 address, port) -private: +uplink: - ipv4_1: outer_l2: framesize: @@ -139,7 +139,7 @@ private: srcport: {{ get(flow.inner_srcport, "3002") }} dstport: {{ get(flow.inner_dstport, "3001") }} -public: +downlink: - ipv4_2: outer_l2: framesize: diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-scale-out.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-scale-out.yaml index 215433b54..75927d40d 100644 --- a/samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-scale-out.yaml +++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-cgnapt-scale-out.yaml @@ -50,6 +50,7 @@ traffic_profile: [% for vnf_num in range(num_vnfs|int) %] uplink_[[ vnf_num ]]: ipv4: + id: [[vnf_num * 2 + 1]] outer_l2: framesize: 64B: "{{ get(imix, 'imix.uplink.64B', '0') }}" @@ -74,6 +75,7 @@ uplink_[[ vnf_num ]]: count: "{{get(flow, 'flow.count', '1') }}" downlink_[[ vnf_num ]]: ipv4: + id: [[vnf_num * 2 + 2]] outer_l2: framesize: 64B: "{{ get(imix, 'imix.downlink.64B', '0') }}" diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-correlated-scale-out.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-correlated-scale-out.yaml new file mode 100644 index 000000000..500163205 --- /dev/null +++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-ixia-correlated-scale-out.yaml @@ -0,0 +1,76 @@ +#jinja2:variable_start_string:'[[', variable_end_string:']]', block_start_string:'[%', block_end_string:'%]' +# 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. + +# flow definition for ACL tests - 1K flows - ipv4 only +# +# the number of flows defines the widest range of parameters +# for example if srcip_range=1.0.0.1-1.0.0.255 and dst_ip_range=10.0.0.1-10.0.1.255 +# and it should define only 16 flows +# +# there is assumption that packets generated will have a random sequences of following addresses pairs +# in the packets +# 1. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512) +# 2. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512) +# ... +# 512. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512) +# +# not all combination should be filled +# Any other field with random range will be added to flow definition +# +# the example.yaml provides all possibilities for traffic generation +# +# the profile defines a public and private side to make limited traffic correlation +# between private and public side same way as it is made by IXIA solution. +# +--- +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 +traffic_profile: + traffic_type: IXIARFC2544Profile # defines traffic behavior - constant or look for highest possible throughput + frame_rate: 100 # pc of linerate + # that specifies a range (e.g. ipv4 address, port) + + +[% for vnf_num in range(num_vnfs|int) %] +uplink_[[ vnf_num ]]: + ipv4: + id: [[vnf_num + 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') }}" + 1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}" + 1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}" + 1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}" + outer_l3v4: + proto: "udp" + srcip4: "{{get(flow, 'flow.src_ip_[[ vnf_num ]]', '1.1.1.1-1.1.255.255') }}" + dstip4: "{{get(flow, 'flow.dst_ip_[[ vnf_num ]]', '90.90.1.1-90.90.255.255') }}" + count: "{{get(flow, 'flow.count', '1') }}" + ttl: 32 + dscp: 0 + outer_l4: + srcport: "{{get(flow, 'flow.src_port_[[ vnf_num ]]', '1234-4321') }}" + dstport: "{{get(flow, 'flow.dst_port_[[ vnf_num ]]', '2001-4001') }}" + count: "{{get(flow, 'flow.count', '1') }}" +[% endfor %] diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-out.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-out.yaml index 821c3c830..dbf366f75 100644 --- a/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-out.yaml +++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-out.yaml @@ -50,6 +50,7 @@ traffic_profile: [% for vnf_num in range(num_vnfs|int) %] uplink_[[ vnf_num ]]: ipv4: + id: [[vnf_num * 2 + 1]] outer_l2: framesize: 64B: "{{ get(imix, 'imix.uplink.64B', '0') }}" @@ -74,6 +75,7 @@ uplink_[[ vnf_num ]]: count: "{{get(flow, 'flow.count', '1') }}" downlink_[[ vnf_num ]]: ipv4: + id: [[vnf_num * 2 + 2]] outer_l2: framesize: 64B: "{{ get(imix, 'imix.downlink.64B', '0') }}" diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput.yaml index 7d51122f4..4e72fde1a 100644 --- a/samples/vnf_samples/traffic_profiles/ipv4_throughput.yaml +++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput.yaml @@ -47,6 +47,7 @@ traffic_profile: uplink_0: ipv4: + id: 1 outer_l2: framesize: 64B: "{{get(imix, 'imix.uplink.64B', '0') }}" @@ -72,6 +73,7 @@ uplink_0: count: "{{get(flow, 'flow.count', '1') }}" downlink_0: ipv4: + id: 2 outer_l2: framesize: 64B: "{{ get(imix, 'imix.downlink.64B', '0') }}" @@ -95,3 +97,55 @@ downlink_0: srcport: "{{get(flow, 'flow.dst_port_0', '1234-4321') }}" dstport: "{{get(flow, 'flow.src_port_0', '2001-4001') }}" count: "{{get(flow, 'flow.count', '1') }}" +uplink_1: + ipv4: + id: 3 + 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') }}" + 1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}" + 1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}" + 1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}" + + outer_l3v4: + proto: "udp" + srcip4: "{{get(flow, 'flow.src_ip_1', '10.0.2.1-10.0.2.255') }}" + dstip4: "{{get(flow, 'flow.dst_ip_1', '10.0.3.1-10.0.3.255') }}" + count: "{{get(flow, 'flow.count', '1') }}" + ttl: 32 + dscp: 0 + outer_l4: + srcport: "{{get(flow, 'flow.src_port_1', '1234-4321') }}" + dstport: "{{get(flow, 'flow.dst_port_1', '2001-4001') }}" + count: "{{get(flow, 'flow.count', '1') }}" +downlink_1: + ipv4: + id: 4 + 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') }}" + 1400B: "{{get(imix, 'imix.downlink.1400B', '0') }}" + 1500B: "{{get(imix, 'imix.downlink.1500B', '0') }}" + 1518B: "{{get(imix, 'imix.downlink.1518B', '0') }}" + + outer_l3v4: + proto: "udp" + srcip4: "{{get(flow, 'flow.dst_ip_1', '10.0.3.1-10.0.3.255') }}" + dstip4: "{{get(flow, 'flow.src_ip_1', '10.0.2.1-10.0.2.255') }}" + count: "{{get(flow, 'flow.count', '1') }}" + ttl: 32 + dscp: 0 + outer_l4: + srcport: "{{get(flow, 'flow.dst_port_1', '1234-4321') }}" + dstport: "{{get(flow, 'flow.src_port_1', '2001-4001') }}" + count: "{{get(flow, 'flow.count', '1') }}" diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt.yaml index 60a78a0c6..4aa78e713 100644 --- a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt.yaml +++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt.yaml @@ -47,6 +47,7 @@ traffic_profile: uplink_0: ipv4: + id: 1 outer_l2: framesize: 64B: "{{get(imix, 'imix.uplink.64B', '0') }}" @@ -72,6 +73,7 @@ uplink_0: count: "{{get(flow, 'flow.count', '1') }}" downlink_0: ipv4: + id: 2 outer_l2: framesize: 64B: "{{ get(imix, 'imix.downlink.64B', '0') }}" diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml index 8bac32404..20bc6568d 100644 --- a/samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml +++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_vpe.yaml @@ -47,6 +47,7 @@ traffic_profile: uplink_0: ipv4: + id: 1 outer_l2: framesize: 64B: "{{ get(imix, 'imix.uplink.64B', '0') }}" @@ -83,6 +84,7 @@ uplink_0: count: "{{get(flow, 'flow.count', '1') }}" downlink_0: ipv4: + id: 2 outer_l2: framesize: 64B: "{{ get(imix, 'imix.uplink.imix_small', '0') }}" diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc019.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc019.yaml index 046d51731..852424d8e 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc019.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc019.yaml @@ -13,6 +13,7 @@ description: > Sample test case for the HA of controller node Openstack service. {% set file = file or '/etc/yardstick/pod.yaml' %} +{% set attack_host = attack_host or "node1" %} scenarios: - @@ -21,7 +22,7 @@ scenarios: attackers: - fault_type: "kill-process" process_name: "nova-api" - host: node1 + host: {{attack_host}} wait_time: 10 monitors: @@ -33,14 +34,14 @@ scenarios: max_outage_time: 5 - monitor_type: "process" process_name: "nova-api" - host: node1 + host: {{attack_host}} monitor_time: 30 monitor_number: 3 sla: max_recover_time: 30 nodes: - node1: node1.LF + {{attack_host}}: {{attack_host}}.LF runner: type: Iteration diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml index b14fc4554..ea4fc3b24 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml @@ -13,16 +13,16 @@ description: > Yardstick TC043 config file; Measure latency between NFVI nodes using ping. -{% set host = host or "node1.LF" %} -{% set target = target or "node2.LF" %} +{% set host = host or "node1" %} +{% set target = target or "node2" %} {% set file = file or '/etc/yardstick/pod.yaml' %} scenarios: - type: Ping options: packetsize: 100 - host: {{host}} - target: {{target}} + host: {{host}}.LF + target: {{target}}.LF runner: type: Duration diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc045.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc045.yaml index dfe44ed12..f9d9dde48 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc045.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc045.yaml @@ -13,6 +13,7 @@ description: > Test case for TC045 :Control node Openstack service down - neutron server. {% set file = file or '/etc/yardstick/pod.yaml' %} +{% set attack_host = attack_host or "node1" %} scenarios: - @@ -21,7 +22,7 @@ scenarios: attackers: - fault_type: "kill-process" process_name: "neutron-server" - host: node1 + host: {{attack_host}} monitors: - monitor_type: "openstack-cmd" @@ -32,14 +33,14 @@ scenarios: max_outage_time: 5 - monitor_type: "process" process_name: "neutron-server" - host: node1 + host: {{attack_host}} monitor_time: 30 monitor_number: 3 sla: max_recover_time: 30 nodes: - node1: node1.LF + {{attack_host}}: {{attack_host}}.LF runner: type: Duration diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc046.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc046.yaml index 1d553268c..129489968 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc046.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc046.yaml @@ -13,6 +13,7 @@ description: > Test case for TC046 :Control node Openstack service down - keystone. {% set file = file or '/etc/yardstick/pod.yaml' %} +{% set attack_host = attack_host or "node1" %} scenarios: - @@ -21,7 +22,7 @@ scenarios: attackers: - fault_type: "kill-process" process_name: "keystone" - host: node1 + host: {{attack_host}} monitors: - monitor_type: "openstack-cmd" @@ -32,14 +33,14 @@ scenarios: max_outage_time: 5 - monitor_type: "process" process_name: "keystone" - host: node1 + host: {{attack_host}} monitor_time: 30 monitor_number: 3 sla: max_recover_time: 30 nodes: - node1: node1.LF + {{attack_host}}: {{attack_host}}.LF runner: type: Duration diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc047.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc047.yaml index 33bc5cd5f..4a0b65b8d 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc047.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc047.yaml @@ -13,6 +13,7 @@ description: > Test case for TC047 :Control node Openstack service down - glance api. {% set file = file or '/etc/yardstick/pod.yaml' %} +{% set attack_host = attack_host or "node1" %} scenarios: - @@ -21,7 +22,7 @@ scenarios: attackers: - fault_type: "kill-process" process_name: "glance-api" - host: node1 + host: {{attack_host}} monitors: - monitor_type: "openstack-cmd" @@ -32,14 +33,14 @@ scenarios: max_outage_time: 5 - monitor_type: "process" process_name: "glance-api" - host: node1 + host: {{attack_host}} monitor_time: 30 monitor_number: 3 sla: max_recover_time: 30 nodes: - node1: node1.LF + {{attack_host}}: {{attack_host}}.LF runner: type: Duration diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc048.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc048.yaml index a13afe3bf..a1629c6d0 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc048.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc048.yaml @@ -13,6 +13,7 @@ description: > Test case for TC048 :Control node Openstack service down - cinder api. {% set file = file or '/etc/yardstick/pod.yaml' %} +{% set attack_host = attack_host or "node1" %} scenarios: - @@ -21,7 +22,7 @@ scenarios: attackers: - fault_type: "kill-process" process_name: "cinder-api" - host: node1 + host: {{attack_host}} monitors: - monitor_type: "openstack-cmd" @@ -32,14 +33,14 @@ scenarios: max_outage_time: 5 - monitor_type: "process" process_name: "cinder-api" - host: node1 + host: {{attack_host}} monitor_time: 30 monitor_number: 3 sla: max_recover_time: 30 nodes: - node1: node1.LF + {{attack_host}}: {{attack_host}}.LF runner: type: Duration diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc049.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc049.yaml index 394b98721..7b8383e4e 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc049.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc049.yaml @@ -13,6 +13,7 @@ description: > Test case for TC049 :Control node Openstack service down - swift proxy. {% set file = file or '/etc/yardstick/pod.yaml' %} +{% set attack_host = attack_host or "node1" %} scenarios: - @@ -21,7 +22,7 @@ scenarios: attackers: - fault_type: "kill-process" process_name: "swift-proxy" - host: node1 + host: {{attack_host}} monitors: - monitor_type: "openstack-cmd" @@ -32,14 +33,14 @@ scenarios: max_outage_time: 5 - monitor_type: "process" process_name: "swift-proxy" - host: node1 + host: {{attack_host}} monitor_time: 30 monitor_number: 3 sla: max_recover_time: 30 nodes: - node1: node1.LF + {{attack_host}}: {{attack_host}}.LF runner: type: Duration diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc050.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc050.yaml index 303dd4216..b765feb68 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc050.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc050.yaml @@ -14,6 +14,7 @@ description: > This test case is written by new scenario-based HA testing framework. {% set file = file or '/etc/yardstick/pod.yaml' %} +{% set attack_host = attack_host or "node1" %} {% set external_net = external_net or 'br-ex' %} {% set management_net = management_net or 'br-mgmt' %} {% set storage_net = storage_net or 'br-storage' %} @@ -26,7 +27,7 @@ scenarios: attackers: - fault_type: "general-attacker" - host: node1 + host: {{attack_host}} key: "close-br-public" attack_key: "close-interface" action_parameter: @@ -36,7 +37,7 @@ scenarios: - fault_type: "general-attacker" - host: node1 + host: {{attack_host}} key: "close-br-mgmt" attack_key: "close-interface" action_parameter: @@ -46,7 +47,7 @@ scenarios: - fault_type: "general-attacker" - host: node1 + host: {{attack_host}} key: "close-br-storage" attack_key: "close-interface" action_parameter: @@ -56,7 +57,7 @@ scenarios: - fault_type: "general-attacker" - host: node1 + host: {{attack_host}} key: "close-br-private" attack_key: "close-interface" action_parameter: @@ -145,7 +146,7 @@ scenarios: nodes: - node1: node1.LF + {{attack_host}}: {{attack_host}}.LF runner: type: Duration duration: 1 diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc051.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc051.yaml index 98a08b7ca..aade1aed2 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc051.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc051.yaml @@ -14,6 +14,7 @@ description: > This test case is written by new scenario-based HA testing framework. {% set file = file or '/etc/yardstick/pod.yaml' %} +{% set attack_host = attack_host or "node1" %} scenarios: - @@ -22,7 +23,7 @@ scenarios: attackers: - fault_type: "general-attacker" - host: node1 + host: {{attack_host}} key: "stress-cpu" attack_key: "stress-cpu" @@ -92,7 +93,7 @@ scenarios: nodes: - node1: node1.LF + {{attack_host}}: {{attack_host}}.LF runner: type: Duration duration: 1 diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc052.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc052.yaml index 75835ebf5..62cabd1a2 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc052.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc052.yaml @@ -14,6 +14,7 @@ description: > This test case is written by new scenario-based HA testing framework. {% set file = file or '/etc/yardstick/pod.yaml' %} +{% set attack_host = attack_host or "node1" %} scenarios: - @@ -22,7 +23,7 @@ scenarios: attackers: - fault_type: "general-attacker" - host: node1 + host: {{attack_host}} key: "block-io" attack_key: "block-io" @@ -76,7 +77,7 @@ scenarios: index: 4 nodes: - node1: node1.LF + {{attack_host}}: {{attack_host}}.LF runner: type: Duration duration: 1 diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc053.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc053.yaml index f987e2b45..64c67c0b3 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc053.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc053.yaml @@ -14,6 +14,7 @@ description: > This test case is written by new scenario-based HA testing framework. {% set file = file or '/etc/yardstick/pod.yaml' %} +{% set attack_host = attack_host or "node1" %} scenarios: - @@ -22,7 +23,7 @@ scenarios: attackers: - fault_type: "kill-process" - host: node1 + host: {{attack_host}} key: "kill-process" process_name: "haproxy" @@ -31,7 +32,7 @@ scenarios: monitor_type: "process" key: "service-status" process_name: "haproxy" - host: node1 + host: {{attack_host}} monitor_time: 30 monitor_number: 3 sla: @@ -61,7 +62,7 @@ scenarios: index: 3 nodes: - node1: node1.LF + {{attack_host}}: {{attack_host}}.LF runner: type: Duration duration: 1 diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc055.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc055.yaml index 10a7a7108..8905b9cdd 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc055.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc055.yaml @@ -19,14 +19,14 @@ description: > cache size per CPU, total cache size; HT (Hyper-Thread) support status, 1 for open, 0 for close. -{% set host = host or "node5.yardstick-TC055" %} {% set file = file or '/etc/yardstick/pod.yaml' %} +{% set host = host or "node5" %} scenarios: - type: ComputeCapacity nodes: - host: {{host}} + host: {{host}}.yardstick-TC055 runner: type: Iteration diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc063.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc063.yaml index 254c214d2..50d0c40e1 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc063.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc063.yaml @@ -14,7 +14,7 @@ description: > Measure disk size, block size and disk utilization using fdisk and iostat. {% set file = file or '/etc/yardstick/pod.yaml' %} -{% set node = node or "node5" %} +{% set host = host or "node5" %} scenarios: - @@ -22,7 +22,7 @@ scenarios: options: test_type: "disk_size" - host: {{node}}.yardstick-TC063 + host: {{host}}.yardstick-TC063 runner: type: Iteration diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc073.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc073.yaml index fb40257f3..54282cbb1 100755 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc073.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc073.yaml @@ -18,8 +18,8 @@ description: > In req/rsp test, TCP_RR TCP_CRR UDP_RR can be used; req_rsp_size is option of req/rsp test; -{% set host = host or "node1.LF" %} -{% set target = target or "node2.LF" %} +{% set host = host or "node1" %} +{% set target = target or "node2" %} {% set file = file or '/etc/yardstick/pod.yaml' %} scenarios: - @@ -29,8 +29,8 @@ scenarios: send_msg_size: 1024 duration: 20 - host: {{host}} - target: {{target}} + host: {{host}}.LF + target: {{target}}.LF runner: type: Iteration diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc075.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc075.yaml index d19b3c4e7..4954249b3 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc075.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc075.yaml @@ -14,13 +14,13 @@ description: > Measure network capacity and scale. Measure number of connections, number of frames received; -{% set host = host or "node1.LF" %} +{% set host = host or "node1" %} {% set file = file or '/etc/yardstick/pod.yaml' %} scenarios: - type: NetworkCapacity - host: {{host}} + host: {{host}}.LF runner: type: Iteration diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc078.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc078.yaml index 94256125f..d20045b25 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc078.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc078.yaml @@ -14,6 +14,7 @@ description: > Measure CPU performance using SPEC CPU2006; {% set file = file or "/etc/yardstick/pod.yaml" %} +{% set host = host or 'node1' %} scenarios: - @@ -26,7 +27,7 @@ scenarios: runspec_size: ref runspec_rate: 1 - host: node1.yardstick-TC078 + host: {{host}}.yardstick-TC078 runner: type: Iteration diff --git a/tests/opnfv/test_suites/opnfv_os-nosdn-openbaton-ha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-nosdn-openbaton-ha_daily.yaml new file mode 100644 index 000000000..d1b4cce1a --- /dev/null +++ b/tests/opnfv/test_suites/opnfv_os-nosdn-openbaton-ha_daily.yaml @@ -0,0 +1,62 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +--- +# os-nosdn-openbaton-ha daily task suite + +schema: "yardstick:suite:0.1" + +name: "os-nosdn-openbaton-ha" +test_cases_dir: "tests/opnfv/test_cases/" +test_cases: +- + file_name: opnfv_yardstick_tc002.yaml +- + file_name: opnfv_yardstick_tc005.yaml +- + file_name: opnfv_yardstick_tc010.yaml +- + file_name: opnfv_yardstick_tc011.yaml +- + file_name: opnfv_yardstick_tc012.yaml +- + file_name: opnfv_yardstick_tc014.yaml +- + file_name: opnfv_yardstick_tc037.yaml +- + file_name: opnfv_yardstick_tc055.yaml + constraint: + installer: compass + pod: huawei-pod1 + task_args: + huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml", + "host": "node5.yardstick-TC055"}' +- + file_name: opnfv_yardstick_tc063.yaml + constraint: + installer: compass + pod: huawei-pod1 + task_args: + huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml", + "host": "node5.yardstick-TC063"}' +- + file_name: opnfv_yardstick_tc069.yaml +- + file_name: opnfv_yardstick_tc070.yaml +- + file_name: opnfv_yardstick_tc071.yaml +- + file_name: opnfv_yardstick_tc072.yaml +- + file_name: opnfv_yardstick_tc075.yaml + constraint: + installer: compass + pod: huawei-pod1 + task_args: + huawei-pod1: '{"file": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml", + "host": "node1.LF"}' diff --git a/tests/unit/network_services/vnf_generic/vnf/test_iniparser.py b/tests/unit/network_services/helpers/test_iniparser.py index 1ad8df9c6..bd27b497e 100644 --- a/tests/unit/network_services/vnf_generic/vnf/test_iniparser.py +++ b/tests/unit/network_services/helpers/test_iniparser.py @@ -27,10 +27,10 @@ stl_patch = mock.patch.dict("sys.modules", STL_MOCKS) stl_patch.start() if stl_patch: - from yardstick.network_services.vnf_generic.vnf.iniparser import ParseError - from yardstick.network_services.vnf_generic.vnf.iniparser import LineParser - from yardstick.network_services.vnf_generic.vnf.iniparser import BaseParser - from yardstick.network_services.vnf_generic.vnf.iniparser import ConfigParser + from yardstick.network_services.helpers.iniparser import ParseError + from yardstick.network_services.helpers.iniparser import LineParser + from yardstick.network_services.helpers.iniparser import BaseParser + from yardstick.network_services.helpers.iniparser import ConfigParser PARSE_TEXT_1 = """\ @@ -141,7 +141,7 @@ class TestConfigParser(unittest.TestCase): return internal_open - @mock.patch('yardstick.network_services.vnf_generic.vnf.iniparser.open') + @mock.patch('yardstick.network_services.helpers.iniparser.open') def test_parse(self, mock_open): mock_open.side_effect = self.make_open(PARSE_TEXT_1) @@ -182,7 +182,7 @@ class TestConfigParser(unittest.TestCase): self.assertEqual(config_parser.find_section_index('section1'), 1) self.assertEqual(config_parser.find_section_index('section3'), -1) - @mock.patch('yardstick.network_services.vnf_generic.vnf.iniparser.open') + @mock.patch('yardstick.network_services.helpers.iniparser.open') def test_parse_2(self, mock_open): mock_open.side_effect = self.make_open(PARSE_TEXT_2) @@ -200,7 +200,7 @@ class TestConfigParser(unittest.TestCase): self.assertEqual(config_parser.sections, expected) - @mock.patch('yardstick.network_services.vnf_generic.vnf.iniparser.open') + @mock.patch('yardstick.network_services.helpers.iniparser.open') def test_parse_negative(self, mock_open): bad_text_dict = { 'no section': PARSE_TEXT_BAD_1, diff --git a/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py b/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py index 09060ff57..a6d40877d 100644 --- a/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py +++ b/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py @@ -376,7 +376,7 @@ class TestProxApproxVnf(unittest.TestCase): return file_path @mock.patch('yardstick.benchmark.scenarios.networking.vnf_generic.open', create=True) - @mock.patch('yardstick.network_services.vnf_generic.vnf.iniparser.open', create=True) + @mock.patch('yardstick.network_services.helpers.iniparser.open', create=True) @mock.patch(SSH_HELPER) def test_run_prox(self, ssh, *_): mock_ssh(ssh) diff --git a/yardstick/benchmark/scenarios/networking/vnf_generic.py b/yardstick/benchmark/scenarios/networking/vnf_generic.py index 0fab45480..b94bfc9ab 100644 --- a/yardstick/benchmark/scenarios/networking/vnf_generic.py +++ b/yardstick/benchmark/scenarios/networking/vnf_generic.py @@ -190,6 +190,12 @@ class NetworkServiceTestCase(base.Scenario): for index, publicip in enumerate(fflow.get("public_ip", [])): flow["public_ip_{}".format(index)] = publicip + for index, src_port in enumerate(fflow.get("src_port", [])): + flow["src_port_{}".format(index)] = src_port + + for index, dst_port in enumerate(fflow.get("dst_port", [])): + flow["dst_port_{}".format(index)] = dst_port + flow["count"] = fflow["count"] except KeyError: flow = {} diff --git a/yardstick/network_services/collector/subscriber.py b/yardstick/network_services/collector/subscriber.py index d560e1d42..4dc5a796e 100644 --- a/yardstick/network_services/collector/subscriber.py +++ b/yardstick/network_services/collector/subscriber.py @@ -23,18 +23,6 @@ LOG = logging.getLogger(__name__) class Collector(object): """Class that handles dictionary of results in yardstick-plot format.""" - @staticmethod - def make_resource_profile(node, timeout): - # node dict works as mgmt dict - # don't need port names, there is no way we can - # tell what port is used on the compute node - collectd_options = node["collectd"] - plugins = collectd_options.get("plugins", {}) - interval = collectd_options.get("interval") - - # use default cores = None to MatchAllCores - return ResourceProfile(node, plugins=plugins, interval=interval, timeout=timeout) - def __init__(self, vnfs, nodes, traffic_profile, timeout=3600): super(Collector, self).__init__() self.traffic_profile = traffic_profile @@ -42,7 +30,7 @@ class Collector(object): self.nodes = nodes self.timeout = timeout self.bin_path = get_nsb_option('bin_path', '') - self.resource_profiles = {node_name: self.make_resource_profile(node, self.timeout) + self.resource_profiles = {node_name: ResourceProfile.make_from_node(node, self.timeout) for node_name, node in self.nodes.items() if node.get("collectd")} diff --git a/yardstick/network_services/vnf_generic/vnf/iniparser.py b/yardstick/network_services/helpers/iniparser.py index 98256e08a..98256e08a 100644 --- a/yardstick/network_services/vnf_generic/vnf/iniparser.py +++ b/yardstick/network_services/helpers/iniparser.py diff --git a/yardstick/network_services/nfvi/resource.py b/yardstick/network_services/nfvi/resource.py index dea754d8b..5b96aaf29 100644 --- a/yardstick/network_services/nfvi/resource.py +++ b/yardstick/network_services/nfvi/resource.py @@ -82,6 +82,18 @@ class ResourceProfile(object): self.mgmt = mgmt self.connection = ssh.AutoConnectSSH.from_node(mgmt) + @classmethod + def make_from_node(cls, node, timeout): + # node dict works as mgmt dict + # don't need port names, there is no way we can + # tell what port is used on the compute node + collectd_options = node["collectd"] + plugins = collectd_options.get("plugins", {}) + interval = collectd_options.get("interval") + + # use default cores = None to MatchAllCores + return cls(node, plugins=plugins, interval=interval, timeout=timeout) + def check_if_sa_running(self, process): """ verify if system agent is running """ try: diff --git a/yardstick/network_services/traffic_profile/traffic_profile.py b/yardstick/network_services/traffic_profile/traffic_profile.py index 3feb92bb6..2f97945c0 100644 --- a/yardstick/network_services/traffic_profile/traffic_profile.py +++ b/yardstick/network_services/traffic_profile/traffic_profile.py @@ -19,6 +19,7 @@ import socket import logging from random import SystemRandom import six +import ipaddress from yardstick.network_services.traffic_profile.base import TrafficProfile from trex_stl_lib.trex_stl_client import STLStream @@ -44,6 +45,8 @@ SRC_PORT = 'sport' DST_PORT = 'dport' TYPE_OF_SERVICE = 'tos' +LOG = logging.getLogger(__name__) + class TrexProfile(TrafficProfile): """ This class handles Trex Traffic profile generation and execution """ @@ -66,7 +69,7 @@ class TrexProfile(TrafficProfile): return f def _ethernet_range_action_partial(self, direction, _): - def partial(min_value, max_value): + def partial(min_value, max_value, count): stl_vm_flow_var = STLVmFlowVar(name="mac_{}".format(direction), min_value=1, max_value=30, @@ -80,7 +83,15 @@ class TrexProfile(TrafficProfile): return partial def _ip_range_action_partial(self, direction, count=1): - def partial(min_value, max_value): + def partial(min_value, max_value, count): + ip1 = int(ipaddress.IPv4Address(min_value)) + ip2 = int(ipaddress.IPv4Address(max_value)) + actual_count = (ip2 - ip1) + if not actual_count: + count = 1 + elif actual_count < int(count): + count = actual_count + stl_vm_flow_var = STLVmFlowVarRepeatableRandom(name="ip4_{}".format(direction), min_value=min_value, max_value=max_value, @@ -96,7 +107,7 @@ class TrexProfile(TrafficProfile): return partial def _ip6_range_action_partial(self, direction, _): - def partial(min_value, max_value): + def partial(min_value, max_value, count): min_value, max_value = self._get_start_end_ipv6(min_value, max_value) stl_vm_flow_var = STLVmFlowVar(name="ip6_{}".format(direction), min_value=min_value, @@ -112,7 +123,7 @@ class TrexProfile(TrafficProfile): return partial def _dscp_range_action_partial(self, *_): - def partial(min_value, max_value): + def partial(min_value, max_value, count): stl_vm_flow_var = STLVmFlowVar(name="dscp", min_value=min_value, max_value=max_value, @@ -125,7 +136,13 @@ class TrexProfile(TrafficProfile): self.vm_flow_vars.append(stl_vm_wr_flow_var) def _udp_range_action_partial(self, field, count=1): - def partial(min_value, max_value): + def partial(min_value, max_value, count): + actual_count = int(max_value) - int(min_value) + if not actual_count: + count = 1 + elif int(count) > actual_count: + count = actual_count + stl_vm_flow_var = STLVmFlowVarRepeatableRandom(name="port_{}".format(field), min_value=min_value, max_value=max_value, @@ -205,13 +222,14 @@ class TrexProfile(TrafficProfile): except StopIteration: single_action(min_value) else: - range_action(min_value=min_value, max_value=max_value) + range_action(min_value=min_value, max_value=max_value, count=count) def _set_proto_addr(self, protocol, field, address, count=1): single_action, range_action, to_int = self._map_proto_actions[protocol] self._call_on_range(address, single_action(field), range_action(field, count), + count=count, to_int=to_int, ) diff --git a/yardstick/network_services/vnf_generic/vnf/prox_helpers.py b/yardstick/network_services/vnf_generic/vnf/prox_helpers.py index 992b6d06e..ac5abfbcb 100644 --- a/yardstick/network_services/vnf_generic/vnf/prox_helpers.py +++ b/yardstick/network_services/vnf_generic/vnf/prox_helpers.py @@ -14,28 +14,27 @@ from __future__ import absolute_import import array -import operator -import logging import io +import logging +import operator import os import re import select import socket - -from collections import OrderedDict, namedtuple import time +from collections import OrderedDict, namedtuple from contextlib import contextmanager from itertools import repeat, chain from multiprocessing import Queue import six -from six.moves import zip, StringIO from six.moves import cStringIO +from six.moves import zip, StringIO from yardstick.benchmark.scenarios.networking.vnf_generic import find_relative_file from yardstick.common import utils from yardstick.common.utils import SocketTopology, join_non_strings, try_int -from yardstick.network_services.vnf_generic.vnf.iniparser import ConfigParser +from yardstick.network_services.helpers.iniparser import ConfigParser from yardstick.network_services.vnf_generic.vnf.sample_vnf import ClientResourceHelper from yardstick.network_services.vnf_generic.vnf.sample_vnf import DpdkVnfSetupEnvHelper |