aboutsummaryrefslogtreecommitdiffstats
path: root/samples/vnf_samples/nsut/ipsec
diff options
context:
space:
mode:
Diffstat (limited to 'samples/vnf_samples/nsut/ipsec')
-rw-r--r--samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex.yaml89
-rw-r--r--samples/vnf_samples/nsut/ipsec/vpp-tg-topology-scale-up.yaml65
2 files changed, 154 insertions, 0 deletions
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
new file mode 100644
index 000000000..7d1f866d5
--- /dev/null
+++ b/samples/vnf_samples/nsut/ipsec/tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex.yaml
@@ -0,0 +1,89 @@
+# 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 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, 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: 'aes-gcm'
+ 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/vpp-tg-topology-scale-up.yaml b/samples/vnf_samples/nsut/ipsec/vpp-tg-topology-scale-up.yaml
new file mode 100644
index 000000000..067ef2425
--- /dev/null
+++ b/samples/vnf_samples/nsut/ipsec/vpp-tg-topology-scale-up.yaml
@@ -0,0 +1,65 @@
+# 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 vports = get(extra_args, 'vports', 2) %}
+
+nsd:nsd-catalog:
+ nsd:
+ - id: ipsec-tg-topology
+ name: ipsec-tg-topology
+ short-name: ipsec-tg-topology
+ description: ipsec-tg-topology
+ constituent-vnfd:
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_vpp_tpl.yaml # Traffic Generator
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/vpp_vnfd.yaml # IPSec
+ - member-vnf-index: '3'
+ vnfd-id-ref: vnf__1
+ VNF model: ../../vnf_descriptors/vpp_vnfd.yaml # IPSec
+ vld:
+{% for vport in range(0,vports,2|int) %}
+ - id: uplink_{{loop.index0}}
+ name: tg__0 to vnf__0 link {{ vport + 1 }}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{ vport }}
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{ vport }}
+ vnfd-id-ref: vnf__0
+ - id: ciphertext
+ name: vnf__0 to vnf__1 link {{ vport + 2 }}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe{{ vport + 1 }}
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '3'
+ vnfd-connection-point-ref: xe{{ vport + 1 }}
+ vnfd-id-ref: vnf__1
+ - id: downlink_{{loop.index0}}
+ name: vnf__1 to tg__0 link {{ vport + 3 }}
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '3'
+ vnfd-connection-point-ref: xe{{ vport }}
+ vnfd-id-ref: vnf__1
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{ vport + 1 }}
+ vnfd-id-ref: tg__0
+{% endfor %} \ No newline at end of file