diff options
author | Yulong Pei <yulong.pei@intel.com> | 2020-11-19 13:56:18 -0700 |
---|---|---|
committer | Tibor Frank <tifrank@cisco.com> | 2021-03-03 05:31:58 +0000 |
commit | 6a572e394443ca70c7aab03f1d635a894bcb90af (patch) | |
tree | dd60079cef52926e0702d0bf8fa48d6aa6cf97d3 /resources/libraries/robot | |
parent | 4a97b93d4c7c4de1724b4f139738cb3ad2b57d88 (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.robot | 40 | ||||
-rw-r--r-- | resources/libraries/robot/shared/default.robot | 23 |
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 |