https://bugs.dpdk.org/show_bug.cgi?id=1618 Bug ID: 1618 Summary: l2fwd testsuite match packets failing on Nvidia connectx-6 Product: DPDK Version: 25.03 Hardware: Other OS: All Status: UNCONFIRMED Severity: major Priority: Normal Component: DTS Assignee: dev@dpdk.org Reporter: probb@iol.unh.edu CC: juraj.linkes@pantheon.tech, probb@iol.unh.edu Target Milestone: --- Hi, l2fwd runs correctly on NVIDIA cx5 (as tested when this testsuite was added last year). I added a config for NVIDIA cx6 today, and the testsuite errored, logging that 50 out of 50 packets were missing. The testsuite follows this process: 1. create packets with generate_random_packets() 2. Run send_packet_and_capture(), returns received packets list 3. Run get_expected_packets(), returns expected packets list. 4. Use match_all_packets(), which converts both lists of packets to a list of raw bytes and attempts to subtract the received packets against the expected packets, which should leave no packets remaining at the end (the pass condition). After digging a little, it looks like when running with the cx6, step #2 and step #3 from above produce the same list of 50 packets (same raw layer payload), though the L3 header values differ, which causes the packets to differ when matched against one another. For instance, here are two packets matched against each other on the cx6 test, which should match positively (but do not): received_packet: >>> expected_packet : >>> I expect this comes down to usage of _adjust_addresses() in #2, vs get_expected_packets() in #3. I am wondering whether the strategy employed in match_packets is good anyhow (its strategy is comparing raw packet bytes with no deep packet comparison). And, this is the only testsuite which is comparing packets in this manner. I propose to switch to comparing the two packet lists with the testsuite verify_packets() method. I have tested this verify method, and I will submit a patch for folks to comment on. -- You are receiving this mail because: You are the assignee for the bug.