| ▲ | tptacek 2 days ago | |||||||||||||||||||||||||
I think, and I'm saying this in part to get someone to correct me, that post-XDP (so 5 years or so now) DPDK is basically obsolete. Is there a circumstance where it would make sense to start from DPDK rather than XDP? | ||||||||||||||||||||||||||
| ▲ | touisteur 2 days ago | parent | next [-] | |||||||||||||||||||||||||
I think access to offload engines is a big part of the appeal of dpdk still, especially for me all the GPUdirect nvidia-only packet steerer. I need to check about the af_xdp ecosystem around fragmentation/reassembly in UDP too, every time I needed something there DPDK had it, often with an offload path. Some silly stuff in DPDK are very useful for testing too (in-memory devices). Also I'm not clear on the virtualization story on af_xdp, with dpdk I got something working at full blast 400G in VMs with little (but finnicky) work. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | pstavirs 2 days ago | parent | prev | next [-] | |||||||||||||||||||||||||
At this point there's a much bigger ecosystem for DPDK than AF_XDP I think. Also more people know about DPDK than AF_XDP right now e.g. the Ostinato traffic generator's line-rate Turbo functionality uses AF_XDP but most customers assume it uses DPDK. Disclosure: Ostinato creator here. | ||||||||||||||||||||||||||
| ▲ | trevex 2 days ago | parent | prev | next [-] | |||||||||||||||||||||||||
While I am a big proponent of XDP there are use-cases better suited to DPDK: Being able to offload flows and crypto operations to the NIC is important to a lot of use-cases. The first packet to user space is essentially the slow path even with DMA, that sets up the fast path. | ||||||||||||||||||||||||||
| ▲ | bgpdude 2 days ago | parent | prev [-] | |||||||||||||||||||||||||
I think you're correct. Not really aware of any real limitations, other than it's slightly slower than dpdk (it's not a complete bypass), but at a much easier ease of use. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||