From af05b72edc65aaecd6efc635eef9902a32d247ee Mon Sep 17 00:00:00 2001 From: Yulong Pei Date: Thu, 21 Mar 2019 18:24:46 +0800 Subject: [PATCH] Add ipsec crypto test for Denverton platform add ipsec cryto test to support Denverton hardware crypto device C3xxx. replace HW_cryptodev keyword to HW_DH895xcc or HW_C3xxx, or add more other hardware crypto device type support in the future. Change-Id: I181bca4095757fde7ca45ab3856273ac5930d902 Signed-off-by: Yulong Pei --- resources/libraries/python/DUTSetup.py | 28 +++- .../robot/performance/performance_setup.robot | 20 +-- resources/libraries/robot/shared/default.robot | 14 +- ...thip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.robot | 160 +++++++++++++++++++ ...p4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.robot | 165 +++++++++++++++++++ ...hip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.robot | 155 ++++++++++++++++++ ...4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.robot | 160 +++++++++++++++++++ ...thip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.robot | 166 +++++++++++++++++++ ...p4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.robot | 171 ++++++++++++++++++++ ...hip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.robot | 160 +++++++++++++++++++ ...4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.robot | 165 +++++++++++++++++++ ...ip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.robot | 162 +++++++++++++++++++ ...ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.robot | 167 +++++++++++++++++++ ...p4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.robot | 157 ++++++++++++++++++ ...psecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.robot | 162 +++++++++++++++++++ ...ip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.robot | 171 ++++++++++++++++++++ ...ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.robot | 176 +++++++++++++++++++++ ...p4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.robot | 166 +++++++++++++++++++ ...psecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.robot | 171 ++++++++++++++++++++ ...ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.robot | 162 +++++++++++++++++++ ...ecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.robot | 167 +++++++++++++++++++ ...psecscale1000tnl-ip4base-int-cbc-sha1-mrr.robot | 155 ++++++++++++++++++ ...cscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.robot | 160 +++++++++++++++++++ ...ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.robot | 168 ++++++++++++++++++++ ...ecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.robot | 173 ++++++++++++++++++++ ...psecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.robot | 161 +++++++++++++++++++ ...cscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.robot | 166 +++++++++++++++++++ ...thip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.robot | 2 +- ...p4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.robot | 2 +- ...hip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.robot | 2 +- ...4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.robot | 2 +- ...thip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.robot | 2 +- ...p4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.robot | 2 +- ...hip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.robot | 2 +- ...4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.robot | 2 +- ...ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.robot | 2 +- ...ecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.robot | 2 +- ...psecscale1000tnl-ip4base-int-cbc-sha1-mrr.robot | 2 +- ...cscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.robot | 2 +- ...ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.robot | 2 +- ...ecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.robot | 2 +- ...psecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.robot | 2 +- ...cscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.robot | 2 +- ...thip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.robot | 2 +- ...p4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.robot | 2 +- 45 files changed, 4003 insertions(+), 41 deletions(-) create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.robot create mode 100644 tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.robot diff --git a/resources/libraries/python/DUTSetup.py b/resources/libraries/python/DUTSetup.py index 69594ef36a..67edefb930 100644 --- a/resources/libraries/python/DUTSetup.py +++ b/resources/libraries/python/DUTSetup.py @@ -206,17 +206,19 @@ class DUTSetup(object): return pids @staticmethod - def crypto_device_verify(node, force_init=False, numvfs=32): + def crypto_device_verify(node, crypto_type, numvfs, force_init=False): """Verify if Crypto QAT device virtual functions are initialized on all DUTs. If parameter force initialization is set to True, then try to initialize or remove VFs on QAT. :param node: DUT node. - :param force_init: If True then try to initialize to specific value. + :crypto_type: Crypto device type - HW_DH895xcc or HW_C3xxx. :param numvfs: Number of VFs to initialize, 0 - disable the VFs. + :param force_init: If True then try to initialize to specific value. :type node: dict - :type force_init: bool + :type crypto_type: string :type numvfs: int + :type force_init: bool :returns: nothing :raises RuntimeError: If QAT VFs are not created and force init is set to False. @@ -227,26 +229,38 @@ class DUTSetup(object): if sriov_numvfs != numvfs: if force_init: # QAT is not initialized and we want to initialize with numvfs - DUTSetup.crypto_device_init(node, numvfs) + DUTSetup.crypto_device_init(node, crypto_type, numvfs) else: raise RuntimeError('QAT device failed to create VFs on {host}'. format(host=node['host'])) @staticmethod - def crypto_device_init(node, numvfs): + def crypto_device_init(node, crypto_type, numvfs): """Init Crypto QAT device virtual functions on DUT. :param node: DUT node. + :crypto_type: Crypto device type - HW_DH895xcc or HW_C3xxx. :param numvfs: Number of VFs to initialize, 0 - disable the VFs. :type node: dict + :type crypto_type: string :type numvfs: int :returns: nothing :raises RuntimeError: If failed to stop VPP or QAT failed to initialize. """ + if crypto_type == "HW_DH895xcc": + kernel_mod = "qat_dh895xcc" + kernel_drv = "dh895xcc" + elif crypto_type == "HW_C3xxx": + kernel_mod = "qat_c3xxx" + kernel_drv = "c3xxx" + else: + raise RuntimeError('Unsupported crypto device type on {host}'. + format(host=node['host'])) + pci_addr = Topology.get_cryptodev(node) # QAT device must be re-bound to kernel driver before initialization. - DUTSetup.verify_kernel_module(node, 'qat_dh895xcc', force_load=True) + DUTSetup.verify_kernel_module(node, kernel_mod, force_load=True) # Stop VPP to prevent deadlock. DUTSetup.stop_service(node, Constants.VPP_UNIT) @@ -257,7 +271,7 @@ class DUTSetup(object): DUTSetup.pci_driver_unbind(node, pci_addr) # Bind to kernel driver. - DUTSetup.pci_driver_bind(node, pci_addr, 'dh895xcc') + DUTSetup.pci_driver_bind(node, pci_addr, kernel_drv) # Initialize QAT VFs. if numvfs > 0: diff --git a/resources/libraries/robot/performance/performance_setup.robot b/resources/libraries/robot/performance/performance_setup.robot index ae3e03a64d..f484eeb71f 100644 --- a/resources/libraries/robot/performance/performance_setup.robot +++ b/resources/libraries/robot/performance/performance_setup.robot @@ -447,25 +447,25 @@ | | ... | *Arguments:* | | ... | - topology_type - Topology type. Type: string | | ... | - nic_model - Interface model. Type: string -| | ... | - crypto_type - Crypto device type - HW_cryptodev or SW_cryptodev -| | ... | (Optional). Type: string, default value: HW_cryptodev +| | ... | - crypto_type - Crypto device type - HW_DH895xcc or HW_C3xxx or +| | ... | SW_cryptodev. Type: string, default value: HW_DH895xcc | | ... | | ... | *Example:* | | ... | | ... | \| Set up IPSec performance test suite \| L2 \ -| | ... | \| Intel-X520-DA2 \| +| | ... | \| Intel-X520-DA2 \| HW_DH895xcc \| | | ... -| | [Arguments] | ${topology_type} | ${nic_model} | ${crypto_type}=HW_cryptodev +| | [Arguments] | ${topology_type} | ${nic_model} | ${crypto_type}=HW_DH895xcc | | ... | | Set up 3-node performance topology with DUT's NIC model | | ... | ${topology_type} | ${nic_model} +| | Return From Keyword If | '${crypto_type}' == 'SW_cryptodev' | | ${numvfs}= | Set Variable If -| | ... | '${crypto_type}' == 'HW_cryptodev' | ${32} -| | Run Keyword If | '${crypto_type}' == 'HW_cryptodev' -| | ... | Configure crypto device on all DUTs | force_init=${True} -| | ... | numvfs=${numvfs} -| | Run Keyword If | '${crypto_type}' == 'HW_cryptodev' -| | ... | Configure kernel module on all DUTs | vfio_pci | force_load=${True} +| | ... | '${crypto_type}' == 'HW_DH895xcc' | ${32} +| | ... | '${crypto_type}' == 'HW_C3xxx' | ${16} +| | Configure crypto device on all DUTs | ${crypto_type} | numvfs=${numvfs} +| | ... | force_init=${True} +| | Configure kernel module on all DUTs | vfio_pci | force_load=${True} | Set up performance test suite with MEMIF | | [Documentation] diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot index 954f88109a..70f5da837b 100644 --- a/resources/libraries/robot/shared/default.robot +++ b/resources/libraries/robot/shared/default.robot @@ -82,20 +82,22 @@ | | ... | try to initialize/disable. | | ... | | ... | *Arguments:* -| | ... | - force_init - Force to initialize. Type: boolean +| | ... | - crypto_type - Crypto device type - HW_DH895xcc or HW_C3xxx. +| | ... | Type: string, default value: HW_DH895xcc | | ... | - numvfs - Number of VFs to initialize, 0 - disable the VFs -| | ... | (Optional). Type: integer, default value: ${32} +| | ... | Type: integer, default value: ${32} +| | ... | - force_init - Force to initialize. Type: boolean | | ... | | ... | *Example:* | | ... -| | ... | \| Configure crypto device on all DUTs \| ${True} \| +| | ... | \| Configure crypto device on all DUTs \| HW_DH895xcc \| ${32} \| | | ... -| | [Arguments] | ${force_init}=${False} | ${numvfs}=${32} +| | [Arguments] | ${crypto_type} | ${numvfs} | ${force_init}=${False} | | ... | | ${duts}= | Get Matches | ${nodes} | DUT* | | :FOR | ${dut} | IN | @{duts} -| | | Crypto Device Verify | ${nodes['${dut}']} | force_init=${force_init} -| | | ... | numvfs=${numvfs} +| | | Crypto Device Verify | ${nodes['${dut}']} | ${crypto_type} +| | | ... | ${numvfs} | force_init=${force_init} | Configure AVF interfaces on all DUTs | | [Documentation] | Configure virtual functions for AVF interfaces on PCI diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.robot new file mode 100644 index 0000000000..7548df73a6 --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.robot @@ -0,0 +1,160 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance mrr test +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | ${encr_alg} = | Crypto Alg AES GCM 128 +| | ${auth_alg} = | Integ Alg AES GCM 128 +| | ${ipsec_proto} = | IPsec Proto ESP +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And Initialize IPSec in 3-node circular topology +| | And VPP IPsec Create Tunnel Interfaces +| | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${dut1_if2} +| | ... | ${dut2_if1} | ${n_tunnels} | ${encr_alg} | ${encr_key} | ${auth_alg} +| | ... | ${auth_key} | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.robot new file mode 100644 index 0000000000..34fd80d2d6 --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.robot @@ -0,0 +1,165 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${encr_alg} = | Crypto Alg AES GCM 128 +| | ${auth_alg} = | Integ Alg AES GCM 128 +| | ${ipsec_proto} = | IPsec Proto ESP +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And Initialize IPSec in 3-node circular topology +| | And VPP IPsec Create Tunnel Interfaces +| | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${dut1_if2} +| | ... | ${dut2_if1} | ${n_tunnels} | ${encr_alg} | ${encr_key} | ${auth_alg} +| | ... | ${auth_key} | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.robot new file mode 100644 index 0000000000..b6e40ad345 --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.robot @@ -0,0 +1,155 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance mrr test +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${58} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | ${encr_alg} = | Crypto Alg AES CBC 128 +| | ${auth_alg} = | Integ Alg SHA1 96 +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And Initialize IPSec in 3-node circular topology +| | And VPP IPsec Create Tunnel Interfaces +| | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${dut1_if2} +| | ... | ${dut2_if1} | ${n_tunnels} | ${encr_alg} | ${encr_key} | ${auth_alg} +| | ... | ${auth_key} | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.robot new file mode 100644 index 0000000000..d6747e0e94 --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.robot @@ -0,0 +1,160 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${58} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${encr_alg} = | Crypto Alg AES CBC 128 +| | ${auth_alg} = | Integ Alg SHA1 96 +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And Initialize IPSec in 3-node circular topology +| | And VPP IPsec Create Tunnel Interfaces +| | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${dut1_if2} +| | ... | ${dut2_if1} | ${n_tunnels} | ${encr_alg} | ${encr_key} | ${auth_alg} +| | ... | ${auth_key} | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.robot new file mode 100644 index 0000000000..5c48610bbc --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.robot @@ -0,0 +1,166 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance mrr test +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | ${encr_alg} = | Crypto Alg AES GCM 128 +| | ${auth_alg} = | Integ Alg AES GCM 128 +| | ${ipsec_proto} = | IPsec Proto ESP +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And Initialize IPSec in 3-node circular topology +| | And Vpp Route Add | ${dut1} | ${raddr_ip4} | 8 | gateway=${dut2_if1_ip4} +| | ... | interface=${dut1_if2} +| | And Vpp Route Add | ${dut2} | ${laddr_ip4} | 8 | gateway=${dut1_if2_ip4} +| | ... | interface=${dut2_if1} +| | And VPP IPsec Add Multiple Tunnels +| | ... | ${dut1} | ${dut2} | ${dut1_if2} | ${dut2_if1} | ${n_tunnels} +| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} +| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${laddr_ip4} | ${raddr_ip4} +| | ... | ${addr_range} +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.robot new file mode 100644 index 0000000000..2628d62659 --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.robot @@ -0,0 +1,171 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in number +| ... | of packets transmitted. NDR is discovered for different +| ... | number of IPsec tunnels using MLRsearch library. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${encr_alg} = | Crypto Alg AES GCM 128 +| | ${auth_alg} = | Integ Alg AES GCM 128 +| | ${ipsec_proto} = | IPsec Proto ESP +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And Initialize IPSec in 3-node circular topology +| | And Vpp Route Add | ${dut1} | ${raddr_ip4} | 8 | gateway=${dut2_if1_ip4} +| | ... | interface=${dut1_if2} +| | And Vpp Route Add | ${dut2} | ${laddr_ip4} | 8 | gateway=${dut1_if2_ip4} +| | ... | interface=${dut2_if1} +| | And VPP IPsec Add Multiple Tunnels +| | ... | ${dut1} | ${dut2} | ${dut1_if2} | ${dut2_if1} | ${n_tunnels} +| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} +| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${laddr_ip4} | ${raddr_ip4} +| | ... | ${addr_range} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.robot new file mode 100644 index 0000000000..21e2609ac0 --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.robot @@ -0,0 +1,160 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance mrr test +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${58} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | ${encr_alg} = | Crypto Alg AES CBC 128 +| | ${auth_alg} = | Integ Alg SHA1 96 +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And Initialize IPSec in 3-node circular topology +| | And Vpp Route Add | ${dut1} | ${raddr_ip4} | 8 | gateway=${dut2_if1_ip4} +| | ... | interface=${dut1_if2} +| | And Vpp Route Add | ${dut2} | ${laddr_ip4} | 8 | gateway=${dut1_if2_ip4} +| | ... | interface=${dut2_if1} +| | And VPP IPsec Add Multiple Tunnels +| | ... | ${dut1} | ${dut2} | ${dut1_if2} | ${dut2_if1} | ${n_tunnels} +| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} +| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${laddr_ip4} | ${raddr_ip4} +| | ... | ${addr_range} +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.robot new file mode 100644 index 0000000000..b9eed98beb --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.robot @@ -0,0 +1,165 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in number +| ... | of packets transmitted. NDR is discovered for different +| ... | number of IPsec tunnels using MLRsearch library. +| ... | TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${58} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUTs run 1 IPsec tunnel CBC-SHA1 in each direction. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${encr_alg} = | Crypto Alg AES CBC 128 +| | ${auth_alg} = | Integ Alg SHA1 96 +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And Initialize IPSec in 3-node circular topology +| | And Vpp Route Add | ${dut1} | ${raddr_ip4} | 8 | gateway=${dut2_if1_ip4} +| | ... | interface=${dut1_if2} +| | And Vpp Route Add | ${dut2} | ${laddr_ip4} | 8 | gateway=${dut1_if2_ip4} +| | ... | interface=${dut2_if1} +| | And VPP IPsec Add Multiple Tunnels +| | ... | ${dut1} | ${dut2} | ${dut1_if2} | ${dut2_if1} | ${n_tunnels} +| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} +| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${laddr_ip4} | ${raddr_ip4} +| | ... | ${addr_range} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.robot new file mode 100644 index 0000000000..d7ff1dac04 --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.robot @@ -0,0 +1,162 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | SW_cryptodev +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance mrr test +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with DPDK SW +| ... | crypto devices and multiple IPsec tunnels between them. +| ... | DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | ${encr_alg} = | Crypto Alg AES GCM 128 +| | ${auth_alg} = | Integ Alg AES GCM 128 +| | ${ipsec_proto} = | IPsec Proto ESP +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology +| | ... | aesni_gcm | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And Initialize IPSec in 3-node circular topology +| | And VPP IPsec Create Tunnel Interfaces +| | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${dut1_if2} +| | ... | ${dut2_if1} | ${n_tunnels} | ${encr_alg} | ${encr_key} | ${auth_alg} +| | ... | ${auth_key} | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.robot new file mode 100644 index 0000000000..5e430f0443 --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.robot @@ -0,0 +1,167 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | SW_cryptodev +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with DPDK SW +| ... | crypto devices and multiple IPsec tunnels between them. +| ... | DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${encr_alg} = | Crypto Alg AES GCM 128 +| | ${auth_alg} = | Integ Alg AES GCM 128 +| | ${ipsec_proto} = | IPsec Proto ESP +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology +| | ... | aesni_gcm | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And Initialize IPSec in 3-node circular topology +| | And VPP IPsec Create Tunnel Interfaces +| | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${dut1_if2} +| | ... | ${dut2_if1} | ${n_tunnels} | ${encr_alg} | ${encr_key} | ${auth_alg} +| | ... | ${auth_key} | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.robot new file mode 100644 index 0000000000..c0a9059a1d --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.robot @@ -0,0 +1,157 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | SW_cryptodev +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance mrr test +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with DPDK SW +| ... | crypto devices and multiple IPsec tunnels between them. +| ... | DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | ${encr_alg} = | Crypto Alg AES CBC 128 +| | ${auth_alg} = | Integ Alg SHA1 96 +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology +| | ... | aesni_mb | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And Initialize IPSec in 3-node circular topology +| | And VPP IPsec Create Tunnel Interfaces +| | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${dut1_if2} +| | ... | ${dut2_if1} | ${n_tunnels} | ${encr_alg} | ${encr_key} | ${auth_alg} +| | ... | ${auth_key} | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.robot new file mode 100644 index 0000000000..85ec0a622a --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.robot @@ -0,0 +1,162 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | SW_cryptodev +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with DPDK SW +| ... | crypto devices and multiple IPsec tunnels between them. +| ... | DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${encr_alg} = | Crypto Alg AES CBC 128 +| | ${auth_alg} = | Integ Alg SHA1 96 +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology +| | ... | aesni_mb | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And Initialize IPSec in 3-node circular topology +| | And VPP IPsec Create Tunnel Interfaces +| | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${dut1_if2} +| | ... | ${dut2_if1} | ${n_tunnels} | ${encr_alg} | ${encr_key} | ${auth_alg} +| | ... | ${auth_key} | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.robot new file mode 100644 index 0000000000..e96b307537 --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.robot @@ -0,0 +1,171 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | SW_cryptodev +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance mrr test +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with DPDK SW +| ... | crypto devices and multiple IPsec tunnels between them. DUTs get IPv4 +| ... | traffic from TG, encrypt it and send to another DUT, where packets are +| ... | decrypted and sent back to TG. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - search_type - NDR or PDR. Type: string +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... | - min_rate - Min rate for binary search, default value: ${50000}. +| | ... | Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | ${encr_alg} = | Crypto Alg AES GCM 128 +| | ${auth_alg} = | Integ Alg AES GCM 128 +| | ${ipsec_proto} = | IPsec Proto ESP +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology +| | ... | aesni_gcm | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And Initialize IPSec in 3-node circular topology +| | And Vpp Route Add | ${dut1} | ${raddr_ip4} | 8 | gateway=${dut2_if1_ip4} +| | ... | interface=${dut1_if2} +| | And Vpp Route Add | ${dut2} | ${laddr_ip4} | 8 | gateway=${dut1_if2_ip4} +| | ... | interface=${dut2_if1} +| | And VPP IPsec Add Multiple Tunnels +| | ... | ${dut1} | ${dut2} | ${dut1_if2} | ${dut2_if1} | ${n_tunnels} +| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} +| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${laddr_ip4} | ${raddr_ip4} +| | ... | ${addr_range} +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.robot new file mode 100644 index 0000000000..28c68a7de9 --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.robot @@ -0,0 +1,176 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | SW_cryptodev +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with DPDK SW +| ... | crypto devices and multiple IPsec tunnels between them. DUTs get IPv4 +| ... | traffic from TG, encrypt it and send to another DUT, where packets are +| ... | decrypted and sent back to TG. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - search_type - NDR or PDR. Type: string +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... | - min_rate - Min rate for binary search, default value: ${50000}. +| | ... | Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${encr_alg} = | Crypto Alg AES GCM 128 +| | ${auth_alg} = | Integ Alg AES GCM 128 +| | ${ipsec_proto} = | IPsec Proto ESP +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology +| | ... | aesni_gcm | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And Initialize IPSec in 3-node circular topology +| | And Vpp Route Add | ${dut1} | ${raddr_ip4} | 8 | gateway=${dut2_if1_ip4} +| | ... | interface=${dut1_if2} +| | And Vpp Route Add | ${dut2} | ${laddr_ip4} | 8 | gateway=${dut1_if2_ip4} +| | ... | interface=${dut2_if1} +| | And VPP IPsec Add Multiple Tunnels +| | ... | ${dut1} | ${dut2} | ${dut1_if2} | ${dut2_if1} | ${n_tunnels} +| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} +| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${laddr_ip4} | ${raddr_ip4} +| | ... | ${addr_range} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.robot new file mode 100644 index 0000000000..1a9802e172 --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.robot @@ -0,0 +1,166 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | SW_cryptodev +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance mrr test +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with DPDK SW +| ... | crypto devices and multiple IPsec tunnels between them. DUTs get IPv4 +| ... | traffic from TG, encrypt it and send to another DUT, where packets are +| ... | decrypted and sent back to TG. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - search_type - NDR or PDR. Type: string +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... | - min_rate - Min rate for binary search, default value: ${50000}. +| | ... | Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | ${encr_alg} = | Crypto Alg AES CBC 128 +| | ${auth_alg} = | Integ Alg SHA1 96 +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology +| | ... | aesni_mb | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And Initialize IPSec in 3-node circular topology +| | And Vpp Route Add | ${dut1} | ${raddr_ip4} | 8 | gateway=${dut2_if1_ip4} +| | ... | interface=${dut1_if2} +| | And Vpp Route Add | ${dut2} | ${laddr_ip4} | 8 | gateway=${dut1_if2_ip4} +| | ... | interface=${dut2_if1} +| | And VPP IPsec Add Multiple Tunnels +| | ... | ${dut1} | ${dut2} | ${dut1_if2} | ${dut2_if1} | ${n_tunnels} +| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} +| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${laddr_ip4} | ${raddr_ip4} +| | ... | ${addr_range} +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.robot new file mode 100644 index 0000000000..31fd30b50a --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.robot @@ -0,0 +1,171 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X553 | BASE +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | SW_cryptodev +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with DPDK SW +| ... | crypto devices and multiple IPsec tunnels between them. DUTs get IPv4 +| ... | traffic from TG, encrypt it and send to another DUT, where packets are +| ... | decrypted and sent back to TG. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - search_type - NDR or PDR. Type: string +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... | - min_rate - Min rate for binary search, default value: ${50000}. +| | ... | Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${encr_alg} = | Crypto Alg AES CBC 128 +| | ${auth_alg} = | Integ Alg SHA1 96 +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology +| | ... | aesni_mb | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And Initialize IPSec in 3-node circular topology +| | And Vpp Route Add | ${dut1} | ${raddr_ip4} | 8 | gateway=${dut2_if1_ip4} +| | ... | interface=${dut1_if2} +| | And Vpp Route Add | ${dut2} | ${laddr_ip4} | 8 | gateway=${dut1_if2_ip4} +| | ... | interface=${dut2_if1} +| | And VPP IPsec Add Multiple Tunnels +| | ... | ${dut1} | ${dut2} | ${dut1_if2} | ${dut2_if1} | ${n_tunnels} +| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} +| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${laddr_ip4} | ${raddr_ip4} +| | ... | ${addr_range} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.robot new file mode 100644 index 0000000000..d4f7ec366c --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.robot @@ -0,0 +1,162 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | MRR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | TNL_1000 +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance mrr test +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | ${encr_alg} = | Crypto Alg AES GCM 128 +| | ${auth_alg} = | Integ Alg AES GCM 128 +| | ${ipsec_proto} = | IPsec Proto ESP +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And Initialize IPSec in 3-node circular topology +| | And VPP IPsec Create Tunnel Interfaces +| | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${dut1_if2} +| | ... | ${dut2_if1} | ${n_tunnels} | ${encr_alg} | ${encr_key} | ${auth_alg} +| | ... | ${auth_key} | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.robot new file mode 100644 index 0000000000..c84588ea02 --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.robot @@ -0,0 +1,167 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | TNL_1000 +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling AES GCM config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${encr_alg} = | Crypto Alg AES GCM 128 +| | ${auth_alg} = | Integ Alg AES GCM 128 +| | ${ipsec_proto} = | IPsec Proto ESP +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And Initialize IPSec in 3-node circular topology +| | And VPP IPsec Create Tunnel Interfaces +| | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${dut1_if2} +| | ... | ${dut2_if1} | ${n_tunnels} | ${encr_alg} | ${encr_key} | ${auth_alg} +| | ... | ${auth_key} | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.robot new file mode 100644 index 0000000000..dd1bdafb9c --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.robot @@ -0,0 +1,155 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | MRR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | TNL_1000 +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance mrr test +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${58} +| ${n_tunnels}= | ${1000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | ${encr_alg} = | Crypto Alg AES CBC 128 +| | ${auth_alg} = | Integ Alg SHA1 96 +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And Initialize IPSec in 3-node circular topology +| | And VPP IPsec Create Tunnel Interfaces +| | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${dut1_if2} +| | ... | ${dut2_if1} | ${n_tunnels} | ${encr_alg} | ${encr_key} | ${auth_alg} +| | ... | ${auth_key} | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.robot new file mode 100644 index 0000000000..cc3ab9366b --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.robot @@ -0,0 +1,160 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | TNL_1000 +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${58} +| ${n_tunnels}= | ${1000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPSec tunneling CBC-SHA1 config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${encr_alg} = | Crypto Alg AES CBC 128 +| | ${auth_alg} = | Integ Alg SHA1 96 +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And Initialize IPSec in 3-node circular topology +| | And VPP IPsec Create Tunnel Interfaces +| | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${dut1_if2} +| | ... | ${dut2_if1} | ${n_tunnels} | ${encr_alg} | ${encr_key} | ${auth_alg} +| | ... | ${auth_key} | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.robot new file mode 100644 index 0000000000..09cae0bba7 --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.robot @@ -0,0 +1,168 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | MR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | TNL_1000 +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance mrr test +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUTs run 1000 IPsec tunnels AES GCM in each direction. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | ${encr_alg} = | Crypto Alg AES GCM 128 +| | ${auth_alg} = | Integ Alg AES GCM 128 +| | ${ipsec_proto} = | IPsec Proto ESP +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And Initialize IPSec in 3-node circular topology +| | And Vpp Route Add | ${dut1} | ${raddr_ip4} | 8 | gateway=${dut2_if1_ip4} +| | ... | interface=${dut1_if2} +| | And Vpp Route Add | ${dut2} | ${laddr_ip4} | 8 | gateway=${dut1_if2_ip4} +| | ... | interface=${dut2_if1} +| | And VPP IPsec Add Multiple Tunnels +| | ... | ${dut1} | ${dut2} | ${dut1_if2} | ${dut2_if1} | ${n_tunnels} +| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} +| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${laddr_ip4} | ${raddr_ip4} +| | ... | ${addr_range} +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.robot new file mode 100644 index 0000000000..c0c9f52f4d --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.robot @@ -0,0 +1,173 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | TNL_1000 +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${54} +| ${n_tunnels}= | ${1000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUTs run 1000 IPsec tunnels AES GCM in each direction. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${encr_alg} = | Crypto Alg AES GCM 128 +| | ${auth_alg} = | Integ Alg AES GCM 128 +| | ${ipsec_proto} = | IPsec Proto ESP +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1} +| | And VPP IPsec Backend Dump | ${dut1} +| | And VPP IPsec Backend Dump | ${dut2} +| | And Initialize IPSec in 3-node circular topology +| | And Vpp Route Add | ${dut1} | ${raddr_ip4} | 8 | gateway=${dut2_if1_ip4} +| | ... | interface=${dut1_if2} +| | And Vpp Route Add | ${dut2} | ${laddr_ip4} | 8 | gateway=${dut1_if2_ip4} +| | ... | interface=${dut2_if1} +| | And VPP IPsec Add Multiple Tunnels +| | ... | ${dut1} | ${dut2} | ${dut1_if2} | ${dut2_if1} | ${n_tunnels} +| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} +| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${laddr_ip4} | ${raddr_ip4} +| | ... | ${addr_range} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.robot new file mode 100644 index 0000000000..072a74c801 --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.robot @@ -0,0 +1,161 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | MRR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | TNL_1000 +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance mrr test +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${58} +| ${n_tunnels}= | ${1000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUTs run 1000 IPsec tunnels CBC-SHA1 in each direction. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | ${encr_alg} = | Crypto Alg AES CBC 128 +| | ${auth_alg} = | Integ Alg SHA1 96 +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And Initialize IPSec in 3-node circular topology +| | And Vpp Route Add | ${dut1} | ${raddr_ip4} | 8 | gateway=${dut2_if1_ip4} +| | ... | interface=${dut1_if2} +| | And Vpp Route Add | ${dut2} | ${laddr_ip4} | 8 | gateway=${dut1_if2_ip4} +| | ... | interface=${dut2_if1} +| | And VPP IPsec Add Multiple Tunnels +| | ... | ${dut1} | ${dut2} | ${dut1_if2} | ${dut2_if1} | ${n_tunnels} +| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} +| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${laddr_ip4} | ${raddr_ip4} +| | ... | ${addr_range} +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.robot new file mode 100644 index 0000000000..d5bef4fa3f --- /dev/null +++ b/tests/vpp/perf/crypto/10ge2p1x553-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.robot @@ -0,0 +1,166 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# 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. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/crypto/ipsec.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR +| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X553 | TNL_1000 +| ... +| Suite Setup | Set up IPSec performance test suite | L3 | Intel-X553 +| ... | HW_C3xxx +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv4 IPsec tunnel mode performance test suite.* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn, +| ... | Eth-IPv4-IPSec on DUT1-DUT2 +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple +| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it +| ... | and send to another DUT, where packets are decrypted and sent back to TG +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, number of flows per flow-group equals to +| ... | number of IPSec tunnels) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field +| ... | is applied to both streams. +| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. + +*** Variables *** +# X553 bandwidth limit 20Gbps/2=10Gbps +| ${s_10G}= | ${10000000000} +# X553 Mpps limit 29.76Mpps/2=14.88Mpps +| ${s_14.88Mpps}= | ${14880952} +| ${tg_if1_ip4}= | 192.168.10.2 +| ${dut1_if1_ip4}= | 192.168.10.1 +| ${dut1_if2_ip4}= | 172.168.1.1 +| ${dut2_if1_ip4}= | 172.168.1.2 +| ${dut2_if2_ip4}= | 192.168.20.1 +| ${tg_if2_ip4}= | 192.168.20.2 +| ${raddr_ip4}= | 20.0.0.0 +| ${laddr_ip4}= | 10.0.0.0 +| ${addr_range}= | ${32} +| ${overhead}= | ${58} +| ${n_tunnels}= | ${1000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${n_tunnels} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUTs run 1000 IPsec tunnels CBC-SHA1 in each direction. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ${encr_alg} = | Crypto Alg AES CBC 128 +| | ${auth_alg} = | Integ Alg SHA1 96 +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_10G} | ${framesize} | overhead=${overhead} +| | ... | pps_limit=${s_14.88Mpps} +| | And Add cryptodev to all DUTs | ${phy_cores} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Generate keys for IPSec | ${encr_alg} | ${auth_alg} +| | And Initialize IPSec in 3-node circular topology +| | And Vpp Route Add | ${dut1} | ${raddr_ip4} | 8 | gateway=${dut2_if1_ip4} +| | ... | interface=${dut1_if2} +| | And Vpp Route Add | ${dut2} | ${laddr_ip4} | 8 | gateway=${dut1_if2_ip4} +| | ... | interface=${dut2_if1} +| | And VPP IPsec Add Multiple Tunnels +| | ... | ${dut1} | ${dut2} | ${dut1_if2} | ${dut2_if1} | ${n_tunnels} +| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} +| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${laddr_ip4} | ${raddr_ip4} +| | ... | ${addr_range} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.robot index 90b0bf5eb9..c757fd7a13 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | BASE | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.robot index 09e762be57..bf731862e6 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | BASE | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.robot index eaf38d9843..ae029c6d9c 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | BASE | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.robot index 1c89ea2b95..2c698a5979 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | BASE | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.robot index d16102d5db..907273e35c 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | BASE | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | ... | Suite Teardown | Tear down 3-node performance topology | ... diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.robot index bd1ad40c27..1cd17b4fc3 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | BASE | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | ... | Suite Teardown | Tear down 3-node performance topology | ... diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.robot index f5e3c252c8..c967034e71 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | BASE | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | ... | Suite Teardown | Tear down 3-node performance topology | ... diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.robot index e737738869..4df6946999 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | BASE | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | ... | Suite Teardown | Tear down 3-node performance topology | ... diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.robot index 1b0314159f..4a24131026 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | TNL_1000 | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.robot index 112b6ed3bf..a4b544d2d0 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | TNL_1000 | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.robot index 6ed1ee0a74..b05bd780c5 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | TNL_1000 | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.robot index c07e9991db..9d83520773 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | TNL_1000 | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.robot index 691bd512bf..212c71748a 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | TNL_1000 | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | ... | Suite Teardown | Tear down 3-node performance topology | ... diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.robot index a9ff5b300b..dc15f5a77e 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | TNL_1000 | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | ... | Suite Teardown | Tear down 3-node performance topology | ... diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.robot index f8202408e5..80cc921d4c 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | TNL_1000 | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | ... | Suite Teardown | Tear down 3-node performance topology | ... diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.robot index 63518a1c72..f87d9c4c50 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.robot @@ -19,7 +19,7 @@ | ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-XL710 | TNL_1000 | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | ... | Suite Teardown | Tear down 3-node performance topology | ... diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.robot index 864d24f7fb..c6ff69c307 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.robot @@ -22,7 +22,7 @@ | ... | NIC_Intel-XL710 | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | ... | Suite Teardown | Tear down 3-node performance topology | ... diff --git a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.robot b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.robot index b43586e61e..ceec05835c 100644 --- a/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.robot +++ b/tests/vpp/perf/crypto/40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.robot @@ -22,7 +22,7 @@ | ... | NIC_Intel-XL710 | ... | Suite Setup | Set up IPSec performance test suite | L3 | Intel-XL710 -| ... | HW_cryptodev +| ... | HW_DH895xcc | ... | Suite Teardown | Tear down 3-node performance topology | ... -- 2.16.6