Just to get it out of the way: the simplicity and effectiveness of netmap(4) is an achievement in itself. I’ve had the opportunity to work on similar proprietary code in my past, but we faced ever new complications and bottlenecks. There are no immediate problems with netmap(4). I’m especially intrigued by the zero-copy feature, which boosts both latency and throughput considerably.
After studying the kernel and userland code I thought the userland side could use a little polish, so I started to write these simplified bindings which are now part of libpeak. Hardware tests with the provided fuse(1) utility successfully bridged two ethernet adapters. There is a bit of packet loss reported by the utility which needs further investigation, but several GB of downloads showed correct checksums afterwards. Yet the best result is packet latency: 0.2 ms average from hardware port to hardware port through userland.
There are a lot of interesting netmap(4) talks and other networking stack topics at the EuroBSDcon 2013 in Malta. I’m really stoked about the opportunity to attend and chat with other developers. This is the beginning of a journey into the depths of advanced packet forwarding and we will continue to provide our ideas and code.