diff options
author | Yulong Pei <yulong.pei@intel.com> | 2019-03-21 18:24:46 +0800 |
---|---|---|
committer | Jan Gelety <jgelety@cisco.com> | 2019-03-28 13:29:49 +0000 |
commit | af05b72edc65aaecd6efc635eef9902a32d247ee (patch) | |
tree | 3efa21558d0b4a026be28c812c99646a7aa5134c /resources | |
parent | fa7eba4ce1949e79a679ea1683d022596d89e496 (diff) |
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 <yulong.pei@intel.com>
Diffstat (limited to 'resources')
-rw-r--r-- | resources/libraries/python/DUTSetup.py | 28 | ||||
-rw-r--r-- | resources/libraries/robot/performance/performance_setup.robot | 20 | ||||
-rw-r--r-- | resources/libraries/robot/shared/default.robot | 14 |
3 files changed, 39 insertions, 23 deletions
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 |