Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Welcome to the Mini-CCNx wiki!
Mini-CCNx is a tool for agile prototyping of Information Centric Networks (ICN) based on the Content-Centric Network (CCN) model.
With it, you'll be able to build several CCN topologies, each with hundreds of nodes, with great agility and flexibility. These topologies can be run directly on your laptop/desktop, in a local VM or in cloud. And the best is: the code you run on Mini-CCNx is the same code that you'll use in a real network. This really adds a realistic behavior to your tests.
Each Mini-CCNx node (host or router) runs the official Project CCNx's code (the daemon ccnd), so you'll be using the official CCN implementation.
Mini-CCNx is a fork of Mininet-HiFi and extends it to bring it to the ICN world. Mini-CCNx has all the advantages of Mininet, such as Containter-Based Emulation, cgroups, and flexibility. But it does much more:
- smooth integration with the official CCNx implementation using new node classes ( CCNHost, CCNRouter, CPULimitedCCNHost );
- FIB implementation;
- simple configuration with text files or GUI;
- FIB entries added automatically with text configuration file;
- sample topologies, topology generators with scripts;
- change link parameters such as delay, loss and bandwidth;
- and more!
We really believe Mini-CCNx will be able to drive new possibilities in CCNx testing and development in several aspects:
- routing: with Mini-CCNx, it's very easy (and fast!) to build new topologies or even add dynamic link changes (links up/down). Therefore, this will be useful for those testing new routing strategies for CCN;
- caching: because of the same reasons outlined above, it should be easy to check the behavior of dynamic caching strategies in different scenarios and topologies;
- apps: how does my content-oriented application work in a wireless link? This will be easy to answer using Mini-CCNx's link editor, inserting losses on the desired links.
We intend to create a discussion list soon. Please, use the github issue report functionalities and/or contact the main author Carlos Cabral (firstname.lastname@example.org) and Prof. Christian Esteve Rothenberg (email@example.com)!