This is not a DPDK bug.
The Linux kernel will interpret the packets it receives.
By default Linux has a weak host model, and it will look at the L3 header.
If you want to forward you need to either use hardware DPDK network devices
(not packet, tun, ...); or put each eth device into a different network or
namespace.
The DPDK part of forwarding has nothing wrong here.
This is not a DPDK bug. The Linux kernel will interpret the packets it receives. By default Linux has a weak host model, and it will look at the L3 header. If you want to forward you need to either use hardware DPDK network devices (not packet, tun, ...); or put each eth device into a different network or namespace. The DPDK part of forwarding has nothing wrong here.