As I look at how the ethernet device interface in DPDK has exploded in complexity; it makes life very hard for end users. The goal has been to enable all the cool hardware features, but it has put blinders on the driver devlopers; they are ignoring the fact that real applications can't just work on one kind of hardware.
The DPDK is doing a terrible job at providing abstractions. There needs to be a real generic set of operations, and every hardware offload feature must: * have a clear well defined API * if feature is not available in software, then the DPDK must provide a software equivalent feature. * any difference in API must be hidden from application. * no compile config options about offload. * tests and documentation must work for both hw and sw version Right now, all those offload features are pretty much unusable in a real product without lots and lots of extra codes and huge bug surface. It bothers me enough that I would recommend removing much of the filter/offload/ptype stuff from DPDK!