Skip to content
Marc Mosko edited this page Feb 2, 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 almost 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).

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 pre-alpha. The code is not usable for any realistic simulation yet. We're diligently pounding our keyboards and should have the first release soon. The first release will have this functionality:

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

Getting More Information

  • [Getting Started](Getting Started)
  • [CCNx NS3 Node Architecture](Node Architecture)
  • 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