*** Settings ***
| Variables | resources/libraries/python/topology.py
| Variables | resources/libraries/python/PapiHistory.py
+| Variables | resources/libraries/python/Constants.py
| ...
| Library | Collections
| Library | OperatingSystem
| | ... | *Arguments:*
| | ... | - numvfs - Number of VFs to initialize, 0 - disable the VFs
| | ... | (Optional). Type: integer, default value: ${1}
-| | ... | - traffic_profile - A value affecting behavior, such as spoofing.
+| | ... | - osi_layer - OSI Layer type to initialize TG with.
| | ... | (Optional). Type: string, default value: L2
-| | ... | Note: This is NOT the usual traffic profile
-| | ... | (which is python module name to initialize TG with).
| | ...
| | ... | *Example:*
| | ...
| | ... | \| Configure AVF device on all DUTs \| ${1} \| L2 \|
| | ...
-| | [Arguments] | ${numvfs}=${1} | ${traffic_profile}=L2
+| | [Arguments] | ${numvfs}=${1} | ${osi_layer}=L2
| | ...
| | ${duts}= | Get Matches | ${nodes} | DUT*
| | :FOR | ${dut} | IN | @{duts}
| | | ${if1_avf_arr}= | Init AVF interface | ${nodes['${dut}']} | ${${dut}_if1}
-| | | ... | numvfs=${numvfs} | traffic_type=${traffic_profile}
+| | | ... | numvfs=${numvfs} | osi_layer=${osi_layer}
| | | ${if2_avf_arr}= | Init AVF interface | ${nodes['${dut}']} | ${${dut}_if2}
-| | | ... | numvfs=${numvfs} | traffic_type=${traffic_profile}
+| | | ... | numvfs=${numvfs} | osi_layer=${osi_layer}
# 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]}
| | ...
| | ${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}
| | | ${if1_status} | ${value}= | Run Keyword And Ignore Error
| | | ... | Append To List | ${if_list} | ${${dut}_if2_1} | ${${dut}_if2_2}
| | | ${numa}= | Get interfaces numa node | ${nodes['${dut}']} | @{if_list}
| | | ${smt_used}= | Is SMT enabled | ${nodes['${dut}']['cpuinfo']}
+| | | ${skip_cnt}= | Set variable | ${CPU_CNT_SYSTEM}
| | | ${cpu_main}= | Cpu list per node str | ${nodes['${dut}']} | ${numa}
-| | | ... | skip_cnt=${1} | cpu_cnt=${1}
+| | | ... | skip_cnt=${skip_cnt} | cpu_cnt=${CPU_CNT_MAIN}
+| | | ${skip_cnt}= | Evaluate | ${CPU_CNT_SYSTEM} + ${CPU_CNT_MAIN}
| | | ${cpu_wt}= | Cpu list per node str | ${nodes['${dut}']} | ${numa}
-| | | ... | skip_cnt=${2} | cpu_cnt=${cpu_count_int} | smt_used=${smt_used}
+| | | ... | skip_cnt=${skip_cnt} | 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 | ${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}
-# Temporarily desabling due to API changes:
-# https://gerrit.fd.io/r/#/c/16638/
-#| | | Run keyword | ${dut}.Add DPDK Num Mbufs | ${num_mbufs_int}
+# For now there is no way to easily predict the number of buffers. Statically
+# doing maximum amount of buffers allowed by DPDK.
+| | | Run keyword if | ${smt_used}
+| | | ... | Run keyword | ${dut}.Add Buffers Per Numa | ${215040} | ELSE
+| | | ... | Run keyword | ${dut}.Add Buffers Per Numa | ${107520}
| | | Run keyword if | ${thr_count_int} > 1
| | | ... | Set Tags | MTHREAD | ELSE | Set Tags | STHREAD
| | | Set Tags | ${thr_count_int}T${cpu_count_int}C
| | ...
| | ${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}']}
| | | ${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})
| | | ${config}= | Run keyword | Create Kubernetes VSWITCH startup config
| | | ... | node=${nodes['${dut}']} | phy_cores=${phy_cores}
| | | ... | cpu_node=${numa} | jumbo=${jumbo} | rxq_count_int=${rxq_count_int}
-| | | ... | num_mbufs_int=${num_mbufs_int}
+| | | ... | buffers_per_numa=${215040}
| | | ... | filename=/tmp/vswitch.conf | if1=${if1_pci} | if2=${if2_pci}
| | | Run keyword if | ${thr_count_int} > 1
| | | ... | Set Tags | MTHREAD | ELSE | Set Tags | STHREAD