I don't have dpdk supported NIC. so I wanted to test my userspace tcp/ip stack without having one. which method should i prefer ? DPDK KNI vs TAP PMD. What's the point of having 2 methods which basically having same goal ? or is it not ?
KNI is the way to go if you introduce overhead due to kernel crossings and requires loading the rte_kni module, which might not be ideal for pure performance testing.
On the other hand, TAP PMD is a purely user space solution, emulating a TUN/TAP device without kernel involvement. This means lower latency and no dependency on kernel modules, making it great for scenarios where you want to avoid kernel overhead entirely. However, since it bypasses the kernel, you lose compatibility with standard networking tools that rely on kernel interfaces.
Shortly for your case (testing without hardware) TAP PMD is likely the simpler option unless you specifically need kernel support.