Differences between FastClick and Click - tbarbette/fastclick GitHub Wiki
Core
Support for batching
Thread vectors, allowing easier thread management
I/O
The (reverted from FastClick) DPDK version in mainline is very limited (no native multi-queue, you have to duplicate elements etc)
The Netmap version in mainline was less efficient, and less up-to-date. Though frankly we stopped using Netmap here a while ago. Today NICs are not only about receiving a packet, but also offloading, rule classification, etc. DPDK is much better at that.
Features
The flow subsystem that comes from MiddleClick and allow to use many classification algorithm for new improved NAT, Load Balancers, DPI engine (HyperScan, SSE4 string search), Statistics tracking, etc
Many new elements
Many elements made thread-safe and batch-native
A lot of locking and multithreading facilities in multithread.hh, and a thread-safe HashTable in hashtablemp.hh (but it was tested for x86 only)
If TSCClock is placed in the configuration, time calls will use the TSC directly from userlevel and will not use the much slower vDSO.
Same for JiffieClick, to use a counter instead of dividing the time.
Default compilation options
By defaults FastClick compiles with userlevel multithread. You still have to explicitely --enable-dpdk if you want fast I/O with DPDK (you do)