diff options
Diffstat (limited to 'samples/vnf_samples/nsut')
35 files changed, 2360 insertions, 72 deletions
diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_concurrent_connections_ixload.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_concurrent_connections_ixload.yaml index 78fcd98ce..785cbaeea 100644 --- a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_concurrent_connections_ixload.yaml +++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_concurrent_connections_ixload.yaml @@ -11,7 +11,7 @@ # 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 file = file or "/etc/yardstick/nodes/pod_ixia.yaml" %} --- schema: yardstick:task:0.1 {% set page = page or "/1b.html" %} @@ -34,4 +34,4 @@ context: type: Node name: yardstick nfvi_type: baremetal - file: /etc/yardstick/nodes/pod_ixia.yaml + file: {{ file }} diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_connections_ixload.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_connections_ixload.yaml index a20032c06..96ccd3a67 100644 --- a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_connections_ixload.yaml +++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_connections_ixload.yaml @@ -11,7 +11,7 @@ # 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 file = file or "/etc/yardstick/nodes/pod_ixia.yaml" %} --- schema: yardstick:task:0.1 {% set page = page or "/1b.html" %} @@ -34,4 +34,4 @@ context: type: Node name: yardstick nfvi_type: baremetal - file: /etc/yardstick/nodes/pod_ixia.yaml + file: {{ file }} diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_ixload__Requests_Concurrency_template.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_ixload__Requests_Concurrency_template.yaml index 250fd2fee..08f897009 100755 --- a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_ixload__Requests_Concurrency_template.yaml +++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_ixload__Requests_Concurrency_template.yaml @@ -11,7 +11,7 @@ # 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 file = file or "/etc/yardstick/nodes/pod_ixia.yaml" %} --- schema: yardstick:task:0.1 {% set users = users or "10000" %} @@ -37,4 +37,4 @@ context: type: Node name: yardstick nfvi_type: baremetal - file: /etc/yardstick/nodes/pod_ixia.yaml + file: {{ file }} diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_simulated_users_ixload.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_simulated_users_ixload.yaml index 6eb617b09..33c8b9e7a 100644 --- a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_simulated_users_ixload.yaml +++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_simulated_users_ixload.yaml @@ -11,7 +11,7 @@ # 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 file = file or "/etc/yardstick/nodes/pod_ixia.yaml" %} --- schema: yardstick:task:0.1 {% set users = users or "10000" %} @@ -37,4 +37,4 @@ context: type: Node name: yardstick nfvi_type: baremetal - file: /etc/yardstick/nodes/pod_ixia.yaml + file: {{ file }} diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_throughput_ixload.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_throughput_ixload.yaml index ba7fe4170..c8358d6c6 100644 --- a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_throughput_ixload.yaml +++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_throughput_ixload.yaml @@ -11,7 +11,7 @@ # 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 file = file or "/etc/yardstick/nodes/pod_ixia.yaml" %} --- schema: yardstick:task:0.1 {% set page = page or "/1b.html" %} @@ -34,4 +34,4 @@ context: type: Node name: yardstick nfvi_type: baremetal - file: /etc/yardstick/nodes/pod_ixia.yaml + file: {{ file }} diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_transactions_ixload.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_transactions_ixload.yaml index 80de61e08..91f35b1da 100644 --- a/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_transactions_ixload.yaml +++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_http_transactions_ixload.yaml @@ -11,7 +11,7 @@ # 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 file = file or "/etc/yardstick/nodes/pod_ixia.yaml" %} --- schema: yardstick:task:0.1 {% set page = page or "/1b.html" %} @@ -34,4 +34,4 @@ context: type: Node name: yardstick nfvi_type: baremetal - file: /etc/yardstick/nodes/pod_ixia.yaml + file: {{ file }} diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex.yaml index 158de8115..611109349 100644 --- a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex.yaml +++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex.yaml @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Intel Corporation +# Copyright (c) 2018-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. @@ -11,16 +11,22 @@ # 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 file = file or "/etc/yardstick/nodes/pod.yaml" %} +{% set frame_rate = frame_rate or 100 %} {% set framesize = framesize or "{64B: 100}" %} +{% set allowed_drop_rate = allowed_drop_rate or "0.0001 - 0.001" %} +{% set iterations = iterations or 1 %} +{% set interval = interval or 5 %} --- schema: yardstick:task:0.1 scenarios: - type: NSPerf-RFC2544 traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml topology: agnostic_vnf_topology_trex_tmpl.yaml + extra_args: + frame_rate: {{ frame_rate }} nodes: - tg__0: trafficgen_0.yardstick + tg__0: tg_0.yardstick vnf__0: vnf_0.yardstick options: framesize: @@ -32,15 +38,15 @@ scenarios: count: 1 traffic_type: 4 rfc2544: - allowed_drop_rate: 0.0001 - 0.0001 + allowed_drop_rate: {{ allowed_drop_rate }} vnf__0: [] runner: type: Iteration - iterations: 1 - interval: 5 + iterations: {{ iterations }} + interval: {{ interval }} context: type: Node name: yardstick nfvi_type: baremetal - file: /etc/yardstick/nodes/pod_trex.yaml + file: {{ file }} diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex_tmpl.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex_tmpl.yaml index 79c3b906a..71d9074e1 100644 --- a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex_tmpl.yaml +++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_trex_tmpl.yaml @@ -23,7 +23,7 @@ schema: yardstick:task:0.1 scenarios: - type: NSPerf-RFC2544 - traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml + traffic_profile: ../../traffic_profiles/ipv4_throughput-tmpl.yaml topology: agnostic_vnf_topology_trex_tmpl.yaml extra_args: vports: {{vports}} @@ -48,6 +48,7 @@ scenarios: traffic_type: 4 rfc2544: allowed_drop_rate: {{drop_rate}} + tg__0: queues_per_port: {{queues_per_port}} vnf__0: [] diff --git a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_64B_ixia.yaml b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_ixia.yaml index f20d32d5a..036eb2b46 100644 --- a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_64B_ixia.yaml +++ b/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_ixia.yaml @@ -11,35 +11,42 @@ # 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 file = file or "/etc/yardstick/nodes/pod_ixia.yaml" %} +{% set frame_rate = frame_rate or "100%" %} +{% set framesize = framesize or "{64B: 100}" %} +{% set allowed_drop_rate = allowed_drop_rate or "0.0001 - 0.001" %} +{% set iterations = iterations or 1 %} +{% set interval = interval or 5 %} --- schema: yardstick:task:0.1 scenarios: -- type: NSPerf +- type: NSPerf-RFC2544 traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml + extra_args: + frame_rate: {{ frame_rate }} topology: agnostic_vnf_topology_ixia_2ports.yaml nodes: tg__0: trafficgen_0.yardstick vnf__0: vnf_0.yardstick options: framesize: - uplink: {64B: 100} - downlink: {64B: 100} + 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 + allowed_drop_rate: {{ allowed_drop_rate }} vnf__0: [] runner: type: Iteration - iterations: 10 - interval: 35 + iterations: {{ iterations }} + interval: {{ interval }} context: type: Node name: yardstick nfvi_type: baremetal - file: /etc/yardstick/nodes/pod_ixia.yaml + file: {{ file }} diff --git a/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-scale-up.yaml b/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-scale-up.yaml new file mode 100644 index 000000000..1805f6aa0 --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/cgnapt-tg-topology-ixia-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: vFW + name: vFW + short-name: vFW + description: scenario with vFW VNF + constituent-vnfd: + - member-vnf-index: '1' + vnfd-id-ref: tg__0 + VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml #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/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_ixia_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_ixia_scale_up.yaml new file mode 100644 index 000000000..64f93a2d4 --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_ixia_scale_up.yaml @@ -0,0 +1,64 @@ +# 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.005 %} +{% set tolerance_high = tolerance_high or 0.01 %} +{% set public_ip = public_ip or ["152.16.40.10"] %} +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml + topology: cgnapt-tg-topology-ixia-scale-up.yaml + extra_args: + vports: {{ vports }} + nodes: + tg__0: trafficgen_0.yardstick + vnf__0: vnf_0.yardstick + options: + framesize: + flow: + src_ip: [ +{% for vport in range(0,vports,2|int) %} + {'tg__0': 'xe{{vport}}'}, +{% endfor %} ] + dst_ip: [ +{% for vport in range(1,vports,2|int) %} + {'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: + resolution: 0.01 + allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}" + vnf__0: + vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1} + runner: + type: Sequence + scenario_option_name: framesize + sequence: + - uplink: {64B: 100} + downlink: {64B: 100} + - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} + downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} +context: + type: Node + name: yardstick + nfvi_type: baremetal + file: /etc/yardstick/nodes/pod_ixia.yaml diff --git a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml index bea34955f..e661ef319 100644 --- a/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_trex_scale_up.yaml +++ b/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml @@ -12,35 +12,53 @@ # 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 [1, 2 ,3 , 4, 5, 6] %} -- type: NSPerf - traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml - topology: vfw-tg-topology.yaml +{% 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: [{'tg__0': 'xe0'}] - dst_ip: [{'tg__0': 'xe1'}] + 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: 0.0001 - 0.0001 + allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}" 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 + iterations: 1 + interval: 5 {% endfor %} context: type: Node diff --git a/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_ixia_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_ixia_scale_up.yaml new file mode 100644 index 000000000..fa9f24a3f --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_ixia_scale_up.yaml @@ -0,0 +1,124 @@ +# 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 image = image or "yardstick-samplevnfs" %} +{% set mem = mem or 20480 %} +{% set vcpus = vcpus or 10 %} +{% set vports = vports or 2 %} +{% set public_ip = public_ip or {0: "10.0.3.33", + 1: "10.0.5.55"} %} +{% set phynet_map = phynet_map or {'uplink_0': 'prov0', + 'downlink_0': 'prov1', + 'uplink_1': 'prov2', + 'downlink_1': 'prov3'} %} +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml + topology: cgnapt-tg-topology-ixia-scale-up.yaml + extra_args: + vports: {{ vports }} + nodes: + tg__0: trafficgen_0.barametal + vnf__0: vnf_0.yardstick + options: + framesize: + flow: + src_ip: [ +{% for vport in range(0,vports,2|int) %} + {'tg__0': 'xe{{vport}}'}, +{% endfor %} ] + dst_ip: [ +{% for vport in range(1,vports,2|int) %} + {'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: + resolution: 0.01 + allowed_drop_rate: 0.005 - 0.01 + vnf__0: + vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1} + runner: + type: Sequence + scenario_option_name: framesize + sequence: + - uplink: {64B: 100} + downlink: {64B: 100} + - uplink: {128B: 100} + downlink: {128B: 100} + - uplink: {256B: 100} + downlink: {256B: 100} + - uplink: {512B: 100} + downlink: {512B: 100} + - uplink: {1024B: 100} + downlink: {1024B: 100} + - uplink: {1518B: 100} + downlink: {1518B: 100} + - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} + downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} +contexts: + - name: barametal + type: Node + file: /etc/yardstick/nodes/pod_ixia.yaml + - name: yardstick + image: {{ image }} + flavor: + vcpus: {{ vcpus }} + ram: {{ mem }} + disk: 6 + extra_specs: + hw:cpu_sockets: 1 + hw:cpu_cores: {{ vcpus }} + hw:cpu_threads: 1 + user: ubuntu + placement_groups: + pgrp1: + policy: "availability" + servers: + vnf_0: + floating_ip: true + placement: "pgrp1" + network_ports: + mgmt: + - mgmt +{% for vport in range(0,vports,2|int) %} + uplink_{{loop.index0}}: + - xe{{vport}} + downlink_{{loop.index0}}: + - xe{{vport + 1}} +{% endfor %} + networks: + mgmt: + cidr: '10.0.1.0/24' +{% for vport in range(1,vports,2|int) %} + uplink_{{loop.index0}}: + cidr: '10.0.{{vport + 1}}.0/24' + gateway_ip: 'null' + provider: true + physical_network: {{phynet_map['uplink_' + loop.index0|string] }} + port_security_enabled: False + enable_dhcp: 'false' + downlink_{{loop.index0}}: + cidr: '10.0.{{vport + 2}}.0/24' + gateway_ip: 'null' + provider: true + physical_network: {{phynet_map['downlink_' + loop.index0|string] }} + port_security_enabled: False + enable_dhcp: 'false' +{% endfor %} diff --git a/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_trex_scale_up.yaml new file mode 100644 index 000000000..aa9807003 --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/tc_heat_external_rfc2544_ipv4_trex_scale_up.yaml @@ -0,0 +1,124 @@ +# 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 image = image or "yardstick-samplevnfs" %} +{% set mem = mem or 20480 %} +{% set vcpus = vcpus or 10 %} +{% set vports = vports or 2 %} +{% set public_ip = public_ip or {0: "10.0.3.50", + 1: "10.0.5.50"} %} +{% set phynet_map = phynet_map or {'uplink_0': 'prov6', + 'downlink_0': 'prov7', + 'uplink_1': 'prov4', + 'downlink_1': 'prov5'} %} +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt-scale-up.yaml + topology: cgnapt-tg-topology-scale-up.yaml + extra_args: + vports: {{ vports }} + nodes: + tg__0: trafficgen_0.barametal + vnf__0: vnf_0.yardstick + options: + framesize: + flow: + src_ip: [ +{% for vport in range(0,vports,2|int) %} + {'tg__0': 'xe{{vport}}'}, +{% endfor %} ] + dst_ip: [ +{% for vport in range(1,vports,2|int) %} + {'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: + resolution: 0.01 + allowed_drop_rate: 0.005 - 0.01 + vnf__0: + vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1} + runner: + type: Sequence + scenario_option_name: framesize + sequence: + - uplink: {64B: 100} + downlink: {64B: 100} + - uplink: {128B: 100} + downlink: {128B: 100} + - uplink: {256B: 100} + downlink: {256B: 100} + - uplink: {512B: 100} + downlink: {512B: 100} + - uplink: {1024B: 100} + downlink: {1024B: 100} + - uplink: {1518B: 100} + downlink: {1518B: 100} + - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} + downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} +contexts: + - name: barametal + type: Node + file: /etc/yardstick/nodes/pod_trex.yaml + - name: yardstick + image: {{ image }} + flavor: + vcpus: {{ vcpus }} + ram: {{ mem }} + disk: 6 + extra_specs: + hw:cpu_sockets: 1 + hw:cpu_cores: {{ vcpus }} + hw:cpu_threads: 1 + user: ubuntu + placement_groups: + pgrp1: + policy: "availability" + servers: + vnf_0: + floating_ip: true + placement: "pgrp1" + network_ports: + mgmt: + - mgmt +{% for vport in range(0,vports,2|int) %} + uplink_{{loop.index0}}: + - xe{{vport}} + downlink_{{loop.index0}}: + - xe{{vport + 1}} +{% endfor %} + networks: + mgmt: + cidr: '10.0.1.0/24' +{% for vport in range(1,vports,2|int) %} + uplink_{{loop.index0}}: + cidr: '10.0.{{vport + 1}}.0/24' + gateway_ip: 'null' + provider: true + physical_network: {{phynet_map['uplink_' + loop.index0|string] }} + port_security_enabled: False + enable_dhcp: 'false' + downlink_{{loop.index0}}: + cidr: '10.0.{{vport + 2}}.0/24' + gateway_ip: 'null' + provider: true + physical_network: {{phynet_map['downlink_' + loop.index0|string] }} + port_security_enabled: False + enable_dhcp: 'false' +{% endfor %}
\ No newline at end of file diff --git a/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_ixia_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_ixia_scale_up.yaml new file mode 100644 index 000000000..ff6e58f20 --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_ixia_scale_up.yaml @@ -0,0 +1,111 @@ +# 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.005 %} +{% set tolerance_high = tolerance_high or 0.01 %} +{% set public_ip = public_ip or ["152.16.40.10"] %} +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml + topology: cgnapt-tg-topology-ixia-scale-up.yaml + extra_args: + vports: {{ vports }} + nodes: + tg__0: trafficgen_0.yardstick + vnf__0: vnf_0.yardstick + options: + 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: + resolution: 0.01 + 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: Sequence + scenario_option_name: framesize + sequence: + - uplink: {64B: 100} + downlink: {64B: 100} + - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} + downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/pod_ixia_ovs.yaml + - type: StandaloneOvsDpdk + name: yardstick + file: /etc/yardstick/nodes/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: '172.10.1.150/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_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_ixia_scale_up.yaml b/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_ixia_scale_up.yaml new file mode 100644 index 000000000..734862055 --- /dev/null +++ b/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_ixia_scale_up.yaml @@ -0,0 +1,101 @@ +# 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.005 %} +{% set tolerance_high = tolerance_high or 0.01 %} +{% set public_ip = public_ip or ["152.16.40.10"] %} +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml + topology: cgnapt-tg-topology-ixia-scale-up.yaml + extra_args: + vports: {{ vports }} + nodes: + tg__0: trafficgen_0.yardstick + vnf__0: vnf_0.yardstick + options: + 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: + resolution: 0.01 + 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: Sequence + scenario_option_name: framesize + sequence: + - uplink: {64B: 100} + downlink: {64B: 100} + - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} + downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/pod_ixia_ovs.yaml + - type: StandaloneSriov + name: yardstick + file: /etc/yardstick/nodes/pod_sriov.yaml + vm_deploy: True + flavor: + images: "/var/lib/libvirt/images/yardstick-nsb-image.img" + ram: 16384 + extra_specs: + hw:cpu_sockets: 1 + hw:cpu_cores: 6 + hw:cpu_threads: 2 + user: "" + password: "" + servers: + vnf_0: + network_ports: + mgmt: + cidr: '172.10.1.150/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/cmts/k8s_vcmts_topology.yaml b/samples/vnf_samples/nsut/cmts/k8s_vcmts_topology.yaml new file mode 100755 index 000000000..95ac76964 --- /dev/null +++ b/samples/vnf_samples/nsut/cmts/k8s_vcmts_topology.yaml @@ -0,0 +1,36 @@ +# Copyright (c) 2019 Viosoft 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 num_tg = get(extra_args, 'num_tg', 2) %} +{% set num_sg = get(extra_args, 'num_sg', 2) %} + +nsd:nsd-catalog: + nsd: + - id: vcmts-topology + name: vcmts-topology + short-name: vcmts-topology + description: vcmts-topology + constituent-vnfd: + {% for tg_num in range(0, num_tg) %} + - member-vnf-index: '{{ tg_num + 1 }}' + vnfd-id-ref: tg__{{ tg_num }} + VNF model: ../../vnf_descriptors/tg_vcmts_tpl.yaml #VNF type + {% endfor %} + {% for vnf_num in range(0, num_sg * 2) %} + - member-vnf-index: '{{ vnf_num + num_tg + 1 }}' + vnfd-id-ref: vnf__{{ vnf_num }} + VNF model: ../../vnf_descriptors/vnf_vcmts_tpl.yaml #VNF type + {% endfor %} + + vld: [] diff --git a/samples/vnf_samples/nsut/cmts/tc_vcmts_k8s_pktgen.yaml b/samples/vnf_samples/nsut/cmts/tc_vcmts_k8s_pktgen.yaml new file mode 100755 index 000000000..6c85a0892 --- /dev/null +++ b/samples/vnf_samples/nsut/cmts/tc_vcmts_k8s_pktgen.yaml @@ -0,0 +1,360 @@ +# Copyright (c) 2019 Viosoft 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 num_tg = 2 %} +{% set num_sg = 4 %} + +{% set vcmtsd_image = "vcmts-d:perf" %} +{% set qat_on = false %} + +schema: "yardstick:task:0.1" + +scenarios: +- type: NSPerf + traffic_profile: ../../traffic_profiles/fixed.yaml + extra_args: + num_sg: {{ num_sg }} + num_tg: {{ num_tg }} + topology: k8s_vcmts_topology.yaml + nodes: +{% for tg_num in range(0, num_tg) %} + tg__{{ tg_num }}: pktgen{{ tg_num }}-k8syardstick +{% endfor %} +{% for vnf_index in range(0, num_sg) %} + vnf__{{ vnf_index * 2 }}: vnf{{ vnf_index }}us-k8syardstick + vnf__{{ (vnf_index * 2) + 1}}: vnf{{ vnf_index }}ds-k8syardstick +{% endfor %} + + runner: + type: Duration + duration: 120 + + options: + vcmts_influxdb_ip: "10.80.5.150" + vcmts_influxdb_port: 8086 + vcmtsd_values: /etc/yardstick/vcmtsd_values.yaml + pktgen_values: /etc/yardstick/pktgen_values.yaml + pktgen_rate: 6.5 +{% for vnf_index in range(0, num_sg) %} + vnf__{{ vnf_index * 2 }}: + sg_id: {{ vnf_index }} + stream_dir: "us" + vnf__{{ (vnf_index * 2) + 1}}: + sg_id: {{ vnf_index }} + stream_dir: "ds" +{% endfor %} +{% for tg_num in range(0, num_tg) %} + tg__{{ tg_num }}: + pktgen_id: {{ tg_num }} +{% endfor %} + +context: + name: k8syardstick + type: Kubernetes + + servers: +{% for vnf_index in range(0, num_sg) %} + vnf{{ vnf_index }}us: + nodeSelector: + vcmts: "true" + containers: + - image: {{ vcmtsd_image }} + imagePullPolicy: IfNotPresent + env: + - name: CMK_PROC_FS + value: "/host/proc" + command: /bin/bash + args: ['-c', 'mkdir /root/.ssh; cp /tmp/.ssh/authorized_keys ~/.ssh/.; + chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; service ssh restart; + while true ; do sleep 10000; done'] + resources: + requests: + memory: 10Ki +{% if qat_on %} + hugepages-1Gi: 2Gi + qat.intel.com/generic: '1' +{% else %} + hugepages-1Gi: 1Gi +{% endif %} + limits: + memory: 1Gi +{% if qat_on %} + hugepages-1Gi: 2Gi + qat.intel.com/generic: '1' +{% else %} + hugepages-1Gi: 1Gi +{% endif %} + lifecycle: + postStart: + exec: + command: [ "/bin/bash", "-c", "env > /tmp/qat" ] + volumeMounts: + - name: vcmts-configmap-vcmtspod + mountPath: /vcmts-config + - name: hugepages + mountPath: /hugepages + readOnly: false + - name: collectd + mountPath: /opt/collectd/var + readOnly: false + - name: sysfs + mountPath: /sys + readOnly: false + - name: sriov + mountPath: /sriov-cni + readOnly: false + - name: host-proc + mountPath: /host/proc + readOnly: true + - name: cmk-install-dir + mountPath: /opt/bin + - name: cmk-conf-dir + mountPath: /etc/cmk + - name: power-mgmt + mountPath: /opt/power_mgmt + ports: + - containerPort: 22022 + securityContext: + allowPrivilegeEscalation: true + privileged: true + node_ports: + - name: lua # Lower case alphanumeric characters or '-' + port: 22022 + networks: + - flannel + - xe0 + - xe1 + volumes: + - name: vcmts-configmap-vcmtspod + configMap: + name: vcmts-configmap-vcmtspod + defaultMode: 0744 + - name: hugepages + emptyDir: + medium: HugePages + - name: collectd + hostPath: + path: /opt/collectd/var + - name: sysfs + hostPath: + path: /sys + - name: sriov + hostPath: + path: /var/lib/cni/sriov + - name: cmk-install-dir + hostPath: + path: /opt/bin + - name: host-proc + hostPath: + path: /proc + - name: cmk-conf-dir + hostPath: + path: /etc/cmk + - name: power-mgmt + hostPath: + path: /opt/power_mgmt + + vnf{{ vnf_index }}ds: + nodeSelector: + vcmts: "true" + containers: + - image: {{ vcmtsd_image }} + imagePullPolicy: IfNotPresent + env: + - name: CMK_PROC_FS + value: "/host/proc" + command: /bin/bash + args: ['-c', 'mkdir /root/.ssh; cp /tmp/.ssh/authorized_keys ~/.ssh/.; + chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; service ssh restart; + while true ; do sleep 10000; done'] + resources: + requests: + memory: 10Ki +{% if qat_on %} + hugepages-1Gi: 2Gi + qat.intel.com/generic: '1' +{% else %} + hugepages-1Gi: 1Gi +{% endif %} + limits: + memory: 1Gi +{% if qat_on %} + hugepages-1Gi: 2Gi + qat.intel.com/generic: '1' +{% else %} + hugepages-1Gi: 1Gi +{% endif %} + lifecycle: + postStart: + exec: + command: [ "/bin/bash", "-c", "env > /tmp/qat" ] + volumeMounts: + - name: vcmts-configmap-vcmtspod + mountPath: /vcmts-config + - name: hugepages + mountPath: /hugepages + readOnly: false + - name: collectd + mountPath: /opt/collectd/var + readOnly: false + - name: sysfs + mountPath: /sys + readOnly: false + - name: sriov + mountPath: /sriov-cni + readOnly: false + - name: host-proc + mountPath: /host/proc + readOnly: true + - name: cmk-install-dir + mountPath: /opt/bin + - name: cmk-conf-dir + mountPath: /etc/cmk + - name: power-mgmt + mountPath: /opt/power_mgmt + ports: + - containerPort: 22022 + securityContext: + allowPrivilegeEscalation: true + privileged: true + node_ports: + - name: lua # Lower case alphanumeric characters or '-' + port: 22022 + networks: + - flannel + - xe0 + - xe1 + volumes: + - name: vcmts-configmap-vcmtspod + configMap: + name: vcmts-configmap-vcmtspod + defaultMode: 0744 + - name: hugepages + emptyDir: + medium: HugePages + - name: collectd + hostPath: + path: /opt/collectd/var + - name: sysfs + hostPath: + path: /sys + - name: sriov + hostPath: + path: /var/lib/cni/sriov + - name: cmk-install-dir + hostPath: + path: /opt/bin + - name: host-proc + hostPath: + path: /proc + - name: cmk-conf-dir + hostPath: + path: /etc/cmk + - name: power-mgmt + hostPath: + path: /opt/power_mgmt +{% endfor %} + +{% for index in range(0, num_tg) %} + pktgen{{index}}: + nodeSelector: + vcmtspktgen: "true" + containers: + - image: vcmts-pktgen:v18.10 + imagePullPolicy: IfNotPresent + tty: true + stdin: true + env: + - name: LUA_PATH + value: "/vcmts/Pktgen.lua" + - name: CMK_PROC_FS + value: "/host/proc" + command: /bin/bash + args: ['-c', 'mkdir /root/.ssh; cp /tmp/.ssh/authorized_keys ~/.ssh/.; + chmod 700 ~/.ssh; chmod 600 ~/.ssh/*; service ssh restart; + while true ; do sleep 10000; done'] + resources: + requests: + hugepages-1Gi: 9Gi + memory: 200Mi + limits: + hugepages-1Gi: 9Gi + memory: 200Mi + volumeMounts: + - name: sysfs + mountPath: /sys + readOnly: false + - name: hugepages + mountPath: /hugepages + readOnly: false + - name: sriov + mountPath: /sriov-cni + readOnly: false + - name: host-proc + mountPath: /host/proc + readOnly: true + - name: cmk-install-dir + mountPath: /opt/bin + - name: cmk-conf-dir + mountPath: /etc/cmk + - name: pktgen-config + mountPath: /pktgen-config + ports: + - containerPort: 22022 + securityContext: + allowPrivilegeEscalation: true + privileged: true + volumes: + - name: sysfs + hostPath: + path: /sys + - name: hugepages + emptyDir: + medium: HugePages + - name: sriov + hostPath: + path: /var/lib/cni/sriov + - name: cmk-install-dir + hostPath: + path: /opt/bin + - name: host-proc + hostPath: + path: /proc + - name: cmk-conf-dir + hostPath: + path: /etc/cmk + - name: pktgen-config + configMap: + name: vcmts-configmap-pktgen + defaultMode: 0744 + node_ports: + - name: lua # Lower case alphanumeric characters or '-' + port: 22022 + networks: + - flannel + - xe0 + - xe1 +{% endfor %} + + networks: + flannel: + args: '[{ "delegate": { "isDefaultGateway": true }}]' + plugin: flannel + xe0: + args: '[{ "delegate": { "isDefaultGateway": true }}]' + plugin: flannel + xe1: + args: '[{ "delegate": { "isDefaultGateway": true }}]' + plugin: flannel 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_ixia_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_ixia_scale_up.yaml new file mode 100644 index 000000000..a826f31c7 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_ixia_scale_up.yaml @@ -0,0 +1,59 @@ +# 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.005 %} +{% set tolerance_high = tolerance_high or 0.01 %} +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml + topology: vfw-tg-topology-ixia-scale-up.yaml + extra_args: + vports: {{ vports }} + nodes: + tg__0: trafficgen_0.yardstick + vnf__0: vnf_0.yardstick + options: + framesize: + flow: + src_ip: [ +{% for vport in range(0,vports,2|int) %} + {'tg__0': 'xe{{vport}}'}, +{% endfor %} ] + dst_ip: [ +{% for vport in range(1,vports,2|int) %} + {'tg__0': 'xe{{vport}}'}, +{% endfor %} ] + count: 1 + traffic_type: 4 + rfc2544: + resolution: 0.01 + allowed_drop_rate: "{{ tolerance_low }} - {{ tolerance_high }}" + vnf__0: + vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1} + runner: + type: Sequence + scenario_option_name: framesize + sequence: + - uplink: {64B: 100} + downlink: {64B: 100} + - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} + downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} +context: + type: Node + name: yardstick + nfvi_type: baremetal + file: /etc/yardstick/nodes/pod_ixia.yaml diff --git a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_trex_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml index 13eac2892..95ad7700b 100644 --- a/samples/vnf_samples/nsut/cgnapt/tc_baremetal_rfc2544_ipv4_1flow_trex_scale_up.yaml +++ b/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_trex_scale_up.yaml @@ -12,35 +12,48 @@ # 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 [1, 2 ,3 , 4, 5, 6] %} -- type: NSPerf - traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt.yaml - topology: cgnapt-vnf-topology.yaml +{% 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: [{'tg__0': 'xe0'}] - dst_ip: [{'tg__0': 'xe1'}] - public_ip: ["152.16.40.10"] + 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: 0.0001 - 0.0001 + 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: 10 - interval: 35 + iterations: 1 + interval: 5 {% endfor %} context: type: Node diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_ixia_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_ixia_scale_up.yaml new file mode 100644 index 000000000..47f3e01fa --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_ixia_scale_up.yaml @@ -0,0 +1,122 @@ +# 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 image = image or "yardstick-samplevnfs" %} +{% set mem = mem or 20480 %} +{% set vcpus = vcpus or 10 %} +{% set vports = vports or 2 %} +{% set phynet_map = phynet_map or {'uplink_0': 'prov0', + 'downlink_0': 'prov1', + 'uplink_1': 'prov2', + 'downlink_1': 'prov3'} %} + +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml + topology: vfw-tg-topology-ixia-scale-up.yaml + extra_args: + vports: {{ vports }} + nodes: + tg__0: trafficgen_0.barametal + vnf__0: vnf_0.yardstick + options: + framesize: + flow: + src_ip: [ +{% for vport in range(0,vports,2|int) %} + {'tg__0': 'xe{{vport}}'}, +{% endfor %} ] + dst_ip: [ +{% for vport in range(1,vports,2|int) %} + {'tg__0': 'xe{{vport}}'}, +{% endfor %} ] + count: 1 + traffic_type: 4 + rfc2544: + resolution: 0.01 + allowed_drop_rate: 0.005 - 0.01 + vnf__0: + rules: acl_1rule.yaml + vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1} + runner: + type: Sequence + scenario_option_name: framesize + sequence: + - uplink: {64B: 100} + downlink: {64B: 100} + - uplink: {128B: 100} + downlink: {128B: 100} + - uplink: {256B: 100} + downlink: {256B: 100} + - uplink: {512B: 100} + downlink: {512B: 100} + - uplink: {1024B: 100} + downlink: {1024B: 100} + - uplink: {1518B: 100} + downlink: {1518B: 100} + - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} + downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} + +contexts: + - name: barametal + type: Node + file: /etc/yardstick/nodes/pod_ixia.yaml + - name: yardstick + image: {{ image }} + flavor: + vcpus: {{ vcpus }} + ram: {{ mem }} + disk: 6 + extra_specs: + hw:cpu_sockets: 1 + hw:cpu_cores: {{ vcpus }} + hw:cpu_threads: 1 + user: ubuntu + placement_groups: + pgrp1: + policy: "availability" + servers: + vnf_0: + floating_ip: true + placement: "pgrp1" + network_ports: + mgmt: + - mgmt +{% for vport in range(0,vports,2|int) %} + uplink_{{loop.index0}}: + - xe{{vport}} + downlink_{{loop.index0}}: + - xe{{vport + 1}} +{% endfor %} + networks: + mgmt: + cidr: '10.0.1.0/24' +{% for vport in range(1,vports,2|int) %} + uplink_{{loop.index0}}: + cidr: '10.0.{{vport + 1}}.0/24' + gateway_ip: 'null' + provider: true + physical_network: {{phynet_map['uplink_' + loop.index0|string] }} + port_security_enabled: False + enable_dhcp: 'false' + downlink_{{loop.index0}}: + cidr: '10.0.{{vport + 2}}.0/24' + gateway_ip: 'null' + provider: true + physical_network: {{phynet_map['downlink_' + loop.index0|string] }} + port_security_enabled: False + enable_dhcp: 'false' +{% endfor %} + diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_trex_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_trex_scale_up.yaml new file mode 100644 index 000000000..2e66778f9 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/tc_heat_external_rfc2544_ipv4_trex_scale_up.yaml @@ -0,0 +1,122 @@ +# 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 image = image or "yardstick-samplevnfs" %} +{% set mem = mem or 20480 %} +{% set vcpus = vcpus or 10 %} +{% set vports = vports or 2 %} +{% set phynet_map = phynet_map or {'uplink_0': 'prov6', + 'downlink_0': 'prov7', + 'uplink_1': 'prov4', + 'downlink_1': 'prov5'} %} + +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ipv4_throughput-scale-up.yaml + topology: vfw-tg-topology-scale-up.yaml + extra_args: + vports: {{ vports }} + nodes: + tg__0: trafficgen_0.barametal + vnf__0: vnf_0.yardstick + options: + framesize: + flow: + src_ip: [ +{% for vport in range(0,vports,2|int) %} + {'tg__0': 'xe{{vport}}'}, +{% endfor %} ] + dst_ip: [ +{% for vport in range(1,vports,2|int) %} + {'tg__0': 'xe{{vport}}'}, +{% endfor %} ] + count: 1 + traffic_type: 4 + rfc2544: + resolution: 0.01 + allowed_drop_rate: 0.005 - 0.01 + vnf__0: + rules: acl_1rule.yaml + vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1} + runner: + type: Sequence + scenario_option_name: framesize + sequence: + - uplink: {64B: 100} + downlink: {64B: 100} + - uplink: {128B: 100} + downlink: {128B: 100} + - uplink: {256B: 100} + downlink: {256B: 100} + - uplink: {512B: 100} + downlink: {512B: 100} + - uplink: {1024B: 100} + downlink: {1024B: 100} + - uplink: {1518B: 100} + downlink: {1518B: 100} + - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} + downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} + +contexts: + - name: barametal + type: Node + file: /etc/yardstick/nodes/pod_trex.yaml + - name: yardstick + image: {{ image }} + flavor: + vcpus: {{ vcpus }} + ram: {{ mem }} + disk: 6 + extra_specs: + hw:cpu_sockets: 1 + hw:cpu_cores: {{ vcpus }} + hw:cpu_threads: 1 + user: ubuntu + placement_groups: + pgrp1: + policy: "availability" + servers: + vnf_0: + floating_ip: true + placement: "pgrp1" + network_ports: + mgmt: + - mgmt +{% for vport in range(0,vports,2|int) %} + uplink_{{loop.index0}}: + - xe{{vport}} + downlink_{{loop.index0}}: + - xe{{vport + 1}} +{% endfor %} + networks: + mgmt: + cidr: '10.0.1.0/24' +{% for vport in range(1,vports,2|int) %} + uplink_{{loop.index0}}: + cidr: '10.0.{{vport + 1}}.0/24' + gateway_ip: 'null' + provider: true + physical_network: {{phynet_map['uplink_' + loop.index0|string] }} + port_security_enabled: False + enable_dhcp: 'false' + downlink_{{loop.index0}}: + cidr: '10.0.{{vport + 2}}.0/24' + gateway_ip: 'null' + provider: true + physical_network: {{phynet_map['downlink_' + loop.index0|string] }} + port_security_enabled: False + enable_dhcp: 'false' +{% endfor %} + diff --git a/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_ixia_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_ixia_scale_up.yaml new file mode 100644 index 000000000..022865210 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_ixia_scale_up.yaml @@ -0,0 +1,106 @@ +# 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.005 %} +{% set tolerance_high = tolerance_high or 0.01 %} +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml + topology: vfw-tg-topology-ixia-scale-up.yaml + extra_args: + vports: {{ vports }} + nodes: + tg__0: trafficgen_0.yardstick + vnf__0: vnf_0.yardstick + options: + 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: + resolution: 0.01 + 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: Sequence + scenario_option_name: framesize + sequence: + - uplink: {64B: 100} + downlink: {64B: 100} + - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} + downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/pod_ixia_ovs.yaml + - type: StandaloneOvsDpdk + name: yardstick + file: /etc/yardstick/nodes/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: '172.10.1.150/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_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_ixia_scale_up.yaml b/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_ixia_scale_up.yaml new file mode 100644 index 000000000..b0ea0dc33 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_ixia_scale_up.yaml @@ -0,0 +1,96 @@ +# 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.005 %} +{% set tolerance_high = tolerance_high or 0.01 %} +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf-RFC2544 + traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_scale_up.yaml + topology: vfw-tg-topology-ixia-scale-up.yaml + extra_args: + vports: {{ vports }} + nodes: + tg__0: trafficgen_0.yardstick + vnf__0: vnf_0.yardstick + options: + 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: + resolution: 0.01 + 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: Sequence + scenario_option_name: framesize + sequence: + - uplink: {64B: 100} + downlink: {64B: 100} + - uplink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} + downlink: {64B: 25, 128B: 25, 512B: 25, 1024B: 25} +contexts: + - name: yardstick + type: Node + file: /etc/yardstick/nodes/pod_ixia_ovs.yaml + - type: StandaloneSriov + name: yardstick + file: /etc/yardstick/nodes/pod_sriov.yaml + vm_deploy: True + flavor: + images: "/var/lib/libvirt/images/yardstick-nsb-image.img" + ram: 16384 + extra_specs: + hw:cpu_sockets: 1 + hw:cpu_cores: 6 + hw:cpu_threads: 2 + user: "" + password: "" + servers: + vnf_0: + network_ports: + mgmt: + cidr: '172.10.1.150/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/nsut/vfw/vfw-tg-topology-ixia-scale-up.yaml b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-scale-up.yaml new file mode 100644 index 000000000..3d29d3e67 --- /dev/null +++ b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-ixia-scale-up.yaml @@ -0,0 +1,53 @@ +# 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: vFW + name: vFW + short-name: vFW + description: scenario with vFW VNF + constituent-vnfd: + - member-vnf-index: '1' + vnfd-id-ref: tg__0 + VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml #VNF type + - member-vnf-index: '2' + vnfd-id-ref: vnf__0 + VNF model: ../../vnf_descriptors/vfw_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/agnostic/tc_baremetal_rfc2544_ipv4_64B_trex.yaml b/samples/vnf_samples/nsut/vims/tc_vims_baremetal_sipp.yaml index 4394e8029..bf9f5a44a 100644 --- a/samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_ipv4_64B_trex.yaml +++ b/samples/vnf_samples/nsut/vims/tc_vims_baremetal_sipp.yaml @@ -1,4 +1,4 @@ -# Copyright (c) 2018-2019 Intel Corporation +# Copyright (c) 2019 Viosoft Corporation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -11,35 +11,47 @@ # 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 +run_in_parallel: false scenarios: -- type: NSPerf - traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml - topology: agnostic_vnf_topology_trex_tmpl.yaml +- + type: NSPerf + traffic_profile: "../../traffic_profiles/sip.yaml" + topology: vims-topology.yaml + nodes: - tg__0: trafficgen_0.yardstick - vnf__0: vnf_0.yardstick - options: - framesize: - uplink: {64B: 100} - downlink: {64B: 100} - flow: - src_ip: [{'tg__0': 'xe0'}] - dst_ip: [{'tg__0': 'xe1'}] - count: 1 - traffic_type: 4 - rfc2544: - allowed_drop_rate: 0.0001 - 0.0001 - vnf__0: - [] + vnf__0: pcscf.yardstick + vnf__1: hss.yardstick + tg__0: sipp.yardstick + runner: - type: Iteration - iterations: 10 - interval: 35 + type: Duration + duration: 10000 + interval: 1 + options: + port: 5060 + start_user: 1 + end_user: 10000 + init_reg_cps: 50 + init_reg_max: 5000 + reg_cps: 20 + reg_step: 10 + rereg_cps: 20 + rereg_step: 10 + dereg_cps: 20 + dereg_step: 10 + msgc_cps: 10 + msgc_step: 5 + run_mode: nortp + call_cps: 10 + hold_time: 15 + call_step: 5 + + wait_time: 5 + context: type: Node name: yardstick nfvi_type: baremetal - file: /etc/yardstick/nodes/pod.yaml + file: /etc/yardstick/nodes/sipp_baremetal_pod.yaml diff --git a/samples/vnf_samples/nsut/vims/tc_vims_heat_sipp.yaml b/samples/vnf_samples/nsut/vims/tc_vims_heat_sipp.yaml new file mode 100644 index 000000000..8bf59c962 --- /dev/null +++ b/samples/vnf_samples/nsut/vims/tc_vims_heat_sipp.yaml @@ -0,0 +1,97 @@ +# Copyright (c) 2019 Viosoft 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" +run_in_parallel: false +scenarios: +- + type: NSPerf + traffic_profile: "../../traffic_profiles/sip.yaml" + topology: vims-topology.yaml + nodes: + tg__0: sipp.trafficgen + vnf__0: + name: bono-0.yardstick + public_ip_attr: "bono_public_ip" + private_ip_attr: "bono_private_ip" + interfaces: + ims_network: + local_ip: bono_private_ip + local_mac: bono_local_mac + netmask: "255.255.255.0" + network: private_net_name + gateway_ip: private_net_gateway + + vnf__1: + name: homestead-0.yardstick + public_ip_attr: "homestead_public_ip" + private_ip_attr: "homestead_private_ip" + interfaces: + ims_network: + local_ip: homestead_private_ip + local_mac: homestead_local_mac + netmask: "255.255.255.0" + network: private_net_name + gateway_ip: private_net_gateway + options: + # Public key to create keypair on openstack + key_name: yardstick + public_key: "" + port: 5060 + start_user: 1 + end_user: 10000 + init_reg_cps: 50 + init_reg_max: 5000 + reg_cps: 50 + reg_step: 10 + rereg_cps: 10 + rereg_step: 5 + dereg_cps: 10 + dereg_step: 5 + msgc_cps: 10 + msgc_step: 2 + run_mode: rtp + call_cps: 10 + hold_time: 15 + call_step: 5 + wait_time: 600 + runner: + type: Duration + duration: 10000 + interval: 1 +contexts: +# put node context first, so we don't HEAT deploy if node has errors +- + name: trafficgen + type: Node + nfvi_type: baremetal + file: /etc/yardstick/nodes/sipp_pod.yaml + +- + name: yardstick + user: ubuntu + # Private key to access VM + key_filename: /etc/yardstick/yardstick.pem + heat_template: /tmp/clearwater.yaml + heat_parameters: + image: "Ubuntu_14_trusty" + flavor: m1.small + key_name: yardstick + public_net_id: "public1" + repo_url: "http://repo.cw-ngv.com/archive/repo107/" + dnssec_key: "HOz2ZYgvbyCFRUymRLBXyLD4+tESevesP07hhzs/uKUD+Oy3aWvReEWMKgBwy75FAl9XQqw6wIGb" + private_net_name: "ims_network" + private_net_cidr: "10.0.1.0/24" + private_net_gateway: "10.0.1.1" + private_net_pool_start: "10.0.1.2" diff --git a/samples/vnf_samples/nsut/vims/vims-topology.yaml b/samples/vnf_samples/nsut/vims/vims-topology.yaml new file mode 100644 index 000000000..a7525ab57 --- /dev/null +++ b/samples/vnf_samples/nsut/vims/vims-topology.yaml @@ -0,0 +1,52 @@ +# Copyright (c) 2019 Viosoft 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: vims-tg-topology + name: vims-tg-topology + short-name: vims-tg-topology + description: vims-tg-topology + constituent-vnfd: + - member-vnf-index: '1' + vnfd-id-ref: tg__0 + VNF model: ../../vnf_descriptors/tg_sipp_vnfd.yaml # Traffic Generator + - member-vnf-index: '2' + vnfd-id-ref: vnf__0 + VNF model: ../../vnf_descriptors/vims_pcscf_vnfd.yaml # vims + - member-vnf-index: '3' + vnfd-id-ref: vnf__1 + VNF model: ../../vnf_descriptors/vims_hss_vnfd.yaml # vims + + vld: + - id: ims_network + name: tg__0 to vnf__0 link 1 + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe0 + vnfd-id-ref: tg__0 + - member-vnf-index-ref: '2' + vnfd-connection-point-ref: xe0 + vnfd-id-ref: vnf__0 + - id: data_network + name: tg__0 to vnf__0 link 2 + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe1 + vnfd-id-ref: tg__0 + - member-vnf-index-ref: '2' + vnfd-connection-point-ref: xe0 + vnfd-id-ref: vnf__0 |