2.1. DPDK¶
2.1.1. DPDKTools suite¶
This module implements initialization and cleanup of DPDK framework.
-
class
resources.libraries.python.DPDK.DPDKTools.
DPDKTools
¶ Bases:
object
This class implements: - Initialization of DPDK environment, - Cleanup of DPDK environment.
-
static
cleanup_dpdk_framework
(node, if1, if2)¶ Cleanup the DPDK framework on the DUT node. Bind interfaces to default driver specified in topology.
- Parameters
node (dict) – Will cleanup the DPDK on this node.
if1 (str) – DUT first interface name.
if2 (str) – DUT second interface name.
- Raises
RuntimeError – If it fails to cleanup the dpdk.
-
static
initialize_dpdk_framework
(node, if1, if2, nic_driver)¶ Initialize the DPDK framework on the DUT node. Bind interfaces to driver.
- Parameters
node (dict) – DUT node.
if1 (str) – DUT first interface name.
if2 (str) – DUT second interface name.
nic_driver (str) – Interface driver.
- Raises
RuntimeError – If it fails to bind the interfaces to driver.
-
static
install_dpdk_framework
(node)¶ Prepare the DPDK framework on the DUT node.
- Parameters
node (dict) – Node from topology file.
- Raises
RuntimeError – If command returns nonzero return code.
-
static
install_dpdk_framework_on_all_duts
(nodes)¶ Prepare the DPDK framework on all DUTs.
- Parameters
nodes (dict) – Nodes from topology file.
-
static
2.1.2. L3fwdTest suite¶
This module exists to provide the l3fwd test for DPDK on topology nodes.
-
class
resources.libraries.python.DPDK.L3fwdTest.
L3fwdTest
¶ Bases:
object
Test the DPDK l3fwd performance.
-
static
get_adj_mac
(nodes, node, if1, if2)¶ Get adjacency MAC addresses of the DUT node.
- Parameters
nodes (dict) – All the nodes info in the topology file.
node (dict) – DUT node.
if1 (str) – The test link interface 1.
if2 (str) – The test link interface 2.
- Returns
Returns MAC addresses of adjacency DUT nodes and PCI addresses.
- Return type
str
-
static
patch_l3fwd
(node, patch)¶ Patch l3fwd application and recompile.
- Parameters
node (dict) – DUT node.
patch (str) – Patch to apply.
- Raises
RuntimeError – Patching of l3fwd failed.
-
static
start_l3fwd
(nodes, node, if1, if2, lcores_list, nb_cores, queue_nums, jumbo_frames)¶ Execute the l3fwd on the dut_node.
- Parameters
nodes (dict) – All the nodes info in the topology file.
node (dict) – DUT node.
if1 (str) – The test link interface 1.
if2 (str) – The test link interface 2.
lcores_list (str) – The lcore list string for the l3fwd routing
nb_cores (str) – The cores number for the forwarding
queue_nums (str) – The queues number for the NIC
jumbo_frames (bool) – Indication if the jumbo frames are used (True) or not (False).
-
static
2.1.3. TestpmdTest suite¶
This module implements functionality which sets L2 forwarding for DPDK on DUT nodes.
-
class
resources.libraries.python.DPDK.TestpmdTest.
TestpmdTest
¶ Bases:
object
Setup the DPDK for testpmd performance test.
-
static
start_testpmd
(node, if1, if2, lcores_list, nb_cores, queue_nums, jumbo_frames, rxq_size=1024, txq_size=1024)¶ Execute the testpmd on the DUT node.
- Parameters
node (dict) – DUT node.
if1 (str) – The test link interface 1.
if2 (str) – The test link interface 2.
lcores_list (str) – The DPDK run cores.
nb_cores (str) – The cores number for the forwarding.
queue_nums (str) – The queues number for the NIC.
jumbo_frames (bool) – Indication if the jumbo frames are used (True) or not (False).
rxq_size (int) – RXQ size. Default=1024.
txq_size (int) – TXQ size. Default=1024.
- Raises
RuntimeError – If the script “run_testpmd.sh” fails.
-
static