aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/robot
diff options
context:
space:
mode:
authorYulong Pei <yulong.pei@intel.com>2020-11-19 13:56:18 -0700
committerTibor Frank <tifrank@cisco.com>2021-03-03 05:31:58 +0000
commit6a572e394443ca70c7aab03f1d635a894bcb90af (patch)
treedd60079cef52926e0702d0bf8fa48d6aa6cf97d3 /resources/libraries/robot
parent4a97b93d4c7c4de1724b4f139738cb3ad2b57d88 (diff)
Add test suites for crypto sw scheduler engine
This patch is to add test suites for vpp plugin crypto_sw_scheduler, IPsec sync mode is to do crypto and packet forward work in same worker cores, crypto_sw_scheduler can schedule crypto work to other async crypto cores to improve whole crypto processing capability. This test suites configure fixed 1 rx queues per port, then measure IPsec performance with 1, 2, 3 crypto cores. This patchset include 1, 2, 4, 8 ipsec tunnels test cases. +Vratko help to change to count total physical cores instead of previous only count crypto cores in test cases. Change-Id: I0e67182e3d13273890a23703d838101900e25126 Signed-off-by: Yulong Pei <yulong.pei@intel.com> Signed-off-by: Vratko Polak <vrpolak@cisco.com> Signed-off-by: pmikus <pmikus@cisco.com> (cherry picked from commit f0e964d35af36f0923c6ae0421e74d94022cadba)
Diffstat (limited to 'resources/libraries/robot')
-rw-r--r--resources/libraries/robot/crypto/ipsec.robot40
-rw-r--r--resources/libraries/robot/shared/default.robot23
2 files changed, 62 insertions, 1 deletions
diff --git a/resources/libraries/robot/crypto/ipsec.robot b/resources/libraries/robot/crypto/ipsec.robot
index 666b36277a..dc1265f434 100644
--- a/resources/libraries/robot/crypto/ipsec.robot
+++ b/resources/libraries/robot/crypto/ipsec.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 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:
@@ -231,3 +231,41 @@
| | FOR | ${dut} | IN | @{duts}
| | | VPP Ipsec Set Async Mode | ${nodes['${dut}']}
| | END
+
+| Disable Crypto Work of VPP Worker Threads on all VPP DUTs
+| | [Documentation]
+| | ... | Disable crypto work for specified data plane CPU cores
+| | ... | on all DUT nodes.
+| | ... | Currently only "port" (physical) interfaces are supported.
+| | ... | Will need a redesign if virtual interfaces (memif, vhost-user)
+| | ... | are present.
+| |
+| | ... | *Arguments:*
+| | ... | - dp_cores - Number of physical cores. Type: integer
+| |
+| | [Arguments] | ${dp_cores}
+| |
+| | VPP Round Robin Rx Placement on all DUTs
+| | ... | ${nodes} | prefix=port | dp_core_limit=${dp_cores}
+| | FOR | ${dut} | IN | @{duts}
+| | | Disable Crypto Work of VPP Worker Threads on node
+| | | ... | ${dut} | ${dp_cores}
+| | END
+
+| Disable Crypto Work of VPP Worker Threads on node
+| | [Documentation]
+| | ... | Disable crypto work for specified data plane cores
+| | ... | on DUT node.
+| |
+| | ... | *Arguments:*
+| | ... | - dut - DUT node. Type: string
+| | ... | - dp_cores - Number of physical cores. Type: integer
+| |
+| | [Arguments] | ${dut} | ${dp_cores}
+| |
+| | # Workers From Physical Cores keyword is currently defined in default.robot
+| | ${dp_worker_count} = | Workers From Physical Cores | ${dp_cores}
+| | FOR | ${worker_index} | IN RANGE | ${dp_worker_count}
+| | | VPP IPSec Crypto SW Scheduler Set Worker
+| | | ... | ${nodes['${dut}']} | ${worker_index} | crypto_enable=${False}
+| | END
diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot
index 1364c16f79..891ef2192c 100644
--- a/resources/libraries/robot/shared/default.robot
+++ b/resources/libraries/robot/shared/default.robot
@@ -94,6 +94,29 @@
| | # Parens are there to perform the call.
| | Run Keyword If | $resetter | Evaluate | $resetter()
+| Workers From Physical Cores
+| | [Documentation]
+| | ... | Convert from core count to worker count.
+| |
+| | ... | This just calls CpuUtils.worker_count_from_cores_and_smt keyword
+| | ... | with the global \${smt_used} value.
+| | ... | See documentation there.
+| |
+| | ... | *Arguments:*
+| | ... | - phy_cores - Number of physical cores to convert from. Type: integer.
+| |
+| | ... | *Return value:*
+| | ... | - Number of workers active on the given number of cores.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${dp_workers} = \| Workers from Physical Cores \| \${1} \|
+| |
+| | [Arguments] | ${phy_cores}
+| |
+| | Run Keyword And Return | Worker Count From Cores And Smt
+| | ... | phy_cores=${phy_cores} | smt_used=${smt_used}
+
| Configure crypto device on all DUTs
| | [Documentation] | Verify if Crypto QAT device virtual functions are
| | ... | initialized on all DUTs. If parameter force_init is set to True, then