Improve IXIA IxNetwork library and traffic profile (1)
[yardstick.git] / samples / vnf_samples / nsut / vfw / tc_sriov_vfw_udp_ixia_scale_out_template.yaml
1 # Copyright (c) 2016-2017 Intel Corporation
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #      http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 ---
16 schema: yardstick:task:0.1
17 scenarios:
18   - type: NSPerf
19     traffic_profile: ../../traffic_profiles/ipv4_throughput-ixia-{{ num_vnfs }}.yaml
20     topology: vfw-tg-topology-ixia-scale-out-{{ num_vnfs }}.yaml
21     nodes:
22       tg__0: tg__0.yardstick
23 {% for vnf_num in range(num_vnfs|int) %}
24       vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
25 {% endfor %}
26     options:
27       framesize:
28         uplink: {{ flow.pkt_size.uplink }}
29         downlink: {{ flow.pkt_size.downlink }}
30       flow:
31         src_ip:
32 {% for vnf_num in range(num_vnfs|int) %}
33           - {'tg__0': 'xe{{ (vnf_num * 2)}}'}
34 {% endfor %}
35         dst_ip:
36 {% for vnf_num in range(num_vnfs|int) %}
37           - {'tg__0': 'xe{{ (vnf_num * 2) + 1}}'}
38 {% endfor %}
39         count: {{ flow.count }}
40       traffic_type: {{ flow.traffic_type }}
41       rfc2544:
42         allowed_drop_rate: {{ flow.rfc2544.allowed_drop_rate }}
43 {% for vnf_num in range(num_vnfs|int) %}
44       vnf__{{ vnf_num }}:
45         rules: acl_1rule.yaml
46         vnf_config: {lb_config: '{{flow.vnf_config.lb_config}}', lb_count: {{flow.vnf_config.lb_count}} , worker_config: '{{flow.vnf_config.worker_config}}', worker_threads: {{flow.vnf_config.worker_threads}}}
47 {% endfor %}
48     ixia_profile: ../../traffic_profiles/ixia/ixia_ipv4_profile_{{num_vnfs * 2}}_port.ixncfg
49
50     runner:
51       type: Iteration
52       iterations: 10
53       interval: 35
54 contexts:
55    - name: yardstick
56      type: Node
57      file: /etc/yardstick/nodes/ixia_{{num_vnfs}}.yaml
58    - type: StandaloneSriov
59      file: /etc/yardstick/nodes/sriov_host.yaml
60      name: yardstick
61      vm_deploy: True
62      flavor:
63        images: {{ flavor.image }}
64        ram: {{ flavor.ram }}
65        extra_specs:
66          hw:cpu_sockets: {{ flavor.extra_specs.cpu_sockets }}
67          hw:cpu_cores: {{ flavor.extra_specs.cpu_cores }}
68          hw:cpu_threads: {{ flavor.extra_specs.cpu_threads }}
69        user: {{ vnf.user }}
70        password: {{ vnf.password }}
71      servers:
72 {% for vnf_num in range(num_vnfs|int) %}
73        vnf_{{ vnf_num }}:
74          network_ports:
75            mgmt:
76              cidr: '{{vnf.ip.mgmt[vnf_num]}}'
77            xe0:
78              - uplink_{{ vnf_num }}
79            xe1:
80              - downlink_{{ vnf_num }}
81 {% endfor %}
82      networks:
83 {% for vnf_num in range(num_vnfs|int) %}
84        uplink_{{ vnf_num }}:
85          port_num: {{ vnf_num * 2 }}
86          phy_port: "{{vnf.pcis.uplink[vnf_num]}}"
87          vpci: "0000:00:{{10 + (89 | random)}}.0"
88          cidr: '{{vnf.ip.uplink[vnf_num]}}'
89          gateway_ip: '{{gen.ip.uplink[vnf_num]}}'
90        downlink_{{ vnf_num }}:
91          port_num: {{ (vnf_num * 2) + 1}}
92          phy_port: "{{vnf.pcis.downlink[vnf_num]}}"
93          vpci: "0000:00:{{10 + (89 | random)}}.0"
94          cidr: '{{vnf.ip.downlink[vnf_num]}}'
95          gateway_ip: '{{gen.ip.downlink[vnf_num]}}'
96 {% endfor %}