Hi Nousi, I can confirm that I was able to reproduce your issue in my local test environment(Ampere Altra Max 96 Cores with the Intel E810-C 2x ports NIC). The issue also persists in the latest VPP codebase, so I spent some time investigating it. From what I observed, commit[1] appears to be the root cause. This commit introduces NEON intrinsics to add support for the IAVF Rx vector path on Arm platforms in DPDK. I don’t want to bother you with the implementation details of the Rx vector function[2]. But in short, the issue occurs because the function writes the pkt_len field to the wrong location in the rte_mbuf when copying from the hardware descriptor. I’ve created a quick workaround for VPP 25.02(see attached patch) and tested it with 64B/1024B packets. It seems to work fine. Please give it a try and let me know if it resolves the issue on your side.
VPP 25.02 works fine on X86 systems because it uses a different Rx vector code path. Interestingly, I observed a similar packet length issue when testing the X86 counterpart of Rx vector code path[3]. Thanks, Jay Wang [1] https://gerrit.fd.io/r/c/vpp/+/37017 [2] https://github.com/DPDK/dpdk/blob/main/drivers/net/intel/iavf/iavf_rxtx_vec_neon.c#L144 [3] https://github.com/DPDK/dpdk/blob/main/drivers/net/intel/iavf/iavf_rxtx_vec_sse.c#L391 From: [email protected] <[email protected]> On Behalf Of nousi via lists.fd.io Sent: Tuesday, November 11, 2025 2:22 PM To: [email protected] Subject: [vpp-dev] [VPP 25.02 | ARM64 | E810-C | IAVF] Packets showing length 65535 in DPDK input node (works fine on VPP 22.02) Hi everyone, I’m seeing a packet length issue after upgrading to VPP 25.02 on ARM64 (Ampere® Altra® Q64-30 @ 3.0GHz) with an Intel E810-C (4x ports) NIC using the IAVF driver. All packets received in the dpdk-input node show a length of 65535 bytes, which is clearly incorrect. This is visible in both trace and pcap captures. Here’s what I’ve observed so far: * The issue only appears with VPP 25.02 on ARM64. * The same platform (hardware + NIC) works perfectly with VPP 22.02 — packet lengths are reported correctly. * On X86 systems, VPP 25.02 also works fine (no packet length issue). * So it seems specific to VPP 25.02 + ARM64 + IAVF driver combination. Setup details: * CPU: Ampere® Altra® Q64-30 (ARM64) * NIC: Intel E810-C (4 ports) * Driver: IAVF (DPDK) * VPP version: 25.02 * Symptom: All packets show length = 65535 in dpdk-input node Has anyone else seen this behavior or is aware of any related changes in VPP 25.02 or the IAVF/DPDK layer for ARM64? Would appreciate any pointers, patches, or debug hints — especially if someone has tested E810/IAVF on ARM with newer VPP versions. Thanks a lot in advance! Nousi. IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
0001-dpdk-fix-iavf-Rx-vec-function.patch
Description: 0001-dpdk-fix-iavf-Rx-vec-function.patch
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#26530): https://lists.fd.io/g/vpp-dev/message/26530 Mute This Topic: https://lists.fd.io/mt/116238372/21656 Group Owner: [email protected] Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/14379924/21656/631435203/xyzzy [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
