From: Jozef Urbanovsky <jurbanov(a)redhat.com>
Adding parameter for the forward-mode selection of the
testPMD application running during the recipe.
Branching is currently supporting only "mac" and "macswap"
forward modes.
Signed-off-by: Jozef Urbanovsky <jurbanov(a)redhat.com>
---
lnst/Tests/TestPMD.py | 36 ++++++++++++++++++++++++++----------
1 file changed, 26 insertions(+), 10 deletions(-)
diff --git a/lnst/Tests/TestPMD.py b/lnst/Tests/TestPMD.py
index a92a42a..44c234f 100644
--- a/lnst/Tests/TestPMD.py
+++ b/lnst/Tests/TestPMD.py
@@ -4,27 +4,43 @@ import signal
from lnst.Common.Parameters import Param, StrParam, IntParam, FloatParam
from lnst.Common.Parameters import IpParam, DeviceOrIpParam
from lnst.Tests.BaseTestModule import BaseTestModule, TestModuleError
+from lnst.Common.LnstError import LnstError
+
class TestPMD(BaseTestModule):
coremask = StrParam(mandatory=True)
pmd_coremask = StrParam(mandatory=True)
- #TODO make ListParam
+ # TODO make ListParam
+ foward_mode = StrParam(mandatory=True)
nics = Param(mandatory=True)
- peer_macs = Param(mandatory=True)
+ peer_macs = Param(mandatory=False)
def format_command(self):
- testpmd_args = ["testpmd",
- "-c", self.params.coremask,
- "-n", "4", "--socket-mem", "1024,0"]
- for nic in self.params.nics:
- testpmd_args.extend(["-w", nic])
+ if self.params.forward_mode == "macswap":
+ testpmd_args = ["dpdk-testpmd", "--no-pci"]
+ else:
+ testpmd_args = ["testpmd"]
+
+ testpmd_args.extend(["-c", self.params.coremask,
+ "-n", "4", "--socket-mem", "1024,0"])
+
+ for i, nic in enumerate(self.params.nics):
+ if self.params.foward_mode == "mac":
+ testpmd_args.extend(["-w", nic])
+ elif self.params.foward_mode == "macswap":
+ testpmd_args.extend([f"--vdev=net_virtio_user{i+1},path=/var/run/openvswitch/{nic}"])
+ else:
+ LnstError("Unsupported forward-mode parameter selected for the TestPMD.")
- testpmd_args.extend(["--", "-i", "--forward-mode", "mac",
+ testpmd_args.extend(["--", "-i", "--forward-mode", self.params.foward_mode,
"--coremask", self.params.pmd_coremask])
- for i, mac in enumerate(self.params.peer_macs):
- testpmd_args.extend(["--eth-peer", "{},{}".format(i, mac)])
+ if self.params.foward_mode == "mac":
+ for i, mac in enumerate(self.params.peer_macs):
+ testpmd_args.extend(["--eth-peer", "{},{}".format(i, mac)])
+ elif self.params.foward_mode == "macswap":
+ testpmd_args.extend(["--port-topology=loop"])
return " ".join(testpmd_args)
--
2.29.2