Add vIPSEC testcases 57/65257/9
authortreyad <treyad@viosoft.com>
Tue, 20 Nov 2018 09:56:05 +0000 (01:56 -0800)
committertreyad <treyad@viosoft.com>
Mon, 25 Feb 2019 08:00:15 +0000 (00:00 -0800)
Test description files for Baremetal

JIRA: YARDSTICK-1487

Change-Id: Ifcbf022bd0625282fc0256316909bcef840929b3
Signed-off-by: treyad <treyad@viosoft.com>
samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_IMIX_trex.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_IMIX_trex.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_hw_cbcsha1_trex.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_IMIX_trex.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex.yaml
samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_IMIX_trex.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_cbcsha1_trex.yaml [new file with mode: 0644]

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 (file)
index 0000000..a9c0e48
--- /dev/null
@@ -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 (file)
index 0000000..84a7fe6
--- /dev/null
@@ -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 (file)
index 0000000..07afe80
--- /dev/null
@@ -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 (file)
index 0000000..9e210ae
--- /dev/null
@@ -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 (file)
index 0000000..ac7fcee
--- /dev/null
@@ -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
index 7d1f866..82f2711 100644 (file)
@@ -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 %}
 ---
 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 (file)
index 0000000..d3bc14a
--- /dev/null
@@ -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 (file)
index 0000000..a70aa49
--- /dev/null
@@ -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