Skip to content

DPDK: 5-tuple-swap multiprocess testpmd on a single port#4241

Draft
mcgov wants to merge 2 commits intomainfrom
mcgov/testpmd-multi-proc
Draft

DPDK: 5-tuple-swap multiprocess testpmd on a single port#4241
mcgov wants to merge 2 commits intomainfrom
mcgov/testpmd-multi-proc

Conversation

@mcgov
Copy link
Collaborator

@mcgov mcgov commented Jan 21, 2026

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.

@mcgov mcgov added the Review Only Part of a stacked PR label Jan 21, 2026
@mcgov mcgov requested a review from Copilot January 27, 2026 20:40
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_info function 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_netvsc to 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.
Copy link

Copilot AI Jan 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling error: "arugments" should be "arguments".

Suggested change
# Check and set multi_process arugments for testpmd.
# Check and set multi_process arguments for testpmd.

Copilot uses AI. Check for mistakes.
Base automatically changed from mcgov/packet-drop to main January 28, 2026 13:38
@mcgov mcgov force-pushed the mcgov/testpmd-multi-proc branch 3 times, most recently from 8ff8754 to 49b60be Compare February 4, 2026 15:56
mcgov added 2 commits February 6, 2026 10:13
adds handling for testpmd multiple processes.
will be used for secondary process receiver for 5tswap test.
@mcgov mcgov force-pushed the mcgov/testpmd-multi-proc branch from 49b60be to 7b4ad83 Compare February 6, 2026 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Review Only Part of a stacked PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant