Skip to content

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.

Gathers and checks packet drops at the end of send receive tests. Senders are allowed to drop more packets, we intentionally tune it to maximize the PPS, so some drops are expected. The rough metric in this PR is that the percentage of packets dropped should not exceed 20% on the sender and 1% on the receiver.
@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 and others added 4 commits January 28, 2026 09:59
adds handling for testpmd multiple processes.
will be used for secondary process receiver for 5tswap test.
Adds a simpler forwarding test with a single DPDK port.
Two vms, vm0 -> vm1.
vm1 swaps the addresses (5 tuple) and sends traffic back to vm0.

Co-authored-by: Copilot <[email protected]>
@mcgov mcgov force-pushed the mcgov/testpmd-multi-proc branch from 5d6247d to 08cd765 Compare January 28, 2026 18:09
@mcgov mcgov force-pushed the mcgov/testpmd-multi-proc branch from bb6ff7b to 9660833 Compare January 28, 2026 18:23
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.

2 participants