The Click Modular Router Project(read.cs.ucla.edu)
read.cs.ucla.edu
The Click Modular Router Project
http://www.read.cs.ucla.edu/click/
12 comments
Where does it explain what Click is? No explanation on the front page, and first FAQ is "Is Click experimental software?"
Click is a C++ framework for constructing routers and IP middleboxes out of modular components, somewhat like a modular synthesizer for packets.
It's a pretty great codebase.
It's a pretty great codebase.
I used click in production. It was a great piece of software. It allowed us to do packet processing and routing in the linux kernel with high level C++ code. It also had a great "standard library" for packet routing primitives.
Cool! Are you at liberty to share any more details? Was it for an ISP or similar? I would be interested to hear more :)
We ran it on access points, switches, and a firewalls. We found it was pretty good to a certain extent, but was hard to scale with multiple cores.
Interesting!
I used this in my PhD dissertation. Very useful project!
http://www.ianthomasrose.com/pubs/argos-sensys10.pdf
I discovered this when I read about ClickOS [0], a unikernel that builds on the Click modular router. Check this out: "ClickOS virtual machines are small
(5MB), boot quickly (about 30 milliseconds), add little
delay (45 microseconds) and over one hundred of them
can be concurrently run while saturating a 10Gb pipe on
a commodity server"
[0] https://www.usenix.org/system/files/conference/nsdi14/nsdi14...
[0] https://www.usenix.org/system/files/conference/nsdi14/nsdi14...
Looked at this a few years back, but never started using it.
https://github.com/kohler/click/