1 .. This work is licensed under a Creative Commons Attribution 4.0 International
3 .. http://creativecommons.org/licenses/by/4.0
4 .. (c) OPNFV, 2016-2017 Intel Corporation.
6 Yardstick - NSB Testing - Operation
7 ===================================
12 NSB test configuration and OpenStack setup requirements
15 OpenStack Network Configuration
16 -------------------------------
18 NSB requires certain OpenStack deployment configurations.
19 For optimal VNF characterization using external traffic generators NSB requires
20 provider/external networks.
26 The VNFs require a clear L2 connect to the external network in order to generate
27 realistic traffic from multiple address ranges and port
29 In order to prevent Neutron from filtering traffic we have to disable Neutron Port Security.
30 We also disable DHCP on the data ports because we are binding the ports to DPDK and do not need
31 DHCP addresses. We also disable gateways because multiple default gateways can prevent SSH access
32 to the VNF from the floating IP. We only want a gateway on the mgmt network
39 port_security_enabled: False
45 By default Heat will attach every node to every Neutron network that is created.
46 For scale-out tests we do not want to attach every node to every network.
48 For each node you can specify which ports are on which network using the
49 network_ports dictionary.
51 In this example we have ``TRex xe0 <-> xe0 VNF xe1 <-> xe0 UDP_Replay``
73 # Trex always needs two ports
88 NSB can collect KPIs from collected. We have support for various plugins enabled by the
91 The default yardstick-samplevnf has collectd installed. This allows for collecting KPIs
94 Collecting KPIs from the NFVi is more complicated and requires manual setup.
95 We assume that collectd is not installed on the compute nodes.
97 To collectd KPIs from the NFVi compute nodes:
100 * install_collectd on the compute nodes
101 * create pod.yaml for the compute nodes
102 * enable specific plugins depending on the vswitch and DPDK
104 example pod.yaml section for Compute node running collectd.
123 ovs_socket_path: /var/run/openvswitch/db.sock
131 VNFs performance data with scale-up
133 * Helps to figure out optimal number of cores specification in the Virtual Machine template creation or VNF
134 * Helps in comparison between different VNF vendor offerings
135 * Better the scale-up index, indicates the performance scalability of a particular solution
140 For VNF scale-up tests we increase the number for VNF worker threads and ports. In the case of VNFs
141 we also need to increase the number of VCPUs and memory allocated to the VNF.
143 An example scale-up Heat testcase is:
145 .. literalinclude:: /submodules/yardstick/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale-up.yaml
148 This testcase template requires specifying the number of VCPUs, Memory and Ports.
149 We set the VCPUs and memory using the ``--task-args`` options
151 .. code-block:: console
153 yardstick task start --task-args='{"mem": 10480, "vcpus": 4, "ports": 2}' \
154 samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale-up.yaml
156 In order to support ports scale-up, traffic and topology templates need to be used in testcase.
158 A example topology template is:
160 .. literalinclude:: /submodules/yardstick/samples/vnf_samples/nsut/vfw/vfw-tg-topology-scale-up.yaml
163 This template has ``vports`` as an argument. To pass this argument it needs to
164 be configured in ``extra_args`` scenario definition. Please note that more
165 argument can be defined in that section. All of them will be passed to topology
166 and traffic profile templates
172 schema: yardstick:task:0.1
175 traffic_profile: ../../traffic_profiles/ipv4_throughput-scale-up.yaml
178 topology: vfw-tg-topology-scale-up.yaml
180 A example traffic profile template is:
182 .. literalinclude:: /submodules/yardstick/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml
185 There is an option to provide predefined config for SampleVNFs. Path to config
186 file may by specified in ``vnf_config`` scenario section.
191 rules: acl_1rule.yaml
192 vnf_config: {lb_config: 'SW', file: vfw_vnf_pipeline_cores_4_ports_2_lb_1_sw.conf }
197 1. Follow above traffic generator section to setup.
198 2. edit num of threads in ``<repo>/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml``
200 e.g, 6 Threads for given VNF
205 schema: yardstick:task:0.1
207 {% for worker_thread in [1, 2 ,3 , 4, 5, 6] %}
209 traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
210 topology: vfw-tg-topology.yaml
212 tg__0: trafficgen_1.yardstick
213 vnf__0: vnf.yardstick
219 src_ip: [{'tg__0': 'xe0'}]
220 dst_ip: [{'tg__0': 'xe1'}]
224 allowed_drop_rate: 0.0001 - 0.0001
226 rules: acl_1rule.yaml
227 vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: {{worker_thread}}}
238 file: /etc/yardstick/nodes/pod.yaml
243 VNFs performance data with scale-out
245 * Helps in capacity planning to meet the given network node requirements
246 * Helps in comparison between different VNF vendor offerings
247 * Better the scale-out index, provides the flexibility in meeting future capacity requirements
253 Scale-out not supported on Baremetal.
255 1. Follow above traffic generator section to setup.
256 2. Generate testcase for standalone virtualization using ansible scripts
258 .. code-block:: console
261 trex: standalone_ovs_scale_out_trex_test.yaml or standalone_sriov_scale_out_trex_test.yaml
262 ixia: standalone_ovs_scale_out_ixia_test.yaml or standalone_sriov_scale_out_ixia_test.yaml
263 ixia_correlated: standalone_ovs_scale_out_ixia_correlated_test.yaml or standalone_sriov_scale_out_ixia_correlated_test.yaml
265 update the ovs_dpdk or sriov above Ansible scripts reflect the setup
269 .. code-block:: console
271 <repo>/samples/vnf_samples/nsut/tc_sriov_vfw_udp_ixia_correlated_scale_out-1.yaml
272 <repo>/samples/vnf_samples/nsut/tc_sriov_vfw_udp_ixia_correlated_scale_out-2.yaml
277 There are sample scale-out all-VM Heat tests. These tests only use VMs and don't use external traffic.
279 The tests use UDP_Replay and correlated traffic.
281 .. code-block:: console
283 <repo>/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_4.yaml
285 To run the test you need to increase OpenStack CPU, Memory and Port quotas.
288 Traffic Generator tuning
289 ------------------------
291 The TRex traffic generator can be setup to use multiple threads per core, this is for multiqueue testing.
293 TRex does not automatically enable multiple threads because we currently cannot detect the number of queues on a device.
295 To enable multiple queue set the queues_per_port value in the TG VNF options section.
302 tg__0: tg_0.yardstick