X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Frobot%2Fshared%2Fdefault.robot;h=842cb7faa04d198dca559d9485333e71fe848e82;hp=4761ea8481ad721281768a47321660201e3ec99b;hb=31fde19fbd557f66d5ec6ae2315b304573766e9d;hpb=0ba508f0eac819c1985e825857f584b3d1537ffe diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot index 4761ea8481..842cb7faa0 100644 --- a/resources/libraries/robot/shared/default.robot +++ b/resources/libraries/robot/shared/default.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2016 Cisco and/or its affiliates. +# Copyright (c) 2018 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: @@ -121,88 +121,67 @@ | | | Run keyword | ${dut}.Add Unix Log | | | Run keyword | ${dut}.Add Unix CLI Listen | | | Run keyword | ${dut}.Add Unix Nodaemon -| | | Run keyword | ${dut}.Add DPDK Socketmem | "1024,1024" -| | | Run keyword | ${dut}.Add Heapsize | "3G" -| | | Run keyword | ${dut}.Add IP6 Hash Buckets | "2000000" -| | | Run keyword | ${dut}.Add IP6 Heap Size | "3G" - -| Add '${m}' worker threads and '${n}' rxqueues in 3-node single-link circular topology -| | [Documentation] | Setup M worker threads and N rxqueues in vpp startup\ -| | ... | configuration on all DUTs in 3-node single-link topology. -| | ... -| | ${m_int}= | Convert To Integer | ${m} -| | ${dut1_numa}= | Get interfaces numa node | ${dut1} -| | ... | ${dut1_if1} | ${dut1_if2} -| | ${dut2_numa}= | Get interfaces numa node | ${dut2} -| | ... | ${dut2_if1} | ${dut2_if2} -| | ${dut1_cpu_main}= | Cpu list per node str | ${dut1} | ${dut1_numa} -| | ... | skip_cnt=${1} | cpu_cnt=${1} -| | ${dut1_cpu_w}= | Cpu list per node str | ${dut1} | ${dut1_numa} -| | ... | skip_cnt=${2} | cpu_cnt=${m_int} -| | ${dut2_cpu_main}= | Cpu list per node str | ${dut2} | ${dut2_numa} -| | ... | skip_cnt=${1} | cpu_cnt=${1} -| | ${dut2_cpu_w}= | Cpu list per node str | ${dut2} | ${dut2_numa} -| | ... | skip_cnt=${2} | cpu_cnt=${m_int} -| | Run keyword | DUT1.Add CPU Main Core | ${dut1_cpu_main} -| | Run keyword | DUT2.Add CPU Main Core | ${dut2_cpu_main} -| | Run keyword | DUT1.Add CPU Corelist Workers | ${dut1_cpu_w} -| | Run keyword | DUT2.Add CPU Corelist Workers | ${dut2_cpu_w} -| | Run keyword | DUT1.Add DPDK Dev Default RXQ | ${n} -| | Run keyword | DUT2.Add DPDK Dev Default RXQ | ${n} - -| Add '${m}' worker threads and '${n}' rxqueues in 2-node single-link circular topology -| | [Documentation] | Setup M worker threads and N rxqueues in vpp startup\ -| | ... | configuration on all DUTs in 2-node single-link topology. -| | ... -| | ${m_int}= | Convert To Integer | ${m} -| | ${dut1_numa}= | Get interfaces numa node | ${dut1} -| | ... | ${dut1_if1} | ${dut1_if2} -| | ${dut1_cpu_main}= | Cpu list per node str | ${dut1} | ${dut1_numa} -| | ... | skip_cnt=${1} | cpu_cnt=${1} -| | ${dut1_cpu_w}= | Cpu list per node str | ${dut1} | ${dut1_numa} -| | ... | skip_cnt=${2} | cpu_cnt=${m_int} -| | Run keyword | DUT1.Add CPU Main Core | ${dut1_cpu_main} -| | Run keyword | DUT1.Add CPU Corelist Workers | ${dut1_cpu_w} -| | Run keyword | DUT1.Add DPDK Dev Default RXQ | ${n} - -| Add '${m}' worker threads using SMT and '${n}' rxqueues in 3-node single-link circular topology -| | [Documentation] | Setup M worker threads using SMT and N rxqueues in vpp\ -| | ... | startup configuration on all DUTs in 3-node single-link topology. -| | ... -| | ${m_int}= | Convert To Integer | ${m} -| | ${dut1_numa}= | Get interfaces numa node | ${dut1} -| | ... | ${dut1_if1} | ${dut1_if2} -| | ${dut2_numa}= | Get interfaces numa node | ${dut2} -| | ... | ${dut2_if1} | ${dut2_if2} -| | ${dut1_cpu_main}= | Cpu list per node str | ${dut1} | ${dut1_numa} -| | ... | skip_cnt=${1} | cpu_cnt=${1} | smt_used=${True} -| | ${dut1_cpu_w}= | Cpu list per node str | ${dut1} | ${dut1_numa} -| | ... | skip_cnt=${2} | cpu_cnt=${m_int} | smt_used=${True} -| | ${dut2_cpu_main}= | Cpu list per node str | ${dut2} | ${dut2_numa} -| | ... | skip_cnt=${1} | cpu_cnt=${1} | smt_used=${True} -| | ${dut2_cpu_w}= | Cpu list per node str | ${dut2} | ${dut2_numa} -| | ... | skip_cnt=${2} | cpu_cnt=${m_int} | smt_used=${True} -| | Run keyword | DUT1.Add CPU Main Core | ${dut1_cpu_main} -| | Run keyword | DUT2.Add CPU Main Core | ${dut2_cpu_main} -| | Run keyword | DUT1.Add CPU Corelist Workers | ${dut1_cpu_w} -| | Run keyword | DUT2.Add CPU Corelist Workers | ${dut2_cpu_w} -| | Run keyword | DUT1.Add DPDK Dev Default RXQ | ${n} -| | Run keyword | DUT2.Add DPDK Dev Default RXQ | ${n} - -| Add '${m}' worker threads using SMT and '${n}' rxqueues in 2-node single-link circular topology -| | [Documentation] | Setup M worker threads and N rxqueues in vpp startup\ -| | ... | configuration on all DUTs in 2-node single-link topology. -| | ... -| | ${m_int}= | Convert To Integer | ${m} -| | ${dut1_numa}= | Get interfaces numa node | ${dut1} -| | ... | ${dut1_if1} | ${dut1_if2} -| | ${dut1_cpu_main}= | Cpu list per node str | ${dut1} | ${dut1_numa} -| | ... | skip_cnt=${1} | cpu_cnt=${1} | smt_used=${True} -| | ${dut1_cpu_w}= | Cpu list per node str | ${dut1} | ${dut1_numa} -| | ... | skip_cnt=${2} | cpu_cnt=${m_int} | smt_used=${True} -| | Run keyword | DUT1.Add CPU Main Core | ${dut1_cpu_main} -| | Run keyword | DUT1.Add CPU Corelist Workers | ${dut1_cpu_w} -| | Run keyword | DUT1.Add DPDK Dev Default RXQ | ${n} +| | | Run keyword | ${dut}.Add DPDK Socketmem | 1024,1024 +| | | Run keyword | ${dut}.Add DPDK No Tx Checksum Offload +| | | Run keyword | ${dut}.Add DPDK Log Level | debug +| | | Run keyword | ${dut}.Add DPDK Uio Driver +| | | Run keyword | ${dut}.Add Heapsize | 4G +| | | Run keyword | ${dut}.Add Statseg size | 4G +| | | Run keyword | ${dut}.Add Plugin | disable | default +| | | Run keyword | ${dut}.Add Plugin | enable | @{plugins_to_enable} +| | | Run keyword | ${dut}.Add IP6 Hash Buckets | 2000000 +| | | Run keyword | ${dut}.Add IP6 Heap Size | 4G +| | | Run keyword | ${dut}.Add IP Heap Size | 4G + +| Add worker threads and rxqueues to all DUTs +| | [Documentation] | Setup worker threads and rxqueues in vpp startup +| | ... | configuration on all DUTs. Based on the SMT configuration of DUT if +| | ... | enabled keyword will automatically map also the sibling logical cores. +| | ... | Keyword will automatically set the appropriate test TAGs in format +| | ... | mTnC, where m=logical_core_count and n=physical_core_count. +| | ... +| | ... | *Arguments:* +| | ... | - phy_cores - Number of physical cores to use. Type: integer +| | ... | - rx_queues - Number of RX queues. Type: integer +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Add worker threads and rxqueues to all DUTs \| ${1} \| ${1} \| +| | ... +| | [Arguments] | ${phy_cores} | ${rx_queues}=${None} +| | ... +| | ${cpu_count_int} | Convert to Integer | ${phy_cores} +| | ${thr_count_int} | Convert to Integer | ${phy_cores} +| | ${num_mbufs_int} | Convert to Integer | 16384 +| | ${duts}= | Get Matches | ${nodes} | DUT* +| | :FOR | ${dut} | IN | @{duts} +| | | ${numa}= | Get interfaces numa node | ${nodes['${dut}']} +| | | ... | ${${dut}_if1} | ${${dut}_if2} +| | | ${smt_used}= | Is SMT enabled | ${nodes['${dut}']['cpuinfo']} +| | | ${cpu_main}= | Cpu list per node str | ${nodes['${dut}']} | ${numa} +| | | ... | skip_cnt=${1} | cpu_cnt=${1} +| | | ${cpu_wt}= | Cpu list per node str | ${nodes['${dut}']} | ${numa} +| | | ... | skip_cnt=${2} | cpu_cnt=${cpu_count_int} | smt_used=${smt_used} +| | | ${thr_count_int}= | Run keyword if | ${smt_used} +| | | ... | Evaluate | int(${cpu_count_int}*2) +| | | ... | ELSE | Set variable | ${thr_count_int} +| | | ${rxq_count_int}= | Run keyword if | ${rx_queues} +| | | ... | Set variable | ${rx_queues} +| | | ... | ELSE | Evaluate | int(${thr_count_int}/2) +| | | ${rxq_count_int}= | Run keyword if | ${rxq_count_int} == 0 +| | | ... | Set variable | ${1} +| | | ... | ELSE | Set variable | ${rxq_count_int} +| | | ${num_mbufs_int}= | Evaluate | int(${num_mbufs_int}*${rxq_count_int}) +| | | Run keyword | ${dut}.Add CPU Main Core | ${cpu_main} +| | | Run keyword | ${dut}.Add CPU Corelist Workers | ${cpu_wt} +| | | Run keyword | ${dut}.Add DPDK Dev Default RXQ | ${rxq_count_int} +| | | Run keyword | ${dut}.Add DPDK Num Mbufs | ${num_mbufs_int} +| | | Run keyword if | ${thr_count_int} > 1 +| | | ... | Set Tags | MTHREAD | ELSE | Set Tags | STHREAD +| | | Set Tags | ${thr_count_int}T${cpu_count_int}C +| | Set Test Variable | ${smt_used} +| | Set Test Variable | ${thr_count_int} +| | Set Test Variable | ${rxq_count_int} | Add no multi seg to all DUTs | | [Documentation] | Add No Multi Seg to VPP startup configuration to all DUTs. @@ -282,7 +261,11 @@ | | [Arguments] | ${count} | | ${duts}= | Get Matches | ${nodes} | DUT* | | :FOR | ${dut} | IN | @{duts} -| | | Run keyword | ${dut}.Add DPDK Cryptodev | ${count} +| | | ${smt_used}= | Is SMT enabled | ${nodes['${dut}']['cpuinfo']} +| | | ${thr_count_int}= | Run keyword if | ${smt_used} +| | | ... | Evaluate | int(${count}*2) +| | | ... | ELSE | Set variable | ${count} +| | | Run keyword | ${dut}.Add DPDK Cryptodev | ${thr_count_int} | Add DPDK SW cryptodev on DUTs in 3-node single-link circular topology | | [Documentation] | Add required number of SW crypto devices of given type @@ -299,12 +282,20 @@ | | ... | topology \| aesni-mb \| ${2} \| | | ... | | [Arguments] | ${sw_pmd_type} | ${count} +| | ${smt_used}= | Is SMT enabled | ${nodes['DUT1']['cpuinfo']} +| | ${thr_count_int}= | Run keyword if | ${smt_used} +| | ... | Evaluate | int(${count}*2) +| | ... | ELSE | Set variable | ${count} | | ${socket_id}= | Get Interface Numa Node | ${nodes['DUT1']} | ${dut1_if2} | | Run keyword | DUT1.Add DPDK SW Cryptodev | ${sw_pmd_type} | ${socket_id} -| | ... | ${count} +| | ... | ${thr_count_int} +| | ${smt_used}= | Is SMT enabled | ${nodes['DUT2']['cpuinfo']} +| | ${thr_count_int}= | Run keyword if | ${smt_used} +| | ... | Evaluate | int(${count}*2) +| | ... | ELSE | Set variable | ${count} | | ${socket_id}= | Get Interface Numa Node | ${nodes['DUT2']} | ${dut2_if1} | | Run keyword | DUT2.Add DPDK SW Cryptodev | ${sw_pmd_type} | ${socket_id} -| | ... | ${count} +| | ... | ${thr_count_int} | Apply startup configuration on all VPP DUTs | | [Documentation] | Write startup configuration and restart VPP on all DUTs.