1 # Copyright (c) 2019 Viosoft Corporation
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
7 # http://www.apache.org/licenses/LICENSE-2.0
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.
15 {% set mlr_search = mlr_search or false %}
16 {% set vports = vports or 2 %}
17 {% set tolerance_low = tolerance_low or 0.0 %}
18 {% set tolerance_high = tolerance_high or 0.005 %}
19 {% set frame_size = frame_size or 64 %}
20 {% set tunnels = tunnels or 1 %}
21 {% set flow_count = flow_count or 1 %}
22 {% set worker_threads = worker_threads or [1] %}
24 schema: yardstick:task:0.1
26 This is the VPP IPSec performance tests based on the Data Plane Development
27 Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK SW
28 cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get
29 IPv4 traffic from TG with {{ frame_size }}B packet size and number of flows
30 is {{ flow_count }}, encrypt it and send to another DUT, where packets are
31 decrypted and sent back to TG. Measure successful transmit rate, throughput
32 NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency.
35 {% for worker_thread in worker_threads %}
38 traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml
41 topology: vpp-tg-topology-scale-up.yaml
43 tg__0: trafficgen.yardstick
44 vnf__0: vnf0.yardstick
45 vnf__1: vnf1.yardstick
49 allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }}
51 uplink: {'{{ frame_size }}B': 100}
52 downlink: {'{{ frame_size }}B': 100}
55 - '10.0.0.0-10.0.0.100'
57 - '20.0.0.0-20.0.0.100'
58 count: {{ flow_count }}
62 # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev
63 # Number of RX queues, default value: ${None}. Type: integer
64 vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T',
65 worker_threads: {{worker_thread}}}
69 vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T',
70 worker_threads: {{worker_thread}}}
77 tunnels: {{ tunnels }}
78 # Encryption algorithms - Integrity algorithm. Type: string
79 # Example: aes-gcm | cbc-sha1
80 crypto_algorithms: 'aes-gcm'
82 # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size
83 # for a 10 Gb/s Ethernet link and 64 bytes,
84 # maximum rate = 10*10^9/((64+8+12)*8)
85 max_rate: {{ (10 * 10 ** 9 / ((frame_size + 8 + 12) * 8)) | int }}
96 file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml