aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python
diff options
context:
space:
mode:
Diffstat (limited to 'resources/libraries/python')
-rw-r--r--resources/libraries/python/DPDK/L2fwdTest.py8
-rw-r--r--resources/libraries/python/DPDK/L3fwdTest.py34
2 files changed, 36 insertions, 6 deletions
diff --git a/resources/libraries/python/DPDK/L2fwdTest.py b/resources/libraries/python/DPDK/L2fwdTest.py
index 65ad6a53a4..aaa44358c3 100644
--- a/resources/libraries/python/DPDK/L2fwdTest.py
+++ b/resources/libraries/python/DPDK/L2fwdTest.py
@@ -33,12 +33,13 @@ class L2fwdTest(object):
:param cpu_cores: The DPDK run cores.
:param nb_cores: The cores number for the forwarding.
:param queue_nums: The queues number for the NIC.
- :param jumbo_frames: Are jumbo frames used or not.
+ :param jumbo_frames: Indication if the jumbo frames are used (True) or
+ not (False).
:type dut_node: dict
:type cpu_cores: str
:type nb_cores: str
:type queue_nums: str
- :type jumbo_frames: str
+ :type jumbo_frames: bool
:raises RuntimeError: If the script "run_l2fwd.sh" fails.
"""
if dut_node['type'] == NodeType.DUT:
@@ -46,11 +47,12 @@ class L2fwdTest(object):
ssh.connect(dut_node)
arch = Topology.get_node_arch(dut_node)
+ jumbo = 'yes' if jumbo_frames else 'no'
cmd = '{fwdir}/tests/dpdk/dpdk_scripts/run_l2fwd.sh {cpu_cores} ' \
'{nb_cores} {queues} {jumbo} {arch}'.\
format(fwdir=Constants.REMOTE_FW_DIR, cpu_cores=cpu_cores,
nb_cores=nb_cores, queues=queue_nums,
- jumbo=jumbo_frames, arch=arch)
+ jumbo=jumbo, arch=arch)
ret_code, _, _ = ssh.exec_command_sudo(cmd, timeout=600)
if ret_code != 0:
diff --git a/resources/libraries/python/DPDK/L3fwdTest.py b/resources/libraries/python/DPDK/L3fwdTest.py
index 15e656af07..8c2596408d 100644
--- a/resources/libraries/python/DPDK/L3fwdTest.py
+++ b/resources/libraries/python/DPDK/L3fwdTest.py
@@ -35,7 +35,8 @@ class L3fwdTest(object):
:param nb_cores: The cores number for the forwarding
:param lcores_list: The lcore list string for the l3fwd routing
:param queue_nums: The queues number for the NIC
- :param jumbo_frames: Is jumbo frames or not. Accepted: yes / no
+ :param jumbo_frames: Indication if the jumbo frames are used (True) or
+ not (False).
:type nodes_info: dict
:type dut_node: dict
:type dut_if1: str
@@ -43,7 +44,7 @@ class L3fwdTest(object):
:type nb_cores: str
:type lcores_list: str
:type queue_nums: str
- :type jumbo_frames: str
+ :type jumbo_frames: bool
"""
if dut_node['type'] == NodeType.DUT:
adj_mac0, adj_mac1 = L3fwdTest.get_adj_mac(nodes_info, dut_node,
@@ -72,11 +73,12 @@ class L3fwdTest(object):
ssh = SSH()
ssh.connect(dut_node)
+ jumbo = 'yes' if jumbo_frames else 'no'
cmd = '{fwdir}/tests/dpdk/dpdk_scripts/run_l3fwd.sh ' \
'"{lcores}" "{ports}" {mac1} {mac2} {jumbo}'.\
format(fwdir=Constants.REMOTE_FW_DIR, lcores=lcores_list,
ports=port_config.rstrip(','), mac1=adj_mac0,
- mac2=adj_mac1, jumbo=jumbo_frames)
+ mac2=adj_mac1, jumbo=jumbo)
ret_code, _, _ = ssh.exec_command_sudo(cmd, timeout=600)
if ret_code != 0:
@@ -107,6 +109,7 @@ class L3fwdTest(object):
# detect which is the port 0
if min(if_pci0, if_pci1) != if_pci0:
if_key0, if_key1 = if_key1, if_key0
+ L3fwdTest.patch_l3fwd(dut_node, 'patch_l3fwd_flip_routes')
adj_node0, adj_if_key0 = Topology.get_adjacent_node_and_interface( \
nodes_info, dut_node, if_key0)
@@ -117,3 +120,28 @@ class L3fwdTest(object):
adj_mac1 = Topology.get_interface_mac(adj_node1, adj_if_key1)
return adj_mac0, adj_mac1
+
+ @staticmethod
+ def patch_l3fwd(node, patch):
+ """
+ Patch l3fwd application and recompile.
+
+ :param node: Dictionary created from topology.
+ :param patch: Patch to apply.
+ :type node: dict
+ :type patch: str
+ :raises RuntimeError: Patching of l3fwd failed.
+ """
+ arch = Topology.get_node_arch(node)
+
+ ssh = SSH()
+ ssh.connect(node)
+
+ ret_code, _, _ = ssh.exec_command(
+ '{fwdir}/tests/dpdk/dpdk_scripts/patch_l3fwd.sh {arch} '
+ '{fwdir}/tests/dpdk/dpdk_scripts/{patch}'.
+ format(fwdir=Constants.REMOTE_FW_DIR, arch=arch, patch=patch),
+ timeout=600)
+
+ if ret_code != 0:
+ raise RuntimeError('Patch of l3fwd failed.') \ No newline at end of file