-| | ... | \| Create network function CPU list \| ${nodes['DUT1']} \
-| | ... | \| 1 \| 1 \| 1 \| 1 \|
-| | ...
-| | [Arguments] | ${dut} | ${chains}=${1} | ${nodeness}=${1} | ${chain_id}=${1}
-| | ... | ${node_id}=${1} | ${mtcr}=${2} | ${dtcr}=${1} | ${auto_scale}=${False}
-| | ...
-| | ${sut_sc}= | Set Variable | ${1}
-| | ${dut_mc}= | Set Variable | ${1}
-| | ${dut_dc}= | Set Variable | ${cpu_count_int}
-| | ${skip}= | Evaluate | ${sut_sc} + ${dut_mc} + ${dut_dc}
-| | ${dtc}= | Set Variable If | ${auto_scale} | ${cpu_count_int} | ${1}
-| | ${if1_status} | ${value}= | Run Keyword And Ignore Error
-| | ... | Variable Should Exist | ${${dut}_if1}
-| | @{if_list}= | Run Keyword If | '${if1_status}' == 'PASS'
-| | ... | Create List | ${${dut}_if1}
-| | ... | ELSE | Create List | ${${dut}_if1_1} | ${${dut}_if1_2}
-| | ${if2_status} | ${value}= | Run Keyword And Ignore Error
-| | ... | Variable Should Exist | ${${dut}_if2}
-| | Run Keyword If | '${if2_status}' == 'PASS'
-| | ... | Append To List | ${if_list} | ${${dut}_if2}
-| | ... | ELSE | Append To List | ${if_list} | ${${dut}_if2_1} | ${${dut}_if2_2}
-| | ${dut_numa}= | Get interfaces numa node | ${nodes['${dut}']} | @{if_list}
-| | ${nf_cpus}= | Cpu slice of list for NF | node=${nodes['${dut}']}
-| | ... | cpu_node=${dut_numa} | chains=${chains} | nodeness=${nodeness}
-| | ... | chain_id=${chain_id} | node_id=${node_id} | mtcr=${mtcr}
-| | ... | dtcr=${dtcr} | dtc=${dtc} | skip_cnt=${skip}
-| | Return From Keyword | ${nf_cpus}
+| | ... | \| Start Traffic on Background \| 4.0mpps \| ${False} \| ${0} \
+| | ... | \| ${1} \|
+| | ...
+| | [Arguments] | ${rate} | ${unidirection}=${False} | ${tx_port}=${0}
+| | ... | ${rx_port}=${1}
+| | ...
+| | # Duration of -1 means we will stop traffic manually.
+| | Send traffic on tg | ${-1} | ${rate} | ${frame_size} | ${traffic_profile}
+| | ... | warmup_time=${0} | async_call=${True} | latency=${False}
+| | ... | unidirection=${unidirection} | tx_port=${tx_port} | rx_port=${rx_port}
+
+| Stop Running Traffic
+| | [Documentation]
+| | ... | Stop the running traffic, return measurement result.
+| | ... | For bidirectional traffic, the reported values are bi-directional.
+| | ... | Just a wrapper around L1 keyword.
+| | ... |
+| | ... | TODO: Tolerate if traffic was not started.
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \${result}= \| Stop Running Traffic \|
+| | ...
+| | Stop traffic on tg
+| | ${result}= | Get Measurement Result
+| | Return From Keyword | ${result}