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
27 generate realistic traffic from multiple address ranges and ports.
29 In order to prevent Neutron from filtering traffic we have to disable Neutron
30 Port Security. We also disable DHCP on the data ports because we are binding
31 the ports to DPDK and do not need DHCP addresses. We also disable gateways
32 because multiple default gateways can prevent SSH access to the VNF from the
33 floating IP. We only want a gateway on the mgmt network
40 port_security_enabled: False
46 By default Heat will attach every node to every Neutron network that is
47 created. For scale-out tests we do not want to attach every node to every
50 For each node you can specify which ports are on which network using the
51 network_ports dictionary.
53 In this example we have ``TRex xe0 <-> xe0 VNF xe1 <-> xe0 UDP_Replay``
75 # Trex always needs two ports
90 NSB can collect KPIs from collected. We have support for various plugins
91 enabled by the Barometer project.
93 The default yardstick-samplevnf has collectd installed. This allows for
94 collecting KPIs from the VNF.
96 Collecting KPIs from the NFVi is more complicated and requires manual setup.
97 We assume that collectd is not installed on the compute nodes.
99 To collectd KPIs from the NFVi compute nodes:
102 * install_collectd on the compute nodes
103 * create pod.yaml for the compute nodes
104 * enable specific plugins depending on the vswitch and DPDK
106 example pod.yaml section for Compute node running collectd.
125 ovs_socket_path: /var/run/openvswitch/db.sock
133 VNFs performance data with scale-up
135 * Helps to figure out optimal number of cores specification in the Virtual
136 Machine template creation or VNF
137 * Helps in comparison between different VNF vendor offerings
138 * Better the scale-up index, indicates the performance scalability of a
143 For VNF scale-up tests we increase the number for VNF worker threads. In the
144 case of VNFs we also need to increase the number of VCPUs and memory allocated
147 An example scale-up Heat testcase is:
149 .. literalinclude:: /submodules/yardstick/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale-up.yaml
152 This testcase template requires specifying the number of VCPUs, Memory and Ports.
153 We set the VCPUs and memory using the ``--task-args`` options
155 .. code-block:: console
157 yardstick task start --task-args='{"mem": 10480, "vcpus": 4, "ports": 2}' \
158 samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_scale-up.yaml
160 In order to support ports scale-up, traffic and topology templates need to be used in testcase.
162 A example topology template is:
164 .. literalinclude:: /submodules/yardstick/samples/vnf_samples/nsut/vfw/vfw-tg-topology-scale-up.yaml
167 This template has ``vports`` as an argument. To pass this argument it needs to
168 be configured in ``extra_args`` scenario definition. Please note that more
169 argument can be defined in that section. All of them will be passed to topology
170 and traffic profile templates
176 schema: yardstick:task:0.1
179 traffic_profile: ../../traffic_profiles/ipv4_throughput-scale-up.yaml
182 topology: vfw-tg-topology-scale-up.yaml
184 A example traffic profile template is:
186 .. literalinclude:: /submodules/yardstick/samples/vnf_samples/traffic_profiles/ipv4_throughput-scale-up.yaml
189 There is an option to provide predefined config for SampleVNFs. Path to config
190 file may by specified in ``vnf_config`` scenario section.
195 rules: acl_1rule.yaml
196 vnf_config: {lb_config: 'SW', file: vfw_vnf_pipeline_cores_4_ports_2_lb_1_sw.conf }
201 1. Follow above traffic generator section to setup.
202 2. Edit num of threads in
203 ``<repo>/samples/vnf_samples/nsut/vfw/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_trex_scale_up.yaml``
204 e.g, 6 Threads for given VNF
209 schema: yardstick:task:0.1
211 {% for worker_thread in [1, 2 ,3 , 4, 5, 6] %}
213 traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
214 topology: vfw-tg-topology.yaml
216 tg__0: trafficgen_1.yardstick
217 vnf__0: vnf.yardstick
223 src_ip: [{'tg__0': 'xe0'}]
224 dst_ip: [{'tg__0': 'xe1'}]
228 allowed_drop_rate: 0.0001 - 0.0001
230 rules: acl_1rule.yaml
231 vnf_config: {lb_config: 'HW', lb_count: 1, worker_config: '1C/1T', worker_threads: {{worker_thread}}}
242 file: /etc/yardstick/nodes/pod.yaml
247 VNFs performance data with scale-out helps
249 * in capacity planning to meet the given network node requirements
250 * in comparison between different VNF vendor offerings
251 * better the scale-out index, provides the flexibility in meeting future
252 capacity requirements
258 Scale-out not supported on Baremetal.
260 1. Follow above traffic generator section to setup.
261 2. Generate testcase for standalone virtualization using ansible scripts
263 .. code-block:: console
266 trex: standalone_ovs_scale_out_trex_test.yaml or standalone_sriov_scale_out_trex_test.yaml
267 ixia: standalone_ovs_scale_out_ixia_test.yaml or standalone_sriov_scale_out_ixia_test.yaml
268 ixia_correlated: standalone_ovs_scale_out_ixia_correlated_test.yaml or standalone_sriov_scale_out_ixia_correlated_test.yaml
270 update the ovs_dpdk or sriov above Ansible scripts reflect the setup
274 .. code-block:: console
276 <repo>/samples/vnf_samples/nsut/tc_sriov_vfw_udp_ixia_correlated_scale_out-1.yaml
277 <repo>/samples/vnf_samples/nsut/tc_sriov_vfw_udp_ixia_correlated_scale_out-2.yaml
282 There are sample scale-out all-VM Heat tests. These tests only use VMs and
283 don't use external traffic.
285 The tests use UDP_Replay and correlated traffic.
287 .. code-block:: console
289 <repo>/samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_4.yaml
291 To run the test you need to increase OpenStack CPU, Memory and Port quotas.
294 Traffic Generator tuning
295 ------------------------
297 The TRex traffic generator can be setup to use multiple threads per core, this
298 is for multiqueue testing.
300 TRex does not automatically enable multiple threads because we currently cannot
301 detect the number of queues on a device.
303 To enable multiple queue set the ``queues_per_port`` value in the TG VNF
311 tg__0: tg_0.yardstick