From 89620b26d6bbf3dd9d9707851d8d140471d40b56 Mon Sep 17 00:00:00 2001 From: Peter Mikus Date: Fri, 20 Jul 2018 13:07:12 +0000 Subject: CSIT-1205 Create AVF driver test - Add L1 KWs for SR-IOV handling (init Vfs, remove Vfs, ...) - Cleanup L1 KWs for SR-IOV bind/unbind/pci_get/... - Add L2 KWs for Test Setup/Teardown, L2patch, Create AVF interface - Add sample L2patch test fox x710, xxv710 Change-Id: If17077877455a14043617d8ea0d06cbe47b469e3 Signed-off-by: Peter Mikus --- .../performance/performance_configuration.robot | 22 ++++++- .../robot/performance/performance_setup.robot | 69 ++++++++++++++++++++++ resources/libraries/robot/shared/default.robot | 41 +++++++++++-- 3 files changed, 125 insertions(+), 7 deletions(-) (limited to 'resources/libraries/robot') diff --git a/resources/libraries/robot/performance/performance_configuration.robot b/resources/libraries/robot/performance/performance_configuration.robot index cd522e753c..e6014b38f7 100644 --- a/resources/libraries/robot/performance/performance_configuration.robot +++ b/resources/libraries/robot/performance/performance_configuration.robot @@ -86,6 +86,24 @@ | | | ... | VPP Set Interface MTU | ${nodes['${dut}']} | ${${dut}_if2_2} | | All VPP Interfaces Ready Wait | ${nodes} +| Initialize AVF interfaces +| | [Documentation] +| | ... | Initialize AVF interfaces on each DUT. Interfaces are brought up. +| | ... +| | ${duts}= | Get Matches | ${nodes} | DUT* +| | :FOR | ${dut} | IN | @{duts} +| | | ${if1_pci}= | Get Interface PCI Addr | ${nodes['${dut}']} +| | | ... | ${${dut}_if1_vf0} +| | | ${if2_pci}= | Get Interface PCI Addr | ${nodes['${dut}']} +| | | ... | ${${dut}_if2_vf0} +| | | ${dut_eth_vf_if1}= | VPP Create AVF Interface | ${nodes['${dut}']} +| | | ... | ${if1_pci} +| | | ${dut_eth_vf_if2}= | VPP Create AVF Interface | ${nodes['${dut}']} +| | | ... | ${if2_pci} +| | | Set Test Variable | ${${dut}_if1} | ${dut_eth_vf_if1} +| | | Set Test Variable | ${${dut}_if2} | ${dut_eth_vf_if2} +| | Set interfaces in path up + | Initialize IPSec in 3-node circular topology | | [Documentation] | | ... | Set UP state on VPP interfaces in path on nodes in 3-node circular @@ -1929,8 +1947,8 @@ | | Run keyword | DUT2.Add DPDK Eth Bond Dev | 0 | 2 | l34 | ${dut2_if1_pci} | Add DPDK bonded ethernet interfaces to topology file in 3-node single link topology -| | Add Bond Eth Interface | ${dut1} | ${dut1_eth_bond_if1_name} -| | Add Bond Eth Interface | ${dut2} | ${dut2_eth_bond_if1_name} +| | Add Eth Interface | ${dut1} | ${dut1_eth_bond_if1_name} | ifc_pfx=eth_bond +| | Add Eth Interface | ${dut2} | ${dut2_eth_bond_if1_name} | ifc_pfx=eth_bond | Configure guest VM with dpdk-testpmd connected via vhost-user | | [Documentation] diff --git a/resources/libraries/robot/performance/performance_setup.robot b/resources/libraries/robot/performance/performance_setup.robot index 0a1eeec955..e9f155533e 100644 --- a/resources/libraries/robot/performance/performance_setup.robot +++ b/resources/libraries/robot/performance/performance_setup.robot @@ -437,6 +437,68 @@ | | Initialize DPDK Environment | ${dut1} | ${dut1_if1} | ${dut1_if2} | | Initialize DPDK Environment | ${dut2} | ${dut2_if1} | ${dut2_if2} +| Set up SRIOV 2-node performance topology with DUT's NIC model +| | [Documentation] +| | ... | Suite preparation phase that sets default startup configuration of +| | ... | VPP on all DUTs. Updates interfaces on all nodes and sets global +| | ... | variables used in test cases based on interface model provided as an +| | ... | argument. Initializes traffic generator. +| | ... | It configures PCI device with VFs on all DUTs. +| | ... +| | ... | *Arguments:* +| | ... | - topology_type - Topology type. Type: string +| | ... | - nic_model - Interface model. Type: string +| | ... | - vf_driver - Virtual function driver. Type: string +| | ... | - numvfs - Number of VFs. Type: integer +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Set up SRIOV 2-node performance topology with DUT's NIC model \ +| | ... | \| L2 \| Intel-X520-DA2 \| AVF \| +| | ... +| | [Arguments] | ${topology_type} | ${nic_model} | ${vf_driver} +| | ... | ${numvfs}=${1} +| | ... +| | Set variables in 2-node circular topology with DUT interface model +| | ... | ${nic_model} +| | Run Keyword If | '${vf_driver}' == 'AVF' +| | ... | Configure AVF interfaces on all DUTs | numvfs=${numvfs} +| | ... | topology_type=${topology_type} +| | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2} +| | ... | ${dut1} | ${dut1_if1_vf0} | ${dut1} | ${dut1_if2_vf0} +| | ... | ${topology_type} + +| Set up SRIOV 3-node performance topology with DUT's NIC model +| | [Documentation] +| | ... | Suite preparation phase that sets default startup configuration of +| | ... | VPP on all DUTs. Updates interfaces on all nodes and sets global +| | ... | variables used in test cases based on interface model provided as an +| | ... | argument. Initializes traffic generator. +| | ... | It configures PCI device with VFs on all DUTs. +| | ... +| | ... | *Arguments:* +| | ... | - topology_type - Topology type. Type: string +| | ... | - nic_model - Interface model. Type: string +| | ... | - vf_driver - Virtual function driver. Type: string +| | ... | - numvfs - Number of VFs. Type: integer +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Set up SRIOV 3-node performance topology with DUT's NIC model \ +| | ... | \| L2 \| Intel-X520-DA2 \| AVF \| +| | ... +| | [Arguments] | ${topology_type} | ${nic_model} | ${vf_driver} +| | ... | ${numvfs}=${1} +| | ... +| | Set variables in 3-node circular topology with DUT interface model +| | ... | ${nic_model} +| | Run Keyword If | '${vf_driver}' == 'AVF' +| | ... | Configure AVF interfaces on all DUTs | numvfs=${numvfs} +| | ... | topology_type=${topology_type} +| | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2} +| | ... | ${dut1} | ${dut1_if1_vf0} | ${dut2} | ${dut2_if2_vf0} +| | ... | ${topology_type} + | Set up IPSec performance test suite | | [Documentation] | | ... | Suite preparation phase that sets default startup configuration of @@ -499,6 +561,13 @@ | | Set Suite Variable | @{plugins_to_enable} | | Append To List | ${plugins_to_enable} | acl_plugin.so +| Set up performance test suite with AVF driver +| | [Documentation] +| | ... | Append avf_plugin.so to the list of enabled plugins. +| | ... +| | Set Suite Variable | @{plugins_to_enable} +| | Append To List | ${plugins_to_enable} | avf_plugin.so + | Set up performance test suite with Static SRv6 proxy | | [Documentation] | | ... | Append srv6as_plugin.so to the list of enabled plugins. diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot index ecce5762b8..f734516005 100644 --- a/resources/libraries/robot/shared/default.robot +++ b/resources/libraries/robot/shared/default.robot @@ -91,9 +91,35 @@ | | | Crypto Device Verify | ${nodes['${dut}']} | force_init=${force_init} | | | ... | numvfs=${numvfs} +| Configure AVF interfaces on all DUTs +| | [Documentation] | Configure virtual functions for AVF interfaces on PCI +| | ... | interface on all DUTs. +| | ... +| | ... | *Arguments:* +| | ... | - numvfs - Number of VFs to initialize, 0 - disable the VFs +| | ... | (Optional). Type: integer, default value: ${1} +| | ... | - topology_type - Topology type. +| | ... | (Optional). Type: string, default value: L2 +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Configure AVF device on all DUTs \| ${1} \| L2 \| +| | ... +| | [Arguments] | ${numvfs}=${1} | ${topology_type}=L2 +| | ... +| | ${duts}= | Get Matches | ${nodes} | DUT* +| | :FOR | ${dut} | IN | @{duts} +| | | ${if1_avf_arr}= | Init AVF interface | ${nodes['${dut}']} | ${${dut}_if1} +| | | ... | numvfs=${numvfs} | topology_type=${topology_type} +| | | ${if2_avf_arr}= | Init AVF interface | ${nodes['${dut}']} | ${${dut}_if2} +| | | ... | numvfs=${numvfs} | topology_type=${topology_type} +# Currently only one AVF is supported. +| | | Set Suite Variable | ${${dut}_if1_vf0} | ${if1_avf_arr[0]} +| | | Set Suite Variable | ${${dut}_if2_vf0} | ${if2_avf_arr[0]} + | Configure kernel module on all DUTs | | [Documentation] | Verify if specific kernel module is loaded on all DUTs. -| | ... | If parameter force_load is set to True, then try to initialize. +| | ... | If parameter force_load is set to True, then try to load. | | ... | | ... | *Arguments:* | | ... | - module - Module to verify. Type: string @@ -105,10 +131,8 @@ | | ... | | [Arguments] | ${module} | ${force_load}=${False} | | ... -| | ${duts}= | Get Matches | ${nodes} | DUT* -| | :FOR | ${dut} | IN | @{duts} -| | | Kernel Module Verify | ${nodes['${dut}']} | ${module} -| | | ... | force_load=${force_load} +| | Verify Kernel Module on All DUTs | ${nodes} | ${module} +| | ... | force_load=${force_load} | Create base startup configuration of VPP on all DUTs | | [Documentation] | Create base startup configuration of VPP to all DUTs. @@ -270,6 +294,13 @@ | | :FOR | ${dut} | IN | @{duts} | | | Run keyword | ${dut}.Add DPDK No Multi Seg +| Add DPDK no PCI to all DUTs +| | [Documentation] | Add DPDK no-pci to VPP startup configuration to all DUTs. +| | ... +| | ${duts}= | Get Matches | ${nodes} | DUT* +| | :FOR | ${dut} | IN | @{duts} +| | | Run keyword | ${dut}.Add DPDK no PCI + | Add DPDK dev default RXD to all DUTs | | [Documentation] | Add DPDK num-rx-desc to VPP startup configuration to all | | ... | DUTs. -- cgit 1.2.3-korg