Skip to content

Differences between FastClick and Click

Tom Barbette edited this page Feb 16, 2021 · 4 revisions

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)
Clone this wiki locally