From 9bf492e01dad7309287e8491ec7ac29f43032aed Mon Sep 17 00:00:00 2001 From: Dino Madarang Date: Tue, 3 Oct 2017 01:02:17 +0000 Subject: samples: Add generic L3 forwarder tests A generic throughput test case that can be used as a stub code for a Linux-based VNF configured as an L3 forwarder. Supported context: * Standalone OVSDPDK and SRIOV * Baremetal Code changes: * Allow pmd-cpu-mask and lcore mask for OVS DPDK * router_vnf.py - configures interface IP addresses and static arp entries using ip command * NFVi KPIs * Allow cputune tag for standalone context to be able to PIN on NUMA 1 cpus SRIOV Test cases: * RFC2544 Ethernet framesizes, 128K Flows * 2,4 and 6 ports * 2 and 3 vcpus per port * OVSDPDK Test cases: * RFC2544 Ethernet framesizes, 128K Flows * 2 and 4 ports * 2 vcpus per port * 2 PMD threads per port TODO: * Documentation * Add 6 ports tests References: * router_vnf.py is based on sample_vnf.py * tc_*.yaml files are based on acl/vfw test case files Added unitests Added get_stats to parse ip -s link Change-Id: Id1b969d5420dfcab7c1e695acbd2cd1655747efe Signed-off-by: Dino Simeon Madarang Signed-off-by: Kavindya Deegala Reviewed-by: Alain Jebara Reviewed-by: Deepak S Reviewed-by: Emma Foley Reviewed-by: Rodolfo Alonso Hernandez Reviewed-by: Ross Brattain Reviewed-by: Edward MacGillivray Signed-off-by: Dhaval Patel Signed-off-by: Ross Brattain --- ...rfc2544_ipv4_128Kflows_9cores_4ports_1280B.yaml | 120 +++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1280B.yaml (limited to 'samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1280B.yaml') diff --git a/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1280B.yaml b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1280B.yaml new file mode 100644 index 000000000..be08b5b39 --- /dev/null +++ b/samples/vnf_samples/nsut/router/tc_heat_external_rfc2544_ipv4_128Kflows_9cores_4ports_1280B.yaml @@ -0,0 +1,120 @@ +# Copyright (c) 2016-2017 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. + +--- +schema: yardstick:task:0.1 +scenarios: +- type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml + topology: router-tg-topology-4port.yaml + nodes: + tg__0: trafficgen_1.baremetal + vnf__0: vnf.yardstick +# Required for enabling NFVi collection + cpt__0: compute_0.compute_nodes + options: + framesize: + uplink: {1280B: 100} + downlink: {1280B: 100} + flow: + src_ip: + - '10.0.2.26-10.0.2.105' + - '10.0.4.26-10.0.4.105' + dst_ip: + - '10.0.3.26-10.0.3.105' + - '10.0.5.26-10.0.5.105' + src_port: + - '1234-1238' + dst_port: + - '2001-2004' + count: 128000 + traffic_type: 4 + rfc2544: + allowed_drop_rate: 0.0001 - 0.1 + tg__0: + queues_per_port: 7 + vnf__0: + nfvi_enable: True + runner: + type: Iteration + iterations: 10 + interval: 35 +contexts: + - name: compute_nodes + type: Node + file: /etc/yardstick/nodes/compute.yaml + + - name: baremetal + type: Node + file: /etc/yardstick/nodes/pod_4p.yaml + + - name: yardstick + image: vrouter_affinity_2c4p + flavor: + vcpus: 9 + ram: 8192 + disk: 10 + extra_specs: + hw:cpu_sockets: 1 + hw:cpu_cores: 9 + hw:cpu_threads: 1 + hw:mem_page_size: large + hw:cpu_policy: dedicated + hw:cpu_thread_policy: prefer + hw:numa_nodes: 2 + hw:numa_mempolicy: preffered + hw:numa_cpus.0: 0,1,2,3,4 + hw:numa_cpus.1: 5,6,7,8 + hw:numa_mem.0: 4096 + hw:numa_mem.1: 4096 + user: "root" + password: "password" + placement_groups: + pgrp1: + policy: "availability" + servers: + vnf: + floating_ip: true + placement: "pgrp1" + networks: + mgmt: + cidr: '10.0.1.0/24' + xe0: + cidr: '10.0.2.0/24' + gateway_ip: 'null' + provider: true + physical_network: phystenant2 + port_security_enabled: False + enable_dhcp: 'false' + xe1: + cidr: '10.0.3.0/24' + gateway_ip: 'null' + provider: true + physical_network: phystenant3 + port_security_enabled: False + enable_dhcp: 'false' + xe2: + cidr: '10.0.4.0/24' + gateway_ip: 'null' + provider: true + physical_network: phystenant4 + port_security_enabled: False + enable_dhcp: 'false' + xe3: + cidr: '10.0.5.0/24' + gateway_ip: 'null' + provider: true + physical_network: phystenant5 + port_security_enabled: False + enable_dhcp: 'false' -- cgit 1.2.3-korg