Netmap is cool (and proves that you don't have to be 100% userspace to get good performance), but it's basically packet I/O. Most programs want sockets, not packets.
The idea is to run most of the networking stack in user space. This means that context switches aren't required on a per-packet basis anymore.
The idea is not that you do your own packet processing in every app (although big gains can be had that way, fucking with TCP can pay off big, and avoids firewall issues with UDP protocols). But there are standard libraries for doing standard TCP and UDP over this. There are even libraries for doing non-standard (multipath) TCP with the netmap framework.
Also there is network interface hardware that effectively implements the netmap framework.
Plus think of the other advantages of this : userspace firewalls/deep packet inspection/proxys/... (that therefore can't ever crash the kernel, run with minimal privileges and when blown up can just be restarted)
IX https://www.usenix.org/conference/osdi14/technical-sessions/... and Seastar http://www.seastar-project.org/ have revisited the socket API to provide high-level high-performance networking.