From 662c9d0c2b4ed043a2d41451c6895a8cc3023f31 Mon Sep 17 00:00:00 2001 From: Oleksandr Naumets Date: Mon, 18 Mar 2019 15:59:36 +0000 Subject: Add TRex Baremetal/SA scale up test cases JIRA: YARDSTICK-1608 Change-Id: I99b1b0fcd578a0e1d3dd6fb67415f959a86c7371 Signed-off-by: Oleksandr Naumets --- .../nsut/cgnapt/cgnapt-tg-topology-scale-up.yaml | 52 ++++++++++ .../vnf_samples/nsut/cgnapt/standalone-args.yaml | 49 +++++++++ ...baremetal_rfc2544_ipv4_1flow_trex_scale_up.yaml | 49 --------- .../tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml | 67 +++++++++++++ .../cgnapt/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml | 109 +++++++++++++++++++++ .../tc_sriov_rfc2544_ipv4_trex_scale_up.yaml | 98 ++++++++++++++++++ samples/vnf_samples/nsut/vfw/standalone-args.yaml | 45 +++++++++ ...tal_rfc2544_ipv4_1rule_1flow_trex_scale_up.yaml | 49 --------- .../tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml | 62 ++++++++++++ .../vfw/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml | 105 ++++++++++++++++++++ .../vfw/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml | 94 ++++++++++++++++++ .../traffic_profiles/ipv4_throughput-scale-up.yaml | 38 +++---- .../ipv4_throughput_cgnapt-scale-up.yaml | 104 ++++++++++++++++++++ 13 files changed, 804 insertions(+), 117 deletions(-) create mode 100644 samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-scale-up.yaml create mode 100644 samples/vnf_samples/nsut/cgnapt/standalone-args.yaml delete mode 100644 samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_trex_scale_up.yaml create mode 100644 samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml create mode 100644 samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml create mode 100644 samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml create mode 100644 samples/vnf_samples/nsut/vfw/standalone-args.yaml delete mode 100644 samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_scale_up.yaml create mode 100644 samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml create mode 100644 samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml create mode 100644 samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml create mode 100644 samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml diff --git a/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-scale-up.yaml b/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-scale-up.yaml new file mode 100644 index 000000000..f68d5d09b --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-scale-up.yaml @@ -0,0 +1,52 @@ +# Copyright (c) 2019 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +{% set vports = get(extra_args, 'vports', 2) %} +nsd:nsd-catalog: + nsd: + - id: 3tg-topology + name: 3tg-topology + short-name: 3tg-topology + description: 3tg-topology + constituent-vnfd: + - member-vnf-index: '1' + vnfd-id-ref: tg__0 + VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #VNF type + - member-vnf-index: '2' + vnfd-id-ref: vnf__0 + VNF model: ../../vnf_descriptors/cgnapt_vnf.yaml #VNF type + + vld: +{% for vport in range(0,vports,2|int) %} + - id: uplink_{{loop.index0}} + name: tg__0 to vnf__0 link {{vport + 1}} + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{vport}} + vnfd-id-ref: tg__0 + - member-vnf-index-ref: '2' + vnfd-connection-point-ref: xe{{vport}} + vnfd-id-ref: vnf__0 + - id: downlink_{{loop.index0}} + name: vnf__0 to tg__0 link {{vport + 2}} + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '2' + vnfd-connection-point-ref: xe{{vport+1}} + vnfd-id-ref: vnf__0 + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe{{vport+1}} + vnfd-id-ref: tg__0 +{% endfor %} diff --git a/samples/vnf_samples/nsut/cgnapt/standalone-args.yaml b/samples/vnf_samples/nsut/cgnapt/standalone-args.yaml new file mode 100644 index 000000000..ee47ab4d1 --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/standalone-args.yaml @@ -0,0 +1,49 @@ +# Copyright (c) 2019 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. + +--- +public_ip: + - "152.16.40.10" + - "152.16.30.10" + +networks: + uplink: + - + port_num: 0 + phy_port: "0000:05:00.0" + vpci: "0000:00:0a.0" + cidr: '152.16.100.10/24' + gateway_ip: '152.16.100.20' + - + port_num: 2 + phy_port: "0000:05:00.2" + vpci: "0000:00:0c.0" + cidr: '152.16.50.10/24' + gateway_ip: '152.16.100.20' + + downlink: + - + port_num: 1 + phy_port: "0000:05:00.1" + vpci: "0000:00:0b.0" + cidr: '152.16.40.10/24' + gateway_ip: '152.16.100.20' + + - + port_num: 3 + phy_port: "0000:05:00.3" + vpci: "0000:00:0d.0" + cidr: '152.16.30.10/24' + gateway_ip: '152.16.100.20' + diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_trex_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_trex_scale_up.yaml deleted file mode 100644 index 13eac2892..000000000 --- a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_trex_scale_up.yaml +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright (c) 2016-2019 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 framesize = framesize or "{64B: 100}" %} ---- -schema: yardstick:task:0.1 -scenarios: -{% for worker_thread in [1, 2 ,3 , 4, 5, 6] %} -- type: NSPerf - traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt.yaml - topology: cgnapt-vnf-topology.yaml - nodes: - tg__0: trafficgen_0.yardstick - vnf__0: vnf_0.yardstick - options: - framesize: - uplink: {{ framesize }} - downlink: {{ framesize }} - flow: - src_ip: [{'tg__0': 'xe0'}] - dst_ip: [{'tg__0': 'xe1'}] - public_ip: ["152.16.40.10"] - count: 1 - traffic_type: 4 - rfc2544: - allowed_drop_rate: 0.0001 - 0.0001 - vnf__0: - vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: {{worker_thread}}} - nfvi_enable: True - runner: - type: Iteration - iterations: 10 - interval: 35 -{% endfor %} -context: - type: Node - name: yardstick - nfvi_type: baremetal - file: /etc/yardstick/nodes/pod.yaml diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml new file mode 100644 index 000000000..e661ef319 --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml @@ -0,0 +1,67 @@ +# Copyright (c) 2016-2019 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 framesize = framesize or "{64B: 100}" %} +{% set worker_threads = worker_threads or [1] %} +{% set duration = duration or 30 %} +{% set tolerance_low = tolerance_low or 0.0001 %} +{% set tolerance_high = tolerance_high or 0.0001 %} +{% set public_ip = public_ip or ["152.16.40.10"] %} +{% set vports = vports or 2 %} +--- +schema: yardstick:task:0.1 +scenarios: +{% for worker_thread in worker_threads %} +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml + extra_args: + vports: {{ vports }} + topology: cgnapt-tg-topology-scale-up.yaml + nodes: + tg__0: trafficgen_0.yardstick + vnf__0: vnf_0.yardstick + options: + duration: {{ duration }} + framesize: + uplink: {{ framesize }} + downlink: {{ framesize }} + flow: + src_ip: +{% for vport in range(0, vports|int, 2) %} + - {'tg__0': 'xe{{ vport }}'} +{% endfor %} + dst_ip: +{% for vport in range(1, vports|int, 2) %} + - {'tg__0': 'xe{{ vport }}'} +{% endfor %} + public_ip: +{% for port_num in range((vports/2)|int) %} + - {{ public_ip[port_num] }} +{% endfor %} + count: 1 + traffic_type: 4 + rfc2544: + allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}" + vnf__0: + vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: {{worker_thread}}} + nfvi_enable: True + runner: + type: Iteration + iterations: 1 + interval: 5 +{% endfor %} +context: + type: Node + name: yardstick + nfvi_type: baremetal + file: /etc/yardstick/nodes/pod.yaml diff --git a/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml new file mode 100644 index 000000000..13496c12e --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml @@ -0,0 +1,109 @@ +# Copyright (c) 2019 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +{% set vports = vports or 2 %} +{% set tolerance_low = tolerance_low or 0.0001 %} +{% set tolerance_high = tolerance_high or 0.0001 %} +{% set framesize = framesize or "{64B: 100}" %} +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml + extra_args: + vports: {{ vports }} + topology: cgnapt-tg-topology-scale-up.yaml + nodes: + tg__0: trafficgen_0.yardstick + vnf__0: vnf_0.yardstick + options: + framesize: + uplink: {{ framesize }} + downlink: {{ framesize }} + flow: + src_ip: +{% for vport in range(0, vports|int, 2) %} + - {'tg__0': 'xe{{ vport }}'} +{% endfor %} + dst_ip: +{% for vport in range(1, vports|int, 2) %} + - {'tg__0': 'xe{{ vport }}'} +{% endfor %} + public_ip: +{% for port_num in range((vports/2)|int) %} + - {{ public_ip[port_num] }} +{% endfor %} + count: 1 + traffic_type: 4 + rfc2544: + allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}" + vnf__0: + vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1} + runner: + type: Iteration + iterations: 1 + interval: 5 +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/standalone/trex_bm.yaml + - type: StandaloneOvsDpdk + name: yardstick + file: /etc/yardstick/nodes/standalone/pod_ovs.yaml + vm_deploy: True + ovs_properties: + version: + ovs: 2.8.1 + dpdk: 17.05.2 + pmd_threads: 2 + ram: + socket_0: 2048 + socket_1: 2048 + queues: 4 + vpath: "/usr/local" + + flavor: + images: "/var/lib/libvirt/images/yardstick-nsb-image.img" + ram: 16384 + extra_specs: + hw:cpu_sockets: 1 + hw:cpu_cores: 6 + hw:cpu_threads: 2 + user: "" + password: "" + servers: + vnf_0: + network_ports: + mgmt: + cidr: '1.1.1.7/24' +{% for port_num in range((vports/2)|int) %} + xe{{ port_num * 2 }}: + - uplink_{{ port_num }} + xe{{ (port_num * 2) + 1 }}: + - downlink_{{ port_num }} +{% endfor %} + networks: +{% for port_num in range((vports/2)|int) %} + uplink_{{ port_num }}: + port_num: {{ networks.uplink[port_num].port_num }} + phy_port: "{{ networks.uplink[port_num].phy_port }}" + vpci: "{{ networks.uplink[port_num].vpci }}" + cidr: "{{ networks.uplink[port_num].cidr }}" + gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}" + downlink_{{ port_num }}: + port_num: {{ networks.downlink[port_num].port_num }} + phy_port: "{{ networks.downlink[port_num].phy_port }}" + vpci: "{{ networks.downlink[port_num].vpci }}" + cidr: "{{ networks.downlink[port_num].cidr }}" + gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}" +{% endfor %} diff --git a/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml new file mode 100644 index 000000000..34f42c971 --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml @@ -0,0 +1,98 @@ +# Copyright (c) 2019 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +{% set vports = vports or 2 %} +{% set tolerance_low = tolerance_low or 0.0001 %} +{% set tolerance_high = tolerance_high or 0.0001 %} +{% set framesize = framesize or "{64B: 100}" %} +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml + extra_args: + vports: {{ vports }} + topology: cgnapt-tg-topology-scale-up.yaml + nodes: + tg__0: trafficgen_0.yardstick + vnf__0: vnf_0.yardstick + options: + framesize: + uplink: {{ framesize }} + downlink: {{ framesize }} + flow: + src_ip: +{% for vport in range(0, vports|int, 2) %} + - {'tg__0': 'xe{{ vport }}'} +{% endfor %} + dst_ip: +{% for vport in range(1, vports|int, 2) %} + - {'tg__0': 'xe{{ vport }}'} +{% endfor %} + public_ip: +{% for port_num in range((vports/2)|int) %} + - {{ public_ip[port_num] }} +{% endfor %} + count: 1 + traffic_type: 4 + rfc2544: + allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}" + vnf__0: + vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1} + runner: + type: Iteration + iterations: 1 + interval: 5 +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/standalone/trex_bm.yaml + - type: StandaloneSriov + file: /etc/yardstick/nodes/standalone/host_sriov.yaml + name: yardstick + vm_deploy: True + flavor: + images: "/var/lib/libvirt/images/yardstick-nsb-image.img" + ram: 16384 + extra_specs: + hw:cpu_sockets: 1 + hw:cpu_cores: 7 + hw:cpu_threads: 2 + user: "" + password: "" + servers: + vnf_0: + network_ports: + mgmt: + cidr: '1.1.1.7/24' +{% for port_num in range((vports/2)|int) %} + xe{{ port_num * 2 }}: + - uplink_{{ port_num }} + xe{{ (port_num * 2) + 1 }}: + - downlink_{{ port_num }} +{% endfor %} + networks: +{% for port_num in range((vports/2)|int) %} + uplink_{{ port_num }}: + port_num: {{ networks.uplink[port_num].port_num }} + phy_port: "{{ networks.uplink[port_num].phy_port }}" + vpci: "{{ networks.uplink[port_num].vpci }}" + cidr: "{{ networks.uplink[port_num].cidr }}" + gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}" + downlink_{{ port_num }}: + port_num: {{ networks.downlink[port_num].port_num }} + phy_port: "{{ networks.downlink[port_num].phy_port }}" + vpci: "{{ networks.downlink[port_num].vpci }}" + cidr: "{{ networks.downlink[port_num].cidr }}" + gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}" +{% endfor %} diff --git a/samples/vnf_samples/nsut/vfw/standalone-args.yaml b/samples/vnf_samples/nsut/vfw/standalone-args.yaml new file mode 100644 index 000000000..6f9cde7d9 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/standalone-args.yaml @@ -0,0 +1,45 @@ +# Copyright (c) 2019 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. + +--- +networks: + uplink: + - + port_num: 0 + phy_port: "0000:05:00.0" + vpci: "0000:00:0a.0" + cidr: '152.16.100.10/24' + gateway_ip: '152.16.100.20' + - + port_num: 2 + phy_port: "0000:05:00.2" + vpci: "0000:00:0c.0" + cidr: '152.16.50.10/24' + gateway_ip: '152.16.100.20' + + downlink: + - + port_num: 1 + phy_port: "0000:05:00.1" + vpci: "0000:00:0b.0" + cidr: '152.16.40.10/24' + gateway_ip: '152.16.100.20' + + - + port_num: 3 + phy_port: "0000:05:00.3" + vpci: "0000:00:0d.0" + cidr: '152.16.30.10/24' + gateway_ip: '152.16.100.20' + diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_scale_up.yaml deleted file mode 100644 index bea34955f..000000000 --- a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_scale_up.yaml +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright (c) 2016-2019 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 framesize = framesize or "{64B: 100}" %} ---- -schema: yardstick:task:0.1 -scenarios: -{% for worker_thread in [1, 2 ,3 , 4, 5, 6] %} -- type: NSPerf - traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml - topology: vfw-tg-topology.yaml - nodes: - tg__0: trafficgen_0.yardstick - vnf__0: vnf_0.yardstick - options: - framesize: - uplink: {{ framesize }} - downlink: {{ framesize }} - flow: - src_ip: [{'tg__0': 'xe0'}] - dst_ip: [{'tg__0': 'xe1'}] - count: 1 - traffic_type: 4 - rfc2544: - allowed_drop_rate: 0.0001 - 0.0001 - vnf__0: - rules: acl_1rule.yaml - vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: {{worker_thread}}} - nfvi_enable: True - runner: - type: Iteration - iterations: 10 - interval: 35 -{% endfor %} -context: - type: Node - name: yardstick - nfvi_type: baremetal - file: /etc/yardstick/nodes/pod.yaml diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml new file mode 100644 index 000000000..95ad7700b --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml @@ -0,0 +1,62 @@ +# Copyright (c) 2016-2019 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 framesize = framesize or "{64B: 100}" %} +{% set worker_threads = worker_threads or [1] %} +{% set duration = duration or 30 %} +{% set tolerance_low = tolerance_low or 0.0001 %} +{% set tolerance_high = tolerance_high or 0.0001 %} +{% set vports = vports or 2 %} +--- +schema: yardstick:task:0.1 +scenarios: +{% for worker_thread in worker_threads %} +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ipv4_throughput-scale-up.yaml + extra_args: + vports: {{ vports }} + topology: vfw-tg-topology-scale-up.yaml + nodes: + tg__0: trafficgen_0.yardstick + vnf__0: vnf_0.yardstick + options: + duration: {{ duration }} + framesize: + uplink: {{ framesize }} + downlink: {{ framesize }} + flow: + src_ip: +{% for vport in range(0, vports|int, 2) %} + - {'tg__0': 'xe{{ vport }}'} +{% endfor %} + dst_ip: +{% for vport in range(1, vports|int, 2) %} + - {'tg__0': 'xe{{ vport }}'} +{% endfor %} + count: 1 + traffic_type: 4 + rfc2544: + allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}" + vnf__0: + vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: {{worker_thread}}} + nfvi_enable: True + runner: + type: Iteration + iterations: 1 + interval: 5 +{% endfor %} +context: + type: Node + name: yardstick + nfvi_type: baremetal + file: /etc/yardstick/nodes/pod.yaml diff --git a/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml new file mode 100644 index 000000000..b42770491 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_trex_scale_up.yaml @@ -0,0 +1,105 @@ +# Copyright (c) 2019 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +{% set vports = vports or 2 %} +{% set tolerance_low = tolerance_low or 0.0001 %} +{% set tolerance_high = tolerance_high or 0.0001 %} +{% set framesize = framesize or "{64B: 100}" %} +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ipv4_throughput-scale-up.yaml + extra_args: + vports: {{ vports }} + topology: vfw-tg-topology-scale-up.yaml + nodes: + tg__0: trafficgen_0.yardstick + vnf__0: vnf_0.yardstick + options: + framesize: + uplink: {{ framesize }} + downlink: {{ framesize }} + flow: + src_ip: +{% for vport in range(0, vports|int, 2) %} + - {'tg__0': 'xe{{ vport }}'} +{% endfor %} + dst_ip: +{% for vport in range(1, vports|int, 2) %} + - {'tg__0': 'xe{{ vport }}'} +{% endfor %} + count: 1 + traffic_type: 4 + rfc2544: + allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}" + vnf__0: + vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1} + runner: + type: Iteration + iterations: 1 + interval: 5 +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/standalone/trex_bm.yaml + - type: StandaloneOvsDpdk + name: yardstick + file: /etc/yardstick/nodes/standalone/pod_ovs.yaml + vm_deploy: True + ovs_properties: + version: + ovs: 2.8.1 + dpdk: 17.05.2 + pmd_threads: 2 + ram: + socket_0: 2048 + socket_1: 2048 + queues: 4 + vpath: "/usr/local" + + flavor: + images: "/var/lib/libvirt/images/yardstick-nsb-image.img" + ram: 16384 + extra_specs: + hw:cpu_sockets: 1 + hw:cpu_cores: 6 + hw:cpu_threads: 2 + user: "" + password: "" + servers: + vnf_0: + network_ports: + mgmt: + cidr: '1.1.1.7/24' +{% for port_num in range((vports/2)|int) %} + xe{{ port_num * 2 }}: + - uplink_{{ port_num }} + xe{{ (port_num * 2) + 1 }}: + - downlink_{{ port_num }} +{% endfor %} + networks: +{% for port_num in range((vports/2)|int) %} + uplink_{{ port_num }}: + port_num: {{ networks.uplink[port_num].port_num }} + phy_port: "{{ networks.uplink[port_num].phy_port }}" + vpci: "{{ networks.uplink[port_num].vpci }}" + cidr: "{{ networks.uplink[port_num].cidr }}" + gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}" + downlink_{{ port_num }}: + port_num: {{ networks.downlink[port_num].port_num }} + phy_port: "{{ networks.downlink[port_num].phy_port }}" + vpci: "{{ networks.downlink[port_num].vpci }}" + cidr: "{{ networks.downlink[port_num].cidr }}" + gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}" +{% endfor %} diff --git a/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml new file mode 100644 index 000000000..67c76bff4 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_trex_scale_up.yaml @@ -0,0 +1,94 @@ +# Copyright (c) 2019 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +{% set vports = vports or 2 %} +{% set tolerance_low = tolerance_low or 0.0001 %} +{% set tolerance_high = tolerance_high or 0.0001 %} +{% set framesize = framesize or "{64B: 100}" %} +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ipv4_throughput-scale-up.yaml + extra_args: + vports: {{ vports }} + topology: vfw-tg-topology-scale-up.yaml + nodes: + tg__0: trafficgen_0.yardstick + vnf__0: vnf_0.yardstick + options: + framesize: + uplink: {{ framesize }} + downlink: {{ framesize }} + flow: + src_ip: +{% for vport in range(0, vports|int, 2) %} + - {'tg__0': 'xe{{ vport }}'} +{% endfor %} + dst_ip: +{% for vport in range(1, vports|int, 2) %} + - {'tg__0': 'xe{{ vport }}'} +{% endfor %} + count: 1 + traffic_type: 4 + rfc2544: + allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}" + vnf__0: + vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1} + runner: + type: Iteration + iterations: 1 + interval: 5 +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/standalone/trex_bm.yaml + - type: StandaloneSriov + file: /etc/yardstick/nodes/standalone/host_sriov.yaml + name: yardstick + vm_deploy: True + flavor: + images: "/var/lib/libvirt/images/yardstick-nsb-image.img" + ram: 16384 + extra_specs: + hw:cpu_sockets: 1 + hw:cpu_cores: 7 + hw:cpu_threads: 2 + user: "" + password: "" + servers: + vnf_0: + network_ports: + mgmt: + cidr: '1.1.1.7/24' +{% for port_num in range((vports/2)|int) %} + xe{{ port_num * 2 }}: + - uplink_{{ port_num }} + xe{{ (port_num * 2) + 1 }}: + - downlink_{{ port_num }} +{% endfor %} + networks: +{% for port_num in range((vports/2)|int) %} + uplink_{{ port_num }}: + port_num: {{ networks.uplink[port_num].port_num }} + phy_port: "{{ networks.uplink[port_num].phy_port }}" + vpci: "{{ networks.uplink[port_num].vpci }}" + cidr: "{{ networks.uplink[port_num].cidr }}" + gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}" + downlink_{{ port_num }}: + port_num: {{ networks.downlink[port_num].port_num }} + phy_port: "{{ networks.downlink[port_num].phy_port }}" + vpci: "{{ networks.downlink[port_num].vpci }}" + cidr: "{{ networks.downlink[port_num].cidr }}" + gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}" +{% endfor %} diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml index b9e0c8cd1..fbfbbeb26 100644 --- a/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml +++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml @@ -1,4 +1,4 @@ -# Copyright (c) 2016-2018 Intel Corporation +# Copyright (c) 2016-2019 Intel Corporation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -33,7 +33,7 @@ # 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. # -{% set vports = get(extra_args, 'vports', '2') %} +{% set vports = get(extra_args, 'vports', 2)|int / 2 %} --- schema: "nsb:traffic_profile:0.1" @@ -46,11 +46,10 @@ traffic_profile: frame_rate: 100 # pc of linerate duration: {{ duration }} -{% set count = 0 %} {% for vport in range(vports|int) %} uplink_{{vport}}: ipv4: - id: {{count + 1 }} + id: {{ (vport * 2) + 1 }} outer_l2: framesize: 64B: "{{ get(imix, 'imix.uplink.64B', '0') }}" @@ -59,23 +58,24 @@ uplink_{{vport}}: 373b: "{{ get(imix, 'imix.uplink.373B', '0') }}" 512B: "{{ get(imix, 'imix.uplink.512B', '0') }}" 570B: "{{ get(imix, 'imix.uplink.570B', '0') }}" + 1024B: "{{get(imix, 'imix.uplink.1024B', '0') }}" 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_{{vport}}', '1.1.1.1-1.1.255.255') }}" - dstip4: "{{ get(flow, 'flow.dst_ip_{{vport}}', '90.90.1.1-90.90.255.255') }}" - count: "{{ get(flow, 'flow.count', '1') }}" + srcip4: {{ get(flow, 'flow.src_ip_%s'| format(vport), '1.%s.1.1-1.%s.255.255'| format(vport, vport)) }} + dstip4: {{ get(flow, 'flow.dst_ip_%s'| format(vport), '90.%s.1.1-90.%s.255.255'| format(vport, vport)) }} + count: {{ get(flow, 'flow.count', '1') }} ttl: 32 dscp: 0 outer_l4: - srcport: "{{ get(flow, 'flow.src_port_{{vport}}', '1234-4321') }}" - dstport: "{{ get(flow, 'flow.dst_port_{{vport}}', '2001-4001') }}" - count: "{{ get(flow, 'flow.count', '1') }}" + srcport: {{ get(flow, 'flow.src_port_%s'| format(vport), '1234-4321') }} + dstport: {{ get(flow, 'flow.dst_port_%s'| format(vport), '2001-4001') }} + count: {{ get(flow, 'flow.count', '1') }} downlink_{{vport}}: ipv4: - id: {{count + 2}} + id: {{ (vport * 2) + 2}} outer_l2: framesize: 64B: "{{ get(imix, 'imix.downlink.64B', '0') }}" @@ -84,20 +84,20 @@ downlink_{{vport}}: 373b: "{{ get(imix, 'imix.downlink.373B', '0') }}" 512B: "{{ get(imix, 'imix.downlink.512B', '0') }}" 570B: "{{ get(imix, 'imix.downlink.570B', '0') }}" + 1024B: "{{get(imix, 'imix.downlink.1024B', '0') }}" 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_{{vport}}', '90.90.1.1-90.90.255.255') }}" - dstip4: "{{ get(flow, 'flow.src_ip_{{vport}}', '1.1.1.1-1.1.255.255') }}" - count: "{{ get(flow, 'flow.count', '1') }}" + srcip4: {{ get(flow, 'flow.dst_ip_%s'| format(vport), '90.%s.1.1-90.%s.255.255'| format(vport, vport)) }} + dstip4: {{ get(flow, 'flow.src_ip_%s'| format(vport), '1.%s.1.1-1.%s.255.255'| format(vport, vport)) }} + count: {{ get(flow, 'flow.count', '1') }} ttl: 32 dscp: 0 outer_l4: - srcport: "{{ get(flow, 'flow.dst_port_{{vport}}', '1234-4321') }}" - dstport: "{{ get(flow, 'flow.src_port_{{vport}}', '2001-4001') }}" - count: "{{ get(flow, 'flow.count', '1') }}" -{% set count = count + 2 %} -{% endfor %} \ No newline at end of file + srcport: {{ get(flow, 'flow.dst_port_%s'| format(vport), '1234-4321') }} + dstport: {{ get(flow, 'flow.src_port_%s'| format(vport), '2001-4001') }} + count: {{ get(flow, 'flow.count', '1') }} +{% endfor %} diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml new file mode 100644 index 000000000..c8b40c969 --- /dev/null +++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml @@ -0,0 +1,104 @@ +# Copyright (c) 2019 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. +# +{% set vports = get(extra_args, 'vports', 2)|int / 2 %} +--- +schema: "nsb:traffic_profile:0.1" + +# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator + +name: rfc2544 +description: Traffic profile to run RFC2544 latency +traffic_profile: + traffic_type : RFC2544Profile # defines traffic behavior - constant or look for highest possible throughput + frame_rate : 100 # pc of linerate + duration: {{ duration }} + +{% for vport in range(vports|int) %} +uplink_{{vport}}: + ipv4: + id: {{ (vport * 2) + 1 }} + outer_l2: + framesize: + 64B: "{{get(imix, 'imix.uplink.64B', '0') }}" + 128B: "{{get(imix, 'imix.uplink.128B', '0') }}" + 256B: "{{get(imix, 'imix.uplink.256B', '0') }}" + 373B: "{{get(imix, 'imix.uplink.373B', '0') }}" + 512B: "{{get(imix, 'imix.uplink.512B', '0') }}" + 570B: "{{get(imix, 'imix.uplink.570B', '0') }}" + 1024B: "{{get(imix, 'imix.uplink.1024B', '0') }}" + 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_%s'| format(vport), '10.%s.2.1-10.%s.2.255'| format(vport, vport)) }} + dstip4: {{ get(flow, 'flow.dst_ip_%s'| format(vport), '10.%s.3.1-10.%s.3.255'| format(vport, vport)) }} + count: {{ get(flow, 'flow.count', '1') }} + ttl: 32 + dscp: 0 + outer_l4: + srcport: {{ get(flow, 'flow.src_port_%s'| format(vport), '1234-4321') }} + dstport: {{ get(flow, 'flow.dst_port_%s'| format(vport), '2001-4001') }} + count: {{ get(flow, 'flow.count', '1') }} +downlink_{{vport}}: + ipv4: + id: {{ (vport * 2) + 2}} + outer_l2: + framesize: + 64B: "{{ get(imix, 'imix.downlink.64B', '0') }}" + 128B: "{{ get(imix, 'imix.downlink.128B', '0') }}" + 256B: "{{ get(imix, 'imix.downlink.256B', '0') }}" + 373b: "{{ get(imix, 'imix.downlink.373B', '0') }}" + 512B: "{{ get(imix, 'imix.downlink.512B', '0') }}" + 570B: "{{get(imix, 'imix.downlink.570B', '0') }}" + 1024B: "{{get(imix, 'imix.downlink.1024B', '0') }}" + 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_%s'| format(vport), '10.%s.3.1-10.%s.3.255'| format(vport, vport)) }} + dstip4: {{ get(flow, 'flow.public_ip_%s'| format(vport), '10.%s.2.1-10.%s.2.255'| format(vport, vport)) }} + count: {{ get(flow, 'flow.count', '1') }} + ttl: 32 + dscp: 0 + outer_l4: + srcport: {{ get(flow, 'flow.dst_port_%s'| format(vport), '1-65535') }} + dstport: {{ get(flow, 'flow.src_port_%s'| format(vport), '1-65535') }} + count: {{ get(flow, 'flow.count', '1') }} +{% endfor %} -- cgit 1.2.3-korg