Skip to content
Marc Mosko edited this page Sep 13, 2016 · 25 revisions

Welcome to the project!

This project is an NS3 module for simulating the CCNx 1.0 protocols (ccns3Sim). You can find more information about the CCNx 1.0 Protocols and about NS3 simulator.

The purpose of this project is to provide an open-source implementation of the CCNx protocols written specifically for NS3 in C++. We follow the NS3 coding conventions. Due to our BSD-like license, we cannot contribute the code directly to the NS3 project, but we have made it easy to integrate (see [Getting Started](Getting Started) ).

The CCNx NS3 implementation is a fresh NS3-specific implementation. This means it's C++ in the NS3 code style, using the NS3 smart pointers, and integrates with the NS3 documentation and manual. Most importantly you do not need to learn two systems. If you know NS3, you should be able to get started with the CCNx code right away. It is modeled on the NS3 Internet structure, so the terminology and APIs bear some resemblance. There are two main differences: we split the forwarder from the routing protocol, and we use the CCNxPortal abstraction instead of ns3::Socket. It is straightforward to add your own forwarder implementation, routing implementation, or modify forwarding behaviour by using your own Pending Interest Table (PIT) or Forwarding Information Base (FIB) or Content Store (CS). We have provided many Examples, a Tutorial and many [Unit Tests](Unit Tests) (all written in the NS3 unit test framework).

Our goal is to make the CCNx module easy to use, easy to modify, and easy to maintain. It works with the off-the-shelf NS3 code distribution, with only a few minor changes because CCNx uses a different EtherType (0x0801) than IPv4/IPv6, so we had to add that in.

Project Status

Currently, the project is beta. The code is usable for many simulations now, though some security features of the CCNx protocol are not yet implemented.

See Features page for a description of what's in the code.

Getting More Information

  • Home
  • [Getting Started](Getting Started)
  • Developer
    • [Node Architecture](Node Architecture)
    • [Header doc format](Header doc format)
    • [Unit Tests](Unit Tests)
    • [Overriding Implementations](Overriding Implementations)
    • [Code Coverage](Code Coverage)
Clone this wiki locally