DPDK: 5-tuple-swap multiprocess testpmd on a single port#4241
Draft
DPDK: 5-tuple-swap multiprocess testpmd on a single port#4241
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds a new DPDK test that validates multiprocess testpmd functionality using a 5-tuple-swap forwarding mode with a single port setup. The test involves two VMs: one VM runs both sender and receiver processes using DPDK multiprocessing, while the other VM acts as a forwarder that swaps MAC and IP addresses to return traffic back to the sender VM.
Changes:
- Introduces multiprocess DPDK support with new enums for process roles and forwarding modes
- Adds
generate_5tswap_run_infofunction to configure the 3-process test topology - Updates command handling throughout to support multiple commands per node (List[str] instead of str)
- Adds new test case
verify_dpdk_testpmd_5tswap_gb_hugepages_netvscto the test suite
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 10 comments.
| File | Description |
|---|---|
| lisa/microsoft/testsuites/dpdk/common.py | Adds DpdkMpRole and TestpmdForwardMode enums to support multiprocess contexts and different forwarding modes |
| lisa/microsoft/testsuites/dpdk/dpdktestpmd.py | Adds _generate_mp_arguments method and extends generate_testpmd_command to support multiprocess role configuration and custom core lists |
| lisa/microsoft/testsuites/dpdk/dpdkutil.py | Adds generate_5tswap_run_info function for 5-tuple-swap test setup, updates return types to support multiple commands per node, and modifies verify_dpdk_send_receive to handle multiple processes |
| lisa/microsoft/testsuites/dpdk/dpdksuite.py | Adds new test case for 5-tuple-swap multiprocess validation with 1GB hugepages |
| def _generate_mp_arguments( | ||
| self, mp_role: DpdkMpRole, num_procs: int, proc_id: int | ||
| ) -> str: | ||
| # Check and set multi_process arugments for testpmd. |
There was a problem hiding this comment.
Spelling error: "arugments" should be "arguments".
Suggested change
| # Check and set multi_process arugments for testpmd. | |
| # Check and set multi_process arguments for testpmd. |
8ff8754 to
49b60be
Compare
adds handling for testpmd multiple processes. will be used for secondary process receiver for 5tswap test.
49b60be to
7b4ad83
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a simpler forwarding test using 2 VMs and 1 port. This test uses multiprocess DPDK to create a sender and receiver process on one VM, and a forwarder process on the other. The forwarder sends all traffic back to the first VM by swapping the mac and IP addresses.