| Library | resources.libraries.python.TGSetup
| Library | resources.libraries.python.L2Util
| Library | resources.libraries.python.Tap
-| Library | resources.libraries.python.VppConfigGenerator
| Library | resources.libraries.python.VppCounters
| Library | resources.libraries.python.VPPUtil
| Library | resources.libraries.python.Trace
| | :FOR | ${dut} | IN | @{duts}
| | | Run keyword | ${dut}.Add DPDK Cryptodev | ${count}
+| Add crypto SW device on all DUTs
+| | [Documentation] | Add required number of crypto SW devices to VPP startup
+| | ... | configuration on all DUTs.
+| | ...
+| | ... | *Arguments:*
+| | ... | - ${count} - Number of SW crypto devices. Type: integer
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Add SW cryptodev on all DUTs \| ${4} \|
+| | ...
+| | [Arguments] | ${count}
+| | ${duts}= | Get Matches | ${nodes} | DUT*
+| | :FOR | ${dut} | IN | @{duts}
+| | | Run keyword | ${dut}.Add DPDK SW Cryptodev | ${count}
+
| Apply startup configuration on all VPP DUTs
| | [Documentation] | Write startup configuration and restart VPP on all DUTs.
| | ...
+| | ... | *Arguments:*
+| | ... | - ${restart_vpp} - Whether to restart VPP (Optional). Type: boolean
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Apply startup configuration on all VPP DUTs \| ${False} \|
+| | ...
+| | [Arguments] | ${restart_vpp}=${True}
+| | ...
| | ${duts}= | Get Matches | ${nodes} | DUT*
| | :FOR | ${dut} | IN | @{duts}
-| | | Run keyword | ${dut}.Apply Config
-| | Update All Interface Data On All Nodes | ${nodes} | skip_tg=${TRUE}
+| | | Run keyword | ${dut}.Apply Config | restart_vpp=${restart_vpp}
+| | Update All Interface Data On All Nodes | ${nodes} | skip_tg=${True}
| Save VPP PIDs
| | [Documentation] | Get PIDs of VPP processes from all DUTs in topology and\