One of my pet peeve's is that the device driver config does not abstract the properties of the Ethernet device. The existing parameters match those of Intel's Ethernet hardware but not much else. It also makes it hard to write generic applications. If the application has to query the device driver name string and insert different parameters for igb, igbvf, ixgbe and vmxnet3 then the API was designed wrong.
Specific examples: * the "descriptors" argument to rx/tx is interpreted as a hardware resource not the number of packets. An application really wants to say "you may buffer up to 100us of packets" not have to guess what the underlying driver does. * the rthresh/wthresh/pthresh are PCI device artifacts and correct value is different for each HW device shouldn't be exposed to application. The API should be something like "device may burst up to N packets and/or T latency". These seems like issues of a transition from a cool toy to talk to Intel hardware to a useful application infrastructure. That is why I would hate to see the existing Intel device centric API frozen.