# Copyright (c) 2018 Intel Corporation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. {% set num_vnfs = num_vnfs or 1 %} {% set availability_zone = availability_zone or {} %} --- schema: yardstick:task:0.1 scenarios: - type: NSPerf traffic_profile: ../../traffic_profiles/ipv4_throughput_scale_out.yaml topology: vfw_tg_topology_scale_out.yaml extra_args: num_vnfs: {{ num_vnfs }} nodes: {% for vnf_num in range(num_vnfs|int) %} tg__{{ vnf_num }}: tg_{{ vnf_num }}.yardstick vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick {% endfor %} options: framesize: uplink: {64B: 100} downlink: {64B: 100} flow: src_ip: {% for vnf_num in range(num_vnfs|int) %} - {'tg__{{ vnf_num }}': 'xe0'} {% endfor %} dst_ip: {% for vnf_num in range(num_vnfs|int) %} - {'tg__{{ vnf_num }}': 'xe1'} {% endfor %} count: 1 traffic_type: 4 rfc2544: allowed_drop_rate: 0.0001 - 0.0001 {% for vnf_num in range(num_vnfs|int) %} vnf__{{ vnf_num }}: rules: acl_1rule.yaml vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1} {% endfor %} runner: type: Iteration iterations: 10 interval: 35 context: # put node context first, so we don't HEAT deploy if node has errors name: yardstick image: yardstick-samplevnfs flavor: vcpus: 10 ram: 20480 disk: 6 extra_specs: hw:cpu_sockets: 1 hw:cpu_cores: 10 hw:cpu_threads: 1 user: ubuntu placement_groups: pgrp1: policy: "availability" servers: {% for vnf_num in range(num_vnfs|int) %} vnf_{{ vnf_num }}: floating_ip: true placement: "pgrp1" {% if 'vnf_%s'|format(vnf_num) in availability_zone %} availability_zone: "{{ availability_zone['vnf_%s'|format(vnf_num)] }}" {% endif %} network_ports: mgmt: - mgmt uplink_{{ vnf_num }}: - xe0 downlink_{{ vnf_num }}: - xe1 tg_{{ vnf_num }}: floating_ip: true placement: "pgrp1" {% if 'tg_%s'|format(vnf_num) in availability_zone %} availability_zone: "{{ availability_zone['tg_%s'|format(vnf_num)] }}" {% endif %} network_ports: mgmt: - mgmt uplink_{{ vnf_num }}: - xe0 downlink_{{ vnf_num }}: - xe1 {% endfor %} networks: mgmt: cidr: '10.0.1.0/24' {% for vnf_num in range(num_vnfs|int) %} uplink_{{ vnf_num }}: cidr: '10.0.{{ (vnf_num * 2) + 2 }}.0/24' gateway_ip: 'null' port_security_enabled: False enable_dhcp: 'false' downlink_{{ vnf_num }}: cidr: '10.0.{{ (vnf_num * 2) + 3 }}.0/24' gateway_ip: 'null' port_security_enabled: False enable_dhcp: 'false' {% endfor %}