diff options
Diffstat (limited to 'samples')
10 files changed, 755 insertions, 9 deletions
diff --git a/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_trex_tmpl.yaml b/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_trex_tmpl.yaml index 8af938ba1..f8074f44f 100644 --- a/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_trex_tmpl.yaml +++ b/samples/vnf_samples/nsut/agnostic/agnostic_vnf_topology_trex_tmpl.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. --- -{% set vports = get(extra_args, 'vports', '2') %} +{% set vports = get(extra_args, 'vports', 2) %} nsd:nsd-catalog: nsd: - id: agnostic-topology @@ -49,4 +49,4 @@ nsd:nsd-catalog: - member-vnf-index-ref: '1' vnfd-connection-point-ref: xe{{vport+1}} vnfd-id-ref: tg__0 -{% endfor %}
\ No newline at end of file +{% endfor %} diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_IMIX_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_IMIX_trex.yaml new file mode 100644 index 000000000..a9c0e4860 --- /dev/null +++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_IMIX_trex.yaml @@ -0,0 +1,95 @@ +# Copyright (c) 2019 Viosoft 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. + +{% set mlr_search = mlr_search or false %} +{% set vports = vports or 2 %} +{% set tolerance_low = tolerance_low or 0.0 %} +{% set tolerance_high = tolerance_high or 0.005 %} +{% set tunnels = tunnels or 1 %} +{% set flow_count = flow_count or 1 %} +{% set worker_threads = worker_threads or [1] %} +--- +schema: yardstick:task:0.1 +description: > + This is the VPP IPSec performance tests based on the Data Plane Development + Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK HW + cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get + IPv4 traffic from TG with IMIX packet size and number of flows is + {{ flow_count }}, encrypt it and send to another DUT, where packets are + decrypted and sent back to TG. Measure successful transmit rate, throughput + NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency. + +scenarios: +{% for worker_thread in worker_threads %} +- + type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml + extra_args: + vports: {{ vports }} + topology: vpp-tg-topology-scale-up.yaml + nodes: + tg__0: trafficgen.yardstick + vnf__0: vnf0.yardstick + vnf__1: vnf1.yardstick + options: + traffic_type: 4 + rfc2544: + allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }} + framesize: + uplink: {64B: 28, 570B: 16, 1518B: 4} + downlink: {64B: 28, 570B: 16, 1518B: 4} + flow: + src_ip: + - '10.0.0.0-10.0.0.100' + dst_ip: + - '20.0.0.0-20.0.0.100' + count: {{ flow_count }} + vnf__0: + collectd: + interval: 1 + # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev + # Number of RX queues, default value: ${None}. Type: integer + vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T', + worker_threads: {{ worker_thread }}} + vnf__1: + collectd: + interval: 1 + vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T', + worker_threads: {{ worker_thread }}} + tg__0: + collectd: + interval: 1 + queues_per_port: 7 + vpp_config: + # Number of tunnels + tunnels: {{ tunnels }} + # Encryption algorithms - Integrity algorithm. Type: string + # Example: aes-gcm | cbc-sha1 + crypto_algorithms: 'aes-gcm' +{% if mlr_search %} + # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size + # for a 10 Gb/s Ethernet link and IMIX packet size, + # maximum rate = 10*10^9/(((28*64+16*570+4*1518)/48+8+12)*8) + max_rate: 3351206 +{% endif %} + runner: + type: Duration + duration: 500 +{% endfor %} + +context: + type: Node + name: yardstick + nfvi_type: baremetal + file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml
\ No newline at end of file diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex.yaml new file mode 100644 index 000000000..84a7fe61b --- /dev/null +++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex.yaml @@ -0,0 +1,96 @@ +# Copyright (c) 2019 Viosoft 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. + +{% set mlr_search = mlr_search or false %} +{% set vports = vports or 2 %} +{% set tolerance_low = tolerance_low or 0.0 %} +{% set tolerance_high = tolerance_high or 0.005 %} +{% set frame_size = frame_size or 64 %} +{% set tunnels = tunnels or 1 %} +{% set flow_count = flow_count or 1 %} +{% set worker_threads = worker_threads or [1] %} +--- +schema: yardstick:task:0.1 +description: > + This is the VPP IPSec performance tests based on the Data Plane Development + Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK HW + cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get + IPv4 traffic from TG with {{ frame_size }}B packet size and number of flows + is {{ flow_count }}, encrypt it and send to another DUT, where packets are + decrypted and sent back to TG. Measure successful transmit rate, throughput + NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency. + +scenarios: +{% for worker_thread in worker_threads %} +- + type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml + extra_args: + vports: {{ vports }} + topology: vpp-tg-topology-scale-up.yaml + nodes: + tg__0: trafficgen.yardstick + vnf__0: vnf0.yardstick + vnf__1: vnf1.yardstick + options: + traffic_type: 4 + rfc2544: + allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }} + framesize: + uplink: {'{{ frame_size }}B': 100} + downlink: {'{{ frame_size }}B': 100} + flow: + src_ip: + - '10.0.0.0-10.0.0.100' + dst_ip: + - '20.0.0.0-20.0.0.100' + count: {{ flow_count }} + vnf__0: + collectd: + interval: 1 + # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev + # Number of RX queues, default value: ${None}. Type: integer + vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T', + worker_threads: {{ worker_thread }}} + vnf__1: + collectd: + interval: 1 + vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T', + worker_threads: {{ worker_thread }}} + tg__0: + collectd: + interval: 1 + queues_per_port: 7 + vpp_config: + # Number of tunnels + tunnels: {{ tunnels }} + # Encryption algorithms - Integrity algorithm. Type: string + # Example: aes-gcm | cbc-sha1 + crypto_algorithms: 'aes-gcm' +{% if mlr_search %} + # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size + # for a 10 Gb/s Ethernet link and 64 bytes, + # maximum rate = 10*10^9/((64+8+12)*8) + max_rate: {{ (10 * 10 ** 9 / ((frame_size + 8 + 12) * 8)) | int }} +{% endif %} + runner: + type: Duration + duration: 500 +{% endfor %} + +context: + type: Node + name: yardstick + nfvi_type: baremetal + file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml
\ No newline at end of file diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_IMIX_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_IMIX_trex.yaml new file mode 100644 index 000000000..07afe809e --- /dev/null +++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_IMIX_trex.yaml @@ -0,0 +1,95 @@ +# Copyright (c) 2019 Viosoft 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. + +{% set mlr_search = mlr_search or false %} +{% set vports = vports or 2 %} +{% set tolerance_low = tolerance_low or 0.0 %} +{% set tolerance_high = tolerance_high or 0.005 %} +{% set tunnels = tunnels or 1 %} +{% set flow_count = flow_count or 1 %} +{% set worker_threads = worker_threads or [1] %} +--- +schema: yardstick:task:0.1 +description: > + This is the VPP IPSec performance tests based on the Data Plane Development + Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK HW + cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get + IPv4 traffic from TG with IMIX packet size and number of flows is + {{ flow_count }}, encrypt it and send to another DUT, where packets are + decrypted and sent back to TG. Measure successful transmit rate, throughput + NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency. + +scenarios: +{% for worker_thread in worker_threads %} +- + type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml + extra_args: + vports: {{ vports }} + topology: vpp-tg-topology-scale-up.yaml + nodes: + tg__0: trafficgen.yardstick + vnf__0: vnf0.yardstick + vnf__1: vnf1.yardstick + options: + traffic_type: 4 + rfc2544: + allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }} + framesize: + uplink: {64B: 28, 570B: 16, 1518B: 4} + downlink: {64B: 28, 570B: 16, 1518B: 4} + flow: + src_ip: + - '10.0.0.0-10.0.0.100' + dst_ip: + - '20.0.0.0-20.0.0.100' + count: {{ flow_count }} + vnf__0: + collectd: + interval: 1 + # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev + # Number of RX queues, default value: ${None}. Type: integer + vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T', + worker_threads: {{ worker_thread }}} + vnf__1: + collectd: + interval: 1 + vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T', + worker_threads: {{ worker_thread }}} + tg__0: + collectd: + interval: 1 + queues_per_port: 7 + vpp_config: + # Number of tunnels + tunnels: {{ tunnels }} + # Encryption algorithms - Integrity algorithm. Type: string + # Example: aes-gcm | cbc-sha1 + crypto_algorithms: 'cbc-sha1' +{% if mlr_search %} + # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size + # for a 10 Gb/s Ethernet link and IMIX packet size, + # maximum rate = 10*10^9/(((28*64+16*570+4*1518)/48+8+12)*8) + max_rate: 3351206 +{% endif %} + runner: + type: Duration + duration: 500 +{% endfor %} + +context: + type: Node + name: yardstick + nfvi_type: baremetal + file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml
\ No newline at end of file diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_trex.yaml new file mode 100644 index 000000000..9e210aeed --- /dev/null +++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_trex.yaml @@ -0,0 +1,96 @@ +# Copyright (c) 2019 Viosoft 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. + +{% set mlr_search = mlr_search or false %} +{% set vports = vports or 2 %} +{% set tolerance_low = tolerance_low or 0.0 %} +{% set tolerance_high = tolerance_high or 0.005 %} +{% set frame_size = frame_size or 64 %} +{% set tunnels = tunnels or 1 %} +{% set flow_count = flow_count or 1 %} +{% set worker_threads = worker_threads or [1] %} +--- +schema: yardstick:task:0.1 +description: > + This is the VPP IPSec performance tests based on the Data Plane Development + Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK HW + cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get + IPv4 traffic from TG with {{ frame_size }}B packet size and number of flows + is {{ flow_count }}, encrypt it and send to another DUT, where packets are + decrypted and sent back to TG. Measure successful transmit rate, throughput + NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency. + +scenarios: +{% for worker_thread in worker_threads %} +- + type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml + extra_args: + vports: {{ vports }} + topology: vpp-tg-topology-scale-up.yaml + nodes: + tg__0: trafficgen.yardstick + vnf__0: vnf0.yardstick + vnf__1: vnf1.yardstick + options: + traffic_type: 4 + rfc2544: + allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }} + framesize: + uplink: {'{{ frame_size }}B': 100} + downlink: {'{{ frame_size }}B': 100} + flow: + src_ip: + - '10.0.0.0-10.0.0.100' + dst_ip: + - '20.0.0.0-20.0.0.100' + count: {{ flow_count }} + vnf__0: + collectd: + interval: 1 + # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev + # Number of RX queues, default value: ${None}. Type: integer + vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T', + worker_threads: {{ worker_thread }}} + vnf__1: + collectd: + interval: 1 + vnf_config: {crypto_type: 'HW_cryptodev', rxq: 1, worker_config: '1C/1T', + worker_threads: {{ worker_thread }}} + tg__0: + collectd: + interval: 1 + queues_per_port: 7 + vpp_config: + # Number of tunnels + tunnels: {{ tunnels }} + # Encryption algorithms - Integrity algorithm. Type: string + # Example: aes-gcm | cbc-sha1 + crypto_algorithms: 'cbc-sha1' +{% if mlr_search %} + # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size + # for a 10 Gb/s Ethernet link and 64 bytes, + # maximum rate = 10*10^9/((64+8+12)*8) + max_rate: {{ (10 * 10 ** 9 / ((frame_size + 8 + 12) * 8)) | int }} +{% endif %} + runner: + type: Duration + duration: 500 +{% endfor %} + +context: + type: Node + name: yardstick + nfvi_type: baremetal + file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml
\ No newline at end of file diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_IMIX_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_IMIX_trex.yaml new file mode 100644 index 000000000..ac7fceef6 --- /dev/null +++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_IMIX_trex.yaml @@ -0,0 +1,95 @@ +# Copyright (c) 2019 Viosoft 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. + +{% set mlr_search = mlr_search or false %} +{% set vports = vports or 2 %} +{% set tolerance_low = tolerance_low or 0.0 %} +{% set tolerance_high = tolerance_high or 0.005 %} +{% set tunnels = tunnels or 1 %} +{% set flow_count = flow_count or 1 %} +{% set worker_threads = worker_threads or [1] %} +--- +schema: yardstick:task:0.1 +description: > + This is the VPP IPSec performance tests based on the Data Plane Development + Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK SW + cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get + IPv4 traffic from TG with IMIX packet size and number of flows is + {{ flow_count }}, encrypt it and send to another DUT, where packets are + decrypted and sent back to TG. Measure successful transmit rate, throughput + NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency. + +scenarios: +{% for worker_thread in worker_threads %} +- + type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml + extra_args: + vports: {{ vports }} + topology: vpp-tg-topology-scale-up.yaml + nodes: + tg__0: trafficgen.yardstick + vnf__0: vnf0.yardstick + vnf__1: vnf1.yardstick + options: + traffic_type: 4 + rfc2544: + allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }} + framesize: + uplink: {64B: 28, 570B: 16, 1518B: 4} + downlink: {64B: 28, 570B: 16, 1518B: 4} + flow: + src_ip: + - '10.0.0.0-10.0.0.100' + dst_ip: + - '20.0.0.0-20.0.0.100' + count: {{ flow_count }} + vnf__0: + collectd: + interval: 1 + # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev + # Number of RX queues, default value: ${None}. Type: integer + vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T', + worker_threads: {{ worker_thread }}} + vnf__1: + collectd: + interval: 1 + vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T', + worker_threads: {{ worker_thread }}} + tg__0: + collectd: + interval: 1 + queues_per_port: 7 + vpp_config: + # Number of tunnels + tunnels: {{ tunnels }} + # Encryption algorithms - Integrity algorithm. Type: string + # Example: aes-gcm | cbc-sha1 + crypto_algorithms: 'aes-gcm' +{% if mlr_search %} + # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size + # for a 10 Gb/s Ethernet link and IMIX packet size, + # maximum rate = 10*10^9/(((28*64+16*570+4*1518)/48+8+12)*8) + max_rate: 3351206 +{% endif %} + runner: + type: Duration + duration: 500 +{% endfor %} + +context: + type: Node + name: yardstick + nfvi_type: baremetal + file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml
\ No newline at end of file diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex.yaml index 7d1f866d5..82f27112d 100644 --- a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex.yaml +++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex.yaml @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +{% set mlr_search = mlr_search or false %} {% set vports = vports or 2 %} {% set tolerance_low = tolerance_low or 0.0 %} {% set tolerance_high = tolerance_high or 0.005 %} @@ -22,13 +23,13 @@ --- schema: yardstick:task:0.1 description: > - This is the VPP IPSec performance tests based on the Data Plane - Development Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured - with DPDK SW cryptodev devices and {{ tunnels }} IPsec tunnels between - them. DUTs get IPv4 traffic from TG with {{ frame_size }}B packet size - and number of flows is {{ flow_count }}, encrypt it and send to another - DUT, where packets are decrypted and sent back to TG. Measure successful - transmit rate, throughput, latency. + This is the VPP IPSec performance tests based on the Data Plane Development + Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK SW + cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get + IPv4 traffic from TG with {{ frame_size }}B packet size and number of flows + is {{ flow_count }}, encrypt it and send to another DUT, where packets are + decrypted and sent back to TG. Measure successful transmit rate, throughput + NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency. scenarios: {% for worker_thread in worker_threads %} @@ -77,6 +78,12 @@ scenarios: # Encryption algorithms - Integrity algorithm. Type: string # Example: aes-gcm | cbc-sha1 crypto_algorithms: 'aes-gcm' +{% if mlr_search %} + # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size + # for a 10 Gb/s Ethernet link and 64 bytes, + # maximum rate = 10*10^9/((64+8+12)*8) + max_rate: {{ (10 * 10 ** 9 / ((frame_size + 8 + 12) * 8)) | int }} +{% endif %} runner: type: Duration duration: 500 diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_IMIX_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_IMIX_trex.yaml new file mode 100644 index 000000000..d3bc14a97 --- /dev/null +++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_IMIX_trex.yaml @@ -0,0 +1,95 @@ +# Copyright (c) 2019 Viosoft 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. + +{% set mlr_search = mlr_search or false %} +{% set vports = vports or 2 %} +{% set tolerance_low = tolerance_low or 0.0 %} +{% set tolerance_high = tolerance_high or 0.005 %} +{% set tunnels = tunnels or 1 %} +{% set flow_count = flow_count or 1 %} +{% set worker_threads = worker_threads or [1] %} +--- +schema: yardstick:task:0.1 +description: > + This is the VPP IPSec performance tests based on the Data Plane Development + Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK SW + cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get + IPv4 traffic from TG with IMIX packet size and number of flows is + {{ flow_count }}, encrypt it and send to another DUT, where packets are + decrypted and sent back to TG. Measure successful transmit rate, throughput + NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency. + +scenarios: +{% for worker_thread in worker_threads %} +- + type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml + extra_args: + vports: {{ vports }} + topology: vpp-tg-topology-scale-up.yaml + nodes: + tg__0: trafficgen.yardstick + vnf__0: vnf0.yardstick + vnf__1: vnf1.yardstick + options: + traffic_type: 4 + rfc2544: + allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }} + framesize: + uplink: {64B: 28, 570B: 16, 1518B: 4} + downlink: {64B: 28, 570B: 16, 1518B: 4} + flow: + src_ip: + - '10.0.0.0-10.0.0.100' + dst_ip: + - '20.0.0.0-20.0.0.100' + count: {{ flow_count }} + vnf__0: + collectd: + interval: 1 + # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev + # Number of RX queues, default value: ${None}. Type: integer + vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T', + worker_threads: {{ worker_thread }}} + vnf__1: + collectd: + interval: 1 + vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T', + worker_threads: {{ worker_thread }}} + tg__0: + collectd: + interval: 1 + queues_per_port: 7 + vpp_config: + # Number of tunnels + tunnels: {{ tunnels }} + # Encryption algorithms - Integrity algorithm. Type: string + # Example: aes-gcm | cbc-sha1 + crypto_algorithms: 'cbc-sha1' +{% if mlr_search %} + # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size + # for a 10 Gb/s Ethernet link and IMIX packet size, + # maximum rate = 10*10^9/(((28*64+16*570+4*1518)/48+8+12)*8) + max_rate: 3351206 +{% endif %} + runner: + type: Duration + duration: 500 +{% endfor %} + +context: + type: Node + name: yardstick + nfvi_type: baremetal + file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml
\ No newline at end of file diff --git a/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_trex.yaml b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_trex.yaml new file mode 100644 index 000000000..a70aa49f7 --- /dev/null +++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_trex.yaml @@ -0,0 +1,96 @@ +# Copyright (c) 2019 Viosoft 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. + +{% set mlr_search = mlr_search or false %} +{% set vports = vports or 2 %} +{% set tolerance_low = tolerance_low or 0.0 %} +{% set tolerance_high = tolerance_high or 0.005 %} +{% set frame_size = frame_size or 64 %} +{% set tunnels = tunnels or 1 %} +{% set flow_count = flow_count or 1 %} +{% set worker_threads = worker_threads or [1] %} +--- +schema: yardstick:task:0.1 +description: > + This is the VPP IPSec performance tests based on the Data Plane Development + Kit (DPDK) Cryptodev framework. DUT1 and DUT2 are configured with DPDK SW + cryptodev devices and {{ tunnels }} IPsec tunnels between them. DUTs get + IPv4 traffic from TG with {{ frame_size }}B packet size and number of flows + is {{ flow_count }}, encrypt it and send to another DUT, where packets are + decrypted and sent back to TG. Measure successful transmit rate, throughput + NDR/PDR with MLR search is {{ "enabled" if mlr_search else "disabled" }}, latency. + +scenarios: +{% for worker_thread in worker_threads %} +- + type: NSPerf + traffic_profile: ../../traffic_profiles/ipv4_throughput_latency_vpp.yaml + extra_args: + vports: {{ vports }} + topology: vpp-tg-topology-scale-up.yaml + nodes: + tg__0: trafficgen.yardstick + vnf__0: vnf0.yardstick + vnf__1: vnf1.yardstick + options: + traffic_type: 4 + rfc2544: + allowed_drop_rate: {{ tolerance_low }} - {{ tolerance_high }} + framesize: + uplink: {'{{ frame_size }}B': 100} + downlink: {'{{ frame_size }}B': 100} + flow: + src_ip: + - '10.0.0.0-10.0.0.100' + dst_ip: + - '20.0.0.0-20.0.0.100' + count: {{ flow_count }} + vnf__0: + collectd: + interval: 1 + # Crypto device type. Type: string - *Example:* HW_cryptodev | SW_cryptodev + # Number of RX queues, default value: ${None}. Type: integer + vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T', + worker_threads: {{ worker_thread }}} + vnf__1: + collectd: + interval: 1 + vnf_config: {crypto_type: 'SW_cryptodev', rxq: 1, worker_config: '1C/1T', + worker_threads: {{ worker_thread }}} + tg__0: + collectd: + interval: 1 + queues_per_port: 7 + vpp_config: + # Number of tunnels + tunnels: {{ tunnels }} + # Encryption algorithms - Integrity algorithm. Type: string + # Example: aes-gcm | cbc-sha1 + crypto_algorithms: 'cbc-sha1' +{% if mlr_search %} + # Maximum Frame Rate depend on Ethernet Link Speed and Frame Size + # for a 10 Gb/s Ethernet link and 64 bytes, + # maximum rate = 10*10^9/((64+8+12)*8) + max_rate: {{ (10 * 10 ** 9 / ((frame_size + 8 + 12) * 8)) | int }} +{% endif %} + runner: + type: Duration + duration: 500 +{% endfor %} + +context: + type: Node + name: yardstick + nfvi_type: baremetal + file: /etc/yardstick/nodes/vpp-baremetal-{{ vports }}.yaml
\ No newline at end of file diff --git a/samples/vnf_samples/traffic_profiles/ipv4_throughput_latency_vpp.yaml b/samples/vnf_samples/traffic_profiles/ipv4_throughput_latency_vpp.yaml new file mode 100644 index 000000000..1add9bfb4 --- /dev/null +++ b/samples/vnf_samples/traffic_profiles/ipv4_throughput_latency_vpp.yaml @@ -0,0 +1,71 @@ +# Copyright (c) 2019 Viosoft 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: "nsb:traffic_profile:0.1" + +# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator + +name: rfc2544 +description: Traffic profile to run RFC2544 latency +traffic_profile: + traffic_type: VppRFC2544Profile # defines traffic behavior - constant or look for highest possible throughput + enable_latency: true + test_precision: 0.1 + duration: 30 + lower_bound: 1.0 + upper_bound: 100.0 + step_interval: 0.5 + frame_rate: 100 # pc of linerate + +uplink_0: + ipv4: + id: 1 + outer_l2: + framesize: + 64B: "{{get(imix, 'imix.uplink.64B', '0') }}" + 128B: "{{get(imix, 'imix.uplink.128B', '0') }}" + 256B: "{{get(imix, 'imix.uplink.256B', '0') }}" + 373B: "{{get(imix, 'imix.uplink.373B', '0') }}" + 512B: "{{get(imix, 'imix.uplink.512B', '0') }}" + 570B: "{{get(imix, 'imix.uplink.570B', '0') }}" + 1024B: "{{get(imix, 'imix.uplink.1024B', '0') }}" + 1280B: "{{get(imix, 'imix.uplink.1280B', '0') }}" + 1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}" + 1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}" + 1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}" + outer_l3v4: + proto: 61 + srcip4: "{{get(flow, 'flow.src_ip_0', '10.0.0.0-10.0.0.100') }}" + dstip4: "{{get(flow, 'flow.dst_ip_0', '20.0.0.0-20.0.0.100') }}" + count: "{{get(flow, 'flow.count', '1') }}" +downlink_0: + ipv4: + id: 2 + outer_l2: + framesize: + 64B: "{{ get(imix, 'imix.downlink.64B', '0') }}" + 128B: "{{ get(imix, 'imix.downlink.128B', '0') }}" + 256B: "{{ get(imix, 'imix.downlink.256B', '0') }}" + 373b: "{{ get(imix, 'imix.downlink.373B', '0') }}" + 512B: "{{ get(imix, 'imix.downlink.512B', '0') }}" + 570B: "{{get(imix, 'imix.downlink.570B', '0') }}" + 1024B: "{{get(imix, 'imix.downlink.1024B', '0') }}" + 1280B: "{{get(imix, 'imix.downlink.1280B', '0') }}" + 1400B: "{{get(imix, 'imix.downlink.1400B', '0') }}" + 1500B: "{{get(imix, 'imix.downlink.1500B', '0') }}" + 1518B: "{{get(imix, 'imix.downlink.1518B', '0') }}" + outer_l3v4: + proto: 61 + srcip4: "{{get(flow, 'flow.dst_ip_0', '20.0.0.0-20.0.0.100') }}" + dstip4: "{{get(flow, 'flow.src_ip_0', '10.0.0.0-10.0.0.100') }}" + count: "{{get(flow, 'flow.count', '1') }}"
\ No newline at end of file |